diff --git a/.github/workflows/web-ci.yml b/.github/workflows/web-ci.yml index efcd42b28..d7869f1c3 100644 --- a/.github/workflows/web-ci.yml +++ b/.github/workflows/web-ci.yml @@ -22,7 +22,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 10 + version: 9.15.0 - name: Install dependencies run: pnpm install --frozen-lockfile diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index a8f5cb443..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,191 +0,0 @@ -# Contributing to CardScannerApp - -Thank you for considering contributing to CardScannerApp! Please read this guide to understand our development process and how you can contribute effectively. - -## How to Contribute - -### Reporting Bugs - -- Use the GitHub Issues tracker -- Include steps to reproduce, expected behavior, and actual behavior -- Add screenshots if applicable -- Label as "bug" - -### Suggesting Features - -- Use the GitHub Issues tracker -- Label as "enhancement" -- Describe the feature and its benefits -- Consider if it aligns with the project roadmap - -### Submitting Changes - -1. Fork the repository -2. Create a new branch (`git checkout -b feature/amazing-feature`) -3. Make your changes -4. Run tests to ensure nothing is broken -5. Commit your changes (`git commit -m 'Add amazing feature'`) -6. Push to the branch (`git push origin feature/amazing-feature`) -7. Open a Pull Request - -## Development Setup - -### Prerequisites - -- Node.js v18 or later -- npm or yarn -- Xcode (for iOS) -- Android Studio (for Android) -- Git - -### Installation - -```bash -git clone https://github.com/Sensible-Analytics/CardScannerApp.git -cd CardScannerApp -npm install -cd ios && pod install && cd .. -``` - -## Release Process - -### Versioning - -We use Semantic Versioning (MAJOR.MINOR.PATCH): -- **MAJOR**: Incompatible API changes or major redesigns -- **MINOR**: New features in backward-compatible manner -- **PATCH**: Bug fixes and minor improvements - -### Release Workflow - -1. **Update Version Numbers** - - Update `package.json` version - - Update `app.json` version - - Update `ios/` and `android/` version if needed - -2. **Prepare Release Notes** - - Document changes in release notes - - Update CHANGELOG.md if maintained - -3. **Generate Release Artifacts** - ```bash - # Build iOS release (requires Xcode) - npm run release:ios - - # Build Android release - npm run release:android - - # Verify artifacts - npm run release:verify - ``` - -4. **Create Git Tag and Release** - ```bash - git tag -a v1.0.0 -m "Version 1.0.0" - git push origin v1.0.0 - ``` - -5. **Submit to App Stores** - - Upload to App Store Connect (iOS) - - Upload to Google Play Console (Android) - - Complete store listings - - Submit for review - -### Store Listing Preparation - -See `app-store-listing.md` for detailed store listing requirements and guidelines. - -Required assets: -- Screenshots for all required device sizes -- App icons in various sizes -- Privacy policy URL -- Store descriptions and keywords -- Feature graphics - -Assets should be placed in the `store-assets/` directory structure. - -### CI/CD Release Pipeline - -Our CI/CD pipeline includes: -- **CI Workflow**: Runs tests on every push and pull request -- **Android Build**: Builds and tests Android app -- **iOS Build**: Builds and tests iOS app -- **Release Workflow**: Creates GitHub releases with artifacts when tags are pushed - -To trigger a release: -1. Ensure all tests pass on main branch -2. Create and push a version tag: `git tag -a v1.0.0 -m "Version 1.0.0"` -3. Push tag: `git push origin v1.0.0` -4. GitHub Actions will automatically build and create a release - -### Running Tests - -```bash -# Unit tests -npm test - -# E2E tests (iOS) -npm run detox:test -- --configuration ios.sim - -# E2E tests (Android) -npm run detox:test -- --configuration android.emu - -# Linting -npm run lint - -# TypeScript -npm run tsc --noEmit -``` - -## Coding Standards - -### TypeScript - -- Use strict mode (enabled in tsconfig.json) -- Prefer interfaces over types for object shapes -- Use functional components with hooks -- Export interfaces/types when they're public - -### React Native - -- Use StyleSheet.create() for styles -- Always provide accessibilityLabel for interactive elements -- Use Platform.OS for platform-specific code when needed -- Use FlatList for long lists of data - -### Testing - -- Write unit tests for utility functions -- Write E2E tests for user flows -- Follow AAA pattern: Arrange, Act, Assert -- Mock external dependencies appropriately - -### Git - -- Write clear, descriptive commit messages -- Reference issue numbers when applicable (e.g., "Fixes #123") -- Keep commits focused on single changes -- Use conventional commit format when possible - -## Code Review Process - -1. All PRs require at least one approval -2. CI must pass (tests, lint, build) -3. No breaking changes without discussion -4. Documentation updated when needed -5. Squash and merge preferred for feature branches - -## Community - -Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. - -## Getting Help - -If you need help: - -- Check existing issues for similar problems -- Ask in the GitHub Discussions -- Refer to the documentation in /docs -- As a last resort, open a new issue - -Thank you for contributing to CardScannerApp! diff --git a/E2E_TESTS.md b/E2E_TESTS.md deleted file mode 100644 index 9ab652f9f..000000000 --- a/E2E_TESTS.md +++ /dev/null @@ -1,400 +0,0 @@ -# E2E Testing Guide - -This guide covers automated end-to-end (E2E) testing for CardScannerApp using Detox. - -## Quick Start - -### Automated Testing (Recommended) - -Run all E2E tests with a single command: - -```bash -# Android only -npm run e2e:android - -# iOS only -npm run e2e:ios - -# Both platforms -npm run e2e:all -``` - -### Manual Step-by-Step - -1. **Start Metro bundler**: - - ```bash - npm start - ``` - -2. **In another terminal, run tests**: - - ```bash - # Android - npm run detox:build:android && npm run detox:test:android - - # iOS - npm run detox:build:ios && npm run detox:test:ios - ``` - -## Test Structure - -``` -e2e/ -├── helpers/ -│ └── app.js # Test helpers (launch, navigation, seeding) -├── assets/ -│ └── sample_card.png # Sample business card for mock OCR -├── scanner.e2e.js # Scanner OCR tests -├── navigation.e2e.js # Navigation flow tests -├── settings.e2e.js # Settings screen tests -└── contacts.e2e.js # Contact management tests -``` - -## How E2E Testing Works - -### Camera Mocking - -The app detects E2E mode via launch arguments and bypasses camera hardware: - -1. Detox launches app with `detoxDisableCamera: true` -2. `src/utils/launchArgs.ts` detects this flag -3. Scanner shows placeholder UI instead of camera view -4. Tests tap "Mock Scan Card" button -5. Mock OCR processes `e2e/assets/sample_card.png` -6. Tests verify extracted contact info - -### Launch Arguments - -The following launch arguments control E2E behavior: - -| Argument | Type | Description | -| ---------------------------- | ------- | ---------------------------------------------------- | -| `detoxDisableCamera` | boolean | Bypasses camera and shows mock UI | -| `detoxInitialTab` | string | Initial tab to open ("Scan", "Contacts", "Settings") | -| `detoxEnableSynchronization` | number | Disable JS/HTTP synchronization (0 = disabled) | - -### Test IDs - -All interactive elements have `testID` attributes for reliable selection: - -| testID | Component | -| -------------------------------- | ------------------------- | -| `app-root` | Root view | -| `scan-tab-button` | Scan tab in bottom nav | -| `contacts-tab-button` | Contacts tab | -| `settings-tab-button` | Settings tab | -| `mock-scan-button` | E2E mock scan button | -| `qa-seed-sample-contacts-button` | Load sample contacts | -| `ocr-profile-summary` | OCR language profile text | -| `auto-save-summary` | Auto-save status text | - -## Writing New Tests - -### Basic Test Structure - -```javascript -const { - launchCleanApp, - openScanTab, - waitForVisible, -} = require("./helpers/app"); - -describe("Feature Name", () => { - beforeEach(async () => { - await launchCleanApp(); - }); - - it("should do something", async () => { - // Arrange: Set up test conditions - await openScanTab(); - - // Act: Perform the action - await element(by.id("mock-scan-button")).tap(); - - // Assert: Verify results - await expect(element(by.text("John Doe"))).toExist(); - }); -}); -``` - -### Using Helpers - -The `e2e/helpers/app.js` provides common helpers: - -```javascript -// Launch app fresh (with E2E args and permissions) -await launchCleanApp(); - -// Navigate to tabs -await openScanTab(); -await openContactsTab(); -await openSettingsTab(); - -// Relaunch app (keeps state) -await relaunchApp(); - -// Handle alerts -await tapAlertButton("OK"); - -// Seed test data -await seedSampleContacts(); - -// Reset app data -await resetAppDataFromSettings(); - -// Wait for element -await waitForVisible(element(by.id("some-element"))); -``` - -### Testing Different Flows - -#### Scanner Flow - -```javascript -it("should scan and save contact", async () => { - await openScanTab(); - await element(by.id("mock-scan-button")).tap(); - await waitForVisible(element(by.id("results-view"))); - await expect(element(by.text("John Doe"))).toExist(); - - // Save contact - await element(by.id("save-contact-button")).tap(); - await waitForVisible(element(by.text("Contact saved successfully"))); -}); -``` - -#### Contacts Flow - -```javascript -it("should view saved contacts", async () => { - await seedSampleContacts(); // Seed data first - await openContactsTab(); - await waitForVisible(element(by.id("contacts-list"))); - await expect(element(by.text("Jane Doe"))).toExist(); -}); -``` - -#### Settings Flow - -```javascript -it("should toggle auto-save", async () => { - await openSettingsTab(); - const autoSaveSwitch = element(by.id("auto-save-switch")); - await autoSaveSwitch.tap(); - // Verify state changed -}); -``` - -## CI/CD Integration - -### GitHub Actions - -Add this workflow to `.github/workflows/e2e-tests.yml`: - -```yaml -name: E2E Tests - -on: - push: - branches: [main, develop] - pull_request: - branches: [main, develop] - -jobs: - android-tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: "18" - - name: Setup Android SDK - uses: android-actions/setup-android@v2 - - name: Install dependencies - run: npm ci - - name: Build and test - run: npm run e2e:android - env: - ANDROID_HOME: /opt/android-sdk - - ios-tests: - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: "18" - - name: Install iOS dependencies - run: | - cd ios && pod install && cd .. - - name: Build and test - run: npm run e2e:ios -``` - -### Jenkins Pipeline - -```groovy -pipeline { - agent any - - stages { - stage('E2E Tests') { - parallel { - stage('Android') { - steps { - sh 'npm ci' - sh 'npm run e2e:android' - } - } - stage('iOS') { - steps { - sh 'npm ci' - sh 'npm run e2e:ios' - } - } - } - } - } - - post { - always { - publishHTML target: [ - allowMissing: false, - alwaysLinkToLastBuild: true, - keepAll: true, - reportDir: 'e2e/artifacts', - reportFiles: '*.html', - reportName: 'E2E Test Report' - ] - } - } -} -``` - -## Troubleshooting - -### Common Issues - -#### "No Android device connected" - -```bash -# Start an emulator -$ANDROID_HOME/emulator/emulator -avd Pixel_4_API_33 - -# Or check connected devices -adb devices -``` - -#### "Failed to push sample card" - -```bash -# Manually push -adb push e2e/assets/sample_card.png /sdcard/sample_card.png - -# Or check permissions -adb shell ls -la /sdcard/ -``` - -#### "Test times out" - -```javascript -// Increase timeout in test -await waitFor(element(by.id("some-element"))) - .toExist() - .withTimeout(60000); // 60 seconds -``` - -#### "Element not found" - -```bash -# Dump UI hierarchy -adb shell uiautomator dump -adb pull /sdcard/window_dump.xml - -# Or use logcat -adb logcat | grep -i "detox" -``` - -### Debug Mode - -Enable verbose Detox logging: - -```bash -# Set environment variable -DEBUG=detox:* npm run detox:test:android -``` - -### Record Test Sessions - -```bash -# Record video of failing tests -npx detox test -c android.emu --record-videos failing - -# Videos saved to e2e/artifacts/ -``` - -## Best Practices - -1. **Isolate tests**: Each test should be independent -2. **Use helpers**: Don't repeat setup code -3. **Seed data**: Use QA tools for consistent test data -4. **Clean state**: Reset app between tests -5. **Descriptive names**: Test names should describe what they verify -6. **One assertion per test**: Multiple small tests > one large test -7. **Wait for elements**: Always wait for UI to settle -8. **Handle alerts**: Use `tapAlertButton()` helper - -## Advanced Topics - -### Custom Launch Arguments - -Add custom launch arguments in `e2e/helpers/app.js`: - -```javascript -const launchCleanApp = async (customArgs = {}) => { - await device.launchApp({ - newInstance: true, - launchArgs: { - detoxDisableCamera: "true", - detoxInitialTab: "Scan", - detoxEnableSynchronization: 0, - ...customArgs, // Add your custom args here - }, - // ... - }); -}; -``` - -### Mocking More Features - -Extend the mocking pattern for other hardware: - -```javascript -// In src/utils/launchArgs.ts -export const shouldDisableLocationForE2E = async () => { - const launchArgs = await getLaunchArgs(); - return normalizeBooleanArg(launchArgs.detoxDisableLocation); -}; - -// In your component -if (shouldDisableLocationForE2E()) { - // Return mock location UI -} -``` - -### Parallel Test Execution - -```bash -# Run tests in parallel (requires multiple emulators) -npx detox test -c android.emu --workers 2 - -# iOS parallel (requires multiple simulators) -npx detox test -c ios.sim --workers 2 -``` - -## Resources - -- [Detox Documentation](https://github.com/wix/Detox) -- [Detox API Reference](https://github.com/wix/Detox/blob/master/docs/APIRef.Matchers.md) -- [React Native Testing](https://reactnative.dev/docs/testing-overview) diff --git a/analytics-dashboard/.github/CODE_OF_CONDUCT.md b/analytics-dashboard/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index c414479d2..000000000 --- a/analytics-dashboard/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,21 +0,0 @@ -# Sensible-Analytics Contributor Covenant -We value participation and expect respect and courtesy. -## Standards -- Welcoming language -- Respect for differing views -- Accepting criticism -- Focusing on community benefit -- Showing empathy -## Unacceptable Behavior -- Sexualized content -- Trolling, insults, attacks -- Harassment -- Publishing private info -- Inappropriate professional conduct -## Responsibilities -Maintainers clarify and enforce standards. -## Scope -Applies in project and public spaces when representing project. -## Attribution -Adapted from Contributor Covenant v2.0 -For questions: contact maintainers@sensible-analytics.com diff --git a/analytics-dashboard/.github/CONTRIBUTING.md b/analytics-dashboard/.github/CONTRIBUTING.md deleted file mode 100644 index a31ed16a9..000000000 --- a/analytics-dashboard/.github/CONTRIBUTING.md +++ /dev/null @@ -1,49 +0,0 @@ -# Contributing to Sensible-Analytics -Thank you for considering contributing! -## How to Contribute -1. Report bugs - Help us improve -2. Suggest features - Share ideas -3. Improve documentation - Help make docs clearer -4. Submit code changes - Fix bugs/add features via PR -5. Help others - Answer questions/help contributors -## Getting Started -1. Fork repository -2. Create branch: git checkout -b feature/your-feature-name -3. Make changes following coding standards -4. Add/update tests as needed -5. Ensure all tests pass -6. Commit: git commit -m "feat: brief description" -7. Push: git push origin feature/your-feature-name -## Development Setup -- Clone repository -- Install dependencies -- Run development server -## Coding Standards -- Clear, maintainable code -- Follow existing code style -- Meaningful commit messages -- Add tests for functionality -- Update documentation when appropriate -- Keep PRs focused on single concern -## Pull Request Process -- Pass tests and linting -- Update README.md if needed -- Reviewed by maintainers -- Address reviewer feedback -- Once approved, changes merged -## Reporting Bugs -- Clear descriptive title -- Steps to reproduce -- Expected vs actual behavior -- Screenshots if applicable -- Environment details -## Suggesting Features -- Feature description and purpose -- Value to users -- Implementation considerations -- Usage examples -## License -Contributions licensed under same license as project. -## Questions? -Open issue or contact maintainers. -Happy coding! 🚀 diff --git a/analytics-dashboard/.github/ISSUE_TEMPLATE/bug_report.yml b/analytics-dashboard/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 6da19e57d..000000000 --- a/analytics-dashboard/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Bug Report -description: File a bug report to help us improve -title: "[BRIEF DESCRIPTION]" -labels: ["bug"] -assignees: [] -body: -**Please check if this has already been reported** -**Describe the bug** -A clear and concise description of what the bug is. -**To Reproduce** -Steps to reproduce: -1. Step one -2. Step two -2. Step three -**Expected behavior** -A clear and concise description of expected behavior. -**Actual behavior** -A clear and concise description of actual behavior. -**Screenshots** -If applicable, add screenshots. -**Environment** -- OS: [Windows, macOS, Linux] -- Browser: [Chrome, Firefox, Safari] -- Version: [22] -- Node.js: [v16.13.0] -- npm: [8.19.4] -- React: [18.2.0] diff --git a/analytics-dashboard/.github/ISSUE_TEMPLATE/feature_request.yml b/analytics-dashboard/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 3f6b45269..000000000 --- a/analytics-dashboard/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Feature Request -description: Suggest a new feature or enhancement -title: "[FEATURE NAME]" -labels: ["enhancement"] -assignees: [] -body: -**Is your feature request related to a problem? Please describe.** -**Describe the solution you'd like** -A clear and concise description of what you want to happen. -**Describe alternatives considered** -Alternative solutions or features considered. -**Additional context** -Additional context or screenshots here. diff --git a/analytics-dashboard/.github/ISSUE_TEMPLATE/question.yml b/analytics-dashboard/.github/ISSUE_TEMPLATE/question.yml deleted file mode 100644 index 9313d5399..000000000 --- a/analytics-dashboard/.github/ISSUE_TEMPLATE/question.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Question -description: Ask a question about the project -title: "[QUESTION TITLE]" -labels: ["question"] -assignees: [] -body: -**Is your question related to a problem? Please describe.** -**What's happening currently** -What is currently happening. -**What do you expect to happen** -What you expect to happen. -**Steps to reproduce** -If helpful: -1. Step one -2. Step two -3. Step three -**Additional context** -Additional context or screenshots here. diff --git a/analytics-dashboard/.github/PULL_REQUEST_TEMPLATE.md b/analytics-dashboard/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index d6bcd6a25..000000000 --- a/analytics-dashboard/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,38 +0,0 @@ -# Pull Request Template -## Description -Please provide a clear and concise description of your changes. -## Related Issue -Closes #IssueNumber -## Type of Change -- [ ] Bug fix -- [ ] New feature -- [ ] Documentation update -- [ ] Code refactoring -- [ ] Performance improvement -- [ ] Test update -- [ ] Configuration change -- [ ] Dependency update -- [ ] Other: Please describe -## Checklist -### Code Quality -- [ ] My code follows project style guidelines -- [ ] Self-review of my own code -- [ ] Documentation changes made -- [ ] No new warnings generated -- [ ] New/altered files tested -- [ ] Linting passes -- [ ] Tests pass -### Functionality -- [ ] Implementation solves original issue -- [ ] Edge cases considered -- [ ] Solution backwards compatible -- [ ] Works with supported browsers/environments -- [ ] Solution is secure -- [ ] Implementation respects privacy -- [ ] Implementation is accessible -### Documentation -- [ ] README.md updated if needed -- [ ] API documentation updated -- [ ] Relevant guides updated -- [ ] Inline comments added to complex logic -## Additional Information diff --git a/analytics-dashboard/LICENSE b/analytics-dashboard/LICENSE deleted file mode 100644 index 2bf3c3a31..000000000 --- a/analytics-dashboard/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 Sensible-Analytics - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTIONWITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/analytics-dashboard/README.md b/analytics-dashboard/README.md deleted file mode 100644 index 86b17778f..000000000 --- a/analytics-dashboard/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analytics Dashboard - -Interactive business intelligence dashboard with real-time data processing capabilities. - -## 🚀 Features -- Real-time data updates via WebSocket connections -- Customizable chart types (line, bar, pie, scatter, area) -- Drag-and-drop dashboard builder -- Export capabilities (PDF, PNG, CSV, JSON) -- User authentication and role-based access control -- Responsive design for mobile and desktop -- Multi-language support with i18n -- Themeable interface with CSS variables -- Plugin architecture for extensibility - -## 📋 Getting Started - -See our [main getting started guide](../docs/getting-started.md) for detailed installation instructions. - -## 🔧 Development - -```bash -# Clone the repository -git clone https://github.com/Sensible-Analytics/analytics-dashboard.git -cd analytics-dashboard - -# Install dependencies -npm install - -# Start development server -npm run dev - -# Run tests -npm test - -# Build for production -npm run build -``` - -## 📚 Documentation -- [API reference](docs/api-reference.md) -- [Contributing guidelines](.github/CONTRIBUTING.md) -- [Code of conduct](.github/CODE_OF_CONDUCT.md) -- [Security policy](.github/SECURITY.md) -- [Support guide](.github/SUPPORT.md) - -## 🐛 Bug Reports -Report bugs using our [bug report template](.github/ISSUE_TEMPLATE/bug_report.yml) - -## 💡 Feature Requests -Submit feature requests using our [feature request template](.github/ISSUE_TEMPLATE/feature_request.yml) - -## 🙏 Contributors -Thanks to all contributors who have helped shape this project: -- [List of contributors](graphs/contributors) - -## 📜 Licensing -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file. - diff --git a/analytics-dashboard/package.json b/analytics-dashboard/package.json deleted file mode 100644 index 70794d073..000000000 --- a/analytics-dashboard/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@sensible-analytics/analytics-dashboard", - "version": "1.0.0", - "description": "Interactive business intelligence dashboard with real-time data processing capabilities", - "main": "src/index.js", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview", - "test": "vitest", - "lint": "eslint src/**/*.{js,ts}", - "format": "prettier --write src/**/*.{js,ts}" - }, - "dependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0", - "vue": "^3.2.0", - "@types/react": "^18.0.0", - "@types/react-dom": "^18.0.0", - "d3": "^7.0.0", - "chart.js": "^4.0.0", - "socket.io": "^4.0.0", - "axios": "^1.0.0", - "lodash": "^4.0.0" - }, - "devDependencies": { - "@types/node": "^18.0.0", - "@types/react": "^18.0.0", - "@types/react-dom": "^18.0.0", - "@types/vite": "^2.0.0", - "vitest": "^2.0.0", - "eslint": "^8.0.0", - "eslint-plugin-react": "^7.0.0", - "prettier": "^3.0.0" - } -} \ No newline at end of file diff --git a/android/.gradle/8.11.1/checksums/checksums.lock b/android/.gradle/8.11.1/checksums/checksums.lock deleted file mode 100644 index 40e2498bc..000000000 Binary files a/android/.gradle/8.11.1/checksums/checksums.lock and /dev/null differ diff --git a/android/.gradle/8.11.1/checksums/md5-checksums.bin b/android/.gradle/8.11.1/checksums/md5-checksums.bin deleted file mode 100644 index 3de70e114..000000000 Binary files a/android/.gradle/8.11.1/checksums/md5-checksums.bin and /dev/null differ diff --git a/android/.gradle/8.11.1/checksums/sha1-checksums.bin b/android/.gradle/8.11.1/checksums/sha1-checksums.bin deleted file mode 100644 index ac6535c6d..000000000 Binary files a/android/.gradle/8.11.1/checksums/sha1-checksums.bin and /dev/null differ diff --git a/android/.gradle/8.11.1/fileChanges/last-build.bin b/android/.gradle/8.11.1/fileChanges/last-build.bin deleted file mode 100644 index f76dd238a..000000000 Binary files a/android/.gradle/8.11.1/fileChanges/last-build.bin and /dev/null differ diff --git a/android/.gradle/8.11.1/fileHashes/fileHashes.lock b/android/.gradle/8.11.1/fileHashes/fileHashes.lock deleted file mode 100644 index 00c17e39c..000000000 Binary files a/android/.gradle/8.11.1/fileHashes/fileHashes.lock and /dev/null differ diff --git a/android/.gradle/8.11.1/gc.properties b/android/.gradle/8.11.1/gc.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/android/.gradle/8.6/checksums/checksums.lock b/android/.gradle/8.6/checksums/checksums.lock deleted file mode 100644 index 2de9b8467..000000000 Binary files a/android/.gradle/8.6/checksums/checksums.lock and /dev/null differ diff --git a/android/.gradle/8.6/checksums/md5-checksums.bin b/android/.gradle/8.6/checksums/md5-checksums.bin deleted file mode 100644 index 0faaef549..000000000 Binary files a/android/.gradle/8.6/checksums/md5-checksums.bin and /dev/null differ diff --git a/android/.gradle/8.6/checksums/sha1-checksums.bin b/android/.gradle/8.6/checksums/sha1-checksums.bin deleted file mode 100644 index a2397bd1a..000000000 Binary files a/android/.gradle/8.6/checksums/sha1-checksums.bin and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidGradleLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidGradleLibraryAccessors.class deleted file mode 100644 index 9d058ebad..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidLibraryAccessors.class deleted file mode 100644 index fe3af5fc4..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class deleted file mode 100644 index ea7497ddd..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinGradleLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinGradleLibraryAccessors.class deleted file mode 100644 index 8a70d5258..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class deleted file mode 100644 index 5ece662a6..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class deleted file mode 100644 index aa1000283..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class deleted file mode 100644 index 29ca6de8c..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class deleted file mode 100644 index 019f8cee6..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs.class deleted file mode 100644 index 330b3651a..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidGradleLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidGradleLibraryAccessors.class deleted file mode 100644 index ea0c93c4f..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidLibraryAccessors.class deleted file mode 100644 index f144f59ad..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$BundleAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$BundleAccessors.class deleted file mode 100644 index 47d68fd31..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$BundleAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinGradleLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinGradleLibraryAccessors.class deleted file mode 100644 index 55698e34b..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinLibraryAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinLibraryAccessors.class deleted file mode 100644 index 936369304..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinPluginAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinPluginAccessors.class deleted file mode 100644 index d6556591b..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinPluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$PluginAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$PluginAccessors.class deleted file mode 100644 index 780e79fdc..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$PluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$VersionAccessors.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$VersionAccessors.class deleted file mode 100644 index 939f000f5..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$VersionAccessors.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.class b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.class deleted file mode 100644 index f49885018..000000000 Binary files a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.class and /dev/null differ diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/metadata.bin b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/metadata.bin deleted file mode 100644 index 2bc29f2b3..000000000 --- a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/metadata.bin +++ /dev/null @@ -1 +0,0 @@ -tkrqsxohxvd5djyc4uol5i563mclasses' \j@ sources=ڻH1 \ No newline at end of file diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibs.java b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibs.java deleted file mode 100644 index 16b0a3262..000000000 --- a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibs.java +++ /dev/null @@ -1,271 +0,0 @@ -package org.gradle.accessors.dm; - -import org.gradle.api.NonNullApi; -import org.gradle.api.artifacts.MinimalExternalModuleDependency; -import org.gradle.plugin.use.PluginDependency; -import org.gradle.api.artifacts.ExternalModuleDependencyBundle; -import org.gradle.api.artifacts.MutableVersionConstraint; -import org.gradle.api.provider.Provider; -import org.gradle.api.model.ObjectFactory; -import org.gradle.api.provider.ProviderFactory; -import org.gradle.api.internal.catalog.AbstractExternalDependencyFactory; -import org.gradle.api.internal.catalog.DefaultVersionCatalog; -import java.util.Map; -import org.gradle.api.internal.attributes.ImmutableAttributesFactory; -import org.gradle.api.internal.artifacts.dsl.CapabilityNotationParser; -import javax.inject.Inject; - -/** - * A catalog of dependencies accessible via the {@code libs} extension. - */ -@NonNullApi -public class LibrariesForLibs extends AbstractExternalDependencyFactory { - - private final AbstractExternalDependencyFactory owner = this; - private final AndroidLibraryAccessors laccForAndroidLibraryAccessors = new AndroidLibraryAccessors(owner); - private final KotlinLibraryAccessors laccForKotlinLibraryAccessors = new KotlinLibraryAccessors(owner); - private final VersionAccessors vaccForVersionAccessors = new VersionAccessors(providers, config); - private final BundleAccessors baccForBundleAccessors = new BundleAccessors(objects, providers, config, attributesFactory, capabilityNotationParser); - private final PluginAccessors paccForPluginAccessors = new PluginAccessors(providers, config); - - @Inject - public LibrariesForLibs(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { - super(config, providers, objects, attributesFactory, capabilityNotationParser); - } - - /** - * Dependency provider for gson with com.google.code.gson:gson coordinates and - * with version reference gson - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getGson() { - return create("gson"); - } - - /** - * Dependency provider for guava with com.google.guava:guava coordinates and - * with version reference guava - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getGuava() { - return create("guava"); - } - - /** - * Dependency provider for javapoet with com.squareup:javapoet coordinates and - * with version reference javapoet - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getJavapoet() { - return create("javapoet"); - } - - /** - * Dependency provider for junit with junit:junit coordinates and - * with version reference junit - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getJunit() { - return create("junit"); - } - - /** - * Group of libraries at android - */ - public AndroidLibraryAccessors getAndroid() { - return laccForAndroidLibraryAccessors; - } - - /** - * Group of libraries at kotlin - */ - public KotlinLibraryAccessors getKotlin() { - return laccForKotlinLibraryAccessors; - } - - /** - * Group of versions at versions - */ - public VersionAccessors getVersions() { - return vaccForVersionAccessors; - } - - /** - * Group of bundles at bundles - */ - public BundleAccessors getBundles() { - return baccForBundleAccessors; - } - - /** - * Group of plugins at plugins - */ - public PluginAccessors getPlugins() { - return paccForPluginAccessors; - } - - public static class AndroidLibraryAccessors extends SubDependencyFactory { - private final AndroidGradleLibraryAccessors laccForAndroidGradleLibraryAccessors = new AndroidGradleLibraryAccessors(owner); - - public AndroidLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at android.gradle - */ - public AndroidGradleLibraryAccessors getGradle() { - return laccForAndroidGradleLibraryAccessors; - } - - } - - public static class AndroidGradleLibraryAccessors extends SubDependencyFactory { - - public AndroidGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with com.android.tools.build:gradle coordinates and - * with version reference agp - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getPlugin() { - return create("android.gradle.plugin"); - } - - } - - public static class KotlinLibraryAccessors extends SubDependencyFactory { - private final KotlinGradleLibraryAccessors laccForKotlinGradleLibraryAccessors = new KotlinGradleLibraryAccessors(owner); - - public KotlinLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at kotlin.gradle - */ - public KotlinGradleLibraryAccessors getGradle() { - return laccForKotlinGradleLibraryAccessors; - } - - } - - public static class KotlinGradleLibraryAccessors extends SubDependencyFactory { - - public KotlinGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with org.jetbrains.kotlin:kotlin-gradle-plugin coordinates and - * with version reference kotlin - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getPlugin() { - return create("kotlin.gradle.plugin"); - } - - } - - public static class VersionAccessors extends VersionFactory { - - public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Version alias agp with value 8.2.1 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getAgp() { return getVersion("agp"); } - - /** - * Version alias gson with value 2.8.9 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGson() { return getVersion("gson"); } - - /** - * Version alias guava with value 31.0.1-jre - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGuava() { return getVersion("guava"); } - - /** - * Version alias javapoet with value 1.13.0 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJavapoet() { return getVersion("javapoet"); } - - /** - * Version alias junit with value 4.13.2 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJunit() { return getVersion("junit"); } - - /** - * Version alias kotlin with value 1.9.22 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getKotlin() { return getVersion("kotlin"); } - - } - - public static class BundleAccessors extends BundleFactory { - - public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); } - - } - - public static class PluginAccessors extends PluginFactory { - private final KotlinPluginAccessors paccForKotlinPluginAccessors = new KotlinPluginAccessors(providers, config); - - public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Group of plugins at plugins.kotlin - */ - public KotlinPluginAccessors getKotlin() { - return paccForKotlinPluginAccessors; - } - - } - - public static class KotlinPluginAccessors extends PluginFactory { - - public KotlinPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Plugin provider for kotlin.jvm with plugin id org.jetbrains.kotlin.jvm and - * with version reference kotlin - *

