@port-labs/jq-node-bindings 0.0.14 → 0.0.15-dev2

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 (454) hide show
  1. package/README.md +6 -1
  2. package/binding.gyp +42 -20
  3. package/configure +1 -1
  4. package/deps/jq/.gitattributes +12 -0
  5. package/deps/jq/AUTHORS +149 -43
  6. package/deps/jq/COPYING +75 -1
  7. package/deps/jq/ChangeLog +2 -2
  8. package/deps/jq/Makefile.am +106 -65
  9. package/deps/jq/NEWS.md +391 -0
  10. package/deps/jq/README.md +54 -52
  11. package/deps/jq/SECURITY.md +7 -0
  12. package/deps/jq/compile-ios.sh +106 -102
  13. package/deps/jq/configure.ac +72 -59
  14. package/deps/jq/docs/Pipfile +14 -0
  15. package/deps/jq/docs/Pipfile.lock +415 -0
  16. package/deps/jq/docs/README.md +15 -14
  17. package/deps/jq/docs/build_manpage.py +251 -0
  18. package/deps/jq/docs/build_mantests.py +21 -0
  19. package/deps/jq/docs/build_website.py +95 -0
  20. package/deps/jq/docs/content/download/default.yml +249 -0
  21. package/deps/jq/docs/content/index.yml +83 -0
  22. package/deps/jq/docs/content/{3.manual/v1.6 → manual/dev}/manual.yml +992 -452
  23. package/deps/jq/docs/content/{3.manual → manual}/v1.3/manual.yml +105 -116
  24. package/deps/jq/docs/content/{3.manual → manual}/v1.4/manual.yml +122 -129
  25. package/deps/jq/docs/content/{3.manual → manual}/v1.5/manual.yml +313 -262
  26. package/deps/jq/docs/content/{3.manual → manual/v1.6}/manual.yml +407 -332
  27. package/deps/jq/docs/content/manual/v1.7/manual.yml +3697 -0
  28. package/deps/jq/docs/content/tutorial/default.yml +337 -0
  29. package/deps/jq/docs/manual_schema.yml +60 -0
  30. package/deps/jq/docs/public/css/style.css +99 -0
  31. package/deps/jq/docs/public/icon.png +0 -0
  32. package/deps/jq/docs/public/icon.svg +1 -0
  33. package/deps/jq/docs/public/jq.svg +1 -0
  34. package/deps/jq/docs/public/js/manual-search.js +31 -49
  35. package/deps/jq/docs/templates/default.html.j2 +31 -0
  36. package/deps/jq/docs/templates/index.html.j2 +58 -0
  37. package/deps/jq/docs/templates/manual.html.j2 +120 -0
  38. package/deps/jq/docs/templates/shared/_footer.html.j2 +14 -0
  39. package/deps/jq/docs/templates/shared/_head.html.j2 +23 -0
  40. package/deps/jq/docs/templates/shared/_navbar.html.j2 +40 -0
  41. package/deps/jq/docs/validate_manual_schema.py +19 -0
  42. package/deps/jq/jq.1.prebuilt +1102 -294
  43. package/deps/jq/jq.spec +2 -3
  44. package/deps/jq/libjq.pc.in +11 -0
  45. package/deps/jq/m4/ax_pthread.m4 +522 -0
  46. package/deps/jq/modules/oniguruma/.travis.yml +17 -0
  47. package/deps/jq/modules/oniguruma/CMakeLists.txt +206 -41
  48. package/deps/jq/modules/oniguruma/COPYING +23 -25
  49. package/deps/jq/modules/oniguruma/HISTORY +368 -23
  50. package/deps/jq/modules/oniguruma/Makefile.am +61 -7
  51. package/deps/jq/modules/oniguruma/README +34 -20
  52. package/deps/jq/modules/oniguruma/README.md +106 -33
  53. package/deps/jq/modules/oniguruma/README_japanese +183 -0
  54. package/deps/jq/modules/oniguruma/autogen.sh +9 -0
  55. package/deps/jq/modules/oniguruma/cmake/Config.cmake.in +4 -0
  56. package/deps/jq/modules/oniguruma/configure.ac +66 -55
  57. package/deps/jq/modules/oniguruma/doc/API +485 -42
  58. package/deps/jq/modules/oniguruma/doc/API.ja +732 -293
  59. package/deps/jq/modules/oniguruma/doc/CALLOUTS.API +397 -0
  60. package/deps/jq/modules/oniguruma/doc/CALLOUTS.API.ja +393 -0
  61. package/deps/jq/modules/oniguruma/doc/CALLOUTS.BUILTIN +95 -0
  62. package/deps/jq/modules/oniguruma/doc/CALLOUTS.BUILTIN.ja +93 -0
  63. package/deps/jq/modules/oniguruma/doc/FAQ +3 -3
  64. package/deps/jq/modules/oniguruma/doc/FAQ.ja +8 -8
  65. package/deps/jq/modules/oniguruma/doc/RE +223 -63
  66. package/deps/jq/modules/oniguruma/doc/RE.ja +420 -265
  67. package/deps/jq/modules/oniguruma/doc/SYNTAX.md +1091 -0
  68. package/deps/jq/modules/oniguruma/doc/UNICODE_PROPERTIES +840 -697
  69. package/deps/jq/modules/oniguruma/harnesses/ascii_compatible.dict +113 -0
  70. package/deps/jq/modules/oniguruma/harnesses/base.c +749 -0
  71. package/deps/jq/modules/oniguruma/harnesses/deluxe.c +206 -0
  72. package/deps/jq/modules/oniguruma/harnesses/dict_conv.py +72 -0
  73. package/deps/jq/modules/oniguruma/harnesses/fuzzer.options +2 -0
  74. package/deps/jq/modules/oniguruma/harnesses/libfuzzer-onig.cpp +45 -0
  75. package/deps/jq/modules/oniguruma/harnesses/regset.c +392 -0
  76. package/deps/jq/modules/oniguruma/index.html +16 -5
  77. package/deps/jq/modules/oniguruma/index_ja.html +16 -5
  78. package/deps/jq/modules/oniguruma/make_win.bat +5 -0
  79. package/deps/jq/modules/oniguruma/make_win32.bat +5 -3
  80. package/deps/jq/modules/oniguruma/make_win64.bat +5 -3
  81. package/deps/jq/modules/oniguruma/onig-config.cmake.in +80 -0
  82. package/deps/jq/modules/oniguruma/onig-config.in +1 -1
  83. package/deps/jq/modules/oniguruma/oniguruma.pc.cmake.in +1 -1
  84. package/deps/jq/modules/oniguruma/oniguruma.pc.in +0 -1
  85. package/deps/jq/modules/oniguruma/sample/CMakeLists.txt +9 -2
  86. package/deps/jq/modules/oniguruma/sample/Makefile.am +24 -5
  87. package/deps/jq/modules/oniguruma/sample/bug_fix.c +13 -51
  88. package/deps/jq/modules/oniguruma/sample/callback_each_match.c +168 -0
  89. package/deps/jq/modules/oniguruma/sample/callout.c +268 -0
  90. package/deps/jq/modules/oniguruma/sample/count.c +125 -0
  91. package/deps/jq/modules/oniguruma/sample/crnl.c +6 -4
  92. package/deps/jq/modules/oniguruma/sample/echo.c +136 -0
  93. package/deps/jq/modules/oniguruma/sample/encode.c +53 -146
  94. package/deps/jq/modules/oniguruma/sample/listcap.c +18 -10
  95. package/deps/jq/modules/oniguruma/sample/names.c +10 -6
  96. package/deps/jq/modules/oniguruma/sample/posix.c +13 -2
  97. package/deps/jq/modules/oniguruma/sample/regset.c +95 -0
  98. package/deps/jq/modules/oniguruma/sample/scan.c +20 -6
  99. package/deps/jq/modules/oniguruma/sample/simple.c +8 -4
  100. package/deps/jq/modules/oniguruma/sample/sql.c +13 -8
  101. package/deps/jq/modules/oniguruma/sample/syntax.c +11 -10
  102. package/deps/jq/modules/oniguruma/sample/user_property.c +12 -7
  103. package/deps/jq/modules/oniguruma/src/Makefile.am +41 -15
  104. package/deps/jq/modules/oniguruma/src/Makefile.windows +196 -183
  105. package/deps/jq/modules/oniguruma/src/ascii.c +64 -7
  106. package/deps/jq/modules/oniguruma/src/big5.c +25 -15
  107. package/deps/jq/modules/oniguruma/src/config.h.cmake.in +7 -22
  108. package/deps/jq/modules/oniguruma/src/config.h.win32 +56 -84
  109. package/deps/jq/modules/oniguruma/src/config.h.win64 +56 -84
  110. package/deps/jq/modules/oniguruma/src/config.h.windows.in +62 -0
  111. package/deps/jq/modules/oniguruma/src/cp1251.c +14 -8
  112. package/deps/jq/modules/oniguruma/src/euc_jp.c +28 -30
  113. package/deps/jq/modules/oniguruma/src/euc_jp_prop.c +25 -32
  114. package/deps/jq/modules/oniguruma/src/euc_jp_prop.gperf +1 -2
  115. package/deps/jq/modules/oniguruma/src/euc_kr.c +27 -15
  116. package/deps/jq/modules/oniguruma/src/euc_tw.c +40 -17
  117. package/deps/jq/modules/oniguruma/src/gb18030.c +177 -119
  118. package/deps/jq/modules/oniguruma/src/gperf_fold_key_conv.py +12 -8
  119. package/deps/jq/modules/oniguruma/src/gperf_unfold_key_conv.py +8 -6
  120. package/deps/jq/modules/oniguruma/src/iso8859_1.c +92 -91
  121. package/deps/jq/modules/oniguruma/src/iso8859_10.c +13 -29
  122. package/deps/jq/modules/oniguruma/src/iso8859_11.c +4 -2
  123. package/deps/jq/modules/oniguruma/src/iso8859_13.c +13 -33
  124. package/deps/jq/modules/oniguruma/src/iso8859_14.c +13 -30
  125. package/deps/jq/modules/oniguruma/src/iso8859_15.c +13 -34
  126. package/deps/jq/modules/oniguruma/src/iso8859_16.c +13 -29
  127. package/deps/jq/modules/oniguruma/src/iso8859_2.c +13 -29
  128. package/deps/jq/modules/oniguruma/src/iso8859_3.c +13 -33
  129. package/deps/jq/modules/oniguruma/src/iso8859_4.c +13 -32
  130. package/deps/jq/modules/oniguruma/src/iso8859_5.c +16 -23
  131. package/deps/jq/modules/oniguruma/src/iso8859_6.c +4 -2
  132. package/deps/jq/modules/oniguruma/src/iso8859_7.c +14 -29
  133. package/deps/jq/modules/oniguruma/src/iso8859_8.c +4 -2
  134. package/deps/jq/modules/oniguruma/src/iso8859_9.c +13 -33
  135. package/deps/jq/modules/oniguruma/src/koi8.c +14 -27
  136. package/deps/jq/modules/oniguruma/src/koi8_r.c +12 -19
  137. package/deps/jq/modules/oniguruma/src/make_property.sh +21 -0
  138. package/deps/jq/modules/oniguruma/src/make_unicode_egcb.sh +7 -0
  139. package/deps/jq/modules/oniguruma/src/make_unicode_egcb_data.py +267 -0
  140. package/deps/jq/modules/oniguruma/src/make_unicode_fold.sh +25 -11
  141. package/deps/jq/modules/oniguruma/src/make_unicode_fold_data.py +206 -26
  142. package/deps/jq/modules/oniguruma/src/make_unicode_property.sh +19 -10
  143. package/deps/jq/modules/oniguruma/src/make_unicode_property_data.py +474 -375
  144. package/deps/jq/modules/oniguruma/src/make_unicode_wb.sh +7 -0
  145. package/deps/jq/modules/oniguruma/src/make_unicode_wb_data.py +267 -0
  146. package/deps/jq/modules/oniguruma/src/mktable.c +28 -24
  147. package/deps/jq/modules/oniguruma/src/onig_init.c +2 -2
  148. package/deps/jq/modules/oniguruma/src/oniggnu.h +7 -5
  149. package/deps/jq/modules/oniguruma/src/onigposix.h +40 -16
  150. package/deps/jq/modules/oniguruma/src/oniguruma.h +357 -107
  151. package/deps/jq/modules/oniguruma/src/regcomp.c +6214 -3933
  152. package/deps/jq/modules/oniguruma/src/regenc.c +197 -120
  153. package/deps/jq/modules/oniguruma/src/regenc.h +106 -63
  154. package/deps/jq/modules/oniguruma/src/regerror.c +112 -91
  155. package/deps/jq/modules/oniguruma/src/regexec.c +4876 -2010
  156. package/deps/jq/modules/oniguruma/src/regext.c +8 -8
  157. package/deps/jq/modules/oniguruma/src/reggnu.c +13 -17
  158. package/deps/jq/modules/oniguruma/src/regint.h +757 -491
  159. package/deps/jq/modules/oniguruma/src/regparse.c +7204 -3240
  160. package/deps/jq/modules/oniguruma/src/regparse.h +361 -218
  161. package/deps/jq/modules/oniguruma/src/regposerr.c +49 -9
  162. package/deps/jq/modules/oniguruma/src/regposix.c +106 -24
  163. package/deps/jq/modules/oniguruma/src/regsyntax.c +66 -13
  164. package/deps/jq/modules/oniguruma/src/regtrav.c +1 -1
  165. package/deps/jq/modules/oniguruma/src/regversion.c +6 -4
  166. package/deps/jq/modules/oniguruma/src/sjis.c +23 -52
  167. package/deps/jq/modules/oniguruma/src/sjis_prop.c +25 -32
  168. package/deps/jq/modules/oniguruma/src/sjis_prop.gperf +1 -2
  169. package/deps/jq/modules/oniguruma/src/st.c +248 -249
  170. package/deps/jq/modules/oniguruma/src/st.h +4 -5
  171. package/deps/jq/modules/oniguruma/src/unicode.c +869 -294
  172. package/deps/jq/modules/oniguruma/src/unicode_egcb_data.c +1419 -0
  173. package/deps/jq/modules/oniguruma/src/unicode_fold1_key.c +1829 -1300
  174. package/deps/jq/modules/oniguruma/src/unicode_fold2_key.c +32 -9
  175. package/deps/jq/modules/oniguruma/src/unicode_fold3_key.c +32 -9
  176. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +1210 -984
  177. package/deps/jq/modules/oniguruma/src/unicode_property_data.c +22480 -15198
  178. package/deps/jq/modules/oniguruma/src/unicode_property_data_posix.c +1463 -591
  179. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +1958 -1418
  180. package/deps/jq/modules/oniguruma/src/unicode_wb_data.c +1106 -0
  181. package/deps/jq/modules/oniguruma/src/utf16_be.c +90 -49
  182. package/deps/jq/modules/oniguruma/src/utf16_le.c +80 -49
  183. package/deps/jq/modules/oniguruma/src/utf32_be.c +14 -42
  184. package/deps/jq/modules/oniguruma/src/utf32_le.c +13 -40
  185. package/deps/jq/modules/oniguruma/src/utf8.c +33 -78
  186. package/deps/jq/modules/oniguruma/test/CMakeLists.txt +55 -0
  187. package/deps/jq/modules/oniguruma/test/Makefile.am +65 -10
  188. package/deps/jq/modules/oniguruma/test/test.sh +17 -0
  189. package/deps/jq/modules/oniguruma/test/test_back.c +1450 -0
  190. package/deps/jq/modules/oniguruma/test/test_options.c +228 -0
  191. package/deps/jq/modules/oniguruma/test/test_regset.c +466 -0
  192. package/deps/jq/modules/oniguruma/test/test_syntax.c +365 -0
  193. package/deps/jq/modules/oniguruma/test/test_utf8.c +1761 -0
  194. package/deps/jq/modules/oniguruma/test/testc.c +128 -88
  195. package/deps/jq/modules/oniguruma/test/testp.c +613 -0
  196. package/deps/jq/modules/oniguruma/test/testu.c +75 -28
  197. package/deps/jq/modules/oniguruma/tis-ci/stub.c +3 -0
  198. package/deps/jq/modules/oniguruma/tis-ci/test_back.config +26 -0
  199. package/deps/jq/modules/oniguruma/tis-ci/test_regset.config +20 -0
  200. package/deps/jq/modules/oniguruma/tis-ci/test_syntax.config +26 -0
  201. package/deps/jq/modules/oniguruma/tis-ci/test_utf8.config +25 -0
  202. package/deps/jq/modules/oniguruma/tis-ci/testc.config +26 -0
  203. package/deps/jq/modules/oniguruma/tis-ci/testu.config +24 -0
  204. package/deps/jq/modules/oniguruma/tis.config +1336 -0
  205. package/deps/jq/modules/oniguruma/windows/CMakeLists.txt +8 -0
  206. package/deps/jq/modules/oniguruma/windows/testc.c +865 -869
  207. package/deps/jq/scripts/update-website +6 -5
  208. package/deps/jq/scripts/version +10 -7
  209. package/deps/jq/sig/jq-release-new.key +29 -0
  210. package/deps/jq/sig/v1.4/sha256sum.txt +1 -0
  211. package/deps/jq/sig/v1.5/sha256sum.txt +2 -0
  212. package/deps/jq/sig/v1.5rc1/sha256sum.txt +1 -0
  213. package/deps/jq/sig/v1.5rc2/sha256sum.txt +2 -0
  214. package/deps/jq/sig/v1.6/sha256sum.txt +2 -0
  215. package/deps/jq/sig/v1.7/jq-1.7.tar.gz.asc +16 -0
  216. package/deps/jq/sig/v1.7/jq-1.7.zip.asc +16 -0
  217. package/deps/jq/sig/v1.7/jq-linux-amd64.asc +16 -0
  218. package/deps/jq/sig/v1.7/jq-linux-arm64.asc +16 -0
  219. package/deps/jq/sig/v1.7/jq-linux-armel.asc +16 -0
  220. package/deps/jq/sig/v1.7/jq-linux-armhf.asc +16 -0
  221. package/deps/jq/sig/v1.7/jq-linux-i386.asc +16 -0
  222. package/deps/jq/sig/v1.7/jq-linux-mips.asc +16 -0
  223. package/deps/jq/sig/v1.7/jq-linux-mips64.asc +16 -0
  224. package/deps/jq/sig/v1.7/jq-linux-mips64el.asc +16 -0
  225. package/deps/jq/sig/v1.7/jq-linux-mips64r6.asc +16 -0
  226. package/deps/jq/sig/v1.7/jq-linux-mips64r6el.asc +16 -0
  227. package/deps/jq/sig/v1.7/jq-linux-mipsel.asc +16 -0
  228. package/deps/jq/sig/v1.7/jq-linux-mipsr6.asc +16 -0
  229. package/deps/jq/sig/v1.7/jq-linux-mipsr6el.asc +16 -0
  230. package/deps/jq/sig/v1.7/jq-linux-powerpc.asc +16 -0
  231. package/deps/jq/sig/v1.7/jq-linux-ppc64el.asc +16 -0
  232. package/deps/jq/sig/v1.7/jq-linux-riscv64.asc +16 -0
  233. package/deps/jq/sig/v1.7/jq-linux-s390x.asc +16 -0
  234. package/deps/jq/sig/v1.7/jq-macos-amd64.asc +16 -0
  235. package/deps/jq/sig/v1.7/jq-macos-arm64.asc +16 -0
  236. package/deps/jq/sig/v1.7/jq-windows-amd64.exe.asc +16 -0
  237. package/deps/jq/sig/v1.7/jq-windows-i386.exe.asc +16 -0
  238. package/deps/jq/sig/v1.7/sha256sum.txt +23 -0
  239. package/deps/jq/sig/v1.7.1/jq-1.7.1.tar.gz.asc +16 -0
  240. package/deps/jq/sig/v1.7.1/jq-1.7.1.zip.asc +16 -0
  241. package/deps/jq/sig/v1.7.1/jq-linux-amd64.asc +16 -0
  242. package/deps/jq/sig/v1.7.1/jq-linux-arm64.asc +16 -0
  243. package/deps/jq/sig/v1.7.1/jq-linux-armel.asc +16 -0
  244. package/deps/jq/sig/v1.7.1/jq-linux-armhf.asc +16 -0
  245. package/deps/jq/sig/v1.7.1/jq-linux-i386.asc +16 -0
  246. package/deps/jq/sig/v1.7.1/jq-linux-mips.asc +16 -0
  247. package/deps/jq/sig/v1.7.1/jq-linux-mips64.asc +16 -0
  248. package/deps/jq/sig/v1.7.1/jq-linux-mips64el.asc +16 -0
  249. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6.asc +16 -0
  250. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6el.asc +16 -0
  251. package/deps/jq/sig/v1.7.1/jq-linux-mipsel.asc +16 -0
  252. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6.asc +16 -0
  253. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6el.asc +16 -0
  254. package/deps/jq/sig/v1.7.1/jq-linux-powerpc.asc +16 -0
  255. package/deps/jq/sig/v1.7.1/jq-linux-ppc64el.asc +16 -0
  256. package/deps/jq/sig/v1.7.1/jq-linux-riscv64.asc +16 -0
  257. package/deps/jq/sig/v1.7.1/jq-linux-s390x.asc +16 -0
  258. package/deps/jq/sig/v1.7.1/jq-linux64.asc +16 -0
  259. package/deps/jq/sig/v1.7.1/jq-macos-amd64.asc +16 -0
  260. package/deps/jq/sig/v1.7.1/jq-macos-arm64.asc +16 -0
  261. package/deps/jq/sig/v1.7.1/jq-osx-amd64.asc +16 -0
  262. package/deps/jq/sig/v1.7.1/jq-win64.exe.asc +16 -0
  263. package/deps/jq/sig/v1.7.1/jq-windows-amd64.exe.asc +16 -0
  264. package/deps/jq/sig/v1.7.1/jq-windows-i386.exe.asc +16 -0
  265. package/deps/jq/sig/v1.7.1/sha256sum.txt +26 -0
  266. package/deps/jq/sig/v1.7rc1/jq-1.7rc1.tar.gz.asc +16 -0
  267. package/deps/jq/sig/v1.7rc1/jq-1.7rc1.zip.asc +16 -0
  268. package/deps/jq/sig/v1.7rc1/jq-linux-amd64.asc +16 -0
  269. package/deps/jq/sig/v1.7rc1/jq-linux-arm64.asc +16 -0
  270. package/deps/jq/sig/v1.7rc1/jq-linux-armel.asc +16 -0
  271. package/deps/jq/sig/v1.7rc1/jq-linux-armhf.asc +16 -0
  272. package/deps/jq/sig/v1.7rc1/jq-linux-i386.asc +16 -0
  273. package/deps/jq/sig/v1.7rc1/jq-linux-mips.asc +16 -0
  274. package/deps/jq/sig/v1.7rc1/jq-linux-mips64.asc +16 -0
  275. package/deps/jq/sig/v1.7rc1/jq-linux-mips64el.asc +16 -0
  276. package/deps/jq/sig/v1.7rc1/jq-linux-mips64r6.asc +16 -0
  277. package/deps/jq/sig/v1.7rc1/jq-linux-mips64r6el.asc +16 -0
  278. package/deps/jq/sig/v1.7rc1/jq-linux-mipsel.asc +16 -0
  279. package/deps/jq/sig/v1.7rc1/jq-linux-mipsr6.asc +16 -0
  280. package/deps/jq/sig/v1.7rc1/jq-linux-mipsr6el.asc +16 -0
  281. package/deps/jq/sig/v1.7rc1/jq-linux-powerpc.asc +16 -0
  282. package/deps/jq/sig/v1.7rc1/jq-linux-ppc64el.asc +16 -0
  283. package/deps/jq/sig/v1.7rc1/jq-linux-riscv64.asc +16 -0
  284. package/deps/jq/sig/v1.7rc1/jq-linux-s390x.asc +16 -0
  285. package/deps/jq/sig/v1.7rc1/jq-macos-amd64.asc +16 -0
  286. package/deps/jq/sig/v1.7rc1/jq-macos-arm64.asc +16 -0
  287. package/deps/jq/sig/v1.7rc1/jq-windows-amd64.exe.asc +16 -0
  288. package/deps/jq/sig/v1.7rc1/jq-windows-i386.exe.asc +16 -0
  289. package/deps/jq/sig/v1.7rc1/sha256sum.txt +23 -0
  290. package/deps/jq/sig/v1.7rc2/jq-1.7rc2.tar.gz.asc +16 -0
  291. package/deps/jq/sig/v1.7rc2/jq-1.7rc2.zip.asc +16 -0
  292. package/deps/jq/sig/v1.7rc2/jq-linux-amd64.asc +16 -0
  293. package/deps/jq/sig/v1.7rc2/jq-linux-arm64.asc +16 -0
  294. package/deps/jq/sig/v1.7rc2/jq-linux-armel.asc +16 -0
  295. package/deps/jq/sig/v1.7rc2/jq-linux-armhf.asc +16 -0
  296. package/deps/jq/sig/v1.7rc2/jq-linux-i386.asc +16 -0
  297. package/deps/jq/sig/v1.7rc2/jq-linux-mips.asc +16 -0
  298. package/deps/jq/sig/v1.7rc2/jq-linux-mips64.asc +16 -0
  299. package/deps/jq/sig/v1.7rc2/jq-linux-mips64el.asc +16 -0
  300. package/deps/jq/sig/v1.7rc2/jq-linux-mips64r6.asc +16 -0
  301. package/deps/jq/sig/v1.7rc2/jq-linux-mips64r6el.asc +16 -0
  302. package/deps/jq/sig/v1.7rc2/jq-linux-mipsel.asc +16 -0
  303. package/deps/jq/sig/v1.7rc2/jq-linux-mipsr6.asc +16 -0
  304. package/deps/jq/sig/v1.7rc2/jq-linux-mipsr6el.asc +16 -0
  305. package/deps/jq/sig/v1.7rc2/jq-linux-powerpc.asc +16 -0
  306. package/deps/jq/sig/v1.7rc2/jq-linux-ppc64el.asc +16 -0
  307. package/deps/jq/sig/v1.7rc2/jq-linux-riscv64.asc +16 -0
  308. package/deps/jq/sig/v1.7rc2/jq-linux-s390x.asc +16 -0
  309. package/deps/jq/sig/v1.7rc2/jq-macos-amd64.asc +16 -0
  310. package/deps/jq/sig/v1.7rc2/jq-macos-arm64.asc +16 -0
  311. package/deps/jq/sig/v1.7rc2/jq-windows-amd64.exe.asc +16 -0
  312. package/deps/jq/sig/v1.7rc2/jq-windows-i386.exe.asc +16 -0
  313. package/deps/jq/sig/v1.7rc2/sha256sum.txt +23 -0
  314. package/deps/jq/src/builtin.c +537 -343
  315. package/deps/jq/src/builtin.h +18 -0
  316. package/deps/jq/src/builtin.jq +116 -143
  317. package/deps/jq/src/bytecode.h +8 -4
  318. package/deps/jq/src/compile.c +157 -143
  319. package/deps/jq/src/compile.h +3 -4
  320. package/deps/jq/src/decNumber/ICU-license.html +45 -0
  321. package/deps/jq/src/decNumber/decBasic.c +3908 -0
  322. package/deps/jq/src/decNumber/decCommon.c +1835 -0
  323. package/deps/jq/src/decNumber/decContext.c +437 -0
  324. package/deps/jq/src/decNumber/decContext.h +254 -0
  325. package/deps/jq/src/decNumber/decDPD.h +1185 -0
  326. package/deps/jq/src/decNumber/decDouble.c +140 -0
  327. package/deps/jq/src/decNumber/decDouble.h +155 -0
  328. package/deps/jq/src/decNumber/decNumber.c +8143 -0
  329. package/deps/jq/src/decNumber/decNumber.h +182 -0
  330. package/deps/jq/src/decNumber/decNumberLocal.h +757 -0
  331. package/deps/jq/src/decNumber/decPacked.c +220 -0
  332. package/deps/jq/src/decNumber/decPacked.h +52 -0
  333. package/deps/jq/src/decNumber/decQuad.c +135 -0
  334. package/deps/jq/src/decNumber/decQuad.h +177 -0
  335. package/deps/jq/src/decNumber/decSingle.c +71 -0
  336. package/deps/jq/src/decNumber/decSingle.h +86 -0
  337. package/deps/jq/src/decNumber/decimal128.c +553 -0
  338. package/deps/jq/src/decNumber/decimal128.h +81 -0
  339. package/deps/jq/src/decNumber/decimal32.c +476 -0
  340. package/deps/jq/src/decNumber/decimal32.h +81 -0
  341. package/deps/jq/src/decNumber/decimal64.c +839 -0
  342. package/deps/jq/src/decNumber/decimal64.h +83 -0
  343. package/deps/jq/src/decNumber/decnumber.pdf +0 -0
  344. package/deps/jq/src/decNumber/example1.c +38 -0
  345. package/deps/jq/src/decNumber/example2.c +52 -0
  346. package/deps/jq/src/decNumber/example3.c +64 -0
  347. package/deps/jq/src/decNumber/example4.c +61 -0
  348. package/deps/jq/src/decNumber/example5.c +36 -0
  349. package/deps/jq/src/decNumber/example6.c +61 -0
  350. package/deps/jq/src/decNumber/example7.c +35 -0
  351. package/deps/jq/src/decNumber/example8.c +39 -0
  352. package/deps/jq/src/decNumber/readme.txt +81 -0
  353. package/deps/jq/src/exec_stack.h +5 -3
  354. package/deps/jq/src/execute.c +126 -44
  355. package/deps/jq/src/inject_errors.c +0 -2
  356. package/deps/jq/src/jq.h +10 -1
  357. package/deps/jq/src/jq_test.c +222 -11
  358. package/deps/jq/src/jv.c +807 -176
  359. package/deps/jq/src/jv.h +22 -1
  360. package/deps/jq/src/jv_alloc.c +33 -26
  361. package/deps/jq/src/jv_alloc.h +0 -11
  362. package/deps/jq/src/jv_aux.c +153 -67
  363. package/deps/jq/src/jv_dtoa.c +12 -2
  364. package/deps/jq/src/jv_dtoa_tsd.c +51 -0
  365. package/deps/jq/src/jv_dtoa_tsd.h +4 -0
  366. package/deps/jq/src/jv_parse.c +70 -15
  367. package/deps/jq/src/jv_print.c +56 -60
  368. package/deps/jq/src/jv_private.h +7 -0
  369. package/deps/jq/src/jv_thread.h +76 -0
  370. package/deps/jq/src/jv_unicode.c +18 -0
  371. package/deps/jq/src/jv_unicode.h +2 -0
  372. package/deps/jq/src/lexer.c +782 -543
  373. package/deps/jq/src/lexer.h +438 -64
  374. package/deps/jq/src/lexer.l +10 -3
  375. package/deps/jq/src/libm.h +16 -6
  376. package/deps/jq/src/linker.c +97 -40
  377. package/deps/jq/src/locfile.c +2 -1
  378. package/deps/jq/src/main.c +384 -336
  379. package/deps/jq/src/opcode_list.h +5 -2
  380. package/deps/jq/src/parser.c +2260 -1898
  381. package/deps/jq/src/parser.h +115 -98
  382. package/deps/jq/src/parser.y +124 -89
  383. package/deps/jq/src/util.c +854 -55
  384. package/deps/jq/src/util.h +6 -4
  385. package/deps/jq/tests/jq.test +762 -26
  386. package/deps/jq/tests/jq_fuzz_compile.c +27 -0
  387. package/deps/jq/tests/jq_fuzz_execute.cpp +42 -0
  388. package/deps/jq/tests/jq_fuzz_fixed.cpp +297 -0
  389. package/deps/jq/tests/jq_fuzz_load_file.c +28 -0
  390. package/deps/jq/tests/jq_fuzz_parse.c +21 -0
  391. package/deps/jq/tests/jq_fuzz_parse_extended.c +36 -0
  392. package/deps/jq/tests/jq_fuzz_parse_stream.c +21 -0
  393. package/deps/jq/tests/local.supp +14 -0
  394. package/deps/jq/tests/man.test +979 -0
  395. package/deps/jq/tests/manonig.test +76 -0
  396. package/deps/jq/tests/manonigtest +5 -0
  397. package/deps/jq/tests/mantest +1 -2
  398. package/deps/jq/tests/modules/home2/.jq/g.jq +1 -0
  399. package/deps/jq/tests/modules/shadow1.jq +2 -0
  400. package/deps/jq/tests/modules/shadow2.jq +1 -0
  401. package/deps/jq/tests/modules/test_bind_order0.jq +1 -0
  402. package/deps/jq/tests/modules/test_bind_order1.jq +1 -1
  403. package/deps/jq/tests/modules/test_bind_order2.jq +0 -1
  404. package/deps/jq/tests/no-main-program.jq +1 -0
  405. package/deps/jq/tests/onig.test +77 -2
  406. package/deps/jq/tests/setup +7 -2
  407. package/deps/jq/tests/shtest +478 -59
  408. package/deps/jq/tests/uri.test +38 -0
  409. package/deps/jq/tests/uritest +5 -0
  410. package/deps/jq/tests/yes-main-program.jq +2 -0
  411. package/index.d.ts +2 -0
  412. package/lib/index.js +3 -0
  413. package/lib/jq.js +15 -1
  414. package/lib/templateAsync.js +137 -0
  415. package/package.json +3 -3
  416. package/src/binding.cc +623 -146
  417. package/src/binding.h +3 -4
  418. package/test/santiy-async.test.js +171 -0
  419. package/test/santiy.test.js +2 -2
  420. package/test/template-async.test.js +182 -0
  421. package/test/template.test.js +3 -3
  422. package/deps/jq/.travis.yml +0 -202
  423. package/deps/jq/NEWS +0 -89
  424. package/deps/jq/appveyor.yml +0 -53
  425. package/deps/jq/docs/Gemfile +0 -7
  426. package/deps/jq/docs/Gemfile.lock +0 -63
  427. package/deps/jq/docs/Rakefile +0 -24
  428. package/deps/jq/docs/Rakefile.manual +0 -49
  429. package/deps/jq/docs/Rakefile.website +0 -76
  430. package/deps/jq/docs/content/1.tutorial/default.yml +0 -327
  431. package/deps/jq/docs/content/2.download/default.yml +0 -193
  432. package/deps/jq/docs/content/index/index.yml +0 -73
  433. package/deps/jq/docs/public/css/base.scss +0 -181
  434. package/deps/jq/docs/public/jq.png +0 -0
  435. package/deps/jq/docs/site.yml +0 -9
  436. package/deps/jq/docs/templates/default.liquid +0 -34
  437. package/deps/jq/docs/templates/index.liquid +0 -73
  438. package/deps/jq/docs/templates/manual.liquid +0 -99
  439. package/deps/jq/docs/templates/shared/_footer.liquid +0 -10
  440. package/deps/jq/docs/templates/shared/_head.liquid +0 -17
  441. package/deps/jq/docs/templates/shared/_navbar.liquid +0 -27
  442. package/deps/jq/modules/oniguruma/README.ja +0 -195
  443. package/deps/jq/modules/oniguruma/cmake/dist.cmake +0 -321
  444. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +0 -31
  445. package/deps/jq/modules/oniguruma/dist.info +0 -10
  446. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +0 -2250
  447. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +0 -203
  448. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +0 -113
  449. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +0 -1225
  450. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +0 -24742
  451. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +0 -4846
  452. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +0 -2571
  453. /package/deps/jq/sig/{jq-release.key → jq-release-old.key} +0 -0
  454. /package/deps/jq/tests/modules/{.jq → home1/.jq} +0 -0
