react-native-readium 4.0.2 → 5.0.0-rc.1

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 (535) hide show
  1. package/README.md +227 -31
  2. package/android/.cxx/Debug/1o6u5d69/arm64-v8a/metadata_generation_command.txt +20 -0
  3. package/android/.cxx/Debug/1o6u5d69/arm64-v8a/prefab_config.json +9 -0
  4. package/android/.cxx/Debug/1o6u5d69/hash_key.txt +27 -0
  5. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  6. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  7. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  8. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/cache-v2-d1c3348b32c30ac6a032.json +1383 -0
  9. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-556430fba24741f19697.json +207 -0
  10. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-1ced52b45c1052bc37ec.json +60 -0
  11. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  12. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/index-2026-02-11T21-48-38-0164.json +92 -0
  13. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.cmake/api/v1/reply/target-NitroReadium-Debug-1a98e1c85aa4f0067ac7.json +310 -0
  14. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.ninja_deps +0 -0
  15. package/android/.cxx/Debug/705z3vy2/arm64-v8a/.ninja_log +16 -0
  16. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeCache.txt +413 -0
  17. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  18. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  19. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  20. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  21. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  22. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  23. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  24. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  25. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  26. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/CMakeOutput.log +262 -0
  27. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
  28. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
  29. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
  30. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
  31. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
  32. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
  33. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/TargetDirectories.txt +3 -0
  34. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  35. package/android/.cxx/Debug/705z3vy2/arm64-v8a/CMakeFiles/rules.ninja +64 -0
  36. package/android/.cxx/Debug/705z3vy2/arm64-v8a/additional_project_files.txt +0 -0
  37. package/android/.cxx/Debug/705z3vy2/arm64-v8a/android_gradle_build.json +48 -0
  38. package/android/.cxx/Debug/705z3vy2/arm64-v8a/android_gradle_build_mini.json +37 -0
  39. package/android/.cxx/Debug/705z3vy2/arm64-v8a/build.ninja +193 -0
  40. package/android/.cxx/Debug/705z3vy2/arm64-v8a/build_file_index.txt +6 -0
  41. package/android/.cxx/Debug/705z3vy2/arm64-v8a/cmake_install.cmake +54 -0
  42. package/android/.cxx/Debug/705z3vy2/arm64-v8a/compile_commands.json +32 -0
  43. package/android/.cxx/Debug/705z3vy2/arm64-v8a/compile_commands.json.bin +0 -0
  44. package/android/.cxx/Debug/705z3vy2/arm64-v8a/configure_fingerprint.bin +41 -0
  45. package/android/.cxx/Debug/705z3vy2/arm64-v8a/metadata_generation_command.txt +21 -0
  46. package/android/.cxx/Debug/705z3vy2/arm64-v8a/prefab_config.json +9 -0
  47. package/android/.cxx/Debug/705z3vy2/arm64-v8a/symbol_folder_index.txt +1 -0
  48. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  49. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  50. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  51. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/cache-v2-029ee0d18a16b9900504.json +1383 -0
  52. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-0ec9478532515d6deeb0.json +207 -0
  53. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-00f0c7708253709bbb50.json +60 -0
  54. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  55. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/index-2026-02-11T21-48-44-0722.json +92 -0
  56. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.cmake/api/v1/reply/target-NitroReadium-Debug-a00931bf570afa83f011.json +310 -0
  57. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.ninja_deps +0 -0
  58. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/.ninja_log +16 -0
  59. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeCache.txt +413 -0
  60. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  61. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  62. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  63. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  64. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  65. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  66. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  67. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  68. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  69. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/CMakeOutput.log +266 -0
  70. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
  71. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
  72. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
  73. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
  74. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
  75. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
  76. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/TargetDirectories.txt +3 -0
  77. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  78. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/CMakeFiles/rules.ninja +64 -0
  79. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/additional_project_files.txt +0 -0
  80. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/android_gradle_build.json +48 -0
  81. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/android_gradle_build_mini.json +37 -0
  82. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/build.ninja +193 -0
  83. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/build_file_index.txt +6 -0
  84. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/cmake_install.cmake +54 -0
  85. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/compile_commands.json +32 -0
  86. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/compile_commands.json.bin +0 -0
  87. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/configure_fingerprint.bin +41 -0
  88. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/metadata_generation_command.txt +21 -0
  89. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/prefab_config.json +9 -0
  90. package/android/.cxx/Debug/705z3vy2/armeabi-v7a/symbol_folder_index.txt +1 -0
  91. package/android/.cxx/Debug/705z3vy2/hash_key.txt +28 -0
  92. package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
  93. package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
  94. package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  95. package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  96. package/android/.cxx/Debug/705z3vy2/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
  97. package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
  98. package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
  99. package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfig.cmake +9 -0
  100. package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  101. package/android/.cxx/Debug/705z3vy2/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
  102. package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
  103. package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
  104. package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  105. package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  106. package/android/.cxx/Debug/705z3vy2/prefab/x86/prefab/lib/i686-linux-android/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
  107. package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/ReactAndroid/ReactAndroidConfig.cmake +27 -0
  108. package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/ReactAndroid/ReactAndroidConfigVersion.cmake +9 -0
  109. package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  110. package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  111. package/android/.cxx/Debug/705z3vy2/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/react-native-nitro-modules/react-native-nitro-modulesConfig.cmake +9 -0
  112. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  113. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  114. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  115. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/cache-v2-a4f471a31e824ae32ba5.json +1383 -0
  116. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/cmakeFiles-v1-f73d504308ce3a4e5765.json +207 -0
  117. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/codemodel-v2-00f85d43d057b2ba79db.json +60 -0
  118. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  119. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/index-2026-02-11T21-48-50-0628.json +92 -0
  120. package/android/.cxx/Debug/705z3vy2/x86/.cmake/api/v1/reply/target-NitroReadium-Debug-98c8a7d46de91d0d2e7e.json +310 -0
  121. package/android/.cxx/Debug/705z3vy2/x86/.ninja_deps +0 -0
  122. package/android/.cxx/Debug/705z3vy2/x86/.ninja_log +16 -0
  123. package/android/.cxx/Debug/705z3vy2/x86/CMakeCache.txt +413 -0
  124. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  125. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  126. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  127. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  128. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  129. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  130. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  131. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  132. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  133. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/CMakeOutput.log +256 -0
  134. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
  135. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
  136. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
  137. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
  138. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
  139. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
  140. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/TargetDirectories.txt +3 -0
  141. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/cmake.check_cache +1 -0
  142. package/android/.cxx/Debug/705z3vy2/x86/CMakeFiles/rules.ninja +64 -0
  143. package/android/.cxx/Debug/705z3vy2/x86/additional_project_files.txt +0 -0
  144. package/android/.cxx/Debug/705z3vy2/x86/android_gradle_build.json +48 -0
  145. package/android/.cxx/Debug/705z3vy2/x86/android_gradle_build_mini.json +37 -0
  146. package/android/.cxx/Debug/705z3vy2/x86/build.ninja +193 -0
  147. package/android/.cxx/Debug/705z3vy2/x86/build_file_index.txt +6 -0
  148. package/android/.cxx/Debug/705z3vy2/x86/cmake_install.cmake +54 -0
  149. package/android/.cxx/Debug/705z3vy2/x86/compile_commands.json +32 -0
  150. package/android/.cxx/Debug/705z3vy2/x86/compile_commands.json.bin +0 -0
  151. package/android/.cxx/Debug/705z3vy2/x86/configure_fingerprint.bin +41 -0
  152. package/android/.cxx/Debug/705z3vy2/x86/metadata_generation_command.txt +21 -0
  153. package/android/.cxx/Debug/705z3vy2/x86/prefab_config.json +9 -0
  154. package/android/.cxx/Debug/705z3vy2/x86/symbol_folder_index.txt +1 -0
  155. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  156. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  157. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  158. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/cache-v2-691c4c7ce8ee23d9eb36.json +1383 -0
  159. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-5d2071095d60cec89732.json +207 -0
  160. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/codemodel-v2-141850c8d8ba3993f9ba.json +60 -0
  161. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  162. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/index-2026-02-11T21-48-56-0488.json +92 -0
  163. package/android/.cxx/Debug/705z3vy2/x86_64/.cmake/api/v1/reply/target-NitroReadium-Debug-fc544bc0688ecafa85a0.json +310 -0
  164. package/android/.cxx/Debug/705z3vy2/x86_64/.ninja_deps +0 -0
  165. package/android/.cxx/Debug/705z3vy2/x86_64/.ninja_log +16 -0
  166. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeCache.txt +413 -0
  167. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  168. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  169. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  170. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  171. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  172. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  173. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  174. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  175. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  176. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/CMakeOutput.log +256 -0
  177. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/NitroReadiumOnLoad.cpp.o +0 -0
  178. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp.o +0 -0
  179. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp.o +0 -0
  180. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp.o +0 -0
  181. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/Users/jspizziri/Documents/Projects/readium/react-native-readium/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp.o +0 -0
  182. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/NitroReadium.dir/src/main/cpp/cpp-adapter.cpp.o +0 -0
  183. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/TargetDirectories.txt +3 -0
  184. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/cmake.check_cache +1 -0
  185. package/android/.cxx/Debug/705z3vy2/x86_64/CMakeFiles/rules.ninja +64 -0
  186. package/android/.cxx/Debug/705z3vy2/x86_64/additional_project_files.txt +0 -0
  187. package/android/.cxx/Debug/705z3vy2/x86_64/android_gradle_build.json +48 -0
  188. package/android/.cxx/Debug/705z3vy2/x86_64/android_gradle_build_mini.json +37 -0
  189. package/android/.cxx/Debug/705z3vy2/x86_64/build.ninja +193 -0
  190. package/android/.cxx/Debug/705z3vy2/x86_64/build_file_index.txt +6 -0
  191. package/android/.cxx/Debug/705z3vy2/x86_64/cmake_install.cmake +54 -0
  192. package/android/.cxx/Debug/705z3vy2/x86_64/compile_commands.json +32 -0
  193. package/android/.cxx/Debug/705z3vy2/x86_64/compile_commands.json.bin +0 -0
  194. package/android/.cxx/Debug/705z3vy2/x86_64/configure_fingerprint.bin +41 -0
  195. package/android/.cxx/Debug/705z3vy2/x86_64/metadata_generation_command.txt +21 -0
  196. package/android/.cxx/Debug/705z3vy2/x86_64/prefab_config.json +9 -0
  197. package/android/.cxx/Debug/705z3vy2/x86_64/symbol_folder_index.txt +1 -0
  198. package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +32 -0
  199. package/android/.cxx/tools/debug/armeabi-v7a/compile_commands.json +32 -0
  200. package/android/.cxx/tools/debug/x86/compile_commands.json +32 -0
  201. package/android/.cxx/tools/debug/x86_64/compile_commands.json +32 -0
  202. package/android/CMakeLists.txt +12 -0
  203. package/android/build.gradle +55 -30
  204. package/android/gradle.properties +3 -3
  205. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  206. package/android/src/main/java/com/reactnativereadium/HybridReadiumView.kt +593 -0
  207. package/android/src/main/java/com/reactnativereadium/ReadiumPackage.kt +9 -2
  208. package/android/src/main/java/com/reactnativereadium/reader/BaseReaderFragment.kt +214 -6
  209. package/android/src/main/java/com/reactnativereadium/reader/EpubReaderFragment.kt +143 -70
  210. package/android/src/main/java/com/reactnativereadium/reader/PositionLabelManager.kt +132 -0
  211. package/android/src/main/java/com/reactnativereadium/reader/ReaderService.kt +64 -65
  212. package/android/src/main/java/com/reactnativereadium/reader/ReaderViewModel.kt +23 -84
  213. package/android/src/main/java/com/reactnativereadium/reader/VisualReaderFragment.kt +32 -2
  214. package/android/src/main/java/com/reactnativereadium/utils/DecorationSerializer.kt +175 -0
  215. package/android/src/main/java/com/reactnativereadium/utils/EventChannel.kt +0 -9
  216. package/android/src/main/java/com/reactnativereadium/utils/FragmentFactory.kt +2 -3
  217. package/android/src/main/java/com/reactnativereadium/utils/JsonExtensions.kt +61 -0
  218. package/android/src/main/java/com/reactnativereadium/utils/LocationNormalizer.kt +47 -0
  219. package/android/src/main/java/com/reactnativereadium/utils/MetadataNormalizer.kt +183 -0
  220. package/android/src/main/java/com/reactnativereadium/utils/NormalizedMetadata.kt +179 -0
  221. package/android/src/main/java/com/reactnativereadium/utils/extensions/InputStream.kt +0 -9
  222. package/ios/App/AppModule.swift +3 -9
  223. package/ios/Common/Toolkit/Extensions/{Locator.swift → Locator+Codable.swift} +2 -2
  224. package/ios/DecorationData.swift +316 -0
  225. package/ios/HybridReadiumView.swift +498 -0
  226. package/ios/Reader/Common/ReaderViewController.swift +121 -53
  227. package/ios/Reader/EPUB/AssociatedColors.swift +1 -1
  228. package/ios/Reader/EPUB/EPUBHTTPServer.swift +13 -0
  229. package/ios/Reader/EPUB/EPUBModule.swift +6 -5
  230. package/ios/Reader/EPUB/EPUBViewController.swift +88 -15
  231. package/ios/Reader/EPUB/SelectionActionHandler.h +25 -0
  232. package/ios/Reader/EPUB/SelectionActionHandler.m +56 -0
  233. package/ios/Reader/ReaderFormatModule.swift +4 -4
  234. package/ios/Reader/ReaderModule.swift +7 -5
  235. package/ios/Reader/ReaderService.swift +75 -67
  236. package/lib/nitrogen/generated/shared/json/ReadiumViewConfig.json +19 -0
  237. package/lib/src/components/NitroReadiumView.d.ts +2 -0
  238. package/lib/src/components/NitroReadiumView.js +3 -0
  239. package/lib/src/components/ReadiumView.d.ts +3 -5
  240. package/lib/src/components/ReadiumView.js +15 -40
  241. package/lib/src/components/ReadiumView.types.d.ts +18 -0
  242. package/lib/src/components/ReadiumView.web.d.ts +12 -5
  243. package/lib/src/components/ReadiumView.web.js +112 -21
  244. package/lib/src/index.d.ts +0 -1
  245. package/lib/src/index.js +0 -1
  246. package/lib/src/interfaces/Decoration.d.ts +8 -0
  247. package/lib/src/interfaces/Decoration.js +1 -0
  248. package/lib/src/interfaces/File.d.ts +5 -12
  249. package/lib/src/interfaces/Link.d.ts +3 -13
  250. package/lib/src/interfaces/Locator.d.ts +1 -14
  251. package/lib/src/interfaces/Preferences.d.ts +5 -19
  252. package/lib/src/interfaces/PublicationMetadata.d.ts +13 -0
  253. package/lib/src/interfaces/PublicationMetadata.js +1 -0
  254. package/lib/src/interfaces/PublicationReady.d.ts +1 -0
  255. package/lib/src/interfaces/PublicationReady.js +1 -0
  256. package/lib/src/interfaces/Selection.d.ts +1 -0
  257. package/lib/src/interfaces/Selection.js +1 -0
  258. package/lib/src/interfaces/SelectionAction.d.ts +1 -0
  259. package/lib/src/interfaces/SelectionAction.js +1 -0
  260. package/lib/src/interfaces/index.d.ts +6 -1
  261. package/lib/src/interfaces/index.js +5 -1
  262. package/lib/src/specs/ReadiumView.nitro.d.ts +199 -0
  263. package/lib/src/specs/ReadiumView.nitro.js +1 -0
  264. package/lib/src/utils/index.d.ts +0 -6
  265. package/lib/src/utils/index.js +0 -6
  266. package/lib/web/hooks/index.d.ts +4 -2
  267. package/lib/web/hooks/index.js +4 -2
  268. package/lib/web/hooks/useDecorationsObserver.d.ts +6 -0
  269. package/lib/web/hooks/useDecorationsObserver.js +96 -0
  270. package/lib/web/hooks/useLocationObserver.d.ts +2 -1
  271. package/lib/web/hooks/useLocationObserver.js +18 -11
  272. package/lib/web/hooks/useNavigator.d.ts +12 -0
  273. package/lib/web/hooks/useNavigator.js +92 -0
  274. package/lib/web/hooks/usePositionLabel.d.ts +9 -0
  275. package/lib/web/hooks/usePositionLabel.js +33 -0
  276. package/lib/web/hooks/usePreferencesObserver.d.ts +2 -0
  277. package/lib/web/hooks/usePreferencesObserver.js +54 -0
  278. package/lib/web/utils/locationNormalizer.d.ts +28 -0
  279. package/lib/web/utils/locationNormalizer.js +49 -0
  280. package/lib/web/utils/manifestFetcher.d.ts +8 -0
  281. package/lib/web/utils/manifestFetcher.js +28 -0
  282. package/lib/web/utils/manifestNormalizer.d.ts +8 -0
  283. package/lib/web/utils/manifestNormalizer.js +70 -0
  284. package/lib/web/utils/metadataNormalizer.d.ts +53 -0
  285. package/lib/web/utils/metadataNormalizer.js +220 -0
  286. package/lib/web/utils/navigatorListeners.d.ts +6 -0
  287. package/lib/web/utils/navigatorListeners.js +50 -0
  288. package/lib/web/utils/publicationUtils.d.ts +15 -0
  289. package/lib/web/utils/publicationUtils.js +39 -0
  290. package/nitro.json +16 -0
  291. package/nitrogen/generated/.gitattributes +1 -0
  292. package/nitrogen/generated/android/NitroReadium+autolinking.cmake +83 -0
  293. package/nitrogen/generated/android/NitroReadium+autolinking.gradle +27 -0
  294. package/nitrogen/generated/android/NitroReadiumOnLoad.cpp +56 -0
  295. package/nitrogen/generated/android/NitroReadiumOnLoad.hpp +25 -0
  296. package/nitrogen/generated/android/c++/JAccessibility.hpp +175 -0
  297. package/nitrogen/generated/android/c++/JAccessibilityCertification.hpp +66 -0
  298. package/nitrogen/generated/android/c++/JBelongsTo.hpp +101 -0
  299. package/nitrogen/generated/android/c++/JContributor.hpp +74 -0
  300. package/nitrogen/generated/android/c++/JDecoration.hpp +92 -0
  301. package/nitrogen/generated/android/c++/JDecorationActivatedEvent.hpp +85 -0
  302. package/nitrogen/generated/android/c++/JDecorationGroup.hpp +92 -0
  303. package/nitrogen/generated/android/c++/JDecorationStyle.hpp +86 -0
  304. package/nitrogen/generated/android/c++/JFunc_void_DecorationActivatedEvent.hpp +94 -0
  305. package/nitrogen/generated/android/c++/JFunc_void_Locator.hpp +83 -0
  306. package/nitrogen/generated/android/c++/JFunc_void_PublicationReadyEvent.hpp +102 -0
  307. package/nitrogen/generated/android/c++/JFunc_void_SelectionActionEvent.hpp +85 -0
  308. package/nitrogen/generated/android/c++/JFunc_void_SelectionEvent.hpp +85 -0
  309. package/nitrogen/generated/android/c++/JHybridReadiumViewSpec.cpp +328 -0
  310. package/nitrogen/generated/android/c++/JHybridReadiumViewSpec.hpp +86 -0
  311. package/nitrogen/generated/android/c++/JLink.hpp +131 -0
  312. package/nitrogen/generated/android/c++/JLocator.hpp +82 -0
  313. package/nitrogen/generated/android/c++/JLocatorLocations.hpp +65 -0
  314. package/nitrogen/generated/android/c++/JLocatorText.hpp +66 -0
  315. package/nitrogen/generated/android/c++/JPoint.hpp +61 -0
  316. package/nitrogen/generated/android/c++/JPreferences.hpp +158 -0
  317. package/nitrogen/generated/android/c++/JPublicationMetadata.hpp +449 -0
  318. package/nitrogen/generated/android/c++/JPublicationReadyEvent.hpp +125 -0
  319. package/nitrogen/generated/android/c++/JReadiumFile.hpp +68 -0
  320. package/nitrogen/generated/android/c++/JRect.hpp +69 -0
  321. package/nitrogen/generated/android/c++/JSelectionAction.hpp +61 -0
  322. package/nitrogen/generated/android/c++/JSelectionActionEvent.hpp +72 -0
  323. package/nitrogen/generated/android/c++/JSelectionEvent.hpp +68 -0
  324. package/nitrogen/generated/android/c++/JSeriesInfo.hpp +62 -0
  325. package/nitrogen/generated/android/c++/JSubject.hpp +70 -0
  326. package/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.cpp +93 -0
  327. package/nitrogen/generated/android/c++/views/JHybridReadiumViewStateUpdater.hpp +49 -0
  328. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Accessibility.kt +56 -0
  329. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/AccessibilityCertification.kt +44 -0
  330. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/BelongsTo.kt +41 -0
  331. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Contributor.kt +50 -0
  332. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Decoration.kt +47 -0
  333. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/DecorationActivatedEvent.kt +47 -0
  334. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/DecorationGroup.kt +41 -0
  335. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/DecorationStyle.kt +59 -0
  336. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_DecorationActivatedEvent.kt +80 -0
  337. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_Locator.kt +80 -0
  338. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_PublicationReadyEvent.kt +80 -0
  339. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_SelectionActionEvent.kt +80 -0
  340. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Func_void_SelectionEvent.kt +80 -0
  341. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/HybridReadiumViewSpec.kt +159 -0
  342. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Link.kt +65 -0
  343. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Locator.kt +53 -0
  344. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/LocatorLocations.kt +44 -0
  345. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/LocatorText.kt +44 -0
  346. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/NitroReadiumOnLoad.kt +35 -0
  347. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Point.kt +41 -0
  348. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Preferences.kt +113 -0
  349. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/PublicationMetadata.kt +119 -0
  350. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/PublicationReadyEvent.kt +44 -0
  351. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/ReadiumFile.kt +41 -0
  352. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Rect.kt +47 -0
  353. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SelectionAction.kt +41 -0
  354. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SelectionActionEvent.kt +44 -0
  355. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SelectionEvent.kt +41 -0
  356. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/SeriesInfo.kt +41 -0
  357. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/Subject.kt +47 -0
  358. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/views/HybridReadiumViewManager.kt +70 -0
  359. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativereadium/views/HybridReadiumViewStateUpdater.kt +23 -0
  360. package/nitrogen/generated/ios/NitroReadium+autolinking.rb +60 -0
  361. package/nitrogen/generated/ios/NitroReadium-Swift-Cxx-Bridge.cpp +73 -0
  362. package/nitrogen/generated/ios/NitroReadium-Swift-Cxx-Bridge.hpp +641 -0
  363. package/nitrogen/generated/ios/NitroReadium-Swift-Cxx-Umbrella.hpp +117 -0
  364. package/nitrogen/generated/ios/NitroReadiumAutolinking.mm +33 -0
  365. package/nitrogen/generated/ios/NitroReadiumAutolinking.swift +26 -0
  366. package/nitrogen/generated/ios/c++/HybridReadiumViewSpecSwift.cpp +11 -0
  367. package/nitrogen/generated/ios/c++/HybridReadiumViewSpecSwift.hpp +226 -0
  368. package/nitrogen/generated/ios/c++/views/HybridReadiumViewComponent.mm +152 -0
  369. package/nitrogen/generated/ios/swift/Accessibility.swift +173 -0
  370. package/nitrogen/generated/ios/swift/AccessibilityCertification.swift +78 -0
  371. package/nitrogen/generated/ios/swift/BelongsTo.swift +72 -0
  372. package/nitrogen/generated/ios/swift/Contributor.swift +94 -0
  373. package/nitrogen/generated/ios/swift/Decoration.swift +71 -0
  374. package/nitrogen/generated/ios/swift/DecorationActivatedEvent.swift +56 -0
  375. package/nitrogen/generated/ios/swift/DecorationGroup.swift +40 -0
  376. package/nitrogen/generated/ios/swift/DecorationStyle.swift +155 -0
  377. package/nitrogen/generated/ios/swift/Func_void_DecorationActivatedEvent.swift +46 -0
  378. package/nitrogen/generated/ios/swift/Func_void_Locator.swift +46 -0
  379. package/nitrogen/generated/ios/swift/Func_void_PublicationReadyEvent.swift +46 -0
  380. package/nitrogen/generated/ios/swift/Func_void_SelectionActionEvent.swift +46 -0
  381. package/nitrogen/generated/ios/swift/Func_void_SelectionEvent.swift +46 -0
  382. package/nitrogen/generated/ios/swift/HybridReadiumViewSpec.swift +65 -0
  383. package/nitrogen/generated/ios/swift/HybridReadiumViewSpec_cxx.swift +363 -0
  384. package/nitrogen/generated/ios/swift/Link.swift +162 -0
  385. package/nitrogen/generated/ios/swift/Locator.swift +85 -0
  386. package/nitrogen/generated/ios/swift/LocatorLocations.swift +51 -0
  387. package/nitrogen/generated/ios/swift/LocatorText.swift +78 -0
  388. package/nitrogen/generated/ios/swift/Point.swift +34 -0
  389. package/nitrogen/generated/ios/swift/Preferences.swift +429 -0
  390. package/nitrogen/generated/ios/swift/PublicationMetadata.swift +577 -0
  391. package/nitrogen/generated/ios/swift/PublicationReadyEvent.swift +51 -0
  392. package/nitrogen/generated/ios/swift/ReadiumFile.swift +40 -0
  393. package/nitrogen/generated/ios/swift/Rect.swift +44 -0
  394. package/nitrogen/generated/ios/swift/SelectionAction.swift +34 -0
  395. package/nitrogen/generated/ios/swift/SelectionActionEvent.swift +39 -0
  396. package/nitrogen/generated/ios/swift/SelectionEvent.swift +53 -0
  397. package/nitrogen/generated/ios/swift/SeriesInfo.swift +40 -0
  398. package/nitrogen/generated/ios/swift/Subject.swift +83 -0
  399. package/nitrogen/generated/shared/c++/Accessibility.hpp +111 -0
  400. package/nitrogen/generated/shared/c++/AccessibilityCertification.hpp +92 -0
  401. package/nitrogen/generated/shared/c++/BelongsTo.hpp +90 -0
  402. package/nitrogen/generated/shared/c++/Contributor.hpp +100 -0
  403. package/nitrogen/generated/shared/c++/Decoration.hpp +102 -0
  404. package/nitrogen/generated/shared/c++/DecorationActivatedEvent.hpp +104 -0
  405. package/nitrogen/generated/shared/c++/DecorationGroup.hpp +90 -0
  406. package/nitrogen/generated/shared/c++/DecorationStyle.hpp +112 -0
  407. package/nitrogen/generated/shared/c++/HybridReadiumViewSpec.cpp +42 -0
  408. package/nitrogen/generated/shared/c++/HybridReadiumViewSpec.hpp +110 -0
  409. package/nitrogen/generated/shared/c++/Link.hpp +121 -0
  410. package/nitrogen/generated/shared/c++/Locator.hpp +109 -0
  411. package/nitrogen/generated/shared/c++/LocatorLocations.hpp +91 -0
  412. package/nitrogen/generated/shared/c++/LocatorText.hpp +92 -0
  413. package/nitrogen/generated/shared/c++/Point.hpp +87 -0
  414. package/nitrogen/generated/shared/c++/Preferences.hpp +184 -0
  415. package/nitrogen/generated/shared/c++/PublicationMetadata.hpp +204 -0
  416. package/nitrogen/generated/shared/c++/PublicationReadyEvent.hpp +99 -0
  417. package/nitrogen/generated/shared/c++/ReadiumFile.hpp +90 -0
  418. package/nitrogen/generated/shared/c++/Rect.hpp +95 -0
  419. package/nitrogen/generated/shared/c++/SelectionAction.hpp +87 -0
  420. package/nitrogen/generated/shared/c++/SelectionActionEvent.hpp +93 -0
  421. package/nitrogen/generated/shared/c++/SelectionEvent.hpp +90 -0
  422. package/nitrogen/generated/shared/c++/SeriesInfo.hpp +88 -0
  423. package/nitrogen/generated/shared/c++/Subject.hpp +96 -0
  424. package/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.cpp +182 -0
  425. package/nitrogen/generated/shared/c++/views/HybridReadiumViewComponent.hpp +129 -0
  426. package/nitrogen/generated/shared/json/ReadiumViewConfig.json +19 -0
  427. package/package.json +48 -17
  428. package/react-native-readium.podspec +29 -8
  429. package/src/components/NitroReadiumView.tsx +9 -0
  430. package/src/components/ReadiumView.tsx +38 -68
  431. package/src/components/ReadiumView.types.ts +30 -0
  432. package/src/components/ReadiumView.web.tsx +149 -37
  433. package/src/index.tsx +0 -1
  434. package/src/interfaces/Decoration.ts +15 -0
  435. package/src/interfaces/File.ts +5 -13
  436. package/src/interfaces/Link.ts +4 -13
  437. package/src/interfaces/Locator.ts +5 -14
  438. package/src/interfaces/Preferences.ts +16 -19
  439. package/src/interfaces/PublicationMetadata.ts +23 -0
  440. package/src/interfaces/PublicationReady.ts +1 -0
  441. package/src/interfaces/Selection.ts +1 -0
  442. package/src/interfaces/SelectionAction.ts +4 -0
  443. package/src/interfaces/index.ts +6 -1
  444. package/src/specs/ReadiumView.nitro.ts +249 -0
  445. package/src/utils/index.ts +0 -6
  446. package/web/hooks/index.ts +4 -2
  447. package/web/hooks/useDecorationsObserver.ts +116 -0
  448. package/web/hooks/useLocationObserver.ts +24 -11
  449. package/web/hooks/useNavigator.ts +152 -0
  450. package/web/hooks/usePositionLabel.ts +51 -0
  451. package/web/hooks/usePreferencesObserver.ts +69 -0
  452. package/web/utils/locationNormalizer.ts +58 -0
  453. package/web/utils/manifestFetcher.ts +38 -0
  454. package/web/utils/manifestNormalizer.ts +74 -0
  455. package/web/utils/metadataNormalizer.ts +238 -0
  456. package/web/utils/navigatorListeners.ts +60 -0
  457. package/web/utils/publicationUtils.ts +47 -0
  458. package/android/src/main/java/com/reactnativereadium/ReadiumView.kt +0 -109
  459. package/android/src/main/java/com/reactnativereadium/ReadiumViewManager.kt +0 -149
  460. package/android/src/main/java/com/reactnativereadium/search/SearchFragment.kt +0 -100
  461. package/android/src/main/java/com/reactnativereadium/search/SearchPagingSource.kt +0 -44
  462. package/android/src/main/java/com/reactnativereadium/search/SearchResultAdapter.kt +0 -68
  463. package/android/src/main/java/com/reactnativereadium/utils/Dimensions.kt +0 -6
  464. package/android/src/main/java/com/reactnativereadium/utils/R2DispatcherActivity.kt +0 -45
  465. package/android/src/main/java/com/reactnativereadium/utils/SectionDecoration.kt +0 -98
  466. package/android/src/main/java/com/reactnativereadium/utils/SingleClickListener.kt +0 -32
  467. package/android/src/main/java/com/reactnativereadium/utils/extensions/Bitmap.kt +0 -23
  468. package/android/src/main/java/com/reactnativereadium/utils/extensions/Context.kt +0 -16
  469. package/android/src/main/java/com/reactnativereadium/utils/extensions/File.kt +0 -22
  470. package/android/src/main/java/com/reactnativereadium/utils/extensions/Link.kt +0 -6
  471. package/android/src/main/java/com/reactnativereadium/utils/extensions/Metadata.kt +0 -6
  472. package/android/src/main/java/com/reactnativereadium/utils/extensions/URL.kt +0 -29
  473. package/android/src/main/java/com/reactnativereadium/utils/extensions/Uri.kt +0 -17
  474. package/android/src/main/res/layout/fragment_search.xml +0 -39
  475. package/android/src/main/res/layout/item_recycle_search.xml +0 -14
  476. package/ios/Common/EPUBPreferences.swift +0 -8
  477. package/ios/Common/Paths.swift +0 -52
  478. package/ios/Common/Publication.swift +0 -15
  479. package/ios/Common/Toolkit/Extensions/HTTPClient.swift +0 -65
  480. package/ios/Common/Toolkit/Extensions/UIImage.swift +0 -12
  481. package/ios/Common/Toolkit/Extensions/UIViewController.swift +0 -19
  482. package/ios/Common/Toolkit/ScreenOrientation.swift +0 -13
  483. package/ios/Data/Bookmark.swift +0 -23
  484. package/ios/Readium-Bridging-Header.h +0 -2
  485. package/ios/ReadiumView.swift +0 -165
  486. package/ios/ReadiumViewManager.m +0 -11
  487. package/ios/ReadiumViewManager.swift +0 -9
  488. package/lib/src/components/BaseReadiumView.d.ts +0 -2
  489. package/lib/src/components/BaseReadiumView.js +0 -7
  490. package/lib/src/components/BaseReadiumView.web.d.ts +0 -1
  491. package/lib/src/components/BaseReadiumView.web.js +0 -1
  492. package/lib/src/enums/Appearance.d.ts +0 -11
  493. package/lib/src/enums/Appearance.js +0 -13
  494. package/lib/src/enums/ColumnCount.d.ts +0 -5
  495. package/lib/src/enums/ColumnCount.js +0 -7
  496. package/lib/src/enums/FontFamily.d.ts +0 -10
  497. package/lib/src/enums/FontFamily.js +0 -12
  498. package/lib/src/enums/TextAlignment.d.ts +0 -4
  499. package/lib/src/enums/TextAlignment.js +0 -6
  500. package/lib/src/enums/index.d.ts +0 -4
  501. package/lib/src/enums/index.js +0 -4
  502. package/lib/src/interfaces/BaseReadiumViewProps.d.ts +0 -15
  503. package/lib/src/utils/COMPONENT_NAME.d.ts +0 -1
  504. package/lib/src/utils/COMPONENT_NAME.js +0 -1
  505. package/lib/src/utils/LINKING_ERROR.d.ts +0 -1
  506. package/lib/src/utils/LINKING_ERROR.js +0 -5
  507. package/lib/src/utils/clamp.d.ts +0 -1
  508. package/lib/src/utils/clamp.js +0 -7
  509. package/lib/src/utils/createFragment.d.ts +0 -1
  510. package/lib/src/utils/createFragment.js +0 -10
  511. package/lib/src/utils/getWidthOrHeightValue.d.ts +0 -1
  512. package/lib/src/utils/getWidthOrHeightValue.js +0 -6
  513. package/lib/src/utils/indexOfObjectValue.d.ts +0 -1
  514. package/lib/src/utils/indexOfObjectValue.js +0 -3
  515. package/lib/web/hooks/useReaderRef.d.ts +0 -3
  516. package/lib/web/hooks/useReaderRef.js +0 -85
  517. package/lib/web/hooks/useSettingsObserver.d.ts +0 -2
  518. package/lib/web/hooks/useSettingsObserver.js +0 -44
  519. package/src/components/BaseReadiumView.tsx +0 -11
  520. package/src/components/BaseReadiumView.web.tsx +0 -1
  521. package/src/enums/Appearance.ts +0 -14
  522. package/src/enums/ColumnCount.ts +0 -6
  523. package/src/enums/FontFamily.ts +0 -11
  524. package/src/enums/TextAlignment.ts +0 -5
  525. package/src/enums/index.ts +0 -4
  526. package/src/interfaces/BaseReadiumViewProps.ts +0 -16
  527. package/src/utils/COMPONENT_NAME.ts +0 -1
  528. package/src/utils/LINKING_ERROR.ts +0 -7
  529. package/src/utils/clamp.ts +0 -5
  530. package/src/utils/createFragment.ts +0 -15
  531. package/src/utils/getWidthOrHeightValue.ts +0 -7
  532. package/src/utils/indexOfObjectValue.ts +0 -3
  533. package/web/hooks/useReaderRef.ts +0 -109
  534. package/web/hooks/useSettingsObserver.ts +0 -61
  535. /package/lib/src/{interfaces/BaseReadiumViewProps.js → components/ReadiumView.types.js} +0 -0
