deps: React Native v0.84.0

This commit is contained in:
Evan Kaloudis
2026-02-25 10:51:45 -05:00
parent 841bb08c0a
commit bb09f99c11
18 changed files with 1158 additions and 2194 deletions
-9
View File
@@ -1,9 +0,0 @@
node_modules
zeus_modules
.eslintrc.js
babel.config.js
index.js
metro.config.js
shim.js
proto
react-native.config.js
-68
View File
@@ -1,68 +0,0 @@
module.exports = {
globals: {
'JSX': true,
'Buffer': true
},
root: true,
extends: ['@react-native', 'plugin:import/recommended', 'plugin:import/typescript'],
plugins: ['import', 'prettier'],
parser: '@typescript-eslint/parser',
parserOptions: {
project: true,
tsconfigRootDir: __dirname
},
rules: {
'@typescript-eslint/await-thenable': 'error',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/camelcase': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-shadow': 'off',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/no-var-requires': 'off',
'comma-dangle': 'off',
'curly': 'off',
'import/default': 'off',
'import/named': 'off',
'import/namespace': 'off',
'import/no-duplicates': 2,
'import/no-named-as-default': 'off',
'import/no-named-as-default-member': 'off',
'react/no-string-refs': 'off',
'react/prop-types': 'off',
'react/react-in-jsx-scope': 'off',
'react-native/no-inline-styles': 'off',
'camelcase': 'off',
'no-case-declarations': 'off',
'no-control-regex': 'off',
'no-undef': 2,
'no-unused-vars': 0,
'object-shorthand': ['error', 'always'],
'prefer-spread': 'off',
'prettier/prettier': [
'error',
{
endOfLine: 'auto',
},
],
// TODO re-evaluate
'dot-notation': 'off',
'eqeqeq': 'off',
'no-bitwise': 'off',
'no-const-assign': 'off',
'no-div-regex': 'off',
'no-lone-blocks': 'off',
'no-void': 'off',
'radix': 'off',
'react/no-unstable-nested-components': 'off',
'react/self-closing-comp': 'off',
'react-hooks/exhaustive-deps': 'off',
'semi': 'off',
'quotes': 'off',
// new
'import/no-unresolved': [2, {commonjs: true, amd: true}]
},
};
+3 -3
View File
@@ -10,12 +10,12 @@ jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22'
- name: Install dependencies
run: yarn install --frozen-lockfile
+3 -3
View File
@@ -10,10 +10,10 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '20.x'
node-version: '22.x'
- run: yarn install --frozen-lockfile
- run: yarn run lint
+3 -3
View File
@@ -10,10 +10,10 @@ jobs:
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '20.x'
node-version: '22.x'
- run: yarn install --frozen-lockfile
- run: yarn run prettier
+3 -3
View File
@@ -10,10 +10,10 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '20.x'
node-version: '22.x'
- run: yarn install --frozen-lockfile
- run: yarn run test
+3 -3
View File
@@ -10,10 +10,10 @@ jobs:
tsc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '20.x'
node-version: '22.x'
- run: yarn install --frozen-lockfile
- run: yarn run tsc
+1 -2
View File
@@ -5,13 +5,12 @@ ruby ">= 2.6.10"
# Exclude problematic cocoapods versions
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
gem 'activesupport', '>= 6.1.7.5'
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
# Ruby 3.4 compatibility
gem 'bigdecimal'
gem 'logger'
gem 'benchmark'
gem 'mutex_m'
gem 'nkf'
gem 'xcodeproj', '< 1.26.0'
gem 'concurrent-ruby', '< 1.3.4'
+1 -1
View File
@@ -89,7 +89,7 @@ For the most up-to-date remote connection guides, visit our [documentation site]
**Don't trust, verify** the code with your own two eyes. Then when ready proceed to the steps below based on your platform.
### Prerequisites
- Node.js (minimum version: `v20 (Iron)`)
- Node.js (minimum version: `v22.11`)
### Android
1. install and setup react-native and its related dependencies under **"Building Projects with Native Code"** on
@@ -5,56 +5,38 @@ import com.ReactNativeBlobUtil.ReactNativeBlobUtilUtils
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactHost
import com.facebook.react.ReactNativeHost
import com.facebook.react.ReactPackage
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
import com.facebook.react.defaults.DefaultReactNativeHost
import com.facebook.soloader.SoLoader
import com.facebook.react.soloader.OpenSourceMergedSoMapping
import java.security.cert.X509Certificate
import javax.net.ssl.X509TrustManager
import app.zeusln.zeus.cashudevkit.CashuDevKitPackage
//import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
// import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
class MainApplication : Application(), ReactApplication {
override public val reactNativeHost: ReactNativeHost = object : DefaultReactNativeHost(this) {
override fun getPackages(): List<ReactPackage> =
PackageList(this).packages.apply {
// Packages that cannot be autolinked yet can be added manually here, for example:
// add(MyReactNativePackage())
// ZEUS
add(MobileToolsPackage())
add(LndMobilePackage())
add(LndMobileToolsPackage())
add(LndMobileScheduledSyncPackage())
add(LncPackage())
add(NostrConnectPackage())
add(CashuDevKitPackage())
// add(new ZeusTorPackage());
}
override val reactHost: ReactHost by lazy {
getDefaultReactHost(
context = applicationContext,
packageList =
PackageList(this).packages.apply {
// Packages that cannot be autolinked yet can be added manually here, for example:
// add(MyReactNativePackage())
override fun getJSMainModuleName(): String = "index"
override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
// ZEUS
add(MobileToolsPackage())
add(LndMobilePackage())
add(LndMobileToolsPackage())
add(LndMobileScheduledSyncPackage())
add(LncPackage())
add(NostrConnectPackage())
add(CashuDevKitPackage())
},
)
}
override val reactHost: ReactHost
get() = getDefaultReactHost(applicationContext, reactNativeHost)
override fun onCreate() {
super.onCreate()
SoLoader.init(this, OpenSourceMergedSoMapping)
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
load()
}
loadReactNative(this)
ReactNativeBlobUtilUtils.sharedTrustManager = object : X509TrustManager {
override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String) {}
override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String) {}
+2 -2
View File
@@ -23,9 +23,9 @@ buildscript {
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:8.13.0")
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.20")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
classpath("com.google.protobuf:protobuf-gradle-plugin:0.9.4")
// LN address notifications
+5
View File
@@ -41,5 +41,10 @@ newArchEnabled=true
# If set to false, you will be using JSC instead.
hermesEnabled=true
# Use this property to enable edge-to-edge display support.
# This allows your app to draw behind system bars for an immersive UI.
# Note: Only works with ReactActivity and should not be used with custom Activity.
edgeToEdgeEnabled=false
# Necessary for react-native-vision-camera QR code scanning
VisionCamera_enableCodeScanner=true
+135
View File
@@ -0,0 +1,135 @@
const reactNativeConfig = require('@react-native/eslint-config/flat');
const importPlugin = require('eslint-plugin-import');
module.exports = [
// Ignore patterns (must be first for ESLint 9 global ignores)
{
ignores: [
'node_modules/**',
'zeus_modules/**',
'android/**',
'ios/**',
'proto/**',
'shim.js',
'babel.config.js',
'metro.config.js',
'react-native.config.js',
'index.js',
],
},
// Base React Native flat config (includes prettier conflict resolution)
...reactNativeConfig,
// Disable ft-flow rules globally (Zeus uses TypeScript, not Flow;
// eslint-plugin-ft-flow@2.x is incompatible with ESLint 9)
{
files: ['**/*.js'],
rules: {
'ft-flow/define-flow-type': 'off',
'ft-flow/use-flow-type': 'off',
'ft-flow/boolean-style': 'off',
'ft-flow/no-dupe-keys': 'off',
'ft-flow/no-primitive-constructor-types': 'off',
'ft-flow/no-types-missing-file-annotation': 'off',
'ft-flow/no-unused-expressions': 'off',
'ft-flow/no-weak-types': 'off',
'ft-flow/require-valid-file-annotation': 'off',
},
},
// Import plugin for all files
{
files: ['**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx'],
plugins: {
import: importPlugin,
},
settings: {
'import/resolver': {
typescript: true,
node: true,
},
},
rules: {
'import/default': 'off',
'import/named': 'off',
'import/namespace': 'off',
'import/no-duplicates': 'error',
'import/no-named-as-default': 'off',
'import/no-named-as-default-member': 'off',
'import/no-unresolved': ['error', {commonjs: true, amd: true}],
},
},
// TypeScript-specific overrides
{
files: ['**/*.ts', '**/*.tsx'],
languageOptions: {
parserOptions: {
project: true,
tsconfigRootDir: __dirname,
},
globals: {
JSX: 'readonly',
Buffer: 'readonly',
},
},
rules: {
'@typescript-eslint/await-thenable': 'error',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-shadow': 'off',
'@typescript-eslint/no-unused-vars': ['error', {
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
caughtErrors: 'none',
}],
'@typescript-eslint/no-require-imports': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
},
},
// Global rule overrides for all files
{
files: ['**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx'],
languageOptions: {
globals: {
JSX: 'readonly',
Buffer: 'readonly',
},
},
rules: {
'comma-dangle': 'off',
'curly': 'off',
'camelcase': 'off',
'no-case-declarations': 'off',
'no-control-regex': 'off',
'no-undef': 'error',
'no-unused-vars': 'off',
'object-shorthand': ['error', 'always'],
'prefer-spread': 'off',
'react/no-string-refs': 'off',
'react/prop-types': 'off',
'react/react-in-jsx-scope': 'off',
'react-native/no-inline-styles': 'off',
'react/no-unstable-nested-components': 'off',
'react/self-closing-comp': 'off',
'react-hooks/exhaustive-deps': 'off',
// TODO re-evaluate
'dot-notation': 'off',
'eqeqeq': 'off',
'no-bitwise': 'off',
'no-const-assign': 'off',
'no-div-regex': 'off',
'no-lone-blocks': 'off',
'no-void': 'off',
'radix': 'off',
'semi': 'off',
'quotes': 'off',
},
},
];
+626 -1478
View File
File diff suppressed because it is too large Load Diff
+22 -10
View File
@@ -1814,15 +1814,12 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-zeus/Pods-zeus-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo/RNDeviceInfoPrivacyInfo.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNSVG/RNSVGFilters.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/React-Core_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact/React-cxxreact_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/SwiftProtobuf/SwiftProtobuf.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/boost/boost_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios/LottiePrivacyInfo.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/lottie-react-native/Lottie_React_Native_Privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/react-native-blob-util/ReactNativeBlobUtilPrivacyInfo.bundle",
@@ -1834,15 +1831,12 @@
);
name = "[CP] Copy Pods Resources";
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNDeviceInfoPrivacyInfo.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNSVGFilters.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SwiftProtobuf.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/boost_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LottiePrivacyInfo.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Lottie_React_Native_Privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ReactNativeBlobUtilPrivacyInfo.bundle",
@@ -1886,10 +1880,14 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-zeus/Pods-zeus-frameworks.sh",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermesvm.framework/hermesvm",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermesvm.framework",
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2329,12 +2327,19 @@
LDPLUSPLUS = "";
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
OTHER_CFLAGS = (
"$(inherited)",
"-DRCT_REMOVE_LEGACY_ARCH=1",
);
OTHER_CPLUSPLUSFLAGS = (
"$(inherited)",
"-DRCT_REMOVE_LEGACY_ARCH=1",
);
OTHER_LDFLAGS = "$(inherited)";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
SWIFT_ENABLE_EXPLICIT_MODULES = NO;
USE_HERMES = true;
};
name = Debug;
@@ -2390,12 +2395,19 @@
LD = "";
LDPLUSPLUS = "";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
OTHER_CFLAGS = (
"$(inherited)",
"-DRCT_REMOVE_LEGACY_ARCH=1",
);
OTHER_CPLUSPLUSFLAGS = (
"$(inherited)",
"-DRCT_REMOVE_LEGACY_ARCH=1",
);
OTHER_LDFLAGS = "$(inherited)";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_ENABLE_EXPLICIT_MODULES = NO;
USE_HERMES = true;
VALIDATE_PRODUCT = YES;
};
+18 -18
View File
@@ -2,6 +2,9 @@
"name": "zeus",
"version": "0.13.0-prealpha",
"private": true,
"engines": {
"node": ">= 22.11.0"
},
"jest": {
"preset": "react-native",
"watchPathIgnorePatterns": [
@@ -31,7 +34,7 @@
"verify": "concurrently \"yarn test\" \"yarn prettier\" \"yarn tsc\" \"yarn lint\"",
"test": "jest",
"tsc": "tsc",
"lint": "eslint --ext .js,.ts,.tsx \"*.@(js|ts|tsx)\" . && yarn run test check-styles.test.ts --testPathIgnorePatterns=",
"lint": "eslint . && yarn run test check-styles.test.ts --testPathIgnorePatterns=",
"prettier": "prettier --check \"**/*.ts*\"",
"prettier-write": "prettier --check --write \"**/*.ts*\"",
"gen-proto": "pbjs -t static-module --keep-case -w es6 --force-long -o proto/lightning.js proto/*.proto proto/*/*.proto && pbts -o proto/lightning.d.ts proto/lightning.js",
@@ -39,7 +42,7 @@
"android:clean": "yarn gradlew clean",
"fetch-libraries": "bash fetch-libraries.sh",
"fix-all": "yarn prettier-write && yarn lint-fix",
"lint-fix": "eslint --ext .js,.ts,.tsx \"*.@(js|ts|tsx)\" . --fix"
"lint-fix": "eslint . --fix"
},
"dependencies": {
"@bitcoinerlab/secp256k1": "1.1.1",
@@ -107,8 +110,8 @@
"protobufjs": "7.2.5",
"punycode": "1.4.1",
"querystring-es3": "0.2.1",
"react": "19.2.0",
"react-native": "0.83.1",
"react": "19.2.3",
"react-native": "0.84.0",
"react-native-biometrics": "3.0.1",
"react-native-blob-util": "0.24.6",
"react-native-circular-progress-indicator": "4.4.2",
@@ -130,7 +133,7 @@
"react-native-qr-kit": "1.0.5",
"react-native-qrcode-svg": "6.3.21",
"react-native-randombytes": "3.5.3",
"react-native-reanimated": "4.2.1",
"react-native-reanimated": "4.2.2",
"react-native-reanimated-carousel": "4.0.3",
"react-native-restart": "0.0.27",
"react-native-safe-area-context": "5.6.2",
@@ -146,7 +149,7 @@
"react-native-v8": "0.61.5-patch.4",
"react-native-view-shot": "4.0.3",
"react-native-vision-camera": "4.7.3",
"react-native-worklets": "0.7.1",
"react-native-worklets": "0.7.4",
"readable-stream": "1.0.33",
"scrypt-js": "3.0.1",
"sha.js": "2.4.12",
@@ -166,9 +169,10 @@
"@babel/preset-typescript": "7.22.15",
"@babel/runtime": "7.26.10",
"@react-native-community/cli": "20.1.1",
"@react-native/babel-preset": "0.83.1",
"@react-native/eslint-config": "0.83.1",
"@react-native/metro-config": "0.83.1",
"@react-native/babel-preset": "0.84.0",
"@react-native/eslint-config": "0.84.0",
"@react-native/metro-config": "0.84.0",
"@react-native/typescript-config": "0.84.0",
"@types/create-hash": "1.2.2",
"@types/crypto-js": "4.1.1",
"@types/jest": "29.5.12",
@@ -179,26 +183,22 @@
"@types/react-test-renderer": "19.1.0",
"@types/sha.js": "2.4.1",
"@types/uuid": "9.0.8",
"@typescript-eslint/eslint-plugin": "6.13.1",
"@typescript-eslint/parser": "8.20.0",
"@typescript-eslint/eslint-plugin": "8.36.0",
"@typescript-eslint/parser": "8.36.0",
"babel-jest": "29.7.0",
"compressing": "1.10.4",
"concurrently": "9.1.2",
"eslint": "8.57.1",
"eslint-config-prettier": "8.5.0",
"eslint": "9.0.0",
"eslint-import-resolver-typescript": "3.6.1",
"eslint-plugin-ft-flow": "2.0.3",
"eslint-plugin-import": "2.28.1",
"eslint-plugin-jest": "27.9.0",
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-react": "7.31.8",
"eslint-plugin-jest": "29.0.1",
"graceful-fs": "4.2.8",
"jest": "29.7.0",
"pod-install": "0.1.38",
"prettier": "2.4.1",
"protobufjs-cli": "1.1.1",
"react-native-url-polyfill": "2.0.0",
"react-test-renderer": "19.2.0",
"react-test-renderer": "19.2.3",
"rn-nodeify": "10.3.0",
"typescript": "5.7.3"
},
+17
View File
@@ -0,0 +1,17 @@
// Fix React Native 0.84 URL type declarations.
// RN 0.84 incorrectly marks URL properties as readonly, but per the web
// standard (and lib.dom.d.ts), properties like pathname, hash, port, etc.
// are writable. This augmentation restores the correct types.
interface URL {
hash: string;
host: string;
hostname: string;
href: string;
password: string;
pathname: string;
port: string;
protocol: string;
search: string;
username: string;
}
+297 -554
View File
File diff suppressed because it is too large Load Diff