Skip to content

Commit ba7ffb9

Browse files
committed
Merge pull request 1fabiopereira#15 from 1fabiopereira/fix-package-name-conflicts
🐛 Fixed package name conflicts
2 parents 21b32d5 + 44cf0c7 commit ba7ffb9

28 files changed

+157
-95
lines changed

.github/workflows/quality.yml

+13-12
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ jobs:
1313
steps:
1414
- name: Git checkout
1515
uses: actions/checkout@v2
16+
with:
17+
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
1618

1719
- name: Use Node.js Version 16.x
1820
uses: actions/setup-node@v2
@@ -28,24 +30,23 @@ jobs:
2830
- name: Install dependencies
2931
run: yarn install --frozen-lockfile
3032

31-
# Perform type check
3233
- name: Type check
3334
run: yarn type-check
3435

35-
# Perform lint
3636
- name: Lint
3737
run: yarn lint
3838

39-
# Run Jest Unit Tests
4039
- name: Run Jest Unit Tests
4140
run: yarn test
4241

43-
# Run Gradle unit Tests
44-
- name: Run Gradle Unit Tests
45-
run: |
46-
cd android/
47-
./gradlew testDebugUnitTest --console verbose
48-
49-
# Perform build project
50-
- name: Build
51-
run: yarn build
42+
- name: Typescript build
43+
run: yarn build
44+
45+
- name: SonarCloud Scan Typescript
46+
run: yarn sonar
47+
env:
48+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
50+
51+
- name: Build Gradle and analyze
52+
run: yarn build

README.md

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
<h1 align="center">
2-
<p>
2+
<h1 align="center">
33
<img src="./website/static/img/react-native-pdf-extractor.svg" alt="React Native PDF Extractor Logo" /><br />
44
React Native PDF Extractor
5-
</p>
5+
</h1>
66
</h1>
77

88

99
<p align="center">
10-
<a href="https://www.npmjs.com/package/react-native-pdf-extractor"><img src="https://img.shields.io/npm/dw/react-native-pdf-extractor.svg?style=flat-square" alt="NPM downloads"></a>
11-
<a href="https://www.npmjs.com/package/react-native-pdf-extractor"><img src="https://img.shields.io/npm/v/react-native-pdf-extractor?style=flat-square" alt="NPM version"></a>
12-
<a href="https://1fabiopereira.github.io/react-native-pdf-extractor/docs/license"><img src="https://img.shields.io/github/license/1fabiopereira/react-native-pdf-extractor?style=flat-square" alt="Package License"></a>
10+
<a href="https://www.npmjs.com/package/react-native-pdf-extractor">
11+
<img src="https://img.shields.io/npm/dw/react-native-pdf-extractor.svg?style=flat-square" alt="NPM downloads" />
12+
</a>
13+
<a href="https://www.npmjs.com/package/react-native-pdf-extractor">
14+
<img src="https://img.shields.io/npm/v/react-native-pdf-extractor?style=flat-square" alt="NPM version" />
15+
</a>
16+
<a href="https://1fabiopereira.github.io/react-native-pdf-extractor/docs/license">
17+
<a href="https://sonarcloud.io/project/overview?id=code-leak_react-native-pdf-extractor">
18+
<img src="https://sonarcloud.io/api/project_badges/measure?project=code-leak_react-native-pdf-extractor&metric=alert_status" alt="Sonar Cloud" />
19+
</a>
20+
<img src="https://img.shields.io/github/license/1fabiopereira/react-native-pdf-extractor?style=flat-square" alt="Package License" />
21+
</a>
1322
</p>
1423

1524
This library allows you to extract pdfs file data using matches specifics patterns.

android/build.gradle

+43-13
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,47 @@
11
buildscript {
2-
// Buildscript is evaluated before everything else so we can't use getExtOrDefault
32
def kotlin_version = rootProject.ext.has('kotlinVersion')
43
? rootProject.ext.get('kotlinVersion')
54
: project.properties['PdfExtractor_kotlinVersion']
65

76
repositories {
8-
google()
97
mavenCentral()
10-
jcenter()
8+
google()
9+
maven { url 'https://plugins.gradle.org/m2/' }
1110
}
1211

1312
dependencies {
1413
classpath('com.android.tools.build:gradle:7.1.3')
1514
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
15+
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.0"
16+
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.5'
17+
1618
}
1719
}
1820

1921
apply plugin: 'com.android.library'
2022
apply plugin: 'kotlin-android'
23+
apply plugin: 'org.sonarqube'
24+
apply plugin: 'com.dicedmelon.gradle.jacoco-android'
25+
26+
jacoco {
27+
toolVersion = "0.8.4"
28+
}
29+
30+
tasks.withType(Test) {
31+
jacoco.includeNoLocationClasses = true
32+
}
33+
34+
def kotlin_version = getExtOrDefault("kotlinVersion")
35+
36+
sonarqube {
37+
properties {
38+
property "sonar.projectKey", "code-leak_react-native-pdf-extractor_android"
39+
property "sonar.organization", "code-leak"
40+
property "sonar.host.url", "https://sonarcloud.io"
41+
property "sonar.sourceEncoding", "UTF-8"
42+
property "sonar.java.coveragePlugin", "jacoco"
43+
}
44+
}
2145

2246
def getExtOrDefault(name) {
2347
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['PdfExtractor_' + name]
@@ -31,7 +55,7 @@ android {
3155
compileSdkVersion getExtOrIntegerDefault('compileSdkVersion')
3256

3357
defaultConfig {
34-
minSdkVersion 21
58+
minSdkVersion getExtOrIntegerDefault('minSdkVersion')
3559
targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
3660
versionCode 1
3761
versionName "0.1.1"
@@ -41,7 +65,13 @@ android {
4165
release {
4266
minifyEnabled true
4367
}
68+
69+
debug {
70+
minifyEnabled false
71+
testCoverageEnabled true
72+
}
4473
}
74+
4575
lintOptions {
4676
disable 'GradleCompatible'
4777
}
@@ -50,7 +80,6 @@ android {
5080
repositories {
5181
mavenCentral()
5282
google()
53-
jcenter()
5483

5584
def found = false
5685
def defaultDir = null
@@ -102,23 +131,24 @@ repositories {
102131

103132
if (!found) {
104133
throw new GradleException(
105-
"${project.name}: unable to locate React Native android sources. " +
106-
"Ensure you have you installed React Native as a dependency in your project and try again."
134+
"${project.name}: unable to locate React Native android sources. " +
135+
"Ensure you have you installed React Native as a dependency in your project and try again."
107136
)
108137
}
109138
}
110139

111-
def kotlin_version = getExtOrDefault('kotlinVersion')
112-
113140
dependencies {
114141
// noinspection GradleDynamicVersion
115142
api("com.facebook.react:react-native:+")
116-
implementation("com.tom-roush:pdfbox-android:2.0.21.0")
117-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.2")
118-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.2")
143+
144+
// Project dependencies
145+
implementation('com.tom-roush:pdfbox-android:2.0.23.0')
146+
implementation('org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3')
147+
implementation('org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3')
119148
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
120149

121-
// Tests dependencies
150+
151+
// Unit Tests dependencies
122152
testImplementation("junit:junit:4.13.2")
123153
testImplementation("pl.pragmatists:JUnitParams:1.1.1")
124154
testImplementation("io.mockk:mockk:1.12.4")

android/gradle.properties

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
1818
# org.gradle.parallel=true
1919

20-
android.useAndroidX=true
2120
android.enableJetifier=true
21+
android.useAndroidX=true
2222

23-
PdfExtractor_kotlinVersion=1.6.21
2423
PdfExtractor_compileSdkVersion=29
24+
PdfExtractor_kotlinVersion=1.6.21
25+
PdfExtractor_minSdkVersion=21
2526
PdfExtractor_targetSdkVersion=29

android/src/main/AndroidManifest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.reactnativepdfextractor">
3+
package="com.reactnative.pdf.extractor">
44
<application />
55
</manifest>

android/src/main/kotlin/com/reactnativepdfextractor/PdfExtractorModule.kt android/src/main/kotlin/com/reactnative/pdf/extractor/PdfExtractorModule.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package com.reactnativepdfextractor
1+
package com.reactnative.pdf.extractor
22

33
import com.facebook.react.bridge.*
4-
import com.reactnativepdfextractor.core.PdfHandler
4+
import com.reactnative.pdf.extractor.core.PdfHandler
55
import com.tom_roush.pdfbox.android.PDFBoxResourceLoader
66
import kotlinx.coroutines.runBlocking
77

android/src/main/kotlin/com/reactnativepdfextractor/PdfExtractorPackage.kt android/src/main/kotlin/com/reactnative/pdf/extractor/PdfExtractorPackage.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.reactnativepdfextractor
1+
package com.reactnative.pdf.extractor
22

33
import com.facebook.react.ReactPackage
44
import com.facebook.react.bridge.NativeModule

android/src/main/kotlin/com/reactnativepdfextractor/core/PdfHandler.kt android/src/main/kotlin/com/reactnative/pdf/extractor/core/PdfHandler.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.reactnativepdfextractor.core
1+
package com.reactnative.pdf.extractor.core
22

33
import android.content.ContentResolver
44
import android.net.Uri

android/src/main/kotlin/com/reactnativepdfextractor/core/StringHandler.kt android/src/main/kotlin/com/reactnative/pdf/extractor/core/StringHandler.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.reactnativepdfextractor.core
1+
package com.reactnative.pdf.extractor.core
22

33
import kotlinx.coroutines.async
44
import kotlinx.coroutines.runBlocking

android/src/test/kotlin/com/reactnativepdfextractor/core/PdfHandlerTest.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/PdfHandlerTest.kt

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
package com.reactnativepdfextractor.core
1+
package com.reactnative.pdf.extractor.unit
22

33
import android.net.Uri
44
import com.facebook.react.bridge.ReadableArray
5-
import com.reactnativepdfextractor.utils.TestUtils
6-
import com.reactnativepdfextractor.utils.mocks.*
5+
import com.reactnative.pdf.extractor.core.PdfHandler
6+
import com.reactnative.pdf.extractor.core.StringHandler
7+
import com.reactnative.pdf.extractor.unit.utils.TestUtils
8+
import com.reactnative.pdf.extractor.unit.utils.mocks.*
9+
710
import io.mockk.*
811
import junitparams.JUnitParamsRunner
912
import junitparams.Parameters

android/src/test/kotlin/com/reactnativepdfextractor/core/StringHandlerTest.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/StringHandlerTest.kt

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package com.reactnativepdfextractor.core
1+
package com.reactnative.pdf.extractor.unit
22

3-
import com.reactnativepdfextractor.utils.TestUtils
3+
import com.reactnative.pdf.extractor.core.StringHandler
4+
import com.reactnative.pdf.extractor.unit.utils.TestUtils
45
import io.mockk.MockKAnnotations
56
import io.mockk.clearAllMocks
67

@@ -53,7 +54,10 @@ class StringHandlerTest {
5354
@Parameterized.Parameters
5455
fun matchWithoutExceptionsCases(): Any {
5556
val localText = TestUtils.loadText("multiline-unformatted.txt")
56-
val localRegexes = arrayOf("(\\S+@\\w+\\.\\w+)".toRegex(), "([0-9]{3})\\.([0-9]{3})\\.([0-9]{3})-([0-9]{2})".toRegex())
57+
val localRegexes = arrayOf(
58+
"(\\S+@\\w+\\.\\w+)".toRegex(),
59+
"([0-9]{3})\\.([0-9]{3})\\.([0-9]{3})-([0-9]{2})".toRegex()
60+
)
5761
val localExpectations = arrayOf("[email protected]", "000.000.000-00")
5862

5963
return listOf(

android/src/test/kotlin/com/reactnativepdfextractor/utils/TestUtils.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/TestUtils.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
package com.reactnativepdfextractor.utils
1+
package com.reactnative.pdf.extractor.unit.utils
22

33
import java.io.BufferedReader
44
import java.io.File
55

66
class TestUtils {
77
companion object {
8-
private const val resourcesPath = "src/test/kotlin/com/reactnativepdfextractor/core/resources"
8+
private const val resourcesPath = "src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/resources"
99

1010
@JvmStatic
1111
fun loadText(filename: String): String {
12-
val bufferedReader: BufferedReader = File("${resourcesPath}/${filename}").bufferedReader()
12+
val bufferedReader: BufferedReader = File("$resourcesPath/${filename}").bufferedReader()
1313
return bufferedReader.use { it.readText() }
1414
}
1515

android/src/test/kotlin/com/reactnativepdfextractor/utils/mocks/AndroidLogMock.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/mocks/AndroidLogMock.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package com.reactnativepdfextractor.utils.mocks
1+
package com.reactnative.pdf.extractor.unit.utils.mocks
22

3-
import com.reactnativepdfextractor.utils.mocks.interfaces.Mock
3+
import com.reactnative.pdf.extractor.unit.utils.mocks.interfaces.Mock
44
import io.mockk.every
55
import io.mockk.mockkStatic
66

77
import android.util.Log
88

9-
class AndroidLogMock: Mock {
9+
class AndroidLogMock(): Mock {
1010
override fun mock() {
1111
mockkStatic(Log::class)
1212
every { Log.w(any(), any<Throwable>()) } returns Int.MAX_VALUE

android/src/test/kotlin/com/reactnativepdfextractor/utils/mocks/ContentResolverMock.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/mocks/ContentResolverMock.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package com.reactnativepdfextractor.utils.mocks
1+
package com.reactnative.pdf.extractor.unit.utils.mocks
22

33
import android.content.ContentResolver
4-
import com.reactnativepdfextractor.utils.mocks.interfaces.Mock
4+
import com.reactnative.pdf.extractor.unit.utils.mocks.interfaces.Mock
55

66
import io.mockk.every
77
import io.mockk.mockk
88
import java.io.InputStream
99

10-
class ContentResolverMock: Mock {
10+
class ContentResolverMock(): Mock {
1111
private val resolver = mockk<ContentResolver>(relaxed = true)
1212
private var stream: InputStream? = null
1313

android/src/test/kotlin/com/reactnativepdfextractor/utils/mocks/InputStreamMock.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/mocks/InputStreamMock.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.reactnativepdfextractor.utils.mocks
1+
package com.reactnative.pdf.extractor.unit.utils.mocks
22

3-
import com.reactnativepdfextractor.utils.mocks.interfaces.Mock
3+
import com.reactnative.pdf.extractor.unit.utils.mocks.interfaces.Mock
44
import io.mockk.mockk
55
import java.io.InputStream
66

7-
class InputStreamMock: Mock {
7+
class InputStreamMock(): Mock {
88
private val inputStream = mockk<InputStream>(relaxed = true)
99

1010
override fun mock(): InputStream {

android/src/test/kotlin/com/reactnativepdfextractor/utils/mocks/PDDocumentMock.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/mocks/PDDocumentMock.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.reactnativepdfextractor.utils.mocks
1+
package com.reactnative.pdf.extractor.unit.utils.mocks
22

3-
import com.reactnativepdfextractor.utils.mocks.interfaces.Mock
3+
import com.reactnative.pdf.extractor.unit.utils.mocks.interfaces.Mock
44
import com.tom_roush.pdfbox.pdmodel.PDDocument
55

66
import io.mockk.every

android/src/test/kotlin/com/reactnativepdfextractor/utils/mocks/PDFBoxResourceLoaderMock.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/mocks/PDFBoxResourceLoaderMock.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package com.reactnativepdfextractor.utils.mocks
1+
package com.reactnative.pdf.extractor.unit.utils.mocks
22

33
import android.content.Context
4-
import com.reactnativepdfextractor.utils.mocks.interfaces.Mock
4+
import com.reactnative.pdf.extractor.unit.utils.mocks.interfaces.Mock
55
import com.tom_roush.pdfbox.android.PDFBoxResourceLoader
66
import io.mockk.mockk
77

8-
class PDFBoxResourceLoaderMock: Mock {
8+
class PDFBoxResourceLoaderMock(): Mock {
99
private val context = mockk<Context>(relaxed = true)
1010

1111
override fun mock() {

android/src/test/kotlin/com/reactnativepdfextractor/utils/mocks/PDFTextStripperMock.kt android/src/test/kotlin/com/reactnative/pdf/extractor/unit/utils/mocks/PDFTextStripperMock.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.reactnativepdfextractor.utils.mocks
1+
package com.reactnative.pdf.extractor.unit.utils.mocks
22

3-
import com.reactnativepdfextractor.utils.mocks.interfaces.Mock
3+
import com.reactnative.pdf.extractor.unit.utils.mocks.interfaces.Mock
44
import com.tom_roush.pdfbox.pdmodel.PDDocument
55
import com.tom_roush.pdfbox.text.PDFTextStripper
66

@@ -19,8 +19,7 @@ class PDFTextStripperMock(): Mock {
1919
override fun mock() {
2020
mockkConstructor(PDFTextStripper::class)
2121
mockk<PDFTextStripper>(relaxed = true)
22-
every {
23-
anyConstructed<PDFTextStripper>()
22+
every { anyConstructed<PDFTextStripper>()
2423
.getText(ofType(PDDocument::class))
2524
} returns text
2625
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.reactnative.pdf.extractor.unit.utils.mocks
2+
3+
import com.reactnative.pdf.extractor.unit.utils.mocks.interfaces.Mock
4+
import io.mockk.mockk
5+
import android.net.Uri
6+
7+
class UriMock(): Mock {
8+
private var uri = mockk<Uri>(relaxed = true)
9+
10+
override fun mock(): Uri {
11+
return uri
12+
}
13+
}

0 commit comments

Comments
 (0)