Compare commits

...

4 Commits

12 changed files with 1237 additions and 2258 deletions

View File

@ -1,5 +1,20 @@
# Changelog # Changelog
## 2025-05-27 - 7.0.1 - fix(test & plugins)
Rename test client variable and export smartrequest in client plugins
- Renamed variable 'testDnsly' to 'testDnsClient' in test/test.client.ts for better clarity.
- Added @push.rocks/smartrequest dependency in package.json and updated ts_client/plugins.ts to export it.
## 2025-05-27 - 7.0.0 - BREAKING CHANGE(core)
Refactor module entry point and update plugin imports; remove deprecated dnsly.plugins, update dependency versions, and adjust test imports
- Changed module export in package.json from './dist_ts_server/index.js' to './dist_ts/index.js'
- Updated dependency versions, notably upgrading '@tsclass/tsclass' from 5.0.0 to 9.2.0 and updating tap bundles to '@git.zone/tstest' packages
- Removed the redundant ts_client/dnsly.plugins.ts file and replaced its usage with the updated ts_client/plugins.ts
- Adjusted test files to use export default tap.start() and updated import paths for tap bundles
- Added tspublish.json files in ts, ts_client, and ts_server directories to control publish order
## 2025-03-21 - 6.3.0 - feat(dns-server) ## 2025-03-21 - 6.3.0 - feat(dns-server)
Enhance DNS server functionality with advanced DNSSEC signing (supporting both ECDSA and ED25519), improved SSL certificate retrieval using Let's Encrypt, and refined handler management for cleaner shutdowns. Enhance DNS server functionality with advanced DNSSEC signing (supporting both ECDSA and ED25519), improved SSL certificate retrieval using Let's Encrypt, and refined handler management for cleaner shutdowns.

View File

@ -1,10 +1,10 @@
{ {
"name": "@push.rocks/smartdns", "name": "@push.rocks/smartdns",
"version": "6.2.2", "version": "7.0.1",
"private": false, "private": false,
"description": "A robust TypeScript library providing advanced DNS management and resolution capabilities including support for DNSSEC, custom DNS servers, and integration with various DNS providers.", "description": "A robust TypeScript library providing advanced DNS management and resolution capabilities including support for DNSSEC, custom DNS servers, and integration with various DNS providers.",
"exports": { "exports": {
".": "./dist_ts_server/index.js", ".": "./dist_ts/index.js",
"./server": "./dist_ts_server/index.js", "./server": "./dist_ts_server/index.js",
"./client": "./dist_ts_client/index.js" "./client": "./dist_ts_client/index.js"
}, },
@ -46,8 +46,8 @@
"@push.rocks/smartdelay": "^3.0.1", "@push.rocks/smartdelay": "^3.0.1",
"@push.rocks/smartenv": "^5.0.5", "@push.rocks/smartenv": "^5.0.5",
"@push.rocks/smartpromise": "^4.2.3", "@push.rocks/smartpromise": "^4.2.3",
"@push.rocks/smartrequest": "^2.0.23", "@push.rocks/smartrequest": "^2.1.0",
"@tsclass/tsclass": "^5.0.0", "@tsclass/tsclass": "^9.2.0",
"@types/dns-packet": "^5.6.5", "@types/dns-packet": "^5.6.5",
"@types/elliptic": "^6.4.18", "@types/elliptic": "^6.4.18",
"acme-client": "^5.4.0", "acme-client": "^5.4.0",
@ -56,11 +56,10 @@
"minimatch": "^10.0.1" "minimatch": "^10.0.1"
}, },
"devDependencies": { "devDependencies": {
"@git.zone/tsbuild": "^2.2.7", "@git.zone/tsbuild": "^2.6.4",
"@git.zone/tsrun": "^1.3.3", "@git.zone/tsrun": "^1.3.3",
"@git.zone/tstest": "^1.0.96", "@git.zone/tstest": "^2.3.1",
"@push.rocks/tapbundle": "^5.6.0", "@types/node": "^22.15.21"
"@types/node": "^22.13.10"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",
@ -77,5 +76,6 @@
"browserslist": [ "browserslist": [
"last 1 chrome versions" "last 1 chrome versions"
], ],
"type": "module" "type": "module",
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
} }

