Compare commits

..

6 Commits

Author SHA1 Message Date
9f66a0487f 6.1.3
Some checks failed
Default (tags) / security (push) Successful in 36s
Default (tags) / test (push) Failing after 53s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-30 12:59:20 +00:00
40cae220d0 fix(Dns01Handler): Update dependency versions and refine Dns01Handler implementation 2025-04-30 12:59:20 +00:00
f7dccb25e4 6.1.2
Some checks failed
Default (tags) / security (push) Successful in 22s
Default (tags) / test (push) Failing after 51s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-27 14:51:22 +00:00
da75c52c09 fix(repo): Update repository metadata by replacing the LICENSE file with a license.md file for improved consistency. 2025-04-27 14:51:22 +00:00
708145c550 6.1.1
Some checks failed
Default (tags) / security (push) Successful in 32s
Default (tags) / test (push) Failing after 51s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-04-27 14:50:28 +00:00
0de2178eb5 fix(readme): Fix license link reference in documentation 2025-04-27 14:50:28 +00:00
8 changed files with 140 additions and 62 deletions

View File

@ -1,5 +1,24 @@
# Changelog
## 2025-04-30 - 6.1.3 - fix(Dns01Handler)
Update dependency versions and refine Dns01Handler implementation
- Bump '@apiclient.xyz/cloudflare' to ^6.4.1 and '@tsclass/tsclass' to ^9.1.0 in package.json
- Remove duplicate Cloudflare import in smartacme.plugins.ts
- Refactor Dns01Handler to use IConvenientDnsProvider and add checkWetherDomainIsSupported method
- Align devDependencies versions for improved consistency
## 2025-04-27 - 6.1.2 - fix(repo)
Update repository metadata by replacing the LICENSE file with a license.md file for improved consistency.
- Removed the old LICENSE file.
- Introduced license.md as the new license documentation file.
## 2025-04-27 - 6.1.1 - fix(readme)
Fix license link reference in documentation
- Updated the license link from [license](license) to [license.md](license.md) in the License and Legal Information section
## 2025-04-27 - 6.1.0 - feat(readme)
Update documentation with detailed built-in challenge handlers and custom handler examples

View File

View File

