@push.rocks/smartdns 8.6.2 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.smartconfig.json +1 -16
- package/dist_rust/rustdns-client_linux_amd64_musl +0 -0
- package/dist_rust/rustdns-client_linux_amd64_musl.tsrust-build.json +5 -5
- package/dist_rust/rustdns-client_linux_arm64_musl +0 -0
- package/dist_rust/rustdns-client_linux_arm64_musl.tsrust-build.json +5 -5
- package/dist_rust/rustdns_linux_amd64_musl +0 -0
- package/dist_rust/rustdns_linux_amd64_musl.tsrust-build.json +5 -5
- package/dist_rust/rustdns_linux_arm64_musl +0 -0
- package/dist_rust/rustdns_linux_arm64_musl.tsrust-build.json +5 -5
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts_client/classes.dnsclient.js +1 -1
- package/dist_ts_client/classes.rustdnsclientbridge.js +1 -1
- package/dist_ts_server/classes.dnsserver.d.ts +3 -16
- package/dist_ts_server/classes.dnsserver.js +4 -146
- package/dist_ts_server/classes.manageddnsserver.js +1 -1
- package/dist_ts_server/classes.rustdnsbridge.d.ts +0 -11
- package/dist_ts_server/classes.rustdnsbridge.js +1 -7
- package/dist_ts_server/plugins.d.ts +1 -3
- package/dist_ts_server/plugins.js +2 -4
- package/notices/inventory.json +40 -7
- package/notices/jemalloc-5.3.1-copying.txt +27 -0
- package/notices/tikv-jemalloc-sys-0.7.1-license-mit.txt +25 -0
- package/notices/tikv-jemallocator-0.7.0-license-mit.txt +25 -0
- package/package.json +6 -12
- package/readme.md +9 -34
- package/third-party-notices.md +12 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/readme.md +1 -1
- package/licenses/SOURCES.md +0 -13
- package/licenses/tootallnate-agents.txt +0 -25
package/notices/inventory.json
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"notices/compiler-builtins-license.txt": "ab6eec6caf0fa5775e411c7a8bc6a45c4ef2956b0980b157ab74fc5cd62a928b",
|
|
10
10
|
"notices/fiat-crypto-0.2.9-copyright.txt": "6c935d087a2992d0f092665400a2fa99c98db58d96fbe29368f8f48182bed9aa",
|
|
11
11
|
"notices/group-0.13.0-copyright.txt": "7429802d3e67e3308471b91fbea341e484c4e0a23d0fb230a8636c38184cec79",
|
|
12
|
+
"notices/jemalloc-5.3.1-copying.txt": "94aa2caa98c25d942f58b956c71dba6a99ff98fc3a31cbc669fe2a4cd0268b53",
|
|
12
13
|
"notices/llvm-libunwind-license.txt": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d",
|
|
13
14
|
"notices/lru-slab-0.1.2-license.txt": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486",
|
|
14
15
|
"notices/musl-copyright.txt": "f9bc4423732350eb0b3f7ed7e91d530298476f8fec0c6c427a1c04ade22655af",
|
|
@@ -32,23 +33,25 @@
|
|
|
32
33
|
"notices/rustc-hash-2.1.1-license.txt": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652",
|
|
33
34
|
"notices/thiserror-2.0.18-license.txt": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
34
35
|
"notices/thiserror-impl-2.0.18-license.txt": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
36
|
+
"notices/tikv-jemalloc-sys-0.7.1-license-mit.txt": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
37
|
+
"notices/tikv-jemallocator-0.7.0-license-mit.txt": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
35
38
|
"notices/tinyvec-1.10.0-license.txt": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc",
|
|
36
39
|
"notices/tinyvec_macros-0.1.1-license.txt": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b",
|
|
37
40
|
"notices/utf8_iter-1.0.4-copyright.txt": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c",
|
|
38
41
|
"notices/valuable-0.1.1-license.txt": "ed60d479b8fd1f64e9cbc3de449a16a53ac1b3d1b6aeb9bf9d190a8e93061b44",
|
|
39
42
|
"notices/web-time-1.1.0-license.txt": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b",
|
|
40
43
|
"notices/zerocopy-derive-0.8.39-license.txt": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df",
|
|
41
|
-
"rust
|
|
42
|
-
"rust/Cargo.
|
|
44
|
+
"rust-toolchain.toml": "dfd9e8d1fc8883f5f8a3e3a21258bfbf4b9ff8ffcb83256e9df7fd6dd94e22ea",
|
|
45
|
+
"rust/Cargo.lock": "f87b7307a5de6fe19da35cb1cb0ed78ab88f31c77a62c128949a9e23771fdc1d",
|
|
46
|
+
"rust/Cargo.toml": "3b2c8609166b8270979ce66817d43606529c3b250d3ca92d3ebb462e89350123",
|
|
43
47
|
"rust/about.hbs": "2e1794b6b36df87aa8d7a0e6a21d2b4f26149911f4f9b95ce9507e2a8e54c823",
|
|
44
48
|
"rust/about.toml": "cf8031ba7f272f004280c9f4cf5db8a9e6e853de83f8a3a919fdb30ec59b2279",
|
|
45
|
-
"rust/crates/rustdns/Cargo.toml": "
|
|
46
|
-
"rust/crates/rustdns-client/Cargo.toml": "77e2c143c22e37b04e07de8901fdea58ae61d65c20373b1f13c11480bab27d54",
|
|
49
|
+
"rust/crates/rustdns-client/Cargo.toml": "2b435038ab06b0031ec48a4a77f22f18637127764808512c08f5b5ff36142aa9",
|
|
47
50
|
"rust/crates/rustdns-dnssec/Cargo.toml": "c2482fc19de76d5d2ee7c1268e5995c62909373991c718fede197a72536e69a1",
|
|
48
51
|
"rust/crates/rustdns-protocol/Cargo.toml": "28b4ccdb5fa54c0be61afb488828775ff44cec2ee881f7742420faf2cfb8821d",
|
|
49
52
|
"rust/crates/rustdns-server/Cargo.toml": "2859eb0b466db79e9ceecfbc822eda9689d41890eeb2d7f893e2f1f5fc28b1e4",
|
|
50
|
-
"rust
|
|
51
|
-
"third-party-notices.md": "
|
|
53
|
+
"rust/crates/rustdns/Cargo.toml": "b166d9bfbee674099b8d18539163a6c96a9521d115fe2c587cd108ec477f3de0",
|
|
54
|
+
"third-party-notices.md": "bf0a4b855ee51723dc98e3ba0ac33c51940dbc04d07226873316dc6dc36f93df"
|
|
52
55
|
},
|
|
53
56
|
"supplementalCargoNotices": {
|
|
54
57
|
"cfg_aliases@0.2.1": "notices/cfg_aliases-0.2.1-license.txt",
|
|
@@ -63,7 +66,9 @@
|
|
|
63
66
|
"tinyvec_macros@0.1.1": "notices/tinyvec_macros-0.1.1-license.txt",
|
|
64
67
|
"valuable@0.1.1": "notices/valuable-0.1.1-license.txt",
|
|
65
68
|
"web-time@1.1.0": "notices/web-time-1.1.0-license.txt",
|
|
66
|
-
"zerocopy-derive@0.8.39": "notices/zerocopy-derive-0.8.39-license.txt"
|
|
69
|
+
"zerocopy-derive@0.8.39": "notices/zerocopy-derive-0.8.39-license.txt",
|
|
70
|
+
"tikv-jemallocator@0.7.0": "notices/tikv-jemallocator-0.7.0-license-mit.txt",
|
|
71
|
+
"tikv-jemalloc-sys@0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8": "notices/tikv-jemalloc-sys-0.7.1-license-mit.txt"
|
|
67
72
|
},
|
|
68
73
|
"supplementalSources": {
|
|
69
74
|
"notices/cfg_aliases-0.2.1-license.txt": {
|
|
@@ -203,6 +208,24 @@
|
|
|
203
208
|
"version": "0.8.39",
|
|
204
209
|
"path": "LICENSE-MIT",
|
|
205
210
|
"source": "Cargo.lock checksum-verified crate archive"
|
|
211
|
+
},
|
|
212
|
+
"notices/tikv-jemallocator-0.7.0-license-mit.txt": {
|
|
213
|
+
"crate": "tikv-jemallocator",
|
|
214
|
+
"version": "0.7.0",
|
|
215
|
+
"path": "LICENSE-MIT",
|
|
216
|
+
"source": "Cargo.lock checksum-verified crate archive"
|
|
217
|
+
},
|
|
218
|
+
"notices/tikv-jemalloc-sys-0.7.1-license-mit.txt": {
|
|
219
|
+
"crate": "tikv-jemalloc-sys",
|
|
220
|
+
"version": "0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8",
|
|
221
|
+
"path": "LICENSE-MIT",
|
|
222
|
+
"source": "Cargo.lock checksum-verified crate archive"
|
|
223
|
+
},
|
|
224
|
+
"notices/jemalloc-5.3.1-copying.txt": {
|
|
225
|
+
"crate": "tikv-jemalloc-sys",
|
|
226
|
+
"version": "0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8",
|
|
227
|
+
"path": "jemalloc/COPYING",
|
|
228
|
+
"source": "Cargo.lock checksum-verified crate archive"
|
|
206
229
|
}
|
|
207
230
|
},
|
|
208
231
|
"cargoPackages": [
|
|
@@ -936,6 +959,16 @@
|
|
|
936
959
|
"version": "1.1.9",
|
|
937
960
|
"license": "MIT OR Apache-2.0"
|
|
938
961
|
},
|
|
962
|
+
{
|
|
963
|
+
"name": "tikv-jemalloc-sys",
|
|
964
|
+
"version": "0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8",
|
|
965
|
+
"license": "MIT/Apache-2.0"
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
"name": "tikv-jemallocator",
|
|
969
|
+
"version": "0.7.0",
|
|
970
|
+
"license": "MIT/Apache-2.0"
|
|
971
|
+
},
|
|
939
972
|
{
|
|
940
973
|
"name": "tinystr",
|
|
941
974
|
"version": "0.8.2",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Unless otherwise specified, files in the jemalloc source distribution are
|
|
2
|
+
subject to the following license:
|
|
3
|
+
--------------------------------------------------------------------------------
|
|
4
|
+
Copyright (C) 2002-present Jason Evans <jasone@canonware.com>.
|
|
5
|
+
All rights reserved.
|
|
6
|
+
Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved.
|
|
7
|
+
Copyright (C) 2009-present Facebook, Inc. All rights reserved.
|
|
8
|
+
|
|
9
|
+
Redistribution and use in source and binary forms, with or without
|
|
10
|
+
modification, are permitted provided that the following conditions are met:
|
|
11
|
+
1. Redistributions of source code must retain the above copyright notice(s),
|
|
12
|
+
this list of conditions and the following disclaimer.
|
|
13
|
+
2. Redistributions in binary form must reproduce the above copyright notice(s),
|
|
14
|
+
this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
and/or other materials provided with the distribution.
|
|
16
|
+
|
|
17
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY EXPRESS
|
|
18
|
+
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
19
|
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
20
|
+
EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
21
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
22
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
23
|
+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
24
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
25
|
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
26
|
+
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
--------------------------------------------------------------------------------
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Copyright (c) 2014 Alex Crichton
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any
|
|
4
|
+
person obtaining a copy of this software and associated
|
|
5
|
+
documentation files (the "Software"), to deal in the
|
|
6
|
+
Software without restriction, including without
|
|
7
|
+
limitation the rights to use, copy, modify, merge,
|
|
8
|
+
publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
the Software, and to permit persons to whom the Software
|
|
10
|
+
is furnished to do so, subject to the following
|
|
11
|
+
conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice
|
|
14
|
+
shall be included in all copies or substantial portions
|
|
15
|
+
of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
18
|
+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
19
|
+
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
20
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
|
21
|
+
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
22
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
23
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
24
|
+
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
25
|
+
DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Copyright (c) 2014 Alex Crichton
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any
|
|
4
|
+
person obtaining a copy of this software and associated
|
|
5
|
+
documentation files (the "Software"), to deal in the
|
|
6
|
+
Software without restriction, including without
|
|
7
|
+
limitation the rights to use, copy, modify, merge,
|
|
8
|
+
publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
the Software, and to permit persons to whom the Software
|
|
10
|
+
is furnished to do so, subject to the following
|
|
11
|
+
conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice
|
|
14
|
+
shall be included in all copies or substantial portions
|
|
15
|
+
of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
18
|
+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
19
|
+
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
20
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
|
21
|
+
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
22
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
23
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
24
|
+
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
25
|
+
DEALINGS IN THE SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartdns",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"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.",
|
|
6
6
|
"exports": {
|
|
@@ -24,9 +24,6 @@
|
|
|
24
24
|
"Cloudflare",
|
|
25
25
|
"UDP DNS",
|
|
26
26
|
"HTTPS DNS",
|
|
27
|
-
"ACME",
|
|
28
|
-
"Let's Encrypt",
|
|
29
|
-
"SSL Certificates",
|
|
30
27
|
"Feature Flagging",
|
|
31
28
|
"Domain Propagation",
|
|
32
29
|
"DNS Server"
|
|
@@ -42,18 +39,16 @@
|
|
|
42
39
|
"@push.rocks/smartpromise": "^4.3.0",
|
|
43
40
|
"@push.rocks/smartrust": "^1.9.1",
|
|
44
41
|
"@tsclass/tsclass": "^9.5.1",
|
|
45
|
-
"acme-client": "^5.4.0",
|
|
46
42
|
"minimatch": "^10.2.6"
|
|
47
43
|
},
|
|
48
44
|
"devDependencies": {
|
|
49
|
-
"@git.zone/tsbuild": "^
|
|
50
|
-
"@git.zone/
|
|
51
|
-
"@git.zone/
|
|
52
|
-
"@git.zone/
|
|
53
|
-
"@git.zone/tstest": "^6.3.2",
|
|
45
|
+
"@git.zone/tsbuild": "^6.0.2",
|
|
46
|
+
"@git.zone/tsrun": "^3.0.3",
|
|
47
|
+
"@git.zone/tsrust": "^4.3.0",
|
|
48
|
+
"@git.zone/tstest": "^7.2.1",
|
|
54
49
|
"@types/dns-packet": "^5.6.5",
|
|
55
50
|
"@types/lodash.clonedeep": "^4.5.9",
|
|
56
|
-
"@types/node": "^26.6.
|
|
51
|
+
"@types/node": "^26.6.4",
|
|
57
52
|
"dns-packet": "^5.6.1"
|
|
58
53
|
},
|
|
59
54
|
"files": [
|
|
@@ -66,7 +61,6 @@
|
|
|
66
61
|
"assets/**/*",
|
|
67
62
|
"cli.js",
|
|
68
63
|
".smartconfig.json",
|
|
69
|
-
"licenses/**/*",
|
|
70
64
|
"license.md",
|
|
71
65
|
"readme.md",
|
|
72
66
|
"third-party-notices.md",
|
package/readme.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @push.rocks/smartdns
|
|
2
2
|
|
|
3
|
-
A TypeScript-first DNS toolkit powered by high-performance Rust binaries — covering everything from simple record lookups to running a full authoritative DNS server with DNSSEC, DNS-over-TCP, DNS-over-HTTPS
|
|
3
|
+
A TypeScript-first DNS toolkit powered by high-performance Rust binaries — covering everything from simple record lookups to running a full authoritative DNS server with DNSSEC, DNS-over-TCP, and DNS-over-HTTPS.
|
|
4
4
|
|
|
5
5
|
## Issue Reporting and Security
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ smartdns ships as **three entry points** that you can import independently:
|
|
|
19
19
|
| Entry point | What it does |
|
|
20
20
|
|---|---|
|
|
21
21
|
| `@push.rocks/smartdns/client` | DNS resolution & record queries (UDP, DoH, system resolver) |
|
|
22
|
-
| `@push.rocks/smartdns/server` | Full DNS server — UDP, TCP, DoH, DNSSEC
|
|
22
|
+
| `@push.rocks/smartdns/server` | Full DNS server — UDP, TCP, DoH, DNSSEC |
|
|
23
23
|
| `@push.rocks/smartdns` | Convenience re-export of both modules |
|
|
24
24
|
|
|
25
25
|
Both the **client** and the **server** delegate performance-critical work to compiled **Rust binaries** that ship with the package:
|
|
@@ -27,7 +27,7 @@ Both the **client** and the **server** delegate performance-critical work to com
|
|
|
27
27
|
- **`rustdns`** — The server binary: network I/O, packet parsing, DNSSEC signing
|
|
28
28
|
- **`rustdns-client`** — The client binary: UDP wire-format queries, RFC 8484 DoH resolution
|
|
29
29
|
|
|
30
|
-
TypeScript retains the public API, handler registration,
|
|
30
|
+
TypeScript retains the public API, handler registration, and strategy routing. Communication between TypeScript and Rust happens over stdin/stdout JSON IPC via [`@push.rocks/smartrust`](https://code.foss.global/push.rocks/smartrust).
|
|
31
31
|
|
|
32
32
|
```
|
|
33
33
|
┌─────────────────────────┐
|
|
@@ -258,7 +258,7 @@ If termination fails, `terminate()` rejects and retains the Rust bridge so the c
|
|
|
258
258
|
|
|
259
259
|
## 🖥️ DNS Server
|
|
260
260
|
|
|
261
|
-
The `DnsServer` class runs a production-capable authoritative DNS server backed by a Rust binary. It supports standard UDP and TCP DNS (port 53), DNS-over-HTTPS, DNSSEC signing
|
|
261
|
+
The `DnsServer` class runs a production-capable authoritative DNS server backed by a Rust binary. It supports standard UDP and TCP DNS (port 53), DNS-over-HTTPS, and DNSSEC signing.
|
|
262
262
|
|
|
263
263
|
### Server Options
|
|
264
264
|
|
|
@@ -446,38 +446,13 @@ const server = new DnsServer({
|
|
|
446
446
|
// refresh: 3600, retry: 600, expire: 604800, minimum: 86400
|
|
447
447
|
```
|
|
448
448
|
|
|
449
|
-
###
|
|
449
|
+
### Certificates and DNS-01 🔒
|
|
450
450
|
|
|
451
|
-
|
|
451
|
+
smartdns issues no certificates. Use [`@push.rocks/smartacme`](https://code.foss.global/push.rocks/smartacme) for ACME, and answer its `dns-01` challenges from your `DnsServer` with a challenge handler that registers the `_acme-challenge` TXT record through `registerHandler()` and removes it through the returned registration. A challenge only validates for a name the server answers authoritatively; `filterAuthorizedDomains()` returns the domains inside `authoritativeZones` (or `dnssecZone` when `authoritativeZones` is omitted), counting a wildcard by its base domain:
|
|
452
452
|
|
|
453
453
|
```typescript
|
|
454
|
-
const
|
|
455
|
-
|
|
456
|
-
httpsPort: 443,
|
|
457
|
-
httpsKey: '/path/to/key.pem',
|
|
458
|
-
httpsCert: '/path/to/cert.pem',
|
|
459
|
-
dnssecZone: 'example.com',
|
|
460
|
-
});
|
|
461
|
-
|
|
462
|
-
await server.start();
|
|
463
|
-
|
|
464
|
-
const result = await server.retrieveSslCertificate(
|
|
465
|
-
['example.com', 'www.example.com'],
|
|
466
|
-
{
|
|
467
|
-
email: 'admin@example.com',
|
|
468
|
-
staging: false,
|
|
469
|
-
certDir: './certs',
|
|
470
|
-
}
|
|
471
|
-
);
|
|
472
|
-
|
|
473
|
-
if (result.success) {
|
|
474
|
-
console.log('Certificate installed!');
|
|
475
|
-
// The server automatically:
|
|
476
|
-
// 1. Registers temporary _acme-challenge TXT handlers
|
|
477
|
-
// 2. Completes DNS-01 validation
|
|
478
|
-
// 3. Updates the HTTPS server with the new cert
|
|
479
|
-
// 4. Cleans up challenge handlers
|
|
480
|
-
}
|
|
454
|
+
const domains = server.filterAuthorizedDomains(['example.com', '*.example.com', 'other.org']);
|
|
455
|
+
// ['example.com', '*.example.com'] when example.com is an authoritative zone
|
|
481
456
|
```
|
|
482
457
|
|
|
483
458
|
### Interface Binding
|
|
@@ -580,7 +555,7 @@ At most 256 `processRawDnsPacketAsync()` calls may be pending at once. Additiona
|
|
|
580
555
|
calls reject before transport writes with a `RustBridgeRequestError` whose code
|
|
581
556
|
is `ERR_RUST_BRIDGE_REQUEST_LIMIT`; control and callback commands remain
|
|
582
557
|
available while packet work is saturated. New packet calls are also rejected
|
|
583
|
-
while `start()
|
|
558
|
+
while `start()` or `stop()` is queued or running.
|
|
584
559
|
|
|
585
560
|
#### Load Balancing Example
|
|
586
561
|
|
package/third-party-notices.md
CHANGED
|
@@ -9,9 +9,9 @@ beside any separately distributed executable.
|
|
|
9
9
|
|
|
10
10
|
[Cargo dependency notices](./notices/cargo-dependencies.html) contain the selected
|
|
11
11
|
license texts and package attributions for 203 dependencies. The exact license
|
|
12
|
-
files for
|
|
12
|
+
files for 15 additional locked packages are included as
|
|
13
13
|
supplements listed in [inventory.json](./notices/inventory.json). Together they
|
|
14
|
-
cover all
|
|
14
|
+
cover all 218 third-party packages in the locked graph, including build-only and
|
|
15
15
|
target-inactive dependencies conservatively. MIT is selected when offered as an
|
|
16
16
|
alternative; Apache-2.0, ISC, BSD-3-Clause, Unicode-3.0, Zlib and
|
|
17
17
|
CDLA-Permissive-2.0 apply where required. Listing an inactive package does not
|
|
@@ -43,6 +43,16 @@ installed by both binaries. The unused default AWS-LC provider is not compiled.
|
|
|
43
43
|
No TypeScript dependency executable is embedded in these Rust binaries; the npm
|
|
44
44
|
dependency graph remains separately installed from its package manifests.
|
|
45
45
|
|
|
46
|
+
## Native allocator
|
|
47
|
+
|
|
48
|
+
Both Rust binaries use `tikv-jemallocator` 0.7.0. Its Rust bindings and
|
|
49
|
+
`tikv-jemalloc-sys` are licensed under MIT OR Apache-2.0. Their exact upstream MIT
|
|
50
|
+
licenses are included in the Cargo notice supplements. The sys crate bundles
|
|
51
|
+
jemalloc 5.3.1 under BSD-2-Clause; its complete
|
|
52
|
+
[COPYING notice](./notices/jemalloc-5.3.1-copying.txt) retains the upstream
|
|
53
|
+
copyrights and redistribution terms. The inventory records its checksum-pinned
|
|
54
|
+
crate archive provenance.
|
|
55
|
+
|
|
46
56
|
## Compiler and static runtime
|
|
47
57
|
|
|
48
58
|
`rust-toolchain.toml` pins Rust 1.95.0 and both musl targets. These notices cover
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartdns',
|
|
6
|
-
version: '
|
|
6
|
+
version: '9.1.0',
|
|
7
7
|
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.'
|
|
8
8
|
}
|
package/ts/readme.md
CHANGED
|
@@ -13,7 +13,7 @@ import { dnsClientMod, dnsServerMod } from '@push.rocks/smartdns';
|
|
|
13
13
|
| Module | Description |
|
|
14
14
|
|---|---|
|
|
15
15
|
| `dnsClientMod` | DNS resolution — system, UDP, DoH strategies via `Smartdns` class |
|
|
16
|
-
| `dnsServerMod` | Authoritative DNS server — UDP, TCP, HTTPS, DNSSEC
|
|
16
|
+
| `dnsServerMod` | Authoritative DNS server — UDP, TCP, HTTPS, DNSSEC via `DnsServer` class |
|
|
17
17
|
|
|
18
18
|
## Usage
|
|
19
19
|
|
package/licenses/SOURCES.md
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Sources of the license texts in this directory
|
|
2
|
-
|
|
3
|
-
These files supply license texts for dependencies that declare a license in `package.json`
|
|
4
|
-
but publish no license file. They are declared in `.smartconfig.json` under
|
|
5
|
-
`"@git.zone/tsbundle".thirdPartyNotices.supplements`, so tsbundle bundles and tsdeno
|
|
6
|
-
executables that contain smartdns carry them in their third-party notices. (The notices
|
|
7
|
-
of the Rust executables are in `third-party-notices.md` and `notices/`.)
|
|
8
|
-
|
|
9
|
-
| File | Covers | Source |
|
|
10
|
-
|------|--------|--------|
|
|
11
|
-
| `tootallnate-agents.txt` | `https-proxy-agent` (MIT), taken at 5.0.1, and `agent-base` (MIT), taken at 6.0.2. They reach smartdns through `acme-client` → `axios` (1.20.0 and later depend on `https-proxy-agent` 5) → `https-proxy-agent` → `agent-base`. | The "License" section of `README.md`, from its heading to the last line of the license, in both repositories, whose sections are byte-identical: https://github.com/TooTallNate/node-https-proxy-agent (now `TooTallNate/proxy-agents`) at tag `5.0.1` (commit `d0d80cc0482f20495aa8595f802e1a9f3b1b3409`): https://raw.githubusercontent.com/TooTallNate/proxy-agents/d0d80cc0482f20495aa8595f802e1a9f3b1b3409/README.md, and https://github.com/TooTallNate/node-agent-base at tag `6.0.2` (commit `c4b8ea2e1a11bae023bb09b708050a50418204e9`): https://raw.githubusercontent.com/TooTallNate/node-agent-base/c4b8ea2e1a11bae023bb09b708050a50418204e9/README.md. Neither repository has a license file at those tags, and the published packages ship the same `README.md`; that section is the only upstream text of the MIT license they declare. |
|
|
12
|
-
|
|
13
|
-
The file is a verbatim copy of the text named.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
License
|
|
2
|
-
-------
|
|
3
|
-
|
|
4
|
-
(The MIT License)
|
|
5
|
-
|
|
6
|
-
Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
|
|
7
|
-
|
|
8
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
9
|
-
a copy of this software and associated documentation files (the
|
|
10
|
-
'Software'), to deal in the Software without restriction, including
|
|
11
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
12
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
13
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
14
|
-
the following conditions:
|
|
15
|
-
|
|
16
|
-
The above copyright notice and this permission notice shall be
|
|
17
|
-
included in all copies or substantial portions of the Software.
|
|
18
|
-
|
|
19
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
20
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
21
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
22
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
23
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
24
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
25
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|