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/README.md b/README.md index cde37994..4e7796e1 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,6 @@ Some of the big supported features: - SQLCipher is supported as a compilation target - FTS5 plugin - Rtree plugin -- cr-sqlite plugin - sqlite-vec plugin - Reactive queries - Custom tokenizers diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index 225510b4..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 @@ -79,12 +79,6 @@ else() target_sources(${PACKAGE_NAME} PRIVATE ../cpp/sqlite3.c ../cpp/bridge.cpp) endif() -if (USE_CRSQLITE) - add_definitions( - -DOP_SQLITE_USE_CRSQLITE=1 - ) -endif() - if (USE_SQLITE_VEC) add_definitions( -DOP_SQLITE_USE_SQLITE_VEC=1 diff --git a/android/build.gradle b/android/build.gradle index 831ca5d2..fd8dd677 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -35,7 +35,6 @@ def reactNativeArchitectures() { def useSQLCipher = false def useLibsql = false def useTurso = false -def useCRSQLite = false def performanceMode = false def sqliteFlags = "" def enableFTS5 = false @@ -74,7 +73,6 @@ def opsqliteConfig = packageJson["op-sqlite"] if(opsqliteConfig) { println "[OP-SQLITE] Detected op-sqlite config from package.json at: " + packageJsonFile.absolutePath useSQLCipher = !!opsqliteConfig["sqlcipher"] - useCRSQLite = !!opsqliteConfig["crsqlite"] useSqliteVec = !!opsqliteConfig["sqliteVec"] performanceMode = opsqliteConfig["performanceMode"] sqliteFlags = opsqliteConfig["sqliteFlags"] ? opsqliteConfig["sqliteFlags"] : "" @@ -89,10 +87,6 @@ if(useLibsql && useTurso) { throw new GradleException("[OP-SQLITE] Error: libsql and turso backends are mutually exclusive.") } -if(useLibsql && useCRSQLite) { - throw new GradleException("[OP-SQLITE] Error: You cannot use crsqlite with libsql.") -} - if(useSQLCipher) { println "[OP-SQLITE] using sqlcipher." } else if(useTurso) { @@ -101,10 +95,6 @@ if(useSQLCipher) { println "[OP-SQLITE] using libsql. Report any issues to Turso" } -if(useCRSQLite) { - println "[OP-SQLITE] using CR-SQLite" -} - if(performanceMode) { println "[OP-SQLITE] Performance mode enabled" } @@ -153,6 +143,7 @@ android { namespace "com.op.sqlite" compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + ndkVersion getExtOrDefault("ndkVersion") defaultConfig { minSdkVersion getExtOrIntegerDefault("minSdkVersion") @@ -175,10 +166,6 @@ android { cFlags += "-DOP_SQLITE_USE_TURSO=1" cppFlags += "-DOP_SQLITE_USE_TURSO=1" } - if(useCRSQLite) { - cFlags += "-DOP_SQLITE_USE_CRSQLITE=1" - cppFlags += "-DOP_SQLITE_USE_CRSQLITE=1" - } if(useSqliteVec) { cFlags += "-DOP_SQLITE_USE_SQLITE_VEC=1" cppFlags += "-DOP_SQLITE_USE_SQLITE_VEC=1" @@ -206,7 +193,6 @@ android { "-DDEFAULT_SQLITE_FLAGS='${defaultSqliteFlags.join(' ')}'", "-DSQLITE_FLAGS='$sqliteFlags'", "-DUSE_SQLCIPHER=${useSQLCipher ? 1 : 0}", - "-DUSE_CRSQLITE=${useCRSQLite ? 1 : 0}", "-DUSE_LIBSQL=${useLibsql ? 1 : 0}", "-DUSE_TURSO=${useTurso ? 1 : 0}", "-DUSE_SQLITE_VEC=${useSqliteVec ? 1 : 0}", @@ -277,9 +263,6 @@ android { if (useTurso) { srcDirs += 'src/main/tursoLibs' } - if (useCRSQLite) { - srcDirs += 'src/main/libcrsqlite' - } if (useSqliteVec) { srcDirs += 'src/main/libsqlitevec' } diff --git a/android/cpp-adapter.cpp b/android/cpp-adapter.cpp index 5912d7b1..27c26c1a 100644 --- a/android/cpp-adapter.cpp +++ b/android/cpp-adapter.cpp @@ -33,7 +33,7 @@ struct OPSQLiteBridge : jni::JavaClass { std::string dbPathStr = dbPath->toStdString(); opsqlite::install(*jsiRuntime, jsCallInvoker, dbPathStr.c_str(), - "libcrsqlite", "libsqlite_vec"); + "libsqlite_vec"); } static void clearStateNativeJsi(jni::alias_ref thiz) { diff --git a/android/src/main/libcrsqlite/arm64-v8a/libcrsqlite.so b/android/src/main/libcrsqlite/arm64-v8a/libcrsqlite.so deleted file mode 100644 index 4d584cc4..00000000 Binary files a/android/src/main/libcrsqlite/arm64-v8a/libcrsqlite.so and /dev/null differ diff --git a/android/src/main/libcrsqlite/armeabi-v7a/libcrsqlite.so b/android/src/main/libcrsqlite/armeabi-v7a/libcrsqlite.so deleted file mode 100644 index b6ff67c4..00000000 Binary files a/android/src/main/libcrsqlite/armeabi-v7a/libcrsqlite.so and /dev/null differ diff --git a/android/src/main/libcrsqlite/x86/libcrsqlite.so b/android/src/main/libcrsqlite/x86/libcrsqlite.so deleted file mode 100644 index 568d1921..00000000 Binary files a/android/src/main/libcrsqlite/x86/libcrsqlite.so and /dev/null differ diff --git a/android/src/main/libcrsqlite/x86_64/libcrsqlite.so b/android/src/main/libcrsqlite/x86_64/libcrsqlite.so deleted file mode 100644 index e04ab9b1..00000000 Binary files a/android/src/main/libcrsqlite/x86_64/libcrsqlite.so and /dev/null differ diff --git a/cpp/OPSqlite.cpp b/cpp/OPSqlite.cpp index 31401f2a..110638cc 100644 --- a/cpp/OPSqlite.cpp +++ b/cpp/OPSqlite.cpp @@ -22,7 +22,6 @@ namespace jsi = facebook::jsi; namespace react = facebook::react; std::string _base_path; -std::string _crsqlite_path; std::string _sqlite_vec_path; std::vector> dbs; bool invalidated = false; @@ -45,11 +44,9 @@ void invalidate() { void install(jsi::Runtime &rt, const std::shared_ptr &_invoker, - const char *base_path, const char *crsqlite_path, - const char *sqlite_vec_path) { + const char *base_path, const char *sqlite_vec_path) { _base_path = std::string(base_path); - _crsqlite_path = std::string(crsqlite_path); _sqlite_vec_path = std::string(sqlite_vec_path); opsqlite::invoker = _invoker; opsqlite::invalidated = false; diff --git a/cpp/OPSqlite.hpp b/cpp/OPSqlite.hpp index 91511ab8..279b3eb3 100644 --- a/cpp/OPSqlite.hpp +++ b/cpp/OPSqlite.hpp @@ -11,8 +11,7 @@ namespace react = facebook::react; void install(jsi::Runtime &rt, const std::shared_ptr &invoker, - const char *base_path, const char *crsqlite_path, - const char *sqlite_vec_path); + const char *base_path, const char *sqlite_vec_path); void invalidate(); void expoUpdatesWorkaround(const char *base_path); diff --git a/cpp/OPThreadPool.hpp b/cpp/OPThreadPool.hpp index 9405681d..42848d76 100644 --- a/cpp/OPThreadPool.hpp +++ b/cpp/OPThreadPool.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include diff --git a/cpp/bridge.cpp b/cpp/bridge.cpp index 0f6debc6..0c67b488 100644 --- a/cpp/bridge.cpp +++ b/cpp/bridge.cpp @@ -132,17 +132,6 @@ sqlite3 *opsqlite_open(std::string const &name, std::string const &path, sqlite3_enable_load_extension(db, 1); #endif -#ifdef OP_SQLITE_USE_CRSQLITE - const char *crsqliteEntryPoint = "sqlite3_crsqlite_init"; - - sqlite3_load_extension(db, _crsqlite_path.c_str(), crsqliteEntryPoint, - &errMsg); - - if (errMsg != nullptr) { - throw std::runtime_error(errMsg); - } -#endif - #ifdef OP_SQLITE_USE_SQLITE_VEC const char *vec_entry_point = "sqlite3_vec_init"; @@ -172,10 +161,6 @@ void create_dirs_if_needed(const std::string &path) { } void opsqlite_close(sqlite3 *db) { -#ifdef OP_SQLITE_USE_CRSQLITE - opsqlite_execute(db, "select crsql_finalize();", nullptr); -#endif - sqlite3_close_v2(db); } diff --git a/cpp/bridge.hpp b/cpp/bridge.hpp index ad226f84..a4b9231b 100644 --- a/cpp/bridge.hpp +++ b/cpp/bridge.hpp @@ -22,10 +22,9 @@ typedef std::function CommitCallback; typedef std::function RollbackCallback; -// Paths to the optional loadable extensions, set once in install() and +// Path to the optional loadable extension, set once in install() and // shared by every subsequent open() call instead of being threaded through -// as parameters. -extern std::string _crsqlite_path; +// as a parameter. extern std::string _sqlite_vec_path; std::string opsqlite_get_db_path(std::string const &db_name, 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/docs/docs/api.md b/docs/docs/api.md index 6a0e4c39..8242db29 100644 --- a/docs/docs/api.md +++ b/docs/docs/api.md @@ -492,13 +492,13 @@ Loading runtime extensions is supported. You need compile your extension to the /main /jniLibs /arm64-v8a - libcrsqlite.so + libmyextension.so /armeabi-v7a - libcrsqlite.so + libmyextension.so /x86 - libcrsqlite.so + libmyextension.so /x86_64 - libcrsqlite.so + libmyextension.so ``` ### iOS @@ -514,9 +514,9 @@ Loading runtime extensions is supported. You need compile your extension to the import {open, getDylibPath} from '@op-sqlite/op-engineering'; const db = open(...); - let path = "libcrsqlite" // in Android it will be the name of the .so + let path = "libmyextension" // in Android it will be the name of the .so if (Platform.os == "ios") { - path = getDylibPath("io.vlcn.crsqlite", "crsqlite"); // You need to get the bundle name from the .framework/plist.info inside of the .xcframework you created and then the canonical name inside the same plist + path = getDylibPath("com.example.myextension", "myextension"); // You need to get the bundle name from the .framework/plist.info inside of the .xcframework you created and then the canonical name inside the same plist } // Extensions usually have a default entry point to be loaded, if the documentation says nothing, you should assume no entry point change db.loadExtension(path); diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index a0e9e8bb..eac4d9cc 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -4,6 +4,10 @@ sidebar_position: 11 # API Changes +## 18.0.0 + +- **Breaking:** Removed `crsqlite` support entirely. The `crsqlite` key in the `op-sqlite` `package.json` config no longer has any effect, and the bundled `cr-sqlite` extension binaries have been removed from the package (iOS `crsqlite.xcframework`, Android `libcrsqlite` `.so`s). If you need CR-SQLite, load it yourself as a runtime extension via `loadExtension` — see [Loading Extensions](./api.md#loading-extensions). + ## 17.2.0 - Added `failOnCreate` option to `open()`. When set to `true`, the database file must already exist; if it doesn't, `open()` throws instead of creating it. Implemented natively across all backends (plain SQLite3, SQLCipher, libsql and Turso). See the [Open Existing Only (failOnCreate)](./api.md#open-existing-only-failoncreate) section for usage. diff --git a/docs/docs/installation.md b/docs/docs/installation.md index 6710cb41..3ec9cb8e 100644 --- a/docs/docs/installation.md +++ b/docs/docs/installation.md @@ -60,7 +60,6 @@ SQLite is very customizable on compilation level. op-sqlite also allows you add // All the keys are optional, see the usage below "op-sqlite": { "sqlcipher": false - // "crsqlite": false, // "performanceMode": true, // "iosSqlite": false, // "sqliteFlags": "-DSQLITE_DQS=0 -DSQLITE_MY_FLAG=1", @@ -77,7 +76,6 @@ SQLite is very customizable on compilation level. op-sqlite also allows you add All keys are optional, only turn on the features you want: - `sqlcipher` allows to change the base sqlite implementation to [sqlcipher](https://www.zetetic.net/sqlcipher/), which encrypts all the database data with minimal overhead. You will still need to keep your encryption key secure. Read more about security in React Native [here](https://ospfranco.com/react-native-security-guide/). -- `crsqlite` is an extension that allows replication to a server backed sqlite database copy. [Repo here](https://github.com/vlcn-io/cr-sqlite). - `performanceMode` turns on certain compilation flags that make sqlite speedier at the cost of disabling some features. You should almost always turn this on, but test your app thoroughly. - `iosSqlite` uses the embedded iOS version from sqlite, which saves disk space but may use an older version and cannot load extensions as Apple disables it due to security concerns. On Android SQLite is always compiled from source as each vendor messes with sqlite or uses outdated versions. - `sqliteFlags` allows you to pass your own compilation flags to further disable/enable features and extensions. It follows the C flag format: `-D[YOUR_FLAG]=[YOUR_VALUE]`. If you are running large queries on large databases sometimes on Android devices you might get a IO exception. You can disable temporary files by using adding the `"-DSQLITE_TEMP_STORE=2"` flag. Flags listed here are applied AFTER the library defaults (including those added by `performanceMode`), so they override any default with the same name on both iOS and Android. For example, setting `"sqliteFlags": "-DSQLITE_DQS=3"` re-enables double-quoted string literals even when `performanceMode` is on. 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 b0670900..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: 2863e0409a4782b557388b6893c34ebe5068e889 - 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 623c19af..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", @@ -60,7 +60,6 @@ "iosSqlite": false, "fts5": true, "rtree": true, - "crsqlite": false, "sqliteVec": false, "performanceMode": true, "tokenizers": [ 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 e4e65e0e..c46b6a13 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 + @implementation OPSQLite @synthesize bridge = _bridge; @@ -33,12 +43,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; } @@ -72,17 +98,6 @@ - (NSDictionary *)getConstants { documentPath = [paths objectAtIndex:0]; } -#ifdef OP_SQLITE_USE_CRSQLITE - NSString *crsqlite_bundle_path = - [[[NSBundle mainBundle] privateFrameworksPath] - stringByAppendingPathComponent:@"crsqlite.framework"]; - NSBundle *crsqlite_bundle = [NSBundle bundleWithPath:crsqlite_bundle_path]; - NSString *crsqlite_path = [crsqlite_bundle pathForResource:@"crsqlite" - ofType:@""]; -#else - NSString *crsqlite_path = @""; -#endif - #ifdef OP_SQLITE_USE_SQLITE_VEC NSString *sqlitevec_bundle_path = [[[NSBundle mainBundle] privateFrameworksPath] @@ -96,7 +111,7 @@ - (NSDictionary *)getConstants { #endif opsqlite::install(runtime, callInvoker, [documentPath UTF8String], - [crsqlite_path UTF8String], [sqlite_vec_path UTF8String]); + [sqlite_vec_path UTF8String]); return @true; } diff --git a/ios/crsqlite.xcframework/Info.plist b/ios/crsqlite.xcframework/Info.plist deleted file mode 100644 index 6947e0d6..00000000 --- a/ios/crsqlite.xcframework/Info.plist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - AvailableLibraries - - - LibraryIdentifier - ios-arm64 - LibraryPath - crsqlite.framework - SupportedArchitectures - - arm64 - - SupportedPlatform - ios - - - LibraryIdentifier - ios-arm64_x86_64-simulator - LibraryPath - crsqlite.framework - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - ios - SupportedPlatformVariant - simulator - - - CFBundlePackageType - XFWK - XCFrameworkFormatVersion - 1.0 - CFBundleVersion - 1.0.0 - CFBundleShortVersionString - 1.0.0 - MinimumOSVersion - 8.0 - - diff --git a/ios/crsqlite.xcframework/ios-arm64/crsqlite.framework/Info.plist b/ios/crsqlite.xcframework/ios-arm64/crsqlite.framework/Info.plist deleted file mode 100644 index 3deb06e6..00000000 --- a/ios/crsqlite.xcframework/ios-arm64/crsqlite.framework/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - crsqlite - CFBundleIdentifier - io.vlcn.crsqlite - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1.0.0 - CFBundleShortVersionString - 1.0.0 - MinimumOSVersion - 8.0 - - diff --git a/ios/crsqlite.xcframework/ios-arm64/crsqlite.framework/crsqlite b/ios/crsqlite.xcframework/ios-arm64/crsqlite.framework/crsqlite deleted file mode 100755 index e2ed0a40..00000000 Binary files a/ios/crsqlite.xcframework/ios-arm64/crsqlite.framework/crsqlite and /dev/null differ diff --git a/ios/crsqlite.xcframework/ios-arm64_x86_64-simulator/crsqlite.framework/Info.plist b/ios/crsqlite.xcframework/ios-arm64_x86_64-simulator/crsqlite.framework/Info.plist deleted file mode 100644 index 3deb06e6..00000000 --- a/ios/crsqlite.xcframework/ios-arm64_x86_64-simulator/crsqlite.framework/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - crsqlite - CFBundleIdentifier - io.vlcn.crsqlite - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1.0.0 - CFBundleShortVersionString - 1.0.0 - MinimumOSVersion - 8.0 - - diff --git a/ios/crsqlite.xcframework/ios-arm64_x86_64-simulator/crsqlite.framework/crsqlite b/ios/crsqlite.xcframework/ios-arm64_x86_64-simulator/crsqlite.framework/crsqlite deleted file mode 100755 index dfe145da..00000000 Binary files a/ios/crsqlite.xcframework/ios-arm64_x86_64-simulator/crsqlite.framework/crsqlite and /dev/null differ 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 c53b4a8b..1f03a579 100644 --- a/op-sqlite.podspec +++ b/op-sqlite.podspec @@ -40,7 +40,6 @@ app_package = JSON.parse(File.read(package_json_path)) op_sqlite_config = app_package["op-sqlite"] use_sqlcipher = false -use_crsqlite = false use_libsql = false use_turso = false performance_mode = false @@ -53,7 +52,6 @@ tokenizers = [] if(op_sqlite_config != nil) use_sqlcipher = op_sqlite_config["sqlcipher"] == true - use_crsqlite = op_sqlite_config["crsqlite"] == true use_libsql = op_sqlite_config["libsql"] == true use_turso = op_sqlite_config["turso"] == true performance_mode = op_sqlite_config["performanceMode"] || false @@ -70,10 +68,6 @@ if phone_version then raise "SQLCipher is not supported with phone version. It cannot load extensions." end - if use_crsqlite then - raise "CRSQLite is not supported with phone version. It cannot load extensions." - end - if rtree then raise "RTree is not supported with phone version. It cannot load extensions." end @@ -87,10 +81,6 @@ if use_libsql and use_sqlite_vec then raise "You cannot use sqlite-vec with libsql. libsql already has vector search included." end -if use_libsql and use_crsqlite then - raise "You cannot use crsqlite with libsql." -end - if use_turso and use_sqlite_vec then raise "You cannot use sqlite-vec with turso backend." end @@ -118,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"] @@ -169,10 +159,6 @@ Pod::Spec.new do |s| end # Exclude xcframeworks that aren't being used - if !use_crsqlite then - exclude_files += ["ios/crsqlite.xcframework/**/*"] - end - if !use_sqlite_vec then exclude_files += ["ios/sqlitevec.xcframework/**/*"] end @@ -201,12 +187,6 @@ Pod::Spec.new do |s| other_cflags += optimizedCflags end - if use_crsqlite then - log_message.call("[OP-SQLITE] using CRQSQLite 🤖") - xcconfig[:GCC_PREPROCESSOR_DEFINITIONS] += " OP_SQLITE_USE_CRSQLITE=1" - frameworks.push("ios/crsqlite.xcframework") - end - if use_sqlite_vec then log_message.call("[OP-SQLITE] using Sqlite Vec ↗️") xcconfig[:GCC_PREPROCESSOR_DEFINITIONS] += " OP_SQLITE_USE_SQLITE_VEC=1" 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/scripts/turnOffEverything.js b/scripts/turnOffEverything.js index 7a966e98..e3159700 100644 --- a/scripts/turnOffEverything.js +++ b/scripts/turnOffEverything.js @@ -12,7 +12,6 @@ packageJson['op-sqlite']['sqlcipher'] = false; packageJson['op-sqlite']['iosSqlite'] = false; packageJson['op-sqlite']['fts5'] = true; packageJson['op-sqlite']['rtree'] = true; -packageJson['op-sqlite']['crsqlite'] = false; packageJson['op-sqlite']['sqliteVec'] = false; packageJson['op-sqlite']['tokenizers'] = ["wordtokenizer", "porter"]; diff --git a/scripts/turnOnIOSEmbedded.js b/scripts/turnOnIOSEmbedded.js index eb78b8fc..0c6af9b8 100644 --- a/scripts/turnOnIOSEmbedded.js +++ b/scripts/turnOnIOSEmbedded.js @@ -6,7 +6,6 @@ const packageJson = JSON.parse(fs.readFileSync('./example/package.json')); // Modify the op-sqlite.sqlcipher key to true packageJson['op-sqlite']['iosSqlite'] = true; packageJson['op-sqlite']['sqlcipher'] = false; -packageJson['op-sqlite']['crsqlite'] = false; packageJson['op-sqlite']['libsql'] = false; packageJson['op-sqlite']['turso'] = false; packageJson['op-sqlite']['sqliteVec'] = false; 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: