@port-labs/jq-node-bindings 0.0.13 → 0.0.15-dev1

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 (453) hide show
  1. package/README.md +6 -1
  2. package/binding.gyp +41 -19
  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/lib/index.js +3 -0
  412. package/lib/jq.js +15 -1
  413. package/lib/templateAsync.js +137 -0
  414. package/package.json +7 -7
  415. package/src/binding.cc +623 -146
  416. package/src/binding.h +3 -4
  417. package/test/santiy-async.test.js +171 -0
  418. package/test/santiy.test.js +2 -2
  419. package/test/template-async.test.js +182 -0
  420. package/test/template.test.js +3 -3
  421. package/deps/jq/.travis.yml +0 -202
  422. package/deps/jq/NEWS +0 -89
  423. package/deps/jq/appveyor.yml +0 -53
  424. package/deps/jq/docs/Gemfile +0 -7
  425. package/deps/jq/docs/Gemfile.lock +0 -63
  426. package/deps/jq/docs/Rakefile +0 -24
  427. package/deps/jq/docs/Rakefile.manual +0 -49
  428. package/deps/jq/docs/Rakefile.website +0 -76
  429. package/deps/jq/docs/content/1.tutorial/default.yml +0 -327
  430. package/deps/jq/docs/content/2.download/default.yml +0 -193
  431. package/deps/jq/docs/content/index/index.yml +0 -73
  432. package/deps/jq/docs/public/css/base.scss +0 -181
  433. package/deps/jq/docs/public/jq.png +0 -0
  434. package/deps/jq/docs/site.yml +0 -9
  435. package/deps/jq/docs/templates/default.liquid +0 -34
  436. package/deps/jq/docs/templates/index.liquid +0 -73
  437. package/deps/jq/docs/templates/manual.liquid +0 -99
  438. package/deps/jq/docs/templates/shared/_footer.liquid +0 -10
  439. package/deps/jq/docs/templates/shared/_head.liquid +0 -17
  440. package/deps/jq/docs/templates/shared/_navbar.liquid +0 -27
  441. package/deps/jq/modules/oniguruma/README.ja +0 -195
  442. package/deps/jq/modules/oniguruma/cmake/dist.cmake +0 -321
  443. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +0 -31
  444. package/deps/jq/modules/oniguruma/dist.info +0 -10
  445. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +0 -2250
  446. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +0 -203
  447. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +0 -113
  448. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +0 -1225
  449. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +0 -24742
  450. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +0 -4846
  451. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +0 -2571
  452. /package/deps/jq/sig/{jq-release.key → jq-release-old.key} +0 -0
  453. /package/deps/jq/tests/modules/{.jq → home1/.jq} +0 -0
@@ -49,6 +49,8 @@ struct jq_state {
49
49
  void *input_cb_data;
50
50
  jq_msg_cb debug_cb;
51
51
  void *debug_cb_data;
52
+ jq_msg_cb stderr_cb;
53
+ void *stderr_cb_data;
52
54
  };
53
55
 