- * This plugin was declared in catalog libs.versions.toml - */ - public Provider getJvm() { return createPlugin("kotlin.jvm"); } - - } - -} diff --git a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.java b/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.java deleted file mode 100644 index 4a2dbacc1..000000000 --- a/android/.gradle/8.6/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.java +++ /dev/null @@ -1,335 +0,0 @@ -package org.gradle.accessors.dm; - -import org.gradle.api.NonNullApi; -import org.gradle.api.artifacts.MinimalExternalModuleDependency; -import org.gradle.plugin.use.PluginDependency; -import org.gradle.api.artifacts.ExternalModuleDependencyBundle; -import org.gradle.api.artifacts.MutableVersionConstraint; -import org.gradle.api.provider.Provider; -import org.gradle.api.model.ObjectFactory; -import org.gradle.api.provider.ProviderFactory; -import org.gradle.api.internal.catalog.AbstractExternalDependencyFactory; -import org.gradle.api.internal.catalog.DefaultVersionCatalog; -import java.util.Map; -import org.gradle.api.internal.attributes.ImmutableAttributesFactory; -import org.gradle.api.internal.artifacts.dsl.CapabilityNotationParser; -import javax.inject.Inject; - -/** - * A catalog of dependencies accessible via the {@code libs} extension. - */ -@NonNullApi -public class LibrariesForLibsInPluginsBlock extends AbstractExternalDependencyFactory { - - private final AbstractExternalDependencyFactory owner = this; - private final AndroidLibraryAccessors laccForAndroidLibraryAccessors = new AndroidLibraryAccessors(owner); - private final KotlinLibraryAccessors laccForKotlinLibraryAccessors = new KotlinLibraryAccessors(owner); - private final VersionAccessors vaccForVersionAccessors = new VersionAccessors(providers, config); - private final BundleAccessors baccForBundleAccessors = new BundleAccessors(objects, providers, config, attributesFactory, capabilityNotationParser); - private final PluginAccessors paccForPluginAccessors = new PluginAccessors(providers, config); - - @Inject - public LibrariesForLibsInPluginsBlock(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { - super(config, providers, objects, attributesFactory, capabilityNotationParser); - } - - /** - * Dependency provider for gson with com.google.code.gson:gson coordinates and - * with version reference gson - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getGson() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("gson"); - } - - /** - * Dependency provider for guava with com.google.guava:guava coordinates and - * with version reference guava - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getGuava() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("guava"); - } - - /** - * Dependency provider for javapoet with com.squareup:javapoet coordinates and - * with version reference javapoet - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getJavapoet() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("javapoet"); - } - - /** - * Dependency provider for junit with junit:junit coordinates and - * with version reference junit - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getJunit() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("junit"); - } - - /** - * Group of libraries at android - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public AndroidLibraryAccessors getAndroid() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForAndroidLibraryAccessors; - } - - /** - * Group of libraries at kotlin - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public KotlinLibraryAccessors getKotlin() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForKotlinLibraryAccessors; - } - - /** - * Group of versions at versions - */ - public VersionAccessors getVersions() { - return vaccForVersionAccessors; - } - - /** - * Group of bundles at bundles - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public BundleAccessors getBundles() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return baccForBundleAccessors; - } - - /** - * Group of plugins at plugins - */ - public PluginAccessors getPlugins() { - return paccForPluginAccessors; - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class AndroidLibraryAccessors extends SubDependencyFactory { - private final AndroidGradleLibraryAccessors laccForAndroidGradleLibraryAccessors = new AndroidGradleLibraryAccessors(owner); - - public AndroidLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at android.gradle - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public AndroidGradleLibraryAccessors getGradle() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForAndroidGradleLibraryAccessors; - } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class AndroidGradleLibraryAccessors extends SubDependencyFactory { - - public AndroidGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with com.android.tools.build:gradle coordinates and - * with version reference agp - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getPlugin() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("android.gradle.plugin"); - } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class KotlinLibraryAccessors extends SubDependencyFactory { - private final KotlinGradleLibraryAccessors laccForKotlinGradleLibraryAccessors = new KotlinGradleLibraryAccessors(owner); - - public KotlinLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at kotlin.gradle - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public KotlinGradleLibraryAccessors getGradle() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForKotlinGradleLibraryAccessors; - } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class KotlinGradleLibraryAccessors extends SubDependencyFactory { - - public KotlinGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with org.jetbrains.kotlin:kotlin-gradle-plugin coordinates and - * with version reference kotlin - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getPlugin() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("kotlin.gradle.plugin"); - } - - } - - public static class VersionAccessors extends VersionFactory { - - public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Version alias agp with value 8.2.1 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getAgp() { return getVersion("agp"); } - - /** - * Version alias gson with value 2.8.9 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGson() { return getVersion("gson"); } - - /** - * Version alias guava with value 31.0.1-jre - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGuava() { return getVersion("guava"); } - - /** - * Version alias javapoet with value 1.13.0 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJavapoet() { return getVersion("javapoet"); } - - /** - * Version alias junit with value 4.13.2 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJunit() { return getVersion("junit"); } - - /** - * Version alias kotlin with value 1.9.22 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getKotlin() { return getVersion("kotlin"); } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class BundleAccessors extends BundleFactory { - - public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); } - - } - - public static class PluginAccessors extends PluginFactory { - private final KotlinPluginAccessors paccForKotlinPluginAccessors = new KotlinPluginAccessors(providers, config); - - public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Group of plugins at plugins.kotlin - */ - public KotlinPluginAccessors getKotlin() { - return paccForKotlinPluginAccessors; - } - - } - - public static class KotlinPluginAccessors extends PluginFactory { - - public KotlinPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Plugin provider for kotlin.jvm with plugin id org.jetbrains.kotlin.jvm and - * with version reference kotlin - *

- * This plugin was declared in catalog libs.versions.toml - */ - public Provider getJvm() { return createPlugin("kotlin.jvm"); } - - } - -} diff --git a/android/.gradle/8.6/dependencies-accessors/gc.properties b/android/.gradle/8.6/dependencies-accessors/gc.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/android/.gradle/8.6/executionHistory/executionHistory.bin b/android/.gradle/8.6/executionHistory/executionHistory.bin deleted file mode 100644 index 2989d5d12..000000000 Binary files a/android/.gradle/8.6/executionHistory/executionHistory.bin and /dev/null differ diff --git a/android/.gradle/8.6/executionHistory/executionHistory.lock b/android/.gradle/8.6/executionHistory/executionHistory.lock deleted file mode 100644 index 5bc00c410..000000000 Binary files a/android/.gradle/8.6/executionHistory/executionHistory.lock and /dev/null differ diff --git a/android/.gradle/8.6/fileChanges/last-build.bin b/android/.gradle/8.6/fileChanges/last-build.bin deleted file mode 100644 index f76dd238a..000000000 Binary files a/android/.gradle/8.6/fileChanges/last-build.bin and /dev/null differ diff --git a/android/.gradle/8.6/fileHashes/fileHashes.bin b/android/.gradle/8.6/fileHashes/fileHashes.bin deleted file mode 100644 index 98d924328..000000000 Binary files a/android/.gradle/8.6/fileHashes/fileHashes.bin and /dev/null differ diff --git a/android/.gradle/8.6/fileHashes/fileHashes.lock b/android/.gradle/8.6/fileHashes/fileHashes.lock deleted file mode 100644 index 8e7fd1e10..000000000 Binary files a/android/.gradle/8.6/fileHashes/fileHashes.lock and /dev/null differ diff --git a/android/.gradle/8.6/fileHashes/resourceHashesCache.bin b/android/.gradle/8.6/fileHashes/resourceHashesCache.bin deleted file mode 100644 index 1a49d7354..000000000 Binary files a/android/.gradle/8.6/fileHashes/resourceHashesCache.bin and /dev/null differ diff --git a/android/.gradle/8.6/gc.properties b/android/.gradle/8.6/gc.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/android/.gradle/8.7/checksums/checksums.lock b/android/.gradle/8.7/checksums/checksums.lock deleted file mode 100644 index ebeaa312c..000000000 Binary files a/android/.gradle/8.7/checksums/checksums.lock and /dev/null differ diff --git a/android/.gradle/8.7/checksums/md5-checksums.bin b/android/.gradle/8.7/checksums/md5-checksums.bin deleted file mode 100644 index 8fefe5dbd..000000000 Binary files a/android/.gradle/8.7/checksums/md5-checksums.bin and /dev/null differ diff --git a/android/.gradle/8.7/checksums/sha1-checksums.bin b/android/.gradle/8.7/checksums/sha1-checksums.bin deleted file mode 100644 index 9072a3f00..000000000 Binary files a/android/.gradle/8.7/checksums/sha1-checksums.bin and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidGradleLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidGradleLibraryAccessors.class deleted file mode 100644 index 9d058ebad..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidLibraryAccessors.class deleted file mode 100644 index fe3af5fc4..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class deleted file mode 100644 index ea7497ddd..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinGradleLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinGradleLibraryAccessors.class deleted file mode 100644 index 8a70d5258..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class deleted file mode 100644 index 5ece662a6..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class deleted file mode 100644 index aa1000283..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class deleted file mode 100644 index 29ca6de8c..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class deleted file mode 100644 index 019f8cee6..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs.class deleted file mode 100644 index 330b3651a..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibs.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidGradleLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidGradleLibraryAccessors.class deleted file mode 100644 index ea0c93c4f..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidLibraryAccessors.class deleted file mode 100644 index f144f59ad..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$AndroidLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$BundleAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$BundleAccessors.class deleted file mode 100644 index 47d68fd31..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$BundleAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinGradleLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinGradleLibraryAccessors.class deleted file mode 100644 index 55698e34b..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinGradleLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinLibraryAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinLibraryAccessors.class deleted file mode 100644 index 936369304..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinLibraryAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinPluginAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinPluginAccessors.class deleted file mode 100644 index d6556591b..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$KotlinPluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$PluginAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$PluginAccessors.class deleted file mode 100644 index 780e79fdc..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$PluginAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$VersionAccessors.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$VersionAccessors.class deleted file mode 100644 index 939f000f5..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock$VersionAccessors.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.class b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.class deleted file mode 100644 index f49885018..000000000 Binary files a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/classes/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.class and /dev/null differ diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/metadata.bin b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/metadata.bin deleted file mode 100644 index f55cb646a..000000000 --- a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/metadata.bin +++ /dev/null @@ -1,2 +0,0 @@ -cq4ylmdpkrfy3ppp6yjr7wbz3u]gZ - classes' \j@ sources=ڻH1 \ No newline at end of file diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibs.java b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibs.java deleted file mode 100644 index 16b0a3262..000000000 --- a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibs.java +++ /dev/null @@ -1,271 +0,0 @@ -package org.gradle.accessors.dm; - -import org.gradle.api.NonNullApi; -import org.gradle.api.artifacts.MinimalExternalModuleDependency; -import org.gradle.plugin.use.PluginDependency; -import org.gradle.api.artifacts.ExternalModuleDependencyBundle; -import org.gradle.api.artifacts.MutableVersionConstraint; -import org.gradle.api.provider.Provider; -import org.gradle.api.model.ObjectFactory; -import org.gradle.api.provider.ProviderFactory; -import org.gradle.api.internal.catalog.AbstractExternalDependencyFactory; -import org.gradle.api.internal.catalog.DefaultVersionCatalog; -import java.util.Map; -import org.gradle.api.internal.attributes.ImmutableAttributesFactory; -import org.gradle.api.internal.artifacts.dsl.CapabilityNotationParser; -import javax.inject.Inject; - -/** - * A catalog of dependencies accessible via the {@code libs} extension. - */ -@NonNullApi -public class LibrariesForLibs extends AbstractExternalDependencyFactory { - - private final AbstractExternalDependencyFactory owner = this; - private final AndroidLibraryAccessors laccForAndroidLibraryAccessors = new AndroidLibraryAccessors(owner); - private final KotlinLibraryAccessors laccForKotlinLibraryAccessors = new KotlinLibraryAccessors(owner); - private final VersionAccessors vaccForVersionAccessors = new VersionAccessors(providers, config); - private final BundleAccessors baccForBundleAccessors = new BundleAccessors(objects, providers, config, attributesFactory, capabilityNotationParser); - private final PluginAccessors paccForPluginAccessors = new PluginAccessors(providers, config); - - @Inject - public LibrariesForLibs(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { - super(config, providers, objects, attributesFactory, capabilityNotationParser); - } - - /** - * Dependency provider for gson with com.google.code.gson:gson coordinates and - * with version reference gson - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getGson() { - return create("gson"); - } - - /** - * Dependency provider for guava with com.google.guava:guava coordinates and - * with version reference guava - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getGuava() { - return create("guava"); - } - - /** - * Dependency provider for javapoet with com.squareup:javapoet coordinates and - * with version reference javapoet - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getJavapoet() { - return create("javapoet"); - } - - /** - * Dependency provider for junit with junit:junit coordinates and - * with version reference junit - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getJunit() { - return create("junit"); - } - - /** - * Group of libraries at android - */ - public AndroidLibraryAccessors getAndroid() { - return laccForAndroidLibraryAccessors; - } - - /** - * Group of libraries at kotlin - */ - public KotlinLibraryAccessors getKotlin() { - return laccForKotlinLibraryAccessors; - } - - /** - * Group of versions at versions - */ - public VersionAccessors getVersions() { - return vaccForVersionAccessors; - } - - /** - * Group of bundles at bundles - */ - public BundleAccessors getBundles() { - return baccForBundleAccessors; - } - - /** - * Group of plugins at plugins - */ - public PluginAccessors getPlugins() { - return paccForPluginAccessors; - } - - public static class AndroidLibraryAccessors extends SubDependencyFactory { - private final AndroidGradleLibraryAccessors laccForAndroidGradleLibraryAccessors = new AndroidGradleLibraryAccessors(owner); - - public AndroidLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at android.gradle - */ - public AndroidGradleLibraryAccessors getGradle() { - return laccForAndroidGradleLibraryAccessors; - } - - } - - public static class AndroidGradleLibraryAccessors extends SubDependencyFactory { - - public AndroidGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with com.android.tools.build:gradle coordinates and - * with version reference agp - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getPlugin() { - return create("android.gradle.plugin"); - } - - } - - public static class KotlinLibraryAccessors extends SubDependencyFactory { - private final KotlinGradleLibraryAccessors laccForKotlinGradleLibraryAccessors = new KotlinGradleLibraryAccessors(owner); - - public KotlinLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at kotlin.gradle - */ - public KotlinGradleLibraryAccessors getGradle() { - return laccForKotlinGradleLibraryAccessors; - } - - } - - public static class KotlinGradleLibraryAccessors extends SubDependencyFactory { - - public KotlinGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with org.jetbrains.kotlin:kotlin-gradle-plugin coordinates and - * with version reference kotlin - *