@ -1,6 +1,6 @@
{
"name": "@push.rocks/smartacme",
"version": "6.1.0",
"version": "6.1.3",
"private": false,
"description": "A TypeScript-based ACME client for LetsEncrypt certificate management with a focus on simplicity and power.",
"main": "dist_ts/index.js",
@ -40,6 +40,7 @@
"homepage": "https://code.foss.global/push.rocks/smartacme#readme",
"dependencies": {
"@api.global/typedserver": "^3.0.74",
"@apiclient.xyz/cloudflare": "^6.4.1",
"@push.rocks/lik": "^6.2.2",
"@push.rocks/smartdata": "^5.15.1",
"@push.rocks/smartdelay": "^3.0.5",
@ -50,17 +51,16 @@
"@push.rocks/smartstring": "^4.0.15",
"@push.rocks/smarttime": "^4.1.1",
"@push.rocks/smartunique": "^3.0.9",
"@tsclass/tsclass": "^9.0.0",
"@tsclass/tsclass": "^9.1.0",
"acme-client": "^5.4.0"
},
"devDependencies": {
"@apiclient.xyz/cloudflare": "^6.3.2",
"@git.zone/tsbuild": "^2.3.2",
"@git.zone/tsrun": "^1.3.3",
"@git.zone/tstest": "^1.0.96",
"@push.rocks/qenv": "^6.1.0",
"@push.rocks/tapbundle": "^5.6.3",
"@types/node": "^22.15.2"
"@push.rocks/tapbundle": "^6.0.0",
"@types/node": "^22.15.3"
},
"files": [
"ts/**/*",

154
pnpm-lock.yaml generated
View File

@ -11,6 +11,9 @@ importers:
'@api.global/typedserver':
specifier: ^3.0.74
version: 3.0.74
'@apiclient.xyz/cloudflare':
specifier: ^6.4.1
version: 6.4.1
'@push.rocks/lik':
specifier: ^6.2.2
version: 6.2.2
@ -42,15 +45,12 @@ importers:
specifier: ^3.0.9
version: 3.0.9
'@tsclass/tsclass':
specifier: ^9.0.0
version: 9.0.0
specifier: ^9.1.0
version: 9.1.0
acme-client:
specifier: ^5.4.0
version: 5.4.0
devDependencies:
'@apiclient.xyz/cloudflare':
specifier: ^6.3.2
version: 6.3.2
'@git.zone/tsbuild':
specifier: ^2.3.2
version: 2.3.2
@ -64,11 +64,11 @@ importers:
specifier: ^6.1.0
version: 6.1.0
'@push.rocks/tapbundle':
specifier: ^5.6.3
version: 5.6.3(@aws-sdk/credential-providers@3.797.0)(socks@2.8.4)
specifier: ^6.0.0
version: 6.0.0(@aws-sdk/credential-providers@3.797.0)(socks@2.8.4)
'@types/node':
specifier: ^22.15.2
version: 22.15.2
specifier: ^22.15.3
version: 22.15.3
packages:
@ -87,8 +87,8 @@ packages:
'@api.global/typedsocket@3.0.1':
resolution: {integrity: sha512-xojiAVNXtHoxkpBo8U2HHJG8FrVXXuLvDNndSHXwx4C9VslUwDn5zSCI+PdBl8iAg+ZuBmKjqkpZZ9sL6DC5yQ==}
'@apiclient.xyz/cloudflare@6.3.2':
resolution: {integrity: sha512-u5ud25tR1epNVgAPtL2t1qZ7FOGsLhID4zAzwcIQQTqmBb43US0fkI/I+JjIW0uyHi12AI4gWez2ke2nAR4+pw==}
'@apiclient.xyz/cloudflare@6.4.1':
resolution: {integrity: sha512-RYFphnbunjK+Imq/3ynIQpAvIGBJ38kqSZ2nrpTm26zsBIxW7S6xEe3zhXfVMtUIgC99OL3Xr/SGXl3CNBwCug==}
'@aws-crypto/crc32@5.2.0':
resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
@ -821,6 +821,9 @@ packages:
'@push.rocks/smartexpect@1.6.1':
resolution: {integrity: sha512-NFQXEPkGiMNxyvFwKyzDWe3ADYdf8KNvIcV7TGNZZT3uPQtk65te4Q+a1cWErjP/61yE9XdYiQA66QQp+TV9IQ==}
'@push.rocks/smartexpect@2.2.2':
resolution: {integrity: sha512-s2zJlLc6Wub7P/jgKSM51kW2UjslxQwx2BXoyJVO95OgiOwarde0AuxPR0lfRA/FvHdBfTmJf4upiWtcjYMB/Q==}
'@push.rocks/smartfeed@1.0.11':
resolution: {integrity: sha512-02uhXxQamgfBo3T12FsAdfyElnpoWuDUb08B2AE60DbIaukVx/7Mi17xwobApY1flNSr5StZDt8N8vxPhBhIXw==}
@ -956,6 +959,9 @@ packages:
'@push.rocks/tapbundle@5.6.3':
resolution: {integrity: sha512-hFzsf59rg1K70i45llj7PCyyCZp7JW19XRR+Q1gge1T0pBN8Wi53aYqP/2qtxdMiNVe2s3ESp6VJZv3sLOMYPQ==}
'@push.rocks/tapbundle@6.0.0':
resolution: {integrity: sha512-ARIs189TysvI8EsPAC7LH6O0WbBYI9E7XxdihwmM6LRgLvzAbp1agfO6lOjpKrAYWKjT3KdlUEihilxOBrgTYQ==}
'@push.rocks/taskbuffer@3.1.7':
resolution: {integrity: sha512-QktGVJPucqQmW/QNGnscf4FAigT1H7JWKFGFdRuDEaOHKFh9qN+PXG3QY7DtZ4jfXdGLxPN4yAufDuPSAJYFnw==}
@ -1336,8 +1342,8 @@ packages:
'@tsclass/tsclass@8.2.1':
resolution: {integrity: sha512-bRDCfJTipsTcK6eEokWdsOR1mGCQFeM7zTg6PRHzbxTWQcWQD9AhEr2q3CrPcmAbvIS7fvkO6/pU/mPm1MZxhQ==}
'@tsclass/tsclass@9.0.0':
resolution: {integrity: sha512-QuV2WKzi3p1ONq0UR+hNulG62D6vRPJxOXunWvN9zpWx6Uj70DKntMu8nqEIWUPgL3UKIPe7GN8l6mPCdxdcEg==}
'@tsclass/tsclass@9.1.0':
resolution: {integrity: sha512-PkG1bXK/bqVtxaRHje+iJHjtcdRHLHrNTOkzqh+jv2A7mgiyNo2YBJIl4eEJLkw1X3FwEFU4vCAtsegSmJgRug==}
'@types/accepts@1.3.7':
resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==}
@ -1499,8 +1505,8 @@ packages:
'@types/node@18.19.87':
resolution: {integrity: sha512-OIAAu6ypnVZHmsHCeJ+7CCSub38QNBS9uceMQeg7K5Ur0Jr+wG9wEOEvvMbhp09pxD5czIUy/jND7s7Tb6Nw7A==}
'@types/node@22.15.2':
resolution: {integrity: sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==}
'@types/node@22.15.3':
resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==}
'@types/parse5@6.0.3':
resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
@ -4189,6 +4195,10 @@ packages:
resolution: {integrity: sha512-ABHZ2/tS2JkvH1PEjxFDTUWC8dB5OsIGZP4IFLhR293GqT5Y5qB1WwL2kMPYhQW9DVgVD8Hd7I8gjwPIf5GFkw==}
engines: {node: '>=16'}
type-fest@4.40.1:
resolution: {integrity: sha512-9YvLNnORDpI+vghLU/Nf+zSv0kL47KbVJ1o3sKgoTefl6i+zebxbiDQWoe/oWWqPhIgQdRZRT1KA9sCPL810SA==}
engines: {node: '>=16'}
type-is@1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
@ -4510,14 +4520,14 @@ snapshots:
- utf-8-validate
- vue
'@apiclient.xyz/cloudflare@6.3.2':
'@apiclient.xyz/cloudflare@6.4.1':
dependencies:
'@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartlog': 3.0.7
'@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrequest': 2.1.0
'@push.rocks/smartstring': 4.0.15
'@tsclass/tsclass': 5.0.0
'@tsclass/tsclass': 9.1.0
cloudflare: 4.2.0
transitivePeerDependencies:
- encoding
@ -5399,7 +5409,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/yargs': 17.0.33
chalk: 4.1.2
@ -5820,6 +5830,12 @@ snapshots:
'@push.rocks/smartpromise': 4.2.3
fast-deep-equal: 3.1.3
'@push.rocks/smartexpect@2.2.2':
dependencies:
'@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartpromise': 4.2.3
fast-deep-equal: 3.1.3
'@push.rocks/smartfeed@1.0.11':
dependencies:
'@tsclass/tsclass': 3.0.48
@ -6224,6 +6240,38 @@ snapshots:
- supports-color
- utf-8-validate
'@push.rocks/tapbundle@6.0.0(@aws-sdk/credential-providers@3.797.0)(socks@2.8.4)':
dependencies:
'@open-wc/testing': 4.0.0
'@push.rocks/consolecolor': 2.0.2
'@push.rocks/qenv': 6.1.0
'@push.rocks/smartcrypto': 2.0.4
'@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartenv': 5.0.12
'@push.rocks/smartexpect': 2.2.2
'@push.rocks/smartfile': 11.2.0
'@push.rocks/smartjson': 5.0.20
'@push.rocks/smartmongo': 2.0.12(@aws-sdk/credential-providers@3.797.0)(socks@2.8.4)
'@push.rocks/smartpath': 5.0.18
'@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrequest': 2.1.0
'@push.rocks/smarts3': 2.2.5
'@push.rocks/smartshell': 3.2.3
'@push.rocks/smarttime': 4.1.1
expect: 29.7.0
transitivePeerDependencies:
- '@aws-sdk/credential-providers'
- '@mongodb-js/zstd'
- aws-crt
- bufferutil
- gcp-metadata
- kerberos
- mongodb-client-encryption
- snappy
- socks
- supports-color
- utf-8-validate
'@push.rocks/taskbuffer@3.1.7':
dependencies:
'@push.rocks/lik': 6.2.2
@ -6800,24 +6848,24 @@ snapshots:
dependencies:
type-fest: 4.40.0
'@tsclass/tsclass@9.0.0':
'@tsclass/tsclass@9.1.0':
dependencies:
type-fest: 4.40.0
type-fest: 4.40.1
'@types/accepts@1.3.7':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/babel__code-frame@7.0.6': {}
'@types/bn.js@5.1.6':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/buffer-json@2.0.3': {}
@ -6833,17 +6881,17 @@ snapshots:
'@types/clean-css@4.2.11':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
source-map: 0.6.1
'@types/co-body@6.1.3':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/qs': 6.9.18
'@types/connect@3.4.38':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/content-disposition@0.5.8': {}
@ -6854,11 +6902,11 @@ snapshots:
'@types/connect': 3.4.38
'@types/express': 5.0.1
'@types/keygrip': 1.0.6
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/cors@2.8.17':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/debounce@1.2.4': {}
@ -6872,7 +6920,7 @@ snapshots:
'@types/dns-packet@5.6.5':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/elliptic@6.4.18':
dependencies:
@ -6880,7 +6928,7 @@ snapshots:
'@types/express-serve-static-core@5.0.6':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/qs': 6.9.18
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@ -6897,30 +6945,30 @@ snapshots:
'@types/from2@2.3.5':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/fs-extra@11.0.4':
dependencies:
'@types/jsonfile': 6.1.4
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/fs-extra@9.0.13':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/glob@7.2.0':
dependencies:
'@types/minimatch': 5.1.2
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/glob@8.1.0':
dependencies:
'@types/minimatch': 5.1.2
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/gunzip-maybe@1.4.2':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/hast@3.0.4':
dependencies:
@ -6954,7 +7002,7 @@ snapshots:
'@types/jsonfile@6.1.4':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/keygrip@1.0.6': {}
@ -6971,7 +7019,7 @@ snapshots:
'@types/http-errors': 2.0.4
'@types/keygrip': 1.0.6
'@types/koa-compose': 3.2.8
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/mdast@4.0.4':
dependencies:
@ -6989,18 +7037,18 @@ snapshots:
'@types/node-fetch@2.6.12':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
form-data: 4.0.2
'@types/node-forge@1.3.11':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/node@18.19.87':
dependencies:
undici-types: 5.26.5
'@types/node@22.15.2':
'@types/node@22.15.3':
dependencies:
undici-types: 6.21.0
@ -7018,19 +7066,19 @@ snapshots:
'@types/s3rver@3.7.4':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/semver@7.7.0': {}
'@types/send@0.17.4':
dependencies:
'@types/mime': 1.3.5
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/serve-static@1.15.7':
dependencies:
'@types/http-errors': 2.0.4
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/send': 0.17.4
'@types/sinon-chai@3.2.12':
@ -7050,11 +7098,11 @@ snapshots:
'@types/tar-stream@2.2.3':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/through2@2.0.41':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/triple-beam@1.3.5': {}
@ -7078,18 +7126,18 @@ snapshots:
'@types/whatwg-url@8.2.2':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/webidl-conversions': 7.0.3
'@types/which@3.0.4': {}
'@types/ws@7.4.7':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/ws@8.18.1':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
'@types/yargs-parser@21.0.3': {}
@ -7099,7 +7147,7 @@ snapshots:
'@types/yauzl@2.10.3':
dependencies:
'@types/node': 22.15.2
'@types/node': 22.15.3
optional: true
'@ungap/structured-clone@1.3.0': {}
@ -7775,7 +7823,7 @@ snapshots:
engine.io@6.6.4:
dependencies:
'@types/cors': 2.8.17
'@types/node': 22.15.2
'@types/node': 22.15.3
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.7.2
@ -8579,7 +8627,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
'@types/node': 22.15.2
'@types/node': 22.15.3
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@ -10172,6 +10220,8 @@ snapshots:
type-fest@4.40.0: {}
type-fest@4.40.1: {}
type-is@1.6.18:
dependencies:
media-typer: 0.3.0