3405
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,16 @@
import { expect, tap } from '@push.rocks/tapbundle'; import { expect, tap } from '@git.zone/tstest/tapbundle';
import * as smartdns from '../ts_client/index.js'; import * as smartdns from '../ts_client/index.js';
let testDnsly: smartdns.Smartdns; let testDnsClient: smartdns.Smartdns;
tap.test('should create an instance of Dnsly', async () => { tap.test('should create an instance of Dnsly', async () => {
testDnsly = new smartdns.Smartdns({}); testDnsClient = new smartdns.Smartdns({});
expect(testDnsly).toBeInstanceOf(smartdns.Smartdns); expect(testDnsClient).toBeInstanceOf(smartdns.Smartdns);
}); });
tap.test('should get an A DNS Record', async () => { tap.test('should get an A DNS Record', async () => {
return expect(await testDnsly.getRecordsA('dnsly_a.bleu.de')).toEqual([ return expect(await testDnsClient.getRecordsA('dnsly_a.bleu.de')).toEqual([
{ {
name: 'dnsly_a.bleu.de', name: 'dnsly_a.bleu.de',
value: '127.0.0.1', value: '127.0.0.1',
@ -21,7 +21,7 @@ tap.test('should get an A DNS Record', async () => {
}); });
tap.test('should get an AAAA Record', async () => { tap.test('should get an AAAA Record', async () => {
return expect(await testDnsly.getRecordsAAAA('dnsly_aaaa.bleu.de')).toEqual([ return expect(await testDnsClient.getRecordsAAAA('dnsly_aaaa.bleu.de')).toEqual([
{ {
name: 'dnsly_aaaa.bleu.de', name: 'dnsly_aaaa.bleu.de',
value: '::1', value: '::1',
@ -32,7 +32,7 @@ tap.test('should get an AAAA Record', async () => {
}); });
tap.test('should get a txt record', async () => { tap.test('should get a txt record', async () => {
return expect(await testDnsly.getRecordsTxt('dnsly_txt.bleu.de')).toEqual([ return expect(await testDnsClient.getRecordsTxt('dnsly_txt.bleu.de')).toEqual([
{ {
name: 'dnsly_txt.bleu.de', name: 'dnsly_txt.bleu.de',
value: 'sometext_txt', value: 'sometext_txt',
@ -43,37 +43,37 @@ tap.test('should get a txt record', async () => {
}); });
tap.test('should, get a mx record for a domain', async () => { tap.test('should, get a mx record for a domain', async () => {
const res = await testDnsly.getRecords('bleu.de', 'MX'); const res = await testDnsClient.getRecords('bleu.de', 'MX');
console.log(res); console.log(res);
}); });
tap.test('should check until DNS is available', async () => { tap.test('should check until DNS is available', async () => {
return expect( return expect(
await testDnsly.checkUntilAvailable('dnsly_txt.bleu.de', 'TXT', 'sometext_txt') await testDnsClient.checkUntilAvailable('dnsly_txt.bleu.de', 'TXT', 'sometext_txt')
).toBeTrue(); ).toBeTrue();
}); });
tap.test('should check until DNS is available an return false if it fails', async () => { tap.test('should check until DNS is available an return false if it fails', async () => {
return expect( return expect(
await testDnsly.checkUntilAvailable('dnsly_txt.bleu.de', 'TXT', 'sometext_txt2') await testDnsClient.checkUntilAvailable('dnsly_txt.bleu.de', 'TXT', 'sometext_txt2')
).toBeFalse(); ).toBeFalse();
}); });
tap.test('should check until DNS is available an return false if it fails', async () => { tap.test('should check until DNS is available an return false if it fails', async () => {
return expect( return expect(
await testDnsly.checkUntilAvailable('dnsly_txtNotThere.bleu.de', 'TXT', 'sometext_txt2') await testDnsClient.checkUntilAvailable('dnsly_txtNotThere.bleu.de', 'TXT', 'sometext_txt2')
).toBeFalse(); ).toBeFalse();
}); });
tap.test('should get name server for hostname', async () => { tap.test('should get name server for hostname', async () => {
let result = await testDnsly.getNameServers('bleu.de'); let result = await testDnsClient.getNameServers('bleu.de');
console.log(result); console.log(result);
}); });
tap.test('should detect dns sec', async () => { tap.test('should detect dns sec', async () => {
const result = await testDnsly.getRecordsA('lossless.com'); const result = await testDnsClient.getRecordsA('lossless.com');
console.log(result[0]); console.log(result[0]);
expect(result[0].dnsSecEnabled).toBeTrue(); expect(result[0].dnsSecEnabled).toBeTrue();
}); });
tap.start(); export default tap.start();

View File

@ -1,6 +1,6 @@
import * as plugins from '../ts_server/plugins.js'; import * as plugins from '../ts_server/plugins.js';
import { expect, tap } from '@push.rocks/tapbundle'; import { expect, tap } from '@git.zone/tstest/tapbundle';
import { tapNodeTools } from '@push.rocks/tapbundle/node'; import { tapNodeTools } from '@git.zone/tstest/tapbundle_node';
import { execSync } from 'child_process'; import { execSync } from 'child_process';
import * as dnsPacket from 'dns-packet'; import * as dnsPacket from 'dns-packet';
@ -644,4 +644,4 @@ tap.test('should stop the server', async () => {
dnsServer = null; dnsServer = null;
}); });
await tap.start(); export default tap.start();

8
ts/00_commitinfo_data.ts Normal file
View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @push.rocks/commitinfo
*/
export const commitinfo = {
name: '@push.rocks/smartdns',
version: '7.0.1',
description: 'A robust TypeScript library providing advanced DNS management and resolution capabilities including support for DNSSEC, custom DNS servers, and integration with various DNS providers.'
}

4
ts/index.ts Normal file
View File

@ -0,0 +1,4 @@
import * as dnsClientMod from '../dist_ts_client/index.js';
import * as dnsServerMod from '../dist_ts_server/index.js';
export { dnsClientMod, dnsServerMod };

3
ts/tspublish.json Normal file
View File

@ -0,0 +1,3 @@
{
"order": 3
}

View File

@ -1,4 +1,4 @@
import * as plugins from './dnsly.plugins.js'; import * as plugins from './plugins.js';
export type TDnsProvider = 'google' | 'cloudflare'; export type TDnsProvider = 'google' | 'cloudflare';

3
ts_client/tspublish.json Normal file
View File

@ -0,0 +1,3 @@
{
"order": 2
}

3
ts_server/tspublish.json Normal file
View File

@ -0,0 +1,3 @@
{
"order": 1
}