@@ -0,0 +1,58 @@
1
+ import type { Locator } from '@readium/shared';
2
+ import type { Link, Locator as LocalLocator } from '../../src/interfaces';
3
+
4
+ /**
5
+ * Normalizes an href by removing leading slashes for consistency across platforms.
6
+ *
7
+ * The Readium toolkit expects hrefs in relative format (e.g., "OPS/main3.xml")
8
+ * rather than absolute format (e.g., "/OPS/main3.xml").
9
+ *
10
+ * @param href - The href to normalize
11
+ * @returns The normalized href without leading slash
12
+ */
13
+ export function normalizeHref(href: string): string {
14
+ if (href.startsWith('/')) {
15
+ return href.substring(1);
16
+ }
17
+ return href;
18
+ }
19
+
20
+ /**
21
+ * Normalizes a location object (Link or Locator) by normalizing its href.
22
+ *
23
+ * @param location - The Link or Locator to normalize
24
+ * @returns A new location object with normalized href
25
+ */
26
+ export function normalizeLocation<T extends { href: string }>(location: T): T {
27
+ return {
28
+ ...location,
29
+ href: normalizeHref(location.href),
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Converts a Link or Locator to a Readium Locator format suitable for navigation.
35
+ *
36
+ * @param location - The Link or Locator from the file.initialLocation
37
+ * @returns A Locator object ready for the Readium navigator, or undefined if invalid
38
+ */
39
+ export function convertToNavigatorLocator(
40
+ location: Link | LocalLocator
41
+ ): Locator | undefined {
42
+ // First, normalize the href
43
+ const normalized = normalizeLocation(location);
44
+
45
+ // Check if this is already a Locator (has locations property)
46
+ if ('locations' in normalized) {
47
+ // It's already a Locator, return it
48
+ return normalized as unknown as Locator;
49
+ }
50
+
51
+ // It's a Link - convert to basic Locator format
52
+ // The Readium navigator will handle finding the exact position
53
+ return {
54
+ href: normalized.href,
55
+ type: normalized.type || 'application/xhtml+xml',
56
+ title: normalized.title,
57
+ } as Locator;
58
+ }
@@ -0,0 +1,38 @@
1
+ import { Fetcher, HttpFetcher, Link, Manifest } from '@readium/shared';
2
+ import { normalizeManifest } from './manifestNormalizer';
3
+
4
+ /**
5
+ * Fetches and deserializes the publication manifest
6
+ */
7
+ export async function fetchManifest(publicationURL: string): Promise<{
8
+ manifest: Manifest;
9
+ fetcher: Fetcher;
10
+ }> {
11
+ const manifestLink = new Link({ href: 'manifest.json' });
12
+ const fetcher: Fetcher = new HttpFetcher(undefined, publicationURL);
13
+ const fetched = fetcher.get(manifestLink);
14
+ const selfLink = (await fetched.link()).toURL(publicationURL)!;
15
+
16
+ const response = await fetched.readAsJSON();
17
+ const responseObj = normalizeManifest(response as any);
18
+
19
+ let manifest;
20
+ try {
21
+ manifest = Manifest.deserialize(responseObj as string);
22
+ } catch (error) {
23
+ console.error('Error during manifest deserialization:', error);
24
+ console.error('Manifest that failed:', responseObj);
25
+ throw error;
26
+ }
27
+
28
+ if (!manifest) {
29
+ console.error(
30
+ 'Failed to deserialize manifest (returned null/undefined):',
31
+ responseObj
32
+ );
33
+ throw new Error('Manifest deserialization returned null/undefined');
34
+ }
35
+
36
+ manifest.setSelfLink(selfLink);
37
+ return { manifest, fetcher };
38
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Normalizes a Readium manifest object to ensure compatibility with the navigator.
3
+ * Handles various inconsistencies in manifest formats:
4
+ * - Converts string properties to arrays where required
5
+ * - Normalizes date formats to ISO 8601
6
+ * - Ensures required properties exist
7
+ */
8
+ export function normalizeManifest(manifest: any): any {
9
+ const responseObj = manifest;
10
+ const metadata = responseObj.metadata;
11
+
12
+ // Normalize root-level properties
13
+ if (typeof responseObj.conformsTo === 'string') {
14
+ responseObj.conformsTo = [responseObj.conformsTo];
15
+ }
16
+ if (typeof metadata?.conformsTo === 'string') {
17
+ metadata.conformsTo = [metadata.conformsTo];
18
+ }
19
+ if (typeof metadata?.accessMode === 'string') {
20
+ metadata.accessMode = [metadata.accessMode];
21
+ }
22
+ if (typeof metadata?.accessibilityFeature === 'string') {
23
+ metadata.accessibilityFeature = [metadata.accessibilityFeature];
24
+ }
25
+ if (typeof metadata?.accessibilityHazard === 'string') {
26
+ metadata.accessibilityHazard = [metadata.accessibilityHazard];
27
+ }
28
+
29
+ // Normalize nested accessibility properties
30
+ const accessibility = metadata?.accessibility;
31
+ if (accessibility) {
32
+ if (typeof accessibility.conformsTo === 'string') {
33
+ accessibility.conformsTo = [accessibility.conformsTo];
34
+ }
35
+ if (typeof accessibility.accessMode === 'string') {
36
+ accessibility.accessMode = [accessibility.accessMode];
37
+ }
38
+ if (typeof accessibility.feature === 'string') {
39
+ accessibility.feature = [accessibility.feature];
40
+ }
41
+ if (typeof accessibility.hazard === 'string') {
42
+ accessibility.hazard = [accessibility.hazard];
43
+ }
44
+ }
45
+
46
+ // Normalize date formats
47
+ // Some manifests use JavaScript Date.toString() format instead of ISO 8601
48
+ if (metadata?.modified && typeof metadata.modified === 'string') {
49
+ const date = new Date(metadata.modified);
50
+ if (!isNaN(date.getTime())) {
51
+ metadata.modified = date.toISOString();
52
+ }
53
+ }
54
+ if (metadata?.published && typeof metadata.published === 'string') {
55
+ const date = new Date(metadata.published);
56
+ if (!isNaN(date.getTime())) {
57
+ metadata.published = date.toISOString();
58
+ }
59
+ }
60
+
61
+ // Ensure links property exists (required by RWPM spec)
62
+ // Some manifests may have landmarks instead of links
63
+ if (!responseObj.links) {
64
+ // If landmarks exist, convert them to links
65
+ if (responseObj.landmarks && Array.isArray(responseObj.landmarks)) {
66
+ responseObj.links = responseObj.landmarks;
67
+ } else {
68
+ // Otherwise create an empty links array
69
+ responseObj.links = [];
70
+ }
71
+ }
72
+
73
+ return responseObj;
74
+ }
@@ -0,0 +1,238 @@
1
+ /**
2
+ * Normalizes metadata to ensure consistent structure per RWPM spec.
3
+ *
4
+ * This normalizer is library-agnostic and based on the stable RWPM specification,
5
+ * ensuring it works regardless of how the underlying Readium library serializes data.
6
+ *
7
+ * https://readium.org/webpub-manifest/
8
+ */
9
+
10
+ /**
11
+ * Normalizes a localized string per RWPM spec.
12
+ *
13
+ * Per RWPM spec, a localized string can be:
14
+ * 1. Plain string: "Moby-Dick"
15
+ * 2. Language map: {"en": "Moby-Dick", "fr": "Moby Dick"}
16
+ *
17
+ * Priority for language selection:
18
+ * 1. "undefined" or "und" (default/undetermined language)
19
+ * 2. "en" (English fallback)
20
+ * 3. First available language
21
+ *
22
+ * https://readium.org/webpub-manifest/contexts/default/
23
+ */
24
+ export function normalizeLocalizedString(value: any): string {
25
+ if (!value) return '';
26
+
27
+ // Format 1: Plain string (spec-compliant shorthand)
28
+ if (typeof value === 'string') return value;
29
+
30
+ // Format 2: Language map (spec-compliant full form)
31
+ if (typeof value === 'object') {
32
+ // Check if it's a LocalizedString instance with translations property
33
+ if (value.translations) {
34
+ const translations = value.translations;
35
+ return (
36
+ translations['undefined'] ||
37
+ translations['und'] ||
38
+ translations['en'] ||
39
+ (Object.values(translations)[0] as string) ||
40
+ ''
41
+ );
42
+ }
43
+
44
+ // Check if it's already a plain language map object
45
+ return (
46
+ value['undefined'] ||
47
+ value['und'] ||
48
+ value['en'] ||
49
+ (Object.values(value)[0] as string) ||
50
+ ''
51
+ );
52
+ }
53
+
54
+ return '';
55
+ }
56
+
57
+ /**
58
+ * Normalizes contributors per RWPM spec.
59
+ *
60
+ * Per RWPM spec, a contributor can be:
61
+ * 1. Plain string: "Herman Melville"
62
+ * 2. Object: {"name": "Herman Melville", "sortAs": "Melville, Herman"}
63
+ *
64
+ * The Web library uses a Contributors class with an "items" property.
65
+ *
66
+ * https://readium.org/webpub-manifest/schema/contributor-object.schema.json
67
+ */
68
+ export function normalizeContributors(value: any): any[] | undefined {
69
+ if (!value) return undefined;
70
+
71
+ // Handle TypeScript library's Contributors class format (has .items property)
72
+ const items = value.items || value;
73
+
74
+ if (!Array.isArray(items)) return undefined;
75
+
76
+ return items
77
+ .map((contributor: any) => {
78
+ // Format 1: Plain string
79
+ if (typeof contributor === 'string') {
80
+ return { name: contributor };
81
+ }
82
+
83
+ // Format 2: Object with potentially localized fields
84
+ const normalized: any = {
85
+ name: normalizeLocalizedString(contributor.name),
86
+ };
87
+
88
+ if (contributor.sortAs) {
89
+ normalized.sortAs = normalizeLocalizedString(contributor.sortAs);
90
+ }
91
+ if (contributor.identifier) {
92
+ normalized.identifier = contributor.identifier;
93
+ }
94
+ if (contributor.role) {
95
+ normalized.role = contributor.role;
96
+ }
97
+ if (contributor.position !== undefined) {
98
+ normalized.position = contributor.position;
99
+ }
100
+
101
+ return normalized;
102
+ })
103
+ .filter((c) => c.name); // Remove contributors without names
104
+ }
105
+
106
+ /**
107
+ * Normalizes subjects per RWPM spec.
108
+ *
109
+ * Subject names can be LocalizedStrings.
110
+ * The Web library uses a Subjects class with an "items" property.
111
+ *
112
+ * https://readium.org/webpub-manifest/schema/subject.schema.json
113
+ */
114
+ export function normalizeSubjects(value: any): any[] | undefined {
115
+ if (!value) return undefined;
116
+
117
+ // Handle Subjects class format (has .items property)
118
+ const items = value.items || value;
119
+
120
+ if (!Array.isArray(items)) return undefined;
121
+
122
+ return items
123
+ .map((subject: any) => {
124
+ // Format 1: Plain string
125
+ if (typeof subject === 'string') {
126
+ return { name: subject };
127
+ }
128
+
129
+ // Format 2: Object
130
+ const normalized: any = {
131
+ name: normalizeLocalizedString(subject.name),
132
+ };
133
+
134
+ if (subject.sortAs) {
135
+ normalized.sortAs = normalizeLocalizedString(subject.sortAs);
136
+ }
137
+ if (subject.code) {
138
+ normalized.code = subject.code;
139
+ }
140
+ if (subject.scheme) {
141
+ normalized.scheme = subject.scheme;
142
+ }
143
+
144
+ return normalized;
145
+ })
146
+ .filter((s) => s.name);
147
+ }
148
+
149
+ /**
150
+ * Normalizes the entire metadata object per RWPM spec.
151
+ *
152
+ * This function is library-agnostic and based on the stable RWPM specification,
153
+ * ensuring it works regardless of how the underlying Readium library serializes data.
154
+ *
155
+ * https://readium.org/webpub-manifest/
156
+ */
157
+ export function normalizeMetadata(metadata: any): any {
158
+ const normalized: any = {
159
+ // Title is required
160
+ title: normalizeLocalizedString(metadata.title),
161
+ };
162
+
163
+ // Optional localized string fields
164
+ if (metadata.subtitle) {
165
+ normalized.subtitle = normalizeLocalizedString(metadata.subtitle);
166
+ }
167
+ if (metadata.sortAs) {
168
+ normalized.sortAs = normalizeLocalizedString(metadata.sortAs);
169
+ }
170
+
171
+ // Direct copy fields
172
+ if (metadata.identifier) normalized.identifier = metadata.identifier;
173
+ if (metadata.conformsTo) normalized.conformsTo = metadata.conformsTo;
174
+ if (metadata.description) normalized.description = metadata.description;
175
+ if (metadata.readingProgression)
176
+ normalized.readingProgression = metadata.readingProgression;
177
+ if (metadata.layout) normalized.layout = metadata.layout;
178
+ if (metadata.duration) normalized.duration = metadata.duration;
179
+ if (metadata.numberOfPages) normalized.numberOfPages = metadata.numberOfPages;
180
+
181
+ // Date fields - convert to ISO strings
182
+ if (metadata.modified) {
183
+ normalized.modified =
184
+ metadata.modified instanceof Date
185
+ ? metadata.modified.toISOString()
186
+ : metadata.modified;
187
+ }
188
+ if (metadata.published) {
189
+ normalized.published =
190
+ metadata.published instanceof Date
191
+ ? metadata.published.toISOString()
192
+ : metadata.published;
193
+ }
194
+
195
+ // Languages (Web uses plural 'languages', our interface uses singular 'language')
196
+ if (metadata.languages) {
197
+ normalized.language = metadata.languages;
198
+ }
199
+
200
+ // Normalize all contributor types (Web uses plural names, our interface uses singular)
201
+ if (metadata.authors)
202
+ normalized.author = normalizeContributors(metadata.authors);
203
+ if (metadata.translators)
204
+ normalized.translator = normalizeContributors(metadata.translators);
205
+ if (metadata.editors)
206
+ normalized.editor = normalizeContributors(metadata.editors);
207
+ if (metadata.artists)
208
+ normalized.artist = normalizeContributors(metadata.artists);
209
+ if (metadata.illustrators)
210
+ normalized.illustrator = normalizeContributors(metadata.illustrators);
211
+ if (metadata.letterers)
212
+ normalized.letterer = normalizeContributors(metadata.letterers);
213
+ if (metadata.pencilers)
214
+ normalized.penciler = normalizeContributors(metadata.pencilers);
215
+ if (metadata.colorists)
216
+ normalized.colorist = normalizeContributors(metadata.colorists);
217
+ if (metadata.inkers)
218
+ normalized.inker = normalizeContributors(metadata.inkers);
219
+ if (metadata.narrators)
220
+ normalized.narrator = normalizeContributors(metadata.narrators);
221
+ if (metadata.contributors)
222
+ normalized.contributor = normalizeContributors(metadata.contributors);
223
+ if (metadata.publishers)
224
+ normalized.publisher = normalizeContributors(metadata.publishers);
225
+ if (metadata.imprints)
226
+ normalized.imprint = normalizeContributors(metadata.imprints);
227
+
228
+ // Normalize subjects
229
+ if (metadata.subjects) {
230
+ normalized.subject = normalizeSubjects(metadata.subjects);
231
+ }
232
+
233
+ // Copy complex objects as-is
234
+ if (metadata.belongsTo) normalized.belongsTo = metadata.belongsTo;
235
+ if (metadata.accessibility) normalized.accessibility = metadata.accessibility;
236
+
237
+ return normalized;
238
+ }
@@ -0,0 +1,60 @@
1
+ import {
2
+ BasicTextSelection,
3
+ FrameClickEvent,
4
+ } from '@readium/navigator-html-injectables';
5
+ import { EpubNavigatorListeners } from '@readium/navigator';
6
+ import { Locator } from '@readium/shared';
7
+
8
+ /**
9
+ * Creates navigator listeners for handling navigation events
10
+ */
11
+ export function createNavigatorListeners(
12
+ onLocationChangeWithTotalProgression: (locator: Locator) => void,
13
+ onPositionChange?: (position: number | null) => void
14
+ ): EpubNavigatorListeners {
15
+ return {
16
+ frameLoaded: function (_wnd: Window): void {
17
+ // noop
18
+ },
19
+ positionChanged: function (_locator: Locator): void {
20
+ onLocationChangeWithTotalProgression(_locator);
21
+ if (onPositionChange) {
22
+ onPositionChange(_locator.locations?.position || null);
23
+ }
24
+ window.focus();
25
+ },
26
+ tap: function (_e: FrameClickEvent): boolean {
27
+ return false;
28
+ },
29
+ click: function (_e: FrameClickEvent): boolean {
30
+ return false;
31
+ },
32
+ zoom: function (_scale: number): void {
33
+ // noop
34
+ },
35
+ miscPointer: function (_amount: number): void {
36
+ // noop
37
+ },
38
+ scroll: function (_amount: number): void {
39
+ // noop
40
+ },
41
+ customEvent: function (_key: string, _data: unknown): void {},
42
+ handleLocator: function (locator: Locator): boolean {
43
+ const href = locator.href;
44
+ if (
45
+ href.startsWith('http://') ||
46
+ href.startsWith('https://') ||
47
+ href.startsWith('mailto:') ||
48
+ href.startsWith('tel:')
49
+ ) {
50
+ if (confirm(`Open "${href}" ?`)) window.open(href, '_blank');
51
+ } else {
52
+ console.warn('Unhandled locator', locator);
53
+ }
54
+ return false;
55
+ },
56
+ textSelected: function (_selection: BasicTextSelection): void {
57
+ // noop
58
+ },
59
+ };
60
+ }
@@ -0,0 +1,47 @@
1
+ import {
2
+ Locator,
3
+ LocatorLocations,
4
+ Manifest,
5
+ Publication,
6
+ } from '@readium/shared';
7
+
8
+ /**
9
+ * Normalizes a publication URL to ensure it ends with /
10
+ * If URL ends with manifest.json, extracts the base directory
11
+ */
12
+ export function normalizePublicationURL(url: string): string {
13
+ if (url.endsWith('manifest.json')) {
14
+ return url.substring(0, url.lastIndexOf('/') + 1);
15
+ }
16
+ return url.endsWith('/') ? url : `${url}/`;
17
+ }
18
+
19
+ /**
20
+ * Creates positions array from publication reading order
21
+ * NOTE: The published npm packages (v2.2.5) require positions to be passed explicitly
22
+ */
23
+ export function createPositions(publication: Publication): Locator[] {
24
+ return publication.readingOrder.items.map((link: any, idx: number) => {
25
+ const position = idx + 1;
26
+ return new Locator({
27
+ href: link.href,
28
+ type: link.type,
29
+ title: link.title,
30
+ locations: new LocatorLocations({
31
+ position: position,
32
+ progression: 0,
33
+ totalProgression: idx / publication.readingOrder.items.length,
34
+ }),
35
+ });
36
+ });
37
+ }
38
+
39
+ /**
40
+ * Extracts table of contents items from manifest
41
+ */
42
+ export function extractTableOfContents(manifest: Manifest): any[] {
43
+ return Array.isArray(manifest.toc)
44
+ ? manifest.toc
45
+ : // @ts-ignore
46
+ manifest.toc.items || [];
47
+ }
@@ -1,109 +0,0 @@
1
- package com.reactnativereadium
2
-
3
- import android.view.Choreographer
4
- import android.widget.FrameLayout
5
- import androidx.fragment.app.FragmentActivity
6
- import com.facebook.react.bridge.Arguments
7
- import com.facebook.react.uimanager.ThemedReactContext
8
- import com.facebook.react.uimanager.events.RCTEventEmitter
9
- import com.reactnativereadium.reader.BaseReaderFragment
10
- import com.reactnativereadium.reader.EpubReaderFragment
11
- import com.reactnativereadium.reader.ReaderViewModel
12
- import com.reactnativereadium.reader.VisualReaderFragment
13
- import com.reactnativereadium.utils.Dimensions
14
- import com.reactnativereadium.utils.File
15
- import com.reactnativereadium.utils.LinkOrLocator
16
- import org.readium.r2.navigator.epub.EpubNavigatorFragment
17
- import org.readium.r2.navigator.epub.EpubPreferences
18
- import org.readium.r2.shared.extensions.toMap
19
-
20
- class ReadiumView(
21
- val reactContext: ThemedReactContext
22
- ) : FrameLayout(reactContext) {
23
- var dimensions: Dimensions = Dimensions(0,0)
24
- var file: File? = null
25
- var fragment: BaseReaderFragment? = null
26
- var isViewInitialized: Boolean = false
27
- var lateInitSerializedUserPreferences: String? = null
28
-
29
- fun updateLocation(location: LinkOrLocator) : Boolean {
30
- if (fragment == null) {
31
- return false
32
- } else {
33
- return this.fragment!!.go(location, true)
34
- }
35
- }
36
-
37
- fun updatePreferencesFromJsonString(preferences: String?) {
38
- lateInitSerializedUserPreferences = preferences
39
- if (preferences == null || fragment == null) {
40
- return
41
- }
42
-
43
- if (fragment is EpubReaderFragment) {
44
- (fragment as EpubReaderFragment).updatePreferencesFromJsonString(preferences)
45
- }
46
- }
47
-
48
- fun addFragment(frag: BaseReaderFragment) {
49
- fragment = frag
50
- setupLayout()
51
- lateInitSerializedUserPreferences?.let { updatePreferencesFromJsonString(it)}
52
- val activity: FragmentActivity? = reactContext.currentActivity as FragmentActivity?
53
- activity!!.supportFragmentManager
54
- .beginTransaction()
55
- .replace(this.id, frag, this.id.toString())
56
- .commit()
57
-
58
- val module = reactContext.getJSModule(RCTEventEmitter::class.java)
59
- // subscribe to reader events
60
- frag.channel.receive(frag) { event ->
61
- when (event) {
62
- is ReaderViewModel.Event.LocatorUpdate -> {
63
- val json = event.locator.toJSON()
64
- val payload = Arguments.makeNativeMap(json.toMap())
65
- module.receiveEvent(
66
- this.id.toInt(),
67
- ReadiumViewManager.ON_LOCATION_CHANGE,
68
- payload
69
- )
70
- }
71
- is ReaderViewModel.Event.TableOfContentsLoaded -> {
72
- val map = event.toc.map { it.toJSON().toMap() }
73
- val payload = Arguments.makeNativeMap(mapOf("toc" to map))
74
- module.receiveEvent(
75
- this.id.toInt(),
76
- ReadiumViewManager.ON_TABLE_OF_CONTENTS,
77
- payload
78
- )
79
- }
80
- else -> {
81
- // do nothing
82
- }
83
- }
84
- }
85
- }
86
-
87
- private fun setupLayout() {
88
- Choreographer.getInstance().postFrameCallback(object : Choreographer.FrameCallback {
89
- override fun doFrame(frameTimeNanos: Long) {
90
- manuallyLayoutChildren()
91
- this@ReadiumView.viewTreeObserver.dispatchOnGlobalLayout()
92
- Choreographer.getInstance().postFrameCallback(this)
93
- }
94
- })
95
- }
96
-
97
- /**
98
- * Layout all children properly
99
- */
100
- private fun manuallyLayoutChildren() {
101
- // propWidth and propHeight coming from react-native props
102
- val width = dimensions.width
103
- val height = dimensions.height
104
- this.measure(
105
- MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
106
- MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY))
107
- this.layout(0, 0, width, height)
108
- }
109
- }