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