mirror of
https://github.com/minibits-cash/minibits_wallet.git
synced 2026-07-22 07:48:28 +00:00
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:
@@ -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);
|
||||
},*/
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
13
package.json
13
package.json
@@ -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",
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
/**
|
||||
Reference in New Issue
Block a user