diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1b4b29f..b09fea6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,13 +28,14 @@ jobs: submodules: recursive - uses: actions/cache@v4 with: - path: vendor/bare/corestore + path: build/corestore key: corestore-${{ matrix.platform }}-${{ matrix.arch }} - uses: actions/setup-node@v4 with: node-version: lts/* - - run: npm install -g bare-dev - - run: bare-dev configure --debug --platform ${{ matrix.platform }} --arch ${{ matrix.arch }} - - run: bare-dev build --debug - - run: bare-dev test --debug - if: ${{ matrix.platform == 'linux' || matrix.platform == 'darwin' }} + - run: npm install -g bare-make + - run: npm install + - run: npm install --prefix vendor/bare + - run: bare-make generate --platform ${{ matrix.platform }} --arch ${{ matrix.arch }} --debug + - run: bare-make build + - run: bare-make test diff --git a/CMakeLists.txt b/CMakeLists.txt index fb4c771..a8b18b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,18 +1,22 @@ cmake_minimum_required(VERSION 3.25) +# Force position independent code for all compilation units to allow linking +# the static libuv archive to the dynamic platform entry point. +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +find_package(cmake-bare REQUIRED PATHS node_modules/cmake-bare) +find_package(cmake-bare-bundle REQUIRED PATHS node_modules/cmake-bare-bundle) +find_package(cmake-drive REQUIRED PATHS node_modules/cmake-drive) +find_package(cmake-napi REQUIRED PATHS node_modules/cmake-napi) +find_package(cmake-npm REQUIRED PATHS node_modules/cmake-npm) + project(appling C) if(APPLE) enable_language(OBJC) endif() -include(bare) - -# Force position independent code for all compilation units to allow linking -# the static libuv archive to the dynamic platform entry point. -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -install_node_modules(LOCKFILE) +install_node_modules() if(NOT TARGET uv) add_subdirectory(vendor/libuv EXCLUDE_FROM_ALL) @@ -117,8 +121,10 @@ target_include_directories( ) add_bare_bundle( + appling_bootstrap_bundle ENTRY src/bootstrap.js OUT src/bootstrap.bundle.h + BUILTINS src/builtins.json ) add_library(appling_bootstrap OBJECT) diff --git a/package-lock.json b/package-lock.json index b5b99fd..e558f85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,29 +10,37 @@ "pear-updater-bootstrap": "^1.1.0" }, "devDependencies": { + "cmake-bare": "^1.1.15", + "cmake-bare-bundle": "^2.1.2", + "cmake-drive": "^1.1.1", + "cmake-napi": "^1.0.7", + "cmake-npm": "^1.0.2", "standard": "^17.0.0" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -112,9 +120,9 @@ "license": "BSD-3-Clause" }, "node_modules/@hyperswarm/secret-stream": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/@hyperswarm/secret-stream/-/secret-stream-6.6.3.tgz", - "integrity": "sha512-F/EF5KLUqjkTNFof1K5dz57CwrwjSzG0XxZe2X9t/2/mG5iQ28yJIwNcVabkWS1Wk2ZB719piVGKk6YbwkJ0aQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@hyperswarm/secret-stream/-/secret-stream-6.7.0.tgz", + "integrity": "sha512-4N0x/G0VAmZaDvUAZRWEpPyAs0PnHfY+lOgNV4KLFhKNfw+GkVVXMlwpSXTDcqRSlDvla8iRg3OICZRu7RTOJQ==", "license": "Apache-2.0", "dependencies": { "b4a": "^1.1.0", @@ -124,7 +132,8 @@ "sodium-secretstream": "^1.1.0", "sodium-universal": "^4.0.0", "streamx": "^2.14.0", - "timeout-refresh": "^2.0.0" + "timeout-refresh": "^2.0.0", + "unslab": "^1.3.0" } }, "node_modules/@nodelib/fs.scandir": { @@ -187,9 +196,9 @@ "license": "ISC" }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -447,21 +456,42 @@ "license": "MIT" }, "node_modules/bare-addon-resolve": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.4.2.tgz", - "integrity": "sha512-tvUF2orgRAfazmCwZuOUtj5sudU1iowTtwlD63BGvxh50KrHugBMQAUaSk4KxjfEznT99PuJyJSpc4ObPTiS6g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.6.0.tgz", + "integrity": "sha512-knN/FxR5o7LVdyEnYCC7V1m1T2vOKw+T+zAl165hiXeva1/nqbfug131QRvrfiEjIu8PEXtUy9KcM4F+rCcGkg==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "bare-module-resolve": "^1.5.0" + "bare-module-resolve": "^1.8.0" } }, "node_modules/bare-bundle": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bare-bundle/-/bare-bundle-1.2.0.tgz", - "integrity": "sha512-Q6rOcbZMfJ6OD50CO1cJRm83Hk+Ne1AtfA92kZMRhrJFM+qXFIcqEdWc6Yubj3ovLuFvpLmfbTpT4o90cHwIsA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bare-bundle/-/bare-bundle-1.8.1.tgz", + "integrity": "sha512-5LUrTCVJtCiUPd6jbNYBNC9sMgDxsQbRvOuwr6qa2DlzNiHErLjDzcN9KOGIoSsv68O9jzS+syzfniRoaPo/rQ==", + "license": "Apache-2.0" + }, + "node_modules/bare-bundle-compile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bare-bundle-compile/-/bare-bundle-compile-1.0.3.tgz", + "integrity": "sha512-cw+h3K86JVQ534rWIDJ9wqHCYGO46yIbdKxRDZAaZeMtTCunWAUdsOtEynmvJlNSYs69o35UFnK+X4k3lm5xkQ==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-bundle": "^1.8.0" + } + }, + "node_modules/bare-bundle-id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bare-bundle-id/-/bare-bundle-id-1.0.0.tgz", + "integrity": "sha512-HbGuXbMbZIRzUT+w2oSezyCwSUd6X/VBAOyepkVXO1JdCsvx0/Q2Kw5Fwib0ctjIGj215zVhCwhTVRFeNsdhHw==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "b4a": "^1.6.4" + "sodium-native": "^4.2.1" + }, + "peerDependencies": { + "bare-bundle": "^1.8.0" } }, "node_modules/bare-events": { @@ -471,49 +501,90 @@ "license": "Apache-2.0" }, "node_modules/bare-fs": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", - "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-3.1.1.tgz", + "integrity": "sha512-AhJ8tNQxhYGfpYERMKshGXG5CJF7S2JpxYAGTa1+Bd78m4TKeMqj9UqmW8Z2ooAYeP0idv0fi/AYVomS9NqKRQ==", "license": "Apache-2.0", "optional": true, "dependencies": { "bare-events": "^2.0.0", - "bare-path": "^2.0.0", + "bare-path": "^3.0.0", "bare-stream": "^2.0.0" } }, + "node_modules/bare-module-lexer": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/bare-module-lexer/-/bare-module-lexer-1.0.7.tgz", + "integrity": "sha512-udUm4rxx65rmpSpU+zw0NHLKhLNwCUaTj3GdTbTX0kGktpwaGpt+94CKGOJ+IplNt5MES3Ok7NdQDBU5fV2HCw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "require-addon": "^1.0.2" + } + }, "node_modules/bare-module-resolve": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.6.2.tgz", - "integrity": "sha512-bMQaTm9gYvDwJaXDsZPeT8jriiT/wnHy4V/wFoOxEci/OMe+SqECUKeZlchho0FOKvDMlWxzFtUiI4Nv6iozkw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.8.0.tgz", + "integrity": "sha512-3UHBfM3manIQYgh0ximl5dMvX+DW09r69KTrZ9Ibfr85OFVyN4oGMrg67X7MXrdoQeXFkzb++BgGaNKcVmPObw==", "license": "Apache-2.0", "dependencies": { "semifies": "^1.0.0" } }, + "node_modules/bare-module-traverse": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/bare-module-traverse/-/bare-module-traverse-1.2.6.tgz", + "integrity": "sha512-uY/qSP9aw5kFKLWLYxqV+lk9rkx5OWJapbVA6z/AaSy7n5W/suGgPGOLc+BKQR5FfaVLcNTXfI/mSDnaHyWotw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-addon-resolve": "^1.5.0", + "bare-module-lexer": "^1.0.0", + "bare-module-resolve": "^1.7.0" + } + }, "node_modules/bare-os": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", - "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", - "license": "Apache-2.0" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.2.1.tgz", + "integrity": "sha512-2DK/A2wc9+9RySMGv0s4rX9cYlnyuu8nYXL1/XxObnlaQhIAABJXQi5PX5ChMep1xCVXF9TDVhgdq/Y+Qb5meg==", + "license": "Apache-2.0", + "engines": { + "bare": ">=1.6.0" + } + }, + "node_modules/bare-pack": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bare-pack/-/bare-pack-1.1.3.tgz", + "integrity": "sha512-2uKdHXzR4Kyr+XTuMLKEuVFBnVZsfN4yOf2ehwrQOsffem2HfNqpaCiP7c1e/HENuPWD3VAyeLtuN6Rk2FP3wg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-bundle": "^1.8.0", + "bare-bundle-id": "^1.0.0", + "bare-module-traverse": "^1.2.5", + "paparam": "^1.5.0", + "promaphore": "^1.0.0" + }, + "bin": { + "bare-pack": "bin.js" + } }, "node_modules/bare-path": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", - "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", "license": "Apache-2.0", "dependencies": { - "bare-os": "^2.1.0" + "bare-os": "^3.0.1" } }, "node_modules/bare-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz", - "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.2.tgz", + "integrity": "sha512-EFZHSIBkDgSHIwj2l2QZfP4U5OcD4xFAOwhSb/vlr9PIqyGJGvB/nfClJbcnh3EY4jtPE4zsb5ztae96bVF79A==", "license": "Apache-2.0", "optional": true, "dependencies": { - "b4a": "^1.6.6", "streamx": "^2.20.0" } }, @@ -655,6 +726,59 @@ "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", "license": "MIT" }, + "node_modules/cmake-bare": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/cmake-bare/-/cmake-bare-1.1.15.tgz", + "integrity": "sha512-zU+bJ0JvjMpgqBCMLoNeF49YT3AaA4XsqGe07euAZ8B+mtOHch0z9fc/0atN1UuwNA5pXn7W8KxboDRMnnFECQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "cmake-npm": "^1.0.0" + } + }, + "node_modules/cmake-bare-bundle": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cmake-bare-bundle/-/cmake-bare-bundle-2.1.3.tgz", + "integrity": "sha512-qwk+8f+ggVanpU8JRfriaRO0Yc+Qvs8eEiyRJIo5Xn9pICg+O8yM2/ZTEXbHFYrlYAosj6DXBprFDpmkKFWfsQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-bundle": "^1.8.0", + "bare-bundle-compile": "^1.0.0", + "bare-module-traverse": "^1.2.4", + "bare-pack": "^1.0.0", + "cmake-bare": "^1.1.4", + "include-static": "^1.1.0" + } + }, + "node_modules/cmake-drive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cmake-drive/-/cmake-drive-1.1.1.tgz", + "integrity": "sha512-52bQScSmnSViFIKAqIubnnEZhDrdkF+Wd+A/X/7kxjTBZi/ItIu2WcJu0lx6xpsHirFaft01O7WWxJ5F2Px/oA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "corestore": "^6.18.4", + "hypercore-id-encoding": "^1.3.0", + "hyperdrive": "^11.13.0", + "hyperswarm": "^4.8.4", + "localdrive": "^1.12.1" + } + }, + "node_modules/cmake-napi": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cmake-napi/-/cmake-napi-1.0.7.tgz", + "integrity": "sha512-s/SGDwUQOz1IL28ue3BxN0EaD2CW2uluEN5+ra6ndDWQU3Sog0q6hLXGVUUII8ck6yJ+HiDaqGjlEcPiJ3ZJow==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/cmake-npm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cmake-npm/-/cmake-npm-1.0.2.tgz", + "integrity": "sha512-R/ySDHtEtYuPJqxAODOyValavOAC5fUTCAmYYokfsQi9cHfzExc4eW2Ls+4tBmjgDnAgASaX39uskoOit9FVIg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/codecs": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/codecs/-/codecs-3.1.0.tgz", @@ -736,13 +860,13 @@ } }, "node_modules/crc-native": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/crc-native/-/crc-native-1.1.1.tgz", - "integrity": "sha512-Qr1DdDkcMY5Q3vi7lYGDaYdtOpPyFY3h/7cSLMhc95jhI6Gnf3bV/stJ3MKfSJqe8cWnUuJ+vUrbNKw5HA+LEw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/crc-native/-/crc-native-1.1.4.tgz", + "integrity": "sha512-ZKKd/VY7jSchZ87agNxG/yTc02+W/JDCvOFDVieGU/wwcLNzt95Q4KQLjmmL9dmPsmbBZhjOnsPNZBQ15Df5IA==", "license": "Apache-2.0", "optional": true, "dependencies": { - "load-addon": "^1.0.0" + "node-gyp-build": "^4.8.2" } }, "node_modules/crc-universal": { @@ -755,9 +879,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.4.tgz", + "integrity": "sha512-9KdyVPPtLHjPAD7tcuzSFs64UfHlLJt7U6qP4/bFVLyjLceyizj6s6jO6YBaV5d0G7g/9KnY/dOpLR4Rcg8YDg==", "dev": true, "license": "MIT", "dependencies": { @@ -847,15 +971,6 @@ } } }, - "node_modules/debugging-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/debugging-stream/-/debugging-stream-2.0.0.tgz", - "integrity": "sha512-xwfl6wB/3xc553uwtGnSa94jFxnGOc02C0WU2Nmzwr80gzeqn1FX4VcbvoKIhe8L/lPq4BTQttAbrTN94uN8rA==", - "license": "MIT", - "dependencies": { - "streamx": "^2.12.4" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -900,21 +1015,22 @@ } }, "node_modules/dependency-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dependency-stream/-/dependency-stream-2.0.1.tgz", - "integrity": "sha512-r/weIhav8CzzAS7iL7HLgivxzy/w28geeyeMhg/cdvI/cvB3O+sAJBndM9LdjZLHPsWLMqXlVfga5BFMpmoHfw==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/dependency-stream/-/dependency-stream-2.2.3.tgz", + "integrity": "sha512-0UTy298kU2JHYVO0nCXFWzzYa+88kM6WG+8B+HwYrZbBFV9jlv6jtSP2NonuooX3Bha2Dw3iCS7VnEqnbIn6Hg==", "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.4", "bare-module-resolve": "^1.4.4", "sloppy-module-parser": "^2.0.0", - "streamx": "^2.15.6" + "streamx": "^2.15.6", + "which-runtime": "^1.2.1" } }, "node_modules/dht-rpc": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/dht-rpc/-/dht-rpc-6.15.0.tgz", - "integrity": "sha512-yiTMJINO6Q1rjGg8Ss5fyFvjb22R2omWoSTxnHdGXye7MLqch9VKiMif5/8vED20XTouzrtXrC0GOC/iz13/yQ==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/dht-rpc/-/dht-rpc-6.15.1.tgz", + "integrity": "sha512-nX5HQdkuh3wzz8QnZJJs5tKF2u0ckOxwnq8ddkMYyiwDIjlILVOdcUX0i+dwyMSsynR6I+43g9jYwZwRcFG2ww==", "license": "MIT", "dependencies": { "b4a": "^1.6.1", @@ -944,20 +1060,21 @@ } }, "node_modules/drive-bundler": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/drive-bundler/-/drive-bundler-1.5.0.tgz", - "integrity": "sha512-HvAhG80UTKROi392hPbE4BzU4RspPJuT1dTcmjOcyYP7Lm5jfFE1TzO1Jt9Wli+es0+9JjTF38RiDOExZC2tQw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/drive-bundler/-/drive-bundler-2.3.4.tgz", + "integrity": "sha512-uCdzK40QLhDLnM5ndXOx/DoNN8j611Zw+QUOO/0ethGsSlnMxr6KfWeBMd85oekCIeP+3pdrGatnhljcze0sDw==", "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.6", "dependency-stream": "^2.0.0", "mutexify": "^1.4.0", "sodium-native": "^4.0.0", + "unix-path-resolve": "^1.0.2", "url-file-url": "^1.0.1" }, "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "bare-fs": "^3.0.2", + "bare-path": "^3.0.0" } }, "node_modules/error-ex": { @@ -1055,9 +1172,9 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1068,12 +1185,13 @@ "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", + "iterator.prototype": "^1.1.3", "safe-array-concat": "^1.1.2" }, "engines": { @@ -1159,6 +1277,7 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { @@ -1363,9 +1482,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", - "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "license": "MIT", "dependencies": { @@ -1377,7 +1496,7 @@ "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.9.0", + "eslint-module-utils": "^2.12.0", "hasown": "^2.0.2", "is-core-module": "^2.15.1", "is-glob": "^4.0.3", @@ -1386,13 +1505,14 @@ "object.groupby": "^1.0.3", "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -1474,9 +1594,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.0.tgz", - "integrity": "sha512-IHBePmfWH5lKhJnJ7WB1V+v/GolbB0rjS8XYVCSQCZKaQCAUhMoVoOEn1Ef8Z8Wf0a7l8KTJvuZg5/e4qrZ6nA==", + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, "license": "MIT", "dependencies": { @@ -1485,7 +1605,7 @@ "array.prototype.flatmap": "^1.3.2", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", + "es-iterator-helpers": "^1.1.0", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", @@ -1743,9 +1863,9 @@ } }, "node_modules/flat-tree": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/flat-tree/-/flat-tree-1.11.0.tgz", - "integrity": "sha512-dO6oawiYBpTROI9RZQ1seCFyNTr5UGnIdk5Ep+h7MbluB8ijnpA+tufJG5AA1hb6HSjhYI8qRo+negHnkBPqVA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/flat-tree/-/flat-tree-1.12.1.tgz", + "integrity": "sha512-GchQ+onbnw5QaqsGbpcV6c8etAd396X/EVdDxutQMkGapB0lRvV9heIXS6ZffQVCse0hm2hBpK7GJz2Zp7qiMg==", "license": "MIT" }, "node_modules/flatted": { @@ -1766,12 +1886,12 @@ } }, "node_modules/fs-native-extensions": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fs-native-extensions/-/fs-native-extensions-1.3.0.tgz", - "integrity": "sha512-vG63KLCrLNOH9jLFn6eKBxrxTbXWFv7s5p9WVHn+3vCGLo9/i2jtX0PJPIphEbfriIpMEYJM7O9xd2Z7ltp/Jw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fs-native-extensions/-/fs-native-extensions-1.3.2.tgz", + "integrity": "sha512-fQaLJt4uY96iiMdy+rV561TaXefkfTq4dmSXcN2D1z8SBtFTsmcO3GaJexPKTxltqdh826JQBK1CySo3EpzgQQ==", "license": "Apache-2.0", "dependencies": { - "load-addon": "^1.0.0", + "node-gyp-build": "^4.8.2", "which-runtime": "^1.2.0" } }, @@ -2056,9 +2176,9 @@ } }, "node_modules/hyperbee": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/hyperbee/-/hyperbee-2.20.2.tgz", - "integrity": "sha512-UhmOMc5ewY5L4JlB1ptPDGpJF//HqMCnxeUZtZs1NNedU1CZAkddaLtUlRDLTcatMgCt89hG+PcQDrbu7Gsq0g==", + "version": "2.20.4", + "resolved": "https://registry.npmjs.org/hyperbee/-/hyperbee-2.20.4.tgz", + "integrity": "sha512-3dROb+GRfmYDxIyeW+8tt1LhAbWZgr2XMVtTg3AHY/XFvxaNTwji1Mq+rrZw3Ekejw2i4hgvsTUpOY5+YSc0KA==", "license": "MIT", "dependencies": { "b4a": "^1.6.0", @@ -2087,9 +2207,9 @@ } }, "node_modules/hypercore": { - "version": "10.37.23", - "resolved": "https://registry.npmjs.org/hypercore/-/hypercore-10.37.23.tgz", - "integrity": "sha512-BV/HZZp0fQesmEmxP46ZtV67Cwt6ChwNrofHyhVjx0d1t555F+tnT4oVYFLOsO1+sWeLnSwKWzs1umvG46QOpg==", + "version": "10.37.25", + "resolved": "https://registry.npmjs.org/hypercore/-/hypercore-10.37.25.tgz", + "integrity": "sha512-47kDQWiRSOTbpps+lAKrKYo+6at7pmTN1lvlmUhNPDDOz8GjEnUhH36iiUzk90tF12Y9/GEaL09TP3yljIRswA==", "license": "MIT", "dependencies": { "@hyperswarm/secret-stream": "^6.0.0", @@ -2103,7 +2223,6 @@ "hypercore-crypto": "^3.2.1", "hypercore-errors": "^1.2.0", "hypercore-id-encoding": "^1.2.0", - "hypertrace": "^1.2.1", "is-options": "^1.0.1", "protomux": "^3.5.0", "quickbit-universal": "^2.2.0", @@ -2145,9 +2264,9 @@ } }, "node_modules/hyperdht": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/hyperdht/-/hyperdht-6.18.0.tgz", - "integrity": "sha512-yOdEeusE4oQwi3VjfEWsaNDednrlBcwZbYaVL+nDJUUDC/dpLDnxeSNje8R0HqZq/n7+POdz0Uxi4UcLZQWRQg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/hyperdht/-/hyperdht-6.19.0.tgz", + "integrity": "sha512-SS/wehfPPiN1o+e2h+NAiGS9Wk3xePRZ3qrIR9NUzyjRyEnFl5S2QnaqWLxepIY8Ba0GsPSfXXCsMCPiCBn4mA==", "license": "MIT", "dependencies": { "@hyperswarm/secret-stream": "^6.6.2", @@ -2157,11 +2276,9 @@ "bogon": "^1.0.0", "compact-encoding": "^2.4.1", "compact-encoding-net": "^1.0.1", - "debugging-stream": "^2.0.0", - "dht-rpc": "^6.14.0", + "dht-rpc": "^6.15.1", "hypercore-crypto": "^3.3.0", "hypercore-id-encoding": "^1.2.0", - "hypertrace": "^1.3.0", "noise-curve-ed": "^2.0.0", "noise-handshake": "^3.0.0", "record-cache": "^1.1.1", @@ -2177,9 +2294,9 @@ } }, "node_modules/hyperdrive": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/hyperdrive/-/hyperdrive-11.12.0.tgz", - "integrity": "sha512-JRoheMVnjYP8UQ0R4kg42swo0rjK2P9USZh6o1tJfxYH6xOLiGoiDaonpqsqCwX+ntJVc75aROLUBeDlOkqW3Q==", + "version": "11.13.1", + "resolved": "https://registry.npmjs.org/hyperdrive/-/hyperdrive-11.13.1.tgz", + "integrity": "sha512-V7JJ0bVhjRrhfo0WrAOPMQ2RVBZQqG1qbd2V96tnvKJ1/eqq4gWEOKl/tHMX0j1+N5jABgKmSgb60NNEfTTscQ==", "license": "Apache-2.0", "dependencies": { "hyperbee": "^2.11.1", @@ -2197,9 +2314,9 @@ } }, "node_modules/hyperswarm": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/hyperswarm/-/hyperswarm-4.8.2.tgz", - "integrity": "sha512-AkimKT5+mcw68OExQNRHZ69w3b4IEkM+2dP5CWbUGFNDqEbRN6FwQrMF8tVtQlgvl5VXGsm9Je1IgeCz8kcECw==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/hyperswarm/-/hyperswarm-4.8.4.tgz", + "integrity": "sha512-+ysGkogdCK3LqF9kpJ5yCp38EkJq0Gr9z0iXLAbFWzKhZfyDMy6YzqIOn1uFDwpNvlHK3tMaSeiBsWkUdT4jHQ==", "license": "MIT", "dependencies": { "b4a": "^1.3.1", @@ -2253,6 +2370,16 @@ "node": ">=0.8.19" } }, + "node_modules/include-static": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/include-static/-/include-static-1.1.0.tgz", + "integrity": "sha512-1lAeUDHVfCUFcL84pDPFto5kzNY6uOYENJumGAmFdQQEvgsL7pprNYLWTaLyKo014IXVNtF5adDaSezu6XZWLA==", + "dev": true, + "license": "MIT", + "bin": { + "include-static": "bin.js" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2683,9 +2810,9 @@ "license": "ISC" }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2694,6 +2821,9 @@ "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/js-tokens": { @@ -2806,15 +2936,6 @@ "node": ">= 0.8.0" } }, - "node_modules/load-addon": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-addon/-/load-addon-1.0.0.tgz", - "integrity": "sha512-6XaA7xfpHW1CeQRrLFE9+9y8nDZMX3ZaoCMSo+Gp2i58dfY549SQqqb2ukAgQtAACEDJmaroHJvnL03cJ+KLvA==", - "license": "Apache-2.0", - "dependencies": { - "bare-addon-resolve": "^1.3.0" - } - }, "node_modules/load-json-file": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", @@ -2843,9 +2964,9 @@ } }, "node_modules/localdrive": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/localdrive/-/localdrive-1.12.0.tgz", - "integrity": "sha512-tAOh2mEJhHc+2Q5kXiazRsyzUZ6ncDqHlwGtBWbUAfKhq7/tpNuIkvFhnffv61Ykis2m2MPeIdnUEB9KNX16kw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/localdrive/-/localdrive-1.12.1.tgz", + "integrity": "sha512-kmJ4gAIIsqbplHoBAG2craOHrMos9kdwBl7RfeT5H5UHgQCpr/v/mgPWo7FBR5xl4wV3wIjMZWhcNLBaKwlLWg==", "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.1", @@ -2855,8 +2976,8 @@ "unix-path-resolve": "^1.0.2" }, "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "bare-fs": "^3.0.2", + "bare-path": "^3.0.0" } }, "node_modules/locate-path": { @@ -2950,12 +3071,6 @@ "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==", "license": "ISC" }, - "node_modules/napi-macros": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", - "license": "MIT" - }, "node_modules/nat-sampler": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/nat-sampler/-/nat-sampler-1.0.1.tgz", @@ -3191,6 +3306,13 @@ "node": ">=6" } }, + "node_modules/paparam": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/paparam/-/paparam-1.5.0.tgz", + "integrity": "sha512-s8aFexFgeSRnVg71oE3f8Bylq7pOicnkI0VHE6Mmzg5734nIUVKrlxNHGbN878qazFE01dqFe9VxCjWoLcaRdA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3256,14 +3378,14 @@ "license": "MIT" }, "node_modules/pear-updater": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pear-updater/-/pear-updater-3.1.0.tgz", - "integrity": "sha512-yTli4wDnjjSdMPbOSlr5QftP4Lv33zYP/0x0x397RTf0BEZvMRQw6SKKxjgY5h2pH91MWMV+38pnHJ8CGAiDPg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pear-updater/-/pear-updater-3.2.1.tgz", + "integrity": "sha512-0Gs0MuxgT1r1ml2g6hEqV5Ey6Z2AbN8qLBN7iA1HOYZoiD0owx6dfdHnJJqRvEorkhzVNd84wB+G8CJHCgQskg==", "license": "Apache-2.0", "dependencies": { "bare-bundle": "^1.1.2", "compact-encoding": "^2.15.0", - "drive-bundler": "^1.3.2", + "drive-bundler": "^2.3.2", "fs-native-extensions": "^1.2.0", "localdrive": "^1.9.0", "read-write-mutexify": "^2.1.0", @@ -3272,19 +3394,19 @@ "streamx": "^2.15.0" }, "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "bare-fs": "^3.0.2", + "bare-path": "^3.0.0" } }, "node_modules/pear-updater-bootstrap": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pear-updater-bootstrap/-/pear-updater-bootstrap-1.1.3.tgz", - "integrity": "sha512-9SlEVa0QjQ3BcIae1QZWNK8Ol96N8JULiL8ygmUYIy0TrZl7vXHw2KaExPvaBunLcLcVWK4JcD44TIMCGe2+Qw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/pear-updater-bootstrap/-/pear-updater-bootstrap-1.2.2.tgz", + "integrity": "sha512-/rfkQ3/A6fr/0c1cg81c42PgFVErj0cersBhud8MC3M26GseMLpD0fWh+XrWYa5OBtLjJrn4N+z51iaw2Xxf/w==", "license": "Apache-2.0", "dependencies": { "corestore": "^6.16.2", "hypercore-id-encoding": "^1.2.0", - "hyperdrive": "^11.6.3", + "hyperdrive": "^11.13.1", "hyperswarm": "^4.7.14", "pear-updater": "^3.0.1" }, @@ -3292,7 +3414,7 @@ "pear-updater-bootstrap": "bin.js" }, "optionalDependencies": { - "bare-path": "^2.1.0" + "bare-path": "^3.0.0" } }, "node_modules/pify": { @@ -3405,6 +3527,13 @@ "node": ">= 0.8.0" } }, + "node_modules/promaphore": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promaphore/-/promaphore-1.0.0.tgz", + "integrity": "sha512-Eg8401+KJddVvDULkpy8bR964GMX8xMPegL6NdxTeBH2Wa3L86cZlEHizbkFJikr5u+E3wFoR5dLWJ+1OPyEfw==", + "dev": true, + "license": "MIT" + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -3429,14 +3558,13 @@ } }, "node_modules/protomux": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/protomux/-/protomux-3.9.2.tgz", - "integrity": "sha512-s439dAQSrCg3rohE+Vn7UJN20bBUKNu/4m/+pSNKnavo14HHPsW7BP6YtfXD63qPDRwfM8la3r4DA1EQGM8iYQ==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/protomux/-/protomux-3.10.0.tgz", + "integrity": "sha512-YjNhvdYWI5HGbbUUKRR8DT3mg+RaZQT6V5T83ktd4veAdHg0CLvevcs33wo8rjdEwCnRaSNXkzlw48tbSaPVag==", "license": "MIT", "dependencies": { "b4a": "^1.3.1", "compact-encoding": "^2.5.1", - "hypertrace": "^1.4.2", "queue-tick": "^1.0.0", "safety-catch": "^1.0.1", "unslab": "^1.3.0" @@ -3480,14 +3608,14 @@ "license": "MIT" }, "node_modules/quickbit-native": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/quickbit-native/-/quickbit-native-2.3.1.tgz", - "integrity": "sha512-/WOLyxcG6jFjuCuiND9/gXRlR4Po20UGhuc9izpVLioiJ2hWhoIgrNaTCkwgnPhrr1Rz8DGNCntJNEyspfo0Ug==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/quickbit-native/-/quickbit-native-2.3.3.tgz", + "integrity": "sha512-naZ1U2qe883tKZCmIlfvgJXouQW1Av1lQGjhVGZEapxKKqbwbgMMkajHoHABLPF0mUml4ArmkVEGXw8RVJUhDg==", "license": "Apache-2.0", "optional": true, "dependencies": { "b4a": "^1.6.0", - "load-addon": "^1.0.0" + "node-gyp-build": "^4.8.2" } }, "node_modules/quickbit-universal": { @@ -3510,17 +3638,17 @@ "license": "Apache-2.0" }, "node_modules/random-access-file": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-4.0.7.tgz", - "integrity": "sha512-SOLseGmpbJRLLrVEDOJY3rqX1AwUmQnN0IAMjRLvld3fexaL8hYgti6VFuyT72bDMWSwVyvQROHh6FcE+PefKQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-4.1.0.tgz", + "integrity": "sha512-n8uYXv1QXBLIekN6g8ycBqT/3aS955ku/8lTMcqn78EaVLegz/QTsVZoojArijhyZjLyYVHQ4Hu/BKj9G7v4eg==", "license": "MIT", "dependencies": { "random-access-storage": "^3.0.0" }, "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0", - "fs-native-extensions": "^1.1.0" + "bare-fs": "^3.0.2", + "bare-path": "^3.0.0", + "fs-native-extensions": "^1.3.1" } }, "node_modules/random-access-storage": { @@ -3593,16 +3721,16 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -3624,6 +3752,19 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/require-addon": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/require-addon/-/require-addon-1.0.2.tgz", + "integrity": "sha512-KvQKkAf1bRtPBJ5mYSmiqF8h/84WEhI02RMseQ78GRSCz5tj1aziIMLtUEQbZ5wDtMGSZcgqT5PdwZ2OMMX/ZQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-addon-resolve": "^1.3.0" + }, + "engines": { + "bare": ">=1.10.0" + } + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -3870,14 +4011,14 @@ } }, "node_modules/simdle-native": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/simdle-native/-/simdle-native-1.3.1.tgz", - "integrity": "sha512-QEFxH5JPLzMJy8pzv6Y/RA9K7F0MDOXcB+as6V+XlNOPI5Lpt0LjR6cl3muvBHk6oZiiHj5O8TOkP8ToN9kbsQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/simdle-native/-/simdle-native-1.3.3.tgz", + "integrity": "sha512-ZuZ4T71SmunYAZQ3/hg7dy8yUrzjR2VPc50zSKX34JS9RD41QL1wTniJdjp7pq77iNDbekSOCgyYEteDjdyBGw==", "license": "Apache-2.0", "optional": true, "dependencies": { "b4a": "^1.6.0", - "load-addon": "^1.0.0" + "node-gyp-build": "^4.8.2" } }, "node_modules/simdle-universal": { @@ -3893,9 +4034,9 @@ } }, "node_modules/sloppy-module-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sloppy-module-parser/-/sloppy-module-parser-2.0.0.tgz", - "integrity": "sha512-rT5fpgsuVTNk0i1gdidb7//NTfCHBepd2uoHRvDK2JClU6YtF6sHnoA2iyLH9/g/H75bD7/Y6ZVxo+s5mfx+Dg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sloppy-module-parser/-/sloppy-module-parser-2.1.0.tgz", + "integrity": "sha512-XHLbeqCPE8cBdeXa4mjYP2GyjdCUtLFIkyZ2WDhELCQROZhSKXf6f4+ySr9SA0CNqYct2Hy9WJJltyQxtuNCrw==", "license": "Apache-2.0", "dependencies": { "cjs-module-lexer": "^1.2.3", @@ -3903,19 +4044,18 @@ } }, "node_modules/sodium-native": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-4.2.0.tgz", - "integrity": "sha512-rdJRAf/RE/IRFUUoUsz10slNAQDTGz5ChpIeR1Ti0BtGYstl6Uok4hHALPBdnFcLml6qXJ2pDd0/De09mPa6mg==", - "hasInstallScript": true, + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-4.3.0.tgz", + "integrity": "sha512-OcMgoS0NJx+4yVUlhvL9uZsVZfmyHZ2RpSXkiIoOHMglqvJDeGwn1rUigPrvcNTq3m9hPXtt6syxQbF3vvwmRQ==", "license": "MIT", "dependencies": { "node-gyp-build": "^4.8.0" } }, "node_modules/sodium-secretstream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/sodium-secretstream/-/sodium-secretstream-1.1.0.tgz", - "integrity": "sha512-Qg7D2xomELDjDCWAmE4izk1aecG/il8pQIGmSWFaKgah/V58BVWG/PuSZF6vseTpcqnetIFGaOWzmPNzyTD50A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sodium-secretstream/-/sodium-secretstream-1.1.1.tgz", + "integrity": "sha512-9lRQtNdQYmANo+sgNjEQafKrd/N4ojqv17E8wOzx3yOCaOJ5Gb4MuXoYq2Nv4Xo9Kt2fOROYcmV24bamu86c8A==", "license": "MIT", "dependencies": { "b4a": "^1.1.1", @@ -4190,13 +4330,10 @@ } }, "node_modules/text-decoder": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", - "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", + "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", + "license": "Apache-2.0" }, "node_modules/text-table": { "version": "0.2.0", @@ -4206,9 +4343,9 @@ "license": "MIT" }, "node_modules/time-ordered-set": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/time-ordered-set/-/time-ordered-set-2.0.0.tgz", - "integrity": "sha512-bW/y+G3xukNDhPcnzNujiB3uS7OInWUUegWQ0hccbCShDaMP7ftO0A0DiGZAytU8kgRSPY3ot96EAYVrp3yrnQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/time-ordered-set/-/time-ordered-set-2.0.1.tgz", + "integrity": "sha512-VJEKmgSN2UiOLB8BpN8Sh2b9LGMHTP5OPrQRpnKjvOheOyzk0mufbjzjKTIG2gO4A+Y+vDJ+0TcLbpUmMLsg8A==", "license": "MIT" }, "node_modules/timeout-refresh": { @@ -4334,15 +4471,13 @@ } }, "node_modules/udx-native": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/udx-native/-/udx-native-1.13.1.tgz", - "integrity": "sha512-ihK2pTiN7slJlmT5xP6LecIzqzeaEhd3EImaQoFXjXJU+KMAoAPbiuMcbYcYxJmaezkk+4E7QRP6PaXw+aWBmw==", - "hasInstallScript": true, + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/udx-native/-/udx-native-1.14.1.tgz", + "integrity": "sha512-8NWeYnXWpixAyEE1U6/pIT5ErOjZA+js2tjZWOjLZPbFkpM/aTn7N7jgWXztvHlOODjbSh7oWCnaqs1/hqkVLg==", "license": "Apache-2.0", "dependencies": { "b4a": "^1.5.0", "bare-events": "^2.2.0", - "napi-macros": "^2.0.0", "node-gyp-build": "^4.4.0", "streamx": "^2.14.0" } @@ -4395,12 +4530,12 @@ } }, "node_modules/url-file-url": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/url-file-url/-/url-file-url-1.0.3.tgz", - "integrity": "sha512-5SMTbKf/0YVM2SAR/o/bmTCRHLJHvzCwFOpos8C7z2RO76kdcaa3ZH/H2xsshYGLD3Y5s/C6YEynMh12A/QQVA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/url-file-url/-/url-file-url-1.0.4.tgz", + "integrity": "sha512-yHgUZdxUE5up5GCT0C6ELcguYazTvpUaY9628XgEVykQaLZuJlsG30gmYZtVU/TFSkx0o6WP084DaWtZlMkYww==", "license": "Apache-2.0", "dependencies": { - "bare-path": "^2.1.3", + "bare-path": "^3.0.0", "which-runtime": "^1.2.0" } }, diff --git a/package.json b/package.json index 4f37595..4d474ee 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,11 @@ "pear-updater-bootstrap": "^1.1.0" }, "devDependencies": { + "cmake-bare": "^1.1.15", + "cmake-bare-bundle": "^2.1.2", + "cmake-drive": "^1.1.1", + "cmake-napi": "^1.0.7", + "cmake-npm": "^1.0.2", "standard": "^17.0.0" } } diff --git a/src/builtins.json b/src/builtins.json new file mode 100644 index 0000000..7378297 --- /dev/null +++ b/src/builtins.json @@ -0,0 +1,9 @@ +[ + "constants", + "fs", + "fsctl", + "os", + "path", + { "addon": "bare-fs" }, + { "addon": "bare-os" } +] diff --git a/src/paths.c b/src/paths.c index e697967..14eebf0 100644 --- a/src/paths.c +++ b/src/paths.c @@ -20,26 +20,20 @@ appling_paths__on_decode (compact_state_t *state, void *array, size_t i, void *d appling_app_t *apps = (appling_app_t *) array; - utf8_t *path = NULL; - utf8_t *key = NULL; - - err = compact_decode_utf8(state, &path, NULL); + utf8_string_view_t path; + err = compact_decode_utf8(state, &path); if (err < 0) goto err; - err = compact_decode_utf8(state, &key, NULL); + utf8_string_view_t key; + err = compact_decode_utf8(state, &key); if (err < 0) goto err; - strcpy(apps[i].path, (char *) path); - strcpy(apps[i].key, (char *) key); - - free(path); - free(key); + strncpy(apps[i].path, (char *) path.data, path.len); + strncpy(apps[i].key, (char *) key.data, key.len); return 0; err: - if (path) free(path); - if (key) free(key); return err; } @@ -144,7 +138,7 @@ appling_paths (uv_loop_t *loop, appling_paths_t *req, const char *dir, appling_p path_len = sizeof(appling_path_t); path_join( - (const char *[]){cwd, dir, NULL}, + (const char *[]) {cwd, dir, NULL}, base, &path_len, path_behavior_system @@ -157,7 +151,7 @@ appling_paths (uv_loop_t *loop, appling_paths_t *req, const char *dir, appling_p if (err < 0) return err; path_join( - (const char *[]){homedir, appling_platform_dir, NULL}, + (const char *[]) {homedir, appling_platform_dir, NULL}, base, &path_len, path_behavior_system @@ -167,7 +161,7 @@ appling_paths (uv_loop_t *loop, appling_paths_t *req, const char *dir, appling_p path_len = sizeof(appling_path_t); path_join( - (const char *[]){base, "applings", NULL}, + (const char *[]) {base, "applings", NULL}, req->path, &path_len, path_behavior_system diff --git a/test/fixtures/applings.h b/test/fixtures/applings.h index 7cf6402..a3f7a55 100644 --- a/test/fixtures/applings.h +++ b/test/fixtures/applings.h @@ -19,10 +19,12 @@ on_preencode (compact_state_t *state, void *array, size_t i, void *data) { appling_app_t *apps = (appling_app_t *) array; - err = compact_preencode_utf8(state, (utf8_t *) apps[i].path, -1); + utf8_string_view_t path = utf8_string_view_init((utf8_t *) apps[i].path, strlen(apps[i].path)); + err = compact_preencode_utf8(state, path); assert(err == 0); - err = compact_preencode_utf8(state, (utf8_t *) apps[i].key, -1); + utf8_string_view_t key = utf8_string_view_init((utf8_t *) apps[i].key, strlen(apps[i].key)); + err = compact_preencode_utf8(state, key); assert(err == 0); return 0; @@ -34,10 +36,12 @@ on_encode (compact_state_t *state, void *array, size_t i, void *data) { appling_app_t *apps = (appling_app_t *) array; - err = compact_encode_utf8(state, (utf8_t *) apps[i].path, -1); + utf8_string_view_t path = utf8_string_view_init((utf8_t *) apps[i].path, strlen(apps[i].path)); + err = compact_encode_utf8(state, path); assert(err == 0); - err = compact_encode_utf8(state, (utf8_t *) apps[i].key, -1); + utf8_string_view_t key = utf8_string_view_init((utf8_t *) apps[i].key, strlen(apps[i].key)); + err = compact_encode_utf8(state, key); assert(err == 0); return 0; diff --git a/vendor/bare b/vendor/bare index 5a7929b..2525e84 160000 --- a/vendor/bare +++ b/vendor/bare @@ -1 +1 @@ -Subproject commit 5a7929b186952bfad553c82dd4a60c2bbdc2d367 +Subproject commit 2525e84087b2ace8617f187a05384577048de943 diff --git a/vendor/libcompact b/vendor/libcompact index 63c4442..9ec0fe3 160000 --- a/vendor/libcompact +++ b/vendor/libcompact @@ -1 +1 @@ -Subproject commit 63c444255860efc9efb1a132138c1396dd5314b8 +Subproject commit 9ec0fe36644b441e48f700c2f15207892bbad507 diff --git a/vendor/libfs b/vendor/libfs index 4f3adb7..712e829 160000 --- a/vendor/libfs +++ b/vendor/libfs @@ -1 +1 @@ -Subproject commit 4f3adb7abee38e47cd7e443c611ed662586cc2c2 +Subproject commit 712e8299ebdfb7eb095410f4d37c587180fe9d3a diff --git a/vendor/libhex b/vendor/libhex index 36ab00c..cb98418 160000 --- a/vendor/libhex +++ b/vendor/libhex @@ -1 +1 @@ -Subproject commit 36ab00ca2d72d70e0c5fc79d55608df6dc075139 +Subproject commit cb98418965e6b9e2f1625f01d107d661a4aad0f1 diff --git a/vendor/liblog b/vendor/liblog index 3e0c50f..b8d9f24 160000 --- a/vendor/liblog +++ b/vendor/liblog @@ -1 +1 @@ -Subproject commit 3e0c50f12f34add7369a7bb08e6bc130d458db5f +Subproject commit b8d9f2429a11ea4263e47d057430be544db3f1b6 diff --git a/vendor/libpath b/vendor/libpath index 7202c87..22577c7 160000 --- a/vendor/libpath +++ b/vendor/libpath @@ -1 +1 @@ -Subproject commit 7202c87ec78c360540aa39966de5dda8b1fc2664 +Subproject commit 22577c76b07add4af449b90afdb3827dfe422d83