Upgrade hot-updater 0.23.1 -> 0.32.0

Bump all hot-updater packages to a consistent 0.32.0 (CLI,
@hot-updater/react-native, bare, firebase, sentry-plugin), replacing the
previous mixed set (bare was pinned at 0.20.11).

- Add @expo/fingerprint as an explicit devDependency: it is now an
  optional peer dep and is required by updateStrategy: "fingerprint".
- Remove patches/@hot-updater+bare+0.20.11.patch: the hermes-compiler
  path resolution it added is now upstream in bare 0.32.0
  (getHermesCompilerPackagePath).

hot-updater.config.ts needs no changes (firebaseStorage/firebaseDatabase
config shapes unchanged). The live 0.23.1 app runtime stays wire-compatible
with the redeployed 0.32.0 server (identical path-based update-check route).

Infra steps still required (run separately): npx hot-updater init to
refresh Firebase functions + Android native config, then a native rebuild
to enable bundle diffing for new installs.

Also drops dead commented-out @noble/curves Metro resolver workaround.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
minibits-cash
2026-06-01 14:06:35 +02:00
parent 58fb7b15b9
commit 211f27f259
4 changed files with 706 additions and 321 deletions

View File

@@ -9,44 +9,7 @@ const { withSentryConfig } = require("@sentry/react-native/metro");
*/
const config = {
resolver: {
// Ensure Metro can resolve .cjs files (CommonJS modules)
sourceExts: ['jsx', 'js', 'ts', 'tsx', 'json', 'cjs'],
// Workaround for Unicode character issues in @noble/curves
// Files with Greek letters (β, α) cause "Property β does not exist" errors in Hermes
/*resolveRequest: (context, moduleName, platform) => {
// Force cashu-ts to use pre-built CJS bundle
if (moduleName === '@cashu/cashu-ts') {
return {
filePath: context.resolveRequest(context, '@cashu/cashu-ts/lib/cashu-ts.cjs', platform).filePath,
type: 'sourceFile',
};
}
// Block problematic @noble/curves files that contain Unicode characters
// Allow only essential modules needed for secp256k1
if (moduleName.startsWith('@noble/curves/')) {
const allowed = [
'secp256k1',
'abstract/modular',
'abstract/weierstrass',
'_shortw_utils',
'utils'
];
const isAllowed = allowed.some(path => moduleName.includes(path));
if (!isAllowed) {
// Return empty stub for blocked imports (contains Unicode chars incompatible with Hermes)
const stubPath = require('path').resolve(__dirname, 'node_modules/.metro-stub.js');
return {
filePath: stubPath,
type: 'sourceFile',
};
}
}
// Default resolution
return context.resolveRequest(context, moduleName, platform);
},*/
},
};

View File

@@ -1,6 +1,6 @@
{
"name": "minibits_wallet",
"version": "0.4.2-beta.8",
"version": "0.4.3-beta.1",
"private": true,
"scripts": {
"android:clean": "cd android && ./gradlew clean",
@@ -31,7 +31,7 @@
"@gandlaf21/bc-ur": "^1.1.12",
"@gandlaf21/bolt11-decode": "^3.1.1",
"@gocodingnow/rn-size-matters": "^0.0.4",
"@hot-updater/react-native": "0.23.1",
"@hot-updater/react-native": "0.32.0",
"@notifee/react-native": "^9.1.8",
"@op-engineering/op-sqlite": "^16.2.0",
"@react-native-clipboard/clipboard": "^1.16.3",
@@ -94,9 +94,10 @@
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
"@babel/preset-env": "^7.25.3",
"@babel/runtime": "^7.25.0",
"@hot-updater/bare": "0.20.11",
"@hot-updater/firebase": "0.23.1",
"@hot-updater/sentry-plugin": "^0.23.1",
"@expo/fingerprint": "^0.13.4",
"@hot-updater/bare": "0.32.0",
"@hot-updater/firebase": "0.32.0",
"@hot-updater/sentry-plugin": "^0.32.0",
"@react-native-community/cli": "20.1.0",
"@react-native-community/cli-platform-android": "20.1.0",
"@react-native-community/cli-platform-ios": "20.1.0",
@@ -116,7 +117,7 @@
"eslint-plugin-unused-imports": "^2.0.0",
"firebase-admin": "^13.6.0",
"firebase-tools": "^14.27.0",
"hot-updater": "^0.23.1",
"hot-updater": "^0.32.0",
"jest": "^29.6.3",
"prettier": "2.8.8",
"react-native-clean-project": "^4.0.3",

View File

@@ -1,13 +0,0 @@
diff --git a/node_modules/@hot-updater/bare/dist/index.cjs b/node_modules/@hot-updater/bare/dist/index.cjs
index 2476539..bc47c39 100644
--- a/node_modules/@hot-updater/bare/dist/index.cjs
+++ b/node_modules/@hot-updater/bare/dist/index.cjs
@@ -6528,6 +6528,8 @@ async function getHermesCommand(cwd) {
if (fileExists(bundledHermesEngine)) return bundledHermesEngine;
const hermesEngine = path.default.join("node_modules", "hermes-engine", getHermesOSBin(), getHermesOSExe());
if (fileExists(hermesEngine)) return hermesEngine;
+ const hermesCompiler = path.default.join("node_modules", "hermes-compiler", "hermesc", getHermesOSBin(), getHermesOSExe());
+ if (fileExists(hermesCompiler)) return hermesCompiler;
return path.default.join("node_modules", "hermesvm", getHermesOSBin(), "hermes");
}
/**

964
yarn.lock

File diff suppressed because it is too large Load Diff