koffi 2.1.3 → 2.1.4

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 (401) hide show
  1. package/package.json +44 -68
  2. package/{LICENSE.txt → src/cnoke/LICENSE.txt} +0 -0
  3. package/src/cnoke/README.md +97 -0
  4. package/src/cnoke/assets/FindCNoke.cmake +71 -0
  5. package/src/cnoke/assets/win_delay_hook.c +34 -0
  6. package/src/cnoke/cnoke.js +968 -0
  7. package/src/cnoke/package.json +25 -0
  8. package/{vendor → src/core}/libcc/libcc.cc +38 -11
  9. package/{vendor → src/core}/libcc/libcc.hh +4 -2
  10. package/{CMakeLists.txt → src/koffi/CMakeLists.txt} +3 -3
  11. package/{ChangeLog.md → src/koffi/ChangeLog.md} +11 -0
  12. package/src/koffi/LICENSE.txt +661 -0
  13. package/{README.md → src/koffi/README.md} +0 -0
  14. package/{benchmark → src/koffi/benchmark}/CMakeLists.txt +9 -6
  15. package/{benchmark → src/koffi/benchmark}/atoi_koffi.js +0 -0
  16. package/{benchmark → src/koffi/benchmark}/atoi_napi.cc +1 -1
  17. package/{benchmark → src/koffi/benchmark}/atoi_napi.js +0 -0
  18. package/{benchmark → src/koffi/benchmark}/atoi_node_ffi.js +0 -0
  19. package/src/koffi/benchmark/benchmark.js +118 -0
  20. package/src/koffi/benchmark/rand_koffi.js +52 -0
  21. package/src/koffi/benchmark/rand_napi.cc +69 -0
  22. package/src/koffi/benchmark/rand_napi.js +47 -0
  23. package/src/koffi/benchmark/rand_node_ffi.js +55 -0
  24. package/{benchmark → src/koffi/benchmark}/raylib_cc.cc +2 -2
  25. package/{benchmark → src/koffi/benchmark}/raylib_cc.js +0 -0
  26. package/{benchmark → src/koffi/benchmark}/raylib_koffi.js +0 -0
  27. package/{benchmark → src/koffi/benchmark}/raylib_node_ffi.js +0 -0
  28. package/{benchmark → src/koffi/benchmark}/raylib_node_raylib.js +0 -0
  29. package/src/koffi/build/2.1.4/koffi_darwin_arm64.tar.gz +0 -0
  30. package/src/koffi/build/2.1.4/koffi_darwin_x64.tar.gz +0 -0
  31. package/src/koffi/build/2.1.4/koffi_freebsd_arm64.tar.gz +0 -0
  32. package/src/koffi/build/2.1.4/koffi_freebsd_ia32.tar.gz +0 -0
  33. package/src/koffi/build/2.1.4/koffi_freebsd_x64.tar.gz +0 -0
  34. package/src/koffi/build/2.1.4/koffi_linux_arm32hf.tar.gz +0 -0
  35. package/src/koffi/build/2.1.4/koffi_linux_arm64.tar.gz +0 -0
  36. package/src/koffi/build/2.1.4/koffi_linux_ia32.tar.gz +0 -0
  37. package/src/koffi/build/2.1.4/koffi_linux_riscv64hf64.tar.gz +0 -0
  38. package/src/koffi/build/2.1.4/koffi_linux_x64.tar.gz +0 -0
  39. package/src/koffi/build/2.1.4/koffi_openbsd_ia32.tar.gz +0 -0
  40. package/src/koffi/build/2.1.4/koffi_openbsd_x64.tar.gz +0 -0
  41. package/src/koffi/build/2.1.4/koffi_win32_arm64.tar.gz +0 -0
  42. package/src/koffi/build/2.1.4/koffi_win32_ia32.tar.gz +0 -0
  43. package/src/koffi/build/2.1.4/koffi_win32_x64.tar.gz +0 -0
  44. package/{doc → src/koffi/doc}/Makefile +0 -0
  45. package/{doc → src/koffi/doc}/benchmarks.md +0 -0
  46. package/{doc → src/koffi/doc}/benchmarks.xlsx +0 -0
  47. package/{doc → src/koffi/doc}/changes.md +0 -0
  48. package/{doc → src/koffi/doc}/conf.py +0 -0
  49. package/{doc → src/koffi/doc}/contribute.md +5 -5
  50. package/{doc → src/koffi/doc}/functions.md +0 -0
  51. package/{doc → src/koffi/doc}/index.rst +1 -1
  52. package/{doc → src/koffi/doc}/make.bat +0 -0
  53. package/{doc → src/koffi/doc}/memory.md +1 -0
  54. package/{doc → src/koffi/doc}/platforms.md +0 -0
  55. package/{doc → src/koffi/doc}/poetry.lock +0 -0
  56. package/{doc → src/koffi/doc}/pyproject.toml +0 -0
  57. package/{doc → src/koffi/doc}/start.md +0 -0
  58. package/{doc → src/koffi/doc}/static/bench_linux.png +0 -0
  59. package/{doc → src/koffi/doc}/static/bench_windows.png +0 -0
  60. package/{doc → src/koffi/doc}/static/custom.css +0 -0
  61. package/{doc → src/koffi/doc}/static/perf_linux_20220623.png +0 -0
  62. package/{doc → src/koffi/doc}/static/perf_linux_20220623_2.png +0 -0
  63. package/{doc → src/koffi/doc}/static/perf_linux_20220627.png +0 -0
  64. package/{doc → src/koffi/doc}/static/perf_linux_20220628.png +0 -0
  65. package/{doc → src/koffi/doc}/static/perf_linux_20220812.png +0 -0
  66. package/{doc → src/koffi/doc}/static/perf_windows_20220623.png +0 -0
  67. package/{doc → src/koffi/doc}/static/perf_windows_20220623_2.png +0 -0
  68. package/{doc → src/koffi/doc}/static/perf_windows_20220627.png +0 -0
  69. package/{doc → src/koffi/doc}/static/perf_windows_20220628.png +0 -0
  70. package/{doc → src/koffi/doc}/static/perf_windows_20220812.png +0 -0
  71. package/{doc → src/koffi/doc}/templates/badges.html +1 -1
  72. package/{doc → src/koffi/doc}/types.md +0 -0
  73. package/src/koffi/qemu/qemu/.gitkeep +0 -0
  74. package/{qemu → src/koffi/qemu}/qemu.js +217 -131
  75. package/{qemu → src/koffi/qemu}/registry/machines.json +24 -0
  76. package/{qemu → src/koffi/qemu}/registry/sha256sum.txt +0 -0
  77. package/src/{abi_arm32.cc → koffi/src/abi_arm32.cc} +1 -1
  78. package/src/{abi_arm32_fwd.S → koffi/src/abi_arm32_fwd.S} +0 -0
  79. package/src/{abi_arm64.cc → koffi/src/abi_arm64.cc} +1 -1
  80. package/src/{abi_arm64_fwd.S → koffi/src/abi_arm64_fwd.S} +0 -0
  81. package/src/{abi_arm64_fwd.asm → koffi/src/abi_arm64_fwd.asm} +0 -0
  82. package/src/{abi_riscv64.cc → koffi/src/abi_riscv64.cc} +1 -1
  83. package/src/{abi_riscv64_fwd.S → koffi/src/abi_riscv64_fwd.S} +0 -0
  84. package/src/{abi_x64_sysv.cc → koffi/src/abi_x64_sysv.cc} +1 -1
  85. package/src/{abi_x64_sysv_fwd.S → koffi/src/abi_x64_sysv_fwd.S} +0 -0
  86. package/src/{abi_x64_win.cc → koffi/src/abi_x64_win.cc} +1 -1
  87. package/src/{abi_x64_win_fwd.asm → koffi/src/abi_x64_win_fwd.asm} +0 -0
  88. package/src/{abi_x86.cc → koffi/src/abi_x86.cc} +1 -1
  89. package/src/{abi_x86_fwd.S → koffi/src/abi_x86_fwd.S} +0 -0
  90. package/src/{abi_x86_fwd.asm → koffi/src/abi_x86_fwd.asm} +0 -0
  91. package/src/{call.cc → koffi/src/call.cc} +1 -1
  92. package/src/{call.hh → koffi/src/call.hh} +2 -2
  93. package/src/{ffi.cc → koffi/src/ffi.cc} +34 -18
  94. package/src/{ffi.hh → koffi/src/ffi.hh} +5 -3
  95. package/src/{index.js → koffi/src/index.js} +0 -0
  96. package/src/{parser.cc → koffi/src/parser.cc} +1 -1
  97. package/src/{parser.hh → koffi/src/parser.hh} +1 -1
  98. package/src/{util.cc → koffi/src/util.cc} +1 -1
  99. package/src/{util.hh → koffi/src/util.hh} +1 -1
  100. package/{test → src/koffi/test}/CMakeLists.txt +14 -15
  101. package/{test → src/koffi/test}/async.js +0 -0
  102. package/{test → src/koffi/test}/callbacks.js +0 -0
  103. package/{test → src/koffi/test}/misc.c +13 -0
  104. package/{test → src/koffi/test}/misc.def +0 -0
  105. package/{test → src/koffi/test}/raylib.js +0 -0
  106. package/{test → src/koffi/test}/sqlite.js +1 -1
  107. package/{test → src/koffi/test}/sync.js +17 -0
  108. package/vendor/brotli/BUILD +144 -0
  109. package/vendor/brotli/CMakeLists.txt +421 -0
  110. package/vendor/brotli/CONTRIBUTING.md +27 -0
  111. package/vendor/brotli/LICENSE +19 -0
  112. package/vendor/brotli/MANIFEST.in +17 -0
  113. package/vendor/brotli/Makefile +55 -0
  114. package/vendor/brotli/Makefile.am +38 -0
  115. package/vendor/brotli/README +15 -0
  116. package/vendor/brotli/README.md +104 -0
  117. package/vendor/brotli/WORKSPACE +21 -0
  118. package/vendor/brotli/bootstrap +35 -0
  119. package/vendor/brotli/c/common/constants.c +15 -0
  120. package/vendor/brotli/c/common/constants.h +200 -0
  121. package/vendor/brotli/c/common/context.c +156 -0
  122. package/vendor/brotli/c/common/context.h +113 -0
  123. package/vendor/brotli/c/common/dictionary.c +5914 -0
  124. package/vendor/brotli/c/common/dictionary.h +64 -0
  125. package/vendor/brotli/c/common/platform.c +22 -0
  126. package/vendor/brotli/c/common/platform.h +594 -0
  127. package/vendor/brotli/c/common/transform.c +291 -0
  128. package/vendor/brotli/c/common/transform.h +85 -0
  129. package/vendor/brotli/c/common/version.h +26 -0
  130. package/vendor/brotli/c/dec/bit_reader.c +76 -0
  131. package/vendor/brotli/c/dec/bit_reader.h +351 -0
  132. package/vendor/brotli/c/dec/decode.c +2608 -0
  133. package/vendor/brotli/c/dec/huffman.c +339 -0
  134. package/vendor/brotli/c/dec/huffman.h +121 -0
  135. package/vendor/brotli/c/dec/prefix.h +732 -0
  136. package/vendor/brotli/c/dec/state.c +159 -0
  137. package/vendor/brotli/c/dec/state.h +365 -0
  138. package/vendor/brotli/c/enc/backward_references.c +145 -0
  139. package/vendor/brotli/c/enc/backward_references.h +39 -0
  140. package/vendor/brotli/c/enc/backward_references_hq.c +843 -0
  141. package/vendor/brotli/c/enc/backward_references_hq.h +95 -0
  142. package/vendor/brotli/c/enc/backward_references_inc.h +163 -0
  143. package/vendor/brotli/c/enc/bit_cost.c +35 -0
  144. package/vendor/brotli/c/enc/bit_cost.h +63 -0
  145. package/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
  146. package/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
  147. package/vendor/brotli/c/enc/block_splitter.c +194 -0
  148. package/vendor/brotli/c/enc/block_splitter.h +51 -0
  149. package/vendor/brotli/c/enc/block_splitter_inc.h +440 -0
  150. package/vendor/brotli/c/enc/brotli_bit_stream.c +1314 -0
  151. package/vendor/brotli/c/enc/brotli_bit_stream.h +84 -0
  152. package/vendor/brotli/c/enc/cluster.c +56 -0
  153. package/vendor/brotli/c/enc/cluster.h +48 -0
  154. package/vendor/brotli/c/enc/cluster_inc.h +320 -0
  155. package/vendor/brotli/c/enc/command.c +28 -0
  156. package/vendor/brotli/c/enc/command.h +190 -0
  157. package/vendor/brotli/c/enc/compress_fragment.c +790 -0
  158. package/vendor/brotli/c/enc/compress_fragment.h +61 -0
  159. package/vendor/brotli/c/enc/compress_fragment_two_pass.c +645 -0
  160. package/vendor/brotli/c/enc/compress_fragment_two_pass.h +54 -0
  161. package/vendor/brotli/c/enc/dictionary_hash.c +1846 -0
  162. package/vendor/brotli/c/enc/dictionary_hash.h +25 -0
  163. package/vendor/brotli/c/enc/encode.c +1927 -0
  164. package/vendor/brotli/c/enc/encoder_dict.c +33 -0
  165. package/vendor/brotli/c/enc/encoder_dict.h +43 -0
  166. package/vendor/brotli/c/enc/entropy_encode.c +503 -0
  167. package/vendor/brotli/c/enc/entropy_encode.h +122 -0
  168. package/vendor/brotli/c/enc/entropy_encode_static.h +539 -0
  169. package/vendor/brotli/c/enc/fast_log.c +105 -0
  170. package/vendor/brotli/c/enc/fast_log.h +66 -0
  171. package/vendor/brotli/c/enc/find_match_length.h +79 -0
  172. package/vendor/brotli/c/enc/hash.h +488 -0
  173. package/vendor/brotli/c/enc/hash_composite_inc.h +125 -0
  174. package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +293 -0
  175. package/vendor/brotli/c/enc/hash_longest_match64_inc.h +267 -0
  176. package/vendor/brotli/c/enc/hash_longest_match_inc.h +262 -0
  177. package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
  178. package/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
  179. package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +329 -0
  180. package/vendor/brotli/c/enc/histogram.c +100 -0
  181. package/vendor/brotli/c/enc/histogram.h +63 -0
  182. package/vendor/brotli/c/enc/histogram_inc.h +51 -0
  183. package/vendor/brotli/c/enc/literal_cost.c +175 -0
  184. package/vendor/brotli/c/enc/literal_cost.h +30 -0
  185. package/vendor/brotli/c/enc/memory.c +170 -0
  186. package/vendor/brotli/c/enc/memory.h +114 -0
  187. package/vendor/brotli/c/enc/metablock.c +663 -0
  188. package/vendor/brotli/c/enc/metablock.h +105 -0
  189. package/vendor/brotli/c/enc/metablock_inc.h +183 -0
  190. package/vendor/brotli/c/enc/params.h +46 -0
  191. package/vendor/brotli/c/enc/prefix.h +53 -0
  192. package/vendor/brotli/c/enc/quality.h +165 -0
  193. package/vendor/brotli/c/enc/ringbuffer.h +167 -0
  194. package/vendor/brotli/c/enc/static_dict.c +486 -0
  195. package/vendor/brotli/c/enc/static_dict.h +40 -0
  196. package/vendor/brotli/c/enc/static_dict_lut.h +5864 -0
  197. package/vendor/brotli/c/enc/utf8_util.c +85 -0
  198. package/vendor/brotli/c/enc/utf8_util.h +32 -0
  199. package/vendor/brotli/c/enc/write_bits.h +87 -0
  200. package/vendor/brotli/c/include/brotli/decode.h +344 -0
  201. package/vendor/brotli/c/include/brotli/encode.h +448 -0
  202. package/vendor/brotli/c/include/brotli/port.h +288 -0
  203. package/vendor/brotli/c/include/brotli/types.h +83 -0
  204. package/vendor/brotli/c/tools/brotli.c +1116 -0
  205. package/vendor/brotli/c/tools/brotli.md +107 -0
  206. package/vendor/brotli/compiler_config_setting.bzl +28 -0
  207. package/vendor/brotli/configure +8 -0
  208. package/vendor/brotli/configure-cmake +318 -0
  209. package/vendor/brotli/configure.ac +14 -0
  210. package/vendor/brotli/docs/brotli.1 +132 -0
  211. package/vendor/brotli/docs/constants.h.3 +47 -0
  212. package/vendor/brotli/docs/decode.h.3 +415 -0
  213. package/vendor/brotli/docs/encode.h.3 +586 -0
  214. package/vendor/brotli/docs/types.h.3 +117 -0
  215. package/vendor/brotli/premake5.lua +78 -0
  216. package/vendor/brotli/python/Makefile +57 -0
  217. package/vendor/brotli/python/README.md +54 -0
  218. package/vendor/brotli/python/_brotli.cc +753 -0
  219. package/vendor/brotli/python/bro.py +160 -0
  220. package/vendor/brotli/python/brotli.py +56 -0
  221. package/vendor/brotli/python/tests/__init__.py +0 -0
  222. package/vendor/brotli/python/tests/_test_utils.py +112 -0
  223. package/vendor/brotli/python/tests/bro_test.py +102 -0
  224. package/vendor/brotli/python/tests/compress_test.py +41 -0
  225. package/vendor/brotli/python/tests/compressor_test.py +94 -0
  226. package/vendor/brotli/python/tests/decompress_test.py +42 -0
  227. package/vendor/brotli/python/tests/decompressor_test.py +59 -0
  228. package/vendor/brotli/scripts/libbrotlicommon.pc.in +11 -0
  229. package/vendor/brotli/scripts/libbrotlidec.pc.in +12 -0
  230. package/vendor/brotli/scripts/libbrotlienc.pc.in +12 -0
  231. package/vendor/brotli/scripts/sources.lst +104 -0
  232. package/vendor/brotli/setup.cfg +5 -0
  233. package/vendor/brotli/setup.py +293 -0
  234. package/vendor/brotli/tests/Makefile +17 -0
  235. package/vendor/brotli/tests/compatibility_test.sh +25 -0
  236. package/vendor/brotli/tests/roundtrip_test.sh +36 -0
  237. package/vendor/brotli/tests/run-compatibility-test.cmake +31 -0
  238. package/vendor/brotli/tests/run-roundtrip-test.cmake +36 -0
  239. package/vendor/brotli/tests/testdata/empty +0 -0
  240. package/vendor/brotli/tests/testdata/empty.compressed +1 -0
  241. package/vendor/brotli/tests/testdata/ukkonooa +1 -0
  242. package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
  243. package/vendor/miniz/ChangeLog.md +235 -0
  244. package/vendor/miniz/LICENSE +22 -0
  245. package/vendor/miniz/examples/example1.c +105 -0
  246. package/vendor/miniz/examples/example2.c +164 -0
  247. package/vendor/miniz/examples/example3.c +269 -0
  248. package/vendor/miniz/examples/example4.c +102 -0
  249. package/vendor/miniz/examples/example5.c +327 -0
  250. package/vendor/miniz/examples/example6.c +166 -0
  251. package/vendor/miniz/miniz.c +7835 -0
  252. package/vendor/miniz/miniz.h +1422 -0
  253. package/vendor/miniz/readme.md +46 -0
  254. package/vendor/{sqlite3 → sqlite3mc}/sqlite3ext.h +18 -2
  255. package/vendor/{sqlite3/sqlite3.c → sqlite3mc/sqlite3mc.c} +60872 -4890
  256. package/vendor/sqlite3mc/sqlite3mc.def +312 -0
  257. package/vendor/{sqlite3/sqlite3.h → sqlite3mc/sqlite3mc.h} +480 -36
  258. package/build/qemu/2.1.3/koffi_darwin_arm64.tar.gz +0 -0
  259. package/build/qemu/2.1.3/koffi_darwin_x64.tar.gz +0 -0
  260. package/build/qemu/2.1.3/koffi_freebsd_arm64.tar.gz +0 -0
  261. package/build/qemu/2.1.3/koffi_freebsd_ia32.tar.gz +0 -0
  262. package/build/qemu/2.1.3/koffi_freebsd_x64.tar.gz +0 -0
  263. package/build/qemu/2.1.3/koffi_linux_arm32hf.tar.gz +0 -0
  264. package/build/qemu/2.1.3/koffi_linux_arm64.tar.gz +0 -0
  265. package/build/qemu/2.1.3/koffi_linux_ia32.tar.gz +0 -0
  266. package/build/qemu/2.1.3/koffi_linux_riscv64hf64.tar.gz +0 -0
  267. package/build/qemu/2.1.3/koffi_linux_x64.tar.gz +0 -0
  268. package/build/qemu/2.1.3/koffi_openbsd_ia32.tar.gz +0 -0
  269. package/build/qemu/2.1.3/koffi_openbsd_x64.tar.gz +0 -0
  270. package/build/qemu/2.1.3/koffi_win32_arm64.tar.gz +0 -0
  271. package/build/qemu/2.1.3/koffi_win32_ia32.tar.gz +0 -0
  272. package/build/qemu/2.1.3/koffi_win32_x64.tar.gz +0 -0
  273. package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +0 -145
  274. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
  275. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
  276. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
  277. package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
  278. package/vendor/raylib/projects/VS2022/examples/audio_module_playing.vcxproj +0 -390
  279. package/vendor/raylib/projects/VS2022/examples/audio_multichannel_sound.vcxproj +0 -390
  280. package/vendor/raylib/projects/VS2022/examples/audio_music_stream.vcxproj +0 -390
  281. package/vendor/raylib/projects/VS2022/examples/audio_raw_stream.vcxproj +0 -390
  282. package/vendor/raylib/projects/VS2022/examples/audio_sound_loading.vcxproj +0 -390
  283. package/vendor/raylib/projects/VS2022/examples/audio_stream_effects.vcxproj +0 -390
  284. package/vendor/raylib/projects/VS2022/examples/core_2d_camera.vcxproj +0 -390
  285. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +0 -390
  286. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +0 -390
  287. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +0 -390
  288. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_free.vcxproj +0 -390
  289. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_mode.vcxproj +0 -390
  290. package/vendor/raylib/projects/VS2022/examples/core_3d_picking.vcxproj +0 -390
  291. package/vendor/raylib/projects/VS2022/examples/core_basic_screen_manager.vcxproj +0 -390
  292. package/vendor/raylib/projects/VS2022/examples/core_basic_window.vcxproj +0 -390
  293. package/vendor/raylib/projects/VS2022/examples/core_custom_frame_control.vcxproj +0 -390
  294. package/vendor/raylib/projects/VS2022/examples/core_custom_logging.vcxproj +0 -390
  295. package/vendor/raylib/projects/VS2022/examples/core_drop_files.vcxproj +0 -390
  296. package/vendor/raylib/projects/VS2022/examples/core_input_gamepad.vcxproj +0 -387
  297. package/vendor/raylib/projects/VS2022/examples/core_input_gestures.vcxproj +0 -387
  298. package/vendor/raylib/projects/VS2022/examples/core_input_keys.vcxproj +0 -387
  299. package/vendor/raylib/projects/VS2022/examples/core_input_mouse.vcxproj +0 -387
  300. package/vendor/raylib/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +0 -387
  301. package/vendor/raylib/projects/VS2022/examples/core_input_multitouch.vcxproj +0 -387
  302. package/vendor/raylib/projects/VS2022/examples/core_loading_thread.vcxproj +0 -387
  303. package/vendor/raylib/projects/VS2022/examples/core_random_values.vcxproj +0 -387
  304. package/vendor/raylib/projects/VS2022/examples/core_scissor_test.vcxproj +0 -387
  305. package/vendor/raylib/projects/VS2022/examples/core_split_screen.vcxproj +0 -387
  306. package/vendor/raylib/projects/VS2022/examples/core_storage_values.vcxproj +0 -387
  307. package/vendor/raylib/projects/VS2022/examples/core_vr_simulator.vcxproj +0 -387
  308. package/vendor/raylib/projects/VS2022/examples/core_window_flags.vcxproj +0 -387
  309. package/vendor/raylib/projects/VS2022/examples/core_window_letterbox.vcxproj +0 -387
  310. package/vendor/raylib/projects/VS2022/examples/core_window_should_close.vcxproj +0 -390
  311. package/vendor/raylib/projects/VS2022/examples/core_world_screen.vcxproj +0 -387
  312. package/vendor/raylib/projects/VS2022/examples/easings_testbed.vcxproj +0 -387
  313. package/vendor/raylib/projects/VS2022/examples/embedded_files_loading.vcxproj +0 -387
  314. package/vendor/raylib/projects/VS2022/examples/models_animation.vcxproj +0 -387
  315. package/vendor/raylib/projects/VS2022/examples/models_billboard.vcxproj +0 -387
  316. package/vendor/raylib/projects/VS2022/examples/models_box_collisions.vcxproj +0 -387
  317. package/vendor/raylib/projects/VS2022/examples/models_cubicmap.vcxproj +0 -387
  318. package/vendor/raylib/projects/VS2022/examples/models_first_person_maze.vcxproj +0 -387
  319. package/vendor/raylib/projects/VS2022/examples/models_geometric_shapes.vcxproj +0 -387
  320. package/vendor/raylib/projects/VS2022/examples/models_heightmap.vcxproj +0 -387
  321. package/vendor/raylib/projects/VS2022/examples/models_loading.vcxproj +0 -387
  322. package/vendor/raylib/projects/VS2022/examples/models_loading_gltf.vcxproj +0 -387
  323. package/vendor/raylib/projects/VS2022/examples/models_loading_vox.vcxproj +0 -387
  324. package/vendor/raylib/projects/VS2022/examples/models_mesh_generation.vcxproj +0 -387
  325. package/vendor/raylib/projects/VS2022/examples/models_mesh_picking.vcxproj +0 -387
  326. package/vendor/raylib/projects/VS2022/examples/models_orthographic_projection.vcxproj +0 -387
  327. package/vendor/raylib/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +0 -387
  328. package/vendor/raylib/projects/VS2022/examples/models_skybox.vcxproj +0 -387
  329. package/vendor/raylib/projects/VS2022/examples/models_waving_cubes.vcxproj +0 -387
  330. package/vendor/raylib/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +0 -387
  331. package/vendor/raylib/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +0 -391
  332. package/vendor/raylib/projects/VS2022/examples/rlgl_standalone.vcxproj +0 -391
  333. package/vendor/raylib/projects/VS2022/examples/shaders_basic_lighting.vcxproj +0 -387
  334. package/vendor/raylib/projects/VS2022/examples/shaders_custom_uniform.vcxproj +0 -387
  335. package/vendor/raylib/projects/VS2022/examples/shaders_eratosthenes.vcxproj +0 -387
  336. package/vendor/raylib/projects/VS2022/examples/shaders_fog.vcxproj +0 -387
  337. package/vendor/raylib/projects/VS2022/examples/shaders_hot_reloading.vcxproj +0 -387
  338. package/vendor/raylib/projects/VS2022/examples/shaders_julia_set.vcxproj +0 -387
  339. package/vendor/raylib/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +0 -387
  340. package/vendor/raylib/projects/VS2022/examples/shaders_model_shader.vcxproj +0 -387
  341. package/vendor/raylib/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +0 -387
  342. package/vendor/raylib/projects/VS2022/examples/shaders_palette_switch.vcxproj +0 -387
  343. package/vendor/raylib/projects/VS2022/examples/shaders_postprocessing.vcxproj +0 -387
  344. package/vendor/raylib/projects/VS2022/examples/shaders_raymarching.vcxproj +0 -387
  345. package/vendor/raylib/projects/VS2022/examples/shaders_shapes_textures.vcxproj +0 -387
  346. package/vendor/raylib/projects/VS2022/examples/shaders_simple_mask.vcxproj +0 -387
  347. package/vendor/raylib/projects/VS2022/examples/shaders_spotlight.vcxproj +0 -387
  348. package/vendor/raylib/projects/VS2022/examples/shaders_texture_drawing.vcxproj +0 -387
  349. package/vendor/raylib/projects/VS2022/examples/shaders_texture_waves.vcxproj +0 -387
  350. package/vendor/raylib/projects/VS2022/examples/shapes_basic_shapes.vcxproj +0 -387
  351. package/vendor/raylib/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +0 -387
  352. package/vendor/raylib/projects/VS2022/examples/shapes_collision_area.vcxproj +0 -387
  353. package/vendor/raylib/projects/VS2022/examples/shapes_colors_palette.vcxproj +0 -387
  354. package/vendor/raylib/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +0 -387
  355. package/vendor/raylib/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
  356. package/vendor/raylib/projects/VS2022/examples/shapes_draw_ring.vcxproj +0 -387
  357. package/vendor/raylib/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +0 -387
  358. package/vendor/raylib/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +0 -387
  359. package/vendor/raylib/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +0 -387
  360. package/vendor/raylib/projects/VS2022/examples/shapes_following_eyes.vcxproj +0 -387
  361. package/vendor/raylib/projects/VS2022/examples/shapes_lines_bezier.vcxproj +0 -387
  362. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib.vcxproj +0 -387
  363. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +0 -387
  364. package/vendor/raylib/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +0 -387
  365. package/vendor/raylib/projects/VS2022/examples/text_codepoints_loading.vcxproj +0 -387
  366. package/vendor/raylib/projects/VS2022/examples/text_draw_3d.vcxproj +0 -387
  367. package/vendor/raylib/projects/VS2022/examples/text_font_filters.vcxproj +0 -387
  368. package/vendor/raylib/projects/VS2022/examples/text_font_loading.vcxproj +0 -387
  369. package/vendor/raylib/projects/VS2022/examples/text_font_sdf.vcxproj +0 -387
  370. package/vendor/raylib/projects/VS2022/examples/text_font_spritefont.vcxproj +0 -387
  371. package/vendor/raylib/projects/VS2022/examples/text_format_text.vcxproj +0 -387
  372. package/vendor/raylib/projects/VS2022/examples/text_input_box.vcxproj +0 -387
  373. package/vendor/raylib/projects/VS2022/examples/text_raylib_fonts.vcxproj +0 -387
  374. package/vendor/raylib/projects/VS2022/examples/text_rectangle_bounds.vcxproj +0 -387
  375. package/vendor/raylib/projects/VS2022/examples/text_unicode.vcxproj +0 -387
  376. package/vendor/raylib/projects/VS2022/examples/text_writing_anim.vcxproj +0 -387
  377. package/vendor/raylib/projects/VS2022/examples/textures_background_scrolling.vcxproj +0 -387
  378. package/vendor/raylib/projects/VS2022/examples/textures_blend_modes.vcxproj +0 -387
  379. package/vendor/raylib/projects/VS2022/examples/textures_bunnymark.vcxproj +0 -387
  380. package/vendor/raylib/projects/VS2022/examples/textures_draw_tiled.vcxproj +0 -387
  381. package/vendor/raylib/projects/VS2022/examples/textures_fog_of_war.vcxproj +0 -387
  382. package/vendor/raylib/projects/VS2022/examples/textures_gif_player.vcxproj +0 -387
  383. package/vendor/raylib/projects/VS2022/examples/textures_image_drawing.vcxproj +0 -387
  384. package/vendor/raylib/projects/VS2022/examples/textures_image_generation.vcxproj +0 -387
  385. package/vendor/raylib/projects/VS2022/examples/textures_image_loading.vcxproj +0 -387
  386. package/vendor/raylib/projects/VS2022/examples/textures_image_processing.vcxproj +0 -387
  387. package/vendor/raylib/projects/VS2022/examples/textures_image_text.vcxproj +0 -387
  388. package/vendor/raylib/projects/VS2022/examples/textures_logo_raylib.vcxproj +0 -387
  389. package/vendor/raylib/projects/VS2022/examples/textures_mouse_painting.vcxproj +0 -387
  390. package/vendor/raylib/projects/VS2022/examples/textures_npatch_drawing.vcxproj +0 -387
  391. package/vendor/raylib/projects/VS2022/examples/textures_particles_blending.vcxproj +0 -387
  392. package/vendor/raylib/projects/VS2022/examples/textures_polygon.vcxproj +0 -387
  393. package/vendor/raylib/projects/VS2022/examples/textures_raw_data.vcxproj +0 -387
  394. package/vendor/raylib/projects/VS2022/examples/textures_sprite_anim.vcxproj +0 -387
  395. package/vendor/raylib/projects/VS2022/examples/textures_sprite_button.vcxproj +0 -387
  396. package/vendor/raylib/projects/VS2022/examples/textures_sprite_explosion.vcxproj +0 -387
  397. package/vendor/raylib/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +0 -387
  398. package/vendor/raylib/projects/VS2022/examples/textures_to_image.vcxproj +0 -387
  399. package/vendor/raylib/projects/VS2022/raylib/raylib.vcxproj +0 -340
  400. package/vendor/raylib/projects/VS2022/raylib.sln +0 -2347
  401. package/vendor/sqlite3/shell.c +0 -23496
