@port-labs/jq-node-bindings 1.0.4 → 1.1.0-dev

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 (352) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/configure +6 -5
  3. package/deps/jq/.claude/settings.local.json +7 -0
  4. package/deps/jq/.gitattributes +1 -3
  5. package/deps/jq/AUTHORS +55 -1
  6. package/deps/jq/COPYING +40 -0
  7. package/deps/jq/Makefile.am +40 -36
  8. package/deps/jq/NEWS.md +277 -2
  9. package/deps/jq/README.md +23 -5
  10. package/deps/jq/compile-ios.sh +1 -1
  11. package/deps/jq/config/m4/check-math-func.m4 +2 -2
  12. package/deps/jq/config/m4/find-func-no-libs2.m4 +3 -3
  13. package/deps/jq/configure.ac +10 -18
  14. package/deps/jq/docs/Pipfile.lock +368 -313
  15. package/deps/jq/docs/README.md +3 -4
  16. package/deps/jq/docs/build_manpage.py +1 -1
  17. package/deps/jq/docs/build_mantests.py +1 -1
  18. package/deps/jq/docs/build_website.py +1 -8
  19. package/deps/jq/docs/content/download/default.yml +49 -9
  20. package/deps/jq/docs/content/index.yml +9 -0
  21. package/deps/jq/docs/content/manual/{manual.yml → dev/manual.yml} +218 -61
  22. package/deps/jq/docs/content/manual/v1.3/manual.yml +0 -5
  23. package/deps/jq/docs/content/manual/v1.4/manual.yml +0 -5
  24. package/deps/jq/docs/content/manual/v1.5/manual.yml +3 -8
  25. package/deps/jq/docs/content/manual/v1.6/manual.yml +3 -8
  26. package/deps/jq/docs/content/manual/v1.7/manual.yml +499 -500
  27. package/deps/jq/docs/content/manual/v1.8/manual.yml +3858 -0
  28. package/deps/jq/docs/content/tutorial/default.yml +3 -3
  29. package/deps/jq/docs/manual_schema.yml +0 -3
  30. package/deps/jq/docs/public/CNAME +1 -0
  31. package/deps/jq/docs/templates/index.html.j2 +10 -10
  32. package/deps/jq/docs/templates/manual.html.j2 +14 -3
  33. package/deps/jq/docs/templates/shared/_head.html.j2 +8 -3
  34. package/deps/jq/docs/templates/shared/_navbar.html.j2 +4 -4
  35. package/deps/jq/jq.1.prebuilt +219 -44
  36. package/deps/jq/jq.spec +2 -2
  37. package/deps/jq/libjq.pc.in +1 -1
  38. package/deps/jq/scripts/version +1 -1
  39. package/deps/jq/sig/v1.7.1/jq-1.7.1.tar.gz.asc +16 -0
  40. package/deps/jq/sig/v1.7.1/jq-1.7.1.zip.asc +16 -0
  41. package/deps/jq/sig/v1.7.1/jq-linux-amd64.asc +16 -0
  42. package/deps/jq/sig/v1.7.1/jq-linux-arm64.asc +16 -0
  43. package/deps/jq/sig/v1.7.1/jq-linux-armel.asc +16 -0
  44. package/deps/jq/sig/v1.7.1/jq-linux-armhf.asc +16 -0
  45. package/deps/jq/sig/v1.7.1/jq-linux-i386.asc +16 -0
  46. package/deps/jq/sig/v1.7.1/jq-linux-mips.asc +16 -0
  47. package/deps/jq/sig/v1.7.1/jq-linux-mips64.asc +16 -0
  48. package/deps/jq/sig/v1.7.1/jq-linux-mips64el.asc +16 -0
  49. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6.asc +16 -0
  50. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6el.asc +16 -0
  51. package/deps/jq/sig/v1.7.1/jq-linux-mipsel.asc +16 -0
  52. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6.asc +16 -0
  53. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6el.asc +16 -0
  54. package/deps/jq/sig/v1.7.1/jq-linux-powerpc.asc +16 -0
  55. package/deps/jq/sig/v1.7.1/jq-linux-ppc64el.asc +16 -0
  56. package/deps/jq/sig/v1.7.1/jq-linux-riscv64.asc +16 -0
  57. package/deps/jq/sig/v1.7.1/jq-linux-s390x.asc +16 -0
  58. package/deps/jq/sig/v1.7.1/jq-linux64.asc +16 -0
  59. package/deps/jq/sig/v1.7.1/jq-macos-amd64.asc +16 -0
  60. package/deps/jq/sig/v1.7.1/jq-macos-arm64.asc +16 -0
  61. package/deps/jq/sig/v1.7.1/jq-osx-amd64.asc +16 -0
  62. package/deps/jq/sig/v1.7.1/jq-win64.exe.asc +16 -0
  63. package/deps/jq/sig/v1.7.1/jq-windows-amd64.exe.asc +16 -0
  64. package/deps/jq/sig/v1.7.1/jq-windows-i386.exe.asc +16 -0
  65. package/deps/jq/sig/v1.7.1/sha256sum.txt +26 -0
  66. package/deps/jq/sig/v1.8.0/jq-1.8.0.tar.gz.asc +16 -0
  67. package/deps/jq/sig/v1.8.0/jq-1.8.0.zip.asc +16 -0
  68. package/deps/jq/sig/v1.8.0/jq-linux-amd64.asc +16 -0
  69. package/deps/jq/sig/v1.8.0/jq-linux-arm64.asc +16 -0
  70. package/deps/jq/sig/v1.8.0/jq-linux-armel.asc +16 -0
  71. package/deps/jq/sig/v1.8.0/jq-linux-armhf.asc +16 -0
  72. package/deps/jq/sig/v1.8.0/jq-linux-i386.asc +16 -0
  73. package/deps/jq/sig/v1.8.0/jq-linux-mips.asc +16 -0
  74. package/deps/jq/sig/v1.8.0/jq-linux-mips64.asc +16 -0
  75. package/deps/jq/sig/v1.8.0/jq-linux-mips64el.asc +16 -0
  76. package/deps/jq/sig/v1.8.0/jq-linux-mips64r6.asc +16 -0
  77. package/deps/jq/sig/v1.8.0/jq-linux-mips64r6el.asc +16 -0
  78. package/deps/jq/sig/v1.8.0/jq-linux-mipsel.asc +16 -0
  79. package/deps/jq/sig/v1.8.0/jq-linux-mipsr6.asc +16 -0
  80. package/deps/jq/sig/v1.8.0/jq-linux-mipsr6el.asc +16 -0
  81. package/deps/jq/sig/v1.8.0/jq-linux-powerpc.asc +16 -0
  82. package/deps/jq/sig/v1.8.0/jq-linux-ppc64el.asc +16 -0
  83. package/deps/jq/sig/v1.8.0/jq-linux-riscv64.asc +16 -0
  84. package/deps/jq/sig/v1.8.0/jq-linux-s390x.asc +16 -0
  85. package/deps/jq/sig/v1.8.0/jq-linux64.asc +16 -0
  86. package/deps/jq/sig/v1.8.0/jq-macos-amd64.asc +16 -0
  87. package/deps/jq/sig/v1.8.0/jq-macos-arm64.asc +16 -0
  88. package/deps/jq/sig/v1.8.0/jq-osx-amd64.asc +16 -0
  89. package/deps/jq/sig/v1.8.0/jq-win64.exe.asc +16 -0
  90. package/deps/jq/sig/v1.8.0/jq-windows-amd64.exe.asc +16 -0
  91. package/deps/jq/sig/v1.8.0/jq-windows-i386.exe.asc +16 -0
  92. package/deps/jq/sig/v1.8.0/sha256sum.txt +26 -0
  93. package/deps/jq/src/builtin.c +446 -271
  94. package/deps/jq/src/builtin.jq +25 -60
  95. package/deps/jq/src/bytecode.h +8 -3
  96. package/deps/jq/src/compile.c +22 -43
  97. package/deps/jq/src/compile.h +1 -1
  98. package/deps/jq/src/execute.c +20 -25
  99. package/deps/jq/src/jq_test.c +113 -44
  100. package/deps/jq/src/jv.c +134 -42
  101. package/deps/jq/src/jv.h +10 -3
  102. package/deps/jq/src/jv_alloc.c +8 -5
  103. package/deps/jq/src/jv_alloc.h +0 -1
  104. package/deps/jq/src/jv_aux.c +41 -8
  105. package/deps/jq/src/jv_dtoa.c +4 -12
  106. package/deps/jq/src/jv_dtoa_tsd.c +5 -4
  107. package/deps/jq/src/jv_dtoa_tsd.h +1 -1
  108. package/deps/jq/src/jv_parse.c +5 -3
  109. package/deps/jq/src/jv_print.c +87 -65
  110. package/deps/jq/src/jv_unicode.c +18 -0
  111. package/deps/jq/src/jv_unicode.h +2 -0
  112. package/deps/jq/src/lexer.c +303 -278
  113. package/deps/jq/src/lexer.h +5 -4
  114. package/deps/jq/src/lexer.l +8 -2
  115. package/deps/jq/src/libm.h +15 -5
  116. package/deps/jq/src/linker.c +6 -4
  117. package/deps/jq/src/locfile.c +12 -12
  118. package/deps/jq/src/main.c +204 -270
  119. package/deps/jq/src/parser.c +1105 -1273
  120. package/deps/jq/src/parser.y +149 -181
  121. package/deps/jq/src/util.c +46 -48
  122. package/deps/jq/src/util.h +1 -1
  123. package/deps/jq/tests/base64.test +12 -0
  124. package/deps/jq/tests/jq.test +429 -37
  125. package/deps/jq/tests/jq_fuzz_load_file.c +1 -0
  126. package/deps/jq/tests/man.test +46 -13
  127. package/deps/jq/tests/manonig.test +13 -0
  128. package/deps/jq/tests/onig.test +40 -2
  129. package/deps/jq/tests/optional.test +4 -12
  130. package/deps/jq/tests/setup +5 -1
  131. package/deps/jq/tests/shtest +358 -130
  132. package/deps/jq/tests/uri.test +38 -0
  133. package/deps/jq/tests/uritest +5 -0
  134. package/deps/jq/{src → vendor}/decNumber/decBasic.c +1 -1
  135. package/deps/jq/{src → vendor}/decNumber/decCommon.c +1 -1
  136. package/deps/jq/{src → vendor}/decNumber/decNumber.c +4 -4
  137. package/deps/jq/{modules → vendor}/oniguruma/CMakeLists.txt +5 -3
  138. package/deps/jq/{modules → vendor}/oniguruma/HISTORY +45 -7
  139. package/deps/jq/{modules → vendor}/oniguruma/Makefile.am +1 -1
  140. package/deps/jq/{modules → vendor}/oniguruma/README.md +10 -23
  141. package/deps/jq/{modules → vendor}/oniguruma/compile +29 -13
  142. package/deps/jq/{modules → vendor}/oniguruma/config.guess +91 -27
  143. package/deps/jq/{modules → vendor}/oniguruma/config.sub +716 -242
  144. package/deps/jq/{modules → vendor}/oniguruma/configure.ac +2 -2
  145. package/deps/jq/{modules → vendor}/oniguruma/depcomp +10 -9
  146. package/deps/jq/{modules → vendor}/oniguruma/doc/API +3 -1
  147. package/deps/jq/{modules → vendor}/oniguruma/doc/API.ja +3 -1
  148. package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.BUILTIN +10 -1
  149. package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.BUILTIN.ja +9 -1
  150. package/deps/jq/{modules → vendor}/oniguruma/doc/RE +12 -13
  151. package/deps/jq/{modules → vendor}/oniguruma/doc/RE.ja +12 -13
  152. package/deps/jq/{modules → vendor}/oniguruma/doc/SYNTAX.md +202 -167
  153. package/deps/jq/{modules → vendor}/oniguruma/doc/UNICODE_PROPERTIES +33 -1
  154. package/deps/jq/vendor/oniguruma/doc/onig_syn_md.c +667 -0
  155. package/deps/jq/{modules → vendor}/oniguruma/harnesses/base.c +1 -1
  156. package/deps/jq/{modules → vendor}/oniguruma/install-sh +9 -9
  157. package/deps/jq/{modules → vendor}/oniguruma/missing +50 -29
  158. package/deps/jq/{modules → vendor}/oniguruma/sample/callback_each_match.c +1 -3
  159. package/deps/jq/vendor/oniguruma/sbom.cdx.json +44 -0
  160. package/deps/jq/{modules → vendor}/oniguruma/src/ascii.c +4 -1
  161. package/deps/jq/{modules → vendor}/oniguruma/src/gperf_fold_key_conv.py +4 -4
  162. package/deps/jq/{modules → vendor}/oniguruma/src/gperf_unfold_key_conv.py +4 -4
  163. package/deps/jq/vendor/oniguruma/src/make_unicode_egcb.sh +7 -0
  164. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_egcb_data.py +20 -19
  165. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_fold.sh +5 -5
  166. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_fold_data.py +37 -37
  167. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_property.sh +2 -2
  168. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_property_data.py +66 -65
  169. package/deps/jq/vendor/oniguruma/src/make_unicode_wb.sh +7 -0
  170. package/deps/jq/{modules → vendor}/oniguruma/src/make_unicode_wb_data.py +20 -19
  171. package/deps/jq/{modules → vendor}/oniguruma/src/oniguruma.h +6 -3
  172. package/deps/jq/{modules → vendor}/oniguruma/src/regcomp.c +14 -6
  173. package/deps/jq/{modules → vendor}/oniguruma/src/regerror.c +2 -2
  174. package/deps/jq/{modules → vendor}/oniguruma/src/regexec.c +85 -14
  175. package/deps/jq/{modules → vendor}/oniguruma/src/regint.h +17 -4
  176. package/deps/jq/{modules → vendor}/oniguruma/src/regparse.c +115 -27
  177. package/deps/jq/{modules → vendor}/oniguruma/src/regsyntax.c +10 -7
  178. package/deps/jq/{modules → vendor}/oniguruma/src/st.c +49 -75
  179. package/deps/jq/{modules → vendor}/oniguruma/src/st.h +3 -10
  180. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_egcb_data.c +54 -49
  181. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_fold1_key.c +1567 -1507
  182. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_fold2_key.c +1 -1
  183. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_fold3_key.c +1 -1
  184. package/deps/jq/vendor/oniguruma/src/unicode_fold_data.c +1619 -0
  185. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_property_data.c +5520 -4178
  186. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_property_data_posix.c +239 -83
  187. package/deps/jq/vendor/oniguruma/src/unicode_unfold_key.c +3497 -0
  188. package/deps/jq/{modules → vendor}/oniguruma/src/unicode_wb_data.c +51 -19
  189. package/deps/jq/{modules → vendor}/oniguruma/src/utf16_be.c +3 -2
  190. package/deps/jq/{modules → vendor}/oniguruma/src/utf16_le.c +3 -2
  191. package/deps/jq/{modules → vendor}/oniguruma/test/test_back.c +3 -3
  192. package/deps/jq/{modules → vendor}/oniguruma/test/test_options.c +2 -2
  193. package/deps/jq/{modules → vendor}/oniguruma/test/test_syntax.c +54 -2
  194. package/deps/jq/{modules → vendor}/oniguruma/test/test_utf8.c +19 -5
  195. package/deps/jq/{modules → vendor}/oniguruma/test/testc.c +1 -1
  196. package/deps/jq/{modules → vendor}/oniguruma/test/testp.c +1 -1
  197. package/deps/jq/{modules → vendor}/oniguruma/test-driver +13 -6
  198. package/deps/jq/{modules → vendor}/oniguruma/windows/CMakeLists.txt +1 -1
  199. package/index.d.ts +2 -1
  200. package/lib/index.js +1 -0
  201. package/lib/jq.js +2 -1
  202. package/package.json +4 -3
  203. package/test/santiy-async.test.js +4 -4
  204. package/test/santiy.test.js +4 -4
  205. package/test/template.test.js +6 -6
  206. package/deps/jq/modules/oniguruma/src/make_unicode_egcb.sh +0 -7
  207. package/deps/jq/modules/oniguruma/src/make_unicode_wb.sh +0 -7
  208. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +0 -1592
  209. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +0 -3394
  210. package/deps/jq/scripts/update-website +0 -30
  211. /package/deps/jq/{src → vendor}/decNumber/ICU-license.html +0 -0
  212. /package/deps/jq/{src → vendor}/decNumber/decContext.c +0 -0
  213. /package/deps/jq/{src → vendor}/decNumber/decContext.h +0 -0
  214. /package/deps/jq/{src → vendor}/decNumber/decDPD.h +0 -0
  215. /package/deps/jq/{src → vendor}/decNumber/decDouble.c +0 -0
  216. /package/deps/jq/{src → vendor}/decNumber/decDouble.h +0 -0
  217. /package/deps/jq/{src → vendor}/decNumber/decNumber.h +0 -0
  218. /package/deps/jq/{src → vendor}/decNumber/decNumberLocal.h +0 -0
  219. /package/deps/jq/{src → vendor}/decNumber/decPacked.c +0 -0
  220. /package/deps/jq/{src → vendor}/decNumber/decPacked.h +0 -0
  221. /package/deps/jq/{src → vendor}/decNumber/decQuad.c +0 -0
  222. /package/deps/jq/{src → vendor}/decNumber/decQuad.h +0 -0
  223. /package/deps/jq/{src → vendor}/decNumber/decSingle.c +0 -0
  224. /package/deps/jq/{src → vendor}/decNumber/decSingle.h +0 -0
  225. /package/deps/jq/{src → vendor}/decNumber/decimal128.c +0 -0
  226. /package/deps/jq/{src → vendor}/decNumber/decimal128.h +0 -0
  227. /package/deps/jq/{src → vendor}/decNumber/decimal32.c +0 -0
  228. /package/deps/jq/{src → vendor}/decNumber/decimal32.h +0 -0
  229. /package/deps/jq/{src → vendor}/decNumber/decimal64.c +0 -0
  230. /package/deps/jq/{src → vendor}/decNumber/decimal64.h +0 -0
  231. /package/deps/jq/{src → vendor}/decNumber/decnumber.pdf +0 -0
  232. /package/deps/jq/{src → vendor}/decNumber/example1.c +0 -0
  233. /package/deps/jq/{src → vendor}/decNumber/example2.c +0 -0
  234. /package/deps/jq/{src → vendor}/decNumber/example3.c +0 -0
  235. /package/deps/jq/{src → vendor}/decNumber/example4.c +0 -0
  236. /package/deps/jq/{src → vendor}/decNumber/example5.c +0 -0
  237. /package/deps/jq/{src → vendor}/decNumber/example6.c +0 -0
  238. /package/deps/jq/{src → vendor}/decNumber/example7.c +0 -0
  239. /package/deps/jq/{src → vendor}/decNumber/example8.c +0 -0
  240. /package/deps/jq/{src → vendor}/decNumber/readme.txt +0 -0
  241. /package/deps/jq/{modules → vendor}/oniguruma/.travis.yml +0 -0
  242. /package/deps/jq/{modules → vendor}/oniguruma/AUTHORS +0 -0
  243. /package/deps/jq/{modules → vendor}/oniguruma/COPYING +0 -0
  244. /package/deps/jq/{modules → vendor}/oniguruma/ChangeLog +0 -0
  245. /package/deps/jq/{modules → vendor}/oniguruma/NEWS +0 -0
  246. /package/deps/jq/{modules → vendor}/oniguruma/README +0 -0
  247. /package/deps/jq/{modules → vendor}/oniguruma/README_japanese +0 -0
  248. /package/deps/jq/{modules → vendor}/oniguruma/autogen.sh +0 -0
  249. /package/deps/jq/{modules → vendor}/oniguruma/cmake/Config.cmake.in +0 -0
  250. /package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.API +0 -0
  251. /package/deps/jq/{modules → vendor}/oniguruma/doc/CALLOUTS.API.ja +0 -0
  252. /package/deps/jq/{modules → vendor}/oniguruma/doc/FAQ +0 -0
  253. /package/deps/jq/{modules → vendor}/oniguruma/doc/FAQ.ja +0 -0
  254. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/ascii_compatible.dict +0 -0
  255. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/deluxe.c +0 -0
  256. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/dict_conv.py +0 -0
  257. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/fuzzer.options +0 -0
  258. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/libfuzzer-onig.cpp +0 -0
  259. /package/deps/jq/{modules → vendor}/oniguruma/harnesses/regset.c +0 -0
  260. /package/deps/jq/{modules → vendor}/oniguruma/index.html +0 -0
  261. /package/deps/jq/{modules → vendor}/oniguruma/index_ja.html +0 -0
  262. /package/deps/jq/{modules → vendor}/oniguruma/m4/.whatever +0 -0
  263. /package/deps/jq/{modules → vendor}/oniguruma/make_win.bat +0 -0
  264. /package/deps/jq/{modules → vendor}/oniguruma/make_win32.bat +0 -0
  265. /package/deps/jq/{modules → vendor}/oniguruma/make_win64.bat +0 -0
  266. /package/deps/jq/{modules → vendor}/oniguruma/onig-config.cmake.in +0 -0
  267. /package/deps/jq/{modules → vendor}/oniguruma/onig-config.in +0 -0
  268. /package/deps/jq/{modules → vendor}/oniguruma/oniguruma.pc.cmake.in +0 -0
  269. /package/deps/jq/{modules → vendor}/oniguruma/oniguruma.pc.in +0 -0
  270. /package/deps/jq/{modules → vendor}/oniguruma/sample/CMakeLists.txt +0 -0
  271. /package/deps/jq/{modules → vendor}/oniguruma/sample/Makefile.am +0 -0
  272. /package/deps/jq/{modules → vendor}/oniguruma/sample/bug_fix.c +0 -0
  273. /package/deps/jq/{modules → vendor}/oniguruma/sample/callout.c +0 -0
  274. /package/deps/jq/{modules → vendor}/oniguruma/sample/count.c +0 -0
  275. /package/deps/jq/{modules → vendor}/oniguruma/sample/crnl.c +0 -0
  276. /package/deps/jq/{modules → vendor}/oniguruma/sample/echo.c +0 -0
  277. /package/deps/jq/{modules → vendor}/oniguruma/sample/encode.c +0 -0
  278. /package/deps/jq/{modules → vendor}/oniguruma/sample/listcap.c +0 -0
  279. /package/deps/jq/{modules → vendor}/oniguruma/sample/names.c +0 -0
  280. /package/deps/jq/{modules → vendor}/oniguruma/sample/posix.c +0 -0
  281. /package/deps/jq/{modules → vendor}/oniguruma/sample/regset.c +0 -0
  282. /package/deps/jq/{modules → vendor}/oniguruma/sample/scan.c +0 -0
  283. /package/deps/jq/{modules → vendor}/oniguruma/sample/simple.c +0 -0
  284. /package/deps/jq/{modules → vendor}/oniguruma/sample/sql.c +0 -0
  285. /package/deps/jq/{modules → vendor}/oniguruma/sample/syntax.c +0 -0
  286. /package/deps/jq/{modules → vendor}/oniguruma/sample/user_property.c +0 -0
  287. /package/deps/jq/{modules → vendor}/oniguruma/src/Makefile.am +0 -0
  288. /package/deps/jq/{modules → vendor}/oniguruma/src/Makefile.windows +0 -0
  289. /package/deps/jq/{modules → vendor}/oniguruma/src/big5.c +0 -0
  290. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.cmake.in +0 -0
  291. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.win32 +0 -0
  292. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.win64 +0 -0
  293. /package/deps/jq/{modules → vendor}/oniguruma/src/config.h.windows.in +0 -0
  294. /package/deps/jq/{modules → vendor}/oniguruma/src/cp1251.c +0 -0
  295. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_jp.c +0 -0
  296. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_jp_prop.c +0 -0
  297. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_jp_prop.gperf +0 -0
  298. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_kr.c +0 -0
  299. /package/deps/jq/{modules → vendor}/oniguruma/src/euc_tw.c +0 -0
  300. /package/deps/jq/{modules → vendor}/oniguruma/src/gb18030.c +0 -0
  301. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_1.c +0 -0
  302. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_10.c +0 -0
  303. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_11.c +0 -0
  304. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_13.c +0 -0
  305. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_14.c +0 -0
  306. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_15.c +0 -0
  307. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_16.c +0 -0
  308. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_2.c +0 -0
  309. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_3.c +0 -0
  310. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_4.c +0 -0
  311. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_5.c +0 -0
  312. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_6.c +0 -0
  313. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_7.c +0 -0
  314. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_8.c +0 -0
  315. /package/deps/jq/{modules → vendor}/oniguruma/src/iso8859_9.c +0 -0
  316. /package/deps/jq/{modules → vendor}/oniguruma/src/koi8.c +0 -0
  317. /package/deps/jq/{modules → vendor}/oniguruma/src/koi8_r.c +0 -0
  318. /package/deps/jq/{modules → vendor}/oniguruma/src/make_property.sh +0 -0
  319. /package/deps/jq/{modules → vendor}/oniguruma/src/mktable.c +0 -0
  320. /package/deps/jq/{modules → vendor}/oniguruma/src/onig_init.c +0 -0
  321. /package/deps/jq/{modules → vendor}/oniguruma/src/oniggnu.h +0 -0
  322. /package/deps/jq/{modules → vendor}/oniguruma/src/onigposix.h +0 -0
  323. /package/deps/jq/{modules → vendor}/oniguruma/src/regenc.c +0 -0
  324. /package/deps/jq/{modules → vendor}/oniguruma/src/regenc.h +0 -0
  325. /package/deps/jq/{modules → vendor}/oniguruma/src/regext.c +0 -0
  326. /package/deps/jq/{modules → vendor}/oniguruma/src/reggnu.c +0 -0
  327. /package/deps/jq/{modules → vendor}/oniguruma/src/regparse.h +0 -0
  328. /package/deps/jq/{modules → vendor}/oniguruma/src/regposerr.c +0 -0
  329. /package/deps/jq/{modules → vendor}/oniguruma/src/regposix.c +0 -0
  330. /package/deps/jq/{modules → vendor}/oniguruma/src/regtrav.c +0 -0
  331. /package/deps/jq/{modules → vendor}/oniguruma/src/regversion.c +0 -0
  332. /package/deps/jq/{modules → vendor}/oniguruma/src/sjis.c +0 -0
  333. /package/deps/jq/{modules → vendor}/oniguruma/src/sjis_prop.c +0 -0
  334. /package/deps/jq/{modules → vendor}/oniguruma/src/sjis_prop.gperf +0 -0
  335. /package/deps/jq/{modules → vendor}/oniguruma/src/unicode.c +0 -0
  336. /package/deps/jq/{modules → vendor}/oniguruma/src/utf32_be.c +0 -0
  337. /package/deps/jq/{modules → vendor}/oniguruma/src/utf32_le.c +0 -0
  338. /package/deps/jq/{modules → vendor}/oniguruma/src/utf8.c +0 -0
  339. /package/deps/jq/{modules → vendor}/oniguruma/test/CMakeLists.txt +0 -0
  340. /package/deps/jq/{modules → vendor}/oniguruma/test/Makefile.am +0 -0
  341. /package/deps/jq/{modules → vendor}/oniguruma/test/test.sh +0 -0
  342. /package/deps/jq/{modules → vendor}/oniguruma/test/test_regset.c +0 -0
  343. /package/deps/jq/{modules → vendor}/oniguruma/test/testu.c +0 -0
  344. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/stub.c +0 -0
  345. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_back.config +0 -0
  346. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_regset.config +0 -0
  347. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_syntax.config +0 -0
  348. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/test_utf8.config +0 -0
  349. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/testc.config +0 -0
  350. /package/deps/jq/{modules → vendor}/oniguruma/tis-ci/testu.config +0 -0
  351. /package/deps/jq/{modules → vendor}/oniguruma/tis.config +0 -0
  352. /package/deps/jq/{modules → vendor}/oniguruma/windows/testc.c +0 -0