View File

@ -307,7 +307,7 @@ This comprehensive guide ensures you can set up, manage, and test ACME certifica
## License and Legal Information
This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository.
This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license.md](license.md) file within this repository.
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartacme',
version: '6.1.0',
version: '6.1.3',
description: 'A TypeScript-based ACME client for LetsEncrypt certificate management with a focus on simplicity and power.'
}

View File

@ -5,14 +5,14 @@ import type { IChallengeHandler } from './IChallengeHandler.js';
* DNS-01 challenge handler using CloudflareAccount and Smartdns.
*/
export class Dns01Handler implements IChallengeHandler<plugins.tsclass.network.IDnsChallenge> {
private cf: any;
private cf: plugins.tsclass.network.IConvenientDnsProvider;
private smartdns: plugins.smartdnsClient.Smartdns;
constructor(
cloudflareAccount: any,
convenientDnsProvider: plugins.tsclass.network.IConvenientDnsProvider,
smartdnsInstance?: plugins.smartdnsClient.Smartdns,
) {
this.cf = cloudflareAccount;
this.cf = convenientDnsProvider;
this.smartdns = smartdnsInstance ?? new plugins.smartdnsClient.Smartdns({});
}
@ -37,4 +37,8 @@ export class Dns01Handler implements IChallengeHandler<plugins.tsclass.network.I
// remove DNS TXT record
await this.cf.convenience.acmeRemoveDnsChallenge(ch);
}
public async checkWetherDomainIsSupported(domainArg: string): Promise<boolean> {
return this.cf.convenience.isDomainSupported(domainArg);
}
}

View File

@ -1,3 +1,8 @@
// @apiclient.xyz scope
import * as cloudflare from '@apiclient.xyz/cloudflare';
export { cloudflare };
// @apiglobal scope
import * as typedserver from '@api.global/typedserver';