@@ -0,0 +1,85 @@
1
+ /* Copyright 2013 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /* Heuristics for deciding about the UTF8-ness of strings. */
8
+
9
+ #include "./utf8_util.h"
10
+
11
+ #include <brotli/types.h>
12
+
13
+ #if defined(__cplusplus) || defined(c_plusplus)
14
+ extern "C" {
15
+ #endif
16
+
17
+ static size_t BrotliParseAsUTF8(
18
+ int* symbol, const uint8_t* input, size_t size) {
19
+ /* ASCII */
20
+ if ((input[0] & 0x80) == 0) {
21
+ *symbol = input[0];
22
+ if (*symbol > 0) {
23
+ return 1;
24
+ }
25
+ }
26
+ /* 2-byte UTF8 */
27
+ if (size > 1u &&
28
+ (input[0] & 0xE0) == 0xC0 &&
29
+ (input[1] & 0xC0) == 0x80) {
30
+ *symbol = (((input[0] & 0x1F) << 6) |
31
+ (input[1] & 0x3F));
32
+ if (*symbol > 0x7F) {
33
+ return 2;
34
+ }
35
+ }
36
+ /* 3-byte UFT8 */
37
+ if (size > 2u &&
38
+ (input[0] & 0xF0) == 0xE0 &&
39
+ (input[1] & 0xC0) == 0x80 &&
40
+ (input[2] & 0xC0) == 0x80) {
41
+ *symbol = (((input[0] & 0x0F) << 12) |
42
+ ((input[1] & 0x3F) << 6) |
43
+ (input[2] & 0x3F));
44
+ if (*symbol > 0x7FF) {
45
+ return 3;
46
+ }
47
+ }
48
+ /* 4-byte UFT8 */
49
+ if (size > 3u &&
50
+ (input[0] & 0xF8) == 0xF0 &&
51
+ (input[1] & 0xC0) == 0x80 &&
52
+ (input[2] & 0xC0) == 0x80 &&
53
+ (input[3] & 0xC0) == 0x80) {
54
+ *symbol = (((input[0] & 0x07) << 18) |
55
+ ((input[1] & 0x3F) << 12) |
56
+ ((input[2] & 0x3F) << 6) |
57
+ (input[3] & 0x3F));
58
+ if (*symbol > 0xFFFF && *symbol <= 0x10FFFF) {
59
+ return 4;
60
+ }
61
+ }
62
+ /* Not UTF8, emit a special symbol above the UTF8-code space */
63
+ *symbol = 0x110000 | input[0];
64
+ return 1;
65
+ }
66
+
67
+ /* Returns 1 if at least min_fraction of the data is UTF8-encoded.*/
68
+ BROTLI_BOOL BrotliIsMostlyUTF8(
69
+ const uint8_t* data, const size_t pos, const size_t mask,
70
+ const size_t length, const double min_fraction) {
71
+ size_t size_utf8 = 0;
72
+ size_t i = 0;
73
+ while (i < length) {
74
+ int symbol;
75
+ size_t bytes_read =
76
+ BrotliParseAsUTF8(&symbol, &data[(pos + i) & mask], length - i);
77
+ i += bytes_read;
78
+ if (symbol < 0x110000) size_utf8 += bytes_read;
79
+ }
80
+ return TO_BROTLI_BOOL((double)size_utf8 > min_fraction * (double)length);
81
+ }
82
+
83
+ #if defined(__cplusplus) || defined(c_plusplus)
84
+ } /* extern "C" */
85
+ #endif
@@ -0,0 +1,32 @@
1
+ /* Copyright 2013 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /* Heuristics for deciding about the UTF8-ness of strings. */
8
+
9
+ #ifndef BROTLI_ENC_UTF8_UTIL_H_
10
+ #define BROTLI_ENC_UTF8_UTIL_H_
11
+
12
+ #include "../common/platform.h"
13
+ #include <brotli/types.h>
14
+
15
+ #if defined(__cplusplus) || defined(c_plusplus)
16
+ extern "C" {
17
+ #endif
18
+
19
+ static const double kMinUTF8Ratio = 0.75;
20
+
21
+ /* Returns 1 if at least min_fraction of the bytes between pos and
22
+ pos + length in the (data, mask) ring-buffer is UTF8-encoded, otherwise
23
+ returns 0. */
24
+ BROTLI_INTERNAL BROTLI_BOOL BrotliIsMostlyUTF8(
25
+ const uint8_t* data, const size_t pos, const size_t mask,
26
+ const size_t length, const double min_fraction);
27
+
28
+ #if defined(__cplusplus) || defined(c_plusplus)
29
+ } /* extern "C" */
30
+ #endif
31
+
32
+ #endif /* BROTLI_ENC_UTF8_UTIL_H_ */
@@ -0,0 +1,87 @@
1
+ /* Copyright 2010 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /* Write bits into a byte array. */
8
+
9
+ #ifndef BROTLI_ENC_WRITE_BITS_H_
10
+ #define BROTLI_ENC_WRITE_BITS_H_
11
+
12
+ #include "../common/platform.h"
13
+ #include <brotli/types.h>
14
+
15
+ #if defined(__cplusplus) || defined(c_plusplus)
16
+ extern "C" {
17
+ #endif
18
+
19
+ /* This function writes bits into bytes in increasing addresses, and within
20
+ a byte least-significant-bit first.
21
+
22
+ The function can write up to 56 bits in one go with WriteBits
23
+ Example: let's assume that 3 bits (Rs below) have been written already:
24
+
25
+ BYTE-0 BYTE+1 BYTE+2
26
+
27
+ 0000 0RRR 0000 0000 0000 0000
28
+
29
+ Now, we could write 5 or less bits in MSB by just shifting by 3
30
+ and OR'ing to BYTE-0.
31
+
32
+ For n bits, we take the last 5 bits, OR that with high bits in BYTE-0,
33
+ and locate the rest in BYTE+1, BYTE+2, etc. */
34
+ static BROTLI_INLINE void BrotliWriteBits(size_t n_bits,
35
+ uint64_t bits,
36
+ size_t* BROTLI_RESTRICT pos,
37
+ uint8_t* BROTLI_RESTRICT array) {
38
+ BROTLI_LOG(("WriteBits %2d 0x%08x%08x %10d\n", (int)n_bits,
39
+ (uint32_t)(bits >> 32), (uint32_t)(bits & 0xFFFFFFFF),
40
+ (int)*pos));
41
+ BROTLI_DCHECK((bits >> n_bits) == 0);
42
+ BROTLI_DCHECK(n_bits <= 56);
43
+ #if defined(BROTLI_LITTLE_ENDIAN)
44
+ /* This branch of the code can write up to 56 bits at a time,
45
+ 7 bits are lost by being perhaps already in *p and at least
46
+ 1 bit is needed to initialize the bit-stream ahead (i.e. if 7
47
+ bits are in *p and we write 57 bits, then the next write will
48
+ access a byte that was never initialized). */
49
+ {
50
+ uint8_t* p = &array[*pos >> 3];
51
+ uint64_t v = (uint64_t)(*p); /* Zero-extend 8 to 64 bits. */
52
+ v |= bits << (*pos & 7);
53
+ BROTLI_UNALIGNED_STORE64LE(p, v); /* Set some bits. */
54
+ *pos += n_bits;
55
+ }
56
+ #else
57
+ /* implicit & 0xFF is assumed for uint8_t arithmetics */
58
+ {
59
+ uint8_t* array_pos = &array[*pos >> 3];
60
+ const size_t bits_reserved_in_first_byte = (*pos & 7);
61
+ size_t bits_left_to_write;
62
+ bits <<= bits_reserved_in_first_byte;
63
+ *array_pos++ |= (uint8_t)bits;
64
+ for (bits_left_to_write = n_bits + bits_reserved_in_first_byte;
65
+ bits_left_to_write >= 9;
66
+ bits_left_to_write -= 8) {
67
+ bits >>= 8;
68
+ *array_pos++ = (uint8_t)bits;
69
+ }
70
+ *array_pos = 0;
71
+ *pos += n_bits;
72
+ }
73
+ #endif
74
+ }
75
+
76
+ static BROTLI_INLINE void BrotliWriteBitsPrepareStorage(
77
+ size_t pos, uint8_t* array) {
78
+ BROTLI_LOG(("WriteBitsPrepareStorage %10d\n", (int)pos));
79
+ BROTLI_DCHECK((pos & 7) == 0);
80
+ array[pos >> 3] = 0;
81
+ }
82
+
83
+ #if defined(__cplusplus) || defined(c_plusplus)
84
+ } /* extern "C" */
85
+ #endif
86
+
87
+ #endif /* BROTLI_ENC_WRITE_BITS_H_ */
@@ -0,0 +1,344 @@
1
+ /* Copyright 2013 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /**
8
+ * @file
9
+ * API for Brotli decompression.
10
+ */
11
+
12
+ #ifndef BROTLI_DEC_DECODE_H_
13
+ #define BROTLI_DEC_DECODE_H_
14
+
15
+ #include "port.h"
16
+ #include "types.h"
17
+
18
+ #if defined(__cplusplus) || defined(c_plusplus)
19
+ extern "C" {
20
+ #endif
21
+
22
+ /**
23
+ * Opaque structure that holds decoder state.
24
+ *
25
+ * Allocated and initialized with ::BrotliDecoderCreateInstance.
26
+ * Cleaned up and deallocated with ::BrotliDecoderDestroyInstance.
27
+ */
28
+ typedef struct BrotliDecoderStateStruct BrotliDecoderState;
29
+
30
+ /**
31
+ * Result type for ::BrotliDecoderDecompress and
32
+ * ::BrotliDecoderDecompressStream functions.
33
+ */
34
+ typedef enum {
35
+ /** Decoding error, e.g. corrupted input or memory allocation problem. */
36
+ BROTLI_DECODER_RESULT_ERROR = 0,
37
+ /** Decoding successfully completed. */
38
+ BROTLI_DECODER_RESULT_SUCCESS = 1,
39
+ /** Partially done; should be called again with more input. */
40
+ BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT = 2,
41
+ /** Partially done; should be called again with more output. */
42
+ BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT = 3
43
+ } BrotliDecoderResult;
44
+
45
+ /**
46
+ * Template that evaluates items of ::BrotliDecoderErrorCode.
47
+ *
48
+ * Example: @code {.cpp}
49
+ * // Log Brotli error code.
50
+ * switch (brotliDecoderErrorCode) {
51
+ * #define CASE_(PREFIX, NAME, CODE) \
52
+ * case BROTLI_DECODER ## PREFIX ## NAME: \
53
+ * LOG(INFO) << "error code:" << #NAME; \
54
+ * break;
55
+ * #define NEWLINE_
56
+ * BROTLI_DECODER_ERROR_CODES_LIST(CASE_, NEWLINE_)
57
+ * #undef CASE_
58
+ * #undef NEWLINE_
59
+ * default: LOG(FATAL) << "unknown brotli error code";
60
+ * }
61
+ * @endcode
62
+ */
63
+ #define BROTLI_DECODER_ERROR_CODES_LIST(BROTLI_ERROR_CODE, SEPARATOR) \
64
+ BROTLI_ERROR_CODE(_, NO_ERROR, 0) SEPARATOR \
65
+ /* Same as BrotliDecoderResult values */ \
66
+ BROTLI_ERROR_CODE(_, SUCCESS, 1) SEPARATOR \
67
+ BROTLI_ERROR_CODE(_, NEEDS_MORE_INPUT, 2) SEPARATOR \
68
+ BROTLI_ERROR_CODE(_, NEEDS_MORE_OUTPUT, 3) SEPARATOR \
69
+ \
70
+ /* Errors caused by invalid input */ \
71
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, EXUBERANT_NIBBLE, -1) SEPARATOR \
72
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, RESERVED, -2) SEPARATOR \
73
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, EXUBERANT_META_NIBBLE, -3) SEPARATOR \
74
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, SIMPLE_HUFFMAN_ALPHABET, -4) SEPARATOR \
75
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, SIMPLE_HUFFMAN_SAME, -5) SEPARATOR \
76
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, CL_SPACE, -6) SEPARATOR \
77
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, HUFFMAN_SPACE, -7) SEPARATOR \
78
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, CONTEXT_MAP_REPEAT, -8) SEPARATOR \
79
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, BLOCK_LENGTH_1, -9) SEPARATOR \
80
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, BLOCK_LENGTH_2, -10) SEPARATOR \
81
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, TRANSFORM, -11) SEPARATOR \
82
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, DICTIONARY, -12) SEPARATOR \
83
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, WINDOW_BITS, -13) SEPARATOR \
84
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_1, -14) SEPARATOR \
85
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_2, -15) SEPARATOR \
86
+ BROTLI_ERROR_CODE(_ERROR_FORMAT_, DISTANCE, -16) SEPARATOR \
87
+ \
88
+ /* -17..-18 codes are reserved */ \
89
+ \
90
+ BROTLI_ERROR_CODE(_ERROR_, DICTIONARY_NOT_SET, -19) SEPARATOR \
91
+ BROTLI_ERROR_CODE(_ERROR_, INVALID_ARGUMENTS, -20) SEPARATOR \
92
+ \
93
+ /* Memory allocation problems */ \
94
+ BROTLI_ERROR_CODE(_ERROR_ALLOC_, CONTEXT_MODES, -21) SEPARATOR \
95
+ /* Literal, insert and distance trees together */ \
96
+ BROTLI_ERROR_CODE(_ERROR_ALLOC_, TREE_GROUPS, -22) SEPARATOR \
97
+ /* -23..-24 codes are reserved for distinct tree groups */ \
98
+ BROTLI_ERROR_CODE(_ERROR_ALLOC_, CONTEXT_MAP, -25) SEPARATOR \
99
+ BROTLI_ERROR_CODE(_ERROR_ALLOC_, RING_BUFFER_1, -26) SEPARATOR \
100
+ BROTLI_ERROR_CODE(_ERROR_ALLOC_, RING_BUFFER_2, -27) SEPARATOR \
101
+ /* -28..-29 codes are reserved for dynamic ring-buffer allocation */ \
102
+ BROTLI_ERROR_CODE(_ERROR_ALLOC_, BLOCK_TYPE_TREES, -30) SEPARATOR \
103
+ \
104
+ /* "Impossible" states */ \
105
+ BROTLI_ERROR_CODE(_ERROR_, UNREACHABLE, -31)
106
+
107
+ /**
108
+ * Error code for detailed logging / production debugging.
109
+ *
110
+ * See ::BrotliDecoderGetErrorCode and ::BROTLI_LAST_ERROR_CODE.
111
+ */
112
+ typedef enum {
113
+ #define BROTLI_COMMA_ ,
114
+ #define BROTLI_ERROR_CODE_ENUM_ITEM_(PREFIX, NAME, CODE) \
115
+ BROTLI_DECODER ## PREFIX ## NAME = CODE
116
+ BROTLI_DECODER_ERROR_CODES_LIST(BROTLI_ERROR_CODE_ENUM_ITEM_, BROTLI_COMMA_)
117
+ } BrotliDecoderErrorCode;
118
+ #undef BROTLI_ERROR_CODE_ENUM_ITEM_
119
+ #undef BROTLI_COMMA_
120
+
121
+ /**
122
+ * The value of the last error code, negative integer.
123
+ *
124
+ * All other error code values are in the range from ::BROTLI_LAST_ERROR_CODE
125
+ * to @c -1. There are also 4 other possible non-error codes @c 0 .. @c 3 in
126
+ * ::BrotliDecoderErrorCode enumeration.
127
+ */
128
+ #define BROTLI_LAST_ERROR_CODE BROTLI_DECODER_ERROR_UNREACHABLE
129
+
130
+ /** Options to be used with ::BrotliDecoderSetParameter. */
131
+ typedef enum BrotliDecoderParameter {
132
+ /**
133
+ * Disable "canny" ring buffer allocation strategy.
134
+ *
135
+ * Ring buffer is allocated according to window size, despite the real size of
136
+ * the content.
137
+ */
138
+ BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION = 0,
139
+ /**
140
+ * Flag that determines if "Large Window Brotli" is used.
141
+ */
142
+ BROTLI_DECODER_PARAM_LARGE_WINDOW = 1
143
+ } BrotliDecoderParameter;
144
+
145
+ /**
146
+ * Sets the specified parameter to the given decoder instance.
147
+ *
148
+ * @param state decoder instance
149
+ * @param param parameter to set
150
+ * @param value new parameter value
151
+ * @returns ::BROTLI_FALSE if parameter is unrecognized, or value is invalid
152
+ * @returns ::BROTLI_TRUE if value is accepted
153
+ */
154
+ BROTLI_DEC_API BROTLI_BOOL BrotliDecoderSetParameter(
155
+ BrotliDecoderState* state, BrotliDecoderParameter param, uint32_t value);
156
+
157
+ /**
158
+ * Creates an instance of ::BrotliDecoderState and initializes it.
159
+ *
160
+ * The instance can be used once for decoding and should then be destroyed with
161
+ * ::BrotliDecoderDestroyInstance, it cannot be reused for a new decoding
162
+ * session.
163
+ *
164
+ * @p alloc_func and @p free_func @b MUST be both zero or both non-zero. In the
165
+ * case they are both zero, default memory allocators are used. @p opaque is
166
+ * passed to @p alloc_func and @p free_func when they are called. @p free_func
167
+ * has to return without doing anything when asked to free a NULL pointer.
168
+ *
169
+ * @param alloc_func custom memory allocation function
170
+ * @param free_func custom memory free function
171
+ * @param opaque custom memory manager handle
172
+ * @returns @c 0 if instance can not be allocated or initialized
173
+ * @returns pointer to initialized ::BrotliDecoderState otherwise
174
+ */
175
+ BROTLI_DEC_API BrotliDecoderState* BrotliDecoderCreateInstance(
176
+ brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque);
177
+
178
+ /**
179
+ * Deinitializes and frees ::BrotliDecoderState instance.
180
+ *
181
+ * @param state decoder instance to be cleaned up and deallocated
182
+ */
183
+ BROTLI_DEC_API void BrotliDecoderDestroyInstance(BrotliDecoderState* state);
184
+
185
+ /**
186
+ * Performs one-shot memory-to-memory decompression.
187
+ *
188
+ * Decompresses the data in @p encoded_buffer into @p decoded_buffer, and sets
189
+ * @p *decoded_size to the decompressed length.
190
+ *
191
+ * @param encoded_size size of @p encoded_buffer
192
+ * @param encoded_buffer compressed data buffer with at least @p encoded_size
193
+ * addressable bytes
194
+ * @param[in, out] decoded_size @b in: size of @p decoded_buffer; \n
195
+ * @b out: length of decompressed data written to
196
+ * @p decoded_buffer
197
+ * @param decoded_buffer decompressed data destination buffer
198
+ * @returns ::BROTLI_DECODER_RESULT_ERROR if input is corrupted, memory
199
+ * allocation failed, or @p decoded_buffer is not large enough;
200
+ * @returns ::BROTLI_DECODER_RESULT_SUCCESS otherwise
201
+ */
202
+ BROTLI_DEC_API BrotliDecoderResult BrotliDecoderDecompress(
203
+ size_t encoded_size,
204
+ const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
205
+ size_t* decoded_size,
206
+ uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]);
207
+
208
+ /**
209
+ * Decompresses the input stream to the output stream.
210
+ *
211
+ * The values @p *available_in and @p *available_out must specify the number of
212
+ * bytes addressable at @p *next_in and @p *next_out respectively.
213
+ * When @p *available_out is @c 0, @p next_out is allowed to be @c NULL.
214
+ *
215
+ * After each call, @p *available_in will be decremented by the amount of input
216
+ * bytes consumed, and the @p *next_in pointer will be incremented by that
217
+ * amount. Similarly, @p *available_out will be decremented by the amount of
218
+ * output bytes written, and the @p *next_out pointer will be incremented by
219
+ * that amount.
220
+ *
221
+ * @p total_out, if it is not a null-pointer, will be set to the number
222
+ * of bytes decompressed since the last @p state initialization.
223
+ *
224
+ * @note Input is never overconsumed, so @p next_in and @p available_in could be
225
+ * passed to the next consumer after decoding is complete.
226
+ *
227
+ * @param state decoder instance
228
+ * @param[in, out] available_in @b in: amount of available input; \n
229
+ * @b out: amount of unused input
230
+ * @param[in, out] next_in pointer to the next compressed byte
231
+ * @param[in, out] available_out @b in: length of output buffer; \n
232
+ * @b out: remaining size of output buffer
233
+ * @param[in, out] next_out output buffer cursor;
234
+ * can be @c NULL if @p available_out is @c 0
235
+ * @param[out] total_out number of bytes decompressed so far; can be @c NULL
236
+ * @returns ::BROTLI_DECODER_RESULT_ERROR if input is corrupted, memory
237
+ * allocation failed, arguments were invalid, etc.;
238
+ * use ::BrotliDecoderGetErrorCode to get detailed error code
239
+ * @returns ::BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT decoding is blocked until
240
+ * more input data is provided
241
+ * @returns ::BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT decoding is blocked until
242
+ * more output space is provided
243
+ * @returns ::BROTLI_DECODER_RESULT_SUCCESS decoding is finished, no more
244
+ * input might be consumed and no more output will be produced
245
+ */
246
+ BROTLI_DEC_API BrotliDecoderResult BrotliDecoderDecompressStream(
247
+ BrotliDecoderState* state, size_t* available_in, const uint8_t** next_in,
248
+ size_t* available_out, uint8_t** next_out, size_t* total_out);
249
+
250
+ /**
251
+ * Checks if decoder has more output.
252
+ *
253
+ * @param state decoder instance
254
+ * @returns ::BROTLI_TRUE, if decoder has some unconsumed output
255
+ * @returns ::BROTLI_FALSE otherwise
256
+ */
257
+ BROTLI_DEC_API BROTLI_BOOL BrotliDecoderHasMoreOutput(
258
+ const BrotliDecoderState* state);
259
+
260
+ /**
261
+ * Acquires pointer to internal output buffer.
262
+ *
263
+ * This method is used to make language bindings easier and more efficient:
264
+ * -# push data to ::BrotliDecoderDecompressStream,
265
+ * until ::BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT is reported
266
+ * -# use ::BrotliDecoderTakeOutput to peek bytes and copy to language-specific
267
+ * entity
268
+ *
269
+ * Also this could be useful if there is an output stream that is able to
270
+ * consume all the provided data (e.g. when data is saved to file system).
271
+ *
272
+ * @attention After every call to ::BrotliDecoderTakeOutput @p *size bytes of
273
+ * output are considered consumed for all consecutive calls to the
274
+ * instance methods; returned pointer becomes invalidated as well.
275
+ *
276
+ * @note Decoder output is not guaranteed to be contiguous. This means that
277
+ * after the size-unrestricted call to ::BrotliDecoderTakeOutput,
278
+ * immediate next call to ::BrotliDecoderTakeOutput may return more data.
279
+ *
280
+ * @param state decoder instance
281
+ * @param[in, out] size @b in: number of bytes caller is ready to take, @c 0 if
282
+ * any amount could be handled; \n
283
+ * @b out: amount of data pointed by returned pointer and
284
+ * considered consumed; \n
285
+ * out value is never greater than in value, unless it is @c 0
286
+ * @returns pointer to output data
287
+ */
288
+ BROTLI_DEC_API const uint8_t* BrotliDecoderTakeOutput(
289
+ BrotliDecoderState* state, size_t* size);
290
+
291
+ /**
292
+ * Checks if instance has already consumed input.
293
+ *
294
+ * Instance that returns ::BROTLI_FALSE is considered "fresh" and could be
295
+ * reused.
296
+ *
297
+ * @param state decoder instance
298
+ * @returns ::BROTLI_TRUE if decoder has already used some input bytes
299
+ * @returns ::BROTLI_FALSE otherwise
300
+ */
301
+ BROTLI_DEC_API BROTLI_BOOL BrotliDecoderIsUsed(const BrotliDecoderState* state);
302
+
303
+ /**
304
+ * Checks if decoder instance reached the final state.
305
+ *
306
+ * @param state decoder instance
307
+ * @returns ::BROTLI_TRUE if decoder is in a state where it reached the end of
308
+ * the input and produced all of the output
309
+ * @returns ::BROTLI_FALSE otherwise
310
+ */
311
+ BROTLI_DEC_API BROTLI_BOOL BrotliDecoderIsFinished(
312
+ const BrotliDecoderState* state);
313
+
314
+ /**
315
+ * Acquires a detailed error code.
316
+ *
317
+ * Should be used only after ::BrotliDecoderDecompressStream returns
318
+ * ::BROTLI_DECODER_RESULT_ERROR.
319
+ *
320
+ * See also ::BrotliDecoderErrorString
321
+ *
322
+ * @param state decoder instance
323
+ * @returns last saved error code
324
+ */
325
+ BROTLI_DEC_API BrotliDecoderErrorCode BrotliDecoderGetErrorCode(
326
+ const BrotliDecoderState* state);
327
+
328
+ /**
329
+ * Converts error code to a c-string.
330
+ */
331
+ BROTLI_DEC_API const char* BrotliDecoderErrorString(BrotliDecoderErrorCode c);
332
+
333
+ /**
334
+ * Gets a decoder library version.
335
+ *
336
+ * Look at BROTLI_VERSION for more information.
337
+ */
338
+ BROTLI_DEC_API uint32_t BrotliDecoderVersion(void);
339
+
340
+ #if defined(__cplusplus) || defined(c_plusplus)
341
+ } /* extern "C" */
342
+ #endif
343
+
344
+ #endif /* BROTLI_DEC_DECODE_H_ */