├── .secret
├── .keep
└── canary
│ └── .keep
├── ci
└── match
│ ├── match_version.txt
│ └── README.md
├── bin
├── gyb
├── pact
│ ├── resolve-directory
│ ├── stop-mock-server
│ ├── teardown-build-environment
│ ├── start-mock-server
│ ├── setup-build-environment
│ └── setup
├── make-environment
├── bump-build-version
├── trigger-deploys
├── setup-match
├── create-deployment
├── trigger-generate-release-note
├── is-deployed
├── embed_build_info
├── plist2csv.sh
├── remove-pact-tag.sh
└── pu.sh
├── Reporting
├── Sources
│ ├── Reporter
│ │ └── main.swift
│ └── Reporting
│ │ ├── ReportModel
│ │ ├── ReportAttachment.swift
│ │ ├── ReportContent.swift
│ │ ├── ReportSection.swift
│ │ ├── ReportPage.swift
│ │ ├── ReportList.swift
│ │ ├── Report.swift
│ │ └── ReportTable.swift
│ │ ├── Artefact
│ │ ├── Asset.swift
│ │ ├── Decoded.swift
│ │ ├── IntegrityCheck.swift
│ │ └── ArtefactReporter.swift
│ │ ├── Utilities
│ │ ├── Sequence.swift
│ │ ├── CustomError.swift
│ │ ├── String.swift
│ │ └── Bash.swift
│ │ ├── Commands
│ │ ├── run.swift
│ │ ├── ArchiveReportCommand.swift
│ │ └── IPAReportCommand.swift
│ │ └── Sonar.swift
├── Tests
│ └── ReportingTests
│ │ └── ReportingTests.swift
├── Package.resolved
├── README.md
└── Package.swift
├── Sonar
├── Assets.xcassets
│ ├── Contents.json
│ ├── NHSLogo.imageset
│ │ ├── nhs 1.png
│ │ ├── nhs 1@2x.png
│ │ ├── nhs 1@3x.png
│ │ └── Contents.json
│ ├── NHSLogoAlt.imageset
│ │ ├── NHS1.png
│ │ ├── NHS1@2x.png
│ │ └── Contents.json
│ ├── bluetooth.imageset
│ │ ├── Vector.png
│ │ ├── Vector@2x.png
│ │ ├── Vector@3x.png
│ │ └── Contents.json
│ ├── Onboarding_area.imageset
│ │ ├── Area@1x.png
│ │ ├── Area@2x.png
│ │ └── Contents.json
│ ├── Linking_ID.imageset
│ │ ├── Linking_Id_1x.png
│ │ ├── Linking_Id_2x.png
│ │ └── Contents.json
│ ├── Onboarding_protect.imageset
│ │ ├── Protect@1x.png
│ │ ├── Protect@2x.png
│ │ └── Contents.json
│ ├── Onboarding_bluetooth.imageset
│ │ ├── Bluetooth@1x.png
│ │ ├── Bluetooth@2x.png
│ │ └── Contents.json
│ ├── splash_logo.imageset
│ │ ├── Launch-Screen-Logo@1x.png
│ │ ├── Launch-Screen-Logo@2x.png
│ │ ├── Launch-Screen-Logo@3x.png
│ │ └── Contents.json
│ ├── Registration_status_failure.imageset
│ │ ├── Circle.pdf
│ │ └── Contents.json
│ ├── Info.imageset
│ │ └── Contents.json
│ ├── NHS_Logo.imageset
│ │ └── Contents.json
│ ├── News_Covid.imageset
│ │ └── Contents.json
│ ├── Arrow_Highlight.imageset
│ │ ├── Contents.json
│ │ └── Arrow-highlight.pdf
│ ├── Spinner.imageset
│ │ ├── Contents.json
│ │ └── Circle.pdf
│ ├── Test_Tubes.imageset
│ │ └── Contents.json
│ ├── Bell ringing.imageset
│ │ └── Contents.json
│ ├── Disclosure_Indicator.imageset
│ │ ├── Contents.json
│ │ └── Fill.pdf
│ ├── External_Link.imageset
│ │ └── Contents.json
│ ├── Registration_status_ok.imageset
│ │ ├── Contents.json
│ │ └── Circle.pdf
│ ├── Background_Curve.imageset
│ │ └── Contents.json
│ ├── Workplace_Guidance.imageset
│ │ └── Contents.json
│ ├── NHS-Logo-Template.imageset
│ │ └── Contents.json
│ ├── Notice badge.imageset
│ │ ├── Contents.json
│ │ └── Notice badge.pdf
│ ├── Error Grey.colorset
│ │ └── Contents.json
│ ├── Controls_RadioButton_Selected.imageset
│ │ ├── Contents.json
│ │ └── radio_button_checked_24px.pdf
│ └── Controls_RadioButton_Unselected.imageset
│ │ ├── Contents.json
│ │ └── radio_button_unchecked_24px.pdf
├── NHS Colors.xcassets
│ ├── Contents.json
│ ├── NHS Button.colorset
│ │ └── Contents.json
│ ├── NHS Dark Pink.colorset
│ │ └── Contents.json
│ ├── NHS Error.colorset
│ │ └── Contents.json
│ ├── NHS Green.colorset
│ │ └── Contents.json
│ ├── NHS Grey 1.colorset
│ │ └── Contents.json
│ ├── NHS Grey 2.colorset
│ │ └── Contents.json
│ ├── NHS Grey 3.colorset
│ │ └── Contents.json
│ ├── NHS Purple.colorset
│ │ └── Contents.json
│ ├── NHS Red.colorset
│ │ └── Contents.json
│ ├── NHS White.colorset
│ │ └── Contents.json
│ ├── NHS Yellow.colorset
│ │ └── Contents.json
│ ├── NHS Blue.colorset
│ │ └── Contents.json
│ ├── NHS Grey 4.colorset
│ │ └── Contents.json
│ ├── NHS Grey 5.colorset
│ │ └── Contents.json
│ ├── NHS Link.colorset
│ │ └── Contents.json
│ ├── NHS Pale Yellow.colorset
│ │ └── Contents.json
│ ├── NHS Text.colorset
│ │ └── Contents.json
│ ├── NHS Warm Yellow.colorset
│ │ └── Contents.json
│ ├── NHS Dark Blue.colorset
│ │ └── Contents.json
│ ├── NHS Highlight.colorset
│ │ └── Contents.json
│ ├── NHS Secondary Button.colorset
│ │ └── Contents.json
│ ├── NHS Secondary Text.colorset
│ │ └── Contents.json
│ └── NHS Error Background.colorset
│ │ └── Contents.json
├── Resources
│ ├── AppIcon.xcassets
│ │ ├── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── App-Store-Icon.png
│ │ │ ├── AppIcon20x20@2x.png
│ │ │ ├── AppIcon20x20@3x.png
│ │ │ ├── AppIcon29x29@2x.png
│ │ │ ├── AppIcon29x29@3x.png
│ │ │ ├── AppIcon40x40@2x.png
│ │ │ ├── AppIcon40x40@3x.png
│ │ │ ├── AppIcon60x60@2x.png
│ │ │ └── AppIcon60x60@3x.png
│ │ ├── AppIcon.beta.appiconset
│ │ │ ├── App-Store-Icon.png
│ │ │ ├── AppIcon20x20@2x.png
│ │ │ ├── AppIcon20x20@3x.png
│ │ │ ├── AppIcon29x29@2x.png
│ │ │ ├── AppIcon29x29@3x.png
│ │ │ ├── AppIcon40x40@2x.png
│ │ │ ├── AppIcon40x40@3x.png
│ │ │ ├── AppIcon60x60@2x.png
│ │ │ └── AppIcon60x60@3x.png
│ │ └── AppIcon.internal.appiconset
│ │ │ ├── App-Store-Icon.png
│ │ │ ├── AppIcon20x20@2x.png
│ │ │ ├── AppIcon20x20@3x.png
│ │ │ ├── AppIcon29x29@2x.png
│ │ │ ├── AppIcon29x29@3x.png
│ │ │ ├── AppIcon40x40@2x.png
│ │ │ ├── AppIcon40x40@3x.png
│ │ │ ├── AppIcon60x60@2x.png
│ │ │ └── AppIcon60x60@3x.png
│ └── Settings.bundle
│ │ ├── en.lproj
│ │ └── Root.strings
│ │ └── Root.plist
├── Environments
│ ├── Sonar.xcconfig.sample
│ ├── production.xcconfig
│ ├── beta.xcconfig
│ ├── internal.xcconfig
│ ├── environment.json
│ └── Environment.swift.erb
├── Sonar-Bridging-Header.h
├── Sonar.entitlements
├── Base.xcconfig
├── Appearance
│ └── Colors.swift
├── AppDelegate.swift
└── Info.plist
├── Frameworks
├── Firebase.framework
│ ├── Modules
│ │ └── module.modulemap
│ ├── Firebase
│ └── Info.plist
├── nanopb.framework
│ ├── nanopb
│ ├── Modules
│ │ └── module.modulemap
│ ├── Headers
│ │ ├── nanopb-umbrella.h
│ │ └── pb_common.h
│ └── Info.plist
├── Protobuf.framework
│ ├── Protobuf
│ ├── Modules
│ │ └── module.modulemap
│ ├── Info.plist
│ └── Headers
│ │ ├── Protobuf-umbrella.h
│ │ ├── GPBProtocolBuffers_RuntimeSupport.h
│ │ ├── GPBRootObject_PackagePrivate.h
│ │ ├── GPBUnknownField_PackagePrivate.h
│ │ ├── Empty.pbobjc.h
│ │ ├── GPBRootObject.h
│ │ └── SourceContext.pbobjc.h
├── FirebaseCore.framework
│ ├── FirebaseCore
│ ├── Modules
│ │ └── module.modulemap
│ ├── Headers
│ │ ├── FirebaseCore-umbrella.h
│ │ ├── FirebaseCore.h
│ │ ├── FIRLoggerLevel.h
│ │ └── FIRConfiguration.h
│ └── Info.plist
├── PromisesObjC.framework
│ ├── PromisesObjC
│ ├── Modules
│ │ └── module.modulemap
│ ├── Info.plist
│ └── Headers
│ │ ├── PromisesObjC-umbrella.h
│ │ ├── FBLPromises.h
│ │ ├── FBLPromise+Await.h
│ │ ├── FBLPromiseError.h
│ │ ├── FBLPromise+Do.h
│ │ ├── FBLPromise+Always.h
│ │ ├── FBLPromise+Timeout.h
│ │ ├── FBLPromise+Delay.h
│ │ ├── FBLPromise+Catch.h
│ │ ├── FBLPromise+Recover.h
│ │ ├── FBLPromise+Testing.h
│ │ ├── FBLPromise+Async.h
│ │ └── FBLPromise+Validate.h
├── GoogleUtilities.framework
│ ├── GoogleUtilities
│ ├── Modules
│ │ └── module.modulemap
│ ├── Headers
│ │ ├── GoogleUtilities-umbrella.h
│ │ ├── GULLoggerLevel.h
│ │ └── GULNSData+zlib.h
│ └── Info.plist
├── FirebaseInstanceID.framework
│ ├── FirebaseInstanceID
│ ├── Modules
│ │ └── module.modulemap
│ ├── Headers
│ │ ├── FirebaseInstanceID-umbrella.h
│ │ └── FirebaseInstanceID.h
│ └── Info.plist
├── FirebaseMessaging.framework
│ ├── FirebaseMessaging
│ ├── Modules
│ │ └── module.modulemap
│ ├── Headers
│ │ ├── FirebaseMessaging-umbrella.h
│ │ ├── FirebaseMessaging.h
│ │ └── FIRMessagingExtensionHelper.h
│ └── Info.plist
├── GoogleDataTransport.framework
│ ├── GoogleDataTransport
│ ├── Modules
│ │ └── module.modulemap
│ ├── Info.plist
│ └── Headers
│ │ ├── GoogleDataTransport-umbrella.h
│ │ ├── GoogleDataTransport.h
│ │ ├── GDTCORReachability.h
│ │ ├── GDTCOREventDataObject.h
│ │ ├── GDTCORTargets.h
│ │ ├── GDTCOREventTransformer.h
│ │ ├── GDTCORUploader.h
│ │ ├── GDTCORRegistrar.h
│ │ ├── GDTCORClock.h
│ │ └── GDTCORLifecycle.h
├── FirebaseInstallations.framework
│ ├── FirebaseInstallations
│ ├── Modules
│ │ └── module.modulemap
│ ├── Headers
│ │ ├── FirebaseInstallations-umbrella.h
│ │ ├── FIRInstallationsVersion.h
│ │ ├── FirebaseInstallations.h
│ │ ├── FIRInstallationsAuthTokenResult.h
│ │ └── FIRInstallationsErrors.h
│ └── Info.plist
└── FirebaseCoreDiagnostics.framework
│ ├── FirebaseCoreDiagnostics
│ ├── Modules
│ └── module.modulemap
│ ├── Headers
│ └── FirebaseCoreDiagnostics-umbrella.h
│ └── Info.plist
├── Example Notifications
└── 5_canary.apns
├── Sonar.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── swiftpm
│ │ └── Package.resolved
└── xcshareddata
│ └── IDETemplateMacros.plist
├── fastlane
├── Appfile
├── README.md
└── Fastfile
├── Configurations
├── Release.xcconfig
├── Debug.xcconfig
└── Project.xcconfig
├── .github
├── workflows
│ ├── clean-artifacts.yml
│ ├── remove-tag.yml
│ └── generate-release-note.yml
└── ISSUE_TEMPLATE
│ └── bug_report.md
└── LICENSE
/.secret/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.secret/canary/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ci/match/match_version.txt:
--------------------------------------------------------------------------------
1 | 2.144.0
--------------------------------------------------------------------------------
/bin/gyb:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2.7
2 | import gyb
3 | gyb.main()
4 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporter/main.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import Reporting
3 |
4 | Reporting.run()
5 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Frameworks/Firebase.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module Firebase {
2 | header "Firebase.h"
3 | export *
4 | }
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Example Notifications/5_canary.apns:
--------------------------------------------------------------------------------
1 | {
2 | "aps": {
3 | "content-available": 1
4 | },
5 |
6 | "canary": "true"
7 | }
8 |
--------------------------------------------------------------------------------
/Frameworks/nanopb.framework/nanopb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/nanopb.framework/nanopb
--------------------------------------------------------------------------------
/Frameworks/Firebase.framework/Firebase:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/Firebase.framework/Firebase
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Protobuf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/Protobuf.framework/Protobuf
--------------------------------------------------------------------------------
/bin/pact/resolve-directory:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | resolve-directory()
4 | {
5 | cd "$1" 2> /dev/null || return $?
6 | echo "`pwd -P`"
7 | }
8 |
--------------------------------------------------------------------------------
/Frameworks/nanopb.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module nanopb {
2 | umbrella header "nanopb-umbrella.h"
3 | export *
4 | module * { export * }
5 | }
6 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCore.framework/FirebaseCore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/FirebaseCore.framework/FirebaseCore
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/PromisesObjC:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/PromisesObjC.framework/PromisesObjC
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module Protobuf {
2 | umbrella header "Protobuf-umbrella.h"
3 | export *
4 | module * { export * }
5 | }
6 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHSLogo.imageset/nhs 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/NHSLogo.imageset/nhs 1.png
--------------------------------------------------------------------------------
/Sonar/Environments/Sonar.xcconfig.sample:
--------------------------------------------------------------------------------
1 | #include "Sonar/Environments/internal.xcconfig"
2 |
3 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = BLE_LOGLEVEL_NODEBUG $(inherited)
4 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/ReportModel/ReportAttachment.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct ReportAttachment {
4 | var name: String
5 | var source: URL
6 | }
7 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHSLogoAlt.imageset/NHS1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/NHSLogoAlt.imageset/NHS1.png
--------------------------------------------------------------------------------
/Sonar/Sonar-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | #import "Firebase.h"
6 |
--------------------------------------------------------------------------------
/Frameworks/GoogleUtilities.framework/GoogleUtilities:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/GoogleUtilities.framework/GoogleUtilities
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHSLogo.imageset/nhs 1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/NHSLogo.imageset/nhs 1@2x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHSLogo.imageset/nhs 1@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/NHSLogo.imageset/nhs 1@3x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHSLogoAlt.imageset/NHS1@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/NHSLogoAlt.imageset/NHS1@2x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/bluetooth.imageset/Vector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/bluetooth.imageset/Vector.png
--------------------------------------------------------------------------------
/Sonar/Resources/Settings.bundle/en.lproj/Root.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/Settings.bundle/en.lproj/Root.strings
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module PromisesObjC {
2 | umbrella header "PromisesObjC-umbrella.h"
3 | export *
4 | module * { export * }
5 | }
6 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/bluetooth.imageset/Vector@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/bluetooth.imageset/Vector@2x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/bluetooth.imageset/Vector@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/bluetooth.imageset/Vector@3x.png
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID
--------------------------------------------------------------------------------
/Frameworks/FirebaseMessaging.framework/FirebaseMessaging:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/FirebaseMessaging.framework/FirebaseMessaging
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_area.imageset/Area@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Onboarding_area.imageset/Area@1x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_area.imageset/Area@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Onboarding_area.imageset/Area@2x.png
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/GoogleDataTransport:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/GoogleDataTransport.framework/GoogleDataTransport
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Linking_ID.imageset/Linking_Id_1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Linking_ID.imageset/Linking_Id_1x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Linking_ID.imageset/Linking_Id_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Linking_ID.imageset/Linking_Id_2x.png
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/FirebaseInstallations:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/FirebaseInstallations.framework/FirebaseInstallations
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_protect.imageset/Protect@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Onboarding_protect.imageset/Protect@1x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_protect.imageset/Protect@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Onboarding_protect.imageset/Protect@2x.png
--------------------------------------------------------------------------------
/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_bluetooth.imageset/Bluetooth@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Onboarding_bluetooth.imageset/Bluetooth@1x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_bluetooth.imageset/Bluetooth@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Onboarding_bluetooth.imageset/Bluetooth@2x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/splash_logo.imageset/Launch-Screen-Logo@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/splash_logo.imageset/Launch-Screen-Logo@1x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/splash_logo.imageset/Launch-Screen-Logo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/splash_logo.imageset/Launch-Screen-Logo@2x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/splash_logo.imageset/Launch-Screen-Logo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/splash_logo.imageset/Launch-Screen-Logo@3x.png
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Registration_status_failure.imageset/Circle.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Assets.xcassets/Registration_status_failure.imageset/Circle.pdf
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/App-Store-Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/App-Store-Icon.png
--------------------------------------------------------------------------------
/Reporting/Tests/ReportingTests/ReportingTests.swift:
--------------------------------------------------------------------------------
1 | import XCTest
2 | @testable import Reporting
3 |
4 | final class ReportingTests: XCTestCase {
5 | func testExample() {
6 | XCTAssert(true)
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/Sonar.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/App-Store-Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/App-Store-Icon.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon20x20@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon20x20@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.beta.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/Sonar/Environments/production.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Sonar/Base.xcconfig"
2 |
3 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
4 | PRODUCT_BUNDLE_IDENTIFIER = uk.nhs.nhsx.sonar
5 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = PILOT $(inherited)
6 |
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/App-Store-Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/App-Store-Icon.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon20x20@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon20x20@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ukhsa-collaboration/COVID-19-app-iOS-BETA/HEAD/Sonar/Resources/AppIcon.xcassets/AppIcon.internal.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/Sonar/Environments/beta.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Sonar/Base.xcconfig"
2 |
3 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon.beta
4 | PRODUCT_BUNDLE_IDENTIFIER = uk.nhs.nhsx.beta.CoLocate
5 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = INTERNAL $(inherited)
6 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Artefact/Asset.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | enum Asset {
4 | case storyboard(String)
5 | case nib(String)
6 | case strings(String)
7 | case plist(String)
8 | case bundle(String)
9 | }
10 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Utilities/Sequence.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | extension Sequence {
4 |
5 | func count(where isIncluded: (Element) -> Bool) -> Int {
6 | self.lazy.filter(isIncluded).count
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/Sonar/Environments/internal.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Sonar/Base.xcconfig"
2 |
3 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon.internal
4 | PRODUCT_BUNDLE_IDENTIFIER = uk.nhs.nhsx.sonar.internal
5 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = INTERNAL PILOT $(inherited)
6 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Info.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Group 163.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHS_Logo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Group 87.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/bin/make-environment:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require "erb"
4 | require "json"
5 |
6 | template = ERB.new(File.read("#{__dir__}/../Sonar/Environments/Environment.swift.erb"))
7 | json = JSON.parse(ARGF.read)
8 |
9 | puts template.result_with_hash(json)
10 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module GoogleDataTransport {
2 | umbrella header "GoogleDataTransport.h"
3 | export *
4 | module * { export * }
5 | link framework "CoreTelephony"
6 | link framework "SystemConfiguration"
7 | }
8 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/News_Covid.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "News-covid.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Frameworks/GoogleUtilities.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module GoogleUtilities {
2 | umbrella header "GoogleUtilities-umbrella.h"
3 | export *
4 | module * { export * }
5 | link framework "Security"
6 | link framework "SystemConfiguration"
7 | link "z"
8 | }
9 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Utilities/CustomError.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct CustomError: Error, CustomStringConvertible {
4 | var description: String
5 |
6 | init(_ description: String) {
7 | self.description = description
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Arrow_Highlight.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Arrow-highlight.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Utilities/String.swift:
--------------------------------------------------------------------------------
1 |
2 | import Foundation
3 |
4 | extension String {
5 |
6 | func matches(_ pattern: String) -> Bool {
7 | return range(of: "^\(pattern)$", options: .regularExpression, range: nil, locale: nil) != nil
8 | }
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/Sonar/Sonar.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/ReportModel/ReportContent.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | protocol ReportContent {
4 | var markdownBody: String { get }
5 | }
6 |
7 | extension String: ReportContent {
8 |
9 | var markdownBody: String {
10 | return self
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/bin/bump-build-version:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | PLIST=Sonar/Info.plist
6 |
7 | current_version=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$PLIST")
8 | next_version="$((current_version + 1))"
9 | plutil -replace CFBundleVersion -string "$next_version" "$PLIST"
10 |
--------------------------------------------------------------------------------
/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | app_identifier("uk.nhs.nhsx.sonar.internal") # The bundle identifier of your app
2 |
3 | itc_team_id("121237496") # App Store Connect Team ID
4 | team_id("877YMUFLMF") # Developer Portal Team ID
5 |
6 | # For more information about the Appfile, see:
7 | # https://docs.fastlane.tools/advanced/#appfile
8 |
--------------------------------------------------------------------------------
/Sonar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCore.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module FirebaseCore {
2 | umbrella header "FirebaseCore.h"
3 | export *
4 | module * { export * }
5 | link framework "CoreTelephony"
6 | link framework "Foundation"
7 | link framework "SystemConfiguration"
8 | link framework "UIKit"
9 | link "z"
10 | }
11 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Spinner.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Circle.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module FirebaseCoreDiagnostics {
2 | umbrella header "FirebaseCoreDiagnostics-umbrella.h"
3 | export *
4 | module * { export * }
5 | link framework "CoreTelephony"
6 | link framework "Foundation"
7 | link framework "SystemConfiguration"
8 | link "z"
9 | }
10 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Test_Tubes.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "TestTubes.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Bell ringing.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Bell ringing.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Disclosure_Indicator.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Fill.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/External_Link.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "External_Link.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Registration_status_ok.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Circle.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Sonar.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Background_Curve.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Background_Curve.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Registration_status_failure.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Circle.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/ReportModel/ReportSection.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct ReportSection: ReportContent {
4 | var title: String
5 | var content: ReportContent
6 |
7 | var markdownBody: String {
8 | return """
9 | ### \(title)
10 |
11 | \(content.markdownBody)
12 | """
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Workplace_Guidance.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Workplace_Guidance.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module FirebaseInstanceID {
2 | umbrella header "FirebaseInstanceID.h"
3 | export *
4 | module * { export * }
5 | link framework "CoreTelephony"
6 | link framework "Foundation"
7 | link framework "Security"
8 | link framework "SystemConfiguration"
9 | link framework "UIKit"
10 | link "z"
11 | }
12 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module FirebaseInstallations {
2 | umbrella header "FirebaseInstallations.h"
3 | export *
4 | module * { export * }
5 | link framework "CoreTelephony"
6 | link framework "Foundation"
7 | link framework "Security"
8 | link framework "SystemConfiguration"
9 | link framework "UIKit"
10 | link "z"
11 | }
12 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module FirebaseMessaging {
2 | umbrella header "FirebaseMessaging.h"
3 | export *
4 | module * { export * }
5 | link framework "CoreTelephony"
6 | link framework "Foundation"
7 | link framework "Security"
8 | link framework "SystemConfiguration"
9 | link framework "UIKit"
10 | link "sqlite3"
11 | link "z"
12 | }
13 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Artefact/Decoded.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | enum Decoded: Decodable {
4 | case some(Wrapped)
5 | case error(Error)
6 |
7 | init(from decoder: Decoder) throws {
8 | do {
9 | self = .some(try Wrapped(from: decoder))
10 | } catch {
11 | self = .error(error)
12 | }
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHS-Logo-Template.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "LogoTemplate.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "preserves-vector-representation" : true,
14 | "template-rendering-intent" : "template"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/bin/trigger-deploys:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | DATA=$(cat <
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___PACKAGENAME___
9 | //
10 | // Created by NHSX.
11 | // ___COPYRIGHT___
12 | //
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Reporting/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "object": {
3 | "pins": [
4 | {
5 | "package": "swift-argument-parser",
6 | "repositoryURL": "https://github.com/apple/swift-argument-parser",
7 | "state": {
8 | "branch": null,
9 | "revision": "8d31a0905c346a45c87773ad50862b5b3df8dff6",
10 | "version": "0.0.4"
11 | }
12 | }
13 | ]
14 | },
15 | "version": 1
16 | }
17 |
--------------------------------------------------------------------------------
/bin/setup-match:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | echo "$MATCH" | base64 -d | tar xvz
6 |
7 | uuidgen > ci/match/gen # A file that is guaranteed to exist, so commit is not empty if repo exists.
8 |
9 | (
10 | cd ci/match;
11 | git init;
12 | git add certs profiles gen;
13 | git commit --message="[fastlane] Updated appstore and platform ios" --author="GitHub Actions "
14 | )
15 |
--------------------------------------------------------------------------------
/Configurations/Debug.xcconfig:
--------------------------------------------------------------------------------
1 |
2 | #include "Project.xcconfig"
3 |
4 | ONLY_ACTIVE_ARCH = YES
5 | ENABLE_TESTABILITY = YES
6 | DEBUG_INFORMATION_FORMAT = dwarf
7 | SWIFT_OPTIMIZATION_LEVEL = -Onone
8 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG
9 |
10 | // Other configs:
11 |
12 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE
13 | GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited)
14 | GCC_DYNAMIC_NO_PIC = NO
15 | GCC_OPTIMIZATION_LEVEL = 0
16 |
--------------------------------------------------------------------------------
/.github/workflows/clean-artifacts.yml:
--------------------------------------------------------------------------------
1 | name: clean-artifacts
2 |
3 | on:
4 | schedule:
5 | - cron: 0 0 * * *
6 |
7 | jobs:
8 | clean-artifacts:
9 | runs-on:
10 | - macos-10.15
11 | timeout-minutes: 10
12 | steps:
13 | - name: Remove old artifacts
14 | uses: c-hive/gha-remove-artifacts@24dc233 # v1.2.0
15 | with:
16 | age: 7 days
17 | skip-tags: true
18 | continue-on-error: true
19 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Notice badge.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Notice badge.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Error Grey.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "48",
9 | "green" : "43",
10 | "red" : "37"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Button.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0x00",
13 | "alpha" : "1.000",
14 | "blue" : "0x3B",
15 | "green" : "0x7F"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Dark Pink.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0x7C",
13 | "alpha" : "1.000",
14 | "blue" : "0x55",
15 | "green" : "0x28"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Error.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0xD5",
13 | "alpha" : "1.000",
14 | "blue" : "0x1B",
15 | "green" : "0x28"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Green.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0x00",
13 | "alpha" : "1.000",
14 | "blue" : "0x3B",
15 | "green" : "0x7F"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Grey 1.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0x4C",
13 | "alpha" : "1.000",
14 | "blue" : "0x72",
15 | "green" : "0x62"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Grey 2.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0x76",
13 | "alpha" : "1.000",
14 | "blue" : "0x92",
15 | "green" : "0x86"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Grey 3.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0xAE",
13 | "alpha" : "1.000",
14 | "blue" : "0xBD",
15 | "green" : "0xB7"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Purple.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0x33",
13 | "alpha" : "1.000",
14 | "blue" : "0x72",
15 | "green" : "0x00"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Red.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0x1B",
9 | "green" : "0x28",
10 | "red" : "0xD5"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS White.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0xFF",
13 | "alpha" : "1.000",
14 | "blue" : "0xFF",
15 | "green" : "0xFF"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Yellow.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0xFF",
13 | "alpha" : "1.000",
14 | "blue" : "0x3B",
15 | "green" : "0xEB"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Blue.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0xB8",
9 | "green" : "0x5E",
10 | "red" : "0x00"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Grey 4.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0xE0",
9 | "green" : "0xDD",
10 | "red" : "0xD8"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Grey 5.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0xF5",
9 | "green" : "0xF4",
10 | "red" : "0xF0"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Link.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0xB8",
9 | "green" : "0x5E",
10 | "red" : "0x00"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Pale Yellow.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0xFF",
13 | "alpha" : "1.000",
14 | "blue" : "0xC4",
15 | "green" : "0xF9"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Text.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.196",
9 | "green" : "0.169",
10 | "red" : "0.129"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Warm Yellow.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0xFF",
13 | "alpha" : "1.000",
14 | "blue" : "0x1C",
15 | "green" : "0xB8"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Dark Blue.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0xB2",
9 | "green" : "0x5F",
10 | "red" : "0x23"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Highlight.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.722",
9 | "green" : "0.369",
10 | "red" : "0.000"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Secondary Button.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | },
6 | "colors" : [
7 | {
8 | "idiom" : "universal",
9 | "color" : {
10 | "color-space" : "srgb",
11 | "components" : {
12 | "red" : "0x4C",
13 | "alpha" : "1.000",
14 | "blue" : "0x72",
15 | "green" : "0x62"
16 | }
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Secondary Text.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "114",
9 | "green" : "98",
10 | "red" : "76"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/NHS Colors.xcassets/NHS Error Background.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0xF4",
9 | "green" : "0xF4",
10 | "red" : "0xFD"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHSLogoAlt.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "NHS1.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "NHS1@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_area.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Area@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "Area@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Linking_ID.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Linking_Id_1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "Linking_Id_2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_protect.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Protect@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "Protect@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Onboarding_bluetooth.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Bluetooth@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "Bluetooth@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCoreDiagnostics.framework/Headers/FirebaseCoreDiagnostics-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "firebasecore.nanopb.h"
14 |
15 | FOUNDATION_EXPORT double FirebaseCoreDiagnosticsVersionNumber;
16 | FOUNDATION_EXPORT const unsigned char FirebaseCoreDiagnosticsVersionString[];
17 |
18 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/NHSLogo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "nhs 1.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "nhs 1@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "nhs 1@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.github/workflows/remove-tag.yml:
--------------------------------------------------------------------------------
1 | name: Remove Tag
2 |
3 | on:
4 | repository_dispatch:
5 | types: [remove-tag]
6 |
7 | jobs:
8 |
9 | publish:
10 | runs-on:
11 | - linux
12 | - aws
13 |
14 | steps:
15 | - name: Remove tag in pact broker
16 | id: removetag
17 | run: curl -v -XDELETE https://sonar-pact-broker-app.apps.nonprod.aws.cp.data.england.nhs.uk/pacticipants/iOS%20App/versions/${{ github.event.client_payload.version }}/tags/${{ github.event.client_payload.tag }}
18 |
19 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/bluetooth.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Vector.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "Vector@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "Vector@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "FirebaseInstanceID.h"
14 | #import "FIRInstanceID.h"
15 |
16 | FOUNDATION_EXPORT double FirebaseInstanceIDVersionNumber;
17 | FOUNDATION_EXPORT const unsigned char FirebaseInstanceIDVersionString[];
18 |
19 |
--------------------------------------------------------------------------------
/Sonar/Environments/environment.json:
--------------------------------------------------------------------------------
1 | {
2 | "api_endpoint": "https://localhost:1234",
3 | "app_center_key": "an-api-key",
4 | "sonar_header_value": "a-header-value",
5 | "sonar_service_uuid": "an-uuid",
6 | "sonar_id_characteristic_uuid": "another-uuid",
7 | "sonar_keepalive_characteristic_uuid": "yet-another-uuid",
8 | "debug": {
9 | "registration_id": "an-uuid",
10 | "registration_secret_key": "a-base46-secret-key",
11 | "registration_broadcast_rotation_key": "a-base64-broadcast-rotation-key"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Frameworks/GoogleUtilities.framework/Headers/GoogleUtilities-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "GULLoggerLevel.h"
14 | #import "GULLoggerCodes.h"
15 | #import "GULNSData+zlib.h"
16 |
17 | FOUNDATION_EXPORT double GoogleUtilitiesVersionNumber;
18 | FOUNDATION_EXPORT const unsigned char GoogleUtilitiesVersionString[];
19 |
20 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/splash_logo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Launch-Screen-Logo@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "Launch-Screen-Logo@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "Launch-Screen-Logo@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "FirebaseMessaging.h"
14 | #import "FIRMessaging.h"
15 | #import "FIRMessagingExtensionHelper.h"
16 |
17 | FOUNDATION_EXPORT double FirebaseMessagingVersionNumber;
18 | FOUNDATION_EXPORT const unsigned char FirebaseMessagingVersionString[];
19 |
20 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Controls_RadioButton_Selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "radio_button_checked_24px.pdf",
5 | "idiom" : "universal"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | },
21 | "properties" : {
22 | "preserves-vector-representation" : true
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Controls_RadioButton_Unselected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "radio_button_unchecked_24px.pdf",
5 | "idiom" : "universal"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | },
21 | "properties" : {
22 | "preserves-vector-representation" : true
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCore.framework/Headers/FirebaseCore-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "FIRApp.h"
14 | #import "FIRConfiguration.h"
15 | #import "FirebaseCore.h"
16 | #import "FIRLoggerLevel.h"
17 | #import "FIROptions.h"
18 |
19 | FOUNDATION_EXPORT double FirebaseCoreVersionNumber;
20 | FOUNDATION_EXPORT const unsigned char FirebaseCoreVersionString[];
21 |
22 |
--------------------------------------------------------------------------------
/bin/create-deployment:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | DATA=$(cat < Never {
5 | ReportCommand.main()
6 | }
7 |
8 | struct ReportCommand: ParsableCommand {
9 | static var configuration = CommandConfiguration(
10 | commandName: "report",
11 | abstract: "A tool for producing reports from iOS app bundles.",
12 | subcommands: [
13 | ArchiveReportCommand.self,
14 | IPAReportCommand.self,
15 | ProjectReportCommand.self,
16 | ]
17 | )
18 |
19 | func run() throws {
20 | print("running")
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Frameworks/nanopb.framework/Headers/nanopb-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "pb.h"
14 | #import "pb_common.h"
15 | #import "pb_decode.h"
16 | #import "pb_encode.h"
17 | #import "pb.h"
18 | #import "pb_decode.h"
19 | #import "pb_common.h"
20 | #import "pb.h"
21 | #import "pb_encode.h"
22 | #import "pb_common.h"
23 |
24 | FOUNDATION_EXPORT double nanopbVersionNumber;
25 | FOUNDATION_EXPORT const unsigned char nanopbVersionString[];
26 |
27 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/Headers/FirebaseInstallations-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "FirebaseInstallations.h"
14 | #import "FIRInstallations.h"
15 | #import "FIRInstallationsAuthTokenResult.h"
16 | #import "FIRInstallationsErrors.h"
17 | #import "FIRInstallationsVersion.h"
18 |
19 | FOUNDATION_EXPORT double FirebaseInstallationsVersionNumber;
20 | FOUNDATION_EXPORT const unsigned char FirebaseInstallationsVersionString[];
21 |
22 |
--------------------------------------------------------------------------------
/Sonar/Base.xcconfig:
--------------------------------------------------------------------------------
1 | DISPLAY_NAME = NHS COVID-19
2 | PRODUCT_BUNDLE_IDENTIFIER = uk.nhs.nhsx.beta.Sonar
3 | INFOPLIST_FILE = Sonar/Info.plist
4 | CODE_SIGN_ENTITLEMENTS = Sonar/Sonar.entitlements
5 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
6 | SWIFT_OBJC_BRIDGING_HEADER = Sonar/Sonar-Bridging-Header.h
7 |
8 | CODE_SIGN_IDENTITY = Apple Development
9 | CODE_SIGN_STYLE = Automatic
10 |
11 | OTHER_LDFLAGS = -ObjC -all_load
12 | LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
13 | PRODUCT_NAME = $(TARGET_NAME)
14 | FRAMEWORK_SEARCH_PATHS = $(inherited) $(PROJECT_DIR)/Frameworks
15 | HEADER_SEARCH_PATHS = $PROJECT_DIR/Frameworks
16 | CLANG_ENABLE_MODULES = YES
17 |
--------------------------------------------------------------------------------
/bin/trigger-generate-release-note:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | DATA=$(cat <
2 |
3 |
4 |
5 | CFBundleExecutable
6 | nanopb
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | nanopb
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Firebase.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | Firebase
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | Firebase
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | Protobuf
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | Protobuf
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCore.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | FirebaseCore
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | FirebaseCore
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | PromisesObjC
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | PromisesObjC
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/GoogleUtilities.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | GoogleUtilities
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | GoogleUtilities
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstanceID.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | FirebaseInstanceID
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | FirebaseInstanceID
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseMessaging.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | FirebaseMessaging
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | FirebaseMessaging
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import "FIRInstanceID.h"
18 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | GoogleDataTransport
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | GoogleDataTransport
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | FirebaseInstallations
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | FirebaseInstallations
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCoreDiagnostics.framework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleExecutable
6 | FirebaseCoreDiagnostics
7 | CFBundleIdentifier
8 | com.firebase.Firebase
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | FirebaseCoreDiagnostics
13 | CFBundlePackageType
14 | FMWK
15 | CFBundleVersion
16 | 1
17 | DTSDKName
18 | iphonesimulator11.2
19 |
20 |
21 |
--------------------------------------------------------------------------------
/bin/is-deployed:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require "json"
4 | require "net/http"
5 |
6 | environment = ARGV.fetch(0)
7 |
8 | github_repository = ENV.fetch("GITHUB_REPOSITORY")
9 | github_token = ENV.fetch("GITHUB_TOKEN")
10 |
11 | sha = `git rev-parse HEAD`
12 |
13 | uri = URI("https://api.github.com/repos/#{github_repository}/deployments?environment=#{environment}&sha=#{sha}")
14 | headers = {
15 | "Authorization" => "Bearer #{github_token}",
16 | "Content-Type" => "application/json",
17 | }
18 |
19 | Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
20 | resp = http.get(uri, headers)
21 | unless Net::HTTPOK === resp
22 | $stderr.puts resp
23 | exit 0
24 | end
25 |
26 | json = JSON.parse(resp.body)
27 | exit json.empty? ? 1 : 0
28 | end
29 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/ReportModel/ReportList.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct ReportList: ReportContent {
4 |
5 | enum Kind {
6 | case ordered
7 | case unordered
8 |
9 | fileprivate var tag: String {
10 | switch self {
11 | case .ordered:
12 | return "ol"
13 | case .unordered:
14 | return "ul"
15 | }
16 | }
17 | }
18 |
19 | var kind: Kind
20 | var items: [ReportContent]
21 |
22 | var markdownBody: String {
23 | let tag = kind.tag
24 | let listItems = items.lazy.map { "\($0)"}.joined(separator: "")
25 |
26 | return "<\(tag)>\(listItems)\(tag)>"
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2017 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import "FIRApp.h"
18 | #import "FIRConfiguration.h"
19 | #import "FIRLoggerLevel.h"
20 | #import "FIROptions.h"
21 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2017 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 | #import
19 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsVersion.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | FOUNDATION_EXPORT const char *const FIRInstallationsVersionStr;
20 |
--------------------------------------------------------------------------------
/bin/pact/stop-mock-server:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -eo pipefail
4 |
5 | SRCROOT=${SRCROOT:-"$(dirname "$0")/../.."}
6 | PACT_SETUP_LOG="$SRCROOT/SonarPactTests/Setup/mock-server.log"
7 |
8 | check_for_failure() {
9 | if [[ $? != 0 ]]; then
10 | echo "######################## PACT TEST TEARDOWN FAILED ########################"
11 | echo
12 | cat "$PACT_SETUP_LOG"
13 | echo
14 | echo "######################## PACT TEST TEARDOWN FAILED ########################"
15 | fi
16 | }
17 |
18 | trap "check_for_failure" EXIT
19 |
20 | if [[ -z "$(command -v pact-mock-service)" ]]; then
21 | echo "You do not have pact mock service installed. Please run bin/setup-pact." >> $PACT_SETUP_LOG
22 | exit 1
23 | fi
24 |
25 | echo "Stopping pact mock service..."
26 | pact-mock-service stop >> "$PACT_SETUP_LOG" 2>&1
27 | echo "Done."
28 |
--------------------------------------------------------------------------------
/fastlane/README.md:
--------------------------------------------------------------------------------
1 | fastlane documentation
2 | ================
3 | # Installation
4 |
5 | Make sure you have the latest version of the Xcode command line tools installed:
6 |
7 | ```
8 | xcode-select --install
9 | ```
10 |
11 | Install _fastlane_ using
12 | ```
13 | [sudo] gem install fastlane -NV
14 | ```
15 | or alternatively using `brew cask install fastlane`
16 |
17 | # Available Actions
18 | ## iOS
19 | ### ios release
20 | ```
21 | fastlane ios release
22 | ```
23 | Cut a release for Test Flight
24 |
25 | ----
26 |
27 | This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run.
28 | More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
29 | The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
30 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/Headers/FirebaseInstallations.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import "FIRInstallations.h"
18 | #import "FIRInstallationsAuthTokenResult.h"
19 | #import "FIRInstallationsErrors.h"
20 | #import "FIRInstallationsVersion.h"
21 |
--------------------------------------------------------------------------------
/Sonar/Resources/Settings.bundle/Root.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | StringsTable
6 | Root
7 | PreferenceSpecifiers
8 |
9 |
10 | DefaultValue
11 | 0
12 | Key
13 | app_version_constant
14 | Title
15 | Version
16 | Type
17 | PSTitleValueSpecifier
18 |
19 |
20 | DefaultValue
21 | 0
22 | Key
23 | app_build_constant
24 | Title
25 | Build
26 | Type
27 | PSTitleValueSpecifier
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/bin/pact/teardown-build-environment:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -eo pipefail
4 |
5 | SRCROOT=${SRCROOT:-"$(dirname "$0")/../.."}
6 | PACT_SETUP_LOG="$SRCROOT/SonarPactTests/Setup/build-environment-setup.log"
7 |
8 | check_for_failure() {
9 | if [[ $? != 0 ]]; then
10 | echo "######################## PACT TEST TEARDOWN FAILED ########################"
11 | echo
12 | cat "$PACT_SETUP_LOG"
13 | echo
14 | echo "######################## PACT TEST TEARDOWN FAILED ########################"
15 | fi
16 | }
17 |
18 | trap "check_for_failure" EXIT
19 |
20 | echo "Reinstantiating environment file after pact testing..."
21 | ENVIRONMENT_FILE_PATH="${SRCROOT}/.secret/Environment.swift"
22 | if [[ -f "$ENVIRONMENT_FILE_PATH.backup" ]]; then
23 | mv "$ENVIRONMENT_FILE_PATH.backup" "$ENVIRONMENT_FILE_PATH" >> "$PACT_SETUP_LOG" 2>&1
24 | else
25 | echo "No backup file detected at $ENVIRONMENT_FILE_PATH.backup..."
26 | fi
27 | echo "Done."
28 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behaviour:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behaviour**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Version [e.g. 22]
29 |
30 | **Smartphone (please complete the following information):**
31 | - Device: [e.g. iPhone6]
32 | - OS: [e.g. iOS8.1]
33 | - Version [e.g. 22]
34 |
35 | **Additional context**
36 | Add any other context about the problem here.
37 |
--------------------------------------------------------------------------------
/Reporting/README.md:
--------------------------------------------------------------------------------
1 | # Reporting
2 |
3 | A package used for running / reporting automated tests.
4 |
5 | You can run integrity checks in different wasy
6 |
7 | ### From an archive
8 |
9 | ```bash
10 | swift run Reporter archive $ARCHIVE_PATH --output $REPORT_PATH
11 | ```
12 |
13 | ### From an ipa
14 |
15 | ```bash
16 | swift run Reporter ipa $IPA_PATH --output $REPORT_PATH
17 | ```
18 |
19 | ### From an Xcode project
20 |
21 | ```bash
22 | swift run Reporter project $PROJECT_PATH --scheme $SCHEME --method archive --output AppReport
23 | ```
24 |
25 | or
26 |
27 | ```bash
28 | swift run Reporter project $PROJECT_PATH --scheme $SCHEME --method build --output AppReport
29 | ```
30 |
31 | Using the archive method produces a more accurate result, but requires correct profiles / certificates to already be in place.
32 |
33 | ## Development
34 |
35 | Note that Xcode runs the executable in a sandbox, so even though it can *run* the executable, it may not behave as expected.
36 |
--------------------------------------------------------------------------------
/bin/embed_build_info:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | INFO_PLIST="$TARGET_BUILD_DIR/$INFOPLIST_PATH"
4 | SETTINGS_PLIST="$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/Settings.bundle/Root.plist"
5 |
6 | cd $PROJECT_DIR
7 | status=$(git status --porcelain 2> /dev/null)
8 | if [[ "$status" != "" ]]; then
9 | STATUS_FLAG='-M'
10 | else
11 | STATUS_FLAG=''
12 | fi
13 | COMMIT=$(git rev-parse HEAD | cut -c 1-7)
14 | cd -
15 |
16 | VERSION_STRING=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFO_PLIST")
17 | BUILD_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFO_PLIST")
18 |
19 | BUILD_STRING="$BUILD_NUMBER ($COMMIT$STATUS_FLAG)"
20 |
21 | # This is fragile since we’re relying on positions in the list.
22 | # Keeping this simple intentionally.
23 | /usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:0:DefaultValue $VERSION_STRING" "$SETTINGS_PLIST"
24 | /usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue $BUILD_STRING" "$SETTINGS_PLIST"
25 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GoogleDataTransport-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "GDTCORAssert.h"
14 | #import "GDTCORClock.h"
15 | #import "GDTCORConsoleLogger.h"
16 | #import "GDTCOREvent.h"
17 | #import "GDTCOREventDataObject.h"
18 | #import "GDTCOREventTransformer.h"
19 | #import "GDTCORLifecycle.h"
20 | #import "GDTCORPlatform.h"
21 | #import "GDTCORPrioritizer.h"
22 | #import "GDTCORReachability.h"
23 | #import "GDTCORRegistrar.h"
24 | #import "GDTCORTargets.h"
25 | #import "GDTCORTransport.h"
26 | #import "GDTCORUploader.h"
27 | #import "GDTCORUploadPackage.h"
28 | #import "GoogleDataTransport.h"
29 |
30 | FOUNDATION_EXPORT double GoogleDataTransportVersionNumber;
31 | FOUNDATION_EXPORT const unsigned char GoogleDataTransportVersionString[];
32 |
33 |
--------------------------------------------------------------------------------
/bin/plist2csv.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # Converts the (binary) Plist files exported from the app debug screen to CSV
4 | #
5 |
6 | set -o pipefail
7 | i=0
8 | j=1
9 | echo "Broadcast ID, Timestamp, Duration, Peripheral ID, RSSI values, RSSI intervals"
10 | while true ; do
11 | PERIPHERAL_ID=$(/usr/libexec/PlistBuddy -c "Print $i" $1 | tr -d '\n')
12 | if [ ${PIPESTATUS[0]} -ne 0 ]; then
13 | echo $i
14 | break
15 | fi
16 |
17 | TIMESTAMP=$(/usr/libexec/PlistBuddy -c "Print $j:timestamp" $1 | tr -d '\n')
18 | BROADCAST_ID=$(/usr/libexec/PlistBuddy -c "Print $j:encryptedRemoteContactId" $1 | base64)
19 | RSSI_VALUES=$(/usr/libexec/PlistBuddy -c "Print $j:rssiValues" $1 | tr -d ' Array{}' | tr '\n' ':')
20 | RSSI_INTERVALS=$(/usr/libexec/PlistBuddy -c "Print $j:rssiIntervals" $1 | tr -d ' Array{}' | tr '\n' ':')
21 | DURATION=$(/usr/libexec/PlistBuddy -c "Print $j:duration" $1 | tr -d '\n')
22 | echo "$BROADCAST_ID, $TIMESTAMP, $DURATION, $PERIPHERAL_ID, $RSSI_VALUES, $RSSI_INTERVALS"
23 | i=$[i+2]
24 | j=$[j+2]
25 | done
26 |
27 |
--------------------------------------------------------------------------------
/Sonar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "object": {
3 | "pins": [
4 | {
5 | "package": "Nimble",
6 | "repositoryURL": "https://github.com/Quick/Nimble.git",
7 | "state": {
8 | "branch": null,
9 | "revision": "72f5a90d573f7f7d70aa6b8ad84b3e1e02eabb4d",
10 | "version": "8.0.9"
11 | }
12 | },
13 | {
14 | "package": "PactConsumerSwift",
15 | "repositoryURL": "https://github.com/DiUS/pact-consumer-swift",
16 | "state": {
17 | "branch": null,
18 | "revision": "bbe2c1f46763c16b5e7250fe18778b66cfc79bc8",
19 | "version": "0.8.1"
20 | }
21 | },
22 | {
23 | "package": "swift-log",
24 | "repositoryURL": "https://github.com/apple/swift-log.git",
25 | "state": {
26 | "branch": null,
27 | "revision": "74d7b91ceebc85daf387ebb206003f78813f71aa",
28 | "version": "1.2.0"
29 | }
30 | }
31 | ]
32 | },
33 | "version": 1
34 | }
35 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/PromisesObjC-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "FBLPromise+All.h"
14 | #import "FBLPromise+Always.h"
15 | #import "FBLPromise+Any.h"
16 | #import "FBLPromise+Async.h"
17 | #import "FBLPromise+Await.h"
18 | #import "FBLPromise+Catch.h"
19 | #import "FBLPromise+Delay.h"
20 | #import "FBLPromise+Do.h"
21 | #import "FBLPromise+Race.h"
22 | #import "FBLPromise+Recover.h"
23 | #import "FBLPromise+Reduce.h"
24 | #import "FBLPromise+Retry.h"
25 | #import "FBLPromise+Testing.h"
26 | #import "FBLPromise+Then.h"
27 | #import "FBLPromise+Timeout.h"
28 | #import "FBLPromise+Validate.h"
29 | #import "FBLPromise+Wrap.h"
30 | #import "FBLPromise.h"
31 | #import "FBLPromiseError.h"
32 | #import "FBLPromises.h"
33 |
34 | FOUNDATION_EXPORT double FBLPromisesVersionNumber;
35 | FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[];
36 |
37 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GoogleDataTransport.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import "GDTCORClock.h"
18 | #import "GDTCORConsoleLogger.h"
19 | #import "GDTCOREvent.h"
20 | #import "GDTCOREventDataObject.h"
21 | #import "GDTCOREventTransformer.h"
22 | #import "GDTCORLifecycle.h"
23 | #import "GDTCORPrioritizer.h"
24 | #import "GDTCORRegistrar.h"
25 | #import "GDTCORTargets.h"
26 | #import "GDTCORTransport.h"
27 | #import "GDTCORUploadPackage.h"
28 | #import "GDTCORUploader.h"
29 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 NHSX
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.github/workflows/generate-release-note.yml:
--------------------------------------------------------------------------------
1 | name: generate-release-note
2 |
3 | on:
4 | repository_dispatch:
5 | types: [generate-release-note]
6 |
7 | jobs:
8 | generate-release-note:
9 | runs-on:
10 | - linux
11 | - aws
12 | steps:
13 | - name: Checkout
14 | id: checkout
15 | uses: actions/checkout@v2
16 | with:
17 | fetch-depth: 0 # checkout full repo with all tags
18 |
19 | - name: Checkout ci tools
20 | id: checkout-ci-tools
21 | uses: actions/checkout@v2
22 | with:
23 | token: ${{ secrets.DEPLOYMENT_TOKEN }}
24 | repository: nhsx/sonar-ci-tools
25 | path: ci-tools
26 | ref: v0.2.0
27 |
28 | - name: Generate release notes
29 | id: generate_release_notes
30 | uses: ./ci-tools/.github/actions/generate-release-notes
31 | with:
32 | tracker_token: ${{ secrets.tracker_api_token }}
33 | revision_range: ${{ github.event.client_payload.revision_range }}
34 |
35 | - name: Print release notes
36 | run: echo "${{ steps.generate_release_notes.outputs.release_notes }}"
37 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Utilities/Bash.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct Bash {
4 | static func run(_ command: String) throws {
5 | print("$", command)
6 | let process = Process()
7 | process.launchPath = "/bin/bash"
8 | process.arguments = ["-c", command]
9 |
10 | process.launch()
11 | process.waitUntilExit()
12 | }
13 |
14 | static func run(_ commandParts: String...) throws {
15 | try run(commandParts.joined(separator: " "))
16 | }
17 |
18 | static func runAndCapture(_ command: String) throws -> Data {
19 | print("$", command)
20 | let process = Process()
21 | process.launchPath = "/bin/bash"
22 | process.arguments = ["-c", command]
23 |
24 | let pipe = Pipe()
25 | process.standardOutput = pipe
26 | process.launch()
27 | process.waitUntilExit()
28 | return pipe.fileHandleForReading.readDataToEndOfFile()
29 | }
30 |
31 | static func runAndCapture(_ commandParts: String...) throws -> Data {
32 | try runAndCapture(commandParts.joined(separator: " "))
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/ReportModel/Report.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct Report {
4 | var pages: [ReportPage]
5 | var attachments: [ReportAttachment]
6 | }
7 |
8 | extension Report {
9 |
10 | func save(to reportFolder: URL) throws {
11 | let fileManager = FileManager()
12 | if fileManager.fileExists(atPath: reportFolder.path) {
13 | try fileManager.removeItem(at: reportFolder)
14 | }
15 |
16 | try fileManager.createDirectory(at: reportFolder, withIntermediateDirectories: true)
17 | try pages.forEach {
18 | try $0.save(in: reportFolder)
19 | }
20 |
21 | if !attachments.isEmpty {
22 | let attachmentsFolder = reportFolder.appendingPathComponent("Attachments", isDirectory: true)
23 | try fileManager.createDirectory(at: attachmentsFolder, withIntermediateDirectories: true)
24 | try attachments.forEach {
25 | let destination = attachmentsFolder.appendingPathComponent($0.name)
26 | try fileManager.copyItem(at: $0.source, to: destination)
27 | }
28 | }
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCORReachability.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | #if !TARGET_OS_WATCH
20 | #import
21 | #endif
22 |
23 | NS_ASSUME_NONNULL_BEGIN
24 |
25 | /** This class helps determine upload conditions by determining connectivity. */
26 | @interface GDTCORReachability : NSObject
27 | #if !TARGET_OS_WATCH
28 | /** The current set flags indicating network conditions */
29 | + (SCNetworkReachabilityFlags)currentFlags;
30 | #endif
31 |
32 | @end
33 |
34 | NS_ASSUME_NONNULL_END
35 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromises.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise+All.h"
18 | #import "FBLPromise+Always.h"
19 | #import "FBLPromise+Any.h"
20 | #import "FBLPromise+Async.h"
21 | #import "FBLPromise+Await.h"
22 | #import "FBLPromise+Catch.h"
23 | #import "FBLPromise+Delay.h"
24 | #import "FBLPromise+Do.h"
25 | #import "FBLPromise+Race.h"
26 | #import "FBLPromise+Recover.h"
27 | #import "FBLPromise+Reduce.h"
28 | #import "FBLPromise+Retry.h"
29 | #import "FBLPromise+Then.h"
30 | #import "FBLPromise+Timeout.h"
31 | #import "FBLPromise+Validate.h"
32 | #import "FBLPromise+Wrap.h"
33 |
--------------------------------------------------------------------------------
/Reporting/Package.swift:
--------------------------------------------------------------------------------
1 | // swift-tools-version:5.2
2 | // The swift-tools-version declares the minimum version of Swift required to build this package.
3 |
4 | import PackageDescription
5 |
6 | let package = Package(
7 | name: "Reporting",
8 | platforms: [
9 | .macOS(.v10_15),
10 | ],
11 | products: [
12 | .library(
13 | name: "Reporting",
14 | targets: ["Reporting"]
15 | ),
16 | .executable(
17 | name: "Reporter",
18 | targets: ["Reporter"]
19 | ),
20 | ],
21 | dependencies: [
22 | .package(url: "https://github.com/apple/swift-argument-parser", from: "0.0.4")
23 | ],
24 | targets: [
25 | .target(
26 | name: "Reporting",
27 | dependencies: [
28 | .product(name: "ArgumentParser", package: "swift-argument-parser"),
29 | ]
30 | ),
31 | .target(
32 | name: "Reporter",
33 | dependencies: [
34 | "Reporting",
35 | ]
36 | ),
37 | .testTarget(
38 | name: "ReportingTests",
39 | dependencies: [
40 | "Reporting",
41 | ]),
42 | ]
43 | )
44 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsAuthTokenResult.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | /** The class represents a result of the auth token request. */
22 | NS_SWIFT_NAME(InstallationsAuthTokenResult)
23 | @interface FIRInstallationsAuthTokenResult : NSObject
24 |
25 | /** The authorization token string. */
26 | @property(nonatomic, readonly) NSString *authToken;
27 |
28 | /** The auth token expiration date. */
29 | @property(nonatomic, readonly) NSDate *expirationDate;
30 |
31 | @end
32 |
33 | NS_ASSUME_NONNULL_END
34 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Artefact/IntegrityCheck.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct IntegrityCheck {
4 |
5 | enum Result {
6 | case passed
7 | case failed(message: String)
8 | }
9 |
10 | var name: String
11 | var result: Result
12 |
13 | var passed: Bool {
14 | switch result {
15 | case .passed:
16 | return true
17 | case .failed:
18 | return false
19 | }
20 | }
21 |
22 | var errorMessage: String? {
23 | switch result {
24 | case .passed:
25 | return nil
26 | case .failed(let message):
27 | return message
28 | }
29 | }
30 | }
31 |
32 | extension ReportTable where Row == IntegrityCheck {
33 |
34 | init(checks: [IntegrityCheck]) {
35 | self.init(
36 | rows: checks,
37 | columns: [
38 | ReportColumnAdapter(title: "Check", makeContent: { $0.name }),
39 | ReportColumnAdapter(title: "Passed?", makeContent: { $0.passed ? "✅" : "❌" }),
40 | ReportColumnAdapter(title: "Notes", makeContent: { $0.errorMessage ?? "" }),
41 | ]
42 | )
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/bin/remove-pact-tag.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | function main() {
5 |
6 | version=$1
7 | version=$2
8 |
9 | validate "$version" "version"
10 | validate "$tag" "tag"
11 | validate "$GITHUB_USER_TOKEN" "GITHUB_USER_TOKEN"
12 |
13 | echo ""
14 | echo "You are about to remove pact tag '$tag' for version '$version'"
15 | echo ""
16 | read -p "Are you sure? " -n 1 -r
17 | echo ""
18 |
19 | if [[ ! $REPLY =~ ^[Yy]$ ]]; then
20 | exit 1
21 | fi
22 |
23 | echo ""
24 | read -p "Are you really sure? " -n 1 -r
25 | echo ""
26 |
27 | if [[ ! $REPLY =~ ^[Yy]$ ]]; then
28 | exit 1
29 | fi
30 |
31 | url="https://api.github.com/repos/nhsx/sonar-ios/dispatches"
32 | contentType="Content-Type: application/json"
33 | payload="{\"event_type\": \"remove-tag\", \"client_payload\": {\"version\": \"$version\", \"tag\": \"$tag\"}}"
34 |
35 | echo ""
36 | echo "Dispatching event: $payload"
37 | echo ""
38 |
39 | curl -i -u "$GITHUB_USER_TOKEN" -H "$contentType" -d "$payload" "$url"
40 |
41 | }
42 |
43 | function validate() {
44 | if [[ -z "$1" ]]; then
45 | >&2 echo "Unable to find the '$2'."
46 |
47 | usage
48 |
49 | exit 1
50 | fi
51 | }
52 |
53 | function usage() {
54 | echo ""
55 | echo "Usage: $0 "
56 | echo ""
57 | }
58 |
59 | main "$1"
60 |
61 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCOREventDataObject.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | /** This protocol defines the common interface that event protos should implement regardless of the
22 | * underlying transport technology (protobuf, nanopb, etc).
23 | */
24 | @protocol GDTCOREventDataObject
25 |
26 | @required
27 |
28 | /** Returns the serialized proto bytes of the implementing event proto.
29 | *
30 | * @return the serialized proto bytes of the implementing event proto.
31 | */
32 | - (NSData *)transportBytes;
33 |
34 | @end
35 |
36 | NS_ASSUME_NONNULL_END
37 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Disclosure_Indicator.imageset/Fill.pdf:
--------------------------------------------------------------------------------
1 | %PDF-1.7
2 |
3 | 1 0 obj
4 | << >>
5 | endobj
6 |
7 | 2 0 obj
8 | << /Length 3 0 R >>
9 | stream
10 | /DeviceRGB CS
11 | /DeviceRGB cs
12 | q
13 | 1.000000 0.000000 -0.000000 1.000000 8.589844 5.250000 cm
14 | 0.298039 0.384314 0.447059 scn
15 | 0.000000 1.410000 m
16 | 4.580000 6.000000 l
17 | 0.000000 10.590000 l
18 | 1.410000 12.000000 l
19 | 7.410000 6.000000 l
20 | 1.410000 0.000000 l
21 | 0.000000 1.410000 l
22 | h
23 | f
24 | n
25 | Q
26 |
27 | endstream
28 | endobj
29 |
30 | 3 0 obj
31 | 269
32 | endobj
33 |
34 | 4 0 obj
35 | << /Annots []
36 | /Type /Page
37 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ]
38 | /Resources 1 0 R
39 | /Contents 2 0 R
40 | /Parent 5 0 R
41 | >>
42 | endobj
43 |
44 | 5 0 obj
45 | << /Kids [ 4 0 R ]
46 | /Count 1
47 | /Type /Pages
48 | >>
49 | endobj
50 |
51 | 6 0 obj
52 | << /Type /Catalog
53 | /Pages 5 0 R
54 | >>
55 | endobj
56 |
57 | xref
58 | 0 7
59 | 0000000000 65535 f
60 | 0000000010 00000 n
61 | 0000000034 00000 n
62 | 0000000359 00000 n
63 | 0000000381 00000 n
64 | 0000000554 00000 n
65 | 0000000628 00000 n
66 | trailer
67 | << /ID [ (some) (id) ]
68 | /Root 6 0 R
69 | /Size 7
70 | >>
71 | startxref
72 | 687
73 | %%EOF
--------------------------------------------------------------------------------
/Sonar/Environments/Environment.swift.erb:
--------------------------------------------------------------------------------
1 | //
2 | // Environment.swift
3 | // Sonar
4 | //
5 | // Created by NHSX on 4/23/20.
6 | // Copyright © 2020 NHSX. All rights reserved.
7 | //
8 |
9 | import CoreBluetooth
10 | import Foundation
11 |
12 | struct Environment {
13 | struct Debug {
14 | let registrationId: String
15 | let registrationSecretKey: String
16 | let registrationBroadcastRotationKey: String
17 | }
18 |
19 | static let apiEndpoint = "<%= api_endpoint %>"
20 | static let sonarHeaderValue = "<%= sonar_header_value %>"
21 | static let sonarServiceUUID = CBUUID(string: "<%= sonar_service_uuid %>")
22 | static let sonarIdCharacteristicUUID = CBUUID(string: "<%= sonar_id_characteristic_uuid %>")
23 | static let keepaliveCharacteristicUUID = CBUUID(string: "<%= sonar_keepalive_characteristic_uuid %>")
24 |
25 | <% if defined? debug %>
26 | static let debug: Debug? = Debug(
27 | registrationId: "<%= debug.fetch("registration_id") %>",
28 | registrationSecretKey: "<%= debug.fetch("registration_secret_key") %>",
29 | registrationBroadcastRotationKey: "<%= debug.fetch("registration_broadcast_rotation_key") %>"
30 | )
31 | <% else %>
32 | static let debug: Debug? = nil
33 | <% end %>
34 | }
35 |
--------------------------------------------------------------------------------
/bin/pact/start-mock-server:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -eo pipefail
4 |
5 | SRCROOT=${SRCROOT:-"$(dirname "$0")/../.."}
6 | PACT_SETUP_LOG="$SRCROOT/SonarPactTests/Setup/mock-server.log"
7 | env > "$PACT_SETUP_LOG"
8 |
9 | check_for_failure() {
10 | if [[ $? != 0 ]]; then
11 | echo "######################## PACT TEST SETUP FAILED ########################"
12 | echo
13 | cat "$PACT_SETUP_LOG"
14 | echo
15 | echo
16 | echo "######################## PACT TEST SETUP FAILED ########################"
17 | fi
18 | }
19 |
20 | trap "check_for_failure" EXIT
21 |
22 | if [[ -z "$(command -v "pact-mock-service")" ]]; then
23 | echo "You do not have pact mock service installed. Please run bin/setup-pact." >> $PACT_SETUP_LOG
24 | exit 1
25 | fi
26 |
27 | echo
28 | echo "Starting pact mock service..."
29 | CERTIFICATES_DIRECTORY="${SRCROOT}/SonarPactTests/Certificates"
30 | PACTS_DIRECTORY="${SRCROOT}/Pacts"
31 | pact-mock-service start \
32 | --pact-specification-version 2.0.0 \
33 | --log "${SRCROOT}/SonarPactTests/mock-server-run.log" \
34 | --pact-dir "$PACTS_DIRECTORY" \
35 | -p 1234 \
36 | --ssl \
37 | --sslkey "$CERTIFICATES_DIRECTORY/localhost.key" \
38 | --sslcert "$CERTIFICATES_DIRECTORY/localhost.crt" \
39 | >> "$PACT_SETUP_LOG" 2>&1
40 |
41 | echo "Done."
42 |
43 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCORTargets.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | /** The list of targets supported by the shared transport infrastructure. If adding a new target,
20 | * please use the previous value +1.
21 | */
22 | typedef NS_ENUM(NSInteger, GDTCORTarget) {
23 |
24 | /** A target only used in testing. */
25 | kGDTCORTargetTest = 999,
26 |
27 | /** The CCT target. */
28 | kGDTCORTargetCCT = 1000,
29 |
30 | /** The FLL target. */
31 | kGDTCORTargetFLL = 1001,
32 |
33 | /** The CSH target. The CSH target is a special-purpose backend. Please do not use it without
34 | * permission.
35 | */
36 | kGDTCORTargetCSH = 1002
37 | };
38 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/ReportModel/ReportTable.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct ReportColumnAdapter {
4 | var title: String
5 | var _makeContent: (Row) -> ReportContent
6 |
7 | init(title: String, makeContent: @escaping (Row) -> ReportContent) {
8 | self.title = title
9 | self._makeContent = makeContent
10 | }
11 |
12 | func makeContent(for data: Row) -> ReportContent {
13 | return _makeContent(data)
14 | }
15 | }
16 |
17 | struct ReportTable: ReportContent {
18 | var rows: [Row]
19 | var columns: [ReportColumnAdapter]
20 |
21 | var markdownBody: String {
22 | let titles = columns.map { $0.title }.tableRow
23 | let separator = Array(repeating: "-", count: columns.count).tableRow
24 | let dataRows = rows.map { entry -> String in
25 | return columns.map { $0.makeContent(for: entry).markdownBody }.tableRow
26 | }.joined(separator: "\n")
27 |
28 | return """
29 | \(titles)
30 | \(separator)
31 | \(dataRows)
32 | """
33 | }
34 | }
35 |
36 | private extension Sequence where Element == String {
37 |
38 | var tableRow: String {
39 | let inner = self.lazy.map { $0.markdownBody }.joined(separator: "|")
40 | return "|\(inner)|"
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCOREventTransformer.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | @class GDTCOREvent;
20 |
21 | NS_ASSUME_NONNULL_BEGIN
22 |
23 | /** Defines the API that event transformers must adopt. */
24 | @protocol GDTCOREventTransformer
25 |
26 | @required
27 |
28 | /** Transforms an event by applying some logic to it. Events returned can be nil, for example, in
29 | * instances where the event should be sampled.
30 | *
31 | * @param event The event to transform.
32 | * @return A transformed event, or nil if the transformation dropped the event.
33 | */
34 | - (nullable GDTCOREvent *)transform:(GDTCOREvent *)event;
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Await.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | /**
22 | Waits for promise resolution. The current thread blocks until the promise is resolved.
23 |
24 | @param promise Promise to wait for.
25 | @param error Error the promise was rejected with, or `nil` if the promise was fulfilled.
26 | @return Value the promise was fulfilled with. If the promise was rejected, the return value
27 | is always `nil`, but the error out arg is not.
28 | */
29 | FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise,
30 | NSError **error) NS_REFINED_FOR_SWIFT;
31 |
32 | NS_ASSUME_NONNULL_END
33 |
--------------------------------------------------------------------------------
/bin/pu.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Original implementation: https://github.com/tsif/pu.sh
4 |
5 | set -eo pipefail
6 |
7 | # Required environment variables:
8 | #
9 | # - TEAMID
10 | # - KEYID
11 | # - SECRET
12 | # - BUNDLEID
13 | # - DEVICETOKEN
14 |
15 | PAYLOAD=""
16 |
17 | if [ -z "$1" ]
18 | then
19 | PAYLOAD="{\"aps\":{\"content-available\" : 1, \"foo\":\"bar\"}}"
20 | else
21 | PAYLOAD=$(<"$1")
22 | fi
23 |
24 | function base64URLSafe {
25 | openssl base64 -e -A | tr -- '+/' '-_' | tr -d =
26 | }
27 |
28 | function sign {
29 | printf "$1"| openssl dgst -binary -sha256 -sign "$SECRET" | base64URLSafe
30 | }
31 |
32 | time=$(date +%s)
33 | header=$(printf '{ "alg": "ES256", "kid": "%s" }' "$KEYID" | base64URLSafe)
34 | claims=$(printf '{ "iss": "%s", "iat": %d }' "$TEAMID" "$time" | base64URLSafe)
35 | jwt="$header.$claims.$(sign $header.$claims)"
36 |
37 | # Development server: api.sandbox.push.apple.com:443
38 | #
39 | # Production server: api.push.apple.com:443
40 |
41 | ENDPOINT=https://api.sandbox.push.apple.com:443
42 | URLPATH=/3/device/
43 |
44 | URL=$ENDPOINT$URLPATH$DEVICETOKEN
45 |
46 | curl -v \
47 | --http2 \
48 | --header "authorization: bearer $jwt" \
49 | --header "apns-topic: ${BUNDLEID}" \
50 | --header "apns-push-type: background" \
51 | --header "apns-priority: 5" \
52 | --data "${PAYLOAD}" \
53 | "${URL}"
54 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Notice badge.imageset/Notice badge.pdf:
--------------------------------------------------------------------------------
1 | %PDF-1.7
2 |
3 | 1 0 obj
4 | << >>
5 | endobj
6 |
7 | 2 0 obj
8 | << /Length 3 0 R >>
9 | stream
10 | /DeviceRGB CS
11 | /DeviceRGB cs
12 | q
13 | 1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
14 | 1.000000 0.721569 0.109804 scn
15 | 14.000000 7.000000 m
16 | 14.000000 3.134007 10.865993 0.000000 7.000000 0.000000 c
17 | 3.134007 0.000000 0.000000 3.134007 0.000000 7.000000 c
18 | 0.000000 10.865993 3.134007 14.000000 7.000000 14.000000 c
19 | 10.865993 14.000000 14.000000 10.865993 14.000000 7.000000 c
20 | h
21 | f
22 | n
23 | Q
24 |
25 | endstream
26 | endobj
27 |
28 | 3 0 obj
29 | 382
30 | endobj
31 |
32 | 4 0 obj
33 | << /Annots []
34 | /Type /Page
35 | /MediaBox [ 0.000000 0.000000 14.000000 14.000000 ]
36 | /Resources 1 0 R
37 | /Contents 2 0 R
38 | /Parent 5 0 R
39 | >>
40 | endobj
41 |
42 | 5 0 obj
43 | << /Kids [ 4 0 R ]
44 | /Count 1
45 | /Type /Pages
46 | >>
47 | endobj
48 |
49 | 6 0 obj
50 | << /Type /Catalog
51 | /Pages 5 0 R
52 | >>
53 | endobj
54 |
55 | xref
56 | 0 7
57 | 0000000000 65535 f
58 | 0000000010 00000 n
59 | 0000000034 00000 n
60 | 0000000472 00000 n
61 | 0000000494 00000 n
62 | 0000000667 00000 n
63 | 0000000741 00000 n
64 | trailer
65 | << /ID [ (some) (id) ]
66 | /Root 6 0 R
67 | /Size 7
68 | >>
69 | startxref
70 | 800
71 | %%EOF
--------------------------------------------------------------------------------
/Sonar/Appearance/Colors.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Colors.swift
3 | // Sonar
4 | //
5 | // Created by NHSX on 03/06/2020
6 | // Copyright © 2020 NHSX. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | extension UIColor {
12 | private static let grey = (one: UIColor(named: "NHS Grey 1"),
13 | two: UIColor(named: "NHS Grey 2"),
14 | three: UIColor(named: "NHS Grey 3"),
15 | four: UIColor(named: "NHS Grey 4"),
16 | five: UIColor(named: "NHS Grey 5"))
17 |
18 | static let nhs = (error: UIColor(named: "NHS Error"),
19 | button: UIColor(named: "NHS Button"),
20 | errorBackground: UIColor(named: "NHS Error Background"),
21 | text: UIColor(named: "NHS Text"),
22 | secondaryText: UIColor(named: "NHS Secondary Text"),
23 | blue: UIColor(named: "NHS Blue"),
24 | link: UIColor(named: "NHS Link"),
25 | darkBlue: UIColor(named: "NHS Dark Blue"),
26 | white: UIColor(named: "NHS White"),
27 | highlight: UIColor(named: "NHS Highlight"),
28 | grey: grey,
29 | errorGrey: UIColor(named: "Error Grey"),
30 | warmYellow: UIColor(named: "NHS Warm Yellow"))
31 | }
32 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseInstallations.framework/Headers/FIRInstallationsErrors.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | extern NSString *const kFirebaseInstallationsErrorDomain;
20 |
21 | typedef NS_ENUM(NSUInteger, FIRInstallationsErrorCode) {
22 | /** Unknown error. See `userInfo` for details. */
23 | FIRInstallationsErrorCodeUnknown = 0,
24 |
25 | /** Keychain error. See `userInfo` for details. */
26 | FIRInstallationsErrorCodeKeychain = 1,
27 |
28 | /** Server unreachable. A network error or server is unavailable. See `userInfo` for details. */
29 | FIRInstallationsErrorCodeServerUnreachable = 2,
30 |
31 | /** FirebaseApp configuration issues e.g. invalid GMP-App-ID, etc. See `userInfo` for details. */
32 | FIRInstallationsErrorCodeInvalidConfiguration = 3,
33 |
34 | } NS_SWIFT_NAME(InstallationsErrorCode);
35 |
--------------------------------------------------------------------------------
/Frameworks/GoogleUtilities.framework/Headers/GULLoggerLevel.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | /**
20 | * The log levels used by internal logging.
21 | */
22 | typedef NS_ENUM(NSInteger, GULLoggerLevel) {
23 | /** Error level, matches ASL_LEVEL_ERR. */
24 | GULLoggerLevelError = 3,
25 | /** Warning level, matches ASL_LEVEL_WARNING. */
26 | GULLoggerLevelWarning = 4,
27 | /** Notice level, matches ASL_LEVEL_NOTICE. */
28 | GULLoggerLevelNotice = 5,
29 | /** Info level, matches ASL_LEVEL_INFO. */
30 | GULLoggerLevelInfo = 6,
31 | /** Debug level, matches ASL_LEVEL_DEBUG. */
32 | GULLoggerLevelDebug = 7,
33 | /** Minimum log level. */
34 | GULLoggerLevelMin = GULLoggerLevelError,
35 | /** Maximum log level. */
36 | GULLoggerLevelMax = GULLoggerLevelDebug
37 | } NS_SWIFT_NAME(GoogleLoggerLevel);
38 |
--------------------------------------------------------------------------------
/ci/match/README.md:
--------------------------------------------------------------------------------
1 | ## [fastlane match](https://docs.fastlane.tools/actions/match/)
2 |
3 | This repository contains all your certificates and provisioning profiles needed to build and sign your applications. They are encrypted using OpenSSL via a passphrase.
4 |
5 | **Important:** Make sure this repository is set to private and only your team members have access to this repo.
6 |
7 | Do not modify this file, as it gets overwritten every time you run _match_.
8 |
9 | ### Installation
10 |
11 | Make sure you have the latest version of the Xcode command line tools installed:
12 |
13 | ```
14 | xcode-select --install
15 | ```
16 |
17 | Install _fastlane_ using
18 |
19 | ```
20 | [sudo] gem install fastlane -NV
21 | ```
22 |
23 | or alternatively using `brew cask install fastlane`
24 |
25 | ### Usage
26 |
27 | Navigate to your project folder and run
28 |
29 | ```
30 | fastlane match appstore
31 | ```
32 | ```
33 | fastlane match adhoc
34 | ```
35 | ```
36 | fastlane match development
37 | ```
38 | ```
39 | fastlane match enterprise
40 | ```
41 |
42 | For more information open [fastlane match git repo](https://docs.fastlane.tools/actions/match/)
43 |
44 | ### Content
45 |
46 | #### certs
47 |
48 | This directory contains all your certificates with their private keys
49 |
50 | #### profiles
51 |
52 | This directory contains all provisioning profiles
53 |
54 | ------------------------------------
55 |
56 | For more information open [fastlane match git repo](https://docs.fastlane.tools/actions/match/)
57 |
--------------------------------------------------------------------------------
/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2017 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | // Note that importing GULLoggerLevel.h will lead to a non-modular header
18 | // import error.
19 |
20 | /**
21 | * The log levels used by internal logging.
22 | */
23 | typedef NS_ENUM(NSInteger, FIRLoggerLevel) {
24 | /** Error level, matches ASL_LEVEL_ERR. */
25 | FIRLoggerLevelError = 3,
26 | /** Warning level, matches ASL_LEVEL_WARNING. */
27 | FIRLoggerLevelWarning = 4,
28 | /** Notice level, matches ASL_LEVEL_NOTICE. */
29 | FIRLoggerLevelNotice = 5,
30 | /** Info level, matches ASL_LEVEL_INFO. */
31 | FIRLoggerLevelInfo = 6,
32 | /** Debug level, matches ASL_LEVEL_DEBUG. */
33 | FIRLoggerLevelDebug = 7,
34 | /** Minimum log level. */
35 | FIRLoggerLevelMin = FIRLoggerLevelError,
36 | /** Maximum log level. */
37 | FIRLoggerLevelMax = FIRLoggerLevelDebug
38 | } NS_SWIFT_NAME(FirebaseLoggerLevel);
39 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Spinner.imageset/Circle.pdf:
--------------------------------------------------------------------------------
1 | %PDF-1.7
2 |
3 | 1 0 obj
4 | << >>
5 | endobj
6 |
7 | 2 0 obj
8 | << /Length 3 0 R >>
9 | stream
10 | /DeviceRGB CS
11 | /DeviceRGB cs
12 | q
13 | 1.000000 0.000000 -0.000000 1.000000 2.000000 2.000000 cm
14 | 0.129412 0.168627 0.196078 scn
15 | 10.000000 0.000000 m
16 | 15.522848 0.000000 20.000000 4.477152 20.000000 10.000000 c
17 | 20.000000 15.522848 15.522848 20.000000 10.000000 20.000000 c
18 | 10.000002 18.181818 l
19 | 14.518697 18.181818 18.181822 14.518694 18.181822 10.000000 c
20 | 18.181822 5.481307 14.518697 1.818182 10.000002 1.818182 c
21 | 5.481307 1.818182 1.818182 5.481307 1.818182 10.000000 c
22 | 0.000000 10.000000 l
23 | 0.000000 4.477152 4.477152 0.000000 10.000000 0.000000 c
24 | h
25 | f*
26 | n
27 | Q
28 |
29 | endstream
30 | endobj
31 |
32 | 3 0 obj
33 | 549
34 | endobj
35 |
36 | 4 0 obj
37 | << /Annots []
38 | /Type /Page
39 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ]
40 | /Resources 1 0 R
41 | /Contents 2 0 R
42 | /Parent 5 0 R
43 | >>
44 | endobj
45 |
46 | 5 0 obj
47 | << /Kids [ 4 0 R ]
48 | /Count 1
49 | /Type /Pages
50 | >>
51 | endobj
52 |
53 | 6 0 obj
54 | << /Type /Catalog
55 | /Pages 5 0 R
56 | >>
57 | endobj
58 |
59 | xref
60 | 0 7
61 | 0000000000 65535 f
62 | 0000000010 00000 n
63 | 0000000034 00000 n
64 | 0000000639 00000 n
65 | 0000000661 00000 n
66 | 0000000834 00000 n
67 | 0000000908 00000 n
68 | trailer
69 | << /ID [ (some) (id) ]
70 | /Root 6 0 R
71 | /Size 7
72 | >>
73 | startxref
74 | 967
75 | %%EOF
--------------------------------------------------------------------------------
/bin/pact/setup-build-environment:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -eo pipefail
4 |
5 | SRCROOT=${SRCROOT:-"$(dirname "$0")/../.."}
6 | PACT_SETUP_LOG="$SRCROOT/SonarPactTests/Setup/build-environment-setup.log"
7 | echo $XCTestConfigurationFilePath > "$PACT_SETUP_LOG"
8 |
9 | check_for_failure() {
10 | if [[ $? != 0 ]]; then
11 | echo "######################## PACT TEST SETUP FAILED ########################"
12 | echo
13 | cat "$PACT_SETUP_LOG"
14 | echo
15 | echo "Reinstantiating environment file..."
16 | ENVIRONMENT_FILE_PATH="${SRCROOT}/.secret/Environment.swift"
17 | if [[ -f "$ENVIRONMENT_FILE_PATH.backup" ]]; then
18 | mv "$ENVIRONMENT_FILE_PATH.backup" \
19 | "$ENVIRONMENT_FILE_PATH" >> "$PACT_SETUP_LOG" 2>&1
20 | else
21 | echo "No backup file detected at $ENVIRONMENT_FILE_PATH.backup..."
22 | fi
23 | echo "Done."
24 | echo
25 | echo "######################## PACT TEST SETUP FAILED ########################"
26 | fi
27 | }
28 |
29 | trap "check_for_failure" EXIT
30 |
31 | echo "Rewriting environment file for pact testing..."
32 | ENVIRONMENT_FILE_PATH="${SRCROOT}/.secret/Environment.swift"
33 | if [[ -f "$ENVIRONMENT_FILE_PATH" ]]; then
34 | mv "$ENVIRONMENT_FILE_PATH" "$ENVIRONMENT_FILE_PATH.backup" >> "$PACT_SETUP_LOG" 2>&1
35 | else
36 | echo "You do not seem to have an environment file setup at \
37 | $ENVIRONMENT_FILE_PATH, skipping backup..." >> "$PACT_SETUP_LOG" 2>&1
38 | fi
39 |
40 | cat "${SRCROOT}/SonarPactTests/Environment/environment.json" \
41 | | "${SRCROOT}/bin/make-environment" \
42 | > "$ENVIRONMENT_FILE_PATH"
43 |
--------------------------------------------------------------------------------
/bin/pact/setup:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -eo pipefail
4 |
5 | ROOT_DIR="$(dirname "$0")/../.."
6 | pushd "$ROOT_DIR" > /dev/null
7 |
8 | INSTALL_LOG="./SonarPactTests/Setup/install.log"
9 | touch "$INSTALL_LOG"
10 |
11 | check_for_failure() {
12 | if [[ $? != 0 ]]; then
13 | echo
14 | echo "Something seems to have gone wrong, here are the log contents:"
15 | cat "$INSTALL_LOG"
16 | fi
17 | }
18 |
19 | trap "check_for_failure" EXIT
20 |
21 | if [[ -t 1 ]] && [[ -z "$(xcode-select --print-path | grep -E "/[^/.]+.app/")" ]]; then
22 | echo "You currently have no XCode version selected for developer tools."
23 | echo "Resetting to the default XCode version..."
24 | echo "You may be asked for your password:"
25 | sudo xcode-select --reset > $INSTALL_LOG 2>&1
26 | echo "Done"
27 | fi
28 |
29 | if [[ -z "$(command -v pact-mock-service)" ]]; then
30 | [[ -t 1 ]] && echo "You may be asked for your password:"
31 | echo "Installing pact mock service..."
32 | sudo gem install --no-doc pact-mock_service > $INSTALL_LOG 2>&1
33 | echo "Done"
34 | echo
35 | fi
36 |
37 | if [[ -z "$(command -v pact-broker)" ]]; then
38 | [[ -t 1 ]] && echo "You may be asked for your password:"
39 | echo "Installing pact broker client..."
40 | sudo gem install --no-doc pact_broker-client > $INSTALL_LOG 2>&1
41 | echo "Done"
42 | echo
43 | fi
44 |
45 | echo "Installing Sonar CA certificate as root certificate in booted simulators..."
46 | xcrun simctl keychain booted add-root-cert SonarPactTests/Certificates/sonar.ca.cer > $INSTALL_LOG 2>&1
47 | echo "Done"
48 | echo
49 |
50 | popd > /dev/null
51 |
52 |
--------------------------------------------------------------------------------
/Frameworks/nanopb.framework/Headers/pb_common.h:
--------------------------------------------------------------------------------
1 | /* pb_common.h: Common support functions for pb_encode.c and pb_decode.c.
2 | * These functions are rarely needed by applications directly.
3 | */
4 |
5 | #ifndef PB_COMMON_H_INCLUDED
6 | #define PB_COMMON_H_INCLUDED
7 |
8 | #include "pb.h"
9 |
10 | #ifdef __cplusplus
11 | extern "C" {
12 | #endif
13 |
14 | /* Iterator for pb_field_t list */
15 | struct pb_field_iter_s {
16 | const pb_field_t *start; /* Start of the pb_field_t array */
17 | const pb_field_t *pos; /* Current position of the iterator */
18 | unsigned required_field_index; /* Zero-based index that counts only the required fields */
19 | void *dest_struct; /* Pointer to start of the structure */
20 | void *pData; /* Pointer to current field value */
21 | void *pSize; /* Pointer to count/has field */
22 | };
23 | typedef struct pb_field_iter_s pb_field_iter_t;
24 |
25 | /* Initialize the field iterator structure to beginning.
26 | * Returns false if the message type is empty. */
27 | bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_field_t *fields, void *dest_struct);
28 |
29 | /* Advance the iterator to the next field.
30 | * Returns false when the iterator wraps back to the first field. */
31 | bool pb_field_iter_next(pb_field_iter_t *iter);
32 |
33 | /* Advance the iterator until it points at a field with the given tag.
34 | * Returns false if no such field exists. */
35 | bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag);
36 |
37 | #ifdef __cplusplus
38 | } /* extern "C" */
39 | #endif
40 |
41 | #endif
42 |
43 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Sonar.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct Sonar {
4 | static let compilationRequirements: [CompilationRequirement] = [
5 | MinimumOSCompilationRequirement.macOS10_15_4,
6 | MinimumXcodeCompilationRequirement.xcode11,
7 | MinimumPlatformCompilationRequirement.ios13,
8 | CompilerCompilationRequirement.clang1,
9 | PlatformCompilationRequirement.iOSDevice,
10 | ]
11 |
12 | #warning("These need to be removed.")
13 | // These assets ideally should not be part of the final artefact
14 | // We’re accepting their existence for now
15 | static let acceptedUnwantedAssets: [Asset] = [
16 | .storyboard("Debug"),
17 | ]
18 |
19 | static let requiredAssets: [Asset] = [
20 | .storyboard("Onboarding"),
21 | .storyboard("SelfDiagnosis"),
22 | .storyboard("Status"),
23 | .storyboard("LinkingId"),
24 | .storyboard("Advice"),
25 | .storyboard("BookTest"),
26 | .storyboard("CheckinDrawer"),
27 | .storyboard("Drawer"),
28 | .storyboard("ReferenceCode"),
29 | .storyboard("RegistrationStatus"),
30 | .storyboard("SetStatusState"),
31 | .storyboard("TestingInfo"),
32 | .storyboard("WorkplaceGuidance"),
33 | .nib("LogoStrapline"),
34 | .nib("OnboardingLogoStrapline"),
35 | .nib("ErrorView"),
36 | .strings("Localizable"),
37 | .plist("GoogleService-Info"),
38 | .plist("URLs"),
39 | .bundle("Settings"),
40 | ]
41 |
42 | static let knownAssets = Self.requiredAssets + Self.acceptedUnwantedAssets
43 | }
44 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromiseError.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT;
22 |
23 | /**
24 | Possible error codes in `FBLPromiseErrorDomain`.
25 | */
26 | typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) {
27 | /** Promise failed to resolve in time. */
28 | FBLPromiseErrorCodeTimedOut = 1,
29 | /** Validation predicate returned false. */
30 | FBLPromiseErrorCodeValidationFailure = 2,
31 | } NS_REFINED_FOR_SWIFT;
32 |
33 | NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") {
34 | return error.domain == FBLPromiseErrorDomain &&
35 | error.code == FBLPromiseErrorCodeTimedOut;
36 | }
37 |
38 | NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") {
39 | return error.domain == FBLPromiseErrorDomain &&
40 | error.code == FBLPromiseErrorCodeValidationFailure;
41 | }
42 |
43 | NS_ASSUME_NONNULL_END
44 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Controls_RadioButton_Unselected.imageset/radio_button_unchecked_24px.pdf:
--------------------------------------------------------------------------------
1 | %PDF-1.7
2 |
3 | 1 0 obj
4 | << /ExtGState << /E1 << /ca 0.540000 >> >> >>
5 | endobj
6 |
7 | 2 0 obj
8 | << /Length 3 0 R >>
9 | stream
10 | /DeviceRGB CS
11 | /DeviceRGB cs
12 | q
13 | /E1 gs
14 | 1.000000 0.000000 -0.000000 1.000000 2.000000 2.000000 cm
15 | 0.000000 0.000000 0.000000 scn
16 | 0.000000 10.000000 m
17 | 0.000000 15.520000 4.480000 20.000000 10.000000 20.000000 c
18 | 15.520000 20.000000 20.000000 15.520000 20.000000 10.000000 c
19 | 20.000000 4.480000 15.520000 0.000000 10.000000 0.000000 c
20 | 4.480000 0.000000 0.000000 4.480000 0.000000 10.000000 c
21 | h
22 | 2.000000 10.000000 m
23 | 2.000000 5.580000 5.580000 2.000000 10.000000 2.000000 c
24 | 14.420000 2.000000 18.000000 5.580000 18.000000 10.000000 c
25 | 18.000000 14.420000 14.420000 18.000000 10.000000 18.000000 c
26 | 5.580000 18.000000 2.000000 14.420000 2.000000 10.000000 c
27 | h
28 | f*
29 | n
30 | Q
31 |
32 | endstream
33 | endobj
34 |
35 | 3 0 obj
36 | 655
37 | endobj
38 |
39 | 4 0 obj
40 | << /Annots []
41 | /Type /Page
42 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ]
43 | /Resources 1 0 R
44 | /Contents 2 0 R
45 | /Parent 5 0 R
46 | >>
47 | endobj
48 |
49 | 5 0 obj
50 | << /Kids [ 4 0 R ]
51 | /Count 1
52 | /Type /Pages
53 | >>
54 | endobj
55 |
56 | 6 0 obj
57 | << /Type /Catalog
58 | /Pages 5 0 R
59 | >>
60 | endobj
61 |
62 | xref
63 | 0 7
64 | 0000000000 65535 f
65 | 0000000010 00000 n
66 | 0000000074 00000 n
67 | 0000000785 00000 n
68 | 0000000807 00000 n
69 | 0000000980 00000 n
70 | 0000001054 00000 n
71 | trailer
72 | << /ID [ (some) (id) ]
73 | /Root 6 0 R
74 | /Size 7
75 | >>
76 | startxref
77 | 1113
78 | %%EOF
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Arrow_Highlight.imageset/Arrow-highlight.pdf:
--------------------------------------------------------------------------------
1 | %PDF-1.7
2 |
3 | 1 0 obj
4 | << >>
5 | endobj
6 |
7 | 2 0 obj
8 | << /Length 3 0 R >>
9 | stream
10 | /DeviceRGB CS
11 | /DeviceRGB cs
12 | q
13 | 1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
14 | 0.000000 0.447059 0.807843 scn
15 | 28.000000 14.000000 m
16 | 28.000000 6.268013 21.731987 0.000000 14.000000 0.000000 c
17 | 6.268013 0.000000 0.000000 6.268013 0.000000 14.000000 c
18 | 0.000000 21.731987 6.268013 28.000000 14.000000 28.000000 c
19 | 21.731987 28.000000 28.000000 21.731987 28.000000 14.000000 c
20 | h
21 | f
22 | n
23 | Q
24 | q
25 | -1.000000 -0.000000 0.000000 -1.000000 21.999998 22.000000 cm
26 | 1.000000 1.000000 1.000000 scn
27 | 16.000000 9.000000 m
28 | 3.830000 9.000000 l
29 | 9.420000 14.590000 l
30 | 8.000000 16.000000 l
31 | 0.000000 8.000000 l
32 | 8.000000 0.000000 l
33 | 9.410000 1.410000 l
34 | 3.830000 7.000000 l
35 | 16.000000 7.000000 l
36 | 16.000000 9.000000 l
37 | h
38 | f
39 | n
40 | Q
41 |
42 | endstream
43 | endobj
44 |
45 | 3 0 obj
46 | 695
47 | endobj
48 |
49 | 4 0 obj
50 | << /Annots []
51 | /Type /Page
52 | /MediaBox [ 0.000000 0.000000 28.000000 28.000000 ]
53 | /Resources 1 0 R
54 | /Contents 2 0 R
55 | /Parent 5 0 R
56 | >>
57 | endobj
58 |
59 | 5 0 obj
60 | << /Kids [ 4 0 R ]
61 | /Count 1
62 | /Type /Pages
63 | >>
64 | endobj
65 |
66 | 6 0 obj
67 | << /Type /Catalog
68 | /Pages 5 0 R
69 | >>
70 | endobj
71 |
72 | xref
73 | 0 7
74 | 0000000000 65535 f
75 | 0000000010 00000 n
76 | 0000000034 00000 n
77 | 0000000785 00000 n
78 | 0000000807 00000 n
79 | 0000000980 00000 n
80 | 0000001054 00000 n
81 | trailer
82 | << /ID [ (some) (id) ]
83 | /Root 6 0 R
84 | /Size 7
85 | >>
86 | startxref
87 | 1113
88 | %%EOF
--------------------------------------------------------------------------------
/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2017 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | #import
20 |
21 | NS_ASSUME_NONNULL_BEGIN
22 |
23 | /**
24 | * This interface provides global level properties that the developer can tweak.
25 | */
26 | NS_SWIFT_NAME(FirebaseConfiguration)
27 | @interface FIRConfiguration : NSObject
28 |
29 | /** Returns the shared configuration object. */
30 | @property(class, nonatomic, readonly) FIRConfiguration *sharedInstance NS_SWIFT_NAME(shared);
31 |
32 | /**
33 | * Sets the logging level for internal Firebase logging. Firebase will only log messages
34 | * that are logged at or below loggerLevel. The messages are logged both to the Xcode
35 | * console and to the device's log. Note that if an app is running from AppStore, it will
36 | * never log above FIRLoggerLevelNotice even if loggerLevel is set to a higher (more verbose)
37 | * setting.
38 | *
39 | * @param loggerLevel The maximum logging level. The default level is set to FIRLoggerLevelNotice.
40 | */
41 | - (void)setLoggerLevel:(FIRLoggerLevel)loggerLevel;
42 |
43 | @end
44 |
45 | NS_ASSUME_NONNULL_END
46 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Headers/Protobuf-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "GPBArray.h"
14 | #import "GPBArray_PackagePrivate.h"
15 | #import "GPBBootstrap.h"
16 | #import "GPBCodedInputStream.h"
17 | #import "GPBCodedInputStream_PackagePrivate.h"
18 | #import "GPBCodedOutputStream.h"
19 | #import "GPBCodedOutputStream_PackagePrivate.h"
20 | #import "GPBDescriptor.h"
21 | #import "GPBDescriptor_PackagePrivate.h"
22 | #import "GPBDictionary.h"
23 | #import "GPBDictionary_PackagePrivate.h"
24 | #import "GPBExtensionInternals.h"
25 | #import "GPBExtensionRegistry.h"
26 | #import "GPBMessage.h"
27 | #import "GPBMessage_PackagePrivate.h"
28 | #import "GPBProtocolBuffers.h"
29 | #import "GPBProtocolBuffers_RuntimeSupport.h"
30 | #import "GPBRootObject.h"
31 | #import "GPBRootObject_PackagePrivate.h"
32 | #import "GPBRuntimeTypes.h"
33 | #import "GPBUnknownField.h"
34 | #import "GPBUnknownFieldSet.h"
35 | #import "GPBUnknownFieldSet_PackagePrivate.h"
36 | #import "GPBUnknownField_PackagePrivate.h"
37 | #import "GPBUtilities.h"
38 | #import "GPBUtilities_PackagePrivate.h"
39 | #import "GPBWellKnownTypes.h"
40 | #import "GPBWireFormat.h"
41 | #import "Any.pbobjc.h"
42 | #import "Api.pbobjc.h"
43 | #import "Duration.pbobjc.h"
44 | #import "Empty.pbobjc.h"
45 | #import "FieldMask.pbobjc.h"
46 | #import "SourceContext.pbobjc.h"
47 | #import "Struct.pbobjc.h"
48 | #import "Timestamp.pbobjc.h"
49 | #import "Type.pbobjc.h"
50 | #import "Wrappers.pbobjc.h"
51 |
52 | FOUNDATION_EXPORT double protobufVersionNumber;
53 | FOUNDATION_EXPORT const unsigned char protobufVersionString[];
54 |
55 |
--------------------------------------------------------------------------------
/Sonar/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // Sonar
4 | //
5 | // Created by NHSX on 09/03/2020.
6 | // Copyright © 2020 NHSX. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import CoreData
11 | import Firebase
12 |
13 | @UIApplicationMain
14 | class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate, MessagingDelegate {
15 | var window: UIWindow?
16 |
17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
18 | FirebaseApp.configure()
19 | Messaging.messaging().delegate = self
20 |
21 | if #available(iOS 10.0, *) {
22 | // For iOS 10 display notification (sent via APNS)
23 | UNUserNotificationCenter.current().delegate = self
24 |
25 | let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
26 | UNUserNotificationCenter.current().requestAuthorization(
27 | options: authOptions,
28 | completionHandler: {_, _ in })
29 | } else {
30 | let settings: UIUserNotificationSettings =
31 | UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
32 | application.registerUserNotificationSettings(settings)
33 | }
34 |
35 | application.registerForRemoteNotifications()
36 |
37 | let rootViewController = RootViewController()
38 |
39 | window = UIWindow(frame: UIScreen.main.bounds)
40 | window?.rootViewController = rootViewController
41 | window?.makeKeyAndVisible()
42 | return true
43 | }
44 |
45 | func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
46 | print("fcmToken: \(fcmToken)")
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Configurations/Project.xcconfig:
--------------------------------------------------------------------------------
1 |
2 | SDKROOT = iphoneos
3 | IPHONEOS_DEPLOYMENT_TARGET = 11.0
4 | TARGETED_DEVICE_FAMILY = 1
5 | SWIFT_VERSION = 5.0
6 |
7 | CODE_SIGN_IDENTITY = iPhone Developer
8 | DEVELOPMENT_TEAM = 877YMUFLMF
9 |
10 | // Xcode default flags:
11 |
12 | COPY_PHASE_STRIP = NO
13 | ALWAYS_SEARCH_USER_PATHS = NO
14 | GCC_NO_COMMON_BLOCKS = YES
15 | GCC_C_LANGUAGE_STANDARD = gnu11
16 | CLANG_CXX_LANGUAGE_STANDARD = gnu++14
17 | CLANG_CXX_LIBRARY = libc++
18 | CLANG_ENABLE_MODULES = YES
19 | CLANG_ENABLE_OBJC_ARC = YES
20 | CLANG_ENABLE_OBJC_WEAK = YES
21 | ENABLE_STRICT_OBJC_MSGSEND = YES
22 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
23 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES
24 | CLANG_WARN_EMPTY_BODY = YES
25 | CLANG_WARN_BOOL_CONVERSION = YES
26 | CLANG_WARN_CONSTANT_CONVERSION = YES
27 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES
28 | CLANG_WARN_ENUM_CONVERSION = YES
29 | CLANG_WARN_INT_CONVERSION = YES
30 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
31 | CLANG_WARN_INFINITE_RECURSION = YES
32 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
33 | CLANG_WARN_STRICT_PROTOTYPES = YES
34 | CLANG_WARN_COMMA = YES
35 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
36 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
37 | CLANG_WARN_UNREACHABLE_CODE = YES
38 | GCC_WARN_UNUSED_FUNCTION = YES
39 | GCC_WARN_UNUSED_VARIABLE = YES
40 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
41 | CLANG_WARN_SUSPICIOUS_MOVE = YES
42 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
43 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
44 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
45 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
46 | GCC_WARN_UNDECLARED_SELECTOR = YES
47 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
48 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
49 | CLANG_ANALYZER_NONNULL = YES
50 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE
51 | MTL_FAST_MATH = YES
52 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Registration_status_ok.imageset/Circle.pdf:
--------------------------------------------------------------------------------
1 | %PDF-1.7
2 |
3 | 1 0 obj
4 | << >>
5 | endobj
6 |
7 | 2 0 obj
8 | << /Length 3 0 R >>
9 | stream
10 | /DeviceRGB CS
11 | /DeviceRGB cs
12 | q
13 | 1.000000 0.000000 -0.000000 1.000000 1.000000 1.000000 cm
14 | 0.129412 0.168627 0.196078 scn
15 | 11.000000 22.000000 m
16 | 4.927715 22.000000 0.000000 17.072285 0.000000 11.000000 c
17 | 0.000000 4.927715 4.927715 0.000000 11.000000 0.000000 c
18 | 17.072285 0.000000 22.000000 4.927715 22.000000 11.000000 c
19 | 22.000000 17.072285 17.072285 22.000000 11.000000 22.000000 c
20 | h
21 | 11.000000 21.000000 m
22 | 5.480000 21.000000 1.000000 16.520000 1.000000 11.000000 c
23 | 1.000000 5.480000 5.480000 1.000000 11.000000 1.000000 c
24 | 16.520000 1.000000 21.000000 5.480000 21.000000 11.000000 c
25 | 21.000000 16.520000 16.520000 21.000000 11.000000 21.000000 c
26 | h
27 | 4.000000 11.000000 m
28 | 9.000000 6.000000 l
29 | 18.000000 15.000000 l
30 | 16.590000 16.420000 l
31 | 9.000000 8.830000 l
32 | 5.410000 12.410000 l
33 | 4.000000 11.000000 l
34 | h
35 | f*
36 | n
37 | Q
38 |
39 | endstream
40 | endobj
41 |
42 | 3 0 obj
43 | 799
44 | endobj
45 |
46 | 4 0 obj
47 | << /Annots []
48 | /Type /Page
49 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ]
50 | /Resources 1 0 R
51 | /Contents 2 0 R
52 | /Parent 5 0 R
53 | >>
54 | endobj
55 |
56 | 5 0 obj
57 | << /Kids [ 4 0 R ]
58 | /Count 1
59 | /Type /Pages
60 | >>
61 | endobj
62 |
63 | 6 0 obj
64 | << /Type /Catalog
65 | /Pages 5 0 R
66 | >>
67 | endobj
68 |
69 | xref
70 | 0 7
71 | 0000000000 65535 f
72 | 0000000010 00000 n
73 | 0000000034 00000 n
74 | 0000000889 00000 n
75 | 0000000911 00000 n
76 | 0000001084 00000 n
77 | 0000001158 00000 n
78 | trailer
79 | << /ID [ (some) (id) ]
80 | /Root 6 0 R
81 | /Size 7
82 | >>
83 | startxref
84 | 1217
85 | %%EOF
--------------------------------------------------------------------------------
/Frameworks/FirebaseMessaging.framework/Headers/FIRMessagingExtensionHelper.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 || \
18 | __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_10_14
19 | #import
20 | #endif
21 |
22 | NS_ASSUME_NONNULL_BEGIN
23 |
24 | /// This class is used to automatically populate a notification with an image if it is
25 | /// specified in the notification body via the `image` parameter. Images and other
26 | /// rich content can be populated manually without the use of this class. See the
27 | /// `UNNotificationServiceExtension` type for more details.
28 | __IOS_AVAILABLE(10.0) __OSX_AVAILABLE(10.14) @interface FIRMessagingExtensionHelper : NSObject
29 |
30 | /// Call this API to complete your notification content modification. If you like to
31 | /// overwrite some properties of the content instead of using the default payload,
32 | /// make sure to make your customized motification to the content before passing it to
33 | /// this call.
34 | - (void)populateNotificationContent:(UNMutableNotificationContent *)content
35 | withContentHandler:(void (^)(UNNotificationContent *_Nonnull))contentHandler;
36 |
37 | @end
38 |
39 | NS_ASSUME_NONNULL_END
40 |
--------------------------------------------------------------------------------
/Sonar/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(DISPLAY_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 2.0.0
19 | CFBundleVersion
20 | 632
21 | ITSAppUsesNonExemptEncryption
22 |
23 | LSApplicationCategoryType
24 |
25 | LSRequiresIPhoneOS
26 |
27 | UIBackgroundModes
28 |
29 | remote-notification
30 |
31 | UILaunchStoryboardName
32 | LaunchScreen
33 | UIRequiredDeviceCapabilities
34 |
35 | armv7
36 |
37 | UISupportedInterfaceOrientations
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationLandscapeLeft
41 | UIInterfaceOrientationLandscapeRight
42 |
43 | UISupportedInterfaceOrientations~ipad
44 |
45 | UIInterfaceOrientationPortrait
46 | UIInterfaceOrientationPortraitUpsideDown
47 | UIInterfaceOrientationLandscapeLeft
48 | UIInterfaceOrientationLandscapeRight
49 |
50 | UIUserInterfaceStyle
51 | Light
52 |
53 |
54 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Commands/ArchiveReportCommand.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import ArgumentParser
3 |
4 | struct ArchiveReportCommand: ParsableCommand {
5 | static var configuration = CommandConfiguration(
6 | commandName: "archive",
7 | abstract: "Produces report from an Xcode archive."
8 | )
9 |
10 | @Argument(help: "Path to the archive to make a report for.")
11 | var archive: String
12 |
13 | @Option(help: "Path to use for the output.")
14 | var output: String
15 |
16 | func run() throws {
17 | let fileManager = FileManager()
18 |
19 | let currentDirectory = URL(fileURLWithPath: fileManager.currentDirectoryPath)
20 | let reportFolder = URL(fileURLWithPath: output, relativeTo: currentDirectory)
21 |
22 | try fileManager.createDirectory(at: reportFolder, withIntermediateDirectories: true, attributes: nil)
23 |
24 | let appURL = try findApplication()
25 | let reporter = ArtefactReporter(appURL: appURL, reportFolder: reportFolder)
26 | try reporter.run()
27 | }
28 |
29 | private func findApplication() throws -> URL {
30 | let fileManager = FileManager()
31 |
32 | let currentDirectory = URL(fileURLWithPath: fileManager.currentDirectoryPath)
33 | let archiveFolder = URL(fileURLWithPath: archive, relativeTo: currentDirectory)
34 |
35 | let applicationsFolder = archiveFolder
36 | .appendingPathComponent("Products")
37 | .appendingPathComponent("Applications")
38 |
39 | guard let app = try fileManager.contentsOfDirectory(atPath: applicationsFolder.path).first(where: { $0.hasSuffix(".app") }) else {
40 | throw CustomError("Could not find an app in archive \(archiveFolder)")
41 | }
42 |
43 | return applicationsFolder.appendingPathComponent(app)
44 | }
45 |
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCORUploader.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | #import
20 | #import
21 | #import
22 | #import
23 | #import
24 |
25 | NS_ASSUME_NONNULL_BEGIN
26 |
27 | /** This protocol defines the common interface for uploader implementations. */
28 | @protocol GDTCORUploader
29 |
30 | @required
31 |
32 | /** Returns YES if the uploader can make an upload attempt, NO otherwise.
33 | *
34 | * @param target The target being checked.
35 | * @param conditions The conditions that the upload attempt is likely to occur under.
36 | * @return YES if the uploader can make an upload attempt, NO otherwise.
37 | */
38 | - (BOOL)readyToUploadTarget:(GDTCORTarget)target conditions:(GDTCORUploadConditions)conditions;
39 |
40 | /** Uploads events to the backend using this specific backend's chosen format.
41 | *
42 | * @param package The event package to upload. Make sure to call -completeDelivery.
43 | */
44 | - (void)uploadPackage:(GDTCORUploadPackage *)package;
45 |
46 | @end
47 |
48 | NS_ASSUME_NONNULL_END
49 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCORRegistrar.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | #import
20 | #import
21 | #import
22 |
23 | NS_ASSUME_NONNULL_BEGIN
24 |
25 | /** Manages the registration of targets with the transport SDK. */
26 | @interface GDTCORRegistrar : NSObject
27 |
28 | /** Creates and/or returns the singleton instance.
29 | *
30 | * @return The singleton instance of this class.
31 | */
32 | + (instancetype)sharedInstance;
33 |
34 | /** Registers a backend implementation with the GoogleDataTransport infrastructure.
35 | *
36 | * @param backend The backend object to register.
37 | * @param target The target this backend object will be responsible for.
38 | */
39 | - (void)registerUploader:(id)backend target:(GDTCORTarget)target;
40 |
41 | /** Registers a event prioritizer implementation with the GoogleDataTransport infrastructure.
42 | *
43 | * @param prioritizer The prioritizer object to register.
44 | * @param target The target this prioritizer object will be responsible for.
45 | */
46 | - (void)registerPrioritizer:(id)prioritizer target:(GDTCORTarget)target;
47 |
48 | @end
49 |
50 | NS_ASSUME_NONNULL_END
51 |
--------------------------------------------------------------------------------
/Sonar/Assets.xcassets/Controls_RadioButton_Selected.imageset/radio_button_checked_24px.pdf:
--------------------------------------------------------------------------------
1 | %PDF-1.7
2 |
3 | 1 0 obj
4 | << >>
5 | endobj
6 |
7 | 2 0 obj
8 | << /Length 3 0 R >>
9 | stream
10 | /DeviceRGB CS
11 | /DeviceRGB cs
12 | q
13 | 1.000000 0.000000 -0.000000 1.000000 2.000000 2.000000 cm
14 | 0.000000 0.368627 0.721569 scn
15 | 10.000000 20.000000 m
16 | 4.480000 20.000000 0.000000 15.520000 0.000000 10.000000 c
17 | 0.000000 4.480000 4.480000 0.000000 10.000000 0.000000 c
18 | 15.520000 0.000000 20.000000 4.480000 20.000000 10.000000 c
19 | 20.000000 15.520000 15.520000 20.000000 10.000000 20.000000 c
20 | h
21 | 10.000000 2.000000 m
22 | 5.580000 2.000000 2.000000 5.580000 2.000000 10.000000 c
23 | 2.000000 14.420000 5.580000 18.000000 10.000000 18.000000 c
24 | 14.420000 18.000000 18.000000 14.420000 18.000000 10.000000 c
25 | 18.000000 5.580000 14.420000 2.000000 10.000000 2.000000 c
26 | h
27 | 5.000000 10.000000 m
28 | 5.000000 12.761424 7.238576 15.000000 10.000000 15.000000 c
29 | 12.761424 15.000000 15.000000 12.761424 15.000000 10.000000 c
30 | 15.000000 7.238576 12.761424 5.000000 10.000000 5.000000 c
31 | 7.238576 5.000000 5.000000 7.238576 5.000000 10.000000 c
32 | h
33 | f*
34 | n
35 | Q
36 |
37 | endstream
38 | endobj
39 |
40 | 3 0 obj
41 | 910
42 | endobj
43 |
44 | 4 0 obj
45 | << /Annots []
46 | /Type /Page
47 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ]
48 | /Resources 1 0 R
49 | /Contents 2 0 R
50 | /Parent 5 0 R
51 | >>
52 | endobj
53 |
54 | 5 0 obj
55 | << /Kids [ 4 0 R ]
56 | /Count 1
57 | /Type /Pages
58 | >>
59 | endobj
60 |
61 | 6 0 obj
62 | << /Type /Catalog
63 | /Pages 5 0 R
64 | >>
65 | endobj
66 |
67 | xref
68 | 0 7
69 | 0000000000 65535 f
70 | 0000000010 00000 n
71 | 0000000034 00000 n
72 | 0000001000 00000 n
73 | 0000001022 00000 n
74 | 0000001195 00000 n
75 | 0000001269 00000 n
76 | trailer
77 | << /ID [ (some) (id) ]
78 | /Root 6 0 R
79 | /Size 7
80 | >>
81 | startxref
82 | 1328
83 | %%EOF
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Do.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(DoAdditions)
22 |
23 | typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE("");
24 |
25 | /**
26 | Creates a pending promise and executes `work` block asynchronously.
27 |
28 | @param work A block that returns a value or an error used to resolve the promise.
29 | @return A new pending promise.
30 | */
31 | + (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE("");
32 |
33 | /**
34 | Creates a pending promise and executes `work` block asynchronously on the given queue.
35 |
36 | @param queue A queue to invoke the `work` block on.
37 | @param work A block that returns a value or an error used to resolve the promise.
38 | @return A new pending promise.
39 | */
40 | + (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT;
41 |
42 | @end
43 |
44 | /**
45 | Convenience dot-syntax wrappers for `FBLPromise` `do` operators.
46 | Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... })
47 | */
48 | @interface FBLPromise(DotSyntax_DoAdditions)
49 |
50 | + (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX
51 | NS_SWIFT_UNAVAILABLE("");
52 |
53 | @end
54 |
55 | NS_ASSUME_NONNULL_END
56 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Always.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(AlwaysAdditions)
22 |
23 | typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE("");
24 |
25 | /**
26 | @param work A block that always executes, no matter if the receiver is rejected or fulfilled.
27 | @return A new pending promise to be resolved with same resolution as the receiver.
28 | */
29 | - (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE("");
30 |
31 | /**
32 | @param queue A queue to dispatch on.
33 | @param work A block that always executes, no matter if the receiver is rejected or fulfilled.
34 | @return A new pending promise to be resolved with same resolution as the receiver.
35 | */
36 | - (FBLPromise *)onQueue:(dispatch_queue_t)queue
37 | always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT;
38 |
39 | @end
40 |
41 | /**
42 | Convenience dot-syntax wrappers for `FBLPromise` `always` operators.
43 | Usage: promise.always(^{...})
44 | */
45 | @interface FBLPromise(DotSyntax_AlwaysAdditions)
46 |
47 | - (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX
48 | NS_SWIFT_UNAVAILABLE("");
49 | - (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX
50 | NS_SWIFT_UNAVAILABLE("");
51 |
52 | @end
53 |
54 | NS_ASSUME_NONNULL_END
55 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Artefact/ArtefactReporter.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct ArtefactReporter {
4 |
5 | var appURL: URL
6 |
7 | var reportFolder: URL
8 |
9 | func run() throws {
10 | let report = try self.report(for: appURL)
11 | try report.save(to: reportFolder)
12 | }
13 |
14 | private func report(for appURL: URL) throws -> Report {
15 |
16 | let infoURL = appURL.appendingPathComponent("Info.plist")
17 |
18 | let data = try Data(contentsOf: infoURL)
19 | let appInfo = try PropertyListDecoder().decode(AppInfo.self, from: data)
20 |
21 | let appInfoReporter = AppInfoReporter(compilationRequirements: Sonar.compilationRequirements)
22 | let appFilesReporter = AppFilesReporter()
23 |
24 | return Report(
25 | pages: [
26 | ReportPage(
27 | name: "Overview",
28 | sections: [
29 | [
30 | ReportSection(
31 | title: "App Icon",
32 | content: ""),
33 | ],
34 | appInfoReporter.overviewSections(for: appInfo),
35 | [
36 | ReportSection(
37 | title: "Integrity Checks",
38 | content: "See [Integrity Checks](IntegrityChecks.md) for more technical reports."),
39 | ],
40 | ].flatMap { $0 }
41 | ),
42 | ReportPage(
43 | name: "IntegrityChecks",
44 | sections: [
45 | appInfoReporter.technicalSections(for: appInfo),
46 | appFilesReporter.reportSections(forAppAt: appURL, info: appInfo),
47 | ].flatMap { $0 }
48 | ),
49 | ],
50 | attachments: appFilesReporter.attachments(forAppAt: appURL, info: appInfo)
51 | )
52 | }
53 | }
54 |
55 |
--------------------------------------------------------------------------------
/Reporting/Sources/Reporting/Commands/IPAReportCommand.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import ArgumentParser
3 |
4 | struct IPAReportCommand: ParsableCommand {
5 | static var configuration = CommandConfiguration(
6 | commandName: "ipa",
7 | abstract: "Produces report from an ipa file."
8 | )
9 |
10 | @Argument(help: "Path to the ipa to make a report for.")
11 | var ipa: String
12 |
13 | @Option(help: "Path to use for the output.")
14 | var output: String
15 |
16 | func run() throws {
17 | let fileManager = FileManager()
18 |
19 | let currentDirectory = URL(fileURLWithPath: fileManager.currentDirectoryPath)
20 | let reportFolder = URL(fileURLWithPath: output, relativeTo: currentDirectory)
21 |
22 | try fileManager.createDirectory(at: reportFolder, withIntermediateDirectories: true, attributes: nil)
23 |
24 | try withApplication { appURL in
25 | let reporter = ArtefactReporter(appURL: appURL, reportFolder: reportFolder)
26 | try reporter.run()
27 | }
28 | }
29 |
30 | private func withApplication(perform work: (URL) throws -> Void) throws {
31 | let fileManager = FileManager()
32 |
33 | let currentDirectory = URL(fileURLWithPath: fileManager.currentDirectoryPath)
34 | let ipaURL = URL(fileURLWithPath: ipa, relativeTo: currentDirectory)
35 |
36 | let temp = try fileManager.url(for: .itemReplacementDirectory, in: .userDomainMask, appropriateFor: ipaURL, create: true)
37 | defer { try? fileManager.removeItem(at: temp) }
38 |
39 | try Bash.run("unzip", ipa, "-d", "'\(temp.path)'")
40 |
41 | let applicationsFolder = temp
42 | .appendingPathComponent("Payload")
43 |
44 | guard let app = try fileManager.contentsOfDirectory(atPath: applicationsFolder.path).first(where: { $0.hasSuffix(".app") }) else {
45 | throw CustomError("Could not extract an app from \(ipa)")
46 | }
47 |
48 | try work(applicationsFolder.appendingPathComponent(app))
49 | }
50 |
51 | }
52 |
53 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Timeout.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(TimeoutAdditions)
22 |
23 | /**
24 | Waits for a promise with the specified `timeout`.
25 |
26 | @param interval Time to wait in seconds.
27 | @return A new pending promise that gets either resolved with same resolution as the receiver or
28 | rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`.
29 | */
30 | - (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE("");
31 |
32 | /**
33 | Waits for a promise with the specified `timeout`.
34 |
35 | @param queue A queue to dispatch on.
36 | @param interval Time to wait in seconds.
37 | @return A new pending promise that gets either resolved with same resolution as the receiver or
38 | rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`.
39 | */
40 | - (FBLPromise *)onQueue:(dispatch_queue_t)queue
41 | timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT;
42 |
43 | @end
44 |
45 | /**
46 | Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators.
47 | Usage: promise.timeout(...)
48 | */
49 | @interface FBLPromise(DotSyntax_TimeoutAdditions)
50 |
51 | - (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
52 | - (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX
53 | NS_SWIFT_UNAVAILABLE("");
54 |
55 | @end
56 |
57 | NS_ASSUME_NONNULL_END
58 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCORClock.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | /** This class manages the device clock and produces snapshots of the current time. */
22 | @interface GDTCORClock : NSObject
23 |
24 | /** The wallclock time, UTC, in milliseconds. */
25 | @property(nonatomic, readonly) int64_t timeMillis;
26 |
27 | /** The offset from UTC in seconds. */
28 | @property(nonatomic, readonly) int64_t timezoneOffsetSeconds;
29 |
30 | /** The kernel boot time when this clock was created. */
31 | @property(nonatomic, readonly) int64_t kernelBootTime;
32 |
33 | /** The device uptime when this clock was created. */
34 | @property(nonatomic, readonly) int64_t uptime;
35 |
36 | /** Creates a GDTCORClock object using the current time and offsets.
37 | *
38 | * @return A new GDTCORClock object representing the current time state.
39 | */
40 | + (instancetype)snapshot;
41 |
42 | /** Creates a GDTCORClock object representing a time in the future, relative to now.
43 | *
44 | * @param millisInTheFuture The millis in the future from now this clock should represent.
45 | * @return An instance representing a future time.
46 | */
47 | + (instancetype)clockSnapshotInTheFuture:(uint64_t)millisInTheFuture;
48 |
49 | /** Compares one clock with another, returns YES if the caller is after the parameter.
50 | *
51 | * @return YES if the calling clock's time is after the given clock's time.
52 | */
53 | - (BOOL)isAfter:(GDTCORClock *)otherClock;
54 |
55 | @end
56 |
57 | NS_ASSUME_NONNULL_END
58 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Headers/GPBProtocolBuffers_RuntimeSupport.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers - Google's data interchange format
2 | // Copyright 2008 Google Inc. All rights reserved.
3 | // https://developers.google.com/protocol-buffers/
4 | //
5 | // Redistribution and use in source and binary forms, with or without
6 | // modification, are permitted provided that the following conditions are
7 | // met:
8 | //
9 | // * Redistributions of source code must retain the above copyright
10 | // notice, this list of conditions and the following disclaimer.
11 | // * Redistributions in binary form must reproduce the above
12 | // copyright notice, this list of conditions and the following disclaimer
13 | // in the documentation and/or other materials provided with the
14 | // distribution.
15 | // * Neither the name of Google Inc. nor the names of its
16 | // contributors may be used to endorse or promote products derived from
17 | // this software without specific prior written permission.
18 | //
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
31 | // This header is meant to only be used by the generated source, it should not
32 | // be included in code using protocol buffers.
33 |
34 | #import "GPBBootstrap.h"
35 |
36 | #import "GPBDescriptor_PackagePrivate.h"
37 | #import "GPBExtensionInternals.h"
38 | #import "GPBMessage_PackagePrivate.h"
39 | #import "GPBRootObject_PackagePrivate.h"
40 | #import "GPBUtilities_PackagePrivate.h"
41 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Headers/GPBRootObject_PackagePrivate.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers - Google's data interchange format
2 | // Copyright 2008 Google Inc. All rights reserved.
3 | // https://developers.google.com/protocol-buffers/
4 | //
5 | // Redistribution and use in source and binary forms, with or without
6 | // modification, are permitted provided that the following conditions are
7 | // met:
8 | //
9 | // * Redistributions of source code must retain the above copyright
10 | // notice, this list of conditions and the following disclaimer.
11 | // * Redistributions in binary form must reproduce the above
12 | // copyright notice, this list of conditions and the following disclaimer
13 | // in the documentation and/or other materials provided with the
14 | // distribution.
15 | // * Neither the name of Google Inc. nor the names of its
16 | // contributors may be used to endorse or promote products derived from
17 | // this software without specific prior written permission.
18 | //
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
31 | #import
32 |
33 | #import "GPBRootObject.h"
34 |
35 | @class GPBExtensionDescriptor;
36 |
37 | @interface GPBRootObject ()
38 |
39 | // Globally register.
40 | + (void)globallyRegisterExtension:(GPBExtensionDescriptor *)field;
41 |
42 | @end
43 |
44 | // Returns YES if the selector was resolved and added to the class,
45 | // NO otherwise.
46 | BOOL GPBResolveExtensionClassMethod(Class self, SEL sel);
47 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Delay.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(DelayAdditions)
22 |
23 | /**
24 | Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or
25 | rejects with the same error immediately.
26 |
27 | @param interval Time to wait in seconds.
28 | @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects
29 | with the same error immediately.
30 | */
31 | - (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE("");
32 |
33 | /**
34 | Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or
35 | rejects with the same error immediately.
36 |
37 | @param queue A queue to dispatch on.
38 | @param interval Time to wait in seconds.
39 | @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects
40 | with the same error immediately.
41 | */
42 | - (FBLPromise *)onQueue:(dispatch_queue_t)queue
43 | delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT;
44 |
45 | @end
46 |
47 | /**
48 | Convenience dot-syntax wrappers for `FBLPromise` `delay` operators.
49 | Usage: promise.delay(...)
50 | */
51 | @interface FBLPromise(DotSyntax_DelayAdditions)
52 |
53 | - (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
54 | - (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX
55 | NS_SWIFT_UNAVAILABLE("");
56 |
57 | @end
58 |
59 | NS_ASSUME_NONNULL_END
60 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Headers/GPBUnknownField_PackagePrivate.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers - Google's data interchange format
2 | // Copyright 2008 Google Inc. All rights reserved.
3 | // https://developers.google.com/protocol-buffers/
4 | //
5 | // Redistribution and use in source and binary forms, with or without
6 | // modification, are permitted provided that the following conditions are
7 | // met:
8 | //
9 | // * Redistributions of source code must retain the above copyright
10 | // notice, this list of conditions and the following disclaimer.
11 | // * Redistributions in binary form must reproduce the above
12 | // copyright notice, this list of conditions and the following disclaimer
13 | // in the documentation and/or other materials provided with the
14 | // distribution.
15 | // * Neither the name of Google Inc. nor the names of its
16 | // contributors may be used to endorse or promote products derived from
17 | // this software without specific prior written permission.
18 | //
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
31 | #import
32 |
33 | #import "GPBUnknownField.h"
34 |
35 | @class GPBCodedOutputStream;
36 |
37 | @interface GPBUnknownField ()
38 |
39 | - (void)writeToOutput:(GPBCodedOutputStream *)output;
40 | - (size_t)serializedSize;
41 |
42 | - (void)writeAsMessageSetExtensionToOutput:(GPBCodedOutputStream *)output;
43 | - (size_t)serializedSizeAsMessageSetExtension;
44 |
45 | - (void)mergeFromField:(GPBUnknownField *)other;
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/Frameworks/GoogleUtilities.framework/Headers/GULNSData+zlib.h:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Google
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | #import
16 |
17 | /// This is a copy of Google Toolbox for Mac library to avoid creating an extra framework.
18 |
19 | // NOTE: For 64bit, none of these apis handle input sizes >32bits, they will return nil when given
20 | // such data. To handle data of that size you really should be streaming it rather then doing it all
21 | // in memory.
22 |
23 | @interface NSData (GULGzip)
24 |
25 | /// Returns an data as the result of decompressing the payload of |data|.The data to decompress must
26 | /// be a gzipped payloads.
27 | + (NSData *)gul_dataByInflatingGzippedData:(NSData *)data error:(NSError **)error;
28 |
29 | /// Returns an compressed data with the result of gzipping the payload of |data|. Uses the default
30 | /// compression level.
31 | + (NSData *)gul_dataByGzippingData:(NSData *)data error:(NSError **)error;
32 |
33 | FOUNDATION_EXPORT NSString *const GULNSDataZlibErrorDomain;
34 | FOUNDATION_EXPORT NSString *const GULNSDataZlibErrorKey; // NSNumber
35 | FOUNDATION_EXPORT NSString *const GULNSDataZlibRemainingBytesKey; // NSNumber
36 |
37 | typedef NS_ENUM(NSInteger, GULNSDataZlibError) {
38 | GULNSDataZlibErrorGreaterThan32BitsToCompress = 1024,
39 | // An internal zlib error.
40 | // GULNSDataZlibErrorKey will contain the error value.
41 | // NSLocalizedDescriptionKey may contain an error string from zlib.
42 | // Look in zlib.h for list of errors.
43 | GULNSDataZlibErrorInternal,
44 | // There was left over data in the buffer that was not used.
45 | // GULNSDataZlibRemainingBytesKey will contain number of remaining bytes.
46 | GULNSDataZlibErrorDataRemaining
47 | };
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/fastlane/Fastfile:
--------------------------------------------------------------------------------
1 | # vim: ft=ruby:
2 |
3 | require "fileutils"
4 |
5 | default_platform(:ios)
6 |
7 | platform :ios do
8 | # This was a bear to get working and I'm not entirely convinced that we
9 | # won't need this command again in the future, so I'm leaving this command
10 | # here for posterity.
11 | #
12 | # security set-key-partition-list -S apple-tool:,apple: -s -k "" \
13 | # ~/Library/Keychains/fastlane_tmp_keychain-db
14 |
15 | module Sonar
16 | Config = Struct.new(:bundle_id, :apple_id, keyword_init: true)
17 |
18 | CONFIGS = {
19 | beta: Config.new(
20 | bundle_id: "uk.nhs.nhsx.beta.CoLocate",
21 | apple_id: 1504244021,
22 | ),
23 | internal: Config.new(
24 | bundle_id: "uk.nhs.nhsx.sonar.internal",
25 | apple_id: 1507438009,
26 | ),
27 | production: Config.new(
28 | bundle_id: "uk.nhs.nhsx.sonar",
29 | apple_id: 1507396059,
30 | ),
31 | }
32 | end
33 |
34 | desc "Cut a release for Test Flight"
35 | lane :release do |options|
36 | sonar_env = options.fetch(:sonar_env).to_sym
37 | sonar_config = Sonar::CONFIGS.fetch(sonar_env)
38 |
39 | setup_ci()
40 |
41 | sync_code_signing(
42 | type: "appstore",
43 | readonly: true,
44 | app_identifier: sonar_config.bundle_id,
45 | git_url: "./ci/match",
46 | )
47 |
48 | update_code_signing_settings(
49 | use_automatic_signing: false,
50 | path: "./Sonar.xcodeproj",
51 | targets: ["Sonar"],
52 | code_sign_identity: "iPhone Distribution",
53 | profile_name: "match AppStore #{sonar_config.bundle_id}",
54 | )
55 |
56 | Dir.chdir ".." do
57 | File.write(".secret/Sonar.xcconfig", <<~XCCONFIG)
58 | #include "Sonar/Environments/#{sonar_env}.xcconfig"
59 | XCCONFIG
60 | sh "./bin/make-environment <<< $ENVIRONMENT_JSON_#{sonar_env.upcase} > .secret/Environment.swift"
61 | File.write(".secret/GoogleService-Info.plist", ENV.fetch("GOOGLE_SERVICE_INFO_PLIST_#{sonar_env.upcase}"))
62 | end
63 |
64 | build_app(
65 | scheme: "Sonar",
66 | )
67 |
68 | upload_to_testflight(
69 | username: ENV.fetch("APPLE_USERNAME"),
70 | apple_id: sonar_config.apple_id.to_s,
71 | skip_waiting_for_build_processing: true,
72 | )
73 | end
74 | end
75 |
--------------------------------------------------------------------------------
/Frameworks/GoogleDataTransport.framework/Headers/GDTCORLifecycle.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 Google
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import
18 |
19 | #import
20 |
21 | @class GDTCOREvent;
22 |
23 | NS_ASSUME_NONNULL_BEGIN
24 |
25 | /** A protocol defining the lifecycle events objects in the library must respond to immediately. */
26 | @protocol GDTCORLifecycleProtocol
27 |
28 | @optional
29 |
30 | /** Indicates an imminent app termination in the rare occurrence when -applicationWillTerminate: has
31 | * been called.
32 | *
33 | * @param app The GDTCORApplication instance.
34 | */
35 | - (void)appWillTerminate:(GDTCORApplication *)app;
36 |
37 | /** Indicates that the app is moving to background and eventual suspension or the current UIScene is
38 | * deactivating.
39 | *
40 | * @param app The GDTCORApplication instance.
41 | */
42 | - (void)appWillBackground:(GDTCORApplication *)app;
43 |
44 | /** Indicates that the app is resuming operation or a UIScene is activating.
45 | *
46 | * @param app The GDTCORApplication instance.
47 | */
48 | - (void)appWillForeground:(GDTCORApplication *)app;
49 |
50 | @end
51 |
52 | /** This class manages the library's response to app lifecycle events.
53 | *
54 | * When backgrounding, the library doesn't stop processing events, it's just that several background
55 | * tasks will end up being created for every event that's sent, and the stateful objects of the
56 | * library (GDTCORStorage and GDTCORUploadCoordinator singletons) will deserialize themselves from
57 | * and to disk before and after every operation, respectively.
58 | */
59 | @interface GDTCORLifecycle : NSObject
60 |
61 | @end
62 |
63 | NS_ASSUME_NONNULL_END
64 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Catch.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(CatchAdditions)
22 |
23 | typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE("");
24 |
25 | /**
26 | Creates a pending promise which eventually gets resolved with same resolution as the receiver.
27 | If receiver is rejected, then `reject` block is executed asynchronously.
28 |
29 | @param reject A block to handle the error that receiver was rejected with.
30 | @return A new pending promise.
31 | */
32 | - (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE("");
33 |
34 | /**
35 | Creates a pending promise which eventually gets resolved with same resolution as the receiver.
36 | If receiver is rejected, then `reject` block is executed asynchronously on the given queue.
37 |
38 | @param queue A queue to invoke the `reject` block on.
39 | @param reject A block to handle the error that receiver was rejected with.
40 | @return A new pending promise.
41 | */
42 | - (FBLPromise *)onQueue:(dispatch_queue_t)queue
43 | catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT;
44 |
45 | @end
46 |
47 | /**
48 | Convenience dot-syntax wrappers for `FBLPromise` `catch` operators.
49 | Usage: promise.catch(^(NSError *error) { ... })
50 | */
51 | @interface FBLPromise(DotSyntax_CatchAdditions)
52 |
53 | - (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
54 | - (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX
55 | NS_SWIFT_UNAVAILABLE("");
56 |
57 | @end
58 |
59 | NS_ASSUME_NONNULL_END
60 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Headers/Empty.pbobjc.h:
--------------------------------------------------------------------------------
1 | // Generated by the protocol buffer compiler. DO NOT EDIT!
2 | // source: google/protobuf/empty.proto
3 |
4 | // This CPP symbol can be defined to use imports that match up to the framework
5 | // imports needed when using CocoaPods.
6 | #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
7 | #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
8 | #endif
9 |
10 | #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
11 | #import
12 | #import
13 | #import
14 | #else
15 | #import "GPBDescriptor.h"
16 | #import "GPBMessage.h"
17 | #import "GPBRootObject.h"
18 | #endif
19 |
20 | #if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
21 | #error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
22 | #endif
23 | #if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
24 | #error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
25 | #endif
26 |
27 | // @@protoc_insertion_point(imports)
28 |
29 | #pragma clang diagnostic push
30 | #pragma clang diagnostic ignored "-Wdeprecated-declarations"
31 |
32 | CF_EXTERN_C_BEGIN
33 |
34 | NS_ASSUME_NONNULL_BEGIN
35 |
36 | #pragma mark - GPBEmptyRoot
37 |
38 | /**
39 | * Exposes the extension registry for this file.
40 | *
41 | * The base class provides:
42 | * @code
43 | * + (GPBExtensionRegistry *)extensionRegistry;
44 | * @endcode
45 | * which is a @c GPBExtensionRegistry that includes all the extensions defined by
46 | * this file and all files that it depends on.
47 | **/
48 | @interface GPBEmptyRoot : GPBRootObject
49 | @end
50 |
51 | #pragma mark - GPBEmpty
52 |
53 | /**
54 | * A generic empty message that you can re-use to avoid defining duplicated
55 | * empty messages in your APIs. A typical example is to use it as the request
56 | * or the response type of an API method. For instance:
57 | *
58 | * service Foo {
59 | * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
60 | * }
61 | *
62 | * The JSON representation for `Empty` is empty JSON object `{}`.
63 | **/
64 | @interface GPBEmpty : GPBMessage
65 |
66 | @end
67 |
68 | NS_ASSUME_NONNULL_END
69 |
70 | CF_EXTERN_C_END
71 |
72 | #pragma clang diagnostic pop
73 |
74 | // @@protoc_insertion_point(global_scope)
75 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Headers/GPBRootObject.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers - Google's data interchange format
2 | // Copyright 2008 Google Inc. All rights reserved.
3 | // https://developers.google.com/protocol-buffers/
4 | //
5 | // Redistribution and use in source and binary forms, with or without
6 | // modification, are permitted provided that the following conditions are
7 | // met:
8 | //
9 | // * Redistributions of source code must retain the above copyright
10 | // notice, this list of conditions and the following disclaimer.
11 | // * Redistributions in binary form must reproduce the above
12 | // copyright notice, this list of conditions and the following disclaimer
13 | // in the documentation and/or other materials provided with the
14 | // distribution.
15 | // * Neither the name of Google Inc. nor the names of its
16 | // contributors may be used to endorse or promote products derived from
17 | // this software without specific prior written permission.
18 | //
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
31 | #import
32 |
33 | @class GPBExtensionRegistry;
34 |
35 | NS_ASSUME_NONNULL_BEGIN
36 |
37 | /**
38 | * Every generated proto file defines a local "Root" class that exposes a
39 | * GPBExtensionRegistry for all the extensions defined by that file and
40 | * the files it depends on.
41 | **/
42 | @interface GPBRootObject : NSObject
43 |
44 | /**
45 | * @return An extension registry for the given file and all the files it depends
46 | * on.
47 | **/
48 | + (GPBExtensionRegistry *)extensionRegistry;
49 |
50 | @end
51 |
52 | NS_ASSUME_NONNULL_END
53 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Recover.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(RecoverAdditions)
22 |
23 | typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE("");
24 |
25 | /**
26 | Provides a new promise to recover in case the receiver gets rejected.
27 |
28 | @param recovery A block to handle the error that the receiver was rejected with.
29 | @return A new pending promise to use instead of the rejected one that gets resolved with resolution
30 | returned from `recovery` block.
31 | */
32 | - (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE("");
33 |
34 | /**
35 | Provides a new promise to recover in case the receiver gets rejected.
36 |
37 | @param queue A queue to dispatch on.
38 | @param recovery A block to handle the error that the receiver was rejected with.
39 | @return A new pending promise to use instead of the rejected one that gets resolved with resolution
40 | returned from `recovery` block.
41 | */
42 | - (FBLPromise *)onQueue:(dispatch_queue_t)queue
43 | recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT;
44 |
45 | @end
46 |
47 | /**
48 | Convenience dot-syntax wrappers for `FBLPromise` `recover` operators.
49 | Usage: promise.recover(^id(NSError *error) {...})
50 | */
51 | @interface FBLPromise(DotSyntax_RecoverAdditions)
52 |
53 | - (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX
54 | NS_SWIFT_UNAVAILABLE("");
55 | - (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX
56 | NS_SWIFT_UNAVAILABLE("");
57 |
58 | @end
59 |
60 | NS_ASSUME_NONNULL_END
61 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Testing.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | /**
22 | Waits for all scheduled promises blocks.
23 |
24 | @param timeout Maximum time to wait.
25 | @return YES if all promises blocks have completed before the timeout and NO otherwise.
26 | */
27 | FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT;
28 |
29 | @interface FBLPromise(TestingAdditions)
30 |
31 | /**
32 | Dispatch group for promises that is typically used to wait for all scheduled blocks.
33 | */
34 | @property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT;
35 |
36 | /**
37 | Properties to get the current state of the promise.
38 | */
39 | @property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT;
40 | @property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT;
41 | @property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT;
42 |
43 | /**
44 | Set of arbitrary objects to keep strongly while the promise is pending.
45 | Becomes nil after the promise has been resolved.
46 | */
47 | @property(nonatomic, readonly, nullable) NSMutableSet *pendingObjects NS_REFINED_FOR_SWIFT;
48 |
49 | /**
50 | Value the promise was fulfilled with.
51 | Can be nil if the promise is still pending, was resolved with nil or after it has been rejected.
52 | */
53 | @property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT;
54 |
55 | /**
56 | Error the promise was rejected with.
57 | Can be nil if the promise is still pending or after it has been fulfilled.
58 | */
59 | @property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT;
60 |
61 | @end
62 |
63 | NS_ASSUME_NONNULL_END
64 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Async.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(AsyncAdditions)
22 |
23 | typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE("");
24 | typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE("");
25 | typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill,
26 | FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE("");
27 |
28 | /**
29 | Creates a pending promise and executes `work` block asynchronously.
30 |
31 | @param work A block to perform any operations needed to resolve the promise.
32 | @return A new pending promise.
33 | */
34 | + (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE("");
35 |
36 | /**
37 | Creates a pending promise and executes `work` block asynchronously on the given queue.
38 |
39 | @param queue A queue to invoke the `work` block on.
40 | @param work A block to perform any operations needed to resolve the promise.
41 | @return A new pending promise.
42 | */
43 | + (instancetype)onQueue:(dispatch_queue_t)queue
44 | async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT;
45 |
46 | @end
47 |
48 | /**
49 | Convenience dot-syntax wrappers for `FBLPromise` `async` operators.
50 | Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... })
51 | */
52 | @interface FBLPromise(DotSyntax_AsyncAdditions)
53 |
54 | + (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
55 | + (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX
56 | NS_SWIFT_UNAVAILABLE("");
57 |
58 | @end
59 |
60 | NS_ASSUME_NONNULL_END
61 |
--------------------------------------------------------------------------------
/Frameworks/PromisesObjC.framework/Headers/FBLPromise+Validate.h:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright 2018 Google Inc. All rights reserved.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at:
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | #import "FBLPromise.h"
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface FBLPromise(ValidateAdditions)
22 |
23 | typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE("");
24 |
25 | /**
26 | Validates a fulfilled value or rejects the value if it can not be validated.
27 |
28 | @param predicate An expression to validate.
29 | @return A new pending promise that gets either resolved with same resolution as the receiver or
30 | rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`.
31 | */
32 | - (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE("");
33 |
34 | /**
35 | Validates a fulfilled value or rejects the value if it can not be validated.
36 |
37 | @param queue A queue to dispatch on.
38 | @param predicate An expression to validate.
39 | @return A new pending promise that gets either resolved with same resolution as the receiver or
40 | rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`.
41 | */
42 | - (FBLPromise *)onQueue:(dispatch_queue_t)queue
43 | validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT;
44 |
45 | @end
46 |
47 | /**
48 | Convenience dot-syntax wrappers for `FBLPromise` `validate` operators.
49 | Usage: promise.validate(^BOOL(id value) { ... })
50 | */
51 | @interface FBLPromise(DotSyntax_ValidateAdditions)
52 |
53 | - (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX
54 | NS_SWIFT_UNAVAILABLE("");
55 | - (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn
56 | FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
57 |
58 | @end
59 |
60 | NS_ASSUME_NONNULL_END
61 |
--------------------------------------------------------------------------------
/Frameworks/Protobuf.framework/Headers/SourceContext.pbobjc.h:
--------------------------------------------------------------------------------
1 | // Generated by the protocol buffer compiler. DO NOT EDIT!
2 | // source: google/protobuf/source_context.proto
3 |
4 | // This CPP symbol can be defined to use imports that match up to the framework
5 | // imports needed when using CocoaPods.
6 | #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
7 | #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
8 | #endif
9 |
10 | #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
11 | #import
12 | #import
13 | #import
14 | #else
15 | #import "GPBDescriptor.h"
16 | #import "GPBMessage.h"
17 | #import "GPBRootObject.h"
18 | #endif
19 |
20 | #if GOOGLE_PROTOBUF_OBJC_VERSION < 30002
21 | #error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
22 | #endif
23 | #if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
24 | #error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
25 | #endif
26 |
27 | // @@protoc_insertion_point(imports)
28 |
29 | #pragma clang diagnostic push
30 | #pragma clang diagnostic ignored "-Wdeprecated-declarations"
31 |
32 | CF_EXTERN_C_BEGIN
33 |
34 | NS_ASSUME_NONNULL_BEGIN
35 |
36 | #pragma mark - GPBSourceContextRoot
37 |
38 | /**
39 | * Exposes the extension registry for this file.
40 | *
41 | * The base class provides:
42 | * @code
43 | * + (GPBExtensionRegistry *)extensionRegistry;
44 | * @endcode
45 | * which is a @c GPBExtensionRegistry that includes all the extensions defined by
46 | * this file and all files that it depends on.
47 | **/
48 | @interface GPBSourceContextRoot : GPBRootObject
49 | @end
50 |
51 | #pragma mark - GPBSourceContext
52 |
53 | typedef GPB_ENUM(GPBSourceContext_FieldNumber) {
54 | GPBSourceContext_FieldNumber_FileName = 1,
55 | };
56 |
57 | /**
58 | * `SourceContext` represents information about the source of a
59 | * protobuf element, like the file in which it is defined.
60 | **/
61 | @interface GPBSourceContext : GPBMessage
62 |
63 | /**
64 | * The path-qualified name of the .proto file that contained the associated
65 | * protobuf element. For example: `"google/protobuf/source_context.proto"`.
66 | **/
67 | @property(nonatomic, readwrite, copy, null_resettable) NSString *fileName;
68 |
69 | @end
70 |
71 | NS_ASSUME_NONNULL_END
72 |
73 | CF_EXTERN_C_END
74 |
75 | #pragma clang diagnostic pop
76 |
77 | // @@protoc_insertion_point(global_scope)
78 |
--------------------------------------------------------------------------------