54
56
  struct closure {
@@ -292,7 +294,7 @@ uint16_t* stack_restore(jq_state *jq){
292
294
  assert(path_len >= 0);
293
295
  jq->path = jv_array_slice(jq->path, 0, path_len);
294
296
  } else {
295
- assert(path_len == 0);
297
+ fork->path_len = 0;
296
298
  }
297
299
  jv_free(jq->value_at_path);
298
300
  jq->value_at_path = fork->value_at_path;
@@ -313,7 +315,9 @@ static void jq_reset(jq_state *jq) {
313
315
 
314
316
  jq->halted = 0;
315
317
  jv_free(jq->exit_code);
318
+ jq->exit_code = jv_invalid();
316
319
  jv_free(jq->error_message);
320
+ jq->error_message = jv_invalid();
317
321
  if (jv_get_kind(jq->path) != JV_KIND_INVALID)
318
322
  jv_free(jq->path);
319
323
  jq->path = jv_null();
@@ -337,8 +341,6 @@ static void set_error(jq_state *jq, jv value) {
337
341
  #define ON_BACKTRACK(op) ((op)+NUM_OPCODES)
338
342
 
339
343
  jv jq_next(jq_state *jq) {
340
- jv cfunc_input[MAX_CFUNCTION_ARGS];
341
-
342
344
  jv_nomem_handler(jq->nomem_handler, jq->nomem_handler_data);
343
345
 
344
346
  uint16_t* pc = stack_restore(jq);
@@ -346,6 +348,7 @@ jv jq_next(jq_state *jq) {
346
348
 
347
349
  int raising;
348
350
  int backtracking = !jq->initial_execution;
351
+
349
352
  jq->initial_execution = 0;
350
353
  assert(jv_get_kind(jq->error) == JV_KIND_NULL);
351
354
  while (1) {
@@ -402,6 +405,12 @@ jv jq_next(jq_state *jq) {
402
405
 
403
406
  case TOP: break;
404
407
 
408
+ case ERRORK: {
409
+ jv v = jv_array_get(jv_copy(frame_current(jq)->bc->constants), *pc++);
410
+ set_error(jq, jv_invalid_with_msg(v));
411
+ goto do_backtrack;
412
+ }
413
+
405
414
  case LOADK: {
406
415
  jv v = jv_array_get(jv_copy(frame_current(jq)->bc->constants), *pc++);
407
416
  assert(jv_is_valid(v));
@@ -509,21 +518,25 @@ jv jq_next(jq_state *jq) {
509
518
  uint16_t v = *pc++;
510
519
  jv* var = frame_local_var(jq, v, level);
511
520
  jv max = stack_pop(jq);
512
- if (raising) goto do_backtrack;
521
+ if (raising) {
522
+ jv_free(max);
523
+ goto do_backtrack;
524
+ }
513
525
  if (jv_get_kind(*var) != JV_KIND_NUMBER ||
514
526
  jv_get_kind(max) != JV_KIND_NUMBER) {
515
527
  set_error(jq, jv_invalid_with_msg(jv_string_fmt("Range bounds must be numeric")));
516
528
  jv_free(max);
517
529
  goto do_backtrack;
518
- } else if (jv_number_value(jv_copy(*var)) >= jv_number_value(jv_copy(max))) {
530
+ } else if (jv_number_value(*var) >= jv_number_value(max)) {
519
531
  /* finished iterating */
532
+ jv_free(max);
520
533
  goto do_backtrack;
521
534
  } else {
522
- jv curr = jv_copy(*var);
535
+ jv curr = *var;
523
536
  *var = jv_number(jv_number_value(*var) + 1);
524
537
 
525
538
  struct stack_pos spos = stack_get_pos(jq);
526
- stack_push(jq, jv_copy(max));
539
+ stack_push(jq, max);
527
540
  stack_save(jq, pc - 3, spos);
528
541
 
529
542
  stack_push(jq, curr);
@@ -538,8 +551,8 @@ jv jq_next(jq_state *jq) {
538
551
  jv* var = frame_local_var(jq, v, level);
539
552
  if (jq->debug_trace_enabled) {
540
553
  printf("V%d = ", v);
541
- jv_dump(jv_copy(*var), 0);
542
- printf(" (%d)\n", jv_get_refcnt(*var));
554
+ jv_dump(jv_copy(*var), JV_PRINT_REFCOUNT);
555
+ printf("\n");
543
556
  }
544
557
  jv_free(stack_pop(jq));
545
558
  stack_push(jq, jv_copy(*var));
@@ -553,17 +566,22 @@ jv jq_next(jq_state *jq) {
553
566
  jv* var = frame_local_var(jq, v, level);
554
567
  if (jq->debug_trace_enabled) {
555
568
  printf("V%d = ", v);
556
- jv_dump(jv_copy(*var), 0);
557
- printf(" (%d)\n", jv_get_refcnt(*var));
569
+ jv_dump(jv_copy(*var), JV_PRINT_REFCOUNT);
570
+ printf("\n");
558
571
  }
559
572
  jv_free(stack_popn(jq));
573
+
574
+ // This `stack_push()` invalidates the `var` reference, so
560
575
  stack_push(jq, *var);
576
+ // we have to re-resolve `var` before we can set it to null
577
+ var = frame_local_var(jq, v, level);
561
578
  *var = jv_null();
562
579
  break;
563
580
  }
564
581
 
565
582
  case STOREVN:
566
583
  stack_save(jq, pc - 1, stack_get_pos(jq));
584
+ JQ_FALLTHROUGH;
567
585
  case STOREV: {
568
586
  uint16_t level = *pc++;
569
587
  uint16_t v = *pc++;
@@ -723,7 +741,7 @@ jv jq_next(jq_state *jq) {
723
741
  }
724
742
  stack_push(jq, container);
725
743
  stack_push(jq, jv_number(-1));
726
- // fallthrough
744
+ JQ_FALLTHROUGH;
727
745
  }
728
746
  case ON_BACKTRACK(EACH):
729
747
  case ON_BACKTRACK(EACH_OPT): {
@@ -763,8 +781,10 @@ jv jq_next(jq_state *jq) {
763
781
  }
764
782
 
765
783
  if (!keep_going || raising) {
766
- if (keep_going)
784
+ if (keep_going) {
785
+ jv_free(key);
767
786
  jv_free(value);
787
+ }
768
788
  jv_free(container);
769
789
  goto do_backtrack;
770
790
  } else if (is_last) {
@@ -798,7 +818,59 @@ jv jq_next(jq_state *jq) {
798
818
  break;
799
819
  }
800
820
 
801
- case FORK_OPT:
821
+ case TRY_BEGIN:
822
+ stack_save(jq, pc - 1, stack_get_pos(jq));
823
+ pc++; // skip handler offset this time
824
+ break;
825
+
826
+ case TRY_END:
827
+ stack_save(jq, pc - 1, stack_get_pos(jq));
828
+ break;
829
+
830
+ case ON_BACKTRACK(TRY_BEGIN): {
831
+ if (!raising) {
832
+ /*
833
+ * `try EXP ...` -- EXP backtracked (e.g., EXP was `empty`), so we
834
+ * backtrack more:
835
+ */
836
+ jv_free(stack_pop(jq));
837
+ goto do_backtrack;
838
+ }
839
+
840
+ /*
841
+ * Else `(try EXP ... ) | EXP2` raised an error.
842
+ *
843
+ * If the error was wrapped in another error, then that means EXP2 raised
844
+ * the error. We unwrap it and re-raise it as it wasn't raised by EXP.
845
+ *
846
+ * See commentary in gen_try().
847
+ */
848
+ jv e = jv_invalid_get_msg(jv_copy(jq->error));
849
+ if (!jv_is_valid(e) && jv_invalid_has_msg(jv_copy(e))) {
850
+ set_error(jq, e);
851
+ goto do_backtrack;
852
+ }
853
+ jv_free(e);
854
+
855
+ /*
856
+ * Else we caught an error containing a non-error value, so we jump to
857
+ * the handler.
858
+ *
859
+ * See commentary in gen_try().
860
+ */
861
+ uint16_t offset = *pc++;
862
+ jv_free(stack_pop(jq)); // free the input
863
+ stack_push(jq, jv_invalid_get_msg(jq->error)); // push the error's message
864
+ jq->error = jv_null();
865
+ pc += offset;
866
+ break;
867
+ }
868
+ case ON_BACKTRACK(TRY_END):
869
+ // Wrap the error so the matching TRY_BEGIN doesn't catch it
870
+ if (raising)
871
+ set_error(jq, jv_invalid_with_msg(jv_copy(jq->error)));
872
+ goto do_backtrack;
873
+
802
874
  case DESTRUCTURE_ALT:
803
875
  case FORK: {
804
876
  stack_save(jq, pc - 1, stack_get_pos(jq));
@@ -806,7 +878,6 @@ jv jq_next(jq_state *jq) {
806
878
  break;
807
879
  }
808
880
 
809
- case ON_BACKTRACK(FORK_OPT):
810
881
  case ON_BACKTRACK(DESTRUCTURE_ALT): {
811
882
  if (jv_is_valid(jq->error)) {
812
883
  // `try EXP ...` backtracked here (no value, `empty`), so we backtrack more
@@ -836,39 +907,27 @@ jv jq_next(jq_state *jq) {
836
907
 
837
908
  case CALL_BUILTIN: {
838
909
  int nargs = *pc++;
839
- jv top = stack_pop(jq);
840
- jv* in = cfunc_input;
841
- in[0] = top;
842
- for (int i = 1; i < nargs; i++) {
843
- in[i] = stack_pop(jq);
844
- }
845
910
  struct cfunction* function = &frame_current(jq)->bc->globals->cfunctions[*pc++];
846
- typedef jv (*func_1)(jq_state*,jv);
847
- typedef jv (*func_2)(jq_state*,jv,jv);
848
- typedef jv (*func_3)(jq_state*,jv,jv,jv);
849
- typedef jv (*func_4)(jq_state*,jv,jv,jv,jv);
850
- typedef jv (*func_5)(jq_state*,jv,jv,jv,jv,jv);
911
+ jv in[MAX_CFUNCTION_ARGS];
912
+ for (int i = 0; i < nargs; ++i)
913
+ in[i] = stack_pop(jq);
914
+
915
+ jv top;
851
916
  switch (function->nargs) {
852
- case 1: top = ((func_1)function->fptr)(jq, in[0]); break;
853
- case 2: top = ((func_2)function->fptr)(jq, in[0], in[1]); break;
854
- case 3: top = ((func_3)function->fptr)(jq, in[0], in[1], in[2]); break;
855
- case 4: top = ((func_4)function->fptr)(jq, in[0], in[1], in[2], in[3]); break;
856
- case 5: top = ((func_5)function->fptr)(jq, in[0], in[1], in[2], in[3], in[4]); break;
857
- // FIXME: a) up to 7 arguments (input + 6), b) should assert
858
- // because the compiler should not generate this error.
859
- default: return jv_invalid_with_msg(jv_string("Function takes too many arguments"));
917
+ case 1: top = function->fptr.a1(jq, in[0]); break;
918
+ case 2: top = function->fptr.a2(jq, in[0], in[1]); break;
919
+ case 3: top = function->fptr.a3(jq, in[0], in[1], in[2]); break;
920
+ case 4: top = function->fptr.a4(jq, in[0], in[1], in[2], in[3]); break;
921
+ default: assert(0 && "Invalid number of arguments");
860
922
  }
861
923
 
862
- if (jv_is_valid(top)) {
863
- stack_push(jq, top);
864
- } else if (jv_invalid_has_msg(jv_copy(top))) {
865
- set_error(jq, top);
866
- goto do_backtrack;
867
- } else {
868
- // C-coded function returns invalid w/o msg? -> backtrack, as if
869
- // it had returned `empty`
924
+ if (!jv_is_valid(top)) {
925
+ if (jv_invalid_has_msg(jv_copy(top)))
926
+ set_error(jq, top);
870
927
  goto do_backtrack;
871
928
  }
929
+
930
+ stack_push(jq, top);
872
931
  break;
873
932
  }
874
933
 
@@ -1004,12 +1063,24 @@ jq_state *jq_init(void) {
1004
1063
  jq->exit_code = jv_invalid();
1005
1064
  jq->error_message = jv_invalid();
1006
1065
 
1066
+ jq->input_cb = NULL;
1067
+ jq->input_cb_data = NULL;
1068
+
1069
+ jq->debug_cb = NULL;
1070
+ jq->debug_cb_data = NULL;
1071
+
1072
+ jq->stderr_cb = NULL;
1073
+ jq->stderr_cb_data = NULL;
1074
+
1007
1075
  jq->err_cb = default_err_cb;
1008
1076
  jq->err_cb_data = stderr;
1009
1077
 
1010
1078
  jq->attrs = jv_object();
1011
1079
  jq->path = jv_null();
1012
1080
  jq->value_at_path = jv_null();
1081
+
1082
+ jq->nomem_handler = NULL;
1083
+ jq->nomem_handler_data = NULL;
1013
1084
  return jq;
1014
1085
  }
1015
1086
 
@@ -1166,7 +1237,7 @@ int jq_compile_args(jq_state *jq, const char* str, jv args) {
1166
1237
  if (nerrors == 0) {
1167
1238
  nerrors = builtins_bind(jq, &program);
1168
1239
  if (nerrors == 0) {
1169
- nerrors = block_compile(program, &jq->bc, locations, args = args2obj(args));
1240
+ nerrors = block_compile(program, &jq->bc, locations, args2obj(args));
1170
1241
  }
1171
1242
  } else
1172
1243
  jv_free(args);
@@ -1191,7 +1262,8 @@ jv jq_get_prog_origin(jq_state *jq) {
1191
1262
  }
1192
1263
 
1193
1264
  jv jq_get_lib_dirs(jq_state *jq) {
1194
- return jq_get_attr(jq, jv_string("JQ_LIBRARY_PATH"));
1265
+ jv lib_dirs = jq_get_attr(jq, jv_string("JQ_LIBRARY_PATH"));
1266
+ return jv_is_valid(lib_dirs) ? lib_dirs : jv_array();
1195
1267
  }
1196
1268
 
1197
1269
  void jq_set_attrs(jq_state *jq, jv attrs) {
@@ -1232,6 +1304,16 @@ void jq_get_debug_cb(jq_state *jq, jq_msg_cb *cb, void **data) {
1232
1304
  *data = jq->debug_cb_data;
1233
1305
  }
1234
1306
 
1307
+ void jq_set_stderr_cb(jq_state *jq, jq_msg_cb cb, void *data) {
1308
+ jq->stderr_cb = cb;
1309
+ jq->stderr_cb_data = data;
1310
+ }
1311
+
1312
+ void jq_get_stderr_cb(jq_state *jq, jq_msg_cb *cb, void **data) {
1313
+ *cb = jq->stderr_cb;
1314
+ *data = jq->stderr_cb_data;
1315
+ }
1316
+
1235
1317
  void
1236
1318
  jq_halt(jq_state *jq, jv exit_code, jv error_message)
1237
1319
  {
@@ -1,5 +1,3 @@
1
-
2
- #define _GNU_SOURCE /* for RTLD_NEXT */
3
1
  #include <assert.h>
4
2
  #include <dlfcn.h>
5
3
  #include <errno.h>
package/deps/jq/src/jq.h CHANGED
@@ -4,6 +4,10 @@
4
4
  #include <stdio.h>
5
5
  #include "jv.h"
6
6
 
7
+ #ifdef __cplusplus
8
+ extern "C" {
9
+ #endif
10
+
7
11
  enum {
8
12
  JQ_DEBUG_TRACE = 1,
9
13
  JQ_DEBUG_TRACE_DETAIL = 2,
@@ -34,9 +38,10 @@ jv jq_get_error_message(jq_state *);
34
38
  typedef jv (*jq_input_cb)(jq_state *, void *);
35
39
  void jq_set_input_cb(jq_state *, jq_input_cb, void *);
36
40
  void jq_get_input_cb(jq_state *, jq_input_cb *, void **);
37
-
38
41
  void jq_set_debug_cb(jq_state *, jq_msg_cb, void *);
39
42
  void jq_get_debug_cb(jq_state *, jq_msg_cb *, void **);
43
+ void jq_set_stderr_cb(jq_state *, jq_msg_cb, void *);
44
+ void jq_get_stderr_cb(jq_state *, jq_msg_cb *, void **);
40
45
 
41
46
  void jq_set_attrs(jq_state *, jv);
42
47
  jv jq_get_attrs(jq_state *);
@@ -68,4 +73,8 @@ jv jq_util_input_get_current_line(jq_state*);
68
73
 
69
74
  int jq_set_colors(const char *);
70
75
 
76
+ #ifdef __cplusplus
77
+ }
78
+ #endif
79
+
71
80
  #endif /* !JQ_H */
@@ -2,24 +2,46 @@
2
2
  #include <stdio.h>
3
3
  #include <string.h>
4
4
  #include <stdlib.h>
5
+ #ifdef HAVE_PTHREAD
6
+ #include <pthread.h>
7
+ #endif
5
8
  #include "jv.h"
6
9
  #include "jq.h"
7
10
 
8
11
  static void jv_test();
9
- static void run_jq_tests(jv, int, FILE *);
10
-
12
+ static void run_jq_tests(jv, int, FILE *, int, int);
13
+ static void run_jq_start_state_tests();
14
+ #ifdef HAVE_PTHREAD
15
+ static void run_jq_pthread_tests();
16
+ #endif
11
17
 
12
18
  int jq_testsuite(jv libdirs, int verbose, int argc, char* argv[]) {
13
19
  FILE *testdata = stdin;
20
+ int skip = -1;
21
+ int take = -1;
14
22
  jv_test();
15
23
  if (argc > 0) {
16
- testdata = fopen(argv[0], "r");
17
- if (!testdata) {
18
- perror("fopen");
19
- exit(1);
24
+ for(int i = 0; i < argc; i++) {
25
+ if (!strcmp(argv[i], "--skip")) {
26
+ skip = atoi(argv[i+1]);
27
+ i++;
28
+ } else if (!strcmp(argv[i], "--take")) {
29
+ take = atoi(argv[i+1]);
30
+ i++;
31
+ } else {
32
+ testdata = fopen(argv[i], "r");
33
+ if (!testdata) {
34
+ perror("fopen");
35
+ exit(1);
36
+ }
37
+ }
20
38
  }
21
39
  }
22
- run_jq_tests(libdirs, verbose, testdata);
40
+ run_jq_tests(libdirs, verbose, testdata, skip, take);
41
+ run_jq_start_state_tests();
42
+ #ifdef HAVE_PTHREAD
43
+ run_jq_pthread_tests();
44
+ #endif
23
45
  return 0;
24
46
  }
25
47
 
@@ -53,8 +75,8 @@ static void test_err_cb(void *data, jv e) {
53
75
  jv_free(e);
54
76
  }
55
77
 
56
- static void run_jq_tests(jv lib_dirs, int verbose, FILE *testdata) {
57
- char prog[4096];
78
+ static void run_jq_tests(jv lib_dirs, int verbose, FILE *testdata, int skip, int take) {
79
+ char prog[4096] = {0};
58
80
  char buf[4096];
59
81
  struct err_data err_msg;
60
82
  int tests = 0, passed = 0, invalid = 0;
@@ -63,6 +85,9 @@ static void run_jq_tests(jv lib_dirs, int verbose, FILE *testdata) {
63
85
  int check_msg = 0;
64
86
  jq_state *jq = NULL;
65
87
 
88
+ int tests_to_skip = skip > 0 ? skip : 0;
89
+ int tests_to_take = take;
90
+
66
91
  jq = jq_init();
67
92
  assert(jq);
68
93
  if (jv_get_kind(lib_dirs) == JV_KIND_NULL)
@@ -80,9 +105,36 @@ static void run_jq_tests(jv lib_dirs, int verbose, FILE *testdata) {
80
105
  continue;
81
106
  }
82
107
  if (prog[strlen(prog)-1] == '\n') prog[strlen(prog)-1] = 0;
83
- printf("Testing '%s' at line number %u\n", prog, lineno);
108
+
109
+ if (skip > 0) {
110
+ skip--;
111
+
112
+ // skip past test data
113
+ while (fgets(buf, sizeof(buf), testdata)) {
114
+ lineno++;
115
+ if (buf[0] == '\n' || (buf[0] == '\r' && buf[1] == '\n'))
116
+ break;
117
+ }
118
+
119
+ must_fail = 0;
120
+ check_msg = 0;
121
+
122
+ continue;
123
+ } else if (skip == 0) {
124
+ printf("Skipped %d tests\n", tests_to_skip);
125
+ skip = -1;
126
+ }
127
+
128
+ if (take > 0) {
129
+ take--;
130
+ } else if (take == 0) {
131
+ printf("Hit the number of tests limit (%d), breaking\n", tests_to_take);
132
+ break;
133
+ }
134
+
84
135
  int pass = 1;
85
136
  tests++;
137
+ printf("Test #%d: '%s' at line number %u\n", tests + tests_to_skip, prog, lineno);
86
138
  int compiled = jq_compile(jq, prog);
87
139
 
88
140
  if (must_fail) {
@@ -145,6 +197,7 @@ static void run_jq_tests(jv lib_dirs, int verbose, FILE *testdata) {
145
197
  }
146
198
  jv actual = jq_next(jq);
147
199
  if (!jv_is_valid(actual)) {
200
+ jv_free(expected);
148
201
  jv_free(actual);
149
202
  printf("*** Insufficient results for test at line number %u: %s\n", lineno, prog);
150
203
  pass = 0;
@@ -157,11 +210,13 @@ static void run_jq_tests(jv lib_dirs, int verbose, FILE *testdata) {
157
210
  printf(" for test at line number %u: %s\n", lineno, prog);
158
211
  pass = 0;
159
212
  }
213
+ #ifdef USE_DECNUM
160
214
  jv as_string = jv_dump_string(jv_copy(expected), rand() & ~(JV_PRINT_COLOR|JV_PRINT_REFCOUNT));
161
215
  jv reparsed = jv_parse_sized(jv_string_value(as_string), jv_string_length_bytes(jv_copy(as_string)));
162
216
  assert(jv_equal(jv_copy(expected), jv_copy(reparsed)));
163
217
  jv_free(as_string);
164
218
  jv_free(reparsed);
219
+ #endif
165
220
  jv_free(expected);
166
221
  jv_free(actual);
167
222
  }
@@ -179,11 +234,167 @@ static void run_jq_tests(jv lib_dirs, int verbose, FILE *testdata) {
179
234
  passed+=pass;
180
235
  }
181
236
  jq_teardown(&jq);
182
- printf("%d of %d tests passed (%d malformed)\n", passed,tests,invalid);
237
+
238
+ int total_skipped = tests_to_skip;
239
+
240
+ if (skip > 0) {
241
+ total_skipped = tests_to_skip - skip;
242
+ }
243
+
244
+ printf("%d of %d tests passed (%d malformed, %d skipped)\n",
245
+ passed, tests, invalid, total_skipped);
246
+
247
+ if (skip > 0) {
248
+ printf("WARN: skipped past the end of file, exiting with status 2\n");
249
+ exit(2);
250
+ }
251
+
183
252
  if (passed != tests) exit(1);
184
253
  }
185
254
 
186
255
 
256
+ static int test_start_state(jq_state *jq, char *prog) {
257
+ int pass = 1;
258
+ jv message = jq_get_error_message(jq);
259
+ if (jv_is_valid(message)) {
260
+ printf("*** Expected error_message to be invalid after jq_start: %s\n", prog);
261
+ pass = 0;
262
+ }
263
+ jv_free(message);
264
+
265
+ jv exit_code = jq_get_exit_code(jq);
266
+ if (jv_is_valid(exit_code)) {
267
+ printf("*** Expected exit_code to be invalid after jq_start: %s\n", prog);
268
+ pass = 0;
269
+ }
270
+ jv_free(exit_code);
271
+
272
+ if (jq_halted(jq)) {
273
+ printf("*** Expected jq to not be halted after jq_start: %s\n", prog);
274
+ pass = 0;
275
+ }
276
+
277
+ return pass;
278
+ }
279
+
280
+ // Test jq_state is reset after subsequent calls to jq_start.
281
+ static void test_jq_start_resets_state(char *prog, const char *input) {
282
+ printf("Test jq_state: %s\n", prog);
283
+ jq_state *jq = jq_init();
284
+ assert(jq);
285
+
286
+ int compiled = jq_compile(jq, prog);
287
+ assert(compiled);
288
+
289
+ // First call to jq_start. Run until completion.
290
+ jv parsed_input = jv_parse(input);
291
+ assert(jv_is_valid(parsed_input));
292
+ jq_start(jq, parsed_input, 0);
293
+ assert(test_start_state(jq, prog));
294
+ while (1) {
295
+ jv result = jq_next(jq);
296
+ int valid = jv_is_valid(result);
297
+ jv_free(result);
298
+ if (!valid) { break; }
299
+ }
300
+
301
+ // Second call to jq_start.
302
+ jv parsed_input2 = jv_parse(input);
303
+ assert(jv_is_valid(parsed_input2));
304
+ jq_start(jq, parsed_input2, 0);
305
+ assert(test_start_state(jq, prog));
306
+
307
+ jq_teardown(&jq);
308
+ }
309
+
310
+ static void run_jq_start_state_tests() {
311
+ test_jq_start_resets_state(".[]", "[1,2,3]");
312
+ test_jq_start_resets_state(".[] | if .%2 == 0 then halt_error else . end", "[1,2,3]");
313
+ }
314
+
315
+
316
+ /// pthread regression test
317
+ #ifdef HAVE_PTHREAD
318
+ #define NUMBER_OF_THREADS 3
319
+ struct test_pthread_data {
320
+ int result;
321
+ };
322
+
323
+ static int test_pthread_jq_parse(jq_state *jq, struct jv_parser *parser)
324
+ {
325
+ int rv = 0;
326
+ jv value;
327
+
328
+ value = jv_parser_next(parser);
329
+ while (jv_is_valid(value)) {
330
+ jq_start(jq, value, 0);
331
+ jv result = jq_next(jq);
332
+
333
+ while (jv_is_valid(result)) {
334
+ jv_free(result);
335
+ result = jq_next(jq);
336
+ }
337
+ jv_free(result);
338
+ value = jv_parser_next(parser);
339
+ }
340
+ jv_free(value);
341
+ return rv;
342
+ }
343
+
344
+ static void *test_pthread_run(void *ptr) {
345
+ int rv;
346
+ jq_state *jq;
347
+ const char *prg = ".data";
348
+ const char *buf = "{ \"data\": 1 }";
349
+ struct test_pthread_data *data = ptr;
350
+
351
+ jq = jq_init();
352
+ if (jq_compile(jq, prg) == 0) {
353
+ jq_teardown(&jq);
354
+ return NULL;
355
+ }
356
+
357
+ struct jv_parser *parser = jv_parser_new(0);
358
+ jv_parser_set_buf(parser, buf, strlen(buf), 0);
359
+ rv = test_pthread_jq_parse(jq, parser);
360
+
361
+ data->result = rv;
362
+
363
+ jv_parser_free(parser);
364
+ jq_teardown(&jq);
365
+ return NULL;
366
+ }
367
+
368
+ static void run_jq_pthread_tests() {
369
+ pthread_t threads[NUMBER_OF_THREADS];
370
+ struct test_pthread_data data[NUMBER_OF_THREADS];
371
+ int createerror;
372
+ int a;
373
+
374
+ memset(&threads, 0, sizeof(threads));
375
+ memset(&data, 0, sizeof(data));
376
+
377
+ // Create all threads
378
+ for (a = 0; a < NUMBER_OF_THREADS; ++a) {
379
+ createerror = pthread_create(&threads[a], NULL, test_pthread_run, &data[a]);
380
+ assert(createerror == 0);
381
+ }
382
+
383
+ // wait for all threads
384
+ for(a = 0; a < NUMBER_OF_THREADS; ++a) {
385
+ if (threads[a] != 0) {
386
+ pthread_join(threads[a], NULL);
387
+ }
388
+ }
389
+
390
+ // check results
391
+ for(a = 0; a < NUMBER_OF_THREADS; ++a) {
392
+ assert(data[a].result == 0);
393
+ }
394
+ }
395
+ #endif // HAVE_PTHREAD
396
+
397
+
187
398
  static void jv_test() {
188
399
  /// JSON parser regression tests
189
400
  {