- * This dependency was declared in catalog libs.versions.toml - */ - public Provider getPlugin() { - return create("kotlin.gradle.plugin"); - } - - } - - public static class VersionAccessors extends VersionFactory { - - public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Version alias agp with value 8.2.1 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getAgp() { return getVersion("agp"); } - - /** - * Version alias gson with value 2.8.9 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGson() { return getVersion("gson"); } - - /** - * Version alias guava with value 31.0.1-jre - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGuava() { return getVersion("guava"); } - - /** - * Version alias javapoet with value 1.13.0 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJavapoet() { return getVersion("javapoet"); } - - /** - * Version alias junit with value 4.13.2 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJunit() { return getVersion("junit"); } - - /** - * Version alias kotlin with value 1.9.22 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getKotlin() { return getVersion("kotlin"); } - - } - - public static class BundleAccessors extends BundleFactory { - - public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); } - - } - - public static class PluginAccessors extends PluginFactory { - private final KotlinPluginAccessors paccForKotlinPluginAccessors = new KotlinPluginAccessors(providers, config); - - public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Group of plugins at plugins.kotlin - */ - public KotlinPluginAccessors getKotlin() { - return paccForKotlinPluginAccessors; - } - - } - - public static class KotlinPluginAccessors extends PluginFactory { - - public KotlinPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Plugin provider for kotlin.jvm with plugin id org.jetbrains.kotlin.jvm and - * with version reference kotlin - *

- * This plugin was declared in catalog libs.versions.toml - */ - public Provider getJvm() { return createPlugin("kotlin.jvm"); } - - } - -} diff --git a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.java b/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.java deleted file mode 100644 index 4a2dbacc1..000000000 --- a/android/.gradle/8.7/dependencies-accessors/423f0288fa7dffe069445ffa4b72952b4629a15a/sources/org/gradle/accessors/dm/LibrariesForLibsInPluginsBlock.java +++ /dev/null @@ -1,335 +0,0 @@ -package org.gradle.accessors.dm; - -import org.gradle.api.NonNullApi; -import org.gradle.api.artifacts.MinimalExternalModuleDependency; -import org.gradle.plugin.use.PluginDependency; -import org.gradle.api.artifacts.ExternalModuleDependencyBundle; -import org.gradle.api.artifacts.MutableVersionConstraint; -import org.gradle.api.provider.Provider; -import org.gradle.api.model.ObjectFactory; -import org.gradle.api.provider.ProviderFactory; -import org.gradle.api.internal.catalog.AbstractExternalDependencyFactory; -import org.gradle.api.internal.catalog.DefaultVersionCatalog; -import java.util.Map; -import org.gradle.api.internal.attributes.ImmutableAttributesFactory; -import org.gradle.api.internal.artifacts.dsl.CapabilityNotationParser; -import javax.inject.Inject; - -/** - * A catalog of dependencies accessible via the {@code libs} extension. - */ -@NonNullApi -public class LibrariesForLibsInPluginsBlock extends AbstractExternalDependencyFactory { - - private final AbstractExternalDependencyFactory owner = this; - private final AndroidLibraryAccessors laccForAndroidLibraryAccessors = new AndroidLibraryAccessors(owner); - private final KotlinLibraryAccessors laccForKotlinLibraryAccessors = new KotlinLibraryAccessors(owner); - private final VersionAccessors vaccForVersionAccessors = new VersionAccessors(providers, config); - private final BundleAccessors baccForBundleAccessors = new BundleAccessors(objects, providers, config, attributesFactory, capabilityNotationParser); - private final PluginAccessors paccForPluginAccessors = new PluginAccessors(providers, config); - - @Inject - public LibrariesForLibsInPluginsBlock(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { - super(config, providers, objects, attributesFactory, capabilityNotationParser); - } - - /** - * Dependency provider for gson with com.google.code.gson:gson coordinates and - * with version reference gson - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getGson() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("gson"); - } - - /** - * Dependency provider for guava with com.google.guava:guava coordinates and - * with version reference guava - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getGuava() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("guava"); - } - - /** - * Dependency provider for javapoet with com.squareup:javapoet coordinates and - * with version reference javapoet - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getJavapoet() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("javapoet"); - } - - /** - * Dependency provider for junit with junit:junit coordinates and - * with version reference junit - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getJunit() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("junit"); - } - - /** - * Group of libraries at android - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public AndroidLibraryAccessors getAndroid() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForAndroidLibraryAccessors; - } - - /** - * Group of libraries at kotlin - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public KotlinLibraryAccessors getKotlin() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForKotlinLibraryAccessors; - } - - /** - * Group of versions at versions - */ - public VersionAccessors getVersions() { - return vaccForVersionAccessors; - } - - /** - * Group of bundles at bundles - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public BundleAccessors getBundles() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return baccForBundleAccessors; - } - - /** - * Group of plugins at plugins - */ - public PluginAccessors getPlugins() { - return paccForPluginAccessors; - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class AndroidLibraryAccessors extends SubDependencyFactory { - private final AndroidGradleLibraryAccessors laccForAndroidGradleLibraryAccessors = new AndroidGradleLibraryAccessors(owner); - - public AndroidLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at android.gradle - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public AndroidGradleLibraryAccessors getGradle() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForAndroidGradleLibraryAccessors; - } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class AndroidGradleLibraryAccessors extends SubDependencyFactory { - - public AndroidGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with com.android.tools.build:gradle coordinates and - * with version reference agp - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getPlugin() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("android.gradle.plugin"); - } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class KotlinLibraryAccessors extends SubDependencyFactory { - private final KotlinGradleLibraryAccessors laccForKotlinGradleLibraryAccessors = new KotlinGradleLibraryAccessors(owner); - - public KotlinLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Group of libraries at kotlin.gradle - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public KotlinGradleLibraryAccessors getGradle() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return laccForKotlinGradleLibraryAccessors; - } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class KotlinGradleLibraryAccessors extends SubDependencyFactory { - - public KotlinGradleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); } - - /** - * Dependency provider for plugin with org.jetbrains.kotlin:kotlin-gradle-plugin coordinates and - * with version reference kotlin - *

- * This dependency was declared in catalog libs.versions.toml - * - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public Provider getPlugin() { - org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser(); - return create("kotlin.gradle.plugin"); - } - - } - - public static class VersionAccessors extends VersionFactory { - - public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Version alias agp with value 8.2.1 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getAgp() { return getVersion("agp"); } - - /** - * Version alias gson with value 2.8.9 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGson() { return getVersion("gson"); } - - /** - * Version alias guava with value 31.0.1-jre - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getGuava() { return getVersion("guava"); } - - /** - * Version alias javapoet with value 1.13.0 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJavapoet() { return getVersion("javapoet"); } - - /** - * Version alias junit with value 4.13.2 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getJunit() { return getVersion("junit"); } - - /** - * Version alias kotlin with value 1.9.22 - *

- * If the version is a rich version and cannot be represented as a - * single version string, an empty string is returned. - *

- * This version was declared in catalog libs.versions.toml - */ - public Provider getKotlin() { return getVersion("kotlin"); } - - } - - /** - * @deprecated Will be removed in Gradle 9.0. - */ - @Deprecated - public static class BundleAccessors extends BundleFactory { - - public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); } - - } - - public static class PluginAccessors extends PluginFactory { - private final KotlinPluginAccessors paccForKotlinPluginAccessors = new KotlinPluginAccessors(providers, config); - - public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Group of plugins at plugins.kotlin - */ - public KotlinPluginAccessors getKotlin() { - return paccForKotlinPluginAccessors; - } - - } - - public static class KotlinPluginAccessors extends PluginFactory { - - public KotlinPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); } - - /** - * Plugin provider for kotlin.jvm with plugin id org.jetbrains.kotlin.jvm and - * with version reference kotlin - *

- * This plugin was declared in catalog libs.versions.toml - */ - public Provider getJvm() { return createPlugin("kotlin.jvm"); } - - } - -} diff --git a/android/.gradle/8.7/dependencies-accessors/gc.properties b/android/.gradle/8.7/dependencies-accessors/gc.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/android/.gradle/8.7/executionHistory/executionHistory.bin b/android/.gradle/8.7/executionHistory/executionHistory.bin deleted file mode 100644 index 168c3c06c..000000000 Binary files a/android/.gradle/8.7/executionHistory/executionHistory.bin and /dev/null differ diff --git a/android/.gradle/8.7/executionHistory/executionHistory.lock b/android/.gradle/8.7/executionHistory/executionHistory.lock deleted file mode 100644 index 8cea9d64b..000000000 Binary files a/android/.gradle/8.7/executionHistory/executionHistory.lock and /dev/null differ diff --git a/android/.gradle/8.7/fileChanges/last-build.bin b/android/.gradle/8.7/fileChanges/last-build.bin deleted file mode 100644 index f76dd238a..000000000 Binary files a/android/.gradle/8.7/fileChanges/last-build.bin and /dev/null differ diff --git a/android/.gradle/8.7/fileHashes/fileHashes.bin b/android/.gradle/8.7/fileHashes/fileHashes.bin deleted file mode 100644 index a387e05bf..000000000 Binary files a/android/.gradle/8.7/fileHashes/fileHashes.bin and /dev/null differ diff --git a/android/.gradle/8.7/fileHashes/fileHashes.lock b/android/.gradle/8.7/fileHashes/fileHashes.lock deleted file mode 100644 index dc6a3a02c..000000000 Binary files a/android/.gradle/8.7/fileHashes/fileHashes.lock and /dev/null differ diff --git a/android/.gradle/8.7/fileHashes/resourceHashesCache.bin b/android/.gradle/8.7/fileHashes/resourceHashesCache.bin deleted file mode 100644 index 215663490..000000000 Binary files a/android/.gradle/8.7/fileHashes/resourceHashesCache.bin and /dev/null differ diff --git a/android/.gradle/8.7/gc.properties b/android/.gradle/8.7/gc.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock deleted file mode 100644 index 1485dfa43..000000000 Binary files a/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ diff --git a/android/.gradle/buildOutputCleanup/cache.properties b/android/.gradle/buildOutputCleanup/cache.properties deleted file mode 100644 index a9e298e1a..000000000 --- a/android/.gradle/buildOutputCleanup/cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Thu Mar 26 09:25:33 AEDT 2026 -gradle.version=8.13 diff --git a/android/.gradle/config.properties b/android/.gradle/config.properties deleted file mode 100644 index dc2694045..000000000 --- a/android/.gradle/config.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Mon Mar 23 21:03:09 AEDT 2026 -java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home diff --git a/android/.gradle/file-system.probe b/android/.gradle/file-system.probe deleted file mode 100644 index e304dc16a..000000000 Binary files a/android/.gradle/file-system.probe and /dev/null differ diff --git a/android/.gradle/noVersion/buildLogic.lock b/android/.gradle/noVersion/buildLogic.lock deleted file mode 100644 index 6c806b741..000000000 Binary files a/android/.gradle/noVersion/buildLogic.lock and /dev/null differ diff --git a/android/.gradle/vcs-1/gc.properties b/android/.gradle/vcs-1/gc.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/android/.idea/.gitignore b/android/.idea/.gitignore deleted file mode 100644 index 26d33521a..000000000 --- a/android/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/android/.idea/AndroidProjectSystem.xml b/android/.idea/AndroidProjectSystem.xml deleted file mode 100644 index 4a53bee8c..000000000 --- a/android/.idea/AndroidProjectSystem.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/android/.idea/caches/deviceStreaming.xml b/android/.idea/caches/deviceStreaming.xml deleted file mode 100644 index 8d6eef7d5..000000000 --- a/android/.idea/caches/deviceStreaming.xml +++ /dev/null @@ -1,1538 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml deleted file mode 100644 index b8382370e..000000000 --- a/android/.idea/gradle.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/.idea/migrations.xml b/android/.idea/migrations.xml deleted file mode 100644 index f8051a6f9..000000000 --- a/android/.idea/migrations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml deleted file mode 100644 index 3aec57f90..000000000 --- a/android/.idea/misc.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/runConfigurations.xml b/android/.idea/runConfigurations.xml deleted file mode 100644 index 16660f1d8..000000000 --- a/android/.idea/runConfigurations.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/.idea/vcs.xml b/android/.idea/vcs.xml deleted file mode 100644 index 6c0b86358..000000000 --- a/android/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle deleted file mode 100644 index 8db3a0e1a..000000000 --- a/android/app/build.gradle +++ /dev/null @@ -1,133 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "org.jetbrains.kotlin.android" -apply plugin: "com.facebook.react" - -/** - * This is the configuration block to customize your React Native Android app. - * By default you don't need to apply any configuration, just uncomment the lines you need. - */ -react { - /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node_modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen - // codegenDir = file("../node_modules/@react-native/codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") - - /* Variants */ - // The list of variants to that are debuggable. For those we're going to - // skip the bundling of the JS bundle and the assets. By default is just 'debug'. - // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. - // debuggableVariants = ["liteDebug", "prodDebug"] - - /* Bundling */ - // A list containing the node command and its flags. Default is just 'node'. - // nodeExecutableAndArgs = ["node"] - // - // The command to run when bundling. By default is 'bundle' - // bundleCommand = "ram-bundle" - // - // The path to the CLI configuration file. Default is empty. - // bundleConfig = file(../rn-cli.config.js) - // - // The name of the generated asset file containing your JS bundle - // bundleAssetName = "MyApplication.android.bundle" - // - // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' - // entryFile = file("../js/MyApplication.android.js") - // - // A list of extra flags to pass to the 'bundle' commands. - // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle - // extraPackagerArgs = [] - - /* Hermes Commands */ - // The hermes compiler command to run. By default it is 'hermesc' - // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" - // - // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" - // hermesFlags = ["-O", "-output-source-map"] -} - -/** - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. - */ -def enableProguardInReleaseBuilds = false - -/** - * The preferred build flavor of JavaScriptCore (JSC) - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -android { - ndkVersion rootProject.ext.ndkVersion - buildToolsVersion rootProject.ext.buildToolsVersion - compileSdk rootProject.ext.compileSdkVersion - - namespace "com.cardscannerapp" - defaultConfig { - applicationId "com.cardscannerapp" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - testBuildType System.getProperty("testBuildType", "debug") - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. - signingConfig signingConfigs.debug - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } -} - -dependencies { - // The version of react-native is set by the React Native Gradle Plugin - implementation("com.facebook.react:react-android") - implementation("androidx.appcompat:appcompat:1.1.0") - androidTestImplementation("com.wix:detox:+") - - if (hermesEnabled.toBoolean()) { - implementation("com.facebook.react:hermes-android") - } else { - implementation jscFlavor - } -} - -configurations.all { - resolutionStrategy { - force 'androidx.core:core:1.12.0' - force 'androidx.core:core-ktx:1.12.0' - force 'androidx.activity:activity:1.8.0' - force 'androidx.activity:activity-ktx:1.8.0' - force 'androidx.fragment:fragment:1.6.2' - force 'androidx.transition:transition:1.5.0' - } -} - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) diff --git a/android/app/debug.keystore b/android/app/debug.keystore deleted file mode 100644 index 364e105ed..000000000 Binary files a/android/app/debug.keystore and /dev/null differ diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro deleted file mode 100644 index 11b025724..000000000 --- a/android/app/proguard-rules.pro +++ /dev/null @@ -1,10 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: diff --git a/android/app/src/androidTest/AndroidManifest.xml b/android/app/src/androidTest/AndroidManifest.xml deleted file mode 100644 index 9f716e351..000000000 --- a/android/app/src/androidTest/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/android/app/src/androidTest/java/com/cardscannerapp/DetoxTest.java b/android/app/src/androidTest/java/com/cardscannerapp/DetoxTest.java deleted file mode 100644 index 7ef0226a7..000000000 --- a/android/app/src/androidTest/java/com/cardscannerapp/DetoxTest.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.cardscannerapp; - -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.filters.LargeTest; -import androidx.test.rule.ActivityTestRule; - -import com.wix.detox.Detox; -import com.wix.detox.config.DetoxConfig; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; - -@RunWith(AndroidJUnit4.class) -@LargeTest -public class DetoxTest { - @Rule - public ActivityTestRule activityRule = - new ActivityTestRule<>(MainActivity.class, false, false); - - @Test - public void runDetoxTests() { - DetoxConfig detoxConfig = new DetoxConfig(); - detoxConfig.idlePolicyConfig.masterTimeoutSec = 90; - detoxConfig.idlePolicyConfig.idleResourceTimeoutSec = 60; - detoxConfig.rnContextLoadTimeoutSec = BuildConfig.DEBUG ? 180 : 60; - - Detox.runTests(activityRule, detoxConfig); - } -} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index eb98c01af..000000000 --- a/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index ab29e199f..000000000 --- a/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/android/app/src/main/java/com/cardscannerapp/LaunchArgsModule.kt b/android/app/src/main/java/com/cardscannerapp/LaunchArgsModule.kt deleted file mode 100644 index 15a50090c..000000000 --- a/android/app/src/main/java/com/cardscannerapp/LaunchArgsModule.kt +++ /dev/null @@ -1,55 +0,0 @@ -package com.cardscannerapp - -import android.os.Bundle -import com.facebook.react.bridge.Arguments -import com.facebook.react.bridge.Promise -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.bridge.ReactContextBaseJavaModule -import com.facebook.react.bridge.ReactMethod - -class LaunchArgsModule( - private val reactContext: ReactApplicationContext -) : ReactContextBaseJavaModule(reactContext) { - - override fun getName(): String = "LaunchArgs" - - override fun getConstants(): MutableMap { - val launchArgs = currentLaunchArgs() - return mutableMapOf("launchArgs" to launchArgs) - } - - @ReactMethod - fun getLaunchArgs(promise: Promise) { - promise.resolve(Arguments.makeNativeMap(currentLaunchArgs())) - } - - private fun currentLaunchArgs(): Map { - val args = mutableMapOf() - - val activity = reactContext.currentActivity - if (activity != null) { - val intent = activity.intent - val extras = intent?.extras - if (extras != null) { - extras.keySet().forEach { key -> - val value = extras.get(key) - if (value != null) { - args[key] = value - } - } - } - } - - val staticBundle = MainActivity.launchArgs - if (staticBundle != null) { - staticBundle.keySet().forEach { key -> - val value = staticBundle.get(key) - if (value != null) { - args[key] = value - } - } - } - - return args - } -} diff --git a/android/app/src/main/java/com/cardscannerapp/LaunchArgsPackage.kt b/android/app/src/main/java/com/cardscannerapp/LaunchArgsPackage.kt deleted file mode 100644 index 2d2f476ce..000000000 --- a/android/app/src/main/java/com/cardscannerapp/LaunchArgsPackage.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.cardscannerapp - -import com.facebook.react.ReactPackage -import com.facebook.react.bridge.NativeModule -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.uimanager.ViewManager - -class LaunchArgsPackage : ReactPackage { - override fun createNativeModules(reactContext: ReactApplicationContext): List = - listOf(LaunchArgsModule(reactContext)) - - override fun createViewManagers( - reactContext: ReactApplicationContext - ): List> = emptyList() -} diff --git a/android/app/src/main/java/com/cardscannerapp/MainActivity.kt b/android/app/src/main/java/com/cardscannerapp/MainActivity.kt deleted file mode 100644 index c221811a1..000000000 --- a/android/app/src/main/java/com/cardscannerapp/MainActivity.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.cardscannerapp - -import android.content.Intent -import android.os.Bundle -import com.facebook.react.ReactActivity -import com.facebook.react.ReactActivityDelegate -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled -import com.facebook.react.defaults.DefaultReactActivityDelegate - -class MainActivity : ReactActivity() { - companion object { - var launchArgs: Bundle? = null - } - - override fun onCreate(savedInstanceState: Bundle?) { - // Capture all extras, as Detox passes arguments as flattened extras - launchArgs = intent?.extras - super.onCreate(savedInstanceState) - } - - override fun onNewIntent(intent: Intent?) { - super.onNewIntent(intent) - // Update launchArgs with new intent extras - launchArgs = intent?.extras - setIntent(intent) // Good practice to update the intent - } - - /** - * Returns the name of the main component registered from JavaScript. This is used to schedule - * rendering of the component. - */ - override fun getMainComponentName(): String = "CardScannerApp" - - /** - * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] - * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] - */ - override fun createReactActivityDelegate(): ReactActivityDelegate = - DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) -} diff --git a/android/app/src/main/java/com/cardscannerapp/MainApplication.kt b/android/app/src/main/java/com/cardscannerapp/MainApplication.kt deleted file mode 100644 index d5c38445d..000000000 --- a/android/app/src/main/java/com/cardscannerapp/MainApplication.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.cardscannerapp - -import android.app.Application -import com.facebook.react.PackageList -import com.facebook.react.ReactApplication -import com.facebook.react.ReactNativeHost -import com.facebook.react.ReactPackage -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load -import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.soloader.SoLoader - -class MainApplication : Application(), ReactApplication { - - override val reactNativeHost: ReactNativeHost = - object : DefaultReactNativeHost(this) { - override fun getPackages(): List = - PackageList(this).packages.apply { - add(LaunchArgsPackage()) - } - - override fun getJSMainModuleName(): String = "index" - - override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG - - override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED - override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED - } - - override fun onCreate() { - super.onCreate() - SoLoader.init(this, false) - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - load() - } - } -} diff --git a/android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_elements_src_assets_backicon.png b/android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_elements_src_assets_backicon.png deleted file mode 100644 index ad03a63bf..000000000 Binary files a/android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_elements_src_assets_backicon.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backicon.png b/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backicon.png deleted file mode 100644 index 083db295f..000000000 Binary files a/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backicon.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backiconmask.png b/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backiconmask.png deleted file mode 100644 index 9de724200..000000000 Binary files a/android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backiconmask.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png b/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png deleted file mode 100644 index 6de0a1cbb..000000000 Binary files a/android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png b/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png deleted file mode 100644 index 15a983a67..000000000 Binary files a/android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png b/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png deleted file mode 100644 index 17e52e855..000000000 Binary files a/android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png and /dev/null differ diff --git a/android/app/src/main/res/drawable/rn_edit_text_material.xml b/android/app/src/main/res/drawable/rn_edit_text_material.xml deleted file mode 100644 index 5c25e728e..000000000 --- a/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a2f590828..000000000 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 1b5239980..000000000 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ff10afd6e..000000000 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 115a4c768..000000000 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index dcd3cd808..000000000 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 459ca609d..000000000 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8ca12fe02..000000000 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 8e19b410a..000000000 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b824ebdd4..000000000 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 4c19a13c2..000000000 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 57b374c42..000000000 --- a/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - CardScannerApp - diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 7ba83a2ad..000000000 --- a/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/android/app/src/main/res/xml/network_security_config.xml b/android/app/src/main/res/xml/network_security_config.xml deleted file mode 100644 index fe0064a23..000000000 --- a/android/app/src/main/res/xml/network_security_config.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - 10.0.2.2 - localhost - - diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 6745c500f..000000000 --- a/android/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - ext { - buildToolsVersion = "34.0.0" - minSdkVersion = 23 - compileSdkVersion = 34 - targetSdkVersion = 34 - ndkVersion = "25.1.8937393" - kotlinVersion = "1.9.22" - } - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle") - classpath("com.facebook.react:react-native-gradle-plugin") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") - } -} - -apply plugin: "com.facebook.react.rootproject" - -allprojects { - repositories { - google() - mavenCentral() - maven { - url("$rootDir/../node_modules/detox/Detox-android") - } - } -} diff --git a/android/gradle.properties b/android/gradle.properties deleted file mode 100644 index 0cbfa537e..000000000 --- a/android/gradle.properties +++ /dev/null @@ -1,34 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Use this property to specify which architecture you want to build. -# You can also override it from the CLI using -# ./gradlew -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 - -# Use this property to enable or disable the Hermes JS engine. -# If set to false, you will be using JSC instead. -hermesEnabled=true diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7f93135c4..000000000 Binary files a/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 2ea3535dc..000000000 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew deleted file mode 100755 index 1aa94a426..000000000 --- a/android/gradlew +++ /dev/null @@ -1,249 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat deleted file mode 100644 index 25da30dbd..000000000 --- a/android/gradlew.bat +++ /dev/null @@ -1,92 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/android/local.properties b/android/local.properties deleted file mode 100644 index e9724c3a3..000000000 --- a/android/local.properties +++ /dev/null @@ -1,8 +0,0 @@ -## This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. -# -# Location of the SDK. This is only used by Gradle. -# For customization when using a Version Control System, please read the -# header note. -#Mon Mar 23 21:03:08 AEDT 2026 -sdk.dir=/Users/prabhatranjan/Library/Android/sdk diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index 3a188fa12..000000000 --- a/android/settings.gradle +++ /dev/null @@ -1,4 +0,0 @@ -rootProject.name = 'CardScannerApp' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) -include ':app' -includeBuild('../node_modules/@react-native/gradle-plugin') diff --git a/app-store-listing.md b/app-store-listing.md deleted file mode 100644 index c7b12ecfa..000000000 --- a/app-store-listing.md +++ /dev/null @@ -1,506 +0,0 @@ -# CardScanner - App Store Listing Documentation - -## 📱 App Overview - -**App Name**: CardScanner -**Subtitle/Short Description**: Business Card Scanner & Contact Manager -**Category**: Business / Productivity -**Content Rating**: Everyone (Android) / 4+ (iOS) -**Privacy**: Camera access only, no data collection - ---- - -## 🎯 App Description - -### Full Description (5000 characters max) - -**CardScanner** is a professional business card scanner that uses advanced OCR technology to instantly capture and digitize business contacts. With just a photo, extract contact information automatically and manage your professional network efficiently. - -**Key Features:** - -📷 **Smart Card Scanning** -- High-quality camera interface with real-time capture -- Automatic card detection and edge recognition -- Support for various card sizes and orientations - -🔍 **Accurate OCR Text Recognition** -- Powered by Google ML Kit for industry-leading accuracy -- Recognizes text in multiple languages -- Handles various fonts and card designs - -👥 **Intelligent Contact Parsing** -- Automatically identifies names, job titles, companies -- Extracts emails, phone numbers, websites, addresses -- Smart organization of extracted information - -💾 **Secure Local Storage** -- Contacts stored securely on your device -- No cloud sync or data collection -- Privacy-focused design with on-device processing - -📤 **Easy Export Options** -- Export contacts as VCard (.vcf) files -- Share via email, messaging, or AirDrop -- Import to native Contacts app with one tap - -📱 **Cross-Platform Experience** -- Native performance on both iOS and Android -- Beautiful, intuitive user interface -- Dark mode support - -🔒 **Privacy First** -- All OCR processing happens on your device -- No data sent to external servers -- No tracking, analytics, or ads -- Camera access only when scanning - -**Perfect For:** -- Business professionals at conferences and meetings -- Sales teams managing client relationships -- Networkers building professional contacts -- Anyone who collects business cards - -**How It Works:** -1. Launch the app and point your camera at a business card -2. Capture the card with one tap -3. Review the automatically extracted contact information -4. Save to your contacts or export as VCard -5. Access your digitized contacts anytime - -**Why Choose CardScanner?** -- ✅ No subscriptions or in-app purchases -- ✅ No ads or tracking -- ✅ Works completely offline -- ✅ Regular updates with improvements -- ✅ Professional-grade OCR accuracy - -Download CardScanner today and transform your business card collection into a powerful digital contact network! - -### Short Description (80 characters max) - -Scan business cards instantly with OCR. Extract contacts & manage your network. - ---- - -## 📊 Metadata - -### iOS App Store Metadata - -**App Name**: CardScanner -**Subtitle**: Business Card Scanner & Contact Manager -**Category**: Primary: Business, Secondary: Productivity -**Content Rating**: 4+ (No objectionable material) -**Age Rating**: All Ages -**Copyright**: © 2026 Your Company Name - -**Keywords (100 characters max)**: -`business card,scanner,OCR,contact manager,vcard,networking,professional,contacts,scan,convert` - -**Promotional Text** (170 characters max): -`Transform your business cards into digital contacts instantly with AI-powered OCR. No subscriptions, no ads, complete privacy.` - -**What's New** (4000 characters max): -``` -Version 1.0.0 - Initial Release - -We're excited to launch CardScanner, your new business card scanning companion! - -Features included in this release: -• High-quality camera interface for card capture -• Google ML Kit OCR for accurate text recognition -• Intelligent contact parsing with field detection -• Local storage with export to VCard format -• Beautiful, intuitive user interface -• Dark mode support -• Complete privacy with on-device processing - -Coming soon: -• Batch scanning multiple cards -• Cloud backup options -• Contact deduplication -• Enhanced OCR for international cards -• Widget for quick scanning -``` - -**Support URL**: https://github.com/Sensible-Analytics/CardScannerApp/issues -**Marketing URL**: https://github.com/Sensible-Analytics/CardScannerApp -**Privacy Policy URL**: https://github.com/Sensible-Analytics/CardScannerApp/blob/main/PRIVACY_POLICY.md - -### Google Play Store Metadata - -**App Title**: CardScanner -**Short Description**: Scan business cards & manage contacts with OCR -**Category**: Business -**Content Rating**: Everyone -**Target Age**: All ages - -**Full Description**: (Same as iOS full description above) - -**Keywords**: -``` -business card scanner -OCR contact scanner -vcard converter -contact manager -networking tool -professional scanner -card digitizer -``` - -**What's New** (500 characters max): -``` -Version 1.0.0 - Initial Release - -Scan business cards instantly with AI-powered OCR. Extract contacts automatically and manage your professional network. Complete privacy with on-device processing. -``` - -**Privacy Policy URL**: https://github.com/Sensible-Analytics/CardScannerApp/blob/main/PRIVACY_POLICY.md -**Website**: https://github.com/Sensible-Analytics/CardScannerApp -**Email**: support@yourcompany.com - ---- - -## 📸 Screenshot Requirements - -### iOS Screenshots (Required Sizes) - -| Device | Size | Quantity | Status | -|--------|------|----------|--------| -| iPhone 6.7" (15 Pro Max) | 1290 x 2796 | 6.5-10 | ❌ Need to capture | -| iPhone 6.5" (11 Pro Max) | 1242 x 2688 | 6.5-10 | ❌ Need to capture | -| iPhone 5.5" (8 Plus) | 1242 x 2208 | 6.5-10 | ❌ Need to capture | -| iPad Pro 12.9" (6th gen) | 2048 x 2732 | 6.5-10 | ❌ Need to capture | -| iPad Pro 12.9" (2nd gen) | 2048 x 2732 | 6.5-10 | ❌ Need to capture | - -### Android Screenshots (Required Sizes) - -| Device | Size | Quantity | Status | -|--------|------|----------|--------| -| Phone | 1080 x 1920 | 2-8 | ❌ Need to capture | -| 7" Tablet | 1200 x 1920 | 2-8 | ❌ Need to capture | -| 10" Tablet | 1600 x 2560 | 2-8 | ❌ Need to capture | - -### Screenshot Content Suggestions - -1. **Home Screen**: Show clean interface with scan button -2. **Camera View**: Demonstrate card scanning in action -3. **OCR Results**: Display extracted contact information -4. **Contact Details**: Show organized contact information -5. **Contacts List**: Demonstrate contact management -6. **Export Options**: Show VCard export feature -7. **Settings**: Display customization options - -### Feature Graphic (Required for Google Play) - -**Size**: 1024 x 500 pixels -**Format**: PNG or JPEG (no transparency) -**Content**: Should highlight the app's main value proposition - ---- - -## 🎨 App Icon Requirements - -### iOS App Icon - -**Sizes Required**: -- 1024 x 1024 px (App Store) -- 180 x 180 px (iPhone) -- 167 x 167 px (iPad Pro) -- 152 x 152 px (iPad) -- 120 x 120 px (iPhone) -- 87 x 87 px (Spotlight) -- 80 x 80 px (Settings) -- 60 x 60 px (iPhone) -- 40 x 40 px (Spotlight) - -**Format**: PNG, no transparency, no alpha channel -**Color Space**: sRGB -**Layers**: Flattened with no rounded corners (system applies) - -### Android App Icon - -**Sizes Required**: -- 512 x 512 px (Play Store) -- 192 x 192 px (xxxhdpi) -- 144 x 144 px (xxhdpi) -- 96 x 96 px (xhdpi) -- 72 x 72 px (hdpi) -- 48 x 48 px (mdpi) - -**Format**: PNG with transparency -**Design**: Should be simple, recognizable, and work at small sizes - -### Icon Design Guidelines - -- **Simple and recognizable**: Should be clear at small sizes -- **Consistent branding**: Use your brand colors and style -- **No text**: Avoid text in the icon (use app name in store listing) -- **No photos**: Use vector graphics or illustrations -- **Test at small sizes**: Ensure readability at 48x48 pixels - ---- - -## 📋 Store Submission Checklist - -### Pre-Submission (Both Stores) - -- [ ] App builds successfully on both platforms -- [ ] All tests pass (>90% coverage) -- [ ] Privacy policy published and URL ready -- [ ] App icons generated in all required sizes -- [ ] Screenshots captured for all required devices -- [ ] Store descriptions written and reviewed -- [ ] Keywords researched and optimized -- [ ] Content rating questionnaire completed -- [ ] Test accounts prepared (if needed for review) -- [ ] Export compliance information ready - -### iOS App Store Submission - -- [ ] Apple Developer Account active ($99/year) -- [ ] Xcode with latest SDK installed -- [ ] App Store Connect access configured -- [ ] Distribution certificate and provisioning profile -- [ ] App metadata entered in App Store Connect -- [ ] Screenshots uploaded for all required sizes -- [ ] App review notes written (include test account if needed) -- [ ] Price and availability set -- [ ] In-app purchases configured (if any) -- [ ] Game Center configured (if applicable) -- [ ] App Analytics enabled - -### Google Play Store Submission - -- [ ] Google Play Developer Account ($25 one-time) -- [ ] Google Play Console access -- [ ] App signed with upload key -- [ ] App Bundle (AAB) or APK generated -- [ ] Store listing completed -- [ ] Content rating questionnaire completed -- [ ] Pricing and distribution set -- [ ] Target audience and content section completed -- [ ] Privacy policy URL provided -- [ ] Data safety section completed -- [ ] App content rating certificate generated - ---- - -## 🔄 Release Process - -### Version Numbering - -**Format**: Semantic Versioning (MAJOR.MINOR.PATCH) - -- **MAJOR**: Incompatible API changes or major redesigns -- **MINOR**: New features in backward-compatible manner -- **PATCH**: Bug fixes and minor improvements - -**Current Version**: 1.0.0 - -### Release Workflow - -1. **Pre-Release** - - Update version number in `package.json` and `app.json` - - Update CHANGELOG.md with release notes - - Run all tests and ensure they pass - - Build release artifacts for both platforms - -2. **Store Submission** - - Upload artifacts to respective stores - - Complete store metadata - - Submit for review - -3. **Post-Release** - - Tag release in Git: `git tag -a v1.0.0 -m "Version 1.0.0"` - - Push tags: `git push origin v1.0.0` - - Create GitHub release with artifacts - - Update documentation if needed - -### Release Schedule - -**Initial Release**: v1.0.0 -**Update Frequency**: Monthly or as needed -**Hotfixes**: As required for critical issues - ---- - -## 📈 Analytics and Metrics - -### Key Performance Indicators - -- **Downloads**: Total app downloads -- **Active Users**: Daily/Monthly active users -- **Retention**: 1-day, 7-day, 30-day retention rates -- **Crash Rate**: Target < 1% -- **Rating**: Target > 4.5 stars -- **Review Sentiment**: Monitor common feedback - -### Tracking Setup - -**iOS**: App Analytics (built into App Store Connect) -**Google**: Google Play Console analytics -**Custom**: Consider privacy-focused analytics like PostHog or Mixpanel - -### Success Metrics - -**Launch Goals** (First 30 days): -- 1,000+ downloads -- 4.0+ star rating -- < 2% crash rate -- 50%+ 1-day retention - -**Growth Goals** (6 months): -- 10,000+ downloads -- 4.5+ star rating -- Featured in App Store/Google Play -- Press coverage - ---- - -## 🆘 Support and Maintenance - -### Support Channels - -- **GitHub Issues**: Primary support channel -- **Email**: support@yourcompany.com (optional) -- **Social Media**: Twitter @CardScannerApp (optional) - -### Common Issues to Prepare For - -1. **OCR Accuracy**: Provide tips for better scanning conditions -2. **Camera Permissions**: Guide users to enable in Settings -3. **Storage Issues**: Explain local storage only approach -4. **Export Problems**: Troubleshoot VCard compatibility -5. **Performance**: Tips for older devices - -### Update Strategy - -**Regular Updates**: -- Monthly feature updates -- Bi-weekly bug fixes -- Critical security patches immediately - -**Communication**: -- Release notes in app stores -- GitHub releases documentation -- Optional: Email newsletter for major updates - ---- - -## 📝 Legal Requirements - -### Privacy Policy (Required) - -Must include: -- What data you collect (camera access only) -- How data is processed (on-device OCR) -- Data storage (local only, no cloud) -- Third-party services (none for data) -- User rights and data deletion -- Contact information for privacy inquiries - -**Template**: See `PRIVACY_POLICY.md` in repository - -### Terms of Service (Recommended) - -Must include: -- App usage terms -- Intellectual property rights -- Limitation of liability -- User responsibilities -- Dispute resolution - -### Age Ratings - -**iOS**: 4+ (No objectionable content) -**Android**: Everyone - -### Accessibility - -**Requirements**: -- VoiceOver/TalkBack support -- Dynamic type support -- Sufficient color contrast -- Screen reader compatibility - -**Implementation Status**: ⚠️ Needs review - ---- - -## 🚀 Launch Strategy - -### Pre-Launch (2 weeks before) - -- [ ] Beta testing with TestFlight/Google Play Beta -- [ ] Finalize store listings and screenshots -- [ ] Prepare press kit and marketing materials -- [ ] Set up social media accounts -- [ ] Create launch announcement blog post - -### Launch Day - -- [ ] Submit to both stores simultaneously -- [ ] Announce on social media -- [ ] Send press release to tech blogs -- [ ] Monitor reviews and respond quickly -- [ ] Track download and engagement metrics - -### Post-Launch (First month) - -- [ ] Gather user feedback -- [ ] Address critical bugs quickly -- [ ] Plan first update based on feedback -- [ ] Monitor store rankings and ratings -- [ ] Consider promotional campaigns - -### Marketing Channels - -1. **Social Media**: Twitter, LinkedIn, Product Hunt -2. **Tech Blogs**: TechCrunch, The Verge, Android Police -3. **App Review Sites**: 148Apps, AppAdvice, Android Authority -4. **Networking**: Business conferences, meetups -5. **Content Marketing**: Blog posts about productivity, networking - ---- - -## 📊 Competitive Analysis - -### Direct Competitors - -1. **CamCard**: Market leader, cloud-based, freemium model -2. **ABBYY Business Card Reader**: OCR focus, enterprise features -3. **ScanBizCards**: Simple interface, subscription model -4. **Microsoft Lens**: Part of Office suite, document focus - -### Our Differentiation - -**Advantages**: -- Complete privacy (on-device processing only) -- No subscriptions or in-app purchases -- No ads or tracking -- Simple, focused experience -- Open source transparency - -**Target Market**: Privacy-conscious professionals who want a simple, no-nonsense business card scanner. - -### Pricing Strategy - -**Price**: Free -**Model**: No in-app purchases, no subscriptions, no ads -**Rationale**: Build user base first, monetize later if needed through premium features (not planned currently) - ---- - -## 📞 Contact Information - -**Developer**: Your Name -**Company**: Your Company Name -**Email**: contact@yourcompany.com -**Website**: https://yourcompany.com -**Support**: GitHub Issues -**Twitter**: @CardScannerApp - ---- - -*Last Updated: March 26, 2026* -*Document Version: 1.0* \ No newline at end of file diff --git a/app.json b/app.json deleted file mode 100644 index 991830f0d..000000000 --- a/app.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "CardScannerApp", - "displayName": "CardScanner", - "version": "1.0.0", - "description": "Professional business card scanner with OCR-powered text extraction", - "privacy": "camera-only", - "categories": ["business", "productivity"], - "icons": { - "ios": "assets/icon.png", - "android": "assets/icon.png" - }, - "splash": { - "image": "assets/splash.png", - "resizeMode": "contain", - "backgroundColor": "#ffffff" - } -} diff --git a/app/page.tsx b/app/page.tsx deleted file mode 100644 index 641264319..000000000 --- a/app/page.tsx +++ /dev/null @@ -1,783 +0,0 @@ -"use client" - -import { useState } from "react" -import Link from "next/link" -import { - Github, - Linkedin, - Mail, - ArrowRight, - ExternalLink, - Newspaper, - Terminal, - Code2, - Database, - Cpu, - Layers, - Brain, - Cloud, - TrendingUp, - CheckCircle, - Globe, - Building2, - Briefcase, - BarChart3, - Calendar, -} from "lucide-react" -import { CalendlyModal } from "@/components/calendly-modal" -import { CalendlyInline } from "@/components/calendly-inline" -import { OpenSourceTabs } from "@/components/open-source-tabs" - -const CALENDLY_URL = "https://calendly.com/sensible-analytic/30min" - -const navItems = [ - { label: "Services", href: "#services" }, - { label: "Track Record", href: "#track-record" }, - { label: "Open Source", href: "#open-source" }, - { label: "About", href: "#about" }, - { label: "Contact", href: "#contact" }, -] - -const socials = [ - { - Icon: Linkedin, - href: "https://www.linkedin.com/in/prabhatr/", - label: "LinkedIn", - }, - { - Icon: Github, - href: "https://github.com/rprabhat", - label: "GitHub", - }, - { - Icon: Newspaper, - href: "https://prabhatranjan.substack.com", - label: "Substack", - }, -] - -const services = [ - { - title: "AI & Data Analytics", - description: - "Design and implement AI-powered analytics solutions for healthcare and financial services, including predictive patient outcomes, EHR optimization, and regulatory reporting automation.", - points: [ - "Predictive analytics for patient risk stratification", - "Natural language interfaces over complex datasets", - "ML pipelines for fraud detection and claims analysis", - "Explainable AI with full audit trails for compliance", - ], - tags: ["Healthcare AI", "FinTech", "ML Ops", "NLP"], - icon: Brain, - }, - { - title: "Platform Modernisation", - description: - "Transform legacy healthcare and financial systems to cloud-native architectures with improved security, compliance, and scalability.", - points: [ - "Legacy EHR/EMR migration to secure cloud platforms", - "Data warehouse modernization (Snowflake, Redshift, BigQuery)", - "API-first architecture for healthcare data (FHIR, HL7)", - "Performance optimization for real-time analytics", - ], - tags: ["Healthcare IT", "FinTech", "Cloud Migration", "DevOps"], - icon: Cloud, - }, - { - title: "Fractional CTO", - description: - "Strategic technology leadership for organisations navigating digital transformation, regulatory compliance, and technology modernisation.", - points: [ - "Technology strategy and roadmap development", - "Regulatory compliance (HIPAA, GDPR, SOC 2)", - "Architecture review and vendor selection", - "Engineering team building and process optimization", - ], - tags: ["Strategy", "Leadership", "Compliance", "Governance"], - icon: Layers, - }, -] - -const caseStudies = [ - { - title: "Healthcare Analytics Platform Modernization", - description: - "Transformed a consultancy-based healthcare analytics platform into a global SaaS provider, growing subscription revenue from 56% to 83% while reducing infrastructure costs by 76%.", - metrics: [ - { value: "83%", label: "Subscription Revenue" }, - { value: "3x", label: "Client Capacity" }, - { value: "76%", label: "Cost Reduction" }, - ], - }, - { - title: "Financial Services Analytics Platform", - description: - "Led $30M investor analytics platform modernization for JPMorgan serving 400+ global funds. Zero operational disruptions during migration.", - metrics: [ - { value: "400+", label: "Global Funds" }, - { value: "7", label: "New ESG Clients" }, - { value: "0%", label: "Downtime" }, -], - }, - { - name: "Commercial Apps", - icon: Briefcase, - color: "text-red-400", - projects: [ - { - name: "CardScanner", - description: "Advanced document scanning and OCR solution for expense tracking and receipt digitization.", - language: "TypeScript", - languageColor: "text-blue-400", - url: "https://github.com/Sensible-Analytics/card-scanner", - demo: "#", - hasDemo: true, - logo: "/logos/cardscanner-logo.png", - featured: false, - }, - { - name: "crewRoster", - description: "Rostering and workforce management for SMBs.", - language: "TypeScript", - languageColor: "text-green-400", - url: "https://github.com/Sensible-Analytics/crew-circle", - demo: "#", - hasDemo: true, - logo: "/logos/crewcircle-logo.png", - featured: false, - }, - ] - }, -]; - -const credentials = [ - { icon: Database, text: "20+ Years in Data Platforms" }, - { icon: CheckCircle, text: "IIT-BHU Alumnus" }, - { icon: TrendingUp, text: "Ex-Canvas, JPMorgan, MSCI, BNP Paribas" }, - { icon: Code2, text: "Apache Ignite Contributor" }, -]; - -const openSourceCategories = [ - { - name: "Real Estate", - icon: Building2, - color: "text-blue-400", - projects: [ - { - name: "PropRoo", - description: "Smart Aussie-flavoured real estate analytics engine for market data, rental insights, and investment metrics.", - language: "TypeScript", - languageColor: "text-yellow-400", - url: "https://github.com/Sensible-Analytics/PropRoo", - demo: "https://proproo.sensibleanalytics.co", - hasDemo: true, - logo: "/logos/proproo-logo.png", - featured: true, - }, - { - name: "Rentroo", - description: "Open source real estate management system helping landlords manage rentals and properties.", - language: "JavaScript", - languageColor: "text-yellow-300", - url: "https://github.com/Sensible-Analytics/rentral-app", - demo: "https://rentral-app.sensibleanalytics.co", - hasDemo: true, - logo: "/logos/rental-app-logo.png", - }, - ], - }, - { - name: "Finance & Trading", - icon: CheckCircle, - color: "text-red-400", - projects: [ - { - name: "Folio", - description: "Robust financial portfolio management and analytics suite for institutional investors and wealth managers.", - language: "TypeScript", - languageColor: "text-yellow-300", - url: "https://github.com/Sensible-Analytics/Folio", - demo: "https://folio.sensibleanalytics.co", - hasDemo: true, - logo: "/logos/folio-logo.png", - }, - { - name: "Qullamaggie Scanner", - description: "Advanced quantitative trading and market analysis platform for algo traders and hedge funds.", - language: "TypeScript", - languageColor: "text-blue-400", - url: "https://github.com/Sensible-Analytics/Qullamaggie", - demo: "https://qullamaggie.sensibleanalytics.co", - hasDemo: true, - logo: "/logos/qullamaggie-logo.png", - }, - ], - }, - { - name: "Data & AI", - icon: Database, - color: "text-purple-600", - projects: [ - { - name: "Video Analysis", - description: "AI-powered video analytics platform for security, traffic monitoring, and behavioral insights.", - language: "Python", - languageColor: "text-green-400", - url: "https://github.com/Sensible-Analytics/video-analysis", - demo: "https://video-analysis.sensibleanalytics.co", - hasDemo: true, - logo: "/logos/video-analysis-logo.png", - }, - ], - }, - { - name: "Commercial Apps", - icon: Briefcase, - color: "text-red-400", - projects: [ - { - name: "CardScanner", - description: "Advanced document scanning and OCR solution for expense tracking and receipt digitization.", - language: "TypeScript", - languageColor: "text-blue-400", - url: "https://github.com/Sensible-Analytics/card-scanner", - demo: "#", - hasDemo: true, - logo: "/logos/cardscanner-logo.png", - featured: false, - }, - { - name: "crewRoster", - description: "Rostering and workforce management for SMBs.", - language: "TypeScript", - languageColor: "text-green-400", - url: "https://github.com/Sensible-Analytics/crew-circle", - demo: "#", - hasDemo: true, - logo: "/logos/crewcircle-logo.png", - }, - ], - } -] - color: "text-red-400", - projects: [ - { - name: "CardScanner", - description: "Advanced document scanning and OCR solution for expense tracking and receipt digitization.", - language: "TypeScript", - languageColor: "text-blue-400", - url: "https://github.com/Sensible-Analytics/card-scanner", - demo: "#", - hasDemo: true, - logo: "/logos/cardscanner-logo.png", - featured: false, - }, - { - name: "crewRoster", - description: "Rostering and workforce management for SMBs.", - language: "TypeScript", - languageColor: "text-green-400", - url: "https://github.com/Sensible-Analytics/crew-circle", - demo: "#", - hasDemo: true, - logo: "/logos/crewcircle-logo.png", - featured: false, - }, - ] - }, -] - -function SectionHeader({ label, title }: { label: string; title: string }) { - return ( -

- - {label} - -
- ) -} - -function MetricCard({ value, label }: { value: string; label: string }) { - return ( -
-
{value}
-
{label}
-
- ) -} - -function ServiceCard({ - service, -}: { - service: (typeof services)[0] -}) { - const Icon = service.icon - return ( -
-
- -
-

{service.title}

-

{service.description}

- -
- {service.tags.map((tag) => ( - - {tag} - - ))} -
-
- ) -} - -function TerminalProjectCard({ - project, - compact = false, -}: { - project: (typeof openSourceCategories)[0]["projects"][0] - compact?: boolean -}) { - return ( -
-
-
-
- {`${project.name} -
-
-

- {project.name} -

- - {project.language} - -
-
- {project.hasDemo && ( - - - TRY IT - - )} -
- -

- {project.description} -

- - {project.demo && ( -
-
-
-
-
- - {project.demo.replace("https://", "")} - -
-