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 = {
|
const config = {
|
||||||
resolver: {
|
resolver: {
|
||||||
// Ensure Metro can resolve .cjs files (CommonJS modules)
|
|
||||||
sourceExts: ['jsx', 'js', 'ts', 'tsx', 'json', 'cjs'],
|
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",
|
"name": "minibits_wallet",
|
||||||
"version": "0.4.2-beta.8",
|
"version": "0.4.3-beta.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"android:clean": "cd android && ./gradlew clean",
|
"android:clean": "cd android && ./gradlew clean",
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"@gandlaf21/bc-ur": "^1.1.12",
|
"@gandlaf21/bc-ur": "^1.1.12",
|
||||||
"@gandlaf21/bolt11-decode": "^3.1.1",
|
"@gandlaf21/bolt11-decode": "^3.1.1",
|
||||||
"@gocodingnow/rn-size-matters": "^0.0.4",
|
"@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",
|
"@notifee/react-native": "^9.1.8",
|
||||||
"@op-engineering/op-sqlite": "^16.2.0",
|
"@op-engineering/op-sqlite": "^16.2.0",
|
||||||
"@react-native-clipboard/clipboard": "^1.16.3",
|
"@react-native-clipboard/clipboard": "^1.16.3",
|
||||||
@@ -94,9 +94,10 @@
|
|||||||
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
|
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
|
||||||
"@babel/preset-env": "^7.25.3",
|
"@babel/preset-env": "^7.25.3",
|
||||||
"@babel/runtime": "^7.25.0",
|
"@babel/runtime": "^7.25.0",
|
||||||
"@hot-updater/bare": "0.20.11",
|
"@expo/fingerprint": "^0.13.4",
|
||||||
"@hot-updater/firebase": "0.23.1",
|
"@hot-updater/bare": "0.32.0",
|
||||||
"@hot-updater/sentry-plugin": "^0.23.1",
|
"@hot-updater/firebase": "0.32.0",
|
||||||
|
"@hot-updater/sentry-plugin": "^0.32.0",
|
||||||
"@react-native-community/cli": "20.1.0",
|
"@react-native-community/cli": "20.1.0",
|
||||||
"@react-native-community/cli-platform-android": "20.1.0",
|
"@react-native-community/cli-platform-android": "20.1.0",
|
||||||
"@react-native-community/cli-platform-ios": "20.1.0",
|
"@react-native-community/cli-platform-ios": "20.1.0",
|
||||||
@@ -116,7 +117,7 @@
|
|||||||
"eslint-plugin-unused-imports": "^2.0.0",
|
"eslint-plugin-unused-imports": "^2.0.0",
|
||||||
"firebase-admin": "^13.6.0",
|
"firebase-admin": "^13.6.0",
|
||||||
"firebase-tools": "^14.27.0",
|
"firebase-tools": "^14.27.0",
|
||||||
"hot-updater": "^0.23.1",
|
"hot-updater": "^0.32.0",
|
||||||
"jest": "^29.6.3",
|
"jest": "^29.6.3",
|
||||||
"prettier": "2.8.8",
|
"prettier": "2.8.8",
|
||||||
"react-native-clean-project": "^4.0.3",
|
"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