fix(core): Refactor import paths and update dependency references
This commit is contained in:
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartacme',
|
||||
version: '7.3.0',
|
||||
version: '7.3.1',
|
||||
description: 'A TypeScript-based ACME client for LetsEncrypt certificate management with a focus on simplicity and power.'
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as plugins from '../smartacme.plugins.js';
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { ICertManager } from '../interfaces/certmanager.js';
|
||||
import { SmartacmeCert } from '../smartacme.classes.cert.js';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as plugins from '../smartacme.plugins.js';
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { ICertManager } from '../interfaces/certmanager.js';
|
||||
import { SmartacmeCert } from '../smartacme.classes.cert.js';
|
||||
|
||||
|
@ -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>;
|
||||
}
|
@ -1,3 +1,9 @@
|
||||
// node native
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
export { fs, path };
|
||||
|
||||
// @apiclient.xyz scope
|
||||
import * as cloudflare from '@apiclient.xyz/cloudflare';
|
||||
|
||||
@ -13,7 +19,9 @@ import * as lik from '@push.rocks/lik';
|
||||
import * as smartdata from '@push.rocks/smartdata';
|
||||
import * as smartdelay from '@push.rocks/smartdelay';
|
||||
import * as smartdnsClient from '@push.rocks/smartdns/client';
|
||||
import * as smartfile from '@push.rocks/smartfile';
|
||||
import * as smartlog from '@push.rocks/smartlog';
|
||||
import * as smartnetwork from '@push.rocks/smartnetwork';
|
||||
import * as smartpromise from '@push.rocks/smartpromise';
|
||||
import * as smartrequest from '@push.rocks/smartrequest';
|
||||
import * as smartunique from '@push.rocks/smartunique';
|
||||
@ -25,7 +33,9 @@ export {
|
||||
smartdata,
|
||||
smartdelay,
|
||||
smartdnsClient,
|
||||
smartfile,
|
||||
smartlog,
|
||||
smartnetwork,
|
||||
smartpromise,
|
||||
smartrequest,
|
||||
smartunique,
|
@ -1,4 +1,4 @@
|
||||
import * as plugins from './smartacme.plugins.js';
|
||||
import * as plugins from './plugins.js';
|
||||
|
||||
/**
|
||||
* Plain certificate record.
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as plugins from './smartacme.plugins.js';
|
||||
import * as plugins from './plugins.js';
|
||||
import * as interfaces from './interfaces/index.js';
|
||||
|
||||
/**
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as plugins from './smartacme.plugins.js';
|
||||
import * as plugins from './plugins.js';
|
||||
import type { ICertManager } from './interfaces/certmanager.js';
|
||||
import { SmartacmeCertMatcher } from './smartacme.classes.certmatcher.js';
|
||||
import { commitinfo } from './00_commitinfo_data.js';
|
||||
|
Reference in New Issue
Block a user