fix(core): Refactor import paths and update dependency references
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import * as plugins from '../smartacme.plugins.js';
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { IChallengeHandler } from './IChallengeHandler.js';
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { promises as fs } from 'fs';
|
||||
import * as path from 'path';
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { IChallengeHandler } from './IChallengeHandler.js';
|
||||
|
||||
/**
|
||||
@ -19,6 +18,9 @@ export class Http01Webroot implements IChallengeHandler<{
|
||||
keyAuthorization: string;
|
||||
webPath: string;
|
||||
}> {
|
||||
private smartnetworkInstance = new plugins.smartnetwork.SmartNetwork();
|
||||
private smartdnsClient = new plugins.smartdnsClient.Smartdns({});
|
||||
|
||||
private webroot: string;
|
||||
|
||||
constructor(options: Http01WebrootOptions) {
|
||||
@ -31,10 +33,10 @@ export class Http01Webroot implements IChallengeHandler<{
|
||||
|
||||
public async prepare(ch: { token: string; keyAuthorization: string; webPath: string }): Promise<void> {
|
||||
const relWebPath = ch.webPath.replace(/^\/+/, '');
|
||||
const filePath = path.join(this.webroot, relWebPath);
|
||||
const dir = path.dirname(filePath);
|
||||
await fs.mkdir(dir, { recursive: true });
|
||||
await fs.writeFile(filePath, ch.keyAuthorization, 'utf8');
|
||||
const filePath = plugins.path.join(this.webroot, relWebPath);
|
||||
const dir = plugins.path.dirname(filePath);
|
||||
await plugins.fs.promises.mkdir(dir, { recursive: true });
|
||||
await plugins.fs.promises.writeFile(filePath, ch.keyAuthorization, 'utf8');
|
||||
}
|
||||
|
||||
public async verify(ch: { webPath: string; keyAuthorization: string }): Promise<void> {
|
||||
@ -44,11 +46,24 @@ export class Http01Webroot implements IChallengeHandler<{
|
||||
|
||||
public async cleanup(ch: { token: string; webPath: string }): Promise<void> {
|
||||
const relWebPath = ch.webPath.replace(/^\/+/, '');
|
||||
const filePath = path.join(this.webroot, relWebPath);
|
||||
const filePath = plugins.path.join(this.webroot, relWebPath);
|
||||
try {
|
||||
await fs.unlink(filePath);
|
||||
await plugins.fs.promises.unlink(filePath);
|
||||
} catch {
|
||||
// ignore missing file
|
||||
}
|
||||
}
|
||||
|
||||
public async checkWetherDomainIsSupported(domainArg: string): Promise<boolean> {
|
||||
const publicIps = await this.smartnetworkInstance.getPublicIps();
|
||||
const aRecords = await this.smartdnsClient.getRecordsA(domainArg);
|
||||
const aaaaRecords = await this.smartdnsClient.getRecordsAAAA(domainArg);
|
||||
if (aRecords.length && aRecords.some(record => record.value !== publicIps.v4)) {
|
||||
return false;
|
||||
}
|
||||
if (aaaaRecords.length && aaaaRecords.some(record => record.value !== publicIps.v6)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { IChallengeHandler } from './IChallengeHandler.js';
|
||||
|
||||
/**
|
||||
@ -13,6 +14,8 @@ export interface Http01MemoryHandlerChallenge {
|
||||
}
|
||||
|
||||
export class Http01MemoryHandler implements IChallengeHandler<Http01MemoryHandlerChallenge> {
|
||||
private smartnetworkInstance = new plugins.smartnetwork.SmartNetwork();
|
||||
private smartdnsClient = new plugins.smartdnsClient.Smartdns({});
|
||||
private store: Map<string, string> = new Map();
|
||||
|
||||
public getSupportedTypes(): string[] {
|
||||
@ -64,4 +67,17 @@ export class Http01MemoryHandler implements IChallengeHandler<Http01MemoryHandle
|
||||
res.statusCode = 404;
|
||||
return res.end();
|
||||
}
|
||||
}
|
||||
|
||||
public async checkWetherDomainIsSupported(domainArg: string): Promise<boolean> {
|
||||
const publicIps = await this.smartnetworkInstance.getPublicIps();
|
||||
const aRecords = await this.smartdnsClient.getRecordsA(domainArg);
|
||||
const aaaaRecords = await this.smartdnsClient.getRecordsAAAA(domainArg);
|
||||
if (aRecords.length && aRecords.some((record) => record.value !== publicIps.v4)) {
|
||||
return false;
|
||||
}
|
||||
if (aaaaRecords.length && aaaaRecords.some((record) => record.value !== publicIps.v6)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -19,4 +19,6 @@ export interface IChallengeHandler<T> {
|
||||
* Clean up resources: remove DNS record, stop server.
|
||||
*/
|
||||
cleanup(ch: T): Promise<void>;
|
||||
|
||||
checkWetherDomainIsSupported(domainArg: string): Promise<boolean>;
|
||||
}
|
Reference in New Issue
Block a user