diff --git a/.gitignore b/.gitignore index eb3e68678d..2f455f2cca 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,4 @@ integration-tests/tests/dist/ /react-native/android/src/main/jniLibs/ /realm*.tgz /tests/js/realm-tests*.tgz +/react-native/ios/realm-js-ios.xcframework/ diff --git a/CHANGELOG.md b/CHANGELOG.md index d14c977e19..e688eee20e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ NOTE: Bump file format version to 21. NO DOWNGRADE PATH IS AVAILABLE. ### Internal * Bump the Realm Sync protocol version to 3. * Bump Realm File Format version to 21. +* Prebuild the React Native iOS variant and bundle it in the npm tarball. ([#3649](https://github.com/realm/realm-js/pull/3649)) 10.2.0 Release notes (2021-2-5) ============================================================= diff --git a/Jenkinsfile b/Jenkinsfile index 16e8ed0203..1aa0980c3c 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -118,6 +118,7 @@ stage('build') { parallelExecutors["Windows x64 NAPI ${nodeTestVersion}"] = buildWindows(nodeTestVersion, 'x64') parallelExecutors["Android RN"] = buildAndroid() + parallelExecutors["iOS RN"] = buildiOS() parallel parallelExecutors } @@ -139,8 +140,8 @@ stage('test') { parallelExecutors["Windows node ${nodeTestVersion}"] = testWindows(nodeTestVersion) parallelExecutors["React Native Android Release"] = inAndroidContainer { testAndroid('test-android') } - // parallelExecutors["React Native iOS Release"] = testMacOS('react-tests Release') - // parallelExecutors["React Native iOS Example Release"] = testMacOS('react-example Release') + parallelExecutors["React Native iOS Release"] = testMacOS('react-tests Release') + parallelExecutors["React Native iOS Example Release"] = testMacOS('react-example Release') parallelExecutors["macOS Electron Debug"] = testMacOS('electron Debug') parallelExecutors["macOS Electron Release"] = testMacOS('electron Release') @@ -170,9 +171,7 @@ stage('integration tests') { 'Electron on Linux': buildLinux { electronIntegrationTests(electronTestVersion, it) }, 'React Native on Android': inAndroidContainer { reactNativeIntegrationTests('android') }, - - //TODO: uncomment when RN iOS build with cmake is ready - // 'React Native on iOS': buildMacOS { reactNativeIntegrationTests('ios') }, + 'React Native on iOS': buildMacOS { reactNativeIntegrationTests('ios') }, ) } @@ -254,15 +253,22 @@ def reactNativeIntegrationTests(targetPlatform) { nvm = "${env.WORKSPACE}/scripts/nvm-wrapper.sh ${nodeVersion}" } - dir('integration-tests') { - if (targetPlatform == "android") { - unstash 'android-package' - } else { - // Pack up Realm JS into a .tar - sh "${nvm} npm pack .." + if (targetPlatform == "android") { + dir('react-native/android/src/main') { + unstash 'android-jnilibs' } + } else { + dir('react-native/ios') { + unstash 'realm-js-ios.xcframework' + } + } + + // Pack up Realm JS into a .tar + sh "${nvm} npm pack" + + dir('integration-tests') { // Renaming the package to avoid having to specify version in the apps package.json - sh 'mv realm-*.tgz realm.tgz' + sh 'mv ../realm-*.tgz realm.tgz' // Unstash the integration tests package unstash 'integration-tests-tgz' } @@ -386,6 +392,17 @@ def buildWindows(nodeVersion, arch) { } } +def buildiOS() { + return buildMacOS { + sh './scripts/build-iOS.sh -c Release' + dir('react-native/ios') { + // Uncomment this when testing build changes if you want to be able to download pre-built artifacts from Jenkins. + // archiveArtifacts('realm-js-ios.xcframework/**') + stash includes: 'realm-js-ios.xcframework/**', name: 'realm-js-ios.xcframework' + } + } +} + def inAndroidContainer(workerFunction) { return { myNode('docker-cph-03') { @@ -423,8 +440,11 @@ def buildAndroid() { // Using --ignore-scripts to skip building for node sh "./scripts/nvm-wrapper.sh ${nodeTestVersion} npm ci --ignore-scripts" sh "./scripts/nvm-wrapper.sh ${nodeTestVersion} node scripts/build-android.js" - sh "./scripts/nvm-wrapper.sh ${nodeTestVersion} npm pack ." - stash includes: 'realm-*.*.*.tgz', name: 'android-package' + } + dir('react-native/android/src/main') { + // Uncomment this when testing build changes if you want to be able to download pre-built artifacts from Jenkins. + // archiveArtifacts('jniLibs/**') + stash includes: 'jniLibs/**', name: 'android-jnilibs' } } } diff --git a/Realm.xcworkspace/contents.xcworkspacedata b/Realm.xcworkspace/contents.xcworkspacedata index 65758602a5..50d35078a8 100644 --- a/Realm.xcworkspace/contents.xcworkspacedata +++ b/Realm.xcworkspace/contents.xcworkspacedata @@ -1,9 +1,6 @@ - - diff --git a/RealmJS.podspec b/RealmJS.podspec index 54cacad9ce..00470a8f03 100644 --- a/RealmJS.podspec +++ b/RealmJS.podspec @@ -41,67 +41,29 @@ Pod::Spec.new do |s| # @see https://github.com/react-native-community/cli/blob/master/docs/autolinking.md#platform-ios s.source = { :http => 'https://github.com/realm/realm-js/blob/master/CONTRIBUTING.md#how-to-debug-react-native-podspec' } - # We run the download-realm.js script both: - # 1) As "prepare_command" (executed when running `pod install`), to have the files available when to modify the XCode project correctly. - # 2) As "script_phase" (executed by XCode when building), to allow developers to commit their `ios/Pods` directory to their repository (and not run `pod install` after cloning it). - # Note: It leaves a lock file, ensuring it will only download the archive once. - s.prepare_command = './scripts/xcode-download-realm.sh ./scripts' - s.script_phase = { :name => 'Download Realm Core & Sync', - :script => '${PODS_TARGET_SRCROOT}/scripts/xcode-download-realm.sh ${PODS_TARGET_SRCROOT}/scripts', - :execution_position => :before_compile } - - s.source_files = 'src/*.cpp', - 'src/jsc/*.cpp', - 'src/ios/*.mm', - 'src/object-store/src/*.cpp', - 'src/object-store/src/sync/*.cpp', - 'src/object-store/src/sync/impl/*.cpp', - 'src/object-store/src/sync/impl/apple/*.cpp', - 'src/object-store/src/impl/*.cpp', - 'src/object-store/src/impl/apple/*.cpp', - 'src/object-store/src/util/*.cpp', - 'src/object-store/src/util/apple/*.cpp', - 'src/object-store/src/util/bson/*.cpp', - 'react-native/ios/RealmReact/*.mm', - 'vendor/*.cpp' + s.source_files = 'react-native/ios/RealmReact/*.mm' s.frameworks = uses_frameworks ? ['JavaScriptCore', 'React'] : ['JavaScriptCore'] s.library = 'c++', 'z' - s.compiler_flags = '-DREALM_HAVE_CONFIG -DREALM_ENABLE_SYNC' - s.pod_target_xcconfig = { # Ensures ccache is used if installed on the users machine - 'CC' => '$(PODS_TARGET_SRCROOT)/scripts/ccache-clang.sh', - 'CXX' => '$(PODS_TARGET_SRCROOT)/scripts/ccache-clang++.sh', - # Setting up clang - 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17', - 'CLANG_CXX_LIBRARY' => 'libc++', - # Disabling warnings that object store, core and sync has a lot of - 'CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF' => 'NO', - 'CLANG_WARN_DOCUMENTATION_COMMENTS' => 'NO', - # Setting the current project version and versioning system to get a symbol for analytics - 'CURRENT_PROJECT_VERSION' => s.version, - 'VERSIONING_SYSTEM' => 'apple-generic', - # Disable C++17 features for unsupported platforms - 'OTHER_CPLUSPLUSFLAGS[arch=armv7]' => '-fno-aligned-new', - # Header search paths are prefixes to the path specified in #include macros - 'HEADER_SEARCH_PATHS' => [ - '"$(PODS_TARGET_SRCROOT)/src/"', - '"$(PODS_TARGET_SRCROOT)/src/jsc/"', - '"$(PODS_TARGET_SRCROOT)/src/object-store/src/"', - '"$(PODS_TARGET_SRCROOT)/src/object-store/external/json/"', - '"$(PODS_TARGET_SRCROOT)/vendor/"', - '"$(PODS_TARGET_SRCROOT)/vendor/realm-ios/include/"', - '"$(PODS_TARGET_SRCROOT)/vendor/realm-ios/include/realm/"', - '"$(PODS_TARGET_SRCROOT)/react-native/ios/RealmReact/"', - '"$(PODS_ROOT)/Headers/Public/React-Core/"' - # "'#{app_path}/ios/Pods/Headers/Public/React-Core'" # Use this line instead of 👆 while linting - ].join(' ') - } + + s.pod_target_xcconfig = { + # Setting up clang + 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17', + 'CLANG_CXX_LIBRARY' => 'libc++', + # Setting the current project version and versioning system to get a symbol for analytics + 'CURRENT_PROJECT_VERSION' => s.version, + 'VERSIONING_SYSTEM' => 'apple-generic', + # Header search paths are prefixes to the path specified in #include macros + 'HEADER_SEARCH_PATHS' => [ + '"$(PODS_TARGET_SRCROOT)/react-native/ios/RealmReact/"', + '"$(PODS_ROOT)/Headers/Public/React-Core/"' + #"'#{app_path}/ios/Pods/Headers/Public/React-Core'" # Use this line instead of 👆 while linting + ].join(' ') + } # TODO: Consider providing an option to build with the -dbg binaries instead - s.ios.vendored_libraries = 'vendor/realm-ios/librealm-sync-ios.a', 'vendor/realm-ios/librealm-parser-ios.a' - # s.watchos.vendored_libraries = 'vendor/realm-ios/librealm-sync-watchos.a', 'vendor/realm-ios/librealm-parser-watchos.a' - # s.tvos.vendored_libraries = 'vendor/realm-ios/librealm-sync-tvos.a', 'vendor/realm-ios/librealm-parser-tvos.a' + s.ios.vendored_frameworks = 'react-native/ios/realm-js-ios.xcframework' s.dependency 'React' # TODO: Ensure the same version of GCDWebServer is used for Android diff --git a/cmake/ios.toolchain.cmake b/cmake/ios.toolchain.cmake new file mode 100644 index 0000000000..ac9be885fb --- /dev/null +++ b/cmake/ios.toolchain.cmake @@ -0,0 +1,5 @@ +include("${CMAKE_CURRENT_LIST_DIR}/../vendor/realm-core/tools/cmake/ios.toolchain.cmake") + +set(CMAKE_SYSTEM_NAME iOS) +set(CMAKE_C_VISIBILITY_PRESET hidden) +set(CMAKE_CXX_VISIBILITY_PRESET hidden) diff --git a/examples/ReactExample/ios/ReactExample.xcodeproj/project.pbxproj b/examples/ReactExample/ios/ReactExample.xcodeproj/project.pbxproj index f6fe62043d..dacbbfc11f 100644 --- a/examples/ReactExample/ios/ReactExample.xcodeproj/project.pbxproj +++ b/examples/ReactExample/ios/ReactExample.xcodeproj/project.pbxproj @@ -42,6 +42,13 @@ remoteGlobalIDString = F60690131CA2766F0003FB26; remoteInfo = RealmReact; }; + 85B3590C25FF85EE003A02D4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 73AD103601A44EB291AC2117 /* RealmReact.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 85B358BB25FF8070003A02D4; + remoteInfo = GCDWebServer; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -194,6 +201,7 @@ isa = PBXGroup; children = ( 859609611E23C0AB009C7E43 /* libRealmReact.a */, + 85B3590D25FF85EE003A02D4 /* libGCDWebServer.a */, ); name = Products; sourceTree = ""; @@ -289,6 +297,13 @@ remoteRef = 859609601E23C0AB009C7E43 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 85B3590D25FF85EE003A02D4 /* libGCDWebServer.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libGCDWebServer.a; + remoteRef = 85B3590C25FF85EE003A02D4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ diff --git a/examples/ReactExample/package-lock.json b/examples/ReactExample/package-lock.json index ea3dc37e00..416ecdee34 100644 --- a/examples/ReactExample/package-lock.json +++ b/examples/ReactExample/package-lock.json @@ -2642,21 +2642,26 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "optional": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "optional": true, "requires": { "delegates": "^1.0.0", @@ -2665,11 +2670,15 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "optional": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2677,29 +2686,38 @@ }, "chownr": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "optional": true }, "debug": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "optional": true, "requires": { "ms": "^2.1.1" @@ -2707,22 +2725,26 @@ }, "deep-extend": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -2730,12 +2752,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "^1.0.3", @@ -2750,7 +2774,8 @@ }, "glob": { "version": "7.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -2763,12 +2788,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "iconv-lite": { "version": "0.4.24", - "bundled": true, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -2776,7 +2803,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { "minimatch": "^3.0.4" @@ -2784,7 +2812,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { "once": "^1.3.0", @@ -2793,39 +2822,51 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "optional": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "optional": true, "requires": { "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "optional": true }, "minipass": { "version": "2.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2833,7 +2874,8 @@ }, "minizlib": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -2841,19 +2883,23 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "optional": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "optional": true }, "needle": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.0.tgz", + "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "optional": true, "requires": { "debug": "^4.1.0", @@ -2863,7 +2909,8 @@ }, "node-pre-gyp": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz", + "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -2880,7 +2927,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1", @@ -2889,12 +2937,14 @@ }, "npm-bundled": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "optional": true }, "npm-packlist": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz", + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -2903,7 +2953,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -2914,33 +2965,41 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "optional": true, "requires": { "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -2949,17 +3008,20 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "optional": true }, "rc": { "version": "1.2.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "optional": true, "requires": { "deep-extend": "^0.6.0", @@ -2970,14 +3032,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -2991,7 +3055,8 @@ }, "rimraf": { "version": "2.6.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "optional": true, "requires": { "glob": "^7.1.3" @@ -2999,36 +3064,45 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "optional": true }, "semver": { "version": "5.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3037,7 +3111,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -3045,19 +3120,23 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, "requires": { "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "4.4.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "optional": true, "requires": { "chownr": "^1.1.1", @@ -3071,12 +3150,14 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "optional": true }, "wide-align": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "optional": true, "requires": { "string-width": "^1.0.2 || 2" @@ -3084,11 +3165,15 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "optional": true } } }, @@ -3173,9 +3258,9 @@ "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, "growly": { "version": "1.3.0", @@ -5254,6 +5339,13 @@ "hoist-non-react-statics": "^2.3.1" } }, + "react-native-tab-view": { + "version": "github:react-navigation/react-native-tab-view#d87a5cb3ddbcb9e5ea1651450f6c12a7f41355df", + "from": "github:react-navigation/react-native-tab-view", + "requires": { + "prop-types": "^15.6.0" + } + }, "react-navigation": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-1.6.1.tgz", @@ -5266,16 +5358,7 @@ "react-lifecycles-compat": "^3.0.2", "react-native-drawer-layout-polyfill": "^1.3.2", "react-native-safe-area-view": "0.11.0", - "react-native-tab-view": "github:react-navigation/react-native-tab-view#36ebd834d78b841fc19778c966465d02fd1213bb" - }, - "dependencies": { - "react-native-tab-view": { - "version": "github:react-navigation/react-native-tab-view#36ebd834d78b841fc19778c966465d02fd1213bb", - "from": "github:react-navigation/react-native-tab-view#36ebd834d78b841fc19778c966465d02fd1213bb", - "requires": { - "prop-types": "^15.6.0" - } - } + "react-native-tab-view": "github:react-navigation/react-native-tab-view" } }, "react-proxy": { diff --git a/examples/ReactExample/package.json b/examples/ReactExample/package.json index d062f0ef0c..02a02fca50 100644 --- a/examples/ReactExample/package.json +++ b/examples/ReactExample/package.json @@ -21,6 +21,7 @@ "devDependencies": { "eslint": "^4.18.2", "fs-extra": "^4.0.3", + "graceful-fs": "^4.2.6", "install-local": "^1.0.0", "invariant": "^2.2.2", "metro-react-native-babel-preset": "^0.45.0" diff --git a/react-native/ios/.gitignore b/react-native/ios/.gitignore index 4f14f30a13..55eee6b6a1 100644 --- a/react-native/ios/.gitignore +++ b/react-native/ios/.gitignore @@ -1,2 +1,4 @@ Pods RealmReact.xcworkspace + +build diff --git a/react-native/ios/RealmReact.xcodeproj/project.pbxproj b/react-native/ios/RealmReact.xcodeproj/project.pbxproj index b94778a235..c2408e9cfc 100644 --- a/react-native/ios/RealmReact.xcodeproj/project.pbxproj +++ b/react-native/ios/RealmReact.xcodeproj/project.pbxproj @@ -3,55 +3,40 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ - 85CA5FE61F1536720038172D /* libRealmJS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F606902F1CA277CD0003FB26 /* libRealmJS.a */; }; + 85B3572725FEB5B9003A02D4 /* realm-js-ios.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85B3572625FEB5B9003A02D4 /* realm-js-ios.xcframework */; }; + 85B358EA25FF80CF003A02D4 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358CE25FF80CF003A02D4 /* GCDWebServerResponse.m */; }; + 85B358EB25FF80CF003A02D4 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358D125FF80CF003A02D4 /* GCDWebServerRequest.m */; }; + 85B358EC25FF80CF003A02D4 /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358D425FF80CF003A02D4 /* GCDWebServerFunctions.m */; }; + 85B358ED25FF80CF003A02D4 /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358D525FF80CF003A02D4 /* GCDWebServer.m */; }; + 85B358EE25FF80CF003A02D4 /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358D625FF80CF003A02D4 /* GCDWebServerConnection.m */; }; + 85B358EF25FF80CF003A02D4 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358DB25FF80CF003A02D4 /* GCDWebServerErrorResponse.m */; }; + 85B358F025FF80CF003A02D4 /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358DD25FF80CF003A02D4 /* GCDWebServerFileResponse.m */; }; + 85B358F125FF80CF003A02D4 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358DE25FF80CF003A02D4 /* GCDWebServerDataResponse.m */; }; + 85B358F225FF80CF003A02D4 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358E025FF80CF003A02D4 /* GCDWebServerStreamedResponse.m */; }; + 85B358F325FF80CF003A02D4 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358E525FF80CF003A02D4 /* GCDWebServerURLEncodedFormRequest.m */; }; + 85B358F425FF80CF003A02D4 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358E625FF80CF003A02D4 /* GCDWebServerMultiPartFormRequest.m */; }; + 85B358F525FF80CF003A02D4 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358E725FF80CF003A02D4 /* GCDWebServerDataRequest.m */; }; + 85B358F625FF80CF003A02D4 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B358E825FF80CF003A02D4 /* GCDWebServerFileRequest.m */; }; + 85B358F925FF80DB003A02D4 /* libGCDWebServer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 85B358BB25FF8070003A02D4 /* libGCDWebServer.a */; }; F60690171CA2766F0003FB26 /* RealmReact.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = F60690161CA2766F0003FB26 /* RealmReact.h */; }; F60690191CA2766F0003FB26 /* RealmReact.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60690181CA2766F0003FB26 /* RealmReact.mm */; }; F60690211CA277410003FB26 /* RealmAnalytics.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60690201CA277410003FB26 /* RealmAnalytics.mm */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - F606902E1CA277CD0003FB26 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = F63FF2B11C1241E500B3B8E0; - remoteInfo = "RealmJS static"; - }; - F60690321CA277CD0003FB26 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 02B58CBC1AE99CEC009B348C; - remoteInfo = RealmJSTests; - }; - F60690381CA278E10003FB26 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = F63FF2B01C1241E500B3B8E0; - remoteInfo = "RealmJS static"; - }; - F606903A1CA278F10003FB26 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = F63FF2EF1C16405C00B3B8E0; - remoteInfo = GCDWebServers; - }; - F68759FA1D21949A007471AB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = F63FF2F01C16405C00B3B8E0; - remoteInfo = GCDWebServers; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXCopyFilesBuildPhase section */ + 85B358B925FF8070003A02D4 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; F60690111CA2766F0003FB26 /* Copy Headers */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -67,32 +52,140 @@ /* Begin PBXFileReference section */ 3F8D968A220CE21400327C8C /* RealmReact.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = RealmReact.xcconfig; sourceTree = ""; }; + 85B3572625FEB5B9003A02D4 /* realm-js-ios.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = "realm-js-ios.xcframework"; sourceTree = ""; }; + 85B358BB25FF8070003A02D4 /* libGCDWebServer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libGCDWebServer.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 85B358CC25FF80CF003A02D4 /* GCDWebServerFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFunctions.h; sourceTree = ""; }; + 85B358CD25FF80CF003A02D4 /* GCDWebServerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerPrivate.h; sourceTree = ""; }; + 85B358CE25FF80CF003A02D4 /* GCDWebServerResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerResponse.m; sourceTree = ""; }; + 85B358CF25FF80CF003A02D4 /* GCDWebServerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerConnection.h; sourceTree = ""; }; + 85B358D025FF80CF003A02D4 /* GCDWebServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServer.h; sourceTree = ""; }; + 85B358D125FF80CF003A02D4 /* GCDWebServerRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerRequest.m; sourceTree = ""; }; + 85B358D225FF80CF003A02D4 /* GCDWebServerHTTPStatusCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerHTTPStatusCodes.h; sourceTree = ""; }; + 85B358D325FF80CF003A02D4 /* GCDWebServerResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerResponse.h; sourceTree = ""; }; + 85B358D425FF80CF003A02D4 /* GCDWebServerFunctions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFunctions.m; sourceTree = ""; }; + 85B358D525FF80CF003A02D4 /* GCDWebServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServer.m; sourceTree = ""; }; + 85B358D625FF80CF003A02D4 /* GCDWebServerConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerConnection.m; sourceTree = ""; }; + 85B358D725FF80CF003A02D4 /* GCDWebServerRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerRequest.h; sourceTree = ""; }; + 85B358D925FF80CF003A02D4 /* GCDWebServerFileResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFileResponse.h; sourceTree = ""; }; + 85B358DA25FF80CF003A02D4 /* GCDWebServerStreamedResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerStreamedResponse.h; sourceTree = ""; }; + 85B358DB25FF80CF003A02D4 /* GCDWebServerErrorResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerErrorResponse.m; sourceTree = ""; }; + 85B358DC25FF80CF003A02D4 /* GCDWebServerDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerDataResponse.h; sourceTree = ""; }; + 85B358DD25FF80CF003A02D4 /* GCDWebServerFileResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFileResponse.m; sourceTree = ""; }; + 85B358DE25FF80CF003A02D4 /* GCDWebServerDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerDataResponse.m; sourceTree = ""; }; + 85B358DF25FF80CF003A02D4 /* GCDWebServerErrorResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerErrorResponse.h; sourceTree = ""; }; + 85B358E025FF80CF003A02D4 /* GCDWebServerStreamedResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerStreamedResponse.m; sourceTree = ""; }; + 85B358E225FF80CF003A02D4 /* GCDWebServerDataRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerDataRequest.h; sourceTree = ""; }; + 85B358E325FF80CF003A02D4 /* GCDWebServerMultiPartFormRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerMultiPartFormRequest.h; sourceTree = ""; }; + 85B358E425FF80CF003A02D4 /* GCDWebServerFileRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFileRequest.h; sourceTree = ""; }; + 85B358E525FF80CF003A02D4 /* GCDWebServerURLEncodedFormRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerURLEncodedFormRequest.m; sourceTree = ""; }; + 85B358E625FF80CF003A02D4 /* GCDWebServerMultiPartFormRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerMultiPartFormRequest.m; sourceTree = ""; }; + 85B358E725FF80CF003A02D4 /* GCDWebServerDataRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerDataRequest.m; sourceTree = ""; }; + 85B358E825FF80CF003A02D4 /* GCDWebServerFileRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFileRequest.m; sourceTree = ""; }; + 85B358E925FF80CF003A02D4 /* GCDWebServerURLEncodedFormRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerURLEncodedFormRequest.h; sourceTree = ""; }; F60690131CA2766F0003FB26 /* libRealmReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRealmReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; F60690161CA2766F0003FB26 /* RealmReact.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RealmReact.h; sourceTree = ""; }; F60690181CA2766F0003FB26 /* RealmReact.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RealmReact.mm; sourceTree = ""; }; F606901F1CA277410003FB26 /* RealmAnalytics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealmAnalytics.h; sourceTree = ""; }; F60690201CA277410003FB26 /* RealmAnalytics.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RealmAnalytics.mm; sourceTree = ""; }; - F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RealmJS.xcodeproj; path = ../../src/RealmJS.xcodeproj; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 85B358B825FF8070003A02D4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 85CA5FE41F1536660038172D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 85CA5FE61F1536720038172D /* libRealmJS.a in Frameworks */, + 85B358F925FF80DB003A02D4 /* libGCDWebServer.a in Frameworks */, + 85B3572725FEB5B9003A02D4 /* realm-js-ios.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 85B3572525FEB5B8003A02D4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 85B3572625FEB5B9003A02D4 /* realm-js-ios.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 85B358BC25FF8070003A02D4 /* GCDWebServer */ = { + isa = PBXGroup; + children = ( + 85B358CB25FF80CF003A02D4 /* Core */, + 85B358E125FF80CF003A02D4 /* Requests */, + 85B358D825FF80CF003A02D4 /* Responses */, + ); + path = GCDWebServer; + sourceTree = ""; + }; + 85B358CB25FF80CF003A02D4 /* Core */ = { + isa = PBXGroup; + children = ( + 85B358CC25FF80CF003A02D4 /* GCDWebServerFunctions.h */, + 85B358CD25FF80CF003A02D4 /* GCDWebServerPrivate.h */, + 85B358CE25FF80CF003A02D4 /* GCDWebServerResponse.m */, + 85B358CF25FF80CF003A02D4 /* GCDWebServerConnection.h */, + 85B358D025FF80CF003A02D4 /* GCDWebServer.h */, + 85B358D125FF80CF003A02D4 /* GCDWebServerRequest.m */, + 85B358D225FF80CF003A02D4 /* GCDWebServerHTTPStatusCodes.h */, + 85B358D325FF80CF003A02D4 /* GCDWebServerResponse.h */, + 85B358D425FF80CF003A02D4 /* GCDWebServerFunctions.m */, + 85B358D525FF80CF003A02D4 /* GCDWebServer.m */, + 85B358D625FF80CF003A02D4 /* GCDWebServerConnection.m */, + 85B358D725FF80CF003A02D4 /* GCDWebServerRequest.h */, + ); + name = Core; + path = ../../../vendor/GCDWebServer/GCDWebServer/Core; + sourceTree = ""; + }; + 85B358D825FF80CF003A02D4 /* Responses */ = { + isa = PBXGroup; + children = ( + 85B358D925FF80CF003A02D4 /* GCDWebServerFileResponse.h */, + 85B358DA25FF80CF003A02D4 /* GCDWebServerStreamedResponse.h */, + 85B358DB25FF80CF003A02D4 /* GCDWebServerErrorResponse.m */, + 85B358DC25FF80CF003A02D4 /* GCDWebServerDataResponse.h */, + 85B358DD25FF80CF003A02D4 /* GCDWebServerFileResponse.m */, + 85B358DE25FF80CF003A02D4 /* GCDWebServerDataResponse.m */, + 85B358DF25FF80CF003A02D4 /* GCDWebServerErrorResponse.h */, + 85B358E025FF80CF003A02D4 /* GCDWebServerStreamedResponse.m */, + ); + name = Responses; + path = ../../../vendor/GCDWebServer/GCDWebServer/Responses; + sourceTree = ""; + }; + 85B358E125FF80CF003A02D4 /* Requests */ = { + isa = PBXGroup; + children = ( + 85B358E225FF80CF003A02D4 /* GCDWebServerDataRequest.h */, + 85B358E325FF80CF003A02D4 /* GCDWebServerMultiPartFormRequest.h */, + 85B358E425FF80CF003A02D4 /* GCDWebServerFileRequest.h */, + 85B358E525FF80CF003A02D4 /* GCDWebServerURLEncodedFormRequest.m */, + 85B358E625FF80CF003A02D4 /* GCDWebServerMultiPartFormRequest.m */, + 85B358E725FF80CF003A02D4 /* GCDWebServerDataRequest.m */, + 85B358E825FF80CF003A02D4 /* GCDWebServerFileRequest.m */, + 85B358E925FF80CF003A02D4 /* GCDWebServerURLEncodedFormRequest.h */, + ); + name = Requests; + path = ../../../vendor/GCDWebServer/GCDWebServer/Requests; + sourceTree = ""; + }; F606900A1CA2766F0003FB26 = { isa = PBXGroup; children = ( F60690221CA277BE0003FB26 /* Libraries */, F60690151CA2766F0003FB26 /* RealmReact */, F60690141CA2766F0003FB26 /* Products */, + 85B3572525FEB5B8003A02D4 /* Frameworks */, ); sourceTree = ""; }; @@ -100,6 +193,7 @@ isa = PBXGroup; children = ( F60690131CA2766F0003FB26 /* libRealmReact.a */, + 85B358BB25FF8070003A02D4 /* libGCDWebServer.a */, ); name = Products; sourceTree = ""; @@ -119,24 +213,31 @@ F60690221CA277BE0003FB26 /* Libraries */ = { isa = PBXGroup; children = ( - F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */, + 85B358BC25FF8070003A02D4 /* GCDWebServer */, ); name = Libraries; sourceTree = ""; }; - F60690241CA277CC0003FB26 /* Products */ = { - isa = PBXGroup; - children = ( - F68759FB1D21949A007471AB /* libGCDWebServers.a */, - F606902F1CA277CD0003FB26 /* libRealmJS.a */, - F60690331CA277CD0003FB26 /* RealmJSTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 85B358BA25FF8070003A02D4 /* GCDWebServer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 85B358C125FF8070003A02D4 /* Build configuration list for PBXNativeTarget "GCDWebServer" */; + buildPhases = ( + 85B358B725FF8070003A02D4 /* Sources */, + 85B358B825FF8070003A02D4 /* Frameworks */, + 85B358B925FF8070003A02D4 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GCDWebServer; + productName = GCDWebServer; + productReference = 85B358BB25FF8070003A02D4 /* libGCDWebServer.a */; + productType = "com.apple.product-type.library.static"; + }; F60690121CA2766F0003FB26 /* RealmReact */ = { isa = PBXNativeTarget; buildConfigurationList = F606901C1CA2766F0003FB26 /* Build configuration list for PBXNativeTarget "RealmReact" */; @@ -148,8 +249,6 @@ buildRules = ( ); dependencies = ( - F606903B1CA278F10003FB26 /* PBXTargetDependency */, - F60690391CA278E10003FB26 /* PBXTargetDependency */, ); name = RealmReact; productName = RealmReact; @@ -165,6 +264,9 @@ LastUpgradeCheck = 1010; ORGANIZATIONNAME = Realm; TargetAttributes = { + 85B358BA25FF8070003A02D4 = { + CreatedOnToolsVersion = 12.4; + }; F60690121CA2766F0003FB26 = { CreatedOnToolsVersion = 7.3; }; @@ -181,44 +283,35 @@ mainGroup = F606900A1CA2766F0003FB26; productRefGroup = F60690141CA2766F0003FB26 /* Products */; projectDirPath = ""; - projectReferences = ( - { - ProductGroup = F60690241CA277CC0003FB26 /* Products */; - ProjectRef = F60690231CA277CC0003FB26 /* RealmJS.xcodeproj */; - }, - ); projectRoot = ""; targets = ( F60690121CA2766F0003FB26 /* RealmReact */, + 85B358BA25FF8070003A02D4 /* GCDWebServer */, ); }; /* End PBXProject section */ -/* Begin PBXReferenceProxy section */ - F606902F1CA277CD0003FB26 /* libRealmJS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRealmJS.a; - remoteRef = F606902E1CA277CD0003FB26 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F60690331CA277CD0003FB26 /* RealmJSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = RealmJSTests.xctest; - remoteRef = F60690321CA277CD0003FB26 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - F68759FB1D21949A007471AB /* libGCDWebServers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libGCDWebServers.a; - remoteRef = F68759FA1D21949A007471AB /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - /* Begin PBXSourcesBuildPhase section */ + 85B358B725FF8070003A02D4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 85B358F425FF80CF003A02D4 /* GCDWebServerMultiPartFormRequest.m in Sources */, + 85B358EF25FF80CF003A02D4 /* GCDWebServerErrorResponse.m in Sources */, + 85B358F525FF80CF003A02D4 /* GCDWebServerDataRequest.m in Sources */, + 85B358F125FF80CF003A02D4 /* GCDWebServerDataResponse.m in Sources */, + 85B358ED25FF80CF003A02D4 /* GCDWebServer.m in Sources */, + 85B358EB25FF80CF003A02D4 /* GCDWebServerRequest.m in Sources */, + 85B358F025FF80CF003A02D4 /* GCDWebServerFileResponse.m in Sources */, + 85B358EE25FF80CF003A02D4 /* GCDWebServerConnection.m in Sources */, + 85B358F225FF80CF003A02D4 /* GCDWebServerStreamedResponse.m in Sources */, + 85B358F325FF80CF003A02D4 /* GCDWebServerURLEncodedFormRequest.m in Sources */, + 85B358EA25FF80CF003A02D4 /* GCDWebServerResponse.m in Sources */, + 85B358EC25FF80CF003A02D4 /* GCDWebServerFunctions.m in Sources */, + 85B358F625FF80CF003A02D4 /* GCDWebServerFileRequest.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; F606900F1CA2766F0003FB26 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -230,20 +323,46 @@ }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - F60690391CA278E10003FB26 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "RealmJS static"; - targetProxy = F60690381CA278E10003FB26 /* PBXContainerItemProxy */; +/* Begin XCBuildConfiguration section */ + 85B358C225FF8070003A02D4 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; }; - F606903B1CA278F10003FB26 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = GCDWebServers; - targetProxy = F606903A1CA278F10003FB26 /* PBXContainerItemProxy */; + 85B358C325FF8070003A02D4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + MTL_FAST_MATH = YES; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ F606901A1CA2766F0003FB26 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 3F8D968A220CE21400327C8C /* RealmReact.xcconfig */; @@ -276,6 +395,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 10.2.0; CXX = "$(SRCROOT)/../../scripts/ccache-clang++.sh"; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -303,6 +423,7 @@ ); SDKROOT = iphoneos; STRIP_INSTALLED_PRODUCT = NO; + VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; @@ -338,6 +459,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 10.2.0; CXX = "$(SRCROOT)/../../scripts/ccache-clang++.sh"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -359,6 +481,7 @@ SDKROOT = iphoneos; STRIP_INSTALLED_PRODUCT = NO; VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; @@ -367,18 +490,15 @@ buildSettings = { HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/../../src", - "$(SRCROOT)/../../src/object-store/src/**", - "$(SRCROOT)/../../src/object-store/external/json/**", - "$(SRCROOT)/../../vendor/**", - "$(SRCROOT)/../../vendor/realm-ios/include/**", - "$(SRCROOT)/../../vendor/GCDWebServer/GCDWebServer/**", "$(SRCROOT)/../../../react-native/React/**", "$(SRCROOT)/../../../../ios/Pods/Headers/Public/**", "$(SRCROOT)/../../tests/react-test-app/ios/Pods/Headers/Public/React", "$(SRCROOT)/../../examples/ReactExample/node_modules/react-native/React/**", ); - OTHER_LIBTOOLFLAGS = "$(BUILT_PRODUCTS_DIR)/libGCDWebServers.a"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; }; @@ -389,17 +509,15 @@ buildSettings = { HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/../../src", - "$(SRCROOT)/../../src/object-store/src/**", - "$(SRCROOT)/../../src/object-store/external/json/**", - "$(SRCROOT)/../../vendor/**", - "$(SRCROOT)/../../vendor/realm-ios/include/**", - "$(SRCROOT)/../../vendor/GCDWebServer/GCDWebServer/**", "$(SRCROOT)/../../../react-native/React/**", "$(SRCROOT)/../../../../ios/Pods/Headers/Public/**", "$(SRCROOT)/../../tests/react-test-app/ios/Pods/Headers/Public/React", "$(SRCROOT)/../../examples/ReactExample/node_modules/react-native/React/**", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; }; @@ -408,6 +526,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 85B358C125FF8070003A02D4 /* Build configuration list for PBXNativeTarget "GCDWebServer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 85B358C225FF8070003A02D4 /* Debug */, + 85B358C325FF8070003A02D4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; F606900E1CA2766F0003FB26 /* Build configuration list for PBXProject "RealmReact" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/react-native/ios/RealmReact/RealmAnalytics.mm b/react-native/ios/RealmReact/RealmAnalytics.mm index ca48fa8ce7..c8f75d2d7a 100644 --- a/react-native/ios/RealmReact/RealmAnalytics.mm +++ b/react-native/ios/RealmReact/RealmAnalytics.mm @@ -66,7 +66,14 @@ // This symbol is defined by the Apple Generic versioning system when building this project. // It confusingly looks like this: @(#)PROGRAM:RealmJS PROJECT:RealmJS-0.0.1 +#if defined(COCOAPODS) && COCOAPODS +// Compiled as part of RealmJS.podspec, the project name is RealmJS extern "C" const char RealmJSVersionString[]; +#else +// Compiled as part of RealmReact.xcodeproj, the project name is RealmReact +extern "C" const char RealmReactVersionString[]; +#define RealmJSVersionString RealmReactVersionString +#endif // Wrapper for sysctl() that handles the memory management stuff static auto RLMSysCtl(int *mib, u_int mibSize, size_t *bufferSize) { diff --git a/react-native/ios/RealmReact/RealmReact.mm b/react-native/ios/RealmReact/RealmReact.mm index 71819631a1..7583668edb 100644 --- a/react-native/ios/RealmReact/RealmReact.mm +++ b/react-native/ios/RealmReact/RealmReact.mm @@ -19,11 +19,7 @@ #import "RealmReact.h" #import "RealmAnalytics.h" -#import "jsc/jsc_init.h" - -#import "impl/realm_coordinator.hpp" -#import "shared_realm.hpp" -#import "sync/app.hpp" +#import #import #import @@ -35,11 +31,11 @@ #import #if DEBUG +#include #import "GCDWebServer.h" #import "GCDWebServerDataRequest.h" #import "GCDWebServerDataResponse.h" #import "GCDWebServerErrorResponse.h" -#import "rpc.hpp" #define WEB_SERVER_PORT 8083 @@ -73,7 +69,7 @@ - (void *)runtime; } else { // for RN < 0.28.0 - assert([RCTJavaScriptContext instancesRespondToSelector:@selector(initWithJSContext:)]); + NSCAssert([RCTJavaScriptContext instancesRespondToSelector:@selector(initWithJSContext:)], @"React Native version too old"); rctJSContext = [[RCTJavaScriptContext alloc] initWithJSContext:[JSContext new]]; } @@ -232,8 +228,8 @@ - (void)startRPC { NSData *responseData; if (rpcServer) { - json args = json::parse([[(GCDWebServerDataRequest *)request text] UTF8String]); - std::string responseText = rpcServer->perform_request(request.path.UTF8String, std::move(args)).dump(); + std::string args = [[(GCDWebServerDataRequest *)request text] UTF8String]; + std::string responseText = rpcServer->perform_request(request.path.UTF8String, args); responseData = [NSData dataWithBytes:responseText.c_str() length:responseText.length()]; } @@ -268,10 +264,7 @@ - (void)shutdownRPC { #endif - (void)invalidate { - // Close all cached Realms - realm::_impl::RealmCoordinator::clear_all_caches(); - // Clear the Object Store App cache, to prevent instances from using a context that was released - realm::app::App::clear_cached_apps(); + RJSInvalidateCaches(); #if DEBUG // shutdown rpc if in chrome debug mode [self shutdownRPC]; diff --git a/scripts/build-ios.sh b/scripts/build-ios.sh new file mode 100755 index 0000000000..19b5d69347 --- /dev/null +++ b/scripts/build-ios.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +# Start in the root directory of the project. +cd "$(dirname "$0")/.." +PROJECT_ROOT=$(pwd) +SCRIPT=$(basename "${BASH_SOURCE[0]}") + +function usage { + echo "Usage: ${SCRIPT} [-c ] [-s]" + echo "" + echo "Arguments:" + echo " -c : build configuration (Debug or Release)" + echo " -s : simulator-only build" + exit 1; +} + +CONFIGURATION=Release + +# Parse the options +while getopts ":c:s" opt; do + case "${opt}" in + c) CONFIGURATION=${OPTARG};; + s) SIMULATOR_ONLY=1;; + *) usage;; + esac +done +shift $((OPTIND-1)) + +pushd react-native/ios + +mkdir -p build +pushd build + +# Configure CMake project +cmake "$PROJECT_ROOT" -GXcode \ + -DCMAKE_TOOLCHAIN_FILE="$PROJECT_ROOT/cmake/ios.toolchain.cmake" \ + -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY="$(pwd)/out/$\$EFFECTIVE_PLATFORM_NAME" + +destinations=(-destination 'generic/platform=iOS Simulator') +[[ -z $SIMULATOR_ONLY ]] && destinations+=(-destination 'generic/platform=iOS') + +xcodebuild build \ + -scheme realm-js-ios \ + "${destinations[@]}" \ + -configuration $CONFIGURATION \ + ONLY_ACTIVE_ARCH=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES + +[[ -z $SIMULATOR_ONLY ]] && xcrun libtool -static -o ./out/$CONFIGURATION-iphoneos/librealm-js-ios.a ./out/$CONFIGURATION-iphoneos/*.a +xcrun libtool -static -o ./out/$CONFIGURATION-iphonesimulator/librealm-js-ios.a ./out/$CONFIGURATION-iphonesimulator/*.a + +mkdir -p _include/realm-js-ios +cp "$PROJECT_ROOT"/src/jsc/{jsc_init.h,rpc.hpp} _include/realm-js-ios/ + +rm -rf ../realm-js-ios.xcframework +libraries=(-library ./out/$CONFIGURATION-iphonesimulator/librealm-js-ios.a -headers ./_include) +[[ -z $SIMULATOR_ONLY ]] && libraries+=(-library ./out/$CONFIGURATION-iphoneos/librealm-js-ios.a -headers ./_include) +xcodebuild -create-xcframework \ + "${libraries[@]}" \ + -output ../realm-js-ios.xcframework diff --git a/scripts/set-version.sh b/scripts/set-version.sh index 45ff6270c0..6d168b0f1e 100755 --- a/scripts/set-version.sh +++ b/scripts/set-version.sh @@ -27,7 +27,7 @@ if ! $FORCE || [ "$VERSION" != "$(npm --silent run get-version)" ]; then fi # Update CURRENT_PROJECT_VERSION and DYLIB_CURRENT_VERSION in the Xcode project. -(cd src && xcrun agvtool new-version "$RELEASE_VERSION") +(cd react-native/ios && xcrun agvtool new-version "$RELEASE_VERSION") # Update CHANGELOG sed -i '' "1s/.*/$RELEASE_VERSION Release notes ($(date '+%Y-%-m-%-d'))/" CHANGELOG.md diff --git a/scripts/test.sh b/scripts/test.sh index b1f581321c..7ef3199c64 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -292,13 +292,17 @@ case "$TARGET" in npm run jsdoc ;; "react-tests") + npm ci --ignore-scripts npm run check-environment + + echo "building iOS binaries" + ./scripts/build-ios.sh -s -c $CONFIGURATION + set_nvm_default - npm ci start_server pushd tests/react-test-app - npm ci + npm ci --no-optional ./node_modules/.bin/install-local open_chrome start_packager @@ -309,9 +313,13 @@ case "$TARGET" in stop_server ;; "react-example") + npm ci --ignore-scripts npm run check-environment + + echo "building iOS binaries" + ./scripts/build-ios.sh -s -c $CONFIGURATION + set_nvm_default - npm ci pushd examples/ReactExample npm ci diff --git a/src/RealmJS.xcodeproj/project.pbxproj b/src/RealmJS.xcodeproj/project.pbxproj deleted file mode 100644 index fd62768390..0000000000 --- a/src/RealmJS.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1322 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 02022A581DA476CD000F0C4F /* external_commit_helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02022A411DA47489000F0C4F /* external_commit_helper.cpp */; }; - 02022A5A1DA476CD000F0C4F /* weak_realm_notifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02022A4A1DA475A9000F0C4F /* weak_realm_notifier.cpp */; }; - 02022A5B1DA476CD000F0C4F /* placeholder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02022A4C1DA475C0000F0C4F /* placeholder.cpp */; }; - 022BF1021E7266DF00F382F1 /* binding_callback_thread_observer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 022BF0FF1E7266C800F382F1 /* binding_callback_thread_observer.cpp */; }; - 02409DC21BCF11D6005F3B3E /* RealmJSCoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 02409DC11BCF11D6005F3B3E /* RealmJSCoreTests.m */; }; - 02414B881CE68CA200A8669F /* dates-v5.realm in Resources */ = {isa = PBXBuildFile; fileRef = 02414B871CE68CA200A8669F /* dates-v5.realm */; }; - 02414BA51CE6ABCF00A8669F /* collection_change_builder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02414B991CE6AAEF00A8669F /* collection_change_builder.cpp */; }; - 02414BA61CE6ABCF00A8669F /* collection_notifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02414B9B1CE6AAEF00A8669F /* collection_notifier.cpp */; }; - 02414BA71CE6ABCF00A8669F /* list_notifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02414B9D1CE6AAEF00A8669F /* list_notifier.cpp */; }; - 02414BA81CE6ABCF00A8669F /* results_notifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02414B9F1CE6AAEF00A8669F /* results_notifier.cpp */; }; - 02414BA91CE6ABCF00A8669F /* collection_notifications.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02414B961CE6AADD00A8669F /* collection_notifications.cpp */; }; - 0270BC821B7D020100010E03 /* RealmJSTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0270BC7B1B7D020100010E03 /* RealmJSTests.mm */; }; - 027A23131CD3E379000543AE /* libRealmJS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F63FF2B11C1241E500B3B8E0 /* libRealmJS.a */; }; - 02D041F71CE11159000E4250 /* dates-v3.realm in Resources */ = {isa = PBXBuildFile; fileRef = 02D041F61CE11159000E4250 /* dates-v3.realm */; }; - 02D8D1F71B601984006DB49D /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02B58CCD1AE99D4D009B348C /* JavaScriptCore.framework */; }; - 02E315C91DB80DDD00555337 /* sync_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02E315C31DB80DDD00555337 /* sync_manager.cpp */; }; - 02E315CA1DB80DDD00555337 /* sync_session.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02E315C51DB80DDD00555337 /* sync_session.cpp */; }; - 02E315CB1DB80DDD00555337 /* sync_user.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02E315C71DB80DDD00555337 /* sync_user.cpp */; }; - 02E315E01DB8233E00555337 /* keychain_helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02E315DE1DB8233E00555337 /* keychain_helper.cpp */; }; - 02F59EBF1C88F17D007F774C /* index_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EAF1C88F17D007F774C /* index_set.cpp */; }; - 02F59EC01C88F17D007F774C /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EB11C88F17D007F774C /* list.cpp */; }; - 02F59EC11C88F17D007F774C /* object_schema.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EB41C88F17D007F774C /* object_schema.cpp */; }; - 02F59EC21C88F17D007F774C /* object_store.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EB61C88F17D007F774C /* object_store.cpp */; }; - 02F59EC31C88F17D007F774C /* results.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EB91C88F17D007F774C /* results.cpp */; }; - 02F59EC41C88F17D007F774C /* schema.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EBB1C88F17D007F774C /* schema.cpp */; }; - 02F59EC51C88F17D007F774C /* shared_realm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EBD1C88F17D007F774C /* shared_realm.cpp */; }; - 02F59EE21C88F2BB007F774C /* realm_coordinator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EDB1C88F2BA007F774C /* realm_coordinator.cpp */; }; - 02F59EE31C88F2BB007F774C /* transact_log_handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02F59EDD1C88F2BB007F774C /* transact_log_handler.cpp */; }; - 3FCE2A931F58BE0300D4855B /* uuid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3FCE2A911F58BDFF00D4855B /* uuid.cpp */; }; - 3FDC253821F919AD0087FB9B /* sync_file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 504CF85A1EBCAE3600A9A4B6 /* sync_file.cpp */; }; - 42D9B5F52465185C00AB3349 /* app_credentials.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42BD57B224640AE4008679D5 /* app_credentials.cpp */; }; - 42D9B5F72465185C00AB3349 /* app.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42BD57BB24640AE4008679D5 /* app.cpp */; }; - 42D9B5F82465185D00AB3349 /* generic_network_transport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42BD57C024640AE5008679D5 /* generic_network_transport.cpp */; }; - 42D9B5FC2465185D00AB3349 /* bson.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42D9B5F1246511F300AB3349 /* bson.cpp */; }; - 42D9B5FE2465185D00AB3349 /* regular_expression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42D9B5EF246511F300AB3349 /* regular_expression.cpp */; }; - 4BA4036023C6664700DE6856 /* object_changeset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BA4035F23C6664700DE6856 /* object_changeset.cpp */; }; - 502B07E41E2CD201007A84ED /* object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 502B07E31E2CD1FA007A84ED /* object.cpp */; }; - 504CF85E1EBCAE3600A9A4B6 /* network_reachability_observer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 504CF8541EBCAE3600A9A4B6 /* network_reachability_observer.cpp */; }; - 504CF85F1EBCAE3600A9A4B6 /* system_configuration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 504CF8561EBCAE3600A9A4B6 /* system_configuration.cpp */; }; - 504CF8611EBCAE3600A9A4B6 /* sync_metadata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 504CF85C1EBCAE3600A9A4B6 /* sync_metadata.cpp */; }; - 50C671001E1D2D31003CB63C /* thread_safe_reference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D02C7791E1C83650048C13E /* thread_safe_reference.cpp */; }; - 5D1BF0571EF1DB4800B7DC87 /* jsc_value.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D1BF0561EF1DB4800B7DC87 /* jsc_value.cpp */; }; - 5D25F5A11D6284FD00EBBB30 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = F63FF3301C16434400B3B8E0 /* libz.tbd */; }; - 832C1D2F229D3035001A20C1 /* async_open_task.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 832C1D2E229D3035001A20C1 /* async_open_task.cpp */; }; - 8507156E1E2CFCD000E548DB /* object_notifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8507156B1E2CFC0100E548DB /* object_notifier.cpp */; }; - A45BFF8E253700F2004BF4E6 /* app_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A45BFF8D253700F2004BF4E6 /* app_utils.cpp */; }; - A482144A24F4043B00A166F4 /* push_client.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42387E6624C49409007FC5A4 /* push_client.cpp */; }; - A4DD71E524F3D1CA00B77603 /* scheduler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F50A4462447C09D003A6F4C /* scheduler.cpp */; }; - A4F1ACB82563E0E600D52257 /* mongo_client.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A4F1ACB52563E0E600D52257 /* mongo_client.cpp */; }; - A4F1ACB92563E0E600D52257 /* mongo_collection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A4F1ACB62563E0E600D52257 /* mongo_collection.cpp */; }; - A4F1ACBA2563E0E600D52257 /* mongo_database.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A4F1ACB72563E0E600D52257 /* mongo_database.cpp */; }; - F61378791C18EAC5008BFC51 /* js in Resources */ = {isa = PBXBuildFile; fileRef = F61378781C18EAAC008BFC51 /* js */; }; - F63FF2C61C12469E00B3B8E0 /* jsc_init.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 029048011C0428DF00ABDED4 /* jsc_init.cpp */; }; - F63FF2C91C12469E00B3B8E0 /* js_realm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 029048071C0428DF00ABDED4 /* js_realm.cpp */; }; - F63FF2CD1C12469E00B3B8E0 /* rpc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0290480F1C0428DF00ABDED4 /* rpc.cpp */; }; - F63FF2E21C15921A00B3B8E0 /* base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F6BB7DEF1BF681BC00D0A69E /* base64.cpp */; }; - F63FF2E81C159C4B00B3B8E0 /* platform.mm in Sources */ = {isa = PBXBuildFile; fileRef = 029048381C042A8F00ABDED4 /* platform.mm */; }; - F63FF31B1C1642BB00B3B8E0 /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF2FE1C1642BB00B3B8E0 /* GCDWebServer.m */; }; - F63FF31C1C1642BB00B3B8E0 /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3001C1642BB00B3B8E0 /* GCDWebServerConnection.m */; }; - F63FF31D1C1642BB00B3B8E0 /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3021C1642BB00B3B8E0 /* GCDWebServerFunctions.m */; }; - F63FF31E1C1642BB00B3B8E0 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3061C1642BB00B3B8E0 /* GCDWebServerRequest.m */; }; - F63FF31F1C1642BB00B3B8E0 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3081C1642BB00B3B8E0 /* GCDWebServerResponse.m */; }; - F63FF3201C1642BB00B3B8E0 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF30B1C1642BB00B3B8E0 /* GCDWebServerDataRequest.m */; }; - F63FF3211C1642BB00B3B8E0 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF30D1C1642BB00B3B8E0 /* GCDWebServerFileRequest.m */; }; - F63FF3221C1642BB00B3B8E0 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF30F1C1642BB00B3B8E0 /* GCDWebServerMultiPartFormRequest.m */; }; - F63FF3231C1642BB00B3B8E0 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3111C1642BB00B3B8E0 /* GCDWebServerURLEncodedFormRequest.m */; }; - F63FF3241C1642BB00B3B8E0 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3141C1642BB00B3B8E0 /* GCDWebServerDataResponse.m */; }; - F63FF3251C1642BB00B3B8E0 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3161C1642BB00B3B8E0 /* GCDWebServerErrorResponse.m */; }; - F63FF3261C1642BB00B3B8E0 /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF3181C1642BB00B3B8E0 /* GCDWebServerFileResponse.m */; }; - F63FF3271C1642BB00B3B8E0 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F63FF31A1C1642BB00B3B8E0 /* GCDWebServerStreamedResponse.m */; }; - F68A278C1BC2722A0063D40A /* RJSModuleLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = F68A278B1BC2722A0063D40A /* RJSModuleLoader.m */; }; - F6BCCFE21C8380A400FE31AE /* lib in Resources */ = {isa = PBXBuildFile; fileRef = F6BCCFDF1C83809A00FE31AE /* lib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - F63FF2EE1C16405C00B3B8E0 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 02022A411DA47489000F0C4F /* external_commit_helper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = external_commit_helper.cpp; sourceTree = ""; }; - 02022A421DA47489000F0C4F /* external_commit_helper.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = external_commit_helper.hpp; sourceTree = ""; }; - 02022A481DA474A7000F0C4F /* weak_realm_notifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = weak_realm_notifier.hpp; sourceTree = ""; }; - 02022A4A1DA475A9000F0C4F /* weak_realm_notifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = weak_realm_notifier.cpp; sourceTree = ""; }; - 02022A4C1DA475C0000F0C4F /* placeholder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = placeholder.cpp; path = src/placeholder.cpp; sourceTree = ""; }; - 02022A701DA47EC8000F0C4F /* atomic_shared_ptr.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = atomic_shared_ptr.hpp; sourceTree = ""; }; - 022BF0FF1E7266C800F382F1 /* binding_callback_thread_observer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = binding_callback_thread_observer.cpp; path = src/binding_callback_thread_observer.cpp; sourceTree = ""; }; - 022BF1001E7266C800F382F1 /* binding_callback_thread_observer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = binding_callback_thread_observer.hpp; path = src/binding_callback_thread_observer.hpp; sourceTree = ""; }; - 02409DC11BCF11D6005F3B3E /* RealmJSCoreTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RealmJSCoreTests.m; path = ios/RealmJSCoreTests.m; sourceTree = ""; }; - 02414B871CE68CA200A8669F /* dates-v5.realm */ = {isa = PBXFileReference; lastKnownFileType = file; path = "dates-v5.realm"; sourceTree = ""; }; - 02414B961CE6AADD00A8669F /* collection_notifications.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collection_notifications.cpp; path = src/collection_notifications.cpp; sourceTree = ""; }; - 02414B971CE6AADD00A8669F /* collection_notifications.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = collection_notifications.hpp; path = src/collection_notifications.hpp; sourceTree = ""; }; - 02414B991CE6AAEF00A8669F /* collection_change_builder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = collection_change_builder.cpp; sourceTree = ""; }; - 02414B9A1CE6AAEF00A8669F /* collection_change_builder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = collection_change_builder.hpp; sourceTree = ""; }; - 02414B9B1CE6AAEF00A8669F /* collection_notifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = collection_notifier.cpp; sourceTree = ""; }; - 02414B9C1CE6AAEF00A8669F /* collection_notifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = collection_notifier.hpp; sourceTree = ""; }; - 02414B9D1CE6AAEF00A8669F /* list_notifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = list_notifier.cpp; sourceTree = ""; }; - 02414B9E1CE6AAEF00A8669F /* list_notifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = list_notifier.hpp; sourceTree = ""; }; - 02414B9F1CE6AAEF00A8669F /* results_notifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = results_notifier.cpp; sourceTree = ""; }; - 02414BA01CE6AAEF00A8669F /* results_notifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = results_notifier.hpp; sourceTree = ""; }; - 0250D9C01D7647E00012C20C /* js_sync.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_sync.hpp; sourceTree = ""; }; - 025678951CAB392000FB8501 /* jsc_types.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = jsc_types.hpp; sourceTree = ""; }; - 0270BC5A1B7CFC1300010E03 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 0270BC781B7D020100010E03 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ios/Info.plist; sourceTree = ""; }; - 0270BC7A1B7D020100010E03 /* RealmJSTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RealmJSTests.h; path = ios/RealmJSTests.h; sourceTree = ""; }; - 0270BC7B1B7D020100010E03 /* RealmJSTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RealmJSTests.mm; path = ios/RealmJSTests.mm; sourceTree = ""; }; - 02879D8B1DC29D5600777A5D /* package.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = package.json; path = ../package.json; sourceTree = ""; }; - 029048011C0428DF00ABDED4 /* jsc_init.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = jsc_init.cpp; sourceTree = ""; }; - 029048021C0428DF00ABDED4 /* jsc_init.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jsc_init.h; sourceTree = ""; }; - 029048041C0428DF00ABDED4 /* js_list.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_list.hpp; sourceTree = ""; }; - 029048061C0428DF00ABDED4 /* js_realm_object.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_realm_object.hpp; sourceTree = ""; }; - 029048071C0428DF00ABDED4 /* js_realm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_realm.cpp; sourceTree = ""; }; - 029048081C0428DF00ABDED4 /* js_realm.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_realm.hpp; sourceTree = ""; }; - 0290480A1C0428DF00ABDED4 /* js_results.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_results.hpp; sourceTree = ""; }; - 0290480C1C0428DF00ABDED4 /* js_schema.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_schema.hpp; sourceTree = ""; }; - 0290480F1C0428DF00ABDED4 /* rpc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rpc.cpp; sourceTree = ""; }; - 029048101C0428DF00ABDED4 /* rpc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = rpc.hpp; sourceTree = ""; }; - 029048351C042A3C00ABDED4 /* platform.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = platform.hpp; sourceTree = ""; }; - 029048381C042A8F00ABDED4 /* platform.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = platform.mm; sourceTree = ""; }; - 0290934A1CEFA9170009769E /* js_observable.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_observable.hpp; sourceTree = ""; }; - 02A3C7A41BC4341500B1A7BE /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - 02B58CBC1AE99CEC009B348C /* RealmJSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RealmJSTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 02B58CCD1AE99D4D009B348C /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - 02D041F61CE11159000E4250 /* dates-v3.realm */ = {isa = PBXFileReference; lastKnownFileType = file; path = "dates-v3.realm"; sourceTree = ""; }; - 02E315C21DB80DDD00555337 /* sync_config.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = sync_config.hpp; path = src/sync/sync_config.hpp; sourceTree = ""; }; - 02E315C31DB80DDD00555337 /* sync_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sync_manager.cpp; path = src/sync/sync_manager.cpp; sourceTree = ""; }; - 02E315C41DB80DDD00555337 /* sync_manager.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = sync_manager.hpp; path = src/sync/sync_manager.hpp; sourceTree = ""; }; - 02E315C51DB80DDD00555337 /* sync_session.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sync_session.cpp; path = src/sync/sync_session.cpp; sourceTree = ""; }; - 02E315C61DB80DDD00555337 /* sync_session.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = sync_session.hpp; path = src/sync/sync_session.hpp; sourceTree = ""; }; - 02E315C71DB80DDD00555337 /* sync_user.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sync_user.cpp; path = src/sync/sync_user.cpp; sourceTree = ""; }; - 02E315C81DB80DDD00555337 /* sync_user.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = sync_user.hpp; path = src/sync/sync_user.hpp; sourceTree = ""; }; - 02E315CD1DB80DF200555337 /* sync_client.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = sync_client.hpp; path = src/sync/impl/sync_client.hpp; sourceTree = ""; }; - 02E315DE1DB8233E00555337 /* keychain_helper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = keychain_helper.cpp; sourceTree = ""; }; - 02E315DF1DB8233E00555337 /* keychain_helper.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = keychain_helper.hpp; sourceTree = ""; }; - 02F59EAE1C88F17D007F774C /* binding_context.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = binding_context.hpp; path = src/binding_context.hpp; sourceTree = ""; }; - 02F59EAF1C88F17D007F774C /* index_set.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = index_set.cpp; path = src/index_set.cpp; sourceTree = ""; }; - 02F59EB01C88F17D007F774C /* index_set.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = index_set.hpp; path = src/index_set.hpp; sourceTree = ""; }; - 02F59EB11C88F17D007F774C /* list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = list.cpp; path = src/list.cpp; sourceTree = ""; }; - 02F59EB21C88F17D007F774C /* list.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = list.hpp; path = src/list.hpp; sourceTree = ""; }; - 02F59EB31C88F17D007F774C /* object_accessor.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = object_accessor.hpp; path = src/object_accessor.hpp; sourceTree = ""; }; - 02F59EB41C88F17D007F774C /* object_schema.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = object_schema.cpp; path = src/object_schema.cpp; sourceTree = ""; }; - 02F59EB51C88F17D007F774C /* object_schema.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = object_schema.hpp; path = src/object_schema.hpp; sourceTree = ""; }; - 02F59EB61C88F17D007F774C /* object_store.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = object_store.cpp; path = src/object_store.cpp; sourceTree = ""; }; - 02F59EB71C88F17D007F774C /* object_store.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = object_store.hpp; path = src/object_store.hpp; sourceTree = ""; }; - 02F59EB81C88F17D007F774C /* property.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = property.hpp; path = src/property.hpp; sourceTree = ""; }; - 02F59EB91C88F17D007F774C /* results.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = results.cpp; path = src/results.cpp; sourceTree = ""; }; - 02F59EBA1C88F17D007F774C /* results.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = results.hpp; path = src/results.hpp; sourceTree = ""; }; - 02F59EBB1C88F17D007F774C /* schema.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = schema.cpp; path = src/schema.cpp; sourceTree = ""; }; - 02F59EBC1C88F17D007F774C /* schema.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = schema.hpp; path = src/schema.hpp; sourceTree = ""; }; - 02F59EBD1C88F17D007F774C /* shared_realm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = shared_realm.cpp; path = src/shared_realm.cpp; sourceTree = ""; }; - 02F59EBE1C88F17D007F774C /* shared_realm.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = shared_realm.hpp; path = src/shared_realm.hpp; sourceTree = ""; }; - 02F59EDA1C88F2BA007F774C /* external_commit_helper.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = external_commit_helper.hpp; sourceTree = ""; }; - 02F59EDB1C88F2BA007F774C /* realm_coordinator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = realm_coordinator.cpp; sourceTree = ""; }; - 02F59EDC1C88F2BB007F774C /* realm_coordinator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = realm_coordinator.hpp; sourceTree = ""; }; - 02F59EDD1C88F2BB007F774C /* transact_log_handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transact_log_handler.cpp; sourceTree = ""; }; - 02F59EDE1C88F2BB007F774C /* transact_log_handler.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = transact_log_handler.hpp; sourceTree = ""; }; - 3F50A43C2447C09D003A6F4C /* copyable_atomic.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = copyable_atomic.hpp; sourceTree = ""; }; - 3F50A43D2447C09D003A6F4C /* event_loop_dispatcher.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = event_loop_dispatcher.hpp; sourceTree = ""; }; - 3F50A4442447C09D003A6F4C /* scheduler.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = scheduler.hpp; sourceTree = ""; }; - 3F50A4452447C09D003A6F4C /* checked_mutex.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = checked_mutex.hpp; sourceTree = ""; }; - 3F50A4462447C09D003A6F4C /* scheduler.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = scheduler.cpp; sourceTree = ""; }; - 3FCE2A871F58BDE500D4855B /* object_accessor_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = object_accessor_impl.hpp; sourceTree = ""; }; - 3FCE2A8C1F58BDFF00D4855B /* aligned_union.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = aligned_union.hpp; sourceTree = ""; }; - 3FCE2A8E1F58BDFF00D4855B /* tagged_bool.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = tagged_bool.hpp; sourceTree = ""; }; - 3FCE2A901F58BDFF00D4855B /* uuid.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = uuid.hpp; sourceTree = ""; }; - 3FCE2A911F58BDFF00D4855B /* uuid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = uuid.cpp; sourceTree = ""; }; - 3FCE2A991F58BE3600D4855B /* feature_checks.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = feature_checks.hpp; path = "object-store/src/feature_checks.hpp"; sourceTree = SOURCE_ROOT; }; - 42387E6624C49409007FC5A4 /* push_client.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = push_client.cpp; path = src/sync/push_client.cpp; sourceTree = ""; }; - 42387E6724C49409007FC5A4 /* push_client.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = push_client.hpp; path = src/sync/push_client.hpp; sourceTree = ""; }; - 42BD57A824640A94008679D5 /* js_app.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_app.hpp; sourceTree = ""; }; - 42BD57A924640A94008679D5 /* js_app_credentials.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_app_credentials.hpp; sourceTree = ""; }; - 42BD57AA24640A94008679D5 /* js_email_password_auth.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_email_password_auth.hpp; sourceTree = ""; }; - 42BD57AB24640A94008679D5 /* js_user.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_user.hpp; sourceTree = ""; }; - 42BD57AC24640A94008679D5 /* js_network_transport.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_network_transport.hpp; sourceTree = ""; }; - 42BD57AE24640A95008679D5 /* js_api_key_auth.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_api_key_auth.hpp; sourceTree = ""; }; - 42BD57AF24640AA8008679D5 /* keypath_helpers.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = keypath_helpers.hpp; path = src/keypath_helpers.hpp; sourceTree = ""; }; - 42BD57B024640AE4008679D5 /* generic_network_transport.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = generic_network_transport.hpp; path = src/sync/generic_network_transport.hpp; sourceTree = ""; }; - 42BD57B124640AE4008679D5 /* app_credentials.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = app_credentials.hpp; path = src/sync/app_credentials.hpp; sourceTree = ""; }; - 42BD57B224640AE4008679D5 /* app_credentials.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = app_credentials.cpp; path = src/sync/app_credentials.cpp; sourceTree = ""; }; - 42BD57B324640AE4008679D5 /* mongo_collection.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mongo_collection.cpp; path = src/sync/mongo_collection.cpp; sourceTree = ""; }; - 42BD57B424640AE4008679D5 /* mongo_database.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = mongo_database.hpp; path = src/sync/mongo_database.hpp; sourceTree = ""; }; - 42BD57B524640AE4008679D5 /* app.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = app.hpp; path = src/sync/app.hpp; sourceTree = ""; }; - 42BD57B724640AE4008679D5 /* mongo_collection.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = mongo_collection.hpp; path = src/sync/mongo_collection.hpp; sourceTree = ""; }; - 42BD57B824640AE4008679D5 /* app_utils.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = app_utils.hpp; path = src/sync/app_utils.hpp; sourceTree = ""; }; - 42BD57B924640AE4008679D5 /* app_service_client.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = app_service_client.hpp; path = src/sync/app_service_client.hpp; sourceTree = ""; }; - 42BD57BA24640AE4008679D5 /* mongo_client.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mongo_client.cpp; path = src/sync/mongo_client.cpp; sourceTree = ""; }; - 42BD57BB24640AE4008679D5 /* app.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = app.cpp; path = src/sync/app.cpp; sourceTree = ""; }; - 42BD57BC24640AE5008679D5 /* async_open_task.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = async_open_task.hpp; path = src/sync/async_open_task.hpp; sourceTree = ""; }; - 42BD57BD24640AE5008679D5 /* mongo_database.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mongo_database.cpp; path = src/sync/mongo_database.cpp; sourceTree = ""; }; - 42BD57BE24640AE5008679D5 /* mongo_client.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = mongo_client.hpp; path = src/sync/mongo_client.hpp; sourceTree = ""; }; - 42BD57BF24640AE5008679D5 /* auth_request_client.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = auth_request_client.hpp; path = src/sync/auth_request_client.hpp; sourceTree = ""; }; - 42BD57C024640AE5008679D5 /* generic_network_transport.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = generic_network_transport.cpp; path = src/sync/generic_network_transport.cpp; sourceTree = ""; }; - 42D9B5EC246511F200AB3349 /* indexed_map.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = indexed_map.hpp; sourceTree = ""; }; - 42D9B5ED246511F200AB3349 /* max_key.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = max_key.hpp; sourceTree = ""; }; - 42D9B5EE246511F200AB3349 /* min_key.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = min_key.hpp; sourceTree = ""; }; - 42D9B5EF246511F300AB3349 /* regular_expression.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = regular_expression.cpp; sourceTree = ""; }; - 42D9B5F0246511F300AB3349 /* regular_expression.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = regular_expression.hpp; sourceTree = ""; }; - 42D9B5F1246511F300AB3349 /* bson.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = bson.cpp; sourceTree = ""; }; - 42D9B5F4246511F300AB3349 /* bson.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = bson.hpp; sourceTree = ""; }; - 4BA4035F23C6664700DE6856 /* object_changeset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = object_changeset.cpp; path = "object-store/src/object_changeset.cpp"; sourceTree = ""; }; - 502B07E31E2CD1FA007A84ED /* object.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = object.cpp; path = src/object.cpp; sourceTree = ""; }; - 502B07E51E2CD20D007A84ED /* object.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = object.hpp; path = src/object.hpp; sourceTree = ""; }; - 504CF8541EBCAE3600A9A4B6 /* network_reachability_observer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = network_reachability_observer.cpp; sourceTree = ""; }; - 504CF8551EBCAE3600A9A4B6 /* network_reachability_observer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = network_reachability_observer.hpp; sourceTree = ""; }; - 504CF8561EBCAE3600A9A4B6 /* system_configuration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = system_configuration.cpp; sourceTree = ""; }; - 504CF8571EBCAE3600A9A4B6 /* system_configuration.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = system_configuration.hpp; sourceTree = ""; }; - 504CF8581EBCAE3600A9A4B6 /* network_reachability.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = network_reachability.hpp; sourceTree = ""; }; - 504CF8591EBCAE3600A9A4B6 /* sync_client.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = sync_client.hpp; sourceTree = ""; }; - 504CF85A1EBCAE3600A9A4B6 /* sync_file.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sync_file.cpp; sourceTree = ""; }; - 504CF85B1EBCAE3600A9A4B6 /* sync_file.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = sync_file.hpp; sourceTree = ""; }; - 504CF85C1EBCAE3600A9A4B6 /* sync_metadata.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sync_metadata.cpp; sourceTree = ""; }; - 504CF85D1EBCAE3600A9A4B6 /* sync_metadata.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = sync_metadata.hpp; sourceTree = ""; }; - 5D02C7791E1C83650048C13E /* thread_safe_reference.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = thread_safe_reference.cpp; path = src/thread_safe_reference.cpp; sourceTree = ""; }; - 5D02C77A1E1C83650048C13E /* thread_safe_reference.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = thread_safe_reference.hpp; path = src/thread_safe_reference.hpp; sourceTree = ""; }; - 5D1BF0561EF1DB4800B7DC87 /* jsc_value.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = jsc_value.cpp; sourceTree = ""; }; - 832C1D2E229D3035001A20C1 /* async_open_task.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = async_open_task.cpp; path = "object-store/src/sync/async_open_task.cpp"; sourceTree = ""; }; - 8507156B1E2CFC0100E548DB /* object_notifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = object_notifier.cpp; sourceTree = ""; }; - 8507156C1E2CFC0100E548DB /* object_notifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = object_notifier.hpp; sourceTree = ""; }; - A45BFF8D253700F2004BF4E6 /* app_utils.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = app_utils.cpp; path = "object-store/src/sync/app_utils.cpp"; sourceTree = ""; }; - A4F1ACB52563E0E600D52257 /* mongo_client.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mongo_client.cpp; path = "object-store/src/sync/mongo_client.cpp"; sourceTree = ""; }; - A4F1ACB62563E0E600D52257 /* mongo_collection.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mongo_collection.cpp; path = "object-store/src/sync/mongo_collection.cpp"; sourceTree = ""; }; - A4F1ACB72563E0E600D52257 /* mongo_database.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mongo_database.cpp; path = "object-store/src/sync/mongo_database.cpp"; sourceTree = ""; }; - DC0FCC4C256817E80028429B /* jsc_rpc_network_transport.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_rpc_network_transport.hpp; sourceTree = ""; }; - F60102CF1CBB814A00EC01BA /* node_init.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_init.hpp; sourceTree = ""; }; - F60102D11CBB865A00EC01BA /* jsc_init.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = jsc_init.hpp; sourceTree = ""; }; - F60102F71CBDA6D400EC01BA /* js_collection.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_collection.hpp; sourceTree = ""; }; - F60103071CC4B3DF00EC01BA /* node_protected.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_protected.hpp; sourceTree = ""; }; - F60103081CC4B4F900EC01BA /* jsc_protected.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_protected.hpp; sourceTree = ""; }; - F60103091CC4B5E800EC01BA /* jsc_context.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_context.hpp; sourceTree = ""; }; - F601030A1CC4B64E00EC01BA /* node_context.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_context.hpp; sourceTree = ""; }; - F601030B1CC4B6C900EC01BA /* jsc_value.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_value.hpp; sourceTree = ""; }; - F601030C1CC4B72B00EC01BA /* node_value.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_value.hpp; sourceTree = ""; }; - F601030D1CC4B76F00EC01BA /* jsc_object.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_object.hpp; sourceTree = ""; }; - F601030E1CC4B7C900EC01BA /* node_object.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_object.hpp; sourceTree = ""; }; - F601030F1CC4B80800EC01BA /* jsc_function.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_function.hpp; sourceTree = ""; }; - F60103101CC4B86000EC01BA /* node_function.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_function.hpp; sourceTree = ""; }; - F60103111CC4BA6500EC01BA /* jsc_exception.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_exception.hpp; sourceTree = ""; }; - F60103121CC4CBF000EC01BA /* node_exception.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_exception.hpp; sourceTree = ""; }; - F60103131CC4CC4500EC01BA /* jsc_string.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_string.hpp; sourceTree = ""; }; - F60103141CC4CC8C00EC01BA /* jsc_return_value.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_return_value.hpp; sourceTree = ""; }; - F60103151CC4CCFD00EC01BA /* node_return_value.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_return_value.hpp; sourceTree = ""; }; - F60103161CC4CD2F00EC01BA /* node_string.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_string.hpp; sourceTree = ""; }; - F6079B181CD3EB9000BD2401 /* concurrent_deque.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = concurrent_deque.hpp; sourceTree = ""; }; - F61378781C18EAAC008BFC51 /* js */ = {isa = PBXFileReference; lastKnownFileType = folder; path = js; sourceTree = ""; }; - F620F0521CAF0B600082977B /* js_class.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_class.hpp; sourceTree = ""; }; - F620F0531CAF2EF70082977B /* jsc_class.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = jsc_class.hpp; sourceTree = ""; }; - F620F0551CB655A50082977B /* node_class.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_class.hpp; sourceTree = ""; }; - F620F0571CB766DA0082977B /* node_init.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_init.cpp; sourceTree = ""; }; - F620F0591CB7B4C80082977B /* js_object_accessor.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_object_accessor.hpp; sourceTree = ""; }; - F620F0741CB9F60C0082977B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; }; - F6267BC91CADC30000AC36B1 /* js_util.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = js_util.hpp; sourceTree = ""; }; - F6267BCA1CADC49200AC36B1 /* node_dummy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_dummy.cpp; sourceTree = ""; }; - F631184A1CEBA7D800ECB2DE /* external_commit_helper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = external_commit_helper.cpp; sourceTree = ""; }; - F631184B1CEBA7D800ECB2DE /* external_commit_helper.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = external_commit_helper.hpp; sourceTree = ""; }; - F63FF2B11C1241E500B3B8E0 /* libRealmJS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRealmJS.a; sourceTree = BUILT_PRODUCTS_DIR; }; - F63FF2F01C16405C00B3B8E0 /* libGCDWebServers.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libGCDWebServers.a; sourceTree = BUILT_PRODUCTS_DIR; }; - F63FF2FD1C1642BB00B3B8E0 /* GCDWebServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServer.h; sourceTree = ""; }; - F63FF2FE1C1642BB00B3B8E0 /* GCDWebServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServer.m; sourceTree = ""; }; - F63FF2FF1C1642BB00B3B8E0 /* GCDWebServerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerConnection.h; sourceTree = ""; }; - F63FF3001C1642BB00B3B8E0 /* GCDWebServerConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerConnection.m; sourceTree = ""; }; - F63FF3011C1642BB00B3B8E0 /* GCDWebServerFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFunctions.h; sourceTree = ""; }; - F63FF3021C1642BB00B3B8E0 /* GCDWebServerFunctions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFunctions.m; sourceTree = ""; }; - F63FF3031C1642BB00B3B8E0 /* GCDWebServerHTTPStatusCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerHTTPStatusCodes.h; sourceTree = ""; }; - F63FF3041C1642BB00B3B8E0 /* GCDWebServerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerPrivate.h; sourceTree = ""; }; - F63FF3051C1642BB00B3B8E0 /* GCDWebServerRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerRequest.h; sourceTree = ""; }; - F63FF3061C1642BB00B3B8E0 /* GCDWebServerRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerRequest.m; sourceTree = ""; }; - F63FF3071C1642BB00B3B8E0 /* GCDWebServerResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerResponse.h; sourceTree = ""; }; - F63FF3081C1642BB00B3B8E0 /* GCDWebServerResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerResponse.m; sourceTree = ""; }; - F63FF30A1C1642BB00B3B8E0 /* GCDWebServerDataRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerDataRequest.h; sourceTree = ""; }; - F63FF30B1C1642BB00B3B8E0 /* GCDWebServerDataRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerDataRequest.m; sourceTree = ""; }; - F63FF30C1C1642BB00B3B8E0 /* GCDWebServerFileRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFileRequest.h; sourceTree = ""; }; - F63FF30D1C1642BB00B3B8E0 /* GCDWebServerFileRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFileRequest.m; sourceTree = ""; }; - F63FF30E1C1642BB00B3B8E0 /* GCDWebServerMultiPartFormRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerMultiPartFormRequest.h; sourceTree = ""; }; - F63FF30F1C1642BB00B3B8E0 /* GCDWebServerMultiPartFormRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerMultiPartFormRequest.m; sourceTree = ""; }; - F63FF3101C1642BB00B3B8E0 /* GCDWebServerURLEncodedFormRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerURLEncodedFormRequest.h; sourceTree = ""; }; - F63FF3111C1642BB00B3B8E0 /* GCDWebServerURLEncodedFormRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerURLEncodedFormRequest.m; sourceTree = ""; }; - F63FF3131C1642BB00B3B8E0 /* GCDWebServerDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerDataResponse.h; sourceTree = ""; }; - F63FF3141C1642BB00B3B8E0 /* GCDWebServerDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerDataResponse.m; sourceTree = ""; }; - F63FF3151C1642BB00B3B8E0 /* GCDWebServerErrorResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerErrorResponse.h; sourceTree = ""; }; - F63FF3161C1642BB00B3B8E0 /* GCDWebServerErrorResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerErrorResponse.m; sourceTree = ""; }; - F63FF3171C1642BB00B3B8E0 /* GCDWebServerFileResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFileResponse.h; sourceTree = ""; }; - F63FF3181C1642BB00B3B8E0 /* GCDWebServerFileResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFileResponse.m; sourceTree = ""; }; - F63FF3191C1642BB00B3B8E0 /* GCDWebServerStreamedResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerStreamedResponse.h; sourceTree = ""; }; - F63FF31A1C1642BB00B3B8E0 /* GCDWebServerStreamedResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerStreamedResponse.m; sourceTree = ""; }; - F63FF3281C16430C00B3B8E0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - F63FF32A1C16432700B3B8E0 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; - F63FF32C1C16432E00B3B8E0 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; - F63FF32E1C16433900B3B8E0 /* libxml2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.tbd; path = usr/lib/libxml2.tbd; sourceTree = SDKROOT; }; - F63FF3301C16434400B3B8E0 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - F67478481CC81F1300F9273C /* platform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = platform.cpp; sourceTree = ""; }; - F6874A351CAC792D00EEEE36 /* node_types.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = node_types.hpp; sourceTree = ""; }; - F6874A3E1CACA5A900EEEE36 /* js_types.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_types.hpp; sourceTree = ""; }; - F68A278A1BC2722A0063D40A /* RJSModuleLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RJSModuleLoader.h; path = ios/RJSModuleLoader.h; sourceTree = ""; }; - F68A278B1BC2722A0063D40A /* RJSModuleLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RJSModuleLoader.m; path = ios/RJSModuleLoader.m; sourceTree = ""; }; - F6BB7DEF1BF681BC00D0A69E /* base64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = base64.cpp; sourceTree = ""; }; - F6BB7DF01BF681BC00D0A69E /* base64.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = base64.hpp; sourceTree = ""; }; - F6BCCFDF1C83809A00FE31AE /* lib */ = {isa = PBXFileReference; lastKnownFileType = folder; name = lib; path = ../lib; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 02B58CB91AE99CEC009B348C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 02D8D1F71B601984006DB49D /* JavaScriptCore.framework in Frameworks */, - 027A23131CD3E379000543AE /* libRealmJS.a in Frameworks */, - 5D25F5A11D6284FD00EBBB30 /* libz.tbd in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F63FF2ED1C16405C00B3B8E0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 02022A6B1DA47EC8000F0C4F /* util */ = { - isa = PBXGroup; - children = ( - 42D9B5EB246511D300AB3349 /* bson */, - 3FCE2A8C1F58BDFF00D4855B /* aligned_union.hpp */, - 02022A701DA47EC8000F0C4F /* atomic_shared_ptr.hpp */, - 3F50A4452447C09D003A6F4C /* checked_mutex.hpp */, - 3F50A43C2447C09D003A6F4C /* copyable_atomic.hpp */, - 3F50A43D2447C09D003A6F4C /* event_loop_dispatcher.hpp */, - 3F50A4462447C09D003A6F4C /* scheduler.cpp */, - 3F50A4442447C09D003A6F4C /* scheduler.hpp */, - 3FCE2A8E1F58BDFF00D4855B /* tagged_bool.hpp */, - 3FCE2A911F58BDFF00D4855B /* uuid.cpp */, - 3FCE2A901F58BDFF00D4855B /* uuid.hpp */, - ); - name = util; - path = src/util; - sourceTree = ""; - }; - 0270BC3D1B7CFBFD00010E03 /* RealmJS */ = { - isa = PBXGroup; - children = ( - 42BD57A924640A94008679D5 /* js_app_credentials.hpp */, - 42BD57A824640A94008679D5 /* js_app.hpp */, - 42BD57AC24640A94008679D5 /* js_network_transport.hpp */, - 42BD57AE24640A95008679D5 /* js_api_key_auth.hpp */, - 42BD57AB24640A94008679D5 /* js_user.hpp */, - 42BD57AA24640A94008679D5 /* js_email_password_auth.hpp */, - F62A35131C18E6E2004A917D /* iOS */, - F6874A441CAD2ACD00EEEE36 /* JSC */, - F6BCCFDF1C83809A00FE31AE /* lib */, - F62BF9001CAC72C40022BCDC /* Node */, - F62A35141C18E783004A917D /* Object Store */, - F6079B181CD3EB9000BD2401 /* concurrent_deque.hpp */, - F620F0521CAF0B600082977B /* js_class.hpp */, - F60102F71CBDA6D400EC01BA /* js_collection.hpp */, - 029048041C0428DF00ABDED4 /* js_list.hpp */, - F620F0591CB7B4C80082977B /* js_object_accessor.hpp */, - 0290934A1CEFA9170009769E /* js_observable.hpp */, - 029048071C0428DF00ABDED4 /* js_realm.cpp */, - 029048081C0428DF00ABDED4 /* js_realm.hpp */, - 029048061C0428DF00ABDED4 /* js_realm_object.hpp */, - 0290480A1C0428DF00ABDED4 /* js_results.hpp */, - 0290480C1C0428DF00ABDED4 /* js_schema.hpp */, - 0250D9C01D7647E00012C20C /* js_sync.hpp */, - F6874A3E1CACA5A900EEEE36 /* js_types.hpp */, - F6267BC91CADC30000AC36B1 /* js_util.hpp */, - 02879D8B1DC29D5600777A5D /* package.json */, - 029048351C042A3C00ABDED4 /* platform.hpp */, - 0290480F1C0428DF00ABDED4 /* rpc.cpp */, - 029048101C0428DF00ABDED4 /* rpc.hpp */, - ); - name = RealmJS; - sourceTree = ""; - }; - 02B58CA71AE99CEB009B348C = { - isa = PBXGroup; - children = ( - A4F1ACB52563E0E600D52257 /* mongo_client.cpp */, - A4F1ACB62563E0E600D52257 /* mongo_collection.cpp */, - A4F1ACB72563E0E600D52257 /* mongo_database.cpp */, - A45BFF8D253700F2004BF4E6 /* app_utils.cpp */, - 02B58CCF1AE99D8C009B348C /* Frameworks */, - 02B58CB21AE99CEC009B348C /* Products */, - 0270BC3D1B7CFBFD00010E03 /* RealmJS */, - 02B58CC01AE99CEC009B348C /* RealmJSTests */, - F6C3FBB41BF680D000E6FFD4 /* Vendor */, - 42387E6524C493AC007FC5A4 /* Recovered References */, - ); - sourceTree = ""; - }; - 02B58CB21AE99CEC009B348C /* Products */ = { - isa = PBXGroup; - children = ( - F63FF2F01C16405C00B3B8E0 /* libGCDWebServers.a */, - F63FF2B11C1241E500B3B8E0 /* libRealmJS.a */, - 02B58CBC1AE99CEC009B348C /* RealmJSTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 02B58CC01AE99CEC009B348C /* RealmJSTests */ = { - isa = PBXGroup; - children = ( - 02D041F51CE11159000E4250 /* data */, - F61378781C18EAAC008BFC51 /* js */, - 0270BC781B7D020100010E03 /* Info.plist */, - 02409DC11BCF11D6005F3B3E /* RealmJSCoreTests.m */, - 0270BC7A1B7D020100010E03 /* RealmJSTests.h */, - 0270BC7B1B7D020100010E03 /* RealmJSTests.mm */, - F68A278A1BC2722A0063D40A /* RJSModuleLoader.h */, - F68A278B1BC2722A0063D40A /* RJSModuleLoader.m */, - ); - name = RealmJSTests; - path = ../tests; - sourceTree = ""; - }; - 02B58CCF1AE99D8C009B348C /* Frameworks */ = { - isa = PBXGroup; - children = ( - F63FF32C1C16432E00B3B8E0 /* CFNetwork.framework */, - F620F0741CB9F60C0082977B /* CoreFoundation.framework */, - 02B58CCD1AE99D4D009B348C /* JavaScriptCore.framework */, - 02A3C7A41BC4341500B1A7BE /* libc++.tbd */, - F63FF32E1C16433900B3B8E0 /* libxml2.tbd */, - F63FF3301C16434400B3B8E0 /* libz.tbd */, - F63FF32A1C16432700B3B8E0 /* MobileCoreServices.framework */, - F63FF3281C16430C00B3B8E0 /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 02D041F51CE11159000E4250 /* data */ = { - isa = PBXGroup; - children = ( - 02D041F61CE11159000E4250 /* dates-v3.realm */, - 02414B871CE68CA200A8669F /* dates-v5.realm */, - ); - path = data; - sourceTree = ""; - }; - 02E315CC1DB80DE000555337 /* sync */ = { - isa = PBXGroup; - children = ( - 42387E6624C49409007FC5A4 /* push_client.cpp */, - 42387E6724C49409007FC5A4 /* push_client.hpp */, - 42BD57B224640AE4008679D5 /* app_credentials.cpp */, - 42BD57B124640AE4008679D5 /* app_credentials.hpp */, - 42BD57B924640AE4008679D5 /* app_service_client.hpp */, - 42BD57B824640AE4008679D5 /* app_utils.hpp */, - 42BD57BB24640AE4008679D5 /* app.cpp */, - 42BD57B524640AE4008679D5 /* app.hpp */, - 42BD57BC24640AE5008679D5 /* async_open_task.hpp */, - 42BD57BF24640AE5008679D5 /* auth_request_client.hpp */, - 42BD57C024640AE5008679D5 /* generic_network_transport.cpp */, - 42BD57B024640AE4008679D5 /* generic_network_transport.hpp */, - 42BD57BA24640AE4008679D5 /* mongo_client.cpp */, - 42BD57BE24640AE5008679D5 /* mongo_client.hpp */, - 42BD57B324640AE4008679D5 /* mongo_collection.cpp */, - 42BD57B724640AE4008679D5 /* mongo_collection.hpp */, - 42BD57BD24640AE5008679D5 /* mongo_database.cpp */, - 42BD57B424640AE4008679D5 /* mongo_database.hpp */, - 504CF8521EBCAE3600A9A4B6 /* impl */, - 02E315CD1DB80DF200555337 /* sync_client.hpp */, - 02E315C21DB80DDD00555337 /* sync_config.hpp */, - 02E315C31DB80DDD00555337 /* sync_manager.cpp */, - 02E315C41DB80DDD00555337 /* sync_manager.hpp */, - 02E315C51DB80DDD00555337 /* sync_session.cpp */, - 02E315C61DB80DDD00555337 /* sync_session.hpp */, - 02E315C71DB80DDD00555337 /* sync_user.cpp */, - 02E315C81DB80DDD00555337 /* sync_user.hpp */, - ); - name = sync; - sourceTree = ""; - }; - 42387E6524C493AC007FC5A4 /* Recovered References */ = { - isa = PBXGroup; - children = ( - 832C1D2E229D3035001A20C1 /* async_open_task.cpp */, - 4BA4035F23C6664700DE6856 /* object_changeset.cpp */, - ); - name = "Recovered References"; - sourceTree = ""; - }; - 42D9B5EB246511D300AB3349 /* bson */ = { - isa = PBXGroup; - children = ( - 42D9B5F1246511F300AB3349 /* bson.cpp */, - 42D9B5F4246511F300AB3349 /* bson.hpp */, - 42D9B5EC246511F200AB3349 /* indexed_map.hpp */, - 42D9B5ED246511F200AB3349 /* max_key.hpp */, - 42D9B5EE246511F200AB3349 /* min_key.hpp */, - 42D9B5EF246511F300AB3349 /* regular_expression.cpp */, - 42D9B5F0246511F300AB3349 /* regular_expression.hpp */, - ); - path = bson; - sourceTree = ""; - }; - 504CF8521EBCAE3600A9A4B6 /* impl */ = { - isa = PBXGroup; - children = ( - 504CF8531EBCAE3600A9A4B6 /* apple */, - 504CF8581EBCAE3600A9A4B6 /* network_reachability.hpp */, - 504CF8591EBCAE3600A9A4B6 /* sync_client.hpp */, - 504CF85A1EBCAE3600A9A4B6 /* sync_file.cpp */, - 504CF85B1EBCAE3600A9A4B6 /* sync_file.hpp */, - 504CF85C1EBCAE3600A9A4B6 /* sync_metadata.cpp */, - 504CF85D1EBCAE3600A9A4B6 /* sync_metadata.hpp */, - ); - name = impl; - path = src/sync/impl; - sourceTree = ""; - }; - 504CF8531EBCAE3600A9A4B6 /* apple */ = { - isa = PBXGroup; - children = ( - 504CF8541EBCAE3600A9A4B6 /* network_reachability_observer.cpp */, - 504CF8551EBCAE3600A9A4B6 /* network_reachability_observer.hpp */, - 504CF8561EBCAE3600A9A4B6 /* system_configuration.cpp */, - 504CF8571EBCAE3600A9A4B6 /* system_configuration.hpp */, - ); - path = apple; - sourceTree = ""; - }; - F62A35131C18E6E2004A917D /* iOS */ = { - isa = PBXGroup; - children = ( - 0270BC5A1B7CFC1300010E03 /* Info.plist */, - 029048381C042A8F00ABDED4 /* platform.mm */, - ); - name = iOS; - path = ios; - sourceTree = ""; - }; - F62A35141C18E783004A917D /* Object Store */ = { - isa = PBXGroup; - children = ( - 42BD57AF24640AA8008679D5 /* keypath_helpers.hpp */, - F63117EA1CEB0BFA00ECB2DE /* impl */, - 02E315CC1DB80DE000555337 /* sync */, - 02022A6B1DA47EC8000F0C4F /* util */, - 022BF0FF1E7266C800F382F1 /* binding_callback_thread_observer.cpp */, - 022BF1001E7266C800F382F1 /* binding_callback_thread_observer.hpp */, - 02F59EAE1C88F17D007F774C /* binding_context.hpp */, - 02414B961CE6AADD00A8669F /* collection_notifications.cpp */, - 02414B971CE6AADD00A8669F /* collection_notifications.hpp */, - 3FCE2A991F58BE3600D4855B /* feature_checks.hpp */, - 02F59EAF1C88F17D007F774C /* index_set.cpp */, - 02F59EB01C88F17D007F774C /* index_set.hpp */, - 02F59EB11C88F17D007F774C /* list.cpp */, - 02F59EB21C88F17D007F774C /* list.hpp */, - 502B07E31E2CD1FA007A84ED /* object.cpp */, - 502B07E51E2CD20D007A84ED /* object.hpp */, - 02F59EB31C88F17D007F774C /* object_accessor.hpp */, - 02F59EB41C88F17D007F774C /* object_schema.cpp */, - 02F59EB51C88F17D007F774C /* object_schema.hpp */, - 02F59EB61C88F17D007F774C /* object_store.cpp */, - 02F59EB71C88F17D007F774C /* object_store.hpp */, - 02022A4C1DA475C0000F0C4F /* placeholder.cpp */, - 02F59EB81C88F17D007F774C /* property.hpp */, - 02F59EB91C88F17D007F774C /* results.cpp */, - 02F59EBA1C88F17D007F774C /* results.hpp */, - 02F59EBB1C88F17D007F774C /* schema.cpp */, - 02F59EBC1C88F17D007F774C /* schema.hpp */, - 02F59EBD1C88F17D007F774C /* shared_realm.cpp */, - 02F59EBE1C88F17D007F774C /* shared_realm.hpp */, - 5D02C7791E1C83650048C13E /* thread_safe_reference.cpp */, - 5D02C77A1E1C83650048C13E /* thread_safe_reference.hpp */, - ); - name = "Object Store"; - path = "object-store"; - sourceTree = ""; - }; - F62BF9001CAC72C40022BCDC /* Node */ = { - isa = PBXGroup; - children = ( - F620F0551CB655A50082977B /* node_class.hpp */, - F601030A1CC4B64E00EC01BA /* node_context.hpp */, - F6267BCA1CADC49200AC36B1 /* node_dummy.cpp */, - F60103121CC4CBF000EC01BA /* node_exception.hpp */, - F60103101CC4B86000EC01BA /* node_function.hpp */, - F620F0571CB766DA0082977B /* node_init.cpp */, - F60102CF1CBB814A00EC01BA /* node_init.hpp */, - F601030E1CC4B7C900EC01BA /* node_object.hpp */, - F60103071CC4B3DF00EC01BA /* node_protected.hpp */, - F60103151CC4CCFD00EC01BA /* node_return_value.hpp */, - F60103161CC4CD2F00EC01BA /* node_string.hpp */, - F6874A351CAC792D00EEEE36 /* node_types.hpp */, - F601030C1CC4B72B00EC01BA /* node_value.hpp */, - F67478481CC81F1300F9273C /* platform.cpp */, - ); - name = Node; - path = node; - sourceTree = ""; - }; - F63117EA1CEB0BFA00ECB2DE /* impl */ = { - isa = PBXGroup; - children = ( - 02414B991CE6AAEF00A8669F /* collection_change_builder.cpp */, - F63118421CEBA7A100ECB2DE /* android */, - F63117EB1CEB0C1B00ECB2DE /* apple */, - F63118491CEBA7BD00ECB2DE /* generic */, - 02414B9A1CE6AAEF00A8669F /* collection_change_builder.hpp */, - 02414B9B1CE6AAEF00A8669F /* collection_notifier.cpp */, - 02414B9C1CE6AAEF00A8669F /* collection_notifier.hpp */, - 02F59EDA1C88F2BA007F774C /* external_commit_helper.hpp */, - 02414B9D1CE6AAEF00A8669F /* list_notifier.cpp */, - 02414B9E1CE6AAEF00A8669F /* list_notifier.hpp */, - 3FCE2A871F58BDE500D4855B /* object_accessor_impl.hpp */, - 8507156B1E2CFC0100E548DB /* object_notifier.cpp */, - 8507156C1E2CFC0100E548DB /* object_notifier.hpp */, - 02F59EDB1C88F2BA007F774C /* realm_coordinator.cpp */, - 02F59EDC1C88F2BB007F774C /* realm_coordinator.hpp */, - 02414B9F1CE6AAEF00A8669F /* results_notifier.cpp */, - 02414BA01CE6AAEF00A8669F /* results_notifier.hpp */, - 02F59EDD1C88F2BB007F774C /* transact_log_handler.cpp */, - 02F59EDE1C88F2BB007F774C /* transact_log_handler.hpp */, - 02022A4A1DA475A9000F0C4F /* weak_realm_notifier.cpp */, - 02022A481DA474A7000F0C4F /* weak_realm_notifier.hpp */, - ); - name = impl; - path = src/impl; - sourceTree = ""; - }; - F63117EB1CEB0C1B00ECB2DE /* apple */ = { - isa = PBXGroup; - children = ( - 02022A411DA47489000F0C4F /* external_commit_helper.cpp */, - 02022A421DA47489000F0C4F /* external_commit_helper.hpp */, - 02E315DE1DB8233E00555337 /* keychain_helper.cpp */, - 02E315DF1DB8233E00555337 /* keychain_helper.hpp */, - ); - path = apple; - sourceTree = ""; - }; - F63118421CEBA7A100ECB2DE /* android */ = { - isa = PBXGroup; - children = ( - ); - path = android; - sourceTree = ""; - }; - F63118491CEBA7BD00ECB2DE /* generic */ = { - isa = PBXGroup; - children = ( - F631184A1CEBA7D800ECB2DE /* external_commit_helper.cpp */, - F631184B1CEBA7D800ECB2DE /* external_commit_helper.hpp */, - ); - path = generic; - sourceTree = ""; - }; - F63FF2FB1C1642BB00B3B8E0 /* GCDWebServer */ = { - isa = PBXGroup; - children = ( - F63FF2FC1C1642BB00B3B8E0 /* Core */, - F63FF3091C1642BB00B3B8E0 /* Requests */, - F63FF3121C1642BB00B3B8E0 /* Responses */, - ); - name = GCDWebServer; - path = GCDWebServer/GCDWebServer; - sourceTree = ""; - }; - F63FF2FC1C1642BB00B3B8E0 /* Core */ = { - isa = PBXGroup; - children = ( - F63FF2FD1C1642BB00B3B8E0 /* GCDWebServer.h */, - F63FF2FE1C1642BB00B3B8E0 /* GCDWebServer.m */, - F63FF2FF1C1642BB00B3B8E0 /* GCDWebServerConnection.h */, - F63FF3001C1642BB00B3B8E0 /* GCDWebServerConnection.m */, - F63FF3011C1642BB00B3B8E0 /* GCDWebServerFunctions.h */, - F63FF3021C1642BB00B3B8E0 /* GCDWebServerFunctions.m */, - F63FF3031C1642BB00B3B8E0 /* GCDWebServerHTTPStatusCodes.h */, - F63FF3041C1642BB00B3B8E0 /* GCDWebServerPrivate.h */, - F63FF3051C1642BB00B3B8E0 /* GCDWebServerRequest.h */, - F63FF3061C1642BB00B3B8E0 /* GCDWebServerRequest.m */, - F63FF3071C1642BB00B3B8E0 /* GCDWebServerResponse.h */, - F63FF3081C1642BB00B3B8E0 /* GCDWebServerResponse.m */, - ); - path = Core; - sourceTree = ""; - }; - F63FF3091C1642BB00B3B8E0 /* Requests */ = { - isa = PBXGroup; - children = ( - F63FF30A1C1642BB00B3B8E0 /* GCDWebServerDataRequest.h */, - F63FF30B1C1642BB00B3B8E0 /* GCDWebServerDataRequest.m */, - F63FF30C1C1642BB00B3B8E0 /* GCDWebServerFileRequest.h */, - F63FF30D1C1642BB00B3B8E0 /* GCDWebServerFileRequest.m */, - F63FF30E1C1642BB00B3B8E0 /* GCDWebServerMultiPartFormRequest.h */, - F63FF30F1C1642BB00B3B8E0 /* GCDWebServerMultiPartFormRequest.m */, - F63FF3101C1642BB00B3B8E0 /* GCDWebServerURLEncodedFormRequest.h */, - F63FF3111C1642BB00B3B8E0 /* GCDWebServerURLEncodedFormRequest.m */, - ); - path = Requests; - sourceTree = ""; - }; - F63FF3121C1642BB00B3B8E0 /* Responses */ = { - isa = PBXGroup; - children = ( - F63FF3131C1642BB00B3B8E0 /* GCDWebServerDataResponse.h */, - F63FF3141C1642BB00B3B8E0 /* GCDWebServerDataResponse.m */, - F63FF3151C1642BB00B3B8E0 /* GCDWebServerErrorResponse.h */, - F63FF3161C1642BB00B3B8E0 /* GCDWebServerErrorResponse.m */, - F63FF3171C1642BB00B3B8E0 /* GCDWebServerFileResponse.h */, - F63FF3181C1642BB00B3B8E0 /* GCDWebServerFileResponse.m */, - F63FF3191C1642BB00B3B8E0 /* GCDWebServerStreamedResponse.h */, - F63FF31A1C1642BB00B3B8E0 /* GCDWebServerStreamedResponse.m */, - ); - path = Responses; - sourceTree = ""; - }; - F6874A441CAD2ACD00EEEE36 /* JSC */ = { - isa = PBXGroup; - children = ( - DC0FCC4C256817E80028429B /* jsc_rpc_network_transport.hpp */, - F620F0531CAF2EF70082977B /* jsc_class.hpp */, - F60103091CC4B5E800EC01BA /* jsc_context.hpp */, - F60103111CC4BA6500EC01BA /* jsc_exception.hpp */, - F601030F1CC4B80800EC01BA /* jsc_function.hpp */, - 029048011C0428DF00ABDED4 /* jsc_init.cpp */, - 029048021C0428DF00ABDED4 /* jsc_init.h */, - F60102D11CBB865A00EC01BA /* jsc_init.hpp */, - F601030D1CC4B76F00EC01BA /* jsc_object.hpp */, - F60103081CC4B4F900EC01BA /* jsc_protected.hpp */, - F60103141CC4CC8C00EC01BA /* jsc_return_value.hpp */, - F60103131CC4CC4500EC01BA /* jsc_string.hpp */, - 025678951CAB392000FB8501 /* jsc_types.hpp */, - 5D1BF0561EF1DB4800B7DC87 /* jsc_value.cpp */, - F601030B1CC4B6C900EC01BA /* jsc_value.hpp */, - ); - name = JSC; - path = jsc; - sourceTree = ""; - }; - F6C3FBB41BF680D000E6FFD4 /* Vendor */ = { - isa = PBXGroup; - children = ( - F63FF2FB1C1642BB00B3B8E0 /* GCDWebServer */, - F6BB7DEF1BF681BC00D0A69E /* base64.cpp */, - F6BB7DF01BF681BC00D0A69E /* base64.hpp */, - ); - name = Vendor; - path = ../vendor; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 02B58CBB1AE99CEC009B348C /* RealmJSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 02B58CCA1AE99CEC009B348C /* Build configuration list for PBXNativeTarget "RealmJSTests" */; - buildPhases = ( - 02B58CB81AE99CEC009B348C /* Sources */, - 02B58CB91AE99CEC009B348C /* Frameworks */, - 02B58CBA1AE99CEC009B348C /* Resources */, - 02879D8D1DC29F2000777A5D /* Install Node Modules */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = RealmJSTests; - productName = RealmJSTests; - productReference = 02B58CBC1AE99CEC009B348C /* RealmJSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - F63FF2B01C1241E500B3B8E0 /* RealmJS */ = { - isa = PBXNativeTarget; - buildConfigurationList = F63FF2C41C1241E500B3B8E0 /* Build configuration list for PBXNativeTarget "RealmJS" */; - buildPhases = ( - F63FF2C51C12462600B3B8E0 /* Download Core */, - F63FF2AD1C1241E500B3B8E0 /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = RealmJS; - productName = libRealmJS; - productReference = F63FF2B11C1241E500B3B8E0 /* libRealmJS.a */; - productType = "com.apple.product-type.library.static"; - }; - F63FF2EF1C16405C00B3B8E0 /* GCDWebServers */ = { - isa = PBXNativeTarget; - buildConfigurationList = F63FF2F51C16405D00B3B8E0 /* Build configuration list for PBXNativeTarget "GCDWebServers" */; - buildPhases = ( - F63FF2EC1C16405C00B3B8E0 /* Sources */, - F63FF2ED1C16405C00B3B8E0 /* Frameworks */, - F63FF2EE1C16405C00B3B8E0 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = GCDWebServers; - productName = GCDWebServers; - productReference = F63FF2F01C16405C00B3B8E0 /* libGCDWebServers.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 02B58CA81AE99CEB009B348C /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = Realm; - TargetAttributes = { - 02B58CBB1AE99CEC009B348C = { - CreatedOnToolsVersion = 6.3.1; - }; - F63FF2B01C1241E500B3B8E0 = { - CreatedOnToolsVersion = 7.1.1; - }; - F63FF2EF1C16405C00B3B8E0 = { - CreatedOnToolsVersion = 7.1.1; - }; - }; - }; - buildConfigurationList = 02B58CAB1AE99CEB009B348C /* Build configuration list for PBXProject "RealmJS" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = 02B58CA71AE99CEB009B348C; - productRefGroup = 02B58CB21AE99CEC009B348C /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - F63FF2EF1C16405C00B3B8E0 /* GCDWebServers */, - F63FF2B01C1241E500B3B8E0 /* RealmJS */, - 02B58CBB1AE99CEC009B348C /* RealmJSTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 02B58CBA1AE99CEC009B348C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 02D041F71CE11159000E4250 /* dates-v3.realm in Resources */, - 02414B881CE68CA200A8669F /* dates-v5.realm in Resources */, - F61378791C18EAC5008BFC51 /* js in Resources */, - F6BCCFE21C8380A400FE31AE /* lib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 02879D8D1DC29F2000777A5D /* Install Node Modules */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Install Node Modules"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd \"$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH\"\nyarn add --production --ignore-scripts react-native-fs\n"; - }; - F63FF2C51C12462600B3B8E0 /* Download Core */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Download Core"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [[ -d \"$HOME/.asdf/shims\" ]]; then\n export PATH=$HOME/.asdf/shims:$PATH\nfi\n\n[ -z \"$NVM_DIR\" ] && export NVM_DIR=\"$HOME/.nvm\"\n\nif [[ -s \"$HOME/.nvm/nvm.sh\" ]]; then\n . \"$HOME/.nvm/nvm.sh\"\nelif [[ -x \"$(command -v brew)\" && -s \"$(brew --prefix nvm)/nvm.sh\" ]]; then\n . \"$(brew --prefix nvm)/nvm.sh\"\nfi\n\necho \"Using Node.js $(node --version)\"\n\ncd ..\nnode scripts/download-realm.js ios --sync\n\necho \"Done\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 02B58CB81AE99CEC009B348C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 02409DC21BCF11D6005F3B3E /* RealmJSCoreTests.m in Sources */, - 0270BC821B7D020100010E03 /* RealmJSTests.mm in Sources */, - F68A278C1BC2722A0063D40A /* RJSModuleLoader.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F63FF2AD1C1241E500B3B8E0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A4F1ACB82563E0E600D52257 /* mongo_client.cpp in Sources */, - A4F1ACB92563E0E600D52257 /* mongo_collection.cpp in Sources */, - A4F1ACBA2563E0E600D52257 /* mongo_database.cpp in Sources */, - A45BFF8E253700F2004BF4E6 /* app_utils.cpp in Sources */, - A482144A24F4043B00A166F4 /* push_client.cpp in Sources */, - A4DD71E524F3D1CA00B77603 /* scheduler.cpp in Sources */, - 42D9B5F52465185C00AB3349 /* app_credentials.cpp in Sources */, - 42D9B5F72465185C00AB3349 /* app.cpp in Sources */, - 42D9B5F82465185D00AB3349 /* generic_network_transport.cpp in Sources */, - 42D9B5FC2465185D00AB3349 /* bson.cpp in Sources */, - 42D9B5FE2465185D00AB3349 /* regular_expression.cpp in Sources */, - 832C1D2F229D3035001A20C1 /* async_open_task.cpp in Sources */, - 3FDC253821F919AD0087FB9B /* sync_file.cpp in Sources */, - F63FF2E21C15921A00B3B8E0 /* base64.cpp in Sources */, - 022BF1021E7266DF00F382F1 /* binding_callback_thread_observer.cpp in Sources */, - 02414BA51CE6ABCF00A8669F /* collection_change_builder.cpp in Sources */, - 02414BA91CE6ABCF00A8669F /* collection_notifications.cpp in Sources */, - 02414BA61CE6ABCF00A8669F /* collection_notifier.cpp in Sources */, - 02022A581DA476CD000F0C4F /* external_commit_helper.cpp in Sources */, - 02F59EBF1C88F17D007F774C /* index_set.cpp in Sources */, - F63FF2C91C12469E00B3B8E0 /* js_realm.cpp in Sources */, - F63FF2C61C12469E00B3B8E0 /* jsc_init.cpp in Sources */, - 5D1BF0571EF1DB4800B7DC87 /* jsc_value.cpp in Sources */, - 02E315E01DB8233E00555337 /* keychain_helper.cpp in Sources */, - 02F59EC01C88F17D007F774C /* list.cpp in Sources */, - 02414BA71CE6ABCF00A8669F /* list_notifier.cpp in Sources */, - 504CF85E1EBCAE3600A9A4B6 /* network_reachability_observer.cpp in Sources */, - 502B07E41E2CD201007A84ED /* object.cpp in Sources */, - 4BA4036023C6664700DE6856 /* object_changeset.cpp in Sources */, - 8507156E1E2CFCD000E548DB /* object_notifier.cpp in Sources */, - 02F59EC11C88F17D007F774C /* object_schema.cpp in Sources */, - 02F59EC21C88F17D007F774C /* object_store.cpp in Sources */, - 02022A5B1DA476CD000F0C4F /* placeholder.cpp in Sources */, - F63FF2E81C159C4B00B3B8E0 /* platform.mm in Sources */, - 02F59EE21C88F2BB007F774C /* realm_coordinator.cpp in Sources */, - 02F59EC31C88F17D007F774C /* results.cpp in Sources */, - 02414BA81CE6ABCF00A8669F /* results_notifier.cpp in Sources */, - F63FF2CD1C12469E00B3B8E0 /* rpc.cpp in Sources */, - 02F59EC41C88F17D007F774C /* schema.cpp in Sources */, - 02F59EC51C88F17D007F774C /* shared_realm.cpp in Sources */, - 02E315C91DB80DDD00555337 /* sync_manager.cpp in Sources */, - 504CF8611EBCAE3600A9A4B6 /* sync_metadata.cpp in Sources */, - 02E315CA1DB80DDD00555337 /* sync_session.cpp in Sources */, - 02E315CB1DB80DDD00555337 /* sync_user.cpp in Sources */, - 504CF85F1EBCAE3600A9A4B6 /* system_configuration.cpp in Sources */, - 50C671001E1D2D31003CB63C /* thread_safe_reference.cpp in Sources */, - 02F59EE31C88F2BB007F774C /* transact_log_handler.cpp in Sources */, - 3FCE2A931F58BE0300D4855B /* uuid.cpp in Sources */, - 02022A5A1DA476CD000F0C4F /* weak_realm_notifier.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F63FF2EC1C16405C00B3B8E0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F63FF31B1C1642BB00B3B8E0 /* GCDWebServer.m in Sources */, - F63FF31C1C1642BB00B3B8E0 /* GCDWebServerConnection.m in Sources */, - F63FF3201C1642BB00B3B8E0 /* GCDWebServerDataRequest.m in Sources */, - F63FF3241C1642BB00B3B8E0 /* GCDWebServerDataResponse.m in Sources */, - F63FF3251C1642BB00B3B8E0 /* GCDWebServerErrorResponse.m in Sources */, - F63FF3211C1642BB00B3B8E0 /* GCDWebServerFileRequest.m in Sources */, - F63FF3261C1642BB00B3B8E0 /* GCDWebServerFileResponse.m in Sources */, - F63FF31D1C1642BB00B3B8E0 /* GCDWebServerFunctions.m in Sources */, - F63FF3221C1642BB00B3B8E0 /* GCDWebServerMultiPartFormRequest.m in Sources */, - F63FF31E1C1642BB00B3B8E0 /* GCDWebServerRequest.m in Sources */, - F63FF31F1C1642BB00B3B8E0 /* GCDWebServerResponse.m in Sources */, - F63FF3271C1642BB00B3B8E0 /* GCDWebServerStreamedResponse.m in Sources */, - F63FF3231C1642BB00B3B8E0 /* GCDWebServerURLEncodedFormRequest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 02B58CC51AE99CEC009B348C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CC = "$(SRCROOT)/../scripts/ccache-clang.sh"; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "compiler-default"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 10.2.0; - CXX = "$(SRCROOT)/../scripts/ccache-clang++.sh"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - REALM_DEBUG, - REALM_HAVE_CONFIG, - __ASSERTMACROS__, - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/object-store/external/json", - "$(SRCROOT)/object-store/src", - "$(SRCROOT)/../vendor", - "$(SRCROOT)/../vendor/realm-ios/include", - "$(SRCROOT)/../vendor/realm-ios/include/realm", - ); - "HEADER_SEARCH_PATHS[arch=*]" = ( - "$(SRCROOT)/object-store/external/json", - "$(SRCROOT)/object-store/src", - "$(SRCROOT)/../vendor", - "$(SRCROOT)/../vendor/realm-ios/include", - "$(SRCROOT)/../vendor/realm-ios/include/realm", - ); - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-ftemplate-backtrace-limit=0", - ); - SDKROOT = iphoneos; - STRIP_INSTALLED_PRODUCT = NO; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 02B58CC61AE99CEC009B348C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CC = "$(SRCROOT)/../scripts/ccache-clang.sh"; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "compiler-default"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 10.2.0; - CXX = "$(SRCROOT)/../scripts/ccache-clang++.sh"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - REALM_HAVE_CONFIG, - __ASSERTMACROS__, - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/object-store/external/json", - "$(SRCROOT)/object-store/src", - "$(SRCROOT)/../vendor", - "$(SRCROOT)/../vendor/realm-ios/include", - "$(SRCROOT)/../vendor/realm-ios/include/realm", - ); - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-ftemplate-backtrace-limit=0", - ); - SDKROOT = iphoneos; - STRIP_INSTALLED_PRODUCT = NO; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 02B58CCB1AE99CEC009B348C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = ../tests/ios/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_CPLUSPLUSFLAGS = ( - "$(inherited)", - "-isystem", - ../core/include, - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.realm.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 02B58CCC1AE99CEC009B348C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = ../tests/ios/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_CPLUSPLUSFLAGS = ( - "$(inherited)", - "-isystem", - ../core/include, - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.realm.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - F63FF2B71C1241E500B3B8E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_INLINES_ARE_PRIVATE_EXTERN = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - REALM_DEBUG, - REALM_HAVE_CONFIG, - __ASSERTMACROS__, - REALM_ENABLE_SYNC, - ); - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/object-store/external/json", - "$(SRCROOT)/object-store/src", - "$(SRCROOT)/../vendor/**", - "$(SRCROOT)/../vendor/realm-ios/include/**", - "$(SRCROOT)/../vendor/realm-ios/include/realm/**", - ); - "HEADER_SEARCH_PATHS[arch=*]" = ( - "$(SRCROOT)/object-store/external/json/**", - "$(SRCROOT)/object-store/src/**", - "$(SRCROOT)/../vendor/**", - "$(SRCROOT)/../vendor/realm-ios/include/**", - "$(SRCROOT)/../vendor/realm-ios/include/realm/**", - ); - OTHER_CPLUSPLUSFLAGS = ( - "$(inherited)", - "-isystem", - "$(SRCROOT)/../vendor/core/include", - "-isystem", - "$(SRCROOT)/../vendor/sync/include", - ); - OTHER_LIBTOOLFLAGS = "$(SRCROOT)/../vendor/realm-ios/librealm-parser-ios-dbg.a $(SRCROOT)/../vendor/realm-ios/librealm-sync-ios-dbg.a"; - PRODUCT_NAME = RealmJS; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - F63FF2B91C1241E500B3B8E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INLINES_ARE_PRIVATE_EXTERN = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - REALM_HAVE_CONFIG, - __ASSERTMACROS__, - REALM_ENABLE_SYNC, - ); - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/object-store/external/json/**", - "$(SRCROOT)/object-store/src/**", - "$(SRCROOT)/../vendor/**", - "$(SRCROOT)/../vendor/realm-ios/include/**", - "$(SRCROOT)/../vendor/realm-ios/include/realm/**", - ); - OTHER_CPLUSPLUSFLAGS = ( - "$(inherited)", - "-isystem", - "$(SRCROOT)/../vendor/core/include", - "-isystem", - "$(SRCROOT)/../vendor/sync/include", - ); - OTHER_LIBTOOLFLAGS = "$(SRCROOT)/../vendor/realm-ios/librealm-parser-ios.a $(SRCROOT)/../vendor/realm-ios/librealm-sync-ios.a"; - PRODUCT_NAME = RealmJS; - SKIP_INSTALL = YES; - }; - name = Release; - }; - F63FF2F61C16405D00B3B8E0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/object-store/src/**", - "$(SRCROOT)/../vendor/**", - "$(SRCROOT)/../vendor/core/include/**", - ); - "HEADER_SEARCH_PATHS[arch=*]" = ( - "$(SRCROOT)/object-store/external/json/**", - "$(SRCROOT)/object-store/src/**", - "$(SRCROOT)/../vendor/**", - "$(SRCROOT)/../vendor/realm-ios/include/**", - "$(SRCROOT)/../vendor/realm-ios/include/realm/**", - ); - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - F63FF2F81C16405D00B3B8E0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/object-store/external/json/**", - "$(SRCROOT)/object-store/src/**", - "$(SRCROOT)/../vendor/**", - "$(SRCROOT)/../vendor/core/include/**", - ); - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 02B58CAB1AE99CEB009B348C /* Build configuration list for PBXProject "RealmJS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 02B58CC51AE99CEC009B348C /* Debug */, - 02B58CC61AE99CEC009B348C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 02B58CCA1AE99CEC009B348C /* Build configuration list for PBXNativeTarget "RealmJSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 02B58CCB1AE99CEC009B348C /* Debug */, - 02B58CCC1AE99CEC009B348C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F63FF2C41C1241E500B3B8E0 /* Build configuration list for PBXNativeTarget "RealmJS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F63FF2B71C1241E500B3B8E0 /* Debug */, - F63FF2B91C1241E500B3B8E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F63FF2F51C16405D00B3B8E0 /* Build configuration list for PBXNativeTarget "GCDWebServers" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F63FF2F61C16405D00B3B8E0 /* Debug */, - F63FF2F81C16405D00B3B8E0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 02B58CA81AE99CEB009B348C /* Project object */; -} diff --git a/src/RealmJS.xcodeproj/xcshareddata/xcschemes/GCDWebServers.xcscheme b/src/RealmJS.xcodeproj/xcshareddata/xcschemes/GCDWebServers.xcscheme deleted file mode 100644 index 0a79ca73a8..0000000000 --- a/src/RealmJS.xcodeproj/xcshareddata/xcschemes/GCDWebServers.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/RealmJS.xcodeproj/xcshareddata/xcschemes/RealmJS.xcscheme b/src/RealmJS.xcodeproj/xcshareddata/xcschemes/RealmJS.xcscheme deleted file mode 100644 index 296fe1d2c4..0000000000 --- a/src/RealmJS.xcodeproj/xcshareddata/xcschemes/RealmJS.xcscheme +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/RealmJS.xcodeproj/xcshareddata/xcschemes/RealmNode.xcscheme b/src/RealmJS.xcodeproj/xcshareddata/xcschemes/RealmNode.xcscheme deleted file mode 100644 index c4f807dfbd..0000000000 --- a/src/RealmJS.xcodeproj/xcshareddata/xcschemes/RealmNode.xcscheme +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/android/CMakeLists.txt b/src/android/CMakeLists.txt index d6051e8595..9fb70df4f1 100644 --- a/src/android/CMakeLists.txt +++ b/src/android/CMakeLists.txt @@ -72,6 +72,7 @@ if(REALM_JS_BUILD_CORE_FROM_SOURCE AND TARGET ObjectStore) ) endif() +target_include_directories(realm-js-jsc PUBLIC "../jsc/include") target_include_directories(realm-js-android PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_directories(realm-js-android PUBLIC "${JSC_LIB_DIR}") diff --git a/src/android/io_realm_react_RealmReactModule.cpp b/src/android/io_realm_react_RealmReactModule.cpp index 3faa6e770e..a42c4e0c7d 100644 --- a/src/android/io_realm_react_RealmReactModule.cpp +++ b/src/android/io_realm_react_RealmReactModule.cpp @@ -106,10 +106,10 @@ JNIEXPORT jstring JNICALL Java_io_realm_react_RealmReactModule_processChromeDebu { const char* cmd = env->GetStringUTFChars(chrome_cmd, NULL); const char* args = env->GetStringUTFChars(chrome_args, NULL); - json response = s_rpc_server->perform_request(cmd, json::parse(args)); + std::string response = s_rpc_server->perform_request(cmd, args); env->ReleaseStringUTFChars(chrome_cmd, cmd); env->ReleaseStringUTFChars(chrome_args, args); - return env->NewStringUTF(response.dump().c_str()); + return env->NewStringUTF(response.c_str()); } JNIEXPORT jboolean JNICALL Java_io_realm_react_RealmReactModule_tryRunTask diff --git a/src/ios/CMakeLists.txt b/src/ios/CMakeLists.txt new file mode 100644 index 0000000000..a7d7d5aa8c --- /dev/null +++ b/src/ios/CMakeLists.txt @@ -0,0 +1,6 @@ +add_library(realm-js-ios STATIC + platform.mm +) + +target_link_libraries(realm-js-jsc PUBLIC "-framework JavaScriptCore") +target_link_libraries(realm-js-ios realm-js-jsc realm-js-shared) diff --git a/src/ios/Info.plist b/src/ios/Info.plist deleted file mode 100644 index 0e600e67e7..0000000000 --- a/src/ios/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - $(CURRENT_PROJECT_VERSION) - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/src/ios/platform.mm b/src/ios/platform.mm index d1012698f3..3c464b814c 100644 --- a/src/ios/platform.mm +++ b/src/ios/platform.mm @@ -16,7 +16,7 @@ // //////////////////////////////////////////////////////////////////////////// -#include "platform.hpp" +#include "../platform.hpp" #include diff --git a/src/jsc/CMakeLists.txt b/src/jsc/CMakeLists.txt index 9a26a90295..656264d45d 100644 --- a/src/jsc/CMakeLists.txt +++ b/src/jsc/CMakeLists.txt @@ -4,6 +4,6 @@ add_library(realm-js-jsc OBJECT rpc.cpp ) -target_include_directories(realm-js-jsc PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_include_directories(realm-js-jsc PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(realm-js-jsc realm-js-shared) \ No newline at end of file +target_link_libraries(realm-js-jsc PUBLIC realm-js-shared) diff --git a/src/jsc/jsc_init.cpp b/src/jsc/jsc_init.cpp index 192ad42f25..b6696e73fc 100644 --- a/src/jsc/jsc_init.cpp +++ b/src/jsc/jsc_init.cpp @@ -19,6 +19,9 @@ #include #include +#include +#include + #include "jsc_init.hpp" #include "platform.hpp" namespace realm { @@ -51,4 +54,11 @@ void RJSInitializeInContext(JSContextRef ctx) { jsc::Object::set_property(ctx, global_object, realm_string, realm_constructor, js::ReadOnly | js::DontEnum | js::DontDelete); } +void RJSInvalidateCaches() { + // Close all cached Realms + realm::_impl::RealmCoordinator::clear_all_caches(); + // Clear the Object Store App cache, to prevent instances from using a context that was released + realm::app::App::clear_cached_apps(); +} + } // extern "C" diff --git a/src/jsc/jsc_init.h b/src/jsc/jsc_init.h index 7b51ad7938..8521abef9d 100644 --- a/src/jsc/jsc_init.h +++ b/src/jsc/jsc_init.h @@ -26,6 +26,7 @@ extern "C" { JSObjectRef RJSConstructorCreate(JSContextRef ctx); void RJSInitializeInContext(JSContextRef ctx); +void RJSInvalidateCaches(); #ifdef __cplusplus } diff --git a/src/jsc/jsc_rpc_network_transport.hpp b/src/jsc/jsc_rpc_network_transport.hpp index 49926e9ef0..ef923688a6 100644 --- a/src/jsc/jsc_rpc_network_transport.hpp +++ b/src/jsc/jsc_rpc_network_transport.hpp @@ -18,10 +18,10 @@ #pragma once -#include "realm/object-store/sync/generic_network_transport.hpp" +#include +#include #include "js_types.hpp" #include "js_network_transport.hpp" -#include namespace realm { namespace rpc { diff --git a/src/jsc/rpc.cpp b/src/jsc/rpc.cpp index 7ea1ae0c86..a090ebfe85 100644 --- a/src/jsc/rpc.cpp +++ b/src/jsc/rpc.cpp @@ -19,7 +19,9 @@ #include #include #include -#include +#include +#include +#include #include "rpc.hpp" #include "jsc_init.hpp" @@ -31,13 +33,93 @@ #include "jsc_rpc_network_transport.hpp" #include "js_app.hpp" +#include "concurrent_deque.hpp" +#include +#include "jsc_types.hpp" +#include "jsc_protected.hpp" +#include "js_network_transport.hpp" + using namespace realm; using namespace realm::rpc; +using json = nlohmann::json; + +using RPCObjectID = u_int64_t; +using RPCRequest = std::function; +using NetworkTransportFactory = typename js::JavaScriptNetworkTransport::NetworkTransportFactory; + using Value = js::Value; using Accessor = realm::js::NativeAccessor; using AppClass = js::AppClass; +namespace realm::rpc { + +class RPCWorker { + public: + RPCWorker(); + ~RPCWorker(); + + template + json add_task(Fn&&); + void invoke_callback(json); + json resolve_callback(json args); + std::future add_promise(); + + bool try_run_task(); + void stop(); + json try_pop_callback(); + bool should_stop(); + + private: + bool m_stop = false; + int m_depth = 0; +#if __APPLE__ + std::thread m_thread; + CFRunLoopRef m_loop; +#endif + ConcurrentDeque> m_tasks; + ConcurrentDeque> m_promises; + ConcurrentDeque m_callbacks; +}; + +class RPCServerImpl { +public: + RPCServerImpl(); + ~RPCServerImpl(); + json perform_request(std::string const& name, json&& args); + bool try_run_task(); +private: + JSGlobalContextRef m_context; + std::mutex m_request_mutex; + std::map m_requests; + std::map> m_objects; + std::map> m_callbacks; + // The key here is the same as the value in m_callbacks. We use the raw pointer as a key here, + // because protecting the value in m_callbacks pins the function object and prevents it from being moved + // by the garbage collector upon compaction. + std::map m_callback_ids; + RPCObjectID m_session_id; + RPCWorker m_worker; + u_int64_t m_callback_call_counter; + uint64_t m_reset_counter = 0; + + std::mutex m_pending_callbacks_mutex; + std::map, std::promise> m_pending_callbacks; + + NetworkTransportFactory previous_transport_generator; + + static JSValueRef run_callback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef *exception); + + RPCObjectID store_object(JSObjectRef object); + JSObjectRef get_object(RPCObjectID) const; + JSObjectRef get_realm_constructor() const; + + json serialize_json_value(JSValueRef value); + JSValueRef deserialize_json_value(const json dict); +}; + +} + namespace { static const char * const RealmObjectTypesData = "data"; static const char * const RealmObjectTypesDate = "date"; @@ -87,8 +169,8 @@ json get_type(Container const& c) { }; } -RPCServer*& get_rpc_server(JSGlobalContextRef ctx) { - static std::map s_map; +RPCServerImpl*& get_rpc_server(JSGlobalContextRef ctx) { + static std::map s_map; return s_map[ctx]; } } @@ -258,7 +340,7 @@ static json read_object_properties(Object& object) { return cache; } -RPCServer::RPCServer() { +RPCServerImpl::RPCServerImpl() { m_context = JSGlobalContextCreate(NULL); get_rpc_server(m_context) = this; m_callback_call_counter = 1; @@ -633,7 +715,7 @@ RPCServer::RPCServer() { }; } -RPCServer::~RPCServer() { +RPCServerImpl::~RPCServerImpl() { m_worker.stop(); // The protected values should be unprotected before releasing the context. @@ -650,9 +732,9 @@ RPCServer::~RPCServer() { /** * Asks the client to execute a callback and awaits the result. */ -JSValueRef RPCServer::run_callback(JSContextRef ctx, JSObjectRef function, JSObjectRef this_object, +JSValueRef RPCServerImpl::run_callback(JSContextRef ctx, JSObjectRef function, JSObjectRef this_object, size_t argc, const JSValueRef arguments[], JSValueRef* exception) { - RPCServer* server = get_rpc_server(JSContextGetGlobalContext(ctx)); + RPCServerImpl* server = get_rpc_server(JSContextGetGlobalContext(ctx)); if (!server) { return JSValueMakeUndefined(ctx); } @@ -722,7 +804,7 @@ JSValueRef RPCServer::run_callback(JSContextRef ctx, JSObjectRef function, JSObj return server->deserialize_json_value(results["result"]); } -json RPCServer::perform_request(std::string const& name, json&& args) { +json RPCServerImpl::perform_request(std::string const& name, json&& args) { std::lock_guard lock(m_request_mutex); // Only create_session is allowed without the correct session id (since it creates the session id). @@ -781,11 +863,11 @@ json RPCServer::perform_request(std::string const& name, json&& args) { }); } -bool RPCServer::try_run_task() { +bool RPCServerImpl::try_run_task() { return m_worker.try_run_task(); } -RPCObjectID RPCServer::store_object(JSObjectRef object) { +RPCObjectID RPCServerImpl::store_object(JSObjectRef object) { static RPCObjectID s_next_id = 1; RPCObjectID next_id = s_next_id++; @@ -793,12 +875,12 @@ RPCObjectID RPCServer::store_object(JSObjectRef object) { return next_id; } -JSObjectRef RPCServer::get_object(RPCObjectID oid) const { +JSObjectRef RPCServerImpl::get_object(RPCObjectID oid) const { auto it = m_objects.find(oid); return it == m_objects.end() ? nullptr : static_cast(it->second); } -JSObjectRef RPCServer::get_realm_constructor() const { +JSObjectRef RPCServerImpl::get_realm_constructor() const { JSObjectRef realm_constructor = m_session_id ? JSObjectRef(get_object(m_session_id)) : NULL; if (!realm_constructor) { throw std::runtime_error("Realm constructor not found!"); @@ -806,7 +888,7 @@ JSObjectRef RPCServer::get_realm_constructor() const { return realm_constructor; } -json RPCServer::serialize_json_value(JSValueRef js_value) { +json RPCServerImpl::serialize_json_value(JSValueRef js_value) { switch (JSValueGetType(m_context, js_value)) { case kJSTypeUndefined: return json::object(); @@ -992,7 +1074,7 @@ json RPCServer::serialize_json_value(JSValueRef js_value) { assert(0); } -JSValueRef RPCServer::deserialize_json_value(const json dict) { +JSValueRef RPCServerImpl::deserialize_json_value(const json dict) { json oid = dict.value("id", json()); if (oid.is_number()) { return m_objects[oid.get()]; @@ -1081,3 +1163,17 @@ JSValueRef RPCServer::deserialize_json_value(const json dict) { assert(0); } + +RPCServer::RPCServer() : m_impl(new RPCServerImpl()) { + +} + +RPCServer::~RPCServer() = default; + +std::string RPCServer::perform_request(std::string const& name, std::string const& json_args) { + return m_impl->perform_request(name, json::parse(json_args)).dump(); +} + +bool RPCServer::try_run_task() { + return m_impl->try_run_task(); +} diff --git a/src/jsc/rpc.hpp b/src/jsc/rpc.hpp index 57e45d7de5..d8979993e9 100644 --- a/src/jsc/rpc.hpp +++ b/src/jsc/rpc.hpp @@ -18,93 +18,21 @@ #pragma once -#include -#include -#include - -#include "jsc_init.hpp" -#include "concurrent_deque.hpp" -#include -#include "jsc_types.hpp" -#include "jsc_protected.hpp" -#include "js_network_transport.hpp" +#include +#include namespace realm { - -class ObjectSchema; - namespace rpc { -using json = nlohmann::json; - -using RPCObjectID = u_int64_t; -using RPCRequest = std::function; -using NetworkTransportFactory = typename js::JavaScriptNetworkTransport::NetworkTransportFactory; - -class RPCWorker { - public: - RPCWorker(); - ~RPCWorker(); - - template - json add_task(Fn&&); - void invoke_callback(json); - json resolve_callback(json args); - std::future add_promise(); - - bool try_run_task(); - void stop(); - json try_pop_callback(); - bool should_stop(); - - private: - bool m_stop = false; - int m_depth = 0; -#if __APPLE__ - std::thread m_thread; - CFRunLoopRef m_loop; -#endif - ConcurrentDeque> m_tasks; - ConcurrentDeque> m_promises; - ConcurrentDeque m_callbacks; -}; - +class RPCServerImpl; class RPCServer { public: RPCServer(); ~RPCServer(); - json perform_request(std::string const& name, json&& args); + std::string perform_request(std::string const& name, std::string const& json_args); bool try_run_task(); - - private: - JSGlobalContextRef m_context; - std::mutex m_request_mutex; - std::map m_requests; - std::map> m_objects; - std::map> m_callbacks; - // The key here is the same as the value in m_callbacks. We use the raw pointer as a key here, - // because protecting the value in m_callbacks pins the function object and prevents it from being moved - // by the garbage collector upon compaction. - std::map m_callback_ids; - RPCObjectID m_session_id; - RPCWorker m_worker; - u_int64_t m_callback_call_counter; - uint64_t m_reset_counter = 0; - - std::mutex m_pending_callbacks_mutex; - std::map, std::promise> m_pending_callbacks; - - NetworkTransportFactory previous_transport_generator; - - static JSValueRef run_callback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef *exception); - - RPCObjectID store_object(JSObjectRef object); - JSObjectRef get_object(RPCObjectID) const; - JSObjectRef get_realm_constructor() const; - - json serialize_json_value(JSValueRef value); - JSValueRef deserialize_json_value(const json dict); + std::unique_ptr m_impl; }; } // rpc