Showing preview only (2,386K chars total). Download the full file or copy to clipboard to get everything.
Repository: microsoft/react-native-code-push
Branch: master
Commit: 50a7ed5bc0f1
Files: 389
Total size: 2.2 MB
Directory structure:
gitextract_eag1d8bl/
├── .azurepipelines/
│ ├── build-rn-code-push-1es.yml
│ └── test-rn-code-push.yml
├── .config/
│ └── CredScanSuppressions.json
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE.md
│ └── policies/
│ └── resourceManagement.yml
├── .gitignore
├── .npmignore
├── .vscode/
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── .watchmanconfig
├── AlertAdapter.js
├── CONTRIBUTING.md
├── CodePush.js
├── CodePush.podspec
├── Examples/
│ ├── CodePushDemoApp/
│ │ ├── .buckconfig
│ │ ├── .editorconfig
│ │ ├── .eslintrc.js
│ │ ├── .flowconfig
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .prettierrc.js
│ │ ├── .watchmanconfig
│ │ ├── App.js
│ │ ├── __tests__/
│ │ │ └── App-test.js
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── debug.keystore
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── codepushdemoapp/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── ios/
│ │ │ ├── CodePushDemoApp/
│ │ │ │ ├── AppDelegate.h
│ │ │ │ ├── AppDelegate.m
│ │ │ │ ├── Images.xcassets/
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Info.plist
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── main.m
│ │ │ ├── CodePushDemoApp.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ └── CodePushDemoApp.xcscheme
│ │ │ ├── CodePushDemoApp.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── CodePushDemoAppTests/
│ │ │ │ ├── CodePushDemoAppTests.m
│ │ │ │ └── Info.plist
│ │ │ └── Podfile
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── CodePushDemoAppCpp/
│ │ ├── .buckconfig
│ │ ├── .eslintrc.js
│ │ ├── .flowconfig
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .prettierrc.js
│ │ ├── .watchmanconfig
│ │ ├── App.js
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── windows/
│ │ ├── .gitignore
│ │ ├── CodePushDemoAppCpp/
│ │ │ ├── .gitignore
│ │ │ ├── App.cpp
│ │ │ ├── App.h
│ │ │ ├── App.idl
│ │ │ ├── App.xaml
│ │ │ ├── AutolinkedNativeModules.g.cpp
│ │ │ ├── AutolinkedNativeModules.g.h
│ │ │ ├── AutolinkedNativeModules.g.targets
│ │ │ ├── CodePushDemoAppCpp.vcxproj
│ │ │ ├── CodePushDemoAppCpp.vcxproj.filters
│ │ │ ├── CodePushDemoAppCpp_TemporaryKey.pfx
│ │ │ ├── MainPage.cpp
│ │ │ ├── MainPage.h
│ │ │ ├── MainPage.idl
│ │ │ ├── MainPage.xaml
│ │ │ ├── Package.appxmanifest
│ │ │ ├── PropertySheet.props
│ │ │ ├── ReactPackageProvider.cpp
│ │ │ ├── ReactPackageProvider.h
│ │ │ ├── packages.config
│ │ │ ├── pch.cpp
│ │ │ └── pch.h
│ │ └── CodePushDemoAppCpp.sln
│ ├── create-app.js
│ └── nexpect.js
├── LICENSE.md
├── README.md
├── Recipes/
│ ├── UpdateButton.ios.js
│ └── UpdateOnStart.ios.js
├── SECURITY.md
├── android/
│ ├── app/
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src/
│ │ ├── debug/
│ │ │ └── AndroidManifest.xml
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── microsoft/
│ │ └── codepush/
│ │ └── react/
│ │ ├── CodePush.java
│ │ ├── CodePushBuilder.java
│ │ ├── CodePushConstants.java
│ │ ├── CodePushDialog.java
│ │ ├── CodePushInstallMode.java
│ │ ├── CodePushInvalidPublicKeyException.java
│ │ ├── CodePushInvalidUpdateException.java
│ │ ├── CodePushMalformedDataException.java
│ │ ├── CodePushNativeModule.java
│ │ ├── CodePushNotInitializedException.java
│ │ ├── CodePushTelemetryManager.java
│ │ ├── CodePushUnknownException.java
│ │ ├── CodePushUpdateManager.java
│ │ ├── CodePushUpdateState.java
│ │ ├── CodePushUpdateUtils.java
│ │ ├── CodePushUtils.java
│ │ ├── DownloadProgress.java
│ │ ├── DownloadProgressCallback.java
│ │ ├── FileUtils.java
│ │ ├── ReactInstanceHolder.java
│ │ ├── SettingsManager.java
│ │ └── TLSSocketFactory.java
│ ├── build.gradle
│ ├── codepush.gradle
│ ├── gradle/
│ │ └── wrapper/
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── code-push-plugin-testing-framework/
│ ├── package.json
│ ├── script/
│ │ ├── index.js
│ │ ├── platform.js
│ │ ├── projectManager.js
│ │ ├── serverUtil.js
│ │ ├── test.js
│ │ ├── testBuilder.js
│ │ ├── testConfig.js
│ │ └── testUtil.js
│ └── typings/
│ └── code-push-plugin-testing-framework.d.ts
├── docs/
│ ├── api-android.md
│ ├── api-ios.md
│ ├── api-js.md
│ ├── multi-deployment-testing-android.md
│ ├── multi-deployment-testing-ios.md
│ ├── setup-android.md
│ ├── setup-ios.md
│ └── setup-windows.md
├── ios/
│ ├── CodePush/
│ │ ├── Base64/
│ │ │ ├── Base64/
│ │ │ │ ├── MF_Base64Additions.h
│ │ │ │ └── MF_Base64Additions.m
│ │ │ └── README.md
│ │ ├── CodePush.h
│ │ ├── CodePush.m
│ │ ├── CodePushConfig.m
│ │ ├── CodePushDownloadHandler.m
│ │ ├── CodePushErrorUtils.m
│ │ ├── CodePushPackage.m
│ │ ├── CodePushTelemetryManager.m
│ │ ├── CodePushUpdateUtils.m
│ │ ├── CodePushUtils.m
│ │ ├── JWT/
│ │ │ ├── Core/
│ │ │ │ ├── Algorithms/
│ │ │ │ │ ├── Base/
│ │ │ │ │ │ ├── JWTAlgorithm.h
│ │ │ │ │ │ ├── JWTAlgorithmFactory.h
│ │ │ │ │ │ ├── JWTAlgorithmFactory.m
│ │ │ │ │ │ ├── JWTAlgorithmNone.h
│ │ │ │ │ │ └── JWTAlgorithmNone.m
│ │ │ │ │ ├── ESFamily/
│ │ │ │ │ │ ├── JWTAlgorithmESBase.h
│ │ │ │ │ │ └── JWTAlgorithmESBase.m
│ │ │ │ │ ├── HSFamily/
│ │ │ │ │ │ ├── JWTAlgorithmHSBase.h
│ │ │ │ │ │ └── JWTAlgorithmHSBase.m
│ │ │ │ │ ├── Holders/
│ │ │ │ │ │ ├── JWTAlgorithmDataHolder.h
│ │ │ │ │ │ ├── JWTAlgorithmDataHolder.m
│ │ │ │ │ │ ├── JWTAlgorithmDataHolderChain.h
│ │ │ │ │ │ └── JWTAlgorithmDataHolderChain.m
│ │ │ │ │ └── RSFamily/
│ │ │ │ │ ├── JWTAlgorithmRSBase.h
│ │ │ │ │ ├── JWTAlgorithmRSBase.m
│ │ │ │ │ ├── JWTRSAlgorithm.h
│ │ │ │ │ └── RSKeys/
│ │ │ │ │ ├── JWTCryptoKey.h
│ │ │ │ │ ├── JWTCryptoKey.m
│ │ │ │ │ ├── JWTCryptoKeyExtractor.h
│ │ │ │ │ ├── JWTCryptoKeyExtractor.m
│ │ │ │ │ ├── JWTCryptoSecurity.h
│ │ │ │ │ └── JWTCryptoSecurity.m
│ │ │ │ ├── ClaimSet/
│ │ │ │ │ ├── JWTClaim.h
│ │ │ │ │ ├── JWTClaim.m
│ │ │ │ │ ├── JWTClaimsSet.h
│ │ │ │ │ ├── JWTClaimsSet.m
│ │ │ │ │ ├── JWTClaimsSetSerializer.h
│ │ │ │ │ ├── JWTClaimsSetSerializer.m
│ │ │ │ │ ├── JWTClaimsSetVerifier.h
│ │ │ │ │ └── JWTClaimsSetVerifier.m
│ │ │ │ ├── Coding/
│ │ │ │ │ ├── JWTCoding+ResultTypes.h
│ │ │ │ │ ├── JWTCoding+ResultTypes.m
│ │ │ │ │ ├── JWTCoding+VersionOne.h
│ │ │ │ │ ├── JWTCoding+VersionOne.m
│ │ │ │ │ ├── JWTCoding+VersionThree.h
│ │ │ │ │ ├── JWTCoding+VersionThree.m
│ │ │ │ │ ├── JWTCoding+VersionTwo.h
│ │ │ │ │ ├── JWTCoding+VersionTwo.m
│ │ │ │ │ ├── JWTCoding.h
│ │ │ │ │ └── JWTCoding.m
│ │ │ │ ├── FrameworkSupplement/
│ │ │ │ │ ├── JWT.h
│ │ │ │ │ └── Map.modulemap
│ │ │ │ └── Supplement/
│ │ │ │ ├── JWTBase64Coder.h
│ │ │ │ ├── JWTBase64Coder.m
│ │ │ │ ├── JWTDeprecations.h
│ │ │ │ ├── JWTErrorDescription.h
│ │ │ │ └── JWTErrorDescription.m
│ │ │ ├── LICENSE
│ │ │ └── README.md
│ │ ├── RCTConvert+CodePushInstallMode.m
│ │ ├── RCTConvert+CodePushUpdateState.m
│ │ └── SSZipArchive/
│ │ ├── Info.plist
│ │ ├── README.md
│ │ ├── SSZipArchive.h
│ │ ├── SSZipArchive.m
│ │ ├── SSZipCommon.h
│ │ ├── Supporting Files/
│ │ │ └── PrivacyInfo.xcprivacy
│ │ ├── include/
│ │ │ └── ZipArchive.h
│ │ └── minizip/
│ │ ├── LICENSE
│ │ ├── mz.h
│ │ ├── mz_compat.c
│ │ ├── mz_compat.h
│ │ ├── mz_crypt.c
│ │ ├── mz_crypt.h
│ │ ├── mz_crypt_apple.c
│ │ ├── mz_os.c
│ │ ├── mz_os.h
│ │ ├── mz_os_posix.c
│ │ ├── mz_strm.c
│ │ ├── mz_strm.h
│ │ ├── mz_strm_buf.c
│ │ ├── mz_strm_buf.h
│ │ ├── mz_strm_mem.c
│ │ ├── mz_strm_mem.h
│ │ ├── mz_strm_os.h
│ │ ├── mz_strm_os_posix.c
│ │ ├── mz_strm_pkcrypt.c
│ │ ├── mz_strm_pkcrypt.h
│ │ ├── mz_strm_split.c
│ │ ├── mz_strm_split.h
│ │ ├── mz_strm_wzaes.c
│ │ ├── mz_strm_wzaes.h
│ │ ├── mz_strm_zlib.c
│ │ ├── mz_strm_zlib.h
│ │ ├── mz_zip.c
│ │ ├── mz_zip.h
│ │ ├── mz_zip_rw.c
│ │ └── mz_zip_rw.h
│ ├── CodePush.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata/
│ │ └── IDEWorkspaceChecks.plist
│ └── PrivacyInfo.xcprivacy
├── logging.js
├── package-mixins.js
├── package.json
├── react-native.config.js
├── request-fetch-adapter.js
├── scripts/
│ ├── generateBundledResourcesHash.js
│ ├── getFilesInFolder.js
│ ├── postlink/
│ │ ├── android/
│ │ │ └── postlink.js
│ │ ├── ios/
│ │ │ └── postlink.js
│ │ └── run.js
│ ├── postunlink/
│ │ ├── android/
│ │ │ └── postunlink.js
│ │ ├── ios/
│ │ │ └── postunlink.js
│ │ └── run.js
│ ├── recordFilesBeforeBundleCommand.js
│ └── tools/
│ ├── linkToolsAndroid.js
│ └── linkToolsIos.js
├── test/
│ ├── template/
│ │ ├── android/
│ │ │ └── app/
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── testcodepush/
│ │ │ │ └── MainApplication.java
│ │ │ └── res/
│ │ │ └── values/
│ │ │ └── strings.xml
│ │ ├── codePushWrapper.js
│ │ ├── index.js
│ │ ├── ios/
│ │ │ └── TestCodePush/
│ │ │ └── AppDelegate.mm
│ │ └── scenarios/
│ │ ├── scenarioCheckForUpdate.js
│ │ ├── scenarioCheckForUpdateCustomKey.js
│ │ ├── scenarioDisallowRestartImmediate.js
│ │ ├── scenarioDisallowRestartOnResume.js
│ │ ├── scenarioDisallowRestartOnSuspend.js
│ │ ├── scenarioDownloadUpdate.js
│ │ ├── scenarioInstall.js
│ │ ├── scenarioInstallOnRestartWithRevert.js
│ │ ├── scenarioInstallOnResumeWithRevert.js
│ │ ├── scenarioInstallOnSuspendWithRevert.js
│ │ ├── scenarioInstallRestart2x.js
│ │ ├── scenarioInstallWithRevert.js
│ │ ├── scenarioRestart.js
│ │ ├── scenarioRestart2x.js
│ │ ├── scenarioSync.js
│ │ ├── scenarioSync2x.js
│ │ ├── scenarioSyncMandatoryDefault.js
│ │ ├── scenarioSyncMandatoryRestart.js
│ │ ├── scenarioSyncMandatoryResume.js
│ │ ├── scenarioSyncMandatorySuspend.js
│ │ ├── scenarioSyncRestartDelay.js
│ │ ├── scenarioSyncResume.js
│ │ ├── scenarioSyncResumeDelay.js
│ │ ├── scenarioSyncSuspend.js
│ │ ├── scenarioSyncSuspendDelay.js
│ │ ├── updateDeviceReady.js
│ │ ├── updateNARConditional.js
│ │ ├── updateNotifyApplicationReady.js
│ │ ├── updateSync.js
│ │ └── updateSync2x.js
│ └── test.ts
├── tsconfig.json
├── tslint.json
├── typings/
│ └── react-native-code-push.d.ts
├── windows/
│ ├── .gitignore
│ ├── .npmignore
│ ├── CodePush/
│ │ ├── .npmignore
│ │ ├── CodePush.def
│ │ ├── CodePush.vcxproj
│ │ ├── CodePush.vcxproj.filters
│ │ ├── CodePushConfig.cpp
│ │ ├── CodePushConfig.h
│ │ ├── CodePushConfig.idl
│ │ ├── CodePushDownloadHandler.cpp
│ │ ├── CodePushDownloadHandler.h
│ │ ├── CodePushNativeModule.cpp
│ │ ├── CodePushNativeModule.h
│ │ ├── CodePushPackage.cpp
│ │ ├── CodePushPackage.h
│ │ ├── CodePushTelemetryManager.cpp
│ │ ├── CodePushTelemetryManager.h
│ │ ├── CodePushUpdateUtils.cpp
│ │ ├── CodePushUpdateUtils.h
│ │ ├── CodePushUtils.cpp
│ │ ├── CodePushUtils.h
│ │ ├── FileUtils.cpp
│ │ ├── FileUtils.h
│ │ ├── PropertySheet.props
│ │ ├── ReactPackageProvider.cpp
│ │ ├── ReactPackageProvider.h
│ │ ├── ReactPackageProvider.idl
│ │ ├── miniz/
│ │ │ ├── LICENSE
│ │ │ ├── miniz.c
│ │ │ ├── miniz.h
│ │ │ └── readme.md
│ │ ├── packages.config
│ │ ├── pch.cpp
│ │ └── pch.h
│ └── Directory.Build.props
└── windows-legacy/
├── .gitignore
├── .npmignore
├── CodePush/
│ ├── .gitignore
│ ├── CodePush.csproj
│ ├── CodePushUtils.cs
│ ├── FileUtils.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ └── CodePush.rd.xml
│ ├── UpdateManager.cs
│ └── UpdateUtils.cs
├── CodePush.Net46/
│ ├── .gitignore
│ ├── Adapters/
│ │ ├── Http/
│ │ │ └── HttpProgress.cs
│ │ └── Storage/
│ │ └── ApplicationDataContainer.cs
│ ├── CodePush.Net46.csproj
│ ├── CodePushUtils.cs
│ ├── FileUtils.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── UpdateManager.cs
│ ├── UpdateUtils.cs
│ └── packages.config
├── CodePush.Net46.Test/
│ ├── ApplicationDataContainerTest.cs
│ ├── CodePush.Net46.Test.csproj
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TelemetryManagerTest.cs
│ ├── app.config
│ └── packages.config
└── CodePush.Shared/
├── CodePush.Shared.projitems
├── CodePush.Shared.shproj
├── CodePushConstants.cs
├── CodePushNativeModule.cs
├── CodePushReactPackage.cs
├── CodePushUtils.cs
├── InstallMode.cs
├── MinimumBackgroundListener.cs
├── SettingsManager.cs
├── TelemetryManager.cs
└── UpdateState.cs
================================================
FILE CONTENTS
================================================
================================================
FILE: .azurepipelines/build-rn-code-push-1es.yml
================================================
trigger:
- master
pr:
- master
resources:
repositories:
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
name: $(Build.SourceBranchName)_$(date:yyyyMMdd)$(rev:.r)
extends:
${{ if eq(variables['Build.SourceBranch'], 'refs/heads/master') }}:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
${{ else }}:
template: v1/1ES.Unofficial.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
pool:
name: 1ES-PT-CBL-Mariner-2.0-Gen2
os: linux
customBuildTags:
- ES365AIMigrationTooling-BulkMigrated
sdl:
sourceAnalysisPool: 1ES-PT-Windows-2022
credscan:
suppressionsFile: $(Build.SourcesDirectory)/.config/CredScanSuppressions.json
stages:
- stage: Stage
jobs:
- job: HostJob
templateContext:
outputs:
- output: pipelineArtifact
displayName: "Publish Artifact: artifacts"
path: '$(Build.ArtifactStagingDirectory)/npm'
artifactName: npm
steps:
- task: NodeTool@0
inputs:
versionSpec: '14.x'
displayName: 'Install Node.js'
- script: |
npm pack
npm install -g react-native-code-push*.tgz
displayName: 'Package react-native-code-push'
workingDirectory: $(Build.SourcesDirectory)
- task: DeleteFiles@1
inputs:
contents: node_modules
displayName: 'Delete node_modules'
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.SourcesDirectory)'
includeRootFolder: false
archiveType: 'tar'
archiveFile: '$(Build.ArtifactStagingDirectory)/npm/$(Build.BuildId).tgz'
replaceExistingArchive: true
verbose: true
displayName: 'Prepare npm artifact'
- stage: APIScan
dependsOn: Stage
pool:
name: 1ES-PT-Windows-2022
os: windows
variables:
"agent.source.skip": true
jobs:
- job: APIScan
steps:
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifacts for APIScan
inputs:
artifactName: npm
targetPath: '$(Agent.BuildDirectory)/npm'
- task: ExtractFiles@1
inputs:
archiveFilePatterns: '$(Agent.BuildDirectory)/npm/*.tgz'
destinationFolder: '$(Agent.BuildDirectory)/npm_extracted'
- task: AzureKeyVault@2
inputs:
azureSubscription: 'AC - Dev Infra & Build Pool'
KeyVaultName: 'mobile-center-sdk'
SecretsFilter: 'appcenter-sdk-managed-identity-clientid'
RunAsPreJob: false
- task: APIScan@2
displayName: 'Run APIScan'
inputs:
softwareFolder: '$(Agent.BuildDirectory)\npm_extracted'
softwareName: 'react-native-code-push'
softwareVersionNum: '$(Build.BuildId)'
isLargeApp: false
toolVersion: 'Latest'
verbosityLevel: verbose
condition: and(succeeded(), ne(variables['DisableAPIScan'], 'true'))
env:
AzureServicesAuthConnectionString: 'runAs=App;AppId=$(appcenter-sdk-managed-identity-clientid)'
================================================
FILE: .azurepipelines/test-rn-code-push.yml
================================================
trigger:
- master
pr:
- master
variables:
- name: api-level
value: '27'
pool:
vmImage: 'macOS-12'
stages:
- stage: RunTests
displayName: 'Run Android & IOS tests'
jobs:
- job: TestAndroid
timeoutInMinutes: 120
displayName: 'Test android'
steps:
- script: |
adb devices
displayName: 'Start adb server'
- script: |
$ANDROID_HOME/tools/bin/sdkmanager "system-images;android-$(api-level);google_apis;x86"
displayName: 'Download system image'
- script: |
$ANDROID_HOME/tools/bin/avdmanager create avd --force --name TestEmulator --abi google_apis/x86 --package 'system-images;android-$(api-level);google_apis;x86' --device "Nexus 6P"
displayName: 'Creating Android emulator'
- script: |
$ANDROID_HOME/emulator/emulator -avd TestEmulator -noaudio -no-window -no-snapshot-save -no-boot-anim -memory 6144 &
displayName: 'Start Android emulator'
- script: |
$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done'
displayName: 'Wait for emulator to boot'
- script: |
adb shell settings put global window_animation_scale 0.0
displayName: 'Disable animations and transitions'
- script: |
adb shell settings put global transition_animation_scale 0.0
displayName: 'Disable animations and transitions'
- script: |
adb shell settings put global animator_duration_scale 0.0
displayName: 'Disable animations and transitions'
- task: JavaToolInstaller@0
inputs:
versionSpec: '11'
jdkArchitectureOption: 'x64'
jdkSourceOption: 'PreInstalled'
displayName: 'Change Java version'
- script: |
npm install
displayName: 'Package Installation'
- script: |
npm run build:tests && npm run test:setup:android
displayName: 'Setup Android tests'
- script: |
npm run test:fast:android
displayName: 'Run Android test'
- job: TestIOS
timeoutInMinutes: 120
displayName: 'Test IOS'
steps:
- script: |
npm install
displayName: 'Install dependencies'
- script: |
npm run build:tests && npm run test:setup:ios
displayName: 'Setup iOS tests'
- script: |
npm run test:fast:ios
displayName: 'Run tests'
================================================
FILE: .config/CredScanSuppressions.json
================================================
{
"tool": "Credential Scanner",
"suppressions": [
{
"file": "/Examples/CodePushDemoApp/android/app/debug.keystore",
"_justification": "Used only in DemoApp"
},
{
"file": "/Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/CodePushDemoAppCpp_TemporaryKey.pfx",
"_justification": "Used only in DemoApp"
}
]
}
================================================
FILE: .github/CODEOWNERS
================================================
* @microsoft/appcenter-fte
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
Thanks so much for filing an issue or feature request! Please fill out the following (wherever relevant):
### Steps to Reproduce
1.
2.
3.
### Expected Behavior
What you expected to happen?
### Actual Behavior
What actually happens?
```
STACK TRACE AND/OR SCREENSHOTS
```
### Reproducible Demo
* Download https://github.com/microsoft/react-native-code-push/archive/master.zip and unzip. From `Examples` folder run `node create-app.js appName react-native@0.71.19 react-native-code-push@9.0.1` command to generate plain CodePushified React Native app. Please see description on top of `create-app.js` file content if needed
* If you can't reproduce the bug on it, provide us as much info as possible about your project
### Environment
* react-native-code-push version:
* react-native version:
* iOS/Android/Windows version:
* Does this reproduce on a debug build or release build?
* Does this reproduce on a simulator, or only on a physical device?
(The more info the faster we will be able to address it!)
================================================
FILE: .github/policies/resourceManagement.yml
================================================
id:
name: GitOps.PullRequestIssueManagement
description: GitOps.PullRequestIssueManagement primitive
owner:
resource: repository
disabled: false
where:
configuration:
resourceManagementConfiguration:
scheduledSearches:
- description:
frequencies:
- hourly:
hour: 4
filters:
- isOpen
- isNotLabeledWith:
label: bug
- isNotLabeledWith:
label: security
- isNotLabeledWith:
label: stale
- isNotLabeledWith:
label: do not close
- noActivitySince:
days: 60
- isIssue
- isNotAssigned
actions:
- addLabel:
label: stale
- addReply:
reply: This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.
- description:
frequencies:
- hourly:
hour: 6
filters:
- isOpen
- isIssue
- hasLabel:
label: stale
- isNotLabeledWith:
label: bug
- isNotLabeledWith:
label: do not close
- isNotAssigned
- noActivitySince:
days: 15
actions:
- addReply:
reply: This issue will now be closed because it hasn't had any activity for 15 days after stale. Please feel free to open a new issue if you still have a question/issue or suggestion.
- closeIssue
eventResponderTasks:
- if:
- payloadType: Issue_Comment
- hasLabel:
label: stale
then:
- removeLabel:
label: stale
description:
onFailure:
onSuccess:
================================================
FILE: .gitignore
================================================
# gitignore contributors: remember to update .npmignore
# OSX
#
.DS_Store
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
## Obj-C/Swift specific
*.hmap
*.ipa
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
#Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
### Node
# Logs
logs
*.log
# Runtime data
pids
*.pid
*.seed
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directory
# https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git
node_modules
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## OSX
.DS_Store
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
# Intellij project files
*.iml
*.ipr
*.iws
.idea/
#Gradle
.gradletasknamecache
.gradle/
build/
bin/
# Built application files
*.apk
*.ap_
# Files for the Dalvik VM
*.dex
# Java class files
*.class
# Generated files
bin/
gen/
# Gradle files
.gradle/
build/
*/build/
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
proguard/
# Log Files
*.log
# Android Studio Navigation editor temp files
.navigation/
# Android Studio captures folder
captures/
# Remove after this framework is published on NPM
code-push-plugin-testing-framework/node_modules
# Windows
windows/.vs/
windows/obj/
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.opensdf
*.opendb
*.unsuccessfulbuild
ipch/
[Oo]bj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
# RN New Version App Generation
Examples/testapp_rn
# Android debug build files (conflict ignoring #Visual Studio files)
!android/app/src/debug/
================================================
FILE: .npmignore
================================================
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# node.js
#
node_modules/
npm-debug.log
# Don't publish example apps
Examples/
Recipes/
# Don't publish testing code
bin/
test/
# Remove after this framework is published on NPM
code-push-plugin-testing-framework/
# Android build artifacts and Android Studio bits
android/app/build
android/local.properties
android/.gradle
android/**/*.iml
android/.idea
# Windows
windows/.vs/
windows/obj/
#Tests
windows/CodePush.Net46.Test
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.opensdf
*.opendb
*.unsuccessfulbuild
ipch/
[Oo]bj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#NuGet
packages/
*.nupkg
# VSCode
.vscode/
# IntelliJIDEA
.idea/
# Github
.github/
# Git
.git/
.watchmanconfig
================================================
FILE: .vscode/launch.json
================================================
{
"version": "0.2.0",
"configurations": [
{
"name": "Tests-android",
"type": "node",
"request": "launch",
"preLaunchTask": "Setup-android",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run",
"test:debugger:android"
],
"port": 9229,
"stopOnEntry": false,
"sourceMaps": true,
"console": "internalConsole",
"internalConsoleOptions": "openOnSessionStart",
"autoAttachChildProcesses": true,
"timeout": 100000
},
{
"name": "Tests-ios",
"type": "node",
"request": "launch",
"preLaunchTask": "Setup-ios",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run",
"test:debugger:ios"
],
"port": 9229,
"stopOnEntry": false,
"sourceMaps": true,
"console": "internalConsole",
"internalConsoleOptions": "openOnSessionStart",
"autoAttachChildProcesses": true,
"timeout": 100000
}
]
}
================================================
FILE: .vscode/settings.json
================================================
{
"typescript.tsdk": "node_modules/typescript/lib"
}
================================================
FILE: .vscode/tasks.json
================================================
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "Build",
"command": "npm",
"args": [
"run",
"build:tests"
],
"presentation": {
"echo": false,
"focus": false
},
"problemMatcher": [
"$tsc"
]
},
{
"type": "shell",
"label": "Setup-android",
"dependsOn": "Build",
"command": "npm",
"args": [
"run",
"test:setup:android"
],
"presentation": {
"echo": false,
"focus": false
},
"problemMatcher": [
"$tsc"
]
},
{
"type": "shell",
"label": "Setup-ios",
"dependsOn": "Build",
"command": "npm",
"args": [
"run",
"test:setup:ios"
],
"presentation": {
"echo": false,
"focus": false
},
"problemMatcher": [
"$tsc"
]
}
]
}
================================================
FILE: .watchmanconfig
================================================
{}
================================================
FILE: AlertAdapter.js
================================================
import React, { Platform } from "react-native";
let { Alert } = React;
if (Platform.OS === "android") {
const { NativeModules: { CodePushDialog } } = React;
Alert = {
alert(title, message, buttons) {
if (buttons.length > 2) {
throw "Can only show 2 buttons for Android dialog.";
}
const button1Text = buttons[0] ? buttons[0].text : null,
button2Text = buttons[1] ? buttons[1].text : null;
CodePushDialog.showDialog(
title, message, button1Text, button2Text,
(buttonId) => { buttons[buttonId].onPress && buttons[buttonId].onPress(); },
(error) => { throw error; });
}
};
}
module.exports = { Alert };
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
## Using the plugin
### Environment setup
`node.js` and `npm` are needed for using this project. `npm` comes bundled with the `node.js` installer. You can download the `node.js` installer here: https://nodejs.org/download/.
Once you have installed `node.js` and `npm`, install the dev dependencies for the project.
```
npm install
```
### Using the plugin manually
Follow these steps to test your modifications to the plugin manually:
- clone this repository
- install the dependencies
Navigate to the root folder from your command line console and run:
```
npm install
```
- install the plugin in a React-Native project
Navigate to the root folder of your React-Native project from your command line console and run:
```
npm install local_path_to_your_clone_of_this_repo
```
- configure the plugin using the steps in the README.md
- build and run your app on an emulator or device
## Test
### Environment setup
First, make sure you have installed the dependencies for the plugin by following the steps above.
Then, make sure you have installed `react-native`.
```
npm install -g react-native
```
To run Android tests, make sure you have `sdk\tools`, `sdk\emulator` and `sdk\platform-tools` in your PATH.
To run iOS tests, make sure you've installed CocoaPods and have `.gem/bin` in your PATH.
### Supported platforms
The plugin has end to end tests for Android and iOS. Depending on your development machine OS, you can run some or all the tests.
OS | Supported tests
------------- | -------------
OS X | Android, iOS
Windows | Android
### Test descriptions
The tests first build the app.
They then check if the required emulators are currently running.
If an Android emulator is not running, it attempts to boot the latest Android emulator. You can specify an emulator by adding env variable `ANDROID_EMU=yourEmulatorNameHere` to the npm command. For example: `ANDROID_EMU=yourEmulatorNameHere npm run test:android`.
If an iOS simulator is not running, it attempts to boot the latest iOS iPhone simulator. You can specify a simulator by adding env variable `IOS_EMU=yourSimulatorNameHere` to the npm command. For example: `IOS_EMU="iPhone 8 (0567DFF8-329E-41A3-BD6D-E48E9DD5EF39)" npm run test:ios`.
If all the required emulators are not running and the tests fail to boot them, the tests will fail.
If you would like the tests to always restart the necessary emulators (killing them if they are currently running), setup a env variable `CLEAN=true` to the command. For example: `CLEAN=true npm run test`.
The desired unit tests are then run.
If you would like to skip building, add a `:fast` in the command you'd like to run. For example, `npm run test:ios` becomes `npm run test:fast:ios` or `npm run test:android` becomes `npm run test:fast:android`.
There is a both a full unit test suite and a "core" set of unit tests that you may run. If you would like to run only the core tests, setup a env variable `CORE=true` to the command. For example: `CORE=true npm run test:android`.
If you would like to pull the plugin from NPM rather than running the tests on the local version, setup a env variable `NPM=true` to the command. For example: `NPM=true npm run test:ios`.
#### Default
To run all of the unit tests on Android and iOS:
```
npm run test
```
#### iOS
To run all of the unit tests on iOS:
```
npm run test:ios
```
#### Android
To run all of the unit tests on Android:
```
npm run test:android
```
#### More examples
All possible testing configurations have tasks!
The platforms are ordered as follows, and ran in that order:
android, ios
To run the core unit tests on Android:
```
CORE=true npm run test:android
```
To run all of the unit tests on iOS and pull the plugin from NPM:
```
NPM=true npm run test:ios
```
To run all of the unit tests on Android and iOS without building first:
```
npm run test:fast
```
To run all of the unit tests on iOS and restart the emulators:
```
CLEAN=true npm run test:ios
```
To run the core unit tests on Android and pull the plugin from NPM:
```
NPM=true CORE=true npm run test:android
```
...and so on!
================================================
FILE: CodePush.js
================================================
import { AcquisitionManager as Sdk } from "code-push/script/acquisition-sdk";
import { Alert } from "./AlertAdapter";
import requestFetchAdapter from "./request-fetch-adapter";
import { AppState, Platform } from "react-native";
import log from "./logging";
import hoistStatics from 'hoist-non-react-statics';
let NativeCodePush = require("react-native").NativeModules.CodePush;
const PackageMixins = require("./package-mixins")(NativeCodePush);
async function checkForUpdate(deploymentKey = null, handleBinaryVersionMismatchCallback = null) {
/*
* Before we ask the server if an update exists, we
* need to retrieve three pieces of information from the
* native side: deployment key, app version (e.g. 1.0.1)
* and the hash of the currently running update (if there is one).
* This allows the client to only receive updates which are targetted
* for their specific deployment and version and which are actually
* different from the CodePush update they have already installed.
*/
const nativeConfig = await getConfiguration();
/*
* If a deployment key was explicitly provided,
* then let's override the one we retrieved
* from the native-side of the app. This allows
* dynamically "redirecting" end-users at different
* deployments (e.g. an early access deployment for insiders).
*/
const config = deploymentKey ? { ...nativeConfig, ...{ deploymentKey } } : nativeConfig;
const sdk = getPromisifiedSdk(requestFetchAdapter, config);
// Use dynamically overridden getCurrentPackage() during tests.
const localPackage = await module.exports.getCurrentPackage();
/*
* If the app has a previously installed update, and that update
* was targetted at the same app version that is currently running,
* then we want to use its package hash to determine whether a new
* release has been made on the server. Otherwise, we only need
* to send the app version to the server, since we are interested
* in any updates for current binary version, regardless of hash.
*/
let queryPackage;
if (localPackage) {
queryPackage = localPackage;
} else {
queryPackage = { appVersion: config.appVersion };
if (Platform.OS === "ios" && config.packageHash) {
queryPackage.packageHash = config.packageHash;
}
}
const update = await sdk.queryUpdateWithCurrentPackage(queryPackage);
/*
* There are four cases where checkForUpdate will resolve to null:
* ----------------------------------------------------------------
* 1) The server said there isn't an update. This is the most common case.
* 2) The server said there is an update but it requires a newer binary version.
* This would occur when end-users are running an older binary version than
* is available, and CodePush is making sure they don't get an update that
* potentially wouldn't be compatible with what they are running.
* 3) The server said there is an update, but the update's hash is the same as
* the currently running update. This should _never_ happen, unless there is a
* bug in the server, but we're adding this check just to double-check that the
* client app is resilient to a potential issue with the update check.
* 4) The server said there is an update, but the update's hash is the same as that
* of the binary's currently running version. This should only happen in Android -
* unlike iOS, we don't attach the binary's hash to the updateCheck request
* because we want to avoid having to install diff updates against the binary's
* version, which we can't do yet on Android.
*/
if (!update || update.updateAppVersion ||
localPackage && (update.packageHash === localPackage.packageHash) ||
(!localPackage || localPackage._isDebugOnly) && config.packageHash === update.packageHash) {
if (update && update.updateAppVersion) {
log("An update is available but it is not targeting the binary version of your app.");
if (handleBinaryVersionMismatchCallback && typeof handleBinaryVersionMismatchCallback === "function") {
handleBinaryVersionMismatchCallback(update)
}
}
return null;
} else {
const remotePackage = { ...update, ...PackageMixins.remote(sdk.reportStatusDownload) };
remotePackage.failedInstall = await NativeCodePush.isFailedUpdate(remotePackage.packageHash);
remotePackage.deploymentKey = deploymentKey || nativeConfig.deploymentKey;
return remotePackage;
}
}
const getConfiguration = (() => {
let config;
return async function getConfiguration() {
if (config) {
return config;
} else if (testConfig) {
return testConfig;
} else {
config = await NativeCodePush.getConfiguration();
return config;
}
}
})();
async function getCurrentPackage() {
return await getUpdateMetadata(CodePush.UpdateState.LATEST);
}
async function getUpdateMetadata(updateState) {
let updateMetadata = await NativeCodePush.getUpdateMetadata(updateState || CodePush.UpdateState.RUNNING);
if (updateMetadata) {
updateMetadata = {...PackageMixins.local, ...updateMetadata};
updateMetadata.failedInstall = await NativeCodePush.isFailedUpdate(updateMetadata.packageHash);
updateMetadata.isFirstRun = await NativeCodePush.isFirstRun(updateMetadata.packageHash);
}
return updateMetadata;
}
function getPromisifiedSdk(requestFetchAdapter, config) {
// Use dynamically overridden AcquisitionSdk during tests.
const sdk = new module.exports.AcquisitionSdk(requestFetchAdapter, config);
sdk.queryUpdateWithCurrentPackage = (queryPackage) => {
return new Promise((resolve, reject) => {
module.exports.AcquisitionSdk.prototype.queryUpdateWithCurrentPackage.call(sdk, queryPackage, (err, update) => {
if (err) {
reject(err);
} else {
resolve(update);
}
});
});
};
sdk.reportStatusDeploy = (deployedPackage, status, previousLabelOrAppVersion, previousDeploymentKey) => {
return new Promise((resolve, reject) => {
module.exports.AcquisitionSdk.prototype.reportStatusDeploy.call(sdk, deployedPackage, status, previousLabelOrAppVersion, previousDeploymentKey, (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
};
sdk.reportStatusDownload = (downloadedPackage) => {
return new Promise((resolve, reject) => {
module.exports.AcquisitionSdk.prototype.reportStatusDownload.call(sdk, downloadedPackage, (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
};
return sdk;
}
// This ensures that notifyApplicationReadyInternal is only called once
// in the lifetime of this module instance.
const notifyApplicationReady = (() => {
let notifyApplicationReadyPromise;
return () => {
if (!notifyApplicationReadyPromise) {
notifyApplicationReadyPromise = notifyApplicationReadyInternal();
}
return notifyApplicationReadyPromise;
};
})();
async function notifyApplicationReadyInternal() {
await NativeCodePush.notifyApplicationReady();
const statusReport = await NativeCodePush.getNewStatusReport();
statusReport && tryReportStatus(statusReport); // Don't wait for this to complete.
return statusReport;
}
async function tryReportStatus(statusReport, retryOnAppResume) {
const config = await getConfiguration();
const previousLabelOrAppVersion = statusReport.previousLabelOrAppVersion;
const previousDeploymentKey = statusReport.previousDeploymentKey || config.deploymentKey;
try {
if (statusReport.appVersion) {
log(`Reporting binary update (${statusReport.appVersion})`);
if (!config.deploymentKey) {
throw new Error("Deployment key is missed");
}
const sdk = getPromisifiedSdk(requestFetchAdapter, config);
await sdk.reportStatusDeploy(/* deployedPackage */ null, /* status */ null, previousLabelOrAppVersion, previousDeploymentKey);
} else {
const label = statusReport.package.label;
if (statusReport.status === "DeploymentSucceeded") {
log(`Reporting CodePush update success (${label})`);
} else {
log(`Reporting CodePush update rollback (${label})`);
await NativeCodePush.setLatestRollbackInfo(statusReport.package.packageHash);
}
config.deploymentKey = statusReport.package.deploymentKey;
const sdk = getPromisifiedSdk(requestFetchAdapter, config);
await sdk.reportStatusDeploy(statusReport.package, statusReport.status, previousLabelOrAppVersion, previousDeploymentKey);
}
NativeCodePush.recordStatusReported(statusReport);
retryOnAppResume && retryOnAppResume.remove();
} catch (e) {
log(`Report status failed: ${JSON.stringify(statusReport)}`);
NativeCodePush.saveStatusReportForRetry(statusReport);
// Try again when the app resumes
if (!retryOnAppResume) {
const resumeListener = AppState.addEventListener("change", async (newState) => {
if (newState !== "active") return;
const refreshedStatusReport = await NativeCodePush.getNewStatusReport();
if (refreshedStatusReport) {
tryReportStatus(refreshedStatusReport, resumeListener);
} else {
resumeListener && resumeListener.remove();
}
});
}
}
}
async function shouldUpdateBeIgnored(remotePackage, syncOptions) {
let { rollbackRetryOptions } = syncOptions;
const isFailedPackage = remotePackage && remotePackage.failedInstall;
if (!isFailedPackage || !syncOptions.ignoreFailedUpdates) {
return false;
}
if (!rollbackRetryOptions) {
return true;
}
if (typeof rollbackRetryOptions !== "object") {
rollbackRetryOptions = CodePush.DEFAULT_ROLLBACK_RETRY_OPTIONS;
} else {
rollbackRetryOptions = { ...CodePush.DEFAULT_ROLLBACK_RETRY_OPTIONS, ...rollbackRetryOptions };
}
if (!validateRollbackRetryOptions(rollbackRetryOptions)) {
return true;
}
const latestRollbackInfo = await NativeCodePush.getLatestRollbackInfo();
if (!validateLatestRollbackInfo(latestRollbackInfo, remotePackage.packageHash)) {
log("The latest rollback info is not valid.");
return true;
}
const { delayInHours, maxRetryAttempts } = rollbackRetryOptions;
const hoursSinceLatestRollback = (Date.now() - latestRollbackInfo.time) / (1000 * 60 * 60);
if (hoursSinceLatestRollback >= delayInHours && maxRetryAttempts >= latestRollbackInfo.count) {
log("Previous rollback should be ignored due to rollback retry options.");
return false;
}
return true;
}
function validateLatestRollbackInfo(latestRollbackInfo, packageHash) {
return latestRollbackInfo &&
latestRollbackInfo.time &&
latestRollbackInfo.count &&
latestRollbackInfo.packageHash &&
latestRollbackInfo.packageHash === packageHash;
}
function validateRollbackRetryOptions(rollbackRetryOptions) {
if (typeof rollbackRetryOptions.delayInHours !== "number") {
log("The 'delayInHours' rollback retry parameter must be a number.");
return false;
}
if (typeof rollbackRetryOptions.maxRetryAttempts !== "number") {
log("The 'maxRetryAttempts' rollback retry parameter must be a number.");
return false;
}
if (rollbackRetryOptions.maxRetryAttempts < 1) {
log("The 'maxRetryAttempts' rollback retry parameter cannot be less then 1.");
return false;
}
return true;
}
var testConfig;
// This function is only used for tests. Replaces the default SDK, configuration and native bridge
function setUpTestDependencies(testSdk, providedTestConfig, testNativeBridge) {
if (testSdk) module.exports.AcquisitionSdk = testSdk;
if (providedTestConfig) testConfig = providedTestConfig;
if (testNativeBridge) NativeCodePush = testNativeBridge;
}
async function restartApp(onlyIfUpdateIsPending = false) {
NativeCodePush.restartApp(onlyIfUpdateIsPending);
}
// This function allows only one syncInternal operation to proceed at any given time.
// Parallel calls to sync() while one is ongoing yields CodePush.SyncStatus.SYNC_IN_PROGRESS.
const sync = (() => {
let syncInProgress = false;
const setSyncCompleted = () => { syncInProgress = false; };
return (options = {}, syncStatusChangeCallback, downloadProgressCallback, handleBinaryVersionMismatchCallback) => {
let syncStatusCallbackWithTryCatch, downloadProgressCallbackWithTryCatch;
if (typeof syncStatusChangeCallback === "function") {
syncStatusCallbackWithTryCatch = (...args) => {
try {
syncStatusChangeCallback(...args);
} catch (error) {
log(`An error has occurred : ${error.stack}`);
}
}
}
if (typeof downloadProgressCallback === "function") {
downloadProgressCallbackWithTryCatch = (...args) => {
try {
downloadProgressCallback(...args);
} catch (error) {
log(`An error has occurred: ${error.stack}`);
}
}
}
if (syncInProgress) {
typeof syncStatusCallbackWithTryCatch === "function"
? syncStatusCallbackWithTryCatch(CodePush.SyncStatus.SYNC_IN_PROGRESS)
: log("Sync already in progress.");
return Promise.resolve(CodePush.SyncStatus.SYNC_IN_PROGRESS);
}
syncInProgress = true;
const syncPromise = syncInternal(options, syncStatusCallbackWithTryCatch, downloadProgressCallbackWithTryCatch, handleBinaryVersionMismatchCallback);
syncPromise
.then(setSyncCompleted)
.catch(setSyncCompleted);
return syncPromise;
};
})();
/*
* The syncInternal method provides a simple, one-line experience for
* incorporating the check, download and installation of an update.
*
* It simply composes the existing API methods together and adds additional
* support for respecting mandatory updates, ignoring previously failed
* releases, and displaying a standard confirmation UI to the end-user
* when an update is available.
*/
async function syncInternal(options = {}, syncStatusChangeCallback, downloadProgressCallback, handleBinaryVersionMismatchCallback) {
let resolvedInstallMode;
const syncOptions = {
deploymentKey: null,
ignoreFailedUpdates: true,
rollbackRetryOptions: null,
installMode: CodePush.InstallMode.ON_NEXT_RESTART,
mandatoryInstallMode: CodePush.InstallMode.IMMEDIATE,
minimumBackgroundDuration: 0,
updateDialog: null,
...options
};
syncStatusChangeCallback = typeof syncStatusChangeCallback === "function"
? syncStatusChangeCallback
: (syncStatus) => {
switch(syncStatus) {
case CodePush.SyncStatus.CHECKING_FOR_UPDATE:
log("Checking for update.");
break;
case CodePush.SyncStatus.AWAITING_USER_ACTION:
log("Awaiting user action.");
break;
case CodePush.SyncStatus.DOWNLOADING_PACKAGE:
log("Downloading package.");
break;
case CodePush.SyncStatus.INSTALLING_UPDATE:
log("Installing update.");
break;
case CodePush.SyncStatus.UP_TO_DATE:
log("App is up to date.");
break;
case CodePush.SyncStatus.UPDATE_IGNORED:
log("User cancelled the update.");
break;
case CodePush.SyncStatus.UPDATE_INSTALLED:
if (resolvedInstallMode == CodePush.InstallMode.ON_NEXT_RESTART) {
log("Update is installed and will be run on the next app restart.");
} else if (resolvedInstallMode == CodePush.InstallMode.ON_NEXT_RESUME) {
if (syncOptions.minimumBackgroundDuration > 0) {
log(`Update is installed and will be run after the app has been in the background for at least ${syncOptions.minimumBackgroundDuration} seconds.`);
} else {
log("Update is installed and will be run when the app next resumes.");
}
}
break;
case CodePush.SyncStatus.UNKNOWN_ERROR:
log("An unknown error occurred.");
break;
}
};
try {
await CodePush.notifyApplicationReady();
syncStatusChangeCallback(CodePush.SyncStatus.CHECKING_FOR_UPDATE);
const remotePackage = await checkForUpdate(syncOptions.deploymentKey, handleBinaryVersionMismatchCallback);
const doDownloadAndInstall = async () => {
syncStatusChangeCallback(CodePush.SyncStatus.DOWNLOADING_PACKAGE);
const localPackage = await remotePackage.download(downloadProgressCallback);
// Determine the correct install mode based on whether the update is mandatory or not.
resolvedInstallMode = localPackage.isMandatory ? syncOptions.mandatoryInstallMode : syncOptions.installMode;
syncStatusChangeCallback(CodePush.SyncStatus.INSTALLING_UPDATE);
await localPackage.install(resolvedInstallMode, syncOptions.minimumBackgroundDuration, () => {
syncStatusChangeCallback(CodePush.SyncStatus.UPDATE_INSTALLED);
});
return CodePush.SyncStatus.UPDATE_INSTALLED;
};
const updateShouldBeIgnored = await shouldUpdateBeIgnored(remotePackage, syncOptions);
if (!remotePackage || updateShouldBeIgnored) {
if (updateShouldBeIgnored) {
log("An update is available, but it is being ignored due to having been previously rolled back.");
}
const currentPackage = await CodePush.getCurrentPackage();
if (currentPackage && currentPackage.isPending) {
syncStatusChangeCallback(CodePush.SyncStatus.UPDATE_INSTALLED);
return CodePush.SyncStatus.UPDATE_INSTALLED;
} else {
syncStatusChangeCallback(CodePush.SyncStatus.UP_TO_DATE);
return CodePush.SyncStatus.UP_TO_DATE;
}
} else if (syncOptions.updateDialog) {
// updateDialog supports any truthy value (e.g. true, "goo", 12),
// but we should treat a non-object value as just the default dialog
if (typeof syncOptions.updateDialog !== "object") {
syncOptions.updateDialog = CodePush.DEFAULT_UPDATE_DIALOG;
} else {
syncOptions.updateDialog = { ...CodePush.DEFAULT_UPDATE_DIALOG, ...syncOptions.updateDialog };
}
return await new Promise((resolve, reject) => {
let message = null;
let installButtonText = null;
const dialogButtons = [];
if (remotePackage.isMandatory) {
message = syncOptions.updateDialog.mandatoryUpdateMessage;
installButtonText = syncOptions.updateDialog.mandatoryContinueButtonLabel;
} else {
message = syncOptions.updateDialog.optionalUpdateMessage;
installButtonText = syncOptions.updateDialog.optionalInstallButtonLabel;
// Since this is an optional update, add a button
// to allow the end-user to ignore it
dialogButtons.push({
text: syncOptions.updateDialog.optionalIgnoreButtonLabel,
onPress: () => {
syncStatusChangeCallback(CodePush.SyncStatus.UPDATE_IGNORED);
resolve(CodePush.SyncStatus.UPDATE_IGNORED);
}
});
}
// Since the install button should be placed to the
// right of any other button, add it last
dialogButtons.push({
text: installButtonText,
onPress:() => {
doDownloadAndInstall()
.then(resolve, reject);
}
})
// If the update has a description, and the developer
// explicitly chose to display it, then set that as the message
if (syncOptions.updateDialog.appendReleaseDescription && remotePackage.description) {
message += `${syncOptions.updateDialog.descriptionPrefix} ${remotePackage.description}`;
}
syncStatusChangeCallback(CodePush.SyncStatus.AWAITING_USER_ACTION);
Alert.alert(syncOptions.updateDialog.title, message, dialogButtons);
});
} else {
return await doDownloadAndInstall();
}
} catch (error) {
syncStatusChangeCallback(CodePush.SyncStatus.UNKNOWN_ERROR);
log(error.message);
throw error;
}
};
let CodePush;
function codePushify(options = {}) {
let React;
let ReactNative = require("react-native");
try { React = require("react"); } catch (e) { }
if (!React) {
try { React = ReactNative.React; } catch (e) { }
if (!React) {
throw new Error("Unable to find the 'React' module.");
}
}
if (!React.Component) {
throw new Error(
`Unable to find the "Component" class, please either:
1. Upgrade to a newer version of React Native that supports it, or
2. Call the codePush.sync API in your component instead of using the @codePush decorator`
);
}
const decorator = (RootComponent) => {
class CodePushComponent extends React.Component {
constructor(props) {
super(props);
this.rootComponentRef = React.createRef();
}
componentDidMount() {
if (options.checkFrequency === CodePush.CheckFrequency.MANUAL) {
CodePush.notifyAppReady();
} else {
const rootComponentInstance = this.rootComponentRef.current;
let syncStatusCallback;
if (rootComponentInstance && rootComponentInstance.codePushStatusDidChange) {
syncStatusCallback = rootComponentInstance.codePushStatusDidChange.bind(rootComponentInstance);
}
let downloadProgressCallback;
if (rootComponentInstance && rootComponentInstance.codePushDownloadDidProgress) {
downloadProgressCallback = rootComponentInstance.codePushDownloadDidProgress.bind(rootComponentInstance);
}
let handleBinaryVersionMismatchCallback;
if (rootComponentInstance && rootComponentInstance.codePushOnBinaryVersionMismatch) {
handleBinaryVersionMismatchCallback = rootComponentInstance.codePushOnBinaryVersionMismatch.bind(rootComponentInstance);
}
CodePush.sync(options, syncStatusCallback, downloadProgressCallback, handleBinaryVersionMismatchCallback);
if (options.checkFrequency === CodePush.CheckFrequency.ON_APP_RESUME) {
ReactNative.AppState.addEventListener("change", (newState) => {
if (newState === "active") {
CodePush.sync(options, syncStatusCallback, downloadProgressCallback);
}
});
}
}
}
render() {
const props = {...this.props};
// We can set ref property on class components only (not stateless)
// Check it by render method
if (RootComponent.prototype && RootComponent.prototype.render) {
props.ref = this.rootComponentRef;
}
return <RootComponent {...props} />
}
}
return hoistStatics(CodePushComponent, RootComponent);
}
if (typeof options === "function") {
// Infer that the root component was directly passed to us.
return decorator(options);
} else {
return decorator;
}
}
// If the "NativeCodePush" variable isn't defined, then
// the app didn't properly install the native module,
// and therefore, it doesn't make sense initializing
// the JS interface when it wouldn't work anyways.
if (NativeCodePush) {
CodePush = codePushify;
Object.assign(CodePush, {
AcquisitionSdk: Sdk,
checkForUpdate,
getConfiguration,
getCurrentPackage,
getUpdateMetadata,
log,
notifyAppReady: notifyApplicationReady,
notifyApplicationReady,
restartApp,
setUpTestDependencies,
sync,
disallowRestart: NativeCodePush.disallow,
allowRestart: NativeCodePush.allow,
clearUpdates: NativeCodePush.clearUpdates,
InstallMode: {
IMMEDIATE: NativeCodePush.codePushInstallModeImmediate, // Restart the app immediately
ON_NEXT_RESTART: NativeCodePush.codePushInstallModeOnNextRestart, // Don't artificially restart the app. Allow the update to be "picked up" on the next app restart
ON_NEXT_RESUME: NativeCodePush.codePushInstallModeOnNextResume, // Restart the app the next time it is resumed from the background
ON_NEXT_SUSPEND: NativeCodePush.codePushInstallModeOnNextSuspend // Restart the app _while_ it is in the background,
// but only after it has been in the background for "minimumBackgroundDuration" seconds (0 by default),
// so that user context isn't lost unless the app suspension is long enough to not matter
},
SyncStatus: {
UP_TO_DATE: 0, // The running app is up-to-date
UPDATE_INSTALLED: 1, // The app had an optional/mandatory update that was successfully downloaded and is about to be installed.
UPDATE_IGNORED: 2, // The app had an optional update and the end-user chose to ignore it
UNKNOWN_ERROR: 3,
SYNC_IN_PROGRESS: 4, // There is an ongoing "sync" operation in progress.
CHECKING_FOR_UPDATE: 5,
AWAITING_USER_ACTION: 6,
DOWNLOADING_PACKAGE: 7,
INSTALLING_UPDATE: 8
},
CheckFrequency: {
ON_APP_START: 0,
ON_APP_RESUME: 1,
MANUAL: 2
},
UpdateState: {
RUNNING: NativeCodePush.codePushUpdateStateRunning,
PENDING: NativeCodePush.codePushUpdateStatePending,
LATEST: NativeCodePush.codePushUpdateStateLatest
},
DeploymentStatus: {
FAILED: "DeploymentFailed",
SUCCEEDED: "DeploymentSucceeded",
},
DEFAULT_UPDATE_DIALOG: {
appendReleaseDescription: false,
descriptionPrefix: " Description: ",
mandatoryContinueButtonLabel: "Continue",
mandatoryUpdateMessage: "An update is available that must be installed.",
optionalIgnoreButtonLabel: "Ignore",
optionalInstallButtonLabel: "Install",
optionalUpdateMessage: "An update is available. Would you like to install it?",
title: "Update available"
},
DEFAULT_ROLLBACK_RETRY_OPTIONS: {
delayInHours: 24,
maxRetryAttempts: 1
}
});
} else {
log("The CodePush module doesn't appear to be properly installed. Please double-check that everything is setup correctly.");
}
module.exports = CodePush;
================================================
FILE: CodePush.podspec
================================================
require 'json'
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
Pod::Spec.new do |s|
s.name = 'CodePush'
s.version = package['version'].gsub(/v|-beta/, '')
s.summary = package['description']
s.author = package['author']
s.license = package['license']
s.homepage = package['homepage']
s.source = { :git => 'https://github.com/microsoft/react-native-code-push.git', :tag => "v#{s.version}"}
s.ios.deployment_target = '15.5'
s.tvos.deployment_target = '15.5'
s.preserve_paths = '*.js'
s.library = 'z'
s.source_files = 'ios/CodePush/*.{h,m}'
s.public_header_files = ['ios/CodePush/CodePush.h']
# Note: Even though there are copy/pasted versions of some of these dependencies in the repo,
# we explicitly let CocoaPods pull in the versions below so all dependencies are resolved and
# linked properly at a parent workspace level.
s.dependency 'React-Core'
s.dependency 'SSZipArchive', '~> 2.5.5'
s.dependency 'JWT', '~> 3.0.0-beta.12'
s.dependency 'Base64', '~> 1.1'
end
================================================
FILE: Examples/CodePushDemoApp/.buckconfig
================================================
[android]
target = Google Inc.:Google APIs:23
[maven_repositories]
central = https://repo1.maven.org/maven2
================================================
FILE: Examples/CodePushDemoApp/.editorconfig
================================================
# Windows files
[*.bat]
end_of_line = crlf
================================================
FILE: Examples/CodePushDemoApp/.eslintrc.js
================================================
module.exports = {
root: true,
extends: '@react-native-community',
};
================================================
FILE: Examples/CodePushDemoApp/.flowconfig
================================================
[ignore]
; We fork some components by platform
.*/*[.]android.js
; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/
; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*
; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js
[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
[include]
[libs]
node_modules/react-native/interface.js
node_modules/react-native/flow/
[options]
emoji=true
exact_by_default=true
format.bracket_spacing=false
module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
munge_underscores=true
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState
[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
signature-verification-failure=warn
[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import
[version]
^0.158.0
================================================
FILE: Examples/CodePushDemoApp/.gitattributes
================================================
# Windows files should use crlf line endings
# https://help.github.com/articles/dealing-with-line-endings/
*.bat text eol=crlf
================================================
FILE: Examples/CodePushDemoApp/.gitignore
================================================
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
*.hprof
# node.js
#
node_modules/
npm-debug.log
yarn-error.log
# BUCK
buck-out/
\.buckd/
*.keystore
!debug.keystore
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/
*/fastlane/report.xml
*/fastlane/Preview.html
*/fastlane/screenshots
# Bundle artifact
*.jsbundle
# CocoaPods
/ios/Pods/
================================================
FILE: Examples/CodePushDemoApp/.prettierrc.js
================================================
module.exports = {
bracketSpacing: false,
jsxBracketSameLine: true,
singleQuote: true,
trailingComma: 'all',
arrowParens: 'avoid',
};
================================================
FILE: Examples/CodePushDemoApp/.watchmanconfig
================================================
{}
================================================
FILE: Examples/CodePushDemoApp/App.js
================================================
import React, { Component } from 'react';
import {
AppRegistry,
Dimensions,
Image,
StyleSheet,
Text,
TouchableOpacity,
View,
} from 'react-native';
import CodePush from "react-native-code-push";
class App extends Component<{}> {
constructor() {
super();
this.state = { restartAllowed: true };
}
codePushStatusDidChange(syncStatus) {
switch(syncStatus) {
case CodePush.SyncStatus.CHECKING_FOR_UPDATE:
this.setState({ syncMessage: "Checking for update." });
break;
case CodePush.SyncStatus.DOWNLOADING_PACKAGE:
this.setState({ syncMessage: "Downloading package." });
break;
case CodePush.SyncStatus.AWAITING_USER_ACTION:
this.setState({ syncMessage: "Awaiting user action." });
break;
case CodePush.SyncStatus.INSTALLING_UPDATE:
this.setState({ syncMessage: "Installing update." });
break;
case CodePush.SyncStatus.UP_TO_DATE:
this.setState({ syncMessage: "App up to date.", progress: false });
break;
case CodePush.SyncStatus.UPDATE_IGNORED:
this.setState({ syncMessage: "Update cancelled by user.", progress: false });
break;
case CodePush.SyncStatus.UPDATE_INSTALLED:
this.setState({ syncMessage: "Update installed and will be applied on restart.", progress: false });
break;
case CodePush.SyncStatus.UNKNOWN_ERROR:
this.setState({ syncMessage: "An unknown error occurred.", progress: false });
break;
}
}
codePushDownloadDidProgress(progress) {
this.setState({ progress });
}
toggleAllowRestart() {
this.state.restartAllowed
? CodePush.disallowRestart()
: CodePush.allowRestart();
this.setState({ restartAllowed: !this.state.restartAllowed });
}
getUpdateMetadata() {
CodePush.getUpdateMetadata(CodePush.UpdateState.RUNNING)
.then((metadata: LocalPackage) => {
this.setState({ syncMessage: metadata ? JSON.stringify(metadata) : "Running binary version", progress: false });
}, (error: any) => {
this.setState({ syncMessage: "Error: " + error, progress: false });
});
}
/** Update is downloaded silently, and applied on restart (recommended) */
sync() {
CodePush.sync(
{},
this.codePushStatusDidChange.bind(this),
this.codePushDownloadDidProgress.bind(this)
);
}
/** Update pops a confirmation dialog, and then immediately reboots the app */
syncImmediate() {
CodePush.sync(
{ installMode: CodePush.InstallMode.IMMEDIATE, updateDialog: true },
this.codePushStatusDidChange.bind(this),
this.codePushDownloadDidProgress.bind(this)
);
}
render() {
let progressView;
if (this.state.progress) {
progressView = (
<Text style={styles.messages}>{this.state.progress.receivedBytes} of {this.state.progress.totalBytes} bytes received</Text>
);
}
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to CodePush!
</Text>
<TouchableOpacity onPress={this.sync.bind(this)}>
<Text style={styles.syncButton}>Press for background sync</Text>
</TouchableOpacity>
<TouchableOpacity onPress={this.syncImmediate.bind(this)}>
<Text style={styles.syncButton}>Press for dialog-driven sync</Text>
</TouchableOpacity>
{progressView}
<Image style={styles.image} resizeMode={"contain"} source={require("./images/laptop_phone_howitworks.png")}/>
<TouchableOpacity onPress={this.toggleAllowRestart.bind(this)}>
<Text style={styles.restartToggleButton}>Restart { this.state.restartAllowed ? "allowed" : "forbidden"}</Text>
</TouchableOpacity>
<TouchableOpacity onPress={this.getUpdateMetadata.bind(this)}>
<Text style={styles.syncButton}>Press for Update Metadata</Text>
</TouchableOpacity>
<Text style={styles.messages}>{this.state.syncMessage || ""}</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: "center",
backgroundColor: "#F5FCFF",
paddingTop: 50
},
image: {
margin: 30,
width: Dimensions.get("window").width - 100,
height: 365 * (Dimensions.get("window").width - 100) / 651,
},
messages: {
marginTop: 30,
textAlign: "center",
},
restartToggleButton: {
color: "blue",
fontSize: 17
},
syncButton: {
color: "green",
fontSize: 17
},
welcome: {
fontSize: 20,
textAlign: "center",
margin: 20
},
});
/**
* Configured with a MANUAL check frequency for easy testing. For production apps, it is recommended to configure a
* different check frequency, such as ON_APP_START, for a 'hands-off' approach where CodePush.sync() does not
* need to be explicitly called. All options of CodePush.sync() are also available in this decorator.
*/
let codePushOptions = { checkFrequency: CodePush.CheckFrequency.MANUAL };
App = CodePush(codePushOptions)(App);
export default App;
================================================
FILE: Examples/CodePushDemoApp/__tests__/App-test.js
================================================
/**
* @format
*/
import 'react-native';
import React from 'react';
import App from '../App';
// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';
it('renders correctly', () => {
renderer.create(<App />);
});
================================================
FILE: Examples/CodePushDemoApp/android/app/BUCK
================================================
# To learn about Buck see [Docs](https://buckbuild.com/).
# To run your application with Buck:
# - install Buck
# - `npm start` - to start the packager
# - `cd android`
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
# - `buck install -r android/app` - compile, install and run application
#
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
lib_deps = []
create_aar_targets(glob(["libs/*.aar"]))
create_jar_targets(glob(["libs/*.jar"]))
android_library(
name = "all-libs",
exported_deps = lib_deps,
)
android_library(
name = "app-code",
srcs = glob([
"src/main/java/**/*.java",
]),
deps = [
":all-libs",
":build_config",
":res",
],
)
android_build_config(
name = "build_config",
package = "com.codepushdemoapp",
)
android_resource(
name = "res",
package = "com.codepushdemoapp",
res = "src/main/res",
)
android_binary(
name = "app",
keystore = "//android/keystores:debug",
manifest = "src/main/AndroidManifest.xml",
package_type = "debug",
deps = [
":app-code",
],
)
================================================
FILE: Examples/CodePushDemoApp/android/app/build.gradle
================================================
apply plugin: "com.android.application"
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation. If none specified and
* // "index.android.js" exists, it will be used. Otherwise "index.js" is
* // default. Can be overridden with ENTRY_FILE environment variable.
* entryFile: "index.android.js",
*
* // https://reactnative.dev/docs/performance#enable-the-ram-format
* bundleCommand: "ram-bundle",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
*/
project.ext.react = [
enableHermes: false, // clean and rebuild if changing
]
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
/**
* The preferred build flavor of JavaScriptCore.
*
* For example, to use the international variant, you can use:
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'org.webkit:android-jsc:+'
/**
* Whether to enable the Hermes VM.
*
* This should be set on project.ext.react and mirrored here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", false);
/**
* Architectures to build native code for in debug.
*/
def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures")
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.codepushdemoapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
if (nativeArchitectures) {
ndk {
abiFilters nativeArchitectures.split(',')
}
}
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://reactnative.dev/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.android.com/studio/build/configure-apk-splits.html
// Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
defaultConfig.versionCode * 1000 + versionCodes.get(abi)
}
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.implementation
into 'libs'
}
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
================================================
FILE: Examples/CodePushDemoApp/android/app/build_defs.bzl
================================================
"""Helper definitions to glob .aar and .jar targets"""
def create_aar_targets(aarfiles):
for aarfile in aarfiles:
name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
lib_deps.append(":" + name)
android_prebuilt_aar(
name = name,
aar = aarfile,
)
def create_jar_targets(jarfiles):
for jarfile in jarfiles:
name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
lib_deps.append(":" + name)
prebuilt_jar(
name = name,
binary_jar = jarfile,
)
================================================
FILE: Examples/CodePushDemoApp/android/app/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
================================================
FILE: Examples/CodePushDemoApp/android/app/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.codepushdemoapp">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
================================================
FILE: Examples/CodePushDemoApp/android/app/src/main/java/com/codepushdemoapp/MainActivity.java
================================================
package com.codepushdemoapp;
import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "CodePushDemoApp";
}
}
================================================
FILE: Examples/CodePushDemoApp/android/app/src/main/java/com/codepushdemoapp/MainApplication.java
================================================
package com.codepushdemoapp;
import android.app.Application;
import com.microsoft.codepush.react.CodePush;
import android.content.Context;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost =
new ReactNativeHost(this) {
@Override
protected String getJSBundleFile(){
return CodePush.getJSBundleFile();
}
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
/**
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
*
* @param context
* @param reactInstanceManager
*/
private static void initializeFlipper(
Context context, ReactInstanceManager reactInstanceManager) {
if (BuildConfig.DEBUG) {
try {
/*
We use reflection here to pick up the class that initializes Flipper,
since Flipper library is not available in release mode
*/
Class<?> aClass = Class.forName("com.codepushdemoapp.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
================================================
FILE: Examples/CodePushDemoApp/android/app/src/main/res/values/strings.xml
================================================
<resources>
<string moduleConfig="true" name="CodePushDeploymentKey">deployment-key-here</string>
<string name="app_name">CodePushDemoApp</string>
</resources>
================================================
FILE: Examples/CodePushDemoApp/android/app/src/main/res/values/styles.xml
================================================
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
================================================
FILE: Examples/CodePushDemoApp/android/build.gradle
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "30.0.2"
minSdkVersion = 21
compileSdkVersion = 30
targetSdkVersion = 30
ndkVersion = "21.4.7075529"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:4.2.2")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenCentral()
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
google()
maven { url 'https://www.jitpack.io' }
}
}
================================================
FILE: Examples/CodePushDemoApp/android/gradle/wrapper/gradle-wrapper.properties
================================================
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
================================================
FILE: Examples/CodePushDemoApp/android/gradle.properties
================================================
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.99.0
================================================
FILE: Examples/CodePushDemoApp/android/gradlew
================================================
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"
================================================
FILE: Examples/CodePushDemoApp/android/gradlew.bat
================================================
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
================================================
FILE: Examples/CodePushDemoApp/android/settings.gradle
================================================
rootProject.name = 'CodePushDemoApp'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app', ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')
================================================
FILE: Examples/CodePushDemoApp/app.json
================================================
{
"name": "CodePushDemoApp",
"displayName": "CodePushDemoApp"
}
================================================
FILE: Examples/CodePushDemoApp/babel.config.js
================================================
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
};
================================================
FILE: Examples/CodePushDemoApp/index.js
================================================
import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('CodePushDemoApp', () => App);
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp/AppDelegate.h
================================================
#import <React/RCTBridgeDelegate.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate>
@property (nonatomic, strong) UIWindow *window;
@end
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp/AppDelegate.m
================================================
#import "AppDelegate.h"
#import <CodePush/CodePush.h>
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#ifdef FB_SONARKIT_ENABLED
#import <FlipperKit/FlipperClient.h>
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
static void InitializeFlipper(UIApplication *application) {
FlipperClient *client = [FlipperClient sharedClient];
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
[client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
[client addPlugin:[FlipperKitReactPlugin new]];
[client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
[client start];
}
#endif
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef FB_SONARKIT_ENABLED
InitializeFlipper(application);
#endif
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:@"CodePushDemoApp"
initialProperties:nil];
if (@available(iOS 13.0, *)) {
rootView.backgroundColor = [UIColor systemBackgroundColor];
} else {
rootView.backgroundColor = [UIColor whiteColor];
}
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
return YES;
}
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [CodePush bundleURL];
#endif
}
@end
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp/Images.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp/Images.xcassets/Contents.json
================================================
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>CodePushDemoApp</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CodePushDeploymentKey</key>
<string>deployment-key-here</string>
</dict>
</plist>
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CodePushDemoApp" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
<rect key="frame" x="0.0" y="202" width="375" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="MN2-I3-ftu">
<rect key="frame" x="0.0" y="626" width="375" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="bottom" secondItem="MN2-I3-ftu" secondAttribute="bottom" constant="20" id="OZV-Vh-mqD"/>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
<constraint firstItem="MN2-I3-ftu" firstAttribute="centerX" secondItem="Bcu-3y-fUS" secondAttribute="centerX" id="akx-eg-2ui"/>
<constraint firstItem="MN2-I3-ftu" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" id="i1E-0Y-4RG"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="x7j-FC-K8j"/>
</constraints>
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="52.173913043478265" y="375"/>
</scene>
</scenes>
</document>
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp/main.m
================================================
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
00E356F31AD99517003FC87E /* CodePushDemoAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* CodePushDemoAppTests.m */; };
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
7209CF15AFD1B1A1154ADDC3 /* libPods-CodePushDemoApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F822409B61CE9E11C825CB2E /* libPods-CodePushDemoApp.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
873543544E84903AB9AC764D /* libPods-CodePushDemoApp-CodePushDemoAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0684492BF481E6EAA4A6624A /* libPods-CodePushDemoApp-CodePushDemoAppTests.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
remoteInfo = CodePushDemoApp;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
00E356EE1AD99517003FC87E /* CodePushDemoAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CodePushDemoAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
00E356F21AD99517003FC87E /* CodePushDemoAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CodePushDemoAppTests.m; sourceTree = "<group>"; };
0684492BF481E6EAA4A6624A /* libPods-CodePushDemoApp-CodePushDemoAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CodePushDemoApp-CodePushDemoAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
13B07F961A680F5B00A75B9A /* CodePushDemoApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CodePushDemoApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = CodePushDemoApp/AppDelegate.h; sourceTree = "<group>"; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = CodePushDemoApp/AppDelegate.m; sourceTree = "<group>"; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = CodePushDemoApp/Images.xcassets; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = CodePushDemoApp/Info.plist; sourceTree = "<group>"; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = CodePushDemoApp/main.m; sourceTree = "<group>"; };
3A1AC7C53CE0CC5BA2B85E4E /* Pods-CodePushDemoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemoApp.debug.xcconfig"; path = "Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp.debug.xcconfig"; sourceTree = "<group>"; };
3FF5216EA67271BFA35BE5DD /* Pods-CodePushDemoApp-CodePushDemoAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemoApp-CodePushDemoAppTests.debug.xcconfig"; path = "Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests.debug.xcconfig"; sourceTree = "<group>"; };
4B6E53AD2EAAA824D962A672 /* Pods-CodePushDemoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemoApp.release.xcconfig"; path = "Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp.release.xcconfig"; sourceTree = "<group>"; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = CodePushDemoApp/LaunchScreen.storyboard; sourceTree = "<group>"; };
9E42C477F1442EBF73599739 /* Pods-CodePushDemoApp-CodePushDemoAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CodePushDemoApp-CodePushDemoAppTests.release.xcconfig"; path = "Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests.release.xcconfig"; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
F822409B61CE9E11C825CB2E /* libPods-CodePushDemoApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CodePushDemoApp.a"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
00E356EB1AD99517003FC87E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
873543544E84903AB9AC764D /* libPods-CodePushDemoApp-CodePushDemoAppTests.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
7209CF15AFD1B1A1154ADDC3 /* libPods-CodePushDemoApp.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
00E356EF1AD99517003FC87E /* CodePushDemoAppTests */ = {
isa = PBXGroup;
children = (
00E356F21AD99517003FC87E /* CodePushDemoAppTests.m */,
00E356F01AD99517003FC87E /* Supporting Files */,
);
path = CodePushDemoAppTests;
sourceTree = "<group>";
};
00E356F01AD99517003FC87E /* Supporting Files */ = {
isa = PBXGroup;
children = (
00E356F11AD99517003FC87E /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
13B07FAE1A68108700A75B9A /* CodePushDemoApp */ = {
isa = PBXGroup;
children = (
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
13B07FB01A68108700A75B9A /* AppDelegate.m */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB71A68108700A75B9A /* main.m */,
);
name = CodePushDemoApp;
sourceTree = "<group>";
};
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
F822409B61CE9E11C825CB2E /* libPods-CodePushDemoApp.a */,
0684492BF481E6EAA4A6624A /* libPods-CodePushDemoApp-CodePushDemoAppTests.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
69F6BBD5C7690E30A982EAEE /* Pods */ = {
isa = PBXGroup;
children = (
3A1AC7C53CE0CC5BA2B85E4E /* Pods-CodePushDemoApp.debug.xcconfig */,
4B6E53AD2EAAA824D962A672 /* Pods-CodePushDemoApp.release.xcconfig */,
3FF5216EA67271BFA35BE5DD /* Pods-CodePushDemoApp-CodePushDemoAppTests.debug.xcconfig */,
9E42C477F1442EBF73599739 /* Pods-CodePushDemoApp-CodePushDemoAppTests.release.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup;
children = (
);
name = Libraries;
sourceTree = "<group>";
};
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
13B07FAE1A68108700A75B9A /* CodePushDemoApp */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
00E356EF1AD99517003FC87E /* CodePushDemoAppTests */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
69F6BBD5C7690E30A982EAEE /* Pods */,
);
indentWidth = 2;
sourceTree = "<group>";
tabWidth = 2;
usesTabs = 0;
};
83CBBA001A601CBA00E9B192 /* Products */ = {
isa = PBXGroup;
children = (
13B07F961A680F5B00A75B9A /* CodePushDemoApp.app */,
00E356EE1AD99517003FC87E /* CodePushDemoAppTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
00E356ED1AD99517003FC87E /* CodePushDemoAppTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "CodePushDemoAppTests" */;
buildPhases = (
E0C08DC1172810CC2B651913 /* [CP] Check Pods Manifest.lock */,
00E356EA1AD99517003FC87E /* Sources */,
00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */,
96DA1F0133CE6AECB818D1F3 /* [CP] Embed Pods Frameworks */,
8FCA0FCABC69767E741BB8F2 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
00E356F51AD99517003FC87E /* PBXTargetDependency */,
);
name = CodePushDemoAppTests;
productName = CodePushDemoAppTests;
productReference = 00E356EE1AD99517003FC87E /* CodePushDemoAppTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
13B07F861A680F5B00A75B9A /* CodePushDemoApp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "CodePushDemoApp" */;
buildPhases = (
FAE53E3C42A14CE48C4E62D3 /* [CP] Check Pods Manifest.lock */,
FD10A7F022414F080027D42C /* Start Packager */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
3FB4CE61D43BB948153CCAD2 /* [CP] Embed Pods Frameworks */,
E64717738EB438ACC77F81BB /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = CodePushDemoApp;
productName = CodePushDemoApp;
productReference = 13B07F961A680F5B00A75B9A /* CodePushDemoApp.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
83CBB9F71A601CBA00E9B192 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1210;
TargetAttributes = {
00E356ED1AD99517003FC87E = {
CreatedOnToolsVersion = 6.2;
TestTargetID = 13B07F861A680F5B00A75B9A;
};
13B07F861A680F5B00A75B9A = {
LastSwiftMigration = 1120;
};
};
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "CodePushDemoApp" */;
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 83CBB9F61A601CBA00E9B192;
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
13B07F861A680F5B00A75B9A /* CodePushDemoApp */,
00E356ED1AD99517003FC87E /* CodePushDemoAppTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
00E356EC1AD99517003FC87E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
13B07F8E1A680F5B00A75B9A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Bundle React Native code and images";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
};
3FB4CE61D43BB948153CCAD2 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
8FCA0FCABC69767E741BB8F2 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
96DA1F0133CE6AECB818D1F3 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp-CodePushDemoAppTests/Pods-CodePushDemoApp-CodePushDemoAppTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
E0C08DC1172810CC2B651913 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-CodePushDemoApp-CodePushDemoAppTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
E64717738EB438ACC77F81BB /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CodePushDemoApp/Pods-CodePushDemoApp-resources.sh\"\n";
showEnvVarsInLog = 0;
};
FAE53E3C42A14CE48C4E62D3 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-CodePushDemoApp-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
FD10A7F022414F080027D42C /* Start Packager */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Start Packager";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
00E356EA1AD99517003FC87E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
00E356F31AD99517003FC87E /* CodePushDemoAppTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
13B07F871A680F5B00A75B9A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 13B07F861A680F5B00A75B9A /* CodePushDemoApp */;
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
00E356F61AD99517003FC87E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3FF5216EA67271BFA35BE5DD /* Pods-CodePushDemoApp-CodePushDemoAppTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = CodePushDemoAppTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
"$(inherited)",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CodePushDemoApp.app/CodePushDemoApp";
};
name = Debug;
};
00E356F71AD99517003FC87E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9E42C477F1442EBF73599739 /* Pods-CodePushDemoApp-CodePushDemoAppTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
INFOPLIST_FILE = CodePushDemoAppTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
"$(inherited)",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CodePushDemoApp.app/CodePushDemoApp";
};
name = Release;
};
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3A1AC7C53CE0CC5BA2B85E4E /* Pods-CodePushDemoApp.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = CodePushDemoApp/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = CodePushDemoApp;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 4B6E53AD2EAAA824D962A672 /* Pods-CodePushDemoApp.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
INFOPLIST_FILE = CodePushDemoApp/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = CodePushDemoApp;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
};
83CBBA201A601CBA00E9B192 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
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;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 ";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",
);
LIBRARY_SEARCH_PATHS = (
"\"$(SDKROOT)/usr/lib/swift\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
83CBBA211A601CBA00E9B192 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 ";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",
);
LIBRARY_SEARCH_PATHS = (
"\"$(SDKROOT)/usr/lib/swift\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "CodePushDemoAppTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
00E356F61AD99517003FC87E /* Debug */,
00E356F71AD99517003FC87E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "CodePushDemoApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
13B07F941A680F5B00A75B9A /* Debug */,
13B07F951A680F5B00A75B9A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "CodePushDemoApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83CBBA201A601CBA00E9B192 /* Debug */,
83CBBA211A601CBA00E9B192 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
}
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp.xcodeproj/xcshareddata/xcschemes/CodePushDemoApp.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1210"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "CodePushDemoApp.app"
BlueprintName = "CodePushDemoApp"
ReferencedContainer = "container:CodePushDemoApp.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "00E356ED1AD99517003FC87E"
BuildableName = "CodePushDemoAppTests.xctest"
BlueprintName = "CodePushDemoAppTests"
ReferencedContainer = "container:CodePushDemoApp.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "CodePushDemoApp.app"
BlueprintName = "CodePushDemoApp"
ReferencedContainer = "container:CodePushDemoApp.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "CodePushDemoApp.app"
BlueprintName = "CodePushDemoApp"
ReferencedContainer = "container:CodePushDemoApp.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:CodePushDemoApp.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoAppTests/CodePushDemoAppTests.m
================================================
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import <React/RCTLog.h>
#import <React/RCTRootView.h>
#define TIMEOUT_SECONDS 600
#define TEXT_TO_LOOK_FOR @"Welcome to React"
@interface CodePushDemoAppTests : XCTestCase
@end
@implementation CodePushDemoAppTests
- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
{
if (test(view)) {
return YES;
}
for (UIView *subview in [view subviews]) {
if ([self findSubviewInView:subview matching:test]) {
return YES;
}
}
return NO;
}
- (void)testRendersWelcomeScreen
{
UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
BOOL foundElement = NO;
__block NSString *redboxError = nil;
#ifdef DEBUG
RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
if (level >= RCTLogLevelError) {
redboxError = message;
}
});
#endif
while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
[[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
[[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
return YES;
}
return NO;
}];
}
#ifdef DEBUG
RCTSetLogFunction(RCTDefaultLogFunction);
#endif
XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
}
@end
================================================
FILE: Examples/CodePushDemoApp/ios/CodePushDemoAppTests/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
================================================
FILE: Examples/CodePushDemoApp/ios/Podfile
================================================
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '11.0'
target 'CodePushDemoApp' do
config = use_native_modules!
use_react_native!(
:path => config[:reactNativePath],
# to enable hermes on iOS, change `false` to `true` and then install pods
:hermes_enabled => false
)
target 'CodePushDemoAppTests' do
inherit! :complete
# Pods for testing
end
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable the next line.
use_flipper!()
post_install do |installer|
react_native_post_install(installer)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
end
end
================================================
FILE: Examples/CodePushDemoApp/metro.config.js
================================================
/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* @format
*/
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true,
},
}),
},
};
================================================
FILE: Examples/CodePushDemoApp/package.json
================================================
{
"name": "CodePushDemoApp",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
"react": "17.0.2",
"react-native": "0.68.5",
"react-native-code-push": "8.1.0"
},
"resolutions": {
"strip-ansi": "^6.0.1",
"ansi-regex": "^5.0.1"
},
"devDependencies": {
"@babel/core": "^7.15.8",
"@babel/runtime": "^7.15.4",
"@react-native-community/eslint-config": "^3.0.1",
"babel-jest": "^27.2.5",
"eslint": "^8.0.0",
"jest": "^27.2.5",
"metro-react-native-babel-preset": "^0.66.2",
"react-test-renderer": "17.0.2"
},
"jest": {
"preset": "react-native"
}
}
================================================
FILE: Examples/CodePushDemoAppCpp/.buckconfig
================================================
[android]
target = Google Inc.:Google APIs:23
[maven_repositories]
central = https://repo1.maven.org/maven2
================================================
FILE: Examples/CodePushDemoAppCpp/.eslintrc.js
================================================
module.exports = {
root: true,
extends: '@react-native-community',
};
================================================
FILE: Examples/CodePushDemoAppCpp/.flowconfig
================================================
[ignore]
; We fork some components by platform
.*/*[.]android.js
; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/
; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*
; These should not be required directly
; require from fbjs/lib instead: require('fbjs/lib/warning')
node_modules/warning/.*
; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js
[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
[include]
[libs]
node_modules/react-native/interface.js
node_modules/react-native/flow/
[options]
emoji=true
esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable
module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
munge_underscores=true
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
signature-verification-failure=warn
deprecated-utility=error
[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import
[version]
^0.122.0
================================================
FILE: Examples/CodePushDemoAppCpp/.gitattributes
================================================
*.pbxproj -text
================================================
FILE: Examples/CodePushDemoAppCpp/.gitignore
================================================
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
# Visual Studio Code
#
.vscode/
# node.js
#
node_modules/
npm-debug.log
yarn-error.log
# BUCK
buck-out/
\.buckd/
*.keystore
!debug.keystore
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/
*/fastlane/report.xml
*/fastlane/Preview.html
*/fastlane/screenshots
# Bundle artifact
*.jsbundle
# CocoaPods
/ios/Pods/
================================================
FILE: Examples/CodePushDemoAppCpp/.prettierrc.js
================================================
module.exports = {
bracketSpacing: false,
jsxBracketSameLine: true,
singleQuote: true,
trailingComma: 'all',
};
================================================
FILE: Examples/CodePushDemoAppCpp/.watchmanconfig
================================================
{}
================================================
FILE: Examples/CodePushDemoAppCpp/App.js
================================================
import React, { Component } from 'react';
import {
AppRegistry,
Dimensions,
Image,
SafeAreaView,
ScrollView,
StyleSheet,
Text,
TouchableOpacity,
View,
} from 'react-native';
import CodePush from "react-native-code-push";
class App extends Component<{}> {
constructor() {
super();
this.state = { restartAllowed: true };
}
codePushStatusDidChange(syncStatus) {
switch(syncStatus) {
case CodePush.SyncStatus.CHECKING_FOR_UPDATE:
this.setState({ syncMessage: "Checking for update." });
break;
case CodePush.SyncStatus.DOWNLOADING_PACKAGE:
this.setState({ syncMessage: "Downloading package." });
break;
case CodePush.SyncStatus.AWAITING_USER_ACTION:
this.setState({ syncMessage: "Awaiting user action." });
break;
case CodePush.SyncStatus.INSTALLING_UPDATE:
this.setState({ syncMessage: "Installing update." });
break;
case CodePush.SyncStatus.UP_TO_DATE:
this.setState({ syncMessage: "App up to date.", progress: false });
break;
case CodePush.SyncStatus.UPDATE_IGNORED:
this.setState({ syncMessage: "Update cancelled by user.", progress: false });
break;
case CodePush.SyncStatus.UPDATE_INSTALLED:
this.setState({ syncMessage: "Update installed and will be applied on restart.", progress: false });
break;
case CodePush.SyncStatus.UNKNOWN_ERROR:
this.setState({ syncMessage: "An unknown error occurred.", progress: false });
break;
}
}
codePushDownloadDidProgress(progress) {
this.setState({ progress });
}
toggleAllowRestart() {
this.state.restartAllowed
? CodePush.disallowRestart()
: CodePush.allowRestart();
this.setState({ restartAllowed: !this.state.restartAllowed });
}
getUpdateMetadata() {
CodePush.getUpdateMetadata(CodePush.UpdateState.RUNNING)
.then((metadata: LocalPackage) => {
this.setState({ syncMessage: metadata ? JSON.stringify(metadata) : "Running binary version", progress: false });
}, (error: any) => {
this.setState({ syncMessage: "Error: " + error, progress: false });
});
}
/** Update is downloaded silently, and applied on restart (recommended) */
sync() {
CodePush.sync(
{},
this.codePushStatusDidChange.bind(this),
this.codePushDownloadDidProgress.bind(this)
);
}
/** Update pops a confirmation dialog, and then immediately reboots the app */
syncImmediate() {
CodePush.sync(
{ installMode: CodePush.InstallMode.IMMEDIATE, updateDialog: true },
this.codePushStatusDidChange.bind(this),
this.codePushDownloadDidProgress.bind(this)
);
}
restartApp() {
CodePush.restartApp();
}
render() {
let progressView;
if (this.state.progress) {
progressView = (
<Text style={styles.messages}>{this.state.progress.receivedBytes} of {this.state.progress.totalBytes} bytes received</Text>
);
}
return (
<SafeAreaView>
<ScrollView>
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to CodePush!
</Text>
<Text style={styles.welcome}>
Demo bundle
</Text>
<TouchableOpacity onPress={this.restartApp.bind(this)}>
<Text style={styles.syncButton}>Press to restart</Text>
</TouchableOpacity>
<TouchableOpacity onPress={this.sync.bind(this)}>
<Text style={styles.syncButton}>Press for background sync</Text>
</TouchableOpacity>
<TouchableOpacity onPress={this.syncImmediate.bind(this)}>
<Text style={styles.syncButton}>Press for dialog-driven sync</Text>
</TouchableOpacity>
{progressView}
<TouchableOpacity onPress={this.toggleAllowRestart.bind(this)}>
<Text style={styles.restartToggleButton}>Restart { this.state.restartAllowed ? "allowed" : "forbidden"}</Text>
</TouchableOpacity>
<TouchableOpacity onPress={this.getUpdateMetadata.bind(this)}>
<Text style={styles.syncButton}>Press for Update Metadata</Text>
</TouchableOpacity>
<Text style={styles.messages}>{this.state.syncMessage || ""}</Text>
</View>
</ScrollView>
</SafeAreaView>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: "center",
backgroundColor: "#F5FCFF",
paddingTop: 50
},
image: {
margin: 30,
width: Dimensions.get("window").width - 100,
height: 365 * (Dimensions.get("window").width - 100) / 651,
},
messages: {
marginTop: 30,
textAlign: "center",
},
restartToggleButton: {
color: "blue",
fontSize: 17
},
syncButton: {
color: "green",
fontSize: 17
},
welcome: {
fontSize: 20,
textAlign: "center",
margin: 20
},
});
/**
* Configured with a MANUAL check frequency for easy testing. For production apps, it is recommended to configure a
* different check frequency, such as ON_APP_START, for a 'hands-off' approach where CodePush.sync() does not
* need to be explicitly called. All options of CodePush.sync() are also available in this decorator.
*/
let codePushOptions = { checkFrequency: CodePush.CheckFrequency.MANUAL };
App = CodePush(codePushOptions)(App);
export default App;
================================================
FILE: Examples/CodePushDemoAppCpp/app.json
================================================
{
"name": "CodePushDemoAppCpp",
"displayName": "CodePushDemoAppCpp"
}
================================================
FILE: Examples/CodePushDemoAppCpp/babel.config.js
================================================
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
};
================================================
FILE: Examples/CodePushDemoAppCpp/index.js
================================================
/**
* @format
*/
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
================================================
FILE: Examples/CodePushDemoAppCpp/metro.config.js
================================================
/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* @format
*/
const path = require('path');
const blacklist = require('metro-config/src/defaults/blacklist');
module.exports = {
resolver: {
blacklistRE: blacklist([
// This stops "react-native run-windows" from causing the metro server to crash if its already running
new RegExp(
`${path.resolve(__dirname, 'windows').replace(/[/\\]/g, '/')}.*`,
),
// This prevents "react-native run-windows" from hitting: EBUSY: resource busy or locked, open msbuild.ProjectImports.zip
/.*\.ProjectImports\.zip/,
]),
},
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
};
================================================
FILE: Examples/CodePushDemoAppCpp/package.json
================================================
{
"name": "CodePushDemoAppCpp",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "react-native start",
"test": "jest",
"lint": "eslint .",
"windows": "react-native run-windows"
},
"dependencies": {
"react": "^17.0.2",
"react-native": "^0.68.5",
"react-native-code-push": "^8.1.0",
"react-native-windows": "^1.0.0"
},
"resolutions": {
"strip-ansi": "^6.0.1",
"ansi-regex": "^5.0.1",
"node-fetch": "^2.6.7"
},
"devDependencies": {
"@babel/core": "^7.8.4",
"@babel/runtime": "^7.8.4",
"@react-native-community/eslint-config": "^3.0.1",
"appcenter-cli": "^2.14.0",
"babel-jest": "^27.2.5",
"eslint": "^8.0.0",
"jest": "^27.2.5",
"metro-react-native-babel-preset": "^0.66.2",
"react-test-renderer": "17.0.2"
},
"jest": {
"preset": "react-native"
}
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/.gitignore
================================================
*AppPackages*
*BundleArtifacts*
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.opensdf
*.opendb
*.unsuccessfulbuild
ipch/
[Oo]bj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
#MonoDevelop
*.pidb
*.userprefs
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
*.sass-cache
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
# vim Temp Files
*~
#NuGet
packages/
*.nupkg
#ncrunch
*ncrunch*
*crunch*.local.xml
# visual studio database projects
*.dbmdl
#Test files
*.testsettings
#Other files
*.DotSettings
.vs/
*project.lock.json
#Files generated by the VS build
**/Generated Files/**
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/.gitignore
================================================
/Bundle
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.cpp
================================================
#include "pch.h"
#include "App.h"
#include "AutolinkedNativeModules.g.h"
#include "ReactPackageProvider.h"
#include "winrt/Microsoft.CodePush.ReactNative.h"
#include "winrt/Windows.Storage.h"
#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Data.Json.h"
#include <string_view>
using namespace winrt::CodePushDemoAppCpp;
using namespace winrt::CodePushDemoAppCpp::implementation;
using namespace winrt;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Navigation;
using namespace Windows::ApplicationModel;
using namespace Windows::ApplicationModel::Activation;
using namespace Windows::Storage;
using namespace Windows::Data::Json;
using namespace Microsoft::ReactNative;
using namespace std;
/// <summary>
/// Initializes the singleton application object. This is the first line of
/// authored code executed, and as such is the logical equivalent of main() or
/// WinMain().
/// </summary>
App::App() noexcept
{
#if BUNDLE
m_host.InstanceSettings().JavaScriptBundleFile(L"index.windows");
m_host.InstanceSettings().UseWebDebugger(false);
m_host.InstanceSettings().UseFastRefresh(false);
#else
m_host.InstanceSettings().JavaScriptMainModuleName(L"index");
m_host.InstanceSettings().UseWebDebugger(true);
m_host.InstanceSettings().UseFastRefresh(true);
#endif
#if _DEBUG
m_host.InstanceSettings().UseDeveloperSupport(true);
#else
m_host.InstanceSettings().UseDeveloperSupport(false);
#endif
RegisterAutolinkedNativeModulePackages(m_host.InstanceSettings().PackageProviders()); // Includes any autolinked modules
m_host.InstanceSettings().PackageProviders().Append(make<ReactPackageProvider>()); // Includes all modules in this project
InitializeComponent();
Suspending({ this, &App::OnSuspending });
#if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
UnhandledException([this](IInspectable const&, UnhandledExceptionEventArgs const& e)
{
if (IsDebuggerPresent())
{
auto errorMessage = e.Message();
__debugbreak();
}
});
#endif
}
/// <summary>
/// Invoked when the application is launched normally by the end user. Other entry points
/// will be used such as when the application is launched to open a specific file.
/// </summary>
/// <param name="e">Details about the launch request and process.</param>
void App::OnLaunched(activation::LaunchActivatedEventArgs const& e)
{
winrt::Microsoft::CodePush::ReactNative::CodePushConfig::SetHost(Host());
auto configMap{ winrt::single_threaded_map<hstring, hstring>() };
configMap.Insert(L"appVersion", L"1.0.0");
configMap.Insert(L"deploymentKey", L"<app deployment key>");
winrt::Microsoft::CodePush::ReactNative::CodePushConfig::Init(configMap);
Frame rootFrame{ nullptr };
auto content = Window::Current().Content();
if (content)
{
rootFrame = content.try_as<Frame>();
}
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
if (rootFrame == nullptr)
{
// Create a Frame to act as the navigation context and associate it with
// a SuspensionManager key
rootFrame = Frame();
rootFrame.NavigationFailed({ this, &App::OnNavigationFailed });
if (e.PreviousExecutionState() == ApplicationExecutionState::Terminated)
{
// Restore the saved session state only when appropriate, scheduling the
// final launch steps after the restore is complete
}
if (e.PrelaunchActivated() == false)
{
if (rootFrame.Content() == nullptr)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
rootFrame.Navigate(xaml_typename<CodePushDemoAppCpp::MainPage>(), box_value(e.Arguments()));
}
// Place the frame in the current Window
Window::Current().Content(rootFrame);
// Ensure the current window is active
Window::Current().Activate();
}
}
else
{
if (e.PrelaunchActivated() == false)
{
if (rootFrame.Content() == nullptr)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
rootFrame.Navigate(xaml_typename<CodePushDemoAppCpp::MainPage>(), box_value(e.Arguments()));
}
// Ensure the current window is active
Window::Current().Activate();
}
}
}
/// <summary>
/// Invoked when application execution is being suspended. Application state is saved
/// without knowing whether the application will be terminated or resumed with the contents
/// of memory still intact.
/// </summary>
/// <param name="sender">The source of the suspend request.</param>
/// <param name="e">Details about the suspend request.</param>
void App::OnSuspending([[maybe_unused]] IInspectable const& sender, [[maybe_unused]] SuspendingEventArgs const& e)
{
// Save application state and stop any background activity
}
/// <summary>
/// Invoked when Navigation to a certain page fails
/// </summary>
/// <param name="sender">The Frame which failed navigation</param>
/// <param name="e">Details about the navigation failure</param>
void App::OnNavigationFailed(IInspectable const&, NavigationFailedEventArgs const& e)
{
throw hresult_error(E_FAIL, hstring(L"Failed to load Page ") + e.SourcePageType().Name);
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.h
================================================
#pragma once
#include "App.xaml.g.h"
#include "winrt/Microsoft.ReactNative.h"
namespace activation = winrt::Windows::ApplicationModel::Activation;
namespace winrt::CodePushDemoAppCpp::implementation
{
struct App : AppT<App>
{
App() noexcept;
void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs const&);
void OnSuspending(IInspectable const&, Windows::ApplicationModel::SuspendingEventArgs const&);
void OnNavigationFailed(IInspectable const&, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs const&);
winrt::Microsoft::ReactNative::ReactNativeHost& Host() noexcept { return m_host; }
private:
winrt::Microsoft::ReactNative::ReactNativeHost m_host;
};
} // namespace winrt::CodePushDemoAppCpp::implementation
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.idl
================================================
namespace CodePushDemoAppCpp
{
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.xaml
================================================
<Application
x:Class="CodePushDemoAppCpp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CodePushDemoAppCpp">
</Application>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.cpp
================================================
// AutolinkedNativeModules.g.cpp contents generated by "react-native autolink-windows"
// clang-format off
#include "pch.h"
#include "AutolinkedNativeModules.g.h"
// Includes from react-native-code-push-windows
#include "winrt/Microsoft.CodePush.ReactNative.h"
namespace winrt::Microsoft::ReactNative
{
void RegisterAutolinkedNativeModulePackages(winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::ReactNative::IReactPackageProvider> const& packageProviders)
{
// IReactPackageProviders from react-native-code-push-windows
packageProviders.Append(winrt::Microsoft::CodePush::ReactNative::ReactPackageProvider());
}
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.h
================================================
// AutolinkedNativeModules.g.h contents generated by "react-native autolink-windows"
#pragma once
namespace winrt::Microsoft::ReactNative
{
void RegisterAutolinkedNativeModulePackages(winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::ReactNative::IReactPackageProvider> const& packageProviders);
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- AutolinkedNativeModules.g.targets contents generated by "react-native autolink-windows" -->
<ItemGroup>
<!-- Projects from react-native-code-push-windows -->
<!-- We use direct dependecy instead to develop the CodePush component -->
<!-- <ProjectReference Include="$(ProjectDir)..\..\node_modules\react-native-code-push-windows\windows\CodePush\CodePush.vcxproj">
<Project>{a6b6216e-fa3f-45e2-9c8e-40023cce9132}</Project>
</ProjectReference> -->
</ItemGroup>
</Project>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/CodePushDemoAppCpp.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.props')" />
<PropertyGroup Label="Globals">
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge>
<MinimalCoreWin>true</MinimalCoreWin>
<ProjectGuid>{609f44f6-01cf-4270-85a3-09f9ca10b434}</ProjectGuid>
<ProjectName>CodePushDemoAppCpp</ProjectName>
<RootNamespace>CodePushDemoAppCpp</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>16.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.18362.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.16299.0</WindowsTargetPlatformMinVersion>
<PackageCertificateKeyFile>CodePushDemoAppCpp_TemporaryKey.pfx</PackageCertificateKeyFile>
<PackageCertificateThumbprint>5FBADC5BFA887CF7B571A1685542D69E23F6A0F2</PackageCertificateThumbprint>
<PackageCertificatePassword>password</PackageCertificatePassword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="ReactNativeWindowsProps">
<ReactNativeWindowsDir Condition="'$(ReactNativeWindowsDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native-windows\package.json'))\node_modules\react-native-windows\</ReactNativeWindowsDir>
<!-- This demo app uses bundle even in Debug mode -->
<UseBundle>true</UseBundle>
<!-- We use this project for developing the CodePush module. We disable autolinking to use it from the source location -->
<RunAutolinkCheck>false</RunAutolinkCheck>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="PropertySheet.props" />
</ImportGroup>
<ImportGroup Label="ReactNativeWindowsPropertySheets">
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\external\Microsoft.ReactNative.Uwp.CppApp.props" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.props')" />
<Import Project="..\packages\$(WinUIPackageProps)" Condition="'$(WinUIPackageProps)'!='' And Exists('..\packages\$(WinUIPackageProps)')" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
<WarningLevel>Level4</WarningLevel>
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="MainPage.h">
<DependentUpon>MainPage.xaml</DependentUpon>
<SubType>Code</SubType>
</ClInclude>
<ClInclude Include="ReactPackageProvider.h" />
<ClInclude Include="AutolinkedNativeModules.g.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="App.h">
<DependentUpon>App.xaml</DependentUpon>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<SubType>Designer</SubType>
</ApplicationDefinition>
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest">
<SubType>Designer</SubType>
</AppxManifest>
</ItemGroup>
<ItemGroup>
<Image Include="Assets\LockScreenLogo.scale-200.png" />
<Image Include="Assets\SplashScreen.scale-200.png" />
<Image Include="Assets\Square150x150Logo.scale-200.png" />
<Image Include="Assets\Square44x44Logo.scale-200.png" />
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Image Include="Assets\StoreLogo.png" />
<Image Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="MainPage.cpp">
<DependentUpon>MainPage.xaml</DependentUpon>
<SubType>Code</SubType>
</ClCompile>
<ClCompile Include="ReactPackageProvider.cpp" />
<ClCompile Include="AutolinkedNativeModules.g.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="App.cpp">
<DependentUpon>App.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<Midl Include="App.idl">
<DependentUpon>App.xaml</DependentUpon>
</Midl>
<Midl Include="MainPage.idl">
<DependentUpon>MainPage.xaml</DependentUpon>
<SubType>Code</SubType>
</Midl>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="PropertySheet.props" />
</ItemGroup>
<ItemGroup>
<Page Include="MainPage.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\windows\CodePush\CodePush.vcxproj">
<Project>{a6b6216e-fa3f-45e2-9c8e-40023cce9132}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ReactNativeWindowsTargets">
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.targets" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.targets')" />
</ImportGroup>
<Target Name="EnsureReactNativeWindowsTargets" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references targets in your node_modules\react-native-windows folder. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.props')" Text="$([System.String]::Format('$(ErrorText)', '$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.props'))" />
<Error Condition="!Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.targets'))" />
</Target>
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="..\packages\$(WinUIPackageName).$(WinUIPackageVersion)\build\native\$(WinUIPackageName).targets" Condition="Exists('..\packages\$(WinUIPackageName).$(WinUIPackageVersion)\build\native\$(WinUIPackageName).targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Windows.CppWinRT.2.0.200615.7\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\packages\$(WinUIPackageName).$(WinUIPackageVersion)\build\native\$(WinUIPackageName).targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\$(WinUIPackageName).$(WinUIPackageVersion)\build\native\$(WinUIPackageName).targets'))" />
</Target>
</Project>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/CodePushDemoAppCpp.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ApplicationDefinition Include="App.xaml" />
</ItemGroup>
<ItemGroup>
<Midl Include="App.idl" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp" />
<ClCompile Include="App.cpp" />
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
<ClCompile Include="ReactPackageProvider.cpp" />
<ClCompile Include="AutolinkedNativeModules.g.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
<ClInclude Include="App.h" />
<ClInclude Include="ReactPackageProvider.h" />
<ClInclude Include="AutolinkedNativeModules.g.h" />
</ItemGroup>
<ItemGroup>
<Image Include="Assets\Wide310x150Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\StoreLogo.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square150x150Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square44x44Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\SplashScreen.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\LockScreenLogo.scale-200.png">
<Filter>Assets</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest" />
</ItemGroup>
<ItemGroup>
<Filter Include="Assets">
<UniqueIdentifier>{e48dc53e-40b1-40cb-970a-f89935452892}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="PropertySheet.props" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Page Include="MainPage.xaml" />
</ItemGroup>
</Project>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.cpp
================================================
#include "pch.h"
#include "MainPage.h"
#if __has_include("MainPage.g.cpp")
#include "MainPage.g.cpp"
#endif
#include "App.h"
using namespace winrt;
using namespace Windows::UI::Xaml;
namespace winrt::CodePushDemoAppCpp::implementation
{
MainPage::MainPage()
{
InitializeComponent();
auto app = Application::Current().as<App>();
ReactRootView().ReactNativeHost(app->Host());
}
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.h
================================================
#pragma once
#include "MainPage.g.h"
#include <winrt/Microsoft.ReactNative.h>
namespace winrt::CodePushDemoAppCpp::implementation
{
struct MainPage : MainPageT<MainPage>
{
MainPage();
};
}
namespace winrt::CodePushDemoAppCpp::factory_implementation
{
struct MainPage : MainPageT<MainPage, implementation::MainPage>
{
};
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.idl
================================================
namespace CodePushDemoAppCpp
{
[default_interface]
runtimeclass MainPage : Windows.UI.Xaml.Controls.Page
{
MainPage();
}
}
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.xaml
================================================
<Page
x:Class="CodePushDemoAppCpp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CodePushDemoAppCpp"
xmlns:react="using:Microsoft.ReactNative"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<react:ReactRootView
x:Name="ReactRootView"
ComponentName="CodePushDemoAppCpp"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
MinHeight="400"/>
</Page>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/Package.appxmanifest
================================================
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
IgnorableNamespaces="uap mp">
<Identity
Name="bd8be20e-1e17-4299-8d0e-5862cc4428a8"
Publisher="CN=Aleksey"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="bd8be20e-1e17-4299-8d0e-5862cc4428a8" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>CodePushDemoAppCpp</DisplayName>
<PublisherDisplayName>Aleksey</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Applications>
<Application
Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="CodePushDemoAppCpp.App">
<uap:VisualElements
DisplayName="CodePushDemoAppCpp"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png"
Description="CodePushDemoAppCpp"
BackgroundColor="transparent">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/PropertySheet.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<!--
To customize common C++/WinRT project properties:
* right-click the project node
* expand the Common Properties item
* select the C++/WinRT property page
For more advanced scenarios, and complete documentation, please see:
https://github.com/Microsoft/xlang/tree/master/src/package/cppwinrt/nuget
-->
<PropertyGroup />
<ItemDefinitionGroup />
</Project>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/ReactPackageProvider.cpp
================================================
#include "pch.h"
#include "ReactPackageProvider.h"
#include "NativeModules.h"
using namespace winrt::Microsoft::ReactNative;
namespace winrt::CodePushDemoAppCpp::implementation
{
void ReactPackageProvider::CreatePackage(IReactPackageBuilder const &packageBuilder) noexcept
{
AddAttributedModules(packageBuilder);
}
} // namespace winrt::CodePushDemoAppCpp::implementation
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/ReactPackageProvider.h
================================================
#pragma once
#include "winrt/Microsoft.ReactNative.h"
namespace winrt::CodePushDemoAppCpp::implementation
{
struct ReactPackageProvider : winrt::implements<ReactPackageProvider, winrt::Microsoft::ReactNative::IReactPackageProvider>
{
public: // IReactPackageProvider
void CreatePackage(winrt::Microsoft::ReactNative::IReactPackageBuilder const &packageBuilder) noexcept;
};
} // namespace winrt::CodePushDemoAppCpp::implementation
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/packages.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Windows.CppWinRT" version="2.0.200615.7" targetFramework="native" />
<package id="Microsoft.UI.Xaml" version="2.3.191129002" targetFramework="native" />
</packages>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/pch.cpp
================================================
#include "pch.h"
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/pch.h
================================================
#pragma once
#define NOMINMAX
#include <hstring.h>
#include <restrictederrorinfo.h>
#include <unknwn.h>
#include <windows.h>
#include <winrt/Windows.ApplicationModel.Activation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.UI.Xaml.Controls.Primitives.h>
#include <winrt/Windows.UI.Xaml.Controls.h>
#include <winrt/Windows.UI.Xaml.Data.h>
#include <winrt/Windows.UI.Xaml.Interop.h>
#include <winrt/Windows.UI.Xaml.Markup.h>
#include <winrt/Windows.UI.Xaml.Navigation.h>
#include <winrt/Windows.UI.Xaml.h>
#include <winrt/Microsoft.ReactNative.h>
#include <winrt/Microsoft.UI.Xaml.Automation.Peers.h>
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.Controls.h>
#include <winrt/Microsoft.UI.Xaml.Media.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
================================================
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29215.179
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodePushDemoAppCpp", "CodePushDemoAppCpp\CodePushDemoAppCpp.vcxproj", "{609F44F6-01CF-4270-85A3-09F9CA10B434}"
ProjectSection(ProjectDependencies) = postProject
{F7D32BD0-2749-483E-9A0D-1635EF7E3136} = {F7D32BD0-2749-483E-9A0D-1635EF7E3136}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Folly", "..\node_modules\react-native-windows\Folly\Folly.vcxproj", "{A990658C-CE31-4BCC-976F-0FC6B1AF693D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactCommon", "..\node_modules\react-native-windows\ReactCommon\ReactCommon.vcxproj", "{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}"
ProjectSection(ProjectDependencies) = postProject
{A990658C-CE31-4BCC-976F-0FC6B1AF693D} = {A990658C-CE31-4BCC-976F-0FC6B1AF693D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra", "..\node_modules\react-native-windows\Chakra\Chakra.vcxitems", "{C38970C0-5FBF-4D69-90D8-CBAC225AE895}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative", "..\node_modules\react-native-windows\Microsoft.ReactNative\Microsoft.ReactNative.vcxproj", "{F7D32BD0-2749-483E-9A0D-1635EF7E3136}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSI.Shared", "..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems", "{0CC28589-39E4-4288-B162-97B959F8B843}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSI.Universal", "..\node_modules\react-native-windows\JSI\Universal\JSI.Universal.vcxproj", "{A62D504A-16B8-41D2-9F19-E2E86019E5E4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative.Cxx", "..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems", "{DA8B35B3-DA00-4B02-BDE6-6A397B3FD46B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "..\node_modules\react-native-windows\Common\Common.vcxproj", "{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ReactNative", "ReactNative", "{5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.ReactNative.Shared", "..\node_modules\react-native-windows\Shared\Shared.vcxitems", "{2049DBE9-8D13-42C9-AE4B-413AE38FFFD0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mso", "..\node_modules\react-native-windows\Mso\Mso.vcxitems", "{84E05BFA-CBAF-4F0D-BFB6-4CE85742A57E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Include", "..\node_modules\react-native-windows\include\Include.vcxitems", "{EF074BA1-2D54-4D49-A28E-5E040B47CD2E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodePush", "..\..\..\windows\CodePush\CodePush.vcxproj", "{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems*{0cc28589-39e4-4288-b162-97b959f8b843}*SharedItemsImports = 9
..\node_modules\react-native-windows\Shared\Shared.vcxitems*{2049dbe9-8d13-42c9-ae4b-413ae38fffd0}*SharedItemsImports = 9
..\node_modules\react-native-windows\Mso\Mso.vcxitems*{84e05bfa-cbaf-4f0d-bfb6-4ce85742a57e}*SharedItemsImports = 9
..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems*{a62d504a-16b8-41d2-9f19-e2e86019e5e4}*SharedItemsImports = 4
..\node_modules\react-native-windows\Chakra\Chakra.vcxitems*{c38970c0-5fbf-4d69-90d8-cbac225ae895}*SharedItemsImports = 9
..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{da8b35b3-da00-4b02-bde6-6a397b3fd46b}*SharedItemsImports = 9
..\node_modules\react-native-windows\include\Include.vcxitems*{ef074ba1-2d54-4d49-a28e-5e040b47cd2e}*SharedItemsImports = 9
..\node_modules\react-native-windows\Chakra\Chakra.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
..\node_modules\react-native-windows\Mso\Mso.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
..\node_modules\react-native-windows\Shared\Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|ARM.ActiveCfg = Debug|ARM
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|ARM.Build.0 = Debug|ARM
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|ARM.Deploy.0 = Debug|ARM
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|ARM64.ActiveCfg = Debug|ARM64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|ARM64.Build.0 = Debug|ARM64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|ARM64.Deploy.0 = Debug|ARM64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|x64.ActiveCfg = Debug|x64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|x64.Build.0 = Debug|x64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|x64.Deploy.0 = Debug|x64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|x86.ActiveCfg = Debug|Win32
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|x86.Build.0 = Debug|Win32
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Debug|x86.Deploy.0 = Debug|Win32
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|ARM.ActiveCfg = Release|ARM
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|ARM.Build.0 = Release|ARM
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|ARM.Deploy.0 = Release|ARM
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|ARM64.ActiveCfg = Release|ARM64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|ARM64.Build.0 = Release|ARM64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|ARM64.Deploy.0 = Release|ARM64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|x64.ActiveCfg = Release|x64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|x64.Build.0 = Release|x64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|x64.Deploy.0 = Release|x64
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|x86.ActiveCfg = Release|Win32
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|x86.Build.0 = Release|Win32
{609F44F6-01CF-4270-85A3-09F9CA10B434}.Release|x86.Deploy.0 = Release|Win32
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM.ActiveCfg = Debug|ARM
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM.Build.0 = Debug|ARM
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|ARM64.Build.0 = Debug|ARM64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x64.ActiveCfg = Debug|x64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x64.Build.0 = Debug|x64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x86.ActiveCfg = Debug|Win32
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Debug|x86.Build.0 = Debug|Win32
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|ARM.ActiveCfg = Release|ARM
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|ARM.Build.0 = Release|ARM
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|ARM64.ActiveCfg = Release|ARM64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|ARM64.Build.0 = Release|ARM64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x64.ActiveCfg = Release|x64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x64.Build.0 = Release|x64
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x86.ActiveCfg = Release|Win32
{A990658C-CE31-4BCC-976F-0FC6B1AF693D}.Release|x86.Build.0 = Release|Win32
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|ARM.ActiveCfg = Debug|ARM
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|ARM.Build.0 = Debug|ARM
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|ARM64.Build.0 = Debug|ARM64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x64.ActiveCfg = Debug|x64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x64.Build.0 = Debug|x64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x86.ActiveCfg = Debug|Win32
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Debug|x86.Build.0 = Debug|Win32
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|ARM.ActiveCfg = Release|ARM
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|ARM.Build.0 = Release|ARM
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|ARM64.ActiveCfg = Release|ARM64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|ARM64.Build.0 = Release|ARM64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x64.ActiveCfg = Release|x64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x64.Build.0 = Release|x64
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.ActiveCfg = Release|Win32
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD}.Release|x86.Build.0 = Release|Win32
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM.ActiveCfg = Debug|ARM
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM.Build.0 = Debug|ARM
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM64.ActiveCfg = Debug|ARM64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|ARM64.Build.0 = Debug|ARM64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x64.ActiveCfg = Debug|x64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x64.Build.0 = Debug|x64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x86.ActiveCfg = Debug|Win32
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Debug|x86.Build.0 = Debug|Win32
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|ARM.ActiveCfg = Release|ARM
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|ARM.Build.0 = Release|ARM
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|ARM64.ActiveCfg = Release|ARM64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|ARM64.Build.0 = Release|ARM64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x64.ActiveCfg = Release|x64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x64.Build.0 = Release|x64
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x86.ActiveCfg = Release|Win32
{F7D32BD0-2749-483E-9A0D-1635EF7E3136}.Release|x86.Build.0 = Release|Win32
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|ARM.ActiveCfg = Debug|ARM
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|ARM.Build.0 = Debug|ARM
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|ARM64.Build.0 = Debug|ARM64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x64.ActiveCfg = Debug|x64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x64.Build.0 = Debug|x64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x86.ActiveCfg = Debug|Win32
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Debug|x86.Build.0 = Debug|Win32
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|ARM.ActiveCfg = Release|ARM
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|ARM.Build.0 = Release|ARM
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|ARM64.ActiveCfg = Release|ARM64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|ARM64.Build.0 = Release|ARM64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x64.ActiveCfg = Release|x64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x64.Build.0 = Release|x64
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x86.ActiveCfg = Release|Win32
{A62D504A-16B8-41D2-9F19-E2E86019E5E4}.Release|x86.Build.0 = Release|Win32
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|ARM.ActiveCfg = Debug|ARM
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|ARM.Build.0 = Debug|ARM
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|ARM64.ActiveCfg = Debug|ARM64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|ARM64.Build.0 = Debug|ARM64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x64.ActiveCfg = Debug|x64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x64.Build.0 = Debug|x64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x86.ActiveCfg = Debug|Win32
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Debug|x86.Build.0 = Debug|Win32
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|ARM.ActiveCfg = Release|ARM
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|ARM.Build.0 = Release|ARM
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|ARM64.ActiveCfg = Release|ARM64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|ARM64.Build.0 = Release|ARM64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x64.ActiveCfg = Release|x64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x64.Build.0 = Release|x64
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x86.ActiveCfg = Release|Win32
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}.Release|x86.Build.0 = Release|Win32
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|ARM.ActiveCfg = Debug|ARM
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|ARM.Build.0 = Debug|ARM
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|ARM64.Build.0 = Debug|ARM64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|x64.ActiveCfg = Debug|x64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|x64.Build.0 = Debug|x64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|x86.ActiveCfg = Debug|Win32
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Debug|x86.Build.0 = Debug|Win32
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|ARM.ActiveCfg = Release|ARM
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|ARM.Build.0 = Release|ARM
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|ARM64.ActiveCfg = Release|ARM64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|ARM64.Build.0 = Release|ARM64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|x64.ActiveCfg = Release|x64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|x64.Build.0 = Release|x64
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|x86.ActiveCfg = Release|Win32
{A6B6216E-FA3F-45E2-9C8E-40023CCE9132}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{A990658C-CE31-4BCC-976F-0FC6B1AF693D} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{A9D95A91-4DB7-4F72-BEB6-FE8A5C89BFBD} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{C38970C0-5FBF-4D69-90D8-CBAC225AE895} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{F7D32BD0-2749-483E-9A0D-1635EF7E3136} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{0CC28589-39E4-4288-B162-97B959F8B843} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{A62D504A-16B8-41D2-9F19-E2E86019E5E4} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{DA8B35B3-DA00-4B02-BDE6-6A397B3FD46B} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{2049DBE9-8D13-42C9-AE4B-413AE38FFFD0} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{84E05BFA-CBAF-4F0D-BFB6-4CE85742A57E} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
{EF074BA1-2D54-4D49-A28E-5E040B47CD2E} = {5EA20F54-880A-49F3-99FA-4B3FE54E8AB1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D43FAD39-F619-437D-BB40-04A3982ACB6A}
EndGlobalSection
EndGlobal
================================================
FILE: Examples/create-app.js
================================================
/*
The script serves to generate CodePushified React Native app to reproduce issues or for testing purposes.
NOTE: Use CodePushDemoApp and CodePushDemoAppCpp as reference how to implement CodePush in your app. For creating a working demo app
follow steps bellow.
Requirements:
1. npm i -g react-native-cli
2. npm i -g appcenter-cli
3. appcenter login
4. If you use this script on macOS for react-native v0.60+ then you need to have CocoaPods installed. Use this command to (re)install CocoaPods:
sudo gem install cocoapods -n /usr/local/bin
Usage: node create-app.js <appName> <reactNativeVersion> <reactNativeCodePushVersion>
1. node create-app.js
2. node create-app.js myapp
3. node create-app.js myapp react-native@0.62 react-native-code-push@6.1.0
4. node create-app.js myapp react-native@latest Microsoft/react-native-code-push
Parameters:
1. <appName> - CodePushDemoAppTest
2. <reactNativeVersion> - react-native@latest
3. <reactNativeCodePushVersion> - react-
gitextract_eag1d8bl/
├── .azurepipelines/
│ ├── build-rn-code-push-1es.yml
│ └── test-rn-code-push.yml
├── .config/
│ └── CredScanSuppressions.json
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE.md
│ └── policies/
│ └── resourceManagement.yml
├── .gitignore
├── .npmignore
├── .vscode/
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── .watchmanconfig
├── AlertAdapter.js
├── CONTRIBUTING.md
├── CodePush.js
├── CodePush.podspec
├── Examples/
│ ├── CodePushDemoApp/
│ │ ├── .buckconfig
│ │ ├── .editorconfig
│ │ ├── .eslintrc.js
│ │ ├── .flowconfig
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .prettierrc.js
│ │ ├── .watchmanconfig
│ │ ├── App.js
│ │ ├── __tests__/
│ │ │ └── App-test.js
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── debug.keystore
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── codepushdemoapp/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── ios/
│ │ │ ├── CodePushDemoApp/
│ │ │ │ ├── AppDelegate.h
│ │ │ │ ├── AppDelegate.m
│ │ │ │ ├── Images.xcassets/
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Info.plist
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── main.m
│ │ │ ├── CodePushDemoApp.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ └── CodePushDemoApp.xcscheme
│ │ │ ├── CodePushDemoApp.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── CodePushDemoAppTests/
│ │ │ │ ├── CodePushDemoAppTests.m
│ │ │ │ └── Info.plist
│ │ │ └── Podfile
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── CodePushDemoAppCpp/
│ │ ├── .buckconfig
│ │ ├── .eslintrc.js
│ │ ├── .flowconfig
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .prettierrc.js
│ │ ├── .watchmanconfig
│ │ ├── App.js
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── windows/
│ │ ├── .gitignore
│ │ ├── CodePushDemoAppCpp/
│ │ │ ├── .gitignore
│ │ │ ├── App.cpp
│ │ │ ├── App.h
│ │ │ ├── App.idl
│ │ │ ├── App.xaml
│ │ │ ├── AutolinkedNativeModules.g.cpp
│ │ │ ├── AutolinkedNativeModules.g.h
│ │ │ ├── AutolinkedNativeModules.g.targets
│ │ │ ├── CodePushDemoAppCpp.vcxproj
│ │ │ ├── CodePushDemoAppCpp.vcxproj.filters
│ │ │ ├── CodePushDemoAppCpp_TemporaryKey.pfx
│ │ │ ├── MainPage.cpp
│ │ │ ├── MainPage.h
│ │ │ ├── MainPage.idl
│ │ │ ├── MainPage.xaml
│ │ │ ├── Package.appxmanifest
│ │ │ ├── PropertySheet.props
│ │ │ ├── ReactPackageProvider.cpp
│ │ │ ├── ReactPackageProvider.h
│ │ │ ├── packages.config
│ │ │ ├── pch.cpp
│ │ │ └── pch.h
│ │ └── CodePushDemoAppCpp.sln
│ ├── create-app.js
│ └── nexpect.js
├── LICENSE.md
├── README.md
├── Recipes/
│ ├── UpdateButton.ios.js
│ └── UpdateOnStart.ios.js
├── SECURITY.md
├── android/
│ ├── app/
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src/
│ │ ├── debug/
│ │ │ └── AndroidManifest.xml
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── microsoft/
│ │ └── codepush/
│ │ └── react/
│ │ ├── CodePush.java
│ │ ├── CodePushBuilder.java
│ │ ├── CodePushConstants.java
│ │ ├── CodePushDialog.java
│ │ ├── CodePushInstallMode.java
│ │ ├── CodePushInvalidPublicKeyException.java
│ │ ├── CodePushInvalidUpdateException.java
│ │ ├── CodePushMalformedDataException.java
│ │ ├── CodePushNativeModule.java
│ │ ├── CodePushNotInitializedException.java
│ │ ├── CodePushTelemetryManager.java
│ │ ├── CodePushUnknownException.java
│ │ ├── CodePushUpdateManager.java
│ │ ├── CodePushUpdateState.java
│ │ ├── CodePushUpdateUtils.java
│ │ ├── CodePushUtils.java
│ │ ├── DownloadProgress.java
│ │ ├── DownloadProgressCallback.java
│ │ ├── FileUtils.java
│ │ ├── ReactInstanceHolder.java
│ │ ├── SettingsManager.java
│ │ └── TLSSocketFactory.java
│ ├── build.gradle
│ ├── codepush.gradle
│ ├── gradle/
│ │ └── wrapper/
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── code-push-plugin-testing-framework/
│ ├── package.json
│ ├── script/
│ │ ├── index.js
│ │ ├── platform.js
│ │ ├── projectManager.js
│ │ ├── serverUtil.js
│ │ ├── test.js
│ │ ├── testBuilder.js
│ │ ├── testConfig.js
│ │ └── testUtil.js
│ └── typings/
│ └── code-push-plugin-testing-framework.d.ts
├── docs/
│ ├── api-android.md
│ ├── api-ios.md
│ ├── api-js.md
│ ├── multi-deployment-testing-android.md
│ ├── multi-deployment-testing-ios.md
│ ├── setup-android.md
│ ├── setup-ios.md
│ └── setup-windows.md
├── ios/
│ ├── CodePush/
│ │ ├── Base64/
│ │ │ ├── Base64/
│ │ │ │ ├── MF_Base64Additions.h
│ │ │ │ └── MF_Base64Additions.m
│ │ │ └── README.md
│ │ ├── CodePush.h
│ │ ├── CodePush.m
│ │ ├── CodePushConfig.m
│ │ ├── CodePushDownloadHandler.m
│ │ ├── CodePushErrorUtils.m
│ │ ├── CodePushPackage.m
│ │ ├── CodePushTelemetryManager.m
│ │ ├── CodePushUpdateUtils.m
│ │ ├── CodePushUtils.m
│ │ ├── JWT/
│ │ │ ├── Core/
│ │ │ │ ├── Algorithms/
│ │ │ │ │ ├── Base/
│ │ │ │ │ │ ├── JWTAlgorithm.h
│ │ │ │ │ │ ├── JWTAlgorithmFactory.h
│ │ │ │ │ │ ├── JWTAlgorithmFactory.m
│ │ │ │ │ │ ├── JWTAlgorithmNone.h
│ │ │ │ │ │ └── JWTAlgorithmNone.m
│ │ │ │ │ ├── ESFamily/
│ │ │ │ │ │ ├── JWTAlgorithmESBase.h
│ │ │ │ │ │ └── JWTAlgorithmESBase.m
│ │ │ │ │ ├── HSFamily/
│ │ │ │ │ │ ├── JWTAlgorithmHSBase.h
│ │ │ │ │ │ └── JWTAlgorithmHSBase.m
│ │ │ │ │ ├── Holders/
│ │ │ │ │ │ ├── JWTAlgorithmDataHolder.h
│ │ │ │ │ │ ├── JWTAlgorithmDataHolder.m
│ │ │ │ │ │ ├── JWTAlgorithmDataHolderChain.h
│ │ │ │ │ │ └── JWTAlgorithmDataHolderChain.m
│ │ │ │ │ └── RSFamily/
│ │ │ │ │ ├── JWTAlgorithmRSBase.h
│ │ │ │ │ ├── JWTAlgorithmRSBase.m
│ │ │ │ │ ├── JWTRSAlgorithm.h
│ │ │ │ │ └── RSKeys/
│ │ │ │ │ ├── JWTCryptoKey.h
│ │ │ │ │ ├── JWTCryptoKey.m
│ │ │ │ │ ├── JWTCryptoKeyExtractor.h
│ │ │ │ │ ├── JWTCryptoKeyExtractor.m
│ │ │ │ │ ├── JWTCryptoSecurity.h
│ │ │ │ │ └── JWTCryptoSecurity.m
│ │ │ │ ├── ClaimSet/
│ │ │ │ │ ├── JWTClaim.h
│ │ │ │ │ ├── JWTClaim.m
│ │ │ │ │ ├── JWTClaimsSet.h
│ │ │ │ │ ├── JWTClaimsSet.m
│ │ │ │ │ ├── JWTClaimsSetSerializer.h
│ │ │ │ │ ├── JWTClaimsSetSerializer.m
│ │ │ │ │ ├── JWTClaimsSetVerifier.h
│ │ │ │ │ └── JWTClaimsSetVerifier.m
│ │ │ │ ├── Coding/
│ │ │ │ │ ├── JWTCoding+ResultTypes.h
│ │ │ │ │ ├── JWTCoding+ResultTypes.m
│ │ │ │ │ ├── JWTCoding+VersionOne.h
│ │ │ │ │ ├── JWTCoding+VersionOne.m
│ │ │ │ │ ├── JWTCoding+VersionThree.h
│ │ │ │ │ ├── JWTCoding+VersionThree.m
│ │ │ │ │ ├── JWTCoding+VersionTwo.h
│ │ │ │ │ ├── JWTCoding+VersionTwo.m
│ │ │ │ │ ├── JWTCoding.h
│ │ │ │ │ └── JWTCoding.m
│ │ │ │ ├── FrameworkSupplement/
│ │ │ │ │ ├── JWT.h
│ │ │ │ │ └── Map.modulemap
│ │ │ │ └── Supplement/
│ │ │ │ ├── JWTBase64Coder.h
│ │ │ │ ├── JWTBase64Coder.m
│ │ │ │ ├── JWTDeprecations.h
│ │ │ │ ├── JWTErrorDescription.h
│ │ │ │ └── JWTErrorDescription.m
│ │ │ ├── LICENSE
│ │ │ └── README.md
│ │ ├── RCTConvert+CodePushInstallMode.m
│ │ ├── RCTConvert+CodePushUpdateState.m
│ │ └── SSZipArchive/
│ │ ├── Info.plist
│ │ ├── README.md
│ │ ├── SSZipArchive.h
│ │ ├── SSZipArchive.m
│ │ ├── SSZipCommon.h
│ │ ├── Supporting Files/
│ │ │ └── PrivacyInfo.xcprivacy
│ │ ├── include/
│ │ │ └── ZipArchive.h
│ │ └── minizip/
│ │ ├── LICENSE
│ │ ├── mz.h
│ │ ├── mz_compat.c
│ │ ├── mz_compat.h
│ │ ├── mz_crypt.c
│ │ ├── mz_crypt.h
│ │ ├── mz_crypt_apple.c
│ │ ├── mz_os.c
│ │ ├── mz_os.h
│ │ ├── mz_os_posix.c
│ │ ├── mz_strm.c
│ │ ├── mz_strm.h
│ │ ├── mz_strm_buf.c
│ │ ├── mz_strm_buf.h
│ │ ├── mz_strm_mem.c
│ │ ├── mz_strm_mem.h
│ │ ├── mz_strm_os.h
│ │ ├── mz_strm_os_posix.c
│ │ ├── mz_strm_pkcrypt.c
│ │ ├── mz_strm_pkcrypt.h
│ │ ├── mz_strm_split.c
│ │ ├── mz_strm_split.h
│ │ ├── mz_strm_wzaes.c
│ │ ├── mz_strm_wzaes.h
│ │ ├── mz_strm_zlib.c
│ │ ├── mz_strm_zlib.h
│ │ ├── mz_zip.c
│ │ ├── mz_zip.h
│ │ ├── mz_zip_rw.c
│ │ └── mz_zip_rw.h
│ ├── CodePush.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata/
│ │ └── IDEWorkspaceChecks.plist
│ └── PrivacyInfo.xcprivacy
├── logging.js
├── package-mixins.js
├── package.json
├── react-native.config.js
├── request-fetch-adapter.js
├── scripts/
│ ├── generateBundledResourcesHash.js
│ ├── getFilesInFolder.js
│ ├── postlink/
│ │ ├── android/
│ │ │ └── postlink.js
│ │ ├── ios/
│ │ │ └── postlink.js
│ │ └── run.js
│ ├── postunlink/
│ │ ├── android/
│ │ │ └── postunlink.js
│ │ ├── ios/
│ │ │ └── postunlink.js
│ │ └── run.js
│ ├── recordFilesBeforeBundleCommand.js
│ └── tools/
│ ├── linkToolsAndroid.js
│ └── linkToolsIos.js
├── test/
│ ├── template/
│ │ ├── android/
│ │ │ └── app/
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── testcodepush/
│ │ │ │ └── MainApplication.java
│ │ │ └── res/
│ │ │ └── values/
│ │ │ └── strings.xml
│ │ ├── codePushWrapper.js
│ │ ├── index.js
│ │ ├── ios/
│ │ │ └── TestCodePush/
│ │ │ └── AppDelegate.mm
│ │ └── scenarios/
│ │ ├── scenarioCheckForUpdate.js
│ │ ├── scenarioCheckForUpdateCustomKey.js
│ │ ├── scenarioDisallowRestartImmediate.js
│ │ ├── scenarioDisallowRestartOnResume.js
│ │ ├── scenarioDisallowRestartOnSuspend.js
│ │ ├── scenarioDownloadUpdate.js
│ │ ├── scenarioInstall.js
│ │ ├── scenarioInstallOnRestartWithRevert.js
│ │ ├── scenarioInstallOnResumeWithRevert.js
│ │ ├── scenarioInstallOnSuspendWithRevert.js
│ │ ├── scenarioInstallRestart2x.js
│ │ ├── scenarioInstallWithRevert.js
│ │ ├── scenarioRestart.js
│ │ ├── scenarioRestart2x.js
│ │ ├── scenarioSync.js
│ │ ├── scenarioSync2x.js
│ │ ├── scenarioSyncMandatoryDefault.js
│ │ ├── scenarioSyncMandatoryRestart.js
│ │ ├── scenarioSyncMandatoryResume.js
│ │ ├── scenarioSyncMandatorySuspend.js
│ │ ├── scenarioSyncRestartDelay.js
│ │ ├── scenarioSyncResume.js
│ │ ├── scenarioSyncResumeDelay.js
│ │ ├── scenarioSyncSuspend.js
│ │ ├── scenarioSyncSuspendDelay.js
│ │ ├── updateDeviceReady.js
│ │ ├── updateNARConditional.js
│ │ ├── updateNotifyApplicationReady.js
│ │ ├── updateSync.js
│ │ └── updateSync2x.js
│ └── test.ts
├── tsconfig.json
├── tslint.json
├── typings/
│ └── react-native-code-push.d.ts
├── windows/
│ ├── .gitignore
│ ├── .npmignore
│ ├── CodePush/
│ │ ├── .npmignore
│ │ ├── CodePush.def
│ │ ├── CodePush.vcxproj
│ │ ├── CodePush.vcxproj.filters
│ │ ├── CodePushConfig.cpp
│ │ ├── CodePushConfig.h
│ │ ├── CodePushConfig.idl
│ │ ├── CodePushDownloadHandler.cpp
│ │ ├── CodePushDownloadHandler.h
│ │ ├── CodePushNativeModule.cpp
│ │ ├── CodePushNativeModule.h
│ │ ├── CodePushPackage.cpp
│ │ ├── CodePushPackage.h
│ │ ├── CodePushTelemetryManager.cpp
│ │ ├── CodePushTelemetryManager.h
│ │ ├── CodePushUpdateUtils.cpp
│ │ ├── CodePushUpdateUtils.h
│ │ ├── CodePushUtils.cpp
│ │ ├── CodePushUtils.h
│ │ ├── FileUtils.cpp
│ │ ├── FileUtils.h
│ │ ├── PropertySheet.props
│ │ ├── ReactPackageProvider.cpp
│ │ ├── ReactPackageProvider.h
│ │ ├── ReactPackageProvider.idl
│ │ ├── miniz/
│ │ │ ├── LICENSE
│ │ │ ├── miniz.c
│ │ │ ├── miniz.h
│ │ │ └── readme.md
│ │ ├── packages.config
│ │ ├── pch.cpp
│ │ └── pch.h
│ └── Directory.Build.props
└── windows-legacy/
├── .gitignore
├── .npmignore
├── CodePush/
│ ├── .gitignore
│ ├── CodePush.csproj
│ ├── CodePushUtils.cs
│ ├── FileUtils.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ └── CodePush.rd.xml
│ ├── UpdateManager.cs
│ └── UpdateUtils.cs
├── CodePush.Net46/
│ ├── .gitignore
│ ├── Adapters/
│ │ ├── Http/
│ │ │ └── HttpProgress.cs
│ │ └── Storage/
│ │ └── ApplicationDataContainer.cs
│ ├── CodePush.Net46.csproj
│ ├── CodePushUtils.cs
│ ├── FileUtils.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── UpdateManager.cs
│ ├── UpdateUtils.cs
│ └── packages.config
├── CodePush.Net46.Test/
│ ├── ApplicationDataContainerTest.cs
│ ├── CodePush.Net46.Test.csproj
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── TelemetryManagerTest.cs
│ ├── app.config
│ └── packages.config
└── CodePush.Shared/
├── CodePush.Shared.projitems
├── CodePush.Shared.shproj
├── CodePushConstants.cs
├── CodePushNativeModule.cs
├── CodePushReactPackage.cs
├── CodePushUtils.cs
├── InstallMode.cs
├── MinimumBackgroundListener.cs
├── SettingsManager.cs
├── TelemetryManager.cs
└── UpdateState.cs
SYMBOL INDEX (1315 symbols across 118 files)
FILE: AlertAdapter.js
method alert (line 8) | alert(title, message, buttons) {
FILE: CodePush.js
function checkForUpdate (line 11) | async function checkForUpdate(deploymentKey = null, handleBinaryVersionM...
function getCurrentPackage (line 106) | async function getCurrentPackage() {
function getUpdateMetadata (line 110) | async function getUpdateMetadata(updateState) {
function getPromisifiedSdk (line 120) | function getPromisifiedSdk(requestFetchAdapter, config) {
function notifyApplicationReadyInternal (line 175) | async function notifyApplicationReadyInternal() {
function tryReportStatus (line 183) | async function tryReportStatus(statusReport, retryOnAppResume) {
function shouldUpdateBeIgnored (line 231) | async function shouldUpdateBeIgnored(remotePackage, syncOptions) {
function validateLatestRollbackInfo (line 269) | function validateLatestRollbackInfo(latestRollbackInfo, packageHash) {
function validateRollbackRetryOptions (line 277) | function validateRollbackRetryOptions(rollbackRetryOptions) {
function setUpTestDependencies (line 299) | function setUpTestDependencies(testSdk, providedTestConfig, testNativeBr...
function restartApp (line 305) | async function restartApp(onlyIfUpdateIsPending = false) {
function syncInternal (line 363) | async function syncInternal(options = {}, syncStatusChangeCallback, down...
function codePushify (line 514) | function codePushify(options = {}) {
FILE: Examples/CodePushDemoApp/App.js
class App (line 14) | class App extends Component<{}> {
method constructor (line 15) | constructor() {
method codePushStatusDidChange (line 20) | codePushStatusDidChange(syncStatus) {
FILE: Examples/CodePushDemoApp/android/app/src/main/java/com/codepushdemoapp/MainActivity.java
class MainActivity (line 5) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 11) | @Override
FILE: Examples/CodePushDemoApp/android/app/src/main/java/com/codepushdemoapp/MainApplication.java
class MainApplication (line 15) | public class MainApplication extends Application implements ReactApplica...
method getJSBundleFile (line 19) | @Override
method getUseDeveloperSupport (line 24) | @Override
method getPackages (line 29) | @Override
method getJSMainModuleName (line 38) | @Override
method getReactNativeHost (line 44) | @Override
method onCreate (line 49) | @Override
method initializeFlipper (line 63) | private static void initializeFlipper(
FILE: Examples/CodePushDemoAppCpp/App.js
class App (line 16) | class App extends Component<{}> {
method constructor (line 17) | constructor() {
method codePushStatusDidChange (line 22) | codePushStatusDidChange(syncStatus) {
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.h
function namespace (line 8) | namespace winrt::CodePushDemoAppCpp::implementation
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.cpp
type winrt::Microsoft::ReactNative (line 9) | namespace winrt::Microsoft::ReactNative
function RegisterAutolinkedNativeModulePackages (line 12) | void RegisterAutolinkedNativeModulePackages(winrt::Windows::Foundation...
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.h
function namespace (line 5) | namespace winrt::Microsoft::ReactNative
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.cpp
type winrt::CodePushDemoAppCpp::implementation (line 14) | namespace winrt::CodePushDemoAppCpp::implementation
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.h
function namespace (line 6) | namespace winrt::CodePushDemoAppCpp::implementation
function namespace (line 14) | namespace winrt::CodePushDemoAppCpp::factory_implementation
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/ReactPackageProvider.cpp
type winrt::CodePushDemoAppCpp::implementation (line 8) | namespace winrt::CodePushDemoAppCpp::implementation
FILE: Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/ReactPackageProvider.h
function namespace (line 5) | namespace winrt::CodePushDemoAppCpp::implementation
FILE: Examples/create-app.js
function createCodePushApp (line 81) | function createCodePushApp(name, os) {
function generatePlainReactNativeApp (line 120) | function generatePlainReactNativeApp(appName, reactNativeVersion) {
function installCodePush (line 126) | function installCodePush(reactNativeCodePushVersion) {
function linkCodePush (line 132) | function linkCodePush(androidStagingDeploymentKey, iosStagingDeploymentK...
function setupAssets (line 161) | function setupAssets() {
function optimizeToTestInDebugMode (line 199) | function optimizeToTestInDebugMode() {
function grantAccess (line 217) | function grantAccess(folderPath) {
function copyRecursiveSync (line 221) | function copyRecursiveSync(src, dest) {
function isReactNativeVersionLowerThan (line 236) | function isReactNativeVersionLowerThan(version) {
function androidSetup (line 247) | function androidSetup() {
function getAppDelegateName (line 318) | function getAppDelegateName() { return fs.readdirSync(path.join('ios', a...
function iosSetup (line 321) | function iosSetup() {
function execCommand (line 349) | function execCommand(command) {
FILE: Examples/nexpect.js
function chain (line 12) | function chain (context) {
function testExpectation (line 316) | function testExpectation(data, expectation) {
function createUnexpectedEndError (line 324) | function createUnexpectedEndError(message, remainingQueue) {
function createExpectationError (line 334) | function createExpectationError(expected, actual) {
function nspawn (line 349) | function nspawn (command, params, options) {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePush.java
class CodePush (line 25) | public class CodePush implements ReactPackage {
method CodePush (line 53) | public CodePush(String deploymentKey, Context context) {
method getServiceUrl (line 57) | public static String getServiceUrl() {
method CodePush (line 61) | public CodePush(String deploymentKey, Context context, boolean isDebug...
method CodePush (line 91) | public CodePush(String deploymentKey, Context context, boolean isDebug...
method CodePush (line 96) | public CodePush(String deploymentKey, Context context, boolean isDebug...
method CodePush (line 102) | public CodePush(String deploymentKey, Context context, boolean isDebug...
method getPublicKeyByResourceDescriptor (line 112) | private String getPublicKeyByResourceDescriptor(int publicKeyResourceD...
method getCustomPropertyFromStringsIfExist (line 130) | private String getCustomPropertyFromStringsIfExist(String propertyName) {
method isLiveReloadEnabled (line 149) | private boolean isLiveReloadEnabled(ReactInstanceManager instanceManag...
method clearDebugCacheIfNeeded (line 172) | public void clearDebugCacheIfNeeded(ReactInstanceManager instanceManag...
method didUpdate (line 182) | public boolean didUpdate() {
method getAppVersion (line 186) | public String getAppVersion() {
method getAssetsBundleFileName (line 190) | public String getAssetsBundleFileName() {
method getPublicKey (line 194) | public String getPublicKey() {
method getBinaryResourcesModifiedTime (line 198) | long getBinaryResourcesModifiedTime() {
method getPackageFolder (line 211) | public String getPackageFolder() {
method getBundleUrl (line 219) | @Deprecated
method getBundleUrl (line 224) | @Deprecated
method getContext (line 229) | public Context getContext() {
method getDeploymentKey (line 233) | public String getDeploymentKey() {
method getJSBundleFile (line 237) | public static String getJSBundleFile() {
method getJSBundleFile (line 241) | public static String getJSBundleFile(String assetsBundleFileName) {
method getJSBundleFileInternal (line 249) | public String getJSBundleFileInternal(String assetsBundleFileName) {
method getServerUrl (line 287) | public String getServerUrl() {
method initializeUpdateAfterRestart (line 291) | void initializeUpdateAfterRestart() {
method invalidateCurrentInstance (line 338) | void invalidateCurrentInstance() {
method isDebugMode (line 342) | boolean isDebugMode() {
method isRunningBinaryVersion (line 346) | boolean isRunningBinaryVersion() {
method isPackageBundleLatest (line 350) | private boolean isPackageBundleLatest(JSONObject packageMetadata) {
method hasBinaryVersionChanged (line 367) | private boolean hasBinaryVersionChanged(JSONObject packageMetadata) {
method needToReportRollback (line 372) | boolean needToReportRollback() {
method overrideAppVersion (line 376) | public static void overrideAppVersion(String appVersionOverride) {
method rollbackPackage (line 380) | private void rollbackPackage() {
method setNeedToReportRollback (line 387) | public void setNeedToReportRollback(boolean needToReportRollback) {
method isUsingTestConfiguration (line 392) | public static boolean isUsingTestConfiguration() {
method setDeploymentKey (line 396) | public void setDeploymentKey(String deploymentKey) {
method setUsingTestConfiguration (line 400) | public static void setUsingTestConfiguration(boolean shouldUseTestConf...
method clearUpdates (line 404) | public void clearUpdates() {
method setReactInstanceHolder (line 410) | public static void setReactInstanceHolder(ReactInstanceHolder reactIns...
method getReactInstanceManager (line 414) | static ReactInstanceManager getReactInstanceManager() {
method createNativeModules (line 421) | @Override
method createJSModules (line 433) | public List<Class<? extends JavaScriptModule>> createJSModules() {
method createViewManagers (line 437) | @Override
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java
class CodePushBuilder (line 5) | public class CodePushBuilder {
method CodePushBuilder (line 13) | public CodePushBuilder(String deploymentKey, Context context) {
method setIsDebugMode (line 19) | public CodePushBuilder setIsDebugMode(boolean isDebugMode) {
method setServerUrl (line 24) | public CodePushBuilder setServerUrl(String serverUrl) {
method setPublicKeyResourceDescriptor (line 29) | public CodePushBuilder setPublicKeyResourceDescriptor(int publicKeyRes...
method build (line 34) | public CodePush build() {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushConstants.java
class CodePushConstants (line 3) | public class CodePushConstants {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushDialog.java
class CodePushDialog (line 13) | public class CodePushDialog extends ReactContextBaseJavaModule{
method CodePushDialog (line 15) | public CodePushDialog(ReactApplicationContext reactContext) {
method showDialog (line 19) | @ReactMethod
method showDialogInternal (line 51) | private void showDialogInternal(String title, String message, String b...
method getName (line 98) | @Override
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushInstallMode.java
type CodePushInstallMode (line 3) | public enum CodePushInstallMode {
method CodePushInstallMode (line 10) | CodePushInstallMode(int value) {
method getValue (line 13) | public int getValue() {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidPublicKeyException.java
class CodePushInvalidPublicKeyException (line 3) | class CodePushInvalidPublicKeyException extends RuntimeException {
method CodePushInvalidPublicKeyException (line 5) | public CodePushInvalidPublicKeyException(String message, Throwable cau...
method CodePushInvalidPublicKeyException (line 9) | public CodePushInvalidPublicKeyException(String message) {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidUpdateException.java
class CodePushInvalidUpdateException (line 3) | public class CodePushInvalidUpdateException extends RuntimeException {
method CodePushInvalidUpdateException (line 4) | public CodePushInvalidUpdateException(String message) {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushMalformedDataException.java
class CodePushMalformedDataException (line 5) | public class CodePushMalformedDataException extends RuntimeException {
method CodePushMalformedDataException (line 6) | public CodePushMalformedDataException(String path, Throwable cause) {
method CodePushMalformedDataException (line 9) | public CodePushMalformedDataException(String url, MalformedURLExceptio...
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushNativeModule.java
class CodePushNativeModule (line 40) | public class CodePushNativeModule extends ReactContextBaseJavaModule {
method CodePushNativeModule (line 55) | public CodePushNativeModule(ReactApplicationContext reactContext, Code...
method getConstants (line 74) | @Override
method getName (line 90) | @Override
method loadBundleLegacy (line 95) | private void loadBundleLegacy() {
method setJSBundle (line 114) | private void setJSBundle(ReactInstanceManager instanceManager, String ...
method loadBundle (line 132) | private void loadBundle() {
method resetReactRootViews (line 185) | private void resetReactRootViews(ReactInstanceManager instanceManager)...
method clearLifecycleEventListener (line 196) | private void clearLifecycleEventListener() {
method resolveInstanceManager (line 205) | private ReactInstanceManager resolveInstanceManager() throws NoSuchFie...
method restartAppInternal (line 222) | private void restartAppInternal(boolean onlyIfUpdateIsPending) {
method allow (line 248) | @ReactMethod
method clearPendingRestart (line 264) | @ReactMethod
method disallow (line 271) | @ReactMethod
method restartApp (line 279) | @ReactMethod
method downloadUpdate (line 290) | @ReactMethod
method getConfiguration (line 362) | @ReactMethod
method getUpdateMetadata (line 383) | @ReactMethod
method getNewStatusReport (line 451) | @ReactMethod
method installUpdate (line 508) | @ReactMethod
method isFailedUpdate (line 596) | @ReactMethod
method getLatestRollbackInfo (line 606) | @ReactMethod
method setLatestRollbackInfo (line 621) | @ReactMethod
method isFirstRun (line 632) | @ReactMethod
method notifyApplicationReady (line 646) | @ReactMethod
method recordStatusReported (line 657) | @ReactMethod
method saveStatusReportForRetry (line 666) | @ReactMethod
method downloadAndReplaceCurrentBundle (line 675) | @ReactMethod
method clearUpdates (line 699) | @ReactMethod
method addListener (line 705) | @ReactMethod
method removeListeners (line 710) | @ReactMethod
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushNotInitializedException.java
class CodePushNotInitializedException (line 3) | public final class CodePushNotInitializedException extends RuntimeExcept...
method CodePushNotInitializedException (line 5) | public CodePushNotInitializedException(String message, Throwable cause) {
method CodePushNotInitializedException (line 9) | public CodePushNotInitializedException(String message) {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushTelemetryManager.java
class CodePushTelemetryManager (line 13) | public class CodePushTelemetryManager {
method CodePushTelemetryManager (line 27) | public CodePushTelemetryManager(Context applicationContext) {
method getBinaryUpdateReport (line 31) | public WritableMap getBinaryUpdateReport(String appVersion) {
method getRetryStatusReport (line 57) | public WritableMap getRetryStatusReport() {
method getRollbackReport (line 72) | public WritableMap getRollbackReport(WritableMap lastFailedPackage) {
method getUpdateReport (line 79) | public WritableMap getUpdateReport(WritableMap currentPackage) {
method recordStatusReported (line 111) | public void recordStatusReported(ReadableMap statusReport) {
method saveStatusReportForRetry (line 125) | public void saveStatusReportForRetry(ReadableMap statusReport) {
method clearRetryStatusReport (line 130) | private void clearRetryStatusReport() {
method getDeploymentKeyFromStatusReportIdentifier (line 134) | private String getDeploymentKeyFromStatusReportIdentifier(String statu...
method getPackageStatusReportIdentifier (line 143) | private String getPackageStatusReportIdentifier(ReadableMap updatePack...
method getPreviousStatusReportIdentifier (line 155) | private String getPreviousStatusReportIdentifier() {
method getVersionLabelFromStatusReportIdentifier (line 159) | private String getVersionLabelFromStatusReportIdentifier(String status...
method isStatusReportIdentifierCodePushLabel (line 168) | private boolean isStatusReportIdentifierCodePushLabel(String statusRep...
method saveStatusReportedForIdentifier (line 172) | private void saveStatusReportedForIdentifier(String appVersionOrPackag...
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushUnknownException.java
class CodePushUnknownException (line 3) | class CodePushUnknownException extends RuntimeException {
method CodePushUnknownException (line 5) | public CodePushUnknownException(String message, Throwable cause) {
method CodePushUnknownException (line 9) | public CodePushUnknownException(String message) {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateManager.java
class CodePushUpdateManager (line 19) | public class CodePushUpdateManager {
method CodePushUpdateManager (line 23) | public CodePushUpdateManager(String documentsDirectory) {
method getDownloadFilePath (line 27) | private String getDownloadFilePath() {
method getUnzippedFolderPath (line 31) | private String getUnzippedFolderPath() {
method getDocumentsDirectory (line 35) | private String getDocumentsDirectory() {
method getCodePushPath (line 39) | private String getCodePushPath() {
method getStatusFilePath (line 48) | private String getStatusFilePath() {
method getCurrentPackageInfo (line 52) | public JSONObject getCurrentPackageInfo() {
method updateCurrentPackageInfo (line 66) | public void updateCurrentPackageInfo(JSONObject packageInfo) {
method getCurrentPackageFolderPath (line 75) | public String getCurrentPackageFolderPath() {
method getCurrentPackageBundlePath (line 85) | public String getCurrentPackageBundlePath(String bundleFileName) {
method getPackageFolderPath (line 104) | public String getPackageFolderPath(String packageHash) {
method getCurrentPackageHash (line 108) | public String getCurrentPackageHash() {
method getPreviousPackageHash (line 113) | public String getPreviousPackageHash() {
method getCurrentPackage (line 118) | public JSONObject getCurrentPackage() {
method getPreviousPackage (line 127) | public JSONObject getPreviousPackage() {
method getPackage (line 136) | public JSONObject getPackage(String packageHash) {
method downloadPackage (line 146) | public void downloadPackage(JSONObject updatePackage, String expectedB...
method installPackage (line 310) | public void installPackage(JSONObject updatePackage, boolean removePen...
method rollbackPackage (line 338) | public void rollbackPackage() {
method downloadAndReplaceCurrentBundle (line 347) | public void downloadAndReplaceCurrentBundle(String remoteBundleUrl, St...
method clearUpdates (line 380) | public void clearUpdates() {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateState.java
type CodePushUpdateState (line 3) | public enum CodePushUpdateState {
method CodePushUpdateState (line 9) | CodePushUpdateState(int value) {
method getValue (line 12) | public int getValue() {
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java
class CodePushUpdateUtils (line 32) | public class CodePushUpdateUtils {
method isHashIgnored (line 38) | public static boolean isHashIgnored(String relativeFilePath) {
method addContentsOfFolderToManifest (line 50) | private static void addContentsOfFolderToManifest(String folderPath, S...
method computeHash (line 75) | private static String computeHash(InputStream dataStream) {
method copyNecessaryFilesFromCurrentPackage (line 103) | public static void copyNecessaryFilesFromCurrentPackage(String diffMan...
method findJSBundleInUpdateContents (line 124) | public static String findJSBundleInUpdateContents(String folderPath, S...
method getHashForBinaryContents (line 145) | public static String getHashForBinaryContents(Context context, boolean...
method verifyFolderHash (line 166) | public static void verifyFolderHash(String folderPath, String expected...
method verifyAndDecodeJWT (line 191) | public static Map<String, Object> verifyAndDecodeJWT(String jwt, Publi...
method parsePublicKey (line 208) | public static PublicKey parsePublicKey(String stringPublicKey) {
method getSignatureFilePath (line 227) | public static String getSignatureFilePath(String updateFolderPath) {
method getSignature (line 234) | public static String getSignature(String folderPath) {
method verifyUpdateSignature (line 246) | public static void verifyUpdateSignature(String folderPath, String pac...
FILE: android/app/src/main/java/com/microsoft/codepush/react/CodePushUtils.java
class CodePushUtils (line 25) | public class CodePushUtils {
method appendPathComponent (line 27) | public static String appendPathComponent(String basePath, String appen...
method convertJsonArrayToWritable (line 31) | public static WritableArray convertJsonArrayToWritable(JSONArray jsonA...
method convertJsonObjectToWritable (line 63) | public static WritableMap convertJsonObjectToWritable(JSONObject jsonO...
method convertReadableToJsonArray (line 101) | public static JSONArray convertReadableToJsonArray(ReadableArray arr) {
method convertReadableToJsonObject (line 140) | public static JSONObject convertReadableToJsonObject(ReadableMap map) {
method getStringFromInputStream (line 177) | public static String getStringFromInputStream(InputStream inputStream)...
method getJsonObjectFromFile (line 196) | public static JSONObject getJsonObjectFromFile(String filePath) throws...
method log (line 206) | public static void log(String message) {
method log (line 210) | public static void log(Throwable tr) {
method logBundleUrl (line 214) | public static void logBundleUrl(String path) {
method setJSONValueForKey (line 218) | public static void setJSONValueForKey(JSONObject json, String key, Obj...
method tryGetString (line 226) | public static String tryGetString(ReadableMap map, String key) {
method writeJsonToFile (line 234) | public static void writeJsonToFile(JSONObject json, String filePath) t...
FILE: android/app/src/main/java/com/microsoft/codepush/react/DownloadProgress.java
class DownloadProgress (line 6) | class DownloadProgress {
method DownloadProgress (line 10) | public DownloadProgress (long totalBytes, long receivedBytes){
method createWritableMap (line 15) | public WritableMap createWritableMap() {
method isCompleted (line 27) | public boolean isCompleted() {
FILE: android/app/src/main/java/com/microsoft/codepush/react/DownloadProgressCallback.java
type DownloadProgressCallback (line 3) | interface DownloadProgressCallback {
method call (line 4) | void call(DownloadProgress downloadProgress);
FILE: android/app/src/main/java/com/microsoft/codepush/react/FileUtils.java
class FileUtils (line 14) | public class FileUtils {
method copyDirectoryContents (line 18) | public static void copyDirectoryContents(String sourceDirectoryPath, S...
method deleteDirectoryAtPath (line 57) | public static void deleteDirectoryAtPath(String directoryPath) {
method deleteFileAtPathSilently (line 68) | public static void deleteFileAtPathSilently(String path) {
method deleteFileOrFolderSilently (line 72) | public static void deleteFileOrFolderSilently(File file) {
method fileAtPathExists (line 89) | public static boolean fileAtPathExists(String filePath) {
method moveFile (line 93) | public static void moveFile(File fileToMove, String newFolderPath, Str...
method readFileToString (line 106) | public static String readFileToString(String filePath) throws IOExcept...
method validateFileName (line 126) | private static String validateFileName(String fileName, File destinati...
method unzipFile (line 139) | public static void unzipFile(File zipFile, String destination) throws ...
method writeStringToFile (line 194) | public static void writeStringToFile(String content, String filePath) ...
FILE: android/app/src/main/java/com/microsoft/codepush/react/ReactInstanceHolder.java
type ReactInstanceHolder (line 11) | public interface ReactInstanceHolder {
method getReactInstanceManager (line 16) | ReactInstanceManager getReactInstanceManager();
FILE: android/app/src/main/java/com/microsoft/codepush/react/SettingsManager.java
class SettingsManager (line 10) | public class SettingsManager {
method SettingsManager (line 14) | public SettingsManager(Context applicationContext) {
method getFailedUpdates (line 18) | public JSONArray getFailedUpdates() {
method getPendingUpdate (line 34) | public JSONObject getPendingUpdate() {
method isFailedHash (line 51) | public boolean isFailedHash(String packageHash) {
method isPendingUpdate (line 70) | public boolean isPendingUpdate(String packageHash) {
method removeFailedUpdates (line 82) | public void removeFailedUpdates() {
method removePendingUpdate (line 86) | public void removePendingUpdate() {
method saveFailedUpdate (line 90) | public void saveFailedUpdate(JSONObject failedPackage) {
method getLatestRollbackInfo (line 118) | public JSONObject getLatestRollbackInfo() {
method setLatestRollbackInfo (line 134) | public void setLatestRollbackInfo(String packageHash) {
method savePendingUpdate (line 161) | public void savePendingUpdate(String packageHash, boolean isLoading) {
FILE: android/app/src/main/java/com/microsoft/codepush/react/TLSSocketFactory.java
class TLSSocketFactory (line 14) | public class TLSSocketFactory extends SSLSocketFactory {
method TLSSocketFactory (line 18) | public TLSSocketFactory() throws KeyManagementException, NoSuchAlgorit...
method getDefaultCipherSuites (line 24) | @Override
method getSupportedCipherSuites (line 29) | @Override
method createSocket (line 34) | @Override
method createSocket (line 39) | @Override
method createSocket (line 44) | @Override
method createSocket (line 49) | @Override
method createSocket (line 55) | @Override
method createSocket (line 60) | @Override
method enableTLSOnSocket (line 66) | private Socket enableTLSOnSocket(Socket socket) {
FILE: code-push-plugin-testing-framework/script/platform.js
function Android (line 10) | function Android(emulatorManager) {
function IOS (line 54) | function IOS(emulatorManager) {
function bootEmulatorInternal (line 103) | function bootEmulatorInternal(platformName, restartEmulators, targetEmul...
function AndroidEmulatorManager (line 164) | function AndroidEmulatorManager() {
function checkAndroidEmulator (line 202) | function checkAndroidEmulator(androidEmulatorName) {
function startAndroidEmulator (line 207) | function startAndroidEmulator(androidEmulatorName) {
function killAndroidEmulator (line 217) | function killAndroidEmulator() {
function IOSEmulatorManager (line 287) | function IOSEmulatorManager() {
function checkIOSEmulator (line 327) | function checkIOSEmulator(iOSEmulatorId) {
function startIOSEmulator (line 333) | function startIOSEmulator(iOSEmulatorId) {
function killIOSEmulator (line 337) | function killIOSEmulator() {
function commandWithCheckAppExistence (line 402) | function commandWithCheckAppExistence(command, appId) {
FILE: code-push-plugin-testing-framework/script/projectManager.js
function ProjectManager (line 7) | function ProjectManager() {
function setupTestRunScenario (line 70) | function setupTestRunScenario(projectManager, targetPlatform, scenarioJs...
function setupUpdateScenario (line 77) | function setupUpdateScenario(projectManager, targetPlatform, scenarioJsP...
FILE: code-push-plugin-testing-framework/script/serverUtil.js
function setupServer (line 12) | function setupServer(targetPlatform) {
function cleanupServer (line 54) | function cleanupServer() {
function CheckForUpdateResponseMock (line 67) | function CheckForUpdateResponseMock() {
function UpdateCheckRequestMock (line 76) | function UpdateCheckRequestMock() {
function createDefaultResponse (line 84) | function createDefaultResponse() {
function createUpdateResponse (line 103) | function createUpdateResponse(mandatory, targetPlatform, randomHash) {
function expectTestMessages (line 129) | function expectTestMessages(expectedMessages) {
function TestMessage (line 167) | function TestMessage() {
function TestMessageResponse (line 202) | function TestMessageResponse() {
function AppMessage (line 212) | function AppMessage(message, args) {
function areEqual (line 225) | function areEqual(m1, m2) {
FILE: code-push-plugin-testing-framework/script/test.js
function initializeTests (line 11) | function initializeTests(projectManager, supportedTargetPlatforms, descr...
FILE: code-push-plugin-testing-framework/script/testBuilder.js
function TestBuilder (line 8) | function TestBuilder() {
function TestContext (line 19) | function TestContext() {
function describeInternal (line 24) | function describeInternal(func, description, spec, scenarioPath) {
function getDescribe (line 51) | function getDescribe() {
function itInternal (line 63) | function itInternal(func, expectation, isCoreTest, assertion) {
function getIt (line 77) | function getIt() {
FILE: code-push-plugin-testing-framework/script/testUtil.js
function TestUtil (line 8) | function TestUtil() {
FILE: code-push-plugin-testing-framework/typings/code-push-plugin-testing-framework.d.ts
type IPlatform (line 6) | interface IPlatform {
type IEmulatorManager (line 32) | interface IEmulatorManager {
class Android (line 69) | class Android implements IPlatform {
class IOS (line 99) | class IOS implements IPlatform {
class AndroidEmulatorManager (line 126) | class AndroidEmulatorManager implements IEmulatorManager {
class IOSEmulatorManager (line 161) | class IOSEmulatorManager implements IEmulatorManager {
class ProjectManager (line 204) | class ProjectManager {
class CheckForUpdateResponseMock (line 296) | class CheckForUpdateResponseMock {
class UpdateCheckRequestMock (line 312) | class UpdateCheckRequestMock {
class TestMessage (line 333) | class TestMessage {
class TestMessageResponse (line 364) | class TestMessageResponse {
class AppMessage (line 370) | class AppMessage {
class TestBuilder (line 385) | class TestBuilder {
class TestContext (line 390) | class TestContext {
type ITestBuilderContextDefintion (line 394) | interface ITestBuilderContextDefintion {
type ITestBuilderTestDefinition (line 399) | interface ITestBuilderTestDefinition {
class TestUtil (line 421) | class TestUtil {
FILE: ios/CodePush/JWT/Core/Coding/JWTCoding.h
function interface (line 19) | interface JWT : NSObject @end
FILE: ios/CodePush/SSZipArchive/SSZipCommon.h
type unz_global_info64 (line 8) | typedef struct unz_global_info64_s
type unz_global_info (line 16) | typedef struct unz_global_info_s
type unz_file_info64 (line 25) | typedef struct unz_file_info64_s
type unz_file_info (line 49) | typedef struct unz_file_info_s
FILE: ios/CodePush/SSZipArchive/minizip/mz_compat.c
type mz_compat (line 30) | typedef struct mz_compat_s {
type mz_stream_ioapi (line 40) | typedef struct mz_stream_ioapi_s {
function mz_stream_ioapi_open (line 79) | static int32_t mz_stream_ioapi_open(void *stream, const char *path, int3...
function mz_stream_ioapi_is_open (line 103) | static int32_t mz_stream_ioapi_is_open(void *stream) {
function mz_stream_ioapi_read (line 110) | static int32_t mz_stream_ioapi_read(void *stream, void *buf, int32_t siz...
function mz_stream_ioapi_write (line 130) | static int32_t mz_stream_ioapi_write(void *stream, const void *buf, int3...
function mz_stream_ioapi_tell (line 152) | static int64_t mz_stream_ioapi_tell(void *stream) {
function mz_stream_ioapi_seek (line 166) | static int32_t mz_stream_ioapi_seek(void *stream, int64_t offset, int32_...
function mz_stream_ioapi_close (line 184) | static int32_t mz_stream_ioapi_close(void *stream) {
function mz_stream_ioapi_error (line 207) | static int32_t mz_stream_ioapi_error(void *stream) {
function mz_stream_ioapi_set_filefunc (line 227) | static int32_t mz_stream_ioapi_set_filefunc(void *stream, zlib_filefunc_...
function mz_stream_ioapi_set_filefunc64 (line 233) | static int32_t mz_stream_ioapi_set_filefunc64(void *stream, zlib_filefun...
function mz_stream_ioapi_delete (line 251) | static void mz_stream_ioapi_delete(void **stream) {
function fill_fopen_filefunc (line 263) | void fill_fopen_filefunc(zlib_filefunc_def *pzlib_filefunc_def) {
function fill_fopen64_filefunc (line 269) | void fill_fopen64_filefunc(zlib_filefunc64_def *pzlib_filefunc_def) {
function fill_win32_filefunc (line 275) | void fill_win32_filefunc(zlib_filefunc_def *pzlib_filefunc_def) {
function fill_win32_filefunc64 (line 281) | void fill_win32_filefunc64(zlib_filefunc64_def *pzlib_filefunc_def) {
function fill_win32_filefunc64A (line 287) | void fill_win32_filefunc64A(zlib_filefunc64_def *pzlib_filefunc_def) {
function fill_memory_filefunc (line 297) | void fill_memory_filefunc(zlib_filefunc_def *pzlib_filefunc_def) {
function zipConvertAppendToStreamMode (line 307) | static int32_t zipConvertAppendToStreamMode(int append) {
function zipFile (line 323) | zipFile zipOpen(const char *path, int append) {
function zipFile (line 327) | zipFile zipOpen64(const void *path, int append) {
function zipFile (line 331) | zipFile zipOpen2(const char *path, int append, const char **globalcomment,
function zipFile (line 368) | zipFile zipOpen2_64(const void *path, int append, const char **globalcom...
function zipFile (line 405) | zipFile zipOpen_MZ(void *stream, int append, const char **globalcomment) {
function zipOpenNewFileInZip5 (line 447) | int zipOpenNewFileInZip5(zipFile file, const char *filename, const zip_f...
function zipOpenNewFileInZip4_64 (line 506) | int zipOpenNewFileInZip4_64(zipFile file, const char *filename, const zi...
function zipOpenNewFileInZip4 (line 516) | int zipOpenNewFileInZip4(zipFile file, const char *filename, const zip_f...
function zipOpenNewFileInZip3 (line 526) | int zipOpenNewFileInZip3(zipFile file, const char *filename, const zip_f...
function zipOpenNewFileInZip3_64 (line 536) | int zipOpenNewFileInZip3_64(zipFile file, const char *filename, const zi...
function zipOpenNewFileInZip2 (line 546) | int zipOpenNewFileInZip2(zipFile file, const char *filename, const zip_f...
function zipOpenNewFileInZip2_64 (line 555) | int zipOpenNewFileInZip2_64(zipFile file, const char *filename, const zi...
function zipOpenNewFileInZip (line 564) | int zipOpenNewFileInZip(zipFile file, const char *filename, const zip_fi...
function zipOpenNewFileInZip_64 (line 571) | int zipOpenNewFileInZip_64(zipFile file, const char *filename, const zip...
function zipWriteInFileInZip (line 579) | int zipWriteInFileInZip(zipFile file, const void *buf, uint32_t len) {
function zipCloseFileInZipRaw (line 590) | int zipCloseFileInZipRaw(zipFile file, unsigned long uncompressed_size, ...
function zipCloseFileInZipRaw64 (line 594) | int zipCloseFileInZipRaw64(zipFile file, uint64_t uncompressed_size, uin...
function zipCloseFileInZip (line 601) | int zipCloseFileInZip(zipFile file) {
function zipCloseFileInZip64 (line 605) | int zipCloseFileInZip64(zipFile file) {
function zipClose (line 612) | int zipClose(zipFile file, const char *global_comment) {
function zipClose_64 (line 616) | int zipClose_64(zipFile file, const char *global_comment) {
function zipClose2_64 (line 620) | int zipClose2_64(zipFile file, const char *global_comment, uint16_t vers...
function zipClose_MZ (line 638) | int zipClose_MZ(zipFile file, const char *global_comment) {
function zipClose2_MZ (line 643) | int zipClose2_MZ(zipFile file, const char *global_comment, uint16_t vers...
function unzFile (line 664) | unzFile unzOpen(const char *path) {
function unzFile (line 668) | unzFile unzOpen64(const void *path) {
function unzFile (line 672) | unzFile unzOpen2(const char *path, zlib_filefunc_def *pzlib_filefunc_def) {
function unzFile (line 706) | unzFile unzOpen2_64(const void *path, zlib_filefunc64_def *pzlib_filefun...
function unzFile (line 754) | unzFile unzOpen_MZ(void *stream) {
function unzClose (line 780) | int unzClose(unzFile file) {
function unzClose_MZ (line 801) | int unzClose_MZ(unzFile file) {
function unzGetGlobalInfo (line 814) | int unzGetGlobalInfo(unzFile file, unz_global_info* pglobal_info32) {
function unzGetGlobalInfo64 (line 832) | int unzGetGlobalInfo64(unzFile file, unz_global_info64 *pglobal_info) {
function unzGetGlobalComment (line 850) | int unzGetGlobalComment(unzFile file, char *comment, unsigned long comme...
function unzOpenCurrentFile3 (line 865) | int unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, ...
function unzOpenCurrentFile (line 914) | int unzOpenCurrentFile(unzFile file) {
function unzOpenCurrentFilePassword (line 918) | int unzOpenCurrentFilePassword(unzFile file, const char *password) {
function unzOpenCurrentFile2 (line 922) | int unzOpenCurrentFile2(unzFile file, int *method, int *level, int raw) {
function unzReadCurrentFile (line 926) | int unzReadCurrentFile(unzFile file, void *buf, uint32_t len) {
function unzCloseCurrentFile (line 937) | int unzCloseCurrentFile(unzFile file) {
function unzGetCurrentFileInfo (line 946) | int unzGetCurrentFileInfo(unzFile file, unz_file_info *pfile_info, char ...
function unzGetCurrentFileInfo64 (line 1007) | int unzGetCurrentFileInfo64(unzFile file, unz_file_info64 * pfile_info, ...
function unzGoToFirstFile (line 1068) | int unzGoToFirstFile(unzFile file) {
function unzGoToNextFile (line 1076) | int unzGoToNextFile(unzFile file) {
function unzLocateFile (line 1087) | int unzLocateFile(unzFile file, const char *filename, unzFileNameCompare...
function unzGetFilePos (line 1124) | int unzGetFilePos(unzFile file, unz_file_pos *file_pos) {
function unzGoToFilePos (line 1137) | int unzGoToFilePos(unzFile file, unz_file_pos *file_pos) {
function unzGetFilePos64 (line 1150) | int unzGetFilePos64(unzFile file, unz64_file_pos *file_pos) {
function unzGoToFilePos64 (line 1166) | int unzGoToFilePos64(unzFile file, const unz64_file_pos *file_pos) {
function unzGetOffset (line 1179) | unsigned long unzGetOffset(unzFile file) {
function unzGetOffset64 (line 1183) | int64_t unzGetOffset64(unzFile file) {
function unzSetOffset (line 1190) | int unzSetOffset(unzFile file, unsigned long pos) {
function unzSetOffset64 (line 1194) | int unzSetOffset64(unzFile file, int64_t pos) {
function unzGetLocalExtrafield (line 1201) | int unzGetLocalExtrafield(unzFile file, void *buf, unsigned int len) {
function unzTell (line 1222) | int32_t unzTell(unzFile file) {
function unztell (line 1226) | int32_t unztell(unzFile file) {
function unzTell64 (line 1230) | uint64_t unzTell64(unzFile file) {
function unztell64 (line 1234) | uint64_t unztell64(unzFile file) {
function unzSeek (line 1241) | int unzSeek(unzFile file, int32_t offset, int origin) {
function unzSeek64 (line 1245) | int unzSeek64(unzFile file, int64_t offset, int origin) {
function unzEndOfFile (line 1280) | int unzEndOfFile(unzFile file) {
function unzeof (line 1284) | int unzeof(unzFile file) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_compat.h
type zip_file__ (line 53) | typedef struct TagzipFile__ { int unused; } zip_file__;
type zip_file__ (line 54) | typedef zip_file__ *zipFile;
type ZPOS64_T (line 61) | typedef uint64_t ZPOS64_T;
type zlib_filefunc_def (line 79) | typedef struct zlib_filefunc_def_s
type zlib_filefunc64_def (line 91) | typedef struct zlib_filefunc64_def_s
type tm_unz (line 137) | typedef struct tm tm_unz;
type tm_zip (line 138) | typedef struct tm tm_zip;
type zip_fileinfo (line 140) | typedef struct {
type unz_file__ (line 241) | typedef struct TagunzFile__ { int unused; } unz_file__;
type unz_file__ (line 242) | typedef unz_file__ *unzFile;
type unz_file_pos (line 309) | typedef struct unz_file_pos_s {
type unz64_file_pos (line 317) | typedef struct unz64_file_pos_s {
FILE: ios/CodePush/SSZipArchive/minizip/mz_crypt.c
function mz_crypt_rand (line 30) | int32_t mz_crypt_rand(uint8_t *buf, int32_t size) {
function mz_crypt_crc32_update (line 35) | uint32_t mz_crypt_crc32_update(uint32_t value, const uint8_t *buf, int32...
function mz_crypt_pbkdf2 (line 106) | int32_t mz_crypt_pbkdf2(uint8_t *password, int32_t password_length, uin...
FILE: ios/CodePush/SSZipArchive/minizip/mz_crypt_apple.c
function mz_crypt_rand (line 22) | int32_t mz_crypt_rand(uint8_t *buf, int32_t size) {
type mz_crypt_sha (line 30) | typedef struct mz_crypt_sha_s {
function mz_crypt_sha_reset (line 50) | void mz_crypt_sha_reset(void *handle) {
function mz_crypt_sha_begin (line 57) | int32_t mz_crypt_sha_begin(void *handle) {
function mz_crypt_sha_update (line 92) | int32_t mz_crypt_sha_update(void *handle, const void *buf, int32_t size) {
function mz_crypt_sha_end (line 122) | int32_t mz_crypt_sha_end(void *handle, uint8_t *digest, int32_t digest_s...
function mz_crypt_sha_set_algorithm (line 154) | void mz_crypt_sha_set_algorithm(void *handle, uint16_t algorithm) {
function mz_crypt_sha_delete (line 174) | void mz_crypt_sha_delete(void **handle) {
type mz_crypt_aes (line 188) | typedef struct mz_crypt_aes_s {
function mz_crypt_aes_reset (line 196) | void mz_crypt_aes_reset(void *handle) {
function mz_crypt_aes_encrypt (line 204) | int32_t mz_crypt_aes_encrypt(void *handle, uint8_t *buf, int32_t size) {
function mz_crypt_aes_decrypt (line 221) | int32_t mz_crypt_aes_decrypt(void *handle, uint8_t *buf, int32_t size) {
function mz_crypt_aes_set_encrypt_key (line 238) | int32_t mz_crypt_aes_set_encrypt_key(void *handle, const void *key, int3...
function mz_crypt_aes_set_decrypt_key (line 255) | int32_t mz_crypt_aes_set_decrypt_key(void *handle, const void *key, int3...
function mz_crypt_aes_set_mode (line 272) | void mz_crypt_aes_set_mode(void *handle, int32_t mode) {
function mz_crypt_aes_delete (line 287) | void mz_crypt_aes_delete(void **handle) {
type mz_crypt_hmac (line 301) | typedef struct mz_crypt_hmac_s {
function mz_crypt_hmac_free (line 310) | static void mz_crypt_hmac_free(void *handle) {
function mz_crypt_hmac_reset (line 315) | void mz_crypt_hmac_reset(void *handle) {
function mz_crypt_hmac_init (line 321) | int32_t mz_crypt_hmac_init(void *handle, const void *key, int32_t key_le...
function mz_crypt_hmac_update (line 341) | int32_t mz_crypt_hmac_update(void *handle, const void *buf, int32_t size) {
function mz_crypt_hmac_end (line 351) | int32_t mz_crypt_hmac_end(void *handle, uint8_t *digest, int32_t digest_...
function mz_crypt_hmac_set_algorithm (line 370) | void mz_crypt_hmac_set_algorithm(void *handle, uint16_t algorithm) {
function mz_crypt_hmac_copy (line 375) | int32_t mz_crypt_hmac_copy(void *src_handle, void *target_handle) {
function mz_crypt_hmac_delete (line 398) | void mz_crypt_hmac_delete(void **handle) {
function mz_crypt_sign (line 413) | int32_t mz_crypt_sign(uint8_t *message, int32_t message_size, uint8_t *c...
function mz_crypt_sign_verify (line 475) | int32_t mz_crypt_sign_verify(uint8_t *message, int32_t message_size, uin...
FILE: ios/CodePush/SSZipArchive/minizip/mz_os.c
function mz_path_combine (line 23) | int32_t mz_path_combine(char *path, const char *join, int32_t max_path) {
function mz_path_append_slash (line 44) | int32_t mz_path_append_slash(char *path, int32_t max_path, char slash) {
function mz_path_remove_slash (line 55) | int32_t mz_path_remove_slash(char *path) {
function mz_path_has_slash (line 68) | int32_t mz_path_has_slash(const char *path) {
function mz_path_convert_slashes (line 75) | int32_t mz_path_convert_slashes(char *path, char slash) {
function mz_path_compare_wc (line 85) | int32_t mz_path_compare_wc(const char *path, const char *wildcard, uint8...
function mz_path_resolve (line 128) | int32_t mz_path_resolve(const char *path, char *output, int32_t max_outp...
function mz_path_remove_filename (line 212) | int32_t mz_path_remove_filename(char *path) {
function mz_path_remove_extension (line 235) | int32_t mz_path_remove_extension(char *path) {
function mz_path_get_filename (line 260) | int32_t mz_path_get_filename(const char *path, const char **filename) {
function mz_dir_make (line 279) | int32_t mz_dir_make(const char *path) {
function mz_file_get_crc (line 315) | int32_t mz_file_get_crc(const char *path, uint32_t *result_crc) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_os.h
type dirent (line 54) | struct dirent {
type dirent (line 148) | struct
FILE: ios/CodePush/SSZipArchive/minizip/mz_os_posix.c
function mz_os_utf8_string_delete (line 97) | void mz_os_utf8_string_delete(uint8_t **string) {
function mz_os_rand (line 107) | int32_t mz_os_rand(uint8_t *buf, int32_t size) {
function mz_os_rand (line 122) | int32_t mz_os_rand(uint8_t *buf, int32_t size) {
function mz_os_rand (line 129) | int32_t mz_os_rand(uint8_t *buf, int32_t size) {
function mz_os_rand (line 144) | int32_t mz_os_rand(uint8_t *buf, int32_t size) {
function mz_os_rename (line 161) | int32_t mz_os_rename(const char *source_path, const char *target_path) {
function mz_os_unlink (line 168) | int32_t mz_os_unlink(const char *path) {
function mz_os_file_exists (line 175) | int32_t mz_os_file_exists(const char *path) {
function mz_os_get_file_size (line 184) | int64_t mz_os_get_file_size(const char *path) {
function mz_os_get_file_date (line 199) | int32_t mz_os_get_file_date(const char *path, time_t *modified_date, tim...
function mz_os_set_file_date (line 229) | int32_t mz_os_set_file_date(const char *path, time_t modified_date, time...
function mz_os_get_file_attribs (line 244) | int32_t mz_os_get_file_attribs(const char *path, uint32_t *attributes) {
function mz_os_set_file_attribs (line 255) | int32_t mz_os_set_file_attribs(const char *path, uint32_t attributes) {
function mz_os_make_dir (line 264) | int32_t mz_os_make_dir(const char *path) {
function DIR (line 275) | DIR* mz_os_open_dir(const char *path) {
type dirent (line 279) | struct dirent
function mz_os_close_dir (line 285) | int32_t mz_os_close_dir(DIR *dir) {
function mz_os_is_dir (line 293) | int32_t mz_os_is_dir(const char *path) {
function mz_os_is_symlink (line 304) | int32_t mz_os_is_symlink(const char *path) {
function mz_os_make_symlink (line 315) | int32_t mz_os_make_symlink(const char *path, const char *target_path) {
function mz_os_read_symlink (line 321) | int32_t mz_os_read_symlink(const char *path, char *target_path, int32_t ...
function mz_os_ms_time (line 332) | uint64_t mz_os_ms_time(void) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm.c
function mz_stream_open (line 20) | int32_t mz_stream_open(void *stream, const char *path, int32_t mode) {
function mz_stream_is_open (line 27) | int32_t mz_stream_is_open(void *stream) {
function mz_stream_read (line 34) | int32_t mz_stream_read(void *stream, void *buf, int32_t size) {
function mz_stream_read_value (line 43) | static int32_t mz_stream_read_value(void *stream, uint64_t *value, int32...
function mz_stream_read_uint8 (line 60) | int32_t mz_stream_read_uint8(void *stream, uint8_t *value) {
function mz_stream_read_uint16 (line 71) | int32_t mz_stream_read_uint16(void *stream, uint16_t *value) {
function mz_stream_read_uint32 (line 82) | int32_t mz_stream_read_uint32(void *stream, uint32_t *value) {
function mz_stream_read_int64 (line 93) | int32_t mz_stream_read_int64(void *stream, int64_t *value) {
function mz_stream_read_uint64 (line 97) | int32_t mz_stream_read_uint64(void *stream, uint64_t *value) {
function mz_stream_write (line 101) | int32_t mz_stream_write(void *stream, const void *buf, int32_t size) {
function mz_stream_write_value (line 112) | static int32_t mz_stream_write_value(void *stream, uint64_t value, int32...
function mz_stream_write_uint8 (line 133) | int32_t mz_stream_write_uint8(void *stream, uint8_t value) {
function mz_stream_write_uint16 (line 137) | int32_t mz_stream_write_uint16(void *stream, uint16_t value) {
function mz_stream_write_uint32 (line 141) | int32_t mz_stream_write_uint32(void *stream, uint32_t value) {
function mz_stream_write_int64 (line 145) | int32_t mz_stream_write_int64(void *stream, int64_t value) {
function mz_stream_write_uint64 (line 149) | int32_t mz_stream_write_uint64(void *stream, uint64_t value) {
function mz_stream_copy (line 153) | int32_t mz_stream_copy(void *target, void *source, int32_t len) {
function mz_stream_copy_to_end (line 157) | int32_t mz_stream_copy_to_end(void *target, void *source) {
function mz_stream_copy_stream (line 161) | int32_t mz_stream_copy_stream(void *target, mz_stream_write_cb write_cb,...
function mz_stream_copy_stream_to_end (line 189) | int32_t mz_stream_copy_stream_to_end(void *target, mz_stream_write_cb wr...
function mz_stream_tell (line 214) | int64_t mz_stream_tell(void *stream) {
function mz_stream_seek (line 223) | int32_t mz_stream_seek(void *stream, int64_t offset, int32_t origin) {
function mz_stream_find (line 234) | int32_t mz_stream_find(void *stream, const void *find, int32_t find_size...
function mz_stream_find_reverse (line 292) | int32_t mz_stream_find_reverse(void *stream, const void *find, int32_t f...
function mz_stream_close (line 357) | int32_t mz_stream_close(void *stream) {
function mz_stream_error (line 366) | int32_t mz_stream_error(void *stream) {
function mz_stream_set_base (line 373) | int32_t mz_stream_set_base(void *stream, void *base) {
function mz_stream_get_prop_int64 (line 386) | int32_t mz_stream_get_prop_int64(void *stream, int32_t prop, int64_t *va...
function mz_stream_set_prop_int64 (line 393) | int32_t mz_stream_set_prop_int64(void *stream, int32_t prop, int64_t val...
function mz_stream_delete (line 406) | void mz_stream_delete(void **stream) {
type mz_stream_raw (line 418) | typedef struct mz_stream_raw_s {
function mz_stream_raw_open (line 427) | int32_t mz_stream_raw_open(void *stream, const char *path, int32_t mode) {
function mz_stream_raw_is_open (line 435) | int32_t mz_stream_raw_is_open(void *stream) {
function mz_stream_raw_read (line 440) | int32_t mz_stream_raw_read(void *stream, void *buf, int32_t size) {
function mz_stream_raw_write (line 460) | int32_t mz_stream_raw_write(void *stream, const void *buf, int32_t size) {
function mz_stream_raw_tell (line 474) | int64_t mz_stream_raw_tell(void *stream) {
function mz_stream_raw_seek (line 479) | int32_t mz_stream_raw_seek(void *stream, int64_t offset, int32_t origin) {
function mz_stream_raw_close (line 484) | int32_t mz_stream_raw_close(void *stream) {
function mz_stream_raw_error (line 489) | int32_t mz_stream_raw_error(void *stream) {
function mz_stream_raw_get_prop_int64 (line 494) | int32_t mz_stream_raw_get_prop_int64(void *stream, int32_t prop, int64_t...
function mz_stream_raw_set_prop_int64 (line 507) | int32_t mz_stream_raw_set_prop_int64(void *stream, int32_t prop, int64_t...
function mz_stream_raw_delete (line 548) | void mz_stream_raw_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm.h
type mz_stream_vtbl (line 53) | typedef struct mz_stream_vtbl_s {
type mz_stream (line 69) | typedef struct mz_stream_s {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm_buf.c
type mz_stream_buffered (line 36) | typedef struct mz_stream_buffered_s {
function mz_stream_buffered_reset (line 62) | static int32_t mz_stream_buffered_reset(void *stream) {
function mz_stream_buffered_open (line 74) | int32_t mz_stream_buffered_open(void *stream, const char *path, int32_t ...
function mz_stream_buffered_is_open (line 81) | int32_t mz_stream_buffered_is_open(void *stream) {
function mz_stream_buffered_flush (line 86) | static int32_t mz_stream_buffered_flush(void *stream, int32_t *written) {
function mz_stream_buffered_read (line 119) | int32_t mz_stream_buffered_read(void *stream, void *buf, int32_t size) {
function mz_stream_buffered_write (line 183) | int32_t mz_stream_buffered_write(void *stream, const void *buf, int32_t ...
function mz_stream_buffered_tell (line 245) | int64_t mz_stream_buffered_tell(void *stream) {
function mz_stream_buffered_seek (line 261) | int32_t mz_stream_buffered_seek(void *stream, int64_t offset, int32_t or...
function mz_stream_buffered_close (line 332) | int32_t mz_stream_buffered_close(void *stream) {
function mz_stream_buffered_error (line 354) | int32_t mz_stream_buffered_error(void *stream) {
function mz_stream_buffered_delete (line 371) | void mz_stream_buffered_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm_mem.c
type mz_stream_mem (line 42) | typedef struct mz_stream_mem_s {
function mz_stream_mem_set_size (line 54) | static int32_t mz_stream_mem_set_size(void *stream, int32_t size) {
function mz_stream_mem_open (line 73) | int32_t mz_stream_mem_open(void *stream, const char *path, int32_t mode) {
function mz_stream_mem_is_open (line 91) | int32_t mz_stream_mem_is_open(void *stream) {
function mz_stream_mem_read (line 98) | int32_t mz_stream_mem_read(void *stream, void *buf, int32_t size) {
function mz_stream_mem_write (line 115) | int32_t mz_stream_mem_write(void *stream, const void *buf, int32_t size) {
function mz_stream_mem_tell (line 148) | int64_t mz_stream_mem_tell(void *stream) {
function mz_stream_mem_seek (line 153) | int32_t mz_stream_mem_seek(void *stream, int64_t offset, int32_t origin) {
function mz_stream_mem_close (line 187) | int32_t mz_stream_mem_close(void *stream) {
function mz_stream_mem_error (line 194) | int32_t mz_stream_mem_error(void *stream) {
function mz_stream_mem_set_buffer (line 201) | void mz_stream_mem_set_buffer(void *stream, void *buf, int32_t size) {
function mz_stream_mem_get_buffer (line 208) | int32_t mz_stream_mem_get_buffer(void *stream, const void **buf) {
function mz_stream_mem_get_buffer_at (line 212) | int32_t mz_stream_mem_get_buffer_at(void *stream, int64_t position, cons...
function mz_stream_mem_get_buffer_at_current (line 220) | int32_t mz_stream_mem_get_buffer_at_current(void *stream, const void **b...
function mz_stream_mem_get_buffer_length (line 225) | void mz_stream_mem_get_buffer_length(void *stream, int32_t *length) {
function mz_stream_mem_set_buffer_limit (line 230) | void mz_stream_mem_set_buffer_limit(void *stream, int32_t limit) {
function mz_stream_mem_set_grow_size (line 235) | void mz_stream_mem_set_grow_size(void *stream, int32_t grow_size) {
function mz_stream_mem_delete (line 254) | void mz_stream_mem_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm_os_posix.c
type mz_stream_posix (line 61) | typedef struct mz_stream_posix_s {
function mz_stream_os_open (line 69) | int32_t mz_stream_os_open(void *stream, const char *path, int32_t mode) {
function mz_stream_os_is_open (line 97) | int32_t mz_stream_os_is_open(void *stream) {
function mz_stream_os_read (line 104) | int32_t mz_stream_os_read(void *stream, void *buf, int32_t size) {
function mz_stream_os_write (line 114) | int32_t mz_stream_os_write(void *stream, const void *buf, int32_t size) {
function mz_stream_os_tell (line 124) | int64_t mz_stream_os_tell(void *stream) {
function mz_stream_os_seek (line 134) | int32_t mz_stream_os_seek(void *stream, int64_t offset, int32_t origin) {
function mz_stream_os_close (line 160) | int32_t mz_stream_os_close(void *stream) {
function mz_stream_os_error (line 174) | int32_t mz_stream_os_error(void *stream) {
function mz_stream_os_delete (line 191) | void mz_stream_os_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.c
type mz_stream_pkcrypt (line 48) | typedef struct mz_stream_pkcrypt_s {
function mz_stream_pkcrypt_decrypt_byte (line 74) | static uint8_t mz_stream_pkcrypt_decrypt_byte(void *stream) {
function mz_stream_pkcrypt_update_keys (line 85) | static uint8_t mz_stream_pkcrypt_update_keys(void *stream, uint8_t c) {
function mz_stream_pkcrypt_init_keys (line 101) | static void mz_stream_pkcrypt_init_keys(void *stream, const char *passwo...
function mz_stream_pkcrypt_open (line 116) | int32_t mz_stream_pkcrypt_open(void *stream, const char *path, int32_t m...
function mz_stream_pkcrypt_is_open (line 176) | int32_t mz_stream_pkcrypt_is_open(void *stream) {
function mz_stream_pkcrypt_read (line 183) | int32_t mz_stream_pkcrypt_read(void *stream, void *buf, int32_t size) {
function mz_stream_pkcrypt_write (line 204) | int32_t mz_stream_pkcrypt_write(void *stream, const void *buf, int32_t s...
function mz_stream_pkcrypt_tell (line 236) | int64_t mz_stream_pkcrypt_tell(void *stream) {
function mz_stream_pkcrypt_seek (line 241) | int32_t mz_stream_pkcrypt_seek(void *stream, int64_t offset, int32_t ori...
function mz_stream_pkcrypt_close (line 246) | int32_t mz_stream_pkcrypt_close(void *stream) {
function mz_stream_pkcrypt_error (line 252) | int32_t mz_stream_pkcrypt_error(void *stream) {
function mz_stream_pkcrypt_set_password (line 257) | void mz_stream_pkcrypt_set_password(void *stream, const char *password) {
function mz_stream_pkcrypt_set_verify (line 262) | void mz_stream_pkcrypt_set_verify(void *stream, uint8_t verify1, uint8_t...
function mz_stream_pkcrypt_get_verify (line 268) | void mz_stream_pkcrypt_get_verify(void *stream, uint8_t *verify1, uint8_...
function mz_stream_pkcrypt_get_prop_int64 (line 274) | int32_t mz_stream_pkcrypt_get_prop_int64(void *stream, int32_t prop, int...
function mz_stream_pkcrypt_set_prop_int64 (line 298) | int32_t mz_stream_pkcrypt_set_prop_int64(void *stream, int32_t prop, int...
function mz_stream_pkcrypt_delete (line 322) | void mz_stream_pkcrypt_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm_split.c
type mz_stream_split (line 45) | typedef struct mz_stream_split_s {
function mz_stream_split_open_disk (line 73) | static int32_t mz_stream_split_open_disk(void *stream, int32_t number_di...
function mz_stream_split_close_disk (line 146) | static int32_t mz_stream_split_close_disk(void *stream) {
function mz_stream_split_goto_disk (line 156) | static int32_t mz_stream_split_goto_disk(void *stream, int32_t number_di...
function mz_stream_split_open (line 178) | int32_t mz_stream_split_open(void *stream, const char *path, int32_t mod...
function mz_stream_split_is_open (line 212) | int32_t mz_stream_split_is_open(void *stream) {
function mz_stream_split_read (line 219) | int32_t mz_stream_split_read(void *stream, void *buf, int32_t size) {
function mz_stream_split_write (line 257) | int32_t mz_stream_split_write(void *stream, const void *buf, int32_t siz...
function mz_stream_split_tell (line 313) | int64_t mz_stream_split_tell(void *stream) {
function mz_stream_split_seek (line 322) | int32_t mz_stream_split_seek(void *stream, int64_t offset, int32_t origi...
function mz_stream_split_close (line 352) | int32_t mz_stream_split_close(void *stream) {
function mz_stream_split_error (line 361) | int32_t mz_stream_split_error(void *stream) {
function mz_stream_split_get_prop_int64 (line 366) | int32_t mz_stream_split_get_prop_int64(void *stream, int32_t prop, int64...
function mz_stream_split_set_prop_int64 (line 384) | int32_t mz_stream_split_set_prop_int64(void *stream, int32_t prop, int64...
function mz_stream_split_delete (line 411) | void mz_stream_split_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.c
type mz_stream_wzaes (line 45) | typedef struct mz_stream_wzaes_s {
function mz_stream_wzaes_open (line 65) | int32_t mz_stream_wzaes_open(void *stream, const char *path, int32_t mod...
function mz_stream_wzaes_is_open (line 153) | int32_t mz_stream_wzaes_is_open(void *stream) {
function mz_stream_wzaes_ctr_encrypt (line 160) | static int32_t mz_stream_wzaes_ctr_encrypt(void *stream, uint8_t *buf, i...
function mz_stream_wzaes_read (line 187) | int32_t mz_stream_wzaes_read(void *stream, void *buf, int32_t size) {
function mz_stream_wzaes_write (line 209) | int32_t mz_stream_wzaes_write(void *stream, const void *buf, int32_t siz...
function mz_stream_wzaes_tell (line 240) | int64_t mz_stream_wzaes_tell(void *stream) {
function mz_stream_wzaes_seek (line 245) | int32_t mz_stream_wzaes_seek(void *stream, int64_t offset, int32_t origi...
function mz_stream_wzaes_close (line 250) | int32_t mz_stream_wzaes_close(void *stream) {
function mz_stream_wzaes_error (line 277) | int32_t mz_stream_wzaes_error(void *stream) {
function mz_stream_wzaes_set_password (line 282) | void mz_stream_wzaes_set_password(void *stream, const char *password) {
function mz_stream_wzaes_set_encryption_mode (line 287) | void mz_stream_wzaes_set_encryption_mode(void *stream, int16_t encryptio...
function mz_stream_wzaes_get_prop_int64 (line 292) | int32_t mz_stream_wzaes_get_prop_int64(void *stream, int32_t prop, int64...
function mz_stream_wzaes_set_prop_int64 (line 316) | int32_t mz_stream_wzaes_set_prop_int64(void *stream, int32_t prop, int64...
function mz_stream_wzaes_delete (line 345) | void mz_stream_wzaes_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.c
type zng_stream (line 25) | typedef zng_stream zlib_stream;
type z_stream (line 28) | typedef z_stream zlib_stream;
type mz_stream_zlib (line 58) | typedef struct mz_stream_zlib_s {
function mz_stream_zlib_open (line 75) | int32_t mz_stream_zlib_open(void *stream, const char *path, int32_t mode) {
function mz_stream_zlib_is_open (line 119) | int32_t mz_stream_zlib_is_open(void *stream) {
function mz_stream_zlib_read (line 126) | int32_t mz_stream_zlib_read(void *stream, void *buf, int32_t size) {
function mz_stream_zlib_flush (line 204) | static int32_t mz_stream_zlib_flush(void *stream) {
function mz_stream_zlib_deflate (line 211) | static int32_t mz_stream_zlib_deflate(void *stream, int flush) {
function mz_stream_zlib_write (line 251) | int32_t mz_stream_zlib_write(void *stream, const void *buf, int32_t size) {
function mz_stream_zlib_tell (line 274) | int64_t mz_stream_zlib_tell(void *stream) {
function mz_stream_zlib_seek (line 280) | int32_t mz_stream_zlib_seek(void *stream, int64_t offset, int32_t origin) {
function mz_stream_zlib_close (line 288) | int32_t mz_stream_zlib_close(void *stream) {
function mz_stream_zlib_error (line 315) | int32_t mz_stream_zlib_error(void *stream) {
function mz_stream_zlib_get_prop_int64 (line 320) | int32_t mz_stream_zlib_get_prop_int64(void *stream, int32_t prop, int64_...
function mz_stream_zlib_set_prop_int64 (line 344) | int32_t mz_stream_zlib_set_prop_int64(void *stream, int32_t prop, int64_...
function mz_stream_zlib_delete (line 377) | void mz_stream_zlib_delete(void **stream) {
FILE: ios/CodePush/SSZipArchive/minizip/mz_zip.c
type mz_zip (line 83) | typedef struct mz_zip_s {
function mz_zip_search_eocd (line 130) | static int32_t mz_zip_search_eocd(void *stream, int64_t *central_pos) {
function mz_zip_search_zip64_eocd (line 149) | static int32_t mz_zip_search_zip64_eocd(void *stream, const int64_t end_...
function mz_zip_get_pk_verify (line 191) | static uint16_t mz_zip_get_pk_verify(uint32_t dos_date, uint64_t crc, ui...
function mz_zip_entry_read_header (line 202) | static int32_t mz_zip_entry_read_header(void *stream, uint8_t local, mz_...
function mz_zip_entry_read_descriptor (line 482) | static int32_t mz_zip_entry_read_descriptor(void *stream, uint8_t zip64,...
function mz_zip_entry_write_crc_sizes (line 523) | static int32_t mz_zip_entry_write_crc_sizes(void *stream, uint8_t zip64,...
function mz_zip_entry_needs_zip64 (line 551) | static int32_t mz_zip_entry_needs_zip64(mz_zip_file *file_info, uint8_t ...
function mz_zip_entry_write_header (line 596) | static int32_t mz_zip_entry_write_header(void *stream, uint8_t local, mz...
function mz_zip_entry_write_descriptor (line 919) | static int32_t mz_zip_entry_write_descriptor(void *stream, uint8_t zip64...
function mz_zip_read_cd (line 944) | static int32_t mz_zip_read_cd(void *handle) {
function mz_zip_write_cd (line 1098) | static int32_t mz_zip_write_cd(void *handle) {
function mz_zip_recover_cd (line 1232) | static int32_t mz_zip_recover_cd(void *handle) {
function mz_zip_delete (line 1412) | void mz_zip_delete(void **handle) {
function mz_zip_open (line 1423) | int32_t mz_zip_open(void *handle, void *stream, int32_t mode) {
function mz_zip_close (line 1497) | int32_t mz_zip_close(void *handle) {
function mz_zip_get_comment (line 1537) | int32_t mz_zip_get_comment(void *handle, const char **comment) {
function mz_zip_set_comment (line 1547) | int32_t mz_zip_set_comment(void *handle, const char *comment) {
function mz_zip_get_version_madeby (line 1564) | int32_t mz_zip_get_version_madeby(void *handle, uint16_t *version_madeby) {
function mz_zip_set_version_madeby (line 1572) | int32_t mz_zip_set_version_madeby(void *handle, uint16_t version_madeby) {
function mz_zip_set_recover (line 1580) | int32_t mz_zip_set_recover(void *handle, uint8_t recover) {
function mz_zip_set_data_descriptor (line 1588) | int32_t mz_zip_set_data_descriptor(void *handle, uint8_t data_descriptor) {
function mz_zip_get_stream (line 1596) | int32_t mz_zip_get_stream(void *handle, void **stream) {
function mz_zip_set_cd_stream (line 1606) | int32_t mz_zip_set_cd_stream(void *handle, int64_t cd_start_pos, void *c...
function mz_zip_get_cd_mem_stream (line 1616) | int32_t mz_zip_get_cd_mem_stream(void *handle, void **cd_mem_stream) {
function mz_zip_set_number_entry (line 1626) | int32_t mz_zip_set_number_entry(void *handle, uint64_t number_entry) {
function mz_zip_get_number_entry (line 1634) | int32_t mz_zip_get_number_entry(void *handle, uint64_t *number_entry) {
function mz_zip_set_disk_number_with_cd (line 1642) | int32_t mz_zip_set_disk_number_with_cd(void *handle, uint32_t disk_numbe...
function mz_zip_get_disk_number_with_cd (line 1650) | int32_t mz_zip_get_disk_number_with_cd(void *handle, uint32_t *disk_numb...
function mz_zip_entry_close_int (line 1658) | static int32_t mz_zip_entry_close_int(void *handle) {
function mz_zip_entry_open_int (line 1673) | static int32_t mz_zip_entry_open_int(void *handle, uint8_t raw, int16_t ...
function mz_zip_entry_is_open (line 1842) | int32_t mz_zip_entry_is_open(void *handle) {
function mz_zip_entry_read_open (line 1851) | int32_t mz_zip_entry_read_open(void *handle, uint8_t raw, const char *pa...
function mz_zip_entry_write_open (line 1892) | int32_t mz_zip_entry_write_open(void *handle, const mz_zip_file *file_in...
function mz_zip_entry_read (line 2007) | int32_t mz_zip_entry_read(void *handle, void *buf, int32_t len) {
function mz_zip_entry_write (line 2032) | int32_t mz_zip_entry_write(void *handle, const void *buf, int32_t len) {
function mz_zip_entry_read_close (line 2047) | int32_t mz_zip_entry_read_close(void *handle, uint32_t *crc32, int64_t *...
function mz_zip_entry_write_close (line 2114) | int32_t mz_zip_entry_write_close(void *handle, uint32_t crc32, int64_t c...
function mz_zip_entry_seek_local_header (line 2217) | int32_t mz_zip_entry_seek_local_header(void *handle) {
function mz_zip_entry_get_compress_stream (line 2241) | int32_t mz_zip_entry_get_compress_stream(void *handle, void **compress_s...
function mz_zip_entry_close (line 2251) | int32_t mz_zip_entry_close(void *handle) {
function mz_zip_entry_close_raw (line 2255) | int32_t mz_zip_entry_close_raw(void *handle, int64_t uncompressed_size, ...
function mz_zip_entry_is_dir (line 2270) | int32_t mz_zip_entry_is_dir(void *handle) {
function mz_zip_entry_is_symlink (line 2288) | int32_t mz_zip_entry_is_symlink(void *handle) {
function mz_zip_entry_get_info (line 2299) | int32_t mz_zip_entry_get_info(void *handle, mz_zip_file **file_info) {
function mz_zip_entry_get_local_info (line 2314) | int32_t mz_zip_entry_get_local_info(void *handle, mz_zip_file **local_fi...
function mz_zip_entry_set_extrafield (line 2322) | int32_t mz_zip_entry_set_extrafield(void *handle, const uint8_t *extrafi...
function mz_zip_goto_next_entry_int (line 2333) | static int32_t mz_zip_goto_next_entry_int(void *handle) {
function mz_zip_get_entry (line 2352) | int64_t mz_zip_get_entry(void *handle) {
function mz_zip_goto_entry (line 2361) | int32_t mz_zip_goto_entry(void *handle, int64_t cd_pos) {
function mz_zip_goto_first_entry (line 2375) | int32_t mz_zip_goto_first_entry(void *handle) {
function mz_zip_goto_next_entry (line 2386) | int32_t mz_zip_goto_next_entry(void *handle) {
function mz_zip_locate_entry (line 2398) | int32_t mz_zip_locate_entry(void *handle, const char *filename, uint8_t ...
function mz_zip_locate_first_entry (line 2426) | int32_t mz_zip_locate_first_entry(void *handle, void *userdata, mz_zip_l...
function mz_zip_locate_next_entry (line 2443) | int32_t mz_zip_locate_next_entry(void *handle, void *userdata, mz_zip_lo...
function mz_zip_attrib_is_dir (line 2463) | int32_t mz_zip_attrib_is_dir(uint32_t attrib, int32_t version_madeby) {
function mz_zip_attrib_is_symlink (line 2477) | int32_t mz_zip_attrib_is_symlink(uint32_t attrib, int32_t version_madeby) {
function mz_zip_attrib_convert (line 2491) | int32_t mz_zip_attrib_convert(uint8_t src_sys, uint32_t src_attrib, uint...
function mz_zip_attrib_posix_to_win32 (line 2520) | int32_t mz_zip_attrib_posix_to_win32(uint32_t posix_attrib, uint32_t *wi...
function mz_zip_attrib_win32_to_posix (line 2542) | int32_t mz_zip_attrib_win32_to_posix(uint32_t win32_attrib, uint32_t *po...
function mz_zip_extrafield_find (line 2564) | int32_t mz_zip_extrafield_find(void *stream, uint16_t type, int32_t max_...
function mz_zip_extrafield_contains (line 2595) | int32_t mz_zip_extrafield_contains(const uint8_t *extrafield, int32_t ex...
function mz_zip_extrafield_read (line 2613) | int32_t mz_zip_extrafield_read(void *stream, uint16_t *type, uint16_t *l...
function mz_zip_extrafield_write (line 2623) | int32_t mz_zip_extrafield_write(void *stream, uint16_t type, uint16_t le...
function mz_zip_invalid_date (line 2633) | static int32_t mz_zip_invalid_date(const struct tm *ptm) {
function mz_zip_dosdate_to_raw_tm (line 2644) | static void mz_zip_dosdate_to_raw_tm(uint64_t dos_date, struct tm *ptm) {
function mz_zip_dosdate_to_tm (line 2656) | int32_t mz_zip_dosdate_to_tm(uint64_t dos_date, struct tm *ptm) {
function time_t (line 2670) | time_t mz_zip_dosdate_to_time_t(uint64_t dos_date) {
function mz_zip_time_t_to_tm (line 2676) | int32_t mz_zip_time_t_to_tm(time_t unix_time, struct tm *ptm) {
function mz_zip_time_t_to_dos_date (line 2689) | uint32_t mz_zip_time_t_to_dos_date(time_t unix_time) {
function mz_zip_tm_to_dosdate (line 2695) | uint32_t mz_zip_tm_to_dosdate(const struct tm *ptm) {
function mz_zip_ntfs_to_unix_time (line 2720) | int32_t mz_zip_ntfs_to_unix_time(uint64_t ntfs_time, time_t *unix_time) {
function mz_zip_unix_to_ntfs_time (line 2725) | int32_t mz_zip_unix_to_ntfs_time(time_t unix_time, uint64_t *ntfs_time) {
function mz_zip_path_compare (line 2732) | int32_t mz_zip_path_compare(const char *path1, const char *path2, uint8_...
FILE: ios/CodePush/SSZipArchive/minizip/mz_zip.h
type mz_zip_file (line 25) | typedef struct mz_zip_file_s {
type tm (line 224) | struct tm
type tm (line 230) | struct tm
type tm (line 236) | struct tm
FILE: ios/CodePush/SSZipArchive/minizip/mz_zip_rw.c
type mz_zip_reader (line 32) | typedef struct mz_zip_reader_s {
function mz_zip_reader_is_open (line 70) | int32_t mz_zip_reader_is_open(void *handle) {
function mz_zip_reader_open (line 79) | int32_t mz_zip_reader_open(void *handle, void *stream) {
function mz_zip_reader_open_file (line 100) | int32_t mz_zip_reader_open_file(void *handle, const char *path) {
function mz_zip_reader_open_file_in_memory (line 119) | int32_t mz_zip_reader_open_file_in_memory(void *handle, const char *path) {
function mz_zip_reader_open_buffer (line 167) | int32_t mz_zip_reader_open_buffer(void *handle, uint8_t *buf, int32_t le...
function mz_zip_reader_close (line 191) | int32_t mz_zip_reader_close(void *handle) {
function mz_zip_reader_unzip_cd (line 221) | int32_t mz_zip_reader_unzip_cd(void *handle) {
function mz_zip_reader_locate_entry_cb (line 282) | static int32_t mz_zip_reader_locate_entry_cb(void *handle, void *userdat...
function mz_zip_reader_goto_first_entry (line 290) | int32_t mz_zip_reader_goto_first_entry(void *handle) {
function mz_zip_reader_goto_next_entry (line 312) | int32_t mz_zip_reader_goto_next_entry(void *handle) {
function mz_zip_reader_locate_entry (line 334) | int32_t mz_zip_reader_locate_entry(void *handle, const char *filename, u...
function mz_zip_reader_entry_open (line 352) | int32_t mz_zip_reader_entry_open(void *handle) {
function mz_zip_reader_entry_close (line 412) | int32_t mz_zip_reader_entry_close(void *handle) {
function mz_zip_reader_entry_read (line 442) | int32_t mz_zip_reader_entry_read(void *handle, void *buf, int32_t len) {
function mz_zip_reader_entry_has_sign (line 453) | int32_t mz_zip_reader_entry_has_sign(void *handle) {
function mz_zip_reader_entry_sign_verify (line 464) | int32_t mz_zip_reader_entry_sign_verify(void *handle) {
function mz_zip_reader_entry_get_hash (line 505) | int32_t mz_zip_reader_entry_get_hash(void *handle, uint16_t algorithm, u...
function mz_zip_reader_entry_get_first_hash (line 541) | int32_t mz_zip_reader_entry_get_first_hash(void *handle, uint16_t *algor...
function mz_zip_reader_entry_get_info (line 571) | int32_t mz_zip_reader_entry_get_info(void *handle, mz_zip_file **file_in...
function mz_zip_reader_entry_is_dir (line 582) | int32_t mz_zip_reader_entry_is_dir(void *handle) {
function mz_zip_reader_entry_save_process (line 589) | int32_t mz_zip_reader_entry_save_process(void *handle, void *stream, mz_...
function mz_zip_reader_entry_save (line 629) | int32_t mz_zip_reader_entry_save(void *handle, void *stream, mz_stream_w...
function mz_zip_reader_entry_save_file (line 675) | int32_t mz_zip_reader_entry_save_file(void *handle, const char *path) {
function mz_zip_reader_entry_save_buffer (line 790) | int32_t mz_zip_reader_entry_save_buffer(void *handle, void *buf, int32_t...
function mz_zip_reader_entry_save_buffer_length (line 814) | int32_t mz_zip_reader_entry_save_buffer_length(void *handle) {
function mz_zip_reader_save_all (line 828) | int32_t mz_zip_reader_save_all(void *handle, const char *destination_dir) {
function mz_zip_reader_set_pattern (line 881) | void mz_zip_reader_set_pattern(void *handle, const char *pattern, uint8_...
function mz_zip_reader_set_password (line 887) | void mz_zip_reader_set_password(void *handle, const char *password) {
function mz_zip_reader_set_raw (line 892) | void mz_zip_reader_set_raw(void *handle, uint8_t raw) {
function mz_zip_reader_get_raw (line 897) | int32_t mz_zip_reader_get_raw(void *handle, uint8_t *raw) {
function mz_zip_reader_get_zip_cd (line 905) | int32_t mz_zip_reader_get_zip_cd(void *handle, uint8_t *zip_cd) {
function mz_zip_reader_get_comment (line 913) | int32_t mz_zip_reader_get_comment(void *handle, const char **comment) {
function mz_zip_reader_set_recover (line 922) | int32_t mz_zip_reader_set_recover(void *handle, uint8_t recover) {
function mz_zip_reader_set_encoding (line 930) | void mz_zip_reader_set_encoding(void *handle, int32_t encoding) {
function mz_zip_reader_set_sign_required (line 935) | void mz_zip_reader_set_sign_required(void *handle, uint8_t sign_required) {
function mz_zip_reader_set_overwrite_cb (line 940) | void mz_zip_reader_set_overwrite_cb(void *handle, void *userdata, mz_zip...
function mz_zip_reader_set_password_cb (line 946) | void mz_zip_reader_set_password_cb(void *handle, void *userdata, mz_zip_...
function mz_zip_reader_set_progress_cb (line 952) | void mz_zip_reader_set_progress_cb(void *handle, void *userdata, mz_zip_...
function mz_zip_reader_set_progress_interval (line 958) | void mz_zip_reader_set_progress_interval(void *handle, uint32_t millisec...
function mz_zip_reader_set_entry_cb (line 963) | void mz_zip_reader_set_entry_cb(void *handle, void *userdata, mz_zip_rea...
function mz_zip_reader_get_zip_handle (line 969) | int32_t mz_zip_reader_get_zip_handle(void *handle, void **zip_handle) {
function mz_zip_reader_delete (line 995) | void mz_zip_reader_delete(void **handle) {
type mz_zip_writer (line 1009) | typedef struct mz_zip_writer_s {
function mz_zip_writer_zip_cd (line 1048) | int32_t mz_zip_writer_zip_cd(void *handle) {
function mz_zip_writer_is_open (line 1105) | int32_t mz_zip_writer_is_open(void *handle) {
function mz_zip_writer_open_int (line 1112) | static int32_t mz_zip_writer_open_int(void *handle, void *stream, int32_...
function mz_zip_writer_open (line 1127) | int32_t mz_zip_writer_open(void *handle, void *stream, uint8_t append) {
function mz_zip_writer_open_file (line 1139) | int32_t mz_zip_writer_open_file(void *handle, const char *path, int64_t ...
function mz_zip_writer_open_file_in_memory (line 1191) | int32_t mz_zip_writer_open_file_in_memory(void *handle, const char *path) {
function mz_zip_writer_close (line 1239) | int32_t mz_zip_writer_close(void *handle) {
function mz_zip_writer_entry_open (line 1275) | int32_t mz_zip_writer_entry_open(void *handle, mz_zip_file *file_info) {
function mz_zip_writer_entry_sign (line 1313) | int32_t mz_zip_writer_entry_sign(void *handle, uint8_t *message, int32_t...
function mz_zip_writer_entry_close (line 1346) | int32_t mz_zip_writer_entry_close(void *handle) {
function mz_zip_writer_entry_write (line 1411) | int32_t mz_zip_writer_entry_write(void *handle, const void *buf, int32_t...
function mz_zip_writer_add_process (line 1423) | int32_t mz_zip_writer_add_process(void *handle, void *stream, mz_stream_...
function mz_zip_writer_add (line 1452) | int32_t mz_zip_writer_add(void *handle, void *stream, mz_stream_read_cb ...
function mz_zip_writer_add_info (line 1493) | int32_t mz_zip_writer_add_info(void *handle, void *stream, mz_stream_rea...
function mz_zip_writer_add_buffer (line 1520) | int32_t mz_zip_writer_add_buffer(void *handle, void *buf, int32_t len, m...
function mz_zip_writer_add_file (line 1541) | int32_t mz_zip_writer_add_file(void *handle, const char *path, const cha...
function mz_zip_writer_add_path (line 1619) | int32_t mz_zip_writer_add_path(void *handle, const char *path, const cha...
function mz_zip_writer_copy_from_reader (line 1701) | int32_t mz_zip_writer_copy_from_reader(void *handle, void *reader) {
function mz_zip_writer_set_password (line 1760) | void mz_zip_writer_set_password(void *handle, const char *password) {
function mz_zip_writer_set_comment (line 1765) | void mz_zip_writer_set_comment(void *handle, const char *comment) {
function mz_zip_writer_set_raw (line 1770) | void mz_zip_writer_set_raw(void *handle, uint8_t raw) {
function mz_zip_writer_get_raw (line 1775) | int32_t mz_zip_writer_get_raw(void *handle, uint8_t *raw) {
function mz_zip_writer_set_aes (line 1783) | void mz_zip_writer_set_aes(void *handle, uint8_t aes) {
function mz_zip_writer_set_compress_method (line 1788) | void mz_zip_writer_set_compress_method(void *handle, uint16_t compress_m...
function mz_zip_writer_set_compress_level (line 1793) | void mz_zip_writer_set_compress_level(void *handle, int16_t compress_lev...
function mz_zip_writer_set_follow_links (line 1798) | void mz_zip_writer_set_follow_links(void *handle, uint8_t follow_links) {
function mz_zip_writer_set_store_links (line 1803) | void mz_zip_writer_set_store_links(void *handle, uint8_t store_links) {
function mz_zip_writer_set_zip_cd (line 1808) | void mz_zip_writer_set_zip_cd(void *handle, uint8_t zip_cd) {
function mz_zip_writer_set_certificate (line 1813) | int32_t mz_zip_writer_set_certificate(void *handle, const char *cert_pat...
function mz_zip_writer_set_overwrite_cb (line 1856) | void mz_zip_writer_set_overwrite_cb(void *handle, void *userdata, mz_zip...
function mz_zip_writer_set_password_cb (line 1862) | void mz_zip_writer_set_password_cb(void *handle, void *userdata, mz_zip_...
function mz_zip_writer_set_progress_cb (line 1868) | void mz_zip_writer_set_progress_cb(void *handle, void *userdata, mz_zip_...
function mz_zip_writer_set_progress_interval (line 1874) | void mz_zip_writer_set_progress_interval(void *handle, uint32_t millisec...
function mz_zip_writer_set_entry_cb (line 1879) | void mz_zip_writer_set_entry_cb(void *handle, void *userdata, mz_zip_wri...
function mz_zip_writer_get_zip_handle (line 1885) | int32_t mz_zip_writer_get_zip_handle(void *handle, void **zip_handle) {
function mz_zip_writer_delete (line 1923) | void mz_zip_writer_delete(void **handle) {
FILE: logging.js
function log (line 2) | function log(message) {
FILE: package-mixins.js
method download (line 10) | async download(downloadProgressCallback) {
method install (line 51) | async install(installMode = NativeCodePush.codePushInstallModeOnNextRest...
FILE: request-fetch-adapter.js
method request (line 4) | async request(verb, url, requestBody, callback) {
function getHttpMethodName (line 38) | function getHttpMethodName(verb) {
FILE: scripts/generateBundledResourcesHash.js
function addJsBundleAndMetaToManifest (line 69) | function addJsBundleAndMetaToManifest() {
function addFileToManifest (line 95) | function addFileToManifest(folder, assetFile, manifest, done) {
function fileExists (line 118) | function fileExists(file) {
FILE: scripts/getFilesInFolder.js
function getFilesInFolder (line 6) | function getFilesInFolder(folderName, fileList) {
FILE: scripts/postlink/ios/postlink.js
function writePatches (line 112) | function writePatches() {
FILE: scripts/tools/linkToolsAndroid.js
function findMainApplication (line 39) | function findMainApplication() {
FILE: scripts/tools/linkToolsIos.js
function findFileByAppName (line 80) | function findFileByAppName(array, appName) {
function getDefaultPlistPath (line 93) | function getDefaultPlistPath() {
function getBuildSettingsPropertyMatchingTargetProductName (line 101) | function getBuildSettingsPropertyMatchingTargetProductName(parsedXCodePr...
FILE: test/template/android/app/src/main/java/com/testcodepush/MainApplication.java
class MainApplication (line 14) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 18) | @Override
method getJSBundleFile (line 23) | @Override
method getPackages (line 28) | @Override
method getJSMainModuleName (line 37) | @Override
method getReactNativeHost (line 43) | @Override
method onCreate (line 48) | @Override
method initializeFlipper (line 60) | private static void initializeFlipper(Context context) {
FILE: test/template/index.js
class CODE_PUSH_TEST_APP_NAME (line 23) | class CODE_PUSH_TEST_APP_NAME extends Component {
method constructor (line 25) | constructor() {
method checkUpdateSuccess (line 30) | checkUpdateSuccess(remotePackage) {
method checkUpdateError (line 41) | checkUpdateError(error) {
method downloadSuccess (line 46) | downloadSuccess(localPackage) {
method downloadError (line 49) | downloadError(error) {
method installSuccess (line 54) | installSuccess() {
method installError (line 57) | installError() {
method onSyncStatus (line 62) | onSyncStatus(status) {
method onSyncError (line 65) | onSyncError(error) {
method readyAfterUpdate (line 72) | readyAfterUpdate(callback) {
method sendCurrentAndPendingPackage (line 76) | sendCurrentAndPendingPackage() {
method setStateAndSendMessage (line 87) | setStateAndSendMessage(message, testMessage, args, callback) {
method sendTestMessage (line 94) | sendTestMessage(message, args, callback) {
method componentDidMount (line 125) | componentDidMount() {
method getInitialState (line 129) | getInitialState() {
method render (line 135) | render() {
FILE: test/test.ts
type RNPlatform (line 18) | interface RNPlatform {
class RNAndroid (line 50) | class RNAndroid extends Platform.Android implements RNPlatform {
method constructor (line 51) | constructor() {
method getBundleName (line 58) | getBundleName(): string {
method isDiffsSupported (line 65) | isDiffsSupported(): boolean {
method getBinaryPath (line 72) | getBinaryPath(projectDirectory: string): string {
method installPlatform (line 79) | installPlatform(projectDirectory: string): Q.Promise<void> {
method installApp (line 117) | installApp(projectDirectory: string): Q.Promise<void> {
method buildFunction (line 125) | buildFunction(androidDirectory: string): Q.Promise<void> {
method buildApp (line 135) | buildApp(projectDirectory: string): Q.Promise<void> {
class RNIOS (line 147) | class RNIOS extends Platform.IOS implements RNPlatform {
method constructor (line 148) | constructor() {
method getBundleName (line 155) | getBundleName(): string {
method isDiffsSupported (line 162) | isDiffsSupported(): boolean {
method getBinaryPath (line 169) | getBinaryPath(projectDirectory: string): string {
method installPlatform (line 176) | installPlatform(projectDirectory: string): Q.Promise<void> {
method installApp (line 208) | installApp(projectDirectory: string): Q.Promise<void> {
method buildApp (line 228) | buildApp(projectDirectory: string): Q.Promise<void> {
class RNProjectManager (line 260) | class RNProjectManager extends ProjectManager {
method getPluginName (line 264) | public getPluginName(): string {
method copyTemplate (line 271) | public copyTemplate(templatePath: string, projectDirectory: string): Q...
method setupProject (line 304) | public setupProject(projectDirectory: string, templatePath: string, ap...
method setupScenario (line 344) | public setupScenario(projectDirectory: string, appId: string, template...
method createUpdateArchive (line 369) | public createUpdateArchive(projectDirectory: string, targetPlatform: P...
method preparePlatform (line 399) | public preparePlatform(projectDirectory: string, targetPlatform: Platf...
method cleanupAfterPlatform (line 429) | public cleanupAfterPlatform(projectDirectory: string, targetPlatform: ...
method runApplication (line 437) | public runApplication(projectDirectory: string, targetPlatform: Platfo...
FILE: typings/react-native-code-push.d.ts
type DownloadProgressCallback (line 1) | type DownloadProgressCallback = (progress: DownloadProgress) => void;
type SyncStatusChangedCallback (line 2) | type SyncStatusChangedCallback = (status: CodePush.SyncStatus) => void;
type HandleBinaryVersionMismatchCallback (line 3) | type HandleBinaryVersionMismatchCallback = (update: RemotePackage) => void;
type CodePushOptions (line 5) | interface CodePushOptions extends SyncOptions {
type DownloadProgress (line 13) | interface DownloadProgress {
type LocalPackage (line 25) | interface LocalPackage extends Package {
type Package (line 35) | interface Package {
type RemotePackage (line 89) | interface RemotePackage extends Package {
type SyncOptions (line 103) | interface SyncOptions {
type UpdateDialog (line 149) | interface UpdateDialog {
type RollbackRetryOptions (line 194) | interface RollbackRetryOptions {
type StatusReport (line 208) | interface StatusReport {
type InstallMode (line 315) | enum InstallMode {
type SyncStatus (line 345) | enum SyncStatus {
type UpdateState (line 399) | enum UpdateState {
type DeploymentStatus (line 422) | enum DeploymentStatus {
type CheckFrequency (line 437) | enum CheckFrequency {
FILE: windows-legacy/CodePush.Net46.Test/ApplicationDataContainerTest.cs
class ApplicationDataContainerTest (line 8) | [TestClass]
method TestInMemmorySet (line 19) | [TestMethod]
method TestInMemmoryReset (line 35) | [TestMethod]
method TestInMemmoryRemove (line 49) | [TestMethod]
method TestPersistentSet (line 67) | [TestMethod]
method TestPersistentRemove (line 85) | [TestMethod]
FILE: windows-legacy/CodePush.Net46.Test/TelemetryManagerTest.cs
class TelemetryManagerTest (line 14) | [TestClass]
method TestGetUpdateReportNoPreviousUpdate (line 31) | [TestMethod]
method TestGetUpdateReportWithPreviousUpdate (line 43) | [TestMethod]
method TestGetUpdateReportNegative (line 60) | [TestMethod]
method TestRecordStatusReportWithRollback (line 72) | [TestMethod]
method TestRecordStatusReportWithoutRollback (line 82) | [TestMethod]
method TestStatusReportForRetrySerialization (line 95) | [TestMethod]
FILE: windows-legacy/CodePush.Net46/Adapters/Http/HttpProgress.cs
type HttpProgressStage (line 5) | public enum HttpProgressStage
type HttpProgress (line 19) | public struct HttpProgress
FILE: windows-legacy/CodePush.Net46/Adapters/Storage/ApplicationDataContainer.cs
type ApplicationDataCreateDisposition (line 12) | public enum ApplicationDataCreateDisposition
class DictionaryWithDefault (line 18) | public class DictionaryWithDefault<TKey, TValue> : Dictionary<TKey, TValue>
method DictionaryWithDefault (line 26) | public DictionaryWithDefault() : base() { }
method DictionaryWithDefault (line 27) | public DictionaryWithDefault(TValue defaultValue) : base()
method Remove (line 45) | public new bool Remove(TKey key)
class ApplicationDataContainer (line 59) | public class ApplicationDataContainer
method ApplicationDataContainer (line 67) | public ApplicationDataContainer(string name = STORAGE_NAME)
method SaveAsync (line 90) | async Task SaveAsync()
method DeleteAsync (line 99) | public async Task DeleteAsync()
FILE: windows-legacy/CodePush.Net46/CodePushUtils.cs
class CodePushUtils (line 11) | internal partial class CodePushUtils
class ApplicationInfo (line 13) | class ApplicationInfo
method ApplicationInfo (line 15) | public ApplicationInfo()
method GetFileBundlePrefix (line 31) | internal static string GetFileBundlePrefix()
method GetJObjectFromFileAsync (line 59) | internal async static Task<JObject> GetJObjectFromFileAsync(IFile file)
method GetDeviceIdImpl (line 77) | static string GetDeviceIdImpl()
method GetSerialNumber (line 90) | static string GetSerialNumber()
method GetProcId (line 106) | static string GetProcId()
method GetMAC (line 121) | static string GetMAC()
method HasWriteAccessToFolder (line 145) | static bool HasWriteAccessToFolder(string path)
FILE: windows-legacy/CodePush.Net46/FileUtils.cs
class FileUtils (line 8) | internal class FileUtils
method MergeFoldersAsync (line 10) | internal async static Task MergeFoldersAsync(IFolder source, IFolder t...
method ClearReactDevBundleCacheAsync (line 24) | internal async static Task ClearReactDevBundleCacheAsync()
method GetBinaryResourcesModifiedTimeAsync (line 34) | internal static Task<long> GetBinaryResourcesModifiedTimeAsync(string ...
method CopyFileAsync (line 43) | internal async static Task CopyFileAsync(string sourcePath, string des...
FILE: windows-legacy/CodePush.Net46/UpdateManager.cs
class UpdateManager (line 13) | internal class UpdateManager
method ClearUpdatesAsync (line 17) | internal async Task ClearUpdatesAsync()
method DownloadPackageAsync (line 22) | internal async Task DownloadPackageAsync(JObject updatePackage, string...
method GetCurrentPackageAsync (line 122) | internal async Task<JObject> GetCurrentPackageAsync()
method GetCurrentPackageBundleAsync (line 128) | internal async Task<IFile> GetCurrentPackageBundleAsync(string bundleF...
method GetCurrentPackageHashAsync (line 144) | internal async Task<string> GetCurrentPackageHashAsync()
method GetPackageAsync (line 157) | internal async Task<JObject> GetPackageAsync(string packageHash)
method GetPackageFolderAsync (line 176) | internal async Task<IFolder> GetPackageFolderAsync(string packageHash,...
method GetPreviousPackageAsync (line 196) | internal async Task<JObject> GetPreviousPackageAsync()
method GetPreviousPackageHashAsync (line 202) | internal async Task<string> GetPreviousPackageHashAsync()
method InstallPackageAsync (line 215) | internal async Task InstallPackageAsync(JObject updatePackage, bool cu...
method RollbackPackageAsync (line 248) | internal async Task RollbackPackageAsync()
method GetCurrentPackageFolderAsync (line 266) | private async Task<IFolder> GetCurrentPackageFolderAsync()
method GetCurrentPackageInfoAsync (line 277) | private async Task<JObject> GetCurrentPackageInfoAsync()
method GetDownloadFileAsync (line 293) | private async Task<IFile> GetDownloadFileAsync()
method GetStatusFileAsync (line 299) | private async Task<IFile> GetStatusFileAsync()
method CreateUnzippedFolderAsync (line 305) | private async Task<IFolder> CreateUnzippedFolderAsync()
method ShortenPackageHash (line 318) | private string ShortenPackageHash(string longPackageHash)
method UpdateCurrentPackageInfoAsync (line 323) | private async Task UpdateCurrentPackageInfoAsync(JObject packageInfo)
FILE: windows-legacy/CodePush.Net46/UpdateUtils.cs
class UpdateUtils (line 11) | internal class UpdateUtils
method CopyNecessaryFilesFromCurrentPackageAsync (line 13) | internal async static Task CopyNecessaryFilesFromCurrentPackageAsync(I...
method FindJSBundleInUpdateContentsAsync (line 25) | internal async static Task<string> FindJSBundleInUpdateContentsAsync(I...
method DownloadBundleAsync (line 48) | internal async static Task DownloadBundleAsync(string url, string file...
method GetCodePushFolderAsync (line 64) | internal static async Task<IFolder> GetCodePushFolderAsync()
FILE: windows-legacy/CodePush.Shared/CodePushConstants.cs
class CodePushConstants (line 3) | internal class CodePushConstants
FILE: windows-legacy/CodePush.Shared/CodePushNativeModule.cs
class CodePushNativeModule (line 19) | internal class CodePushNativeModule : ReactContextNativeModuleBase
method CodePushNativeModule (line 25) | public CodePushNativeModule(ReactContext reactContext, CodePushReactPa...
method Initialize (line 56) | public override void Initialize()
method downloadUpdate (line 61) | [ReactMethod]
method getConfiguration (line 107) | [ReactMethod]
method getUpdateMetadata (line 127) | [ReactMethod]
method getNewStatusReport (line 178) | [ReactMethod]
method installUpdate (line 235) | [ReactMethod]
method isFailedUpdate (line 266) | [ReactMethod]
method isFirstRun (line 272) | [ReactMethod]
method notifyApplicationReady (line 282) | [ReactMethod]
method restartApp (line 289) | [ReactMethod]
method recordStatusReported (line 300) | [ReactMethod]
method saveStatusReportForRetry (line 306) | [ReactMethod]
method LoadBundleAsync (line 312) | internal async Task LoadBundleAsync()
FILE: windows-legacy/CodePush.Shared/CodePushReactPackage.cs
class CodePushReactPackage (line 14) | public sealed class CodePushReactPackage : IReactPackage
method CodePushReactPackage (line 63) | public CodePushReactPackage(string deploymentKey, ReactPage mainPage)
method CodePushReactPackage (line 79) | public CodePushReactPackage(string deploymentKey, ReactNativeHost host)
method CreateJavaScriptModulesConfig (line 95) | public IReadOnlyList<Type> CreateJavaScriptModulesConfig()
method CreateNativeModules (line 100) | public IReadOnlyList<INativeModule> CreateNativeModules(ReactContext r...
method CreateViewManagers (line 108) | public IReadOnlyList<IViewManager> CreateViewManagers(ReactContext rea...
method GetJavaScriptBundleFile (line 113) | public string GetJavaScriptBundleFile()
method GetJavaScriptBundleFile (line 118) | public string GetJavaScriptBundleFile(string assetsBundleFileName)
method GetJavaScriptBundleFileAsync (line 128) | public async Task<string> GetJavaScriptBundleFileAsync(string assetsBu...
method InitializeUpdateAfterRestart (line 181) | internal void InitializeUpdateAfterRestart()
method ClearUpdatesAsync (line 214) | internal async Task ClearUpdatesAsync()
method RollbackPackageAsync (line 225) | private async Task RollbackPackageAsync()
FILE: windows-legacy/CodePush.Shared/CodePushUtils.cs
class CodePushUtils (line 12) | internal partial class CodePushUtils
method Log (line 14) | internal static void Log(string message)
method LogBundleUrl (line 19) | internal static void LogBundleUrl(string path)
method GetDeviceId (line 26) | internal static string GetDeviceId()
method GetAppVersion (line 36) | internal static string GetAppVersion()
method GetAppFolder (line 45) | internal static string GetAppFolder()
method GetAssetsBundlePrefix (line 54) | internal static string GetAssetsBundlePrefix()
method ExtractSubFolder (line 63) | internal static string ExtractSubFolder(string fullPath)
FILE: windows-legacy/CodePush.Shared/InstallMode.cs
type InstallMode (line 3) | enum InstallMode
FILE: windows-legacy/CodePush.Shared/MinimumBackgroundListener.cs
class MinimumBackgroundListener (line 6) | internal class MinimumBackgroundListener : ILifecycleEventListener
method MinimumBackgroundListener (line 13) | internal MinimumBackgroundListener(Action resumeAction, int minimumBac...
method OnDestroy (line 19) | public void OnDestroy()
method OnResume (line 23) | public void OnResume()
method OnSuspend (line 37) | public void OnSuspend()
FILE: windows-legacy/CodePush.Shared/SettingsManager.cs
class SettingsManager (line 13) | internal class SettingsManager
method SettingsManager (line 17) | static SettingsManager ()
method GetFailedUpdates (line 28) | public static JArray GetFailedUpdates()
method GetPendingUpdate (line 48) | internal static JObject GetPendingUpdate()
method IsFailedHash (line 69) | internal static bool IsFailedHash(string packageHash)
method IsPendingUpdate (line 87) | internal static bool IsPendingUpdate(string packageHash)
method RemoveFailedUpdates (line 95) | internal static void RemoveFailedUpdates()
method RemovePendingUpdate (line 100) | internal static void RemovePendingUpdate()
method SaveFailedUpdate (line 105) | internal static void SaveFailedUpdate(JObject failedPackage)
method SavePendingUpdate (line 122) | internal static void SavePendingUpdate(string packageHash, bool isLoad...
method SetString (line 133) | internal static void SetString(string key, string value)
method GetString (line 138) | internal static string GetString(string key)
method RemoveString (line 143) | internal static void RemoveString(string key)
FILE: windows-legacy/CodePush.Shared/TelemetryManager.cs
class TelemetryManager (line 16) | internal class TelemetryManager
method GetBinaryUpdateReport (line 34) | internal static JObject GetBinaryUpdateReport(string appVersion)
method GetRetryStatusReport (line 72) | internal static JObject GetRetryStatusReport()
method GetRollbackReport (line 93) | internal static JObject GetRollbackReport(JObject lastFailedPackage)
method GetUpdateReport (line 102) | internal static JObject GetUpdateReport(JObject currentPackage)
method RecordStatusReported (line 147) | internal static void RecordStatusReported(JObject statusReport)
method SaveStatusReportForRetry (line 174) | internal static void SaveStatusReportForRetry(JObject statusReport)
method GetPackageStatusReportIdentifier (line 182) | static string GetPackageStatusReportIdentifier(JObject updatePackage)
method GetPreviousStatusReportIdentifier (line 203) | static string GetPreviousStatusReportIdentifier()
method ClearRetryStatusReport (line 208) | static private void ClearRetryStatusReport()
method IsStatusReportIdentifierCodePushLabel (line 213) | static bool IsStatusReportIdentifierCodePushLabel(string statusReportI...
method GetDeploymentKeyFromStatusReportIdentifier (line 218) | static string GetDeploymentKeyFromStatusReportIdentifier(string status...
method GetVersionLabelFromStatusReportIdentifier (line 231) | static string GetVersionLabelFromStatusReportIdentifier(string statusR...
method SaveStatusReportedForIdentifier (line 244) | static void SaveStatusReportedForIdentifier(string appVersionOrPackage...
FILE: windows-legacy/CodePush.Shared/UpdateState.cs
type UpdateState (line 3) | enum UpdateState
FILE: windows-legacy/CodePush/CodePushUtils.cs
class CodePushUtils (line 10) | internal partial class CodePushUtils
method GetFileBundlePrefix (line 12) | internal static string GetFileBundlePrefix()
method GetJObjectFromFileAsync (line 17) | internal async static Task<JObject> GetJObjectFromFileAsync(StorageFil...
method GetDeviceIdImpl (line 35) | static string GetDeviceIdImpl()
FILE: windows-legacy/CodePush/FileUtils.cs
class FileUtils (line 7) | internal class FileUtils
method MergeFoldersAsync (line 9) | internal async static Task MergeFoldersAsync(StorageFolder source, Sto...
method ClearReactDevBundleCacheAsync (line 23) | internal async static Task ClearReactDevBundleCacheAsync()
method GetBinaryResourcesModifiedTimeAsync (line 32) | internal async static Task<long> GetBinaryResourcesModifiedTimeAsync(s...
FILE: windows-legacy/CodePush/UpdateManager.cs
class UpdateManager (line 14) | internal class UpdateManager
method ClearUpdatesAsync (line 18) | internal async Task ClearUpdatesAsync()
method DownloadPackageAsync (line 23) | internal async Task DownloadPackageAsync(JObject updatePackage, string...
method GetCurrentPackageAsync (line 110) | internal async Task<JObject> GetCurrentPackageAsync()
method GetCurrentPackageBundleAsync (line 116) | internal async Task<StorageFile> GetCurrentPackageBundleAsync(string b...
method GetCurrentPackageHashAsync (line 132) | internal async Task<string> GetCurrentPackageHashAsync()
method GetPackageAsync (line 145) | internal async Task<JObject> GetPackageAsync(string packageHash)
method GetPackageFolderAsync (line 164) | internal async Task<StorageFolder> GetPackageFolderAsync(string packag...
method GetPreviousPackageAsync (line 180) | internal async Task<JObject> GetPreviousPackageAsync()
method GetPreviousPackageHashAsync (line 186) | internal async Task<string> GetPreviousPackageHashAsync()
method InstallPackageAsync (line 199) | internal async Task InstallPackageAsync(JObject updatePackage, bool cu...
method RollbackPackageAsync (line 232) | internal async Task RollbackPackageAsync()
method GetCodePushFolderAsync (line 250) | private async Task<StorageFolder> GetCodePushFolderAsync()
method GetCurrentPackageFolderAsync (line 255) | private async Task<StorageFolder> GetCurrentPackageFolderAsync()
method GetCurrentPackageInfoAsync (line 262) | private async Task<JObject> GetCurrentPackageInfoAsync()
method GetDownloadFileAsync (line 268) | private async Task<StorageFile> GetDownloadFileAsync()
method GetStatusFileAsync (line 274) | private async Task<StorageFile> GetStatusFileAsync()
method CreateUnzippedFolderAsync (line 280) | private async Task<StorageFolder> CreateUnzippedFolderAsync()
method ShortenPackageHash (line 293) | private string ShortenPackageHash(string longPackageHash)
method UpdateCurrentPackageInfoAsync (line 298) | private async Task UpdateCurrentPackageInfoAsync(JObject packageInfo)
FILE: windows-legacy/CodePush/UpdateUtils.cs
class UpdateUtils (line 9) | internal class UpdateUtils
method CopyNecessaryFilesFromCurrentPackageAsync (line 11) | internal async static Task CopyNecessaryFilesFromCurrentPackageAsync(S...
method FindJSBundleInUpdateContentsAsync (line 23) | internal async static Task<string> FindJSBundleInUpdateContentsAsync(S...
FILE: windows/CodePush/CodePushConfig.cpp
type winrt::Microsoft::CodePush::ReactNative::implementation (line 12) | namespace winrt::Microsoft::CodePush::ReactNative::implementation
function CodePushConfig (line 20) | CodePushConfig& CodePushConfig::Current() noexcept
function JsonObject (line 25) | JsonObject CodePushConfig::GetConfiguration()
function hstring (line 90) | hstring CodePushConfig::QueryConfig(std::wstring_view key)
FILE: windows/CodePush/CodePushConfig.h
function namespace (line 14) | namespace winrt::Microsoft::CodePush::ReactNative::implementation
FILE: windows/CodePush/CodePushDownloadHandler.cpp
type Microsoft::CodePush::ReactNative (line 15) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/CodePushDownloadHandler.h
function namespace (line 12) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/CodePushNativeModule.cpp
type Microsoft::CodePush::ReactNative (line 24) | namespace Microsoft::CodePush::ReactNative
function StorageFolder (line 120) | StorageFolder CodePushNativeModule::GetLocalStorageFolder()
function ApplicationDataContainer (line 125) | ApplicationDataContainer CodePushNativeModule::GetLocalSettings()
function JsonObject (line 183) | JsonObject CodePushNativeModule::GetRollbackInfo() { return nullptr; }
function IAsyncAction (line 233) | IAsyncAction CodePushNativeModule::ClearDebugUpdates()
function IAsyncAction (line 250) | IAsyncAction CodePushNativeModule::ClearUpdatesStaticAsync()
function IAsyncAction (line 269) | IAsyncAction CodePushNativeModule::LoadBundle()
function IAsyncAction (line 293) | IAsyncAction CodePushNativeModule::RollbackPackage()
function IAsyncAction (line 333) | IAsyncAction CodePushNativeModule::RestartAppInternal(bool onlyIfUpdat...
function fire_and_forget (line 429) | fire_and_forget CodePushNativeModule::DownloadUpdateAsync(JsonObject u...
function fire_and_forget (line 483) | fire_and_forget CodePushNativeModule::GetConfiguration(ReactPromise<IJ...
function fire_and_forget (line 501) | fire_and_forget CodePushNativeModule::GetUpdateMetadataAsync(CodePushU...
function fire_and_forget (line 548) | fire_and_forget CodePushNativeModule::InstallUpdateAsync(JsonObject up...
function IAsyncAction (line 621) | IAsyncAction CodePushNativeModule::InitializeUpdateAfterRestart()
function fire_and_forget (line 683) | fire_and_forget CodePushNativeModule::IsFirstRun(std::wstring packageH...
function fire_and_forget (line 732) | fire_and_forget CodePushNativeModule::RestartApp(bool onlyIfUpdateIsPe...
function fire_and_forget (line 744) | fire_and_forget CodePushNativeModule::ClearUpdates() noexcept
function fire_and_forget (line 755) | fire_and_forget CodePushNativeModule::DownloadAndReplaceCurrentBundle(...
function fire_and_forget (line 767) | fire_and_forget CodePushNativeModule::GetNewStatusReportAsync(ReactPro...
type winrt::Microsoft::ReactNative (line 832) | namespace winrt::Microsoft::ReactNative
function WriteValue (line 836) | void WriteValue(IJSValueWriter const& writer, IJsonValue const& value)...
function ReadValue (line 879) | void ReadValue(IJSValueReader const& reader, /*out*/ JsonObject& value...
function ReadValue (line 891) | void ReadValue(IJSValueReader const& reader, /*out*/ IJsonValue& value...
FILE: windows/CodePush/CodePushNativeModule.h
function namespace (line 13) | namespace winrt::Microsoft::ReactNative
type CodePushNativeModule (line 22) | struct CodePushNativeModule
function m_latestExpectedContentLength (line 188) | uint64_t m_latestExpectedContentLength{ 0 }
function m_latestReceivedContentLength (line 189) | uint64_t m_latestReceivedContentLength{ 0 }
function std (line 231) | static constexpr std::wstring_view LatestRollbackTimeKey{ L"time" };
FILE: windows/CodePush/CodePushPackage.cpp
type Microsoft::CodePush::ReactNative (line 19) | namespace Microsoft::CodePush::ReactNative
function IAsyncAction (line 27) | IAsyncAction CodePushPackage::ClearUpdatesAsync()
function IAsyncAction (line 33) | IAsyncAction CodePushPackage::DownloadPackageAsync(
function IAsyncAction (line 408) | IAsyncAction CodePushPackage::RollbackPackage()
FILE: windows/CodePush/CodePushPackage.h
function namespace (line 9) | namespace Microsoft::CodePush::ReactNative
function std (line 18) | static constexpr std::wstring_view UpdateMetadataFileName{ L"app.json" };
FILE: windows/CodePush/CodePushTelemetryManager.cpp
type Microsoft::CodePush::ReactNative (line 13) | namespace Microsoft::CodePush::ReactNative
function JsonObject (line 31) | JsonObject CodePushTelemetryManager::GetBinaryUpdateReport(std::wstrin...
function JsonObject (line 68) | JsonObject CodePushTelemetryManager::GetRetryStatusReport()
function JsonObject (line 85) | JsonObject CodePushTelemetryManager::GetRollbackReport(const JsonObjec...
function JsonObject (line 93) | JsonObject CodePushTelemetryManager::GetUpdateReport(const JsonObject&...
function hstring (line 173) | hstring CodePushTelemetryManager::GetPackageStatusReportIdentifier(con...
function hstring (line 186) | hstring CodePushTelemetryManager::GetPreviousStatusReportIdentifier()
FILE: windows/CodePush/CodePushTelemetryManager.h
function namespace (line 9) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/CodePushUpdateUtils.cpp
type Microsoft::CodePush::ReactNative (line 23) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/CodePushUpdateUtils.h
function namespace (line 12) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/CodePushUtils.cpp
type Microsoft::CodePush::ReactNative (line 7) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/CodePushUtils.h
function namespace (line 10) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/FileUtils.cpp
type Microsoft::CodePush::ReactNative (line 18) | namespace Microsoft::CodePush::ReactNative
function IAsyncAction (line 77) | IAsyncAction FileUtils::UnzipAsync(const StorageFile& zipFile, const S...
FILE: windows/CodePush/FileUtils.h
function namespace (line 12) | namespace Microsoft::CodePush::ReactNative
FILE: windows/CodePush/ReactPackageProvider.cpp
type winrt::Microsoft::CodePush::ReactNative::implementation (line 9) | namespace winrt::Microsoft::CodePush::ReactNative::implementation {
FILE: windows/CodePush/ReactPackageProvider.h
function namespace (line 8) | namespace winrt::Microsoft::CodePush::ReactNative::implementation {
function namespace (line 18) | namespace winrt::Microsoft::CodePush::ReactNative::factory_implementation {
FILE: windows/CodePush/miniz/miniz.c
function mz_ulong (line 39) | mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf...
function mz_ulong (line 69) | mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len)
function mz_ulong (line 88) | mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len)
function mz_free (line 155) | void mz_free(void *p)
function miniz_def_free_func (line 165) | void miniz_def_free_func(void *opaque, void *address)
function mz_deflateInit (line 183) | int mz_deflateInit(mz_streamp pStream, int level)
function mz_deflateInit2 (line 188) | int mz_deflateInit2(mz_streamp pStream, int level, int method, int windo...
function mz_deflateReset (line 224) | int mz_deflateReset(mz_streamp pStream)
function mz_deflate (line 233) | int mz_deflate(mz_streamp pStream, int flush)
function mz_deflateEnd (line 291) | int mz_deflateEnd(mz_streamp pStream)
function mz_ulong (line 303) | mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len)
function mz_compress2 (line 310) | int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsign...
function mz_compress (line 340) | int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigne...
function mz_ulong (line 345) | mz_ulong mz_compressBound(mz_ulong source_len)
type inflate_state (line 350) | typedef struct
function mz_inflateInit2 (line 359) | int mz_inflateInit2(mz_streamp pStream, int window_bits)
function mz_inflateInit (line 395) | int mz_inflateInit(mz_streamp pStream)
function mz_inflateReset (line 400) | int mz_inflateReset(mz_streamp pStream)
function mz_inflate (line 426) | int mz_inflate(mz_streamp pStream, int flush)
function mz_inflateEnd (line 538) | int mz_inflateEnd(mz_streamp pStream)
function mz_uncompress (line 550) | int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsig...
type tdefl_sym_freq (line 728) | typedef struct
function tdefl_sym_freq (line 732) | static tdefl_sym_freq *tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym...
function tdefl_calculate_minimum_redundancy (line 766) | static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n)
function tdefl_huffman_enforce_max_code_size (line 826) | static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int cod...
function tdefl_optimize_huffman_table (line 850) | static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_...
function tdefl_start_dynamic_block (line 969) | static void tdefl_start_dynamic_block(tdefl_compressor *d)
function tdefl_start_static_block (line 1056) | static void tdefl_start_static_block(tdefl_compressor *d)
function mz_bool (line 1081) | static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d)
function mz_bool (line 1175) | static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d)
function mz_bool (line 1223) | static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_...
function tdefl_flush_block (line 1232) | static int tdefl_flush_block(tdefl_compressor *d, int flush)
function mz_uint16 (line 1369) | static mz_uint16 TDEFL_READ_UNALIGNED_WORD(const mz_uint8* p)
function mz_uint16 (line 1375) | static mz_uint16 TDEFL_READ_UNALIGNED_WORD2(const mz_uint16* p)
function MZ_FORCEINLINE (line 1385) | static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint...
function MZ_FORCEINLINE (line 1438) | static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint...
function mz_uint32 (line 1485) | static mz_uint32 TDEFL_READ_UNALIGNED_WORD32(const mz_uint8* p)
function mz_bool (line 1494) | static mz_bool tdefl_compress_fast(tdefl_compressor *d)
function MZ_FORCEINLINE (line 1668) | static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_...
function MZ_FORCEINLINE (line 1681) | static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_ui...
function mz_bool (line 1711) | static mz_bool tdefl_compress_normal(tdefl_compressor *d)
function tdefl_status (line 1856) | static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d)
function tdefl_status (line 1877) | tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, si...
function tdefl_status (line 1945) | tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_...
function tdefl_status (line 1951) | tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut...
function tdefl_status (line 1986) | tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d)
function mz_uint32 (line 1991) | mz_uint32 tdefl_get_adler32(tdefl_compressor *d)
function mz_bool (line 1996) | mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, t...
type tdefl_output_buffer (line 2011) | typedef struct
function mz_bool (line 2018) | static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, voi...
function tdefl_compress_mem_to_mem (line 2058) | size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, con...
function mz_uint (line 2074) | mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bi...
function tdefl_compressor (line 2190) | tdefl_compressor *tdefl_compressor_alloc()
function tdefl_compressor_free (line 2195) | void tdefl_compressor_free(tdefl_compressor *pComp)
function tinfl_status (line 2381) | tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn...
function tinfl_decompress_mem_to_mem (line 2892) | size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, c...
function tinfl_decompress_mem_to_callback (line 2901) | int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_bu...
function tinfl_decompressor (line 2931) | tinfl_decompressor *tinfl_decompressor_alloc()
function tinfl_decompressor_free (line 2939) | void tinfl_decompressor_free(tinfl_decompressor *pDecomp)
function FILE (line 2990) | static FILE *mz_fopen(const char *pFilename, const char *pMode)
function FILE (line 2996) | static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStr...
type mz_zip_array (line 3194) | typedef struct
type mz_zip_internal_state_tag (line 3201) | struct mz_zip_internal_state_tag
function MZ_FORCEINLINE (line 3228) | static MZ_FORCEINLINE mz_uint mz_zip_array_range_check(const mz_zip_arra...
function MZ_FORCEINLINE (line 3238) | static MZ_FORCEINLINE void mz_zip_array_init(mz_zip_array *pArray, mz_ui...
function MZ_FORCEINLINE (line 3244) | static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_z...
function mz_bool (line 3250) | static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip...
function MZ_FORCEINLINE (line 3270) | static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip,...
function MZ_FORCEINLINE (line 3280) | static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, ...
function MZ_FORCEINLINE (line 3291) | static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *p...
function MZ_FORCEINLINE (line 3296) | static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZi...
function MZ_TIME_T (line 3307) | static MZ_TIME_T mz_zip_dos_to_time_t(int dos_time, int dos_date)
function mz_zip_time_t_to_dos_time (line 3322) | static void mz_zip_time_t_to_dos_time(MZ_TIME_T time, mz_uint16 *pDOS_ti...
function mz_bool (line 3345) | static mz_bool mz_zip_get_file_modified_time(const char *pFilename, MZ_T...
function mz_bool (line 3359) | static mz_bool mz_zip_set_file_times(const char *pFilename, MZ_TIME_T ac...
function MZ_FORCEINLINE (line 3372) | static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip, mz_...
function mz_bool (line 3379) | static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint...
function MZ_FORCEINLINE (line 3413) | static MZ_FORCEINLINE mz_bool mz_zip_reader_filename_less(const mz_zip_a...
function mz_zip_reader_sort_central_dir_offsets_by_filename (line 3442) | static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_ar...
function mz_bool (line 3494) | static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip, mz_...
function mz_bool (line 3540) | static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_u...
function mz_zip_zero_struct (line 3792) | void mz_zip_zero_struct(mz_zip_archive *pZip)
function mz_bool (line 3798) | static mz_bool mz_zip_reader_end_internal(mz_zip_archive *pZip, mz_bool ...
function mz_bool (line 3845) | mz_bool mz_zip_reader_end(mz_zip_archive *pZip)
function mz_bool (line 3849) | mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint...
function mz_zip_mem_read_func (line 3869) | static size_t mz_zip_mem_read_func(void *pOpaque, mz_uint64 file_ofs, vo...
function mz_bool (line 3877) | mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, s...
function mz_zip_file_read_func (line 3912) | static size_t mz_zip_file_read_func(void *pOpaque, mz_uint64 file_ofs, v...
function mz_bool (line 3925) | mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilen...
function mz_bool (line 3930) | mz_bool mz_zip_reader_init_file_v2(mz_zip_archive *pZip, const char *pFi...
function mz_bool (line 3984) | mz_bool mz_zip_reader_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, m...
function MZ_FORCEINLINE (line 4026) | static MZ_FORCEINLINE const mz_uint8 *mz_zip_get_cdh(mz_zip_archive *pZi...
function mz_bool (line 4033) | mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint fi...
function mz_bool (line 4047) | mz_bool mz_zip_reader_is_file_supported(mz_zip_archive *pZip, mz_uint fi...
function mz_bool (line 4083) | mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint ...
function mz_bool (line 4115) | static mz_bool mz_zip_file_stat_internal(mz_zip_archive *pZip, mz_uint f...
function MZ_FORCEINLINE (line 4235) | static MZ_FORCEINLINE mz_bool mz_zip_string_equal(const char *pA, const ...
function MZ_FORCEINLINE (line 4246) | static MZ_FORCEINLINE int mz_zip_filename_compare(const mz_zip_array *pC...
function mz_bool (line 4263) | static mz_bool mz_zip_locate_file_binary_search(mz_zip_archive *pZip, co...
function mz_zip_reader_locate_file (line 4303) | int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, c...
function mz_bool (line 4312) | mz_bool mz_zip_reader_locate_file_v2(mz_zip_archive *pZip, const char *p...
function mz_bool (line 4377) | mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_u...
function mz_bool (line 4520) | mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip,...
function mz_bool (line 4528) | mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_...
function mz_bool (line 4533) | mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const ch...
function mz_bool (line 4592) | mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint ...
function mz_bool (line 4790) | mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, con...
function mz_zip_reader_extract_iter_state (line 4799) | mz_zip_reader_extract_iter_state* mz_zip_reader_extract_iter_new(mz_zip_...
function mz_zip_reader_extract_iter_state (line 4927) | mz_zip_reader_extract_iter_state* mz_zip_reader_extract_file_iter_new(mz...
function mz_zip_reader_extract_iter_read (line 4939) | size_t mz_zip_reader_extract_iter_read(mz_zip_reader_extract_iter_state*...
function mz_bool (line 5056) | mz_bool mz_zip_reader_extract_iter_free(mz_zip_reader_extract_iter_state...
function mz_zip_file_write_callback (line 5098) | static size_t mz_zip_file_write_callback(void *pOpaque, mz_uint64 ofs, c...
function mz_bool (line 5105) | mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file...
function mz_bool (line 5139) | mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const c...
function mz_bool (line 5148) | mz_bool mz_zip_reader_extract_to_cfile(mz_zip_archive *pZip, mz_uint fil...
function mz_bool (line 5161) | mz_bool mz_zip_reader_extract_file_to_cfile(mz_zip_archive *pZip, const ...
function mz_zip_compute_crc32_callback (line 5171) | static size_t mz_zip_compute_crc32_callback(void *pOpaque, mz_uint64 fil...
function mz_bool (line 5179) | mz_bool mz_zip_validate_file(mz_zip_archive *pZip, mz_uint file_index, m...
function mz_bool (line 5385) | mz_bool mz_zip_validate_archive(mz_zip_archive *pZip, mz_uint flags)
function mz_bool (line 5438) | mz_bool mz_zip_validate_mem_archive(const void *pMem, size_t size, mz_ui...
function mz_bool (line 5480) | mz_bool mz_zip_validate_file_archive(const char *pFilename, mz_uint flag...
function MZ_FORCEINLINE (line 5526) | static MZ_FORCEINLINE void mz_write_le16(mz_uint8 *p, mz_uint16 v)
function MZ_FORCEINLINE (line 5531) | static MZ_FORCEINLINE void mz_write_le32(mz_uint8 *p, mz_uint32 v)
function MZ_FORCEINLINE (line 5538) | static MZ_FORCEINLINE void mz_write_le64(mz_uint8 *p, mz_uint64 v)
function mz_zip_heap_write_func (line 5548) | static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs, ...
function mz_bool (line 5586) | static mz_bool mz_zip_writer_end_internal(mz_zip_archive *pZip, mz_bool ...
function mz_bool (line 5632) | mz_bool mz_zip_writer_init_v2(mz_zip_archive *pZip, mz_uint64 existing_s...
function mz_bool (line 5681) | mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size)
function mz_bool (line 5686) | mz_bool mz_zip_writer_init_heap_v2(mz_zip_archive *pZip, size_t size_to_...
function mz_bool (line 5714) | mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_res...
function mz_zip_file_write_func (line 5720) | static size_t mz_zip_file_write_func(void *pOpaque, mz_uint64 file_ofs, ...
function mz_bool (line 5736) | mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilen...
function mz_bool (line 5741) | mz_bool mz_zip_writer_init_file_v2(mz_zip_archive *pZip, const char *pFi...
function mz_bool (line 5788) | mz_bool mz_zip_writer_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, m...
function mz_bool (line 5809) | mz_bool mz_zip_writer_init_from_reader_v2(mz_zip_archive *pZip, const ch...
function mz_bool (line 5896) | mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char ...
function mz_bool (line 5902) | mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive...
type mz_zip_writer_add_state (line 5907) | typedef struct
function mz_bool (line 5914) | static mz_bool mz_zip_writer_add_put_buf_callback(const void *pBuf, int ...
function mz_uint32 (line 5927) | static mz_uint32 mz_zip_writer_create_zip64_extra_data(mz_uint8 *pBuf, m...
function mz_bool (line 5962) | static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZi...
function mz_bool (line 5980) | static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *p...
function mz_bool (line 6005) | static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, co...
function mz_bool (line 6045) | static mz_bool mz_zip_writer_validate_archive_name(const char *pArchive_...
function mz_uint (line 6056) | static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(m...
function mz_bool (line 6065) | static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64...
function mz_bool (line 6081) | mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArch...
function mz_bool (line 6087) | mz_bool mz_zip_writer_add_mem_ex_v2(mz_zip_archive *pZip, const char *pA...
function mz_bool (line 6373) | mz_bool mz_zip_writer_add_read_buf_callback(mz_zip_archive *pZip, const ...
function mz_file_read_func_stdio (line 6678) | static size_t mz_file_read_func_stdio(void *pOpaque, mz_uint64 file_ofs,...
function mz_bool (line 6689) | mz_bool mz_zip_writer_add_cfile(mz_zip_archive *pZip, const char *pArchi...
function mz_bool (line 6696) | mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchiv...
function mz_bool (line 6728) | static mz_bool mz_zip_writer_update_zip64_extension_block(mz_zip_array *...
function mz_bool (line 6808) | mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_a...
function mz_bool (line 7170) | mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip)
function mz_bool (line 7258) | mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void *...
function mz_bool (line 7283) | mz_bool mz_zip_writer_end(mz_zip_archive *pZip)
function mz_bool (line 7289) | mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filenam...
function mz_bool (line 7294) | mz_bool mz_zip_add_mem_to_archive_file_in_place_v2(const char *pZip_file...
function mz_zip_mode (line 7437) | mz_zip_mode mz_zip_get_mode(mz_zip_archive *pZip)
function mz_zip_type (line 7442) | mz_zip_type mz_zip_get_type(mz_zip_archive *pZip)
function mz_zip_error (line 7447) | mz_zip_error mz_zip_set_last_error(mz_zip_archive *pZip, mz_zip_error er...
function mz_zip_error (line 7460) | mz_zip_error mz_zip_peek_last_error(mz_zip_archive *pZip)
function mz_zip_error (line 7468) | mz_zip_error mz_zip_clear_last_error(mz_zip_archive *pZip)
function mz_zip_error (line 7473) | mz_zip_error mz_zip_get_last_error(mz_zip_archive *pZip)
function mz_bool (line 7562) | mz_bool mz_zip_is_zip64(mz_zip_archive *pZip)
function mz_zip_get_central_dir_size (line 7570) | size_t mz_zip_get_central_dir_size(mz_zip_archive *pZip)
function mz_uint (line 7578) | mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip)
function mz_uint64 (line 7583) | mz_uint64 mz_zip_get_archive_size(mz_zip_archive *pZip)
function mz_uint64 (line 7590) | mz_uint64 mz_zip_get_archive_file_start_offset(mz_zip_archive *pZip)
function MZ_FILE (line 7597) | MZ_FILE *mz_zip_get_cfile(mz_zip_archive *pZip)
function mz_zip_read_archive_data (line 7604) | size_t mz_zip_read_archive_data(mz_zip_archive *pZip, mz_uint64 file_ofs...
function mz_uint (line 7612) | mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_in...
function mz_bool (line 7633) | mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index...
function mz_bool (line 7638) | mz_bool mz_zip_end(mz_zip_archive *pZip)
FILE: windows/CodePush/miniz/miniz.h
type mz_ulong (line 198) | typedef unsigned long mz_ulong;
type mz_internal_state (line 279) | struct mz_internal_state
type mz_stream (line 282) | typedef struct mz_stream_s
type mz_stream (line 304) | typedef mz_stream *mz_streamp;
type Byte (line 400) | typedef unsigned char Byte;
type uInt (line 401) | typedef unsigned int uInt;
type mz_ulong (line 402) | typedef mz_ulong uLong;
type Byte (line 403) | typedef Byte Bytef;
type uInt (line 404) | typedef uInt uIntf;
type charf (line 405) | typedef char charf;
type intf (line 406) | typedef int intf;
type uLong (line 408) | typedef uLong uLongf;
type mz_uint8 (line 485) | typedef unsigned char mz_uint8;
type mz_int16 (line 486) | typedef signed short mz_int16;
type mz_uint16 (line 487) | typedef unsigned short mz_uint16;
type mz_uint32 (line 488) | typedef unsigned int mz_uint32;
type mz_uint (line 489) | typedef unsigned int mz_uint;
type mz_int64 (line 490) | typedef int64_t mz_int64;
type mz_uint64 (line 491) | typedef uint64_t mz_uint64;
type mz_bool (line 492) | typedef int mz_bool;
type mz_dummy_time_t (line 512) | typedef struct mz_dummy_time_t_tag
type mz_bool (line 639) | typedef mz_bool (*tdefl_put_buf_func_ptr)(const void *pBuf, int len, voi...
type tdefl_status (line 682) | typedef enum {
type tdefl_flush (line 690) | typedef enum {
type tdefl_compressor (line 698) | typedef struct
type tinfl_decompressor_tag (line 799) | struct tinfl_decompressor_tag
type tinfl_decompressor (line 800) | typedef struct tinfl_decompressor_tag tinfl_decompressor;
type tinfl_status (line 814) | typedef enum {
type tinfl_huff_table (line 871) | typedef struct
type mz_uint64 (line 884) | typedef mz_uint64 tinfl_bit_buf_t;
type mz_uint32 (line 887) | typedef mz_uint32 tinfl_bit_buf_t;
type tinfl_decompressor_tag (line 891) | struct tinfl_decompressor_tag
type mz_zip_archive_file_stat (line 923) | typedef struct
type mz_bool (line 981) | typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque);
type mz_zip_internal_state_tag (line 983) | struct mz_zip_internal_state_tag
type mz_zip_internal_state (line 984) | typedef struct mz_zip_internal_state_tag mz_zip_internal_state;
type mz_zip_mode (line 986) | typedef enum {
type mz_zip_flags (line 993) | typedef enum {
type mz_zip_type (line 1005) | typedef enum {
type mz_zip_error (line 1016) | typedef enum {
type mz_zip_archive (line 1052) | typedef struct
type mz_zip_reader_extract_iter_state (line 1079) | typedef struct
Condensed preview — 389 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,416K chars).
[
{
"path": ".azurepipelines/build-rn-code-push-1es.yml",
"chars": 3348,
"preview": "trigger:\n- master\n\npr:\n- master\n\nresources:\n repositories:\n - repository: 1ESPipelineTemplates\n type: git\n name:"
},
{
"path": ".azurepipelines/test-rn-code-push.yml",
"chars": 2425,
"preview": "trigger:\n- master\n\npr:\n- master\n\nvariables:\n- name: api-level\n value: '27' \n\npool:\n vmImage: 'macOS-12'\n\nstages:\n- sta"
},
{
"path": ".config/CredScanSuppressions.json",
"chars": 388,
"preview": "{\n \"tool\": \"Credential Scanner\",\n \"suppressions\": [ \n {\n \"file\": \"/Examples/CodePushDemoApp/andro"
},
{
"path": ".github/CODEOWNERS",
"chars": 33,
"preview": "* @microsoft/appcenter-fte\n"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 1046,
"preview": "Thanks so much for filing an issue or feature request! Please fill out the following (wherever relevant):\r\n\r\n### Steps t"
},
{
"path": ".github/policies/resourceManagement.yml",
"chars": 1737,
"preview": "id: \r\nname: GitOps.PullRequestIssueManagement\r\ndescription: GitOps.PullRequestIssueManagement primitive\r\nowner: \r\nresour"
},
{
"path": ".gitignore",
"chars": 2837,
"preview": "# gitignore contributors: remember to update .npmignore\n\n# OSX\n#\n.DS_Store\n\n# Xcode\n#\n# gitignore contributors: remember"
},
{
"path": ".npmignore",
"chars": 1032,
"preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
},
{
"path": ".vscode/launch.json",
"chars": 1209,
"preview": "{\n \"version\": \"0.2.0\",\n \"configurations\": [\n {\n \"name\": \"Tests-android\",\n \"type\": \"no"
},
{
"path": ".vscode/settings.json",
"chars": 56,
"preview": "{\n \"typescript.tsdk\": \"node_modules/typescript/lib\"\n}"
},
{
"path": ".vscode/tasks.json",
"chars": 1266,
"preview": "{\n \"version\": \"2.0.0\",\n \"tasks\": [\n {\n \"type\": \"shell\",\n \"label\": \"Build\",\n "
},
{
"path": ".watchmanconfig",
"chars": 2,
"preview": "{}"
},
{
"path": "AlertAdapter.js",
"chars": 703,
"preview": "import React, { Platform } from \"react-native\";\nlet { Alert } = React;\n\nif (Platform.OS === \"android\") {\n const { Nativ"
},
{
"path": "CONTRIBUTING.md",
"chars": 4152,
"preview": "# Contributing\n\n## Using the plugin\n\n### Environment setup\n\n`node.js` and `npm` are needed for using this project. `npm`"
},
{
"path": "CodePush.js",
"chars": 26056,
"preview": "import { AcquisitionManager as Sdk } from \"code-push/script/acquisition-sdk\";\nimport { Alert } from \"./AlertAdapter\";\nim"
},
{
"path": "CodePush.podspec",
"chars": 1090,
"preview": "require 'json'\n\npackage = JSON.parse(File.read(File.join(__dir__, 'package.json')))\n\nPod::Spec.new do |s|\n s.name "
},
{
"path": "Examples/CodePushDemoApp/.buckconfig",
"chars": 114,
"preview": "\n[android]\n target = Google Inc.:Google APIs:23\n\n[maven_repositories]\n central = https://repo1.maven.org/maven2\n"
},
{
"path": "Examples/CodePushDemoApp/.editorconfig",
"chars": 43,
"preview": "# Windows files\n[*.bat]\nend_of_line = crlf\n"
},
{
"path": "Examples/CodePushDemoApp/.eslintrc.js",
"chars": 74,
"preview": "module.exports = {\n root: true,\n extends: '@react-native-community',\n};\n"
},
{
"path": "Examples/CodePushDemoApp/.flowconfig",
"chars": 1410,
"preview": "[ignore]\n; We fork some components by platform\n.*/*[.]android.js\n\n; Ignore \"BUCK\" generated dirs\n<PROJECT_ROOT>/\\.buckd/"
},
{
"path": "Examples/CodePushDemoApp/.gitattributes",
"chars": 127,
"preview": "# Windows files should use crlf line endings\n# https://help.github.com/articles/dealing-with-line-endings/\n*.bat text eo"
},
{
"path": "Examples/CodePushDemoApp/.gitignore",
"chars": 821,
"preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
},
{
"path": "Examples/CodePushDemoApp/.prettierrc.js",
"chars": 144,
"preview": "module.exports = {\n bracketSpacing: false,\n jsxBracketSameLine: true,\n singleQuote: true,\n trailingComma: 'all',\n a"
},
{
"path": "Examples/CodePushDemoApp/.watchmanconfig",
"chars": 2,
"preview": "{}"
},
{
"path": "Examples/CodePushDemoApp/App.js",
"chars": 5073,
"preview": "import React, { Component } from 'react';\nimport {\n AppRegistry,\n Dimensions,\n Image,\n StyleSheet,\n Text,\n Touchab"
},
{
"path": "Examples/CodePushDemoApp/__tests__/App-test.js",
"chars": 266,
"preview": "/**\n * @format\n */\n\nimport 'react-native';\nimport React from 'react';\nimport App from '../App';\n\n// Note: test renderer "
},
{
"path": "Examples/CodePushDemoApp/android/app/BUCK",
"chars": 1324,
"preview": "# To learn about Buck see [Docs](https://buckbuild.com/).\n# To run your application with Buck:\n# - install Buck\n# - `npm"
},
{
"path": "Examples/CodePushDemoApp/android/app/build.gradle",
"chars": 9056,
"preview": "apply plugin: \"com.android.application\"\n\nimport com.android.build.OutputFile\n\n/**\n * The react.gradle file registers a t"
},
{
"path": "Examples/CodePushDemoApp/android/app/build_defs.bzl",
"chars": 602,
"preview": "\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n\ndef create_aar_targets(aarfiles):\n for aarfile in aarfiles:\n "
},
{
"path": "Examples/CodePushDemoApp/android/app/proguard-rules.pro",
"chars": 435,
"preview": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in /u"
},
{
"path": "Examples/CodePushDemoApp/android/app/src/main/AndroidManifest.xml",
"chars": 939,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.codepushdemoapp\">\n\n <uses-permiss"
},
{
"path": "Examples/CodePushDemoApp/android/app/src/main/java/com/codepushdemoapp/MainActivity.java",
"chars": 357,
"preview": "package com.codepushdemoapp;\n\nimport com.facebook.react.ReactActivity;\n\npublic class MainActivity extends ReactActivity "
},
{
"path": "Examples/CodePushDemoApp/android/app/src/main/java/com/codepushdemoapp/MainApplication.java",
"chars": 2767,
"preview": "package com.codepushdemoapp;\n\nimport android.app.Application;\nimport com.microsoft.codepush.react.CodePush;\nimport andro"
},
{
"path": "Examples/CodePushDemoApp/android/app/src/main/res/values/strings.xml",
"chars": 165,
"preview": "<resources>\n\t<string moduleConfig=\"true\" name=\"CodePushDeploymentKey\">deployment-key-here</string>\n <string name=\"app"
},
{
"path": "Examples/CodePushDemoApp/android/app/src/main/res/values/styles.xml",
"chars": 195,
"preview": "<resources>\n\n <!-- Base application theme. -->\n <style name=\"AppTheme\" parent=\"Theme.AppCompat.DayNight.NoActionBa"
},
{
"path": "Examples/CodePushDemoApp/android/build.gradle",
"chars": 1048,
"preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n e"
},
{
"path": "Examples/CodePushDemoApp/android/gradle/wrapper/gradle-wrapper.properties",
"chars": 200,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "Examples/CodePushDemoApp/android/gradle.properties",
"chars": 1277,
"preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
},
{
"path": "Examples/CodePushDemoApp/android/gradlew",
"chars": 5766,
"preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
},
{
"path": "Examples/CodePushDemoApp/android/gradlew.bat",
"chars": 2763,
"preview": "@rem\r\n@rem Copyright 2015 the original author or authors.\r\n@rem\r\n@rem Licensed under the Apache License, Version 2.0 (th"
},
{
"path": "Examples/CodePushDemoApp/android/settings.gradle",
"chars": 361,
"preview": "rootProject.name = 'CodePushDemoApp'\napply from: file(\"../node_modules/@react-native-community/cli-platform-android/nati"
},
{
"path": "Examples/CodePushDemoApp/app.json",
"chars": 67,
"preview": "{\n \"name\": \"CodePushDemoApp\",\n \"displayName\": \"CodePushDemoApp\"\n}"
},
{
"path": "Examples/CodePushDemoApp/babel.config.js",
"chars": 77,
"preview": "module.exports = {\n presets: ['module:metro-react-native-babel-preset'],\n};\n"
},
{
"path": "Examples/CodePushDemoApp/index.js",
"chars": 131,
"preview": "import { AppRegistry } from 'react-native';\nimport App from './App';\n\nAppRegistry.registerComponent('CodePushDemoApp', ("
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp/AppDelegate.h",
"chars": 196,
"preview": "#import <React/RCTBridgeDelegate.h>\n#import <UIKit/UIKit.h>\n\n@interface AppDelegate : UIResponder <UIApplicationDelegate"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp/AppDelegate.m",
"chars": 2300,
"preview": "#import \"AppDelegate.h\"\n#import <CodePush/CodePush.h>\n\n#import <React/RCTBridge.h>\n#import <React/RCTBundleURLProvider.h"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp/Images.xcassets/AppIcon.appiconset/Contents.json",
"chars": 585,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"size\" : \"29x29\",\n \"scale\" : \"2x\"\n },\n {\n \"idiom\""
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp/Images.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"version\" : 1,\n \"author\" : \"xcode\"\n }\n}\n"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp/Info.plist",
"chars": 1627,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp/LaunchScreen.storyboard",
"chars": 4239,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp/main.m",
"chars": 200,
"preview": "#import <UIKit/UIKit.h>\n\n#import \"AppDelegate.h\"\n\nint main(int argc, char * argv[]) {\n @autoreleasepool {\n return UI"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp.xcodeproj/project.pbxproj",
"chars": 29347,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp.xcodeproj/xcshareddata/xcschemes/CodePushDemoApp.xcscheme",
"chars": 3368,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1210\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp.xcworkspace/contents.xcworkspacedata",
"chars": 233,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"group:CodePushDemoAp"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoAppTests/CodePushDemoAppTests.m",
"chars": 1799,
"preview": "#import <UIKit/UIKit.h>\n#import <XCTest/XCTest.h>\n\n#import <React/RCTLog.h>\n#import <React/RCTRootView.h>\n\n#define TIMEO"
},
{
"path": "Examples/CodePushDemoApp/ios/CodePushDemoAppTests/Info.plist",
"chars": 733,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Examples/CodePushDemoApp/ios/Podfile",
"chars": 809,
"preview": "require_relative '../node_modules/react-native/scripts/react_native_pods'\nrequire_relative '../node_modules/@react-nativ"
},
{
"path": "Examples/CodePushDemoApp/metro.config.js",
"chars": 299,
"preview": "/**\n * Metro configuration for React Native\n * https://github.com/facebook/react-native\n *\n * @format\n */\n\nmodule.export"
},
{
"path": "Examples/CodePushDemoApp/package.json",
"chars": 798,
"preview": "{\n \"name\": \"CodePushDemoApp\",\n \"version\": \"0.0.1\",\n \"private\": true,\n \"scripts\": {\n \"android\": \"react-native run-"
},
{
"path": "Examples/CodePushDemoAppCpp/.buckconfig",
"chars": 114,
"preview": "\n[android]\n target = Google Inc.:Google APIs:23\n\n[maven_repositories]\n central = https://repo1.maven.org/maven2\n"
},
{
"path": "Examples/CodePushDemoAppCpp/.eslintrc.js",
"chars": 74,
"preview": "module.exports = {\n root: true,\n extends: '@react-native-community',\n};\n"
},
{
"path": "Examples/CodePushDemoAppCpp/.flowconfig",
"chars": 1926,
"preview": "[ignore]\n; We fork some components by platform\n.*/*[.]android.js\n\n; Ignore \"BUCK\" generated dirs\n<PROJECT_ROOT>/\\.buckd/"
},
{
"path": "Examples/CodePushDemoAppCpp/.gitattributes",
"chars": 16,
"preview": "*.pbxproj -text\n"
},
{
"path": "Examples/CodePushDemoAppCpp/.gitignore",
"chars": 846,
"preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
},
{
"path": "Examples/CodePushDemoAppCpp/.prettierrc.js",
"chars": 120,
"preview": "module.exports = {\n bracketSpacing: false,\n jsxBracketSameLine: true,\n singleQuote: true,\n trailingComma: 'all',\n};\n"
},
{
"path": "Examples/CodePushDemoAppCpp/.watchmanconfig",
"chars": 3,
"preview": "{}\n"
},
{
"path": "Examples/CodePushDemoAppCpp/App.js",
"chars": 5262,
"preview": "import React, { Component } from 'react';\nimport {\n AppRegistry,\n Dimensions,\n Image,\n SafeAreaView,\n ScrollView,\n "
},
{
"path": "Examples/CodePushDemoAppCpp/app.json",
"chars": 74,
"preview": "{\n \"name\": \"CodePushDemoAppCpp\",\n \"displayName\": \"CodePushDemoAppCpp\"\n}\n"
},
{
"path": "Examples/CodePushDemoAppCpp/babel.config.js",
"chars": 77,
"preview": "module.exports = {\n presets: ['module:metro-react-native-babel-preset'],\n};\n"
},
{
"path": "Examples/CodePushDemoAppCpp/index.js",
"chars": 183,
"preview": "/**\n * @format\n */\n\nimport {AppRegistry} from 'react-native';\nimport App from './App';\nimport {name as appName} from './"
},
{
"path": "Examples/CodePushDemoAppCpp/metro.config.js",
"chars": 823,
"preview": "/**\n * Metro configuration for React Native\n * https://github.com/facebook/react-native\n *\n * @format\n */\nconst path = r"
},
{
"path": "Examples/CodePushDemoAppCpp/package.json",
"chars": 865,
"preview": "{\n \"name\": \"CodePushDemoAppCpp\",\n \"version\": \"0.0.1\",\n \"private\": true,\n \"scripts\": {\n \"start\": \"react-native sta"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/.gitignore",
"chars": 863,
"preview": "*AppPackages*\n*BundleArtifacts*\n\n#OS junk files\n[Tt]humbs.db\n*.DS_Store\n\n#Visual Studio files\n*.[Oo]bj\n*.user\n*.aps\n*.pc"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/.gitignore",
"chars": 8,
"preview": "/Bundle\n"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.cpp",
"chars": 5849,
"preview": "#include \"pch.h\"\n\n#include \"App.h\"\n\n#include \"AutolinkedNativeModules.g.h\"\n#include \"ReactPackageProvider.h\"\n#include \"w"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.h",
"chars": 817,
"preview": "#pragma once\n\n#include \"App.xaml.g.h\"\n#include \"winrt/Microsoft.ReactNative.h\"\n\nnamespace activation = winrt::Windows::A"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.idl",
"chars": 33,
"preview": "namespace CodePushDemoAppCpp\n{\n}\n"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/App.xaml",
"chars": 239,
"preview": "<Application\n x:Class=\"CodePushDemoAppCpp.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\""
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.cpp",
"chars": 646,
"preview": "// AutolinkedNativeModules.g.cpp contents generated by \"react-native autolink-windows\"\n// clang-format off\n#include \"pch"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.h",
"chars": 319,
"preview": "// AutolinkedNativeModules.g.h contents generated by \"react-native autolink-windows\"\n\n#pragma once\n\nnamespace winrt::Mic"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/AutolinkedNativeModules.g.targets",
"chars": 612,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <!-- Auto"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/CodePushDemoAppCpp.vcxproj",
"chars": 11201,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"16.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/CodePushDemoAppCpp.vcxproj.filters",
"chars": 1914,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.cpp",
"chars": 420,
"preview": "#include \"pch.h\"\n#include \"MainPage.h\"\n#if __has_include(\"MainPage.g.cpp\")\n#include \"MainPage.g.cpp\"\n#endif\n\n#include \""
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.h",
"chars": 358,
"preview": "#pragma once\n#include \"MainPage.g.h\"\n#include <winrt/Microsoft.ReactNative.h>\n\n\nnamespace winrt::CodePushDemoAppCpp::im"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.idl",
"chars": 147,
"preview": "namespace CodePushDemoAppCpp\n{\n [default_interface]\n runtimeclass MainPage : Windows.UI.Xaml.Controls.Page\n {\n "
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/MainPage.xaml",
"chars": 704,
"preview": "<Page\n x:Class=\"CodePushDemoAppCpp.MainPage\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n "
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/Package.appxmanifest",
"chars": 1600,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<Package\n xmlns=\"http://schemas.microsoft.com/appx/manifest/foundation/windows"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/PropertySheet.props",
"chars": 604,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/ReactPackageProvider.cpp",
"chars": 381,
"preview": "#include \"pch.h\"\n#include \"ReactPackageProvider.h\"\n#include \"NativeModules.h\"\n\n\nusing namespace winrt::Microsoft::ReactN"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/ReactPackageProvider.h",
"chars": 457,
"preview": "#pragma once\n\n#include \"winrt/Microsoft.ReactNative.h\"\n\nnamespace winrt::CodePushDemoAppCpp::implementation\n{\n struct"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/packages.config",
"chars": 243,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Microsoft.Windows.CppWinRT\" version=\"2.0.200615.7\" tar"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/pch.cpp",
"chars": 18,
"preview": "#include \"pch.h\"\n"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp/pch.h",
"chars": 869,
"preview": "#pragma once\n\n#define NOMINMAX\n\n#include <hstring.h>\n#include <restrictederrorinfo.h>\n#include <unknwn.h>\n#include <win"
},
{
"path": "Examples/CodePushDemoAppCpp/windows/CodePushDemoAppCpp.sln",
"chars": 15204,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.2921"
},
{
"path": "Examples/create-app.js",
"chars": 15615,
"preview": "/*\nThe script serves to generate CodePushified React Native app to reproduce issues or for testing purposes.\n\nNOTE: Use "
},
{
"path": "Examples/nexpect.js",
"chars": 11169,
"preview": "/*\n * nexpect.js: Top-level include for the `nexpect` module.\n *\n * (C) 2011, Elijah Insua, Marak Squires, Charlie Robbi"
},
{
"path": "LICENSE.md",
"chars": 1139,
"preview": "Microsoft CodePush Plugin for React Native\n\nCopyright (c) Microsoft Corporation\n\nAll rights reserved. \n\nMIT License\n\nPer"
},
{
"path": "README.md",
"chars": 37567,
"preview": "# Archiving this repository\n\nVisual Studio App Center was retired on March 31, 2025, except for its Analytics and Diagno"
},
{
"path": "Recipes/UpdateButton.ios.js",
"chars": 1226,
"preview": "'use strict';\n\nvar pkg = require('./package');\nvar React = require('react-native');\nvar {\n AppRegistry,\n StyleSheet,\n "
},
{
"path": "Recipes/UpdateOnStart.ios.js",
"chars": 886,
"preview": "'use strict';\n\nvar pkg = require('./package');\nvar React = require('react-native');\nvar {\n AppRegistry,\n StyleSheet,\n "
},
{
"path": "SECURITY.md",
"chars": 2765,
"preview": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.5 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products an"
},
{
"path": "android/app/build.gradle",
"chars": 1084,
"preview": "apply plugin: \"com.android.library\"\n\ndef DEFAULT_COMPILE_SDK_VERSION = 26\ndef DEFAULT_BUILD_TOOLS_VERSION = \"26.0.3\"\ndef"
},
{
"path": "android/app/proguard-rules.pro",
"chars": 904,
"preview": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in /u"
},
{
"path": "android/app/src/debug/AndroidManifest.xml",
"chars": 275,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n <uses-permission android:name=\"android.permis"
},
{
"path": "android/app/src/main/AndroidManifest.xml",
"chars": 151,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n <uses-permission android:name=\"android.permis"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePush.java",
"chars": 17103,
"preview": "package com.microsoft.codepush.react;\n\nimport android.content.Context;\nimport android.content.pm.PackageInfo;\nimport and"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java",
"chars": 1117,
"preview": "package com.microsoft.codepush.react;\n\nimport android.content.Context;\n\npublic class CodePushBuilder {\n private Strin"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushConstants.java",
"chars": 2327,
"preview": "package com.microsoft.codepush.react;\n\npublic class CodePushConstants {\n public static final String ASSETS_BUNDLE_PRE"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushDialog.java",
"chars": 3686,
"preview": "package com.microsoft.codepush.react;\n\nimport android.app.Activity;\nimport android.app.AlertDialog;\nimport android.conte"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushInstallMode.java",
"chars": 325,
"preview": "package com.microsoft.codepush.react;\n\npublic enum CodePushInstallMode {\n IMMEDIATE(0),\n ON_NEXT_RESTART(1),\n O"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidPublicKeyException.java",
"chars": 319,
"preview": "package com.microsoft.codepush.react;\n\nclass CodePushInvalidPublicKeyException extends RuntimeException {\n\n public Co"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidUpdateException.java",
"chars": 202,
"preview": "package com.microsoft.codepush.react;\n\npublic class CodePushInvalidUpdateException extends RuntimeException {\n public"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushMalformedDataException.java",
"chars": 488,
"preview": "package com.microsoft.codepush.react;\n\nimport java.net.MalformedURLException;\n\npublic class CodePushMalformedDataExcepti"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushNativeModule.java",
"chars": 32574,
"preview": "package com.microsoft.codepush.react;\n\nimport android.app.Activity;\nimport android.content.SharedPreferences;\nimport and"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushNotInitializedException.java",
"chars": 326,
"preview": "package com.microsoft.codepush.react;\n\npublic final class CodePushNotInitializedException extends RuntimeException {\n\n "
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushTelemetryManager.java",
"chars": 8389,
"preview": "package com.microsoft.codepush.react;\n\nimport android.content.Context;\nimport android.content.SharedPreferences;\n\nimport"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushUnknownException.java",
"chars": 292,
"preview": "package com.microsoft.codepush.react;\n\nclass CodePushUnknownException extends RuntimeException {\n\n public CodePushUnk"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateManager.java",
"chars": 17089,
"preview": "package com.microsoft.codepush.react;\n\nimport android.os.Build;\n\nimport org.json.JSONObject;\n\nimport java.io.BufferedInp"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateState.java",
"chars": 283,
"preview": "package com.microsoft.codepush.react;\n\npublic enum CodePushUpdateState {\n RUNNING(0),\n PENDING(1),\n LATEST(2);\n"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java",
"chars": 12269,
"preview": "package com.microsoft.codepush.react;\n\nimport android.content.Context;\nimport android.util.Base64;\n\nimport com.nimbusds."
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/CodePushUtils.java",
"chars": 9026,
"preview": "package com.microsoft.codepush.react;\n\nimport android.util.Log;\n\nimport com.facebook.react.bridge.Arguments;\nimport com."
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/DownloadProgress.java",
"chars": 895,
"preview": "package com.microsoft.codepush.react;\n\nimport com.facebook.react.bridge.WritableMap;\nimport com.facebook.react.bridge.Wr"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/DownloadProgressCallback.java",
"chars": 128,
"preview": "package com.microsoft.codepush.react;\n\ninterface DownloadProgressCallback {\n void call(DownloadProgress downloadProgr"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/FileUtils.java",
"chars": 7691,
"preview": "package com.microsoft.codepush.react;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedReader;\nimport java.io"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/ReactInstanceHolder.java",
"chars": 483,
"preview": "package com.microsoft.codepush.react;\n\nimport com.facebook.react.ReactInstanceManager;\n\n/**\n * Provides access to a {@li"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/SettingsManager.java",
"chars": 6961,
"preview": "package com.microsoft.codepush.react;\n\nimport android.content.Context;\nimport android.content.SharedPreferences;\n\nimport"
},
{
"path": "android/app/src/main/java/com/microsoft/codepush/react/TLSSocketFactory.java",
"chars": 2399,
"preview": "package com.microsoft.codepush.react;\n\nimport java.io.IOException;\nimport java.net.InetAddress;\nimport java.net.Socket;\n"
},
{
"path": "android/build.gradle",
"chars": 553,
"preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n r"
},
{
"path": "android/codepush.gradle",
"chars": 7531,
"preview": "// Adapted from https://raw.githubusercontent.com/facebook/react-native/d16ff3bd8b92fa84a9007bf5ebedd8153e4c089d/react.g"
},
{
"path": "android/gradle/wrapper/gradle-wrapper.properties",
"chars": 200,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dist"
},
{
"path": "android/gradle.properties",
"chars": 887,
"preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
},
{
"path": "android/gradlew",
"chars": 5080,
"preview": "#!/usr/bin/env bash\n\n##############################################################################\n##\n## Gradle start "
},
{
"path": "android/gradlew.bat",
"chars": 2404,
"preview": "@if \"%DEBUG%\" == \"\" @echo off\r\n@rem ##########################################################################\r\n@rem\r\n@r"
},
{
"path": "android/settings.gradle",
"chars": 14,
"preview": "include ':app'"
},
{
"path": "code-push-plugin-testing-framework/package.json",
"chars": 1057,
"preview": "{\n \"name\": \"code-push-plugin-testing-framework\",\n \"version\": \"0.0.1\",\n \"description\": \"Plugin Testing Framework for C"
},
{
"path": "code-push-plugin-testing-framework/script/index.js",
"chars": 759,
"preview": "\"use strict\";\nvar Platform = require(\"./platform\");\nexports.Platform = Platform;\nvar PluginTestingFramework = require(\"."
},
{
"path": "code-push-plugin-testing-framework/script/platform.js",
"chars": 17959,
"preview": "\"use strict\";\nvar Q = require(\"q\");\nvar testUtil_1 = require(\"./testUtil\");\n////////////////////////////////////////////"
},
{
"path": "code-push-plugin-testing-framework/script/projectManager.js",
"chars": 3894,
"preview": "\"use strict\";\nvar TestConfig = require(\"./testConfig\");\n/**\n * In charge of project related operations.\n */\nvar ProjectM"
},
{
"path": "code-push-plugin-testing-framework/script/serverUtil.js",
"chars": 9601,
"preview": "\"use strict\";\n// IMPORTS\nvar assert = require(\"assert\");\nvar bodyParser = require(\"body-parser\");\nvar express = require("
},
{
"path": "code-push-plugin-testing-framework/script/test.js",
"chars": 4982,
"preview": "\"use strict\";\nvar Q = require(\"q\");\nvar ServerUtil = require(\"./serverUtil\");\nvar testBuilder_1 = require(\"./testBuilder"
},
{
"path": "code-push-plugin-testing-framework/script/testBuilder.js",
"chars": 3613,
"preview": "\"use strict\";\nvar ServerUtil = require(\"./serverUtil\");\nvar TestConfig = require(\"./testConfig\");\n//////////////////////"
},
{
"path": "code-push-plugin-testing-framework/script/testConfig.js",
"chars": 1738,
"preview": "\"use strict\";\n// IMPORTS //\nvar os = require(\"os\");\nvar path = require(\"path\");\nvar TestUtil_1 = require(\"./testUtil\");\n"
},
{
"path": "code-push-plugin-testing-framework/script/testUtil.js",
"chars": 6169,
"preview": "\"use strict\";\nvar archiver = require(\"archiver\");\nvar child_process = require(\"child_process\");\nvar fs = require(\"fs\");\n"
},
{
"path": "code-push-plugin-testing-framework/typings/code-push-plugin-testing-framework.d.ts",
"chars": 18556,
"preview": "declare module 'code-push-plugin-testing-framework/script/platform' {\n\timport Q = require(\"q\");\n\t/**\n\t * Defines a platf"
},
{
"path": "docs/api-android.md",
"chars": 6795,
"preview": "### Java API Reference (Android)\n\n### API for React Native 0.60 version and above\n\nSince `autolinking` uses `react-nativ"
},
{
"path": "docs/api-ios.md",
"chars": 3294,
"preview": "### Objective-C API Reference (iOS)\n\nThe Objective-C API is made available by importing the `CodePush.h` header into you"
},
{
"path": "docs/api-js.md",
"chars": 44767,
"preview": "## API Reference\n\nThe CodePush plugin is made up of two components:\n\n1. A JavaScript module, which can be imported/requi"
},
{
"path": "docs/multi-deployment-testing-android.md",
"chars": 7682,
"preview": "### Android\n\n> NOTE\n>\n> Complete demo configured with \"multi-deployment testing\" feature is [here](https://github.com/mi"
},
{
"path": "docs/multi-deployment-testing-ios.md",
"chars": 4063,
"preview": "### iOS\n\n> NOTE\n>\n> Complete demos configured with \"multi-deployment testing\" feature are [here]:\n> * **without using c"
},
{
"path": "docs/setup-android.md",
"chars": 20184,
"preview": "## Android Setup\n\n* [Plugin Installation and Configuration for React Native 0.60 version and above](#plugin-installation"
},
{
"path": "docs/setup-ios.md",
"chars": 15214,
"preview": "## iOS Setup\n\nOnce you've acquired the CodePush plugin, you need to integrate it into the Xcode project of your React Na"
},
{
"path": "docs/setup-windows.md",
"chars": 4799,
"preview": "## Windows Setup\n\nOnce you've acquired the CodePush plugin, you need to integrate it into the Visual Studio project of y"
},
{
"path": "ios/CodePush/Base64/Base64/MF_Base64Additions.h",
"chars": 1165,
"preview": "//\n// MF_Base64Additions.h\n// Base64 -- RFC 4648 compatible implementation\n// see http://www.ietf.org/rfc/rfc4648.txt"
},
{
"path": "ios/CodePush/Base64/Base64/MF_Base64Additions.m",
"chars": 10938,
"preview": "//\n// MF_Base64Additions.m\n// Base64 -- RFC 4648 compatible implementation\n// see http://www.ietf.org/rfc/rfc4648.txt"
},
{
"path": "ios/CodePush/Base64/README.md",
"chars": 1204,
"preview": "[](https://github.com/ekscrypto/Base64)\n\nBase64 Ad"
},
{
"path": "ios/CodePush/CodePush.h",
"chars": 7963,
"preview": "#if __has_include(<React/RCTEventEmitter.h>)\n#import <React/RCTEventEmitter.h>\n#elif __has_include(\"RCTEventEmitter.h\")\n"
},
{
"path": "ios/CodePush/CodePush.m",
"chars": 41989,
"preview": "#if __has_include(<React/RCTAssert.h>)\n#import <React/RCTAssert.h>\n#import <React/RCTBridgeModule.h>\n#import <React/RCTC"
},
{
"path": "ios/CodePush/CodePushConfig.m",
"chars": 3505,
"preview": "#import \"CodePush.h\"\n#import <UIKit/UIKit.h>\n\n@implementation CodePushConfig {\n NSMutableDictionary *_configDictionar"
},
{
"path": "ios/CodePush/CodePushDownloadHandler.m",
"chars": 4831,
"preview": "#import \"CodePush.h\"\n\n@implementation CodePushDownloadHandler {\n // Header chars used to determine if the file is a z"
},
{
"path": "ios/CodePush/CodePushErrorUtils.m",
"chars": 563,
"preview": "#import \"CodePush.h\"\n\n@implementation CodePushErrorUtils\n\nstatic NSString *const CodePushErrorDomain = @\"CodePushError\";"
},
{
"path": "ios/CodePush/CodePushPackage.m",
"chars": 37731,
"preview": "#import \"CodePush.h\"\n#if __has_include(<SSZipArchive/SSZipArchive.h>)\n#import <SSZipArchive/SSZipArchive.h>\n#else\n#impor"
},
{
"path": "ios/CodePush/CodePushTelemetryManager.m",
"chars": 7056,
"preview": "#import \"CodePush.h\"\n\nstatic NSString *const AppVersionKey = @\"appVersion\";\nstatic NSString *const DeploymentFailed = @\""
},
{
"path": "ios/CodePush/CodePushUpdateUtils.m",
"chars": 15654,
"preview": "#import \"CodePush.h\"\n#include <CommonCrypto/CommonDigest.h>\n#import \"JWT.h\"\n\n@implementation CodePushUpdateUtils\n\nNSStri"
},
{
"path": "ios/CodePush/CodePushUtils.m",
"chars": 276,
"preview": "#import \"CodePush.h\"\n\nvoid CPLog(NSString *formatString, ...) {\n va_list args;\n va_start(args, formatString);\n "
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithm.h",
"chars": 2588,
"preview": "//\n// JWTAlgorithm.h\n// JWT\n//\n// Created by Klaas Pieter Annema on 31-05-13.\n// Copyright (c) 2013 Karma. All right"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.h",
"chars": 323,
"preview": "//\n// JWTAlgorithmFactory.h\n// JWT\n//\n// Created by Lobanov Dmitry on 07.10.15.\n// Copyright © 2015 Karma. All right"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.m",
"chars": 1354,
"preview": "//\n// JWTAlgorithmFactory.m\n// JWT\n//\n// Created by Lobanov Dmitry on 07.10.15.\n// Copyright © 2015 Karma. All right"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.h",
"chars": 298,
"preview": "//\n// JWTAlgorithmNone.h\n// JWT\n//\n// Created by Lobanov Dmitry on 16.10.15.\n// Copyright © 2015 Karma. All rights r"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.m",
"chars": 1779,
"preview": "//\n// JWTAlgorithmNone.m\n// JWT\n//\n// Created by Lobanov Dmitry on 16.10.15.\n// Copyright © 2015 Karma. All rights r"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.h",
"chars": 566,
"preview": "//\n// JWTAlgorithmESBase.h\n// Pods\n//\n// Created by Lobanov Dmitry on 12.02.17.\n//\n//\n\n#import <Foundation/Foundation"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.m",
"chars": 957,
"preview": "//\n// JWTAlgorithmESBase.m\n// Pods\n//\n// Created by Lobanov Dmitry on 12.02.17.\n//\n//\n\n#import \"JWTAlgorithmESBase.h\""
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.h",
"chars": 674,
"preview": "//\n// JWTAlgorithmHSBase.h\n// JWT\n//\n// Created by Lobanov Dmitry on 13.03.16.\n// Copyright © 2016 Karma. All rights"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.m",
"chars": 6624,
"preview": "//\n// JWTAlgorithmHSBase.m\n// JWT\n//\n// Created by Lobanov Dmitry on 13.03.16.\n// Copyright © 2016 Karma. All rights"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.h",
"chars": 4109,
"preview": "//\n// JWTAlgorithmDataHolder.h\n// JWT\n//\n// Created by Lobanov Dmitry on 31.08.16.\n// Copyright © 2016 Karma. All ri"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.m",
"chars": 10928,
"preview": "//\n// JWTAlgorithmDataHolder.m\n// JWT\n//\n// Created by Lobanov Dmitry on 31.08.16.\n// Copyright © 2016 Karma. All ri"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.h",
"chars": 1364,
"preview": "//\n// JWTAlgorithmDataHolderChain.h\n// JWT\n//\n// Created by Lobanov Dmitry on 02.10.16.\n// Copyright © 2016 Karma. A"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.m",
"chars": 4670,
"preview": "//\n// JWTAlgorithmDataHolderChain.m\n// JWT\n//\n// Created by Lobanov Dmitry on 02.10.16.\n// Copyright © 2016 Karma. A"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.h",
"chars": 961,
"preview": "//\n// JWTAlgorithmRSBase.h\n// JWT\n//\n// Created by Lobanov Dmitry on 13.03.16.\n// Copyright © 2016 Karma. All rights"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.m",
"chars": 18004,
"preview": "//\n// JWTAlgorithmRSBase.m\n// JWT\n//\n// Created by Lobanov Dmitry on 13.03.16.\n// Copyright © 2016 Karma. All rights"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTRSAlgorithm.h",
"chars": 644,
"preview": "//\n// Created by Marcelo Schroeder on 12/03/2016.\n// Copyright (c) 2016 Karma. All rights reserved.\n//\n\n#import <Foundat"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.h",
"chars": 2043,
"preview": "//\n// JWTCryptoKey.h\n// JWT\n//\n// Created by Lobanov Dmitry on 04.02.17.\n// Copyright © 2017 JWTIO. All rights reser"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.m",
"chars": 8496,
"preview": "//\n// JWTCryptoKey.m\n// JWT\n//\n// Created by Lobanov Dmitry on 04.02.17.\n// Copyright © 2017 JWTIO. All rights reser"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.h",
"chars": 1038,
"preview": "//\n// JWTCryptoKeyExtractor.h\n// JWT\n//\n// Created by Lobanov Dmitry on 04.02.17.\n// Copyright © 2017 JWTIO. All rig"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.m",
"chars": 4805,
"preview": "//\n// JWTCryptoKeyExtractor.m\n// JWT\n//\n// Created by Lobanov Dmitry on 04.02.17.\n// Copyright © 2017 JWTIO. All rig"
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.h",
"chars": 1757,
"preview": "//\n// JWTCryptoSecurity.h\n// JWT\n//\n// Created by Lobanov Dmitry on 04.02.17.\n// Copyright © 2017 JWTIO. All rights "
},
{
"path": "ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.m",
"chars": 21837,
"preview": "//\n// JWTCryptoSecurity.m\n// JWT\n//\n// Created by Lobanov Dmitry on 04.02.17.\n// Copyright © 2017 JWTIO. All rights "
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaim.h",
"chars": 426,
"preview": "//\n// JWTClaim.h\n// JWT\n//\n// Created by Lobanov Dmitry on 13.02.16.\n// Copyright © 2016 Karma. All rights reserved."
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaim.m",
"chars": 4326,
"preview": "//\n// JWTClaim.m\n// JWT\n//\n// Created by Lobanov Dmitry on 13.02.16.\n// Copyright © 2016 Karma. All rights reserved."
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.h",
"chars": 752,
"preview": "//\n// JWTClaimsSet.h\n// JWT\n//\n// Created by Klaas Pieter Annema on 31-05-13.\n// Copyright (c) 2013 Karma. All right"
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.m",
"chars": 720,
"preview": "//\n// JWTClaimsSet.m\n// JWT\n//\n// Created by Klaas Pieter Annema on 31-05-13.\n// Copyright (c) 2013 Karma. All right"
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.h",
"chars": 432,
"preview": "//\n// JWTClaimsSetSerializer.h\n// JWT\n//\n// Created by Klaas Pieter Annema on 31-05-13.\n// Copyright (c) 2013 Karma."
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.m",
"chars": 2698,
"preview": "//\n// JWTClaimsSetSerializer.m\n// JWT\n//\n// Created by Klaas Pieter Annema on 31-05-13.\n// Copyright (c) 2013 Karma."
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.h",
"chars": 484,
"preview": "//\n// JWTClaimsSetVerifier.h\n// JWT\n//\n// Created by Lobanov Dmitry on 13.02.16.\n// Copyright © 2016 Karma. All righ"
},
{
"path": "ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.m",
"chars": 2232,
"preview": "//\n// JWTClaimsSetVerifier.m\n// JWT\n//\n// Created by Lobanov Dmitry on 13.02.16.\n// Copyright © 2016 Karma. All righ"
},
{
"path": "ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.h",
"chars": 2122,
"preview": "//\n// JWTCoding+ResultTypes.h\n// JWT\n//\n// Created by Lobanov Dmitry on 30.11.16.\n// Copyright © 2016 JWTIO. All rig"
},
{
"path": "ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.m",
"chars": 3186,
"preview": "//\n// JWTCoding+ResultTypes.m\n// JWT\n//\n// Created by Lobanov Dmitry on 30.11.16.\n// Copyright © 2016 JWTIO. All rig"
},
{
"path": "ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.h",
"chars": 7666,
"preview": "//\n// JWTCoding+VersionOne.h\n// JWT\n//\n// Created by Lobanov Dmitry on 27.11.16.\n// Copyright © 2016 JWTIO. All righ"
},
{
"path": "ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.m",
"chars": 12662,
"preview": "//\n// JWTCoding+VersionOne.m\n// JWT\n//\n// Created by Lobanov Dmitry on 27.11.16.\n// Copyright © 2016 JWTIO. All righ"
}
]
// ... and 189 more files (download for full content)
About this extraction
This page contains the full source code of the microsoft/react-native-code-push GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 389 files (2.2 MB), approximately 598.4k tokens, and a symbol index with 1315 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.