@papyrus-sdk/engine-native 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/LICENSE +21 -0
  2. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  3. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  4. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  5. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/cache-v2-55a2e41fcdfef7f23046.json +1323 -0
  6. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-ce719ceafe10fdc060d9.json +184 -0
  7. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-ba59984c0779dea51592.json +60 -0
  8. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  9. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/index-2025-12-22T13-33-34-0909.json +92 -0
  10. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/target-papyrus_text-Debug-29cd4996bc13fe24a65c.json +168 -0
  11. package/android/.cxx/Debug/6t29645j/arm64-v8a/.ninja_deps +0 -0
  12. package/android/.cxx/Debug/6t29645j/arm64-v8a/.ninja_log +20 -0
  13. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeCache.txt +400 -0
  14. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  15. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  16. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  17. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  18. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  19. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  20. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  21. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  22. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  23. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/CMakeOutput.log +264 -0
  24. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/TargetDirectories.txt +3 -0
  25. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  26. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  27. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  28. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/rules.ninja +64 -0
  29. package/android/.cxx/Debug/6t29645j/arm64-v8a/additional_project_files.txt +0 -0
  30. package/android/.cxx/Debug/6t29645j/arm64-v8a/android_gradle_build.json +38 -0
  31. package/android/.cxx/Debug/6t29645j/arm64-v8a/android_gradle_build_mini.json +27 -0
  32. package/android/.cxx/Debug/6t29645j/arm64-v8a/build.ninja +158 -0
  33. package/android/.cxx/Debug/6t29645j/arm64-v8a/build_file_index.txt +1 -0
  34. package/android/.cxx/Debug/6t29645j/arm64-v8a/cmake_install.cmake +54 -0
  35. package/android/.cxx/Debug/6t29645j/arm64-v8a/compile_commands.json +12 -0
  36. package/android/.cxx/Debug/6t29645j/arm64-v8a/compile_commands.json.bin +0 -0
  37. package/android/.cxx/Debug/6t29645j/arm64-v8a/configure_fingerprint.bin +28 -0
  38. package/android/.cxx/Debug/6t29645j/arm64-v8a/metadata_generation_command.txt +19 -0
  39. package/android/.cxx/Debug/6t29645j/arm64-v8a/prefab_config.json +4 -0
  40. package/android/.cxx/Debug/6t29645j/arm64-v8a/symbol_folder_index.txt +1 -0
  41. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  42. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  43. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  44. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/cache-v2-7f933b968e76d6ce336c.json +1323 -0
  45. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-439d2bc9e04bf2a43452.json +184 -0
  46. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-efc4cfee3dc3a5ec05be.json +60 -0
  47. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  48. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/index-2025-12-22T13-33-36-0881.json +92 -0
  49. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/target-papyrus_text-Debug-e3f83458cbaf3644c279.json +168 -0
  50. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.ninja_deps +0 -0
  51. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.ninja_log +20 -0
  52. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeCache.txt +400 -0
  53. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  54. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  55. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  56. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  57. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  58. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  59. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  60. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  61. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  62. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/CMakeOutput.log +268 -0
  63. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/TargetDirectories.txt +3 -0
  64. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  65. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  66. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  67. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/rules.ninja +64 -0
  68. package/android/.cxx/Debug/6t29645j/armeabi-v7a/additional_project_files.txt +0 -0
  69. package/android/.cxx/Debug/6t29645j/armeabi-v7a/android_gradle_build.json +38 -0
  70. package/android/.cxx/Debug/6t29645j/armeabi-v7a/android_gradle_build_mini.json +27 -0
  71. package/android/.cxx/Debug/6t29645j/armeabi-v7a/build.ninja +158 -0
  72. package/android/.cxx/Debug/6t29645j/armeabi-v7a/build_file_index.txt +1 -0
  73. package/android/.cxx/Debug/6t29645j/armeabi-v7a/cmake_install.cmake +54 -0
  74. package/android/.cxx/Debug/6t29645j/armeabi-v7a/compile_commands.json +12 -0
  75. package/android/.cxx/Debug/6t29645j/armeabi-v7a/compile_commands.json.bin +0 -0
  76. package/android/.cxx/Debug/6t29645j/armeabi-v7a/configure_fingerprint.bin +28 -0
  77. package/android/.cxx/Debug/6t29645j/armeabi-v7a/metadata_generation_command.txt +19 -0
  78. package/android/.cxx/Debug/6t29645j/armeabi-v7a/prefab_config.json +4 -0
  79. package/android/.cxx/Debug/6t29645j/armeabi-v7a/symbol_folder_index.txt +1 -0
  80. package/android/.cxx/Debug/6t29645j/hash_key.txt +26 -0
  81. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  82. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  83. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  84. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/cache-v2-921e99e188641cccb611.json +1323 -0
  85. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/cmakeFiles-v1-842a746390c683135141.json +184 -0
  86. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/codemodel-v2-5a1f9507fc5ae29259c9.json +60 -0
  87. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  88. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/index-2025-12-22T13-33-37-0961.json +92 -0
  89. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/target-papyrus_text-Debug-3cc07532ad82ada3b95c.json +168 -0
  90. package/android/.cxx/Debug/6t29645j/x86/.ninja_deps +0 -0
  91. package/android/.cxx/Debug/6t29645j/x86/.ninja_log +20 -0
  92. package/android/.cxx/Debug/6t29645j/x86/CMakeCache.txt +400 -0
  93. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  94. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  95. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  96. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  97. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  98. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  99. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  100. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  101. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  102. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/CMakeOutput.log +258 -0
  103. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/TargetDirectories.txt +3 -0
  104. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/cmake.check_cache +1 -0
  105. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  106. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  107. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/rules.ninja +64 -0
  108. package/android/.cxx/Debug/6t29645j/x86/additional_project_files.txt +0 -0
  109. package/android/.cxx/Debug/6t29645j/x86/android_gradle_build.json +38 -0
  110. package/android/.cxx/Debug/6t29645j/x86/android_gradle_build_mini.json +27 -0
  111. package/android/.cxx/Debug/6t29645j/x86/build.ninja +158 -0
  112. package/android/.cxx/Debug/6t29645j/x86/build_file_index.txt +1 -0
  113. package/android/.cxx/Debug/6t29645j/x86/cmake_install.cmake +54 -0
  114. package/android/.cxx/Debug/6t29645j/x86/compile_commands.json +12 -0
  115. package/android/.cxx/Debug/6t29645j/x86/compile_commands.json.bin +0 -0
  116. package/android/.cxx/Debug/6t29645j/x86/configure_fingerprint.bin +28 -0
  117. package/android/.cxx/Debug/6t29645j/x86/metadata_generation_command.txt +19 -0
  118. package/android/.cxx/Debug/6t29645j/x86/prefab_config.json +4 -0
  119. package/android/.cxx/Debug/6t29645j/x86/symbol_folder_index.txt +1 -0
  120. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  121. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  122. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  123. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/cache-v2-de693df49d051882903b.json +1323 -0
  124. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-8206847cf10ce80b1459.json +184 -0
  125. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/codemodel-v2-ad9301b1a16c83f532c2.json +60 -0
  126. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  127. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/index-2025-12-22T13-33-39-0005.json +92 -0
  128. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/target-papyrus_text-Debug-e1bb1d27c41dc820b379.json +168 -0
  129. package/android/.cxx/Debug/6t29645j/x86_64/.ninja_deps +0 -0
  130. package/android/.cxx/Debug/6t29645j/x86_64/.ninja_log +20 -0
  131. package/android/.cxx/Debug/6t29645j/x86_64/CMakeCache.txt +400 -0
  132. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  133. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  134. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  135. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  136. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  137. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  138. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  139. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  140. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  141. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/CMakeOutput.log +258 -0
  142. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/TargetDirectories.txt +3 -0
  143. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/cmake.check_cache +1 -0
  144. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  145. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  146. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/rules.ninja +64 -0
  147. package/android/.cxx/Debug/6t29645j/x86_64/additional_project_files.txt +0 -0
  148. package/android/.cxx/Debug/6t29645j/x86_64/android_gradle_build.json +38 -0
  149. package/android/.cxx/Debug/6t29645j/x86_64/android_gradle_build_mini.json +27 -0
  150. package/android/.cxx/Debug/6t29645j/x86_64/build.ninja +158 -0
  151. package/android/.cxx/Debug/6t29645j/x86_64/build_file_index.txt +1 -0
  152. package/android/.cxx/Debug/6t29645j/x86_64/cmake_install.cmake +54 -0
  153. package/android/.cxx/Debug/6t29645j/x86_64/compile_commands.json +12 -0
  154. package/android/.cxx/Debug/6t29645j/x86_64/compile_commands.json.bin +0 -0
  155. package/android/.cxx/Debug/6t29645j/x86_64/configure_fingerprint.bin +28 -0
  156. package/android/.cxx/Debug/6t29645j/x86_64/metadata_generation_command.txt +19 -0
  157. package/android/.cxx/Debug/6t29645j/x86_64/prefab_config.json +4 -0
  158. package/android/.cxx/Debug/6t29645j/x86_64/symbol_folder_index.txt +1 -0
  159. package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +12 -0
  160. package/android/.cxx/tools/debug/armeabi-v7a/compile_commands.json +12 -0
  161. package/android/.cxx/tools/debug/x86/compile_commands.json +12 -0
  162. package/android/.cxx/tools/debug/x86_64/compile_commands.json +12 -0
  163. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/results.bin +1 -0
  164. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/android/support/v4/util/ArrayMap.dex +0 -0
  165. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/BuildConfig.dex +0 -0
  166. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusEngineStore$EngineState.dex +0 -0
  167. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusEngineStore.dex +0 -0
  168. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusNativeEngineModule$1.dex +0 -0
  169. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusNativeEngineModule.dex +0 -0
  170. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusOutline.dex +0 -0
  171. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusOutlineItem.dex +0 -0
  172. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusPackage.dex +0 -0
  173. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusPageView.dex +0 -0
  174. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusPageViewManager.dex +0 -0
  175. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextHit.dex +0 -0
  176. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextSearch.dex +0 -0
  177. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextSelect.dex +0 -0
  178. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextSelection.dex +0 -0
  179. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  180. package/android/build/.transforms/b336bac6032a9c6be0544a913e5a030c/results.bin +1 -0
  181. package/android/build/.transforms/b336bac6032a9c6be0544a913e5a030c/transformed/classes/classes_dex/classes.dex +0 -0
  182. package/android/build/generated/source/buildConfig/debug/com/papyrus/engine/BuildConfig.java +10 -0
  183. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  184. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  185. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  186. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  187. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  188. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  189. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  190. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_command_papyrus_text.bat +5 -0
  191. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_model.json +186 -0
  192. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_stderr_papyrus_text.txt +0 -0
  193. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_stdout_papyrus_text.txt +2 -0
  194. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_157_timing.txt +8 -0
  195. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_167_timing.txt +8 -0
  196. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_168_timing.txt +14 -0
  197. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_172_timing.txt +8 -0
  198. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_2919_timing.txt +6 -0
  199. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_3311_timing.txt +3 -0
  200. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_450_timing.txt +3 -0
  201. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/metadata_generation_record.json +41 -0
  202. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_command_papyrus_text.bat +5 -0
  203. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_model.json +186 -0
  204. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_stderr_papyrus_text.txt +0 -0
  205. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_stdout_papyrus_text.txt +2 -0
  206. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_158_timing.txt +6 -0
  207. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_160_timing.txt +6 -0
  208. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_164_timing.txt +6 -0
  209. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_168_timing.txt +6 -0
  210. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_2922_timing.txt +6 -0
  211. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_3311_timing.txt +3 -0
  212. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_450_timing.txt +3 -0
  213. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/metadata_generation_record.json +41 -0
  214. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_command_papyrus_text.bat +5 -0
  215. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_model.json +186 -0
  216. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_stderr_papyrus_text.txt +0 -0
  217. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_stdout_papyrus_text.txt +2 -0
  218. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_160_timing.txt +5 -0
  219. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_164_timing.txt +3 -0
  220. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_168_timing.txt +6 -0
  221. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_170_timing.txt +6 -0
  222. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_2907_timing.txt +6 -0
  223. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_3311_timing.txt +3 -0
  224. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_450_timing.txt +3 -0
  225. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/metadata_generation_record.json +41 -0
  226. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_command_papyrus_text.bat +5 -0
  227. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_model.json +186 -0
  228. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_stderr_papyrus_text.txt +0 -0
  229. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_stdout_papyrus_text.txt +2 -0
  230. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_155_timing.txt +6 -0
  231. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_160_timing.txt +6 -0
  232. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_164_timing.txt +3 -0
  233. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_168_timing.txt +6 -0
  234. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_2916_timing.txt +6 -0
  235. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_3311_timing.txt +5 -0
  236. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_450_timing.txt +6 -0
  237. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/metadata_generation_record.json +41 -0
  238. package/android/build/intermediates/cxx/Debug/6t29645j/obj/arm64-v8a/libpapyrus_text.so +0 -0
  239. package/android/build/intermediates/cxx/Debug/6t29645j/obj/armeabi-v7a/libpapyrus_text.so +0 -0
  240. package/android/build/intermediates/cxx/Debug/6t29645j/obj/x86/libpapyrus_text.so +0 -0
  241. package/android/build/intermediates/cxx/Debug/6t29645j/obj/x86_64/libpapyrus_text.so +0 -0
  242. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  243. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  244. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  245. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  246. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  247. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/android/support/v4/util/ArrayMap.class +0 -0
  248. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/BuildConfig.class +0 -0
  249. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusEngineStore$EngineState.class +0 -0
  250. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusEngineStore.class +0 -0
  251. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusNativeEngineModule$1.class +0 -0
  252. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusNativeEngineModule.class +0 -0
  253. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusOutline.class +0 -0
  254. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusOutlineItem.class +0 -0
  255. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusPackage.class +0 -0
  256. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusPageView.class +0 -0
  257. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusPageViewManager.class +0 -0
  258. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextHit.class +0 -0
  259. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextSearch.class +0 -0
  260. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextSelect.class +0 -0
  261. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextSelection.class +0 -0
  262. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libpapyrus_text.so +0 -0
  263. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libpapyrus_text.so +0 -0
  264. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libpapyrus_text.so +0 -0
  265. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libpapyrus_text.so +0 -0
  266. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  267. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  268. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  269. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libpapyrus_text.so +0 -0
  270. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libpapyrus_text.so +0 -0
  271. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libpapyrus_text.so +0 -0
  272. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libpapyrus_text.so +0 -0
  273. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  274. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  275. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/android/support/v4/util/ArrayMap.class +0 -0
  276. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/BuildConfig.class +0 -0
  277. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusEngineStore$EngineState.class +0 -0
  278. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusEngineStore.class +0 -0
  279. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusNativeEngineModule$1.class +0 -0
  280. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusNativeEngineModule.class +0 -0
  281. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusOutline.class +0 -0
  282. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusOutlineItem.class +0 -0
  283. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusPackage.class +0 -0
  284. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusPageView.class +0 -0
  285. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusPageViewManager.class +0 -0
  286. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextHit.class +0 -0
  287. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextSearch.class +0 -0
  288. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextSelect.class +0 -0
  289. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextSelection.class +0 -0
  290. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  291. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  292. package/android/build/outputs/logs/manifest-merger-debug-report.txt +17 -0
  293. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PapyrusNativeEngineModule$1.class.uniqueId2 +0 -0
  294. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PapyrusNativeEngineModule.class.uniqueId1 +0 -0
  295. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PapyrusPackage.class.uniqueId0 +0 -0
  296. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  297. package/android/build.gradle +40 -0
  298. package/android/consumer-rules.pro +1 -0
  299. package/android/src/main/AndroidManifest.xml +3 -0
  300. package/android/src/main/cpp/CMakeLists.txt +23 -0
  301. package/android/src/main/cpp/papyrus_outline.cpp +139 -0
  302. package/android/src/main/cpp/papyrus_text_search.cpp +408 -0
  303. package/android/src/main/java/android/support/v4/util/ArrayMap.java +18 -0
  304. package/android/src/main/java/com/papyrus/engine/PapyrusEngineStore.java +71 -0
  305. package/android/src/main/java/com/papyrus/engine/PapyrusNativeEngineModule.java +529 -0
  306. package/android/src/main/java/com/papyrus/engine/PapyrusOutline.java +20 -0
  307. package/android/src/main/java/com/papyrus/engine/PapyrusOutlineItem.java +13 -0
  308. package/android/src/main/java/com/papyrus/engine/PapyrusPackage.java +24 -0
  309. package/android/src/main/java/com/papyrus/engine/PapyrusPageView.java +86 -0
  310. package/android/src/main/java/com/papyrus/engine/PapyrusPageViewManager.java +16 -0
  311. package/android/src/main/java/com/papyrus/engine/PapyrusTextHit.java +15 -0
  312. package/android/src/main/java/com/papyrus/engine/PapyrusTextSearch.java +20 -0
  313. package/android/src/main/java/com/papyrus/engine/PapyrusTextSelect.java +20 -0
  314. package/android/src/main/java/com/papyrus/engine/PapyrusTextSelection.java +11 -0
  315. package/dist/index.d.mts +51 -0
  316. package/dist/index.d.ts +51 -0
  317. package/dist/index.js +164 -0
  318. package/dist/index.js.map +1 -0
  319. package/dist/index.mjs +139 -0
  320. package/dist/index.mjs.map +1 -0
  321. package/ios/PapyrusEngineStore.h +16 -0
  322. package/ios/PapyrusEngineStore.m +48 -0
  323. package/ios/PapyrusNativeEngine.m +372 -0
  324. package/ios/PapyrusNativeEngine.podspec +15 -0
  325. package/ios/PapyrusPageView.h +16 -0
  326. package/ios/PapyrusPageView.m +54 -0
  327. package/ios/PapyrusPageViewManager.m +19 -0
  328. package/package.json +36 -0
  329. package/react-native.config.js +10 -0
