diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 611356f2..d835c3a1 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -15,15 +15,21 @@ runs: - name: Cache dependencies id: yarn-cache - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: | **/node_modules .yarn/install-state.gz - # key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}-${{ hashFiles('**/package.json', '!node_modules/**') }} + # Deliberately no `restore-keys` fallback: a fallback match restores + # node_modules/.yarn/install-state.gz from an OLDER lockfile/package.json + # state (any change to either misses the exact key below), and `yarn + # install --immutable` then reconciles incrementally on top of that + # stale state instead of a clean install. patch-package (run via + # postinstall) is sensitive to exact package content and doesn't + # reliably re-apply patches in that scenario — this caused CI to + # intermittently fail with "cannot apply the following patch file" + # after any dependency version bump. Exact-match-or-miss avoids it. key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', 'example/yarn.lock') }}-${{ hashFiles('package.json', 'example/package.json') }} - restore-keys: | - ${{ runner.os }}-yarn- - name: Install dependencies if: steps.yarn-cache.outputs.cache-hit != 'true' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97ee4394..80cdbaaa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,27 +27,28 @@ jobs: - name: Setup uses: ./.github/actions/setup - - name: install bundler dependencies - run: | - cd example - bundle install - - - name: Cache cocoapods - id: cocoapods-cache - uses: actions/cache@v4 + - name: Cache SwiftPM artifacts + uses: actions/cache@v6 with: - path: | - **/ios/Pods - key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} + path: ~/Library/Caches/ReactNative/spm-artifacts + key: ${{ runner.os }}-spm-artifacts-${{ hashFiles('example/node_modules/react-native/package.json') }} restore-keys: | - ${{ runner.os }}-cocoapods- + ${{ runner.os }}-spm-artifacts- - - name: Install cocoapods + - name: Set up SwiftPM run: | cd example/ios - bundle exec pod install - env: - NO_FLIPPER: 1 + # download-spm-artifacts.js resolves Hermes via the `hermes-compiler` + # npm package's `latest-v1` dist-tag by default — a rolling tag + # decoupled from the exact `hermes-compiler` version react-native + # itself depends on (used to bytecode-compile the JS bundle). When + # they drift, the app crashes at launch with a Hermes bytecode + # version mismatch ("Wrong bytecode version. Expected X but got Y"). + # Pin HERMES_VERSION to the installed react-native's own resolved + # hermes-compiler version so both always match. + export HERMES_VERSION=$(node -p "require('../node_modules/react-native/package.json').dependencies['hermes-compiler']") + echo "Pinning HERMES_VERSION=${HERMES_VERSION}" + npx react-native spm update --yes - name: run tests run: | @@ -66,27 +67,28 @@ jobs: - name: Setup uses: ./.github/actions/setup - - name: install bundler dependencies - run: | - cd example - bundle install - - - name: Cache cocoapods - id: cocoapods-cache + - name: Cache SwiftPM artifacts uses: actions/cache@v4 with: - path: | - **/ios/Pods - key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} + path: ~/Library/Caches/ReactNative/spm-artifacts + key: ${{ runner.os }}-spm-artifacts-${{ hashFiles('example/node_modules/react-native/package.json') }} restore-keys: | - ${{ runner.os }}-cocoapods- + ${{ runner.os }}-spm-artifacts- - - name: Install cocoapods + - name: Set up SwiftPM run: | cd example/ios - bundle exec pod install - env: - NO_FLIPPER: 1 + # download-spm-artifacts.js resolves Hermes via the `hermes-compiler` + # npm package's `latest-v1` dist-tag by default — a rolling tag + # decoupled from the exact `hermes-compiler` version react-native + # itself depends on (used to bytecode-compile the JS bundle). When + # they drift, the app crashes at launch with a Hermes bytecode + # version mismatch ("Wrong bytecode version. Expected X but got Y"). + # Pin HERMES_VERSION to the installed react-native's own resolved + # hermes-compiler version so both always match. + export HERMES_VERSION=$(node -p "require('../node_modules/react-native/package.json').dependencies['hermes-compiler']") + echo "Pinning HERMES_VERSION=${HERMES_VERSION}" + npx react-native spm update --yes - name: run tests run: | @@ -105,27 +107,28 @@ jobs: - name: Setup uses: ./.github/actions/setup - - name: install bundler dependencies - run: | - cd example - bundle install - - - name: Cache cocoapods - id: cocoapods-cache + - name: Cache SwiftPM artifacts uses: actions/cache@v4 with: - path: | - **/ios/Pods - key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} + path: ~/Library/Caches/ReactNative/spm-artifacts + key: ${{ runner.os }}-spm-artifacts-${{ hashFiles('example/node_modules/react-native/package.json') }} restore-keys: | - ${{ runner.os }}-cocoapods- + ${{ runner.os }}-spm-artifacts- - - name: Install cocoapods + - name: Set up SwiftPM run: | cd example/ios - bundle exec pod install - env: - NO_FLIPPER: 1 + # download-spm-artifacts.js resolves Hermes via the `hermes-compiler` + # npm package's `latest-v1` dist-tag by default — a rolling tag + # decoupled from the exact `hermes-compiler` version react-native + # itself depends on (used to bytecode-compile the JS bundle). When + # they drift, the app crashes at launch with a Hermes bytecode + # version mismatch ("Wrong bytecode version. Expected X but got Y"). + # Pin HERMES_VERSION to the installed react-native's own resolved + # hermes-compiler version so both always match. + export HERMES_VERSION=$(node -p "require('../node_modules/react-native/package.json').dependencies['hermes-compiler']") + echo "Pinning HERMES_VERSION=${HERMES_VERSION}" + npx react-native spm update --yes - name: run tests run: | @@ -144,27 +147,28 @@ jobs: - name: Setup uses: ./.github/actions/setup - - name: install bundler dependencies - run: | - cd example - bundle install - - - name: Cache cocoapods - id: cocoapods-cache + - name: Cache SwiftPM artifacts uses: actions/cache@v4 with: - path: | - **/ios/Pods - key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} + path: ~/Library/Caches/ReactNative/spm-artifacts + key: ${{ runner.os }}-spm-artifacts-${{ hashFiles('example/node_modules/react-native/package.json') }} restore-keys: | - ${{ runner.os }}-cocoapods- + ${{ runner.os }}-spm-artifacts- - - name: Install cocoapods + - name: Set up SwiftPM run: | cd example/ios - bundle exec pod install - env: - NO_FLIPPER: 1 + # download-spm-artifacts.js resolves Hermes via the `hermes-compiler` + # npm package's `latest-v1` dist-tag by default — a rolling tag + # decoupled from the exact `hermes-compiler` version react-native + # itself depends on (used to bytecode-compile the JS bundle). When + # they drift, the app crashes at launch with a Hermes bytecode + # version mismatch ("Wrong bytecode version. Expected X but got Y"). + # Pin HERMES_VERSION to the installed react-native's own resolved + # hermes-compiler version so both always match. + export HERMES_VERSION=$(node -p "require('../node_modules/react-native/package.json').dependencies['hermes-compiler']") + echo "Pinning HERMES_VERSION=${HERMES_VERSION}" + npx react-native spm update --yes - name: run tests run: | @@ -414,27 +418,28 @@ jobs: - name: Setup uses: ./.github/actions/setup - - name: install bundler dependencies - run: | - cd example - bundle install - - - name: Cache cocoapods - id: cocoapods-cache + - name: Cache SwiftPM artifacts uses: actions/cache@v4 with: - path: | - **/ios/Pods - key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} + path: ~/Library/Caches/ReactNative/spm-artifacts + key: ${{ runner.os }}-spm-artifacts-${{ hashFiles('example/node_modules/react-native/package.json') }} restore-keys: | - ${{ runner.os }}-cocoapods- + ${{ runner.os }}-spm-artifacts- - - name: Install cocoapods + - name: Set up SwiftPM run: | cd example/ios - bundle exec pod install - env: - NO_FLIPPER: 1 + # download-spm-artifacts.js resolves Hermes via the `hermes-compiler` + # npm package's `latest-v1` dist-tag by default — a rolling tag + # decoupled from the exact `hermes-compiler` version react-native + # itself depends on (used to bytecode-compile the JS bundle). When + # they drift, the app crashes at launch with a Hermes bytecode + # version mismatch ("Wrong bytecode version. Expected X but got Y"). + # Pin HERMES_VERSION to the installed react-native's own resolved + # hermes-compiler version so both always match. + export HERMES_VERSION=$(node -p "require('../node_modules/react-native/package.json').dependencies['hermes-compiler']") + echo "Pinning HERMES_VERSION=${HERMES_VERSION}" + npx react-native spm update --yes - name: run tests run: | diff --git a/.gitignore b/.gitignore index ce3d7370..345c852b 100644 --- a/.gitignore +++ b/.gitignore @@ -89,5 +89,17 @@ android/c_sources # c_sources/ scripts/sqlite-vec-* -turso/ -.tmp/ \ No newline at end of file +# Root-level turso SDK source checkout used by build-turso-binaries.sh — not +# anchored with a trailing-slash-only pattern, this also matched cpp/turso/ +# (the real, tracked source dir for the turso backend bridge), silently +# untracking turso_bridge.cpp after it was moved there. +/turso/ +.tmp/ + +# SwiftPM (regenerated on every manifest evaluation) +.build/ +.swiftpm/ +Package.resolved +# Leftover temp file if `react-native spm scaffold`/`read-podspec.js` gets +# interrupted mid-run before its own cleanup step +.spm-scaffold-* \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index 85aee5a5..18c92ea9 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20 \ No newline at end of file +v24 \ No newline at end of file diff --git a/Package.swift b/Package.swift new file mode 100644 index 00000000..f4b8501b --- /dev/null +++ b/Package.swift @@ -0,0 +1,506 @@ +// swift-tools-version: 6.0 +import Foundation +import PackageDescription + +// Hand-authored SPM manifest for React Native's experimental SwiftPM support +// (RN 0.87, "Preview" — see scripts/spm/__doc__/spm-scripts.md in react-native). +// This is a direct translation of the logic in `op-sqlite.podspec` + +// `generate_tokenizers_header_file.rb`: CocoaPods evaluates that podspec (and +// its dynamic per-consumer-app configuration) as Ruby during `pod install`. +// SwiftPM evaluates *this* file as Swift on every resolve, so the same +// dynamic logic — reading the consumer app's package.json, generating +// cpp/tokenizers.h, choosing which SQLite backend & xcframeworks to link — +// is reproduced here with Foundation instead of Ruby's FileUtils/JSON. +// +// Per RN's "hand-authored community library contract" +// (spm-header-paths-contract.md): a self-managed Package.swift depends on +// the app-local ReactNative + React-GeneratedCode packages by plain relative +// path. The autolinker always exposes a self-managed dep through a symlink +// at `/build/generated/autolinking/libs//` — a fixed +// depth from appRoot — so those relative paths are stable constants, not +// something this manifest has to discover at resolve time. + +// MARK: - Locate this package + the consuming app's package.json +// Mirrors op-sqlite.podspec's `is_user_app` / package.json discovery. + +let packageRoot = URL(fileURLWithPath: #filePath).deletingLastPathComponent() + +// In the sample app the dir is not inside of node_modules. +let isUserApp = packageRoot.path.contains("node_modules") + +func readJSONObject(atPath path: String) -> [String: Any] { + guard let data = FileManager.default.contents(atPath: path), + let object = try? JSONSerialization.jsonObject(with: data), + let dict = object as? [String: Any] + else { + return [:] + } + return dict +} + +// When installed into node_modules, find the consumer's package.json by +// searching up through parent directories (starting one level above this +// package, i.e. outside node_modules/@op-engineering/op-sqlite). In the +// monorepo/dev checkout it's simply example/package.json. +let appPackageJSONPath: String = { + guard isUserApp else { + return packageRoot.appendingPathComponent("example/package.json").path + } + var currentDir = packageRoot.deletingLastPathComponent() + while true { + let candidate = currentDir.appendingPathComponent("package.json").path + if FileManager.default.fileExists(atPath: candidate) { + return candidate + } + let parentDir = currentDir.deletingLastPathComponent() + if parentDir.path == currentDir.path { + fatalError("[OP-SQLITE] package.json not found") + } + currentDir = parentDir + } +}() + +let appPackage = readJSONObject(atPath: appPackageJSONPath) +let opsqliteConfig = appPackage["op-sqlite"] as? [String: Any] ?? [:] + +// MARK: - Read op-sqlite config (mirrors op-sqlite.podspec) + +let useSqlcipher = (opsqliteConfig["sqlcipher"] as? Bool) == true +let useLibsql = (opsqliteConfig["libsql"] as? Bool) == true +let useTurso = (opsqliteConfig["turso"] as? Bool) == true +let performanceMode = (opsqliteConfig["performanceMode"] as? Bool) ?? false +let phoneVersion = (opsqliteConfig["iosSqlite"] as? Bool) == true +let sqliteFlags = (opsqliteConfig["sqliteFlags"] as? String) ?? "" +let fts5 = (opsqliteConfig["fts5"] as? Bool) == true +let rtree = (opsqliteConfig["rtree"] as? Bool) == true +let useSqliteVec = (opsqliteConfig["sqliteVec"] as? Bool) == true +let tokenizers = (opsqliteConfig["tokenizers"] as? [String]) ?? [] + +if phoneVersion { + if useSqlcipher { + fatalError("[OP-SQLITE] SQLCipher is not supported with phone version. It cannot load extensions.") + } + if rtree { + fatalError("[OP-SQLITE] RTree is not supported with phone version. It cannot load extensions.") + } + if useSqliteVec { + fatalError("[OP-SQLITE] sqlite-vec is not supported with phone version. It cannot load extensions.") + } +} +if useLibsql && useSqliteVec { + fatalError("[OP-SQLITE] You cannot use sqlite-vec with libsql. libsql already has vector search included.") +} +if useTurso && useSqliteVec { + fatalError("[OP-SQLITE] You cannot use sqlite-vec with turso backend.") +} +if useTurso && useLibsql { + fatalError("[OP-SQLITE] You cannot enable both libsql and turso backend.") +} +if !tokenizers.isEmpty && useTurso { + fatalError("[OP-SQLITE] Tokenizers are not supported with turso backend. Please disable tokenizers or do not enable turso.") +} + +print("[OP-SQLITE] SPM configuration found at \(appPackageJSONPath)") + +// MARK: - Tokenizer header generation +// Direct translation of generate_tokenizers_header_file.rb. + +func generateTokenizersHeaderFile(names: [String], filePath: String) { + let fileURL = URL(fileURLWithPath: filePath) + try? FileManager.default.createDirectory( + at: fileURL.deletingLastPathComponent(), withIntermediateDirectories: true) + + let tokenizerList = names.map { "opsqlite_\($0)_init(db,&errMsg,nullptr);" }.joined() + + var content = "" + content += "#ifndef TOKENIZERS_H\n" + content += "#define TOKENIZERS_H\n" + content += "\n" + content += "#define TOKENIZER_LIST \(tokenizerList)\n" + content += "\n" + content += "#include \n" + content += "\n" + content += "namespace opsqlite {\n" + content += "\n" + for name in names { + content += "int opsqlite_\(name)_init(sqlite3 *db, char **error, sqlite3_api_routines const *api);\n" + } + content += "\n" + content += "} // namespace opsqlite\n" + content += "\n" + content += "#endif // TOKENIZERS_H\n" + + try? content.write(to: fileURL, atomically: true, encoding: .utf8) +} + +// Mirrors FileUtils.cp_r: copies the contents of `source` into `destination`, +// creating directories as needed and overwriting existing files. +func copyDirectoryContents(from source: URL, to destination: URL) { + let fm = FileManager.default + guard let enumerator = fm.enumerator(at: source, includingPropertiesForKeys: [.isDirectoryKey]) else { + return + } + try? fm.createDirectory(at: destination, withIntermediateDirectories: true) + for case let itemURL as URL in enumerator { + let relative = itemURL.path.replacingOccurrences(of: source.path + "/", with: "") + let destURL = destination.appendingPathComponent(relative) + let isDirectory = (try? itemURL.resourceValues(forKeys: [.isDirectoryKey]))?.isDirectory ?? false + if isDirectory { + try? fm.createDirectory(at: destURL, withIntermediateDirectories: true) + } else { + try? fm.removeItem(at: destURL) + try? fm.copyItem(at: itemURL, to: destURL) + } + } +} + +// MARK: - Source file collection +// Mirrors Dir.glob("ios/**/*.{h,hpp,m,mm}") + Dir.glob("cpp/**/*.{hpp,h,cpp,c}") + +func relativePath(_ url: URL, from base: URL) -> String { + let baseComponents = base.standardizedFileURL.pathComponents + let urlComponents = url.standardizedFileURL.pathComponents + return urlComponents.dropFirst(baseComponents.count).joined(separator: "/") +} + +func globFiles(under subdirectory: String, extensions: Set) -> [String] { + let dir = packageRoot.appendingPathComponent(subdirectory) + guard let enumerator = FileManager.default.enumerator(at: dir, includingPropertiesForKeys: [.isDirectoryKey]) else { + return [] + } + var results: [String] = [] + for case let fileURL as URL in enumerator { + let isDirectory = (try? fileURL.resourceValues(forKeys: [.isDirectoryKey]))?.isDirectory ?? false + if isDirectory { continue } + if extensions.contains(fileURL.pathExtension.lowercased()) { + results.append(relativePath(fileURL, from: packageRoot)) + } + } + return results.sorted() +} + +var sourceFiles = + globFiles(under: "ios", extensions: ["h", "hpp", "m", "mm"]) + + globFiles(under: "cpp", extensions: ["hpp", "h", "cpp", "c"]) + +// Every real file SPM finds under the target's `path` that isn't excluded +// still gets swept into the build as a bogus "compile" step — confirmed +// empirically on this toolchain (Xcode 26.6 / swift-tools 6.0) for +// individual files living alongside wanted siblings (a disabled backend's +// lone .cpp file, a stray LICENSE.txt). Whole, self-contained directory +// excludes (the vendored xcframeworks, and cpp/sqlcipher, cpp/libsql, +// cpp/turso below) are reliable; those backend sources were relocated into +// their own subdirectories specifically so they can be excluded that way. +// `cpp/sqlite3.c`/`cpp/bridge.{c,cpp,hpp}` are the remaining individual-file +// exclusions (only reachable via the sqlcipher/turso/libsql/phone-version +// branches, not the default path) — flagged as a known residual risk in +// those configurations rather than moved, to keep this translation close to +// the podspec's file layout. +var excludedSources: Set = [] +var excludedDirs: Set = [] + +// Backend bridges are selected explicitly by flags and should not be compiled by default. +if !useTurso { + excludedDirs.insert("cpp/turso") +} + +// MARK: - Tokenizers +// Set to non-user-app value ("../example/c_sources/tokenizers.h") by default; +// swapped to "../c_sources/tokenizers.h" below when installed as a dependency. +// Both branches faithfully mirror op-sqlite.podspec, which points at the +// *original* c_sources dir in dev mode but the *copy* (below) once installed. +var tokenizersHeaderPath = "../example/c_sources/tokenizers.h" + +if !tokenizers.isEmpty { + print("[OP-SQLITE] Tokenizers enabled: \(tokenizers)") + + let cSourcesDir = + isUserApp + ? packageRoot.deletingLastPathComponent().deletingLastPathComponent().deletingLastPathComponent() + .appendingPathComponent("c_sources") + : packageRoot.appendingPathComponent("example/c_sources") + let localCSourcesDir = packageRoot.appendingPathComponent("c_sources") + + generateTokenizersHeaderFile( + names: tokenizers, filePath: cSourcesDir.appendingPathComponent("tokenizers.h").path) + copyDirectoryContents(from: cSourcesDir, to: localCSourcesDir) + + sourceFiles += globFiles(under: "c_sources", extensions: ["h", "cpp"]) + tokenizersHeaderPath = isUserApp ? "../c_sources/tokenizers.h" : "../example/c_sources/tokenizers.h" +} + +// MARK: - Backend selection (exclude_files equivalent) + +if useSqlcipher { + print("[OP-SQLITE] using SQLCipher") + excludedSources.formUnion(["cpp/sqlite3.c", "cpp/sqlite3.h"]) + excludedDirs.insert("cpp/libsql") +} else if useTurso { + print("[OP-SQLITE] using Turso SDK kit") + excludedSources.formUnion(["cpp/sqlite3.c", "cpp/sqlite3.h", "cpp/bridge.hpp", "cpp/bridge.cpp"]) + excludedDirs.formUnion(["cpp/sqlcipher", "cpp/libsql"]) +} else if useLibsql { + print("[OP-SQLITE] ⚠️ Using libsql. If you have libsql questions please ask in the Turso Discord server.") + // cpp/bridge.cpp is the default (non-libsql) bridge; it and + // cpp/libsql/bridge.cpp both define opsqlite_get_db_path and friends — + // compiling both is a duplicate-symbol link error. + excludedSources.formUnion(["cpp/sqlite3.c", "cpp/sqlite3.h", "cpp/bridge.cpp", "cpp/bridge.hpp"]) + excludedDirs.insert("cpp/sqlcipher") +} else { + print("[OP-SQLITE] using pure SQLite") + excludedDirs.formUnion(["cpp/sqlcipher", "cpp/libsql"]) +} + +if phoneVersion { + print("[OP-SQLITE] using iOS embedded SQLite 📱") + excludedSources.formUnion(["cpp/sqlite3.c", "cpp/sqlite3.h"]) +} + +// A prior manifest evaluation (tokenizers previously enabled) may have left +// c_sources/*.{h,cpp} on disk even though tokenizers is empty now — exclude +// the whole dir so a stale copy doesn't get swept into the build. +if tokenizers.isEmpty { + excludedDirs.insert("c_sources") +} + +sourceFiles.removeAll { excludedSources.contains($0) } +sourceFiles = Array(Set(sourceFiles)).sorted() + +// MARK: - Preprocessor defines (GCC_PREPROCESSOR_DEFINITIONS + OTHER_CFLAGS) + +func parseDefines(_ flags: String) -> [(name: String, value: String?)] { + flags.split(separator: " ").compactMap { token in + guard token.hasPrefix("-D") else { return nil } + let body = token.dropFirst(2) + if let eq = body.firstIndex(of: "=") { + return (String(body[body.startIndex../build/generated/autolinking/libs//`, +// so these relative paths to the app-local ReactNative / React-GeneratedCode +// packages are stable — the same ones RN's own scaffolder emits. + +var packageDependencies: [Package.Dependency] = [ + .package(name: "ReactNative", path: "../../../../xcframeworks"), + .package(name: "React-GeneratedCode", path: "../../../ios"), +] +targetDependencies += [ + .product(name: "ReactHeaders", package: "ReactNative"), + .product(name: "ReactNativeHeaders", package: "ReactNative"), + .product(name: "ReactNativeDependenciesHeaders", package: "ReactNative"), + .product(name: "ReactAppHeaders", package: "React-GeneratedCode"), +] + +// Best-effort translation of `s.dependency "OpenSSL-Universal"`. There's no +// SwiftPM release of the CocoaPods OpenSSL-Universal binary; this points at +// the closest maintained SwiftPM OpenSSL package instead. The example app +// doesn't enable sqlcipher, so this path is untested — verify ABI/symbol +// compatibility before shipping a sqlcipher-enabled SPM build. +if useSqlcipher { + packageDependencies.append( + .package(url: "https://github.com/krzyzanowskim/OpenSSL.git", from: "3.3.3000")) + targetDependencies.append(.product(name: "OpenSSL", package: "OpenSSL")) +} + +// MARK: - Package + +// `path: "."` puts the whole repo root in scope for SPM's own directory +// walk. `example/` contains the autolinker's self-managed-package symlink +// for this very package (`example/ios/build/generated/autolinking/libs/OpSqlite` +// -> this repo root), so an unbounded walk recurses through that symlink +// forever. Bound the walk to only the top-level dirs the target needs. +// +// NOTE: SwiftPM's manifest evaluation runs in a filesystem sandbox that +// forbids writes outside temp/build directories (confirmed empirically: an +// attempt to stage files into a repo-local scratch dir failed with EPERM, +// even though the tokenizer-header write above degrades gracefully via +// `try?`). That rules out physically relocating unwanted files at resolve +// time — the fix has to be purely declarative `exclude:` entries instead, +// which is why the backend-specific sources above are excluded by directory +// wherever the repo layout allows it. +let neededTopLevelDirs: Set = ["ios", "cpp", "c_sources"] +let topLevelExcludes: [String] = + (try? FileManager.default.contentsOfDirectory(atPath: packageRoot.path))? + .filter { !neededTopLevelDirs.contains($0) && $0 != "Package.swift" && $0 != "op-sqlite-spm-prefix.h" } + ?? [] + +// Vendored xcframeworks are consumed exclusively through their own +// `.binaryTarget` declarations below — excluded here unconditionally so the +// main target's directory scan never sweeps their Info.plist / CodeResources +// / raw Mach-O binaries in as bogus "sources". +let targetExcludes = + topLevelExcludes + + [ + "ios/sqlitevec.xcframework", + "ios/libsql_experimental.xcframework", + "ios/turso_sdk_kit.xcframework", + "ios/OPSQLite.xcodeproj", + ] + + excludedDirs.map { $0 } + + excludedSources.map { $0 } + +let package = Package( + name: "OpSqlite", + // RN's own SPM packaging (generate-spm-autolinking.js) only declares + // .iOS(.v15) for the autolinked aggregator; a broader platform list here + // (tvOS/macOS/visionOS, mirroring op-sqlite.podspec) makes SPM reject the + // whole graph with a minimum-deployment-target conflict, since the + // aggregator doesn't guarantee those platforms. RN's SwiftPM support is + // iOS-only at this stage regardless. + platforms: [.iOS(.v15)], + products: [ + .library(name: "OpSqlite", targets: ["OpSqlite"]) + ], + dependencies: packageDependencies, + targets: binaryTargets + [ + .target( + name: "OpSqlite", + dependencies: targetDependencies, + path: ".", + // Deliberately no `sources:` alongside `exclude:` — combining an + // explicit `sources:` allowlist with `exclude:` proved unreliable on + // this toolchain (files covered by `exclude:` but absent from + // `sources:` still got swept into the build). `targetExcludes` is + // constructed so everything left under `path` is exactly the wanted + // set, and the default auto-scan is the well-trodden SPM code path. + exclude: targetExcludes, + // cpp/bridge.cpp reaches SQLite via `#include ` (angle + // form). cpp/sqlite3.h and cpp/sqlcipher/sqlite3.h are two different + // files with that same name; CocoaPods disambiguates via its header + // map, built fresh from source_files/exclude_files each `pod install`. + // SPM has no header map — publicHeadersPath is the closest equivalent + // (SPM exposes/searches that one directory's headers for the target), + // so it has to track the same backend switch as the exclude logic + // above, or SQLCipher's build silently sees plain SQLite's sqlite3.h + // (no sqlite3_key_v2) instead of its own. + publicHeadersPath: useSqlcipher ? "cpp/sqlcipher" : "cpp", + cSettings: defineCSettings + [ + .headerSearchPath("."), + // Explicit backstop for the same sqlite3.h disambiguation described + // above, in case publicHeadersPath's implicit search isn't given + // priority over some other path on a future toolchain. + .headerSearchPath(useSqlcipher ? "cpp/sqlcipher" : "cpp"), + // cpp/libsql/bridge.hpp unconditionally `#include`s libsql.h (it's + // pulled in from always-compiled files like DBHostObject.hpp, not + // just the libsql backend), so libsql.h must resolve regardless of + // whether useLibsql links the actual xcframework binary. CocoaPods + // papered over this with a broad recursive header search path; + // SPM has no such default, so it's added explicitly here. Excluding + // the whole `cpp/libsql` dir above (when !useLibsql) only removes it + // from SPM's own source bookkeeping — the header stays on disk and + // still resolves via this search path regardless. + .headerSearchPath("ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Headers"), + ] + // cpp/turso/turso_bridge.cpp includes — + // framework-style angle include. The xcframework ships no module + // map, so this only resolves via clang's plain framework-header + // lookup, added below via -F (headers are identical across arch + // slices, so any one slice works). turso_sync.h then internally + // does a BARE `#include ` (no turso_sdk_kit/ prefix) — + // framework-header lookup doesn't cover that form, so the same + // Headers/ dir also needs a plain -I search path. + + (useTurso + ? [.headerSearchPath("ios/turso_sdk_kit.xcframework/ios-arm64/turso_sdk_kit.framework/Headers")] + : []) + + [ + .unsafeFlags( + ["-O2", "-include", "op-sqlite-spm-prefix.h"] + + (useTurso ? ["-F", "ios/turso_sdk_kit.xcframework/ios-arm64"] : [])), + ], + cxxSettings: defineCXXSettings + [ + .headerSearchPath("."), + .headerSearchPath(useSqlcipher ? "cpp/sqlcipher" : "cpp"), + .headerSearchPath("ios/libsql_experimental.xcframework/ios-arm64/libsql_experimental.framework/Headers"), + ] + + (useTurso + ? [.headerSearchPath("ios/turso_sdk_kit.xcframework/ios-arm64/turso_sdk_kit.framework/Headers")] + : []) + + [ + .unsafeFlags( + ["-O2", "-include", "op-sqlite-spm-prefix.h"] + + (useTurso ? ["-F", "ios/turso_sdk_kit.xcframework/ios-arm64"] : [])), + ], + linkerSettings: linkerSettings + ) + ], + cxxLanguageStandard: .cxx2b +) diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index 1426fcb6..430f45aa 100644 --- a/android/CMakeLists.txt +++ b/android/CMakeLists.txt @@ -70,7 +70,7 @@ elseif (USE_LIBSQL) -DOP_SQLITE_USE_LIBSQL=1 ) elseif (USE_TURSO) - target_sources(${PACKAGE_NAME} PRIVATE ../cpp/turso_bridge.cpp) + target_sources(${PACKAGE_NAME} PRIVATE ../cpp/turso/turso_bridge.cpp) add_definitions( -DOP_SQLITE_USE_TURSO=1 diff --git a/android/build.gradle b/android/build.gradle index 5d63be16..fd8dd677 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -143,6 +143,7 @@ android { namespace "com.op.sqlite" compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + ndkVersion getExtOrDefault("ndkVersion") defaultConfig { minSdkVersion getExtOrIntegerDefault("minSdkVersion") diff --git a/cpp/OPThreadPool.hpp b/cpp/OPThreadPool.hpp index e7fa529c..2294f794 100644 --- a/cpp/OPThreadPool.hpp +++ b/cpp/OPThreadPool.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include diff --git a/cpp/turso_bridge.cpp b/cpp/turso/turso_bridge.cpp similarity index 100% rename from cpp/turso_bridge.cpp rename to cpp/turso/turso_bridge.cpp diff --git a/docs/docs/Turso/start.md b/docs/docs/Turso/start.md new file mode 100644 index 00000000..5a0a5799 --- /dev/null +++ b/docs/docs/Turso/start.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 7 +--- + +# Turso Backend + +Turso is supported as a backend in op-sqlite. + +Enable it in your package.json: + +```json +"op-sqlite": { + "turso": true +} +``` + +You cannot use `turso` together with `sqlcipher` or `libsql` in the same build. + +## Remote Database + +Use `openRemote` for a purely remote connection: + +```tsx +import { openRemote } from '@op-engineering/op-sqlite'; + +const remoteDb = openRemote({ + url: 'url', + authToken: 'token', +}); +``` + +## Local + Sync Database + +Use `openSync` to create/open a local database that syncs with a remote Turso database: + +```tsx +import { openSync } from '@op-engineering/op-sqlite'; + +const syncDb = openSync({ + name: 'myDb.sqlite', + url: 'url', + authToken: 'token', + remoteEncryptionKey: 'optional-remote-encryption-key', +}); +``` + +## Triggering Sync + +Call `sync()` when you want to force a sync cycle: + +```tsx +syncDb.sync(); +``` + +The API shape is the same as libsql-backed remote/sync usage. diff --git a/example/Gemfile.lock b/example/Gemfile.lock index 16d0157a..3f4435b8 100644 --- a/example/Gemfile.lock +++ b/example/Gemfile.lock @@ -185,7 +185,7 @@ CHECKSUMS nanaimo (0.3.0) sha256=aaaedc60497070b864a7e220f7c4b4cad3a0daddda2c30055ba8dae306342376 nap (1.1.0) sha256=949691660f9d041d75be611bb2a8d2fd559c467537deac241f4097d9b5eea576 netrc (0.11.0) sha256=de1ce33da8c99ab1d97871726cba75151113f117146becbe45aa85cb3dabee3f - nkf (0.2.0) + nkf (0.2.0) sha256=fbc151bda025451f627fafdfcb3f4f13d0b22ae11f58c6d3a2939c76c5f5f126 prism (1.6.0) sha256=bfc0281a81718c4872346bc858dc84abd3a60cae78336c65ad35c8fbff641c6b public_suffix (4.0.7) sha256=8be161e2421f8d45b0098c042c06486789731ea93dc3a896d30554ee38b573b8 rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index f06000a2..993f66ed 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -60,7 +60,7 @@ android { // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.debug minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" } } } diff --git a/example/android/build.gradle b/example/android/build.gradle index 2f0fc5b7..14f85c0b 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,11 +1,11 @@ buildscript { ext { - buildToolsVersion = "36.0.0" + buildToolsVersion = "37.0.0" minSdkVersion = 24 - compileSdkVersion = 36 + compileSdkVersion = 37 targetSdkVersion = 36 ndkVersion = "27.1.12297006" - kotlinVersion = "2.1.20" + kotlinVersion = "2.2.0" } repositories { google() diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 891ca943..718ea1bd 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -3,4 +3,12 @@ android.useAndroidX=true reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 newArchEnabled=true hermesEnabled=true -edgeToEdgeEnabled=false \ No newline at end of file +edgeToEdgeEnabled=true + +# AGP 9's built-in Kotlin support auto-registers a `kotlin` extension, which +# collides with this project's own explicit `apply plugin: +# "org.jetbrains.kotlin.android"` ("Cannot add extension with name 'kotlin', +# as there is an extension already registered with that name"). Opt out per +# RN 0.87's AGP 9 migration notes; these flags are removed in AGP 10.x. +android.builtInKotlin=false +android.newDsl=false \ No newline at end of file diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 37f78a6a..c61a118f 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/example/ios/.gitignore b/example/ios/.gitignore new file mode 100644 index 00000000..c1e540af --- /dev/null +++ b/example/ios/.gitignore @@ -0,0 +1,6 @@ + +# SPM – auto-generated at build time (do not commit) +Package.resolved +build/generated/ +build/xcframeworks/ +.build/ diff --git a/example/ios/OPSQLiteExample.xcodeproj/.spm-injected.json b/example/ios/OPSQLiteExample.xcodeproj/.spm-injected.json new file mode 100644 index 00000000..b0e36608 --- /dev/null +++ b/example/ios/OPSQLiteExample.xcodeproj/.spm-injected.json @@ -0,0 +1,178 @@ +{ + "rootUuid": "83CBB9F71A601CBA00E9B192", + "target": "OPSQLiteExample", + "targetUuid": "13B07F861A680F5B00A75B9A", + "injectedUuids": [ + "17CA21E30A8FFCB9D0FC1E35", + "27BDE9D743CB351F53154525", + "3AFDEFB917B01458307FDE0A", + "3F1E298E4A2D7CA403A328B5", + "50A8621D202A6CFB97E2C1B5", + "512EBECF5434FD7A6AF7C967", + "658A88AFBFD620F8BC6F91BA", + "69A7AB74931112BD2779B631", + "8332BE36B9C49BD2E49347C1", + "920F69A9DF98D37C8308D020", + "947DD5EF3BE079FB7F5AFF87", + "94F7C9B714A718310DA6BE9C", + "A700952B9A737913514EB28F", + "B174F870C259554596A4373B", + "C2FECF1430FDAAE3BF355839", + "D6BD17EA9023C9F39246B71F", + "F3857EDDA38AFC0011322D6D" + ], + "createdArrayFields": [], + "buildSettingChanges": [ + { + "configUuid": "13B07F941A680F5B00A75B9A", + "createdArrayKeys": [ + "HEADER_SEARCH_PATHS", + "FRAMEWORK_SEARCH_PATHS" + ], + "appendedArrayValues": { + "OTHER_LDFLAGS": [ + "\"$(RN_SPM_REACT_BINARY)\"", + "\"$(RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY)\"", + "\"$(RN_SPM_HERMES_BINARY)\"" + ] + }, + "createdScalars": [ + "CLANG_CXX_LANGUAGE_STANDARD", + "REACT_NATIVE_PATH", + "HERMES_CLI_PATH", + "RN_SPM_FLAVOR", + "\"RN_SPM_REACT_FRAMEWORK[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_BINARY[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_SEARCH_PATH[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_FRAMEWORK[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_BINARY[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_SEARCH_PATH[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_FRAMEWORK[sdk=macosx*]\"", + "\"RN_SPM_REACT_BINARY[sdk=macosx*]\"", + "\"RN_SPM_REACT_SEARCH_PATH[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xros*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xros*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xros*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xrsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xrsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xrsimulator*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=appletvos*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=appletvos*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=appletvos*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=appletvsimulator*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=appletvsimulator*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=appletvsimulator*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=iphoneos*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=iphoneos*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=iphoneos*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=iphonesimulator*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=iphonesimulator*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=iphonesimulator*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=macosx*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=macosx*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=macosx*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=xros*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=xros*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=xros*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=xrsimulator*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=xrsimulator*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=xrsimulator*]\"" + ], + "replacedScalars": {} + }, + { + "configUuid": "13B07F951A680F5B00A75B9A", + "createdArrayKeys": [ + "HEADER_SEARCH_PATHS", + "FRAMEWORK_SEARCH_PATHS" + ], + "appendedArrayValues": { + "OTHER_LDFLAGS": [ + "\"$(RN_SPM_REACT_BINARY)\"", + "\"$(RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY)\"", + "\"$(RN_SPM_HERMES_BINARY)\"" + ] + }, + "createdScalars": [ + "CLANG_CXX_LANGUAGE_STANDARD", + "REACT_NATIVE_PATH", + "HERMES_CLI_PATH", + "RN_SPM_FLAVOR", + "\"RN_SPM_REACT_FRAMEWORK[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_BINARY[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_SEARCH_PATH[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_FRAMEWORK[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_BINARY[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_SEARCH_PATH[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_FRAMEWORK[sdk=macosx*]\"", + "\"RN_SPM_REACT_BINARY[sdk=macosx*]\"", + "\"RN_SPM_REACT_SEARCH_PATH[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphoneos*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphonesimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=macosx*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xros*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xros*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xros*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xrsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xrsimulator*]\"", + "\"RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xrsimulator*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=appletvos*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=appletvos*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=appletvos*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=appletvsimulator*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=appletvsimulator*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=appletvsimulator*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=iphoneos*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=iphoneos*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=iphoneos*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=iphonesimulator*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=iphonesimulator*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=iphonesimulator*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=macosx*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=macosx*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=macosx*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=xros*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=xros*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=xros*]\"", + "\"RN_SPM_HERMES_FRAMEWORK[sdk=xrsimulator*]\"", + "\"RN_SPM_HERMES_BINARY[sdk=xrsimulator*]\"", + "\"RN_SPM_HERMES_SEARCH_PATH[sdk=xrsimulator*]\"" + ], + "replacedScalars": {} + } + ], + "generatedSources": {}, + "artifactsVersionOverride": null, + "configCommand": null, + "scheme": { + "file": "debug.xcscheme", + "created": false + } +} diff --git a/example/ios/OPSQLiteExample.xcodeproj/project.pbxproj b/example/ios/OPSQLiteExample.xcodeproj/project.pbxproj index 1a3dda8b..b9f83469 100644 --- a/example/ios/OPSQLiteExample.xcodeproj/project.pbxproj +++ b/example/ios/OPSQLiteExample.xcodeproj/project.pbxproj @@ -9,11 +9,16 @@ /* Begin PBXBuildFile section */ 022AA638EE144393ADDCAEC0 /* sample.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 96FD9FD0FC4F4540AC7A9CE6 /* sample.sqlite */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 55C40F8AA9DF83E899E3CDAC /* libPods-OPSQLiteExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D9241EC58491DCDC9B61B00F /* libPods-OPSQLiteExample.a */; }; + 17CA21E30A8FFCB9D0FC1E35 /* ReactNativeHeaders in Frameworks */ = {isa = PBXBuildFile; productRef = 920F69A9DF98D37C8308D020 /* ReactNativeHeaders */; }; + 3F1E298E4A2D7CA403A328B5 /* ReactCodegen in Frameworks */ = {isa = PBXBuildFile; productRef = 947DD5EF3BE079FB7F5AFF87 /* ReactCodegen */; }; + 50A8621D202A6CFB97E2C1B5 /* ReactAppDependencyProvider in Frameworks */ = {isa = PBXBuildFile; productRef = F3857EDDA38AFC0011322D6D /* ReactAppDependencyProvider */; }; + 69A7AB74931112BD2779B631 /* ReactNativeDependenciesHeaders in Frameworks */ = {isa = PBXBuildFile; productRef = 8332BE36B9C49BD2E49347C1 /* ReactNativeDependenciesHeaders */; }; 701A4E312E5B08E700AC0D29 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 701A4E302E5B08E500AC0D29 /* AppDelegate.swift */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; 92B54B8E74B0B43081C567EF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 2C08DBE2BF8FD676ED5D600B /* PrivacyInfo.xcprivacy */; }; + 94F7C9B714A718310DA6BE9C /* ReactHeaders in Frameworks */ = {isa = PBXBuildFile; productRef = 512EBECF5434FD7A6AF7C967 /* ReactHeaders */; }; AC1DF06E9759460CAA51B7B1 /* sample2.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 9218E48CFB1F478CAC374D68 /* sample2.sqlite */; }; + D6BD17EA9023C9F39246B71F /* Autolinked in Frameworks */ = {isa = PBXBuildFile; productRef = 3AFDEFB917B01458307FDE0A /* Autolinked */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -21,15 +26,11 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = OPSQLiteExample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = OPSQLiteExample/Info.plist; sourceTree = ""; }; 2C08DBE2BF8FD676ED5D600B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = OPSQLiteExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 3B4392A12AC88292D35C810B /* Pods-OPSQLiteExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OPSQLiteExample.debug.xcconfig"; path = "Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample.debug.xcconfig"; sourceTree = ""; }; - 5709B34CF0A7D63546082F79 /* Pods-OPSQLiteExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OPSQLiteExample.release.xcconfig"; path = "Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample.release.xcconfig"; sourceTree = ""; }; 701A4E302E5B08E500AC0D29 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 701A4E322E5B08EA00AC0D29 /* OPSQLiteExample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OPSQLiteExample-Bridging-Header.h"; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = OPSQLiteExample/LaunchScreen.storyboard; sourceTree = ""; }; 9218E48CFB1F478CAC374D68 /* sample2.sqlite */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = sample2.sqlite; path = ../assets/sqlite/sample2.sqlite; sourceTree = ""; }; 96FD9FD0FC4F4540AC7A9CE6 /* sample.sqlite */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = sample.sqlite; path = ../assets/sample.sqlite; sourceTree = ""; }; - D9241EC58491DCDC9B61B00F /* libPods-OPSQLiteExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-OPSQLiteExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -37,7 +38,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 55C40F8AA9DF83E899E3CDAC /* libPods-OPSQLiteExample.a in Frameworks */, + 94F7C9B714A718310DA6BE9C /* ReactHeaders in Frameworks */, + 17CA21E30A8FFCB9D0FC1E35 /* ReactNativeHeaders in Frameworks */, + 69A7AB74931112BD2779B631 /* ReactNativeDependenciesHeaders in Frameworks */, + D6BD17EA9023C9F39246B71F /* Autolinked in Frameworks */, + 3F1E298E4A2D7CA403A328B5 /* ReactCodegen in Frameworks */, + 50A8621D202A6CFB97E2C1B5 /* ReactAppDependencyProvider in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -57,15 +63,6 @@ name = OPSQLiteExample; sourceTree = ""; }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - D9241EC58491DCDC9B61B00F /* libPods-OPSQLiteExample.a */, - ); - name = Frameworks; - sourceTree = ""; - }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( @@ -79,8 +76,6 @@ 13B07FAE1A68108700A75B9A /* OPSQLiteExample */, 832341AE1AAA6A7D00B99B32 /* Libraries */, 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - BBD78D7AC51CEA395F1C20DB /* Pods */, A9BA4AF2CBC44B9BB28B8ABA /* Resources */, ); indentWidth = 2; @@ -105,15 +100,6 @@ name = Resources; sourceTree = ""; }; - BBD78D7AC51CEA395F1C20DB /* Pods */ = { - isa = PBXGroup; - children = ( - 3B4392A12AC88292D35C810B /* Pods-OPSQLiteExample.debug.xcconfig */, - 5709B34CF0A7D63546082F79 /* Pods-OPSQLiteExample.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -121,20 +107,27 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "OPSQLiteExample" */; buildPhases = ( - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, + 658A88AFBFD620F8BC6F91BA /* Sync SPM Autolinking */, FD10A7F022414F080027D42C /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, + B174F870C259554596A4373B /* Embed React Native Flavored Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); name = OPSQLiteExample; + packageProductDependencies = ( + 512EBECF5434FD7A6AF7C967 /* ReactHeaders */, + 920F69A9DF98D37C8308D020 /* ReactNativeHeaders */, + 8332BE36B9C49BD2E49347C1 /* ReactNativeDependenciesHeaders */, + 3AFDEFB917B01458307FDE0A /* Autolinked */, + 947DD5EF3BE079FB7F5AFF87 /* ReactCodegen */, + F3857EDDA38AFC0011322D6D /* ReactAppDependencyProvider */, + ); productName = OPSQLiteExample; productReference = 13B07F961A680F5B00A75B9A /* OPSQLiteExample.app */; productType = "com.apple.product-type.application"; @@ -161,6 +154,11 @@ Base, ); mainGroup = 83CBB9F61A601CBA00E9B192; + packageReferences = ( + 27BDE9D743CB351F53154525 /* XCLocalSwiftPackageReference "xcframeworks" */, + C2FECF1430FDAAE3BF355839 /* XCLocalSwiftPackageReference "autolinking" */, + A700952B9A737913514EB28F /* XCLocalSwiftPackageReference "ios" */, + ); productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -202,24 +200,7 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { + 658A88AFBFD620F8BC6F91BA /* Sync SPM Autolinking */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -227,36 +208,40 @@ inputFileListPaths = ( ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", ); - name = "[CP] Check Pods Manifest.lock"; + name = "Sync SPM Autolinking"; outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-OPSQLiteExample-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; + shellScript = "set -euo pipefail\n\n# ---------------------------------------------------------------------------\n# Resolve a node binary and the react-native package dir at BUILD TIME.\n# ---------------------------------------------------------------------------\nNODE_BINARY=\"${NODE_BINARY:-}\"\nif [ -z \"$NODE_BINARY\" ]; then\n # Source RN's standard app-local node-path files. They reference vars that\n # may be unset and may return non-zero, so relax nounset AND errexit while\n # sourcing — a buggy user .xcode.env must degrade to PATH-based node\n # resolution below, not silently abort every build.\n set +eu\n if [ -f \"$SRCROOT/.xcode.env\" ]; then\n . \"$SRCROOT/.xcode.env\"\n fi\n if [ -f \"$SRCROOT/.xcode.env.local\" ]; then\n . \"$SRCROOT/.xcode.env.local\"\n fi\n set -eu\n NODE_BINARY=\"${NODE_BINARY:-}\"\nfi\nif [ -z \"$NODE_BINARY\" ]; then\n NODE_BINARY=\"$(command -v node 2>/dev/null || true)\"\nfi\n\n# Resolve react-native's dir FROM THE APP (require.resolve), not a\n# generation-time baked path — the baked path goes stale in pnpm / hoisted\n# stores. Fall back to the baked path if resolution fails or the resolved dir\n# has no setup-apple-spm.js.\nRN_DIR=\"\"\nif [ -n \"$NODE_BINARY\" ]; then\n RN_DIR=\"$(cd \"$SRCROOT\" && \"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json'))\" 2>/dev/null || true)\"\nfi\nif [ -z \"$RN_DIR\" ] || [ ! -f \"$RN_DIR/scripts/setup-apple-spm.js\" ]; then\n RN_DIR=\"../node_modules/react-native\"\nfi\n\nSTAMP=\"$SRCROOT/build/generated/autolinking/.spm-sync-stamp\"\nSTALE=0\n\n# Find project root (where package.json lives — may be an ancestor of SRCROOT)\nPROJECT_ROOT=\"$SRCROOT\"\nwhile [ \"$PROJECT_ROOT\" != \"/\" ] && [ ! -f \"$PROJECT_ROOT/package.json\" ]; do\n PROJECT_ROOT=\"$(dirname \"$PROJECT_ROOT\")\"\ndone\nif [ ! -f \"$PROJECT_ROOT/package.json\" ]; then\n PROJECT_ROOT=\"$SRCROOT\"\nfi\n\n# Check 1: dependency inputs (covers app projects after any package manager install)\nfor INPUT in \\\n \"$PROJECT_ROOT/package.json\" \\\n \"$PROJECT_ROOT/react-native.config.js\"; do\n if [ -f \"$INPUT\" ] && [ \"$INPUT\" -nt \"$STAMP\" ]; then\n STALE=1\n break\n fi\ndone\n\n# Check workspace lockfiles and package-manager metadata. These cover package\n# managers that do not reliably bump node_modules mtimes, and Yarn PnP projects\n# that do not have node_modules at all.\nif [ \"$STALE\" -eq 0 ]; then\n DIR=\"$PROJECT_ROOT\"\n while [ \"$DIR\" != \"/\" ]; do\n for INPUT in \\\n \"$DIR/package-lock.json\" \\\n \"$DIR/npm-shrinkwrap.json\" \\\n \"$DIR/yarn.lock\" \\\n \"$DIR/pnpm-lock.yaml\" \\\n \"$DIR/bun.lock\" \\\n \"$DIR/bun.lockb\" \\\n \"$DIR/.pnp.cjs\" \\\n \"$DIR/.pnp.loader.mjs\"; do\n if [ -f \"$INPUT\" ] && [ \"$INPUT\" -nt \"$STAMP\" ]; then\n STALE=1\n break\n fi\n done\n if [ \"$STALE\" -eq 1 ]; then\n break\n fi\n DIR=\"$(dirname \"$DIR\")\"\n done\nfi\n\n# Check node_modules mtime. In monorepos, node_modules may be hoisted to any\n# ancestor between the app package and the workspace root.\nif [ \"$STALE\" -eq 0 ]; then\n DIR=\"$PROJECT_ROOT\"\n while [ \"$DIR\" != \"/\" ]; do\n NM_DIR=\"$DIR/node_modules\"\n if [ -d \"$NM_DIR\" ] && [ \"$NM_DIR\" -nt \"$STAMP\" ]; then\n STALE=1\n break\n fi\n DIR=\"$(dirname \"$DIR\")\"\n done\nfi\n\n# Also check the app root directly when SRCROOT is not the package root.\nif [ \"$STALE\" -eq 0 ] && [ \"$SRCROOT\" != \"$PROJECT_ROOT\" ]; then\n if [ -d \"$SRCROOT/node_modules\" ] && [ \"$SRCROOT/node_modules\" -nt \"$STAMP\" ]; then\n STALE=1\n fi\nfi\n\n# Check 1.5: watched paths (mixed dirs AND files). Dirs catch add/remove of\n# source files in spm.modules and autolinked deps (dir mtime updates on both);\n# files catch edits to a dep's checked-in Package.swift / plugin manifests that\n# would not bump any parent dir mtime. A path that has VANISHED (renamed/moved\n# module root) forces a re-sync so the autolinker surfaces the real, actionable\n# config error rather than the build failing later on dangling-symlink noise.\nWATCH_FILE=\"$SRCROOT/build/generated/autolinking/.spm-sync-watch-paths\"\nif [ \"$STALE\" -eq 0 ] && [ -f \"$WATCH_FILE\" ]; then\n while IFS= read -r P; do\n [ -z \"$P\" ] && continue\n if [ -d \"$P\" ]; then\n if [ -n \"$(find \"$P\" -newer \"$STAMP\" -print -quit 2>/dev/null)\" ]; then\n STALE=1\n break\n fi\n elif [ -f \"$P\" ]; then\n if [ \"$P\" -nt \"$STAMP\" ]; then\n STALE=1\n break\n fi\n else\n STALE=1\n break\n fi\n done < \"$WATCH_FILE\"\nfi\n\n# Check 2: codegen spec files changed via git (covers monorepo after git pull)\nif [ \"$STALE\" -eq 0 ] && [ -f \"$STAMP\" ]; then\n STAMP_TIME=$(stat -f %m \"$STAMP\" 2>/dev/null || stat -c %Y \"$STAMP\" 2>/dev/null || echo 0)\n LATEST_SPEC_COMMIT=$(git -C \"$SRCROOT\" log -1 --format=%ct -- '*.js' '*.ts' 2>/dev/null || echo 0)\n if [ \"$LATEST_SPEC_COMMIT\" -gt \"$STAMP_TIME\" ]; then\n STALE=1\n fi\nfi\n\nif [ ! -f \"$STAMP\" ]; then\n STALE=1\nfi\n\n# Re-sync codegen + autolinking when a dependency input changed. Runtime\n# framework slots and Xcode linker settings are only changed by spm update.\nif [ \"$STALE\" -eq 1 ]; then\n echo \"SPM sync inputs changed — re-syncing (codegen + autolinking)...\"\n\n WITH_ENVIRONMENT=\"$RN_DIR/scripts/xcode/with-environment.sh\"\n\n if [ -f \"$WITH_ENVIRONMENT\" ]; then\n # with-environment.sh references PODS_ROOT and $1, which may be unset.\n # Temporarily disable nounset to avoid failures when sourcing.\n export PODS_ROOT=\"${PODS_ROOT:-$SRCROOT}\"\n set +u\n . \"$WITH_ENVIRONMENT\"\n set -u\n fi\n\n cd \"$SRCROOT\"\n # `|| RC=$?` so a non-zero exit is CAPTURED rather than aborting the phase\n # under `set -e` — the whole point is to branch on the code below (2 = fail\n # the build with a scaffold hint; other non-zero = warn but don't break).\n RC=0\n if [ -n \"$NODE_BINARY\" ] && [ -f \"$RN_DIR/scripts/setup-apple-spm.js\" ]; then\n # Direct, dependency-free dispatch (no `npx react-native`, which needs\n # @react-native-community/cli).\n \"$NODE_BINARY\" \"$RN_DIR/scripts/setup-apple-spm.js\" sync || RC=$?\n elif command -v npx >/dev/null 2>&1; then\n npx react-native spm sync || RC=$?\n else\n echo \"warning: node/npx not found — skipping SPM sync\"\n fi\n if [ \"$RC\" -eq 2 ]; then\n # Exit 2 = an autolinked community dependency has no Package.swift. The\n # autolinker already printed an `error:` line per dep (so Xcode shows them\n # and the fix). Fail the build — the developer must run\n # `npx react-native spm scaffold` from a terminal to generate the manifest.\n exit 1\n elif [ \"$RC\" -ne 0 ]; then\n echo \"warning: SPM sync failed — build may use stale codegen/autolinking\"\n fi\nfi\n\n"; }; - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { + B174F870C259554596A4373B /* Embed React Native Flavored Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "$(SRCROOT)/build/xcframeworks/.artifact-stamp", + "$(RN_SPM_REACT_FRAMEWORK)", + "$(RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK)", + "$(RN_SPM_HERMES_FRAMEWORK)", + ); + name = "Embed React Native Flavored Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/React.framework", + "$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/ReactNativeDependencies.framework", + "$(TARGET_BUILD_DIR)/$(FRAMEWORKS_FOLDER_PATH)/hermesvm.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OPSQLiteExample/Pods-OPSQLiteExample-resources.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "set -euo pipefail\n\ndestination=\"$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH\"\nmkdir -p \"$destination\"\n\nvalidate_framework() {\n source=\"$1\"\n name=\"$2\"\n if [ -z \"$source\" ] || [ ! -d \"$source\" ]; then\n echo \"error: React Native SwiftPM framework '$name' is unavailable for configuration '$CONFIGURATION' and SDK '$SDK_NAME': $source\"\n exit 1\n fi\n binary=\"${name%.framework}\"\n if [ ! -e \"$source/$binary\" ] && [ ! -e \"$source/Versions/Current/$binary\" ]; then\n echo \"error: React Native SwiftPM framework '$name' is invalid for configuration '$CONFIGURATION': expected $source/$binary or $source/Versions/Current/$binary\"\n exit 1\n fi\n}\n\ncopy_and_sign() {\n source=\"$1\"\n name=\"$2\"\n /usr/bin/rsync -a --delete \"$source/\" \"$destination/$name/\"\n if [ \"${CODE_SIGNING_ALLOWED:-YES}\" != \"NO\" ]; then\n identity=\"${EXPANDED_CODE_SIGN_IDENTITY:--}\"\n if [ \"$identity\" = \"-\" ]; then\n /usr/bin/codesign --force --sign - --timestamp=none --preserve-metadata=identifier,entitlements,flags \"$destination/$name\"\n else\n /usr/bin/codesign --force --sign \"$identity\" --preserve-metadata=identifier,entitlements,flags \"$destination/$name\"\n fi\n fi\n}\n\nvalidate_framework \"${RN_SPM_REACT_FRAMEWORK:-}\" \"React.framework\"\nvalidate_framework \"${RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK:-}\" \"ReactNativeDependencies.framework\"\nvalidate_framework \"${RN_SPM_HERMES_FRAMEWORK:-}\" \"hermesvm.framework\"\ncopy_and_sign \"${RN_SPM_REACT_FRAMEWORK:-}\" \"React.framework\"\ncopy_and_sign \"${RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK:-}\" \"ReactNativeDependencies.framework\"\ncopy_and_sign \"${RN_SPM_HERMES_FRAMEWORK:-}\" \"hermesvm.framework\"\n"; }; FD10A7F022414F080027D42C /* Start Packager */ = { isa = PBXShellScriptBuildPhase; @@ -293,8 +278,72 @@ /* Begin XCBuildConfiguration section */ 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-OPSQLiteExample.debug.xcconfig */; buildSettings = { + "RN_SPM_HERMES_SEARCH_PATH[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64_x86_64-simulator"; + "RN_SPM_HERMES_BINARY[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64_x86_64-simulator/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64_x86_64-simulator/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64"; + "RN_SPM_HERMES_BINARY[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-maccatalyst"; + "RN_SPM_HERMES_BINARY[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-maccatalyst/hermesvm.framework/Versions/1/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-maccatalyst/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-simulator"; + "RN_SPM_HERMES_BINARY[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-simulator/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-simulator/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64"; + "RN_SPM_HERMES_BINARY[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64_x86_64-simulator"; + "RN_SPM_HERMES_BINARY[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64_x86_64-simulator/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64_x86_64-simulator/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64"; + "RN_SPM_HERMES_BINARY[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64/hermesvm.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64_x86_64-simulator"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64_x86_64-simulator/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64_x86_64-simulator/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-simulator"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-simulator/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-simulator/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64_x86_64-simulator"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64_x86_64-simulator/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64_x86_64-simulator/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64/ReactNativeDependencies.framework"; + "RN_SPM_REACT_SEARCH_PATH[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-maccatalyst"; + "RN_SPM_REACT_BINARY[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-maccatalyst/React.framework/React"; + "RN_SPM_REACT_FRAMEWORK[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-maccatalyst/React.framework"; + "RN_SPM_REACT_SEARCH_PATH[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-simulator"; + "RN_SPM_REACT_BINARY[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-simulator/React.framework/React"; + "RN_SPM_REACT_FRAMEWORK[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-simulator/React.framework"; + "RN_SPM_REACT_SEARCH_PATH[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64"; + "RN_SPM_REACT_BINARY[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64/React.framework/React"; + "RN_SPM_REACT_FRAMEWORK[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64/React.framework"; + RN_SPM_FLAVOR = debug; + HERMES_CLI_PATH = "/Users/osp/Developer/opsqlite/example/node_modules/hermes-compiler/hermesc/osx-bin/hermesc"; + REACT_NATIVE_PATH = "../node_modules/react-native"; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(RN_SPM_REACT_SEARCH_PATH)", + "$(RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH)", + "$(RN_SPM_HERMES_SEARCH_PATH)", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/build/generated/autolinking/headers", + ); ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; @@ -312,6 +361,9 @@ "$(inherited)", "-ObjC", "-lc++", + "$(RN_SPM_REACT_BINARY)", + "$(RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY)", + "$(RN_SPM_HERMES_BINARY)", ); PRODUCT_BUNDLE_IDENTIFIER = com.op.sqlite.example; PRODUCT_NAME = OPSQLiteExample; @@ -329,8 +381,72 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-OPSQLiteExample.release.xcconfig */; buildSettings = { + "RN_SPM_HERMES_SEARCH_PATH[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64_x86_64-simulator"; + "RN_SPM_HERMES_BINARY[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64_x86_64-simulator/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64_x86_64-simulator/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64"; + "RN_SPM_HERMES_BINARY[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/xros-arm64/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-maccatalyst"; + "RN_SPM_HERMES_BINARY[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-maccatalyst/hermesvm.framework/Versions/1/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-maccatalyst/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-simulator"; + "RN_SPM_HERMES_BINARY[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-simulator/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64_x86_64-simulator/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64"; + "RN_SPM_HERMES_BINARY[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/ios-arm64/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64_x86_64-simulator"; + "RN_SPM_HERMES_BINARY[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64_x86_64-simulator/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64_x86_64-simulator/hermesvm.framework"; + "RN_SPM_HERMES_SEARCH_PATH[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64"; + "RN_SPM_HERMES_BINARY[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64/hermesvm.framework/hermesvm"; + "RN_SPM_HERMES_FRAMEWORK[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/hermes-engine.xcframework/tvos-arm64/hermesvm.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64_x86_64-simulator"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64_x86_64-simulator/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xrsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64_x86_64-simulator/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=xros*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/xros-arm64/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-simulator"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-simulator/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64_x86_64-simulator/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/ios-arm64/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64_x86_64-simulator"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64_x86_64-simulator/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvsimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64_x86_64-simulator/ReactNativeDependencies.framework"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64/ReactNativeDependencies.framework/ReactNativeDependencies"; + "RN_SPM_REACT_NATIVE_DEPENDENCIES_FRAMEWORK[sdk=appletvos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/ReactNativeDependencies.xcframework/tvos-arm64/ReactNativeDependencies.framework"; + "RN_SPM_REACT_SEARCH_PATH[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-maccatalyst"; + "RN_SPM_REACT_BINARY[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-maccatalyst/React.framework/React"; + "RN_SPM_REACT_FRAMEWORK[sdk=macosx*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-maccatalyst/React.framework"; + "RN_SPM_REACT_SEARCH_PATH[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-simulator"; + "RN_SPM_REACT_BINARY[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-simulator/React.framework/React"; + "RN_SPM_REACT_FRAMEWORK[sdk=iphonesimulator*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64_x86_64-simulator/React.framework"; + "RN_SPM_REACT_SEARCH_PATH[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64"; + "RN_SPM_REACT_BINARY[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64/React.framework/React"; + "RN_SPM_REACT_FRAMEWORK[sdk=iphoneos*]" = "$(SRCROOT)/build/xcframeworks/$(RN_SPM_FLAVOR)/React.xcframework/ios-arm64/React.framework"; + RN_SPM_FLAVOR = release; + HERMES_CLI_PATH = "/Users/osp/Developer/opsqlite/example/node_modules/hermes-compiler/hermesc/osx-bin/hermesc"; + REACT_NATIVE_PATH = "../node_modules/react-native"; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(RN_SPM_REACT_SEARCH_PATH)", + "$(RN_SPM_REACT_NATIVE_DEPENDENCIES_SEARCH_PATH)", + "$(RN_SPM_HERMES_SEARCH_PATH)", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/build/generated/autolinking/headers", + ); ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; @@ -348,6 +464,9 @@ "$(inherited)", "-ObjC", "-lc++", + "$(RN_SPM_REACT_BINARY)", + "$(RN_SPM_REACT_NATIVE_DEPENDENCIES_BINARY)", + "$(RN_SPM_HERMES_BINARY)", ); PRODUCT_BUNDLE_IDENTIFIER = com.op.sqlite.example; PRODUCT_NAME = OPSQLiteExample; @@ -576,6 +695,54 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 27BDE9D743CB351F53154525 /* XCLocalSwiftPackageReference "xcframeworks" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = build/xcframeworks; + }; + A700952B9A737913514EB28F /* XCLocalSwiftPackageReference "ios" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = build/generated/ios; + }; + C2FECF1430FDAAE3BF355839 /* XCLocalSwiftPackageReference "autolinking" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = build/generated/autolinking; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 3AFDEFB917B01458307FDE0A /* Autolinked */ = { + isa = XCSwiftPackageProductDependency; + package = C2FECF1430FDAAE3BF355839 /* XCLocalSwiftPackageReference "autolinking" */; + productName = Autolinked; + }; + 512EBECF5434FD7A6AF7C967 /* ReactHeaders */ = { + isa = XCSwiftPackageProductDependency; + package = 27BDE9D743CB351F53154525 /* XCLocalSwiftPackageReference "xcframeworks" */; + productName = ReactHeaders; + }; + 8332BE36B9C49BD2E49347C1 /* ReactNativeDependenciesHeaders */ = { + isa = XCSwiftPackageProductDependency; + package = 27BDE9D743CB351F53154525 /* XCLocalSwiftPackageReference "xcframeworks" */; + productName = ReactNativeDependenciesHeaders; + }; + 920F69A9DF98D37C8308D020 /* ReactNativeHeaders */ = { + isa = XCSwiftPackageProductDependency; + package = 27BDE9D743CB351F53154525 /* XCLocalSwiftPackageReference "xcframeworks" */; + productName = ReactNativeHeaders; + }; + 947DD5EF3BE079FB7F5AFF87 /* ReactCodegen */ = { + isa = XCSwiftPackageProductDependency; + package = A700952B9A737913514EB28F /* XCLocalSwiftPackageReference "ios" */; + productName = ReactCodegen; + }; + F3857EDDA38AFC0011322D6D /* ReactAppDependencyProvider */ = { + isa = XCSwiftPackageProductDependency; + package = A700952B9A737913514EB28F /* XCLocalSwiftPackageReference "ios" */; + productName = ReactAppDependencyProvider; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; } diff --git a/example/ios/OPSQLiteExample.xcodeproj/xcshareddata/xcschemes/debug.xcscheme b/example/ios/OPSQLiteExample.xcodeproj/xcshareddata/xcschemes/debug.xcscheme index 3e616ad0..bdd98a7f 100644 --- a/example/ios/OPSQLiteExample.xcodeproj/xcshareddata/xcschemes/debug.xcscheme +++ b/example/ios/OPSQLiteExample.xcodeproj/xcshareddata/xcschemes/debug.xcscheme @@ -5,6 +5,212 @@ + + + + + + + + + + - - diff --git a/example/ios/Podfile b/example/ios/Podfile index f9171bf7..5ef74d28 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -8,7 +8,6 @@ require Pod::Executable.execute_command('node', ['-p', )', __dir__]).strip platform :ios, min_ios_version_supported -prepare_react_native_project! linkage = ENV['USE_FRAMEWORKS'] if linkage != nil @@ -17,19 +16,4 @@ if linkage != nil end target 'OPSQLiteExample' do - config = use_native_modules! - - use_react_native!( - :path => config[:reactNativePath], - :app_path => "#{Pod::Config.instance.installation_root}/.." - ) - - post_install do |installer| - # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 - react_native_post_install( - installer, - config[:reactNativePath], - :mac_catalyst_enabled => false - ) - end end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 60d01ce4..d2ce1d8a 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,2243 +1,3 @@ -PODS: - - FBLazyVector (0.86.0) - - hermes-engine (250829098.0.14): - - hermes-engine/Pre-built (= 250829098.0.14) - - hermes-engine/Pre-built (250829098.0.14) - - op-sqlite (0.0.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - React-NativeModulesApple - - React-RCTFabric - - React-renderercss - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - RCTDeprecation (0.86.0) - - RCTRequired (0.86.0) - - RCTSwiftUI (0.86.0) - - RCTSwiftUIWrapper (0.86.0): - - RCTSwiftUI - - RCTTypeSafety (0.86.0): - - FBLazyVector (= 0.86.0) - - RCTRequired (= 0.86.0) - - React-Core (= 0.86.0) - - React (0.86.0): - - React-Core (= 0.86.0) - - React-Core/DevSupport (= 0.86.0) - - React-Core/RCTWebSocket (= 0.86.0) - - React-RCTActionSheet (= 0.86.0) - - React-RCTAnimation (= 0.86.0) - - React-RCTBlob (= 0.86.0) - - React-RCTImage (= 0.86.0) - - React-RCTLinking (= 0.86.0) - - React-RCTNetwork (= 0.86.0) - - React-RCTSettings (= 0.86.0) - - React-RCTText (= 0.86.0) - - React-RCTVibration (= 0.86.0) - - React-callinvoker (0.86.0) - - React-Core (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default (= 0.86.0) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core-prebuilt (0.86.0): - - ReactNativeDependencies - - React-Core/CoreModulesHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/Default (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/DevSupport (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default (= 0.86.0) - - React-Core/RCTWebSocket (= 0.86.0) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTActionSheetHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTAnimationHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTBlobHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTImageHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTLinkingHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTNetworkHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTSettingsHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTTextHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTVibrationHeaders (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTWebSocket (0.86.0): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default (= 0.86.0) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-CoreModules (0.86.0): - - RCTTypeSafety (= 0.86.0) - - React-Core-prebuilt - - React-Core/CoreModulesHeaders (= 0.86.0) - - React-debug - - React-featureflags - - React-jsi (= 0.86.0) - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-NativeModulesApple - - React-RCTBlob - - React-RCTFBReactNativeSpec - - React-RCTImage (= 0.86.0) - - React-runtimeexecutor - - React-utils - - ReactCommon - - ReactNativeDependencies - - React-cxxreact (0.86.0): - - hermes-engine - - React-callinvoker (= 0.86.0) - - React-Core-prebuilt - - React-debug (= 0.86.0) - - React-jsi (= 0.86.0) - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-logger (= 0.86.0) - - React-perflogger (= 0.86.0) - - React-runtimeexecutor - - React-timing (= 0.86.0) - - React-utils - - ReactNativeDependencies - - React-debug (0.86.0): - - React-debug/redbox (= 0.86.0) - - React-debug/redbox (0.86.0) - - React-defaultsnativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-domnativemodule - - React-Fabric/animated - - React-featureflags - - React-featureflagsnativemodule - - React-idlecallbacksnativemodule - - React-intersectionobservernativemodule - - React-jsi - - React-jsiexecutor - - React-microtasksnativemodule - - React-mutationobservernativemodule - - React-RCTFBReactNativeSpec - - React-viewtransitionnativemodule - - React-webperformancenativemodule - - ReactNativeDependencies - - Yoga - - React-domnativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-Fabric - - React-Fabric/bridging - - React-FabricComponents - - React-graphics - - React-jsi - - React-jsiexecutor - - React-RCTFBReactNativeSpec - - React-runtimeexecutor - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-Fabric (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric/animated (= 0.86.0) - - React-Fabric/animationbackend (= 0.86.0) - - React-Fabric/animations (= 0.86.0) - - React-Fabric/attributedstring (= 0.86.0) - - React-Fabric/bridging (= 0.86.0) - - React-Fabric/componentregistry (= 0.86.0) - - React-Fabric/componentregistrynative (= 0.86.0) - - React-Fabric/components (= 0.86.0) - - React-Fabric/consistency (= 0.86.0) - - React-Fabric/core (= 0.86.0) - - React-Fabric/dom (= 0.86.0) - - React-Fabric/imagemanager (= 0.86.0) - - React-Fabric/leakchecker (= 0.86.0) - - React-Fabric/mounting (= 0.86.0) - - React-Fabric/observers (= 0.86.0) - - React-Fabric/scheduler (= 0.86.0) - - React-Fabric/telemetry (= 0.86.0) - - React-Fabric/uimanager (= 0.86.0) - - React-Fabric/viewtransition (= 0.86.0) - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/animated (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric/animationbackend - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/animationbackend (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/animations (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/attributedstring (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/bridging (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/componentregistry (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/componentregistrynative (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/components (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.86.0) - - React-Fabric/components/root (= 0.86.0) - - React-Fabric/components/scrollview (= 0.86.0) - - React-Fabric/components/view (= 0.86.0) - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/components/legacyviewmanagerinterop (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/components/root (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/components/scrollview (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/components/view (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-renderercss - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-Fabric/consistency (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/core (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/dom (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/imagemanager (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/leakchecker (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/mounting (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-jsinspectortracing - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/observers (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric/observers/events (= 0.86.0) - - React-Fabric/observers/intersection (= 0.86.0) - - React-Fabric/observers/mutation (= 0.86.0) - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/observers/events (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/observers/intersection (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/observers/mutation (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/scheduler (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric/animationbackend - - React-Fabric/observers/events - - React-Fabric/viewtransition - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-performancecdpmetrics - - React-performancetimeline - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/telemetry (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/uimanager (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric/uimanager/consistency (= 0.86.0) - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererconsistency - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/uimanager/consistency (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererconsistency - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-Fabric/viewtransition (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-FabricComponents (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-FabricComponents/components (= 0.86.0) - - React-FabricComponents/textlayoutmanager (= 0.86.0) - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.86.0) - - React-FabricComponents/components/iostextinput (= 0.86.0) - - React-FabricComponents/components/modal (= 0.86.0) - - React-FabricComponents/components/rncore (= 0.86.0) - - React-FabricComponents/components/safeareaview (= 0.86.0) - - React-FabricComponents/components/scrollview (= 0.86.0) - - React-FabricComponents/components/switch (= 0.86.0) - - React-FabricComponents/components/text (= 0.86.0) - - React-FabricComponents/components/textinput (= 0.86.0) - - React-FabricComponents/components/unimplementedview (= 0.86.0) - - React-FabricComponents/components/virtualview (= 0.86.0) - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/inputaccessory (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/iostextinput (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/modal (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/rncore (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/safeareaview (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/scrollview (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/switch (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/text (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/textinput (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/unimplementedview (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/virtualview (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricComponents/textlayoutmanager (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-FabricImage (0.86.0): - - hermes-engine - - RCTRequired (= 0.86.0) - - RCTTypeSafety (= 0.86.0) - - React-Core-prebuilt - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - React-jsiexecutor (= 0.86.0) - - React-logger - - React-rendererdebug - - React-utils - - ReactCommon - - ReactNativeDependencies - - Yoga - - React-featureflags (0.86.0): - - React-Core-prebuilt - - ReactNativeDependencies - - React-featureflagsnativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-featureflags - - React-jsi - - React-jsiexecutor - - React-RCTFBReactNativeSpec - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-graphics (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-featureflags - - React-jsi - - React-jsiexecutor - - React-rendererdebug - - React-utils - - ReactNativeDependencies - - React-hermes (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact (= 0.86.0) - - React-jsi - - React-jsiexecutor (= 0.86.0) - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-jsitooling - - React-oscompat - - React-perflogger (= 0.86.0) - - React-runtimeexecutor - - ReactNativeDependencies - - React-idlecallbacksnativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-jsi - - React-jsiexecutor - - React-RCTFBReactNativeSpec - - React-runtimeexecutor - - React-runtimescheduler - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-ImageManager (0.86.0): - - React-Core-prebuilt - - React-Core/Default - - React-debug - - React-Fabric - - React-graphics - - React-rendererdebug - - React-utils - - ReactNativeDependencies - - React-intersectionobservernativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact - - React-Fabric - - React-Fabric/bridging - - React-graphics - - React-jsi - - React-jsiexecutor - - React-RCTFBReactNativeSpec - - React-runtimeexecutor - - React-runtimescheduler - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-jserrorhandler (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-jsi - - ReactCommon/turbomodule/bridging - - ReactNativeDependencies - - React-jsi (0.86.0): - - hermes-engine - - React-Core-prebuilt - - ReactNativeDependencies - - React-jsiexecutor (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-jserrorhandler - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-utils - - ReactNativeDependencies - - React-jsinspector (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-featureflags - - React-jsi - - React-jsinspectorcdp - - React-jsinspectornetwork - - React-jsinspectortracing - - React-oscompat - - React-perflogger (= 0.86.0) - - React-runtimeexecutor - - React-utils - - ReactNativeDependencies - - React-jsinspectorcdp (0.86.0): - - React-Core-prebuilt - - ReactNativeDependencies - - React-jsinspectornetwork (0.86.0): - - React-Core-prebuilt - - React-jsinspectorcdp - - ReactNativeDependencies - - React-jsinspectortracing (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-jsi - - React-jsinspectornetwork - - React-oscompat - - React-timing - - React-utils - - ReactNativeDependencies - - React-jsitooling (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact (= 0.86.0) - - React-debug - - React-jsi (= 0.86.0) - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-runtimeexecutor - - React-utils - - ReactNativeDependencies - - React-jsitracing (0.86.0): - - React-jsi - - React-logger (0.86.0): - - React-Core-prebuilt - - ReactNativeDependencies - - React-Mapbuffer (0.86.0): - - React-Core-prebuilt - - React-debug - - ReactNativeDependencies - - React-microtasksnativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-jsi - - React-jsiexecutor - - React-RCTFBReactNativeSpec - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-mutationobservernativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact - - React-Fabric - - React-Fabric/bridging - - React-Fabric/observers/mutation - - React-featureflags - - React-jsi - - React-jsiexecutor - - React-RCTFBReactNativeSpec - - React-runtimeexecutor - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - react-native-restart (0.0.27): - - React-Core - - react-native-safe-area-context (5.7.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - react-native-safe-area-context/common (= 5.7.0) - - react-native-safe-area-context/fabric (= 5.7.0) - - React-NativeModulesApple - - React-RCTFabric - - React-renderercss - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - react-native-safe-area-context/common (5.7.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - React-NativeModulesApple - - React-RCTFabric - - React-renderercss - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - react-native-safe-area-context/fabric (5.7.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - react-native-safe-area-context/common - - React-NativeModulesApple - - React-RCTFabric - - React-renderercss - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-NativeModulesApple (0.86.0): - - hermes-engine - - React-callinvoker - - React-Core - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-runtimeexecutor - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - React-networking (0.86.0): - - React-Core-prebuilt - - React-jsinspectornetwork - - React-jsinspectortracing - - React-performancetimeline - - React-timing - - ReactNativeDependencies - - React-oscompat (0.86.0) - - React-perflogger (0.86.0): - - React-Core-prebuilt - - ReactNativeDependencies - - React-performancecdpmetrics (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-jsi - - React-performancetimeline - - React-runtimeexecutor - - React-timing - - ReactNativeDependencies - - React-performancetimeline (0.86.0): - - React-Core-prebuilt - - React-featureflags - - React-jsinspector - - React-jsinspectortracing - - React-perflogger - - React-timing - - ReactNativeDependencies - - React-RCTActionSheet (0.86.0): - - React-Core/RCTActionSheetHeaders (= 0.86.0) - - React-RCTAnimation (0.86.0): - - RCTTypeSafety - - React-Core-prebuilt - - React-Core/RCTAnimationHeaders - - React-debug - - React-featureflags - - React-jsi - - React-NativeModulesApple - - React-RCTFBReactNativeSpec - - ReactCommon - - ReactNativeDependencies - - React-RCTAppDelegate (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-CoreModules - - React-debug - - React-defaultsnativemodule - - React-Fabric - - React-featureflags - - React-graphics - - React-hermes - - React-jsitooling - - React-NativeModulesApple - - React-RCTFabric - - React-RCTFBReactNativeSpec - - React-RCTImage - - React-RCTNetwork - - React-RCTRuntime - - React-rendererdebug - - React-RuntimeApple - - React-RuntimeCore - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactCommon - - ReactNativeDependencies - - React-RCTBlob (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-Core/RCTBlobHeaders - - React-Core/RCTWebSocket - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-NativeModulesApple - - React-RCTFBReactNativeSpec - - React-RCTNetwork - - ReactCommon - - ReactNativeDependencies - - React-RCTFabric (0.86.0): - - hermes-engine - - RCTSwiftUIWrapper - - React-Core - - React-Core-prebuilt - - React-debug - - React-Fabric - - React-FabricComponents - - React-FabricImage - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-networking - - React-performancecdpmetrics - - React-performancetimeline - - React-RCTAnimation - - React-RCTFBReactNativeSpec - - React-RCTImage - - React-RCTText - - React-rendererconsistency - - React-renderercss - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-RCTFBReactNativeSpec (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-jsi - - React-NativeModulesApple - - React-RCTFBReactNativeSpec/components (= 0.86.0) - - ReactCommon - - ReactNativeDependencies - - React-RCTFBReactNativeSpec/components (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-NativeModulesApple - - React-rendererdebug - - React-utils - - ReactCommon - - ReactNativeDependencies - - Yoga - - React-RCTImage (0.86.0): - - RCTTypeSafety - - React-Core-prebuilt - - React-Core/RCTImageHeaders - - React-jsi - - React-NativeModulesApple - - React-RCTFBReactNativeSpec - - React-RCTNetwork - - ReactCommon - - ReactNativeDependencies - - React-RCTLinking (0.86.0): - - React-Core/RCTLinkingHeaders (= 0.86.0) - - React-jsi (= 0.86.0) - - React-NativeModulesApple - - React-RCTFBReactNativeSpec - - ReactCommon - - ReactCommon/turbomodule/core (= 0.86.0) - - React-RCTNetwork (0.86.0): - - RCTTypeSafety - - React-Core-prebuilt - - React-Core/RCTNetworkHeaders - - React-debug - - React-featureflags - - React-jsi - - React-jsinspectorcdp - - React-jsinspectornetwork - - React-NativeModulesApple - - React-networking - - React-RCTFBReactNativeSpec - - ReactCommon - - ReactNativeDependencies - - React-RCTRuntime (0.86.0): - - hermes-engine - - React-Core - - React-Core-prebuilt - - React-debug - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-jsitooling - - React-RuntimeApple - - React-RuntimeCore - - React-runtimeexecutor - - React-RuntimeHermes - - React-utils - - ReactNativeDependencies - - React-RCTSettings (0.86.0): - - RCTTypeSafety - - React-Core-prebuilt - - React-Core/RCTSettingsHeaders - - React-jsi - - React-NativeModulesApple - - React-RCTFBReactNativeSpec - - ReactCommon - - ReactNativeDependencies - - React-RCTText (0.86.0): - - React-Core/RCTTextHeaders (= 0.86.0) - - Yoga - - React-RCTVibration (0.86.0): - - React-Core-prebuilt - - React-Core/RCTVibrationHeaders - - React-jsi - - React-NativeModulesApple - - React-RCTFBReactNativeSpec - - ReactCommon - - ReactNativeDependencies - - React-rendererconsistency (0.86.0) - - React-renderercss (0.86.0): - - React-debug - - React-utils - - React-rendererdebug (0.86.0): - - React-Core-prebuilt - - React-debug - - ReactNativeDependencies - - React-RuntimeApple (0.86.0): - - hermes-engine - - React-callinvoker - - React-Core-prebuilt - - React-Core/Default - - React-CoreModules - - React-cxxreact - - React-featureflags - - React-jserrorhandler - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsitooling - - React-Mapbuffer - - React-NativeModulesApple - - React-RCTFabric - - React-RCTFBReactNativeSpec - - React-RuntimeCore - - React-runtimeexecutor - - React-RuntimeHermes - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - React-RuntimeCore (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact - - React-Fabric - - React-featureflags - - React-jserrorhandler - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsitooling - - React-performancetimeline - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - React-runtimeexecutor (0.86.0): - - React-Core-prebuilt - - React-debug - - React-featureflags - - React-jsi (= 0.86.0) - - React-utils - - ReactNativeDependencies - - React-RuntimeHermes (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-featureflags - - React-hermes - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-jsitooling - - React-jsitracing - - React-RuntimeCore - - React-runtimeexecutor - - React-utils - - ReactNativeDependencies - - React-runtimescheduler (0.86.0): - - hermes-engine - - React-callinvoker - - React-Core-prebuilt - - React-cxxreact - - React-debug - - React-featureflags - - React-jsi - - React-jsinspectortracing - - React-performancetimeline - - React-rendererconsistency - - React-rendererdebug - - React-runtimeexecutor - - React-timing - - React-utils - - ReactNativeDependencies - - React-timing (0.86.0): - - React-debug - - React-utils (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-debug - - React-jsi (= 0.86.0) - - ReactNativeDependencies - - React-viewtransitionnativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-Fabric - - React-Fabric/bridging - - React-jsi - - React-jsiexecutor - - React-RCTFBReactNativeSpec - - React-runtimeexecutor - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - Yoga - - React-webperformancenativemodule (0.86.0): - - hermes-engine - - React-Core-prebuilt - - React-cxxreact - - React-jsi - - React-jsiexecutor - - React-performancetimeline - - React-RCTFBReactNativeSpec - - React-runtimeexecutor - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - ReactAppDependencyProvider (0.86.0): - - ReactCodegen - - ReactCodegen (0.86.0): - - hermes-engine - - RCTRequired - - RCTTypeSafety - - React-Core - - React-Core-prebuilt - - React-debug - - React-Fabric - - React-FabricImage - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-NativeModulesApple - - React-RCTAppDelegate - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - ReactNativeDependencies - - ReactCommon (0.86.0): - - React-Core-prebuilt - - ReactCommon/turbomodule (= 0.86.0) - - ReactNativeDependencies - - ReactCommon/turbomodule (0.86.0): - - hermes-engine - - React-callinvoker (= 0.86.0) - - React-Core-prebuilt - - React-cxxreact (= 0.86.0) - - React-jsi (= 0.86.0) - - React-logger (= 0.86.0) - - React-perflogger (= 0.86.0) - - ReactCommon/turbomodule/bridging (= 0.86.0) - - ReactCommon/turbomodule/core (= 0.86.0) - - ReactNativeDependencies - - ReactCommon/turbomodule/bridging (0.86.0): - - hermes-engine - - React-callinvoker (= 0.86.0) - - React-Core-prebuilt - - React-cxxreact (= 0.86.0) - - React-jsi (= 0.86.0) - - React-logger (= 0.86.0) - - React-perflogger (= 0.86.0) - - ReactNativeDependencies - - ReactCommon/turbomodule/core (0.86.0): - - hermes-engine - - React-callinvoker (= 0.86.0) - - React-Core-prebuilt - - React-cxxreact (= 0.86.0) - - React-debug (= 0.86.0) - - React-featureflags (= 0.86.0) - - React-jsi (= 0.86.0) - - React-logger (= 0.86.0) - - React-perflogger (= 0.86.0) - - React-utils (= 0.86.0) - - ReactNativeDependencies - - ReactNativeDependencies (0.86.0) - - Yoga (0.0.0) - -DEPENDENCIES: - - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - op-sqlite (from `../..`) - - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) - - RCTRequired (from `../node_modules/react-native/Libraries/Required`) - - RCTSwiftUI (from `../node_modules/react-native/ReactApple/RCTSwiftUI`) - - RCTSwiftUIWrapper (from `../node_modules/react-native/ReactApple/RCTSwiftUIWrapper`) - - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - - React (from `../node_modules/react-native/`) - - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - - React-Core (from `../node_modules/react-native/`) - - React-Core-prebuilt (from `../node_modules/react-native/React-Core-prebuilt.podspec`) - - 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-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) - - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) - - React-Fabric (from `../node_modules/react-native/ReactCommon`) - - React-FabricComponents (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-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) - - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) - - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) - - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) - - React-intersectionobservernativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/intersectionobserver`) - - 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-jsinspectorcdp (from `../node_modules/react-native/ReactCommon/jsinspector-modern/cdp`) - - React-jsinspectornetwork (from `../node_modules/react-native/ReactCommon/jsinspector-modern/network`) - - React-jsinspectortracing (from `../node_modules/react-native/ReactCommon/jsinspector-modern/tracing`) - - React-jsitooling (from `../node_modules/react-native/ReactCommon/jsitooling`) - - 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-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) - - React-mutationobservernativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/mutationobserver`) - - react-native-restart (from `../node_modules/react-native-restart`) - - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) - - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - - React-networking (from `../node_modules/react-native/ReactCommon/react/networking`) - - React-oscompat (from `../node_modules/react-native/ReactCommon/oscompat`) - - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - - React-performancecdpmetrics (from `../node_modules/react-native/ReactCommon/react/performance/cdpmetrics`) - - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) - - 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-RCTFBReactNativeSpec (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-RCTRuntime (from `../node_modules/react-native/React/Runtime`) - - 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-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) - - React-renderercss (from `../node_modules/react-native/ReactCommon/react/renderer/css`) - - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - - 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-timing (from `../node_modules/react-native/ReactCommon/react/timing`) - - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - - React-viewtransitionnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/viewtransition`) - - React-webperformancenativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/webperformance`) - - ReactAppDependencyProvider (from `build/generated/ios/ReactAppDependencyProvider`) - - ReactCodegen (from `build/generated/ios/ReactCodegen`) - - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - - ReactNativeDependencies (from `../node_modules/react-native/third-party-podspecs/ReactNativeDependencies.podspec`) - - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) - -EXTERNAL SOURCES: - FBLazyVector: - :path: "../node_modules/react-native/Libraries/FBLazyVector" - hermes-engine: - :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-v250829098.0.14 - op-sqlite: - :path: "../.." - RCTDeprecation: - :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" - RCTRequired: - :path: "../node_modules/react-native/Libraries/Required" - RCTSwiftUI: - :path: "../node_modules/react-native/ReactApple/RCTSwiftUI" - RCTSwiftUIWrapper: - :path: "../node_modules/react-native/ReactApple/RCTSwiftUIWrapper" - RCTTypeSafety: - :path: "../node_modules/react-native/Libraries/TypeSafety" - React: - :path: "../node_modules/react-native/" - React-callinvoker: - :path: "../node_modules/react-native/ReactCommon/callinvoker" - React-Core: - :path: "../node_modules/react-native/" - React-Core-prebuilt: - :podspec: "../node_modules/react-native/React-Core-prebuilt.podspec" - 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-defaultsnativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" - React-domnativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" - React-Fabric: - :path: "../node_modules/react-native/ReactCommon" - React-FabricComponents: - :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-featureflagsnativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" - React-graphics: - :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" - React-hermes: - :path: "../node_modules/react-native/ReactCommon/hermes" - React-idlecallbacksnativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" - React-ImageManager: - :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" - React-intersectionobservernativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/intersectionobserver" - 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-jsinspectorcdp: - :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/cdp" - React-jsinspectornetwork: - :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/network" - React-jsinspectortracing: - :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/tracing" - React-jsitooling: - :path: "../node_modules/react-native/ReactCommon/jsitooling" - 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-microtasksnativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" - React-mutationobservernativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/mutationobserver" - react-native-restart: - :path: "../node_modules/react-native-restart" - react-native-safe-area-context: - :path: "../node_modules/react-native-safe-area-context" - React-NativeModulesApple: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" - React-networking: - :path: "../node_modules/react-native/ReactCommon/react/networking" - React-oscompat: - :path: "../node_modules/react-native/ReactCommon/oscompat" - React-perflogger: - :path: "../node_modules/react-native/ReactCommon/reactperflogger" - React-performancecdpmetrics: - :path: "../node_modules/react-native/ReactCommon/react/performance/cdpmetrics" - React-performancetimeline: - :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" - 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-RCTFBReactNativeSpec: - :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-RCTRuntime: - :path: "../node_modules/react-native/React/Runtime" - 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-rendererconsistency: - :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" - React-renderercss: - :path: "../node_modules/react-native/ReactCommon/react/renderer/css" - React-rendererdebug: - :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" - 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-timing: - :path: "../node_modules/react-native/ReactCommon/react/timing" - React-utils: - :path: "../node_modules/react-native/ReactCommon/react/utils" - React-viewtransitionnativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/viewtransition" - React-webperformancenativemodule: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/webperformance" - ReactAppDependencyProvider: - :path: build/generated/ios/ReactAppDependencyProvider - ReactCodegen: - :path: build/generated/ios/ReactCodegen - ReactCommon: - :path: "../node_modules/react-native/ReactCommon" - ReactNativeDependencies: - :podspec: "../node_modules/react-native/third-party-podspecs/ReactNativeDependencies.podspec" - Yoga: - :path: "../node_modules/react-native/ReactCommon/yoga" - -SPEC CHECKSUMS: - FBLazyVector: b3e7ad108f0d882e30445c5527d774e3fd432f3d - hermes-engine: d9c82b910641f3bb8d520dbd9d5f193582515958 - op-sqlite: ab6c039f6cb78ae6ab32d0c320631b037db72326 - RCTDeprecation: 2a74a2c57675e64419bd89078efde81f7c1de90b - RCTRequired: 30451112e6fef4e6f31b4e7eee0845156e35e4b0 - RCTSwiftUI: 5aaf0b07e747ba749dc6acc94d8bd41eea4b570f - RCTSwiftUIWrapper: ab2ca548be15d63afa95103afc8685a7c3eab78b - RCTTypeSafety: 3eaed17dbddb0b989208b062ea14c44d412b9780 - React: 2574546f2d017abd14d0c9b48cf2b6a0547c2591 - React-callinvoker: 03cd4b931d1d583d87aae99b8f7b6fe26bf571ee - React-Core: 1c824d9c7dd8aa760b5f1b50d5a54c2a3f598f87 - React-Core-prebuilt: 13924a267683b3d6fa4bde9c80380becf83a9c5c - React-CoreModules: 2f9ed75bca7f6dea2b70e8a1f4a5ca9b6be52d76 - React-cxxreact: 7103d5ba69848c039e11079e74ceede05efe795e - React-debug: 8cc8d99ccc664ef9e873027f7fc3fb0a50496012 - React-defaultsnativemodule: 603c108411d39d7bb5ccb8c270f1f50cb6207e10 - React-domnativemodule: c49a502edc85f515a029c341fe5fba155fa6675c - React-Fabric: acc4915d719db793c5853e5c74b54ea5aa48e865 - React-FabricComponents: aebebc98914a4a8fc962fa7b5b98ebaf250acb68 - React-FabricImage: 42e99e48ff73c8b20cee229e622977d0b97b6247 - React-featureflags: c6d8d8d52acf3a956485726076b73eeff7935340 - React-featureflagsnativemodule: c992de92dcf30dcf09efdec17752abe4128ec55f - React-graphics: 239fd9b0512e539d3563f0825618f4e49795eefd - React-hermes: ae4685ca9fa5f47003bc594d3f146e29284136d1 - React-idlecallbacksnativemodule: 10a5be842ab181953c772a3f28cdf94572833eb0 - React-ImageManager: c36a56c3b13eba92e1d0d30da35d0a1ccf29cd6c - React-intersectionobservernativemodule: 71404bfa47d31e4143cc9db3e26178b5cfcd07e1 - React-jserrorhandler: ca2eeb03c1a77bbfab1b5425b943e3e8d92295f2 - React-jsi: c4b6daf8a31ac54f2db49cd6cce29720fec1f3a8 - React-jsiexecutor: acdc1a217b7ea29bcf6315b770d01e6b1c2fca14 - React-jsinspector: 95d6394efe9fb4a64ed33afc076b32a6384c8514 - React-jsinspectorcdp: 6ce51378a552feaaaac1a7b0d995fa0c49fa4f8c - React-jsinspectornetwork: 0db435c9264f200635fdf294a3b643dd3946d4cf - React-jsinspectortracing: 2e4470e1f301ff597bd65299aa95da4bae6e5c4f - React-jsitooling: 796bc991cdce68e2cc059d0271a28e0d4f8b0891 - React-jsitracing: f3008e7b5e1d9de8d9f2ca1b85824ed86b0cea00 - React-logger: fff73f4ceecad968c97baafdc77dcf84befc38b6 - React-Mapbuffer: ce449ccdf3b80384415b925606be8a4bdcfc65d3 - React-microtasksnativemodule: 2eb3f49d0d8e77b5343455eccd057010b8d38b6b - React-mutationobservernativemodule: f0a0d5ae9b51caf7becbeabf836d716cfedb6bf2 - react-native-restart: 0bc732f4461709022a742bb29bcccf6bbc5b4863 - react-native-safe-area-context: 6b4966397ada0f7dd481e4486a2ef936834861a1 - React-NativeModulesApple: a092d89b58f635ebfab88048b0eda9fb516819fd - React-networking: 968bbbe73590149feb1e72b2af4f6a68e4796ece - React-oscompat: 0b72a7e926954a0415ccd83e0748b6561fe45367 - React-perflogger: 865984e492514aa6e5279fc3e663132cfa4d5022 - React-performancecdpmetrics: 2efbf9bdb48c8d8446f4dd10e8bf0dc5d711772f - React-performancetimeline: 9d256484bff1513481be9f234baba694dc3b52e2 - React-RCTActionSheet: 902c79deec52f99cc48b1051b59bcbe86787d339 - React-RCTAnimation: 09cf722039ae30ff5d64e2b011ff054ae651c3b6 - React-RCTAppDelegate: a47de6fddb7eb0c028abba83138a5ce283bd7e77 - React-RCTBlob: 38c418d067e0c61818223503063310122e44c588 - React-RCTFabric: 480ca2a105730e1790cfd13291d086cb53725825 - React-RCTFBReactNativeSpec: 63131378510a5191515a4adfc308e65b465106f4 - React-RCTImage: 3ce36f82441b76b715818ee7ee95f6f5b34f9ee1 - React-RCTLinking: 2f7b5ed4983122e5115732d25a4360960eab583c - React-RCTNetwork: dcd3b180f33da86f5dc5e928a816eb5464fa7f16 - React-RCTRuntime: 6ef8e778fbab426b12eb5a9b5f7a0e86313c5a10 - React-RCTSettings: b97727ec8c55c35bd284457a647c938c040b942b - React-RCTText: 4d1b88f6d3e1a43afe46706d956ec6664c87b984 - React-RCTVibration: 415d14d6a1a64bf947fcef6b193915a494431168 - React-rendererconsistency: ef8519bdd9931261c6561bfad6506356b8108387 - React-renderercss: 1aa1bf99fa2ace143eb87d5190fd43609fc1e832 - React-rendererdebug: 40a4fb3dea21a7ac1759ca0eb6c88a924aecb075 - React-RuntimeApple: 84fadbb4fe8ca531e15e29a22af05911f17569c6 - React-RuntimeCore: f4d9af5f16d37e63308cb03b36c89d01e7f68a06 - React-runtimeexecutor: 4d59410f66af529d04c84c8b152ced07dabc471e - React-RuntimeHermes: fd719d8f4d9ce79636fe2e09e94b0ac31b7b263b - React-runtimescheduler: 784033620aa5515e2f45a60369eed4d32f9400b8 - React-timing: a16df9ae98f950396d9ce3abf43cb0cb2f21194c - React-utils: b68ee619aef28d8f9b85532d98db0327f7bdf743 - React-viewtransitionnativemodule: 11fe091101d381451b1542c37b2745900254f096 - React-webperformancenativemodule: b5d249419f1546663845c82f24de4e18a3180997 - ReactAppDependencyProvider: dcdd0e1b9559a6d8d8aea05286f4ed085091978e - ReactCodegen: afe0d436ee089d7bea6418429d8312b1d23a6801 - ReactCommon: d5c1bb4427bf51c443de5926aac332c89ddd9363 - ReactNativeDependencies: fa0a54b3f5319ae0e3b9aff32bfee7a424b88e66 - Yoga: fe50ab299e578f397fef753cf309c6703a4db29b - -PODFILE CHECKSUM: 0a17de9416bef66bec075cabc66b2e73dc5f7e87 +PODFILE CHECKSUM: 6ac0ff3f8e24bc310d9145713f2c373b13ee3c74 COCOAPODS: 1.15.2 diff --git a/example/package.json b/example/package.json index aff0854f..394af3d9 100644 --- a/example/package.json +++ b/example/package.json @@ -26,20 +26,20 @@ "events": "^3.3.0", "react": "19.2.3", "react-dom": "19.2.3", - "react-native": "0.86.0", - "react-native-safe-area-context": "^5.6.2", + "react-native": "0.87.0", + "react-native-safe-area-context": "^5.8.1", "react-native-web": "^0.21.2" }, "devDependencies": { "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", - "@react-native-community/cli": "20.1.0", - "@react-native-community/cli-platform-android": "20.1.0", - "@react-native-community/cli-platform-ios": "20.1.0", - "@react-native/babel-preset": "0.86.0", - "@react-native/metro-config": "0.86.0", - "@react-native/typescript-config": "0.86.0", + "@react-native-community/cli": "20.2.0", + "@react-native-community/cli-platform-android": "20.2.0", + "@react-native-community/cli-platform-ios": "20.2.0", + "@react-native/babel-preset": "0.87.0", + "@react-native/metro-config": "0.87.0", + "@react-native/typescript-config": "0.87.0", "@types/chance": "^1.1.7", "@types/react": "^19.2.0", "@vitejs/plugin-react": "^5.1.0", diff --git a/example/patches/react-native-restart+0.0.27.patch b/example/patches/react-native-restart+0.0.27.patch new file mode 100644 index 00000000..248ec2de --- /dev/null +++ b/example/patches/react-native-restart+0.0.27.patch @@ -0,0 +1,64 @@ +diff --git a/node_modules/react-native-restart/Package.swift b/node_modules/react-native-restart/Package.swift +new file mode 100644 +index 0000000..c2bedb4 +--- /dev/null ++++ b/node_modules/react-native-restart/Package.swift +@@ -0,0 +1,42 @@ ++// swift-tools-version: 6.0 ++// AUTO-SCAFFOLDED by react-native spm scaffold — safe to edit & commit via patch-package. ++// AUTO-SCAFFOLDED-VERSION: 19 ++// Cache slot: 0.87.0/dual-flavor ++// Edit the contents below if needed and re-run `npx patch-package ` ++// to persist across `npm install`. To regenerate from the podspec, remove ++// this file (or just this marker) and re-run `npx react-native spm scaffold`. ++// ++// Package references are plain relative paths, computed when this file was ++// scaffolded. They stay correct because the file is re-scaffolded per app ++// and cache slot, and any node_modules relayout reinstalls this package ++// (dropping the file) anyway. ++ ++import PackageDescription ++ ++let package = Package( ++ name: "ReactNativeRestart", ++ platforms: [.iOS(.v15)], ++ products: [ ++ .library(name: "ReactNativeRestart", targets: ["ReactNativeRestart"]), ++ ], ++ dependencies: [ ++ .package(name: "ReactNative", path: "../../../../xcframeworks"), ++ .package(name: "React-GeneratedCode", path: "../../../ios"), ++ ], ++ targets: [ ++ .target( ++ name: "ReactNativeRestart", ++ dependencies: [.product(name: "ReactHeaders", package: "ReactNative"), .product(name: "ReactNativeHeaders", package: "ReactNative"), .product(name: "ReactNativeDependenciesHeaders", package: "ReactNative"), .product(name: "ReactAppHeaders", package: "React-GeneratedCode")], ++ path: ".", ++ sources: [ ++ "ios/Restart.h", ++ "ios/Restart.m", ++ ], ++ publicHeadersPath: "ios", ++ cSettings: [.headerSearchPath("ios"), .headerSearchPath("."), .unsafeFlags(["-include", "react-native-spm-prefix.h"])], ++ cxxSettings: [.headerSearchPath("ios"), .headerSearchPath("."), .unsafeFlags(["-include", "react-native-spm-prefix.h"]), .define("DEBUG", .when(configuration: .debug)), .define("NDEBUG", .when(configuration: .release))], ++ linkerSettings: [.linkedFramework("UIKit"), .linkedFramework("Foundation"), .linkedFramework("CoreGraphics")] ++ ), ++ ], ++ cxxLanguageStandard: .cxx20 ++) +diff --git a/node_modules/react-native-restart/react-native-spm-prefix.h b/node_modules/react-native-restart/react-native-spm-prefix.h +new file mode 100644 +index 0000000..af5cea0 +--- /dev/null ++++ b/node_modules/react-native-restart/react-native-spm-prefix.h +@@ -0,0 +1,10 @@ ++// AUTO-SCAFFOLDED by react-native spm scaffold — mirrors CocoaPods' default ++// prefix header so ObjC sources that rely on an implicit Foundation/UIKit ++// import compile under SPM (which has no prefix-header mechanism). Safe to ++// delete + regenerate via `npx react-native spm scaffold`. ++#ifdef __OBJC__ ++#import ++#if __has_include() ++#import ++#endif ++#endif diff --git a/example/patches/react-native-safe-area-context+5.8.1.patch b/example/patches/react-native-safe-area-context+5.8.1.patch new file mode 100644 index 00000000..f9030e3e --- /dev/null +++ b/example/patches/react-native-safe-area-context+5.8.1.patch @@ -0,0 +1,95 @@ +diff --git a/node_modules/react-native-safe-area-context/Package.swift b/node_modules/react-native-safe-area-context/Package.swift +new file mode 100644 +index 0000000..9747084 +--- /dev/null ++++ b/node_modules/react-native-safe-area-context/Package.swift +@@ -0,0 +1,73 @@ ++// swift-tools-version: 6.0 ++// AUTO-SCAFFOLDED by react-native spm scaffold — safe to edit & commit via patch-package. ++// AUTO-SCAFFOLDED-VERSION: 19 ++// Cache slot: 0.87.0/dual-flavor ++// Edit the contents below if needed and re-run `npx patch-package ` ++// to persist across `npm install`. To regenerate from the podspec, remove ++// this file (or just this marker) and re-run `npx react-native spm scaffold`. ++// ++// Package references are plain relative paths, computed when this file was ++// scaffolded. They stay correct because the file is re-scaffolded per app ++// and cache slot, and any node_modules relayout reinstalls this package ++// (dropping the file) anyway. ++ ++import PackageDescription ++ ++let package = Package( ++ name: "ReactNativeSafeAreaContext", ++ platforms: [.iOS(.v15)], ++ products: [ ++ .library(name: "ReactNativeSafeAreaContext", targets: ["ReactNativeSafeAreaContext"]), ++ ], ++ dependencies: [ ++ .package(name: "ReactNative", path: "../../../../xcframeworks"), ++ .package(name: "React-GeneratedCode", path: "../../../ios"), ++ ], ++ targets: [ ++ .target( ++ name: "ReactNativeSafeAreaContext", ++ dependencies: [.product(name: "ReactHeaders", package: "ReactNative"), .product(name: "ReactNativeHeaders", package: "ReactNative"), .product(name: "ReactNativeDependenciesHeaders", package: "ReactNative"), .product(name: "ReactAppHeaders", package: "React-GeneratedCode")], ++ path: ".", ++ sources: [ ++ "common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewComponentDescriptor.h", ++ "common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp", ++ "common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h", ++ "common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp", ++ "common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h", ++ "ios/Fabric/RNCSafeAreaProviderComponentView.h", ++ "ios/Fabric/RNCSafeAreaProviderComponentView.mm", ++ "ios/Fabric/RNCSafeAreaViewComponentView.h", ++ "ios/Fabric/RNCSafeAreaViewComponentView.mm", ++ "ios/RNCOnInsetsChangeEvent.h", ++ "ios/RNCOnInsetsChangeEvent.m", ++ "ios/RNCSafeAreaContext.h", ++ "ios/RNCSafeAreaContext.mm", ++ "ios/RNCSafeAreaProvider.h", ++ "ios/RNCSafeAreaProvider.m", ++ "ios/RNCSafeAreaProviderManager.h", ++ "ios/RNCSafeAreaProviderManager.m", ++ "ios/RNCSafeAreaShadowView.h", ++ "ios/RNCSafeAreaShadowView.m", ++ "ios/RNCSafeAreaUtils.h", ++ "ios/RNCSafeAreaUtils.m", ++ "ios/RNCSafeAreaView.h", ++ "ios/RNCSafeAreaView.m", ++ "ios/RNCSafeAreaViewEdgeMode.h", ++ "ios/RNCSafeAreaViewEdgeMode.m", ++ "ios/RNCSafeAreaViewEdges.h", ++ "ios/RNCSafeAreaViewEdges.m", ++ "ios/RNCSafeAreaViewLocalData.h", ++ "ios/RNCSafeAreaViewLocalData.m", ++ "ios/RNCSafeAreaViewManager.h", ++ "ios/RNCSafeAreaViewManager.m", ++ "ios/RNCSafeAreaViewMode.h", ++ "ios/RNCSafeAreaViewMode.m", ++ ], ++ publicHeadersPath: "ios", ++ cSettings: [.headerSearchPath("common/cpp"), .headerSearchPath("common/cpp/react/renderer/components/safeareacontext"), .headerSearchPath("ios/Fabric"), .headerSearchPath("ios"), .headerSearchPath("."), .unsafeFlags(["-include", "react-native-spm-prefix.h"])], ++ cxxSettings: [.headerSearchPath("common/cpp"), .headerSearchPath("common/cpp/react/renderer/components/safeareacontext"), .headerSearchPath("ios/Fabric"), .headerSearchPath("ios"), .headerSearchPath("."), .unsafeFlags(["-include", "react-native-spm-prefix.h"]), .define("DEBUG", .when(configuration: .debug)), .define("NDEBUG", .when(configuration: .release))], ++ linkerSettings: [.linkedFramework("UIKit"), .linkedFramework("Foundation"), .linkedFramework("CoreGraphics")] ++ ), ++ ], ++ cxxLanguageStandard: .cxx20 ++) +diff --git a/node_modules/react-native-safe-area-context/react-native-spm-prefix.h b/node_modules/react-native-safe-area-context/react-native-spm-prefix.h +new file mode 100644 +index 0000000..af5cea0 +--- /dev/null ++++ b/node_modules/react-native-safe-area-context/react-native-spm-prefix.h +@@ -0,0 +1,10 @@ ++// AUTO-SCAFFOLDED by react-native spm scaffold — mirrors CocoaPods' default ++// prefix header so ObjC sources that rely on an implicit Foundation/UIKit ++// import compile under SPM (which has no prefix-header mechanism). Safe to ++// delete + regenerate via `npx react-native spm scaffold`. ++#ifdef __OBJC__ ++#import ++#if __has_include() ++#import ++#endif ++#endif diff --git a/example/react-native.config.js b/example/react-native.config.js index c62801d3..a5dce0ab 100644 --- a/example/react-native.config.js +++ b/example/react-native.config.js @@ -5,7 +5,12 @@ module.exports = { assets: ['./assets/'], project: { ios: { - automaticPodsInstallation: true, + // Auto pod-install conflicts with the SwiftPM setup (`npx react-native + // spm`) — it silently re-integrates CocoaPods into the .xcodeproj on + // every `npm run ios`, undoing `spm add --deintegrate`. Re-enable this + // (and run `pod install`) if you deliberately revert to CocoaPods via + // `npx react-native spm deinit`. + automaticPodsInstallation: false, }, }, dependencies: { diff --git a/ios/OPSQLite.mm b/ios/OPSQLite.mm index 10071307..23fcd6cf 100644 --- a/ios/OPSQLite.mm +++ b/ios/OPSQLite.mm @@ -6,6 +6,16 @@ #import #import +// RCTCxxBridge (the old-architecture class that exposed `.runtime`) no +// longer ships as of React Native 0.87 — old architecture was removed and +// `_bridge` is now an `RCTBridgeProxy` (an NSProxy) in bridgeless mode. +// RCTBridgeProxy implements `-(void *)runtime` directly (see +// React/Base/RCTBridgeProxy.mm), so a lightweight duck-typed protocol +// dodges the need to import either concrete, architecture-specific class. +@protocol OPSQLiteRuntimeProvider +- (void *)runtime; +@end + @interface OPSQLite () { // This generation's liveness flag. Set by install(), consumed by // invalidate() -- kept as a plain ivar (not routed through the JS @@ -43,12 +53,28 @@ - (NSDictionary *)getConstants { } RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) { - RCTCxxBridge *cxxBridge = (RCTCxxBridge *)_bridge; - if (cxxBridge == nil) { + if (_bridge == nil) { return @false; } - auto jsiRuntime = (facebook::jsi::Runtime *)cxxBridge.runtime; + // `_bridge` is `RCTBridgeProxy` (an NSProxy) in bridgeless mode, which + // implements `-(void *)runtime` directly (React/Base/RCTBridgeProxy.mm; + // confirmed present in the compiled binary via `nm`). Both + // `-respondsToSelector:` and `-methodSignatureForSelector:` return false + // negatives for this method on this NSProxy subclass — its forwarding + // machinery only accounts for selectors it dynamically forwards, not the + // ones it implements directly — so introspecting for support isn't + // reliable here. Since old architecture is fully removed as of RN 0.87, + // `_bridge` is always an RCTBridgeProxy; call `-runtime` directly and + // guard with an exception handler instead, in case that ever changes. + facebook::jsi::Runtime *jsiRuntime = nullptr; + @try { + id runtimeProvider = (id)_bridge; + jsiRuntime = (facebook::jsi::Runtime *)[runtimeProvider runtime]; + } @catch (NSException *exception) { + RCTLogError(@"[OP-SQLITE] Failed to obtain the JSI runtime from the bridge: %@", exception); + return @false; + } if (jsiRuntime == nil) { return @false; } diff --git a/op-sqlite-spm-prefix.h b/op-sqlite-spm-prefix.h new file mode 100644 index 00000000..08107809 --- /dev/null +++ b/op-sqlite-spm-prefix.h @@ -0,0 +1,10 @@ +// -include'd by Package.swift for every Objective-C++ source file. CocoaPods +// auto-generates a "-prefix.pch" that imports Foundation/UIKit into +// every ObjC translation unit; SwiftPM has no prefix-header mechanism, so +// this reproduces that ambient import for the .mm sources that rely on it. +#ifdef __OBJC__ +#import +#if __has_include() +#import +#endif +#endif diff --git a/op-sqlite.podspec b/op-sqlite.podspec index a7c72e20..1f03a579 100644 --- a/op-sqlite.podspec +++ b/op-sqlite.podspec @@ -108,7 +108,7 @@ Pod::Spec.new do |s| source_files = Dir.glob("ios/**/*.{h,hpp,m,mm}") + Dir.glob("cpp/**/*.{hpp,h,cpp,c}") # Backend bridges are selected explicitly by flags and should not be compiled by default. - source_files.reject! { |path| path == "cpp/turso_bridge.cpp" } unless use_turso + source_files.reject! { |path| path == "cpp/turso/turso_bridge.cpp" } unless use_turso # Strictly blocks all headers from being public s.public_header_files = ["ios/OPSQLite.h", "cpp/sqlite3.h", "cpp/bridge.hpp"] diff --git a/package.json b/package.json index 012db341..e67861ca 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "clang-format": "^1.8.0", "jest": "^29.5.0", "react": "19.2.3", - "react-native": "0.86.0", + "react-native": "0.87.0", "react-native-builder-bob": "^0.40.15", "typescript": "^5.9.2" }, diff --git a/scripts/test-ios.sh b/scripts/test-ios.sh index a2183c0d..c444d0e1 100755 --- a/scripts/test-ios.sh +++ b/scripts/test-ios.sh @@ -49,6 +49,7 @@ trap cleanup EXIT cd example || exit +echo "Booting simulator" xcrun simctl boot "$(xcrun simctl list devices available | grep -m1 'Booted' || xcrun simctl list devices available | grep -m1 'Shutdown' | awk -F '[()]' '{print $2}')" DEVICE_ID=$(xcrun simctl list devices booted | grep -m1 Booted | awk -F '[()]' '{print $2}') @@ -57,8 +58,7 @@ if [[ -z "${DEVICE_ID}" ]]; then exit 1 fi -# Prevent the simulator from auto-locking the screen, which suspends the app -# xcrun simctl spawn "${DEVICE_ID}" defaults write com.apple.springboard idleTimerDuration -int 0 2>/dev/null || true +echo "Simulator booted!" LOG_FILE="$(pwd)/ios-sim-log.txt" rm -f "${LOG_FILE}" diff --git a/tsconfig.json b/tsconfig.json index 0505f91d..64d6946d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,5 +27,13 @@ "target": "ESNext", "verbatimModuleSyntax": true, }, - "exclude": ["docs"], + // "example/ios" now contains build/generated/autolinking/libs/ — + // symlinks into node_modules created by SwiftPM's autolinker for + // self-managed deps (react-native-safe-area-context, react-native-restart). + // Since the symlink itself lives outside node_modules, tsc's automatic + // node_modules exclusion doesn't cover it, and it pulls those deps' own + // .ts/.tsx source (with their own, unrelated type errors) into our + // typecheck. CocoaPods never generated anything under example/ios/build, + // so this didn't come up before SwiftPM support was added. + "exclude": ["docs", "example/ios"], } diff --git a/yarn.lock b/yarn.lock index f4e6b0df..38aab54d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2212,6 +2212,13 @@ __metadata: languageName: node linkType: hard +"@nodable/entities@npm:^3.0.0": + version: 3.0.0 + resolution: "@nodable/entities@npm:3.0.0" + checksum: 10c0/5e57422ce08d9f83a7ad09d8f90953e2e63b3274c3f941bf7ddf64f290473e70d47acbd6c8b9e60169c2a8c5c2424c4131bdd99b937792413f55a4a146f76658 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -2273,7 +2280,7 @@ __metadata: clang-format: "npm:^1.8.0" jest: "npm:^29.5.0" react: "npm:19.2.3" - react-native: "npm:0.86.0" + react-native: "npm:0.87.0" react-native-builder-bob: "npm:^0.40.15" typescript: "npm:^5.9.2" peerDependencies: @@ -2303,65 +2310,65 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-clean@npm:20.1.0" +"@react-native-community/cli-clean@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-clean@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": "npm:20.1.0" + "@react-native-community/cli-tools": "npm:20.2.0" execa: "npm:^5.0.0" fast-glob: "npm:^3.3.2" picocolors: "npm:^1.1.1" - checksum: 10c0/5d7fce73545154035e55801e9596b634c85bbe7bb04861f3d0787f2a9588b7b6f927709bfce4e45a8d62da03e5a92789281e07dafd29e2db86ca52ca3e5ad49c + checksum: 10c0/217c0a17e69892d6042840a66bf179dfbb3b6b4dcf6e1f0401574e7eedbcb31c4ed92f6b052cf0ffe6ce6963b5af3d68bfba6a699c9837fe7a744a45a05dd622 languageName: node linkType: hard -"@react-native-community/cli-config-android@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-config-android@npm:20.1.0" +"@react-native-community/cli-config-android@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-config-android@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": "npm:20.1.0" + "@react-native-community/cli-tools": "npm:20.2.0" fast-glob: "npm:^3.3.2" - fast-xml-parser: "npm:^4.4.1" + fast-xml-parser: "npm:^5.3.6" picocolors: "npm:^1.1.1" - checksum: 10c0/66e95adf2fb9750a12592a146b034ab4b8ea15aa41efb5d497d6be2f08029a59a0be2450e97de0bf59aa6b66778b3af0bbd693a42b7e7f9f60c9d9b5f966aadc + checksum: 10c0/86dbdaf9a038a8e9f0a2a1f149e2f68eaa15379ad4119b3b4278d590f301a2e9314d2c449921abbfcd7fa174e5fb62d0f6971e4f40c285b49abc787d62cbf0ba languageName: node linkType: hard -"@react-native-community/cli-config-apple@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-config-apple@npm:20.1.0" +"@react-native-community/cli-config-apple@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-config-apple@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": "npm:20.1.0" + "@react-native-community/cli-tools": "npm:20.2.0" execa: "npm:^5.0.0" fast-glob: "npm:^3.3.2" picocolors: "npm:^1.1.1" - checksum: 10c0/2c7b7116594c7b0035ef7e41e0219fcff664c3883471460ae48f19dd88ec9a26dd5b4bd60e33c054603b3a10efd78570490bc84599ad987e4ffb274b05512351 + checksum: 10c0/193b3c55cb824e4ea86bdac596dfc1d13f8c9be894ba4b2770242e012ea7eb1f9dc56b232341ec988f7c5a3acbe24f3ec138c61769bd01e07e6cd14b8ef0b095 languageName: node linkType: hard -"@react-native-community/cli-config@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-config@npm:20.1.0" +"@react-native-community/cli-config@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-config@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": "npm:20.1.0" + "@react-native-community/cli-tools": "npm:20.2.0" cosmiconfig: "npm:^9.0.0" deepmerge: "npm:^4.3.0" fast-glob: "npm:^3.3.2" joi: "npm:^17.2.1" picocolors: "npm:^1.1.1" - checksum: 10c0/e3d863ffc5d18aa7b7406908c1360de7ea7a1bab32897e34d0afe184f4682bb5d110d4db0c6ba2c35c4f1330ca4a281b8fc3548e53a2978b8b07ca3beca5765c + checksum: 10c0/bba382952b4ece338746ee8a5e415e67f438d5fb89ef89bd9b7146f564d9e438643a97b8ba5d36461af3a2b036a33a9d168605ecb2f42db4503fb4c7eb650dd8 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-doctor@npm:20.1.0" +"@react-native-community/cli-doctor@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-doctor@npm:20.2.0" dependencies: - "@react-native-community/cli-config": "npm:20.1.0" - "@react-native-community/cli-platform-android": "npm:20.1.0" - "@react-native-community/cli-platform-apple": "npm:20.1.0" - "@react-native-community/cli-platform-ios": "npm:20.1.0" - "@react-native-community/cli-tools": "npm:20.1.0" + "@react-native-community/cli-config": "npm:20.2.0" + "@react-native-community/cli-platform-android": "npm:20.2.0" + "@react-native-community/cli-platform-apple": "npm:20.2.0" + "@react-native-community/cli-platform-ios": "npm:20.2.0" + "@react-native-community/cli-tools": "npm:20.2.0" command-exists: "npm:^1.2.8" deepmerge: "npm:^4.3.0" envinfo: "npm:^7.13.0" @@ -2372,51 +2379,51 @@ __metadata: semver: "npm:^7.5.2" wcwidth: "npm:^1.0.1" yaml: "npm:^2.2.1" - checksum: 10c0/79762f3e789fe98f21c6f500f6c65df399508979f05174272652a9422295f4dace099e87575776bf209b533a6667070fc355c5b510e14a8a61b31a9a8af7b3be + checksum: 10c0/159e20b869ae7bc568f07f6d8c2e9a0559883a3f12b2f1ad5e5cc3c92e6138593d09a84dd894eeff3b2590cd8e8e9f1628c76e4ba0616afa61b4eb8827cfde40 languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-platform-android@npm:20.1.0" +"@react-native-community/cli-platform-android@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-platform-android@npm:20.2.0" dependencies: - "@react-native-community/cli-config-android": "npm:20.1.0" - "@react-native-community/cli-tools": "npm:20.1.0" + "@react-native-community/cli-config-android": "npm:20.2.0" + "@react-native-community/cli-tools": "npm:20.2.0" execa: "npm:^5.0.0" logkitty: "npm:^0.7.1" picocolors: "npm:^1.1.1" - checksum: 10c0/8b44178a78245085824c3fda9d6753d03cd817772fdde82b1d4f1a89f177f10339822401c0b8ef17e8353f3168c3971ae4cfb0a158cef03c22e55f5dff66179b + checksum: 10c0/dd586892129b54ab6cd89fbfe9759ae00f93b89b802f50f178679186e50a99d2ad7642a6ea30c16df72a36452cf95b4abcaac473f97dc65a93d6b0cb1b3af247 languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-platform-apple@npm:20.1.0" +"@react-native-community/cli-platform-apple@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-platform-apple@npm:20.2.0" dependencies: - "@react-native-community/cli-config-apple": "npm:20.1.0" - "@react-native-community/cli-tools": "npm:20.1.0" + "@react-native-community/cli-config-apple": "npm:20.2.0" + "@react-native-community/cli-tools": "npm:20.2.0" execa: "npm:^5.0.0" - fast-xml-parser: "npm:^4.4.1" + fast-xml-parser: "npm:^5.3.6" picocolors: "npm:^1.1.1" - checksum: 10c0/2218e172bf13c0bb027f7f2a036a0515f8fe023d98fc65d22d0dab601036c5b461b1af7a5d826df2dd3e86a3894f9531d43e8861746a071ee22c0b33b8e47c29 + checksum: 10c0/17c6ec29865a4bdbd31f9547c5857ed5cbed4fb5e2ef6a083e6915c684810006f0297ac36a35228736bdda108ece3a2269833dcbc487e39ef9054c28d3b9d1a8 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-platform-ios@npm:20.1.0" +"@react-native-community/cli-platform-ios@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-platform-ios@npm:20.2.0" dependencies: - "@react-native-community/cli-platform-apple": "npm:20.1.0" - checksum: 10c0/f5eef9dfbe3dad7dc69f4b3a37ebee9d124f3a649071e0275624f88468a7f506b622646dcbd61ba0435cc35e705badfc287690d6b7c3867c0a86c9a45d4f463e + "@react-native-community/cli-platform-apple": "npm:20.2.0" + checksum: 10c0/d78149cfee7c32c9c9048a8c06c5e8a06fd6259046d5ee95f1993c8d343afa463afac92edba3c9f109ff8a6deb6e8a4bc5fef5eb6c22ba9aed3fef4b1ee20eb6 languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-server-api@npm:20.1.0" +"@react-native-community/cli-server-api@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-server-api@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": "npm:20.1.0" - body-parser: "npm:^1.20.3" + "@react-native-community/cli-tools": "npm:20.2.0" + body-parser: "npm:^2.2.2" compression: "npm:^1.7.1" connect: "npm:^3.6.5" errorhandler: "npm:^1.5.1" @@ -2425,13 +2432,13 @@ __metadata: pretty-format: "npm:^29.7.0" serve-static: "npm:^1.13.1" ws: "npm:^6.2.3" - checksum: 10c0/d83c9bbff36fb84201478ed8efc17c80f1474cb0346a2577eee7299407e9e34892c213e2316062a2c59d47ebfe9f0c8215b82cd1abb05c85fe7702a94a52cdf5 + checksum: 10c0/c17d8580faf7aa5758e51fbd7bb57325dfb242cc5a26e98658fedb675f26801c4233c43e1e7aefc04da0afbf5188a9ccb6a69b48cc3cb96588b73573b1e355e0 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-tools@npm:20.1.0" +"@react-native-community/cli-tools@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-tools@npm:20.2.0" dependencies: "@vscode/sudo-prompt": "npm:^9.0.0" appdirsjs: "npm:^1.2.4" @@ -2443,29 +2450,29 @@ __metadata: picocolors: "npm:^1.1.1" prompts: "npm:^2.4.2" semver: "npm:^7.5.2" - checksum: 10c0/993f5dfbc1ae6301e616269896b2e5ecc29888cc8a12325881148b546b07d45572bd065e392ceaad32f86067e31b0eabedbe71fac3b1b820cd489ab86e56094d + checksum: 10c0/3c5056b6d6a7a967e44b55715c13b2a8de57c58cd1034eaa0cffacf99dc68cb2a903417ed2fe00d36bc8c9c25daa87d5aa874104cc0f7766a41c155af3662296 languageName: node linkType: hard -"@react-native-community/cli-types@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-types@npm:20.1.0" +"@react-native-community/cli-types@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-types@npm:20.2.0" dependencies: joi: "npm:^17.2.1" - checksum: 10c0/247deebf26b435c0cbabfb7dd7de09a4e79c544ee72a2ef2817268108f7c085dab4d54c7fbc8111ad89360e13227f2041c5eac208971c251da332e4d33311a7b + checksum: 10c0/8070361fa078b1d26b0a38238fe13616d5b21e298f544f0929f77c3539dcce93dfb23553662be906c6cfe2a750d3707b6b52bd3724c03eb454fbbd419aec80da languageName: node linkType: hard -"@react-native-community/cli@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli@npm:20.1.0" +"@react-native-community/cli@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli@npm:20.2.0" dependencies: - "@react-native-community/cli-clean": "npm:20.1.0" - "@react-native-community/cli-config": "npm:20.1.0" - "@react-native-community/cli-doctor": "npm:20.1.0" - "@react-native-community/cli-server-api": "npm:20.1.0" - "@react-native-community/cli-tools": "npm:20.1.0" - "@react-native-community/cli-types": "npm:20.1.0" + "@react-native-community/cli-clean": "npm:20.2.0" + "@react-native-community/cli-config": "npm:20.2.0" + "@react-native-community/cli-doctor": "npm:20.2.0" + "@react-native-community/cli-server-api": "npm:20.2.0" + "@react-native-community/cli-tools": "npm:20.2.0" + "@react-native-community/cli-types": "npm:20.2.0" commander: "npm:^9.4.1" deepmerge: "npm:^4.3.0" execa: "npm:^5.0.0" @@ -2477,30 +2484,30 @@ __metadata: semver: "npm:^7.5.2" bin: rnc-cli: build/bin.js - checksum: 10c0/f3fa43fc8c170ba291ae81e796f4ac35956e143bf1094f15f91061b93835ed0665749ca11da91df7fbfcdd96ee32fc16da6cab60adef1a21022195aa1947bd5d + checksum: 10c0/652e0bf9c746cef9b3126ebcf46a4a537fa98b9c67e4b8a1be2ec428197fe8aecb97a3c106e61faa7abdd04ad1860396ae3b48da7fc5373ed153516c6668bc74 languageName: node linkType: hard -"@react-native/assets-registry@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/assets-registry@npm:0.86.0" - checksum: 10c0/9cd7e96d99bb5b1da0b83ad4362966749c367081bd4272ca65c8ce4933cea9caad6bbf1d6e404832447c9b200495d707809bbb1db2fd5d9a6f7ae25a50a96bf8 +"@react-native/asset-utils@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/asset-utils@npm:0.87.0" + checksum: 10c0/37b439b5fd72bd05702a48907e05486593d6b86197191fb29c8eb9586c0738e5f3db1c74ddc228bc2fa9c2dcb9c905bbc09647461b2de59c2e375017d91e720b languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/babel-plugin-codegen@npm:0.86.0" +"@react-native/babel-plugin-codegen@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/babel-plugin-codegen@npm:0.87.0" dependencies: "@babel/traverse": "npm:^7.29.0" - "@react-native/codegen": "npm:0.86.0" - checksum: 10c0/b9263b7fd6a40411639e2343e17454fa9e988e651f44ec9149bd0c3a7945166863713b01d21249b81e62bd9ec67e356fbbee860e7b7f8479df26310b90d2bd4e + "@react-native/codegen": "npm:0.87.0" + checksum: 10c0/76d094cc72c9f7db533a82213fd6b9ea5eead5d9afe9c03071934c40240bca4ebaab12b2fef0fcd1025e77eb8c5a1656adf39954a6dbca0ce92ebabd408b73da languageName: node linkType: hard -"@react-native/babel-preset@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/babel-preset@npm:0.86.0" +"@react-native/babel-preset@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/babel-preset@npm:0.87.0" dependencies: "@babel/core": "npm:^7.25.2" "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" @@ -2531,81 +2538,80 @@ __metadata: "@babel/plugin-transform-runtime": "npm:^7.24.7" "@babel/plugin-transform-typescript": "npm:^7.25.2" "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@react-native/babel-plugin-codegen": "npm:0.86.0" - babel-plugin-syntax-hermes-parser: "npm:0.36.0" + "@react-native/babel-plugin-codegen": "npm:0.87.0" + babel-plugin-syntax-hermes-parser: "npm:0.36.1" babel-plugin-transform-flow-enums: "npm:^0.0.2" react-refresh: "npm:^0.14.0" peerDependencies: "@babel/core": "*" - checksum: 10c0/cf86875fa72d9bdd0b6ac3819b7a683764f154ff8df5144cce9cc60dd734d9d100bde563acbb48104e0033650dcc28d968eb985ff59e47349dc6861169df02f6 + checksum: 10c0/9599f7e34143af8026031f7769183b90d2f749bb37294fc62a8631edd5849eaa030bf71a26c6cd83961ad69c55caa4175a74019ace324babe95f44bc94638247 languageName: node linkType: hard -"@react-native/codegen@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/codegen@npm:0.86.0" +"@react-native/codegen@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/codegen@npm:0.87.0" dependencies: "@babel/core": "npm:^7.25.2" "@babel/parser": "npm:^7.29.0" - hermes-parser: "npm:0.36.0" + hermes-parser: "npm:0.36.1" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" tinyglobby: "npm:^0.2.15" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10c0/22ca5657595438f5e464223a65b25567b3e7106995c8ae59c5853d8cdb3df59065db54c4cb74e958bbe2930b0aded8cd518c2fc1ef13a4740a05fb1faa3ae160 + checksum: 10c0/b6eca6502b9b77eea367318ee2ae38c9643b76c20d4d1e6be97d88bde5ffb4a7caec61489042e280f65f3d15c3f7a382c0810d96063f1e6e0eefb7fdd1d09217 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/community-cli-plugin@npm:0.86.0" +"@react-native/community-cli-plugin@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/community-cli-plugin@npm:0.87.0" dependencies: - "@react-native/dev-middleware": "npm:0.86.0" + "@react-native/asset-utils": "npm:0.87.0" + "@react-native/dev-middleware": "npm:0.87.0" debug: "npm:^4.4.0" invariant: "npm:^2.2.4" - metro: "npm:^0.84.3" - metro-config: "npm:^0.84.3" - metro-core: "npm:^0.84.3" + metro: "npm:^0.87.0" semver: "npm:^7.1.3" peerDependencies: "@react-native-community/cli": "*" - "@react-native/metro-config": 0.86.0 + "@react-native/metro-config": 0.87.0 peerDependenciesMeta: "@react-native-community/cli": optional: true "@react-native/metro-config": optional: true - checksum: 10c0/62c70f1e99eb48dad8516fed9a15415e8de85ee76018f00231f4473e9fedbfc8c9b4932fc531b9307c3a6d681278b61fa7e63ba2fa250628451662f815a3366e + checksum: 10c0/548eaacde40a590710682983feb929408b6266a3650083e372666bd8e5da18d10717f2c5be0769ceac780db073d2a8eba3f351ed5e8335f403e6ee79a77eed2b languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/debugger-frontend@npm:0.86.0" - checksum: 10c0/bc86a765dfbcaae35f501244d5a52aa0723196fe34ba177c2e3398491df6af1aa084ace044fde668e05bfec3daf15f735c20c79a8b98bd578b38891913e337e2 +"@react-native/debugger-frontend@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/debugger-frontend@npm:0.87.0" + checksum: 10c0/a631ec47c18db292bfd8dde5ead36e9b1a6de7ee885185dea66c043ae750cb82936cce5dae70c30a7eef527ab98f0ce335abe232435829c7a678cf444cf2ae48 languageName: node linkType: hard -"@react-native/debugger-shell@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/debugger-shell@npm:0.86.0" +"@react-native/debugger-shell@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/debugger-shell@npm:0.87.0" dependencies: cross-spawn: "npm:^7.0.6" debug: "npm:^4.4.0" fb-dotslash: "npm:0.5.8" - checksum: 10c0/4cc7626b826195403c9b9ac8ad1ed9938ad83858424aa59b980882349966aa0fa6b509066006bc7c7be2c0d20767fbc7d75c8df0007f853b57646c9157fcb3e7 + checksum: 10c0/3eb08b5dc26d95dd25499ad90a6c79b24442a3216a92609bbde876a165e6fc4e89b1b76b1359504613808b8ce143b1e44f93318becd8c3df0a6737af35228c98 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/dev-middleware@npm:0.86.0" +"@react-native/dev-middleware@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/dev-middleware@npm:0.87.0" dependencies: "@isaacs/ttlcache": "npm:^1.4.1" - "@react-native/debugger-frontend": "npm:0.86.0" - "@react-native/debugger-shell": "npm:0.86.0" + "@react-native/debugger-frontend": "npm:0.87.0" + "@react-native/debugger-shell": "npm:0.87.0" chrome-launcher: "npm:^0.15.2" chromium-edge-launcher: "npm:^0.3.0" connect: "npm:^3.6.5" @@ -2615,54 +2621,54 @@ __metadata: open: "npm:^7.0.3" serve-static: "npm:^1.16.2" ws: "npm:^7.5.10" - checksum: 10c0/14e704d723d7c3eaae94552251b50b31b3769dbfbc2b48f6cabe422b1bfc640dae20751997d8fd8bbe26a22c6865a46083e4d3621d7b200b19c79e515ef54bb9 + checksum: 10c0/10ada5940b3b138f7e18c9615a5d8f829f9f2211ad30daba2417fac109b312f2a8eb8c5ebc8c2f582f8fe800870ab11168e511babf88d1f29984c4b5149b0f71 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/gradle-plugin@npm:0.86.0" - checksum: 10c0/02d8f7ae14c3163a6acf7098b1227a7ffd66cbfde96b6b151a02739bfbc27f123e023bd3411383e9a7a33f18e4d4d82100448615b8955a0ff95e8dee5d1ef4e8 +"@react-native/gradle-plugin@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/gradle-plugin@npm:0.87.0" + checksum: 10c0/1a9274ac000587336854f20145d1e2b91d092936a77d7f162da149cdf09329364998714b74324a04c22d975780849aeef092f7ccada198eac5d69a70e90552d3 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/js-polyfills@npm:0.86.0" - checksum: 10c0/63379d40d37b09fe371cc4f8a60304479ee59667a032072dded0b1e475519ff17f27bbaa39fcd463949ea9068c65eb045d5d4639ede8236a241f6e3cd295174c +"@react-native/js-polyfills@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/js-polyfills@npm:0.87.0" + checksum: 10c0/aed86f4975323f9622154a79e113d7f722322124d366739b62db0dd6589b45d8c8601384cf0ad29bd775524a67b1c179305aa015184d1fc2f7e8bf5e36b4014d languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/metro-babel-transformer@npm:0.86.0" +"@react-native/metro-babel-transformer@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/metro-babel-transformer@npm:0.87.0" dependencies: "@babel/core": "npm:^7.25.2" - "@react-native/babel-preset": "npm:0.86.0" - hermes-parser: "npm:0.36.0" + "@react-native/babel-preset": "npm:0.87.0" + hermes-parser: "npm:0.36.1" nullthrows: "npm:^1.1.1" peerDependencies: "@babel/core": "*" - checksum: 10c0/8b4ab63d32f28f3663204110d37c50a8dd82eef622d57fb236f3d05b69bdfc1fe277f7572e4cf9135790921922f35fe4aea5f7c183fe17cd2ead19ed8e1db5d1 + checksum: 10c0/ee8661b5b321f9df62e7396ab250572e5e378c7a709fd9b5c352609e586b71582a739f0ea29973b73e49e22b3eb340d2fbd3f0595a18d271cdc8cb0db26a7f22 languageName: node linkType: hard -"@react-native/metro-config@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/metro-config@npm:0.86.0" +"@react-native/metro-config@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/metro-config@npm:0.87.0" dependencies: - "@react-native/js-polyfills": "npm:0.86.0" - "@react-native/metro-babel-transformer": "npm:0.86.0" - metro-config: "npm:^0.84.3" - metro-runtime: "npm:^0.84.3" - checksum: 10c0/92c043b8e4d959a3d8c0aa56940a9ff455c9de21bb6fe2a799fb5a847e45587d9783c3b55e3254f2b17fa71dfc66fff30ce0a70505e0d699dbbf2c76e0ff539c + "@react-native/js-polyfills": "npm:0.87.0" + "@react-native/metro-babel-transformer": "npm:0.87.0" + metro-config: "npm:^0.87.0" + metro-runtime: "npm:^0.87.0" + checksum: 10c0/66cd5766f1abd7895ee7b18ae88eeed32c6353f13787490880e3d2d88212cb78160c372e8292a204307e6af1785d85b098a98f69dc8a91cf92aa03642b0217db languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/normalize-colors@npm:0.86.0" - checksum: 10c0/d836506a642e1c636015fca23c84ca372b10fb1457df98f95e8bc5716399292d5740b94efe13f9be08c21323ddc3c2c45205d316f0f5440f24e5919b5075f69a +"@react-native/normalize-colors@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/normalize-colors@npm:0.87.0" + checksum: 10c0/85c4ac262f2c1429b105c6f598614665732e24c9b18268acac7557a225c617ea2f3eff35512530af8e403074400b0a9126a09de447a3e9e680e758392099dbe7 languageName: node linkType: hard @@ -2673,27 +2679,27 @@ __metadata: languageName: node linkType: hard -"@react-native/typescript-config@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/typescript-config@npm:0.86.0" - checksum: 10c0/66020e6d945e863847639b4932ef22082dad8ba4e345fe785b85987ae18a6cb56b31539c3502731238580ad96a9b1de32fac55e2e245debf693f039ec36fcffc +"@react-native/typescript-config@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/typescript-config@npm:0.87.0" + checksum: 10c0/0d5836325cc5af58206d093feeb8c28e302ba782ac275b9a8cd1c7f872e09555e660a036539e12e61428c501ada4747122a7a19ff927e93398d0683c3aeb928f languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.86.0": - version: 0.86.0 - resolution: "@react-native/virtualized-lists@npm:0.86.0" +"@react-native/virtualized-lists@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/virtualized-lists@npm:0.87.0" dependencies: invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" peerDependencies: "@types/react": ^19.2.0 react: "*" - react-native: 0.86.0 + react-native: 0.87.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/df5006e01e2f527f4fd46b93db17f3dbf8fd18c832e4ad9b1b43c544a83b4b2fca34ba72114ad9679968043e7fa6f9fe352bcee250799b9b973d0998b446ca50 + checksum: 10c0/1bfe0fbd1211a83c83392ad7f901a4eb6772106e94495a3d38cc063a864838a8cecd01b185676320b9e304cd07a84dad245a8cb48fee163cf7cc13663d202aa8 languageName: node linkType: hard @@ -3137,15 +3143,6 @@ __metadata: languageName: node linkType: hard -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" - dependencies: - event-target-shim: "npm:^5.0.0" - checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 - languageName: node - linkType: hard - "accepts@npm:^2.0.0": version: 2.0.0 resolution: "accepts@npm:2.0.0" @@ -3289,6 +3286,13 @@ __metadata: languageName: node linkType: hard +"anynum@npm:^1.0.1": + version: 1.0.1 + resolution: "anynum@npm:1.0.1" + checksum: 10c0/cfda92c9215722fc4b15faa33d0eb3d5dfd28fba6cb67c1f50d214feaa7ba6497814a3e110777853585de6d91c8c962a1ae425b637d3598d9f9d8f6f6802e5bb + languageName: node + linkType: hard + "appdirsjs@npm:^1.2.4": version: 1.2.7 resolution: "appdirsjs@npm:1.2.7" @@ -3478,12 +3482,12 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:0.36.0": - version: 0.36.0 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.36.0" +"babel-plugin-syntax-hermes-parser@npm:0.36.1": + version: 0.36.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.36.1" dependencies: - hermes-parser: "npm:0.36.0" - checksum: 10c0/3c20d2b2595e890bf7bf14b48a1dc6eb2ad2625e04f942254f3676440e20489eb8266fba8f8077194d294dfb67552b6b969bb40b93c873b88fdc319528dc2606 + hermes-parser: "npm:0.36.1" + checksum: 10c0/d6343ef16032253408cc8f4585c7acc275101f3194c312606e0f0d65ccf768db36b74e907296a93f3844c108ed19776052d5e844cbd21ec18c43a23ce7c2055e languageName: node linkType: hard @@ -3610,23 +3614,20 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:^1.20.3": - version: 1.20.4 - resolution: "body-parser@npm:1.20.4" +"body-parser@npm:^2.2.2": + version: 2.3.0 + resolution: "body-parser@npm:2.3.0" dependencies: - bytes: "npm:~3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:~1.2.0" - http-errors: "npm:~2.0.1" - iconv-lite: "npm:~0.4.24" - on-finished: "npm:~2.4.1" - qs: "npm:~6.14.0" - raw-body: "npm:~2.5.3" - type-is: "npm:~1.6.18" - unpipe: "npm:~1.0.0" - checksum: 10c0/569c1e896297d1fcd8f34026c8d0ab70b90d45343c15c5d8dff5de2bad08125fc1e2f8c2f3f4c1ac6c0caaad115218202594d37dcb8d89d9b5dcae1c2b736aa9 + bytes: "npm:^3.1.2" + content-type: "npm:^2.0.0" + debug: "npm:^4.4.3" + http-errors: "npm:^2.0.1" + iconv-lite: "npm:^0.7.2" + on-finished: "npm:^2.4.1" + qs: "npm:^6.15.2" + raw-body: "npm:^3.0.2" + type-is: "npm:^2.1.0" + checksum: 10c0/2a8fbbdc471b588338555a3e1a597d1eb0ad0c21cf20fdc3bac5d3f8d9c3a4b19b4163575ab852a43a5dfc0df7770ced5284f979e561f1a24c2f851ce89e695a languageName: node linkType: hard @@ -3717,7 +3718,7 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.1.2, bytes@npm:~3.1.2": +"bytes@npm:3.1.2, bytes@npm:^3.1.2, bytes@npm:~3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e @@ -4127,10 +4128,10 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.5": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af +"content-type@npm:^2.0.0": + version: 2.0.0 + resolution: "content-type@npm:2.0.0" + checksum: 10c0/491539fff707d7594b0ca4fabcc084bef2a31ffa754ff0a4f80c4377e3963cff0394317f9271c24087596c97fa675bc123d61fa34ffe65b4904e7d3d3098de72 languageName: node linkType: hard @@ -4349,7 +4350,7 @@ __metadata: languageName: node linkType: hard -"destroy@npm:1.2.0, destroy@npm:~1.2.0": +"destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 @@ -4691,13 +4692,6 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b - languageName: node - linkType: hard - "events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" @@ -4807,14 +4801,29 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.4.1": - version: 4.5.4 - resolution: "fast-xml-parser@npm:4.5.4" +"fast-xml-builder@npm:^1.2.0": + version: 1.3.0 + resolution: "fast-xml-builder@npm:1.3.0" + dependencies: + path-expression-matcher: "npm:^1.6.2" + xml-naming: "npm:^0.3.0" + checksum: 10c0/3ab79c0da68dac4fccd6a92289b60a5ce7d2147f765db48b0a30263a814d21ce5173b6e3e6e1e728c982ef9642db4cc790e536c0d2a56d9c612e46d4286e2b74 + languageName: node + linkType: hard + +"fast-xml-parser@npm:^5.3.6": + version: 5.10.1 + resolution: "fast-xml-parser@npm:5.10.1" dependencies: - strnum: "npm:^1.0.5" + "@nodable/entities": "npm:^3.0.0" + fast-xml-builder: "npm:^1.2.0" + is-unsafe: "npm:^2.0.0" + path-expression-matcher: "npm:^1.6.2" + strnum: "npm:^2.4.1" + xml-naming: "npm:^0.3.0" bin: fxparser: src/cli/cli.js - checksum: 10c0/7989148650fc1fce988798b62467f7dee0fd5a7ad049373e00e65fbc68f689c119975d03da32c427f0a1f5aad01de2efbd783a48dcdaf3ca41817a8b161ad3e8 + checksum: 10c0/a7ef867ede5366b52efc8d490a5d39fa0afcdcb9d66e1f19296bea23dd304d167de0e61dbabb7138638fbbb099514b89e31710fd4ddc32559513ce1bdc776034 languageName: node linkType: hard @@ -5253,10 +5262,10 @@ __metadata: languageName: node linkType: hard -"hermes-compiler@npm:250829098.0.14": - version: 250829098.0.14 - resolution: "hermes-compiler@npm:250829098.0.14" - checksum: 10c0/b9f4024ac7377bebec61b91e1cee8f3909a8ecad0ea786c6b7c3863f8b65bd94f928850b341c82865a9435b8390d33f03e149e9d479c6870b6f5a754d101fde7 +"hermes-compiler@npm:250829098.0.16": + version: 250829098.0.16 + resolution: "hermes-compiler@npm:250829098.0.16" + checksum: 10c0/4ea360bb1ce0830346a432a4c3d32faf8fb6e23455659b97f7ac90ba4c8e7ee43d95088d3ab11e8b03bf492b24f9243a05050b04954edba9f9c0d6d552c48527 languageName: node linkType: hard @@ -5267,17 +5276,10 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.35.0": - version: 0.35.0 - resolution: "hermes-estree@npm:0.35.0" - checksum: 10c0/a88c9dc63b8b3679b1aeb43e72e977597096c1bd7d59978c952f1d6df6d1a517c4a817c70b1b701854996b485adfa66c2fc7f80871029a7f0c04306f6717b59a - languageName: node - linkType: hard - -"hermes-estree@npm:0.36.0": - version: 0.36.0 - resolution: "hermes-estree@npm:0.36.0" - checksum: 10c0/fe27f57b0f8c3921e9dc48c517e25f4399609ca386353f90e04d3f859bacbee93184af80a6b930db5e981e8953a5c4083147556b21b19519917e131e7533b27c +"hermes-estree@npm:0.36.1": + version: 0.36.1 + resolution: "hermes-estree@npm:0.36.1" + checksum: 10c0/9f552e1f809e05a4ddc5dcc10c5d1d5e375eade985026c3f8876a227db76c33059d25f93f92628a0e43d29a6da6977fbb643fafc8830babad62c1b88b2b56739 languageName: node linkType: hard @@ -5290,21 +5292,12 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.35.0": - version: 0.35.0 - resolution: "hermes-parser@npm:0.35.0" +"hermes-parser@npm:0.36.1": + version: 0.36.1 + resolution: "hermes-parser@npm:0.36.1" dependencies: - hermes-estree: "npm:0.35.0" - checksum: 10c0/49d98093a2094758db5b536627c6cf5146b140f66e63143acf471c62f1d3fd8bd6ae10a33f2372f72e3653deda5d4615c6dae89d01248849440916209901fc4a - languageName: node - linkType: hard - -"hermes-parser@npm:0.36.0": - version: 0.36.0 - resolution: "hermes-parser@npm:0.36.0" - dependencies: - hermes-estree: "npm:0.36.0" - checksum: 10c0/76e726366ac2ea91e9464853f439d582ddee9c07ccb84cac35297ce1a5d197bf96b84ab030423a22940b55a0fa5bb191bc0ebeebd95f8e34116900decdccdb86 + hermes-estree: "npm:0.36.1" + checksum: 10c0/31f2b0a383e15a3cdd8f34bc11498a35504771b58f24db5694ea5013faf6dbe6b27a47f7825bae5494dd57afac4de54c05f750d4ad646ff6787bbba97dfbd8eb languageName: node linkType: hard @@ -5322,7 +5315,7 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:~2.0.1": +"http-errors@npm:^2.0.1, http-errors@npm:~2.0.1": version: 2.0.1 resolution: "http-errors@npm:2.0.1" dependencies: @@ -5385,12 +5378,12 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:~0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" +"iconv-lite@npm:~0.7.0": + version: 0.7.3 + resolution: "iconv-lite@npm:0.7.3" dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/be2fd2414f7e94be3a63063fa0ad5919c16bc7b6e00c77eea0765ced6db405739f38dd51016583058fba25cc1d0106ba30b83fbb7a7e32f824d4db76f23d8d33 languageName: node linkType: hard @@ -5665,6 +5658,13 @@ __metadata: languageName: node linkType: hard +"is-unsafe@npm:^2.0.0": + version: 2.0.0 + resolution: "is-unsafe@npm:2.0.0" + checksum: 10c0/d7f721ae13e1abcec419e31f375b9b0840afc790250af3650709160ac9301d9f73e357b2ff832282258529b4f2d3cd622fcddd648f99704e686b2673f4e76a16 + languageName: node + linkType: hard + "is-windows@npm:^1.0.1": version: 1.0.2 resolution: "is-windows@npm:1.0.2" @@ -6653,10 +6653,10 @@ __metadata: languageName: node linkType: hard -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: 10c0/d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928 +"media-typer@npm:^1.1.0": + version: 1.1.1 + resolution: "media-typer@npm:1.1.1" + checksum: 10c0/924644de220c3107fc53ec0299b7c1488503470265d32f1492535bd798cc369ba7ceaf9c2a4533361590dcf7208d1cc7b7032dbc1a5918773f5f5d912cab5211 languageName: node linkType: hard @@ -6688,70 +6688,69 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.84.4": - version: 0.84.4 - resolution: "metro-babel-transformer@npm:0.84.4" +"metro-babel-transformer@npm:0.87.0": + version: 0.87.0 + resolution: "metro-babel-transformer@npm:0.87.0" dependencies: "@babel/core": "npm:^7.25.2" flow-enums-runtime: "npm:^0.0.6" - hermes-parser: "npm:0.35.0" - metro-cache-key: "npm:0.84.4" + hermes-parser: "npm:0.36.1" + metro-cache-key: "npm:0.87.0" nullthrows: "npm:^1.1.1" - checksum: 10c0/d1ac996666334bc1cfe9d399cbf4cd747b675f6f8f758c2317eebcc52bd76046ed864ddb7b270efeb8cf337940a61fb03912e5c859b7cbc54687c2f5c41a9d2a + checksum: 10c0/0a84ff061f0692f69738fd33d8e0571594c249cb03cd461c381a7dcea7c820ceefe84ee36a8aa57764aa64ddc25846bc1227769d4222bb2c18bac42982811b98 languageName: node linkType: hard -"metro-cache-key@npm:0.84.4": - version: 0.84.4 - resolution: "metro-cache-key@npm:0.84.4" +"metro-cache-key@npm:0.87.0": + version: 0.87.0 + resolution: "metro-cache-key@npm:0.87.0" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/a82ab6367f11886d960cc8fa1f3aa54f6529fe30c16059c141c3e789084c50838fdd7e1a5528534cd9c11a74c63aa5c6a7461dbfa50e8c449b6141eaf2fd05e0 + checksum: 10c0/f75b20b43cd99f684d215c57b195611e04d2d2a9442ad4df17fa2a8929ec7f31a428331881ab950c25e585c65946dcda3c7377d58905c2c7b600a5b66286ec2d languageName: node linkType: hard -"metro-cache@npm:0.84.4": - version: 0.84.4 - resolution: "metro-cache@npm:0.84.4" +"metro-cache@npm:0.87.0": + version: 0.87.0 + resolution: "metro-cache@npm:0.87.0" dependencies: exponential-backoff: "npm:^3.1.1" flow-enums-runtime: "npm:^0.0.6" https-proxy-agent: "npm:^7.0.5" - metro-core: "npm:0.84.4" - checksum: 10c0/3bf7f3a1f85b4f1af05f4b2c71c78e56fd3262d967ee43f02e9ff6820254063af33a70b6549e3dc5e993a6a0b9df92e9279632ad9a8b1cde2577342f93df45eb + metro-core: "npm:0.87.0" + checksum: 10c0/150404598aa6ab7d2a98243214191009d698f841e8126dffe6de83d3861869bd7e4ab527ede6fdf6c738db9fff94f691998e9213fffe38cbc72dca8cd80a8f43 languageName: node linkType: hard -"metro-config@npm:0.84.4, metro-config@npm:^0.84.3": - version: 0.84.4 - resolution: "metro-config@npm:0.84.4" +"metro-config@npm:0.87.0, metro-config@npm:^0.87.0": + version: 0.87.0 + resolution: "metro-config@npm:0.87.0" dependencies: connect: "npm:^3.6.5" flow-enums-runtime: "npm:^0.0.6" jest-validate: "npm:^29.7.0" - metro: "npm:0.84.4" - metro-cache: "npm:0.84.4" - metro-core: "npm:0.84.4" - metro-runtime: "npm:0.84.4" - yaml: "npm:^2.6.1" - checksum: 10c0/f8aaf7d8cff9b486353b62f4746b0a70f99749bd4061f5ae847524aaedcd9c5a34bf176cbbe12fb33e771e8ed3c1496654b2578fa5ba8b9e4f856f0589744d98 + metro: "npm:0.87.0" + metro-cache: "npm:0.87.0" + metro-core: "npm:0.87.0" + metro-runtime: "npm:0.87.0" + checksum: 10c0/a3c5a131f875bf8a52cf9ccb528e0343abb501159a18c7985de218ce188768c91f66ce4348e5707eb885bcf09948219de76ece03498179ba4db5aeadf3ddf7ea languageName: node linkType: hard -"metro-core@npm:0.84.4, metro-core@npm:^0.84.3": - version: 0.84.4 - resolution: "metro-core@npm:0.84.4" +"metro-core@npm:0.87.0": + version: 0.87.0 + resolution: "metro-core@npm:0.87.0" dependencies: flow-enums-runtime: "npm:^0.0.6" lodash.throttle: "npm:^4.1.1" - metro-resolver: "npm:0.84.4" - checksum: 10c0/19d859de16b5e082c9c31bed981c579a4e6d31a626c7829b725df9ae0ffb755d0ef7809ba9f8adf22d3921f5ffdd931ed77b21b95ca2ea17895f0c99b3cab831 + metro-resolver: "npm:0.87.0" + checksum: 10c0/3ddefabf34f98e757a8b95768982dc0eb11f15eed001a9063d0144529fd85bcf22b7c33b770636aec3e1ba5b50219143486b87dd2e54b04e4d5b027ae02642b0 languageName: node linkType: hard -"metro-file-map@npm:0.84.4": - version: 0.84.4 - resolution: "metro-file-map@npm:0.84.4" +"metro-file-map@npm:0.87.0": + version: 0.87.0 + resolution: "metro-file-map@npm:0.87.0" dependencies: debug: "npm:^4.4.0" fb-watchman: "npm:^2.0.0" @@ -6762,75 +6761,75 @@ __metadata: micromatch: "npm:^4.0.4" nullthrows: "npm:^1.1.1" walker: "npm:^1.0.7" - checksum: 10c0/09ca829570d1d6dc5beb0534da8a7f2bfcae5415b0974fd5f58b4a05da95dbafdd47f7dc8dedeb11b6562ee9a92c4d918466d02a05cda6e1eaf2c400cbbe6fb4 + checksum: 10c0/49b9d859c3a7d6da277699a04c55db8a77f404cebec0cacfa7916664ebec607d8e57f8120e2ba28a4aec615d4af33fd5a3cdb164dc80d78b1d9b722f2351aadc languageName: node linkType: hard -"metro-minify-terser@npm:0.84.4": - version: 0.84.4 - resolution: "metro-minify-terser@npm:0.84.4" +"metro-minify-terser@npm:0.87.0": + version: 0.87.0 + resolution: "metro-minify-terser@npm:0.87.0" dependencies: flow-enums-runtime: "npm:^0.0.6" terser: "npm:^5.15.0" - checksum: 10c0/c9b36c2adb8254c38bdedad9da8bf2b7fae7f45cbd883e590430a5fc9cad808af24dd08a9420925e15733dab886528ad553e3eeb3faffc53d3ad80e7e03e5f6d + checksum: 10c0/db0cff372672b9de914be0d0c6440873df88ccbc38ed5e299cf534bc806c2cc0caa005098f0c498cc2d3e51e4f3f6e05f7671b9c48c873cf62709557cc07689d languageName: node linkType: hard -"metro-resolver@npm:0.84.4": - version: 0.84.4 - resolution: "metro-resolver@npm:0.84.4" +"metro-resolver@npm:0.87.0": + version: 0.87.0 + resolution: "metro-resolver@npm:0.87.0" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/468334270598222e15cbee32af51a3b5e1f4fa6869794955b95d1134b28a58594e8e3879e841ccf00bbb5cd86c689a4481714d6c6a464931987d5333d2c55f80 + checksum: 10c0/e2283f83d14794948eb0153a3f9d8b39519be25d21f5d482f27972c47702d58ed340f49c6ab87a175e3a340c53878eff49b4764cffdd508f86bce30079914c58 languageName: node linkType: hard -"metro-runtime@npm:0.84.4, metro-runtime@npm:^0.84.3": - version: 0.84.4 - resolution: "metro-runtime@npm:0.84.4" +"metro-runtime@npm:0.87.0, metro-runtime@npm:^0.87.0": + version: 0.87.0 + resolution: "metro-runtime@npm:0.87.0" dependencies: "@babel/runtime": "npm:^7.25.0" flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/e2b2e819027940c6bbd081e5650238d52b6c6d78561cd486b8c10cd1e7fce0213c66fa7f885e37ad5377fcd5726b1c9e473fba6de13938cdf2c966e82968c05f + checksum: 10c0/6811ee32a759dbccaa3241d98ec26f3e26fd5e4a1cdd5929c98df94fd46329c20f026759da6ca055cb068f8a57dfc7054b6cfc7bb9fb7b3280144055d2f8d67f languageName: node linkType: hard -"metro-source-map@npm:0.84.4, metro-source-map@npm:^0.84.3": - version: 0.84.4 - resolution: "metro-source-map@npm:0.84.4" +"metro-source-map@npm:0.87.0, metro-source-map@npm:^0.87.0": + version: 0.87.0 + resolution: "metro-source-map@npm:0.87.0" dependencies: "@babel/traverse": "npm:^7.29.0" "@babel/types": "npm:^7.29.0" flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-symbolicate: "npm:0.84.4" + metro-symbolicate: "npm:0.87.0" nullthrows: "npm:^1.1.1" - ob1: "npm:0.84.4" + ob1: "npm:0.87.0" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" - checksum: 10c0/39df4524022e07aa4b4d09dd874a9509eb9e2e1e491e80a35099020347ab6be2407851b026452296aad314b0eb7ecf14f9b6bab96bd7c31d47d8b1eb30279aaf + checksum: 10c0/8074cf0bb4ea7f1027924155b57a0e1205ed9381611abebddd1d7e5a92d0c231cb5c6dd65964711a3a2a2757486b478869d971246158b28dd95232daaef18eff languageName: node linkType: hard -"metro-symbolicate@npm:0.84.4": - version: 0.84.4 - resolution: "metro-symbolicate@npm:0.84.4" +"metro-symbolicate@npm:0.87.0": + version: 0.87.0 + resolution: "metro-symbolicate@npm:0.87.0" dependencies: flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-source-map: "npm:0.84.4" + metro-source-map: "npm:0.87.0" nullthrows: "npm:^1.1.1" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" bin: metro-symbolicate: src/index.js - checksum: 10c0/416a9ef694150a8ec708187743b74ab67e0b4fec39c64610b3771b584830117670a62acb9aa824f84a44efbb1cfec07aaf943d1aaf349d977eecf7c72bd8c0bf + checksum: 10c0/aacc80d9b46cefedd4078fd2fea0212978a570aa7f2eba6042b33d288858be1e5150d71320dd420bcc0d357c46237edb1b7312639693d288bf6d67fa502c4203 languageName: node linkType: hard -"metro-transform-plugins@npm:0.84.4": - version: 0.84.4 - resolution: "metro-transform-plugins@npm:0.84.4" +"metro-transform-plugins@npm:0.87.0": + version: 0.87.0 + resolution: "metro-transform-plugins@npm:0.87.0" dependencies: "@babel/core": "npm:^7.25.2" "@babel/generator": "npm:^7.29.1" @@ -6838,34 +6837,34 @@ __metadata: "@babel/traverse": "npm:^7.29.0" flow-enums-runtime: "npm:^0.0.6" nullthrows: "npm:^1.1.1" - checksum: 10c0/7edb0c0d3655e9f5f5fb8bd8221ec297394b8730c959a3245ea81e50da8177ad7782f21696201a0dcb922281efd919e9548d5b819d8338e52d4b130f06333123 + checksum: 10c0/66e622b701e3fcb3e7034b7ac008c34351381d27e76c712d332814fde05eb6f1d98268bce16b62933a591b81b123e26cdd536c9744c8fbf122c087e7275c4e83 languageName: node linkType: hard -"metro-transform-worker@npm:0.84.4": - version: 0.84.4 - resolution: "metro-transform-worker@npm:0.84.4" +"metro-transform-worker@npm:0.87.0": + version: 0.87.0 + resolution: "metro-transform-worker@npm:0.87.0" dependencies: "@babel/core": "npm:^7.25.2" "@babel/generator": "npm:^7.29.1" "@babel/parser": "npm:^7.29.0" "@babel/types": "npm:^7.29.0" flow-enums-runtime: "npm:^0.0.6" - metro: "npm:0.84.4" - metro-babel-transformer: "npm:0.84.4" - metro-cache: "npm:0.84.4" - metro-cache-key: "npm:0.84.4" - metro-minify-terser: "npm:0.84.4" - metro-source-map: "npm:0.84.4" - metro-transform-plugins: "npm:0.84.4" + metro: "npm:0.87.0" + metro-babel-transformer: "npm:0.87.0" + metro-cache: "npm:0.87.0" + metro-cache-key: "npm:0.87.0" + metro-minify-terser: "npm:0.87.0" + metro-source-map: "npm:0.87.0" + metro-transform-plugins: "npm:0.87.0" nullthrows: "npm:^1.1.1" - checksum: 10c0/95924f9bcaf6df931bba2783f440d8fab29909bdde8cecdcc3bc7603e7de71e51728a34288f045694b616c94216d1fc683493b8a470e074c9c8a7f220aa9f9b5 + checksum: 10c0/2fc3d49874bc9f76a055e14e0a4c5e6c5659efdae148a275ef13a261a013975114c2aacdb5f42815da0be01196ecfcb3a722b6691752edda69110b655b8522ba languageName: node linkType: hard -"metro@npm:0.84.4, metro@npm:^0.84.3": - version: 0.84.4 - resolution: "metro@npm:0.84.4" +"metro@npm:0.87.0, metro@npm:^0.87.0": + version: 0.87.0 + resolution: "metro@npm:0.87.0" dependencies: "@babel/code-frame": "npm:^7.29.0" "@babel/core": "npm:^7.25.2" @@ -6881,24 +6880,24 @@ __metadata: error-stack-parser: "npm:^2.0.6" flow-enums-runtime: "npm:^0.0.6" graceful-fs: "npm:^4.2.4" - hermes-parser: "npm:0.35.0" + hermes-parser: "npm:0.36.1" image-size: "npm:^1.0.2" invariant: "npm:^2.2.4" jest-worker: "npm:^29.7.0" jsc-safe-url: "npm:^0.2.2" lodash.throttle: "npm:^4.1.1" - metro-babel-transformer: "npm:0.84.4" - metro-cache: "npm:0.84.4" - metro-cache-key: "npm:0.84.4" - metro-config: "npm:0.84.4" - metro-core: "npm:0.84.4" - metro-file-map: "npm:0.84.4" - metro-resolver: "npm:0.84.4" - metro-runtime: "npm:0.84.4" - metro-source-map: "npm:0.84.4" - metro-symbolicate: "npm:0.84.4" - metro-transform-plugins: "npm:0.84.4" - metro-transform-worker: "npm:0.84.4" + metro-babel-transformer: "npm:0.87.0" + metro-cache: "npm:0.87.0" + metro-cache-key: "npm:0.87.0" + metro-config: "npm:0.87.0" + metro-core: "npm:0.87.0" + metro-file-map: "npm:0.87.0" + metro-resolver: "npm:0.87.0" + metro-runtime: "npm:0.87.0" + metro-source-map: "npm:0.87.0" + metro-symbolicate: "npm:0.87.0" + metro-transform-plugins: "npm:0.87.0" + metro-transform-worker: "npm:0.87.0" mime-types: "npm:^3.0.1" nullthrows: "npm:^1.1.1" serialize-error: "npm:^2.1.0" @@ -6908,7 +6907,7 @@ __metadata: yargs: "npm:^17.6.2" bin: metro: src/cli.js - checksum: 10c0/ff92915119db29cd855274f3789d391cba83c50cb92e22d1e9b8c729e7f6d39495e32540a22ca4c6591eea6a847ade49fcfa5faab01b2300227e3f1fc7df359c + checksum: 10c0/e7aa8b6968c45b4a68dfdf7f6d68e40be0ec888facd8d1bd304a2655ecec245533e9fbf525bd41bf01dd32a327c55a4fd81c229cd589d5796431a663777b0017 languageName: node linkType: hard @@ -6945,7 +6944,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -7303,12 +7302,12 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.84.4": - version: 0.84.4 - resolution: "ob1@npm:0.84.4" +"ob1@npm:0.87.0": + version: 0.87.0 + resolution: "ob1@npm:0.87.0" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/8bf3a3bdc2b27f1b1b60569c31ff2d9d829025f9a1ce7388b5e810242e48672c8d6b24e5972d6e30aef4d84f6894d12b13d0c6c418460d031da1972b96920bba + checksum: 10c0/917478964d9d0876fb0f1d07232ba02115589505972c98468780a174fc61b15ef8ffe322667836df385271db7b4beaf7916cd837b559776b601e3e6a46ca56c3 languageName: node linkType: hard @@ -7326,7 +7325,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.3": +"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" checksum: 10c0/d7f8711e803b96ea3191c745d6f8056ce1f2496e530e6a19a0e92d89b0fa3c76d910c31f0aa270432db6bd3b2f85500a376a83aaba849a8d518c8845b3211692 @@ -7340,21 +7339,21 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:~2.3.0": - version: 2.3.0 - resolution: "on-finished@npm:2.3.0" +"on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" dependencies: ee-first: "npm:1.1.1" - checksum: 10c0/c904f9e518b11941eb60279a3cbfaf1289bd0001f600a950255b1dede9fe3df8cd74f38483550b3bb9485165166acb5db500c3b4c4337aec2815c88c96fcc2ea + checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 languageName: node linkType: hard -"on-finished@npm:~2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" +"on-finished@npm:~2.3.0": + version: 2.3.0 + resolution: "on-finished@npm:2.3.0" dependencies: ee-first: "npm:1.1.1" - checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 + checksum: 10c0/c904f9e518b11941eb60279a3cbfaf1289bd0001f600a950255b1dede9fe3df8cd74f38483550b3bb9485165166acb5db500c3b4c4337aec2815c88c96fcc2ea languageName: node linkType: hard @@ -7391,12 +7390,12 @@ __metadata: "@babel/preset-env": "npm:^7.25.3" "@babel/runtime": "npm:^7.25.0" "@op-engineering/op-test": "npm:0.2.7" - "@react-native-community/cli": "npm:20.1.0" - "@react-native-community/cli-platform-android": "npm:20.1.0" - "@react-native-community/cli-platform-ios": "npm:20.1.0" - "@react-native/babel-preset": "npm:0.86.0" - "@react-native/metro-config": "npm:0.86.0" - "@react-native/typescript-config": "npm:0.86.0" + "@react-native-community/cli": "npm:20.2.0" + "@react-native-community/cli-platform-android": "npm:20.2.0" + "@react-native-community/cli-platform-ios": "npm:20.2.0" + "@react-native/babel-preset": "npm:0.87.0" + "@react-native/metro-config": "npm:0.87.0" + "@react-native/typescript-config": "npm:0.87.0" "@sqlite.org/sqlite-wasm": "npm:^3.51.2-build8" "@types/chance": "npm:^1.1.7" "@types/react": "npm:^19.2.0" @@ -7407,11 +7406,11 @@ __metadata: patch-package: "npm:^8.0.1" react: "npm:19.2.3" react-dom: "npm:19.2.3" - react-native: "npm:0.86.0" + react-native: "npm:0.87.0" react-native-builder-bob: "npm:^0.40.15" react-native-monorepo-config: "npm:^0.1.9" react-native-restart: "npm:^0.0.27" - react-native-safe-area-context: "npm:^5.6.2" + react-native-safe-area-context: "npm:^5.8.1" react-native-web: "npm:^0.21.2" tailwindcss: "npm:3.3.2" vite: "npm:^7.1.9" @@ -7579,6 +7578,13 @@ __metadata: languageName: node linkType: hard +"path-expression-matcher@npm:^1.6.2": + version: 1.6.2 + resolution: "path-expression-matcher@npm:1.6.2" + checksum: 10c0/8241302f563de367a81acacd417055a22dd3792a84700569dc2a7888da31aa18eb01131c55f05200c92790b6c45b01fee1984b02540cc5f15726ba1b73a8a075 + languageName: node + linkType: hard + "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -7848,12 +7854,13 @@ __metadata: languageName: node linkType: hard -"qs@npm:~6.14.0": - version: 6.14.2 - resolution: "qs@npm:6.14.2" +"qs@npm:^6.15.2": + version: 6.15.3 + resolution: "qs@npm:6.15.3" dependencies: - side-channel: "npm:^1.1.0" - checksum: 10c0/646110124476fc9acf3c80994c8c3a0600cbad06a4ede1c9e93341006e8426d64e85e048baf8f0c4995f0f1bf0f37d1f3acc5ec1455850b81978792969a60ef6 + es-define-property: "npm:^1.0.1" + side-channel: "npm:^1.1.1" + checksum: 10c0/8f3f6e45ece255347d57696628401cde29e9ec649fff698b53bd3150dea7cefdf33036e1bc1826b9f110bfa7cb0ec4ab9f5297eca628ce216c55af82c304e08e languageName: node linkType: hard @@ -7880,15 +7887,15 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:~2.5.3": - version: 2.5.3 - resolution: "raw-body@npm:2.5.3" +"raw-body@npm:^3.0.2": + version: 3.0.2 + resolution: "raw-body@npm:3.0.2" dependencies: bytes: "npm:~3.1.2" http-errors: "npm:~2.0.1" - iconv-lite: "npm:~0.4.24" + iconv-lite: "npm:~0.7.0" unpipe: "npm:~1.0.0" - checksum: 10c0/449844344fc90547fb994383a494b83300e4f22199f146a79f68d78a199a8f2a923ea9fd29c3be979bfd50291a3884733619ffc15ba02a32e703b612f8d3f74a + checksum: 10c0/d266678d08e1e7abea62c0ce5864344e980fa81c64f6b481e9842c5beaed2cdcf975f658a3ccd67ad35fc919c1f6664ccc106067801850286a6cbe101de89f29 languageName: node linkType: hard @@ -7996,13 +8003,13 @@ __metadata: languageName: node linkType: hard -"react-native-safe-area-context@npm:^5.6.2": - version: 5.7.0 - resolution: "react-native-safe-area-context@npm:5.7.0" +"react-native-safe-area-context@npm:^5.8.1": + version: 5.8.1 + resolution: "react-native-safe-area-context@npm:5.8.1" peerDependencies: react: "*" react-native: "*" - checksum: 10c0/c3799e17321b41df1e0a10492c98472f8f8225ef0bbaf8146c4a9acb9519aae9ac11429059143c215e4402c2808e8445274850a339f8477522ded2461e18da80 + checksum: 10c0/b04491f2dd97faf4a0afcb198ba803239676580a9523b23614346236149d0419abb8d0422574f4ce1782d606be6e5741b8e6841d807c48f69247a497a7a511aa languageName: node linkType: hard @@ -8025,29 +8032,27 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.86.0": - version: 0.86.0 - resolution: "react-native@npm:0.86.0" +"react-native@npm:0.87.0": + version: 0.87.0 + resolution: "react-native@npm:0.87.0" dependencies: - "@react-native/assets-registry": "npm:0.86.0" - "@react-native/codegen": "npm:0.86.0" - "@react-native/community-cli-plugin": "npm:0.86.0" - "@react-native/gradle-plugin": "npm:0.86.0" - "@react-native/js-polyfills": "npm:0.86.0" - "@react-native/normalize-colors": "npm:0.86.0" - "@react-native/virtualized-lists": "npm:0.86.0" - abort-controller: "npm:^3.0.0" + "@react-native/asset-utils": "npm:0.87.0" + "@react-native/codegen": "npm:0.87.0" + "@react-native/community-cli-plugin": "npm:0.87.0" + "@react-native/gradle-plugin": "npm:0.87.0" + "@react-native/normalize-colors": "npm:0.87.0" + "@react-native/virtualized-lists": "npm:0.87.0" anser: "npm:^1.4.9" ansi-regex: "npm:^5.0.0" - babel-plugin-syntax-hermes-parser: "npm:0.36.0" + babel-plugin-syntax-hermes-parser: "npm:0.36.1" base64-js: "npm:^1.5.1" commander: "npm:^12.0.0" flow-enums-runtime: "npm:^0.0.6" - hermes-compiler: "npm:250829098.0.14" + hermes-compiler: "npm:250829098.0.16" invariant: "npm:^2.2.4" memoize-one: "npm:^5.0.0" - metro-runtime: "npm:^0.84.3" - metro-source-map: "npm:^0.84.3" + metro-runtime: "npm:^0.87.0" + metro-source-map: "npm:^0.87.0" nullthrows: "npm:^1.1.1" pretty-format: "npm:^29.7.0" promise: "npm:^8.3.0" @@ -8062,17 +8067,14 @@ __metadata: ws: "npm:^7.5.10" yargs: "npm:^17.6.2" peerDependencies: - "@react-native/jest-preset": 0.86.0 "@types/react": ^19.1.1 react: ^19.2.3 peerDependenciesMeta: - "@react-native/jest-preset": - optional: true "@types/react": optional: true bin: react-native: cli.js - checksum: 10c0/47a569c47a22b37526ac54e17d1f42c6a191ca7cd30230bc16ee5307ac53da1db89d27ba20c76e9756fb646866d89fedfc1852b1ddc15c47bde45c899079096a + checksum: 10c0/0f3e8760b9417d79d1fa840d4be5891e8baf9087ddc4a523107166e14975f0f311bb3ee7aa122a99e93ae2fc1c1e1d3f95182ab6ae7fe6abb0206386392f982e languageName: node linkType: hard @@ -8392,7 +8394,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 @@ -8522,13 +8524,13 @@ __metadata: languageName: node linkType: hard -"side-channel-list@npm:^1.0.0": - version: 1.0.0 - resolution: "side-channel-list@npm:1.0.0" +"side-channel-list@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-list@npm:1.0.1" dependencies: es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.3" - checksum: 10c0/644f4ac893456c9490ff388bf78aea9d333d5e5bfc64cfb84be8f04bf31ddc111a8d4b83b85d7e7e8a7b845bc185a9ad02c052d20e086983cf59f0be517d9b3d + object-inspect: "npm:^1.13.4" + checksum: 10c0/d346c787fd2f9f1c2fdea14f00e8250118db0e7596d85a6cb9faa75f105d31a73a8f7a341c93d7df2a2429098c3d37a77bd3be9e88c37094b8c01807bc77c7a2 languageName: node linkType: hard @@ -8557,16 +8559,16 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.1.0": - version: 1.1.0 - resolution: "side-channel@npm:1.1.0" +"side-channel@npm:^1.1.1": + version: 1.1.1 + resolution: "side-channel@npm:1.1.1" dependencies: es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.3" - side-channel-list: "npm:^1.0.0" + object-inspect: "npm:^1.13.4" + side-channel-list: "npm:^1.0.1" side-channel-map: "npm:^1.0.1" side-channel-weakmap: "npm:^1.0.2" - checksum: 10c0/cb20dad41eb032e6c24c0982e1e5a24963a28aa6122b4f05b3f3d6bf8ae7fd5474ef382c8f54a6a3ab86e0cac4d41a23bd64ede3970e5bfb50326ba02a7996e6 + checksum: 10c0/dc0ab81d67f61bda9247d053ce93f41c3fd8ad2bdcb9cf9d8d2f8540d488f26d87a5e99ebfc07eea49ec025867b2452b705442d974b1478f0395e69f6bfb3270 languageName: node linkType: hard @@ -8854,10 +8856,12 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^1.0.5": - version: 1.1.2 - resolution: "strnum@npm:1.1.2" - checksum: 10c0/a0fce2498fa3c64ce64a40dada41beb91cabe3caefa910e467dc0518ef2ebd7e4d10f8c2202a6104f1410254cae245066c0e94e2521fb4061a5cb41831952392 +"strnum@npm:^2.4.1": + version: 2.4.1 + resolution: "strnum@npm:2.4.1" + dependencies: + anynum: "npm:^1.0.1" + checksum: 10c0/0d6a42bf8a1ad74b0a6c048ecf3bea50757383bcf304877ebe6e62acca5574bc088ce71bfb4de4b89b2ab44c618834c76be5894da04b67c673ff6677788b2638 languageName: node linkType: hard @@ -9164,13 +9168,14 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" +"type-is@npm:^2.1.0": + version: 2.1.0 + resolution: "type-is@npm:2.1.0" dependencies: - media-typer: "npm:0.3.0" - mime-types: "npm:~2.1.24" - checksum: 10c0/a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d + content-type: "npm:^2.0.0" + media-typer: "npm:^1.1.0" + mime-types: "npm:^3.0.0" + checksum: 10c0/a6018f8f509de48f2c7429305e3a920e73b374fa93127dd0877ae1c2df65a5d33907caac8afb0c37a9b9fc7c49f29e3f55d668963dc845d966930b667c07f50e languageName: node linkType: hard @@ -9556,6 +9561,13 @@ __metadata: languageName: node linkType: hard +"xml-naming@npm:^0.3.0": + version: 0.3.0 + resolution: "xml-naming@npm:0.3.0" + checksum: 10c0/48bfc4fe888cdf1c3eceb7853632ebce59e4aa71f0ae33c3f9ce1fbd3213caad293457de0a311114491f0d4efcfba70977dcba3a4f66dfed8c92edbb938056bf + languageName: node + linkType: hard + "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" @@ -9591,7 +9603,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.2.1, yaml@npm:^2.2.2, yaml@npm:^2.3.4, yaml@npm:^2.6.1": +"yaml@npm:^2.2.1, yaml@npm:^2.2.2, yaml@npm:^2.3.4": version: 2.8.2 resolution: "yaml@npm:2.8.2" bin: