diff --git a/.trae/skills/access-plugin-dev/SKILL.md b/.trae/skills/access-plugin-dev/SKILL.md index 20e28a074..71eae368b 100644 --- a/.trae/skills/access-plugin-dev/SKILL.md +++ b/.trae/skills/access-plugin-dev/SKILL.md @@ -145,6 +145,20 @@ async doRequest(req: { action: string, data?: any }) { utils: typeof utils; accessService: IAccessService; } + + // this.ctx.http 只有request方法 + // 方法参数 + export type HttpRequestConfig = { + skipSslVerify?: boolean; + skipCheckRes?: boolean; + logParams?: boolean; + logRes?: boolean; + logData?: boolean; + httpProxy?: string; + returnOriginRes?: boolean; + } & AxiosRequestConfig; + + */ const res = await this.ctx.http.request({ url: "https://api.demo.cn/api/", diff --git a/.trae/skills/dns-provider-dev/SKILL.md b/.trae/skills/dns-provider-dev/SKILL.md index aab1540c7..4f8edb88a 100644 --- a/.trae/skills/dns-provider-dev/SKILL.md +++ b/.trae/skills/dns-provider-dev/SKILL.md @@ -105,6 +105,28 @@ async removeRecord(options: RemoveRecordOptions): Promise { } ``` +### 6. 实现 getDomainListPage 方法 +```typescript + /** + * 实现获取域名列表 + */ + async getDomainListPage(req: PageSearch): Promise> { + const pager = new Pager(req); + const res = await this.http.request({ + // 请求接口获取域名列表 + }) + const list = res.Domains?.map(item => ({ + id: item.Id, + domain: item.DomainName, + })) || [] + + return { + list, + total: res.Total, + } + } +``` + ### 6. 实例化插件 ```typescript @@ -204,11 +226,28 @@ export class DemoDnsProvider extends AbstractDnsProvider { this.logger.info('删除域名解析成功:', fullRecord, value); } + + /** + * 实现获取域名列表 + */ + async getDomainListPage(req: PageSearch): Promise> { + const pager = new Pager(req); + const res = await this.http.request({ + // 请求接口获取域名列表 + }) + const list = res.Domains?.map(item => ({ + id: item.Id, + domain: item.DomainName, + })) || [] + + return { + list, + total: res.Total, + } + } } // 实例化这个 provider,将其自动注册到系统中 -if (isDev()) { - // 你的实现 要去掉这个 if,不然生产环境将不会显示 - new DemoDnsProvider(); -} +new DemoDnsProvider(); + ``` \ No newline at end of file diff --git a/packages/core/acme-client/src/auto.js b/packages/core/acme-client/src/auto.js index 57b0e963b..03030c703 100644 --- a/packages/core/acme-client/src/auto.js +++ b/packages/core/acme-client/src/auto.js @@ -21,7 +21,8 @@ const defaultOpts = { }, challengeRemoveFn: async () => { throw new Error("Missing challengeRemoveFn()"); - } + }, + waitDnsDiffuseTime: 30, }; /** diff --git a/packages/core/acme-client/src/client.js b/packages/core/acme-client/src/client.js index 3f4bbcb01..0811648b7 100644 --- a/packages/core/acme-client/src/client.js +++ b/packages/core/acme-client/src/client.js @@ -577,7 +577,7 @@ class AcmeClient { const verifyFn = async (abort) => { if (this.opts.signal && this.opts.signal.aborted) { - abort(); + abort(true); throw new CancelError('用户取消'); } diff --git a/packages/core/acme-client/src/util.js b/packages/core/acme-client/src/util.js index a869619da..82a44069c 100644 --- a/packages/core/acme-client/src/util.js +++ b/packages/core/acme-client/src/util.js @@ -50,15 +50,18 @@ class Backoff { async function retryPromise(fn, attempts, backoff, logger = log) { let aborted = false; + let abortedFromUser = false; try { - const setAbort = () => { aborted = true; } + const setAbort = (fromUser = false) => { aborted = true; abortedFromUser = fromUser; } const data = await fn(setAbort); return data; } catch (e) { if (aborted){ - logger(`用户取消重试`); + if (abortedFromUser){ + logger(`用户取消重试`); + } throw e; } if ( ((backoff.attempts + 1) >= attempts)) { diff --git a/packages/core/acme-client/types/index.d.ts b/packages/core/acme-client/types/index.d.ts index a1d9dd899..805451f60 100644 --- a/packages/core/acme-client/types/index.d.ts +++ b/packages/core/acme-client/types/index.d.ts @@ -68,6 +68,7 @@ export interface ClientAutoOptions { preferredChain?: string; signal?: AbortSignal; profile?:string; + waitDnsDiffuseTime?: number; } export class Client { diff --git a/packages/ui/certd-client/src/components/icon-select.vue b/packages/ui/certd-client/src/components/icon-select.vue index 833de00ff..d7772cc28 100644 --- a/packages/ui/certd-client/src/components/icon-select.vue +++ b/packages/ui/certd-client/src/components/icon-select.vue @@ -1,5 +1,5 @@