@@ -0,0 +1,408 @@
1
+ #include <jni.h>
2
+ #include <android/log.h>
3
+ #include <dlfcn.h>
4
+
5
+ #include <algorithm>
6
+ #include <cmath>
7
+ #include <string>
8
+ #include <vector>
9
+
10
+ #define LOG_TAG "PapyrusText"
11
+ #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
12
+
13
+ typedef void *FPDF_DOCUMENT;
14
+ typedef void *FPDF_PAGE;
15
+ typedef void *FPDF_TEXTPAGE;
16
+ typedef void *FPDF_SCHHANDLE;
17
+ typedef const unsigned short *FPDF_WIDESTRING;
18
+
19
+ constexpr int kMaxHits = 200;
20
+
21
+ struct PdfiumFns {
22
+ FPDF_PAGE (*loadPage)(FPDF_DOCUMENT, int);
23
+ void (*closePage)(FPDF_PAGE);
24
+ double (*getPageWidth)(FPDF_PAGE);
25
+ double (*getPageHeight)(FPDF_PAGE);
26
+ int (*getDocPageCount)(FPDF_DOCUMENT);
27
+ FPDF_DOCUMENT (*loadDocument)(const char *, const char *);
28
+ void (*closeDocument)(FPDF_DOCUMENT);
29
+ FPDF_TEXTPAGE (*textLoadPage)(FPDF_PAGE);
30
+ void (*textClosePage)(FPDF_TEXTPAGE);
31
+ FPDF_SCHHANDLE (*textFindStart)(FPDF_TEXTPAGE, FPDF_WIDESTRING, int, int);
32
+ int (*textFindNext)(FPDF_SCHHANDLE);
33
+ void (*textFindClose)(FPDF_SCHHANDLE);
34
+ int (*textGetSchResultIndex)(FPDF_SCHHANDLE);
35
+ int (*textGetSchCount)(FPDF_SCHHANDLE);
36
+ int (*textGetCharBox)(FPDF_TEXTPAGE, int, double *, double *, double *, double *);
37
+ int (*textCountChars)(FPDF_TEXTPAGE);
38
+ int (*textGetText)(FPDF_TEXTPAGE, int, int, unsigned short *);
39
+ };
40
+
41
+ static void *g_pdfium = nullptr;
42
+ static PdfiumFns g_fns = {};
43
+ static bool g_loaded = false;
44
+
45
+ static bool LoadPdfium() {
46
+ if (g_loaded) return g_pdfium != nullptr;
47
+
48
+ g_pdfium = dlopen("libmodpdfium.so", RTLD_LAZY);
49
+ if (!g_pdfium) {
50
+ LOGE("Failed to load libmodpdfium.so");
51
+ g_loaded = true;
52
+ return false;
53
+ }
54
+
55
+ g_fns.loadPage = reinterpret_cast<FPDF_PAGE (*)(FPDF_DOCUMENT, int)>(dlsym(g_pdfium, "FPDF_LoadPage"));
56
+ g_fns.closePage = reinterpret_cast<void (*)(FPDF_PAGE)>(dlsym(g_pdfium, "FPDF_ClosePage"));
57
+ g_fns.getPageWidth = reinterpret_cast<double (*)(FPDF_PAGE)>(dlsym(g_pdfium, "FPDF_GetPageWidth"));
58
+ g_fns.getPageHeight = reinterpret_cast<double (*)(FPDF_PAGE)>(dlsym(g_pdfium, "FPDF_GetPageHeight"));
59
+ g_fns.getDocPageCount = reinterpret_cast<int (*)(FPDF_DOCUMENT)>(dlsym(g_pdfium, "FPDF_GetPageCount"));
60
+ g_fns.loadDocument = reinterpret_cast<FPDF_DOCUMENT (*)(const char *, const char *)>(dlsym(g_pdfium, "FPDF_LoadDocument"));
61
+ g_fns.closeDocument = reinterpret_cast<void (*)(FPDF_DOCUMENT)>(dlsym(g_pdfium, "FPDF_CloseDocument"));
62
+ g_fns.textLoadPage = reinterpret_cast<FPDF_TEXTPAGE (*)(FPDF_PAGE)>(dlsym(g_pdfium, "FPDFText_LoadPage"));
63
+ g_fns.textClosePage = reinterpret_cast<void (*)(FPDF_TEXTPAGE)>(dlsym(g_pdfium, "FPDFText_ClosePage"));
64
+ g_fns.textFindStart = reinterpret_cast<FPDF_SCHHANDLE (*)(FPDF_TEXTPAGE, FPDF_WIDESTRING, int, int)>(dlsym(g_pdfium, "FPDFText_FindStart"));
65
+ g_fns.textFindNext = reinterpret_cast<int (*)(FPDF_SCHHANDLE)>(dlsym(g_pdfium, "FPDFText_FindNext"));
66
+ g_fns.textFindClose = reinterpret_cast<void (*)(FPDF_SCHHANDLE)>(dlsym(g_pdfium, "FPDFText_FindClose"));
67
+ g_fns.textGetSchResultIndex = reinterpret_cast<int (*)(FPDF_SCHHANDLE)>(dlsym(g_pdfium, "FPDFText_GetSchResultIndex"));
68
+ g_fns.textGetSchCount = reinterpret_cast<int (*)(FPDF_SCHHANDLE)>(dlsym(g_pdfium, "FPDFText_GetSchCount"));
69
+ g_fns.textGetCharBox = reinterpret_cast<int (*)(FPDF_TEXTPAGE, int, double *, double *, double *, double *)>(dlsym(g_pdfium, "FPDFText_GetCharBox"));
70
+ g_fns.textCountChars = reinterpret_cast<int (*)(FPDF_TEXTPAGE)>(dlsym(g_pdfium, "FPDFText_CountChars"));
71
+ g_fns.textGetText = reinterpret_cast<int (*)(FPDF_TEXTPAGE, int, int, unsigned short *)>(dlsym(g_pdfium, "FPDFText_GetText"));
72
+
73
+ if (!g_fns.loadPage || !g_fns.closePage || !g_fns.getPageWidth || !g_fns.getPageHeight ||
74
+ !g_fns.getDocPageCount || !g_fns.loadDocument || !g_fns.closeDocument ||
75
+ !g_fns.textLoadPage || !g_fns.textClosePage || !g_fns.textFindStart || !g_fns.textFindNext ||
76
+ !g_fns.textFindClose || !g_fns.textGetSchResultIndex || !g_fns.textGetSchCount ||
77
+ !g_fns.textGetCharBox || !g_fns.textCountChars || !g_fns.textGetText) {
78
+ LOGE("Failed to load required PDFium symbols");
79
+ g_loaded = true;
80
+ return false;
81
+ }
82
+
83
+ g_loaded = true;
84
+ return true;
85
+ }
86
+
87
+ static jstring BuildPreview(JNIEnv *env, FPDF_TEXTPAGE textPage, int startIndex, int count) {
88
+ int totalChars = g_fns.textCountChars(textPage);
89
+ if (totalChars <= 0) return env->NewStringUTF("");
90
+
91
+ int previewStart = std::max(0, startIndex - 20);
92
+ int previewCount = std::min(totalChars - previewStart, count + 40);
93
+ if (previewCount <= 0) return env->NewStringUTF("");
94
+
95
+ std::vector<unsigned short> buffer(previewCount + 1, 0);
96
+ int written = g_fns.textGetText(textPage, previewStart, previewCount, buffer.data());
97
+ int length = written > 0 ? written - 1 : 0;
98
+ if (length <= 0) return env->NewStringUTF("");
99
+
100
+ return env->NewString(reinterpret_cast<const jchar *>(buffer.data()), length);
101
+ }
102
+
103
+ static jfloatArray BuildRect(JNIEnv *env, FPDF_TEXTPAGE textPage, FPDF_PAGE page, int startIndex, int count) {
104
+ double left = 0;
105
+ double right = 0;
106
+ double top = 0;
107
+ double bottom = 0;
108
+ bool hasBox = false;
109
+
110
+ for (int i = 0; i < count; i++) {
111
+ double cLeft = 0;
112
+ double cRight = 0;
113
+ double cTop = 0;
114
+ double cBottom = 0;
115
+ if (!g_fns.textGetCharBox(textPage, startIndex + i, &cLeft, &cRight, &cBottom, &cTop)) continue;
116
+ if (!hasBox) {
117
+ left = cLeft;
118
+ right = cRight;
119
+ top = cTop;
120
+ bottom = cBottom;
121
+ hasBox = true;
122
+ } else {
123
+ left = std::min(left, cLeft);
124
+ right = std::max(right, cRight);
125
+ top = std::max(top, cTop);
126
+ bottom = std::min(bottom, cBottom);
127
+ }
128
+ }
129
+
130
+ if (!hasBox) {
131
+ return env->NewFloatArray(0);
132
+ }
133
+
134
+ double pageWidth = g_fns.getPageWidth(page);
135
+ double pageHeight = g_fns.getPageHeight(page);
136
+ if (pageWidth <= 0 || pageHeight <= 0) {
137
+ return env->NewFloatArray(0);
138
+ }
139
+
140
+ float x = static_cast<float>(left / pageWidth);
141
+ float y = static_cast<float>((pageHeight - top) / pageHeight);
142
+ float w = static_cast<float>((right - left) / pageWidth);
143
+ float h = static_cast<float>((top - bottom) / pageHeight);
144
+
145
+ jfloat rects[4] = {
146
+ std::max(0.0f, std::min(1.0f, x)),
147
+ std::max(0.0f, std::min(1.0f, y)),
148
+ std::max(0.0f, std::min(1.0f, w)),
149
+ std::max(0.0f, std::min(1.0f, h)),
150
+ };
151
+
152
+ jfloatArray array = env->NewFloatArray(4);
153
+ env->SetFloatArrayRegion(array, 0, 4, rects);
154
+ return array;
155
+ }
156
+
157
+ static jobjectArray SearchDocument(JNIEnv *env, FPDF_DOCUMENT doc, int pageCount, const unsigned short *wideQuery, jsize queryLen) {
158
+ if (!doc || pageCount <= 0 || !wideQuery || queryLen <= 0) return nullptr;
159
+
160
+ jclass hitClass = env->FindClass("com/papyrus/engine/PapyrusTextHit");
161
+ if (!hitClass) return nullptr;
162
+ jmethodID ctor = env->GetMethodID(hitClass, "<init>", "(IILjava/lang/String;[F)V");
163
+ if (!ctor) return nullptr;
164
+
165
+ std::vector<jobject> hits;
166
+ hits.reserve(32);
167
+
168
+ for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
169
+ FPDF_PAGE page = g_fns.loadPage(doc, pageIndex);
170
+ if (!page) continue;
171
+ FPDF_TEXTPAGE textPage = g_fns.textLoadPage(page);
172
+ if (!textPage) {
173
+ g_fns.closePage(page);
174
+ continue;
175
+ }
176
+
177
+ FPDF_SCHHANDLE handle = g_fns.textFindStart(textPage, wideQuery, 0, 0);
178
+ if (handle) {
179
+ int matchIndex = 0;
180
+ while (g_fns.textFindNext(handle)) {
181
+ int startIndex = g_fns.textGetSchResultIndex(handle);
182
+ int count = g_fns.textGetSchCount(handle);
183
+ int totalChars = g_fns.textCountChars(textPage);
184
+ if (startIndex < 0 || startIndex >= totalChars) continue;
185
+ if (count <= 0) count = 1;
186
+ if (startIndex + count > totalChars) {
187
+ count = std::max(1, totalChars - startIndex);
188
+ }
189
+
190
+ jstring preview = BuildPreview(env, textPage, startIndex, count);
191
+ jfloatArray rects = BuildRect(env, textPage, page, startIndex, count);
192
+ jobject hit = env->NewObject(hitClass, ctor, pageIndex, matchIndex, preview, rects);
193
+ if (hit) {
194
+ hits.push_back(hit);
195
+ }
196
+ matchIndex++;
197
+ if (static_cast<int>(hits.size()) >= kMaxHits) break;
198
+ }
199
+ g_fns.textFindClose(handle);
200
+ }
201
+
202
+ g_fns.textClosePage(textPage);
203
+ g_fns.closePage(page);
204
+ if (static_cast<int>(hits.size()) >= kMaxHits) break;
205
+ }
206
+
207
+ jobjectArray result = env->NewObjectArray(static_cast<jsize>(hits.size()), hitClass, nullptr);
208
+ for (jsize i = 0; i < static_cast<jsize>(hits.size()); i++) {
209
+ env->SetObjectArrayElement(result, i, hits[i]);
210
+ }
211
+
212
+ return result;
213
+ }
214
+
215
+ static jobject BuildSelection(JNIEnv *env, FPDF_DOCUMENT doc, int pageIndex, double normX, double normY, double normW, double normH) {
216
+ if (!doc || pageIndex < 0 || normW <= 0 || normH <= 0) return nullptr;
217
+
218
+ jclass selectionClass = env->FindClass("com/papyrus/engine/PapyrusTextSelection");
219
+ if (!selectionClass) return nullptr;
220
+ jmethodID ctor = env->GetMethodID(selectionClass, "<init>", "(Ljava/lang/String;[F)V");
221
+ if (!ctor) return nullptr;
222
+
223
+ FPDF_PAGE page = g_fns.loadPage(doc, pageIndex);
224
+ if (!page) return nullptr;
225
+ FPDF_TEXTPAGE textPage = g_fns.textLoadPage(page);
226
+ if (!textPage) {
227
+ g_fns.closePage(page);
228
+ return nullptr;
229
+ }
230
+
231
+ double pageWidth = g_fns.getPageWidth(page);
232
+ double pageHeight = g_fns.getPageHeight(page);
233
+ if (pageWidth <= 0 || pageHeight <= 0) {
234
+ g_fns.textClosePage(textPage);
235
+ g_fns.closePage(page);
236
+ return nullptr;
237
+ }
238
+
239
+ double rectLeft = normX * pageWidth;
240
+ double rectTop = pageHeight - (normY * pageHeight);
241
+ double rectRight = rectLeft + (normW * pageWidth);
242
+ double rectBottom = rectTop - (normH * pageHeight);
243
+
244
+ struct LineRect {
245
+ double left;
246
+ double right;
247
+ double top;
248
+ double bottom;
249
+ };
250
+
251
+ std::vector<LineRect> lines;
252
+ std::u16string selectedText;
253
+
254
+ int charCount = g_fns.textCountChars(textPage);
255
+ if (charCount <= 0) {
256
+ g_fns.textClosePage(textPage);
257
+ g_fns.closePage(page);
258
+ return nullptr;
259
+ }
260
+
261
+ const double lineTolerance = 2.5;
262
+ std::vector<unsigned short> charBuffer(2, 0);
263
+
264
+ for (int i = 0; i < charCount; i++) {
265
+ double cLeft = 0;
266
+ double cRight = 0;
267
+ double cTop = 0;
268
+ double cBottom = 0;
269
+ if (!g_fns.textGetCharBox(textPage, i, &cLeft, &cRight, &cBottom, &cTop)) continue;
270
+
271
+ bool intersects = !(cRight < rectLeft || cLeft > rectRight || cTop < rectBottom || cBottom > rectTop);
272
+ if (!intersects) continue;
273
+
274
+ int written = g_fns.textGetText(textPage, i, 1, charBuffer.data());
275
+ if (written > 0 && charBuffer[0] != 0) {
276
+ selectedText.push_back(static_cast<char16_t>(charBuffer[0]));
277
+ }
278
+
279
+ bool added = false;
280
+ for (auto &line : lines) {
281
+ if (std::abs(line.top - cTop) <= lineTolerance || std::abs(line.bottom - cBottom) <= lineTolerance) {
282
+ line.left = std::min(line.left, cLeft);
283
+ line.right = std::max(line.right, cRight);
284
+ line.top = std::max(line.top, cTop);
285
+ line.bottom = std::min(line.bottom, cBottom);
286
+ added = true;
287
+ break;
288
+ }
289
+ }
290
+ if (!added) {
291
+ lines.push_back({cLeft, cRight, cTop, cBottom});
292
+ }
293
+ }
294
+
295
+ std::vector<jfloat> rects;
296
+ rects.reserve(lines.size() * 4);
297
+ for (const auto &line : lines) {
298
+ float x = static_cast<float>(line.left / pageWidth);
299
+ float y = static_cast<float>((pageHeight - line.top) / pageHeight);
300
+ float w = static_cast<float>((line.right - line.left) / pageWidth);
301
+ float h = static_cast<float>((line.top - line.bottom) / pageHeight);
302
+
303
+ rects.push_back(std::max(0.0f, std::min(1.0f, x)));
304
+ rects.push_back(std::max(0.0f, std::min(1.0f, y)));
305
+ rects.push_back(std::max(0.0f, std::min(1.0f, w)));
306
+ rects.push_back(std::max(0.0f, std::min(1.0f, h)));
307
+ }
308
+
309
+ jfloatArray rectArray = env->NewFloatArray(static_cast<jsize>(rects.size()));
310
+ if (rectArray && !rects.empty()) {
311
+ env->SetFloatArrayRegion(rectArray, 0, static_cast<jsize>(rects.size()), rects.data());
312
+ }
313
+
314
+ jstring text = selectedText.empty()
315
+ ? env->NewStringUTF("")
316
+ : env->NewString(reinterpret_cast<const jchar *>(selectedText.data()), static_cast<jsize>(selectedText.size()));
317
+
318
+ jobject selection = env->NewObject(selectionClass, ctor, text, rectArray);
319
+
320
+ if (rectArray) env->DeleteLocalRef(rectArray);
321
+ if (text) env->DeleteLocalRef(text);
322
+
323
+ g_fns.textClosePage(textPage);
324
+ g_fns.closePage(page);
325
+
326
+ return selection;
327
+ }
328
+
329
+ extern "C" JNIEXPORT jobjectArray JNICALL
330
+ Java_com_papyrus_engine_PapyrusTextSearch_nativeSearch(JNIEnv *env, jclass, jlong docPtr, jint pageCount, jstring query) {
331
+ if (!LoadPdfium()) return nullptr;
332
+ if (!docPtr || pageCount <= 0 || query == nullptr) return nullptr;
333
+
334
+ const jchar *queryChars = env->GetStringChars(query, nullptr);
335
+ jsize queryLen = env->GetStringLength(query);
336
+ if (!queryChars || queryLen == 0) {
337
+ if (queryChars) env->ReleaseStringChars(query, queryChars);
338
+ return nullptr;
339
+ }
340
+
341
+ std::vector<unsigned short> wideQuery(static_cast<size_t>(queryLen) + 1, 0);
342
+ for (jsize i = 0; i < queryLen; i++) {
343
+ wideQuery[i] = static_cast<unsigned short>(queryChars[i]);
344
+ }
345
+ env->ReleaseStringChars(query, queryChars);
346
+
347
+ FPDF_DOCUMENT doc = reinterpret_cast<FPDF_DOCUMENT>(docPtr);
348
+ jobjectArray result = SearchDocument(env, doc, pageCount, wideQuery.data(), queryLen);
349
+ return result;
350
+ }
351
+
352
+ extern "C" JNIEXPORT jobjectArray JNICALL
353
+ Java_com_papyrus_engine_PapyrusTextSearch_nativeSearchFile(JNIEnv *env, jclass, jstring filePath, jstring query) {
354
+ if (!LoadPdfium()) return nullptr;
355
+ if (!filePath || !query) return nullptr;
356
+
357
+ const jchar *queryChars = env->GetStringChars(query, nullptr);
358
+ jsize queryLen = env->GetStringLength(query);
359
+ if (!queryChars || queryLen == 0) {
360
+ if (queryChars) env->ReleaseStringChars(query, queryChars);
361
+ return nullptr;
362
+ }
363
+
364
+ std::vector<unsigned short> wideQuery(static_cast<size_t>(queryLen) + 1, 0);
365
+ for (jsize i = 0; i < queryLen; i++) {
366
+ wideQuery[i] = static_cast<unsigned short>(queryChars[i]);
367
+ }
368
+ env->ReleaseStringChars(query, queryChars);
369
+
370
+ const char *path = env->GetStringUTFChars(filePath, nullptr);
371
+ if (!path) return nullptr;
372
+
373
+ FPDF_DOCUMENT doc = g_fns.loadDocument(path, nullptr);
374
+ env->ReleaseStringUTFChars(filePath, path);
375
+ if (!doc) return nullptr;
376
+
377
+ int pageCount = g_fns.getDocPageCount(doc);
378
+ jobjectArray result = SearchDocument(env, doc, pageCount, wideQuery.data(), queryLen);
379
+ g_fns.closeDocument(doc);
380
+
381
+ return result;
382
+ }
383
+
384
+ extern "C" JNIEXPORT jobject JNICALL
385
+ Java_com_papyrus_engine_PapyrusTextSelect_nativeSelectText(JNIEnv *env, jclass, jlong docPtr, jint pageIndex, jfloat x, jfloat y, jfloat width, jfloat height) {
386
+ if (!LoadPdfium()) return nullptr;
387
+ if (!docPtr) return nullptr;
388
+
389
+ FPDF_DOCUMENT doc = reinterpret_cast<FPDF_DOCUMENT>(docPtr);
390
+ return BuildSelection(env, doc, pageIndex, x, y, width, height);
391
+ }
392
+
393
+ extern "C" JNIEXPORT jobject JNICALL
394
+ Java_com_papyrus_engine_PapyrusTextSelect_nativeSelectTextFile(JNIEnv *env, jclass, jstring filePath, jint pageIndex, jfloat x, jfloat y, jfloat width, jfloat height) {
395
+ if (!LoadPdfium()) return nullptr;
396
+ if (!filePath) return nullptr;
397
+
398
+ const char *path = env->GetStringUTFChars(filePath, nullptr);
399
+ if (!path) return nullptr;
400
+
401
+ FPDF_DOCUMENT doc = g_fns.loadDocument(path, nullptr);
402
+ env->ReleaseStringUTFChars(filePath, path);
403
+ if (!doc) return nullptr;
404
+
405
+ jobject selection = BuildSelection(env, doc, pageIndex, x, y, width, height);
406
+ g_fns.closeDocument(doc);
407
+ return selection;
408
+ }
@@ -0,0 +1,18 @@
1
+ package android.support.v4.util;
2
+
3
+ import java.util.HashMap;
4
+ import java.util.Map;
5
+
6
+ public class ArrayMap<K, V> extends HashMap<K, V> {
7
+ public ArrayMap() {
8
+ super();
9
+ }
10
+
11
+ public ArrayMap(int capacity) {
12
+ super(capacity);
13
+ }
14
+
15
+ public ArrayMap(Map<? extends K, ? extends V> map) {
16
+ super(map);
17
+ }
18
+ }
@@ -0,0 +1,71 @@
1
+ package com.papyrus.engine;
2
+
3
+ import android.content.Context;
4
+ import android.os.ParcelFileDescriptor;
5
+
6
+ import com.shockwave.pdfium.PdfDocument;
7
+ import com.shockwave.pdfium.PdfiumCore;
8
+
9
+ import java.io.File;
10
+ import java.io.IOException;
11
+ import java.util.Map;
12
+ import java.util.UUID;
13
+ import java.util.concurrent.ConcurrentHashMap;
14
+
15
+ final class PapyrusEngineStore {
16
+ static final class EngineState {
17
+ final PdfiumCore pdfium;
18
+ final Object pdfiumLock = new Object();
19
+ volatile boolean isSearching = false;
20
+ PdfDocument document;
21
+ ParcelFileDescriptor fileDescriptor;
22
+ String sourcePath;
23
+
24
+ EngineState(PdfiumCore pdfium) {
25
+ this.pdfium = pdfium;
26
+ }
27
+ }
28
+
29
+ private static final Map<String, EngineState> ENGINES = new ConcurrentHashMap<>();
30
+
31
+ static String createEngine(Context context) {
32
+ String engineId = UUID.randomUUID().toString();
33
+ ENGINES.put(engineId, new EngineState(new PdfiumCore(context)));
34
+ return engineId;
35
+ }
36
+
37
+ static EngineState getEngine(String engineId) {
38
+ return ENGINES.get(engineId);
39
+ }
40
+
41
+ static void destroyEngine(String engineId) {
42
+ EngineState state = ENGINES.remove(engineId);
43
+ if (state == null) return;
44
+ if (state.document != null) {
45
+ state.pdfium.closeDocument(state.document);
46
+ state.document = null;
47
+ }
48
+ if (state.fileDescriptor != null) {
49
+ try {
50
+ state.fileDescriptor.close();
51
+ } catch (IOException ignored) {
52
+ }
53
+ state.fileDescriptor = null;
54
+ }
55
+ }
56
+
57
+ static void setDocument(EngineState state, PdfDocument document, ParcelFileDescriptor fd, String sourcePath) {
58
+ if (state.document != null) {
59
+ state.pdfium.closeDocument(state.document);
60
+ }
61
+ if (state.fileDescriptor != null) {
62
+ try {
63
+ state.fileDescriptor.close();
64
+ } catch (IOException ignored) {
65
+ }
66
+ }
67
+ state.document = document;
68
+ state.fileDescriptor = fd;
69
+ state.sourcePath = sourcePath;
70
+ }
71
+ }