From b5861145b5f58a15afb6886a3c33c031ad560975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BARBERO?= Date: Wed, 25 Sep 2024 16:03:49 +0200 Subject: [PATCH] chore: in Gnoboard, use the Gnonative npm package (#181) In Gnoboard, use the Gnonative npm package. Use `KeyInfo` instead of the alias `GnoAccount` used only in gnoboard. Save the transport_web.ts file in the `template` folder for the future. Tested on Android. Signed-off-by: D4ryl00 --- examples/js/expo/gnoboard/.gitignore | 4 + examples/js/expo/gnoboard/App.tsx | 2 +- examples/js/expo/gnoboard/android/.gitignore | 19 - .../js/expo/gnoboard/android/app/build.gradle | 234 --- .../expo/gnoboard/android/app/debug.keystore | Bin 2257 -> 0 bytes .../gnoboard/android/app/proguard-rules.pro | 14 - .../android/app/src/debug/AndroidManifest.xml | 7 - .../android/app/src/main/AndroidManifest.xml | 32 - .../java/land/gno/gnoboard/MainActivity.kt | 61 - .../java/land/gno/gnoboard/MainApplication.kt | 57 - .../land/gno/gobridge/GoBridgeModule.java | 144 -- .../land/gno/gobridge/GoBridgePackage.java | 21 - .../land/gno/gobridge/JavaPromiseBlock.java | 33 - .../java/land/gno/rootdir/RootDirModule.java | 36 - .../java/land/gno/rootdir/RootDirPackage.java | 21 - .../res/drawable-hdpi/splashscreen_image.png | Bin 20830 -> 0 bytes .../res/drawable-mdpi/splashscreen_image.png | Bin 20830 -> 0 bytes .../res/drawable-xhdpi/splashscreen_image.png | Bin 20830 -> 0 bytes .../drawable-xxhdpi/splashscreen_image.png | Bin 20830 -> 0 bytes .../drawable-xxxhdpi/splashscreen_image.png | Bin 20830 -> 0 bytes .../res/drawable/rn_edit_text_material.xml | 36 - .../src/main/res/drawable/splashscreen.xml | 3 - .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 - .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3610 -> 0 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 5400 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 6179 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2742 -> 0 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 3665 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 3721 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4917 -> 0 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 15889 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 8758 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7121 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 13200 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 13808 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9514 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 34465 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 19157 -> 0 bytes .../app/src/main/res/values-night/colors.xml | 1 - .../app/src/main/res/values/colors.xml | 6 - .../app/src/main/res/values/strings.xml | 5 - .../app/src/main/res/values/styles.xml | 17 - .../main/res/xml/network_security_config.xml | 11 - .../land/gno/gnoboard/ReactNativeFlipper.java | 20 - .../js/expo/gnoboard/android/build.gradle | 41 - .../expo/gnoboard/android/gradle.properties | 59 - .../android/gradle/wrapper/gradle-wrapper.jar | Bin 60756 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 8 - examples/js/expo/gnoboard/android/gradlew | 247 --- examples/js/expo/gnoboard/android/gradlew.bat | 92 - .../react-settings-plugin/build.gradle.kts | 19 - .../expo/plugins/ReactSettingsPlugin.kt | 10 - .../js/expo/gnoboard/android/settings.gradle | 66 - examples/js/expo/gnoboard/ios/.gitignore | 33 - examples/js/expo/gnoboard/ios/.xcode.env | 11 - examples/js/expo/gnoboard/ios/Podfile | 79 - examples/js/expo/gnoboard/ios/Podfile.lock | 1572 ----------------- .../expo/gnoboard/ios/Podfile.properties.json | 4 - .../gnoboard/ios/Sources/Bridge/GoBridge.m | 43 - .../ios/Sources/Bridge/GoBridge.swift | 162 -- .../ios/Sources/Bridge/PromiseBlock.swift | 61 - .../gnoboard/ios/Sources/RootDir/RootDir.m | 15 - .../ios/Sources/RootDir/RootDir.swift | 61 - .../ios/gnoboard.xcodeproj/project.pbxproj | 597 ------- .../xcshareddata/xcschemes/gnoboard.xcscheme | 88 - .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../expo/gnoboard/ios/gnoboard/AppDelegate.h | 7 - .../expo/gnoboard/ios/gnoboard/AppDelegate.mm | 62 - .../App-Icon-1024x1024@1x.png | Bin 47607 -> 0 bytes .../AppIcon.appiconset/Contents.json | 14 - .../gnoboard/Images.xcassets/Contents.json | 6 - .../SplashScreen.imageset/Contents.json | 23 - .../SplashScreen.imageset/image.png | Bin 61904 -> 0 bytes .../SplashScreen.imageset/splash_1x.png | Bin 20830 -> 0 bytes .../SplashScreen.imageset/splash_2x.png | Bin 20830 -> 0 bytes .../SplashScreen.imageset/splash_3x.png | Bin 20830 -> 0 bytes .../Contents.json | 23 - .../background_2x.png | Bin 20830 -> 0 bytes .../background_3x.png | Bin 20830 -> 0 bytes .../SplashScreenBackground.imageset/image.png | Bin 70 -> 0 bytes .../splash.png | Bin 20830 -> 0 bytes .../js/expo/gnoboard/ios/gnoboard/Info.plist | 72 - .../ios/gnoboard/PrivacyInfo.xcprivacy | 48 - .../ios/gnoboard/SplashScreen.storyboard | 51 - .../ios/gnoboard/Supporting/Expo.plist | 12 - .../ios/gnoboard/gnoboard-Bridging-Header.h | 7 - .../ios/gnoboard/gnoboard.entitlements | 5 - examples/js/expo/gnoboard/ios/gnoboard/main.m | 10 - .../gnoboard/ios/gnoboard/noop-file.swift | 4 - examples/js/expo/gnoboard/package-lock.json | 39 +- examples/js/expo/gnoboard/package.json | 3 +- .../gnoboard/src/GoBridge/GoBridge.native.ts | 5 - .../js/expo/gnoboard/src/GoBridge/GoBridge.ts | 33 - .../src/GoBridge/GoBridgeInterface.ts | 10 - .../js/expo/gnoboard/src/GoBridge/index.ts | 2 - .../js/expo/gnoboard/src/GoBridge/types.ts | 19 - .../js/expo/gnoboard/src/api/GnoNativeApi.ts | 485 ----- examples/js/expo/gnoboard/src/api/index.ts | 2 - examples/js/expo/gnoboard/src/api/types.ts | 109 -- .../src/components/account/AccountBalance.tsx | 2 +- .../src/components/account/CurrentAccoutn.tsx | 4 +- .../network-list-item/index.tsx | 2 +- .../change-network/network-list/index.tsx | 2 +- .../side-menu-account-list.tsx | 6 +- examples/js/expo/gnoboard/src/grpc/client.ts | 13 - examples/js/expo/gnoboard/src/grpc/error.ts | 89 - .../gnoboard/src/grpc/transport_native.ts | 159 -- .../src/provider/gnonative-provider.tsx | 61 - .../expo/gnoboard/src/screens/board/index.tsx | 2 +- .../screens/certify/create-password/index.tsx | 2 +- .../src/screens/certify/enter-seed/index.tsx | 2 +- .../certify/your-seed-phrase/index.tsx | 2 +- .../src/screens/change-network/index.tsx | 4 +- .../gnoboard/src/screens/devmode/index.tsx | 4 +- .../src/screens/remove-account/confirm.tsx | 2 +- .../src/screens/remove-account/index.tsx | 7 +- .../switch-accounts/ReenterPassword.tsx | 4 +- .../src/screens/switch-accounts/index.tsx | 7 +- .../src/screens/wallet/home/index.tsx | 8 +- examples/js/expo/gnoboard/src/types/index.ts | 1 + examples/js/expo/gnoboard/src/types/types.ts | 5 + .../src/grpc => templates}/transport_web.ts | 0 124 files changed, 69 insertions(+), 5450 deletions(-) delete mode 100644 examples/js/expo/gnoboard/android/.gitignore delete mode 100644 examples/js/expo/gnoboard/android/app/build.gradle delete mode 100644 examples/js/expo/gnoboard/android/app/debug.keystore delete mode 100644 examples/js/expo/gnoboard/android/app/proguard-rules.pro delete mode 100644 examples/js/expo/gnoboard/android/app/src/debug/AndroidManifest.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/AndroidManifest.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainActivity.kt delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainApplication.kt delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgeModule.java delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgePackage.java delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/JavaPromiseBlock.java delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirModule.java delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirPackage.java delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/drawable-hdpi/splashscreen_image.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/drawable-mdpi/splashscreen_image.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/drawable/rn_edit_text_material.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/drawable/splashscreen.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/values-night/colors.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/values/colors.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/values/strings.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/values/styles.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/main/res/xml/network_security_config.xml delete mode 100644 examples/js/expo/gnoboard/android/app/src/release/java/land/gno/gnoboard/ReactNativeFlipper.java delete mode 100644 examples/js/expo/gnoboard/android/build.gradle delete mode 100644 examples/js/expo/gnoboard/android/gradle.properties delete mode 100644 examples/js/expo/gnoboard/android/gradle/wrapper/gradle-wrapper.jar delete mode 100644 examples/js/expo/gnoboard/android/gradle/wrapper/gradle-wrapper.properties delete mode 100755 examples/js/expo/gnoboard/android/gradlew delete mode 100644 examples/js/expo/gnoboard/android/gradlew.bat delete mode 100644 examples/js/expo/gnoboard/android/react-settings-plugin/build.gradle.kts delete mode 100644 examples/js/expo/gnoboard/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt delete mode 100644 examples/js/expo/gnoboard/android/settings.gradle delete mode 100644 examples/js/expo/gnoboard/ios/.gitignore delete mode 100644 examples/js/expo/gnoboard/ios/.xcode.env delete mode 100644 examples/js/expo/gnoboard/ios/Podfile delete mode 100644 examples/js/expo/gnoboard/ios/Podfile.lock delete mode 100644 examples/js/expo/gnoboard/ios/Podfile.properties.json delete mode 100644 examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.m delete mode 100644 examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.swift delete mode 100644 examples/js/expo/gnoboard/ios/Sources/Bridge/PromiseBlock.swift delete mode 100644 examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.m delete mode 100644 examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.swift delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/project.pbxproj delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/xcshareddata/xcschemes/gnoboard.xcscheme delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/contents.xcworkspacedata delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.h delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.mm delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/Contents.json delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/Contents.json delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/image.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/splash_1x.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/splash_2x.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/splash_3x.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreenBackground.imageset/Contents.json delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreenBackground.imageset/background_2x.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreenBackground.imageset/background_3x.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreenBackground.imageset/image.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreenBackground.imageset/splash.png delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Info.plist delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/PrivacyInfo.xcprivacy delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/SplashScreen.storyboard delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/Supporting/Expo.plist delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/gnoboard-Bridging-Header.h delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/gnoboard.entitlements delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/main.m delete mode 100644 examples/js/expo/gnoboard/ios/gnoboard/noop-file.swift delete mode 100644 examples/js/expo/gnoboard/src/GoBridge/GoBridge.native.ts delete mode 100644 examples/js/expo/gnoboard/src/GoBridge/GoBridge.ts delete mode 100644 examples/js/expo/gnoboard/src/GoBridge/GoBridgeInterface.ts delete mode 100644 examples/js/expo/gnoboard/src/GoBridge/index.ts delete mode 100644 examples/js/expo/gnoboard/src/GoBridge/types.ts delete mode 100644 examples/js/expo/gnoboard/src/api/GnoNativeApi.ts delete mode 100644 examples/js/expo/gnoboard/src/api/index.ts delete mode 100644 examples/js/expo/gnoboard/src/api/types.ts delete mode 100644 examples/js/expo/gnoboard/src/grpc/client.ts delete mode 100644 examples/js/expo/gnoboard/src/grpc/error.ts delete mode 100644 examples/js/expo/gnoboard/src/grpc/transport_native.ts delete mode 100644 examples/js/expo/gnoboard/src/provider/gnonative-provider.tsx create mode 100644 examples/js/expo/gnoboard/src/types/index.ts create mode 100644 examples/js/expo/gnoboard/src/types/types.ts rename {examples/js/expo/gnoboard/src/grpc => templates}/transport_web.ts (100%) diff --git a/examples/js/expo/gnoboard/.gitignore b/examples/js/expo/gnoboard/.gitignore index 05647d55..6d70646d 100644 --- a/examples/js/expo/gnoboard/.gitignore +++ b/examples/js/expo/gnoboard/.gitignore @@ -1,5 +1,9 @@ # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files +# native folders +android/ +ios/ + # dependencies node_modules/ diff --git a/examples/js/expo/gnoboard/App.tsx b/examples/js/expo/gnoboard/App.tsx index f878f273..da1fda81 100644 --- a/examples/js/expo/gnoboard/App.tsx +++ b/examples/js/expo/gnoboard/App.tsx @@ -1,7 +1,7 @@ // order of imports is important import 'react-native-polyfill-globals/auto'; -import { GnoNativeProvider } from '@gno/provider/gnonative-provider'; +import { GnoNativeProvider } from '@gnolang/gnonative'; import CustomRouter from '@gno/router/custom-router'; // Polyfill async.Iterator. For some reason, the Babel presets and plugins are not doing the trick. diff --git a/examples/js/expo/gnoboard/android/.gitignore b/examples/js/expo/gnoboard/android/.gitignore deleted file mode 100644 index 6f3734aa..00000000 --- a/examples/js/expo/gnoboard/android/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -# OSX -# -.DS_Store - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -*.hprof -.cxx/ - -# Bundle artifacts -*.jsbundle - -# Gomobile -libs/ diff --git a/examples/js/expo/gnoboard/android/app/build.gradle b/examples/js/expo/gnoboard/android/app/build.gradle deleted file mode 100644 index 30b4e2c4..00000000 --- a/examples/js/expo/gnoboard/android/app/build.gradle +++ /dev/null @@ -1,234 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "org.jetbrains.kotlin.android" -apply plugin: "com.facebook.react" - -def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() -def frameworkDir = "${rootDir.getAbsoluteFile().getParentFile().getParentFile().getParentFile().getParentFile().getParentFile().getAbsolutePath()}/framework" - -static def versionToNumber(major, minor, patch) { - return patch * 100 + minor * 10000 + major * 1000000 -} - -def getRNVersion() { - def version = providers.exec { - workingDir(projectDir) - commandLine("node", "-e", "console.log(require('react-native/package.json').version);") - }.standardOutput.asText.get().trim() - - def coreVersion = version.split("-")[0] - def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() } - - return versionToNumber( - major, - minor, - patch - ) -} -def rnVersion = getRNVersion() - -/** - * This is the configuration block to customize your React Native Android app. - * By default you don't need to apply any configuration, just uncomment the lines you need. - */ -react { - entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) - reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() - hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" - codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() - - // Use Expo CLI to bundle the app, this ensures the Metro config - // works correctly with Expo projects. - cliFile = new File(["node", "--print", "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })"].execute(null, rootDir).text.trim()) - bundleCommand = "export:embed" - - /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node_modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen - // codegenDir = file("../node_modules/@react-native/codegen") - - /* Variants */ - // The list of variants to that are debuggable. For those we're going to - // skip the bundling of the JS bundle and the assets. By default is just 'debug'. - // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. - // debuggableVariants = ["liteDebug", "prodDebug"] - - /* Bundling */ - // A list containing the node command and its flags. Default is just 'node'. - // nodeExecutableAndArgs = ["node"] - - // - // The path to the CLI configuration file. Default is empty. - // bundleConfig = file(../rn-cli.config.js) - // - // The name of the generated asset file containing your JS bundle - // bundleAssetName = "MyApplication.android.bundle" - // - // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' - // entryFile = file("../js/MyApplication.android.js") - // - // A list of extra flags to pass to the 'bundle' commands. - // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle - // extraPackagerArgs = [] - - /* Hermes Commands */ - // The hermes compiler command to run. By default it is 'hermesc' - // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" - // - // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" - // hermesFlags = ["-O", "-output-source-map"] - - if (rnVersion >= versionToNumber(0, 75, 0)) { - /* Autolinking */ - autolinkLibrariesWithApp() - } -} - -/** - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. - */ -def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean() - -/** - * The preferred build flavor of JavaScriptCore (JSC) - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -android { - ndkVersion rootProject.ext.ndkVersion - - buildToolsVersion rootProject.ext.buildToolsVersion - compileSdk rootProject.ext.compileSdkVersion - - namespace 'land.gno.gnoboard' - defaultConfig { - applicationId 'land.gno.gnoboard' - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0.0" - } - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. - signingConfig signingConfigs.debug - shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false) - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - crunchPngs (findProperty('android.enablePngCrunchInReleaseBuilds')?.toBoolean() ?: true) - } - } - packagingOptions { - jniLibs { - useLegacyPackaging (findProperty('expo.useLegacyPackaging')?.toBoolean() ?: false) - } - } -} - -// Apply static values from `gradle.properties` to the `android.packagingOptions` -// Accepts values in comma delimited lists, example: -// android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini -["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop -> - // Split option: 'foo,bar' -> ['foo', 'bar'] - def options = (findProperty("android.packagingOptions.$prop") ?: "").split(","); - // Trim all elements in place. - for (i in 0.. 0) { - println "android.packagingOptions.$prop += $options ($options.length)" - // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**' - options.each { - android.packagingOptions[prop] += it - } - } -} - -// Auto-build gomobile.aar by running Makefile rule -task makeDeps(description: 'Build gnocore.aar (Gno go core)') { - outputs.files fileTree(dir: "${frameworkDir}/android", include: ["*.jar", "*.aar"]) - - doLast { - if (System.properties['os.name'].toLowerCase().contains('windows')) { - logger.warn("Warning: can't run make on Windows, you must build gomobile.aar manually") - return - } - - def checkMakeInPath = exec { - standardOutput = new ByteArrayOutputStream() // equivalent to '> /dev/null' - ignoreExitValue = true - commandLine 'bash', '-l', '-c', 'command -v make' - } - - if (checkMakeInPath.getExitValue() == 0) { - exec { - def makefileDir = "${rootDir.getPath()}/../../../../.." - workingDir makefileDir - environment 'PWD', makefileDir - commandLine 'make', 'framework.android' - } - } else { - logger.warn('Warning: make command not found in PATH') - } - } -} - -dependencies { - implementation fileTree(dir: "${frameworkDir}/android", include: ["*.jar"]) - // The version of react-native is set by the React Native Gradle Plugin - implementation("com.facebook.react:react-android") - - def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; - def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; - def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; - - if (isGifEnabled) { - // For animated gif support - implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") - } - - if (isWebpEnabled) { - // For webp support - implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") - if (isWebpAnimatedEnabled) { - // Animated webp support - implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") - } - } - - if (hermesEnabled.toBoolean()) { - implementation("com.facebook.react:hermes-android") - } else { - implementation jscFlavor - } - - implementation makeDeps.outputs.files -} - -if (rnVersion < versionToNumber(0, 75, 0)) { - apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); - applyNativeModulesAppBuildGradle(project) -} diff --git a/examples/js/expo/gnoboard/android/app/debug.keystore b/examples/js/expo/gnoboard/android/app/debug.keystore deleted file mode 100644 index 364e105ed39fbfd62001429a68140672b06ec0de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2257 zcmchYXEfYt8;7T1^dLH$VOTZ%2NOdOH5j5LYLtZ0q7x-V8_6gU5)#7dkq{HTmsfNq zB3ZqcAxeY^G10@?efK?Q&)M(qInVv!xjx+IKEL}p*K@LYvIzo#AZG>st5|P)KF1_Z;y){W{<7K{nl!CPuE z_^(!C(Ol0n8 zK13*rzAtW>(wULKPRYLd7G18F8#1P`V*9`(Poj26eOXYyBVZPno~Cvvhx7vPjAuZo zF?VD!zB~QG(!zbw#qsxT8%BSpqMZ4f70ZPn-3y$L8{EVbbN9$H`B&Z1quk9tgp5FM zuxp3pJ0b8u|3+#5bkJ4SRnCF2l7#DyLYXYY8*?OuAwK4E6J{0N=O3QNVzQ$L#FKkR zi-c@&!nDvezOV$i$Lr}iF$XEcwnybQ6WZrMKuw8gCL^U#D;q3t&HpTbqyD%vG=TeDlzCT~MXUPC|Leb-Uk+ z=vnMd(|>ld?Fh>V8poP;q;;nc@en$|rnP0ytzD&fFkCeUE^kG9Kx4wUh!!rpjwKDP zyw_e|a^x_w3E zP}}@$g>*LLJ4i0`Gx)qltL}@;mDv}D*xR^oeWcWdPkW@Uu)B^X&4W1$p6}ze!zudJ zyiLg@uggoMIArBr*27EZV7djDg@W1MaL+rcZ-lrANJQ%%>u8)ZMWU@R2qtnmG(acP z0d_^!t>}5W zpT`*2NR+0+SpTHb+6Js4b;%LJB;B_-ChhnU5py}iJtku*hm5F0!iql8Hrpcy1aYbT z1*dKC5ua6pMX@@iONI?Hpr%h;&YaXp9n!ND7-=a%BD7v&g zOO41M6EbE24mJ#S$Ui0-brR5ML%@|ndz^)YLMMV1atna{Fw<;TF@>d&F|!Z>8eg>>hkFrV)W+uv=`^F9^e zzzM2*oOjT9%gLoub%(R57p-`TXFe#oh1_{&N-YN z<}artH|m=d8TQuKSWE)Z%puU|g|^^NFwC#N=@dPhasyYjoy(fdEVfKR@cXKHZV-`06HsP`|Ftx;8(YD$fFXumLWbGnu$GMqRncXYY9mwz9$ap zQtfZB^_BeNYITh^hA7+(XNFox5WMeG_LtJ%*Q}$8VKDI_p8^pqX)}NMb`0e|wgF7D zuQACY_Ua<1ri{;Jwt@_1sW9zzdgnyh_O#8y+C;LcZq6=4e^cs6KvmK@$vVpKFGbQ= z$)Eux5C|Fx;Gtmv9^#Y-g@7Rt7*eLp5n!gJmn7&B_L$G?NCN`AP>cXQEz}%F%K;vUs{+l4Q{}eWW;ATe2 zqvXzxoIDy(u;F2q1JH7Sf;{jy_j})F+cKlIOmNfjBGHoG^CN zM|Ho&&X|L-36f}Q-obEACz`sI%2f&k>z5c$2TyTSj~vmO)BW~+N^kt`Jt@R|s!){H ze1_eCrlNaPkJQhL$WG&iRvF*YG=gXd1IyYQ9ew|iYn7r~g!wOnw;@n42>enAxBv*A zEmV*N#sxdicyNM=A4|yaOC5MByts}s_Hpfj|y<6G=o=!3S@eIFKDdpR7|FY>L&Wat&oW&cm&X~ z5Bt>Fcq(fgnvlvLSYg&o6>&fY`ODg4`V^lWWD=%oJ#Kbad2u~! zLECFS*??>|vDsNR&pH=Ze0Eo`sC_G`OjoEKVHY|wmwlX&(XBE<@sx3Hd^gtd-fNwUHsylg06p`U2y_={u}Bc - - - - - diff --git a/examples/js/expo/gnoboard/android/app/src/main/AndroidManifest.xml b/examples/js/expo/gnoboard/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index ed6ed1bd..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainActivity.kt b/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainActivity.kt deleted file mode 100644 index ff8126ad..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainActivity.kt +++ /dev/null @@ -1,61 +0,0 @@ -package land.gno.gnoboard - -import android.os.Build -import android.os.Bundle - -import com.facebook.react.ReactActivity -import com.facebook.react.ReactActivityDelegate -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled -import com.facebook.react.defaults.DefaultReactActivityDelegate - -import expo.modules.ReactActivityDelegateWrapper - -class MainActivity : ReactActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - // Set the theme to AppTheme BEFORE onCreate to support - // coloring the background, status bar, and navigation bar. - // This is required for expo-splash-screen. - setTheme(R.style.AppTheme); - super.onCreate(null) - } - - /** - * Returns the name of the main component registered from JavaScript. This is used to schedule - * rendering of the component. - */ - override fun getMainComponentName(): String = "main" - - /** - * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] - * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] - */ - override fun createReactActivityDelegate(): ReactActivityDelegate { - return ReactActivityDelegateWrapper( - this, - BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, - object : DefaultReactActivityDelegate( - this, - mainComponentName, - fabricEnabled - ){}) - } - - /** - * Align the back button behavior with Android S - * where moving root activities to background instead of finishing activities. - * @see onBackPressed - */ - override fun invokeDefaultOnBackPressed() { - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { - if (!moveTaskToBack(false)) { - // For non-root activities, use the default implementation to finish them. - super.invokeDefaultOnBackPressed() - } - return - } - - // Use the default back button implementation on Android S - // because it's doing more than [Activity.moveTaskToBack] in fact. - super.invokeDefaultOnBackPressed() - } -} diff --git a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainApplication.kt b/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainApplication.kt deleted file mode 100644 index d29fd88c..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gnoboard/MainApplication.kt +++ /dev/null @@ -1,57 +0,0 @@ -package land.gno.gnoboard - -import android.app.Application -import android.content.res.Configuration -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.defaults.DefaultReactNativeHost -import com.facebook.soloader.SoLoader -import expo.modules.ApplicationLifecycleDispatcher -import expo.modules.ReactNativeHostWrapper -import land.gno.gobridge.GoBridgePackage -import land.gno.rootdir.RootDirPackage - -class MainApplication : Application(), ReactApplication { - - override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper( - this, - object : DefaultReactNativeHost(this) { - override fun getPackages(): List = - PackageList(this).packages.apply { - // Packages that cannot be autolinked yet can be added manually here, for example: - // add(MyReactNativePackage()) - add(RootDirPackage()) - add(GoBridgePackage()) - } - - override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry" - - override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG - - override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED - override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED - } - ) - - override val reactHost: ReactHost - get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost) - - override fun onCreate() { - super.onCreate() - SoLoader.init(this, false) - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - load() - } - ApplicationLifecycleDispatcher.onApplicationCreate(this) - } - - override fun onConfigurationChanged(newConfig: Configuration) { - super.onConfigurationChanged(newConfig) - ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) - } -} diff --git a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgeModule.java b/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgeModule.java deleted file mode 100644 index a4455cf9..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgeModule.java +++ /dev/null @@ -1,144 +0,0 @@ -package land.gno.gobridge; - -import android.util.Log; - -import com.facebook.react.bridge.Promise; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactContextBaseJavaModule; -import com.facebook.react.bridge.ReactMethod; - -import java.io.File; - -import gnolang.gno.gnonative.Gnonative; -import gnolang.gno.gnonative.Bridge; -import gnolang.gno.gnonative.BridgeConfig; -import gnolang.gno.gnonative.PromiseBlock; - -public class GoBridgeModule extends ReactContextBaseJavaModule { - private final static String TAG = "GoBridge"; - private final ReactApplicationContext reactContext; - private final File rootDir; - private int socketPort; - private static Bridge bridgeGnoNative = null; - - public GoBridgeModule(ReactApplicationContext reactContext) { - super(reactContext); - this.reactContext = reactContext; - - rootDir = new File(new land.gno.rootdir.RootDirModule(reactContext).getRootDir()); - } - - @Override - public String getName() { - return "GoBridge"; - } - - ////////////// - // Protocol // - ////////////// - - @ReactMethod - public void initBridge(Promise promise) { - try { - final BridgeConfig config = Gnonative.newBridgeConfig(); - if (config == null) { - throw new Exception(""); - } - - config.setRootDir(rootDir.getAbsolutePath()); - config.setUseTcpListener(true); - - bridgeGnoNative = Gnonative.newBridge(config); - socketPort = (int)bridgeGnoNative.getTcpPort(); - - promise.resolve(true); - } catch (Exception err) { - promise.reject(err); - } - } - - @ReactMethod - public void closeBridge(Promise promise) { - try { - if (bridgeGnoNative != null) { - bridgeGnoNative.close(); - bridgeGnoNative = null; - } - promise.resolve(true); - } catch (Exception err) { - promise.reject(err); - } - } - - @ReactMethod - public void getTcpPort(Promise promise) { - if (bridgeGnoNative == null) { - promise.reject(new Exception("bridge not init")); - return ; - } - promise.resolve(socketPort); - } - - @ReactMethod - public void invokeGrpcMethod(String method, String jsonMessage, Promise promise) { - try { - if (bridgeGnoNative == null) { - throw new Exception("bridge not init"); - } - - PromiseBlock promiseBlock = new JavaPromiseBlock(promise); - bridgeGnoNative.invokeGrpcMethodWithPromiseBlock(promiseBlock, method, jsonMessage); - } catch (Exception err) { - promise.reject(err); - } - } - - @ReactMethod - public void createStreamClient(String method, String jsonMessage, Promise promise) { - try { - if (bridgeGnoNative == null) { - throw new Exception("bridge not init"); - } - - PromiseBlock promiseBlock = new JavaPromiseBlock(promise); - bridgeGnoNative.createStreamClientWithPromiseBlock(promiseBlock, method, jsonMessage); - } catch (Exception err) { - promise.reject(err); - } - } - - @ReactMethod - public void streamClientReceive(String id, Promise promise) { - try { - if (bridgeGnoNative == null) { - throw new Exception("bridge not init"); - } - - PromiseBlock promiseBlock = new JavaPromiseBlock(promise); - bridgeGnoNative.streamClientReceiveWithPromiseBlock(promiseBlock, id); - } catch (Exception err) { - promise.reject(err); - } - } - - @ReactMethod - public void closeStreamClient(String id, Promise promise) { - try { - if (bridgeGnoNative == null) { - throw new Exception("bridge not init"); - } - - PromiseBlock promiseBlock = new JavaPromiseBlock(promise); - bridgeGnoNative.closeStreamClientWithPromiseBlock(promiseBlock, id); - } catch (Exception err) { - promise.reject(err); - } - } - - @Override - public void finalize() { - try { - } catch (Exception e) { - } - } -} diff --git a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgePackage.java b/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgePackage.java deleted file mode 100644 index b6c8593f..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/GoBridgePackage.java +++ /dev/null @@ -1,21 +0,0 @@ -package land.gno.gobridge; - -import java.util.Collections; -import java.util.List; - -import com.facebook.react.ReactPackage; -import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.uimanager.ViewManager; - -public class GoBridgePackage implements ReactPackage { - @Override - public List createNativeModules(ReactApplicationContext reactContext) { - return Collections.singletonList(new GoBridgeModule(reactContext)); - } - - @Override - public List createViewManagers(ReactApplicationContext reactContext) { - return Collections.emptyList(); - } -} diff --git a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/JavaPromiseBlock.java b/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/JavaPromiseBlock.java deleted file mode 100644 index 2bf36e72..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/gobridge/JavaPromiseBlock.java +++ /dev/null @@ -1,33 +0,0 @@ -package land.gno.gobridge; - -import com.facebook.react.bridge.Promise; -import gnolang.gno.gnonative.PromiseBlock; -import java.util.ArrayList; -import java.util.List; - -class JavaPromiseBlock implements PromiseBlock { - public static List promises = new ArrayList<>(); - private final Promise promise; - - public JavaPromiseBlock(Promise promise) { - this.promise = promise; - this.store(); - } - public void callResolve(String reply) { - this.promise.resolve(reply); - this.remove(); - } - - public void callReject(java.lang.Exception error) { - this.promise.reject(error); - this.remove(); - } - - private void remove() { - promises.remove(this); - } - - private void store() { - promises.add(this); - } -} diff --git a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirModule.java b/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirModule.java deleted file mode 100644 index ae8e5abf..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirModule.java +++ /dev/null @@ -1,36 +0,0 @@ -package land.gno.rootdir; - -import android.content.Context; - -import androidx.annotation.NonNull; - -import com.facebook.react.bridge.Promise; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactContextBaseJavaModule; -import com.facebook.react.bridge.ReactMethod; - -import java.io.File; - -public class RootDirModule extends ReactContextBaseJavaModule { - private final static String nameFolder = "gnonative"; - - public RootDirModule(ReactApplicationContext reactContext) { - super(reactContext); - } - - public String getRootDir() { - return getReactApplicationContext().getFilesDir().getAbsolutePath(); - } - - @NonNull - @Override - public String getName() { - return "RootDir"; - } - - @ReactMethod - public void get(Promise promise) { - promise.resolve(getRootDir()); - } -} - diff --git a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirPackage.java b/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirPackage.java deleted file mode 100644 index 8b3bd12c..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/java/land/gno/rootdir/RootDirPackage.java +++ /dev/null @@ -1,21 +0,0 @@ -package land.gno.rootdir; - -import com.facebook.react.ReactPackage; -import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.uimanager.ViewManager; - -import java.util.Collections; -import java.util.List; - -public class RootDirPackage implements ReactPackage { - @Override - public List createNativeModules(ReactApplicationContext reactContext) { - return Collections.singletonList(new RootDirModule(reactContext)); - } - - @Override - public List createViewManagers(ReactApplicationContext reactContext) { - return Collections.emptyList(); - } -} diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/drawable-hdpi/splashscreen_image.png b/examples/js/expo/gnoboard/android/app/src/main/res/drawable-hdpi/splashscreen_image.png deleted file mode 100644 index 3226ed417fbe2ee4e5e874c4b7d530e3ea73f603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20830 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{ - - - - - - - - - - diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/drawable/splashscreen.xml b/examples/js/expo/gnoboard/android/app/src/main/res/drawable/splashscreen.xml deleted file mode 100644 index c8568e16..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/drawable/splashscreen.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index 3941bea9..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index 3941bea9..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 57c9754f1775670757fdfb13a3cef1081b164dbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3610 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 diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 28d777ce0d0de36e792f8050e1edc309daecebd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5400 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 OCtzV>1(q7!jQJn_q|T}U diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 794813d1259d3628ca94f0bff0d2d0d81947ab95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6179 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 ZIqe+HCcWg%*I@aNr2^MfEQ6W6{U2)^3LXFe diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 2b74eebf374b0b7dd8710928e0e33edbba6f6230..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2742 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 diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png deleted file mode 100644 index 129400c2affd8e4de14c04a3064e4ca3a02d96f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3665 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 E4@d{nNdN!< diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 8bed7809cad6756eec5c7bad1f15b62df97db40d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3721 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 diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index 510f6d5bc8be23de3e1a1cb14fb3e11044db7410..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15889 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 diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 535535b4c7d753ffaa970d29591aa522f117099c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8758 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 H);#!s(w$Wa diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 3e5c81414b091955fe74d89c9988e320242364ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7121 zcmb7JV|N@37YrKPwr$(qurb=$HXEz4(>UqI*m&cnv2Ao?+v?lrC%hl-nKN_l*E@60 zomdTk0va+gG87aPnv$Zd78De;?0mU}($K4;tRephlB=SD2NVFMd)+S(o- z9`f_^m6erOS6A!m>Iex5@$m3$Y;2B?kB5hcZ*Fd8XJ8?d?xbPtVTIK7am9KtPa@k#T>2@95~r%F4>Y!NJYV&BMdP&d$!l!a_$!M?pa$ zA|i5kcjxNrYHV!m<>i%_m{?L$(%jrUFfcGbKfkrLb#!!ed3kw$etvLpu)e-NGc)t+ z*DnwVR8UY56BFa+=BB5oCoC+?$jGRpqm!DN%E!m&TU%QuCZ@5mF~S3)YsR0dU{Gr zOLK8?m6w;VtgOVx#}^kD2LuFs`SL|wU0p&#LPkbLQ&ZE@(sE>EWM^lmrlzL4x_V(@ zp{uKll9FyuL#6QTn5IW`4I$mX1csPN&xzWhJHw&EB%6?%{4 zJRDJxk^E2`Iu*8$bc#uS#HwGAI4$={7$vh@d++w2ya@72Ji$H^)hAm=nKfDMt4YXq ze$ZDa;`!>fvjZl`L2a4sMp$mr`zJVI`#(akf5YUXILx!~$DaNmJu=q+5&SOX+@}&c z71`n!OgVf{g!@kQhamPi@{J?Mhj1(zdyY)>!K@N)Qswtzrobqv>e-uG|kkR&z;VBvFV(qt_I7*;bXzjPxxt1 zN@`zwm+1c$aGvY7td$=SN#j+){Bzc6VCR8a{YIfqpw&8=F-R>r> z70n;+<#o)OP)|_?)ZNmes({r|8LS5+{6Sm5_b>98 z{3VlqM4{iv=2PfchUoWFBN4cF6g_PHv%K7;N+ft^1d>)xd-9<`6`C21jI8Hao<+|Y z==cpVV(T~#KrnPfv^jxg!`j!G&;(j=<~GH{{3Cg%#qHTLRS0!vAr->YP)P0@W9^bE zvRqV!Bc^m1&v$QOC<+{{<5ze3-8-fo`UW0$%aZ3TP8ew%2wJ37M*<3_v;0%tbFWop z;>F7?IC|8jo;ei)3oYiy_r-r|zPqzcf_r`z{sp@nfdsJmlCG@`h6oI8oSzEKI>kk_ zD2+-pk~i*Y0?&(M(x>F{mk}LB-q~-R*`JJ$^?Z6~DmqLK^@ueAGC2q34O63L73)0? zZT-VTMHt4nUhKt?yNSbuln)B)|VP`W3zMnFYE<|h7+e;7c6QFXuxLG0x zJ|g(n1ybQGPvx0{0Wzyj)J*M-h?jK8X6Xwf6t_M7NESq_nu)Bx<2m{39SczhUAmXb zMPpa_q9vi{wt^kC*%A-kI;>yS789O7a1B||TA6^ps@lw}qEvime|-6$GuKU?5b8mE zI9J~5zCQ!H7N-)|tW^kr?P>J_ILMEefr5wQql+c_Q4=hqJ%2yH)@T)4^v{HTSo+Sn zkJVeHZtBdj%%wRftTmzwVUH2p%#Yd;?3SHczGH85vl7|K3ME+nRjX{&!BZM7);kQK z`yjR|yk2fo^nxQw>DdxJ4^ddOl-*Oz_<7Czj<#OJ=acrPn9R`oTn&5Ya`t#lAZq{! zCG=3KVih}H%HcA>Gl&Kcg{YlV3@i0$229Mrko+R9Y!ofY6no2v^&LQ}_YUZ?aka`~ zx8R@dY4A1P!4&Q9qe*AlMy#yL-tl1Mq2r-#20jEeUvQp>YrB>Khg^U@90N4M@>?sn zmfYNXItg^GN~E!O5e$L0s#0iWceve*>%Bi^r{2)HF+BF`o_cir-_!{C1W7);&yfQ2 z%p}#?rwL8Qmx%=nO2-?{J`oArBPa%49p`#k7&6@x}Af3UDxi>6~wz{~VqaG+?vytY-g7Qu+ ztoVBgUIWC9gGiAJ0rY1Zr65V@K2W?VRtTke;@cce|7$f~Igf4l;knz^>LY?>zXC5F z1E-GGqS@52uc*%>zd@8_WjGYYWCDT*Z&e zg$AAWrJ2=bNRt{Od<+^SP?0;NoF)hw^zFhLsa_(;aoUpyOGbi!>0}?WwH5EsM^wd) z4vjS$a%Ph~0Rf}VK#Dk~wgR}4AJm2h2Y5v(1FajS-#)PLJd5qVsiaSfO-d?qsm1ur zDE^WzlNC!Mq#%)`UAG0J;T4GRPI`*2fy=jchWB}1GPzJFveb?4o@y;b<)WT#hb?~$ zAqbqBs5j;&Tb9L0fYRgizb7&$ zNfpf#78;8T$TEl*iME*ZM+@>`D}Z+N8bS-WQWS@Anvg zQfJcq4HD}eb9(TiHxMHVvuBI-M-|;`%2bF2>K!{$TD9YP=}$W3-=ewSJ<+rf;6KBl zitM3Bf)Rh_^~EdTme{>5F@n{KP#|x!zi2!D_I&!_ouf+o!SDcVJ}7nlG>nY-ki(S# z7B9HOpd(H2F;pH+dCpcDyP_}Y_JdlAU>eHCTMQX^q>xblZct*N0I&^ums_-K=%Z#3XCk;|;YCsV)DV`D<91I~q1I zs?ojY?Lk#Iw9riK?w-^fqosZhZ2uM)wX>8wrzH^r;cL9r+>}w&di#Z-$&96uaANbR5f8&xO=36 zc#V6u&j)kl66duvh>v_&{-W(1khc@uFvr6p2cQQ}fYp+v$k*7T3U8yZgw41$LsHf4 z5S+F?p}rZDsHeW@B0B1o3kw-yrBjC6}`uTE!B^(wl+rFrq)$KDwg!YG>2e zgG~^L+^@XlPn3N|giX|R36Q2(59c-?t-gIe(7CqJqjj+Y@_N2RB!BfJyYr?19f%(#EJ_0Jzh2+09fIyfydO`q2QG2D==Z57|Qu zrVfAU+32j%O|2(EJ9tjAH~IPn>fC2qckAcx@CVE9gJzH;Kl|KTz&Eh`NOHK(xdId! zvh!PAru5ff{r%w?{G$Z)*j`7Ul(U>Gckp@{=GUhBzhRj9%@_!ow@9pyZI}omFtY`A z_uHx62}=6%$XqD?Z;^>?jA|8{J0x_M%3HEP2GdFmsC@9wigy z7n3eT=~?uKVv-pz$nlOjjZ5utkCxsOM`m9;FBA}UuPPv86&T#&AFm0#AV+qe+Z&8+ zhDaJuGlPR^^2D+ZCXUeMVy-MqV{%;rCotD;sQi#`gfUll9r@r*Ftab~Wa2Qtwk*q( zgjP$DW_i$dSwci59ZJynW;wT&sNygo{*Ne#*PyA4a2w-?ZoqYap-=7Yn`z?Sbl^uW zqqEK*GW@O23H%-nmQwISjTp)a(AV8lbQ)IK&%ANCGzRV4#Awo2O^(x=sqri!QPKE%D%<57fq>uly_;iEnvhvM0ic_K{6=WI(jXv)0 z9}Fys9-BNYX)9=^4t-Q``r|tw?@Y0So3Fvgd>F1chUj|3pcb~dr~irAlyI^5ya7TvD>0$U#E%x2*b}zlm*>o zJsPmBAzXqy{yBx9)Ncf$8bMGF_vMdY#arjekX0YfW5CRxH{sN7`F%ewQuooFuu~HW z&MVRKr>33unq~<{s!z5(!4L2Yl&jhW1iOBch*)Bd(B5128Qup75pI5|$ivj(eLp~3 z-|!SKJlA^{Q+VBXpDmt*1mn)Mj-HA&f{gGp$de0o78G{{js;-lUD>14U`fC>Y@a_K z;{%|P4_9FR@LK2Sp=oI*>`kTXO{HAamO!qX30!fxm15mR0LjH&-B5XIeLY0N#)2?n zTbzoM3JC|uRI&r`)JJkYF=+?1vSGYZF1tQS1?cttp=WSCk~jR*>AD3nN>n|F5+Niy z5ekjHdWKC#4MDeFv@Rm5$9kaTcGJ-6sL5sN&|lY7U_8lYiFA;Hx)na> z7FHg*$Su*R$@e)n&n}6j-l`7fR37!*VjZr_N)qn@~bO&oq*!xYTKa+Utg#zc%}hk1ft@V=~zlPV|LA&*BeaKg?fN* z^%)NOD~4&?)yX80e+g4 zTu-{*OUr96DKixK)pKFDw6G+?1diG9LUkW{@52dEjW@f=@n<~GwIzQuK4dFqKy_)N z4Eq!aA;%lIf~cJz01kpn2TE5^>JXH;QwtbbT zREV^Gvc~R@dOkFMh3O9r7Uy3Qv-yaNp@_lji{5w+`|70CR_MKisO@;s0ra$ZA`gw1 z{@cKN_Hon2s#e*Ija8<%kQo(6(NXRzy~J;8jSRo4)|T>RU7Izdm+$ACy)pH`yfl$@ zq{Z*|VCUu5f*^Wd5hwqssHCATVfo7C%r@r2d1w6{`=sANnpbeFsqbN#A2XUv`q%tL$!O-$Y+(F+WnF^~G2QIm|_^=G4ToPx5cs z((g&T>DZhHt}hREHm&EF*|=G;`SrmP*B&mty9P6^q?H+~@|_(?3@_GBu*U)XcJ1&) zQ4-kb3nD&$mgScIusrhsJ)aZ~)umO%LDisW0$0>TYzZE;%gc8?D;4LXTNxPi87jomw22?WSE*+A9QmQT9dX zfdt108exVLWt&SE?S{*cDY8`=SE1yHjfuCn>TBYKdlt>h{n?h0H;h^?sZ)za5PoAEk1-JgoAE$+*0!R z_>TX2G+Vlod;G%%SL4#|O3OdF3f{?w#yVl{T}j+hhF z{dt}H9$5lI>GiF*J|>0lDX}1W&E~^QfNlMT&MNz{=kGEeCOPDW(4Gf2pLU!N z615Rz}Lug6m{zu@Z8BfVW&E z^>R21*P;lru^%ouO_{sjeD|4b&AULc%1uW-HkBhK*k!tLt?F3mR^G^*eS>h)*=6@N|+%J9Sf#k@=%mTy@PH5UAW! zl-P62)~Pd8Y<$SS5IR{_k1#ARYKU~vBzwUAIQttOU>4(o6$QF7gm=A zcsZuh{xIh3Dndh}<81Y9FDrk14Uq|pgOv+lKNnWRvbsCw=rwrtawown`eEri{GR;K z+3bjg!EE-lzx|b?mGf*n+Tk*f#gXOK&TcExa>cPnWs_A(!PYT|gL(!GVoV;7>#eoX zwL@?9V-?ENRy!73LH2cYHJ(>JHJUzKh=0gYDqY{fZTEVTNrpUZee7}{8ROxzpbftd zTg@opi5e{AUZ!fCUcuJ$9~EyEvX|1hw3^i{O^eYmGDf&e)H~l&WKazP8WzhYUAF)F zkhin3<%3kCh$~!Q6&lT4UJaRHL0}h;cvF%iM}3kuhCCp3>%x5hbyp_SgA=_BTYFGz z9dFC2{Vh&l>aM$v8RWO?d^PN_67dw*-gVkMxP&bm2%k#ytU|y;WKUDO^pSo3$(Dw7 zmQQ%buR%C5T&ek#l@Qr=V96WZlbm(>t%B{pSN*>hiuxl{P4&jK6{jd8?)M#!7V7hW zvCD7W%v#yOXh#M~mR2>V^BEba1}-$#|FawTS0+F|N#I+2P*JEir2nhspp@hQvUSp5 G!u|(A>+-?? diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 39eba550c759c34f487a7d625d5485de7e70bc1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13200 zcmeIZS5%W*)HaIlC?G{p5TppwtCT23nrLXD2LuUC1wskEh@mPd1Qn1@q-~IZYzRmR zMVf$ufe0cHI;eDz8hSm8Z;W$s#yEHX&42M-IDCg$?|SE&YnEp|a~fk}q{DQ9>jDi8 z4U?WO3_(M426p;~?mYMx`$e60@YfkXgw9=>(r%sw8XA5YJ(#BXQ@iCX`eb3Pl%1*B zVA~Ydz5nL5u9(6&wQ|QbSu|nhpFK>@BYD05;o&&svALt=tbNs+mzQJA^vhLRcIV`E z2UDGvb1dpnhNDb)?stz?3qCD6eJL*OZ1D5Ml{F83wU#fQNR*k>=>F~fYy3^^dj0T8 zHyK--#>PeWjE3&n=d)+d(z4K;VWD}harqhlAEWH42*r=L0#a_@^8 z%~^h$v%69M@2*U&JEu$N^7)@>rLetyc=jy6EEj|y`<~UAdFIOueXIOMKX(H0kUNQi3Ye&*Rd~W`E zV-<0_H;tyj8F~@$;rC#L5|>ZAlqL-X!Sam1;2GpHP)9FV!4s?GkP4QF13j4CiJ%Ai zaseyiv@_-O!4ftglsJD21ajx$O|U{ousdCt?%ACSK&bx}`+v3lf0L0!C(}UVd&p#S z5m8aaiwkT~ogQ?5OkOf{$6b24iAm+0~ZOb8Y^Fc@D>R+gIQ*5ZJ*nJwgfDR7M^=LBz`dAU+!2RSF)BSGH^}7-0zWN+`!HZI|=Nh|qj>5ZNItc!SKzv?A#ur_TqJfqH z;YO(qP{*lT&>Xin$~o9s+9_6T!fE`on-@QW+HRAzvAU5aNu^RX*|er4ElR{#6Hq8c zMMaL3u9-SS(ap;p<$cIWW7ufWVn2<_#kRHI@S=;CdyA718*{5>$fdp*7td#&kLLd; zkhWIP%T|u*2;gVT4ei8%dkA!A7>7dB+=wIBeR%lvU=;~Z zy-*YS;!Z)bKE=r+Fc>#(uRtlTj4t9A2aIj|VM%Eqi9Dhl7>8J73Q#A9l*`RJ3bbCG zDZOkT6wUGlU&&o0sYO#fu=vim?hu9wdyZI)g%>?EVM)hGvf5tK>P^$f|IB$KmvMeZ zzt{(-OxLz%(nFoz%{p`{|M5rZ7{dbTxt=HHr5^uDgXN29^FIjkBr^CTVsRW^^iK-n zVv^+)TiR9^?216aG^v-`P+3LMSRMSl-0suOd#z)=5IesPFDgGjI*Qx-#ZR}=9htNC zNarjIY>d^A-hKR2z}D{WF1-&=^Ih>R@}rh7WW`Ip=U|&T$R(zu&EU2ursLB3mHoS@ zFhN$eX3|g~P+B4!@2jtI)cRoI)buJP8t@^z;lG~KN@%h)=!tIy!izd(jo)F_R}YR4 zfPkBBa#6S$*E&S;K%6sbSZ8Pv+B!~d(8y+_hU#dtPFIHeKY3Gy5ofe-?5nSY`PnDYnnd%&a~(HkKfs0>2oa zH~&!JHe5X54wnVYJa%gL3qRcrBZrF_Etj70GpC;1(W#-R-_6d(x)2bZ+#jGv+?gqe z3i=?0J?G2NNp0AUP%tlt>h-+Pbc`3i-%TJzhvEu)1;U(wV+`*`F=)mlOsqSfM%WkQS@D?MvNiz$tuQ zc)pTlG&Y5YzQ9`S_>Pbdt?|kE<)858664pjdS`v>c-np3amufzp8g)Y!HUVAi)HP- zAh7XXEYa*nyyL7WCOgoZr^ELwYS3vVaR+=j{hpRPK28b|VI+F~f1*-ZQ)uSwo`O5>A zC~EEP?Z>9#TR%0g@w#im6(aSelUq?sB>!l}TsepjU1Ta{28YAh!tp<6;6;T6jRlce zX7JExT(iTQx{$ZwYi+V)Sf@+a)#_q4um=y;qZxlA2dqwei$1dxv3C9G%Nb>k=yAk%JGGRDj+nzChGhO}s9 z8Tt8l?RahqS_fwOAx3xo@%_i+^Og7cU{w>;hP3$j__Ea*rTO}B5bKW|#;FO3UQvqT zcp<|hgf$O{0+K16qp2gBl}pp~H}r62r41YK+lOmyOQ@~OJR4psvoXwbW0O!S4qjwe z0-wCvvEC<{@+#9?Q<4r~Ld~*mALWx;M$lJKI;It7tfv2?zN>bV(ua#7!xzfKqS)YEh2 z8BkCU9M?0mIq*~(dLka@Abxc}!*eSpY~vJM#w$s6F_6fAGm~O}=#L`>^(o=rBV&`J0bu0eSD{KB%80QfegY9L{C(^>q7Y5cxCcvI<2PeyTl<=*V(Rvv zuE2|H(x`8ywO26_!g+o~%H+4{{D#-i)#=P6_Klg$kn$Pdy|?U=7Gq=IEe}fko`S|Re8d@5wynB)h-cJ>^^rqf$<5|T4XVsdt5!`LhKREUj7;rnz>8EsVyhBe zsCJ(^*24V*ExRr-d_!w`P(BVw3tqqWN*W_82)r!kihBoyUZy4gv4K0f)EZG=U$M*2zE0mukxm?%Ad#K99hxXB z#BdY}ba>QaAxuN#oATqgGB#&A}vA6GhY|zn?!TI8m*tyK<09&KNo1TRU(kf}e*@62* zLqlHg=tBt>!R|aAIEzx;-giwF-K(Zmtf#d}E5CjL8sEQKapgJiqUicG72;T*<`laKEt#yx96v2|-{Fn*ahXjieYAN*Q_L$)%LQ(28JqU^>t z8ikr2#v}AD+2#X}$iXb&)582g+WnA|`D$p5TazVPDyjnMMo38#(-&t7Dv_J5&nn3L z>#C|Eu3fgYT_N@dGf@XFXzYHmg<-&A;b3#u6G8NHF;>@2Tc(tjS_kst?BYPNlh@Q; zhBgz6HZx(5l0=)Ef{)12AK)9#~=zrQGpmSIJu z@i91nwmG@p$RFqG58{XNM>wd*+P^f5UE|OpA z*6WKOrB6#imajf;Zf*lZL+K3?&dB>Bd0ios8U=m0X(2r2VmhYzd`rr?q@5R!o*s9r ztd98z2bw71>KqA2+yeWswhOg9v<;@{qq}osuB1JbxaE)1P)|3v#m(`+NnY26^X%j^ zaSWO~{D)Hay5MDgD}p4x#s0KT6l!uOr`NStkhLxR(X1fX?PfFafGD}y*8YE(hrEM= z_J8=+NpaV3@5p;1;H1F8YU2TNh#d<=f4orX7tUeV^At=+KIYrk?WFmZnqZWXS`(ba z!-0Abw4TVB%OVg+?lKv#$aqhZcvY#N;5VvVDvyrqL&3z z5GMk}2ME~%9FHcMD*Bww@0lJ4h#B=X<%70DqwdpNxAg13bN0!#L=Y{S>TVV6e-eF_ zH^)@TNx3dZE$yzez8&J%Xn_ueAWod?h_BEwTNx)G z=8AB9OZv@FnSUI<)D* zJ9>U2g(k8(59Ps@w8O{)UVOj3lQ%UD)Gj@v9yR0n&qDer)9i<{Zp5JZ8})w?-(`(f z3>7^_@&`+-sC`;7ekZ!H9#CIoJDnYH+tSOP(?jL%@3{`gZI(-gepWaE$x}Jblrt*v zCDJWFe*!BVbFqrDF<#SSdLk~|wTwb6)maqVc96H4 zVbe9~SiAScR4wtU2w=~%N^e1S(5$#w7?6OScuzd`mJCKOUxSMeM^(s|i`&f9E|oQh zeGNNU-U-k54sByq*F#9gNKdCI`X!~z_|}E^CFR%FxDxoHAuPCr+3mA*kB#mLI{Rh$ z1v+7DK^F5_mKd-?JNf)hA|=nz>ll?Esut48*9(ujmk=wo^b*bb;}=Madw#KU&F%xa zAC0ni7llm&WdpiFQfj9B4MK%ku|N`|7zs3|DrU+fT2v2Lsre4hf6BZe*RF~m?}G!a z{|F%1bdYN}9hkXb>TP!X9C9TCZmW-H!(ATie$Y1EOpJ+%sa9sm^0Uv#$6}z}l#oQjYk~T!L3cU424+5aeV8i`&6! zmR(t2Tn4QQ#&9BVGSprNR^j3Dh&>(0X9CY+gS707?#*Yayu>w=$udk4zy6@AyX)-b zshZOJ3DT%lNcgI#YQID1S$V&cEzfCsyFi1{1ovLo z6!XaUVnH)szI>_K=%zmo5CJD5e^|YuCvQe_@2mZ9xcj1VfRApm06<ymPsp^r9rc-T19@7cugVvzJw39&K<$x_{qehia(rtrpU1dLKO&ql{=s;776; zn&If9zZQqlTpL*Bi<;y|pYe=^#O-SWBjT~a6wGt;r|8)v1bT(T@B?-PstuW8k|8h%q&Mde^u>{XccY8SOZaj!`RuN7SZoThK9kjrS~gQMwGhCc4C z-^zXR;nqG8xs;V}gLbe-WW2+@%$;;&L^Y|>MQ})crL{@oI|Zm;9@mRfkfc7*Lio=r zbgW#Dixc>y!O)4tNfs{fV#KeNo4j)*k-do>W_)skhzwm)!*Pet;Xb$^BV#Y=!oKiUeW|iPLf(r5)ZZr7*>yKfQ6zS%XJd>6^oRZ`C{bK zOZI^V#bG2A7(S4$fot-XIEnG+p98pFd5 zYvr^zAhVx@GfI0NB!AG1y9$?1>hV8-Vf|KMs8Z2^EK@kaHWQ{mYLdqJjoiw7K-$V0 z7*?ix?5rJ1)J<%)%R-sxiG3y`gv(sriiOadhUA8~zfqia3rNRL*}{48`%Nduc5I0? zluonpm-N&{;4GId2}ogfxcV)m#huqbp_sW^%3irE4b20IZ&05?6A4sRzg?`wV`mYsX0{AD67tIrDn^oN7^%E z(v@&gNC49b-+o31bBF5NDY0gA?G9Spx&xA==@7LyTf)a!;?pNRV?5DdO1*vy^yNCWg!G}kq+G^V!Ee$ERS8RXQ{+yqgE~NMonmD2kewseG z&#h?h`o=XV&hksUvgp+Zak|GJ!)53q(q^1GzsuW->UlbynJEdwKH8WTeJqwI=AlnS zj#pa6F0w_`YN8u8Sk=-w+SdfR!SNOB)M`+(Sy_HNcwVu%DJUr7lSkdRU+8u#lcuGH zk<;|+pZMvJ_*P>T$HBkvoIV+4GippoSZNKO_nQBPl)Pn`opo3?`bN&MN6H#~l7m=$ zrl5W}p&a<@-7WMJUFKefoL*D!j;aD-eQk$SQ(}srG%niC%RUR*(_()r{MS!ua&Hbu^x@=967U?rtWTe zWOIIif-?ZitpNmSm_X2jch6(yJAl6-#lIstqeNMIEf z_I{uJl^J{mS~JcEhjF+OGALf%zdg>Uy*tH%Yt=*59;2E7cN)e|-SVq38!3`yl;O{_ z>>}!s5JiFwbvb5UsS80rh`CAA90IwcXJoY@9%{;u6f~@$p*>J1NpOE}+ zOLdhDjNN!=0|GB3c??%LiB9g!+^Q9*hWQszJ}o5G5iQiAnLjjH>>H9l-N-upvU&va z#b3UqenDY+W(t(5E-vGCz?In#Nhnb)P7=+%cwTdDA~{rMxJ0X9$%BOUHNJGq(T9Qz zjzTO7ZlTlnp7GPY=wp@^X9&Kc8Iy&Nrk zVvpQO-;)_-cPX+RAy~S3i zNekxP{ZD~ zH0E$SFr%HDT^!bLaVxkhH4Ktjoz1tsd&NNvU}IqkXNS4Ls_bA8`Ik zk3!zc-coQ4{~;Cw#wF;8Y|U5fp|@^rRh5^^>9y9I%-eNVxe@FK{@%*Q{exaU@yABe z9kU{r3iK2{{f6$(Uj!Bvt|a4n3f=C)M4f7Dm(4l>%M=D^lBSm_cw^KtvEP5C-Lw*f z2)w5+n^s}Kdvllb=RFK@7_#zCTU2G2pAXNfeUW+Cz+XTg_~GizS|{qnUR@hrq_4DY zdY>}^T29#elW%EgE~}r;0&HimC+g@P%XaeF$vBBBUUfj0zUW*k@mq0#i;M5tdD&tH z(5VZzU*)CA6k|`6C?(w|j5y=JW6I2+ga>~uM-92>y zsSpl;S^)rR1+Ju@o1+XFvW$Ug8;s-zub(FXVjW%vW|mQ4J=%bw=2MVi=$cPbwrZ6b zIoE>Z0ylA>NhQZy_}uE{Be8?YE1lQ^*9xx1gX791rXfQapYFzZT#uXBDkhe)ulyR# z8pu@!u8IrFm)615Ng3&pz%SDKDl1!U1bSpM2kO4*CC6bYXhP1981^te=F^PZK~fIn zgccq@Fosow%IUU(f{1adVTRNY=u521QyDJ(Lozw4X<7|emyQEbwitBDEQ`!5O5zH6 zeXX8QMgrjCr2Wc|t0v+BZTS}gLFG+(V?f5n%?0=lU@t=wo-|d=J^--Rt0EOYU_$9 zag<@WXwvRT9SW@kVvd{J8zkmm0%YCPK~qSM2T07BW~}D>Z{+OJL5o? z5*2wNE?L}Adm%l)i~$4I3`d8(jz3DCHZkFJPxdCbw0d7lroaoOm0jr}TG@}&_hcQ&0m}tADgHxmQw0vakhLj9(Pr`99%irmX%(BdB|IguNs5(s zyzJ&Y!huYN%Kq)g*K|8=hUGQ5#1;4*;;d=UBENCs2C-H{y-2j$&JtnQ8 zlT^(r5M-vER`wIw{0y5<6Wld>+GBALcWZttP;&2p58v<8p5CwLt`aarm^=mNpq;wI z)qGU~@98jmFOt8ueq4!yw31$Vdd;ed*NqUrlG-ybssRqN7o(+PjB<9)Vbeu{ zA0<02n6Jgo3~-i|p#|)(RkfaA)B1gB{WbJ(8VH7e|6sEFof72fM>(?dr2rPXFS?$M z!wuKj+~~TJpDL`qWYlSq8OyEM)HG@pk;-(2*Z(ExUQ2Qw48{;G+@$mgGhvDt`B1%V z`MX{tReEJMbsN7BMM4MX@DdZ-?c_;ld*+b1kCt!p`lO?$__GNDaiX%XI-l+6vrr*W zjxv*hWKFAV$fr4sMp~apsQ(e5k-sHziikHfC94kK5OUK+8j5dSBW$Hj_Zz8blkCXU zbmjZn*N2-qA(~T7-_@gN?rnj=pmM(CdZj2oBMY3<`*j#cy~p4H5s4lSX}}v#5qY%b zeXP+=a#H~?pdlPY9c|8NpgH4FAGIgh?$)nKke1xSpO8Tl;^p(w(J#N z?|-=7p&xZkuSGb9bJ010I~tq57un9a7dNz>9BY$YGL)kQbJdUPY$YGJb6VNzNXniv z+~*Y;+pM`RXm7clulVL2QeX8@&tf%c+U6s|%~+X~mz*dy*=z7=eLqU>RhYXcijv7c4*(8?l2M>so!}nte1tSn-(*(mVJX9DBh zUFF(@tv%O{XXDvJbuYM&)iO>u&~e)jAXQ7bt}9B$0{mp z!e=sXLAx&0JAP==(BEpB*3JIQ8xn%l$P?SYgGVF`u9b$K)m2gWdmgaJN}MZQTtv%= zZ)E$M?F|_5Ve3{|)jJgdl6WE9a-WLRD?R#OH}nviFpaF7oRhDB=ptHu)pPss0BsDo zMh8~~+rgv9vt{mMwd>!9ywc?n=j0-Rr2N7B*os&C7zc9Ec=I^-|pD^5;t=7FrbZvV+zvR*YIL#ClKlD)a4Ek-U5nN)L|pxyF%_ zDZjR@ettbU$x{}%J-l{#?j(sUX?))4L}|Fa+abR(raPjMEw6jE=_gR5MACU3CDZD!*q` zlssZ5z~6;M$PZ8(Y7UxCwn`WjtlFP1d!JGsI+@kMxc)209`}4clt8`7hn-+VqB|&8 zDhdRtk`2|>1ej1!b#{WgL$98FM*5y2Al0?Ai$S&3-<7+WuVnx(ih+nmi99LAbn35bl#%eZ?c$xfL~7!BF?)xjHR64;=Tlv86yspB{#cK zVjOi!*TXgy1QPolDiVTn-`vR%xqrBl{7w?)@4%)t_$D@X+;_Ec=lD^)+O~JrM=#J} z3n(&AG#oh)3Mkq!gOj2>#2MagrR-jBW9@C0r3QQRl$i->F9p*5dHXdObSKiqUL8Bo z=kb62*N8ddmqw)l;M$K~mQds?^LdvnqIiex#fm#Odj24a>Y0_Ei zL`CDg=mRCv9S?}%b?iMhe{slHGB>m~1hgV`cALV{QRr)rB?{Fu{Z`H4B)wF%)U{7d znZMKg3FbU+rXEy_Hp;|1A<}M&+w}W^?3yjOGC@NbX}%8+m3N9C{OS{80Q}fD&(;-4 zj26O0A{Ha95{3Mo))=#7so%+m-Jq-T-LroA3aXZ^KoC%eNxoGdl>f^Yb>kNl?iu*-^2o<45xEMY4kOCIGs z&s`u0JKd=z``tU_DO@URT8_)t%X`7M-z1ZfqT=bX(BAJ9=}$ze0hC9Q3}}3NR8jLa zf6Z`1pj!f8n#3j1o{mP?{BxPbMgM<9!Vh2|debR2-9 z|DP!(^<-@JyT81D&pWZ+5x*H8i)}(I?)drnEs2VVRR41Q$o;f8`qc1SLisU=nSM23 zh~lM1Wi?p0aBwU>uEhS+PzZ#DgH$-a@M-qWwAiccJ21%<#PduI5dpp5_GRg!qB_-j zjV@L!rf@6N=|J2G3WeEfzHNN}Vk^H;!vhLyu zKmQSkxTv~zr_NjggGadLmXfBYg}jC=LQ4!yu+`Mv_N`-^&t>Dh`y5 zy8$xoupEBb&QpvK+vFbhr2D8qZoMe~r$h>z7O>uu-7a9T*Y>n&A^*cOVD7Yk*Ib|5 zT&&s?919ZCB879F77X@+8MH4v6Re5s8Cb{bU$MdD!$^L*xbECyZ+gfDEkI0Hdf%SA z_LXcYYE|^LK71T-8rGJjHhT}dZCf}~ZvI~;;VH@v4{*#+!P%6xLPt%gp3NqiU(3kGIw)DM<{N27$Fk!*( zHJ9iYal!N1ot{$;D@q}>1H{O95L}%T-6L`K+>jRGg|evAIpi9!pkB-O>d^yq_GP-7&c7z_&Kc!p z4iDvjl}7|aMi&`>uro59<$ne#kF2LnWE>K8AsF-LEwo@F62O*=U@~0kSujZC>R`Yx z5KWi_AeHvl*(flE?Q$2ek#nPu!QcdkK#(&F#F^EU*wf~q1jeWpz#WA)s3~|&s9uFU zcP!pB<%|AmayoVmI0~}}WT{m}-r-}1H`9u+f6lOcyAJB|oQPI37`C)dN)ij@Vs8U8 z-;UP-DR7se8oc%rT&k4+Q#oa@w-ngh%BAHBaW~xNaq21yaMh}s_G%bS$-22@OU?xBk5EQaH8~= zSKPtDFBsB9JeXg5>OI9|C-1Du_OKpKa>931IGM;YXbZi8yY<=BUtI(hY|k|acd$S diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 0bbfc7a90aee241b013d8ae01b777de4283d2323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13808 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 diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 085370a1cd48b757feec9c22b3bd627e6f6c9c1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34465 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%0A$O97mq^g8c?w;nh#wSAJC|6^RIHV| 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 IC!f&&1G3n=;{X5v diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/examples/js/expo/gnoboard/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index fa2f4e06427cc6a8e8f8481d4894fe1d42a9dca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19157 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 diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/values-night/colors.xml b/examples/js/expo/gnoboard/android/app/src/main/res/values-night/colors.xml deleted file mode 100644 index 3c05de5b..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/values-night/colors.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/values/colors.xml b/examples/js/expo/gnoboard/android/app/src/main/res/values/colors.xml deleted file mode 100644 index b1d5fa57..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,6 +0,0 @@ - - #121212 - #121212 - #023c69 - #121212 - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/values/strings.xml b/examples/js/expo/gnoboard/android/app/src/main/res/values/strings.xml deleted file mode 100644 index cf43740a..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - Gnoboard - contain - false - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/values/styles.xml b/examples/js/expo/gnoboard/android/app/src/main/res/values/styles.xml deleted file mode 100644 index f03e23f8..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/app/src/main/res/xml/network_security_config.xml b/examples/js/expo/gnoboard/android/app/src/main/res/xml/network_security_config.xml deleted file mode 100644 index d289fa76..00000000 --- a/examples/js/expo/gnoboard/android/app/src/main/res/xml/network_security_config.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - 127.0.0.1 - 10.0.0.1 - 10.0.1.1 - 10.0.2.2 - localhost - - diff --git a/examples/js/expo/gnoboard/android/app/src/release/java/land/gno/gnoboard/ReactNativeFlipper.java b/examples/js/expo/gnoboard/android/app/src/release/java/land/gno/gnoboard/ReactNativeFlipper.java deleted file mode 100644 index 92bb7e72..00000000 --- a/examples/js/expo/gnoboard/android/app/src/release/java/land/gno/gnoboard/ReactNativeFlipper.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package land.gno.gnoboard; - -import android.content.Context; -import com.facebook.react.ReactInstanceManager; - -/** - * Class responsible of loading Flipper inside your React Native application. This is the release - * flavor of it so it's empty as we don't want to load Flipper. - */ -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - // Do nothing as we don't want to initialize Flipper on Release. - } -} diff --git a/examples/js/expo/gnoboard/android/build.gradle b/examples/js/expo/gnoboard/android/build.gradle deleted file mode 100644 index 932bf7b3..00000000 --- a/examples/js/expo/gnoboard/android/build.gradle +++ /dev/null @@ -1,41 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext { - buildToolsVersion = findProperty('android.buildToolsVersion') ?: '34.0.0' - minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '23') - compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') - targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') - kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.23' - - ndkVersion = "26.1.10909125" - } - repositories { - google() - mavenCentral() - } - dependencies { - classpath('com.android.tools.build:gradle') - classpath('com.facebook.react:react-native-gradle-plugin') - classpath('org.jetbrains.kotlin:kotlin-gradle-plugin') - } -} - -apply plugin: "com.facebook.react.rootproject" - -allprojects { - repositories { - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android')) - } - maven { - // Android JSC is installed from npm - url(new File(['node', '--print', "require.resolve('jsc-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), '../dist')) - } - - google() - mavenCentral() - maven { url 'https://www.jitpack.io' } - } -} diff --git a/examples/js/expo/gnoboard/android/gradle.properties b/examples/js/expo/gnoboard/android/gradle.properties deleted file mode 100644 index 40220def..00000000 --- a/examples/js/expo/gnoboard/android/gradle.properties +++ /dev/null @@ -1,59 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true - -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Enable AAPT2 PNG crunching -android.enablePngCrunchInReleaseBuilds=true - -# Use this property to specify which architecture you want to build. -# You can also override it from the CLI using -# ./gradlew -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 - -# Use this property to enable support to the new architecture. -# This will allow you to use TurboModules and the Fabric render in -# your application. You should enable this flag either if you want -# to write custom TurboModules/Fabric components OR use libraries that -# are providing them. -newArchEnabled=false - -# Use this property to enable or disable the Hermes JS engine. -# If set to false, you will be using JSC instead. -hermesEnabled=true - -# Enable GIF support in React Native images (~200 B increase) -expo.gif.enabled=true -# Enable webp support in React Native images (~85 KB increase) -expo.webp.enabled=true -# Enable animated webp support (~3.4 MB increase) -# Disabled by default because iOS doesn't support animated webp -expo.webp.animated=false - -# Enable network inspector -EX_DEV_CLIENT_NETWORK_INSPECTOR=true - -# Use legacy packaging to compress native libraries in the resulting APK. -expo.useLegacyPackaging=false diff --git a/examples/js/expo/gnoboard/android/gradle/wrapper/gradle-wrapper.jar b/examples/js/expo/gnoboard/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e5832f090a2944b7473328c07c9755baa3196..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60756 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 '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} - -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -# DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line.' - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/examples/js/expo/gnoboard/android/gradlew.bat b/examples/js/expo/gnoboard/android/gradlew.bat deleted file mode 100644 index 7101f8e4..00000000 --- a/examples/js/expo/gnoboard/android/gradlew.bat +++ /dev/null @@ -1,92 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/js/expo/gnoboard/android/react-settings-plugin/build.gradle.kts b/examples/js/expo/gnoboard/android/react-settings-plugin/build.gradle.kts deleted file mode 100644 index af297e4c..00000000 --- a/examples/js/expo/gnoboard/android/react-settings-plugin/build.gradle.kts +++ /dev/null @@ -1,19 +0,0 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -plugins { - kotlin("jvm") version "1.9.24" - id("java-gradle-plugin") -} - -repositories { - mavenCentral() -} - -gradlePlugin { - plugins { - create("reactSettingsPlugin") { - id = "com.facebook.react.settings" - implementationClass = "expo.plugins.ReactSettingsPlugin" - } - } -} \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt b/examples/js/expo/gnoboard/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt deleted file mode 100644 index 24e72ab0..00000000 --- a/examples/js/expo/gnoboard/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt +++ /dev/null @@ -1,10 +0,0 @@ -package expo.plugins - -import org.gradle.api.Plugin -import org.gradle.api.initialization.Settings - -class ReactSettingsPlugin : Plugin { - override fun apply(settings: Settings) { - // Do nothing, just register the plugin. - } -} \ No newline at end of file diff --git a/examples/js/expo/gnoboard/android/settings.gradle b/examples/js/expo/gnoboard/android/settings.gradle deleted file mode 100644 index 7a049072..00000000 --- a/examples/js/expo/gnoboard/android/settings.gradle +++ /dev/null @@ -1,66 +0,0 @@ -pluginManagement { - def version = providers.exec { - commandLine("node", "-e", "console.log(require('react-native/package.json').version);") - }.standardOutput.asText.get().trim() - def (_, reactNativeMinor, reactNativePatch) = version.split("-")[0].tokenize('.').collect { it.toInteger() } - - includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile().toString()) - if(reactNativeMinor == 74 && reactNativePatch <= 3){ - includeBuild("react-settings-plugin") - } -} - -plugins { id("com.facebook.react.settings") } - -def getRNMinorVersion() { - def version = providers.exec { - commandLine("node", "-e", "console.log(require('react-native/package.json').version);") - }.standardOutput.asText.get().trim() - - def coreVersion = version.split("-")[0] - def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() } - - return minor -} - -if (getRNMinorVersion() >= 75) { - extensions.configure(com.facebook.react.ReactSettingsExtension) { ex -> - if (System.getenv('EXPO_UNSTABLE_CORE_AUTOLINKING') == '1') { - println('\u001B[32mUsing expo-modules-autolinking as core autolinking source\u001B[0m') - def command = [ - 'node', - '--no-warnings', - '--eval', - 'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))', - 'react-native-config', - '--json', - '--platform', - 'android' - ].toList() - ex.autolinkLibrariesFromCommand(command) - } else { - ex.autolinkLibrariesFromCommand() - } - } -} - -rootProject.name = 'gnoboard' - -dependencyResolutionManagement { - versionCatalogs { - reactAndroidLibs { - from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) - } - } -} - -apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); -useExpoModules() - -if (getRNMinorVersion() < 75) { - apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); - applyNativeModulesSettingsGradle(settings) -} - -include ':app' -includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile()) diff --git a/examples/js/expo/gnoboard/ios/.gitignore b/examples/js/expo/gnoboard/ios/.gitignore deleted file mode 100644 index e13248f7..00000000 --- a/examples/js/expo/gnoboard/ios/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -project.xcworkspace -.xcode.env.local - -# Bundle artifacts -*.jsbundle - -# CocoaPods -/Pods/ - -# Gomobile -Frameworks/ diff --git a/examples/js/expo/gnoboard/ios/.xcode.env b/examples/js/expo/gnoboard/ios/.xcode.env deleted file mode 100644 index 3d5782c7..00000000 --- a/examples/js/expo/gnoboard/ios/.xcode.env +++ /dev/null @@ -1,11 +0,0 @@ -# This `.xcode.env` file is versioned and is used to source the environment -# used when running script phases inside Xcode. -# To customize your local environment, you can create an `.xcode.env.local` -# file that is not versioned. - -# NODE_BINARY variable contains the PATH to the node executable. -# -# Customize the NODE_BINARY variable here. -# For example, to use nvm with brew, add the following line -# . "$(brew --prefix nvm)/nvm.sh" --no-use -export NODE_BINARY=$(command -v node) diff --git a/examples/js/expo/gnoboard/ios/Podfile b/examples/js/expo/gnoboard/ios/Podfile deleted file mode 100644 index 37e83677..00000000 --- a/examples/js/expo/gnoboard/ios/Podfile +++ /dev/null @@ -1,79 +0,0 @@ -require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") -require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") - -require 'json' -podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} - -ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' -ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] - -use_autolinking_method_symbol = ('use' + '_native' + '_modules!').to_sym -origin_autolinking_method = self.method(use_autolinking_method_symbol) -self.define_singleton_method(use_autolinking_method_symbol) do |*args| - if ENV['EXPO_UNSTABLE_CORE_AUTOLINKING'] == '1' - Pod::UI.puts('Using expo-modules-autolinking as core autolinking source'.green) - config_command = [ - 'node', - '--no-warnings', - '--eval', - 'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))', - 'react-native-config', - '--json', - '--platform', - 'ios' - ] - origin_autolinking_method.call(config_command) - else - origin_autolinking_method.call() - end -end - -platform :ios, podfile_properties['ios.deploymentTarget'] || '13.4' -install! 'cocoapods', - :deterministic_uuids => false - -prepare_react_native_project! - -target 'gnoboard' do - use_expo_modules! - config = use_native_modules! - - use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] - use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS'] - - use_react_native!( - :path => config[:reactNativePath], - :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', - # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/..", - :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', - ) - - post_install do |installer| - react_native_post_install( - installer, - config[:reactNativePath], - :mac_catalyst_enabled => false, - :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true', - ) - - # This is necessary for Xcode 14, because it signs resource bundles by default - # when building for devices. - installer.target_installation_results.pod_target_installation_results - .each do |pod_name, target_installation_result| - target_installation_result.resource_bundle_targets.each do |resource_bundle_target| - resource_bundle_target.build_configurations.each do |config| - config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' - end - end - end - end - - post_integrate do |installer| - begin - expo_patch_react_imports!(installer) - rescue => e - Pod::UI.warn e - end - end -end diff --git a/examples/js/expo/gnoboard/ios/Podfile.lock b/examples/js/expo/gnoboard/ios/Podfile.lock deleted file mode 100644 index 4397295c..00000000 --- a/examples/js/expo/gnoboard/ios/Podfile.lock +++ /dev/null @@ -1,1572 +0,0 @@ -PODS: - - boost (1.83.0) - - DoubleConversion (1.1.6) - - EXConstants (16.0.2): - - ExpoModulesCore - - Expo (51.0.31): - - ExpoModulesCore - - ExpoAsset (10.0.10): - - ExpoModulesCore - - ExpoFileSystem (17.0.1): - - ExpoModulesCore - - ExpoFont (12.0.9): - - ExpoModulesCore - - ExpoKeepAwake (13.0.2): - - ExpoModulesCore - - ExpoModulesCore (1.12.23): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsinspector - - React-NativeModulesApple - - React-RCTAppDelegate - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - EXSplashScreen (0.27.5): - - DoubleConversion - - ExpoModulesCore - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - FBLazyVector (0.74.5) - - fmt (9.1.0) - - glog (0.3.5) - - hermes-engine (0.74.5): - - hermes-engine/Pre-built (= 0.74.5) - - hermes-engine/Pre-built (0.74.5) - - RCT-Folly (2024.01.01.00): - - boost - - DoubleConversion - - fmt (= 9.1.0) - - glog - - RCT-Folly/Default (= 2024.01.01.00) - - RCT-Folly/Default (2024.01.01.00): - - boost - - DoubleConversion - - fmt (= 9.1.0) - - glog - - RCT-Folly/Fabric (2024.01.01.00): - - boost - - DoubleConversion - - fmt (= 9.1.0) - - glog - - RCTDeprecation (0.74.5) - - RCTRequired (0.74.5) - - RCTTypeSafety (0.74.5): - - FBLazyVector (= 0.74.5) - - RCTRequired (= 0.74.5) - - React-Core (= 0.74.5) - - React (0.74.5): - - React-Core (= 0.74.5) - - React-Core/DevSupport (= 0.74.5) - - React-Core/RCTWebSocket (= 0.74.5) - - React-RCTActionSheet (= 0.74.5) - - React-RCTAnimation (= 0.74.5) - - React-RCTBlob (= 0.74.5) - - React-RCTImage (= 0.74.5) - - React-RCTLinking (= 0.74.5) - - React-RCTNetwork (= 0.74.5) - - React-RCTSettings (= 0.74.5) - - React-RCTText (= 0.74.5) - - React-RCTVibration (= 0.74.5) - - React-callinvoker (0.74.5) - - React-Codegen (0.74.5): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-Core - - React-debug - - React-Fabric - - React-FabricImage - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-NativeModulesApple - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - React-Core (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default (= 0.74.5) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/CoreModulesHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/Default (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/DevSupport (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default (= 0.74.5) - - React-Core/RCTWebSocket (= 0.74.5) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTActionSheetHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTAnimationHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTBlobHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTImageHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTLinkingHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTNetworkHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTSettingsHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTTextHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTVibrationHeaders (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-Core/RCTWebSocket (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTDeprecation - - React-Core/Default (= 0.74.5) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.7.0) - - Yoga - - React-CoreModules (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.5) - - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.5) - - React-jsi (= 0.74.5) - - React-jsinspector - - React-NativeModulesApple - - React-RCTBlob - - React-RCTImage (= 0.74.5) - - ReactCommon - - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.5): - - boost (= 1.83.0) - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.5) - - React-debug (= 0.74.5) - - React-jsi (= 0.74.5) - - React-jsinspector - - React-logger (= 0.74.5) - - React-perflogger (= 0.74.5) - - React-runtimeexecutor (= 0.74.5) - - React-debug (0.74.5) - - React-Fabric (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-Fabric/animations (= 0.74.5) - - React-Fabric/attributedstring (= 0.74.5) - - React-Fabric/componentregistry (= 0.74.5) - - React-Fabric/componentregistrynative (= 0.74.5) - - React-Fabric/components (= 0.74.5) - - React-Fabric/core (= 0.74.5) - - React-Fabric/imagemanager (= 0.74.5) - - React-Fabric/leakchecker (= 0.74.5) - - React-Fabric/mounting (= 0.74.5) - - React-Fabric/scheduler (= 0.74.5) - - React-Fabric/telemetry (= 0.74.5) - - React-Fabric/templateprocessor (= 0.74.5) - - React-Fabric/textlayoutmanager (= 0.74.5) - - React-Fabric/uimanager (= 0.74.5) - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-Fabric/components/inputaccessory (= 0.74.5) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.5) - - React-Fabric/components/modal (= 0.74.5) - - React-Fabric/components/rncore (= 0.74.5) - - React-Fabric/components/root (= 0.74.5) - - React-Fabric/components/safeareaview (= 0.74.5) - - React-Fabric/components/scrollview (= 0.74.5) - - React-Fabric/components/text (= 0.74.5) - - React-Fabric/components/textinput (= 0.74.5) - - React-Fabric/components/unimplementedview (= 0.74.5) - - React-Fabric/components/view (= 0.74.5) - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - Yoga - - React-Fabric/core (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-Fabric/uimanager - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-FabricImage (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.5) - - RCTTypeSafety (= 0.74.5) - - React-Fabric - - React-graphics - - React-ImageManager - - React-jsi - - React-jsiexecutor (= 0.74.5) - - React-logger - - React-rendererdebug - - React-utils - - ReactCommon - - Yoga - - React-featureflags (0.74.5) - - React-graphics (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.5) - - React-utils - - React-hermes (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.5) - - React-jsi - - React-jsiexecutor (= 0.74.5) - - React-jsinspector - - React-perflogger (= 0.74.5) - - React-runtimeexecutor - - React-ImageManager (0.74.5): - - glog - - RCT-Folly/Fabric - - React-Core/Default - - React-debug - - React-Fabric - - React-graphics - - React-rendererdebug - - React-utils - - React-jserrorhandler (0.74.5): - - RCT-Folly/Fabric (= 2024.01.01.00) - - React-debug - - React-jsi - - React-Mapbuffer - - React-jsi (0.74.5): - - boost (= 1.83.0) - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.5) - - React-jsi (= 0.74.5) - - React-jsinspector - - React-perflogger (= 0.74.5) - - React-jsinspector (0.74.5): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-featureflags - - React-jsi - - React-runtimeexecutor (= 0.74.5) - - React-jsitracing (0.74.5): - - React-jsi - - React-logger (0.74.5): - - glog - - React-Mapbuffer (0.74.5): - - glog - - React-debug - - react-native-get-random-values (1.11.0): - - React-Core - - react-native-safe-area-context (4.10.5): - - React-Core - - react-native-slider (4.5.2): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - React-nativeconfig (0.74.5) - - React-NativeModulesApple (0.74.5): - - glog - - hermes-engine - - React-callinvoker - - React-Core - - React-cxxreact - - React-jsi - - React-jsinspector - - React-runtimeexecutor - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - React-perflogger (0.74.5) - - React-RCTActionSheet (0.74.5): - - React-Core/RCTActionSheetHeaders (= 0.74.5) - - React-RCTAnimation (0.74.5): - - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTAnimationHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTAppDelegate (0.74.5): - - RCT-Folly (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - - React-Core - - React-CoreModules - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-hermes - - React-nativeconfig - - React-NativeModulesApple - - React-RCTFabric - - React-RCTImage - - React-RCTNetwork - - React-rendererdebug - - React-RuntimeApple - - React-RuntimeCore - - React-RuntimeHermes - - React-runtimescheduler - - React-utils - - ReactCommon - - React-RCTBlob (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-Codegen - - React-Core/RCTBlobHeaders - - React-Core/RCTWebSocket - - React-jsi - - React-jsinspector - - React-NativeModulesApple - - React-RCTNetwork - - ReactCommon - - React-RCTFabric (0.74.5): - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core - - React-debug - - React-Fabric - - React-FabricImage - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - React-jsinspector - - React-nativeconfig - - React-RCTImage - - React-RCTText - - React-rendererdebug - - React-runtimescheduler - - React-utils - - Yoga - - React-RCTImage (0.74.5): - - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTImageHeaders - - React-jsi - - React-NativeModulesApple - - React-RCTNetwork - - ReactCommon - - React-RCTLinking (0.74.5): - - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.5) - - React-jsi (= 0.74.5) - - React-NativeModulesApple - - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.5) - - React-RCTNetwork (0.74.5): - - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTNetworkHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTSettings (0.74.5): - - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTSettingsHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTText (0.74.5): - - React-Core/RCTTextHeaders (= 0.74.5) - - Yoga - - React-RCTVibration (0.74.5): - - RCT-Folly (= 2024.01.01.00) - - React-Codegen - - React-Core/RCTVibrationHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-rendererdebug (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - RCT-Folly (= 2024.01.01.00) - - React-debug - - React-rncore (0.74.5) - - React-RuntimeApple (0.74.5): - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - React-callinvoker - - React-Core/Default - - React-CoreModules - - React-cxxreact - - React-jserrorhandler - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-Mapbuffer - - React-NativeModulesApple - - React-RCTFabric - - React-RuntimeCore - - React-runtimeexecutor - - React-RuntimeHermes - - React-utils - - React-RuntimeCore (0.74.5): - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - React-cxxreact - - React-featureflags - - React-jserrorhandler - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - React-runtimeexecutor (0.74.5): - - React-jsi (= 0.74.5) - - React-RuntimeHermes (0.74.5): - - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - React-featureflags - - React-hermes - - React-jsi - - React-jsinspector - - React-jsitracing - - React-nativeconfig - - React-RuntimeCore - - React-utils - - React-runtimescheduler (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker - - React-cxxreact - - React-debug - - React-featureflags - - React-jsi - - React-rendererdebug - - React-runtimeexecutor - - React-utils - - React-utils (0.74.5): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-debug - - React-jsi (= 0.74.5) - - ReactCommon (0.74.5): - - ReactCommon/turbomodule (= 0.74.5) - - ReactCommon/turbomodule (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.5) - - React-cxxreact (= 0.74.5) - - React-jsi (= 0.74.5) - - React-logger (= 0.74.5) - - React-perflogger (= 0.74.5) - - ReactCommon/turbomodule/bridging (= 0.74.5) - - ReactCommon/turbomodule/core (= 0.74.5) - - ReactCommon/turbomodule/bridging (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.5) - - React-cxxreact (= 0.74.5) - - React-jsi (= 0.74.5) - - React-logger (= 0.74.5) - - React-perflogger (= 0.74.5) - - ReactCommon/turbomodule/core (0.74.5): - - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.5) - - React-cxxreact (= 0.74.5) - - React-debug (= 0.74.5) - - React-jsi (= 0.74.5) - - React-logger (= 0.74.5) - - React-perflogger (= 0.74.5) - - React-utils (= 0.74.5) - - RNCAsyncStorage (1.23.1): - - React-Core - - RNDateTimePicker (8.0.1): - - React-Core - - RNScreens (3.31.1): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-RCTImage - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - RNSVG (13.14.0): - - React-Core - - SocketRocket (0.7.0) - - Yoga (0.0.0) - -DEPENDENCIES: - - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - EXConstants (from `../node_modules/expo-constants/ios`) - - Expo (from `../node_modules/expo`) - - ExpoAsset (from `../node_modules/expo-asset/ios`) - - ExpoFileSystem (from `../node_modules/expo-file-system/ios`) - - ExpoFont (from `../node_modules/expo-font/ios`) - - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) - - ExpoModulesCore (from `../node_modules/expo-modules-core`) - - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) - - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) - - RCTRequired (from `../node_modules/react-native/Libraries/Required`) - - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - - React (from `../node_modules/react-native/`) - - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - - React-Codegen (from `build/generated/ios`) - - React-Core (from `../node_modules/react-native/`) - - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) - - React-Fabric (from `../node_modules/react-native/ReactCommon`) - - React-FabricImage (from `../node_modules/react-native/ReactCommon`) - - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) - - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) - - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) - - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) - - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) - - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) - - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) - - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) - - "react-native-slider (from `../node_modules/@react-native-community/slider`)" - - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) - - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) - - React-RCTFabric (from `../node_modules/react-native/React`) - - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) - - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - - React-rncore (from `../node_modules/react-native/ReactCommon`) - - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) - - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) - - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" - - "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)" - - RNScreens (from `../node_modules/react-native-screens`) - - RNSVG (from `../node_modules/react-native-svg`) - - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) - -SPEC REPOS: - trunk: - - SocketRocket - -EXTERNAL SOURCES: - boost: - :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" - DoubleConversion: - :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" - EXConstants: - :path: "../node_modules/expo-constants/ios" - Expo: - :path: "../node_modules/expo" - ExpoAsset: - :path: "../node_modules/expo-asset/ios" - ExpoFileSystem: - :path: "../node_modules/expo-file-system/ios" - ExpoFont: - :path: "../node_modules/expo-font/ios" - ExpoKeepAwake: - :path: "../node_modules/expo-keep-awake/ios" - ExpoModulesCore: - :path: "../node_modules/expo-modules-core" - EXSplashScreen: - :path: "../node_modules/expo-splash-screen/ios" - FBLazyVector: - :path: "../node_modules/react-native/Libraries/FBLazyVector" - fmt: - :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" - glog: - :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" - hermes-engine: - :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85 - RCT-Folly: - :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" - RCTDeprecation: - :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" - RCTRequired: - :path: "../node_modules/react-native/Libraries/Required" - RCTTypeSafety: - :path: "../node_modules/react-native/Libraries/TypeSafety" - React: - :path: "../node_modules/react-native/" - React-callinvoker: - :path: "../node_modules/react-native/ReactCommon/callinvoker" - React-Codegen: - :path: build/generated/ios - React-Core: - :path: "../node_modules/react-native/" - React-CoreModules: - :path: "../node_modules/react-native/React/CoreModules" - React-cxxreact: - :path: "../node_modules/react-native/ReactCommon/cxxreact" - React-debug: - :path: "../node_modules/react-native/ReactCommon/react/debug" - React-Fabric: - :path: "../node_modules/react-native/ReactCommon" - React-FabricImage: - :path: "../node_modules/react-native/ReactCommon" - React-featureflags: - :path: "../node_modules/react-native/ReactCommon/react/featureflags" - React-graphics: - :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" - React-hermes: - :path: "../node_modules/react-native/ReactCommon/hermes" - React-ImageManager: - :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" - React-jserrorhandler: - :path: "../node_modules/react-native/ReactCommon/jserrorhandler" - React-jsi: - :path: "../node_modules/react-native/ReactCommon/jsi" - React-jsiexecutor: - :path: "../node_modules/react-native/ReactCommon/jsiexecutor" - React-jsinspector: - :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" - React-jsitracing: - :path: "../node_modules/react-native/ReactCommon/hermes/executor/" - React-logger: - :path: "../node_modules/react-native/ReactCommon/logger" - React-Mapbuffer: - :path: "../node_modules/react-native/ReactCommon" - react-native-get-random-values: - :path: "../node_modules/react-native-get-random-values" - react-native-safe-area-context: - :path: "../node_modules/react-native-safe-area-context" - react-native-slider: - :path: "../node_modules/@react-native-community/slider" - React-nativeconfig: - :path: "../node_modules/react-native/ReactCommon" - React-NativeModulesApple: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" - React-perflogger: - :path: "../node_modules/react-native/ReactCommon/reactperflogger" - React-RCTActionSheet: - :path: "../node_modules/react-native/Libraries/ActionSheetIOS" - React-RCTAnimation: - :path: "../node_modules/react-native/Libraries/NativeAnimation" - React-RCTAppDelegate: - :path: "../node_modules/react-native/Libraries/AppDelegate" - React-RCTBlob: - :path: "../node_modules/react-native/Libraries/Blob" - React-RCTFabric: - :path: "../node_modules/react-native/React" - React-RCTImage: - :path: "../node_modules/react-native/Libraries/Image" - React-RCTLinking: - :path: "../node_modules/react-native/Libraries/LinkingIOS" - React-RCTNetwork: - :path: "../node_modules/react-native/Libraries/Network" - React-RCTSettings: - :path: "../node_modules/react-native/Libraries/Settings" - React-RCTText: - :path: "../node_modules/react-native/Libraries/Text" - React-RCTVibration: - :path: "../node_modules/react-native/Libraries/Vibration" - React-rendererdebug: - :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" - React-rncore: - :path: "../node_modules/react-native/ReactCommon" - React-RuntimeApple: - :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" - React-RuntimeCore: - :path: "../node_modules/react-native/ReactCommon/react/runtime" - React-runtimeexecutor: - :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" - React-RuntimeHermes: - :path: "../node_modules/react-native/ReactCommon/react/runtime" - React-runtimescheduler: - :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" - React-utils: - :path: "../node_modules/react-native/ReactCommon/react/utils" - ReactCommon: - :path: "../node_modules/react-native/ReactCommon" - RNCAsyncStorage: - :path: "../node_modules/@react-native-async-storage/async-storage" - RNDateTimePicker: - :path: "../node_modules/@react-native-community/datetimepicker" - RNScreens: - :path: "../node_modules/react-native-screens" - RNSVG: - :path: "../node_modules/react-native-svg" - Yoga: - :path: "../node_modules/react-native/ReactCommon/yoga" - -SPEC CHECKSUMS: - boost: d3f49c53809116a5d38da093a8aa78bf551aed09 - DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - EXConstants: 409690fbfd5afea964e5e9d6c4eb2c2b59222c59 - Expo: 4773e11951abd0f666f67023f0cb1d48c3e8a32b - ExpoAsset: 323700f291684f110fb55f0d4022a3362ea9f875 - ExpoFileSystem: 80bfe850b1f9922c16905822ecbf97acd711dc51 - ExpoFont: e7f2275c10ca8573c991e007329ad6bf98086485 - ExpoKeepAwake: 3b8815d9dd1d419ee474df004021c69fdd316d08 - ExpoModulesCore: d15ce10fea70ab650230feb69f45bb208d3a6596 - EXSplashScreen: fbf0ec78e9cee911df188bf17b4fe51d15a84b87 - FBLazyVector: ac12dc084d1c8ec4cc4d7b3cf1b0ebda6dab85af - fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 - glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f - hermes-engine: 8c1577f3fdb849cbe7729c2e7b5abc4b845e88f8 - RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 - RCTDeprecation: 3afceddffa65aee666dafd6f0116f1d975db1584 - RCTRequired: ec1239bc9d8bf63e10fb92bd8b26171a9258e0c1 - RCTTypeSafety: f5ecbc86c5c5fa163c05acb7a1c5012e15b5f994 - React: fc9fa7258eff606f44d58c5b233a82dc9cf09018 - React-callinvoker: e3fab14d69607fb7e8e3a57e5a415aed863d3599 - React-Codegen: 6fa87b7c6b8efcd0cef4bfeaec8c8bc8a6abe75a - React-Core: 3a5fd9e781cecf87803e5b091496a606a3df774a - React-CoreModules: cbf4707dafab8f9f826ac0c63a07d0bf5d01e256 - React-cxxreact: 7b188556271e3c7fdf22a04819f6a6225045b9dd - React-debug: d30893c49ae1bce4037ea5cd8bb2511d2a38d057 - React-Fabric: 826729dd2304fda9b89ff0a579f60ba2a470bc26 - React-FabricImage: 2ad1fb8ffa5778eda9ed204a7b3cdd70bc333ce7 - React-featureflags: 4ae83e72d9a92452793601ac9ac7d2280e486089 - React-graphics: 61a026e1c1e7e20d20ac9fec6f6de631732b233d - React-hermes: a7054fbcbda3957e3c5eaad06ef9bf79998d535a - React-ImageManager: 2bbd6eb2e696bc680f76f84563e4b87d241614e1 - React-jserrorhandler: 56fa04d49bfbe54ddfece7916673a73ebfea286b - React-jsi: f3ce1dd2e950b6ad12b65ea3ef89168f1b94c584 - React-jsiexecutor: b4df3a27973d82f9abf3c4bd0f88e042cda25f16 - React-jsinspector: 97ea746c023687de7313ee289817d6991d596c7d - React-jsitracing: 3b6060bbf5317663667e1dd93560c7943ab86ccc - React-logger: 257858bd55f3a4e1bc0cf07ddc8fb9faba6f8c7c - React-Mapbuffer: 6c1cacdbf40b531f549eba249e531a7d0bfd8e7f - react-native-get-random-values: 21325b2244dfa6b58878f51f9aa42821e7ba3d06 - react-native-safe-area-context: a240ad4b683349e48b1d51fed1611138d1bdad97 - react-native-slider: ce295d2bf830a7990af05b0bd70ab28c133e230c - React-nativeconfig: ba9a2e54e2f0882cf7882698825052793ed4c851 - React-NativeModulesApple: 8d11ff8955181540585c944cf48e9e7236952697 - React-perflogger: ed4e0c65781521e0424f2e5e40b40cc7879d737e - React-RCTActionSheet: 49d53ff03bb5688ca4606c55859053a0cd129ea5 - React-RCTAnimation: 07b4923885c52c397c4ec103924bf6e53b42c73e - React-RCTAppDelegate: 316e295076734baf9bdf1bfac7d92ab647aed930 - React-RCTBlob: 85c57b0d5e667ff8a472163ba3af0628171a64bb - React-RCTFabric: 97c1465ded4dc92841f5376a39e43e1b2c455f40 - React-RCTImage: b965c85bec820e2a9c154b1fb00a2ecdd59a9c92 - React-RCTLinking: 75f04a5f27c26c4e73a39c50df470820d219df79 - React-RCTNetwork: c1a9143f4d5778efc92da40d83969d03912ccc24 - React-RCTSettings: c6800f91c0ecd48868cd5db754b0b0a7f5ffe039 - React-RCTText: b923e24f9b7250bc4f7ab154c4168ad9f8d8fc9d - React-RCTVibration: 08c4f0c917c435b3619386c25a94ee5d64c250f0 - React-rendererdebug: 3cda04217d9df67b94397ee0ead8ef3d8b7e427b - React-rncore: 4013508a2f3fcf46c961919bbbd4bfdda198977e - React-RuntimeApple: 447844a2bdb0a03ffd24e5b4a4b96cfc50325b88 - React-RuntimeCore: 9b5bffdaccee9b707b1c2694c9044e13ff0bb087 - React-runtimeexecutor: 0e688aefc14c6bc8601f4968d8d01c3fb6446844 - React-RuntimeHermes: 4d6ef6bb0f2b0b40d59143317f6b99c82764c959 - React-runtimescheduler: cfbe85c3510c541ec6dc815c7729b41304b67961 - React-utils: f242eb7e7889419d979ca0e1c02ccc0ea6e43b29 - ReactCommon: f7da14a8827b72704169a48c929bcde802698361 - RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c - RNDateTimePicker: b6a9b35a785ecbe12b4e7d6de5439d0aa4614146 - RNScreens: b32a9ff15bea7fcdbe5dff6477bc503f792b1208 - RNSVG: d00c8f91c3cbf6d476451313a18f04d220d4f396 - SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 950bbfd7e6f04790fdb51149ed51df41f329fcc8 - -PODFILE CHECKSUM: 4bc5bbe35d066cc8497f62a7178ffb47e1f91315 - -COCOAPODS: 1.15.2 diff --git a/examples/js/expo/gnoboard/ios/Podfile.properties.json b/examples/js/expo/gnoboard/ios/Podfile.properties.json deleted file mode 100644 index de9f7b75..00000000 --- a/examples/js/expo/gnoboard/ios/Podfile.properties.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "expo.jsEngine": "hermes", - "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true" -} diff --git a/examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.m b/examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.m deleted file mode 100644 index 503f4a93..00000000 --- a/examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.m +++ /dev/null @@ -1,43 +0,0 @@ -#import - - -@interface RCT_EXTERN_MODULE(GoBridge, NSObject) - -RCT_EXTERN_METHOD(initBridge:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -RCT_EXTERN_METHOD(closeBridge:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -RCT_EXTERN_METHOD(getTcpPort:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -RCT_EXTERN_METHOD(invokeGrpcMethod:(NSString *)method - jsonMessage:(NSString *)jsonMessage - resolve:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -RCT_EXTERN_METHOD(createStreamClient:(NSString)method - jsonMessage:(NSString)jsonMessage - resolve:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -RCT_EXTERN_METHOD(streamClientReceive:(NSString)id - resolve:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -RCT_EXTERN_METHOD(closeStreamClient:(NSString)id - resolve:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -+ (BOOL)requiresMainQueueSetup -{ - return NO; // only do this if your module initialization relies on calling UIKit! -} - -- (dispatch_queue_t)methodQueue -{ - return dispatch_queue_create("com.facebook.React.AsyncLocalStorageQueue", DISPATCH_QUEUE_SERIAL); -} - -@end diff --git a/examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.swift b/examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.swift deleted file mode 100644 index 59c75c28..00000000 --- a/examples/js/expo/gnoboard/ios/Sources/Bridge/GoBridge.swift +++ /dev/null @@ -1,162 +0,0 @@ -import Foundation -import os -import GnoCore - -@available(iOS 14.0, *) -@objc(GoBridge) -class GoBridge: NSObject { - let logger: Logger - let appRootDir: String - let tmpDir: String - var bridge: GnoGnonativeBridge? - var socketPort: Int = 0 - - static func requiresMainQueueSetup() -> Bool { - return false - } - - override init() { - self.logger = Logger( - subsystem: Bundle.main.bundleIdentifier!, - category: String(describing: "gobridge") - ) - self.appRootDir = try! RootDirGet() - self.tmpDir = try! TempDirGet() - - super.init() - } - - deinit { - do { - if self.bridge != nil { - try self.bridge?.close() - self.bridge = nil - } - } catch let error as NSError { - self.logger.error("\(String(describing: error.code))") - } - } - - @objc func constantsToExport() -> [AnyHashable : Any]! { -#if DEBUG - let debug = true; -#else - let debug = false; -#endif - return ["debug": debug]; - } - - // //////// // - // Protocol // - // //////// // - - @objc func initBridge(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - var err: NSError? - - do { - if self.bridge != nil { - throw NSError(domain: "land.gno.gnonative", code: 1, userInfo: [NSLocalizedDescriptionKey : "already started"]) - } - - // init the bridge service - - guard let config = GnoGnonativeBridgeConfig() else { - throw NSError(domain: "land.gno.gnonative", code: 2, userInfo: [NSLocalizedDescriptionKey : "unable to create config"]) - } - config.rootDir = self.appRootDir - config.tmpDir = self.tmpDir - - // On simulator we can't create an UDS, see comment below -#if targetEnvironment(simulator) - config.useTcpListener = true - config.disableUdsListener = true -#endif - - let bridge = GnoGnonativeNewBridge(config, &err); - if err != nil { - throw err! - } - self.bridge = bridge - - self.socketPort = bridge!.getTcpPort() - self.logger.info("gRPC server port: \(self.socketPort)") - - resolve(true) - } catch let error as NSError { - reject("\(String(describing: error.code))", error.localizedDescription, error) - return - } - } - - @objc func getTcpPort(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - do { - if self.bridge == nil { - throw NSError(domain: "land.gno.gnonative", code: 2, userInfo: [NSLocalizedDescriptionKey : "bridge not init"]) - } - resolve(self.socketPort) - } catch let error as NSError { - reject("\(String(describing: error.code))", error.localizedDescription, error) - } - } - - @objc func closeBridge(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - do { - if self.bridge != nil { - try self.bridge?.close() - self.bridge = nil - } - resolve(true) - } catch let error as NSError { - self.logger.error("\(String(describing: error.code))") - reject("\(String(describing: error.code))", error.localizedDescription, error) - } - } - - @objc func invokeGrpcMethod(_ method: NSString, jsonMessage: NSString, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - do { - if self.bridge == nil { - throw NSError(domain: "land.gno.gnonative", code: 2, userInfo: [NSLocalizedDescriptionKey : "bridge not init"]) - } - let promise = PromiseBlock(resolve, reject) - self.bridge?.invokeGrpcMethod(with: promise, method: method as String, jsonMessage: jsonMessage as String) - } catch let error as NSError { - reject("\(String(describing: error.code))", error.localizedDescription, error) - } - } - - @objc func createStreamClient(_ method: NSString, jsonMessage: NSString, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - do { - if self.bridge == nil { - throw NSError(domain: "land.gno.gnonative", code: 2, userInfo: [NSLocalizedDescriptionKey : "bridge not init"]) - } - let promise = PromiseBlock(resolve, reject) - self.bridge?.createStreamClient(with: promise, method: method as String, jsonMessage: jsonMessage as String) - } catch let error as NSError { - reject("\(String(describing: error.code))", error.localizedDescription, error) - } - } - - @objc func streamClientReceive(_ id: NSString, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - do { - if self.bridge == nil { - throw NSError(domain: "land.gno.gnonative", code: 2, userInfo: [NSLocalizedDescriptionKey : "bridge not init"]) - } - let promise = PromiseBlock(resolve, reject) - self.bridge?.streamClientReceive(with: promise, id_: id as String) - } catch let error as NSError { - reject("\(String(describing: error.code))", error.localizedDescription, error) - } - } - - @objc func closeStreamClient(_ id: NSString, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - do { - if self.bridge == nil { - throw NSError(domain: "land.gno.gnonative", code: 2, userInfo: [NSLocalizedDescriptionKey : "bridge not init"]) - } - let promise = PromiseBlock(resolve, reject) - self.bridge?.closeStreamClient(with: promise, id_: id as String) - } catch let error as NSError { - reject("\(String(describing: error.code))", error.localizedDescription, error) - } - } -} diff --git a/examples/js/expo/gnoboard/ios/Sources/Bridge/PromiseBlock.swift b/examples/js/expo/gnoboard/ios/Sources/Bridge/PromiseBlock.swift deleted file mode 100644 index 6bc2c444..00000000 --- a/examples/js/expo/gnoboard/ios/Sources/Bridge/PromiseBlock.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// PromiseBlock.swift -// GoBridge -// -// Created by Guilhem Fanton on 30/07/2020. -// Copyright © 2020 Berty Technologies. All rights reserved. -// - -import Foundation -import GnoCore - -var promises: [PromiseBlock] = [] -let promisesQueue = DispatchQueue(label: "land.gno.gnoboard.promises.queue") - -// PromiseBlock aim to keep reference over promise object so go can play with -// until the promise is resolved -class PromiseBlock: NSObject, GnoGnonativePromiseBlockProtocol { - - var resolve: RCTPromiseResolveBlock - var reject: RCTPromiseRejectBlock - - init(_ resolve: RCTPromiseResolveBlock!, _ reject: RCTPromiseRejectBlock!) { - self.reject = reject - self.resolve = resolve - - super.init() - self.store() - } - - func callResolve(_ reply: String?) { - if let reply = reply { - self.resolve(reply) - } else { - self.reject("CallResolve", "cannot resolve nil reply", nil) - } - - self.remove() - } - - func callReject(_ error: Error?) { - if let error = error { - self.reject("rejected", error.localizedDescription, error) - } else { - self.reject("CallReject", "cannot reject nil error", nil) - } - - self.remove() - } - - func store() { - promisesQueue.sync { - promises.append(self) - } - } - - func remove() -> Void { - promisesQueue.sync { - promises = promises.filter { $0 !== self } - } - } -} diff --git a/examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.m b/examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.m deleted file mode 100644 index 9b38bac0..00000000 --- a/examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.m +++ /dev/null @@ -1,15 +0,0 @@ -// -// RootDir.m -// Berty -// -// Created by Antoine Eddi on 09/08/2021. -// - -#import - -@interface RCT_EXTERN_MODULE(RootDir, NSObject) - -RCT_EXTERN_METHOD(get:(RCTPromiseResolveBlock)resolve - reject:(RCTPromiseRejectBlock)reject); - -@end diff --git a/examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.swift b/examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.swift deleted file mode 100644 index 46c4a17c..00000000 --- a/examples/js/expo/gnoboard/ios/Sources/RootDir/RootDir.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// RootDir.swift -// Berty -// -// Created by Antoine Eddi on 09/08/2021. -// - -import Foundation - -enum RootDirError: Error { - case path -} -extension RootDirError: LocalizedError { - public var errorDescription: String? { - switch self { - case .path: - return NSLocalizedString( - "unable to get app group path url", - comment: "" - ) - } - } -} - -@objc(RootDir) -class RootDir: NSObject { - @objc func get(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { - do { - resolve(try RootDirGet()) - } catch { - reject("root_dir_failure", error.localizedDescription, error) - } - } - - @objc static func requiresMainQueueSetup() -> Bool { - return false - } -} - -func RootDirGet() throws -> String { - return try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true).path -} - -func TempDirGet() throws -> String { - return FileManager.default.compatTemporaryDirectory.path -} - -extension FileManager { - public var compatTemporaryDirectory: URL { - if #available(iOS 10.0, *) { - return temporaryDirectory - } else { - return (try? url( - for: .itemReplacementDirectory, - in: .userDomainMask, - appropriateFor: nil, - create: true) - ) ?? URL(fileURLWithPath: NSTemporaryDirectory()) - } - } -} diff --git a/examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/project.pbxproj b/examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/project.pbxproj deleted file mode 100644 index 7cb6ca68..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/project.pbxproj +++ /dev/null @@ -1,597 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - 96905EF65AED1B983A6B3ABC /* libPods-gnoboard.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-gnoboard.a */; }; - 9C8A824240EA4866A0617528 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6975CD3FFF64BA3A4A113A1 /* noop-file.swift */; }; - A5D8EFF82C8EFFDA00F99C72 /* GnoCore.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5D8EFF72C8EFFDA00F99C72 /* GnoCore.xcframework */; }; - A5D8EFFA2C8EFFE100F99C72 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A5D8EFF92C8EFFE100F99C72 /* libresolv.tbd */; }; - A5D8F0032C8F01B600F99C72 /* GoBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = A5D8EFFB2C8F01B600F99C72 /* GoBridge.m */; }; - A5D8F0042C8F01B600F99C72 /* GoBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D8EFFC2C8F01B600F99C72 /* GoBridge.swift */; }; - A5D8F0052C8F01B600F99C72 /* PromiseBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D8EFFD2C8F01B600F99C72 /* PromiseBlock.swift */; }; - A5D8F0062C8F01B600F99C72 /* RootDir.m in Sources */ = {isa = PBXBuildFile; fileRef = A5D8EFFF2C8F01B600F99C72 /* RootDir.m */; }; - A5D8F0072C8F01B600F99C72 /* RootDir.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D8F0002C8F01B600F99C72 /* RootDir.swift */; }; - B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; - F0260A8414441860B93CED9E /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = D23A5C1DCC257EF1D25F4B25 /* PrivacyInfo.xcprivacy */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 13B07F961A680F5B00A75B9A /* gnoboard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = gnoboard.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = gnoboard/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = gnoboard/AppDelegate.mm; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = gnoboard/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = gnoboard/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = gnoboard/main.m; sourceTree = ""; }; - 3678F05476B64E41B205E1F3 /* gnoboard-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "gnoboard-Bridging-Header.h"; path = "gnoboard/gnoboard-Bridging-Header.h"; sourceTree = ""; }; - 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-gnoboard.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-gnoboard.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 6C2E3173556A471DD304B334 /* Pods-gnoboard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-gnoboard.debug.xcconfig"; path = "Target Support Files/Pods-gnoboard/Pods-gnoboard.debug.xcconfig"; sourceTree = ""; }; - 7A4D352CD337FB3A3BF06240 /* Pods-gnoboard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-gnoboard.release.xcconfig"; path = "Target Support Files/Pods-gnoboard/Pods-gnoboard.release.xcconfig"; sourceTree = ""; }; - A5D8EFF72C8EFFDA00F99C72 /* GnoCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GnoCore.xcframework; path = ../../../../../framework/ios/GnoCore.xcframework; sourceTree = ""; }; - A5D8EFF92C8EFFE100F99C72 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; - A5D8EFFB2C8F01B600F99C72 /* GoBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoBridge.m; sourceTree = ""; }; - A5D8EFFC2C8F01B600F99C72 /* GoBridge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoBridge.swift; sourceTree = ""; }; - A5D8EFFD2C8F01B600F99C72 /* PromiseBlock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PromiseBlock.swift; sourceTree = ""; }; - A5D8EFFF2C8F01B600F99C72 /* RootDir.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootDir.m; sourceTree = ""; }; - A5D8F0002C8F01B600F99C72 /* RootDir.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootDir.swift; sourceTree = ""; }; - AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = gnoboard/SplashScreen.storyboard; sourceTree = ""; }; - BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; - D23A5C1DCC257EF1D25F4B25 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = gnoboard/PrivacyInfo.xcprivacy; sourceTree = ""; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - F6975CD3FFF64BA3A4A113A1 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "gnoboard/noop-file.swift"; sourceTree = ""; }; - FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-gnoboard/ExpoModulesProvider.swift"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A5D8EFFA2C8EFFE100F99C72 /* libresolv.tbd in Frameworks */, - A5D8EFF82C8EFFDA00F99C72 /* GnoCore.xcframework in Frameworks */, - 96905EF65AED1B983A6B3ABC /* libPods-gnoboard.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 13B07FAE1A68108700A75B9A /* gnoboard */ = { - isa = PBXGroup; - children = ( - A5D8F0022C8F01B600F99C72 /* Sources */, - BB2F792B24A3F905000567C9 /* Supporting */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.mm */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB71A68108700A75B9A /* main.m */, - AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, - F6975CD3FFF64BA3A4A113A1 /* noop-file.swift */, - 3678F05476B64E41B205E1F3 /* gnoboard-Bridging-Header.h */, - D23A5C1DCC257EF1D25F4B25 /* PrivacyInfo.xcprivacy */, - ); - name = gnoboard; - sourceTree = ""; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - A5D8EFF92C8EFFE100F99C72 /* libresolv.tbd */, - A5D8EFF72C8EFFDA00F99C72 /* GnoCore.xcframework */, - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-gnoboard.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - ); - name = Libraries; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* gnoboard */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - D65327D7A22EEC0BE12398D9 /* Pods */, - D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* gnoboard.app */, - ); - name = Products; - sourceTree = ""; - }; - 92DBD88DE9BF7D494EA9DA96 /* gnoboard */ = { - isa = PBXGroup; - children = ( - FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */, - ); - name = gnoboard; - sourceTree = ""; - }; - A5D8EFFE2C8F01B600F99C72 /* Bridge */ = { - isa = PBXGroup; - children = ( - A5D8EFFB2C8F01B600F99C72 /* GoBridge.m */, - A5D8EFFC2C8F01B600F99C72 /* GoBridge.swift */, - A5D8EFFD2C8F01B600F99C72 /* PromiseBlock.swift */, - ); - path = Bridge; - sourceTree = ""; - }; - A5D8F0012C8F01B600F99C72 /* RootDir */ = { - isa = PBXGroup; - children = ( - A5D8EFFF2C8F01B600F99C72 /* RootDir.m */, - A5D8F0002C8F01B600F99C72 /* RootDir.swift */, - ); - path = RootDir; - sourceTree = ""; - }; - A5D8F0022C8F01B600F99C72 /* Sources */ = { - isa = PBXGroup; - children = ( - A5D8EFFE2C8F01B600F99C72 /* Bridge */, - A5D8F0012C8F01B600F99C72 /* RootDir */, - ); - path = Sources; - sourceTree = ""; - }; - BB2F792B24A3F905000567C9 /* Supporting */ = { - isa = PBXGroup; - children = ( - BB2F792C24A3F905000567C9 /* Expo.plist */, - ); - name = Supporting; - path = gnoboard/Supporting; - sourceTree = ""; - }; - D65327D7A22EEC0BE12398D9 /* Pods */ = { - isa = PBXGroup; - children = ( - 6C2E3173556A471DD304B334 /* Pods-gnoboard.debug.xcconfig */, - 7A4D352CD337FB3A3BF06240 /* Pods-gnoboard.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = { - isa = PBXGroup; - children = ( - 92DBD88DE9BF7D494EA9DA96 /* gnoboard */, - ); - name = ExpoModulesProviders; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 13B07F861A680F5B00A75B9A /* gnoboard */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "gnoboard" */; - buildPhases = ( - 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, - 96AEBC388A80F718C5A8A831 /* [Expo] Configure project */, - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, - 40543A34B5FA07D71D39B972 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = gnoboard; - productName = gnoboard; - productReference = 13B07F961A680F5B00A75B9A /* gnoboard.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1130; - TargetAttributes = { - 13B07F861A680F5B00A75B9A = { - LastSwiftMigration = 1250; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "gnoboard" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* gnoboard */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, - F0260A8414441860B93CED9E /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; - }; - 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-gnoboard-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 40543A34B5FA07D71D39B972 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-gnoboard/Pods-gnoboard-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-gnoboard/Pods-gnoboard-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-gnoboard/Pods-gnoboard-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-gnoboard/Pods-gnoboard-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 96AEBC388A80F718C5A8A831 /* [Expo] Configure project */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "[Expo] Configure project"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-gnoboard/expo-configure-project.sh\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A5D8F0052C8F01B600F99C72 /* PromiseBlock.swift in Sources */, - A5D8F0042C8F01B600F99C72 /* GoBridge.swift in Sources */, - A5D8F0032C8F01B600F99C72 /* GoBridge.m in Sources */, - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, - 9C8A824240EA4866A0617528 /* noop-file.swift in Sources */, - A5D8F0072C8F01B600F99C72 /* RootDir.swift in Sources */, - A5D8F0062C8F01B600F99C72 /* RootDir.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-gnoboard.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = gnoboard/gnoboard.entitlements; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "FB_SONARKIT_ENABLED=1", - ); - INFOPLIST_FILE = gnoboard/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = land.gno.gnoboard; - PRODUCT_NAME = gnoboard; - SWIFT_OBJC_BRIDGING_HEADER = "gnoboard/gnoboard-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-gnoboard.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = gnoboard/gnoboard.entitlements; - CURRENT_PROJECT_VERSION = 1; - INFOPLIST_FILE = gnoboard/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; - PRODUCT_BUNDLE_IDENTIFIER = land.gno.gnoboard; - PRODUCT_NAME = gnoboard; - SWIFT_OBJC_BRIDGING_HEADER = "gnoboard/gnoboard-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CC = ""; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CXX = ""; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD = ""; - LDPLUSPLUS = ""; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = "$(inherited) "; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - USE_HERMES = true; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CC = ""; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - CXX = ""; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD = ""; - LDPLUSPLUS = ""; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "$(inherited) "; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - USE_HERMES = true; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "gnoboard" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "gnoboard" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/xcshareddata/xcschemes/gnoboard.xcscheme b/examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/xcshareddata/xcschemes/gnoboard.xcscheme deleted file mode 100644 index 32d063a7..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard.xcodeproj/xcshareddata/xcschemes/gnoboard.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/contents.xcworkspacedata b/examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 175563f6..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.h b/examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.h deleted file mode 100644 index 1658a437..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.h +++ /dev/null @@ -1,7 +0,0 @@ -#import -#import -#import - -@interface AppDelegate : EXAppDelegateWrapper - -@end diff --git a/examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.mm b/examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.mm deleted file mode 100644 index b27f8328..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/AppDelegate.mm +++ /dev/null @@ -1,62 +0,0 @@ -#import "AppDelegate.h" - -#import -#import - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - self.moduleName = @"main"; - - // You can add your custom initial props in the dictionary below. - // They will be passed down to the ViewController used by React Native. - self.initialProps = @{}; - - return [super application:application didFinishLaunchingWithOptions:launchOptions]; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ - return [self bundleURL]; -} - -- (NSURL *)bundleURL -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -// Linking API -- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { - return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]; -} - -// Universal Links -- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler { - BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; - return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result; -} - -// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries -- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken -{ - return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; -} - -// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries -- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error -{ - return [super application:application didFailToRegisterForRemoteNotificationsWithError:error]; -} - -// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries -- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler -{ - return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; -} - -@end diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png deleted file mode 100644 index d0c27a94ab767ce1f8581c4f704c4c20fa1cf915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47607 zcmeEuhgXx?_I8LtDHfU(5r`B4r6a{q5)}afsiG7qg3=LDiqsGtr8h--69h#?dM}AX zi6}*+3PLC%y-9~8?{_kH?&$p1_b1$O){=#J&pGd|&wlnk2{+W&I>dC02?m25x}>dP z41*!Sj|dpUe()ET@AO0P7u`K$t@E&VoyTWkFeL1f#*(HqKQ*}Fqs@l~!5`s6^~=Y19Tt=mKTN@ykB<%UME^Xu z1RtO)Xn9Yh;-Nk8Kjd>5j$mLxVnSea|M|hz2?vSN$#?~t#{BnJ|M|BCdSTcZ#J@i+ zg9||r5a+I5{P(YsblHb~Uo!-TV?+qUPBN69V*70?ur4Fa{hyux^Mf7|NhfnI&NTkt zyKBRo_WhrO!s!@87$3Zi`1h|da18Ii_kgoAXv6eaZkh`JdP~|~Y_Oq!@4=Fc!N6@F zAm0f7EsMX876<#h|6ei+At1oh>{`YGN!^;1? z2l9WS{GTZQXO+L(fbIVr{9nQ3f3fnvG4y}2@^?Q8`Cr=kC*l7ugZ~St{0|KM<0${b zmH)!Y{}-ZXU%*91MvjCY5kN_#2;Mpx2m5gB?9|C$3CPwAH$Oi=LZMKWityB9l`*F( z8vyv<{PFI0Xp1{Q9}H2pMuw|Ae6!Spax}7Eg&;6S`l3R=Rth2b!3{E1zmANKE?GAQ z7OY|UpZoH$0+g-syYYTD8=KC;jyCwMIgoas$yoHUq}C}da4>F#(z%QOO$C?`3=?jK zO!SB9>gs~n2{|^4qoMA-rMIu@g zvY*30#JGdfV(8CKgI~MAaLWiOY3VH?s(^anV8i{@2S;$1K~1B0!-w_v;wO+5EYxD4 z`a>E8VJRD2$KYw8`f&SmLGX9+4=%pkwXv~TR)J)hk-;hqZX!s!;%DXa|5z&vQl^mb zRMfzy$hu*OvN`Or#|m-p4D4i8o;~xX8iA4b=lWeY`*DM_X#QocG-`{dw|7Or*3!s9 z(`&>|a6lAu*u?M4#t_D3v8yUEW^k4^*Z~|T5Qb#0)ze?Xz>U)f?@T3)fd8cOAtGxX zl^FXFa~eqG>d$w&za&B^hL?2PL~RPhaBo1Hq|n0Z2yaOw-DmIn9KThLI5&7Gk<9mz zGTszQ$;Tds7lJa#5jih90_bfI^OX2 zTK5ZMGXvIb$#-xTGNc*M5cU8r6UfUy;&JJ33&v@V?R8KO)5rdSX=k{@GIJRN&#np+ zJMvrgX2nc)D#KsE+2Dg4A_WfM_`$LKqax&3|H(?o&v}Gc#l4=LWw|R%8~Z@j+wtI+ z!0F(k473%RhDRF$s_JTMQR5QU=d&}wnNIP+8J-lp=Z;?kmf8jM zr>3R#^*7IPl3MxffHf+<-) zspy;$&=K*K82fKJN@HmDhq$}3G)0{lZ49cbtEu_=LQm@a|0i5zyV4?^)!S*bPvG{- z4g49T57n3Dg9Lbyv;H6Tf4vC74rjJ305k$08(f|3c{wsQl}DuTJ^Tro0H1%s@bvs| zY=`0bvEB`;r(_1iHqqJr6e!oA+mQ1&;k{-|uN_4*vGh=E>hIt9j<-0IUi}DsjM;nO zH{!z91ZOg^C%|+x12WrNM#?+^F<86%3fFH7QBM@#Y=Fk2OV9)gMeP#2iBTJNkjwa} z;BU@^NPN464r>vjn(fm z{UI5@wI3ZzQ=gLLS6)pv)98=`HhsUGI!c&jo?_GBU$M7XMdCD_k400>$e9saXc%cZ z7$TzOMU|G8_FWx5XS*M~0#DA{m|w53|7e)jW=q$X3)9$woTaEN=y=G64YSKz*-T82Bn-bL@^9Z$~^QUw;g_C6CgHf~<%EJOQA zu%cyiU(!D-V(f7Dn{D)VY-&d#!>RioZk#hnnOvZsD5GnRzx2aM50YL@B!W;woF6Fi zU7bYAya6A28-LB?*M}}4>|SH_c47;lX?_$m{n3x44MZ$-(ZuSPqaQrUl19EbP5HJ# zeb3tVFj;L3DN_elT9Cw0ejVQH6tJiPpKql9#Fn}8#}OB8ErGb)8?2&fXW!4I9A&5$ zwCjaG*JpsHltV$=;n-LqD)x9N6l{C8o_amsL%{iHY)wQ~)9TLJGzHCXy_SoG*1FKp zYUaI9<3T{^WB(yrLOzbJT#h4H}!w(*taRTb*+_|^jxe{pa;eKs-KDJX8CzP_HUGVAxH zr6CL$0UPY$0kaL7EXK~@W_q;_sH3*KYtUZXx%beEu3e94L6(;~Usx zr4SRSMAXE}?&3GYguh2}Nk@^39<5VP084p%@Qn^F(1*kXx8DHkqaSO*?1w>R24h zHh?-+t%Li#gmt4Guh#lv95NLl+zM{iL0NEY&%t)oFzMr{y zCOGQwMJ)*ERq?x}K`QlNC=Yy9C0KRzbda{GtsqW&qE#%&ZS&gCFv`9O;<*sQBzWF} z0X)p$CBni-X=1<^kgXo&5C7RLfr}MDFH!eM&=Qu&&UhTburA8d_AU9RjemGzCl*_B zH76KIY&Sak36PjA6RwE?dfsER+j@sd;~6=WP{l|mk2rG}zDTdLv;qaW{~e~CZ7zu* z<1{dEGcbA^vEqaTTfx1Bx`-A@aq{$y8DDHBc)A=pn}!({wwS~8n@;f9)`V!D%Z|YW z4rmea{l3BN>*1YvHOyRdmpPG!I+ZG2G{M6TaM>^Ht~>UBpfi`R+kby)K6U-R7;Z*G zLk=0NsucL@^J_gJoJATr$TCCwTMLPkv0n3>&(~fcwSuOXE5KD|w2-%VCmt^p+vD}I z=n|tRJ%}9nRVrnVBHt`|RJo)54MX5*!+W*RI0^*~9mjctN9W1)Y2eLGm;;ArixfKU zx!6AQIEm!>95wogovC>X`jjNSC69Ljp+dnsBY+clx4B?pCfH0&IJ?J&;fwPZhUR0F zW`ed3nAAA&8BMr??-ta^w0bs50ZN>6;QEzLJ-(Nb{@uScX5;?2Y;7ggv=Mw z5=1HBUa1T;rg$>40 z)+l`qVc|perglZ9__8VkKf9y%0Rjk;Kmd_mz~t=YR$|ZD11C)t;8^Bny%6pF&9UZm z$23pk`uU*Z2ysYugLEzgV-AE@n%PNH^%DJIB_G)i{H9P^EzuAI=Vd&eDQL@H7EQ4F zA%WuuM_bWO9r^Yx-SmKmAZE-H;5tbf!g|WkECx+YO$7(xyQ!BRyh|Nn1p5sSTL#d3 zai!ES_v#YSIV^k5&6CuL5&(%2ADOjb2}<6YG^Y|`QS!!9cju`Nr`TZN-*#EUj5?El zEY$p;5K6_7c4*1Pk2E!3Hc83@zNteeSBz0LchR zXzpRDJJU-TyIQQ?-avmHb2R)AZ6_yNQ?S!ngco@_tjwbGG>h&&Vfc?|C^eNx3Y{?{ zmhWaN1xL#b9k9Rrq9KVO2Xt`D+WIokffQomu@rxN@1&DH7l!Gatqfgw$a}a&0jj$j zt-2`E)LK+>e4I*ceDb)54Y?u&RIo^c)|U`&3rWI;5tp)aFmBx3^6-hOhlF#;Pfk!3 zYrxLWDXKU(kZmRK>%sovJ`m%J%`il)Y>E;Kw>3u4cAG_@(018%Pv8wkxa6;}w+Xy( zIIWJ>8PaF_yowHQi)7G~M6$|U+b+Aj3K@BMQKwzXT!ym%V#CTB2?A9v2=sUb1&wU9 zUj9=f1cQdN(NUUnye{SRK=VcTB|9z%6x_X7F1wFdJ&G?2@-vWfc1FW#fNaNX;EG#4 zVzji%5*{)r^SRZT#5G72~V2I4FQuYkHxWpLbC+pMYgZSJ|-$$ zK7P_vH0~-A1<_*Za^;fwJmryW;~t(eTlB}gE=Sv|8M3ZMVU^c@xCqFfI%22;Kpvb- zWb#_q9$%a{nd?u#vvhDrW)1k*($Z~+;r&d)*-9>Dy+yQYr8G6@yU>uignQ4ZW=v`A zEf7OKaLP`JV2~Ar8;%h729NyA0R_!g<_a9~wo?jop^Gxq26lIL3VZ37y0Kw?{Mr@dEklT8`L$bMV~!@Dq8K zSD?N&)a~~JuxJI1tEP*ZrOGY>Z-?PB>FrW5!f-oM$oAs>>tmnWVo6XSKF5DW*AwiyuY+!cEGQ)Ugeu@!c{T63klk@1vm{n!|4nPbG?dc_Nr> zAzZThE~xdK1=f0v#5f+&K6Q+t9`HJl?`IHk`N1oxmKYnu5h&KM*%u|lw|zy?T^5F^O>LeT^WkI0p1jNA9^i5BJzY~cfpG1&D5&cqEw0d|==d`89Tzt+OT zyLa&Q_21AP@4?aZ!H3d4O8-*u`o<@84$+}V{Nz=$YU{Vespwjc_!|S zEZMm^Jz9B)W&<*iVu%s~p-*3;?++O6JiMd{O9qIH_Erlt;>2y6i&jPehz0;5`mqaG z_5>~qOZDUGI@4HPE#{^9^2A>STMfNk6FLL>CX1`pXMz1a3vk6BP6CnN=?E?EFZv7& z4D1;}W?Rc(d75~A_VAHgTU#K4aBBluWZS-GqJw{;&uPL21k_<)#6P5ch=FBWa0Tdv z@>Us`hCQefqmCL>oWR)PLZYdhwtmh>aUKGB8vq(&uTSn_AtO3L+y>?CGfFk5B&r1;h5`W^ z-}_uZ+T|H4!MB_+XTb}dWeI<s`(yD^dt9xoOq{C>PDNKP}X6veV#64HrJ zJZBpS)VON@_A!EiY(PlBULNPbT@ZzaNwRnG8?Pwhx7=4#wP6}|V{ylo$z{!$NT=$P zxV!%~y#$r#@~nWt0pT|3hLIQ?p~DOyt%X-Qs>5bA3xyq+m<3wFkE@ zQgelb#}<|0J?$H1r&%(fZA)kD z(|Xw}cj42Zd{58)p$4#u+_C> zz&;V=XC08+p4HE@Aq}r1H4k}scx?6X@J#}`C^%|C>m@ok$|9O;GSr3RQpg24(WFil#;AWvcN_(Uou?388M1sjCD{ZRe`oa@1>AE)4*MNnU&oOZq){|)@63uo{?-v=$-Y-ema^c9wZAg5 zBg3FdHoVm2uu%3IT2IXM55g&6H>QE3dLfv_ zZje{>$s2IwAAq$?R-w8WAS*&TsK%ilcwOj*Ki2L0G}6!*BbWUm|K2UGFpV8hij`iw z00;&#@M?yzZgJqlSCRQUjs6=h_?Yf^10-sX7WXJycxdBQW8k>1`NaKRb76!VOR8KT zQ-kr?#{59tHZ9pBK^iXK2S*q)Ht)BUjkqDYa^=Rb@4C?KRd#3r`T6`b7{@7Z!3 zC*7Tn4tg)DlBn-F_y|Y?UIK#j!k96n?Mo=o{eCw_`0O1Eg;vI! z4y0N2Kli>0LIfbX*maJckjV@ok~erwddPdA*nD<$dn(Chvy6rT0bkm^6PqWYXt8)! z=c8seXklRXxWzyKN3(q1SuQi5+1}#e%6lz+$Bch$HFu-X>P8I#1U#RT>r#NH2T3Fu zbXzw;YVd_uRaNa79n?a@Jx%-ok5q@pE7kTIm?gZx0YEV!`=G=C0O~{Vu_q8M9njF6 zAYl15KDjcoygJ1)e;cr4d22SNeqY-rTjki~x>o@JS}_ISt3-mJPG@mZ7i5{l-FKIf zFTo)@tHl*?p|4+)jgS3aj3* zB3Jf-C4y5Q#eh1~@JS#*pgVSn70o3Ax)RSKqajdI{dOiXDV825d;gk>@)l>VjL$!U zBdhC^3Ax~*W7?O&I;pjtmw!dl+M_hrKE?-a${IfKq!)&_M!SDXZ8@0$kfWbEL`{dZ%J;vs((Gvi5cl1>zV1(TOeF;FE0tkz) z>-9;rz>0z*+aelHC`S4Nm@oBL2{pu^jVSl*3O3Dv7Fe$Y!zsW{*4ddwPRP`UbYjz3 zh$yJqFG?Kb6~r#fO3sw@t7n7)xFVCPsY~a; zEV+xvx8kHBh&0*x@9wc9i@EOq{N5H!wBxmPA3)lrV)eGRqGlG`t-=X4@Krv)pr8hl z5aHYya%FRIc%-A_5DUn}9KhbiKF$Km50qw6s`O;P=jlo3xR0)fqJ;5bgg-+p95G~6 z9C!AnvhTkf&nOHEVQn_C7U4J}%rtiRRmu{crteoGw&obgug9mOQ!G~pKWNW@5QsDc zpeeij)f%vdDgx-~EVV>(X`Etio+R7N6^~F(Ure|}jxT7mmOh@*!#Hyo|Ic#`YOF)+u$5lbA6}U>miI z?_Xi9Y#c@7E{?5yz?9LIYAlT3og+`jK0n6t;lDgvwh7Lxid)De<|kZ}@+oc8zmh0dCdjq1a-fUC3QbXllPuK#qYv-vydo}crO%LU3mXt$bE96 z`dc`>G1TCXxtUwnu3clB=4-iN#Ly1fFES?Oea|pA=#(-Zor8R9xt~Q-IP5y`xkqrx zQ*7waPU^U?K;CdZ2kGR29CuA)LOafV!Jr``$V~s4%U*3*4}}sme7+h*2k!yUL66t} zsA#c1GGB&R4yBqT4Lp;Xt|Nhl%3c?iYESXWUAb5nqsUkHRscm_9bPRaoRDQ<#AzSY zFeaq_@R2+@~$^LG$RLs?X?yG9Y)D`g}A&f1p_geVE zDim{F~B>o(3zkcHQd-+}S_yUTlD_NcenA38ND zDJi*2ExiVD{yrFO#q}YH)IIoEb=WW<`r=^Aelk*tHz< zhk4-b9QmnP__Wq3hn7E{+wXImzU99x4-*d6g~aq>1s`>Bf&XdF>U_LONF9{N^a6M6y(a$0HS*;SOO57X_&jX zWNW_M{+Km-(8lVLLYC#=l>Wxw&|N{wIIpLc+w=!VD0DYyYTMW3e~a5 zm*%kfVbj2AqHhY(pQOF?dPS`d2nv%Vtux95bHsJ!Jg0hDx~p1#%#j z?6(D`EU1*_&<4RqzPy-$^t*p7SA7ya%qyx6C(O>AJH;8Rsi`Kfl2E zVr`=yFbs)6@sb->X&5bdiMnE@)q>ecfLjFuqQ9-8y?*583S{ifXz-&bpDYZZq8Jb& z_DyV6LEo@#Nzd-|YlPf_eHv;T?~7MXQE>LkO!fuk+&>N2Xhak|2FDI{+YB8)!iaP1%3NgMm%A`6V=sst+BjIImRPwOYVGlK!1zh$ zg^+*7BeL1)=BZuG8g9az=oo2uE@0L)pwHcCFLKNF8DN=!qKfDK@U0+SoRx)d=sx1* zWOc|gWm3}`AW8_lB!#HW$asalcnMOqP{P@al=_l$p9*A9%{~Q~y}??)S$VfiKd~qB z1irdP-dRgv#PP7vtzJ3Y);^hKL)s%o*FS*aj)Qg1PP|A!yk=8dtEhsdxB>5dRGv0R(#S`h~$gvxXIf@7dRgjpogIJOck*M368#pCD__xUVWuyqN#Soaw-)i(b1)6|WeqzNT>6roU3Y9tCvA z5SC?~l&&F&Oq9Esd1&ks3?iRtwmuU7$6Zj2{c5E1vlM^rDb1I?H;vBU(R!IpbbcRd zwP$~rZsr}A4?gfpp2iso!xGc{4&c1tvO1hfFJdO)@;=mD_M@?i^Uh}!GvWpI)W4EtY=#$WJrZmyI~?uAKOKJ-9s+2I{JYN2dhn;38l#9TyZAX#eO@ z&}w2}rGTOD(kQ)d^N5?KKMwWjdw5!#U&yW^nrgD0ZnX5j-6Jmw^P;*2GSO(pOz^mW zOiU@O7}9nQat<3$xbb4CeCRmVRQU14*&k|Ay8&BE1$;r`|isQ~5lj6cEOZSAmr8mhMn*aiTM47qz}8P;j? zn=}fG&*I6is~nx_ItKAK9!eNb#vBO`Nlc4t{eW$UC69mJ$vW|IPCJAk3%twzJQa<* z2`|(N2$+swt(qZk$t+gpo4Ubxgq8~P$y;X{YVynO#R{=xJ#(rm%>R@4_60Q!ywFX8k^qrG8JGCYk)l(p3Ae$XpVs%2fnOik_4Am{VC3d2BUH=U-sur zvh}zws*U$3MPS}UUzw~sg?cN?dn0mkk{EkIG}@b5<#h2Kh_)xeOX+nRUxmjqG{1Uw zxu1W3ZEfu_{|wittD_{6hq{Y%2EHgSp59{VNbyCYLLyVkmxo5Nk_WXaOr$~6on{T7 zBdnMb5)JVm-kwpyd9n-i+^@3Uy-^F@w2@=KR@GM;GL%&k?-(6TZ9uOQjlgt_nK*Dp zw$H&VY8uU(FKqpv>h_JCWy-BKEX%-*a)T1TB$tt?$_LgEFuRC?^KwJ2{3xai;; zARx?rMahGaL(Rr;OJ?p|N1^3#me|8!j3hC1gi_V(Q^-$mAyE~cr&tnI@SUGGSBe*m zo2{DU>VY;qC;~p4oJn{@;DHMnjH^DJT(0UpreJB3Z@e5`K$V?B=Tkkrxi?5UL*Atf z<;jN(?`rmheQMP-*mc-(6BGTdZ?N);@JdM8wMqSF3?!*35WQRE9zTkHjfw2C4;Lnc zVO7)vw~Mn@kCJG`G(eqZ0CmnI9kAbkAf?4QdJn73iWdAaB$pz4!BF12qpE!@vl zyh_6FQ=N+*OU(6_&Ee)tD)wSQ-f6@LFW$a=ThaVo+4nkWhfTK{znPr}L{iO*QDWDR zqd)}7TEJj4&ECu+;knUc2~4`*dSm)MM@rWOgs7`#=RknCg{Vv~@YZp>|7rQD+=C-o zQwh8MQV-Wa9}o!!gE0Lc#J9@fnh?ad%Q`^u@Gj#wq1wNYOEdu81Tkrr@CwO9M6=^r zpZBpTsw9CD+>BV3X9o1sy_W|FKo@NO?*1G1ySVt<6FQFs^UF04_`I-x(~0Mujkk!d zU6){C4B5U;^Xpsz#&wUZBkf8mV$N`sqzh7l^^mfp?yMPU!`4oP9)TZTS|K)|Ejc>|$C`42*(%6msTUiT5`>L(S! zHrpgfqVW1zEw-@3et}f$`uj!|7NL1+o`uyv7_?N!ZzbG1DAas`4>Uypg%zjdqobZe z5WtdU+oP|Ce~zwP!bWyty_hCWqK2M4gyDSPmXd4E*P2SN9WL72+bb3IRs=SuN9#8` zkD00@g>*yM*3+oslCOPYM9v|-~v*BX>m(cD~G zT6$ek4Q6B=uqCruK=So)%XYT8%Z@KZtQ)?bqRqlKf_V6upTX-C*bXp2b6BtRvSnKV z*Ff6XS)_BLLd>0ruk>I%#Vg|}VG}MdLgz)T@~{E3Ytz;ELn@EFQ&WDB6jmwi&MmrN*y*c5Lrm{ z8PL%~e_8?o6rTsyPM=xD_KNoT$TpOBy9fn7?! z|BI5=g_ZIv2y9LNIP3bx@HPkpE}asmO#Te*n%H|&Sxk!nW7WViJ%x&p#o-t)fBWwN zo0ETW|84%g-`2Z2?)6`N{tXni&AA%(9`W1n+Pt=@A2}p%iC}DR0@IAoeRI2j#u;A< zNr|mK*Y0Mx)~f2$7Bf<6KPdqs&pqawy4+y!cf`66^i&&xWOpM%zv!J}5jrbN!EOp= z((?&fn#Y0(v>?%jR@P5U0E>M}X=1*Et(AnW6V|Jv>J8;D664NpbxPnTIId`cC z`P#jE?^rX#;_~=TiQ**SJPvfpH3@kN;vkdA1BJA6xO*=e15ZmTzB#(RJTZ|o)c$B8 zK+tRFxrrG3A;Y>VGoUr&H1m&vemj7#GS{_D#nLc8_%d|O9hbiMe_NL>(=DhRR|VCC zgyFp(-4gH0Re3#97i9DHBn1DlNZ z;}O7e=eoz&hYMrcgfzqLzN4Sef)Ycz;O9^3a;RFHoQ>R+pcJJVwY)?ApjBD}6nVEr z*ZBZjGNl`vBCvPuw2xxPv6+4EP9YT8sv8?`H`;`CLP@sha&b4|TA}g3_}e4EnAJ4S z@#M3=QV3FIzuC_kZ?UIXjqB|7fA$QFuT(TX)h~R${I1A2RwT5n^S(+2-+ewhxF6W; zXS2?w18hz~P5r5I^E22&E$Y`*ymzEm5ZsU6f~wZN0}b7dX?ZUZQlBL&A}WǫDo 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%0D( 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 diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 5f6956c1..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "images": [ - { - "filename": "App-Icon-1024x1024@1x.png", - "idiom": "universal", - "platform": "ios", - "size": "1024x1024" - } - ], - "info": { - "version": 1, - "author": "expo" - } -} diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/Contents.json b/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/Contents.json deleted file mode 100644 index b4ded435..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info": { - "version": 1, - "author": "expo" - } -} diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/Contents.json b/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/Contents.json deleted file mode 100644 index 99783221..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "splash_1x.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "splash_2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "splash_3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/image.png b/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/image.png deleted file mode 100644 index 8bf3cf028b4157579b0494c2f576b96bb1ba1a92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61904 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 diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/splash_1x.png b/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreen.imageset/splash_1x.png deleted file mode 100644 index 3226ed417fbe2ee4e5e874c4b7d530e3ea73f603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20830 zcmeEthc{eN_jZbsM36+Hw-iZ45Yg)p5kd48od}}0j8SKTAfiR@Eqd>Dn9)V=MjyQm z27_Tt`MkgP&-mWE)?Ihqv(`OppMCau_Or_k)lgHUzQcUy+O=!cN*~{AUAsn3cJ11o zxm!1{Ml7Y4Ij$bp-L(|oU7ziH4Y_)`?efvU{n|Auy8qnQucf3hUb}XqLgSN;!h;77 z7#J8hIXNFce$2?o`26{E85x;ZuU;`RF+FRW- zI%;Za%*@PmbaYBeO5WbyA3uJ4`0(M|w{MM&jU62w?d|Oa1Oy}{C2eeM^7He3eSJAN zI1CI7qNAhB%gaSYMMXqJtgNhZa&nTAlD>cc?(Xj1+SFK=REVt;@C&d$#1>FM6y-oU_s ztgNh*lvH71AqIm93kwqz6jW4H{Qdj){QUgc+1dX7{>zsyg@uKkoSd4Pn!bJeCMG7P zsi_HtLXk)$3WchztzBPV9~v66wY7cy`n8;#oVvQYo}Qkmsi}*LOGrqFr>Cc#o!yr& zUyO{5-o1MV00353SC5a6{r&w*N=j;KYDPvz`uh4B8yoBD>i+)yo05_e6B82@6y)XQ z<>25TBqU^EVbR;$tD>T!udnan;gOk{IXgSMxw+Zd*_oA<_3YU*A0Ho8RaIwaXEYjJ zRaKRckg&3{5)~CyQBg57GgDMlq@kfBIv9z@GHYisN3 z>gumwzXk*Z3=a>Fjg5i9U_(R0@$vEZ@874Urk0kLW@l%A`0&Bp+}j zBX-Hp#79b|V&oKNT7d$lyHZ>ooBv(^)4=~U@IMXwPXqtIXh8O~M7zPXHHH1AtZET5 z%OWQ!g`G@x=vRdO!unvou=JfD%ny*IUSU7GQrO95BYu@3j!X5ZW9+;cuL(baoz8C6 z+8RydTr0d^<+?uy+DefJ0Rz0`$z zqmZy>AeQfLTI2&C;{{BNY3t=PF9r%V`P)OdGZetw+z8##X8Y1=G&#{!MC|mKr%QHO z=%M8LDo;p0HMH17m6j~)`Ca(oZuZmi9Z5Hx|GeXX@bkGbTgx6(P;1;RmpP?k&$`VvRId3i6*&9o&_Yi53I5{!0uy{$dwP%?+S*guU5=ZfQimai5 z=5yPTj`rSSZAvc%@=bHB-Sf*J2Q6DREu&sjH7p|5>+w%TZ8rNE(0)5-HN!iTcCOI6 z2+@e*>_?y9Mdu3=?VPV$S7KYP(IwQfrYifEq)=1Ygg9`Xb&(HX^ z5NoRh4%`ifAX|m*hH$pS%_03d68bc?*!?6_pa$uEIm^qn#^;S6-oa7cxZ?GKx%;bJ zBgU5=@OUGPdlWyOjmy2AP966BGAOF{+e~B1`17No6u3Kjc@)79Zy?O=UKlRtCNdfo zC0DkZg-2vg z)ptWHB8Ff6qVIU6c-F;+1^bdt!*+E&1Osy$DQZA6V)fg|ivFRLL*Eu=+bk(y3&c8JrB6M31m8Tm(M8+8HaAPs+B37yCK(Pi_Q9?BGAu zXjZ*A>`6&_Xk?=?U~l#*?BC{V$Qq_O9@}t3O|Fl+!e=FaHI#g+>i*~8!HpvIC7An& zE4;R6&<xTZKR;vRcGur3Si<>!#a9h; zie#U%MM>4{qrybiDe=>*3>kDc{og)&-YvX+JZ959#eUfThpzxFYwZ4ORQswsQ zCHvl?>d{i@1$leW;syWy-b&gnjo=SR_U%eH73zHXfUmDVw&L)F)Ojh8H9}fIj;CYh z=X!o8KWrt(X&&a2joIEe+DarqMNUwQpS?KmJ*yhdu)?+ytm1BI1y(CQgr9FVaWw3l z5O9lOiHmdVxIfPa%D(}R7ShcYE;`BC%9p@80_Hykvq_ROh54jmS>E``TUweCW6oUbgRN|y1Q$mB4a2^o8+|#n0_;S(Z;8%;#)u>R;OE zy?gge(ndwob(fc)csyWI0^7wlROl_94)DX5Vw#;hla!tNAr8kjGQglSf7zd1Niw{q zKC3_P+;kWG@Ng)t1r-x7YJ$P+$_w(L=krxBf$1rvvWez1$GMYM-<~G>C9~7j{uezA z&L)52&2H-cnhh$-+%Mk&2y3uR*?O#WkiVc$aI-cgEVY4X!7>E~fz5q=M>*bCab(vd z|9uPsf@OTfk!gGd?axUj*wH3{`i#uqm?!fB|6UVqHH}qCMgE3`K(svnCM)RfLL(}X z1};4bwh2?*s&!0B(-^*3YE+Fth&TXAF|;_DMqGxiK-t4dPHk*bG{f+1F7dXn4?)$Y-fO>{Xuw3S>+7R*hWDdP$@urtUt7Ds zkXB+(GGku8x*iKX^4C*Mp)PWN;+&)ej7cqLBOVJ%qv!PNQhyrcpi|ebY@VyCw|WbZ z1}cU6&nC+&W|BIA>G{;fxo)wzFc~w@N)wjP*i@H$Z6RErG|?NcEX!Rb%?uM1D%^Lg z^^5`Jd(PN^M3f5m=*hx}j5E%c)1@81*{{n`>=@a5Nj()pd&bN=)6468EA`JO1*a9Ll@(c}e;Oui1GIQO&XB%;WEjx5*aGUW1#d z#fI+C>&(jUn(>iLV%)+qo&!~ml*9N+)x_N$g*i`?5U+T|C~7HCwZv+&tuI$G^QNUD zYo{HL3!<*rArZ{5kJ*CTIZS2+Vj4%aG8K9T2vSB>s znZQA5RXXjnTAVl1^$H-7yjLKs^<^yqEYbKyJUZZlVNt9>J^c>+cJE~B@iqr7XaUl` z3ywkxK`giqTQr29!h zp-SAhk4~NZmeUh^oRZ9r+!6-w7dabWPA9AKG^;jluO#=zJRcr5X@bv&63c#QtFPja z!Fmo#@wlb-*+;+BLvO3HfDb41TRj|KUOD67z<;yk7e>~R93JQwltc%k=$D^K)Amt$ z1R(fG8==n`aI+x!01AiZy}R^(3iCRgH`ws_R3>QeiE+B@m2ToeiG^LbO<2>QKnHow ze)F{pfsView&HWwReXFRggqxh$fdR`PS8xfO!ijaFmH2#5!4NApf#AKK%HoMIRjhc zF%y4hp;=J@z_sjW91nBxo77c(fxnSni$Uf$s*%0qt#1!{WLW*^E1P$dkJmt3l;BH(r2IQ5BG=h<_s2$_

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm z27_Tt`MkgP&-mWE)?Ihqv(`OppMCau_Or_k)lgHUzQcUy+O=!cN*~{AUAsn3cJ11o zxm!1{Ml7Y4Ij$bp-L(|oU7ziH4Y_)`?efvU{n|Auy8qnQucf3hUb}XqLgSN;!h;77 z7#J8hIXNFce$2?o`26{E85x;ZuU;`RF+FRW- zI%;Za%*@PmbaYBeO5WbyA3uJ4`0(M|w{MM&jU62w?d|Oa1Oy}{C2eeM^7He3eSJAN zI1CI7qNAhB%gaSYMMXqJtgNhZa&nTAlD>cc?(Xj1+SFK=REVt;@C&d$#1>FM6y-oU_s ztgNh*lvH71AqIm93kwqz6jW4H{Qdj){QUgc+1dX7{>zsyg@uKkoSd4Pn!bJeCMG7P zsi_HtLXk)$3WchztzBPV9~v66wY7cy`n8;#oVvQYo}Qkmsi}*LOGrqFr>Cc#o!yr& zUyO{5-o1MV00353SC5a6{r&w*N=j;KYDPvz`uh4B8yoBD>i+)yo05_e6B82@6y)XQ z<>25TBqU^EVbR;$tD>T!udnan;gOk{IXgSMxw+Zd*_oA<_3YU*A0Ho8RaIwaXEYjJ zRaKRckg&3{5)~CyQBg57GgDMlq@kfBIv9z@GHYisN3 z>gumwzXk*Z3=a>Fjg5i9U_(R0@$vEZ@874Urk0kLW@l%A`0&Bp+}j zBX-Hp#79b|V&oKNT7d$lyHZ>ooBv(^)4=~U@IMXwPXqtIXh8O~M7zPXHHH1AtZET5 z%OWQ!g`G@x=vRdO!unvou=JfD%ny*IUSU7GQrO95BYu@3j!X5ZW9+;cuL(baoz8C6 z+8RydTr0d^<+?uy+DefJ0Rz0`$z zqmZy>AeQfLTI2&C;{{BNY3t=PF9r%V`P)OdGZetw+z8##X8Y1=G&#{!MC|mKr%QHO z=%M8LDo;p0HMH17m6j~)`Ca(oZuZmi9Z5Hx|GeXX@bkGbTgx6(P;1;RmpP?k&$`VvRId3i6*&9o&_Yi53I5{!0uy{$dwP%?+S*guU5=ZfQimai5 z=5yPTj`rSSZAvc%@=bHB-Sf*J2Q6DREu&sjH7p|5>+w%TZ8rNE(0)5-HN!iTcCOI6 z2+@e*>_?y9Mdu3=?VPV$S7KYP(IwQfrYifEq)=1Ygg9`Xb&(HX^ z5NoRh4%`ifAX|m*hH$pS%_03d68bc?*!?6_pa$uEIm^qn#^;S6-oa7cxZ?GKx%;bJ zBgU5=@OUGPdlWyOjmy2AP966BGAOF{+e~B1`17No6u3Kjc@)79Zy?O=UKlRtCNdfo zC0DkZg-2vg z)ptWHB8Ff6qVIU6c-F;+1^bdt!*+E&1Osy$DQZA6V)fg|ivFRLL*Eu=+bk(y3&c8JrB6M31m8Tm(M8+8HaAPs+B37yCK(Pi_Q9?BGAu zXjZ*A>`6&_Xk?=?U~l#*?BC{V$Qq_O9@}t3O|Fl+!e=FaHI#g+>i*~8!HpvIC7An& zE4;R6&<xTZKR;vRcGur3Si<>!#a9h; zie#U%MM>4{qrybiDe=>*3>kDc{og)&-YvX+JZ959#eUfThpzxFYwZ4ORQswsQ zCHvl?>d{i@1$leW;syWy-b&gnjo=SR_U%eH73zHXfUmDVw&L)F)Ojh8H9}fIj;CYh z=X!o8KWrt(X&&a2joIEe+DarqMNUwQpS?KmJ*yhdu)?+ytm1BI1y(CQgr9FVaWw3l z5O9lOiHmdVxIfPa%D(}R7ShcYE;`BC%9p@80_Hykvq_ROh54jmS>E``TUweCW6oUbgRN|y1Q$mB4a2^o8+|#n0_;S(Z;8%;#)u>R;OE zy?gge(ndwob(fc)csyWI0^7wlROl_94)DX5Vw#;hla!tNAr8kjGQglSf7zd1Niw{q zKC3_P+;kWG@Ng)t1r-x7YJ$P+$_w(L=krxBf$1rvvWez1$GMYM-<~G>C9~7j{uezA z&L)52&2H-cnhh$-+%Mk&2y3uR*?O#WkiVc$aI-cgEVY4X!7>E~fz5q=M>*bCab(vd z|9uPsf@OTfk!gGd?axUj*wH3{`i#uqm?!fB|6UVqHH}qCMgE3`K(svnCM)RfLL(}X z1};4bwh2?*s&!0B(-^*3YE+Fth&TXAF|;_DMqGxiK-t4dPHk*bG{f+1F7dXn4?)$Y-fO>{Xuw3S>+7R*hWDdP$@urtUt7Ds zkXB+(GGku8x*iKX^4C*Mp)PWN;+&)ej7cqLBOVJ%qv!PNQhyrcpi|ebY@VyCw|WbZ z1}cU6&nC+&W|BIA>G{;fxo)wzFc~w@N)wjP*i@H$Z6RErG|?NcEX!Rb%?uM1D%^Lg z^^5`Jd(PN^M3f5m=*hx}j5E%c)1@81*{{n`>=@a5Nj()pd&bN=)6468EA`JO1*a9Ll@(c}e;Oui1GIQO&XB%;WEjx5*aGUW1#d z#fI+C>&(jUn(>iLV%)+qo&!~ml*9N+)x_N$g*i`?5U+T|C~7HCwZv+&tuI$G^QNUD zYo{HL3!<*rArZ{5kJ*CTIZS2+Vj4%aG8K9T2vSB>s znZQA5RXXjnTAVl1^$H-7yjLKs^<^yqEYbKyJUZZlVNt9>J^c>+cJE~B@iqr7XaUl` z3ywkxK`giqTQr29!h zp-SAhk4~NZmeUh^oRZ9r+!6-w7dabWPA9AKG^;jluO#=zJRcr5X@bv&63c#QtFPja z!Fmo#@wlb-*+;+BLvO3HfDb41TRj|KUOD67z<;yk7e>~R93JQwltc%k=$D^K)Amt$ z1R(fG8==n`aI+x!01AiZy}R^(3iCRgH`ws_R3>QeiE+B@m2ToeiG^LbO<2>QKnHow ze)F{pfsView&HWwReXFRggqxh$fdR`PS8xfO!ijaFmH2#5!4NApf#AKK%HoMIRjhc zF%y4hp;=J@z_sjW91nBxo77c(fxnSni$Uf$s*%0qt#1!{WLW*^E1P$dkJmt3l;BH(r2IQ5BG=h<_s2$_

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{Dn9)V=MjyQm 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{d#Sor Q5h%gn>FVdQ&MBb@0EMCrYXATM diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreenBackground.imageset/splash.png b/examples/js/expo/gnoboard/ios/gnoboard/Images.xcassets/SplashScreenBackground.imageset/splash.png deleted file mode 100644 index 3226ed417fbe2ee4e5e874c4b7d530e3ea73f603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20830 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

^ks}S_djK|lsYcSMO4MSVo0;aac3{Zq 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 Xmv!7VeU{ - - - - CADisableMinimumFrameDurationOnPhone - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - gnoboard - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleURLTypes - - - CFBundleURLSchemes - - land.gno.gnoboard - - - - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - NSAllowsLocalNetworking - - - UILaunchStoryboardName - SplashScreen - UIRequiredDeviceCapabilities - - arm64 - - UIRequiresFullScreen - - UIStatusBarStyle - UIStatusBarStyleDefault - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIUserInterfaceStyle - Light - UIViewControllerBasedStatusBarAppearance - - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/ios/gnoboard/PrivacyInfo.xcprivacy b/examples/js/expo/gnoboard/ios/gnoboard/PrivacyInfo.xcprivacy deleted file mode 100644 index 5bb83c5d..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/PrivacyInfo.xcprivacy +++ /dev/null @@ -1,48 +0,0 @@ - - - - - NSPrivacyAccessedAPITypes - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryUserDefaults - NSPrivacyAccessedAPITypeReasons - - CA92.1 - - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryFileTimestamp - NSPrivacyAccessedAPITypeReasons - - 0A2A.1 - 3B52.1 - C617.1 - - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryDiskSpace - NSPrivacyAccessedAPITypeReasons - - E174.1 - 85F4.1 - - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategorySystemBootTime - NSPrivacyAccessedAPITypeReasons - - 35F9.1 - - - - NSPrivacyCollectedDataTypes - - NSPrivacyTracking - - - diff --git a/examples/js/expo/gnoboard/ios/gnoboard/SplashScreen.storyboard b/examples/js/expo/gnoboard/ios/gnoboard/SplashScreen.storyboard deleted file mode 100644 index ed03a529..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/SplashScreen.storyboard +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/ios/gnoboard/Supporting/Expo.plist b/examples/js/expo/gnoboard/ios/gnoboard/Supporting/Expo.plist deleted file mode 100644 index 750be020..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/Supporting/Expo.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - EXUpdatesCheckOnLaunch - ALWAYS - EXUpdatesEnabled - - EXUpdatesLaunchWaitMs - 0 - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/ios/gnoboard/gnoboard-Bridging-Header.h b/examples/js/expo/gnoboard/ios/gnoboard/gnoboard-Bridging-Header.h deleted file mode 100644 index 75a496d5..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/gnoboard-Bridging-Header.h +++ /dev/null @@ -1,7 +0,0 @@ -// -// Use this file to import your target's public headers that you would like to expose to Swift. -// - -#import "React/RCTBridge.h" -#import "React/RCTBridgeModule.h" -#import "React/RCTEventEmitter.h" diff --git a/examples/js/expo/gnoboard/ios/gnoboard/gnoboard.entitlements b/examples/js/expo/gnoboard/ios/gnoboard/gnoboard.entitlements deleted file mode 100644 index f683276c..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/gnoboard.entitlements +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/examples/js/expo/gnoboard/ios/gnoboard/main.m b/examples/js/expo/gnoboard/ios/gnoboard/main.m deleted file mode 100644 index 25181b6c..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/main.m +++ /dev/null @@ -1,10 +0,0 @@ -#import - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} - diff --git a/examples/js/expo/gnoboard/ios/gnoboard/noop-file.swift b/examples/js/expo/gnoboard/ios/gnoboard/noop-file.swift deleted file mode 100644 index b2ffafbf..00000000 --- a/examples/js/expo/gnoboard/ios/gnoboard/noop-file.swift +++ /dev/null @@ -1,4 +0,0 @@ -// -// @generated -// A blank Swift file must be created for native modules with Swift files to work correctly. -// diff --git a/examples/js/expo/gnoboard/package-lock.json b/examples/js/expo/gnoboard/package-lock.json index 0fedf7f7..299dc28e 100644 --- a/examples/js/expo/gnoboard/package-lock.json +++ b/examples/js/expo/gnoboard/package-lock.json @@ -8,11 +8,10 @@ "name": "gnoboard", "version": "1.0.0", "dependencies": { - "@buf/gnolang_gnonative.bufbuild_es": "^1.7.2-20240905152811-1254a97aecd9.2", - "@buf/gnolang_gnonative.connectrpc_es": "^1.4.0-20240905152811-1254a97aecd9.3", "@bufbuild/protobuf": "^1.7.2", "@connectrpc/connect": "^1.4.0", "@connectrpc/connect-web": "^1.4.0", + "@gnolang/gnonative": "^3.0.0", "@react-navigation/bottom-tabs": "^6.5.8", "@react-navigation/native": "^6.1.7", "@react-navigation/native-stack": "^6.9.13", @@ -2155,17 +2154,17 @@ } }, "node_modules/@buf/gnolang_gnonative.bufbuild_es": { - "version": "1.7.2-20240905152811-1254a97aecd9.2", - "resolved": "https://buf.build/gen/npm/v1/@buf/gnolang_gnonative.bufbuild_es/-/gnolang_gnonative.bufbuild_es-1.7.2-20240905152811-1254a97aecd9.2.tgz", + "version": "1.7.2-20240919093120-8280c8c152be.2", + "resolved": "https://buf.build/gen/npm/v1/@buf/gnolang_gnonative.bufbuild_es/-/gnolang_gnonative.bufbuild_es-1.7.2-20240919093120-8280c8c152be.2.tgz", "peerDependencies": { "@bufbuild/protobuf": "^1.7.2" } }, "node_modules/@buf/gnolang_gnonative.connectrpc_es": { - "version": "1.4.0-20240905152811-1254a97aecd9.3", - "resolved": "https://buf.build/gen/npm/v1/@buf/gnolang_gnonative.connectrpc_es/-/gnolang_gnonative.connectrpc_es-1.4.0-20240905152811-1254a97aecd9.3.tgz", + "version": "1.4.0-20240919093120-8280c8c152be.3", + "resolved": "https://buf.build/gen/npm/v1/@buf/gnolang_gnonative.connectrpc_es/-/gnolang_gnonative.connectrpc_es-1.4.0-20240919093120-8280c8c152be.3.tgz", "dependencies": { - "@buf/gnolang_gnonative.bufbuild_es": "1.7.2-20240905152811-1254a97aecd9.2" + "@buf/gnolang_gnonative.bufbuild_es": "1.7.2-20240919093120-8280c8c152be.2" }, "peerDependencies": { "@connectrpc/connect": "^1.4.0" @@ -3539,6 +3538,26 @@ "node": ">=8" } }, + "node_modules/@gnolang/gnonative": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@gnolang/gnonative/-/gnonative-3.0.0.tgz", + "integrity": "sha512-2vtfdEp0pCtDdIwupW8KaT948WYFLXT3Re+llEl3XaCmsVTIUKI+/Aicr6u1A5xShbw9FTPsPoBT30hgbk7qaQ==", + "license": "MIT", + "dependencies": { + "@buf/gnolang_gnonative.bufbuild_es": "^1.7.2-20240919093120-8280c8c152be.2", + "@buf/gnolang_gnonative.connectrpc_es": "^1.4.0-20240919093120-8280c8c152be.3", + "@bufbuild/protobuf": "^1.8.0", + "@connectrpc/connect": "^1.4.0", + "@connectrpc/connect-web": "^1.4.0", + "base64-js": "^1.5.1", + "fast-text-encoding": "^1.0.6" + }, + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", @@ -13095,6 +13114,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-text-encoding": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", + "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==", + "license": "Apache-2.0" + }, "node_modules/fast-xml-parser": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", diff --git a/examples/js/expo/gnoboard/package.json b/examples/js/expo/gnoboard/package.json index 92f83903..3d221a2b 100644 --- a/examples/js/expo/gnoboard/package.json +++ b/examples/js/expo/gnoboard/package.json @@ -14,11 +14,10 @@ "storybook-watch": "sb-rn-watcher" }, "dependencies": { - "@buf/gnolang_gnonative.bufbuild_es": "^1.7.2-20240905152811-1254a97aecd9.2", - "@buf/gnolang_gnonative.connectrpc_es": "^1.4.0-20240905152811-1254a97aecd9.3", "@bufbuild/protobuf": "^1.7.2", "@connectrpc/connect": "^1.4.0", "@connectrpc/connect-web": "^1.4.0", + "@gnolang/gnonative": "^3.0.0", "@react-navigation/bottom-tabs": "^6.5.8", "@react-navigation/native": "^6.1.7", "@react-navigation/native-stack": "^6.9.13", diff --git a/examples/js/expo/gnoboard/src/GoBridge/GoBridge.native.ts b/examples/js/expo/gnoboard/src/GoBridge/GoBridge.native.ts deleted file mode 100644 index 634cd102..00000000 --- a/examples/js/expo/gnoboard/src/GoBridge/GoBridge.native.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { NativeModules } from 'react-native'; - -import { GoBridgeInterface } from './GoBridgeInterface'; - -export const GoBridge: GoBridgeInterface = NativeModules.GoBridge; diff --git a/examples/js/expo/gnoboard/src/GoBridge/GoBridge.ts b/examples/js/expo/gnoboard/src/GoBridge/GoBridge.ts deleted file mode 100644 index 49f9c684..00000000 --- a/examples/js/expo/gnoboard/src/GoBridge/GoBridge.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { GoBridgeInterface } from './GoBridgeInterface'; - -class NoopGoBridge implements GoBridgeInterface { - initBridge() { - return Promise.reject(); - } - - closeBridge() { - return Promise.reject(); - } - - getTcpPort() { - return Promise.reject(); - } - - invokeGrpcMethod() { - return Promise.reject(); - } - - createStreamClient() { - return Promise.reject(); - } - - streamClientReceive() { - return Promise.reject(); - } - - closeStreamClient() { - return Promise.reject(); - } -} - -export const GoBridge: GoBridgeInterface = new NoopGoBridge(); diff --git a/examples/js/expo/gnoboard/src/GoBridge/GoBridgeInterface.ts b/examples/js/expo/gnoboard/src/GoBridge/GoBridgeInterface.ts deleted file mode 100644 index 931edab8..00000000 --- a/examples/js/expo/gnoboard/src/GoBridge/GoBridgeInterface.ts +++ /dev/null @@ -1,10 +0,0 @@ -export interface GoBridgeInterface { - initBridge(): Promise; - closeBridge(): Promise; - getTcpPort(): Promise; - startGnokeyMobileService(): Promise; - invokeGrpcMethod(method: string, jsonMessage: string): Promise; - createStreamClient(method: string, jsonMessage: string): Promise; - streamClientReceive(id: string): Promise; - closeStreamClient(id: string): Promise; -} diff --git a/examples/js/expo/gnoboard/src/GoBridge/index.ts b/examples/js/expo/gnoboard/src/GoBridge/index.ts deleted file mode 100644 index 4c0a3de4..00000000 --- a/examples/js/expo/gnoboard/src/GoBridge/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { GoBridge } from './GoBridge'; -export { GoBridgeInterface } from './GoBridgeInterface'; diff --git a/examples/js/expo/gnoboard/src/GoBridge/types.ts b/examples/js/expo/gnoboard/src/GoBridge/types.ts deleted file mode 100644 index 8d68351e..00000000 --- a/examples/js/expo/gnoboard/src/GoBridge/types.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { KeyInfo } from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb'; - -export type GnoConfig = { - Remote: string; - ChainID: string; - KeyName: string; - Password: string; - GasFee: string; - GasWanted: bigint; - Mnemonic: string; -}; - -export type NetworkMetainfo = { - chainId: string; - chainName: string; - gnoAddress: string; -}; - -export type GnoAccount = KeyInfo; diff --git a/examples/js/expo/gnoboard/src/api/GnoNativeApi.ts b/examples/js/expo/gnoboard/src/api/GnoNativeApi.ts deleted file mode 100644 index 48095e4a..00000000 --- a/examples/js/expo/gnoboard/src/api/GnoNativeApi.ts +++ /dev/null @@ -1,485 +0,0 @@ -import { - AddressFromBech32Request, - AddressToBech32Request, - AddressFromMnemonicRequest, - BroadcastTxCommitResponse, - CallRequest, - CallResponse, - CreateAccountRequest, - DeleteAccountRequest, - DeleteAccountResponse, - GenerateRecoveryPhraseRequest, - GetActiveAccountRequest, - GetActiveAccountResponse, - GetActivatedAccountRequest, - GetActivatedAccountResponse, - GetChainIDRequest, - GetKeyInfoByAddressRequest, - GetKeyInfoByNameOrAddressRequest, - GetKeyInfoByNameRequest, - GetRemoteRequest, - HasKeyByAddressRequest, - HasKeyByNameOrAddressRequest, - HasKeyByNameRequest, - HelloRequest, - HelloStreamResponse, - KeyInfo, - ListKeyInfoRequest, - MakeTxResponse, - MsgCall, - MsgSend, - QEvalRequest, - QueryAccountRequest, - QueryAccountResponse, - QueryRequest, - QueryResponse, - RenderRequest, - SelectAccountRequest, - SelectAccountResponse, - ActivateAccountRequest, - ActivateAccountResponse, - SendRequest, - SendResponse, - SetChainIDRequest, - SetChainIDResponse, - SetPasswordRequest, - SetPasswordResponse, - SetRemoteRequest, - SetRemoteResponse, - SignTxResponse, - UpdatePasswordRequest, - UpdatePasswordResponse, -} from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb'; -import { GnoNativeService } from '@buf/gnolang_gnonative.connectrpc_es/rpc_connect'; -import { PromiseClient } from '@connectrpc/connect'; - -import { GnoKeyApi, BridgeStatus, Config } from './types'; -import { GoBridge, GoBridgeInterface } from '../GoBridge'; -import * as Grpc from '../grpc/client'; - -export class GnoNativeApi implements GnoKeyApi, GoBridgeInterface { - bridgeStatus = BridgeStatus.Stopped; - config: Config; - clientInstance: PromiseClient | undefined; - - constructor(config: Config) { - this.config = config; - } - - async initClient() { - if (this.bridgeStatus === BridgeStatus.Stopped) { - console.log('Bridge stopped. Initializing...'); - await this.#initBridge(); - } - - if (this.clientInstance) { - console.error('GoBridge already initialized.'); - return true; - } - - const port = await GoBridge.getTcpPort(); - console.log('GoBridge GRPC client instance port: %s', port); - const client = Grpc.createClient(port); - this.clientInstance = client; - console.log('GoBridge GRPC client instance. Done.'); - - try { - await this.clientInstance.setRemote(new SetRemoteRequest({ remote: this.config.remote })); - await this.clientInstance.setChainID( - new SetChainIDRequest({ chainId: this.config.chain_id }), - ); - console.log('✅ GnoNative bridge initialized.'); - if (this.config.start_gnokey_mobile_service) { - await this.startGnokeyMobileService(); - console.log('✅ Gnokey Mobile service started.'); - } - return true; - } catch (error) { - console.error(error); - return false; - } - } - - async #initBridge() { - if (this.bridgeStatus === BridgeStatus.Stopped) { - console.log('Initializing bridge...'); - this.bridgeStatus = BridgeStatus.Starting; - await GoBridge.initBridge(); - console.log('Bridge initialized.'); - this.bridgeStatus = BridgeStatus.Started; - } - } - - #getClient() { - if (!this.clientInstance) { - throw new Error('GoBridge client instance not initialized.'); - } - - return this.clientInstance; - } - - async setRemote(remote: string): Promise { - const client = this.#getClient(); - const response = client.setRemote(new SetRemoteRequest({ remote })); - return response; - } - - async getRemote(): Promise { - const client = this.#getClient(); - const response = await client.getRemote(new GetRemoteRequest()); - return response.remote; - } - - async signTx( - txJson: string, - address: Uint8Array, - accountNumber: bigint = BigInt(0), - sequenceNumber: bigint = BigInt(0), - ): Promise { - const client = this.#getClient(); - const response = client.signTx({ txJson, address, accountNumber, sequenceNumber }); - return response; - } - - async setChainID(chainId: string): Promise { - const client = this.#getClient(); - const response = client.setChainID(new SetChainIDRequest({ chainId })); - return response; - } - - async getChainID() { - const client = this.#getClient(); - const response = await client.getChainID(new GetChainIDRequest()); - return response.chainId; - } - - async createAccount( - nameOrBech32: string, - mnemonic: string, - password: string, - ): Promise { - const client = this.#getClient(); - const reponse = await client.createAccount( - new CreateAccountRequest({ - nameOrBech32, - mnemonic, - password, - }), - ); - return reponse.key; - } - - async generateRecoveryPhrase() { - const client = this.#getClient(); - const response = await client.generateRecoveryPhrase(new GenerateRecoveryPhraseRequest()); - return response.phrase; - } - - async hasKeyByName(name: string) { - const client = this.#getClient(); - const response = await client.hasKeyByName(new HasKeyByNameRequest({ name })); - return response.has; - } - - async hasKeyByAddress(address: Uint8Array) { - const client = this.#getClient(); - const response = await client.hasKeyByAddress(new HasKeyByAddressRequest({ address })); - return response.has; - } - - async hasKeyByNameOrAddress(nameOrBech32: string) { - const client = this.#getClient(); - const response = await client.hasKeyByNameOrAddress( - new HasKeyByNameOrAddressRequest({ nameOrBech32 }), - ); - return response.has; - } - - async getKeyInfoByName(name: string): Promise { - const client = this.#getClient(); - const response = await client.getKeyInfoByName(new GetKeyInfoByNameRequest({ name })); - return response.key; - } - - async getKeyInfoByAddress(address: Uint8Array): Promise { - const client = this.#getClient(); - const response = await client.getKeyInfoByAddress(new GetKeyInfoByAddressRequest({ address })); - return response.key; - } - - async getKeyInfoByNameOrAddress(nameOrBech32: string): Promise { - const client = this.#getClient(); - const response = await client.getKeyInfoByNameOrAddress( - new GetKeyInfoByNameOrAddressRequest({ nameOrBech32 }), - ); - return response.key; - } - - async listKeyInfo(): Promise { - const client = this.#getClient(); - const response = await client.listKeyInfo(new ListKeyInfoRequest()); - return response.keys; - } - - async makeCallTx( - packagePath: string, - fnc: string, - args: string[], - gasFee: string, - gasWanted: bigint, - callerAddress?: Uint8Array, - send?: string, - memo?: string, - ): Promise { - const client = this.#getClient(); - const reponse = client.makeCallTx({ - gasFee, - gasWanted, - memo, - callerAddress, - msgs: [ - { - packagePath, - fnc, - args, - send, - }, - ], - }); - return reponse; - } - - async selectAccount(nameOrBech32: string): Promise { - const client = this.#getClient(); - const response = client.selectAccount( - new SelectAccountRequest({ - nameOrBech32, - }), - ); - return response; - } - - async activateAccount(nameOrBech32: string): Promise { - const client = this.#getClient(); - const response = client.activateAccount( - new ActivateAccountRequest({ - nameOrBech32, - }), - ); - return response; - } - - async getClient(): Promise> { - if (!this.clientInstance) { - throw new Error('GoBridge client instance not initialized.'); - } - return this.clientInstance; - } - - isInitialized(): boolean { - return this.clientInstance !== undefined; - } - - async setPassword(password: string, address?: Uint8Array): Promise { - const client = this.#getClient(); - const response = client.setPassword(new SetPasswordRequest({ password, address })); - return response; - } - - async updatePassword( - newPassword: string, - addresses: Uint8Array[], - ): Promise { - const client = this.#getClient(); - const response = client.updatePassword(new UpdatePasswordRequest({ newPassword, addresses })); - return response; - } - - async getActiveAccount(): Promise { - const client = this.#getClient(); - const response = client.getActiveAccount(new GetActiveAccountRequest()); - return response; - } - - async getActivatedAccount(): Promise { - const client = this.#getClient(); - const response = client.getActivatedAccount(new GetActivatedAccountRequest()); - return response; - } - - async queryAccount(address: Uint8Array): Promise { - const client = this.#getClient(); - const reponse = client.queryAccount(new QueryAccountRequest({ address })); - return reponse; - } - - async deleteAccount( - nameOrBech32: string, - password: string | undefined, - skipPassword: boolean, - ): Promise { - const client = this.#getClient(); - const response = client.deleteAccount( - new DeleteAccountRequest({ - nameOrBech32, - password, - skipPassword, - }), - ); - return response; - } - - async query(path: string, data: Uint8Array): Promise { - const client = this.#getClient(); - const reponse = client.query( - new QueryRequest({ - path, - data, - }), - ); - return reponse; - } - - async render(packagePath: string, args: string) { - const client = this.#getClient(); - const reponse = await client.render( - new RenderRequest({ - packagePath, - args, - }), - ); - return reponse.result; - } - - async qEval(packagePath: string, expression: string) { - const client = this.#getClient(); - const reponse = await client.qEval( - new QEvalRequest({ - packagePath, - expression, - }), - ); - return reponse.result; - } - - async call( - packagePath: string, - fnc: string, - args: string[], - gasFee: string, - gasWanted: bigint, - callerAddress?: Uint8Array, - send?: string, - memo?: string, - ): Promise> { - const client = this.#getClient(); - const reponse = client.call( - new CallRequest({ - gasFee, - gasWanted, - memo, - callerAddress, - msgs: [ - new MsgCall({ - packagePath, - fnc, - args, - send, - }), - ], - }), - ); - return reponse; - } - - async send( - toAddress: Uint8Array, - send: string, - gasFee: string, - gasWanted: bigint, - callerAddress?: Uint8Array, - memo?: string, - ): Promise> { - const client = this.#getClient(); - const reponse = client.send( - new SendRequest({ - gasFee, - gasWanted, - memo, - callerAddress, - msgs: [ - new MsgSend({ - toAddress, - send, - }), - ], - }), - ); - return reponse; - } - - async addressToBech32(address: Uint8Array) { - const client = this.#getClient(); - const response = await client.addressToBech32(new AddressToBech32Request({ address })); - return response.bech32Address; - } - - async addressFromMnemonic(mnemonic: string) { - const client = this.#getClient(); - const response = await client.addressFromMnemonic(new AddressFromMnemonicRequest({ mnemonic })); - return response.address; - } - - async addressFromBech32(bech32Address: string) { - const client = this.#getClient(); - const response = await client.addressFromBech32( - new AddressFromBech32Request({ bech32Address }), - ); - return response.address; - } - - async broadcastTxCommit(signedTxJson: string): Promise> { - const client = this.#getClient(); - const response = client.broadcastTxCommit({ signedTxJson }); - return response; - } - - // // debug - async hello(name: string) { - const client = this.#getClient(); - const response = await client.hello(new HelloRequest({ name })); - return response.greeting; - } - - // // debug - async helloStream(name: string): Promise> { - const client = this.#getClient(); - return client.helloStream(new HelloRequest({ name })); - } - - // Go Bridge Interface: - initBridge(): Promise { - return GoBridge.initBridge(); - } - closeBridge(): Promise { - return GoBridge.closeBridge(); - } - getTcpPort(): Promise { - return GoBridge.getTcpPort(); - } - startGnokeyMobileService(): Promise { - return GoBridge.startGnokeyMobileService(); - } - invokeGrpcMethod(method: string, jsonMessage: string): Promise { - return GoBridge.invokeGrpcMethod(method, jsonMessage); - } - createStreamClient(method: string, jsonMessage: string): Promise { - return GoBridge.createStreamClient(method, jsonMessage); - } - streamClientReceive(id: string): Promise { - return GoBridge.streamClientReceive(id); - } - closeStreamClient(id: string): Promise { - return GoBridge.closeStreamClient(id); - } -} diff --git a/examples/js/expo/gnoboard/src/api/index.ts b/examples/js/expo/gnoboard/src/api/index.ts deleted file mode 100644 index bbe08581..00000000 --- a/examples/js/expo/gnoboard/src/api/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './GnoNativeApi'; -export * from './types'; diff --git a/examples/js/expo/gnoboard/src/api/types.ts b/examples/js/expo/gnoboard/src/api/types.ts deleted file mode 100644 index 9ef2ef15..00000000 --- a/examples/js/expo/gnoboard/src/api/types.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { - CallResponse, - DeleteAccountResponse, - GetActiveAccountResponse, - GetActivatedAccountResponse, - HelloStreamResponse, - QueryAccountResponse, - QueryResponse, - SelectAccountResponse, - ActivateAccountResponse, - SendResponse, - SetChainIDResponse, - SetPasswordResponse, - SetRemoteResponse, - UpdatePasswordResponse, - KeyInfo, - SignTxResponse, - MakeTxResponse, - BroadcastTxCommitResponse, -} from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb'; - -export enum BridgeStatus { - Stopped, - Starting, - Started, -} - -export interface Config { - remote: string; - chain_id: string; - // If true, initBridge also starts a Gnokey Mobile service. (Only needed for the Gnokey Mobile app.) - start_gnokey_mobile_service?: boolean; -} - -export interface GnoKeyApi { - setRemote: (remote: string) => Promise; - getRemote: () => Promise; - setChainID: (chainId: string) => Promise; - getChainID: () => Promise; - createAccount: ( - nameOrBech32: string, - mnemonic: string, - password: string, - ) => Promise; - generateRecoveryPhrase: () => Promise; - listKeyInfo: () => Promise; - hasKeyByName: (name: string) => Promise; - hasKeyByAddress: (address: Uint8Array) => Promise; - hasKeyByNameOrAddress: (nameOrBech32: string) => Promise; - getKeyInfoByName: (name: string) => Promise; - getKeyInfoByAddress: (address: Uint8Array) => Promise; - getKeyInfoByNameOrAddress: (nameOrBech32: string) => Promise; - selectAccount: (nameOrBech32: string) => Promise; - activateAccount: (nameOrBech32: string) => Promise; - setPassword: (password: string, address?: Uint8Array) => Promise; - updatePassword: (password: string, addresses: Uint8Array[]) => Promise; - getActiveAccount: () => Promise; - getActivatedAccount: () => Promise; - queryAccount: (address: Uint8Array) => Promise; - deleteAccount: ( - nameOrBech32: string, - password: string | undefined, - skipPassword: boolean, - ) => Promise; - query: (path: string, data: Uint8Array) => Promise; - render: (packagePath: string, args: string) => Promise; - qEval: (packagePath: string, expression: string) => Promise; - call: ( - packagePath: string, - fnc: string, - args: string[], - gasFee: string, - gasWanted: bigint, - callerAddress?: Uint8Array, - send?: string, - memo?: string, - ) => Promise>; - send: ( - toAddress: Uint8Array, - send: string, - gasFee: string, - gasWanted: bigint, - callerAddress?: Uint8Array, - memo?: string, - ) => Promise>; - addressToBech32: (address: Uint8Array) => Promise; - addressFromMnemonic: (mnemonic: string) => Promise; - addressFromBech32: (bech32Address: string) => Promise; - signTx( - txJson: string, - address: Uint8Array, - accountNumber?: bigint, - sequenceNumber?: bigint, - ): Promise; - makeCallTx( - packagePath: string, - fnc: string, - args: string[], - gasFee: string, - gasWanted: bigint, - callerAddress?: Uint8Array, - send?: string, - memo?: string, - ): Promise; - broadcastTxCommit(signedTxJson: string): Promise>; - // debug - hello: (name: string) => Promise; - helloStream: (name: string) => Promise>; -} diff --git a/examples/js/expo/gnoboard/src/components/account/AccountBalance.tsx b/examples/js/expo/gnoboard/src/components/account/AccountBalance.tsx index 4ef7d3a8..5f224131 100644 --- a/examples/js/expo/gnoboard/src/components/account/AccountBalance.tsx +++ b/examples/js/expo/gnoboard/src/components/account/AccountBalance.tsx @@ -1,7 +1,7 @@ import Text from '../texts'; import styled from 'styled-components/native'; import { colors } from '@gno/styles'; -import { BaseAccount } from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb'; +import { BaseAccount } from '@gnolang/gnonative'; import Row from '../row'; export type Props = { diff --git a/examples/js/expo/gnoboard/src/components/account/CurrentAccoutn.tsx b/examples/js/expo/gnoboard/src/components/account/CurrentAccoutn.tsx index eb788db8..f6348214 100644 --- a/examples/js/expo/gnoboard/src/components/account/CurrentAccoutn.tsx +++ b/examples/js/expo/gnoboard/src/components/account/CurrentAccoutn.tsx @@ -1,9 +1,9 @@ import Text from '../texts'; -import { GnoAccount } from '@gno/native_modules/types'; +import { KeyInfo } from '@gnolang/gnonative'; import styled from 'styled-components/native'; export type Props = { - account: GnoAccount | undefined; + account: KeyInfo | undefined; }; const CurrentAccount = ({ account }: Props) => { diff --git a/examples/js/expo/gnoboard/src/components/change-network/network-list-item/index.tsx b/examples/js/expo/gnoboard/src/components/change-network/network-list-item/index.tsx index 8cd76a73..623a1129 100644 --- a/examples/js/expo/gnoboard/src/components/change-network/network-list-item/index.tsx +++ b/examples/js/expo/gnoboard/src/components/change-network/network-list-item/index.tsx @@ -1,6 +1,6 @@ import Icons from '@gno/components/icons'; import Text from '@gno/components/texts'; -import { NetworkMetainfo } from '@gno/native_modules/types'; +import { NetworkMetainfo } from '@gno/types'; import { colors } from '@gno/styles'; import styled from 'styled-components/native'; diff --git a/examples/js/expo/gnoboard/src/components/change-network/network-list/index.tsx b/examples/js/expo/gnoboard/src/components/change-network/network-list/index.tsx index 800ee8f1..299d5ac4 100644 --- a/examples/js/expo/gnoboard/src/components/change-network/network-list/index.tsx +++ b/examples/js/expo/gnoboard/src/components/change-network/network-list/index.tsx @@ -1,4 +1,4 @@ -import { NetworkMetainfo } from '@gno/native_modules/types'; +import { NetworkMetainfo } from '@gno/types'; import NetworkListItem from '../network-list-item'; import Text from '@gno/components/texts'; import styled from 'styled-components/native'; diff --git a/examples/js/expo/gnoboard/src/components/common/side-menu-account-list/side-menu-account-list.tsx b/examples/js/expo/gnoboard/src/components/common/side-menu-account-list/side-menu-account-list.tsx index 7e459776..8d28ec6e 100644 --- a/examples/js/expo/gnoboard/src/components/common/side-menu-account-list/side-menu-account-list.tsx +++ b/examples/js/expo/gnoboard/src/components/common/side-menu-account-list/side-menu-account-list.tsx @@ -1,9 +1,9 @@ -import { GnoAccount } from '@gno/native_modules/types'; +import { KeyInfo } from '@gnolang/gnonative'; import SideMenuAccountItem from '../side-menu-account-item/side-menu-account-item'; interface SideMenuAccountListProps { - accounts: GnoAccount[]; - changeAccount: (account: GnoAccount) => void; + accounts: KeyInfo[]; + changeAccount: (account: KeyInfo) => void; } const SideMenuAccountList: React.FC = ({ accounts, changeAccount }) => { diff --git a/examples/js/expo/gnoboard/src/grpc/client.ts b/examples/js/expo/gnoboard/src/grpc/client.ts deleted file mode 100644 index a180e8fe..00000000 --- a/examples/js/expo/gnoboard/src/grpc/client.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { createPromiseClient } from '@connectrpc/connect'; -import { createNativeGrpcTransport } from './transport_native'; -import { GnoNativeService } from '@buf/gnolang_gnonative.connectrpc_es/rpc_connect'; - -// Create a GnoNativeService client -export function createClient(_port: number) { - return createPromiseClient( - GnoNativeService, - createNativeGrpcTransport({ - baseUrl: '', - }), - ); -} diff --git a/examples/js/expo/gnoboard/src/grpc/error.ts b/examples/js/expo/gnoboard/src/grpc/error.ts deleted file mode 100644 index 3443c602..00000000 --- a/examples/js/expo/gnoboard/src/grpc/error.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ErrCode } from '@buf/gnolang_gnonative.bufbuild_es/rpc_pb'; -import { Code, ConnectError } from '@connectrpc/connect'; - -class GRPCError extends Error { - public GrpcCode: Code; - - public error: ConnectError; - - constructor(e: ConnectError | null | undefined) { - if (!e) { - // this should not happen, but should not break the app either. - // instead simply create a empty error and warn about this - console.warn(`GRPCError: (${e}) grpc error provided, empty error returned`); - e = new ConnectError(''); - } - - super(e.rawMessage); - - this.error = e; - this.GrpcCode = e.code; - } - - private extractErrCode(match: RegExpMatchArray | null) { - if (match === null || match.length < 2) { - return ErrCode.Undefined; - } - - const code = parseInt(match[1]); - if (typeof code !== 'number') { - return ErrCode.Undefined; - } - - return code; - } - - // errCodes parses the error message formatted like `ErrType(#ErrNumber): WrappedErrType(#WrappedErrNumber)` - // and returns the corresponding ErrCodes or [ErrCode.Undefined] if some errors occur. - private errCodes(): ErrCode[] { - const errCodes: ErrCode[] = []; - - if (this.message === '') { - return [ErrCode.Undefined]; - } - - const matches = this.message.matchAll(/\w+\(#(\d+)\)/g); - - for (const match of matches) { - const code = this.extractErrCode(match); - errCodes.push(code); - } - - return errCodes; - } - - // errCode parses the error message formatted like `ErrType(#ErrNumber): WrappedErrType(#WrappedErrNumber)` - // and returns the corresponding parent ErrCode or ErrCode.Undefined if some errors occur. - public errCode(): ErrCode { - if (this.message === '') { - return ErrCode.Undefined; - } - - const match = this.message.match(/\w+\(#(\d+)\)/); - - return this.extractErrCode(match); - } - - public grpcErrorCode(): Code { - return this.GrpcCode; - } - - public toJSON(): any { - return { - message: this.message, - grpcErrorCode: Code[this.GrpcCode], - errorCode: ErrCode[this.errCode()], - }; - } - - public hasErrCode(error: ErrCode): boolean { - for (const err of this.errCodes()) { - if (err === error) { - return true; - } - } - return false; - } -} - -export { GRPCError }; diff --git a/examples/js/expo/gnoboard/src/grpc/transport_native.ts b/examples/js/expo/gnoboard/src/grpc/transport_native.ts deleted file mode 100644 index 16a50e61..00000000 --- a/examples/js/expo/gnoboard/src/grpc/transport_native.ts +++ /dev/null @@ -1,159 +0,0 @@ -import type { AnyMessage, MethodInfo, PartialMessage, ServiceType } from '@bufbuild/protobuf'; - -import type { StreamResponse, Transport, UnaryRequest, UnaryResponse } from '@connectrpc/connect'; -import { createClientMethodSerializers, createMethodUrl, runStreamingCall, runUnaryCall } from '@connectrpc/connect/protocol'; -import { requestHeader } from '@connectrpc/connect/protocol-connect'; -import { requestHeader as webRequestHeader } from '@connectrpc/connect/protocol-grpc-web'; -import { GrpcWebTransportOptions } from '@connectrpc/connect-web'; -import { Message, MethodKind } from '@bufbuild/protobuf'; -import { GoBridge } from '@gno/GoBridge'; - -function base64ToBytes(base64: string): Uint8Array { - const binString = atob(base64); - return Uint8Array.from(binString, (m) => m.codePointAt(0)); -} - -export function createNativeGrpcTransport(options: GrpcWebTransportOptions): Transport { - const useBinaryFormat = options.useBinaryFormat ?? true; - return { - async unary = AnyMessage, O extends Message = AnyMessage>( - service: ServiceType, - method: MethodInfo, - signal: AbortSignal | undefined, - timeoutMs: number | undefined, - header: Headers, - message: PartialMessage, - ): Promise> { - const { parse } = createClientMethodSerializers(method, false, options.jsonOptions, options.binaryOptions); - - return await runUnaryCall({ - signal, - interceptors: options.interceptors, - req: { - stream: false, - service, - method, - url: createMethodUrl(options.baseUrl, service, method), - init: { - method: 'POST', - mode: 'cors', - }, - header: webRequestHeader(useBinaryFormat, timeoutMs, header), - message, - }, - next: async (req: UnaryRequest): Promise> => { - try { - const res = await GoBridge.invokeGrpcMethod(req.method.name, req.message.toJsonString()); - - const header: Headers | undefined = new Headers(); - const trailer: Headers | undefined = new Headers(); - - const data = base64ToBytes(res); - const message = parse(data); - - return >{ - stream: false, - header, - message, - trailer, - }; - } catch (e) { - console.log('next: unary call error:', e); - throw e; - } - }, - }); - }, - - async stream = AnyMessage, O extends Message = AnyMessage>( - service: ServiceType, - method: MethodInfo, - signal: AbortSignal | undefined, - timeoutMs: number | undefined, - header: HeadersInit | undefined, - input: AsyncIterable>, - ): Promise> { - const { parse } = createClientMethodSerializers(method, false, options.jsonOptions, options.binaryOptions); - - async function createRequestBody(input: AsyncIterable): Promise { - if (method.kind != MethodKind.ServerStreaming) { - throw 'The fetch API does not support streaming request bodies'; - } - - const r = await input[Symbol.asyncIterator]().next(); - if (r.done == true) { - throw 'missing request message'; - } - - return r.value.toJsonString(); - } - - return await runStreamingCall({ - interceptors: options.interceptors, - timeoutMs, - signal, - req: { - stream: true, - service, - method, - url: createMethodUrl(options.baseUrl, service, method), - init: { - method: 'POST', - credentials: options.credentials ?? 'same-origin', - mode: 'cors', - }, - header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header), - message: input, - }, - next: async (req) => { - const header: Headers | undefined = new Headers(); - const trailer: Headers | undefined = new Headers(); - - const body = await createRequestBody(req.message); - - let streamId: string; - try { - streamId = await GoBridge.createStreamClient(req.method.name, body); - } catch (e) { - console.log('createStreamClient error:', e); - throw e; - } - - const generator = { - async *[Symbol.asyncIterator]() { - for (;;) { - try { - const res = await GoBridge.streamClientReceive(streamId); - const data = base64ToBytes(res); - const message = parse(data); - yield message; - } catch (e) { - // close the stream - try { - await GoBridge.closeStreamClient(streamId); - } catch (e) { - console.log('closeStreamClient error:', e); - } - - if (!(e instanceof Error && e.message === 'EOF')) { - console.log('streamClientReceive error:', e); - throw e; - } - break; - } - } - }, - }; - - const res: StreamResponse = { - ...req, - header: header, - trailer, - message: generator, - }; - return res; - }, - }); - }, - }; -} diff --git a/examples/js/expo/gnoboard/src/provider/gnonative-provider.tsx b/examples/js/expo/gnoboard/src/provider/gnonative-provider.tsx deleted file mode 100644 index 9eaeae7a..00000000 --- a/examples/js/expo/gnoboard/src/provider/gnonative-provider.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { createContext, useContext, useEffect, useState } from 'react'; - -import { GnoNativeApi } from '../api'; -import { Config } from '../api/types'; - -export interface GnoNativeContextProps { - gnonative: GnoNativeApi; -} - -interface GnoNativeProviderProps { - config: Config; - children: React.ReactNode; -} - -const GnoNativeContext = createContext(null); - -const GnoNativeProvider: React.FC = ({ children, config }) => { - const [initialized, setInitialized] = useState(false); - const [api] = useState(new GnoNativeApi(config)); - - useEffect(() => { - (async () => { - await init(config); - setInitialized(true); - })(); - }, []); - - async function init(config): Promise { - console.log('🍄 Initializing GnoNative Context on remote: %s chain_id: %s', config.remote, config.chain_id); - - try { - await api.initClient(); - } catch (error) { - console.error(error); - return false; - } - - return true; - } - - const value = { - gnonative: api, - }; - - if (!initialized) { - return null; - } - - return {children}; -}; - -function useGnoNativeContext() { - const context = useContext(GnoNativeContext) as GnoNativeContextProps; - - if (context === undefined) { - throw new Error('useGnoNativeContext must be used within a GnoNativeProvider'); - } - return context; -} - -export { GnoNativeProvider, useGnoNativeContext }; diff --git a/examples/js/expo/gnoboard/src/screens/board/index.tsx b/examples/js/expo/gnoboard/src/screens/board/index.tsx index fccff24d..93fd164a 100644 --- a/examples/js/expo/gnoboard/src/screens/board/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/board/index.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react'; import Layout from '@gno/components/pages'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { useGnoNativeContext } from '@gnolang/gnonative'; import { RouterWelcomeStack, RouterWelcomeStackProp } from '@gno/router/custom-router'; import { NativeStackScreenProps } from '@react-navigation/native-stack'; import { useNavigation } from '@react-navigation/native'; diff --git a/examples/js/expo/gnoboard/src/screens/certify/create-password/index.tsx b/examples/js/expo/gnoboard/src/screens/certify/create-password/index.tsx index 714a40fd..654f447b 100644 --- a/examples/js/expo/gnoboard/src/screens/certify/create-password/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/certify/create-password/index.tsx @@ -3,7 +3,7 @@ import Layout from '@gno/components/pages'; import Text from '@gno/components/texts'; import TextInput from '@gno/components/textinput'; import Button from '@gno/components/buttons'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { useGnoNativeContext } from '@gnolang/gnonative'; import { RouterWelcomeStack, RouterWelcomeStackProp } from '@gno/router/custom-router'; import { NativeStackScreenProps } from '@react-navigation/native-stack'; import { useNavigation } from '@react-navigation/native'; diff --git a/examples/js/expo/gnoboard/src/screens/certify/enter-seed/index.tsx b/examples/js/expo/gnoboard/src/screens/certify/enter-seed/index.tsx index 154f0dbf..a49ec283 100644 --- a/examples/js/expo/gnoboard/src/screens/certify/enter-seed/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/certify/enter-seed/index.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import Layout from '@gno/components/pages'; import Text from '@gno/components/texts'; import Button from '@gno/components/buttons'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { useGnoNativeContext } from '@gnolang/gnonative'; import { useNavigation } from '@react-navigation/native'; import { RouterWelcomeStackProp } from '@gno/router/custom-router'; import { RoutePath } from '@gno/router/path'; diff --git a/examples/js/expo/gnoboard/src/screens/certify/your-seed-phrase/index.tsx b/examples/js/expo/gnoboard/src/screens/certify/your-seed-phrase/index.tsx index 137e6dd1..a9ea567f 100644 --- a/examples/js/expo/gnoboard/src/screens/certify/your-seed-phrase/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/certify/your-seed-phrase/index.tsx @@ -3,7 +3,7 @@ import Layout from '@gno/components/pages'; import { Spacer } from '@gno/components/row'; import SeedBox from '@gno/components/seedbox'; import Text from '@gno/components/texts'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { useGnoNativeContext } from '@gnolang/gnonative'; import { RouterWelcomeStackProp } from '@gno/router/custom-router'; import { RoutePath } from '@gno/router/path'; import { useNavigation } from '@react-navigation/native'; diff --git a/examples/js/expo/gnoboard/src/screens/change-network/index.tsx b/examples/js/expo/gnoboard/src/screens/change-network/index.tsx index 9d176b12..a2aa7355 100644 --- a/examples/js/expo/gnoboard/src/screens/change-network/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/change-network/index.tsx @@ -6,9 +6,9 @@ import { useEffect, useState } from 'react'; import Loading from '../loading'; import NetworkList from '@gno/components/change-network/network-list'; import chains from '@gno/resources/chains/chains.json'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { useGnoNativeContext } from '@gnolang/gnonative'; import { RoutePath } from '@gno/router/path'; -import { NetworkMetainfo } from '@gno/GoBridge/types'; +import { NetworkMetainfo } from '@gno/types'; const ChangeNetwork = () => { const { gnonative } = useGnoNativeContext(); diff --git a/examples/js/expo/gnoboard/src/screens/devmode/index.tsx b/examples/js/expo/gnoboard/src/screens/devmode/index.tsx index 8ed9e33e..cdf826d9 100644 --- a/examples/js/expo/gnoboard/src/screens/devmode/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/devmode/index.tsx @@ -5,11 +5,9 @@ import { useState } from 'react'; import { Linking, ScrollView, StyleSheet, View } from 'react-native'; import Button from '@gno/components/buttons'; import Layout from '@gno/components/pages'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { GRPCError, useGnoNativeContext, ErrCode } from '@gnolang/gnonative'; import { Buffer } from 'buffer'; import ReenterPassword from '../switch-accounts/ReenterPassword'; -import { ErrCode } from '@buf/gnolang_gnonative.bufbuild_es/rpc_pb'; -import { GRPCError } from '@gno/grpc/error'; import { Spacer } from '@gno/components/row'; import Text from '@gno/components/texts'; import { ConnectError } from '@connectrpc/connect'; diff --git a/examples/js/expo/gnoboard/src/screens/remove-account/confirm.tsx b/examples/js/expo/gnoboard/src/screens/remove-account/confirm.tsx index 2b0b9725..68405c6d 100644 --- a/examples/js/expo/gnoboard/src/screens/remove-account/confirm.tsx +++ b/examples/js/expo/gnoboard/src/screens/remove-account/confirm.tsx @@ -1,6 +1,6 @@ import Layout from '@gno/components/pages'; import Text from '@gno/components/texts'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { useGnoNativeContext } from '@gnolang/gnonative'; import { RouterWelcomeStack, RouterWelcomeStackProp } from '@gno/router/custom-router'; import { useNavigation } from '@react-navigation/native'; import { useState } from 'react'; diff --git a/examples/js/expo/gnoboard/src/screens/remove-account/index.tsx b/examples/js/expo/gnoboard/src/screens/remove-account/index.tsx index 79d41386..9e6ccbf0 100644 --- a/examples/js/expo/gnoboard/src/screens/remove-account/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/remove-account/index.tsx @@ -1,19 +1,18 @@ import Layout from '@gno/components/pages'; import Text from '@gno/components/texts'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { KeyInfo, useGnoNativeContext } from '@gnolang/gnonative'; import { RouterWelcomeStackProp } from '@gno/router/custom-router'; import { useNavigation } from '@react-navigation/native'; import { useEffect, useState } from 'react'; import Loading from '../loading'; import SideMenuAccountList from '@gno/components/common/side-menu-account-list/side-menu-account-list'; -import { GnoAccount } from '@gno/GoBridge/types'; import { RoutePath } from '@gno/router/path'; const RemoveAccount = () => { const { gnonative } = useGnoNativeContext(); const navigation = useNavigation(); const [loading, setLoading] = useState(undefined); - const [accounts, setAccounts] = useState([]); + const [accounts, setAccounts] = useState([]); useEffect(() => { const unsubscribe = navigation.addListener('focus', async () => { @@ -31,7 +30,7 @@ const RemoveAccount = () => { return unsubscribe; }, [navigation]); - const onChangeAccountHandler = async (account: GnoAccount) => { + const onChangeAccountHandler = async (account: KeyInfo) => { navigation.navigate(RoutePath.RemoveConfirm, { accountName: account.name }); }; diff --git a/examples/js/expo/gnoboard/src/screens/switch-accounts/ReenterPassword.tsx b/examples/js/expo/gnoboard/src/screens/switch-accounts/ReenterPassword.tsx index c56b40e9..3507c591 100644 --- a/examples/js/expo/gnoboard/src/screens/switch-accounts/ReenterPassword.tsx +++ b/examples/js/expo/gnoboard/src/screens/switch-accounts/ReenterPassword.tsx @@ -1,12 +1,10 @@ -import { GRPCError } from '@gno/grpc/error'; -import { ErrCode } from '@buf/gnolang_gnonative.bufbuild_es/rpc_pb'; import Alert from '@gno/components/alert'; import Button from '@gno/components/buttons'; import { Modal } from '@gno/components/modal'; import { Spacer } from '@gno/components/row'; import TextInput from '@gno/components/textinput'; import Text from '@gno/components/texts'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { ErrCode, GRPCError, useGnoNativeContext } from '@gnolang/gnonative'; import { useState } from 'react'; import { Modal as NativeModal } from 'react-native'; diff --git a/examples/js/expo/gnoboard/src/screens/switch-accounts/index.tsx b/examples/js/expo/gnoboard/src/screens/switch-accounts/index.tsx index ac1344bc..9b830461 100644 --- a/examples/js/expo/gnoboard/src/screens/switch-accounts/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/switch-accounts/index.tsx @@ -1,12 +1,11 @@ import Layout from '@gno/components/pages'; import Text from '@gno/components/texts'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; +import { KeyInfo, useGnoNativeContext } from '@gnolang/gnonative'; import { RouterWelcomeStackProp } from '@gno/router/custom-router'; import { useNavigation } from '@react-navigation/native'; import { useEffect, useState } from 'react'; import Loading from '../loading'; import SideMenuAccountList from '@gno/components/common/side-menu-account-list/side-menu-account-list'; -import { GnoAccount } from '@gno/GoBridge/types'; import { RoutePath } from '@gno/router/path'; import ReenterPassword from './ReenterPassword'; @@ -14,7 +13,7 @@ const SwitchAccounts = () => { const { gnonative } = useGnoNativeContext(); const navigation = useNavigation(); const [loading, setLoading] = useState(undefined); - const [accounts, setAccounts] = useState([]); + const [accounts, setAccounts] = useState([]); const [reenterPassword, setReenterPassword] = useState(undefined); useEffect(() => { @@ -33,7 +32,7 @@ const SwitchAccounts = () => { return unsubscribe; }, [navigation]); - const onChangeAccountHandler = async (value: GnoAccount) => { + const onChangeAccountHandler = async (value: KeyInfo) => { try { setLoading('Changing account...'); const response = await gnonative.selectAccount(value.name); diff --git a/examples/js/expo/gnoboard/src/screens/wallet/home/index.tsx b/examples/js/expo/gnoboard/src/screens/wallet/home/index.tsx index e9f6b3ac..7b4543ac 100644 --- a/examples/js/expo/gnoboard/src/screens/wallet/home/index.tsx +++ b/examples/js/expo/gnoboard/src/screens/wallet/home/index.tsx @@ -7,22 +7,18 @@ import { RouterWelcomeStackProp } from '@gno/router/custom-router'; import Text from '@gno/components/texts'; import styled from 'styled-components/native'; import CurrentAccount from '@gno/components/account/CurrentAccoutn'; -import { useGnoNativeContext } from '@gno/provider/gnonative-provider'; import Loading from '@gno/screens/loading'; -import { GnoAccount } from '@gno/GoBridge/types'; -import { QueryAccountResponse } from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb'; import { AccountBalance } from '@gno/components/account'; import { Spacer } from '@gno/components/row'; import { ConnectError } from '@connectrpc/connect'; -import { ErrCode } from '@buf/gnolang_gnonative.bufbuild_es/rpc_pb'; -import { GRPCError } from '@gno/grpc/error'; +import { ErrCode, GRPCError, useGnoNativeContext, KeyInfo, QueryAccountResponse } from '@gnolang/gnonative'; export const Home: React.FC = () => { const navigation = useNavigation(); const { gnonative } = useGnoNativeContext(); const [loading, setLoading] = React.useState(undefined); - const [account, setAccount] = React.useState(undefined); + const [account, setAccount] = React.useState(undefined); const [balance, setBalance] = React.useState(undefined); const [unknownAddress, setUnknownAddress] = React.useState(false); diff --git a/examples/js/expo/gnoboard/src/types/index.ts b/examples/js/expo/gnoboard/src/types/index.ts new file mode 100644 index 00000000..2fcb3880 --- /dev/null +++ b/examples/js/expo/gnoboard/src/types/index.ts @@ -0,0 +1 @@ +export type { NetworkMetainfo } from './types'; diff --git a/examples/js/expo/gnoboard/src/types/types.ts b/examples/js/expo/gnoboard/src/types/types.ts new file mode 100644 index 00000000..24f53b09 --- /dev/null +++ b/examples/js/expo/gnoboard/src/types/types.ts @@ -0,0 +1,5 @@ +export type NetworkMetainfo = { + chainId: string; + chainName: string; + gnoAddress: string; +}; diff --git a/examples/js/expo/gnoboard/src/grpc/transport_web.ts b/templates/transport_web.ts similarity index 100% rename from examples/js/expo/gnoboard/src/grpc/transport_web.ts rename to templates/transport_web.ts