chore: 域名自动同步初步

This commit is contained in:
xiaojunnuo
2026-01-16 18:18:39 +08:00
parent 8685aa371a
commit be1a70299f
22 changed files with 248 additions and 10 deletions
@@ -1,5 +1,5 @@
import { HttpClient, ILogger, utils } from "@certd/basic";
import { IAccess, IServiceGetter, Registrable } from "@certd/pipeline";
import { IAccess, IServiceGetter, Pager, PageRes, Registrable } from "@certd/pipeline";
export type DnsProviderDefine = Registrable & {
accessType: string;
@@ -28,6 +28,12 @@ export type DnsProviderContext = {
serviceGetter: IServiceGetter;
};
export type DomainRecord = {
id: string;
domain: string;
thirdDns: boolean;
};
export interface IDnsProvider<T = any> {
onInstance(): Promise<void>;
@@ -51,6 +57,8 @@ export interface IDnsProvider<T = any> {
//中文域名是否需要punycode转码,如果返回True,则使用punycode来添加解析记录,否则使用中文域名添加解析记录
usePunyCode(): boolean;
getDomainListPage(pager: Pager): Promise<PageRes<DomainRecord>>;
}
export interface ISubDomainsGetter {
@@ -1,4 +1,5 @@
import { CreateRecordOptions, DnsProviderContext, DnsProviderDefine, IDnsProvider, RemoveRecordOptions } from "./api.js";
import { Pager, PageRes } from "@certd/pipeline";
import { CreateRecordOptions, DnsProviderContext, DnsProviderDefine, DomainRecord, IDnsProvider, RemoveRecordOptions } from "./api.js";
import { dnsProviderRegistry } from "./registry.js";
import { HttpClient, ILogger } from "@certd/basic";
import punycode from "punycode.js";
@@ -44,6 +45,10 @@ export abstract class AbstractDnsProvider<T = any> implements IDnsProvider<T> {
abstract onInstance(): Promise<void>;
abstract removeRecord(options: RemoveRecordOptions<T>): Promise<void>;
async getDomainListPage(pager: Pager): Promise<PageRes<DomainRecord>> {
throw new Error("Method not implemented.");
}
}
export async function createDnsProvider(opts: { dnsProviderType: string; context: DnsProviderContext }): Promise<IDnsProvider> {