@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,15 @@
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextHit {
4
+ final int pageIndex;
5
+ final int matchIndex;
6
+ final String text;
7
+ final float[] rects;
8
+
9
+ PapyrusTextHit(int pageIndex, int matchIndex, String text, float[] rects) {
10
+ this.pageIndex = pageIndex;
11
+ this.matchIndex = matchIndex;
12
+ this.text = text;
13
+ this.rects = rects;
14
+ }
15
+ }
@@ -0,0 +1,20 @@
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextSearch {
4
+ static final boolean AVAILABLE;
5
+
6
+ static {
7
+ boolean available = false;
8
+ try {
9
+ System.loadLibrary("papyrus_text");
10
+ available = true;
11
+ } catch (Throwable ignored) {
12
+ available = false;
13
+ }
14
+ AVAILABLE = available;
15
+ }
16
+
17
+ static native PapyrusTextHit[] nativeSearch(long docPtr, int pageCount, String query);
18
+
19
+ static native PapyrusTextHit[] nativeSearchFile(String filePath, String query);
20
+ }
@@ -0,0 +1,20 @@
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextSelect {
4
+ static final boolean AVAILABLE;
5
+
6
+ static {
7
+ boolean available = false;
8
+ try {
9
+ System.loadLibrary("papyrus_text");
10
+ available = true;
11
+ } catch (Throwable ignored) {
12
+ available = false;
13
+ }
14
+ AVAILABLE = available;
15
+ }
16
+
17
+ static native PapyrusTextSelection nativeSelectText(long docPtr, int pageIndex, float x, float y, float width, float height);
18
+
19
+ static native PapyrusTextSelection nativeSelectTextFile(String filePath, int pageIndex, float x, float y, float width, float height);
20
+ }
@@ -0,0 +1,11 @@
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextSelection {
4
+ final String text;
5
+ final float[] rects;
6
+
7
+ PapyrusTextSelection(String text, float[] rects) {
8
+ this.text = text != null ? text : "";
9
+ this.rects = rects;
10
+ }
11
+ }
@@ -0,0 +1,51 @@
1
+ import * as react_native from 'react-native';
2
+ import { ViewProps } from 'react-native';
3
+ import { BaseDocumentEngine } from '@papyrus-sdk/core';
4
+ import { DocumentSource, TextItem, TextSelection, OutlineItem, SearchResult } from '@papyrus-sdk/types';
5
+
6
+ type PapyrusPageViewProps = ViewProps & {
7
+ engineId?: string;
8
+ };
9
+ declare const PapyrusPageView: react_native.HostComponent<PapyrusPageViewProps>;
10
+ declare class NativeDocumentEngine extends BaseDocumentEngine {
11
+ private nativeModule;
12
+ private engineId;
13
+ private pageCount;
14
+ private currentPage;
15
+ private zoom;
16
+ private rotation;
17
+ constructor();
18
+ load(source: DocumentSource): Promise<void>;
19
+ getPageCount(): number;
20
+ getCurrentPage(): number;
21
+ goToPage(page: number): void;
22
+ setZoom(zoom: number): void;
23
+ getZoom(): number;
24
+ rotate(direction: 'clockwise' | 'counterclockwise'): void;
25
+ getRotation(): number;
26
+ renderPage(pageIndex: number, target: any, scale: number): Promise<void>;
27
+ renderTextLayer(pageIndex: number, target: any, scale: number): Promise<void>;
28
+ getTextContent(pageIndex: number): Promise<TextItem[]>;
29
+ getPageDimensions(pageIndex: number): Promise<{
30
+ width: number;
31
+ height: number;
32
+ }>;
33
+ selectText(pageIndex: number, rect: {
34
+ x: number;
35
+ y: number;
36
+ width: number;
37
+ height: number;
38
+ }): Promise<TextSelection | null>;
39
+ getOutline(): Promise<OutlineItem[]>;
40
+ searchText(query: string): Promise<SearchResult[]>;
41
+ getPageIndex(dest: any): Promise<number | null>;
42
+ destroy(): void;
43
+ private assertNativeModule;
44
+ private normalizeSource;
45
+ private isUriSource;
46
+ private isDataSource;
47
+ private isFileLike;
48
+ private toNativeViewTag;
49
+ }
50
+
51
+ export { NativeDocumentEngine, PapyrusPageView, type PapyrusPageViewProps };
@@ -0,0 +1,51 @@
1
+ import * as react_native from 'react-native';
2
+ import { ViewProps } from 'react-native';
3
+ import { BaseDocumentEngine } from '@papyrus-sdk/core';
4
+ import { DocumentSource, TextItem, TextSelection, OutlineItem, SearchResult } from '@papyrus-sdk/types';
5
+
6
+ type PapyrusPageViewProps = ViewProps & {
7
+ engineId?: string;
8
+ };
9
+ declare const PapyrusPageView: react_native.HostComponent<PapyrusPageViewProps>;
10
+ declare class NativeDocumentEngine extends BaseDocumentEngine {
11
+ private nativeModule;
12
+ private engineId;
13
+ private pageCount;
14
+ private currentPage;
15
+ private zoom;
16
+ private rotation;
17
+ constructor();
18
+ load(source: DocumentSource): Promise<void>;
19
+ getPageCount(): number;
20
+ getCurrentPage(): number;
21
+ goToPage(page: number): void;
22
+ setZoom(zoom: number): void;
23
+ getZoom(): number;
24
+ rotate(direction: 'clockwise' | 'counterclockwise'): void;
25
+ getRotation(): number;
26
+ renderPage(pageIndex: number, target: any, scale: number): Promise<void>;
27
+ renderTextLayer(pageIndex: number, target: any, scale: number): Promise<void>;
28
+ getTextContent(pageIndex: number): Promise<TextItem[]>;
29
+ getPageDimensions(pageIndex: number): Promise<{
30
+ width: number;
31
+ height: number;
32
+ }>;
33
+ selectText(pageIndex: number, rect: {
34
+ x: number;
35
+ y: number;
36
+ width: number;
37
+ height: number;
38
+ }): Promise<TextSelection | null>;
39
+ getOutline(): Promise<OutlineItem[]>;
40
+ searchText(query: string): Promise<SearchResult[]>;
41
+ getPageIndex(dest: any): Promise<number | null>;
42
+ destroy(): void;
43
+ private assertNativeModule;
44
+ private normalizeSource;
45
+ private isUriSource;
46
+ private isDataSource;
47
+ private isFileLike;
48
+ private toNativeViewTag;
49
+ }
50
+
51
+ export { NativeDocumentEngine, PapyrusPageView, type PapyrusPageViewProps };
package/dist/index.js ADDED
@@ -0,0 +1,164 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // index.ts
20
+ var index_exports = {};
21
+ __export(index_exports, {
22
+ NativeDocumentEngine: () => NativeDocumentEngine,
23
+ PapyrusPageView: () => PapyrusPageView
24
+ });
25
+ module.exports = __toCommonJS(index_exports);
26
+ var import_react_native = require("react-native");
27
+ var import_core = require("@papyrus-sdk/core");
28
+ var MODULE_NAME = "PapyrusNativeEngine";
29
+ var PapyrusPageView = (0, import_react_native.requireNativeComponent)("PapyrusPageView");
30
+ var NativeDocumentEngine = class extends import_core.BaseDocumentEngine {
31
+ constructor() {
32
+ super();
33
+ this.nativeModule = null;
34
+ this.engineId = "default";
35
+ this.pageCount = 0;
36
+ this.currentPage = 1;
37
+ this.zoom = 1;
38
+ this.rotation = 0;
39
+ this.nativeModule = import_react_native.NativeModules[MODULE_NAME] ?? null;
40
+ this.engineId = this.nativeModule?.createEngine ? this.nativeModule.createEngine() : "default";
41
+ }
42
+ async load(source) {
43
+ const native = this.assertNativeModule();
44
+ const normalized = await this.normalizeSource(source);
45
+ const result = native.load ? await native.load(this.engineId, normalized) : void 0;
46
+ if (result && typeof result.pageCount === "number") {
47
+ this.pageCount = result.pageCount;
48
+ } else if (native.getPageCount) {
49
+ this.pageCount = native.getPageCount(this.engineId);
50
+ } else {
51
+ this.pageCount = 0;
52
+ }
53
+ this.currentPage = 1;
54
+ }
55
+ getPageCount() {
56
+ return this.pageCount;
57
+ }
58
+ getCurrentPage() {
59
+ return this.currentPage;
60
+ }
61
+ goToPage(page) {
62
+ if (page >= 1 && page <= this.pageCount) {
63
+ this.currentPage = page;
64
+ }
65
+ }
66
+ setZoom(zoom) {
67
+ this.zoom = Math.max(0.1, Math.min(5, zoom));
68
+ }
69
+ getZoom() {
70
+ return this.zoom;
71
+ }
72
+ rotate(direction) {
73
+ if (direction === "clockwise") {
74
+ this.rotation = (this.rotation + 90) % 360;
75
+ } else {
76
+ this.rotation = (this.rotation - 90) % 360;
77
+ if (this.rotation < 0) this.rotation += 360;
78
+ }
79
+ }
80
+ getRotation() {
81
+ return this.rotation;
82
+ }
83
+ async renderPage(pageIndex, target, scale) {
84
+ const native = this.assertNativeModule();
85
+ if (!native.renderPage) return;
86
+ const viewTag = this.toNativeViewTag(target);
87
+ if (viewTag === null) return;
88
+ native.renderPage(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);
89
+ }
90
+ async renderTextLayer(pageIndex, target, scale) {
91
+ const native = this.assertNativeModule();
92
+ if (!native.renderTextLayer) return;
93
+ const viewTag = this.toNativeViewTag(target);
94
+ if (viewTag === null) return;
95
+ native.renderTextLayer(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);
96
+ }
97
+ async getTextContent(pageIndex) {
98
+ const native = this.assertNativeModule();
99
+ if (!native.getTextContent) return [];
100
+ return native.getTextContent(this.engineId, pageIndex);
101
+ }
102
+ async getPageDimensions(pageIndex) {
103
+ const native = this.assertNativeModule();
104
+ if (!native.getPageDimensions) return { width: 0, height: 0 };
105
+ return native.getPageDimensions(this.engineId, pageIndex);
106
+ }
107
+ async selectText(pageIndex, rect) {
108
+ const native = this.assertNativeModule();
109
+ if (!native.selectText) return null;
110
+ return native.selectText(this.engineId, pageIndex, rect.x, rect.y, rect.width, rect.height);
111
+ }
112
+ async getOutline() {
113
+ const native = this.assertNativeModule();
114
+ if (!native.getOutline) return [];
115
+ return native.getOutline(this.engineId);
116
+ }
117
+ async searchText(query) {
118
+ const native = this.assertNativeModule();
119
+ if (!native.searchText) return [];
120
+ return native.searchText(this.engineId, query);
121
+ }
122
+ async getPageIndex(dest) {
123
+ const native = this.assertNativeModule();
124
+ if (!native.getPageIndex) return null;
125
+ return native.getPageIndex(this.engineId, dest);
126
+ }
127
+ destroy() {
128
+ this.nativeModule?.destroyEngine?.(this.engineId);
129
+ }
130
+ assertNativeModule() {
131
+ if (!this.nativeModule) {
132
+ throw new Error(`[Papyrus] Native module "${MODULE_NAME}" not found. Did you run pod install / gradle sync?`);
133
+ }
134
+ return this.nativeModule;
135
+ }
136
+ async normalizeSource(source) {
137
+ if (typeof source === "string") return { uri: source };
138
+ if (this.isUriSource(source)) return { uri: source.uri };
139
+ if (this.isDataSource(source)) return { data: source.data };
140
+ if (this.isFileLike(source)) return { data: await source.arrayBuffer() };
141
+ if (source instanceof ArrayBuffer || source instanceof Uint8Array) return { data: source };
142
+ return { data: source };
143
+ }
144
+ isUriSource(source) {
145
+ return typeof source === "object" && source !== null && "uri" in source;
146
+ }
147
+ isDataSource(source) {
148
+ return typeof source === "object" && source !== null && "data" in source;
149
+ }
150
+ isFileLike(source) {
151
+ return typeof source === "object" && source !== null && typeof source.arrayBuffer === "function";
152
+ }
153
+ toNativeViewTag(target) {
154
+ if (typeof target === "number") return target;
155
+ if (target?.nativeTag && typeof target.nativeTag === "number") return target.nativeTag;
156
+ return null;
157
+ }
158
+ };
159
+ // Annotate the CommonJS export names for ESM import in node:
160
+ 0 && (module.exports = {
161
+ NativeDocumentEngine,
162
+ PapyrusPageView
163
+ });
164
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../index.ts"],"sourcesContent":["import { NativeModules, requireNativeComponent, type ViewProps } from 'react-native';\r\nimport { BaseDocumentEngine } from '@papyrus-sdk/core';\r\nimport { DocumentSource, TextItem, OutlineItem, FileLike, SearchResult, TextSelection } from '@papyrus-sdk/types';\r\n\r\nconst MODULE_NAME = 'PapyrusNativeEngine';\r\n\r\ntype NativeDocumentSource = {\r\n uri?: string;\r\n data?: ArrayBuffer | Uint8Array;\r\n};\r\n\r\ntype NativeEngineModule = {\r\n createEngine?: () => string;\r\n destroyEngine?: (engineId: string) => void;\r\n load?: (engineId: string, source: NativeDocumentSource) => Promise<{ pageCount?: number } | void>;\r\n getPageCount?: (engineId: string) => number;\r\n renderPage?: (engineId: string, pageIndex: number, target: number, scale: number, zoom: number, rotation: number) => void;\r\n renderTextLayer?: (engineId: string, pageIndex: number, target: number, scale: number, zoom: number, rotation: number) => void;\r\n getTextContent?: (engineId: string, pageIndex: number) => Promise<TextItem[]>;\r\n getPageDimensions?: (engineId: string, pageIndex: number) => Promise<{ width: number; height: number }>;\r\n searchText?: (engineId: string, query: string) => Promise<SearchResult[]>;\r\n selectText?: (engineId: string, pageIndex: number, x: number, y: number, width: number, height: number) => Promise<TextSelection | null>;\r\n getOutline?: (engineId: string) => Promise<OutlineItem[]>;\r\n getPageIndex?: (engineId: string, dest: any) => Promise<number | null>;\r\n};\r\n\r\nexport type PapyrusPageViewProps = ViewProps & {\r\n engineId?: string;\r\n};\r\n\r\nexport const PapyrusPageView = requireNativeComponent<PapyrusPageViewProps>('PapyrusPageView');\r\n\r\nexport class NativeDocumentEngine extends BaseDocumentEngine {\r\n private nativeModule: NativeEngineModule | null = null;\r\n private engineId: string = 'default';\r\n private pageCount: number = 0;\r\n private currentPage: number = 1;\r\n private zoom: number = 1.0;\r\n private rotation: number = 0;\r\n\r\n constructor() {\r\n super();\r\n this.nativeModule = (NativeModules as any)[MODULE_NAME] ?? null;\r\n this.engineId = this.nativeModule?.createEngine ? this.nativeModule.createEngine() : 'default';\r\n }\r\n\r\n async load(source: DocumentSource): Promise<void> {\r\n const native = this.assertNativeModule();\r\n const normalized = await this.normalizeSource(source);\r\n const result = native.load ? await native.load(this.engineId, normalized) : undefined;\r\n\r\n if (result && typeof result.pageCount === 'number') {\r\n this.pageCount = result.pageCount;\r\n } else if (native.getPageCount) {\r\n this.pageCount = native.getPageCount(this.engineId);\r\n } else {\r\n this.pageCount = 0;\r\n }\r\n\r\n this.currentPage = 1;\r\n }\r\n\r\n getPageCount(): number {\r\n return this.pageCount;\r\n }\r\n\r\n getCurrentPage(): number {\r\n return this.currentPage;\r\n }\r\n\r\n goToPage(page: number): void {\r\n if (page >= 1 && page <= this.pageCount) {\r\n this.currentPage = page;\r\n }\r\n }\r\n\r\n setZoom(zoom: number): void {\r\n this.zoom = Math.max(0.1, Math.min(5.0, zoom));\r\n }\r\n\r\n getZoom(): number {\r\n return this.zoom;\r\n }\r\n\r\n rotate(direction: 'clockwise' | 'counterclockwise'): void {\r\n if (direction === 'clockwise') {\r\n this.rotation = (this.rotation + 90) % 360;\r\n } else {\r\n this.rotation = (this.rotation - 90) % 360;\r\n if (this.rotation < 0) this.rotation += 360;\r\n }\r\n }\r\n\r\n getRotation(): number {\r\n return this.rotation;\r\n }\r\n\r\n async renderPage(pageIndex: number, target: any, scale: number): Promise<void> {\r\n const native = this.assertNativeModule();\r\n if (!native.renderPage) return;\r\n const viewTag = this.toNativeViewTag(target);\r\n if (viewTag === null) return;\r\n native.renderPage(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);\r\n }\r\n\r\n async renderTextLayer(pageIndex: number, target: any, scale: number): Promise<void> {\r\n const native = this.assertNativeModule();\r\n if (!native.renderTextLayer) return;\r\n const viewTag = this.toNativeViewTag(target);\r\n if (viewTag === null) return;\r\n native.renderTextLayer(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);\r\n }\r\n\r\n async getTextContent(pageIndex: number): Promise<TextItem[]> {\r\n const native = this.assertNativeModule();\r\n if (!native.getTextContent) return [];\r\n return native.getTextContent(this.engineId, pageIndex);\r\n }\r\n\r\n async getPageDimensions(pageIndex: number): Promise<{ width: number; height: number }> {\r\n const native = this.assertNativeModule();\r\n if (!native.getPageDimensions) return { width: 0, height: 0 };\r\n return native.getPageDimensions(this.engineId, pageIndex);\r\n }\r\n\r\n async selectText(\r\n pageIndex: number,\r\n rect: { x: number; y: number; width: number; height: number }\r\n ): Promise<TextSelection | null> {\r\n const native = this.assertNativeModule();\r\n if (!native.selectText) return null;\r\n return native.selectText(this.engineId, pageIndex, rect.x, rect.y, rect.width, rect.height);\r\n }\r\n\r\n async getOutline(): Promise<OutlineItem[]> {\r\n const native = this.assertNativeModule();\r\n if (!native.getOutline) return [];\r\n return native.getOutline(this.engineId);\r\n }\r\n\r\n async searchText(query: string): Promise<SearchResult[]> {\r\n const native = this.assertNativeModule();\r\n if (!native.searchText) return [];\r\n return native.searchText(this.engineId, query);\r\n }\r\n\r\n async getPageIndex(dest: any): Promise<number | null> {\r\n const native = this.assertNativeModule();\r\n if (!native.getPageIndex) return null;\r\n return native.getPageIndex(this.engineId, dest);\r\n }\r\n\r\n destroy(): void {\r\n this.nativeModule?.destroyEngine?.(this.engineId);\r\n }\r\n\r\n private assertNativeModule(): NativeEngineModule {\r\n if (!this.nativeModule) {\r\n throw new Error(`[Papyrus] Native module \"${MODULE_NAME}\" not found. Did you run pod install / gradle sync?`);\r\n }\r\n return this.nativeModule;\r\n }\r\n\r\n private async normalizeSource(source: DocumentSource): Promise<NativeDocumentSource> {\r\n if (typeof source === 'string') return { uri: source };\r\n if (this.isUriSource(source)) return { uri: source.uri };\r\n if (this.isDataSource(source)) return { data: source.data };\r\n if (this.isFileLike(source)) return { data: await source.arrayBuffer() };\r\n if (source instanceof ArrayBuffer || source instanceof Uint8Array) return { data: source };\r\n return { data: source as ArrayBuffer };\r\n }\r\n\r\n private isUriSource(source: DocumentSource): source is { uri: string } {\r\n return typeof source === 'object' && source !== null && 'uri' in source;\r\n }\r\n\r\n private isDataSource(source: DocumentSource): source is { data: ArrayBuffer | Uint8Array } {\r\n return typeof source === 'object' && source !== null && 'data' in source;\r\n }\r\n\r\n private isFileLike(source: DocumentSource): source is FileLike {\r\n return typeof source === 'object' && source !== null && typeof (source as FileLike).arrayBuffer === 'function';\r\n }\r\n\r\n private toNativeViewTag(target: any): number | null {\r\n if (typeof target === 'number') return target;\r\n if (target?.nativeTag && typeof target.nativeTag === 'number') return target.nativeTag;\r\n return null;\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
package/dist/index.mjs ADDED
@@ -0,0 +1,139 @@
1
+ // index.ts
2
+ import { NativeModules, requireNativeComponent } from "react-native";
3
+ import { BaseDocumentEngine } from "@papyrus-sdk/core";
4
+ var MODULE_NAME = "PapyrusNativeEngine";
5
+ var PapyrusPageView = requireNativeComponent("PapyrusPageView");
6
+ var NativeDocumentEngine = class extends BaseDocumentEngine {
7
+ constructor() {
8
+ super();
9
+ this.nativeModule = null;
10
+ this.engineId = "default";
11
+ this.pageCount = 0;
12
+ this.currentPage = 1;
13
+ this.zoom = 1;
14
+ this.rotation = 0;
15
+ this.nativeModule = NativeModules[MODULE_NAME] ?? null;
16
+ this.engineId = this.nativeModule?.createEngine ? this.nativeModule.createEngine() : "default";
17
+ }
18
+ async load(source) {
19
+ const native = this.assertNativeModule();
20
+ const normalized = await this.normalizeSource(source);
21
+ const result = native.load ? await native.load(this.engineId, normalized) : void 0;
22
+ if (result && typeof result.pageCount === "number") {
23
+ this.pageCount = result.pageCount;
24
+ } else if (native.getPageCount) {
25
+ this.pageCount = native.getPageCount(this.engineId);
26
+ } else {
27
+ this.pageCount = 0;
28
+ }
29
+ this.currentPage = 1;
30
+ }
31
+ getPageCount() {
32
+ return this.pageCount;
33
+ }
34
+ getCurrentPage() {
35
+ return this.currentPage;
36
+ }
37
+ goToPage(page) {
38
+ if (page >= 1 && page <= this.pageCount) {
39
+ this.currentPage = page;
40
+ }
41
+ }
42
+ setZoom(zoom) {
43
+ this.zoom = Math.max(0.1, Math.min(5, zoom));
44
+ }
45
+ getZoom() {
46
+ return this.zoom;
47
+ }
48
+ rotate(direction) {
49
+ if (direction === "clockwise") {
50
+ this.rotation = (this.rotation + 90) % 360;
51
+ } else {
52
+ this.rotation = (this.rotation - 90) % 360;
53
+ if (this.rotation < 0) this.rotation += 360;
54
+ }
55
+ }
56
+ getRotation() {
57
+ return this.rotation;
58
+ }
59
+ async renderPage(pageIndex, target, scale) {
60
+ const native = this.assertNativeModule();
61
+ if (!native.renderPage) return;
62
+ const viewTag = this.toNativeViewTag(target);
63
+ if (viewTag === null) return;
64
+ native.renderPage(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);
65
+ }
66
+ async renderTextLayer(pageIndex, target, scale) {
67
+ const native = this.assertNativeModule();
68
+ if (!native.renderTextLayer) return;
69
+ const viewTag = this.toNativeViewTag(target);
70
+ if (viewTag === null) return;
71
+ native.renderTextLayer(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);
72
+ }
73
+ async getTextContent(pageIndex) {
74
+ const native = this.assertNativeModule();
75
+ if (!native.getTextContent) return [];
76
+ return native.getTextContent(this.engineId, pageIndex);
77
+ }
78
+ async getPageDimensions(pageIndex) {
79
+ const native = this.assertNativeModule();
80
+ if (!native.getPageDimensions) return { width: 0, height: 0 };
81
+ return native.getPageDimensions(this.engineId, pageIndex);
82
+ }
83
+ async selectText(pageIndex, rect) {
84
+ const native = this.assertNativeModule();
85
+ if (!native.selectText) return null;
86
+ return native.selectText(this.engineId, pageIndex, rect.x, rect.y, rect.width, rect.height);
87
+ }
88
+ async getOutline() {
89
+ const native = this.assertNativeModule();
90
+ if (!native.getOutline) return [];
91
+ return native.getOutline(this.engineId);
92
+ }
93
+ async searchText(query) {
94
+ const native = this.assertNativeModule();
95
+ if (!native.searchText) return [];
96
+ return native.searchText(this.engineId, query);
97
+ }
98
+ async getPageIndex(dest) {
99
+ const native = this.assertNativeModule();
100
+ if (!native.getPageIndex) return null;
101
+ return native.getPageIndex(this.engineId, dest);
102
+ }
103
+ destroy() {
104
+ this.nativeModule?.destroyEngine?.(this.engineId);
105
+ }
106
+ assertNativeModule() {
107
+ if (!this.nativeModule) {
108
+ throw new Error(`[Papyrus] Native module "${MODULE_NAME}" not found. Did you run pod install / gradle sync?`);
109
+ }
110
+ return this.nativeModule;
111
+ }
112
+ async normalizeSource(source) {
113
+ if (typeof source === "string") return { uri: source };
114
+ if (this.isUriSource(source)) return { uri: source.uri };
115
+ if (this.isDataSource(source)) return { data: source.data };
116
+ if (this.isFileLike(source)) return { data: await source.arrayBuffer() };
117
+ if (source instanceof ArrayBuffer || source instanceof Uint8Array) return { data: source };
118
+ return { data: source };
119
+ }
120
+ isUriSource(source) {
121
+ return typeof source === "object" && source !== null && "uri" in source;
122
+ }
123
+ isDataSource(source) {
124
+ return typeof source === "object" && source !== null && "data" in source;
125
+ }
126
+ isFileLike(source) {
127
+ return typeof source === "object" && source !== null && typeof source.arrayBuffer === "function";
128
+ }
129
+ toNativeViewTag(target) {
130
+ if (typeof target === "number") return target;
131
+ if (target?.nativeTag && typeof target.nativeTag === "number") return target.nativeTag;
132
+ return null;
133
+ }
134
+ };
135
+ export {
136
+ NativeDocumentEngine,
137
+ PapyrusPageView
138
+ };
139
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../index.ts"],"sourcesContent":["import { NativeModules, requireNativeComponent, type ViewProps } from 'react-native';\r\nimport { BaseDocumentEngine } from '@papyrus-sdk/core';\r\nimport { DocumentSource, TextItem, OutlineItem, FileLike, SearchResult, TextSelection } from '@papyrus-sdk/types';\r\n\r\nconst MODULE_NAME = 'PapyrusNativeEngine';\r\n\r\ntype NativeDocumentSource = {\r\n uri?: string;\r\n data?: ArrayBuffer | Uint8Array;\r\n};\r\n\r\ntype NativeEngineModule = {\r\n createEngine?: () => string;\r\n destroyEngine?: (engineId: string) => void;\r\n load?: (engineId: string, source: NativeDocumentSource) => Promise<{ pageCount?: number } | void>;\r\n getPageCount?: (engineId: string) => number;\r\n renderPage?: (engineId: string, pageIndex: number, target: number, scale: number, zoom: number, rotation: number) => void;\r\n renderTextLayer?: (engineId: string, pageIndex: number, target: number, scale: number, zoom: number, rotation: number) => void;\r\n getTextContent?: (engineId: string, pageIndex: number) => Promise<TextItem[]>;\r\n getPageDimensions?: (engineId: string, pageIndex: number) => Promise<{ width: number; height: number }>;\r\n searchText?: (engineId: string, query: string) => Promise<SearchResult[]>;\r\n selectText?: (engineId: string, pageIndex: number, x: number, y: number, width: number, height: number) => Promise<TextSelection | null>;\r\n getOutline?: (engineId: string) => Promise<OutlineItem[]>;\r\n getPageIndex?: (engineId: string, dest: any) => Promise<number | null>;\r\n};\r\n\r\nexport type PapyrusPageViewProps = ViewProps & {\r\n engineId?: string;\r\n};\r\n\r\nexport const PapyrusPageView = requireNativeComponent<PapyrusPageViewProps>('PapyrusPageView');\r\n\r\nexport class NativeDocumentEngine extends BaseDocumentEngine {\r\n private nativeModule: NativeEngineModule | null = null;\r\n private engineId: string = 'default';\r\n private pageCount: number = 0;\r\n private currentPage: number = 1;\r\n private zoom: number = 1.0;\r\n private rotation: number = 0;\r\n\r\n constructor() {\r\n super();\r\n this.nativeModule = (NativeModules as any)[MODULE_NAME] ?? null;\r\n this.engineId = this.nativeModule?.createEngine ? this.nativeModule.createEngine() : 'default';\r\n }\r\n\r\n async load(source: DocumentSource): Promise<void> {\r\n const native = this.assertNativeModule();\r\n const normalized = await this.normalizeSource(source);\r\n const result = native.load ? await native.load(this.engineId, normalized) : undefined;\r\n\r\n if (result && typeof result.pageCount === 'number') {\r\n this.pageCount = result.pageCount;\r\n } else if (native.getPageCount) {\r\n this.pageCount = native.getPageCount(this.engineId);\r\n } else {\r\n this.pageCount = 0;\r\n }\r\n\r\n this.currentPage = 1;\r\n }\r\n\r\n getPageCount(): number {\r\n return this.pageCount;\r\n }\r\n\r\n getCurrentPage(): number {\r\n return this.currentPage;\r\n }\r\n\r\n goToPage(page: number): void {\r\n if (page >= 1 && page <= this.pageCount) {\r\n this.currentPage = page;\r\n }\r\n }\r\n\r\n setZoom(zoom: number): void {\r\n this.zoom = Math.max(0.1, Math.min(5.0, zoom));\r\n }\r\n\r\n getZoom(): number {\r\n return this.zoom;\r\n }\r\n\r\n rotate(direction: 'clockwise' | 'counterclockwise'): void {\r\n if (direction === 'clockwise') {\r\n this.rotation = (this.rotation + 90) % 360;\r\n } else {\r\n this.rotation = (this.rotation - 90) % 360;\r\n if (this.rotation < 0) this.rotation += 360;\r\n }\r\n }\r\n\r\n getRotation(): number {\r\n return this.rotation;\r\n }\r\n\r\n async renderPage(pageIndex: number, target: any, scale: number): Promise<void> {\r\n const native = this.assertNativeModule();\r\n if (!native.renderPage) return;\r\n const viewTag = this.toNativeViewTag(target);\r\n if (viewTag === null) return;\r\n native.renderPage(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);\r\n }\r\n\r\n async renderTextLayer(pageIndex: number, target: any, scale: number): Promise<void> {\r\n const native = this.assertNativeModule();\r\n if (!native.renderTextLayer) return;\r\n const viewTag = this.toNativeViewTag(target);\r\n if (viewTag === null) return;\r\n native.renderTextLayer(this.engineId, pageIndex, viewTag, scale, this.zoom, this.rotation);\r\n }\r\n\r\n async getTextContent(pageIndex: number): Promise<TextItem[]> {\r\n const native = this.assertNativeModule();\r\n if (!native.getTextContent) return [];\r\n return native.getTextContent(this.engineId, pageIndex);\r\n }\r\n\r\n async getPageDimensions(pageIndex: number): Promise<{ width: number; height: number }> {\r\n const native = this.assertNativeModule();\r\n if (!native.getPageDimensions) return { width: 0, height: 0 };\r\n return native.getPageDimensions(this.engineId, pageIndex);\r\n }\r\n\r\n async selectText(\r\n pageIndex: number,\r\n rect: { x: number; y: number; width: number; height: number }\r\n ): Promise<TextSelection | null> {\r\n const native = this.assertNativeModule();\r\n if (!native.selectText) return null;\r\n return native.selectText(this.engineId, pageIndex, rect.x, rect.y, rect.width, rect.height);\r\n }\r\n\r\n async getOutline(): Promise<OutlineItem[]> {\r\n const native = this.assertNativeModule();\r\n if (!native.getOutline) return [];\r\n return native.getOutline(this.engineId);\r\n }\r\n\r\n async searchText(query: string): Promise<SearchResult[]> {\r\n const native = this.assertNativeModule();\r\n if (!native.searchText) return [];\r\n return native.searchText(this.engineId, query);\r\n }\r\n\r\n async getPageIndex(dest: any): Promise<number | null> {\r\n const native = this.assertNativeModule();\r\n if (!native.getPageIndex) return null;\r\n return native.getPageIndex(this.engineId, dest);\r\n }\r\n\r\n destroy(): void {\r\n this.nativeModule?.destroyEngine?.(this.engineId);\r\n }\r\n\r\n private assertNativeModule(): NativeEngineModule {\r\n if (!this.nativeModule) {\r\n throw new Error(`[Papyrus] Native module \"${MODULE_NAME}\" not found. Did you run pod install / gradle sync?`);\r\n }\r\n return this.nativeModule;\r\n }\r\n\r\n private async normalizeSource(source: DocumentSource): Promise<NativeDocumentSource> {\r\n if (typeof source === 'string') return { uri: source };\r\n if (this.isUriSource(source)) return { uri: source.uri };\r\n if (this.isDataSource(source)) return { data: source.data };\r\n if (this.isFileLike(source)) return { data: await source.arrayBuffer() };\r\n if (source instanceof ArrayBuffer || source instanceof Uint8Array) return { data: source };\r\n return { data: source as ArrayBuffer };\r\n }\r\n\r\n private isUriSource(source: DocumentSource): source is { uri: string } {\r\n return typeof source === 'object' && source !== null && 'uri' in source;\r\n }\r\n\r\n private isDataSource(source: DocumentSource): source is { data: ArrayBuffer | Uint8Array } {\r\n return typeof source === 'object' && source !== null && 'data' in source;\r\n }\r\n\r\n private isFileLike(source: DocumentSource): source is FileLike {\r\n return typeof source === 'object' && source !== null && typeof (source as FileLike).arrayBuffer === 'function';\r\n }\r\n\r\n private toNativeViewTag(target: any): number | null {\r\n if (typeof target === 'number') return target;\r\n if (target?.nativeTag && typeof target.nativeTag === 'number') return target.nativeTag;\r\n return null;\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
@@ -0,0 +1,16 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import <PDFKit/PDFKit.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface PapyrusEngineStore : NSObject
7
+
8
+ + (instancetype)shared;
9
+ - (NSString *)createEngine;
10
+ - (void)destroyEngine:(NSString *)engineId;
11
+ - (void)setDocument:(PDFDocument *)document forEngine:(NSString *)engineId;
12
+ - (PDFDocument *_Nullable)documentForEngine:(NSString *)engineId;
13
+
14
+ @end
15
+
16
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,48 @@
1
+ #import "PapyrusEngineStore.h"
2
+
3
+ @interface PapyrusEngineStore ()
4
+ @property (nonatomic, strong) NSMutableDictionary<NSString *, PDFDocument *> *documents;
5
+ @end
6
+
7
+ @implementation PapyrusEngineStore
8
+
9
+ + (instancetype)shared {
10
+ static PapyrusEngineStore *store = nil;
11
+ static dispatch_once_t onceToken;
12
+ dispatch_once(&onceToken, ^{
13
+ store = [[PapyrusEngineStore alloc] init];
14
+ });
15
+ return store;
16
+ }
17
+
18
+ - (instancetype)init {
19
+ self = [super init];
20
+ if (self) {
21
+ _documents = [NSMutableDictionary dictionary];
22
+ }
23
+ return self;
24
+ }
25
+
26
+ - (NSString *)createEngine {
27
+ NSString *engineId = [[NSUUID UUID] UUIDString];
28
+ return engineId;
29
+ }
30
+
31
+ - (void)destroyEngine:(NSString *)engineId {
32
+ [self.documents removeObjectForKey:engineId];
33
+ }
34
+
35
+ - (void)setDocument:(PDFDocument *)document forEngine:(NSString *)engineId {
36
+ if (!engineId) return;
37
+ if (document) {
38
+ self.documents[engineId] = document;
39
+ } else {
40
+ [self.documents removeObjectForKey:engineId];
41
+ }
42
+ }
43
+
44
+ - (PDFDocument *_Nullable)documentForEngine:(NSString *)engineId {
45
+ return self.documents[engineId];
46
+ }
47
+
48
+ @end