chore: lego改成从github直接下载

pull/243/head
xiaojunnuo 2024-11-04 16:39:02 +08:00
parent 1274f56da8
commit 1b46278f86
54 changed files with 162 additions and 110 deletions

View File

@ -17,9 +17,12 @@ services:
# ↓↓↓↓ ---------------------------------------------------------- 如果出现getaddrinfo ENOTFOUND等错误可以尝试修改或注释dns配置 # ↓↓↓↓ ---------------------------------------------------------- 如果出现getaddrinfo ENOTFOUND等错误可以尝试修改或注释dns配置
- 223.5.5.5 - 223.5.5.5
- 223.6.6.6 - 223.6.6.6
# ↓↓↓↓ ---------------------------------------------------------- 如果你服务器在腾讯云可以用这个dns地址
# - 119.29.29.29
# - 182.254.116.116
# ↓↓↓↓ ---------------------------------------------------------- 如果你服务器部署在国外可以用8.8.8.8替换上面的dns # ↓↓↓↓ ---------------------------------------------------------- 如果你服务器部署在国外可以用8.8.8.8替换上面的dns
# - 8.8.8.8 # - 8.8.8.8
# - 8.8.4.4 # - 8.8.4.4
# extra_hosts: # extra_hosts:
# ↓↓↓↓ ---------------------------------------------------------- 这里可以配置自定义hosts外网域名可以指向本地局域网ip地址 # ↓↓↓↓ ---------------------------------------------------------- 这里可以配置自定义hosts外网域名可以指向本地局域网ip地址
# - "localdomain.comm:192.168.1.3" # - "localdomain.comm:192.168.1.3"

View File