@@ -0,0 +1,206 @@
1
+ /*
2
+ * deluxe.c
3
+ * contributed by Mark Griffin
4
+ */
5
+ #include <stdio.h>
6
+ #include "oniguruma.h"
7
+
8
+ #include <stdlib.h>
9
+ #include <string.h>
10
+
11
+ #define RETRY_LIMIT 10000
12
+ #define DEPTH_LIMIT 10
13
+
14
+ typedef unsigned char uint8_t;
15
+
16
+ static int
17
+ search(regex_t* reg, unsigned char* str, unsigned char* end)
18
+ {
19
+ int r;
20
+ unsigned char *start, *range;
21
+ OnigRegion *region;
22
+
23
+ region = onig_region_new();
24
+
25
+ start = str;
26
+ range = end;
27
+ r = onig_search(reg, str, end, start, range, region, ONIG_OPTION_NONE);
28
+ if (r >= 0) {
29
+ int i;
30
+
31
+ fprintf(stdout, "match at %d (%s)\n", r,
32
+ ONIGENC_NAME(onig_get_encoding(reg)));
33
+ for (i = 0; i < region->num_regs; i++) {
34
+ fprintf(stdout, "%d: (%d-%d)\n", i, region->beg[i], region->end[i]);
35
+ }
36
+ }
37
+ else if (r == ONIG_MISMATCH) {
38
+ fprintf(stdout, "search fail (%s)\n",
39
+ ONIGENC_NAME(onig_get_encoding(reg)));
40
+ }
41
+ else { /* error */
42
+ char s[ONIG_MAX_ERROR_MESSAGE_LEN];
43
+ onig_error_code_to_str((UChar* )s, r);
44
+ fprintf(stdout, "ERROR: %s\n", s);
45
+ fprintf(stdout, " (%s)\n", ONIGENC_NAME(onig_get_encoding(reg)));
46
+ onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
47
+ return -1;
48
+ }
49
+
50
+ onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
51
+ return 0;
52
+ }
53
+
54
+ static OnigCaseFoldType CF = ONIGENC_CASE_FOLD_MIN;
55
+
56
+ static int
57
+ exec_deluxe(OnigEncoding pattern_enc, OnigEncoding str_enc,
58
+ OnigOptionType options, char* apattern, char* apattern_end,
59
+ char* astr, char* astr_end)
60
+ {
61
+ int r;
62
+ regex_t* reg;
63
+ OnigCompileInfo ci;
64
+ OnigErrorInfo einfo;
65
+ UChar* pattern = (UChar* )apattern;
66
+ UChar* str = (UChar* )astr;
67
+ UChar* pattern_end = (UChar* )apattern_end;
68
+ unsigned char* end = (unsigned char* )astr_end;
69
+
70
+ onig_initialize(&str_enc, 1);
71
+ onig_set_retry_limit_in_search(RETRY_LIMIT);
72
+ onig_set_parse_depth_limit(DEPTH_LIMIT);
73
+
74
+ ci.num_of_elements = 5;
75
+ ci.pattern_enc = pattern_enc;
76
+ ci.target_enc = str_enc;
77
+ ci.syntax = ONIG_SYNTAX_DEFAULT;
78
+ ci.option = options;
79
+ ci.case_fold_flag = CF;
80
+
81
+ r = onig_new_deluxe(&reg, pattern, pattern_end, &ci, &einfo);
82
+ if (r != ONIG_NORMAL) {
83
+ char s[ONIG_MAX_ERROR_MESSAGE_LEN];
84
+ onig_error_code_to_str((UChar* )s, r, &einfo);
85
+ fprintf(stdout, "ERROR: %s\n", s);
86
+ onig_end();
87
+ return -1;
88
+ }
89
+
90
+ if (onigenc_is_valid_mbc_string(str_enc, str, end) != 0) {
91
+ r = search(reg, str, end);
92
+ }
93
+
94
+ onig_free(reg);
95
+ onig_end();
96
+ return 0;
97
+ }
98
+
99
+ #define PATTERN_SIZE 48
100
+ #define NUM_CONTROL_BYTES 1
101
+ #define MIN_STR_SIZE 2
102
+ int LLVMFuzzerTestOneInput(const uint8_t * Data, size_t Size)
103
+ {
104
+ int r;
105
+ size_t remaining_size;
106
+ unsigned char *data;
107
+ unsigned char pat_encoding_choice;
108
+ unsigned char str_encoding_choice;
109
+ unsigned char *pattern;
110
+ unsigned char *str;
111
+ unsigned char *pattern_end;
112
+ unsigned char *str_end;
113
+ unsigned int num_encodings;
114
+ OnigEncodingType *pattern_enc;
115
+ OnigEncodingType *str_enc;
116
+
117
+ OnigEncodingType *encodings[] = {
118
+ ONIG_ENCODING_ASCII,
119
+ ONIG_ENCODING_ISO_8859_1,
120
+ ONIG_ENCODING_ISO_8859_2,
121
+ ONIG_ENCODING_ISO_8859_3,
122
+ ONIG_ENCODING_ISO_8859_4,
123
+ ONIG_ENCODING_ISO_8859_5,
124
+ ONIG_ENCODING_ISO_8859_6,
125
+ ONIG_ENCODING_ISO_8859_7,
126
+ ONIG_ENCODING_ISO_8859_8,
127
+ ONIG_ENCODING_ISO_8859_9,
128
+ ONIG_ENCODING_ISO_8859_10,
129
+ ONIG_ENCODING_ISO_8859_11,
130
+ ONIG_ENCODING_ISO_8859_13,
131
+ ONIG_ENCODING_ISO_8859_14,
132
+ ONIG_ENCODING_ISO_8859_15,
133
+ ONIG_ENCODING_ISO_8859_16,
134
+ ONIG_ENCODING_UTF8,
135
+ ONIG_ENCODING_UTF16_BE,
136
+ ONIG_ENCODING_UTF16_LE,
137
+ ONIG_ENCODING_UTF32_BE,
138
+ ONIG_ENCODING_UTF32_LE,
139
+ ONIG_ENCODING_EUC_JP,
140
+ ONIG_ENCODING_EUC_TW,
141
+ ONIG_ENCODING_EUC_KR,
142
+ ONIG_ENCODING_EUC_CN,
143
+ ONIG_ENCODING_SJIS,
144
+ //ONIG_ENCODING_KOI8,
145
+ ONIG_ENCODING_KOI8_R,
146
+ ONIG_ENCODING_CP1251,
147
+ ONIG_ENCODING_BIG5,
148
+ ONIG_ENCODING_GB18030,
149
+ };
150
+
151
+ if (Size <= (NUM_CONTROL_BYTES + PATTERN_SIZE + MIN_STR_SIZE))
152
+ return 0;
153
+ if (Size > 0x1000)
154
+ return 0;
155
+
156
+ remaining_size = Size;
157
+ data = (unsigned char *)(Data);
158
+
159
+ // pull off bytes to switch off
160
+ pat_encoding_choice = data[0];
161
+ data++;
162
+ remaining_size--;
163
+ str_encoding_choice = data[0];
164
+ data++;
165
+ remaining_size--;
166
+
167
+ // copy first PATTERN_SIZE bytes off to be the pattern
168
+ pattern = (unsigned char *)malloc(PATTERN_SIZE);
169
+ memcpy(pattern, data, PATTERN_SIZE);
170
+ pattern_end = pattern + PATTERN_SIZE;
171
+ data += PATTERN_SIZE;
172
+ remaining_size -= PATTERN_SIZE;
173
+
174
+ str = (unsigned char*)malloc(remaining_size);
175
+ memcpy(str, data, remaining_size);
176
+ str_end = str + remaining_size;
177
+
178
+ num_encodings = sizeof(encodings) / sizeof(encodings[0]);
179
+ pattern_enc = encodings[pat_encoding_choice % num_encodings];
180
+ str_enc = encodings[str_encoding_choice % num_encodings];
181
+
182
+ r = exec_deluxe(pattern_enc, str_enc, ONIG_OPTION_NONE, (char *)pattern, (char *)pattern_end, (char *)str, (char *)str_end);
183
+
184
+ free(pattern);
185
+ free(str);
186
+
187
+ return r;
188
+ }
189
+
190
+
191
+ #ifdef STANDALONE
192
+
193
+ #include <unistd.h>
194
+
195
+ extern int main(int argc, char* argv[])
196
+ {
197
+ size_t n;
198
+ uint8_t Data[10000];
199
+
200
+ n = read(0, Data, sizeof(Data));
201
+ fprintf(stdout, "n: %ld\n", n);
202
+ LLVMFuzzerTestOneInput(Data, n);
203
+
204
+ return 0;
205
+ }
206
+ #endif /* STANDALONE */
@@ -0,0 +1,72 @@
1
+ # -*- coding: utf-8 -*-
2
+ # dict_conv.py (Python3 script)
3
+
4
+ import sys
5
+
6
+ ENC_UTF16_BE = 1
7
+ ENC_UTF16_LE = 2
8
+
9
+ def add_char(enc, s, c):
10
+ if enc == ENC_UTF16_BE:
11
+ s += "\\x00"
12
+
13
+ s += c
14
+ if enc == ENC_UTF16_LE:
15
+ s += "\\x00"
16
+
17
+ return s
18
+
19
+ def conv(enc, s):
20
+ n = len(s)
21
+ r = ""
22
+ i = 0
23
+ while i < n:
24
+ c = s[i]
25
+ if c == '\\':
26
+ c = s[i+1]
27
+ if c == '\\' or c == '"':
28
+ r = add_char(enc, r, "\\" + c)
29
+ i += 2
30
+ continue
31
+ else:
32
+ raise("Unknown escape {0}".format(s))
33
+
34
+ r = add_char(enc, r, c)
35
+ i += 1
36
+
37
+ return r
38
+
39
+ def main(enc):
40
+ print("# This file was generated by dict_conv.py.")
41
+ for line in sys.stdin:
42
+ s = line.strip()
43
+ if s[0] == '#':
44
+ print(s)
45
+ continue
46
+
47
+ if s[0] == '"' and s[-1] == '"':
48
+ s = conv(enc, s[1:-1])
49
+ print("\"{0}\"".format(s))
50
+ else:
51
+ raise("Invalid format {0}".format(s))
52
+
53
+ def usage(argv):
54
+ raise RuntimeError("Usage: python {0} utf16_be/utf16_le".format(argv[0]))
55
+
56
+
57
+ if __name__ == "__main__":
58
+ argv = sys.argv
59
+ argc = len(argv)
60
+
61
+ if argc >= 2:
62
+ s = argv[1]
63
+ if s == 'utf16_be':
64
+ enc = ENC_UTF16_BE
65
+ elif s == 'utf16_le':
66
+ enc = ENC_UTF16_LE
67
+ else:
68
+ usage(argv)
69
+ else:
70
+ usage(argv)
71
+
72
+ main(enc)
@@ -0,0 +1,2 @@
1
+ [libfuzzer]
2
+ dict = ascii_compatible.dict
@@ -0,0 +1,45 @@
1
+ /* libfuzzer test code for oniguruma
2
+ * author: Hanno Böck, license: CC0/public domain
3
+
4
+ Usage:
5
+ * compile oniguruma with something like
6
+ ./configure CC=clang LD=clang CFLAGS="-fsanitize-coverage=edge -fsanitize=address" \
7
+ LDFLAGS="-fsanitize-coverage=edge -fsanitize=address"
8
+ * Compile libfuzzer stub and link against static libonig.a and libFuzzer.a:
9
+ clang++ libfuzzer-onig.cpp src/.libs/libonig.a libFuzzer.a -o libfuzzer-onig \
10
+ -fsanitize-coverage=edge -fsanitize=address
11
+ * Put sample patterns in directory "in/"
12
+ * Run
13
+ ./libfuzzer-onig in
14
+
15
+ Consult libfuzzer docs for further details and how to create libFuzzer.a:
16
+ http://llvm.org/docs/LibFuzzer.html
17
+
18
+ */
19
+ #include <stdint.h>
20
+ #include <string.h>
21
+ #include <oniguruma.h>
22
+
23
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t * Data, size_t Size)
24
+ {
25
+ regex_t *reg;
26
+ OnigEncoding enc;
27
+
28
+ enc = ONIG_ENCODING_UTF8;
29
+
30
+ #ifdef FULL_TEST
31
+ onig_initialize(&enc, 1);
32
+ #endif
33
+ onig_set_retry_limit_in_match(120);
34
+ onig_set_parse_depth_limit(120);
35
+
36
+ if (onig_new(&reg, Data, Data + Size, ONIG_OPTION_DEFAULT, enc,
37
+ ONIG_SYNTAX_DEFAULT, 0) == 0)
38
+ onig_free(reg);
39
+
40
+ #ifdef FULL_TEST
41
+ onig_end();
42
+ #endif
43
+
44
+ return 0;
45
+ }
@@ -0,0 +1,392 @@
1
+ /*
2
+ * regset.c
3
+ * Copyright (c) 2019 K.Kosako
4
+ */
5
+ #include <stdio.h>
6
+ #include <unistd.h>
7
+ #include <stdlib.h>
8
+ #include <string.h>
9
+ #include <sys/types.h>
10
+ #include <sys/stat.h>
11
+ #include <fcntl.h>
12
+ #include <time.h>
13
+
14
+ #include "oniguruma.h"
15
+
16
+
17
+ #define RETRY_LIMIT 5000
18
+
19
+ #ifdef STANDALONE
20
+ //#define CHECK_EACH_REGEX_SEARCH_TIME
21
+ #endif
22
+
23
+ #define MAX_REG_NUM 256
24
+
25
+ typedef unsigned char uint8_t;
26
+ static OnigEncoding ENC;
27
+
28
+ static void
29
+ output_current_time(FILE* fp)
30
+ {
31
+ char d[64];
32
+ time_t t;
33
+
34
+ t = time(NULL);
35
+ strftime(d, sizeof(d), "%m/%d %H:%M:%S", localtime(&t));
36
+
37
+ fprintf(fp, "%s", d);
38
+ }
39
+
40
+ #ifdef CHECK_EACH_REGEX_SEARCH_TIME
41
+ static double
42
+ get_sec(struct timespec* ts, struct timespec* te)
43
+ {
44
+ double t;
45
+
46
+ t = (te->tv_sec - ts->tv_sec) +
47
+ (double )(te->tv_nsec - ts->tv_nsec) / 1000000000.0;
48
+ return t;
49
+ }
50
+
51
+ static int
52
+ check_each_regex_search_time(OnigRegSet* set, unsigned char* str, unsigned char* end)
53
+ {
54
+ int n;
55
+ int i;
56
+ int r;
57
+ OnigRegion* region;
58
+
59
+ n = onig_regset_number_of_regex(set);
60
+ region = onig_region_new();
61
+
62
+ for (i = 0; i < n; i++) {
63
+ regex_t* reg;
64
+ unsigned char* start;
65
+ unsigned char* range;
66
+ struct timespec ts1, ts2;
67
+ double t;
68
+
69
+ reg = onig_regset_get_regex(set, i);
70
+ start = str;
71
+ range = end;
72
+
73
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts1);
74
+
75
+ r = onig_search(reg, str, end, start, range, region, ONIG_OPTION_NONE);
76
+
77
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts2);
78
+ t = get_sec(&ts1, &ts2);
79
+
80
+ fprintf(stdout, "regex search time %d: %6.2lfmsec.\n", i, t * 1000.0);
81
+ }
82
+
83
+ onig_region_free(region, 1);
84
+ return 0;
85
+ }
86
+ #endif
87
+
88
+ static int
89
+ search(OnigRegSet* set, OnigRegSetLead lead, unsigned char* str, unsigned char* end)
90
+ {
91
+ int r;
92
+ int match_pos;
93
+ unsigned char *start, *range;
94
+
95
+ start = str;
96
+ range = end;
97
+ r = onig_regset_search(set, str, end, start, range, lead,
98
+ ONIG_OPTION_NONE, &match_pos);
99
+ if (r >= 0) {
100
+ #ifdef STANDALONE
101
+ int i;
102
+ int match_index;
103
+ OnigRegion* region;
104
+
105
+ match_index = r;
106
+ fprintf(stdout, "match reg index: %d, pos: %d (%s)\n",
107
+ match_index, match_pos, ONIGENC_NAME(ENC));
108
+ region = onig_regset_get_region(set, match_index);
109
+ if (region == 0) {
110
+ fprintf(stdout, "ERROR: can't get region.\n");
111
+ return -1;
112
+ }
113
+
114
+ for (i = 0; i < region->num_regs; i++) {
115
+ fprintf(stdout, "%d: (%d-%d)\n", i, region->beg[i], region->end[i]);
116
+ }
117
+ #endif
118
+ }
119
+ else if (r == ONIG_MISMATCH) {
120
+ #ifdef STANDALONE
121
+ fprintf(stdout, "search fail (%s)\n", ONIGENC_NAME(ENC));
122
+ #endif
123
+ }
124
+ else { /* error */
125
+ #ifdef STANDALONE
126
+ char s[ONIG_MAX_ERROR_MESSAGE_LEN];
127
+
128
+ onig_error_code_to_str((UChar* )s, r);
129
+ fprintf(stdout, "ERROR: %s\n", s);
130
+ fprintf(stdout, " (%s)\n", ONIGENC_NAME(ENC));
131
+ #endif
132
+ return -1;
133
+ }
134
+
135
+ return 0;
136
+ }
137
+
138
+ static long INPUT_COUNT;
139
+ static long EXEC_COUNT;
140
+ static long EXEC_COUNT_INTERVAL;
141
+ static long REGEX_SUCCESS_COUNT;
142
+ static long VALID_STRING_COUNT;
143
+
144
+ static int
145
+ exec(OnigEncoding enc, int reg_num, int init_reg_num,
146
+ UChar* pat[], UChar* pat_end[],
147
+ OnigRegSetLead lead, UChar* str, UChar* end)
148
+ {
149
+ int r;
150
+ int i, j;
151
+ OnigRegSet* set;
152
+ regex_t* reg;
153
+ OnigOptionType options;
154
+ OnigErrorInfo einfo;
155
+ regex_t* regs[MAX_REG_NUM];
156
+
157
+ EXEC_COUNT++;
158
+ EXEC_COUNT_INTERVAL++;
159
+
160
+ options = (EXEC_COUNT % 4 == 0) ? ONIG_OPTION_IGNORECASE : ONIG_OPTION_NONE;
161
+
162
+ onig_initialize(&enc, 1);
163
+ onig_set_retry_limit_in_search(RETRY_LIMIT);
164
+
165
+ for (i = 0; i < init_reg_num; i++) {
166
+ r = onig_new(&regs[i], pat[i], pat_end[i], options, ENC,
167
+ ONIG_SYNTAX_DEFAULT, &einfo);
168
+ if (r != 0) {
169
+ #ifdef STANDALONE
170
+ char s[ONIG_MAX_ERROR_MESSAGE_LEN];
171
+
172
+ onig_error_code_to_str((UChar* )s, r, &einfo);
173
+ fprintf(stdout, "ERROR: index: %d, %s\n", i, s);
174
+ #endif
175
+
176
+ for (j = 0; j < i; j++) onig_free(regs[j]);
177
+
178
+ onig_end();
179
+
180
+ if (r == ONIGERR_PARSER_BUG ||
181
+ r == ONIGERR_STACK_BUG ||
182
+ r == ONIGERR_UNDEFINED_BYTECODE ||
183
+ r == ONIGERR_UNEXPECTED_BYTECODE) {
184
+ return -2;
185
+ }
186
+ else
187
+ return -1;
188
+ }
189
+ }
190
+
191
+ r = onig_regset_new(&set, init_reg_num, regs);
192
+ if (r != 0) {
193
+ for (i = 0; i < init_reg_num; i++) {
194
+ onig_free(regs[i]);
195
+ }
196
+ onig_end();
197
+ return -1;
198
+ }
199
+
200
+ for (i = init_reg_num; i < reg_num; i++) {
201
+ r = onig_new(&reg, pat[i], pat_end[i], options, ENC,
202
+ ONIG_SYNTAX_DEFAULT, &einfo);
203
+ if (r != 0) {
204
+ #ifdef STANDALONE
205
+ char s[ONIG_MAX_ERROR_MESSAGE_LEN];
206
+
207
+ onig_error_code_to_str((UChar* )s, r, &einfo);
208
+ fprintf(stdout, "ERROR: index: %d, %s\n", i, s);
209
+ #endif
210
+ onig_regset_free(set);
211
+ onig_end();
212
+
213
+ if (r == ONIGERR_PARSER_BUG ||
214
+ r == ONIGERR_STACK_BUG ||
215
+ r == ONIGERR_UNDEFINED_BYTECODE ||
216
+ r == ONIGERR_UNEXPECTED_BYTECODE) {
217
+ return -2;
218
+ }
219
+ else
220
+ return -1;
221
+ }
222
+
223
+ r = onig_regset_add(set, reg);
224
+ if (r != 0) {
225
+ onig_regset_free(set);
226
+ onig_end();
227
+ fprintf(stdout, "ERROR: onig_regset_add(): %d\n", i);
228
+ return r;
229
+ }
230
+ }
231
+
232
+ REGEX_SUCCESS_COUNT++;
233
+
234
+ if (onigenc_is_valid_mbc_string(enc, str, end) != 0) {
235
+ VALID_STRING_COUNT++;
236
+ r = search(set, lead, str, end);
237
+ #ifdef CHECK_EACH_REGEX_SEARCH_TIME
238
+ r = check_each_regex_search_time(set, str, end);
239
+ #endif
240
+ }
241
+
242
+ onig_regset_free(set);
243
+ onig_end();
244
+ return 0;
245
+ }
246
+
247
+ #define MAX_PATTERN_SIZE 30
248
+ #define NUM_CONTROL_BYTES 3
249
+
250
+ #define EXEC_PRINT_INTERVAL 2000000
251
+
252
+ static int MaxRegNum;
253
+ static int MaxInitRegNum;
254
+
255
+ extern int
256
+ LLVMFuzzerTestOneInput(const uint8_t * Data, size_t Size)
257
+ {
258
+ int r, i;
259
+ int pattern_size;
260
+ unsigned char *str_null_end;
261
+ size_t remaining_size;
262
+ unsigned char *data;
263
+ unsigned int reg_num;
264
+ unsigned int init_reg_num;
265
+ unsigned char* pat[256];
266
+ unsigned char* pat_end[256];
267
+ int len;
268
+ unsigned int lead_num;
269
+ OnigRegSetLead lead;
270
+
271
+ INPUT_COUNT++;
272
+
273
+ if (Size < NUM_CONTROL_BYTES) return 0;
274
+
275
+ remaining_size = Size;
276
+ data = (unsigned char* )(Data);
277
+
278
+ reg_num = data[0];
279
+ data++;
280
+ remaining_size--;
281
+
282
+ init_reg_num = data[0];
283
+ data++;
284
+ remaining_size--;
285
+
286
+ lead_num = data[0];
287
+ data++;
288
+ remaining_size--;
289
+ lead = (lead_num % 2 == 0 ? ONIG_REGSET_POSITION_LEAD : ONIG_REGSET_REGEX_LEAD);
290
+
291
+ if (remaining_size < reg_num * 2) {
292
+ reg_num = reg_num % 15; // zero is OK.
293
+ }
294
+
295
+ init_reg_num %= (reg_num + 1);
296
+
297
+ if (MaxRegNum < reg_num)
298
+ MaxRegNum = reg_num;
299
+
300
+ if (MaxInitRegNum < init_reg_num)
301
+ MaxInitRegNum = init_reg_num;
302
+
303
+ if (reg_num == 0)
304
+ pattern_size = 1;
305
+ else
306
+ pattern_size = remaining_size / (reg_num * 2);
307
+
308
+ if (pattern_size > MAX_PATTERN_SIZE)
309
+ pattern_size = MAX_PATTERN_SIZE;
310
+
311
+ len = pattern_size * reg_num;
312
+ if (len == 0) len = 1;
313
+
314
+ for (i = 0; i < reg_num; i++) {
315
+ pat[i] = (unsigned char* )malloc(pattern_size);
316
+ memcpy(pat[i], data, pattern_size);
317
+ pat_end[i] = pat[i] + pattern_size;
318
+ data += pattern_size;
319
+ remaining_size -= pattern_size;
320
+ }
321
+
322
+ unsigned char *str = (unsigned char*)malloc(remaining_size != 0 ? remaining_size : 1);
323
+ memcpy(str, data, remaining_size);
324
+ str_null_end = str + remaining_size;
325
+
326
+ #ifdef STANDALONE
327
+ fprintf(stdout, "reg num: %d, pattern size: %d, lead: %s\n",
328
+ reg_num, pattern_size,
329
+ lead == ONIG_REGSET_POSITION_LEAD ? "position" : "regex");
330
+
331
+ if (reg_num != 0) {
332
+ unsigned char* p;
333
+ i = 0;
334
+ p = pat[0];
335
+ while (p < pat_end[0]) {
336
+ fprintf(stdout, " 0x%02x", (int )*p++);
337
+ i++;
338
+ if (i % 8 == 0) fprintf(stdout, "\n");
339
+ }
340
+ fprintf(stdout, "\n");
341
+ }
342
+ #endif
343
+
344
+ ENC = ONIG_ENCODING_UTF8;
345
+
346
+ r = exec(ENC, reg_num, init_reg_num, pat, pat_end, lead, str, str_null_end);
347
+
348
+ for (i = 0; i < reg_num; i++) {
349
+ free(pat[i]);
350
+ }
351
+ free(str);
352
+
353
+ if (r == -2) {
354
+ //output_data("parser-bug", Data, Size);
355
+ exit(-2);
356
+ }
357
+
358
+ if (EXEC_COUNT_INTERVAL == EXEC_PRINT_INTERVAL) {
359
+ float fexec, freg, fvalid;
360
+
361
+ fexec = (float )EXEC_COUNT / INPUT_COUNT;
362
+ freg = (float )REGEX_SUCCESS_COUNT / INPUT_COUNT;
363
+ fvalid = (float )VALID_STRING_COUNT / INPUT_COUNT;
364
+
365
+ output_current_time(stdout);
366
+ fprintf(stdout, ": %ld: EXEC:%.2f, REG:%.2f, VALID:%.2f MAX REG:%d-%d\n",
367
+ EXEC_COUNT, fexec, freg, fvalid, MaxRegNum, MaxInitRegNum);
368
+
369
+ EXEC_COUNT_INTERVAL = 0;
370
+ }
371
+ else if (EXEC_COUNT == 1) {
372
+ output_current_time(stdout);
373
+ fprintf(stdout, ": ------------ START ------------\n");
374
+ }
375
+
376
+ return r;
377
+ }
378
+
379
+ #ifdef STANDALONE
380
+
381
+ extern int main(int argc, char* argv[])
382
+ {
383
+ size_t n;
384
+ uint8_t Data[10000];
385
+
386
+ n = read(0, Data, sizeof(Data));
387
+ fprintf(stdout, "n: %ld\n", n);
388
+ LLVMFuzzerTestOneInput(Data, n);
389
+
390
+ return 0;
391
+ }
392
+ #endif /* STANDALONE */