@push.rocks/smartdns 8.2.0 → 8.3.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 +10 -4
- package/dist_rust/rustdns-client_linux_amd64_musl +0 -0
- package/dist_rust/rustdns-client_linux_amd64_musl.tsrust-build.json +14 -0
- package/dist_rust/{rustdns-client_linux_arm64 → rustdns-client_linux_arm64_musl} +0 -0
- package/dist_rust/rustdns-client_linux_arm64_musl.tsrust-build.json +14 -0
- package/dist_rust/rustdns_linux_amd64_musl +0 -0
- package/dist_rust/rustdns_linux_amd64_musl.tsrust-build.json +14 -0
- package/dist_rust/rustdns_linux_arm64_musl +0 -0
- package/dist_rust/rustdns_linux_arm64_musl.tsrust-build.json +14 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts_client/classes.rustdnsclientbridge.js +4 -1
- package/dist_ts_server/classes.dnsserver.d.ts +24 -1
- package/dist_ts_server/classes.dnsserver.js +391 -3
- package/dist_ts_server/classes.manageddnsserver.d.ts +34 -0
- package/dist_ts_server/classes.manageddnsserver.js +141 -0
- package/dist_ts_server/classes.rustdnsbridge.d.ts +31 -1
- package/dist_ts_server/classes.rustdnsbridge.js +34 -13
- package/dist_ts_server/index.d.ts +2 -0
- package/dist_ts_server/index.js +3 -1
- package/dist_ts_server/interfaces.managed.d.ts +79 -0
- package/dist_ts_server/interfaces.managed.js +2 -0
- package/dist_ts_server/plugins.d.ts +4 -1
- package/dist_ts_server/plugins.js +5 -2
- package/notices/cargo-dependencies.html +3412 -0
- package/notices/cfg_aliases-0.2.1-license.txt +9 -0
- package/notices/cfg_aliases-0.2.1-notices.txt +26 -0
- package/notices/compiler-builtins-license.txt +275 -0
- package/notices/fiat-crypto-0.2.9-copyright.txt +7 -0
- package/notices/group-0.13.0-copyright.txt +14 -0
- package/notices/inventory.json +1290 -0
- package/notices/llvm-libunwind-license.txt +311 -0
- package/notices/lru-slab-0.1.2-license.txt +7 -0
- package/notices/musl-copyright.txt +193 -0
- package/notices/quinn-0.11.9-license.txt +7 -0
- package/notices/quinn-proto-0.11.13-license.txt +7 -0
- package/notices/quinn-udp-0.5.14-license.txt +7 -0
- package/notices/rand-0.8.5-copyright.txt +12 -0
- package/notices/rand-0.9.2-copyright.txt +12 -0
- package/notices/rand_chacha-0.3.1-copyright.txt +12 -0
- package/notices/rand_chacha-0.9.0-copyright.txt +12 -0
- package/notices/rand_core-0.6.4-copyright.txt +12 -0
- package/notices/rand_core-0.9.5-copyright.txt +12 -0
- package/notices/ring-0.17.14-fiat-license.txt +15 -0
- package/notices/ring-0.17.14-license-boringssl.txt +272 -0
- package/notices/ring-0.17.14-license-other-bits.txt +13 -0
- package/notices/ring-0.17.14-license.txt +9 -0
- package/notices/ring-0.17.14-once-cell-license-apache.txt +201 -0
- package/notices/ring-0.17.14-once-cell-license-mit.txt +23 -0
- package/notices/ring-0.17.14-source-attributions.txt +1544 -0
- package/notices/rust-standard-library.html +8266 -0
- package/notices/rustc-hash-2.1.1-license.txt +23 -0
- package/notices/thiserror-2.0.18-license.txt +23 -0
- package/notices/thiserror-impl-2.0.18-license.txt +23 -0
- package/notices/tinyvec-1.10.0-license.txt +5 -0
- package/notices/tinyvec_macros-0.1.1-license.txt +21 -0
- package/notices/utf8_iter-1.0.4-copyright.txt +42 -0
- package/notices/valuable-0.1.1-license.txt +25 -0
- package/notices/web-time-1.1.0-license.txt +21 -0
- package/notices/zerocopy-derive-0.8.39-license.txt +26 -0
- package/package.json +16 -6
- package/readme.md +198 -1
- package/third-party-notices.md +96 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/dist_rust/rustdns-client_linux_amd64 +0 -0
- package/dist_rust/rustdns-client_linux_amd64.tsrust-build.json +0 -14
- package/dist_rust/rustdns-client_linux_arm64.tsrust-build.json +0 -14
- package/dist_rust/rustdns_linux_amd64 +0 -0
- package/dist_rust/rustdns_linux_amd64.tsrust-build.json +0 -14
- package/dist_rust/rustdns_linux_arm64 +0 -0
- package/dist_rust/rustdns_linux_arm64.tsrust-build.json +0 -14
- package/readme.hints.md +0 -290
- /package/{license → license.md} +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Permission is hereby granted, free of charge, to any
|
|
2
|
+
person obtaining a copy of this software and associated
|
|
3
|
+
documentation files (the "Software"), to deal in the
|
|
4
|
+
Software without restriction, including without
|
|
5
|
+
limitation the rights to use, copy, modify, merge,
|
|
6
|
+
publish, distribute, sublicense, and/or sell copies of
|
|
7
|
+
the Software, and to permit persons to whom the Software
|
|
8
|
+
is furnished to do so, subject to the following
|
|
9
|
+
conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice
|
|
12
|
+
shall be included in all copies or substantial portions
|
|
13
|
+
of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
16
|
+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
17
|
+
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
18
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
|
19
|
+
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
22
|
+
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
23
|
+
DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Permission is hereby granted, free of charge, to any
|
|
2
|
+
person obtaining a copy of this software and associated
|
|
3
|
+
documentation files (the "Software"), to deal in the
|
|
4
|
+
Software without restriction, including without
|
|
5
|
+
limitation the rights to use, copy, modify, merge,
|
|
6
|
+
publish, distribute, sublicense, and/or sell copies of
|
|
7
|
+
the Software, and to permit persons to whom the Software
|
|
8
|
+
is furnished to do so, subject to the following
|
|
9
|
+
conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice
|
|
12
|
+
shall be included in all copies or substantial portions
|
|
13
|
+
of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
16
|
+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
17
|
+
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
18
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
|
19
|
+
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
22
|
+
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
23
|
+
DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Permission is hereby granted, free of charge, to any
|
|
2
|
+
person obtaining a copy of this software and associated
|
|
3
|
+
documentation files (the "Software"), to deal in the
|
|
4
|
+
Software without restriction, including without
|
|
5
|
+
limitation the rights to use, copy, modify, merge,
|
|
6
|
+
publish, distribute, sublicense, and/or sell copies of
|
|
7
|
+
the Software, and to permit persons to whom the Software
|
|
8
|
+
is furnished to do so, subject to the following
|
|
9
|
+
conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice
|
|
12
|
+
shall be included in all copies or substantial portions
|
|
13
|
+
of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
16
|
+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
17
|
+
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
18
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
|
19
|
+
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
22
|
+
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
23
|
+
DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
2
|
+
|
|
3
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
4
|
+
|
|
5
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Soveu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
Copyright Mozilla Foundation
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License (Version 2.0), or the MIT license,
|
|
4
|
+
(the "Licenses") at your option. You may not use this file except in
|
|
5
|
+
compliance with one of the Licenses. You may obtain copies of the
|
|
6
|
+
Licenses at:
|
|
7
|
+
|
|
8
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
https://opensource.org/licenses/MIT
|
|
10
|
+
|
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
distributed under the Licenses is distributed on an "AS IS" BASIS,
|
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
See the Licenses for the specific language governing permissions and
|
|
15
|
+
limitations under the Licenses.
|
|
16
|
+
|
|
17
|
+
--
|
|
18
|
+
|
|
19
|
+
Test code is dedicated to the Public Domain when so designated (see
|
|
20
|
+
the individual files for PD/CC0-dedicated sections).
|
|
21
|
+
|
|
22
|
+
--
|
|
23
|
+
|
|
24
|
+
The implementation for Utf8CharIndices was adapted from the
|
|
25
|
+
CharIndices implementation of the Rust standard library at revision
|
|
26
|
+
ab32548539ec38a939c1b58599249f3b54130026
|
|
27
|
+
(https://github.com/rust-lang/rust/blob/ab32548539ec38a939c1b58599249f3b54130026/library/core/src/str/iter.rs).
|
|
28
|
+
|
|
29
|
+
Excerpt from https://github.com/rust-lang/rust/blob/ab32548539ec38a939c1b58599249f3b54130026/COPYRIGHT ,
|
|
30
|
+
which refers to
|
|
31
|
+
https://github.com/rust-lang/rust/blob/ab32548539ec38a939c1b58599249f3b54130026/LICENSE-APACHE
|
|
32
|
+
and
|
|
33
|
+
https://github.com/rust-lang/rust/blob/ab32548539ec38a939c1b58599249f3b54130026/LICENSE-MIT
|
|
34
|
+
:
|
|
35
|
+
|
|
36
|
+
For full authorship information, see the version control history or
|
|
37
|
+
https://thanks.rust-lang.org
|
|
38
|
+
|
|
39
|
+
Except as otherwise noted (below and/or in individual files), Rust is
|
|
40
|
+
licensed under the Apache License, Version 2.0 <LICENSE-APACHE> or
|
|
41
|
+
<http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
42
|
+
<LICENSE-MIT> or <http://opensource.org/licenses/MIT>, at your option.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Copyright (c) 2021 Valuable Contributors
|
|
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,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 dAxpeDDa
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Copyright 2023 The Fuchsia Authors
|
|
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.
|
|
26
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartdns",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.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": {
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@git.zone/tsbuild": "^4.4.2",
|
|
51
51
|
"@git.zone/tsrun": "^2.0.6",
|
|
52
|
-
"@git.zone/tsrust": "^1.
|
|
53
|
-
"@git.zone/tstest": "^4.
|
|
52
|
+
"@git.zone/tsrust": "^1.13.0",
|
|
53
|
+
"@git.zone/tstest": "^4.1.1",
|
|
54
54
|
"@types/dns-packet": "^5.6.5",
|
|
55
55
|
"@types/lodash.clonedeep": "^4.5.9",
|
|
56
|
-
"@types/node": "^26.
|
|
56
|
+
"@types/node": "^26.4.1",
|
|
57
57
|
"dns-packet": "^5.6.1"
|
|
58
58
|
},
|
|
59
59
|
"files": [
|
|
@@ -66,13 +66,23 @@
|
|
|
66
66
|
"assets/**/*",
|
|
67
67
|
"cli.js",
|
|
68
68
|
".smartconfig.json",
|
|
69
|
-
"license",
|
|
70
|
-
"readme.md"
|
|
69
|
+
"license.md",
|
|
70
|
+
"readme.md",
|
|
71
|
+
"third-party-notices.md",
|
|
72
|
+
"notices/**/*"
|
|
71
73
|
],
|
|
72
74
|
"browserslist": [
|
|
73
75
|
"last 1 chrome versions"
|
|
74
76
|
],
|
|
75
77
|
"type": "module",
|
|
78
|
+
"publishConfig": {
|
|
79
|
+
"executableFiles": [
|
|
80
|
+
"./dist_rust/rustdns_linux_amd64_musl",
|
|
81
|
+
"./dist_rust/rustdns_linux_arm64_musl",
|
|
82
|
+
"./dist_rust/rustdns-client_linux_amd64_musl",
|
|
83
|
+
"./dist_rust/rustdns-client_linux_arm64_musl"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
76
86
|
"scripts": {
|
|
77
87
|
"test": "(tstest test/ --verbose --timeout 60)",
|
|
78
88
|
"test:rust": "(cd rust && cargo test)",
|
package/readme.md
CHANGED
|
@@ -540,6 +540,29 @@ const server = new DnsServer({
|
|
|
540
540
|
await server.start(); // No UDP, TCP, or HTTPS listener binds automatically
|
|
541
541
|
```
|
|
542
542
|
|
|
543
|
+
After `start()` resolves, an upstream proxy may terminate TLS and hand the
|
|
544
|
+
resulting cleartext HTTP socket to SmartDNS. The handler detects HTTP/1.1 and
|
|
545
|
+
prior-knowledge HTTP/2 (not h2c Upgrade) and accepts RFC 8484 requests on
|
|
546
|
+
`/dns-query`. `/resolve` remains an alias for the already-shipped dcrouter route:
|
|
547
|
+
|
|
548
|
+
```typescript
|
|
549
|
+
const handleTlsTerminatedSocket = (socket: import('node:net').Socket) => {
|
|
550
|
+
server.handleHttpSocket(socket);
|
|
551
|
+
};
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
GET requests require an unpadded base64url `dns` query parameter. POST requests
|
|
555
|
+
require `Content-Type: application/dns-message`. DNS messages are limited to
|
|
556
|
+
65,535 bytes, headers to 16 KiB, HTTP/2 sessions to 100 concurrent streams, and
|
|
557
|
+
header/request/session lifetimes are bounded. Successful responses use
|
|
558
|
+
`application/dns-message`; malformed or unsupported requests receive an explicit
|
|
559
|
+
4xx response, internal handler failures receive 500, and unavailable DNS
|
|
560
|
+
processing receives 503. Every error response uses `text/plain; charset=utf-8`.
|
|
561
|
+
|
|
562
|
+
`handleHttpSocket()` must only receive a TLS-terminated cleartext stream. The
|
|
563
|
+
legacy `handleHttpsSocket()` does not terminate encrypted TLS in Rust mode and
|
|
564
|
+
closes the socket.
|
|
565
|
+
|
|
543
566
|
Process individual DNS packets directly:
|
|
544
567
|
|
|
545
568
|
```typescript
|
|
@@ -589,9 +612,183 @@ await server.stop();
|
|
|
589
612
|
`stop()` is serialized with `start()` and resolves only after the Rust process
|
|
590
613
|
has closed and its bound sockets are released. If confirmed termination fails,
|
|
591
614
|
the call rejects and retains ownership so a later `stop()` can retry cleanup.
|
|
615
|
+
It also destroys every HTTP/1.1 socket and HTTP/2 replay stream handed to
|
|
616
|
+
`handleHttpSocket()`; the upstream proxy/listener remains caller-owned and must
|
|
617
|
+
be stopped separately.
|
|
592
618
|
|
|
593
619
|
---
|
|
594
620
|
|
|
621
|
+
## Managed private DNS views
|
|
622
|
+
|
|
623
|
+
`ManagedDnsServer` from `@push.rocks/smartdns/server` is a separate Linux-native
|
|
624
|
+
DNS engine for a trusted workload/network controller. It has no public-zone
|
|
625
|
+
handlers, localhost shortcut, DNSSEC signing, DoH listener, cache, image pull or
|
|
626
|
+
system-resolver fallback. Existing `DnsServer` and `DnsClient` behavior remains
|
|
627
|
+
available independently.
|
|
628
|
+
|
|
629
|
+
```typescript
|
|
630
|
+
import { ManagedDnsServer } from '@push.rocks/smartdns/server';
|
|
631
|
+
|
|
632
|
+
const dns = new ManagedDnsServer({
|
|
633
|
+
ownerId: 'node:one',
|
|
634
|
+
bindAddress: '10.100.0.1',
|
|
635
|
+
port: 53,
|
|
636
|
+
revisionFloor: null, // Restore the persisted accepted receipt after a restart.
|
|
637
|
+
forbiddenUpstreamAddresses: ['10.100.0.2'],
|
|
638
|
+
});
|
|
639
|
+
const clock = await dns.getClockEvidence();
|
|
640
|
+
const deadline = clock.boottimeMs + 60_000;
|
|
641
|
+
await dns.start();
|
|
642
|
+
const receipt = await dns.applySnapshot({
|
|
643
|
+
ownerId: 'node:one',
|
|
644
|
+
revision: 1,
|
|
645
|
+
sourceContentHash: 'a'.repeat(64), // Use the real authenticated projection hash.
|
|
646
|
+
configuration: {
|
|
647
|
+
bootId: clock.bootId,
|
|
648
|
+
validUntilBoottimeMs: deadline,
|
|
649
|
+
blockedSuffixes: [],
|
|
650
|
+
clients: [{ address: '10.100.1.2', viewId: 'network:one' }],
|
|
651
|
+
views: [{
|
|
652
|
+
id: 'network:one',
|
|
653
|
+
zones: ['network-one.internal'],
|
|
654
|
+
negativeTtl: 1,
|
|
655
|
+
forwarding: null,
|
|
656
|
+
names: [{
|
|
657
|
+
name: 'api.network-one.internal',
|
|
658
|
+
records: [{
|
|
659
|
+
type: 'A', data: '10.100.2.3', ttl: 5,
|
|
660
|
+
validUntilBoottimeMs: deadline,
|
|
661
|
+
}],
|
|
662
|
+
}],
|
|
663
|
+
}],
|
|
664
|
+
},
|
|
665
|
+
});
|
|
666
|
+
// Persist the complete accepted input and receipt using your persistence owner.
|
|
667
|
+
// Verify getStatus().accepted and .active before acknowledging application.
|
|
668
|
+
await dns.stop();
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
For an installed or compiled node bundle, pass a second, process-only option:
|
|
672
|
+
`new ManagedDnsServer(configuration, { binaryPath: '/opt/node/bin/rustdns' })`.
|
|
673
|
+
`binaryPath` must be absolute and is never serialized into a DNS snapshot or native
|
|
674
|
+
listener configuration. It selects that exact executable with an empty fallback
|
|
675
|
+
list and no system PATH search; a missing path fails even when package or local
|
|
676
|
+
build binaries exist. The installer remains responsible for verifying the artifact
|
|
677
|
+
and protecting its path. Without this option the existing npm package lookup is
|
|
678
|
+
preserved, including static Linux musl binaries.
|
|
679
|
+
|
|
680
|
+
The caller authenticates the configuration, enforces the kernel binding between
|
|
681
|
+
each workload/interface and source IP, and persists complete snapshots plus the
|
|
682
|
+
highest `revision`/`contentHash` receipt. The engine does not authenticate a claimed
|
|
683
|
+
IP supplied in configuration, install firewall policy, allocate addresses, check
|
|
684
|
+
workload readiness, persist application data or publish public DNS/ingress records.
|
|
685
|
+
A DNS answer grants no packet access. TCP and UDP views use the kernel-observed
|
|
686
|
+
peer address; untrusted EDNS Client Subnet and all client EDNS options are rejected.
|
|
687
|
+
Unknown sources receive REFUSED before any lookup or forwarding. The raw IPC
|
|
688
|
+
`processPacket` path is unavailable while a managed listener is running, so it
|
|
689
|
+
cannot fabricate membership context.
|
|
690
|
+
|
|
691
|
+
A snapshot replaces the complete set of views and client bindings atomically.
|
|
692
|
+
Each client IP selects exactly one view; an owner can build a union view for a
|
|
693
|
+
workload with several explicitly authorized networks. Names are case-insensitive
|
|
694
|
+
FQDNs with optional trailing dots. Different views can declare the same name with
|
|
695
|
+
different records. Duplicate names or client IPs in one snapshot, names outside
|
|
696
|
+
that view's authority, duplicate records, malformed addresses and out-of-bound
|
|
697
|
+
TTLs/collections reject the entire replacement. The caller defines search suffixes
|
|
698
|
+
in workload configuration; the engine never guesses a default network or expands
|
|
699
|
+
a bare name into several networks.
|
|
700
|
+
|
|
701
|
+
Managed authoritative records are A, AAAA and PTR. Every declared name exists even
|
|
702
|
+
with an empty RRset: missing query types and expired endpoint records produce
|
|
703
|
+
NOERROR/NODATA with a negative SOA. Missing or unauthorized private names produce
|
|
704
|
+
NXDOMAIN. PTR targets must belong to the same view's configured authority. Private
|
|
705
|
+
CNAME/MX/SRV synthesis is intentionally absent. Multiple eligible addresses are
|
|
706
|
+
returned as one RRset; oversized UDP answers set TC so the client can retry TCP.
|
|
707
|
+
TTL zero is preserved. Every positive and negative TTL is clipped to native
|
|
708
|
+
remaining authority; record deadlines can withdraw individual endpoints earlier.
|
|
709
|
+
|
|
710
|
+
Revisions are nonnegative JavaScript safe integers, scoped to the exact immutable
|
|
711
|
+
`ownerId`. Older revisions and same-revision different content reject. Exact replay
|
|
712
|
+
is idempotent and never renews validity. `configuration: null` explicitly withdraws
|
|
713
|
+
all views while retaining the revision fence. The receipt hash is SHA-256 over
|
|
714
|
+
Rust's typed camel-case snapshot serialization in declared field order, preserving
|
|
715
|
+
array order and input strings; it covers owner, revision, parent hash, complete
|
|
716
|
+
configuration and deadline. It is an identity receipt, not a signature. Persist the
|
|
717
|
+
exact submitted snapshot together with the receipt; do not reconstruct an
|
|
718
|
+
approximately equivalent JSON document. `revisionFloor` allows the exact accepted
|
|
719
|
+
snapshot to be reinstalled in a fresh process and rejects older/conflicting input
|
|
720
|
+
before any query can see it. Durable fencing across process lifetimes is the
|
|
721
|
+
persistence owner's responsibility.
|
|
722
|
+
|
|
723
|
+
`getClockEvidence()` reads Linux boot identity and suspend-inclusive
|
|
724
|
+
[`CLOCK_BOOTTIME`](https://man7.org/linux/man-pages/man3/clock_gettime.3.html). The complete snapshot must name this boot and an absolute native
|
|
725
|
+
deadline, greater than the current native time and at most 24 hours ahead. Endpoint
|
|
726
|
+
deadlines cannot exceed the snapshot. The caller should choose its own shorter
|
|
727
|
+
policy lease. Query/send paths check native validity and accepted revision,
|
|
728
|
+
including after forwarding completes; expiry produces SERVFAIL without a
|
|
729
|
+
JavaScript timer. Same-boot process recovery can reinstall an unexpired persisted
|
|
730
|
+
snapshot, including names never previously queried. Node reboot changes the boot
|
|
731
|
+
ID: the caller must independently establish trusted time and authenticate a bounded
|
|
732
|
+
new boot deadline. The engine never converts wall-clock time or grants a fresh
|
|
733
|
+
lease merely because it restarted. An expired or wrong-boot snapshot cannot be
|
|
734
|
+
installed into a fresh engine.
|
|
735
|
+
|
|
736
|
+
Forwarding is opt-in per view, to explicit IP-literal upstream endpoints and
|
|
737
|
+
allowed DNS suffixes (`'.'` explicitly permits all external names outside privacy
|
|
738
|
+
barriers). The listener address and `forbiddenUpstreamAddresses` cannot be
|
|
739
|
+
upstreams, including IPv4-mapped IPv6 aliases. The caller must supply every other
|
|
740
|
+
local resolver address and prevent upstream forwarding cycles outside this
|
|
741
|
+
process. No host resolver, public fallback or upstream hostname lookup is used.
|
|
742
|
+
The engine keeps `.internal`, localhost/local/home.arpa, private reverse space,
|
|
743
|
+
bare names, configured blocked suffixes and every configured authoritative zone
|
|
744
|
+
out of forwarding, including zones visible only in another view. Response aliases
|
|
745
|
+
are inspected before returning them; private targets, cycles, excessive depth,
|
|
746
|
+
unrelated answers and mismatched question/transaction IDs are rejected. Client
|
|
747
|
+
EDNS/ECS/DNSSEC options are never sent upstream. The recursive upstream receives
|
|
748
|
+
only the permitted external question; this engine never follows a private alias.
|
|
749
|
+
|
|
750
|
+
Forwarding supports A, AAAA, NS, CNAME, SOA, PTR, MX, TXT and SRV questions and their
|
|
751
|
+
known wire record shapes. Unknown or DNSSEC-specific response records fail closed;
|
|
752
|
+
there is no opaque RDATA pass-through. The reusable protocol parser expands
|
|
753
|
+
compressed name-bearing RDATA before re-encoding. AXFR, IXFR and ANY are refused.
|
|
754
|
+
Forwarded positive TTLs are capped by `maxTtl`; negative TTLs also use the view's
|
|
755
|
+
`negativeTtl`; both are clipped to remaining snapshot validity. UDP truncation
|
|
756
|
+
retries the same upstream over TCP. One overall deadline (maximum 10 seconds), at
|
|
757
|
+
most four upstreams, 1,024 allowed suffixes per view, 512 response records, 256 UDP jobs and 128 TCP connections
|
|
758
|
+
bound forwarding work. A response arriving after replacement or expiry cannot
|
|
759
|
+
answer under its old authority.
|
|
760
|
+
|
|
761
|
+
`start()` binds both transports before admission. `stop()` closes admission, joins
|
|
762
|
+
pending facade calls and all native query/connection work, and confirms child
|
|
763
|
+
termination. Failed cleanup remains owned and retryable. A transport-ambiguous
|
|
764
|
+
snapshot update prevents further mutations until cleanup; callers must reconcile
|
|
765
|
+
their persisted intent. Each facade instance is single-use: construct a new one
|
|
766
|
+
with the persisted revision floor after a stop. Stdin closure stops the native
|
|
767
|
+
listeners when their parent dies. IPC commands have a 16 MiB allocation ceiling;
|
|
768
|
+
snapshots have an 8 MiB encoded ceiling.
|
|
769
|
+
|
|
770
|
+
The managed engine tests qualify these local protocol, view, revision and lifecycle
|
|
771
|
+
behaviors. A platform using it still owns persistent SmartData/SmartDB recovery,
|
|
772
|
+
workload interface isolation, authenticated cross-node configuration, endpoint
|
|
773
|
+
readiness, trusted reboot-time recovery, CRI settings and complete node packaging.
|
|
774
|
+
|
|
775
|
+
## Native distribution
|
|
776
|
+
|
|
777
|
+
The npm package ships `rustdns` and `rustdns-client` as static Linux amd64 and
|
|
778
|
+
arm64 musl binaries. The default bridges select the matching musl asset first.
|
|
779
|
+
Managed DNS requires Linux for its boot identity and suspend-inclusive clock.
|
|
780
|
+
Installer-owned bundles can select an exact absolute server binary path as
|
|
781
|
+
shown above; carry [third-party-notices.md](./third-party-notices.md) and the
|
|
782
|
+
complete `notices/` directory beside separately distributed executables.
|
|
783
|
+
|
|
784
|
+
Builds use the Rust 1.95.0 pin and locked Cargo graph. Linux cross-build hosts
|
|
785
|
+
need `musl-gcc`, `clang` for ring's arm64 freestanding C objects, and
|
|
786
|
+
`aarch64-linux-gnu-gcc` as the arm64 linker. Rust's musl target supplies its static
|
|
787
|
+
runtime. TLS explicitly selects the same ring provider installed at process
|
|
788
|
+
startup, retaining TLS 1.2/1.3, logging and certificate verification.
|
|
789
|
+
`pnpm build` produces both architectures and rejects dynamic Linux executables;
|
|
790
|
+
its SHA-256-bound `.tsrust-build.json` sidecars identify each artifact's source.
|
|
791
|
+
|
|
595
792
|
## 🦀 Rust Crate Structure
|
|
596
793
|
|
|
597
794
|
The Rust workspace (`rust/crates/`) contains five crates:
|
|
@@ -646,7 +843,7 @@ export default tap.start();
|
|
|
646
843
|
|
|
647
844
|
## License and Legal Information
|
|
648
845
|
|
|
649
|
-
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
|
|
846
|
+
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license.md) file.
|
|
650
847
|
|
|
651
848
|
**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.
|
|
652
849
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
This notice set covers the static Linux amd64 and arm64 musl distributions of
|
|
4
|
+
`rustdns` and `rustdns-client`. SmartDNS's own code is licensed under
|
|
5
|
+
[license.md](./license.md). Keep this index and the complete `notices/` directory
|
|
6
|
+
beside any separately distributed executable.
|
|
7
|
+
|
|
8
|
+
## Cargo dependencies
|
|
9
|
+
|
|
10
|
+
[Cargo dependency notices](./notices/cargo-dependencies.html) contain the selected
|
|
11
|
+
license texts and package attributions for 203 dependencies. The exact license
|
|
12
|
+
files for 13 additional locked but feature-inactive packages are included as
|
|
13
|
+
supplements listed in [inventory.json](./notices/inventory.json). Together they
|
|
14
|
+
cover all 216 third-party packages in the locked graph, including build-only and
|
|
15
|
+
target-inactive dependencies conservatively. MIT is selected when offered as an
|
|
16
|
+
alternative; Apache-2.0, ISC, BSD-3-Clause, Unicode-3.0, Zlib and
|
|
17
|
+
CDLA-Permissive-2.0 apply where required. Listing an inactive package does not
|
|
18
|
+
claim it is linked into either Linux binary.
|
|
19
|
+
|
|
20
|
+
The inventory records every package's name, version and upstream license
|
|
21
|
+
expression, the reviewed input and output hashes, and the provenance of the
|
|
22
|
+
supplemental licenses and separate COPYRIGHT/NOTICES files. Exact copyright
|
|
23
|
+
supplements cover cfg_aliases, fiat-crypto, group, rand, rand_chacha, rand_core and
|
|
24
|
+
utf8_iter. All crate-derived supplemental files were checked against their
|
|
25
|
+
Cargo.lock checksum-pinned published archives.
|
|
26
|
+
|
|
27
|
+
`ring` 0.17.14 includes code under multiple licenses. Its exact
|
|
28
|
+
[license index](./notices/ring-0.17.14-license.txt),
|
|
29
|
+
[BoringSSL license](./notices/ring-0.17.14-license-boringssl.txt),
|
|
30
|
+
[ISC license](./notices/ring-0.17.14-license-other-bits.txt),
|
|
31
|
+
[fiat-crypto notice](./notices/ring-0.17.14-fiat-license.txt), and bundled once_cell
|
|
32
|
+
[MIT](./notices/ring-0.17.14-once-cell-license-mit.txt) and
|
|
33
|
+
[Apache-2.0](./notices/ring-0.17.14-once-cell-license-apache.txt) licenses are
|
|
34
|
+
included. Its [source attribution supplement](./notices/ring-0.17.14-source-attributions.txt)
|
|
35
|
+
retains copyright and license comments, grouping identical comments by source
|
|
36
|
+
path and including build-only and target-inactive files conservatively. All
|
|
37
|
+
seven files were verified against the published crate archive with SHA-256
|
|
38
|
+
`a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7`.
|
|
39
|
+
The crate's own scope statements remain intact.
|
|
40
|
+
|
|
41
|
+
The native TLS dependency features select ring, matching the provider explicitly
|
|
42
|
+
installed by both binaries. The unused default AWS-LC provider is not compiled.
|
|
43
|
+
No TypeScript dependency executable is embedded in these Rust binaries; the npm
|
|
44
|
+
dependency graph remains separately installed from its package manifests.
|
|
45
|
+
|
|
46
|
+
## Compiler and static runtime
|
|
47
|
+
|
|
48
|
+
`rust-toolchain.toml` pins Rust 1.95.0 and both musl targets. These notices cover
|
|
49
|
+
runtime components supplied outside Cargo.lock:
|
|
50
|
+
|
|
51
|
+
- [Rust standard-library inventory](./notices/rust-standard-library.html), from
|
|
52
|
+
the official 1.95.0 toolchain's `share/doc/rust/COPYRIGHT-library.html`. Its
|
|
53
|
+
upstream SHA-256 is
|
|
54
|
+
`90567e2718bf7fd65a71a3a43c5596488e80e5f51ed02bfea6fec54458b5f3d1`;
|
|
55
|
+
the local copy adds only a final newline. This upstream inventory includes
|
|
56
|
+
other targets without claiming they are linked into Linux.
|
|
57
|
+
- [musl copyright and license](./notices/musl-copyright.txt), from
|
|
58
|
+
[musl 1.2.5](https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT?h=v1.2.5).
|
|
59
|
+
Rust's [1.95.0 build recipe](https://github.com/rust-lang/rust/blob/1.95.0/src/ci/docker/scripts/musl-toolchain.sh)
|
|
60
|
+
selects musl 1.2.5 with its two recorded security patches.
|
|
61
|
+
- [Compiler-builtins license](./notices/compiler-builtins-license.txt), from
|
|
62
|
+
[Rust 1.95.0](https://github.com/rust-lang/rust/blob/1.95.0/library/compiler-builtins/LICENSE.txt),
|
|
63
|
+
retaining the MIT and Apache-2.0 WITH LLVM-exception terms.
|
|
64
|
+
- [LLVM libunwind license](./notices/llvm-libunwind-license.txt), from
|
|
65
|
+
[Rust's pinned LLVM source](https://github.com/rust-lang/llvm-project/blob/1cb4e3833c1919c2e6fb579a23ac0e2b22587b7e/libunwind/LICENSE.TXT),
|
|
66
|
+
including its additional third-party terms.
|
|
67
|
+
|
|
68
|
+
## Reproduction and review
|
|
69
|
+
|
|
70
|
+
Use cargo-about 0.9.1 from the repository root:
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
cargo about generate --manifest-path rust/Cargo.toml --config rust/about.toml --locked --fail --output-file notices/cargo-dependencies.html rust/about.hbs
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The configuration preserves the full active graph and selects exact upstream
|
|
77
|
+
attribution files for crates with missing or unrecognized license files. Network
|
|
78
|
+
access is required for pinned Git notices. Generic license text with placeholder
|
|
79
|
+
copyright holders is not a substitute. Windows crates use their exact
|
|
80
|
+
`license-mit` files; curve25519-dalek uses its complete license with both sets of
|
|
81
|
+
attributions. wasip2's omitted MIT notice is retrieved from its exact source
|
|
82
|
+
commit. The feature-inactive valuable package's MIT notice is likewise copied
|
|
83
|
+
from its exact source commit, recorded in the inventory.
|
|
84
|
+
|
|
85
|
+
For every locked package omitted by cargo-about, copy its exact selected license
|
|
86
|
+
from the checksum-verified crate archive, or its pinned source commit when the
|
|
87
|
+
archive omits the license. Also retain separate COPYRIGHT/NOTICES files. For the
|
|
88
|
+
ring supplement, collect copyright-bearing comments from `.rs`, `.c`, `.h`, `.S`
|
|
89
|
+
and `.pl` files, preserving comment bytes and each source path; group only
|
|
90
|
+
identical comments.
|
|
91
|
+
|
|
92
|
+
After changing Cargo.lock, Cargo manifests, the compiler pin or generation
|
|
93
|
+
inputs, regenerate and review the notices, refresh the inventory's SHA-256
|
|
94
|
+
hashes and package list, and rerun distribution qualification. The notice tests
|
|
95
|
+
reject stale inputs, changed notice files, missing locked packages, placeholder
|
|
96
|
+
attributions and missing npm notice paths.
|
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: '8.
|
|
6
|
+
version: '8.3.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
|
}
|
|
Binary file
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "b0419c40c34a6d5fa6d6687847f9e7cb2290348d1fc0930fe4e83c808760078a",
|
|
4
|
-
"buildInfo": {
|
|
5
|
-
"projectName": "@push.rocks/smartdns",
|
|
6
|
-
"projectVersion": "8.2.0",
|
|
7
|
-
"gitCommit": "f3f7861802c8b26d517dd454add13e1bb0909c7b",
|
|
8
|
-
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-08-22T20:55:24.742Z",
|
|
10
|
-
"tsrustVersion": "1.10.0",
|
|
11
|
-
"binary": "rustdns-client",
|
|
12
|
-
"target": "linux_amd64"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "8b24aa046dbac269aa71e6b7b554565d5f50e5664f8f6a54c59d7fe05d232ab5",
|
|
4
|
-
"buildInfo": {
|
|
5
|
-
"projectName": "@push.rocks/smartdns",
|
|
6
|
-
"projectVersion": "8.2.0",
|
|
7
|
-
"gitCommit": "f3f7861802c8b26d517dd454add13e1bb0909c7b",
|
|
8
|
-
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-08-22T20:55:25.226Z",
|
|
10
|
-
"tsrustVersion": "1.10.0",
|
|
11
|
-
"binary": "rustdns-client",
|
|
12
|
-
"target": "linux_arm64"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
Binary file
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "562c4ff14d42e17d0fccd653729eea025dc4eba7be56cb4b49cd2aafe1203bb4",
|
|
4
|
-
"buildInfo": {
|
|
5
|
-
"projectName": "@push.rocks/smartdns",
|
|
6
|
-
"projectVersion": "8.2.0",
|
|
7
|
-
"gitCommit": "f3f7861802c8b26d517dd454add13e1bb0909c7b",
|
|
8
|
-
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-08-22T20:55:24.742Z",
|
|
10
|
-
"tsrustVersion": "1.10.0",
|
|
11
|
-
"binary": "rustdns",
|
|
12
|
-
"target": "linux_amd64"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
Binary file
|