@ -50,8 +50,14 @@ class HttpError extends Error {
super(error.message); super(error.message);
this.message = error.message; this.message = error.message;
if (this.message && this.message.indexOf('ssl3_get_record:wrong version number') >= 0) { const { message } = error;
this.message = 'http协议错误服务端要求http协议请检查是否使用了https请求'; if (message && typeof message === 'string') {
if (message.indexOf && message.indexOf('ssl3_get_record:wrong version number') >= 0) {
this.message = `${message}(http协议错误服务端要求http协议请检查是否使用了https请求)`;
}
else if (message.indexOf('getaddrinfo EAI_AGAIN')) {
this.message = `${message}(无法解析域名请检查网络连接或dns配置)`;
}
} }
this.name = error.name; this.name = error.name;

View File

@ -1,12 +1,12 @@
import axios, { AxiosRequestConfig } from 'axios'; import axios, { AxiosRequestConfig } from 'axios';
import { logger } from './util.log.js'; import { ILogger, logger } from './util.log.js';
import { Logger } from 'log4js'; import { Logger } from 'log4js';
import { HttpProxyAgent } from 'http-proxy-agent'; import { HttpProxyAgent } from 'http-proxy-agent';
import { HttpsProxyAgent } from 'https-proxy-agent'; import { HttpsProxyAgent } from 'https-proxy-agent';
import nodeHttp from 'http'; import nodeHttp from 'http';
import * as https from 'node:https'; import * as https from 'node:https';
import { merge } from 'lodash-es'; import { merge } from 'lodash-es';
import { safePromise } from './util.promise'; import { safePromise } from './util.promise.js';
import fs from 'fs'; import fs from 'fs';
export class HttpError extends Error { export class HttpError extends Error {
status?: number; status?: number;
@ -21,8 +21,13 @@ export class HttpError extends Error {
} }
super(error.message || error.response?.statusText); super(error.message || error.response?.statusText);
if (error?.message?.indexOf && error?.message?.indexOf('ssl3_get_record:wrong version number') >= 0) { const message = error?.message;
this.message = 'http协议错误服务端要求http协议请检查是否使用了https请求'; if (message && typeof message === 'string') {
if (message.indexOf && message.indexOf('ssl3_get_record:wrong version number') >= 0) {
this.message = `${message}(http协议错误服务端要求http协议请检查是否使用了https请求)`;
} else if (message.indexOf('getaddrinfo EAI_AGAIN')) {
this.message = `${message}(无法解析域名请检查网络连接或dns配置更换docker-compose.yaml中dns配置)`;
}
} }
this.name = error.name; this.name = error.name;
@ -115,7 +120,12 @@ export function createAxiosService({ logger }: { logger: Logger }) {
service.interceptors.response.use( service.interceptors.response.use(
(response: any) => { (response: any) => {
if (response?.config?.logRes !== false) { if (response?.config?.logRes !== false) {
logger.info(`http response : status=${response?.status},data=${JSON.stringify(response?.data)}`); let resData = response?.data;
try {
resData = JSON.stringify(response?.data);
} catch (e) {}
logger.info(`http response : status=${response?.status},data=${resData}`);
} else { } else {
logger.info('http response status:', response?.status); logger.info('http response status:', response?.status);
} }
@ -217,36 +227,42 @@ export function createAgent(opts: CreateAgentOptions = {}) {
}; };
} }
export async function download(http: HttpClient, config: HttpRequestConfig, savePath: string) { export async function download(req: { http: HttpClient; config: HttpRequestConfig; savePath: string; logger: ILogger }) {
const { http, config, savePath, logger } = req;
return safePromise((resolve, reject) => { return safePromise((resolve, reject) => {
http http
.request({ .request({
...config, logRes: false,
responseType: 'stream', responseType: 'stream',
...config,
}) })
.then(res => { .then(res => {
const writer = fs.createWriteStream(savePath); const writer = fs.createWriteStream(savePath);
res.data.pipe(writer); res.pipe(writer);
writer.on('close', () => { writer.on('close', () => {
console.log('文件下载成功'); logger.info('文件下载成功');
resolve(true); resolve(true);
}); });
//error //error
writer.on('error', err => { writer.on('error', err => {
console.error('下载失败', err); logger.error('下载失败', err);
reject(err); reject(err);
}); });
//进度条打印 //进度条打印
const totalLength = res.headers['content-length']; const totalLength = res.headers['content-length'];
let currentLength = 0; let currentLength = 0;
res.data.on('data', (chunk: any) => { // 每5%打印一次
const step = (totalLength / 100) * 5;
res.on('data', (chunk: any) => {
currentLength += chunk.length; currentLength += chunk.length;
const percent = ((currentLength / totalLength) * 100).toFixed(2); if (currentLength % step < chunk.length) {
console.log(`下载进度:${percent}%`); const percent = ((currentLength / totalLength) * 100).toFixed(2);
logger.info(`下载进度:${percent}%`);
}
}); });
}) })
.catch(err => { .catch(err => {
console.error('下载失败', err); logger.info('下载失败', err);
reject(err); reject(err);
}); });
}); });

View File

@ -3,7 +3,7 @@ import { RunHistory, RunnableCollection } from "./run-history.js";
import { AbstractTaskPlugin, PluginDefine, pluginRegistry, TaskInstanceContext, UserInfo } from "../plugin/index.js"; import { AbstractTaskPlugin, PluginDefine, pluginRegistry, TaskInstanceContext, UserInfo } from "../plugin/index.js";
import { ContextFactory, IContext } from "./context.js"; import { ContextFactory, IContext } from "./context.js";
import { IStorage } from "./storage.js"; import { IStorage } from "./storage.js";
import { createAxiosService, hashUtils, logger, utils } from "@certd/basic"; import { createAxiosService, hashUtils, HttpRequestConfig, logger, utils } from "@certd/basic";
import { Logger } from "log4js"; import { Logger } from "log4js";
import { IAccessService } from "../access/index.js"; import { IAccessService } from "../access/index.js";
import { RegistryItem } from "../registry/index.js"; import { RegistryItem } from "../registry/index.js";
@ -290,11 +290,20 @@ export class Executor {
} }
const http = createAxiosService({ logger: currentLogger }); const http = createAxiosService({ logger: currentLogger });
const download = async (config: HttpRequestConfig, savePath: string) => {
await utils.download({
http,
logger: currentLogger,
config,
savePath,
});
};
const taskCtx: TaskInstanceContext = { const taskCtx: TaskInstanceContext = {
pipeline: this.pipeline, pipeline: this.pipeline,
step, step,
lastStatus, lastStatus,
http, http,
download,
logger: currentLogger, logger: currentLogger,
inputChanged, inputChanged,
accessService: this.options.accessService, accessService: this.options.accessService,

View File

@ -3,6 +3,5 @@ export * from "./run-history.js";
export * from "./context.js"; export * from "./context.js";
export * from "./storage.js"; export * from "./storage.js";
export * from "./file-store.js"; export * from "./file-store.js";
export * from "./license.js";
export * from "./handler.js"; export * from "./handler.js";
export * from "./exceptions.js"; export * from "./exceptions.js";

View File

@ -1,16 +0,0 @@
import { logger } from "@certd/basic";
import { setLogger, isPlus, isComm } from "@certd/plus-core";
setLogger(logger);
export * from "@certd/plus-core";
export function checkPlus() {
if (!isPlus()) {
throw new Error("此为专业版功能,请升级到专业版");
}
}
export function checkComm() {
if (!isComm()) {
throw new Error("此为商业版功能,请升级到商业版");
}
}

View File

@ -117,8 +117,8 @@ export class RunHistory {
} }
logError(runnable: Runnable, e: Error) { logError(runnable: Runnable, e: Error) {
delete e.stack; // delete e.stack;
delete e.cause; // delete e.cause;
const errorInfo = runnable.runnableType === "step" ? e : e.message; const errorInfo = runnable.runnableType === "step" ? e : e.message;
this._loggers[runnable.id].error(`[${runnable.runnableType}] [${runnable.title}]<id:${runnable.id}> `, errorInfo); this._loggers[runnable.id].error(`[${runnable.runnableType}] [${runnable.title}]<id:${runnable.id}> `, errorInfo);
} }

View File

@ -5,7 +5,7 @@ import { Logger } from "log4js";
import { IAccessService } from "../access/index.js"; import { IAccessService } from "../access/index.js";
import { ICnameProxyService, IEmailService } from "../service/index.js"; import { ICnameProxyService, IEmailService } from "../service/index.js";
import { CancelError, IContext, PluginRequestHandleReq, RunnableCollection } from "../core/index.js"; import { CancelError, IContext, PluginRequestHandleReq, RunnableCollection } from "../core/index.js";
import { ILogger, logger, utils } from "@certd/basic"; import { HttpRequestConfig, ILogger, logger, utils } from "@certd/basic";
import { HttpClient } from "@certd/basic"; import { HttpClient } from "@certd/basic";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { IPluginConfigService } from "../service/config"; import { IPluginConfigService } from "../service/config";
@ -85,6 +85,8 @@ export type TaskInstanceContext = {
userContext: IContext; userContext: IContext;
//http请求客户端 //http请求客户端
http: HttpClient; http: HttpClient;
//下载文件方法
download: (config: HttpRequestConfig, savePath: string) => Promise<void>;
//文件存储 //文件存储
fileStore: FileStore; fileStore: FileStore;
//上一次执行结果状态 //上一次执行结果状态

View File

@ -127,7 +127,7 @@ export class CertApplyLegoPlugin extends CertApplyBasePlugin {
const savePathArgs = `--path "${saveDir}"`; const savePathArgs = `--path "${saveDir}"`;
const os_type = process.platform === "win32" ? "windows" : "linux"; const os_type = process.platform === "win32" ? "windows" : "linux";
const legoDir = "./tools/lego"; const legoDir = "./tools/lego";
const legoPath = path.resolve(legoDir, "lego"); const legoPath = path.resolve(legoDir, os_type === "windows" ? "lego.exe" : "lego");
if (!fs.existsSync(legoPath)) { if (!fs.existsSync(legoPath)) {
//解压缩 //解压缩
const arch = process.arch; const arch = process.arch;
@ -136,20 +136,21 @@ export class CertApplyLegoPlugin extends CertApplyBasePlugin {
platform = "arm64"; platform = "arm64";
} }
const LEGO_VERSION = process.env.LEGO_VERSION; const LEGO_VERSION = process.env.LEGO_VERSION;
let legoZipFile = `${legoDir}/lego_v${LEGO_VERSION}_windows_${platform}.zip`; let legoZipFileName = `lego_v${LEGO_VERSION}_windows_${platform}.zip`;
if (os_type === "linux") { if (os_type === "linux") {
legoZipFile = `${legoDir}/lego_v${LEGO_VERSION}_linux_${platform}.tar.gz`; legoZipFileName = `lego_v${LEGO_VERSION}_linux_${platform}.tar.gz`;
} }
if (!fs.existsSync(legoZipFile)) { const legoZipFilePath = `${legoDir}/${legoZipFileName}`;
this.logger.info(`lego文件不存在:${legoZipFile},准备下载`); if (!fs.existsSync(legoZipFilePath)) {
const downloadUrl = `https://github.com/go-acme/lego/releases/download/v${LEGO_VERSION}/lego_v${LEGO_VERSION}_${os_type}_${platform}.tar.gz`; this.logger.info(`lego文件不存在:${legoZipFilePath},准备下载`);
await this.ctx.utils.download( const downloadUrl = `https://github.com/go-acme/lego/releases/download/v${LEGO_VERSION}/${legoZipFileName}`;
this.http, await this.ctx.download(
{ {
url: downloadUrl, url: downloadUrl,
method: "GET", method: "GET",
logRes: false,
}, },
legoZipFile legoZipFilePath
); );
this.logger.info("下载lego成功"); this.logger.info("下载lego成功");
} }
@ -157,7 +158,7 @@ export class CertApplyLegoPlugin extends CertApplyBasePlugin {
if (os_type === "linux") { if (os_type === "linux") {
//tar是否存在 //tar是否存在
await this.ctx.utils.sp.spawn({ await this.ctx.utils.sp.spawn({
cmd: `tar -zxvf ${legoZipFile} -C ${legoDir}/`, cmd: `tar -zxvf ${legoZipFilePath} -C ${legoDir}/`,
}); });
await this.ctx.utils.sp.spawn({ await this.ctx.utils.sp.spawn({
cmd: `chmod +x ${legoDir}/*`, cmd: `chmod +x ${legoDir}/*`,
@ -165,12 +166,12 @@ export class CertApplyLegoPlugin extends CertApplyBasePlugin {
this.logger.info("解压lego成功"); this.logger.info("解压lego成功");
} else { } else {
const zip = new JSZip(); const zip = new JSZip();
const data = fs.readFileSync(legoZipFile); const data = fs.readFileSync(legoZipFilePath);
const zipData = await zip.loadAsync(data); const zipData = await zip.loadAsync(data);
const files = Object.keys(zipData.files); const files = Object.keys(zipData.files);
for (const file of files) { for (const file of files) {
const content = await zipData.files[file].async("nodebuffer"); const content = await zipData.files[file].async("nodebuffer");
fs.writeFileSync(legoPath, content); fs.writeFileSync(`${legoDir}/${file}`, content);
} }
this.logger.info("解压lego成功"); this.logger.info("解压lego成功");
} }

View File

@ -2,7 +2,7 @@ import path from 'path';
import * as _ from 'lodash-es'; import * as _ from 'lodash-es';
import yaml from 'js-yaml'; import yaml from 'js-yaml';
import fs from 'fs'; import fs from 'fs';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
function parseEnv(defaultConfig: any) { function parseEnv(defaultConfig: any) {
const config = {}; const config = {};

View File

@ -12,7 +12,7 @@ import cors from '@koa/cors';
import { GlobalExceptionMiddleware } from './middleware/global-exception.js'; import { GlobalExceptionMiddleware } from './middleware/global-exception.js';
import { PreviewMiddleware } from './middleware/preview.js'; import { PreviewMiddleware } from './middleware/preview.js';
import { AuthorityMiddleware } from './middleware/authority.js'; import { AuthorityMiddleware } from './middleware/authority.js';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import { ResetPasswdMiddleware } from './middleware/reset-passwd/middleware.js'; import { ResetPasswdMiddleware } from './middleware/reset-passwd/middleware.js';
import DefaultConfig from './config/config.default.js'; import DefaultConfig from './config/config.default.js';
import * as libServer from '@certd/lib-server'; import * as libServer from '@certd/lib-server';

View File

@ -1,6 +1,6 @@
import { Controller, Get, Provide } from '@midwayjs/core'; import { Controller, Get, Provide } from '@midwayjs/core';
import { BaseController, Constants } from '@certd/lib-server'; import { BaseController, Constants } from '@certd/lib-server';
import { http, logger } from '@certd/pipeline'; import { http, logger } from '@certd/basic';
/** /**
*/ */
@Provide() @Provide()

View File

@ -2,7 +2,7 @@ import { Controller, Fields, Files, Get, Inject, Post, Provide, Query } from '@m
import { BaseController, Constants, FileService, UploadFileItem, uploadTmpFileCacheKey } from '@certd/lib-server'; import { BaseController, Constants, FileService, UploadFileItem, uploadTmpFileCacheKey } from '@certd/lib-server';
import send from 'koa-send'; import send from 'koa-send';
import { nanoid } from 'nanoid'; import { nanoid } from 'nanoid';
import { cache } from '@certd/pipeline'; import { cache } from '@certd/basic';
import { UploadFileInfo } from '@midwayjs/upload'; import { UploadFileInfo } from '@midwayjs/upload';
/** /**

View File

@ -1,5 +1,5 @@
import { Controller, Get, Inject, MidwayEnvironmentService, Provide } from '@midwayjs/core'; import { Controller, Get, Inject, MidwayEnvironmentService, Provide } from '@midwayjs/core';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import { Constants } from '@certd/lib-server'; import { Constants } from '@certd/lib-server';
@Provide() @Provide()

View File

@ -1,6 +1,6 @@
import { Config, Controller, Get, Inject, Provide } from '@midwayjs/core'; import { Config, Controller, Get, Inject, Provide } from '@midwayjs/core';
import { BaseController, Constants, SysHeaderMenus, SysInstallInfo, SysPublicSettings, SysSettingsService, SysSiteEnv, SysSiteInfo } from '@certd/lib-server'; import { BaseController, Constants, SysHeaderMenus, SysInstallInfo, SysPublicSettings, SysSettingsService, SysSiteEnv, SysSiteInfo } from '@certd/lib-server';
import { AppKey, getPlusInfo } from '@certd/pipeline'; import { AppKey, getPlusInfo } from '@certd/plus-core';
/** /**
*/ */

View File

@ -1,21 +1,11 @@
import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core'; import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
import { Constants } from '@certd/lib-server'; import { Constants } from '@certd/lib-server';
import { import { AccessRequestHandleReq, ITaskPlugin, newAccess, pluginRegistry, PluginRequestHandleReq, TaskInstanceContext } from '@certd/pipeline';
AccessRequestHandleReq,
http,
ITaskPlugin,
logger,
mergeUtils,
newAccess,
pluginRegistry,
PluginRequestHandleReq,
TaskInstanceContext,
utils,
} from '@certd/pipeline';
import { BaseController } from '@certd/lib-server'; import { BaseController } from '@certd/lib-server';
import { AccessService } from '../../modules/pipeline/service/access-service.js'; import { AccessService } from '../../modules/pipeline/service/access-service.js';
import { EmailService } from '../../modules/basic/service/email-service.js'; import { EmailService } from '../../modules/basic/service/email-service.js';
import { AccessGetter } from '../../modules/pipeline/service/access-getter.js'; import { AccessGetter } from '../../modules/pipeline/service/access-getter.js';
import { http, HttpRequestConfig, logger, mergeUtils, utils } from '@certd/basic';
@Provide() @Provide()
@Controller('/api/pi/handle') @Controller('/api/pi/handle')
@ -64,12 +54,21 @@ export class HandleController extends BaseController {
const accessGetter = new AccessGetter(userId, this.accessService.getById.bind(this.accessService)); const accessGetter = new AccessGetter(userId, this.accessService.getById.bind(this.accessService));
const download = async (config: HttpRequestConfig, savePath: string) => {
await utils.download({
http,
logger,
config,
savePath,
});
};
//@ts-ignore //@ts-ignore
const taskCtx: TaskInstanceContext = { const taskCtx: TaskInstanceContext = {
pipeline: undefined, pipeline: undefined,
step: undefined, step: undefined,
lastStatus: undefined, lastStatus: undefined,
http, http,
download,
logger: logger, logger: logger,
inputChanged: true, inputChanged: true,
accessService: accessGetter, accessService: accessGetter,

View File

@ -7,7 +7,7 @@ import { HistoryEntity } from '../../modules/pipeline/entity/history.js';
import { HistoryLogEntity } from '../../modules/pipeline/entity/history-log.js'; import { HistoryLogEntity } from '../../modules/pipeline/entity/history-log.js';
import { PipelineService } from '../../modules/pipeline/service/pipeline-service.js'; import { PipelineService } from '../../modules/pipeline/service/pipeline-service.js';
import * as fs from 'fs'; import * as fs from 'fs';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import { AuthService } from '../../modules/sys/authority/service/auth-service.js'; import { AuthService } from '../../modules/sys/authority/service/auth-service.js';
import { SysSettingsService } from '@certd/lib-server'; import { SysSettingsService } from '@certd/lib-server';
import { In } from 'typeorm'; import { In } from 'typeorm';

View File

@ -1,7 +1,7 @@
import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/core'; import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/core';
import { AccessService } from '../../../modules/pipeline/service/access-service.js'; import { AccessService } from '../../../modules/pipeline/service/access-service.js';
import { AccessController } from '../../pipeline/access-controller.js'; import { AccessController } from '../../pipeline/access-controller.js';
import { checkComm } from '@certd/pipeline'; import { checkComm } from '@certd/plus-core';
/** /**
* *

View File

@ -1,6 +1,6 @@
import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core'; import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
import { BaseController, PlusService } from '@certd/lib-server'; import { BaseController, PlusService } from '@certd/lib-server';
import { AppKey } from '@certd/pipeline'; import { AppKey } from '@certd/plus-core';
import { SysSettingsService } from '@certd/lib-server'; import { SysSettingsService } from '@certd/lib-server';
import { SysInstallInfo } from '@certd/lib-server'; import { SysInstallInfo } from '@certd/lib-server';

View File

@ -1,6 +1,7 @@
import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core'; import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
import { BaseController, PlusService, SysInstallInfo, SysSettingsService } from '@certd/lib-server'; import { BaseController, PlusService, SysInstallInfo, SysSettingsService } from '@certd/lib-server';
import { AppKey, logger } from '@certd/pipeline'; import { AppKey } from '@certd/plus-core';
import { logger } from '@certd/basic';
/** /**
*/ */

View File

@ -4,7 +4,7 @@ import * as _ from 'lodash-es';
import { PipelineService } from '../../../modules/pipeline/service/pipeline-service.js'; import { PipelineService } from '../../../modules/pipeline/service/pipeline-service.js';
import { UserSettingsService } from '../../../modules/mine/service/user-settings-service.js'; import { UserSettingsService } from '../../../modules/mine/service/user-settings-service.js';
import { getEmailSettings } from '../../../modules/sys/settings/fix.js'; import { getEmailSettings } from '../../../modules/sys/settings/fix.js';
import { http, logger } from '@certd/pipeline'; import { http, logger } from '@certd/basic';
/** /**
*/ */

View File

@ -2,7 +2,7 @@ import { Init, Inject, MidwayWebRouterService, Provide, Scope, ScopeEnum } from
import { IMidwayKoaContext, IWebMiddleware, NextFunction } from '@midwayjs/koa'; import { IMidwayKoaContext, IWebMiddleware, NextFunction } from '@midwayjs/koa';
import jwt from 'jsonwebtoken'; import jwt from 'jsonwebtoken';
import { Constants } from '@certd/lib-server'; import { Constants } from '@certd/lib-server';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import { AuthService } from '../modules/sys/authority/service/auth-service.js'; import { AuthService } from '../modules/sys/authority/service/auth-service.js';
import { SysSettingsService } from '@certd/lib-server'; import { SysSettingsService } from '@certd/lib-server';
import { SysPrivateSettings } from '@certd/lib-server'; import { SysPrivateSettings } from '@certd/lib-server';

View File

@ -1,6 +1,6 @@
import { Provide } from '@midwayjs/core'; import { Provide } from '@midwayjs/core';
import { IWebMiddleware, IMidwayKoaContext, NextFunction } from '@midwayjs/koa'; import { IWebMiddleware, IMidwayKoaContext, NextFunction } from '@midwayjs/koa';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import { Result } from '@certd/lib-server'; import { Result } from '@certd/lib-server';
@Provide() @Provide()

View File

@ -2,7 +2,7 @@ import { Autoload, Config, Init, Inject, Provide, Scope, ScopeEnum } from '@midw
import { IMidwayKoaContext, IWebMiddleware, NextFunction } from '@midwayjs/koa'; import { IMidwayKoaContext, IWebMiddleware, NextFunction } from '@midwayjs/koa';
import { CommonException } from '@certd/lib-server'; import { CommonException } from '@certd/lib-server';
import { UserService } from '../../modules/sys/authority/service/user-service.js'; import { UserService } from '../../modules/sys/authority/service/user-service.js';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
/** /**
* *

View File

@ -1,5 +1,5 @@
import { Autoload, Config, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core'; import { Autoload, Config, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import { UserService } from '../sys/authority/service/user-service.js'; import { UserService } from '../sys/authority/service/user-service.js';
import { PlusService, SysInstallInfo, SysPrivateSettings, SysSettingsService } from '@certd/lib-server'; import { PlusService, SysInstallInfo, SysPrivateSettings, SysSettingsService } from '@certd/lib-server';
import { nanoid } from 'nanoid'; import { nanoid } from 'nanoid';

View File

@ -1,6 +1,6 @@
import { Autoload, Config, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core'; import { Autoload, Config, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core';
import { PipelineService } from '../pipeline/service/pipeline-service.js'; import { PipelineService } from '../pipeline/service/pipeline-service.js';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import { SysSettingsService } from '@certd/lib-server'; import { SysSettingsService } from '@certd/lib-server';
@Autoload() @Autoload()

View File

@ -1,5 +1,7 @@
import { App, Autoload, Config, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core'; import { App, Autoload, Config, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core';
import { getPlusInfo, isPlus, logger } from '@certd/pipeline'; import { getPlusInfo, isPlus } from '@certd/plus-core';
import { logger } from '@certd/basic';
import { SysInstallInfo, SysSettingsService } from '@certd/lib-server'; import { SysInstallInfo, SysSettingsService } from '@certd/lib-server';
import { getVersion } from '../../utils/version.js'; import { getVersion } from '../../utils/version.js';
import dayjs from 'dayjs'; import dayjs from 'dayjs';

View File

@ -1,4 +1,4 @@
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import fs from 'fs'; import fs from 'fs';
// @ts-ignore // @ts-ignore
import forge from 'node-forge'; import forge from 'node-forge';

View File

@ -2,7 +2,7 @@ import https from 'node:https';
import fs from 'fs'; import fs from 'fs';
import { Application } from '@midwayjs/koa'; import { Application } from '@midwayjs/koa';
import { createSelfCertificate } from './self-certificate.js'; import { createSelfCertificate } from './self-certificate.js';
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
export type HttpsServerOptions = { export type HttpsServerOptions = {
enabled: boolean; enabled: boolean;

View File

@ -1,6 +1,10 @@
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core'; import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core';
import type { EmailSend } from '@certd/pipeline'; import type { EmailSend } from '@certd/pipeline';
import { IEmailService, isPlus, logger } from '@certd/pipeline'; import { IEmailService } from '@certd/pipeline';
import { logger } from '@certd/basic';
import { isPlus } from '@certd/plus-core';
import nodemailer from 'nodemailer'; import nodemailer from 'nodemailer';
import type SMTPConnection from 'nodemailer/lib/smtp-connection'; import type SMTPConnection from 'nodemailer/lib/smtp-connection';
import { UserSettingsService } from '../../mine/service/user-settings-service.js'; import { UserSettingsService } from '../../mine/service/user-settings-service.js';

View File

@ -4,7 +4,9 @@ import { Repository } from 'typeorm';
import { BaseService, PlusService, ValidateException } from '@certd/lib-server'; import { BaseService, PlusService, ValidateException } from '@certd/lib-server';
import { CnameRecordEntity, CnameRecordStatusType } from '../entity/cname-record.js'; import { CnameRecordEntity, CnameRecordStatusType } from '../entity/cname-record.js';
import { createDnsProvider, IDnsProvider, parseDomain } from '@certd/plugin-cert'; import { createDnsProvider, IDnsProvider, parseDomain } from '@certd/plugin-cert';
import { cache, CnameProvider, http, logger, utils } from '@certd/pipeline'; import { CnameProvider } from '@certd/pipeline';
import { cache, http, logger, utils } from '@certd/basic';
import { AccessService } from '../../pipeline/service/access-service.js'; import { AccessService } from '../../pipeline/service/access-service.js';
import { isDev } from '../../../utils/env.js'; import { isDev } from '../../../utils/env.js';
import { walkTxtRecord } from '@certd/acme-client'; import { walkTxtRecord } from '@certd/acme-client';

View File

@ -1,5 +1,5 @@
import parser from 'cron-parser'; import parser from 'cron-parser';
import { ILogger } from '@certd/pipeline'; import { ILogger } from '@certd/basic';
export type CronTaskReq = { export type CronTaskReq = {
/** /**

View File

@ -6,9 +6,11 @@ import { HistoryEntity } from '../entity/history.js';
import { PipelineEntity } from '../entity/pipeline.js'; import { PipelineEntity } from '../entity/pipeline.js';
import { HistoryDetail } from '../entity/vo/history-detail.js'; import { HistoryDetail } from '../entity/vo/history-detail.js';
import { HistoryLogService } from './history-log-service.js'; import { HistoryLogService } from './history-log-service.js';
import { FileItem, FileStore, logger, Pipeline, RunnableCollection } from '@certd/pipeline'; import { FileItem, FileStore, Pipeline, RunnableCollection } from '@certd/pipeline';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { DbAdapter } from '../../db/index.js'; import { DbAdapter } from '../../db/index.js';
import { logger } from '@certd/basic';
/** /**
* *

View File

@ -4,7 +4,7 @@ import { In, MoreThan, Repository } from 'typeorm';
import { BaseService, NeedVIPException, PageReq, SysPublicSettings, SysSettingsService } from '@certd/lib-server'; import { BaseService, NeedVIPException, PageReq, SysPublicSettings, SysSettingsService } from '@certd/lib-server';
import { PipelineEntity } from '../entity/pipeline.js'; import { PipelineEntity } from '../entity/pipeline.js';
import { PipelineDetail } from '../entity/vo/pipeline-detail.js'; import { PipelineDetail } from '../entity/vo/pipeline-detail.js';
import { Executor, isPlus, logger, Pipeline, ResultType, RunHistory, UserInfo } from '@certd/pipeline'; import { Executor, Pipeline, ResultType, RunHistory, UserInfo } from '@certd/pipeline';
import { AccessService } from './access-service.js'; import { AccessService } from './access-service.js';
import { DbStorage } from './db-storage.js'; import { DbStorage } from './db-storage.js';
import { StorageService } from './storage-service.js'; import { StorageService } from './storage-service.js';
@ -21,6 +21,8 @@ import { CnameProxyService } from './cname-proxy-service.js';
import { PluginConfigGetter } from '../../plugin/service/plugin-config-getter.js'; import { PluginConfigGetter } from '../../plugin/service/plugin-config-getter.js';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { DbAdapter } from '../../db/index.js'; import { DbAdapter } from '../../db/index.js';
import { isPlus } from '@certd/plus-core';
import { logger } from '@certd/basic';
const runningTasks: Map<string | number, Executor> = new Map(); const runningTasks: Map<string | number, Executor> = new Map();
const freeCount = 10; const freeCount = 10;

View File

@ -3,7 +3,7 @@ import { BaseService, PageReq } from '@certd/lib-server';
import { PluginEntity } from '../entity/plugin.js'; import { PluginEntity } from '../entity/plugin.js';
import { InjectEntityModel } from '@midwayjs/typeorm'; import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { isComm } from '@certd/pipeline'; import { isComm } from '@certd/plus-core';
import { BuiltInPluginService } from '../../pipeline/service/builtin-plugin-service.js'; import { BuiltInPluginService } from '../../pipeline/service/builtin-plugin-service.js';
import { merge } from 'lodash-es'; import { merge } from 'lodash-es';

View File

@ -12,7 +12,7 @@ import bcrypt from 'bcryptjs';
import { RandomUtil } from '../../../../utils/random.js'; import { RandomUtil } from '../../../../utils/random.js';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { DbAdapter } from '../../../db/index.js'; import { DbAdapter } from '../../../db/index.js';
import { utils } from '@certd/pipeline'; import { utils } from '@certd/basic';
/** /**
* *
*/ */

View File

@ -1,5 +1,7 @@
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { ILogger } from '@certd/basic';
import { AliyunAccess, AliyunClient } from '@certd/plugin-plus'; import { AliyunAccess, AliyunClient } from '@certd/plugin-plus';
@IsDnsProvider({ @IsDnsProvider({

View File

@ -1,5 +1,7 @@
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, HttpClient, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { HttpClient, ILogger } from '@certd/basic';
import { CloudflareAccess } from './access.js'; import { CloudflareAccess } from './access.js';
export type CloudflareRecord = { export type CloudflareRecord = {

View File

@ -1,7 +1,9 @@
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, HttpClient, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { HttpClient, ILogger } from '@certd/basic';
import { DemoAccess } from './access.js'; import { DemoAccess } from './access.js';
import { isDev } from "../../utils/env.js"; import { isDev } from '../../utils/env.js';
type DemoRecord = { type DemoRecord = {
// 这里定义Record记录的数据结构跟对应云平台接口返回值一样即可一般是拿到id就行用于删除txt解析记录清理申请痕迹 // 这里定义Record记录的数据结构跟对应云平台接口返回值一样即可一般是拿到id就行用于删除txt解析记录清理申请痕迹

View File

@ -1,7 +1,7 @@
import crypto from 'crypto'; import crypto from 'crypto';
import querystring from 'querystring'; import querystring from 'querystring';
import { DogeCloudAccess } from '../access.js'; import { DogeCloudAccess } from '../access.js';
import { HttpClient } from '@certd/pipeline'; import { HttpClient } from '@certd/basic';
export class DogeClient { export class DogeClient {
accessKey: string; accessKey: string;

View File

@ -1,5 +1,7 @@
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { ILogger } from '@certd/basic';
import { DynadotAccess } from './access.js'; import { DynadotAccess } from './access.js';
import querystring from 'querystring'; import querystring from 'querystring';

View File

@ -2,7 +2,7 @@
import ssh2, { ConnectConfig, ExecOptions } from 'ssh2'; import ssh2, { ConnectConfig, ExecOptions } from 'ssh2';
import path from 'path'; import path from 'path';
import * as _ from 'lodash-es'; import * as _ from 'lodash-es';
import { ILogger } from '@certd/pipeline'; import { ILogger } from '@certd/basic';
import { SshAccess } from '../access/index.js'; import { SshAccess } from '../access/index.js';
import stripAnsi from 'strip-ansi'; import stripAnsi from 'strip-ansi';
import { SocksClient } from 'socks'; import { SocksClient } from 'socks';

View File

@ -1,6 +1,8 @@
import * as _ from 'lodash-es'; import * as _ from 'lodash-es';
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { ILogger } from '@certd/basic';
import { HuaweiAccess } from '../access/index.js'; import { HuaweiAccess } from '../access/index.js';
import { ApiRequestOptions, HuaweiYunClient } from '@certd/lib-huawei'; import { ApiRequestOptions, HuaweiYunClient } from '@certd/lib-huawei';

View File

@ -1,7 +1,8 @@
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, resetLogConfigure, RunStrategy, TaskInput } from '@certd/pipeline'; import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
import { HuaweiAccess } from '../../access/index.js'; import { HuaweiAccess } from '../../access/index.js';
import { CertInfo } from '@certd/plugin-cert'; import { CertInfo } from '@certd/plugin-cert';
import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from '@certd/plugin-plus'; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from '@certd/plugin-plus';
import { resetLogConfigure } from '@certd/basic';
@IsTaskPlugin({ @IsTaskPlugin({
name: 'HauweiDeployCertToCDN', name: 'HauweiDeployCertToCDN',

View File

@ -1,5 +1,6 @@
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { ILogger } from '@certd/basic';
import { JDCloudAccess } from './access.js'; import { JDCloudAccess } from './access.js';
function promisfy(func: any) { function promisfy(func: any) {
return (params: any, regionId: string) => { return (params: any, regionId: string) => {

View File

@ -1,4 +1,6 @@
import { Autowire, HttpClient, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { HttpClient, ILogger } from '@certd/basic';
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import * as _ from 'lodash-es'; import * as _ from 'lodash-es';
import { DnspodAccess } from '../access/index.js'; import { DnspodAccess } from '../access/index.js';

View File

@ -1,4 +1,6 @@
import { Autowire, HttpClient, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { HttpClient, ILogger } from '@certd/basic';
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { TencentAccess } from '@certd/plugin-plus'; import { TencentAccess } from '@certd/plugin-plus';

View File

@ -1,6 +1,6 @@
import { TencentAccess } from '@certd/plugin-plus'; import { TencentAccess } from '@certd/plugin-plus';
import { CertInfo } from '@certd/plugin-cert'; import { CertInfo } from '@certd/plugin-cert';
import { ILogger } from '@certd/pipeline'; import { ILogger } from '@certd/basic';
export class TencentSslClient { export class TencentSslClient {
access: TencentAccess; access: TencentAccess;
logger: ILogger; logger: ILogger;

View File

@ -1,4 +1,4 @@
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput, utils } from '@certd/pipeline'; import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
import { TencentAccess } from '@certd/plugin-plus'; import { TencentAccess } from '@certd/plugin-plus';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
@ -131,10 +131,10 @@ export class DeployCertToTencentCLB extends AbstractTaskPlugin {
} }
try { try {
await utils.sleep(2000); await this.ctx.utils.sleep(2000);
let newCertId = await this.getCertIdFromProps(client); let newCertId = await this.getCertIdFromProps(client);
if ((lastCertId && newCertId === lastCertId) || (!lastCertId && !newCertId)) { if ((lastCertId && newCertId === lastCertId) || (!lastCertId && !newCertId)) {
await utils.sleep(2000); await this.ctx.utils.sleep(2000);
newCertId = await this.getCertIdFromProps(client); newCertId = await this.getCertIdFromProps(client);
} }
if (newCertId === lastCertId) { if (newCertId === lastCertId) {

View File

@ -1,5 +1,8 @@
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, HttpClient, ILogger } from '@certd/pipeline'; import { Autowire } from '@certd/pipeline';
import { HttpClient, ILogger } from '@certd/basic';
import { WestAccess } from './access.js'; import { WestAccess } from './access.js';
type westRecord = { type westRecord = {

View File

@ -1,6 +1,7 @@
import { AbstractTaskPlugin, HttpClient, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
import { CertInfo } from '@certd/plugin-cert'; import { CertInfo } from '@certd/plugin-cert';
import { WoaiAccess } from '../access.js'; import { WoaiAccess } from '../access.js';
import { HttpClient } from '@certd/basic';
@IsTaskPlugin({ @IsTaskPlugin({
name: 'WoaiCDN', name: 'WoaiCDN',

View File

@ -1 +1 @@
export { isDev } from '@certd/pipeline'; export { isDev } from '@certd/basic';

View File

@ -1,4 +1,4 @@
import { utils } from '@certd/pipeline'; import { utils } from '@certd/basic';
export async function request(config: any): Promise<any> { export async function request(config: any): Promise<any> {
try { try {

View File

@ -1,4 +1,4 @@
import { logger } from '@certd/pipeline'; import { logger } from '@certd/basic';
import fs from 'fs'; import fs from 'fs';
export async function getVersion() { export async function getVersion() {