diff --git a/.github/renovate.json b/.github/renovate.json
index b6db198c2f9..50d24770800 100644
--- a/.github/renovate.json
+++ b/.github/renovate.json
@@ -266,6 +266,11 @@
"groupName": "`dashu` Rust crates",
"matchPackageNames": ["/^dashu[-_]?/"]
},
+ {
+ "matchManagers": ["cargo"],
+ "groupName": "`napi` Rust crates",
+ "matchPackageNames": ["/^napi[-_]?/"]
+ },
{
"matchManagers": ["cargo"],
"groupName": "`tower` Rust crates",
diff --git a/Cargo.lock b/Cargo.lock
index 24fc6603ec9..35bdc02e06e 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1373,6 +1373,15 @@ version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+[[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
[[package]]
name = "convert_case"
version = "0.7.1"
@@ -1558,6 +1567,16 @@ dependencies = [
"typenum",
]
+[[package]]
+name = "ctor"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
+dependencies = [
+ "quote",
+ "syn 2.0.98",
+]
+
[[package]]
name = "ctr"
version = "0.9.2"
@@ -1991,6 +2010,15 @@ dependencies = [
"syn 2.0.98",
]
+[[package]]
+name = "effect-dns-hickory"
+version = "0.0.0"
+dependencies = [
+ "napi",
+ "napi-build",
+ "napi-derive",
+]
+
[[package]]
name = "either"
version = "1.13.0"
@@ -3002,7 +3030,7 @@ dependencies = [
name = "hash-graph-migrations-macros"
version = "0.0.0"
dependencies = [
- "convert_case",
+ "convert_case 0.7.1",
"derive_more 2.0.1",
"proc-macro-error2",
"proc-macro2",
@@ -4847,6 +4875,64 @@ dependencies = [
"unsigned-varint 0.7.2",
]
+[[package]]
+name = "napi"
+version = "2.16.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3437deb8b6ba2448b6a94260c5c6b9e5eeb5a5d6277e44b40b2532d457b0f0d"
+dependencies = [
+ "bitflags 2.6.0",
+ "ctor",
+ "napi-derive",
+ "napi-sys",
+ "once_cell",
+ "tokio",
+]
+
+[[package]]
+name = "napi-build"
+version = "2.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db836caddef23662b94e16bf1f26c40eceb09d6aee5d5b06a7ac199320b69b19"
+
+[[package]]
+name = "napi-derive"
+version = "2.16.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c"
+dependencies = [
+ "cfg-if",
+ "convert_case 0.6.0",
+ "napi-derive-backend",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.98",
+]
+
+[[package]]
+name = "napi-derive-backend"
+version = "1.0.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf"
+dependencies = [
+ "convert_case 0.6.0",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "semver",
+ "syn 2.0.98",
+]
+
+[[package]]
+name = "napi-sys"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3"
+dependencies = [
+ "libloading",
+]
+
[[package]]
name = "netlink-packet-core"
version = "0.7.0"
diff --git a/Cargo.toml b/Cargo.toml
index 8d6aa802b27..e56e8bb218a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -6,6 +6,7 @@ members = [
"apps/hash-graph",
"libs/@blockprotocol/type-system/rust",
"libs/@local/codec",
+ "libs/@local/effect-dns/hickory",
"libs/@local/graph/api",
"libs/@local/graph/authorization",
"libs/@local/graph/migrations",
@@ -187,6 +188,9 @@ logos = { version = "=0.15.0", default-features = false }
memchr = { version = "=2.7.4", default-features = false }
mimalloc = { version = "=0.1.43", default-features = false }
mime = { version = "=0.3.17", default-features = false }
+napi = { version = "=2.16.15", default-features = false }
+napi-build = { version = "=2.1.4", default-features = false }
+napi-derive = { version = "=2.16.13", default-features = false }
num-traits = { version = "=0.2.19", default-features = false }
once_cell = { version = "=1.20.2", default-features = false }
opentelemetry = { version = "=0.27.1", default-features = false }
diff --git a/libs/@local/effect-dns/core/LICENSE-APACHE.md b/libs/@local/effect-dns/core/LICENSE-APACHE.md
new file mode 100644
index 00000000000..1d1b6f8da4d
--- /dev/null
+++ b/libs/@local/effect-dns/core/LICENSE-APACHE.md
@@ -0,0 +1,189 @@
+# Apache License
+
+_Version 2.0, January 2004_
+_<>_
+
+### Terms and Conditions for use, reproduction, and distribution
+
+#### 1. Definitions
+
+“License” shall mean the terms and conditions for use, reproduction, and
+distribution as defined by Sections 1 through 9 of this document.
+
+“Licensor” shall mean the copyright owner or entity authorized by the copyright
+owner that is granting the License.
+
+“Legal Entity” shall mean the union of the acting entity and all other entities
+that control, are controlled by, or are under common control with that entity.
+For the purposes of this definition, “control” means **(i)** the power, direct or
+indirect, to cause the direction or management of such entity, whether by
+contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
+outstanding shares, or **(iii)** beneficial ownership of such entity.
+
+“You” (or “Your”) shall mean an individual or Legal Entity exercising
+permissions granted by this License.
+
+“Source” form shall mean the preferred form for making modifications, including
+but not limited to software source code, documentation source, and configuration
+files.
+
+“Object” form shall mean any form resulting from mechanical transformation or
+translation of a Source form, including but not limited to compiled object code,
+generated documentation, and conversions to other media types.
+
+“Work” shall mean the work of authorship, whether in Source or Object form, made
+available under the License, as indicated by a copyright notice that is included
+in or attached to the work (an example is provided in the Appendix below).
+
+“Derivative Works” shall mean any work, whether in Source or Object form, that
+is based on (or derived from) the Work and for which the editorial revisions,
+annotations, elaborations, or other modifications represent, as a whole, an
+original work of authorship. For the purposes of this License, Derivative Works
+shall not include works that remain separable from, or merely link (or bind by
+name) to the interfaces of, the Work and Derivative Works thereof.
+
+“Contribution” shall mean any work of authorship, including the original version
+of the Work and any modifications or additions to that Work or Derivative Works
+thereof, that is intentionally submitted to Licensor for inclusion in the Work
+by the copyright owner or by an individual or Legal Entity authorized to submit
+on behalf of the copyright owner. For the purposes of this definition,
+“submitted” means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems, and
+issue tracking systems that are managed by, or on behalf of, the Licensor for
+the purpose of discussing and improving the Work, but excluding communication
+that is conspicuously marked or otherwise designated in writing by the copyright
+owner as “Not a Contribution.”
+
+“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
+of whom a Contribution has been received by Licensor and subsequently
+incorporated within the Work.
+
+#### 2. Grant of Copyright License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the Work and such
+Derivative Works in Source or Object form.
+
+#### 3. Grant of Patent License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable (except as stated in this section) patent license to make, have
+made, use, offer to sell, sell, import, and otherwise transfer the Work, where
+such license applies only to those patent claims licensable by such Contributor
+that are necessarily infringed by their Contribution(s) alone or by combination
+of their Contribution(s) with the Work to which such Contribution(s) was
+submitted. If You institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work or a
+Contribution incorporated within the Work constitutes direct or contributory
+patent infringement, then any patent licenses granted to You under this License
+for that Work shall terminate as of the date such litigation is filed.
+
+#### 4. Redistribution
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof
+in any medium, with or without modifications, and in Source or Object form,
+provided that You meet the following conditions:
+
+- **(a)** You must give any other recipients of the Work or Derivative Works a copy of
+ this License; and
+- **(b)** You must cause any modified files to carry prominent notices stating that You
+ changed the files; and
+- **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
+ all copyright, patent, trademark, and attribution notices from the Source form
+ of the Work, excluding those notices that do not pertain to any part of the
+ Derivative Works; and
+- **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
+ Derivative Works that You distribute must include a readable copy of the
+ attribution notices contained within such NOTICE file, excluding those notices
+ that do not pertain to any part of the Derivative Works, in at least one of the
+ following places: within a NOTICE text file distributed as part of the
+ Derivative Works; within the Source form or documentation, if provided along
+ with the Derivative Works; or, within a display generated by the Derivative
+ Works, if and wherever such third-party notices normally appear. The contents of
+ the NOTICE file are for informational purposes only and do not modify the
+ License. You may add Your own attribution notices within Derivative Works that
+ You distribute, alongside or as an addendum to the NOTICE text from the Work,
+ provided that such additional attribution notices cannot be construed as
+ modifying the License.
+
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works as a whole,
+provided Your use, reproduction, and distribution of the Work otherwise complies
+with the conditions stated in this License.
+
+#### 5. Submission of Contributions
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted
+for inclusion in the Work by You to the Licensor shall be under the terms and
+conditions of this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify the terms of
+any separate license agreement you may have executed with Licensor regarding
+such Contributions.
+
+#### 6. Trademarks
+
+This License does not grant permission to use the trade names, trademarks,
+service marks, or product names of the Licensor, except as required for
+reasonable and customary use in describing the origin of the Work and
+reproducing the content of the NOTICE file.
+
+#### 7. Disclaimer of Warranty
+
+Unless required by applicable law or agreed to in writing, Licensor provides the
+Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
+including, without limitation, any warranties or conditions of TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
+solely responsible for determining the appropriateness of using or
+redistributing the Work and assume any risks associated with Your exercise of
+permissions under this License.
+
+#### 8. Limitation of Liability
+
+In no event and under no legal theory, whether in tort (including negligence),
+contract, or otherwise, unless required by applicable law (such as deliberate
+and grossly negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License or
+out of the use or inability to use the Work (including but not limited to
+damages for loss of goodwill, work stoppage, computer failure or malfunction, or
+any and all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+
+#### 9. Accepting Warranty or Additional Liability
+
+While redistributing the Work or Derivative Works thereof, You may choose to
+offer, and charge a fee for, acceptance of support, warranty, indemnity, or
+other liability obligations and/or rights consistent with this License. However,
+in accepting such obligations, You may act only on Your own behalf and on Your
+sole responsibility, not on behalf of any other Contributor, and only if You
+agree to indemnify, defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason of your
+accepting any such warranty or additional liability.
+
+_END OF TERMS AND CONDITIONS_
+
+### APPENDIX: Apply the Apache License to a specific file
+
+To apply the Apache License to an individual file, attach the following notice.
+The text should be enclosed in the appropriate comment syntax for the file
+format.
+
+ Copyright © 2022–, HASH
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/libs/@local/effect-dns/core/LICENSE-MIT.md b/libs/@local/effect-dns/core/LICENSE-MIT.md
new file mode 100644
index 00000000000..e33c1d34b0e
--- /dev/null
+++ b/libs/@local/effect-dns/core/LICENSE-MIT.md
@@ -0,0 +1,21 @@
+# MIT License
+
+Copyright © 2022–, HASH
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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.
diff --git a/libs/@local/effect-dns/core/LICENSE.md b/libs/@local/effect-dns/core/LICENSE.md
new file mode 100644
index 00000000000..8b31346dd55
--- /dev/null
+++ b/libs/@local/effect-dns/core/LICENSE.md
@@ -0,0 +1,5 @@
+# License
+
+Licensed under either of the [Apache License, Version 2.0](LICENSE-APACHE.md) or [MIT license](LICENSE-MIT.md) at your option.
+
+For more information about contributing to this crate, see our top-level [CONTRIBUTING](https://github.com/hashintel/hash/blob/main/.github/CONTRIBUTING.md) policy.
diff --git a/libs/@local/effect-dns/core/README.md b/libs/@local/effect-dns/core/README.md
new file mode 100644
index 00000000000..8181aba6242
--- /dev/null
+++ b/libs/@local/effect-dns/core/README.md
@@ -0,0 +1 @@
+# @local/effect-dns
diff --git a/libs/@local/effect-dns/core/eslint.config.js b/libs/@local/effect-dns/core/eslint.config.js
new file mode 100644
index 00000000000..e8bf22d7d47
--- /dev/null
+++ b/libs/@local/effect-dns/core/eslint.config.js
@@ -0,0 +1,26 @@
+import { create } from "@local/eslint";
+
+/**
+ * @todo why is this required in this package but not others with the same config? if not explicitly typed, we get:
+ * TS2742: The inferred type of 'default' cannot be named without a reference to '../../../../../node_modules/@local/eslint/dist/utils.js'.
+ * This is likely not portable. A type annotation is necessary.
+ *
+ * @type {import('eslint').Linter.Config[]}
+ */
+const config = [
+ ...create(import.meta.dirname, {
+ enabled: {
+ frontend: false,
+ playwright: false,
+ tests: true,
+ storybook: false,
+ },
+ }),
+ {
+ rules: {
+ "fsecond/prefer-destructured-optionals": "off",
+ },
+ },
+];
+
+export default config;
diff --git a/libs/@local/effect-dns/core/package.json b/libs/@local/effect-dns/core/package.json
new file mode 100644
index 00000000000..0a9a6d8e598
--- /dev/null
+++ b/libs/@local/effect-dns/core/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "@local/effect-dns",
+ "version": "0.0.0-private",
+ "private": true,
+ "description": "DNS library for the Effect ecosystem",
+ "license": "MIT OR Apache-2.0",
+ "type": "module",
+ "exports": {
+ ".": {
+ "import": "./dist/src/index.js",
+ "types": "./dist/src/index.d.ts"
+ },
+ "./*": {
+ "import": "./dist/src/*/index.js",
+ "types": "./dist/src/*/index.d.ts"
+ }
+ },
+ "scripts": {
+ "build": "rimraf dist && tsc --build tsconfig.build.json",
+ "fix:eslint": "eslint --fix .",
+ "lint:eslint": "eslint --report-unused-disable-directives .",
+ "lint:tsc": "tsc --noEmit"
+ },
+ "devDependencies": {
+ "@local/eslint": "0.0.0-private",
+ "@local/tsconfig": "0.0.0-private",
+ "eslint": "9.19.0",
+ "rimraf": "6.0.1",
+ "typescript": "5.7.3"
+ }
+}
diff --git a/libs/@local/effect-dns/core/src/index.ts b/libs/@local/effect-dns/core/src/index.ts
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/libs/@local/effect-dns/core/tsconfig.build.json b/libs/@local/effect-dns/core/tsconfig.build.json
new file mode 100644
index 00000000000..689d620ed56
--- /dev/null
+++ b/libs/@local/effect-dns/core/tsconfig.build.json
@@ -0,0 +1,10 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "outDir": "dist",
+ "paths": {},
+ "stripInternal": true
+ },
+ "include": ["src"]
+}
diff --git a/libs/@local/effect-dns/core/tsconfig.json b/libs/@local/effect-dns/core/tsconfig.json
new file mode 100644
index 00000000000..971cfce933a
--- /dev/null
+++ b/libs/@local/effect-dns/core/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "@local/tsconfig/legacy-base-tsconfig-to-refactor.json",
+ "compilerOptions": {
+ "module": "NodeNext",
+ "moduleResolution": "nodenext"
+ },
+ "include": ["src", "tests", "eslint.config.js", "vitest.config.ts"]
+}
diff --git a/libs/@local/effect-dns/core/turbo.json b/libs/@local/effect-dns/core/turbo.json
new file mode 100644
index 00000000000..2a3d6652d9e
--- /dev/null
+++ b/libs/@local/effect-dns/core/turbo.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://turborepo.org/schema.json",
+ "extends": ["//"],
+ "tasks": {
+ "build": {
+ "outputs": ["./dist/**"]
+ }
+ }
+}
diff --git a/libs/@local/effect-dns/hickory/.cargo/config.toml b/libs/@local/effect-dns/hickory/.cargo/config.toml
new file mode 100644
index 00000000000..4551b7d5f04
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/.cargo/config.toml
@@ -0,0 +1,6 @@
+[target.aarch64-unknown-linux-musl]
+linker = "aarch64-linux-musl-gcc"
+rustflags = ["-C", "target-feature=-crt-static"]
+
+[target.x86_64-pc-windows-msvc]
+rustflags = ["-C", "target-feature=+crt-static"]
diff --git a/libs/@local/effect-dns/hickory/Cargo.toml b/libs/@local/effect-dns/hickory/Cargo.toml
new file mode 100644
index 00000000000..190d79cabd3
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/Cargo.toml
@@ -0,0 +1,30 @@
+[package]
+name = "effect-dns-hickory"
+authors.workspace = true
+version = "0.0.0"
+edition.workspace = true
+license = "MIT OR Apache-2.0"
+publish = false
+
+[lib]
+crate-type = ["cdylib"]
+
+[dependencies]
+# Public workspace dependencies
+
+# Public third-party dependencies
+
+# Private workspace dependencies
+
+# Private third-party dependencies
+napi = { workspace = true, features = ["napi9", "tokio_rt"] }
+napi-derive = { workspace = true, features = ["compat-mode", "full"] }
+
+[build-dependencies]
+napi-build = { workspace = true }
+
+[lints]
+workspace = true
+
+[package.metadata.sync.turborepo]
+ignore = true
diff --git a/libs/@local/effect-dns/hickory/LICENSE-APACHE.md b/libs/@local/effect-dns/hickory/LICENSE-APACHE.md
new file mode 100644
index 00000000000..1d1b6f8da4d
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/LICENSE-APACHE.md
@@ -0,0 +1,189 @@
+# Apache License
+
+_Version 2.0, January 2004_
+_<>_
+
+### Terms and Conditions for use, reproduction, and distribution
+
+#### 1. Definitions
+
+“License” shall mean the terms and conditions for use, reproduction, and
+distribution as defined by Sections 1 through 9 of this document.
+
+“Licensor” shall mean the copyright owner or entity authorized by the copyright
+owner that is granting the License.
+
+“Legal Entity” shall mean the union of the acting entity and all other entities
+that control, are controlled by, or are under common control with that entity.
+For the purposes of this definition, “control” means **(i)** the power, direct or
+indirect, to cause the direction or management of such entity, whether by
+contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
+outstanding shares, or **(iii)** beneficial ownership of such entity.
+
+“You” (or “Your”) shall mean an individual or Legal Entity exercising
+permissions granted by this License.
+
+“Source” form shall mean the preferred form for making modifications, including
+but not limited to software source code, documentation source, and configuration
+files.
+
+“Object” form shall mean any form resulting from mechanical transformation or
+translation of a Source form, including but not limited to compiled object code,
+generated documentation, and conversions to other media types.
+
+“Work” shall mean the work of authorship, whether in Source or Object form, made
+available under the License, as indicated by a copyright notice that is included
+in or attached to the work (an example is provided in the Appendix below).
+
+“Derivative Works” shall mean any work, whether in Source or Object form, that
+is based on (or derived from) the Work and for which the editorial revisions,
+annotations, elaborations, or other modifications represent, as a whole, an
+original work of authorship. For the purposes of this License, Derivative Works
+shall not include works that remain separable from, or merely link (or bind by
+name) to the interfaces of, the Work and Derivative Works thereof.
+
+“Contribution” shall mean any work of authorship, including the original version
+of the Work and any modifications or additions to that Work or Derivative Works
+thereof, that is intentionally submitted to Licensor for inclusion in the Work
+by the copyright owner or by an individual or Legal Entity authorized to submit
+on behalf of the copyright owner. For the purposes of this definition,
+“submitted” means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems, and
+issue tracking systems that are managed by, or on behalf of, the Licensor for
+the purpose of discussing and improving the Work, but excluding communication
+that is conspicuously marked or otherwise designated in writing by the copyright
+owner as “Not a Contribution.”
+
+“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
+of whom a Contribution has been received by Licensor and subsequently
+incorporated within the Work.
+
+#### 2. Grant of Copyright License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the Work and such
+Derivative Works in Source or Object form.
+
+#### 3. Grant of Patent License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable (except as stated in this section) patent license to make, have
+made, use, offer to sell, sell, import, and otherwise transfer the Work, where
+such license applies only to those patent claims licensable by such Contributor
+that are necessarily infringed by their Contribution(s) alone or by combination
+of their Contribution(s) with the Work to which such Contribution(s) was
+submitted. If You institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work or a
+Contribution incorporated within the Work constitutes direct or contributory
+patent infringement, then any patent licenses granted to You under this License
+for that Work shall terminate as of the date such litigation is filed.
+
+#### 4. Redistribution
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof
+in any medium, with or without modifications, and in Source or Object form,
+provided that You meet the following conditions:
+
+- **(a)** You must give any other recipients of the Work or Derivative Works a copy of
+ this License; and
+- **(b)** You must cause any modified files to carry prominent notices stating that You
+ changed the files; and
+- **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
+ all copyright, patent, trademark, and attribution notices from the Source form
+ of the Work, excluding those notices that do not pertain to any part of the
+ Derivative Works; and
+- **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
+ Derivative Works that You distribute must include a readable copy of the
+ attribution notices contained within such NOTICE file, excluding those notices
+ that do not pertain to any part of the Derivative Works, in at least one of the
+ following places: within a NOTICE text file distributed as part of the
+ Derivative Works; within the Source form or documentation, if provided along
+ with the Derivative Works; or, within a display generated by the Derivative
+ Works, if and wherever such third-party notices normally appear. The contents of
+ the NOTICE file are for informational purposes only and do not modify the
+ License. You may add Your own attribution notices within Derivative Works that
+ You distribute, alongside or as an addendum to the NOTICE text from the Work,
+ provided that such additional attribution notices cannot be construed as
+ modifying the License.
+
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works as a whole,
+provided Your use, reproduction, and distribution of the Work otherwise complies
+with the conditions stated in this License.
+
+#### 5. Submission of Contributions
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted
+for inclusion in the Work by You to the Licensor shall be under the terms and
+conditions of this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify the terms of
+any separate license agreement you may have executed with Licensor regarding
+such Contributions.
+
+#### 6. Trademarks
+
+This License does not grant permission to use the trade names, trademarks,
+service marks, or product names of the Licensor, except as required for
+reasonable and customary use in describing the origin of the Work and
+reproducing the content of the NOTICE file.
+
+#### 7. Disclaimer of Warranty
+
+Unless required by applicable law or agreed to in writing, Licensor provides the
+Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
+including, without limitation, any warranties or conditions of TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
+solely responsible for determining the appropriateness of using or
+redistributing the Work and assume any risks associated with Your exercise of
+permissions under this License.
+
+#### 8. Limitation of Liability
+
+In no event and under no legal theory, whether in tort (including negligence),
+contract, or otherwise, unless required by applicable law (such as deliberate
+and grossly negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License or
+out of the use or inability to use the Work (including but not limited to
+damages for loss of goodwill, work stoppage, computer failure or malfunction, or
+any and all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+
+#### 9. Accepting Warranty or Additional Liability
+
+While redistributing the Work or Derivative Works thereof, You may choose to
+offer, and charge a fee for, acceptance of support, warranty, indemnity, or
+other liability obligations and/or rights consistent with this License. However,
+in accepting such obligations, You may act only on Your own behalf and on Your
+sole responsibility, not on behalf of any other Contributor, and only if You
+agree to indemnify, defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason of your
+accepting any such warranty or additional liability.
+
+_END OF TERMS AND CONDITIONS_
+
+### APPENDIX: Apply the Apache License to a specific file
+
+To apply the Apache License to an individual file, attach the following notice.
+The text should be enclosed in the appropriate comment syntax for the file
+format.
+
+ Copyright © 2022–, HASH
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/libs/@local/effect-dns/hickory/LICENSE-MIT.md b/libs/@local/effect-dns/hickory/LICENSE-MIT.md
new file mode 100644
index 00000000000..e33c1d34b0e
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/LICENSE-MIT.md
@@ -0,0 +1,21 @@
+# MIT License
+
+Copyright © 2022–, HASH
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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.
diff --git a/libs/@local/effect-dns/hickory/LICENSE.md b/libs/@local/effect-dns/hickory/LICENSE.md
new file mode 100644
index 00000000000..8b31346dd55
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/LICENSE.md
@@ -0,0 +1,5 @@
+# License
+
+Licensed under either of the [Apache License, Version 2.0](LICENSE-APACHE.md) or [MIT license](LICENSE-MIT.md) at your option.
+
+For more information about contributing to this crate, see our top-level [CONTRIBUTING](https://github.com/hashintel/hash/blob/main/.github/CONTRIBUTING.md) policy.
diff --git a/libs/@local/effect-dns/hickory/README.md b/libs/@local/effect-dns/hickory/README.md
new file mode 100644
index 00000000000..de5f7e92e58
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/README.md
@@ -0,0 +1,3 @@
+# Effect DNS Hickory Implementation
+
+Currently no additional packages are required, as this package doesn't need to be published, in the future if published, the `yarn regenerate-packages` command needs to be executed. This will create all required packages that are required for publishing. For more information on publishing see and .
diff --git a/libs/@local/effect-dns/hickory/build.rs b/libs/@local/effect-dns/hickory/build.rs
new file mode 100644
index 00000000000..9fc23678893
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/build.rs
@@ -0,0 +1,5 @@
+extern crate napi_build;
+
+fn main() {
+ napi_build::setup();
+}
diff --git a/libs/@local/effect-dns/hickory/eslint.config.js b/libs/@local/effect-dns/hickory/eslint.config.js
new file mode 100644
index 00000000000..e8bf22d7d47
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/eslint.config.js
@@ -0,0 +1,26 @@
+import { create } from "@local/eslint";
+
+/**
+ * @todo why is this required in this package but not others with the same config? if not explicitly typed, we get:
+ * TS2742: The inferred type of 'default' cannot be named without a reference to '../../../../../node_modules/@local/eslint/dist/utils.js'.
+ * This is likely not portable. A type annotation is necessary.
+ *
+ * @type {import('eslint').Linter.Config[]}
+ */
+const config = [
+ ...create(import.meta.dirname, {
+ enabled: {
+ frontend: false,
+ playwright: false,
+ tests: true,
+ storybook: false,
+ },
+ }),
+ {
+ rules: {
+ "fsecond/prefer-destructured-optionals": "off",
+ },
+ },
+];
+
+export default config;
diff --git a/libs/@local/effect-dns/hickory/package.json b/libs/@local/effect-dns/hickory/package.json
new file mode 100644
index 00000000000..730dfc73b0c
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "@local/effect-dns-hickory",
+ "version": "0.0.0-private",
+ "private": true,
+ "description": "Hickory DNS implementation of DNS effect library",
+ "license": "MIT OR Apache-2.0",
+ "type": "module",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "build": "rimraf dist && yarn build:release && tsc --build tsconfig.build.json",
+ "build:debug": "napi build dist --platform --js=impl.js --dts=impl.d.ts",
+ "build:release": "napi build dist --platform --release --js=impl.js --dts=impl.d.ts",
+ "fix:eslint": "eslint --fix .",
+ "lint:eslint": "eslint --report-unused-disable-directives .",
+ "lint:tsc": "tsc --noEmit",
+ "regenerate-packages": "napi create-npm-dir --target=.",
+ "test:unit": "vitest --run"
+ },
+ "devDependencies": {
+ "@local/eslint": "0.0.0-private",
+ "@local/tsconfig": "0.0.0-private",
+ "@napi-rs/cli": "2.18.4",
+ "@vitest/coverage-istanbul": "2.1.9",
+ "eslint": "9.19.0",
+ "rimraf": "6.0.1",
+ "typescript": "5.7.3",
+ "vitest": "2.1.9"
+ },
+ "napi": {
+ "name": "effect-dns-hickory",
+ "triples": {
+ "additional": [
+ "aarch64-apple-darwin",
+ "aarch64-unknown-linux-gnu",
+ "aarch64-unknown-linux-musl",
+ "aarch64-pc-windows-msvc"
+ ]
+ }
+ }
+}
diff --git a/libs/@local/effect-dns/hickory/src/index.ts b/libs/@local/effect-dns/hickory/src/index.ts
new file mode 100644
index 00000000000..f8ff9b23bcf
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/src/index.ts
@@ -0,0 +1 @@
+export { sum } from "./impl.js";
diff --git a/libs/@local/effect-dns/hickory/src/lib.rs b/libs/@local/effect-dns/hickory/src/lib.rs
new file mode 100644
index 00000000000..de6406a6286
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/src/lib.rs
@@ -0,0 +1,9 @@
+#![allow(clippy::cfg_not_test, reason = "napi macro uses cfg(not(test))")]
+
+use napi_derive::napi;
+
+#[napi]
+#[must_use]
+pub const fn sum(lhs: i32, rhs: i32) -> i32 {
+ lhs + rhs
+}
diff --git a/libs/@local/effect-dns/hickory/tests/dummy.test.ts b/libs/@local/effect-dns/hickory/tests/dummy.test.ts
new file mode 100644
index 00000000000..a6fe0c4bbc2
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/tests/dummy.test.ts
@@ -0,0 +1,9 @@
+import { describe, test, expect } from "vitest";
+
+import { sum } from "@local/effect-dns-hickory";
+
+describe("example", () => {
+ test("should work", () => {
+ expect(sum(1, 2)).toBe(3);
+ });
+});
diff --git a/libs/@local/effect-dns/hickory/tsconfig.build.json b/libs/@local/effect-dns/hickory/tsconfig.build.json
new file mode 100644
index 00000000000..179087b2b3d
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/tsconfig.build.json
@@ -0,0 +1,10 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "declaration": true,
+ "outDir": "dist",
+ "stripInternal": true,
+ "paths": {}
+ },
+ "include": ["src"]
+}
diff --git a/libs/@local/effect-dns/hickory/tsconfig.json b/libs/@local/effect-dns/hickory/tsconfig.json
new file mode 100644
index 00000000000..b5d5171a659
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "@local/tsconfig/legacy-base-tsconfig-to-refactor.json",
+ "compilerOptions": {
+ "module": "NodeNext",
+ "moduleResolution": "nodenext",
+ "types": ["vitest/importMeta"],
+ "rootDirs": ["src", "dist"],
+ "paths": {
+ "@local/effect-dns/hickory": ["src/index.ts"]
+ }
+ },
+ "include": ["src", "tests", "types", "vitest.config.ts"]
+}
diff --git a/libs/@local/effect-dns/hickory/turbo.json b/libs/@local/effect-dns/hickory/turbo.json
new file mode 100644
index 00000000000..df13cbf95e2
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/turbo.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "https://turborepo.org/schema.json",
+ "extends": ["//"],
+ "tasks": {
+ "build": {
+ "outputs": ["./dist/**"]
+ },
+ "test:unit": {
+ "dependsOn": ["build"]
+ },
+ "lint:eslint": {
+ "dependsOn": ["build"]
+ },
+ "lint:tsc": {
+ "dependsOn": ["build"]
+ }
+ }
+}
diff --git a/libs/@local/effect-dns/hickory/vitest.config.ts b/libs/@local/effect-dns/hickory/vitest.config.ts
new file mode 100644
index 00000000000..e21edf32c22
--- /dev/null
+++ b/libs/@local/effect-dns/hickory/vitest.config.ts
@@ -0,0 +1,20 @@
+///
+import { defineConfig } from "vitest/config";
+
+export default defineConfig({
+ plugins: [],
+ build: {
+ target: "esnext",
+ },
+ test: {
+ coverage: {
+ enabled: process.env.TEST_COVERAGE === "true",
+ provider: "istanbul",
+ reporter: ["lcov", "text"],
+ include: ["**/*.{c,m,}{j,t}s{x,}"],
+ },
+ environment: "node",
+ testTimeout: 30000,
+ maxConcurrency: 16,
+ },
+});
diff --git a/libs/@local/tsconfig/legacy-base-tsconfig-to-refactor.json b/libs/@local/tsconfig/legacy-base-tsconfig-to-refactor.json
index a975c50143a..01749b84794 100644
--- a/libs/@local/tsconfig/legacy-base-tsconfig-to-refactor.json
+++ b/libs/@local/tsconfig/legacy-base-tsconfig-to-refactor.json
@@ -36,6 +36,9 @@
"@local/hash-subgraph/*": ["../hash-subgraph/src/*.ts"],
"@local/harpc-client": ["../harpc/client/typescript/src/index.ts"],
"@local/harpc-client/*": ["../harpc/client/typescript/src/*/index.ts"],
+ "@local/effect-dns": ["../effect-dns/core/src/index.ts"],
+ "@local/effect-dns/*": ["../effect-dns/core/src/*/index.ts"],
+ "@local/effect-dns-hickory": ["../effect-dns/hickory/dist/index.ts"],
"@local/eslint": ["../eslint/src/index.ts"],
"@local/eslint/*": ["../eslint/src/*/index.ts"]
},
diff --git a/package.json b/package.json
index fd048a3bfd0..a4df960540c 100644
--- a/package.json
+++ b/package.json
@@ -99,6 +99,7 @@
"@biomejs/biome": "1.9.5-nightly.ff02a0b",
"@changesets/changelog-github": "0.5.0",
"@changesets/cli": "patch:@changesets/cli@npm%3A2.26.0#~/.yarn/patches/@changesets-cli-npm-2.26.0-49d5c5f72d.patch",
+ "@napi-rs/cli": "2.18.4",
"@sentry/cli": "^2.39.1",
"@taplo/cli": "0.7.0",
"@yarnpkg/types": "^4.0.0",
@@ -107,7 +108,7 @@
"npm-run-all2": "7.0.2",
"turbo": "2.4.0"
},
- "packageManager": "yarn@4.6.0+sha512.5383cc12567a95f1d668fbe762dfe0075c595b4bfff433be478dbbe24e05251a8e8c3eb992a986667c1d53b6c3a9c85b8398c35a960587fbd9fa3a0915406728",
+ "packageManager": "yarn@4.6.0",
"engines": {
"node": ">= v22"
}
diff --git a/yarn.lock b/yarn.lock
index 748e3b8d559..eafe78eb302 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8968,6 +8968,33 @@ __metadata:
languageName: unknown
linkType: soft
+"@local/effect-dns-hickory@workspace:libs/@local/effect-dns/hickory":
+ version: 0.0.0-use.local
+ resolution: "@local/effect-dns-hickory@workspace:libs/@local/effect-dns/hickory"
+ dependencies:
+ "@local/eslint": "npm:0.0.0-private"
+ "@local/tsconfig": "npm:0.0.0-private"
+ "@napi-rs/cli": "npm:2.18.4"
+ "@vitest/coverage-istanbul": "npm:2.1.9"
+ eslint: "npm:9.19.0"
+ rimraf: "npm:6.0.1"
+ typescript: "npm:5.7.3"
+ vitest: "npm:2.1.9"
+ languageName: unknown
+ linkType: soft
+
+"@local/effect-dns@workspace:libs/@local/effect-dns/core":
+ version: 0.0.0-use.local
+ resolution: "@local/effect-dns@workspace:libs/@local/effect-dns/core"
+ dependencies:
+ "@local/eslint": "npm:0.0.0-private"
+ "@local/tsconfig": "npm:0.0.0-private"
+ eslint: "npm:9.19.0"
+ rimraf: "npm:6.0.1"
+ typescript: "npm:5.7.3"
+ languageName: unknown
+ linkType: soft
+
"@local/eslint@npm:0.0.0-private, @local/eslint@workspace:libs/@local/eslint":
version: 0.0.0-use.local
resolution: "@local/eslint@workspace:libs/@local/eslint"
@@ -9689,6 +9716,15 @@ __metadata:
languageName: node
linkType: hard
+"@napi-rs/cli@npm:2.18.4":
+ version: 2.18.4
+ resolution: "@napi-rs/cli@npm:2.18.4"
+ bin:
+ napi: scripts/index.js
+ checksum: 10c0/cb80bc86687ba01077a0faa8d38198bc632b7caacf3a42ec42c3ec04700084ca26be9eec13bf7ac7da90e6afb46c65a39de8a86825a53b74dec2f2f459c0a7ea
+ languageName: node
+ linkType: hard
+
"@ndelangen/get-tarball@npm:^3.0.7":
version: 3.0.9
resolution: "@ndelangen/get-tarball@npm:3.0.9"
@@ -12537,6 +12573,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-android-arm-eabi@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.34.2"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-android-arm64@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-android-arm64@npm:4.34.0"
@@ -12544,6 +12587,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-android-arm64@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-android-arm64@npm:4.34.2"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-darwin-arm64@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-darwin-arm64@npm:4.34.0"
@@ -12551,6 +12601,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-darwin-arm64@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.34.2"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-darwin-x64@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-darwin-x64@npm:4.34.0"
@@ -12558,6 +12615,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-darwin-x64@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-darwin-x64@npm:4.34.2"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-freebsd-arm64@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-freebsd-arm64@npm:4.34.0"
@@ -12565,6 +12629,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-freebsd-arm64@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-freebsd-arm64@npm:4.34.2"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-freebsd-x64@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-freebsd-x64@npm:4.34.0"
@@ -12572,6 +12643,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-freebsd-x64@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-freebsd-x64@npm:4.34.2"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm-gnueabihf@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.0"
@@ -12579,6 +12657,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.2"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm-musleabihf@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.34.0"
@@ -12586,6 +12671,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm-musleabihf@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.34.2"
+ conditions: os=linux & cpu=arm & libc=musl
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm64-gnu@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.0"
@@ -12593,6 +12685,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm64-gnu@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.2"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm64-musl@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.0"
@@ -12600,6 +12699,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm64-musl@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.2"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-loongarch64-gnu@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.0"
@@ -12607,6 +12713,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-loongarch64-gnu@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.2"
+ conditions: os=linux & cpu=loong64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.0"
@@ -12614,6 +12727,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.2"
+ conditions: os=linux & cpu=ppc64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-riscv64-gnu@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.34.0"
@@ -12621,6 +12741,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-riscv64-gnu@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.34.2"
+ conditions: os=linux & cpu=riscv64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-s390x-gnu@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.0"
@@ -12628,6 +12755,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-s390x-gnu@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.2"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-x64-gnu@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.0"
@@ -12635,6 +12769,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-x64-gnu@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.2"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-x64-musl@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.0"
@@ -12642,6 +12783,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-x64-musl@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.2"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-win32-arm64-msvc@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.0"
@@ -12649,6 +12797,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-win32-arm64-msvc@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.2"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-win32-ia32-msvc@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.34.0"
@@ -12656,6 +12811,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-win32-ia32-msvc@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.34.2"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-win32-x64-msvc@npm:4.34.0":
version: 4.34.0
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.0"
@@ -12663,6 +12825,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-win32-x64-msvc@npm:4.34.2":
+ version: 4.34.2
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.2"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rtsao/scc@npm:^1.1.0":
version: 1.1.0
resolution: "@rtsao/scc@npm:1.1.0"
@@ -25457,9 +25626,9 @@ __metadata:
linkType: hard
"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.4.1, es-module-lexer@npm:^1.5.3, es-module-lexer@npm:^1.5.4":
- version: 1.5.4
- resolution: "es-module-lexer@npm:1.5.4"
- checksum: 10c0/300a469488c2f22081df1e4c8398c78db92358496e639b0df7f89ac6455462aaf5d8893939087c1a1cbcbf20eed4610c70e0bcb8f3e4b0d80a5d2611c539408c
+ version: 1.6.0
+ resolution: "es-module-lexer@npm:1.6.0"
+ checksum: 10c0/667309454411c0b95c476025929881e71400d74a746ffa1ff4cb450bd87f8e33e8eef7854d68e401895039ac0bac64e7809acbebb6253e055dd49ea9e3ea9212
languageName: node
linkType: hard
@@ -29387,6 +29556,7 @@ __metadata:
"@biomejs/biome": "npm:1.9.5-nightly.ff02a0b"
"@changesets/changelog-github": "npm:0.5.0"
"@changesets/cli": "patch:@changesets/cli@npm%3A2.26.0#~/.yarn/patches/@changesets-cli-npm-2.26.0-49d5c5f72d.patch"
+ "@napi-rs/cli": "npm:2.18.4"
"@sentry/cli": "npm:^2.39.1"
"@taplo/cli": "npm:0.7.0"
"@yarnpkg/types": "npm:^4.0.0"
@@ -33681,11 +33851,11 @@ __metadata:
linkType: hard
"magic-string@npm:^0.30.12, magic-string@npm:^0.30.3, magic-string@npm:^0.30.5":
- version: 0.30.14
- resolution: "magic-string@npm:0.30.14"
+ version: 0.30.17
+ resolution: "magic-string@npm:0.30.17"
dependencies:
"@jridgewell/sourcemap-codec": "npm:^1.5.0"
- checksum: 10c0/c52c2a6e699dfa8a840e13154da35464a40cd8b07049b695a8b282883b0426c0811af1e36ac26860b4267289340b42772c156a5608e87be97b63d510e617e87a
+ checksum: 10c0/16826e415d04b88378f200fe022b53e638e3838b9e496edda6c0e086d7753a44a6ed187adc72d19f3623810589bf139af1a315541cd6a26ae0771a0193eaf7b8
languageName: node
linkType: hard
@@ -36194,7 +36364,7 @@ __metadata:
languageName: node
linkType: hard
-"nanoid@npm:3.3.8, nanoid@npm:^3.0.0, nanoid@npm:^3.3.4, nanoid@npm:^3.3.6, nanoid@npm:^3.3.7":
+"nanoid@npm:3.3.8, nanoid@npm:^3.0.0, nanoid@npm:^3.3.4, nanoid@npm:^3.3.6, nanoid@npm:^3.3.7, nanoid@npm:^3.3.8":
version: 3.3.8
resolution: "nanoid@npm:3.3.8"
bin:
@@ -38718,13 +38888,13 @@ __metadata:
linkType: hard
"postcss@npm:^8.3.11, postcss@npm:^8.4.14, postcss@npm:^8.4.23, postcss@npm:^8.4.33, postcss@npm:^8.4.43":
- version: 8.4.49
- resolution: "postcss@npm:8.4.49"
+ version: 8.5.1
+ resolution: "postcss@npm:8.5.1"
dependencies:
- nanoid: "npm:^3.3.7"
+ nanoid: "npm:^3.3.8"
picocolors: "npm:^1.1.1"
source-map-js: "npm:^1.2.1"
- checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3
+ checksum: 10c0/c4d90c59c98e8a0c102b77d3f4cac190f883b42d63dc60e2f3ed840f16197c0c8e25a4327d2e9a847b45a985612317dc0534178feeebd0a1cf3eb0eecf75cae4
languageName: node
linkType: hard
@@ -41532,7 +41702,7 @@ __metadata:
languageName: node
linkType: hard
-"rollup@npm:4.34.0, rollup@npm:^4.20.0":
+"rollup@npm:4.34.0":
version: 4.34.0
resolution: "rollup@npm:4.34.0"
dependencies:
@@ -41604,6 +41774,78 @@ __metadata:
languageName: node
linkType: hard
+"rollup@npm:^4.20.0":
+ version: 4.34.2
+ resolution: "rollup@npm:4.34.2"
+ dependencies:
+ "@rollup/rollup-android-arm-eabi": "npm:4.34.2"
+ "@rollup/rollup-android-arm64": "npm:4.34.2"
+ "@rollup/rollup-darwin-arm64": "npm:4.34.2"
+ "@rollup/rollup-darwin-x64": "npm:4.34.2"
+ "@rollup/rollup-freebsd-arm64": "npm:4.34.2"
+ "@rollup/rollup-freebsd-x64": "npm:4.34.2"
+ "@rollup/rollup-linux-arm-gnueabihf": "npm:4.34.2"
+ "@rollup/rollup-linux-arm-musleabihf": "npm:4.34.2"
+ "@rollup/rollup-linux-arm64-gnu": "npm:4.34.2"
+ "@rollup/rollup-linux-arm64-musl": "npm:4.34.2"
+ "@rollup/rollup-linux-loongarch64-gnu": "npm:4.34.2"
+ "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.34.2"
+ "@rollup/rollup-linux-riscv64-gnu": "npm:4.34.2"
+ "@rollup/rollup-linux-s390x-gnu": "npm:4.34.2"
+ "@rollup/rollup-linux-x64-gnu": "npm:4.34.2"
+ "@rollup/rollup-linux-x64-musl": "npm:4.34.2"
+ "@rollup/rollup-win32-arm64-msvc": "npm:4.34.2"
+ "@rollup/rollup-win32-ia32-msvc": "npm:4.34.2"
+ "@rollup/rollup-win32-x64-msvc": "npm:4.34.2"
+ "@types/estree": "npm:1.0.6"
+ fsevents: "npm:~2.3.2"
+ dependenciesMeta:
+ "@rollup/rollup-android-arm-eabi":
+ optional: true
+ "@rollup/rollup-android-arm64":
+ optional: true
+ "@rollup/rollup-darwin-arm64":
+ optional: true
+ "@rollup/rollup-darwin-x64":
+ optional: true
+ "@rollup/rollup-freebsd-arm64":
+ optional: true
+ "@rollup/rollup-freebsd-x64":
+ optional: true
+ "@rollup/rollup-linux-arm-gnueabihf":
+ optional: true
+ "@rollup/rollup-linux-arm-musleabihf":
+ optional: true
+ "@rollup/rollup-linux-arm64-gnu":
+ optional: true
+ "@rollup/rollup-linux-arm64-musl":
+ optional: true
+ "@rollup/rollup-linux-loongarch64-gnu":
+ optional: true
+ "@rollup/rollup-linux-powerpc64le-gnu":
+ optional: true
+ "@rollup/rollup-linux-riscv64-gnu":
+ optional: true
+ "@rollup/rollup-linux-s390x-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-musl":
+ optional: true
+ "@rollup/rollup-win32-arm64-msvc":
+ optional: true
+ "@rollup/rollup-win32-ia32-msvc":
+ optional: true
+ "@rollup/rollup-win32-x64-msvc":
+ optional: true
+ fsevents:
+ optional: true
+ bin:
+ rollup: dist/bin/rollup
+ checksum: 10c0/8e2307cf6e4c37134e46ec845198b50f127c0c95718448323b23c309bd39f1fc5b56ae69992111353b652ce6bc0e644b90f84d880944591979f810fa1c9616aa
+ languageName: node
+ linkType: hard
+
"rooks@npm:7.14.1":
version: 7.14.1
resolution: "rooks@npm:7.14.1"
@@ -44332,9 +44574,9 @@ __metadata:
linkType: hard
"tinyexec@npm:^0.3.1":
- version: 0.3.1
- resolution: "tinyexec@npm:0.3.1"
- checksum: 10c0/11e7a7c5d8b3bddf8b5cbe82a9290d70a6fad84d528421d5d18297f165723cb53d2e737d8f58dcce5ca56f2e4aa2d060f02510b1f8971784f97eb3e9aec28f09
+ version: 0.3.2
+ resolution: "tinyexec@npm:0.3.2"
+ checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90
languageName: node
linkType: hard