├── .browserslistrc ├── .circleci └── config.yml ├── .editorconfig ├── .env ├── .eslintrc.js ├── .gimbalrc.yml ├── .github ├── CrossBrowserTesting-logo.svg ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── codeql-analysis.yml ├── .gitignore ├── .npmrc ├── .postcssrc.js ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── android ├── .gitignore ├── Gemfile ├── app │ ├── .npmignore │ ├── build.gradle │ ├── capacitor.build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── getcapacitor │ │ │ └── myapp │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── java │ │ │ └── com │ │ │ │ └── moduscreate │ │ │ │ └── beep │ │ │ │ └── MainActivity.java │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ └── ic_action_name.png │ │ │ ├── drawable-land-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-land-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_action_name.png │ │ │ ├── drawable-port-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-port-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable-xhdpi │ │ │ └── ic_action_name.png │ │ │ ├── drawable-xxhdpi │ │ │ └── ic_action_name.png │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── launch_splash.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ ├── config.xml │ │ │ └── file_paths.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── getcapacitor │ │ └── myapp │ │ └── ExampleUnitTest.java ├── build.gradle ├── capacitor-cordova-android-plugins │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ ├── .gitkeep │ │ └── com │ │ │ └── xmartlabs │ │ │ └── cordova │ │ │ └── market │ │ │ └── Market.java │ │ └── res │ │ └── .gitkeep ├── capacitor.settings.gradle ├── fastlane │ ├── Appfile │ ├── Fastfile │ └── metadata │ │ └── android │ │ └── en-US │ │ ├── full_description.txt │ │ ├── images │ │ ├── icon.png │ │ ├── promoGraphic.png │ │ └── tvBanner.png │ │ ├── short_description.txt │ │ ├── title.txt │ │ └── video.txt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── signing │ ├── .gitkeep │ └── keystore.properties.example ├── babel.config.js ├── capacitor.config.json ├── ios ├── .gitignore ├── App │ ├── App.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── App.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── App │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── AppIcon-20x20@1x.png │ │ │ │ ├── AppIcon-20x20@2x-1.png │ │ │ │ ├── AppIcon-20x20@2x.png │ │ │ │ ├── AppIcon-20x20@3x.png │ │ │ │ ├── AppIcon-29x29@1x.png │ │ │ │ ├── AppIcon-29x29@2x-1.png │ │ │ │ ├── AppIcon-29x29@2x.png │ │ │ │ ├── AppIcon-29x29@3x.png │ │ │ │ ├── AppIcon-40x40@1x.png │ │ │ │ ├── AppIcon-40x40@2x-1.png │ │ │ │ ├── AppIcon-40x40@2x.png │ │ │ │ ├── AppIcon-40x40@3x.png │ │ │ │ ├── AppIcon-512@2x.png │ │ │ │ ├── AppIcon-60x60@2x.png │ │ │ │ ├── AppIcon-60x60@3x.png │ │ │ │ ├── AppIcon-76x76@1x.png │ │ │ │ ├── AppIcon-76x76@2x.png │ │ │ │ ├── AppIcon-83.5x83.5@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── Splash.imageset │ │ │ │ ├── Beep-Splash-Screen-1.png │ │ │ │ ├── Beep-Splash-Screen-2.png │ │ │ │ ├── Beep-Splash-Screen.png │ │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── capacitor.config.json │ │ └── config.xml │ ├── Gemfile │ ├── HockeySDK-iOS │ │ ├── BuildAgent │ │ ├── HockeySDK.embeddedframework │ │ │ ├── HockeySDK.framework │ │ │ │ ├── Headers │ │ │ │ │ ├── BITAuthenticator.h │ │ │ │ │ ├── BITCrashAttachment.h │ │ │ │ │ ├── BITCrashDetails.h │ │ │ │ │ ├── BITCrashManager.h │ │ │ │ │ ├── BITCrashManagerDelegate.h │ │ │ │ │ ├── BITCrashMetaData.h │ │ │ │ │ ├── BITHockeyAttachment.h │ │ │ │ │ ├── BITHockeyBaseManager.h │ │ │ │ │ ├── BITHockeyBaseViewController.h │ │ │ │ │ ├── BITHockeyManager.h │ │ │ │ │ ├── BITHockeyManagerDelegate.h │ │ │ │ │ ├── BITMetricsManager.h │ │ │ │ │ ├── BITStoreUpdateManager.h │ │ │ │ │ ├── BITStoreUpdateManagerDelegate.h │ │ │ │ │ ├── BITUpdateManager.h │ │ │ │ │ ├── BITUpdateManagerDelegate.h │ │ │ │ │ ├── BITUpdateViewController.h │ │ │ │ │ ├── HockeySDK.h │ │ │ │ │ ├── HockeySDKEnums.h │ │ │ │ │ ├── HockeySDKFeatureConfig.h │ │ │ │ │ └── HockeySDKNullability.h │ │ │ │ ├── HockeySDK │ │ │ │ └── Modules │ │ │ │ │ └── module.modulemap │ │ │ └── HockeySDKResources.bundle │ │ │ │ ├── AppIconPlaceHolder.png │ │ │ │ ├── Arrow.png │ │ │ │ ├── Arrow@2x.png │ │ │ │ ├── Arrow@3x.png │ │ │ │ ├── Blur.png │ │ │ │ ├── Blur@2x.png │ │ │ │ ├── Blur@3x.png │ │ │ │ ├── Cancel.png │ │ │ │ ├── Cancel@2x.png │ │ │ │ ├── Cancel@3x.png │ │ │ │ ├── FeedbackPlaceholder.png │ │ │ │ ├── IconGradient.png │ │ │ │ ├── IconGradient@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── Ok.png │ │ │ │ ├── Ok@2x.png │ │ │ │ ├── Ok@3x.png │ │ │ │ ├── Rectangle.png │ │ │ │ ├── Rectangle@2x.png │ │ │ │ ├── Rectangle@3x.png │ │ │ │ ├── authorize_denied.png │ │ │ │ ├── authorize_denied@2x.png │ │ │ │ ├── authorize_denied@3x.png │ │ │ │ ├── bg.png │ │ │ │ ├── buttonRoundedDelete.png │ │ │ │ ├── buttonRoundedDelete@2x.png │ │ │ │ ├── buttonRoundedDeleteHighlighted.png │ │ │ │ ├── buttonRoundedDeleteHighlighted@2x.png │ │ │ │ ├── buttonRoundedRegular.png │ │ │ │ ├── buttonRoundedRegular@2x.png │ │ │ │ ├── buttonRoundedRegularHighlighted.png │ │ │ │ ├── buttonRoundedRegularHighlighted@2x.png │ │ │ │ ├── de.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── en.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── es.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── fa.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── feedbackActivity.png │ │ │ │ ├── feedbackActivity@2x.png │ │ │ │ ├── feedbackActivity@2x~ipad.png │ │ │ │ ├── feedbackActivity@3x.png │ │ │ │ ├── feedbackActivity~ipad.png │ │ │ │ ├── fr.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── hr.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── hu.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── iconCamera.png │ │ │ │ ├── iconCamera@2x.png │ │ │ │ ├── it.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── ja.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── nb.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── nl.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── pt-PT.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── pt.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── ru.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ ├── tr.lproj │ │ │ │ └── HockeySDK.strings │ │ │ │ └── zh-Hans.lproj │ │ │ │ └── HockeySDK.strings │ │ └── LICENSE │ ├── Podfile │ ├── Podfile.lock │ └── fastlane │ │ ├── Appfile │ │ ├── Fastfile │ │ └── README.md └── capacitor-cordova-ios-plugins │ ├── CordovaPlugins.podspec │ ├── CordovaPluginsResources.podspec │ ├── CordovaPluginsStatic.podspec │ ├── resources │ └── .gitkeep │ └── sources │ ├── .gitkeep │ └── CordovaPluginMarket │ ├── CDVMarket.h │ └── CDVMarket.m ├── jest.config.js ├── package-lock.json ├── package.json ├── privacy_policy.md ├── proxy.js ├── public ├── _redirects ├── favicon.ico ├── img │ └── icons │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-180x180.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── msapplication-icon-144x144.png │ │ ├── mstile-150x150.png │ │ └── safari-pinned-tab.svg ├── index.html ├── lottie │ └── unsafe │ │ ├── Antenna_Back_Bee.png │ │ ├── Antenna_Front_Bee.png │ │ ├── Beam_1-1_Bee.png │ │ ├── Beam_1-2_Bee.png │ │ ├── Beam_1-3_Bee.png │ │ ├── Beam_2-1_Bee.png │ │ ├── Beam_2-2_Bee.png │ │ ├── Beam_2-3_Bee.png │ │ ├── Body_Bee.png │ │ ├── Brow_Left_Bee.png │ │ ├── Brow_Right_Bee.png │ │ ├── Butt_Bee.png │ │ ├── Caution_Bee.png │ │ ├── Eye_Left_Bee.png │ │ ├── Eye_Right_Bee.png │ │ ├── Glow-Forehead_Bee.png │ │ ├── Hand_1_Bee.png │ │ ├── Hand_2_Bee.png │ │ ├── Interface_Bee.png │ │ ├── Item_1_Bee.png │ │ ├── Item_2_Bee.png │ │ ├── Item_3_Bee.png │ │ ├── Leg_Back_Bee.png │ │ ├── Leg_Front_Bee.png │ │ ├── Mouth_Bee.png │ │ ├── Shade_Bee.png │ │ ├── Signal_Bee.png │ │ ├── T-Shirt_3_Bee.png │ │ ├── T-Shirt_4_Bee.png │ │ ├── Wing_Left_Bee.png │ │ ├── Wing_RIght_Bee.png │ │ └── Zoom_Bee.png ├── manifest.json └── robots.txt ├── sonar-project.properties ├── src ├── appService.js ├── breachesService.js ├── components │ ├── BaseModal.vue │ ├── BasePageCheckForHack.vue │ ├── BreachItem.vue │ ├── ModalReviewApp.vue │ ├── PageBreach.vue │ ├── PageBreaches.vue │ ├── PageCheckAccount.vue │ ├── PageCheckPassword.vue │ ├── PageHome.vue │ ├── PageHomeModalHowItWorks.vue │ ├── PagePwdModalHashProtected.vue │ ├── PageSafe.vue │ ├── PageUnsafe.vue │ └── PageUnsafeModalSuggestions.vue ├── helpers │ └── index.js ├── images │ ├── Bee-Happy-Avatar@2x.svg │ ├── Bee-Not-Happy-Avatar@2x.svg │ ├── Beep-Logo.svg │ ├── Icon-Account.svg │ ├── Icon-Character-Negative.svg │ ├── Icon-Character-Positive.svg │ ├── Icon-Character-Swarm.svg │ ├── Icon-Filter-Active.svg │ ├── Icon-Filter-InActive.svg │ ├── Icon-Hash-Protected.svg │ ├── Icon-Password.svg │ ├── Icon-Show-Hide-Salmon.svg │ ├── Icon-Show-Hide.svg │ ├── Icon-Verified-Checkmark.svg │ ├── Modus-Labs-Logo.svg │ ├── app-store-badge.svg │ ├── google-play-badge.png │ ├── logo.png │ ├── modus.logo.svg │ └── pwa-badge.svg ├── lottie │ └── unsafe │ │ └── data.json ├── main.js ├── mixins │ ├── hasModal.js │ ├── network.js │ ├── reviewAppModal.js │ └── toggleStatusbarColor.js ├── registerServiceWorker.js ├── reviewAppService.js ├── router.js └── theme │ └── common.css ├── tests └── unit │ └── .eslintrc.js ├── tests_root └── wdio │ ├── babel.config.js │ ├── configs │ ├── chromedriver.js │ ├── wdio.conf.js │ └── wdio.conf.local.chrome.js │ ├── features │ ├── check_account.feature │ ├── check_password.feature │ └── home.feature │ ├── package-lock.json │ ├── package.json │ ├── page-objects │ ├── account.page.js │ ├── common.js │ ├── home.page.js │ └── password.page.js │ └── step-definitions │ ├── given.js │ ├── then.js │ └── when.js ├── vue.config.js └── yarn.lock /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not ie <= 8 -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | [*] 3 | end_of_line = lf 4 | insert_final_newline = true 5 | trim_trailing_whitespace = true 6 | 7 | [*.{js,vue,css}] 8 | charset = utf-8 9 | indent_style = space 10 | indent_size = 2 11 | continuation_indent_size = 6 12 | 13 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | VUE_APP_NAME=BEEP 2 | VUE_APP_INITIAL_STATUSBAR_COLOR=#FFFFFF 3 | VUE_APP_UNSAFE_STATUSBAR_COLOR=#FF5C5D 4 | VUE_APP_SAFE_STATUSBAR_COLOR=#47BD8F 5 | VUE_APP_STORE_REVIEWS_ENABLED=true 6 | VUE_APP_IOS_APP_ID = 'id1434675665' 7 | VUE_APP_SUPPORT_EMAIL = 'contact@moduscreate.com' 8 | VUE_APP_SUPPORT_EMAIL_SUBJECT = 'Feedback: About beep' 9 | VUE_APP_PROXY_HOST = 'http://localhost:5000' 10 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true, 5 | }, 6 | extends: [ 7 | 'plugin:vue/essential', 8 | '@vue/prettier', 9 | 'eslint:recommended', 10 | 'plugin:promise/recommended', 11 | ], 12 | plugins: ['vue', 'promise'], 13 | rules: { 14 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 15 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 16 | }, 17 | parserOptions: { 18 | parser: 'babel-eslint', 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /.gimbalrc.yml: -------------------------------------------------------------------------------- 1 | configs: 2 | heap-snapshot: 3 | threshold: 4 | Documents: 12 5 | Frames: 6 6 | LayoutCount: 10 7 | Nodes: 500 8 | RecalcStyleCount: 7 9 | lighthouse: 10 | threshold: 11 | accessibility: 50 12 | 'best-practices': 90 13 | performance: 50 14 | pwa: 100 15 | seo: 90 16 | size: 17 | - path: ./dist/css/app.*.css 18 | maxSize: 1.6 KB 19 | - path: ./dist/css/chunk-vendors.*.css 20 | maxSize: 3.75 KB 21 | # ugly path coming up to no match chunk-vendors file 22 | - path: ./dist/css/chunk-{a,b,c,d,e,f,0,1,2,3,4,5,6,7,8,9}*.*.css 23 | maxSize: 1 KB 24 | - path: ./dist/js/app.*.js 25 | maxSize: 1 MB 26 | - path: ./dist/js/chunk-vendors.*.js 27 | maxSize: 110 KB 28 | # ugly path coming up to no match chunk-vendors file 29 | - path: ./dist/js/chunk-{a,b,c,d,e,f,0,1,2,3,4,5,6,7,8,9}*.*.js 30 | maxSize: 70 KB 31 | - path: ./dist/ 32 | maxSize: 13 MB 33 | unused-source: 34 | threshold: 35 | - path: /css/app.*.css 36 | maxSize: 30% 37 | - path: /css/chunk*.css 38 | maxSize: 85% 39 | - path: /js/app.*.js 40 | maxSize: 30% 41 | - path: /js/chunk-vendors.*.js 42 | maxSize: 35% 43 | # ugly path coming up to no match chunk-vendors file 44 | - path: /js/chunk-{a,b,c,d,e,f,0,1,2,3,4,5,6,7,8,9}*.*.js 45 | maxSize: 35% 46 | - path: / 47 | maxSize: 40% 48 | 49 | outputs: 50 | html: ./artifacts/gimbal.html 51 | json: ./artifacts/gimbal.json 52 | markdown: ./artifacts/gimbal.md 53 | 54 | jobs: 55 | - audit --build-dir dist 56 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots or videos** 21 | If applicable, add screenshots or videos to help explain your problem. 22 | 23 | **Desktop (please complete the following information):** 24 | - OS: [e.g. iOS] 25 | - Browser [e.g. chrome, safari] 26 | - Version [e.g. 22] 27 | 28 | **Smartphone (please complete the following information):** 29 | - Device: [e.g. iPhone6] 30 | - OS: [e.g. iOS8.1] 31 | - Browser [e.g. stock browser, safari] 32 | - Version [e.g. 22] 33 | 34 | **Additional context** 35 | Add any other context about the problem here. 36 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ master ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ master ] 20 | schedule: 21 | - cron: '32 5 * * 0' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | 28 | strategy: 29 | fail-fast: false 30 | matrix: 31 | language: [ 'cpp', 'java', 'javascript' ] 32 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 33 | # Learn more: 34 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 35 | 36 | steps: 37 | - name: Checkout repository 38 | uses: actions/checkout@v2 39 | 40 | # Initializes the CodeQL tools for scanning. 41 | - name: Initialize CodeQL 42 | uses: github/codeql-action/init@v1 43 | with: 44 | languages: ${{ matrix.language }} 45 | # If you wish to specify custom queries, you can do so here or in a config file. 46 | # By default, queries listed here will override any specified in a config file. 47 | # Prefix the list here with "+" to use these queries and those in the config file. 48 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 49 | 50 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 51 | # If this step fails, then you should remove it and run the build manually (see below) 52 | - name: Autobuild 53 | uses: github/codeql-action/autobuild@v1 54 | 55 | # ℹ️ Command-line programs to run using the OS shell. 56 | # 📚 https://git.io/JvXDl 57 | 58 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 59 | # and modify them (or add more) to build your code if your project 60 | # uses a compiled language 61 | 62 | #- run: | 63 | # make bootstrap 64 | # make release 65 | 66 | - name: Perform CodeQL Analysis 67 | uses: github/codeql-action/analyze@v1 68 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # env files 6 | .env.* 7 | 8 | electron/ 9 | 10 | # Log files 11 | *.log 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.sw* 21 | /ios/App/App.ipa 22 | /ios/App/fastlane/report.xml 23 | /ios/App/App.app.dSYM.zip 24 | 25 | # fastlane specific 26 | fastlane/report.xml 27 | 28 | # deliver temporary files 29 | fastlane/Preview.html 30 | 31 | # snapshot generated screenshots 32 | fastlane/screenshots 33 | 34 | # scan temporary files 35 | fastlane/test_output 36 | /android/app/release 37 | android/signing/* 38 | !android/signing/.gitkeep 39 | !android/signing/keystore.properties.example 40 | 41 | # automated end-to-end tests 42 | tests_root/wdio/errorShots/* 43 | 44 | # serverless 45 | claudia.json 46 | proxy/claudia.json 47 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {}, 4 | }, 5 | } 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "singleQuote": true, 4 | "semi": false, 5 | "trailingComma": "es5" 6 | } 7 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Project 2 | 3 | ### Code of Conduct 4 | 5 | Modus has adopted a [Code of Conduct](./CODE_OF_CONDUCT.md) that we expect project participants to adhere to. 6 | 7 | ### Submitting a Pull Request 8 | 9 | If you are a first time contributor, you can learn how from this _free_ series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) 10 | 11 | ### License 12 | 13 | By contributing, you agree that your contributions will belicensed under it's [license](./LICENSE) 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2011-present, Modus Create, Inc. 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. -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | # NPM renames .gitignore to .npmignore 2 | # In order to prevent that, we remove the initial "." 3 | # And the CLI then renames it 4 | 5 | # Using Android gitignore template: https://github.com/github/gitignore/blob/master/Android.gitignore 6 | 7 | # Built application files 8 | *.apk 9 | *.ap_ 10 | 11 | # Files for the ART/Dalvik VM 12 | *.dex 13 | 14 | # Java class files 15 | *.class 16 | 17 | # Generated files 18 | bin/ 19 | gen/ 20 | out/ 21 | 22 | # Gradle files 23 | .gradle/ 24 | build/ 25 | 26 | # Local configuration file (sdk path, etc) 27 | local.properties 28 | 29 | # Proguard folder generated by Eclipse 30 | proguard/ 31 | 32 | # Log Files 33 | *.log 34 | 35 | # Android Studio Navigation editor temp files 36 | .navigation/ 37 | 38 | # Android Studio captures folder 39 | captures/ 40 | 41 | # IntelliJ 42 | *.iml 43 | .idea/workspace.xml 44 | .idea/tasks.xml 45 | .idea/gradle.xml 46 | .idea/dictionaries 47 | .idea/libraries 48 | 49 | # Keystore files 50 | # Uncomment the following line if you do not want to check your keystore files in. 51 | #*.jks 52 | 53 | # External native build folder generated in Android Studio 2.2 and later 54 | .externalNativeBuild 55 | 56 | # Google Services (e.g. APIs or Firebase) 57 | google-services.json 58 | 59 | # Freeline 60 | freeline.py 61 | freeline/ 62 | freeline_project_description.json 63 | 64 | # fastlane 65 | fastlane/report.xml 66 | fastlane/Preview.html 67 | fastlane/screenshots 68 | fastlane/test_output 69 | fastlane/readme.md 70 | 71 | # static 72 | app/src/main/assets/ 73 | -------------------------------------------------------------------------------- /android/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" 4 | -------------------------------------------------------------------------------- /android/app/.npmignore: -------------------------------------------------------------------------------- 1 | /build/* 2 | !/build/.npmkeep 3 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | def keystorePropertiesFile = rootProject.file("signing/keystore.properties") 4 | def keystoreProperties = new Properties() 5 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 6 | 7 | android { 8 | compileSdkVersion 27 9 | defaultConfig { 10 | applicationId "app.modus.beep" 11 | minSdkVersion 21 12 | targetSdkVersion 27 13 | versionCode 11 14 | versionName "1.0.5" 15 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 16 | } 17 | signingConfigs { 18 | release { 19 | keyAlias keystoreProperties['keyAlias'] 20 | keyPassword keystoreProperties['keyPassword'] 21 | storeFile file(keystoreProperties['storeFile']) 22 | storePassword keystoreProperties['storePassword'] 23 | } 24 | } 25 | buildTypes { 26 | release { 27 | minifyEnabled false 28 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 29 | signingConfig signingConfigs.release 30 | } 31 | } 32 | buildToolsVersion '27.0.3' 33 | } 34 | 35 | repositories { 36 | maven { url 'https://dl.bintray.com/ionic-team/capacitor' } 37 | } 38 | 39 | dependencies { 40 | implementation fileTree(include: ['*.jar'], dir: 'libs') 41 | implementation 'com.android.support:appcompat-v7:27.1.1' 42 | implementation 'com.android.support.constraint:constraint-layout:1.1.2' 43 | implementation project(':capacitor-android') 44 | testImplementation 'junit:junit:4.12' 45 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 46 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 47 | implementation project(':capacitor-cordova-android-plugins') 48 | } 49 | 50 | apply from: 'capacitor.build.gradle' 51 | -------------------------------------------------------------------------------- /android/app/capacitor.build.gradle: -------------------------------------------------------------------------------- 1 | // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN 2 | 3 | dependencies { 4 | 5 | 6 | } 7 | 8 | 9 | if (hasProperty('postBuildExtras')) { 10 | postBuildExtras() 11 | } 12 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.getcapacitor.myapp; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.getcapacitor.app", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 38 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /android/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /android/app/src/main/java/com/moduscreate/beep/MainActivity.java: -------------------------------------------------------------------------------- 1 | package app.modus.beep; 2 | 3 | import android.os.Bundle; 4 | 5 | import com.getcapacitor.BridgeActivity; 6 | import com.getcapacitor.Plugin; 7 | 8 | import java.util.ArrayList; 9 | 10 | public class MainActivity extends BridgeActivity { 11 | @Override 12 | public void onCreate(Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | 15 | // Initializes the Bridge 16 | this.init(savedInstanceState, new ArrayList>() {{ 17 | // Additional plugins you've installed go here 18 | // Ex: add(TotallyAwesomePlugin.class); 19 | }}); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-hdpi/ic_action_name.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-land-hdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-ldpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-land-ldpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-land-mdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-land-xhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-land-xxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-land-xxxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-mdpi/ic_action_name.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-port-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-port-hdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-port-ldpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-port-ldpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-port-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-port-mdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-port-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-port-xhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-port-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-port-xxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-port-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-port-xxxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-xhdpi/ic_action_name.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/drawable-xxhdpi/ic_action_name.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /android/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #FF5C5D 5 | 6 | 8 | #FFFFFF 9 | 10 | 11 | #FFFFFF 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Beep 4 | Beep 5 | app.modus.beep 6 | app.modus.beep.fileprovider 7 | app.modus.beep 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 20 | 21 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /android/app/src/main/res/xml/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.getcapacitor.myapp; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.1.4' 11 | 12 | 13 | // NOTE: Do not place your application dependencies here; they belong 14 | // in the individual module build.gradle files 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | google() 21 | jcenter() 22 | } 23 | } 24 | 25 | task clean(type: Delete) { 26 | delete rootProject.buildDir 27 | } 28 | -------------------------------------------------------------------------------- /android/capacitor-cordova-android-plugins/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | google() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.1.1' 8 | } 9 | } 10 | 11 | apply plugin: 'com.android.library' 12 | 13 | android { 14 | compileSdkVersion 27 15 | defaultConfig { 16 | minSdkVersion 21 17 | targetSdkVersion 27 18 | versionCode 1 19 | versionName "1.0" 20 | } 21 | lintOptions { 22 | abortOnError false 23 | } 24 | } 25 | 26 | repositories { 27 | google() 28 | jcenter() 29 | mavenCentral() 30 | flatDir{ 31 | dirs 'src/main/libs', 'libs' 32 | } 33 | } 34 | 35 | dependencies { 36 | implementation fileTree(dir: 'src/main/libs', include: ['*.jar']) 37 | implementation 'org.apache.cordova:framework:7.0.0' 38 | // SUB-PROJECT DEPENDENCIES START 39 | 40 | // SUB-PROJECT DEPENDENCIES END 41 | } 42 | 43 | // PLUGIN GRADLE EXTENSIONS START 44 | 45 | // PLUGIN GRADLE EXTENSIONS END -------------------------------------------------------------------------------- /android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/capacitor-cordova-android-plugins/src/main/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/capacitor-cordova-android-plugins/src/main/java/.gitkeep -------------------------------------------------------------------------------- /android/capacitor-cordova-android-plugins/src/main/java/com/xmartlabs/cordova/market/Market.java: -------------------------------------------------------------------------------- 1 | package com.xmartlabs.cordova.market; 2 | 3 | import org.apache.cordova.CordovaWebView; 4 | import org.apache.cordova.CallbackContext; 5 | import org.apache.cordova.CordovaPlugin; 6 | import org.apache.cordova.CordovaInterface; 7 | 8 | import org.json.JSONArray; 9 | import org.json.JSONException; 10 | import org.json.JSONObject; 11 | 12 | import android.content.Context; 13 | import android.content.ComponentName; 14 | import android.content.Intent; 15 | import android.net.Uri; 16 | import android.util.Log; 17 | 18 | /** 19 | * Interact with Google Play. 20 | * 21 | * @author Miguel Revetria 22 | * @license Apache 2.0 23 | */ 24 | public class Market extends CordovaPlugin 25 | { 26 | /** 27 | * Executes the request and returns PluginResult. 28 | * 29 | * @param action 30 | * Action to perform. 31 | * @param args 32 | * Arguments to the action. 33 | * @param callbackId 34 | * JavaScript callback ID. 35 | * @return A PluginResult object with a status and message. 36 | */ 37 | @Override 38 | public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { 39 | try { 40 | if (action.equals("open")) { 41 | if (args.length() == 1) { 42 | String appId = args.getString(0); 43 | this.openGooglePlay(appId); 44 | 45 | callbackContext.success(); 46 | return true; 47 | } 48 | }else if (action.equals("search")) { 49 | if (args.length() == 1) { 50 | String key = args.getString(0); 51 | this.searchGooglePlay(key); 52 | 53 | callbackContext.success(); 54 | return true; 55 | } 56 | } 57 | } catch (JSONException e) { 58 | Log.d("CordovaLog","Plugin Market: cannot parse args."); 59 | e.printStackTrace(); 60 | } catch (android.content.ActivityNotFoundException e) { 61 | Log.d("CordovaLog","Plugin Market: cannot open Google Play activity."); 62 | e.printStackTrace(); 63 | } 64 | 65 | return false; 66 | } 67 | 68 | /** 69 | * Open the appId details on Google Play . 70 | * 71 | * @param appId 72 | * Application Id on Google Play. 73 | * E.g.: com.google.earth 74 | */ 75 | private void openGooglePlay(String appId) throws android.content.ActivityNotFoundException { 76 | Context context = this.cordova.getActivity().getApplicationContext(); 77 | Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appId)); 78 | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 79 | context.startActivity(intent); 80 | } 81 | 82 | /** 83 | * search the details on Google Play . 84 | * 85 | * @param searchKeyword 86 | * Application Id on Google Play. 87 | * E.g.: earth 88 | */ 89 | private void searchGooglePlay(String key) throws android.content.ActivityNotFoundException { 90 | Context context = this.cordova.getActivity().getApplicationContext(); 91 | Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=" + key)); 92 | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 93 | context.startActivity(intent); 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /android/capacitor-cordova-android-plugins/src/main/res/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /android/capacitor.settings.gradle: -------------------------------------------------------------------------------- 1 | // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN 2 | include ':capacitor-android' 3 | project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') 4 | -------------------------------------------------------------------------------- /android/fastlane/Appfile: -------------------------------------------------------------------------------- 1 | json_key_file("../fastlane_api_key-7614306543947923849-120954-a0b1b2ff1c5e.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one 2 | package_name("app.modus.beep") # e.g. com.krausefx.app 3 | -------------------------------------------------------------------------------- /android/fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # This file contains the fastlane.tools configuration 2 | # You can find the documentation at https://docs.fastlane.tools 3 | # 4 | # For a list of all available actions, check out 5 | # 6 | # https://docs.fastlane.tools/actions 7 | # 8 | # For a list of all available plugins, check out 9 | # 10 | # https://docs.fastlane.tools/plugins/available-plugins 11 | # 12 | 13 | # Uncomment the line if you want fastlane to automatically update itself 14 | # update_fastlane 15 | 16 | default_platform(:android) 17 | 18 | platform :android do 19 | def increment_version_code(gradle_build: 'app/build.gradle') 20 | sh %Q{cd ../ && echo "$(awk '{sub(/versionCode [[:digit:]]+$/,"versionCode "$2+1)}1' #{gradle_build})" > #{gradle_build} && cd -} 21 | end 22 | 23 | desc "Runs all the tests" 24 | lane :test do 25 | gradle(task: "test") 26 | end 27 | 28 | desc "Submit a new Beta Build to Crashlytics Beta" 29 | lane :beta do 30 | gradle(task: "clean assembleRelease") 31 | crashlytics 32 | 33 | # sh "your_script.sh" 34 | # You can also use other beta testing services here 35 | end 36 | 37 | desc "Deploy a new version to the Google Play" 38 | lane :deploy do 39 | gradle(task: "clean assembleRelease") 40 | upload_to_play_store( 41 | skip_upload_screenshots: true, 42 | skip_upload_images: true, 43 | skip_upload_metadata: true 44 | ) 45 | end 46 | 47 | desc "Create release build" 48 | lane :release do 49 | increment_version_code gradle_build: 'app/build.gradle' 50 | gradle(task: "clean assembleRelease") 51 | end 52 | 53 | lane :hockeybeta do 54 | release 55 | hockey( 56 | api_token: ENV["HOCKEY_API_TOKEN"] 57 | ) 58 | end 59 | end 60 | -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | Verify the integrity of your existing credentials or just before creating new accounts. 2 | 3 | BEEP checks your account information against databases of leaked credentials in known data breaches. 4 | 5 | With BEEP you test one thing at a time. Independently check if your password is safe or if your username/email are compromised. 6 | 7 | BEEP never transmits your passwords. Passwords are encoded with the SHA-1 algorithm on your device and only the first 5 characters of that hash are sent to the verification engine. -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/images/promoGraphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/fastlane/metadata/android/en-US/images/promoGraphic.png -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/images/tvBanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/fastlane/metadata/android/en-US/images/tvBanner.png -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | Check if your username, email or password have been compromised in a data breach -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | BEEP Account Security Scanner -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/video.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/fastlane/metadata/android/en-US/video.txt -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Jan 30 13:14:22 CST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 7 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | include ':capacitor-cordova-android-plugins' 3 | project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') 4 | 5 | apply from: 'capacitor.settings.gradle' 6 | -------------------------------------------------------------------------------- /android/signing/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/android/signing/.gitkeep -------------------------------------------------------------------------------- /android/signing/keystore.properties.example: -------------------------------------------------------------------------------- 1 | storePassword=myStorePassword 2 | keyPassword=mykeyPassword 3 | keyAlias=myKeyAlias 4 | storeFile=~/.android/debug.keystore 5 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/app'], 3 | } 4 | -------------------------------------------------------------------------------- /capacitor.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "appId": "app.modus.beep", 3 | "appName": "Beep", 4 | "bundledWebRuntime": false, 5 | "webDir": "dist" 6 | } 7 | -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | # NPM renames .gitignore to .npmignore 2 | # In order to prevent that, we remove the initial "." 3 | # And the CLI then renames it 4 | 5 | App/build 6 | App/Pods 7 | App/public 8 | xcuserdata 9 | 10 | -------------------------------------------------------------------------------- /ios/App/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/App/App.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/App/App/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Capacitor 3 | import HockeySDK 4 | 5 | @UIApplicationMain 6 | class AppDelegate: UIResponder, UIApplicationDelegate { 7 | 8 | var window: UIWindow? 9 | 10 | 11 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 12 | // Override point for customization after application launch. 13 | 14 | BITHockeyManager.shared().configure(withIdentifier: "188836b6452042cd88ebc47f5a745808") 15 | // Do some additional configuration if needed here 16 | BITHockeyManager.shared().start() 17 | BITHockeyManager.shared().authenticator.authenticateInstallation() 18 | 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 45 | // Called when the app was launched with a url. Feel free to add additional processing here, 46 | // but if you want the App API to support tracking app url opens, make sure to keep this call 47 | return CAPBridge.handleOpenUrl(url, options) 48 | } 49 | 50 | func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { 51 | // Called when the app was launched with an activity, including Universal Links. 52 | // Feel free to add additional processing here, but if you want the App API to support 53 | // tracking app url opens, make sure to keep this call 54 | return CAPBridge.handleContinueActivity(userActivity, restorationHandler) 55 | } 56 | 57 | override func touchesBegan(_ touches: Set, with event: UIEvent?) { 58 | super.touchesBegan(touches, with: event) 59 | 60 | let statusBarRect = UIApplication.shared.statusBarFrame 61 | guard let touchPoint = event?.allTouches?.first?.location(in: self.window) else { return } 62 | 63 | if statusBarRect.contains(touchPoint) { 64 | NotificationCenter.default.post(CAPBridge.statusBarTappedNotification) 65 | } 66 | } 67 | 68 | } 69 | 70 | -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "AppIcon-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "AppIcon-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "AppIcon-29x29@2x-1.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "AppIcon-29x29@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "AppIcon-40x40@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "AppIcon-40x40@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "60x60", 41 | "idiom" : "iphone", 42 | "filename" : "AppIcon-60x60@2x.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "AppIcon-60x60@3x.png", 49 | "scale" : "3x" 50 | }, 51 | { 52 | "size" : "20x20", 53 | "idiom" : "ipad", 54 | "filename" : "AppIcon-20x20@1x.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "AppIcon-20x20@2x-1.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "29x29", 65 | "idiom" : "ipad", 66 | "filename" : "AppIcon-29x29@1x.png", 67 | "scale" : "1x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "AppIcon-29x29@2x.png", 73 | "scale" : "2x" 74 | }, 75 | { 76 | "size" : "40x40", 77 | "idiom" : "ipad", 78 | "filename" : "AppIcon-40x40@1x.png", 79 | "scale" : "1x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "AppIcon-40x40@2x-1.png", 85 | "scale" : "2x" 86 | }, 87 | { 88 | "size" : "76x76", 89 | "idiom" : "ipad", 90 | "filename" : "AppIcon-76x76@1x.png", 91 | "scale" : "1x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "AppIcon-76x76@2x.png", 97 | "scale" : "2x" 98 | }, 99 | { 100 | "size" : "83.5x83.5", 101 | "idiom" : "ipad", 102 | "filename" : "AppIcon-83.5x83.5@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "1024x1024", 107 | "idiom" : "ios-marketing", 108 | "filename" : "AppIcon-512@2x.png", 109 | "scale" : "1x" 110 | } 111 | ], 112 | "info" : { 113 | "version" : 1, 114 | "author" : "xcode" 115 | } 116 | } -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/Splash.imageset/Beep-Splash-Screen-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/Splash.imageset/Beep-Splash-Screen-1.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/Splash.imageset/Beep-Splash-Screen-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/Splash.imageset/Beep-Splash-Screen-2.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/Splash.imageset/Beep-Splash-Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/App/Assets.xcassets/Splash.imageset/Beep-Splash-Screen.png -------------------------------------------------------------------------------- /ios/App/App/Assets.xcassets/Splash.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Beep-Splash-Screen.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Beep-Splash-Screen-1.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Beep-Splash-Screen-2.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ios/App/App/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ios/App/App/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ios/App/App/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Beep 9 | UIViewControllerBasedStatusBarAppearance 10 | Yes 11 | CFBundleExecutable 12 | $(EXECUTABLE_NAME) 13 | CFBundleIdentifier 14 | $(PRODUCT_BUNDLE_IDENTIFIER) 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | $(PRODUCT_NAME) 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.0.5 23 | CFBundleURLTypes 24 | 25 | 26 | CFBundleURLName 27 | com.getcapacitor.capacitor 28 | CFBundleURLSchemes 29 | 30 | capacitor 31 | 32 | 33 | 34 | CFBundleVersion 35 | 35 36 | LSRequiresIPhoneOS 37 | 38 | NSAppTransportSecurity 39 | 40 | NSAllowsArbitraryLoads 41 | 42 | 43 | NSCameraUsageDescription 44 | To Take Photos and Video 45 | NSLocationAlwaysUsageDescription 46 | Always allow Geolocation? 47 | NSLocationWhenInUseUsageDescription 48 | Allow Geolocation? 49 | NSMicrophoneUsageDescription 50 | To Record Audio With Video 51 | NSPhotoLibraryAddUsageDescription 52 | Store camera photos to camera 53 | NSPhotoLibraryUsageDescription 54 | To Pick Photos from Library 55 | UILaunchStoryboardName 56 | LaunchScreen 57 | UIMainStoryboardFile 58 | Main 59 | UIRequiredDeviceCapabilities 60 | 61 | armv7 62 | 63 | UISupportedInterfaceOrientations 64 | 65 | UIInterfaceOrientationPortrait 66 | UIInterfaceOrientationLandscapeLeft 67 | UIInterfaceOrientationLandscapeRight 68 | 69 | UISupportedInterfaceOrientations~ipad 70 | 71 | UIInterfaceOrientationPortrait 72 | UIInterfaceOrientationPortraitUpsideDown 73 | UIInterfaceOrientationLandscapeLeft 74 | UIInterfaceOrientationLandscapeRight 75 | 76 | UIViewControllerBasedStatusBarAppearance 77 | 78 | ITSAppUsesNonExemptEncryption 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /ios/App/App/capacitor.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "appId": "app.modus.beep", 3 | "appName": "Beep", 4 | "bundledWebRuntime": false, 5 | "webDir": "dist" 6 | } 7 | -------------------------------------------------------------------------------- /ios/App/App/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/App/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" 4 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/BuildAgent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/BuildAgent -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITCrashAttachment.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * 4 | * Copyright (c) 2014 HockeyApp, Bit Stadium GmbH. 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, to any person 8 | * obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without 10 | * restriction, including without limitation the rights to use, 11 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the 13 | * Software is furnished to do so, subject to the following 14 | * conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be 17 | * included in all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | * OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #import "BITHockeyAttachment.h" 30 | 31 | /** 32 | Deprecated: Provides support to add binary attachments to crash reports 33 | 34 | This class is not needed any longer and exists for compatibility purposes with 35 | HockeySDK-iOS 3.5.5. 36 | 37 | It is a subclass of `BITHockeyAttachment` which only provides an initializer 38 | that is compatible with the one of HockeySDK-iOS 3.5.5. 39 | 40 | This is used by `[BITCrashManagerDelegate attachmentForCrashManager:]` 41 | 42 | @see BITHockeyAttachment 43 | */ 44 | @interface BITCrashAttachment : BITHockeyAttachment 45 | 46 | /** 47 | Create an BITCrashAttachment instance with a given filename and NSData object 48 | 49 | @param filename The filename the attachment should get 50 | @param crashAttachmentData The attachment data as NSData 51 | @param contentType The content type of your data as MIME type 52 | 53 | @return An instance of BITCrashAttachment 54 | */ 55 | - (instancetype)initWithFilename:(NSString *)filename 56 | crashAttachmentData:(NSData *)crashAttachmentData 57 | contentType:(NSString *)contentType; 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITCrashMetaData.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * 4 | * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, to any person 8 | * obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without 10 | * restriction, including without limitation the rights to use, 11 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the 13 | * Software is furnished to do so, subject to the following 14 | * conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be 17 | * included in all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | * OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #import 30 | 31 | 32 | /** 33 | * This class provides properties that can be attached to a crash report via a custom alert view flow 34 | */ 35 | @interface BITCrashMetaData : NSObject 36 | 37 | /** 38 | * User provided description that should be attached to the crash report as plain text 39 | */ 40 | @property (nonatomic, copy) NSString *userProvidedDescription; 41 | 42 | /** 43 | * User name that should be attached to the crash report 44 | */ 45 | @property (nonatomic, copy) NSString *userName; 46 | 47 | /** 48 | * User email that should be attached to the crash report 49 | */ 50 | @property (nonatomic, copy) NSString *userEmail; 51 | 52 | /** 53 | * User ID that should be attached to the crash report 54 | */ 55 | @property (nonatomic, copy) NSString *userID; 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITHockeyAttachment.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * 4 | * Copyright (c) 2014 HockeyApp, Bit Stadium GmbH. 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, to any person 8 | * obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without 10 | * restriction, including without limitation the rights to use, 11 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the 13 | * Software is furnished to do so, subject to the following 14 | * conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be 17 | * included in all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | * OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #import 30 | 31 | /** 32 | Provides support to add binary attachments to crash reports and feedback messages 33 | 34 | This is used by `[BITCrashManagerDelegate attachmentForCrashManager:]`, 35 | `[BITFeedbackComposeViewController prepareWithItems:]` and 36 | `[BITFeedbackManager showFeedbackComposeViewWithPreparedItems:]` 37 | */ 38 | @interface BITHockeyAttachment : NSObject 39 | 40 | /** 41 | The filename the attachment should get 42 | */ 43 | @property (nonatomic, readonly, copy) NSString *filename; 44 | 45 | /** 46 | The attachment data as NSData object 47 | */ 48 | @property (nonatomic, readonly, strong) NSData *hockeyAttachmentData; 49 | 50 | /** 51 | The content type of your data as MIME type 52 | */ 53 | @property (nonatomic, readonly, copy) NSString *contentType; 54 | 55 | /** 56 | Create an BITHockeyAttachment instance with a given filename and NSData object 57 | 58 | @param filename The filename the attachment should get. If nil will get a automatically generated filename 59 | @param hockeyAttachmentData The attachment data as NSData. The instance will be ignore if this is set to nil! 60 | @param contentType The content type of your data as MIME type. If nil will be set to "application/octet-stream" 61 | 62 | @return An instance of BITHockeyAttachment. 63 | */ 64 | - (instancetype)initWithFilename:(NSString *)filename 65 | hockeyAttachmentData:(NSData *)hockeyAttachmentData 66 | contentType:(NSString *)contentType; 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITHockeyBaseManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * 4 | * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, to any person 8 | * obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without 10 | * restriction, including without limitation the rights to use, 11 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the 13 | * Software is furnished to do so, subject to the following 14 | * conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be 17 | * included in all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | * OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #import 30 | #import 31 | 32 | 33 | /** 34 | The internal superclass for all component managers 35 | 36 | */ 37 | 38 | @interface BITHockeyBaseManager : NSObject 39 | 40 | ///----------------------------------------------------------------------------- 41 | /// @name Modules 42 | ///----------------------------------------------------------------------------- 43 | 44 | 45 | /** 46 | Defines the server URL to send data to or request data from 47 | 48 | By default this is set to the HockeyApp servers and there rarely should be a 49 | need to modify that. 50 | */ 51 | @property (nonatomic, copy) NSString *serverURL; 52 | 53 | 54 | ///----------------------------------------------------------------------------- 55 | /// @name User Interface 56 | ///----------------------------------------------------------------------------- 57 | 58 | /** 59 | The UIBarStyle of the update user interface navigation bar. 60 | 61 | Default is UIBarStyleBlackOpaque 62 | @see navigationBarTintColor 63 | */ 64 | @property (nonatomic, assign) UIBarStyle barStyle; 65 | 66 | /** 67 | The navigationbar tint color of the update user interface navigation bar. 68 | 69 | The navigationBarTintColor is used by default, you can either overwrite it `navigationBarTintColor` 70 | or define another `barStyle` instead. 71 | 72 | Default is RGB(25, 25, 25) 73 | @see barStyle 74 | */ 75 | @property (nonatomic, strong) UIColor *navigationBarTintColor; 76 | 77 | /** 78 | The UIModalPresentationStyle for showing the update user interface when invoked 79 | with the update alert. 80 | */ 81 | @property (nonatomic, assign) UIModalPresentationStyle modalPresentationStyle; 82 | 83 | 84 | @end 85 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITHockeyBaseViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * 4 | * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, to any person 8 | * obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without 10 | * restriction, including without limitation the rights to use, 11 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the 13 | * Software is furnished to do so, subject to the following 14 | * conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be 17 | * included in all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | * OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #import 30 | 31 | @interface BITHockeyBaseViewController : UITableViewController 32 | 33 | @property (nonatomic, readwrite) BOOL modalAnimated; 34 | 35 | - (instancetype)initWithModalStyle:(BOOL)modal; 36 | - (instancetype)initWithStyle:(UITableViewStyle)style modal:(BOOL)modal; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITMetricsManager.h: -------------------------------------------------------------------------------- 1 | #import "HockeySDKFeatureConfig.h" 2 | 3 | #if HOCKEYSDK_FEATURE_METRICS 4 | 5 | #import 6 | #import "BITHockeyBaseManager.h" 7 | 8 | #import "HockeySDKNullability.h" 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | /** 12 | The metrics module. 13 | 14 | This is the HockeySDK module that handles users, sessions and events tracking. 15 | 16 | Unless disabled, this module automatically tracks users and session of your app to give you 17 | better insights about how your app is being used. 18 | Users are tracked in a completely anonymous way without collecting any personally identifiable 19 | information. 20 | 21 | Before starting to track events, ask yourself the questions that you want to get answers to. 22 | For instance, you might be interested in business, performance/quality or user experience aspects. 23 | Name your events in a meaningful way and keep in mind that you will use these names 24 | when searching for events in the HockeyApp web portal. 25 | 26 | It is your reponsibility to not collect personal information as part of the events tracking or get 27 | prior consent from your users as necessary. 28 | */ 29 | @interface BITMetricsManager : BITHockeyBaseManager 30 | 31 | /** 32 | * A property indicating whether the BITMetricsManager instance is disabled. 33 | */ 34 | @property (nonatomic, assign) BOOL disabled; 35 | 36 | /** 37 | * This method allows to track an event that happened in your app. 38 | * Remember to choose meaningful event names to have the best experience when diagnosing your app 39 | * in the HockeyApp web portal. 40 | * 41 | * @param eventName The event's name as a string. 42 | */ 43 | - (void)trackEventWithName:(nonnull NSString *)eventName; 44 | 45 | /** 46 | * This method allows to track an event that happened in your app. 47 | * Remember to choose meaningful event names to have the best experience when diagnosing your app 48 | * in the web portal. 49 | * 50 | * @param eventName the name of the event, which should be tracked. 51 | * @param properties key value pairs with additional info about the event. 52 | * @param measurements key value pairs, which contain custom metrics. 53 | */ 54 | - (void)trackEventWithName:(nonnull NSString *)eventName properties:(nullable NSDictionary *)properties measurements:(nullable NSDictionary *)measurements; 55 | 56 | @end 57 | 58 | NS_ASSUME_NONNULL_END 59 | 60 | #endif /* HOCKEYSDK_FEATURE_METRICS */ 61 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITStoreUpdateManagerDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * 4 | * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, to any person 8 | * obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without 10 | * restriction, including without limitation the rights to use, 11 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the 13 | * Software is furnished to do so, subject to the following 14 | * conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be 17 | * included in all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | * OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #import 30 | 31 | @class BITStoreUpdateManager; 32 | 33 | /** 34 | The `BITStoreUpdateManagerDelegate` formal protocol defines methods for 35 | more interaction with `BITStoreUpdateManager`. 36 | */ 37 | 38 | @protocol BITStoreUpdateManagerDelegate 39 | 40 | @optional 41 | 42 | 43 | ///----------------------------------------------------------------------------- 44 | /// @name Update information 45 | ///----------------------------------------------------------------------------- 46 | 47 | /** Informs which new version has been reported to be available 48 | 49 | @warning If this is invoked with a simulated new version, the storeURL could be _NIL_ if the current builds 50 | bundle identifier is different to the bundle identifier used in the app store build. 51 | @param storeUpdateManager The `BITStoreUpdateManager` instance invoking this delegate 52 | @param newVersion The new version string reported by the App Store 53 | @param storeURL The App Store URL for this app that could be invoked to let them perform the update. 54 | */ 55 | -(void)detectedUpdateFromStoreUpdateManager:(BITStoreUpdateManager *)storeUpdateManager newVersion:(NSString *)newVersion storeURL:(NSURL *)storeURL; 56 | 57 | 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/BITUpdateViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * Peter Steinberger 4 | * 5 | * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. 6 | * Copyright (c) 2011 Andreas Linde, Peter Steinberger. 7 | * All rights reserved. 8 | * 9 | * Permission is hereby granted, free of charge, to any person 10 | * obtaining a copy of this software and associated documentation 11 | * files (the "Software"), to deal in the Software without 12 | * restriction, including without limitation the rights to use, 13 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | * copies of the Software, and to permit persons to whom the 15 | * Software is furnished to do so, subject to the following 16 | * conditions: 17 | * 18 | * The above copyright notice and this permission notice shall be 19 | * included in all copies or substantial portions of the Software. 20 | * 21 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 23 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 25 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 26 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 27 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 28 | * OTHER DEALINGS IN THE SOFTWARE. 29 | */ 30 | 31 | #import 32 | 33 | #import "BITHockeyBaseViewController.h" 34 | 35 | 36 | @interface BITUpdateViewController : BITHockeyBaseViewController 37 | @end 38 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/HockeySDKFeatureConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Andreas Linde 3 | * 4 | * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, to any person 8 | * obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without 10 | * restriction, including without limitation the rights to use, 11 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | * copies of the Software, and to permit persons to whom the 13 | * Software is furnished to do so, subject to the following 14 | * conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be 17 | * included in all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 21 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 23 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26 | * OTHER DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | /** 30 | * This is the template feature config that is used for debug builds and during development. 31 | * For the Distribution target, we are using separate configs that will be copied over in our build script. 32 | */ 33 | 34 | 35 | #ifndef HockeySDK_HockeySDKFeatureConfig_h 36 | #define HockeySDK_HockeySDKFeatureConfig_h 37 | 38 | /** 39 | * If true, include support for handling crash reports 40 | * 41 | * _Default_: Enabled 42 | */ 43 | #ifndef HOCKEYSDK_FEATURE_CRASH_REPORTER 44 | # define HOCKEYSDK_FEATURE_CRASH_REPORTER 1 45 | #endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ 46 | 47 | 48 | /** 49 | * If true, include support for managing user feedback 50 | * 51 | * _Default_: Enabled 52 | */ 53 | #ifndef HOCKEYSDK_FEATURE_FEEDBACK 54 | # define HOCKEYSDK_FEATURE_FEEDBACK 0 55 | #endif /* HOCKEYSDK_FEATURE_FEEDBACK */ 56 | 57 | 58 | /** 59 | * If true, include support for informing the user about new updates pending in the App Store 60 | * 61 | * _Default_: Enabled 62 | */ 63 | #ifndef HOCKEYSDK_FEATURE_STORE_UPDATES 64 | # define HOCKEYSDK_FEATURE_STORE_UPDATES 1 65 | #endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ 66 | 67 | 68 | /** 69 | * If true, include support for authentication installations for Ad-Hoc and Enterprise builds 70 | * 71 | * _Default_: Enabled 72 | */ 73 | #ifndef HOCKEYSDK_FEATURE_AUTHENTICATOR 74 | # define HOCKEYSDK_FEATURE_AUTHENTICATOR 1 75 | #endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ 76 | 77 | 78 | /** 79 | * If true, include support for handling in-app updates for Ad-Hoc and Enterprise builds 80 | * 81 | * _Default_: Enabled 82 | */ 83 | #ifndef HOCKEYSDK_FEATURE_UPDATES 84 | # define HOCKEYSDK_FEATURE_UPDATES 1 85 | #endif /* HOCKEYSDK_FEATURE_UPDATES */ 86 | 87 | 88 | /** 89 | * If true, include support for auto collecting metrics data such as sessions and user 90 | * 91 | * _Default_: Enabled 92 | */ 93 | #ifndef HOCKEYSDK_FEATURE_METRICS 94 | # define HOCKEYSDK_FEATURE_METRICS 1 95 | #endif /* HOCKEYSDK_FEATURE_METRICS */ 96 | 97 | #endif /* HockeySDK_HockeySDKFeatureConfig_h */ 98 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers/HockeySDKNullability.h: -------------------------------------------------------------------------------- 1 | // 2 | // HockeyNullability.h 3 | // HockeySDK 4 | // 5 | // Created by Andreas Linde on 12/06/15. 6 | // 7 | // 8 | 9 | #ifndef HockeySDK_HockeyNullability_h 10 | #define HockeySDK_HockeyNullability_h 11 | 12 | // Define nullability fallback for backwards compatibility 13 | #if !__has_feature(nullability) 14 | #define NS_ASSUME_NONNULL_BEGIN 15 | #define NS_ASSUME_NONNULL_END 16 | #define nullable 17 | #define nonnull 18 | #define null_unspecified 19 | #define null_resettable 20 | #define _Nullable 21 | #define _Nonnull 22 | #define __nullable 23 | #define __nonnull 24 | #define __null_unspecified 25 | #endif 26 | 27 | // Fallback for convenience syntax which might not be available in older SDKs 28 | #ifndef NS_ASSUME_NONNULL_BEGIN 29 | #define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") 30 | #endif 31 | #ifndef NS_ASSUME_NONNULL_END 32 | #define NS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") 33 | #endif 34 | 35 | #endif /* HockeySDK_HockeyNullability_h */ 36 | -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/HockeySDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/HockeySDK -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module HockeySDK { 2 | umbrella header "HockeySDK.h" 3 | 4 | export * 5 | module * { export * } 6 | 7 | link framework "CoreTelephony" 8 | link framework "CoreGraphics" 9 | link framework "Foundation" 10 | link framework "MobileCoreServices" 11 | link framework "QuartzCore" 12 | link framework "QuickLook" 13 | link framework "Security" 14 | link framework "SystemConfiguration" 15 | link framework "UIKit" 16 | link "c++" 17 | link "z" 18 | } -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/AppIconPlaceHolder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/AppIconPlaceHolder.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Arrow.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Arrow@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Arrow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Arrow@3x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Blur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Blur.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Blur@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Blur@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Blur@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Blur@3x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Cancel.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Cancel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Cancel@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Cancel@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Cancel@3x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/FeedbackPlaceholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/FeedbackPlaceholder.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/IconGradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/IconGradient.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/IconGradient@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/IconGradient@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Info.plist -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Ok.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Ok@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Ok@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Ok@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Ok@3x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Rectangle.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Rectangle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Rectangle@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Rectangle@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/Rectangle@3x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/authorize_denied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/authorize_denied.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/authorize_denied@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/authorize_denied@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/authorize_denied@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/authorize_denied@3x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/bg.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDelete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDelete.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDelete@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDelete@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDeleteHighlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDeleteHighlighted.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDeleteHighlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedDeleteHighlighted@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegular.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegular@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegular@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegularHighlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegularHighlighted.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegularHighlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/buttonRoundedRegularHighlighted@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/de.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/de.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/en.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/en.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/es.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/es.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/fa.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/fa.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity@2x~ipad.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity@3x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/feedbackActivity~ipad.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/fr.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/fr.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/hr.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/hr.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/hu.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/hu.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/iconCamera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/iconCamera.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/iconCamera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/iconCamera@2x.png -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/it.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/it.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/ja.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/ja.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/nb.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/nb.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/nl.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/nl.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/pt-PT.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/pt-PT.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/pt.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/pt.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/ru.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/ru.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/tr.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/tr.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/zh-Hans.lproj/HockeySDK.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/ios/App/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDKResources.bundle/zh-Hans.lproj/HockeySDK.strings -------------------------------------------------------------------------------- /ios/App/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '11.0' 2 | use_frameworks! 3 | 4 | target 'App' do 5 | # Add your Pods here 6 | 7 | # Automatic Capacitor Pod dependencies, do not delete 8 | pod 'Capacitor', :path => '../../node_modules/@capacitor/ios' 9 | pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios' 10 | pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins' 11 | 12 | # Do not delete 13 | end 14 | -------------------------------------------------------------------------------- /ios/App/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Capacitor (1.0.0-beta.10): 3 | - CapacitorCordova (= 1.0.0-beta.10) 4 | - CapacitorCordova (1.0.0-beta.10) 5 | - CordovaPlugins (1.0.0-beta.11): 6 | - CapacitorCordova 7 | 8 | DEPENDENCIES: 9 | - "Capacitor (from `../../node_modules/@capacitor/ios`)" 10 | - "CapacitorCordova (from `../../node_modules/@capacitor/ios`)" 11 | - CordovaPlugins (from `../capacitor-cordova-ios-plugins`) 12 | 13 | EXTERNAL SOURCES: 14 | Capacitor: 15 | :path: "../../node_modules/@capacitor/ios" 16 | CapacitorCordova: 17 | :path: "../../node_modules/@capacitor/ios" 18 | CordovaPlugins: 19 | :path: "../capacitor-cordova-ios-plugins" 20 | 21 | SPEC CHECKSUMS: 22 | Capacitor: 9aa60986d00166b45b3216daf90f49f8df6593fa 23 | CapacitorCordova: aab520b872cabe0d9f30a03dc385c5dce8d2c82b 24 | CordovaPlugins: 3890c45090aa3bd73fbd2bbd94db322ab18ec794 25 | 26 | PODFILE CHECKSUM: 1bb060a01b3dd72e2ee7a4a92775c43a5a308f02 27 | 28 | COCOAPODS: 1.5.3 29 | -------------------------------------------------------------------------------- /ios/App/fastlane/Appfile: -------------------------------------------------------------------------------- 1 | app_identifier("app.modus.beep") # The bundle identifier of your app 2 | apple_id("grgur.grisogono@moduscreate.com") # Your Apple email address 3 | 4 | itc_team_id("1640400") # App Store Connect Team ID 5 | team_id("287TS9B2H2") # Developer Portal Team ID 6 | 7 | # For more information about the Appfile, see: 8 | # https://docs.fastlane.tools/advanced/#appfile 9 | -------------------------------------------------------------------------------- /ios/App/fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # This file contains the fastlane.tools configuration 2 | # You can find the documentation at https://docs.fastlane.tools 3 | # 4 | # For a list of all available actions, check out 5 | # 6 | # https://docs.fastlane.tools/actions 7 | # 8 | # For a list of all available plugins, check out 9 | # 10 | # https://docs.fastlane.tools/plugins/available-plugins 11 | # 12 | 13 | # Uncomment the line if you want fastlane to automatically update itself 14 | # update_fastlane 15 | 16 | default_platform(:ios) 17 | 18 | platform :ios do 19 | before_all do 20 | setup_circle_ci 21 | end 22 | 23 | desc "Push a new beta build to TestFlight" 24 | lane :beta do 25 | get_certificates 26 | get_provisioning_profile 27 | increment_build_number(xcodeproj: "App.xcodeproj") 28 | build_app(workspace: "App.xcworkspace", scheme: "App") 29 | upload_to_testflight 30 | end 31 | 32 | lane :hockeybeta do 33 | get_certificates 34 | get_provisioning_profile 35 | increment_build_number(xcodeproj: "App.xcodeproj") 36 | build_app(workspace: "App.xcworkspace", scheme: "App") 37 | hockey( 38 | api_token: ENV["HOCKEY_API_TOKEN"] 39 | ) 40 | end 41 | 42 | lane :deployall do 43 | hockeybeta 44 | upload_to_testflight 45 | end 46 | end 47 | -------------------------------------------------------------------------------- /ios/App/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 beta 20 | ``` 21 | fastlane ios beta 22 | ``` 23 | Push a new beta build to TestFlight 24 | ### ios hockeybeta 25 | ``` 26 | fastlane ios hockeybeta 27 | ``` 28 | 29 | ### ios deployall 30 | ``` 31 | fastlane ios deployall 32 | ``` 33 | 34 | 35 | ---- 36 | 37 | This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. 38 | More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). 39 | The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). 40 | -------------------------------------------------------------------------------- /ios/capacitor-cordova-ios-plugins/CordovaPlugins.podspec: -------------------------------------------------------------------------------- 1 | 2 | Pod::Spec.new do |s| 3 | s.name = 'CordovaPlugins' 4 | s.version = '1.0.0-beta.11' 5 | s.summary = 'Autogenerated spec' 6 | s.license = 'Unknown' 7 | s.homepage = 'https://example.com' 8 | s.authors = { 'Capacitor Generator' => 'hi@example.com' } 9 | s.source = { :git => 'https://github.com/ionic-team/does-not-exist.git', :tag => '1.0.0-beta.11' } 10 | s.source_files = 'sources/**/*.{swift,h,m,c,cc,mm,cpp}' 11 | s.ios.deployment_target = '11.0' 12 | s.dependency 'CapacitorCordova' 13 | s.swift_version = '4.0' 14 | 15 | end -------------------------------------------------------------------------------- /ios/capacitor-cordova-ios-plugins/CordovaPluginsResources.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'CordovaPluginsResources' 3 | s.version = '0.0.105' 4 | s.summary = 'Resources for Cordova plugins' 5 | s.social_media_url = 'http://twitter.com/getcapacitor' 6 | s.license = 'MIT' 7 | s.homepage = 'https://capacitor.ionicframework.com/' 8 | s.authors = { 'Ionic Team' => 'hi@ionicframework.com' } 9 | s.source = { :git => 'https://github.com/ionic-team/capacitor.git', :tag => s.version.to_s } 10 | s.resources = ['resources/*'] 11 | end -------------------------------------------------------------------------------- /ios/capacitor-cordova-ios-plugins/CordovaPluginsStatic.podspec: -------------------------------------------------------------------------------- 1 | 2 | Pod::Spec.new do |s| 3 | s.name = 'CordovaPluginsStatic' 4 | s.version = '1.0.0-beta.11' 5 | s.summary = 'Autogenerated spec' 6 | s.license = 'Unknown' 7 | s.homepage = 'https://example.com' 8 | s.authors = { 'Capacitor Generator' => 'hi@example.com' } 9 | s.source = { :git => 'https://github.com/ionic-team/does-not-exist.git', :tag => '1.0.0-beta.11' } 10 | s.source_files = 'sourcesstatic/**/*.{swift,h,m,c,cc,mm,cpp}' 11 | s.ios.deployment_target = '11.0' 12 | s.dependency 'CapacitorCordova' 13 | s.swift_version = '4.0' 14 | s.static_framework = true 15 | end -------------------------------------------------------------------------------- /ios/capacitor-cordova-ios-plugins/resources/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ios/capacitor-cordova-ios-plugins/sources/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ios/capacitor-cordova-ios-plugins/sources/CordovaPluginMarket/CDVMarket.h: -------------------------------------------------------------------------------- 1 | // 2 | // CDVMarket.h 3 | // 4 | // Created by Miguel Revetria miguel@xmartlabs.com on 2014-03-17. 5 | // License Apache 2.0 6 | 7 | #import 8 | #import 9 | 10 | @interface CDVMarket : CDVPlugin 11 | 12 | - (void)open:(CDVInvokedUrlCommand *)command; 13 | 14 | @end -------------------------------------------------------------------------------- /ios/capacitor-cordova-ios-plugins/sources/CordovaPluginMarket/CDVMarket.m: -------------------------------------------------------------------------------- 1 | // 2 | // CDVMarket.h 3 | // 4 | // Created by Miguel Revetria miguel@xmartlabs.com on 2014-03-17. 5 | // License Apache 2.0 6 | 7 | #include "CDVMarket.h" 8 | 9 | @implementation CDVMarket 10 | 11 | - (void)pluginInitialize 12 | { 13 | } 14 | 15 | - (void)open:(CDVInvokedUrlCommand *)command 16 | { 17 | [self.commandDelegate runInBackground:^{ 18 | NSArray *args = command.arguments; 19 | NSString *appId = [args objectAtIndex:0]; 20 | 21 | CDVPluginResult *pluginResult; 22 | if (appId) { 23 | NSString *url = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/%@", appId]; 24 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 25 | 26 | pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; 27 | } else { 28 | pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Invalid application id: null was found"]; 29 | } 30 | 31 | [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; 32 | }]; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], 3 | transform: { 4 | '^.+\\.vue$': 'vue-jest', 5 | '.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', 6 | '^.+\\.jsx?$': 'babel-jest', 7 | }, 8 | moduleNameMapper: { 9 | '^@/(.*)$': '/src/$1', 10 | }, 11 | snapshotSerializers: ['jest-serializer-vue'], 12 | testMatch: ['**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'], 13 | testURL: 'http://localhost/', 14 | } 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@modus/beep", 3 | "version": "1.0.5", 4 | "description": "A security oriented project showcasing the power of Ionic4 and Vuejs", 5 | "author": "Michael Tintiuc ", 6 | "user": "michaeltintiuc", 7 | "license": "MIT", 8 | "repository": "github:ModusCreateOrg/beep", 9 | "main": "dist/index.html", 10 | "bugs": { 11 | "url": "https://github.com/ModusCreateOrg/beep/issues" 12 | }, 13 | "engines": { 14 | "node": ">= 8.0.0", 15 | "npm": ">= 5.0.0" 16 | }, 17 | "scripts": { 18 | "start": "npm run build", 19 | "serve": "vue-cli-service serve & node ./proxy.js", 20 | "build": "vue-cli-service build", 21 | "lint": "vue-cli-service lint", 22 | "test:unit": "vue-cli-service test:unit", 23 | "test:ui": "cd tests_root/wdio && npm run test:local:chrome", 24 | "build-android": "npm run build && npx cap sync android", 25 | "build-ios": "npm run build && npx cap sync ios", 26 | "build-native": "npm run build-android && npm run build-ios" 27 | }, 28 | "dependencies": { 29 | "@capacitor/android": "1.0.0-beta.11", 30 | "@capacitor/cli": "1.0.0-beta.11", 31 | "@capacitor/core": "1.0.0-beta.11", 32 | "@capacitor/ios": "1.0.0-beta.11", 33 | "cordova-plugin-market": "git+https://github.com/xmartlabs/cordova-plugin-market.git", 34 | "@ionic/core": "4.0.1", 35 | "@modus/ionic-vue": "^1.2.7", 36 | "axios": "0.18.0", 37 | "register-service-worker": "^1.5.2", 38 | "sha1": "1.1.1", 39 | "vue": "^2.5.22", 40 | "vue-router": "^3.0.2" 41 | }, 42 | "devDependencies": { 43 | "@vue/cli-plugin-babel": "^3.3.0", 44 | "@vue/cli-plugin-eslint": "^3.3.0", 45 | "@vue/cli-plugin-pwa": "^3.3.0", 46 | "@vue/cli-plugin-unit-jest": "^3.3.0", 47 | "@vue/cli-service": "^3.3.1", 48 | "@vue/eslint-config-prettier": "^3.0.5", 49 | "@vue/test-utils": "1.0.0-beta.24", 50 | "babel-core": "7.0.0-bridge.0", 51 | "babel-jest": "^23.6.0", 52 | "bodymovin": "^4.13.0", 53 | "eslint-plugin-promise": "3.8.0", 54 | "express": "^4.16.4", 55 | "request": "^2.88.0", 56 | "vue-template-compiler": "^2.5.22" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /privacy_policy.md: -------------------------------------------------------------------------------- 1 | ## Privacy Policy 2 | 3 | Modus Create built the BEEP app as an Open Source app. This SERVICE is provided by Modus Create at no cost and is intended for use as is. 4 | 5 | This page is used to inform visitors regarding our policies with the collection, use, and disclosure of Personal Information if anyone decided to use our Service. 6 | 7 | If you choose to use our Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that we collect is used for providing and improving the Service. We will not use or share your information with anyone except as described in this Privacy Policy. 8 | 9 | The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at BEEP unless otherwise defined in this Privacy Policy. 10 | 11 | **Information Collection and Use** 12 | 13 | For a better experience, while using our Service, we may require you to provide us with certain personally identifiable information. The information that we request will be retained by us and used as described in this privacy policy. 14 | 15 | The app does use third party services that may collect information used to identify you. 16 | 17 | Link to privacy policy of third party service providers used by the app 18 | 19 | * [Google Play Services](https://www.google.com/policies/privacy/) 20 | 21 | **Log Data** 22 | 23 | We do not collect any data when you use the app. 24 | 25 | **Cookies** 26 | 27 | Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory. 28 | 29 | This Service does not use these “cookies” explicitly. However, the app may use third party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service. 30 | 31 | **Service Providers** 32 | 33 | We use [https://haveibeenpwned.com/](https://haveibeenpwned.com/) to provide our Service. 34 | 35 | We want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose. 36 | 37 | **Security** 38 | 39 | Because we do not track or collect any of your Personal Information, we provide maximum level security to our Users. 40 | 41 | **Links to Other Sites** 42 | 43 | This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. 44 | 45 | **Children’s Privacy** 46 | 47 | These Services do not address anyone under the age of 13\. We do not knowingly collect personally identifiable information from children under 13\. In the case we discover that a child under 13 has provided us with personal information, we immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us so that we will be able to do necessary actions. 48 | 49 | **Changes to This Privacy Policy** 50 | 51 | We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page. 52 | 53 | **Contact Us** 54 | 55 | If you have any questions or suggestions about our Privacy Policy, do not hesitate to contact us. 56 | -------------------------------------------------------------------------------- /proxy.js: -------------------------------------------------------------------------------- 1 | const app = require('express')() 2 | const request = require('request') 3 | const port = process.env.PROXY_PORT || 5000 4 | 5 | app.listen(port, () => console.log(`[BEEP] Proxy server listening on port ${port}\n`)) 6 | 7 | app.use('/', function(req, res) { 8 | const domain = req.url.match(/breachedaccount/i) ? 'haveibeenpwned.com' : 'api.pwnedpasswords.com' 9 | 10 | const proxy = request({ 11 | url: 'https://' + domain + req.url, 12 | headers: { 'User-Agent': 'Beep' }, 13 | }) 14 | 15 | req.pipe(proxy).pipe(res) 16 | }) 17 | -------------------------------------------------------------------------------- /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 2 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/favicon.ico -------------------------------------------------------------------------------- /public/img/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/img/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /public/img/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/favicon-16x16.png -------------------------------------------------------------------------------- /public/img/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/favicon-32x32.png -------------------------------------------------------------------------------- /public/img/icons/msapplication-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/msapplication-icon-144x144.png -------------------------------------------------------------------------------- /public/img/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/img/icons/mstile-150x150.png -------------------------------------------------------------------------------- /public/img/icons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BEEP Account Security Scanner 6 | 7 | 8 | 9 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /public/lottie/unsafe/Antenna_Back_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Antenna_Back_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Antenna_Front_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Antenna_Front_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Beam_1-1_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Beam_1-1_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Beam_1-2_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Beam_1-2_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Beam_1-3_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Beam_1-3_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Beam_2-1_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Beam_2-1_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Beam_2-2_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Beam_2-2_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Beam_2-3_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Beam_2-3_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Body_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Body_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Brow_Left_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Brow_Left_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Brow_Right_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Brow_Right_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Butt_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Butt_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Caution_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Caution_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Eye_Left_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Eye_Left_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Eye_Right_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Eye_Right_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Glow-Forehead_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Glow-Forehead_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Hand_1_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Hand_1_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Hand_2_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Hand_2_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Interface_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Interface_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Item_1_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Item_1_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Item_2_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Item_2_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Item_3_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Item_3_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Leg_Back_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Leg_Back_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Leg_Front_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Leg_Front_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Mouth_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Mouth_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Shade_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Shade_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Signal_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Signal_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/T-Shirt_3_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/T-Shirt_3_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/T-Shirt_4_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/T-Shirt_4_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Wing_Left_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Wing_Left_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Wing_RIght_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Wing_RIght_Bee.png -------------------------------------------------------------------------------- /public/lottie/unsafe/Zoom_Bee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/public/lottie/unsafe/Zoom_Bee.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "beep", 3 | "short_name": "beep", 4 | "icons": [ 5 | { 6 | "src": "/img/icons/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/img/icons/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "start_url": "/", 17 | "display": "standalone", 18 | "background_color": "#FFFFFF", 19 | "theme_color": "#FFFFFF", 20 | "prefer_related_applications": true, 21 | "related_applications": [ 22 | { 23 | "platform": "play", 24 | "id": "app.modus.beep" 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectKey=modus_beep 2 | sonar.projectName=beep 3 | sonar.projectVersion=1.0 4 | sonar.sources=src 5 | sonar.exclusions=coverage/**, build/**, sonar-scanner-3.2.0.1227-linux/**, node_modules/** 6 | sonar.coverage.exclusions=coverage/**, build/**, jest.config.js 7 | sonar.tests=tests/unit 8 | #sonar.testExecutionReportPaths=reports/test-report.xml 9 | sonar.test.inclusions=**/*tests*/** 10 | sonar.exclusions=**/*tests*/** 11 | #sonar.javascript.lcov.reportPaths=coverage/lcov.info 12 | -------------------------------------------------------------------------------- /src/appService.js: -------------------------------------------------------------------------------- 1 | import { version as appVersion } from '../package.json' 2 | import { Plugins } from '@capacitor/core' 3 | const { Storage } = Plugins 4 | const lastMajorAppVersionStorageKey = 'lastMajorAppVersion' 5 | 6 | export default { 7 | currentMajorAppVersion: 0, 8 | lastMajorAppVersion: 0, 9 | isMajorUpdate: false, 10 | async init() { 11 | this.currentMajorAppVersion = this.getCurrentAppMajorVersion() 12 | this.lastMajorAppVersion = await this.getLastAppMajorVersion() 13 | this.isMajorUpdate = this.currentMajorAppVersion > this.lastMajorAppVersion 14 | if (this.isMajorUpdate || this.currentMajorAppVersion === 0) { 15 | Storage.set({ 16 | key: lastMajorAppVersionStorageKey, 17 | value: this.currentMajorAppVersion.toString(), 18 | }) 19 | } 20 | }, 21 | getCurrentAppMajorVersion() { 22 | return parseInt(appVersion.split('.')[0]) 23 | }, 24 | async getLastAppMajorVersion() { 25 | const lastMajorAppVersionData = await Storage.get({ key: lastMajorAppVersionStorageKey }) 26 | if (lastMajorAppVersionData && lastMajorAppVersionData.value) { 27 | return parseInt(lastMajorAppVersionData.value) 28 | } 29 | return 0 30 | }, 31 | } 32 | -------------------------------------------------------------------------------- /src/breachesService.js: -------------------------------------------------------------------------------- 1 | import helpers from './helpers' 2 | 3 | export default { 4 | breaches: [], 5 | filter: '', 6 | account: '', 7 | baseApiURL: helpers.env('PROXY_HOST') + '/api/v2/breachedaccount/', 8 | clear() { 9 | this.breaches = [] 10 | this.filter = '' 11 | this.account = '' 12 | }, 13 | formatDomain(domain) { 14 | return domain.startsWith('www') ? domain : `www.${domain}` 15 | }, 16 | formatDate(d) { 17 | const date = new Date(d) 18 | const monthNames = [ 19 | 'Jan', 20 | 'Feb', 21 | 'Mar', 22 | 'Apr', 23 | 'May', 24 | 'Jun', 25 | 'Jul', 26 | 'Aug', 27 | 'Sep', 28 | 'Oct', 29 | 'Nov', 30 | 'Dec', 31 | ] 32 | 33 | return `${date.getDate()} ${monthNames[date.getMonth()]} ${date.getFullYear()}` 34 | }, 35 | } 36 | -------------------------------------------------------------------------------- /src/components/BaseModal.vue: -------------------------------------------------------------------------------- 1 | 38 | 39 | 55 | 56 | 84 | -------------------------------------------------------------------------------- /src/components/BasePageCheckForHack.vue: -------------------------------------------------------------------------------- 1 | 48 | 49 | 85 | 86 | 131 | -------------------------------------------------------------------------------- /src/components/BreachItem.vue: -------------------------------------------------------------------------------- 1 | 42 | 43 | 68 | 69 | 146 | -------------------------------------------------------------------------------- /src/components/PageCheckAccount.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 119 | -------------------------------------------------------------------------------- /src/components/PageHomeModalHowItWorks.vue: -------------------------------------------------------------------------------- 1 | 61 | 62 | 72 | 73 | 99 | -------------------------------------------------------------------------------- /src/components/PagePwdModalHashProtected.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 30 | -------------------------------------------------------------------------------- /src/components/PageSafe.vue: -------------------------------------------------------------------------------- 1 | 42 | 43 | 77 | 78 | 99 | -------------------------------------------------------------------------------- /src/components/PageUnsafe.vue: -------------------------------------------------------------------------------- 1 | 40 | 41 | 94 | 95 | 129 | -------------------------------------------------------------------------------- /src/components/PageUnsafeModalSuggestions.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 35 | 36 | 49 | -------------------------------------------------------------------------------- /src/helpers/index.js: -------------------------------------------------------------------------------- 1 | import { Capacitor } from '@capacitor/core' 2 | 3 | const isProd = process.env.NODE_ENV === 'production' 4 | 5 | export default { 6 | /* 7 | * Check if running in a production environment 8 | */ 9 | isProd, 10 | 11 | /* 12 | * Get constants defined in .env through the Vue Service 13 | * @param {String} constant - name of constant to be returned 14 | */ 15 | env(constant) { 16 | return process.env[`VUE_APP_${constant}`] 17 | }, 18 | 19 | /* 20 | * Write message to console 21 | * @param {String} msg - message of the log 22 | */ 23 | log(msg) { 24 | notify('log', msg) 25 | }, 26 | 27 | /* 28 | * Write warning to console 29 | * @param {String} msg - message of the warning 30 | */ 31 | warn(msg) { 32 | notify('warn', msg) 33 | }, 34 | 35 | /* 36 | * Write error to console 37 | * @param {String} msg - message of the error 38 | */ 39 | err(msg) { 40 | notify('error', msg) 41 | }, 42 | 43 | /* 44 | * Check is reviews on apps stores feature is enabled 45 | */ 46 | storeReviewsEnabled() { 47 | return this.env('STORE_REVIEWS_ENABLED') === 'true' 48 | }, 49 | 50 | /* 51 | * Return iOS app id 52 | */ 53 | iOSAppId() { 54 | return this.env('IOS_APP_ID') 55 | }, 56 | 57 | /* 58 | * Check is the app is running into a web environment 59 | */ 60 | isWeb() { 61 | return Capacitor.platform === 'web' 62 | }, 63 | 64 | /* 65 | * Check is the app is running into an iOS environment 66 | */ 67 | isIOS() { 68 | return Capacitor.platform === 'ios' 69 | }, 70 | } 71 | 72 | /* 73 | * Abstract notifier 74 | * @param {String} method - type of notification 75 | * @param {String} msg - message to be written 76 | */ 77 | function notify(method, msg) { 78 | if (console && !isProd) { 79 | console[method](`[BEEP] ${msg}`) 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/images/Beep-Logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Account.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Filter-Active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Filter-InActive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Hash-Protected.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Password.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Show-Hide-Salmon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Show-Hide.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/Icon-Verified-Checkmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/images/google-play-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/src/images/google-play-badge.png -------------------------------------------------------------------------------- /src/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModusCreateOrg/beep/8429c09bc0d1bed037b8359145380f30c5b72c18/src/images/logo.png -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Ionic from '@modus/ionic-vue' 3 | import router from './router' 4 | 5 | // Capacitor 6 | import { Plugins, StatusBarStyle } from '@capacitor/core' 7 | const { SplashScreen, StatusBar, Network } = Plugins 8 | 9 | // Helpers 10 | import helpers from './helpers' 11 | import './registerServiceWorker' 12 | import BreachService from './breachesService' 13 | import ReviewAppService from './reviewAppService' 14 | import AppService from './appService' 15 | 16 | // Ionic core styles and theming 17 | import '@ionic/core/css/core.css' 18 | import '@ionic/core/css/ionic.bundle.css' 19 | import './theme/common.css' 20 | 21 | // Disable tips 22 | Vue.config.productionTip = false 23 | 24 | // Use ionic/vue plugin 25 | Vue.use(Ionic) 26 | 27 | // Initialize Capacitor 28 | initCapacitor() 29 | 30 | // Initialize helpers 31 | Vue.prototype.$helpers = helpers 32 | Vue.prototype.$breachesService = BreachService 33 | Vue.prototype.$appService = AppService 34 | Vue.prototype.$reviewAppService = ReviewAppService 35 | 36 | // Initialize app service and reviews service 37 | async function initServices() { 38 | await Vue.prototype.$appService.init() 39 | await Vue.prototype.$reviewAppService.init() 40 | } 41 | initServices() 42 | 43 | // Create a Vue app instance 44 | new Vue({ 45 | router, 46 | async mounted() { 47 | SplashScreen.hide().catch(this.$helpers.err) 48 | initNavGesture(this) 49 | }, 50 | }).$mount('#app') 51 | 52 | // Initial Capacitor calls 53 | async function initCapacitor() { 54 | // Platform checks 55 | Vue.prototype.$isWeb = helpers.isWeb() 56 | Vue.prototype.$isIOS = helpers.isIOS() 57 | 58 | // Set status-bar background and style 59 | StatusBar.setBackgroundColor({ color: helpers.env('INITIAL_STATUSBAR_COLOR') }).catch(helpers.err) 60 | StatusBar.setStyle({ style: StatusBarStyle.Light }).catch(helpers.err) 61 | 62 | // Set network checks 63 | Network.getStatus() 64 | .then(s => (Vue.prototype.$networkStatus = s)) 65 | .catch(helpers.err) 66 | 67 | // Listen to network changes 68 | Network.addListener('networkStatusChange', s => (Vue.prototype.$networkStatus = s)).catch( 69 | helpers.err 70 | ) 71 | } 72 | 73 | // Navigate back and forth through a swipe gesture 74 | async function initNavGesture(app) { 75 | const gesture = await import('@ionic/core/dist/collection/utils/gesture') 76 | 77 | gesture 78 | .createGesture({ 79 | el: document.body, 80 | gestureName: 'swipe', 81 | gesturePriority: 40, 82 | threshold: 10, 83 | queue: window.Ionic.queue, 84 | canStart: () => true, 85 | onStart: () => {}, 86 | onMove: () => {}, 87 | onEnd: ev => { 88 | const threshold = app.$root.$el.offsetWidth / 2 89 | if (Math.abs(ev.deltaX) > threshold) { 90 | app.$router.go(ev.deltaX > 0 ? -1 : 1) 91 | } 92 | }, 93 | }) 94 | .setDisabled(false) 95 | } 96 | -------------------------------------------------------------------------------- /src/mixins/hasModal.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data() { 3 | return { 4 | modal: null, 5 | isModalOpen: false, 6 | } 7 | }, 8 | beforeRouteLeave(to, from, next) { 9 | if (this.isModalOpen) { 10 | this.$ionic.modalController.dismiss() 11 | } 12 | next(!this.isModalOpen) 13 | }, 14 | methods: { 15 | async toggleModal(modalComponent = null) { 16 | let response = Promise.resolve() 17 | 18 | if (!this.isModalOpen) { 19 | const modal = await this.$ionic.modalController.create({ 20 | component: modalComponent || this.modal, 21 | }) 22 | modal.present() 23 | response = modal.onDidDismiss().then(this.toggleModal) 24 | } 25 | 26 | this.isModalOpen = !this.isModalOpen 27 | 28 | return response 29 | }, 30 | }, 31 | } 32 | -------------------------------------------------------------------------------- /src/mixins/network.js: -------------------------------------------------------------------------------- 1 | export default { 2 | methods: { 3 | checkNetworkStatus() { 4 | return this.$isWeb ? true : this.$networkStatus && this.$networkStatus.connected 5 | }, 6 | showNetworkAlert() { 7 | return this.$ionic.alertController 8 | .create({ 9 | header: 'No internet connection', 10 | message: 'Please check your internet connection.', 11 | buttons: ['OK'], 12 | }) 13 | .then(a => a.present()) 14 | }, 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /src/mixins/reviewAppModal.js: -------------------------------------------------------------------------------- 1 | import reviewAppModal from '@/components/ModalReviewApp.vue' 2 | 3 | export default { 4 | data() { 5 | return { 6 | reviewAppModal, 7 | } 8 | }, 9 | methods: { 10 | async tryPromptAppReview() { 11 | if (this.$reviewAppService.shouldPromptAppReview()) { 12 | await this.toggleModal(this.reviewAppModal) 13 | this.$reviewAppService.storeReviewRejected = true 14 | } 15 | }, 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /src/mixins/toggleStatusbarColor.js: -------------------------------------------------------------------------------- 1 | import { Plugins, StatusBarStyle } from '@capacitor/core' 2 | const { StatusBar } = Plugins 3 | const metaSelectors = ['meta[name="theme-color"]', 'meta[name="msapplication-TileColor"]'] 4 | 5 | export default { 6 | data() { 7 | return { 8 | initialStatusbarColor: this.$helpers.env('INITIAL_STATUSBAR_COLOR'), 9 | newStatusbarColor: '', 10 | } 11 | }, 12 | mounted() { 13 | for (const selector of metaSelectors) { 14 | document.querySelector(selector).content = this.newStatusbarColor 15 | } 16 | StatusBar.setBackgroundColor({ color: this.newStatusbarColor }).catch(this.$helpers.err) 17 | StatusBar.setStyle({ style: StatusBarStyle.Dark }).catch(this.$helpers.err) 18 | }, 19 | beforeRouteLeave(to, from, next) { 20 | for (const selector of metaSelectors) { 21 | document.querySelector(selector).content = this.initialStatusbarColor 22 | } 23 | StatusBar.setBackgroundColor({ color: this.initialStatusbarColor }).catch(this.$helpers.err) 24 | StatusBar.setStyle({ style: StatusBarStyle.Light }).catch(this.$helpers.err) 25 | next() 26 | }, 27 | } 28 | -------------------------------------------------------------------------------- /src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-console */ 2 | 3 | import { register } from 'register-service-worker' 4 | 5 | if (process.env.NODE_ENV === 'production') { 6 | register(`${process.env.BASE_URL}service-worker.js`, { 7 | ready() { 8 | console.log( 9 | 'App is being served from cache by a service worker.\n' + 10 | 'For more details, visit https://goo.gl/AFskqB' 11 | ) 12 | }, 13 | cached() { 14 | console.log('Content has been cached for offline use.') 15 | }, 16 | updated() { 17 | console.log('New content is available; please refresh.') 18 | }, 19 | offline() { 20 | console.log('No internet connection found. App is running in offline mode.') 21 | }, 22 | error(error) { 23 | console.error('Error during service worker registration:', error) 24 | }, 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /src/router.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import { IonicVueRouter } from '@modus/ionic-vue' 3 | import PageHome from './components/PageHome.vue' 4 | 5 | Vue.use(IonicVueRouter) 6 | 7 | export default new IonicVueRouter({ 8 | mode: 'history', 9 | base: process.env.BASE_URL, 10 | routes: [ 11 | { 12 | path: '/', 13 | component: PageHome, 14 | }, 15 | { 16 | path: '/acc', 17 | component: () => import('./components/PageCheckAccount.vue'), 18 | }, 19 | { 20 | path: '/pwd', 21 | component: () => import('./components/PageCheckPassword.vue'), 22 | }, 23 | { 24 | path: '/breaches', 25 | component: () => import('./components/PageBreaches.vue'), 26 | }, 27 | { 28 | path: '/breaches/:name', 29 | component: () => import('./components/PageBreach.vue'), 30 | props: route => ({ breachName: route.params.name }), 31 | }, 32 | { 33 | path: '/unsafe', 34 | component: () => import('./components/PageUnsafe.vue'), 35 | props: route => ({ count: Number(route.query.count) }), 36 | }, 37 | { 38 | path: '/safe', 39 | component: () => import('./components/PageSafe.vue'), 40 | }, 41 | ], 42 | }) 43 | -------------------------------------------------------------------------------- /tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true, 4 | }, 5 | rules: { 6 | 'import/no-extraneous-dependencies': 'off', 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /tests_root/wdio/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | [ 4 | '@babel/preset-env', 5 | { 6 | targets: { 7 | node: 8, 8 | }, 9 | }, 10 | ], 11 | ], 12 | } 13 | -------------------------------------------------------------------------------- /tests_root/wdio/configs/chromedriver.js: -------------------------------------------------------------------------------- 1 | const chromedriver = require('chromedriver') 2 | const retry = require('p-retry') 3 | const http = require('axios') 4 | 5 | function start(config) { 6 | const pollUrl = `http://${config.host || 'localhost'}:${config.port || 4444}${config.path || 7 | '/wd/hub'}/status` 8 | console.log('chromedriver starting on:', pollUrl) 9 | 10 | const proc = chromedriver.start([ 11 | `--url-base=${config.path || '/wd/hub'}`, 12 | `--port=${config.port || 4444}`, 13 | ]) 14 | process.on('exit', () => proc.kill()) 15 | 16 | return retry(() => http.get(pollUrl), { retries: 5, minDelay: 200 }) 17 | } 18 | 19 | function stop() { 20 | chromedriver.stop() 21 | } 22 | 23 | module.exports = { 24 | start, 25 | stop, 26 | } 27 | -------------------------------------------------------------------------------- /tests_root/wdio/configs/wdio.conf.local.chrome.js: -------------------------------------------------------------------------------- 1 | const configBase = require('./wdio.conf') 2 | 3 | exports.config = Object.assign({}, configBase.config, { 4 | capabilities: [ 5 | { 6 | maxInstances: 1, 7 | browserName: 'chrome', 8 | }, 9 | ], 10 | onPrepare: () => { 11 | if (this.config.chromeDriver) { 12 | require('./chromedriver').start(this.config) 13 | } 14 | }, 15 | after: () => { 16 | if (this.config.chromeDriver) { 17 | require('./chromedriver').stop() 18 | } 19 | }, 20 | chromeDriver: true, 21 | }) 22 | -------------------------------------------------------------------------------- /tests_root/wdio/features/check_password.feature: -------------------------------------------------------------------------------- 1 | @Password_Screen 2 | Feature: Password screen of Beep web app 3 | As a user of Beep web app 4 | I want to be able to provide my password on the Password page 5 | So that I know if my account data has been compromised 6 | 7 | @S1 @automated 8 | Scenario: The user can navigate to the Password page 9 | Given The user loads the Beep web app homepage 10 | When The user selects the Password button 11 | Then The user should be on the Password page 12 | Then The user should see the Your password text field 13 | Then The user should see the Check button 14 | -------------------------------------------------------------------------------- /tests_root/wdio/features/home.feature: -------------------------------------------------------------------------------- 1 | @Home_Screen 2 | Feature: Home Screen of Beep Web App 3 | As a User 4 | I want to navigate to the appropriate screen 5 | So that I can check if my account name or password have been compromised 6 | 7 | @S1 @automated 8 | Scenario: The user can load the Beep homepage 9 | Given The user loads the Beep web app homepage 10 | Then The user should see the Account button 11 | Then The user should see the Password button 12 | Then The user should see the How does it work link 13 | Then The user should see the App Store link 14 | Then The user should see the Google Play link 15 | -------------------------------------------------------------------------------- /tests_root/wdio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wdio-e2e-tests", 3 | "version": "0.1.0", 4 | "description": "Automated end-to-end tests for Beep using WebdriverIO.", 5 | "scripts": { 6 | "test:local:chrome": "wdio ./configs/wdio.conf.local.chrome.js" 7 | }, 8 | "keywords": [ 9 | "automation", 10 | "e2e", 11 | "tests", 12 | "webdriverio" 13 | ], 14 | "author": "Sergiu Bacanu", 15 | "license": "MIT", 16 | "devDependencies": { 17 | "@babel/cli": "^7.2.3", 18 | "@babel/core": "^7.2.2", 19 | "@babel/preset-env": "^7.3.1", 20 | "@babel/register": "^7.0.0", 21 | "axios": "^0.18.0", 22 | "chromedriver": "^2.45.0", 23 | "cucumber": "^5.1.0", 24 | "expect": "^23.6.0", 25 | "p-retry": "^3.0.1", 26 | "wdio-cucumber-framework": "^2.2.8", 27 | "wdio-spec-reporter": "^0.1.5", 28 | "webdriverio": "^4.14.2" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tests_root/wdio/page-objects/account.page.js: -------------------------------------------------------------------------------- 1 | /*global browser*/ 2 | const locators = { 3 | path: '/acc', 4 | 5 | usernameTextField: "//input[contains(@placeholder,'Username')]" 6 | }; 7 | 8 | function getPath() { 9 | return locators.path; 10 | } 11 | 12 | function usernameTextField() { 13 | return browser.element(locators.usernameTextField); 14 | } 15 | 16 | export { getPath, usernameTextField } 17 | -------------------------------------------------------------------------------- /tests_root/wdio/page-objects/common.js: -------------------------------------------------------------------------------- 1 | /*global browser*/ 2 | const locators = { 3 | checkButton: "//ion-button[span[text()='Check']]" 4 | }; 5 | 6 | function checkButton() { 7 | return browser.element(locators.checkButton); 8 | } 9 | 10 | export default checkButton; 11 | -------------------------------------------------------------------------------- /tests_root/wdio/page-objects/home.page.js: -------------------------------------------------------------------------------- 1 | /*global browser*/ 2 | const locators = { 3 | accountButton: "//div[text()='Account']", 4 | appStoreLink: "//a[contains(@href,'/beepios')]", 5 | googlePlayLink: "//a[contains(@href,'/beepandroid')]", 6 | howDoesItWorkLink: "//span[text()='How does it work?']", 7 | logo: "//img[contains(@src,'Beep-Logo')]", 8 | path: '/', 9 | passwordButton: "//div[text()='Password']", 10 | } 11 | 12 | function getPath() { 13 | return locators.path 14 | } 15 | 16 | function accountButton() { 17 | return browser.element(locators.accountButton) 18 | } 19 | 20 | function appStoreLink() { 21 | return browser.element(locators.appStoreLink); 22 | } 23 | 24 | function googlePlayLink() { 25 | return browser.element(locators.googlePlayLink); 26 | } 27 | 28 | function howDoesItWorkLink() { 29 | return browser.element(locators.howDoesItWorkLink) 30 | } 31 | 32 | function logo() { 33 | return browser.element(locators.logo) 34 | } 35 | 36 | function passwordButton() { 37 | return browser.element(locators.passwordButton) 38 | } 39 | 40 | function clickAccountButton() { 41 | accountButton().click() 42 | } 43 | 44 | function clickPasswordButton() { 45 | passwordButton().click() 46 | } 47 | 48 | export { 49 | accountButton, 50 | appStoreLink, 51 | clickAccountButton, 52 | clickPasswordButton, 53 | getPath, 54 | googlePlayLink, 55 | howDoesItWorkLink, 56 | logo, 57 | passwordButton 58 | } 59 | -------------------------------------------------------------------------------- /tests_root/wdio/page-objects/password.page.js: -------------------------------------------------------------------------------- 1 | /*global browser*/ 2 | const locators = { 3 | path: '/pwd', 4 | 5 | passwordTextField: "//input[@type='password']" 6 | }; 7 | 8 | function getPath() { 9 | return locators.path; 10 | } 11 | 12 | function passwordTextField() { 13 | return browser.element(locators.passwordTextField); 14 | } 15 | 16 | export { getPath, passwordTextField } 17 | -------------------------------------------------------------------------------- /tests_root/wdio/step-definitions/given.js: -------------------------------------------------------------------------------- 1 | /*global browser*/ 2 | import { Given } from 'cucumber' 3 | import { getPath, logo } from '../page-objects/home.page' 4 | import expect from 'expect' 5 | 6 | Given(/^The user loads the Beep web app homepage$/, { wrapperOptions: { retry: 2 } }, () => { 7 | browser.url(getPath()) 8 | expect(logo().value).toBeTruthy() 9 | }) 10 | -------------------------------------------------------------------------------- /tests_root/wdio/step-definitions/then.js: -------------------------------------------------------------------------------- 1 | import { Then } from 'cucumber' 2 | import * as homePage from '../page-objects/home.page' 3 | import expect from 'expect' 4 | import * as accountPage from '../page-objects/account.page' 5 | import checkButton from '../page-objects/common' 6 | import * as passwordPage from '../page-objects/password.page' 7 | 8 | Then( 9 | /^The user should see the (Account button|Password button|How does it work link|App Store link|Google Play link)$/, 10 | { wrapperOptions: { retry: 2 } }, 11 | pageElement => { 12 | let element; 13 | switch (pageElement) { 14 | case "Account button": { 15 | element = homePage.accountButton(); 16 | break; 17 | } 18 | case "Password button": { 19 | element = homePage.passwordButton(); 20 | break; 21 | } 22 | case "How does it work link": { 23 | element = homePage.howDoesItWorkLink(); 24 | break; 25 | } 26 | case "App Store link": { 27 | element = homePage.appStoreLink(); 28 | break; 29 | } 30 | case "Google Play link": { 31 | element = homePage.googlePlayLink(); 32 | break; 33 | } 34 | default: { 35 | throw new Error('The element does not exist on the home page.') 36 | } 37 | } 38 | 39 | expect(element.value).toBeTruthy(); 40 | } 41 | ) 42 | 43 | Then(/^The user should be on the (Account|Password) page$/, { wrapperOptions: { retry: 2 } }, pagePath => { 44 | let path; 45 | switch (pagePath) { 46 | case "Account": { 47 | path = accountPage.getPath(); 48 | break; 49 | } 50 | case "Password": { 51 | path = passwordPage.getPath(); 52 | break; 53 | } 54 | default: { 55 | throw new Error('The requested page does not exist.'); 56 | } 57 | } 58 | 59 | expect(browser.getUrl()).toContain(path); 60 | }) 61 | 62 | Then(/^The user should see the (Your username or email text field|Your password text field|Check button)$/, { wrapperOptions: { retry: 2 } }, pageElement => { 63 | let element; 64 | switch (pageElement) { 65 | case "Your username or email text field": { 66 | element = accountPage.usernameTextField(); 67 | break; 68 | } 69 | case "Your password text field": { 70 | element = passwordPage.passwordTextField(); 71 | break; 72 | } 73 | case "Check button": { 74 | element = checkButton(); 75 | break; 76 | } 77 | default: { 78 | throw new Error('The element does not exist on the account page.') 79 | } 80 | } 81 | 82 | expect(element.value).toBeTruthy(); 83 | }) 84 | -------------------------------------------------------------------------------- /tests_root/wdio/step-definitions/when.js: -------------------------------------------------------------------------------- 1 | /*global browser*/ 2 | import { When } from 'cucumber' 3 | import { clickAccountButton, clickPasswordButton } from '../page-objects/home.page' 4 | 5 | When(/^The user selects the (Account|Password) button$/, { wrapperOptions: { retry: 2 } }, pageElement => { 6 | switch (pageElement) { 7 | case "Account": { 8 | clickAccountButton(); 9 | break; 10 | } 11 | case "Password": { 12 | clickPasswordButton(); 13 | break; 14 | } 15 | default: { 16 | throw new Error('The element was not found on the homepage.'); 17 | } 18 | } 19 | }) 20 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | publicPath: '/', 3 | runtimeCompiler: true, 4 | 5 | // PWA config 6 | pwa: { 7 | name: process.env.VUE_APP_NAME, 8 | themeColor: process.env.VUE_APP_INITIAL_STATUSBAR_COLOR, 9 | msTileColor: process.env.VUE_APP_INITIAL_STATUSBAR_COLOR, 10 | appleMobileWebAppCapable: 'yes', 11 | appleMobileWebAppStatusBarStyle: 'black-translucent', 12 | }, 13 | } 14 | --------------------------------------------------------------------------------