package/deps/jq/src/jv.c CHANGED
@@ -119,15 +119,15 @@ const jv JV_INVALID = {JVP_FLAGS_INVALID, 0, 0, 0, {0}};
119
119
  const jv JV_FALSE = {JVP_FLAGS_FALSE, 0, 0, 0, {0}};
120
120
  const jv JV_TRUE = {JVP_FLAGS_TRUE, 0, 0, 0, {0}};
121
121
 
122
- jv jv_true() {
122
+ jv jv_true(void) {
123
123
  return JV_TRUE;
124
124
  }
125
125
 
126
- jv jv_false() {
126
+ jv jv_false(void) {
127
127
  return JV_FALSE;
128
128
  }
129
129
 
130
- jv jv_null() {
130
+ jv jv_null(void) {
131
131
  return JV_NULL;
132
132
  }
133
133
 
@@ -155,7 +155,7 @@ jv jv_invalid_with_msg(jv err) {
155
155
  return x;
156
156
  }
157
157
 
158
- jv jv_invalid() {
158
+ jv jv_invalid(void) {
159
159
  return JV_INVALID;
160
160
  }
161
161
 
@@ -206,16 +206,13 @@ enum {
206
206
  JVP_NUMBER_DECIMAL = 1
207
207
  };
208
208
 
209
- #define JV_NUMBER_SIZE_INIT (0)
210
- #define JV_NUMBER_SIZE_CONVERTED (1)
211
-
212
209
  #define JVP_FLAGS_NUMBER_NATIVE JVP_MAKE_FLAGS(JV_KIND_NUMBER, JVP_MAKE_PFLAGS(JVP_NUMBER_NATIVE, 0))
213
210
  #define JVP_FLAGS_NUMBER_LITERAL JVP_MAKE_FLAGS(JV_KIND_NUMBER, JVP_MAKE_PFLAGS(JVP_NUMBER_DECIMAL, 1))
214
211
 
215
212
  // the decimal precision of binary double
216
- #define DEC_NUBMER_DOUBLE_PRECISION (17)
213
+ #define DEC_NUMBER_DOUBLE_PRECISION (17)
217
214
  #define DEC_NUMBER_STRING_GUARD (14)
218
- #define DEC_NUBMER_DOUBLE_EXTRA_UNITS ((DEC_NUBMER_DOUBLE_PRECISION - DECNUMDIGITS + DECDPUN - 1)/DECDPUN)
215
+ #define DEC_NUMBER_DOUBLE_EXTRA_UNITS ((DEC_NUMBER_DOUBLE_PRECISION - DECNUMDIGITS + DECDPUN - 1)/DECDPUN)
219
216
 
220
217
  #include "jv_thread.h"
221
218
  #ifdef WIN32
@@ -495,12 +492,12 @@ static pthread_once_t dec_ctx_once = PTHREAD_ONCE_INIT;
495
492
 
496
493
  // atexit finalizer to clean up the tsd dec contexts if main() exits
497
494
  // without having called pthread_exit()
498
- void jv_tsd_dec_ctx_fini() {
495
+ void jv_tsd_dec_ctx_fini(void) {
499
496
  jv_mem_free(pthread_getspecific(dec_ctx_key));
500
497
  pthread_setspecific(dec_ctx_key, NULL);
501
498
  }
502
499
 
503
- void jv_tsd_dec_ctx_init() {
500
+ void jv_tsd_dec_ctx_init(void) {
504
501
  if (pthread_key_create(&dec_ctx_key, jv_mem_free) != 0) {
505
502
  fprintf(stderr, "error: cannot create thread specific key");
506
503
  abort();
@@ -542,7 +539,7 @@ typedef struct {
542
539
 
543
540
  typedef struct {
544
541
  decNumber number;
545
- decNumberUnit units[DEC_NUBMER_DOUBLE_EXTRA_UNITS];
542
+ decNumberUnit units[DEC_NUMBER_DOUBLE_EXTRA_UNITS];
546
543
  } decNumberDoublePrecision;
547
544
 
548
545
 
@@ -562,7 +559,6 @@ static decNumber* jvp_dec_number_ptr(jv j) {
562
559
  }
563
560
 
564
561
  static jvp_literal_number* jvp_literal_number_alloc(unsigned literal_length) {
565
-
566
562
  /* The number of units needed is ceil(DECNUMDIGITS/DECDPUN) */
567
563
  int units = ((literal_length+DECDPUN-1)/DECDPUN);
568
564
 
@@ -571,26 +567,34 @@ static jvp_literal_number* jvp_literal_number_alloc(unsigned literal_length) {
571
567
  + sizeof(decNumberUnit) * units
572
568
  );
573
569
 
570
+ n->refcnt = JV_REFCNT_INIT;
571
+ n->num_double = NAN;
572
+ n->literal_data = NULL;
574
573
  return n;
575
574
  }
576
575
 
577
576
  static jv jvp_literal_number_new(const char * literal) {
577
+ jvp_literal_number* n = jvp_literal_number_alloc(strlen(literal));
578
578
 
579
- jvp_literal_number * n = jvp_literal_number_alloc(strlen(literal));
580
-
581
- n->refcnt = JV_REFCNT_INIT;
582
- n->literal_data = NULL;
583
579
  decContext *ctx = DEC_CONTEXT();
584
580
  decContextClearStatus(ctx, DEC_Conversion_syntax);
585
581
  decNumberFromString(&n->num_decimal, literal, ctx);
586
- n->num_double = NAN;
587
582
 
588
583
  if (ctx->status & DEC_Conversion_syntax) {
589
584
  jv_mem_free(n);
590
585
  return JV_INVALID;
591
586
  }
587
+ if (decNumberIsNaN(&n->num_decimal)) {
588
+ // Reject NaN with payload.
589
+ if (n->num_decimal.digits > 1 || *n->num_decimal.lsu != 0) {
590
+ jv_mem_free(n);
591
+ return JV_INVALID;
592
+ }
593
+ jv_mem_free(n);
594
+ return jv_number(NAN);
595
+ }
592
596
 
593
- jv r = {JVP_FLAGS_NUMBER_LITERAL, 0, 0, JV_NUMBER_SIZE_INIT, {&n->refcnt}};
597
+ jv r = {JVP_FLAGS_NUMBER_LITERAL, 0, 0, 0, {&n->refcnt}};
594
598
  return r;
595
599
  }
596
600
 
@@ -600,11 +604,11 @@ static double jvp_literal_number_to_double(jv j) {
600
604
 
601
605
  // init as decimal64 but change digits to allow conversion to binary64 (double)
602
606
  decContextDefault(&dblCtx, DEC_INIT_DECIMAL64);
603
- dblCtx.digits = DEC_NUBMER_DOUBLE_PRECISION;
607
+ dblCtx.digits = DEC_NUMBER_DOUBLE_PRECISION;
604
608
 
605
609
  decNumber *p_dec_number = jvp_dec_number_ptr(j);
606
610
  decNumberDoublePrecision dec_double;
607
- char literal[DEC_NUBMER_DOUBLE_PRECISION + DEC_NUMBER_STRING_GUARD + 1];
611
+ char literal[DEC_NUMBER_DOUBLE_PRECISION + DEC_NUMBER_STRING_GUARD + 1];
608
612
 
609
613
  // reduce the number to the shortest possible form
610
614
  // that fits into the 64 bit floating point representation
@@ -698,9 +702,8 @@ double jv_number_value(jv j) {
698
702
  if (JVP_HAS_FLAGS(j, JVP_FLAGS_NUMBER_LITERAL)) {
699
703
  jvp_literal_number* n = jvp_literal_number_ptr(j);
700
704
 
701
- if (j.size != JV_NUMBER_SIZE_CONVERTED) {
705
+ if (isnan(n->num_double)) {
702
706
  n->num_double = jvp_literal_number_to_double(j);
703
- j.size = JV_NUMBER_SIZE_CONVERTED;
704
707
  }
705
708
 
706
709
  return n->num_double;
@@ -731,7 +734,37 @@ int jvp_number_is_nan(jv n) {
731
734
  return decNumberIsNaN(pdec);
732
735
  }
733
736
  #endif
734
- return n.u.number != n.u.number;
737
+ return isnan(n.u.number);
738
+ }
739
+
740
+ jv jv_number_abs(jv n) {
741
+ assert(JVP_HAS_KIND(n, JV_KIND_NUMBER));
742
+
743
+ #ifdef USE_DECNUM
744
+ if (JVP_HAS_FLAGS(n, JVP_FLAGS_NUMBER_LITERAL)) {
745
+ jvp_literal_number* m = jvp_literal_number_alloc(jvp_dec_number_ptr(n)->digits);
746
+
747
+ decNumberAbs(&m->num_decimal, jvp_dec_number_ptr(n), DEC_CONTEXT());
748
+ jv r = {JVP_FLAGS_NUMBER_LITERAL, 0, 0, 0, {&m->refcnt}};
749
+ return r;
750
+ }
751
+ #endif
752
+ return jv_number(fabs(jv_number_value(n)));
753
+ }
754
+
755
+ jv jv_number_negate(jv n) {
756
+ assert(JVP_HAS_KIND(n, JV_KIND_NUMBER));
757
+
758
+ #ifdef USE_DECNUM
759
+ if (JVP_HAS_FLAGS(n, JVP_FLAGS_NUMBER_LITERAL)) {
760
+ jvp_literal_number* m = jvp_literal_number_alloc(jvp_dec_number_ptr(n)->digits);
761
+
762
+ decNumberMinus(&m->num_decimal, jvp_dec_number_ptr(n), DEC_CONTEXT());
763
+ jv r = {JVP_FLAGS_NUMBER_LITERAL, 0, 0, 0, {&m->refcnt}};
764
+ return r;
765
+ }
766
+ #endif
767
+ return jv_number(-jv_number_value(n));
735
768
  }
736
769
 
737
770
  int jvp_number_cmp(jv a, jv b) {
@@ -958,7 +991,7 @@ jv jv_array_sized(int n) {
958
991
  return jvp_array_new(n);
959
992
  }
960
993
 
961
- jv jv_array() {
994
+ jv jv_array(void) {
962
995
  return jv_array_sized(16);
963
996
  }
964
997
 
@@ -992,6 +1025,11 @@ jv jv_array_set(jv j, int idx, jv val) {
992
1025
  jv_free(val);
993
1026
  return jv_invalid_with_msg(jv_string("Out of bounds negative array index"));
994
1027
  }
1028
+ if (idx > (INT_MAX >> 2) - jvp_array_offset(j)) {
1029
+ jv_free(j);
1030
+ jv_free(val);
1031
+ return jv_invalid_with_msg(jv_string("Array index too large"));
1032
+ }
995
1033
  // copy/free of val,j coalesced
996
1034
  jv* slot = jvp_array_write(&j, idx);
997
1035
  jv_free(*slot);
@@ -1011,6 +1049,7 @@ jv jv_array_concat(jv a, jv b) {
1011
1049
  // FIXME: could be faster
1012
1050
  jv_array_foreach(b, i, elem) {
1013
1051
  a = jv_array_append(a, elem);
1052
+ if (!jv_is_valid(a)) break;
1014
1053
  }
1015
1054
  jv_free(b);
1016
1055
  return a;
@@ -1025,14 +1064,13 @@ jv jv_array_slice(jv a, int start, int end) {
1025
1064
  jv jv_array_indexes(jv a, jv b) {
1026
1065
  jv res = jv_array();
1027
1066
  int idx = -1;
1028
- jv_array_foreach(a, ai, aelem) {
1029
- jv_free(aelem);
1067
+ int alen = jv_array_length(jv_copy(a));
1068
+ for (int ai = 0; ai < alen; ++ai) {
1030
1069
  jv_array_foreach(b, bi, belem) {
1031
- if (!jv_equal(jv_array_get(jv_copy(a), ai + bi), jv_copy(belem)))
1070
+ if (!jv_equal(jv_array_get(jv_copy(a), ai + bi), belem))
1032
1071
  idx = -1;
1033
1072
  else if (bi == 0 && idx == -1)
1034
1073
  idx = ai;
1035
- jv_free(belem);
1036
1074
  }
1037
1075
  if (idx > -1)
1038
1076
  res = jv_array_append(res, jv_number(idx));
@@ -1110,6 +1148,7 @@ static jv jvp_string_empty_new(uint32_t length) {
1110
1148
  jvp_string* s = jvp_string_alloc(length);
1111
1149
  s->length_hashed = 0;
1112
1150
  memset(s->data, 0, length);
1151
+ s->data[length] = 0;
1113
1152
  jv r = {JVP_FLAGS_STRING, 0, 0, 0, {&s->refcnt}};
1114
1153
  return r;
1115
1154
  }
@@ -1274,15 +1313,22 @@ jv jv_string_indexes(jv j, jv k) {
1274
1313
  assert(JVP_HAS_KIND(k, JV_KIND_STRING));
1275
1314
  const char *jstr = jv_string_value(j);
1276
1315
  const char *idxstr = jv_string_value(k);
1277
- const char *p;
1316
+ const char *p, *lp;
1278
1317
  int jlen = jv_string_length_bytes(jv_copy(j));
1279
1318
  int idxlen = jv_string_length_bytes(jv_copy(k));
1280
1319
  jv a = jv_array();
1281
1320
 
1282
1321
  if (idxlen != 0) {
1283
- p = jstr;
1322
+ int n = 0;
1323
+ p = lp = jstr;
1284
1324
  while ((p = _jq_memmem(p, (jstr + jlen) - p, idxstr, idxlen)) != NULL) {
1285
- a = jv_array_append(a, jv_number(p - jstr));
1325
+ while (lp < p) {
1326
+ lp += jvp_utf8_decode_length(*lp);
1327
+ n++;
1328
+ }
1329
+
1330
+ a = jv_array_append(a, jv_number(n));
1331
+ if (!jv_is_valid(a)) break;
1286
1332
  p++;
1287
1333
  }
1288
1334
  }
@@ -1291,6 +1337,32 @@ jv jv_string_indexes(jv j, jv k) {
1291
1337
  return a;
1292
1338
  }
1293
1339
 
1340
+ jv jv_string_repeat(jv j, int n) {
1341
+ assert(JVP_HAS_KIND(j, JV_KIND_STRING));
1342
+ if (n < 0) {
1343
+ jv_free(j);
1344
+ return jv_null();
1345
+ }
1346
+ int len = jv_string_length_bytes(jv_copy(j));
1347
+ int64_t res_len = (int64_t)len * n;
1348
+ if (res_len >= INT_MAX) {
1349
+ jv_free(j);
1350
+ return jv_invalid_with_msg(jv_string("Repeat string result too long"));
1351
+ }
1352
+ if (res_len == 0) {
1353
+ jv_free(j);
1354
+ return jv_string("");
1355
+ }
1356
+ jv res = jv_string_empty(res_len);
1357
+ res = jvp_string_append(res, jv_string_value(j), len);
1358
+ for (int curr = len, grow; curr < res_len; curr += grow) {
1359
+ grow = MIN(res_len - curr, curr);
1360
+ res = jvp_string_append(res, jv_string_value(res), grow);
1361
+ }
1362
+ jv_free(j);
1363
+ return res;
1364
+ }
1365
+
1294
1366
  jv jv_string_split(jv j, jv sep) {
1295
1367
  assert(JVP_HAS_KIND(j, JV_KIND_STRING));
1296
1368
  assert(JVP_HAS_KIND(sep, JV_KIND_STRING));
@@ -1305,14 +1377,17 @@ jv jv_string_split(jv j, jv sep) {
1305
1377
 
1306
1378
  if (seplen == 0) {
1307
1379
  int c;
1308
- while ((jstr = jvp_utf8_next(jstr, jend, &c)))
1380
+ while ((jstr = jvp_utf8_next(jstr, jend, &c))) {
1309
1381
  a = jv_array_append(a, jv_string_append_codepoint(jv_string(""), c));
1382
+ if (!jv_is_valid(a)) break;
1383
+ }
1310
1384
  } else {
1311
1385
  for (p = jstr; p < jend; p = s + seplen) {
1312
1386
  s = _jq_memmem(p, jend - p, sepstr, seplen);
1313
1387
  if (s == NULL)
1314
1388
  s = jend;
1315
1389
  a = jv_array_append(a, jv_string_sized(p, s - p));
1390
+ if (!jv_is_valid(a)) break;
1316
1391
  // Add an empty string to denote that j ends on a sep
1317
1392
  if (s + seplen == jend && seplen != 0)
1318
1393
  a = jv_array_append(a, jv_string(""));
@@ -1330,8 +1405,10 @@ jv jv_string_explode(jv j) {
1330
1405
  const char* end = i + len;
1331
1406
  jv a = jv_array_sized(len);
1332
1407
  int c;
1333
- while ((i = jvp_utf8_next(i, end, &c)))
1408
+ while ((i = jvp_utf8_next(i, end, &c))) {
1334
1409
  a = jv_array_append(a, jv_number(c));
1410
+ if (!jv_is_valid(a)) break;
1411
+ }
1335
1412
  jv_free(j);
1336
1413
  return a;
1337
1414
  }
@@ -1605,10 +1682,13 @@ static void jvp_object_free(jv o) {
1605
1682
  }
1606
1683
  }
1607
1684
 
1608
- static jv jvp_object_rehash(jv object) {
1685
+ static int jvp_object_rehash(jv *objectp) {
1686
+ jv object = *objectp;
1609
1687
  assert(JVP_HAS_KIND(object, JV_KIND_OBJECT));
1610
1688
  assert(jvp_refcnt_unshared(object.u.ptr));
1611
1689
  int size = jvp_object_size(object);
1690
+ if (size > INT_MAX >> 2)
1691
+ return 0;
1612
1692
  jv new_object = jvp_object_new(size * 2);
1613
1693
  for (int i=0; i<size; i++) {
1614
1694
  struct object_slot* slot = jvp_object_get_slot(object, i);
@@ -1621,7 +1701,8 @@ static jv jvp_object_rehash(jv object) {
1621
1701
  }
1622
1702
  // references are transported, just drop the old table
1623
1703
  jv_mem_free(jvp_object_ptr(object));
1624
- return new_object;
1704
+ *objectp = new_object;
1705
+ return 1;
1625
1706
  }
1626
1707
 
1627
1708
  static jv jvp_object_unshare(jv object) {
@@ -1650,27 +1731,32 @@ static jv jvp_object_unshare(jv object) {
1650
1731
  return new_object;
1651
1732
  }
1652
1733
 
1653
- static jv* jvp_object_write(jv* object, jv key) {
1734
+ static int jvp_object_write(jv* object, jv key, jv **valpp) {
1654
1735
  *object = jvp_object_unshare(*object);
1655
1736
  int* bucket = jvp_object_find_bucket(*object, key);
1656
1737
  struct object_slot* slot = jvp_object_find_slot(*object, key, bucket);
1657
1738
  if (slot) {
1658
1739
  // already has the key
1659
1740
  jvp_string_free(key);
1660
- return &slot->value;
1741
+ *valpp = &slot->value;
1742
+ return 1;
1661
1743
  }
1662
1744
  slot = jvp_object_add_slot(*object, key, bucket);
1663
1745
  if (slot) {
1664
1746
  slot->value = jv_invalid();
1665
1747
  } else {
1666
- *object = jvp_object_rehash(*object);
1748
+ if (!jvp_object_rehash(object)) {
1749
+ *valpp = NULL;
1750
+ return 0;
1751
+ }
1667
1752
  bucket = jvp_object_find_bucket(*object, key);
1668
1753
  assert(!jvp_object_find_slot(*object, key, bucket));
1669
1754
  slot = jvp_object_add_slot(*object, key, bucket);
1670
1755
  assert(slot);
1671
1756
  slot->value = jv_invalid();
1672
1757
  }
1673
- return &slot->value;
1758
+ *valpp = &slot->value;
1759
+ return 1;
1674
1760
  }
1675
1761
 
1676
1762
  static int jvp_object_delete(jv* object, jv key) {
@@ -1737,7 +1823,7 @@ static int jvp_object_contains(jv a, jv b) {
1737
1823
  * Objects (public interface)
1738
1824
  */
1739
1825
  #define DEFAULT_OBJECT_SIZE 8
1740
- jv jv_object() {
1826
+ jv jv_object(void) {
1741
1827
  return jvp_object_new(8);
1742
1828
  }
1743
1829
 
@@ -1770,7 +1856,11 @@ jv jv_object_set(jv object, jv key, jv value) {
1770
1856
  assert(JVP_HAS_KIND(object, JV_KIND_OBJECT));
1771
1857
  assert(JVP_HAS_KIND(key, JV_KIND_STRING));
1772
1858
  // copy/free of object, key, value coalesced
1773
- jv* slot = jvp_object_write(&object, key);
1859
+ jv* slot;
1860
+ if (!jvp_object_write(&object, key, &slot)) {
1861
+ jv_free(object);
1862
+ return jv_invalid_with_msg(jv_string("Object too big"));
1863
+ }
1774
1864
  jv_free(*slot);
1775
1865
  *slot = value;
1776
1866
  return object;
@@ -1795,6 +1885,7 @@ jv jv_object_merge(jv a, jv b) {
1795
1885
  assert(JVP_HAS_KIND(a, JV_KIND_OBJECT));
1796
1886
  jv_object_foreach(b, k, v) {
1797
1887
  a = jv_object_set(a, k, v);
1888
+ if (!jv_is_valid(a)) break;
1798
1889
  }
1799
1890
  jv_free(b);
1800
1891
  return a;
@@ -1814,6 +1905,7 @@ jv jv_object_merge_recursive(jv a, jv b) {
1814
1905
  jv_free(elem);
1815
1906
  a = jv_object_set(a, k, v);
1816
1907
  }
1908
+ if (!jv_is_valid(a)) break;
1817
1909
  }
1818
1910
  jv_free(b);
1819
1911
  return a;
package/deps/jq/src/jv.h CHANGED
@@ -74,8 +74,10 @@ jv jv_number(double);
74
74
  jv jv_number_with_literal(const char*);
75
75
  double jv_number_value(jv);
76
76
  int jv_is_integer(jv);
77
+ jv jv_number_abs(jv);
78
+ jv jv_number_negate(jv);
77
79
 
78
- int jv_number_has_literal(jv n);
80
+ int jv_number_has_literal(jv);
79
81
  const char* jv_number_get_literal(jv);
80
82
 
81
83
  jv jv_array(void);
@@ -113,6 +115,9 @@ jv jv_array_indexes(jv, jv);
113
115
  __attribute__ ((__format__( __printf__, fmt_arg_num, args_num)))
114
116
  #define JV_VPRINTF_LIKE(fmt_arg_num) \
115
117
  __attribute__ ((__format__( __printf__, fmt_arg_num, 0)))
118
+ #else
119
+ #define JV_PRINTF_LIKE(fmt_arg_num, args_num)
120
+ #define JV_VPRINTF_LIKE(fmt_arg_num)
116
121
  #endif
117
122
 
118
123
 
@@ -131,6 +136,7 @@ jv jv_string_fmt(const char*, ...) JV_PRINTF_LIKE(1, 2);
131
136
  jv jv_string_append_codepoint(jv a, uint32_t c);
132
137
  jv jv_string_append_buf(jv a, const char* buf, int len);
133
138
  jv jv_string_append_str(jv a, const char* str);
139
+ jv jv_string_repeat(jv j, int n);
134
140
  jv jv_string_split(jv j, jv sep);
135
141
  jv jv_string_explode(jv j);
136
142
  jv jv_string_implode(jv j);
@@ -223,7 +229,7 @@ enum jv_print_flags {
223
229
  JV_PRINT_SPACE2 = 1024,
224
230
  };
225
231
  #define JV_PRINT_INDENT_FLAGS(n) \
226
- ((n) < 0 || (n) > 7 ? JV_PRINT_TAB | JV_PRINT_PRETTY : (n) == 0 ? 0 : (n) << 8 | JV_PRINT_PRETTY)
232
+ ((n) < 0 || (n) > 7 ? JV_PRINT_TAB | JV_PRINT_PRETTY : (n) << 8 | JV_PRINT_PRETTY)
227
233
  void jv_dumpf(jv, FILE *f, int flags);
228
234
  void jv_dump(jv, int flags);
229
235
  void jv_show(jv, int flags);
@@ -261,8 +267,9 @@ jv jv_delpaths(jv, jv);
261
267
  jv jv_keys(jv /*object or array*/);
262
268
  jv jv_keys_unsorted(jv /*object or array*/);
263
269
  int jv_cmp(jv, jv);
264
- jv jv_group(jv, jv);
265
270
  jv jv_sort(jv, jv);
271
+ jv jv_group(jv, jv);
272
+ jv jv_unique(jv, jv);
266
273
 
267
274
  #ifdef __cplusplus
268
275
  }
@@ -1,7 +1,8 @@
1
- #include <stdlib.h>
1
+ #include <assert.h>
2
2
  #include <stdio.h>
3
+ #include <stdlib.h>
3
4
  #include <string.h>
4
- #include "jv_alloc.h"
5
+ #include "jv.h"
5
6
 
6
7
  struct nomem_handler {
7
8
  jv_nomem_handler_f handler;
@@ -33,7 +34,7 @@ void jv_nomem_handler(jv_nomem_handler_f handler, void *data) {
33
34
  nomem_handler.handler = handler;
34
35
  }
35
36
 
36
- static void memory_exhausted() {
37
+ static void memory_exhausted(void) {
37
38
  if (nomem_handler.handler)
38
39
  nomem_handler.handler(nomem_handler.data); // Maybe handler() will longjmp() to safety
39
40
  // Or not
@@ -104,7 +105,7 @@ void jv_nomem_handler(jv_nomem_handler_f handler, void *data) {
104
105
  nomem_handler->data = data;
105
106
  }
106
107
 
107
- static void memory_exhausted() {
108
+ static void memory_exhausted(void) {
108
109
  struct nomem_handler *nomem_handler;
109
110
 
110
111
  pthread_once(&mem_once, tsd_init);
@@ -128,7 +129,7 @@ void jv_nomem_handler(jv_nomem_handler_f handler, void *data) {
128
129
  nomem_handler.data = data;
129
130
  }
130
131
 
131
- static void memory_exhausted() {
132
+ static void memory_exhausted(void) {
132
133
  fprintf(stderr, "jq: error: cannot allocate memory\n");
133
134
  abort();
134
135
  }
@@ -150,6 +151,7 @@ void* jv_mem_alloc_unguarded(size_t sz) {
150
151
  }
151
152
 
152
153
  void* jv_mem_calloc(size_t nemb, size_t sz) {
154
+ assert(nemb > 0 && sz > 0);
153
155
  void* p = calloc(nemb, sz);
154
156
  if (!p) {
155
157
  memory_exhausted();
@@ -158,6 +160,7 @@ void* jv_mem_calloc(size_t nemb, size_t sz) {
158
160
  }
159
161
 
160
162
  void* jv_mem_calloc_unguarded(size_t nemb, size_t sz) {
163
+ assert(nemb > 0 && sz > 0);
161
164
  return calloc(nemb, sz);
162
165
  }
163
166
 
@@ -2,7 +2,6 @@
2
2
  #define JV_ALLOC_H
3
3
 
4
4
  #include <stddef.h>
5
- #include "jv.h"
6
5
 
7
6
  void* jv_mem_alloc(size_t);
8
7
  void* jv_mem_alloc_unguarded(size_t);
@@ -3,6 +3,7 @@
3
3
  #include <math.h>
4
4
  #include <string.h>
5
5
  #include <stdlib.h>
6
+ #include "jv.h"
6
7
  #include "jv_alloc.h"
7
8
  #include "jv_private.h"
8
9
 
@@ -193,18 +194,19 @@ jv jv_set(jv t, jv k, jv v) {
193
194
  if (slice_len < insert_len) {
194
195
  // array is growing
195
196
  int shift = insert_len - slice_len;
196
- for (int i = array_len - 1; i >= end; i--) {
197
+ for (int i = array_len - 1; i >= end && jv_is_valid(t); i--) {
197
198
  t = jv_array_set(t, i + shift, jv_array_get(jv_copy(t), i));
198
199
  }
199
200
  } else if (slice_len > insert_len) {
200
201
  // array is shrinking
201
202
  int shift = slice_len - insert_len;
202
- for (int i = end; i < array_len; i++) {
203
+ for (int i = end; i < array_len && jv_is_valid(t); i++) {
203
204
  t = jv_array_set(t, i - shift, jv_array_get(jv_copy(t), i));
204
205
  }
205
- t = jv_array_slice(t, 0, array_len - shift);
206
+ if (jv_is_valid(t))
207
+ t = jv_array_slice(t, 0, array_len - shift);
206
208
  }
207
- for (int i=0; i < insert_len; i++) {
209
+ for (int i = 0; i < insert_len && jv_is_valid(t); i++) {
208
210
  t = jv_array_set(t, start + i, jv_array_get(jv_copy(v), i));
209
211
  }
210
212
  jv_free(v);
@@ -314,7 +316,7 @@ static jv jv_dels(jv t, jv keys) {
314
316
  int neg_idx = 0;
315
317
  int nonneg_idx = 0;
316
318
  int len = jv_array_length(jv_copy(t));
317
- jv_array_foreach(t, i, elem) {
319
+ for (int i = 0; i < len; ++i) {
318
320
  int del = 0;
319
321
  while (neg_idx < jv_array_length(jv_copy(neg_keys))) {
320
322
  int delidx = len + (int)jv_number_get_value_and_consume(jv_array_get(jv_copy(neg_keys), neg_idx));
@@ -343,9 +345,7 @@ static jv jv_dels(jv t, jv keys) {
343
345
  }
344
346
  }
345
347
  if (!del)
346
- new_array = jv_array_append(new_array, elem);
347
- else
348
- jv_free(elem);
348
+ new_array = jv_array_append(new_array, jv_array_get(jv_copy(t), i));
349
349
  }
350
350
  arr_out:
351
351
  jv_free(neg_keys);
@@ -419,6 +419,7 @@ jv jv_setpath(jv root, jv path, jv value) {
419
419
  // to null first.
420
420
  root = jv_set(root, jv_copy(pathcurr), jv_null());
421
421
  if (!jv_is_valid(root)) {
422
+ jv_free(subroot);
422
423
  jv_free(pathcurr);
423
424
  jv_free(pathrest);
424
425
  jv_free(value);
@@ -553,6 +554,10 @@ jv jv_keys_unsorted(jv x) {
553
554
  jv jv_keys(jv x) {
554
555
  if (jv_get_kind(x) == JV_KIND_OBJECT) {
555
556
  int nkeys = jv_object_length(jv_copy(x));
557
+ if (nkeys == 0) {
558
+ jv_free(x);
559
+ return jv_array();
560
+ }
556
561
  jv* keys = jv_mem_calloc(nkeys, sizeof(jv));
557
562
  int kidx = 0;
558
563
  jv_object_foreach(x, key, value) {
@@ -674,6 +679,11 @@ static struct sort_entry* sort_items(jv objects, jv keys) {
674
679
  assert(jv_get_kind(keys) == JV_KIND_ARRAY);
675
680
  assert(jv_array_length(jv_copy(objects)) == jv_array_length(jv_copy(keys)));
676
681
  int n = jv_array_length(jv_copy(objects));
682
+ if (n == 0) {
683
+ jv_free(objects);
684
+ jv_free(keys);
685
+ return NULL;
686
+ }
677
687
  struct sort_entry* entries = jv_mem_calloc(n, sizeof(struct sort_entry));
678
688
  for (int i=0; i<n; i++) {
679
689
  entries[i].object = jv_array_get(jv_copy(objects), i);
@@ -728,3 +738,26 @@ jv jv_group(jv objects, jv keys) {
728
738
  jv_mem_free(entries);
729
739
  return ret;
730
740
  }
741
+
742
+ jv jv_unique(jv objects, jv keys) {
743
+ assert(jv_get_kind(objects) == JV_KIND_ARRAY);
744
+ assert(jv_get_kind(keys) == JV_KIND_ARRAY);
745
+ assert(jv_array_length(jv_copy(objects)) == jv_array_length(jv_copy(keys)));
746
+ int n = jv_array_length(jv_copy(objects));
747
+ struct sort_entry* entries = sort_items(objects, keys);
748
+ jv ret = jv_array();
749
+ jv curr_key = jv_invalid();
750
+ for (int i = 0; i < n; i++) {
751
+ if (jv_equal(jv_copy(curr_key), jv_copy(entries[i].key))) {
752
+ jv_free(entries[i].key);
753
+ jv_free(entries[i].object);
754
+ } else {
755
+ jv_free(curr_key);
756
+ curr_key = entries[i].key;
757
+ ret = jv_array_append(ret, entries[i].object);
758
+ }
759
+ }
760
+ jv_free(curr_key);
761
+ jv_mem_free(entries);
762
+ return ret;
763
+ }
@@ -299,7 +299,7 @@ extern "C" {
299
299
  #endif
300
300
 
301
301
  #if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1
302
- Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined.
302
+ # error Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined.
303
303
  #endif
304
304
 
305
305
  typedef union { double d; ULong L[2]; } U;
@@ -2368,29 +2368,21 @@ jvp_strtod
2368
2368
 
2369
2369
  sign = nz0 = nz1 = nz = bc.dplen = bc.uflchk = 0;
2370
2370
  dval(&rv) = 0.;
2371
- for(s = s00;;s++) switch(*s) {
2371
+ switch(*(s = s00)) {
2372
2372
  case '-':
2373
2373
  sign = 1;
2374
2374
  /* no break */
2375
2375
  JQ_FALLTHROUGH;
2376
2376
  case '+':
2377
2377
  if (*++s)
2378
- goto break2;
2378
+ break;
2379
2379
  /* no break */
2380
2380
  JQ_FALLTHROUGH;
2381
2381
  case 0:
2382
2382
  goto ret0;
2383
- case '\t':
2384
- case '\n':
2385
- case '\v':
2386
- case '\f':
2387
- case '\r':
2388
- case ' ':
2389
- continue;
2390
2383
  default:
2391
- goto break2;
2384
+ break;
2392
2385
  }
2393
- break2:
2394
2386
  if (*s == '0') {
2395
2387
  #ifndef NO_HEX_FP /*{*/
2396
2388
  switch(s[1]) {