pj-nodegit 0.27.0 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1738) hide show
  1. package/.github/workflows/tests.yml +83 -15
  2. package/binding.gyp +23 -15
  3. package/dist/blob.js +0 -22
  4. package/dist/config.js +24 -0
  5. package/dist/credential.js +1 -1
  6. package/dist/deprecated/structs/ApplyOptions.js +5 -0
  7. package/dist/deprecated/structs/BlameOptions.js +8 -0
  8. package/dist/deprecated/structs/BlobFilterOptions.js +5 -0
  9. package/dist/deprecated/structs/CheckoutOptions.js +10 -0
  10. package/dist/deprecated/structs/CherrypickOptions.js +7 -0
  11. package/dist/deprecated/structs/CloneOptions.js +8 -0
  12. package/dist/deprecated/structs/DescribeFormatOptions.js +6 -0
  13. package/dist/deprecated/structs/DescribeOptions.js +8 -0
  14. package/dist/deprecated/structs/DiffFindOptions.js +10 -0
  15. package/dist/deprecated/structs/DiffOptions.js +10 -0
  16. package/dist/deprecated/structs/FetchOptions.js +9 -0
  17. package/dist/deprecated/structs/MergeFileInput.js +6 -0
  18. package/dist/deprecated/structs/MergeFileOptions.js +7 -0
  19. package/dist/deprecated/structs/MergeOptions.js +10 -0
  20. package/dist/deprecated/structs/ProxyOptions.js +5 -0
  21. package/dist/deprecated/structs/PushOptions.js +7 -0
  22. package/dist/deprecated/structs/RebaseOptions.js +8 -0
  23. package/dist/deprecated/structs/RemoteCreateOptions.js +5 -0
  24. package/dist/deprecated/structs/RepositoryInitOptions.js +6 -0
  25. package/dist/deprecated/structs/RevertOptions.js +7 -0
  26. package/dist/deprecated/structs/StashApplyOptions.js +6 -0
  27. package/dist/deprecated/structs/StatusOptions.js +6 -0
  28. package/dist/deprecated/structs/SubmoduleUpdateOptions.js +7 -0
  29. package/dist/diff.js +0 -46
  30. package/dist/enums.js +20 -6
  31. package/dist/filter_registry.js +0 -3
  32. package/dist/libgit2.js +2 -2
  33. package/dist/merge.js +0 -6
  34. package/dist/nodegit.js +253 -13
  35. package/dist/rebase.js +11 -53
  36. package/dist/remote.js +0 -204
  37. package/dist/repository.js +1 -4
  38. package/dist/reset.js +0 -25
  39. package/dist/revparse.js +19 -0
  40. package/dist/stash.js +0 -44
  41. package/dist/status.js +1 -3
  42. package/dist/submodule.js +0 -38
  43. package/include/annotated_commit.h +62 -22
  44. package/include/apply.h +56 -8
  45. package/include/apply_options.h +70 -71
  46. package/include/async_baton.h +65 -84
  47. package/include/async_worker.h +91 -0
  48. package/include/attr.h +37 -12
  49. package/include/blame.h +40 -14
  50. package/include/blame_hunk.h +18 -6
  51. package/include/blame_options.h +26 -44
  52. package/include/blob.h +106 -38
  53. package/include/blob_filter_options.h +27 -23
  54. package/include/branch.h +117 -41
  55. package/include/branch_iterator.h +18 -6
  56. package/include/buf.h +18 -6
  57. package/include/callback_wrapper.h +12 -17
  58. package/include/cert.h +18 -6
  59. package/include/cert_hostkey.h +21 -6
  60. package/include/cert_x509.h +18 -6
  61. package/include/checkout.h +48 -16
  62. package/include/checkout_options.h +110 -176
  63. package/include/checkout_perfdata.h +18 -6
  64. package/include/cherrypick.h +37 -12
  65. package/include/cherrypick_options.h +26 -32
  66. package/include/cleanup_handle.h +21 -0
  67. package/include/clone.h +26 -8
  68. package/include/clone_options.h +26 -50
  69. package/include/commit.h +161 -58
  70. package/include/config.h +227 -82
  71. package/include/config_entry.h +18 -6
  72. package/include/config_iterator.h +51 -18
  73. package/include/configmap.h +18 -6
  74. package/include/configurable_class_wrapper.h +59 -0
  75. package/include/context.h +90 -0
  76. package/include/convenient_hunk.h +19 -5
  77. package/include/convenient_patch.h +20 -5
  78. package/include/credential.h +40 -14
  79. package/include/describe_format_options.h +26 -30
  80. package/include/describe_options.h +26 -38
  81. package/include/describe_result.h +18 -6
  82. package/include/diff.h +190 -70
  83. package/include/diff_binary.h +18 -6
  84. package/include/diff_binary_file.h +18 -6
  85. package/include/diff_delta.h +18 -6
  86. package/include/diff_file.h +18 -6
  87. package/include/diff_find_options.h +26 -42
  88. package/include/diff_hunk.h +18 -6
  89. package/include/diff_line.h +18 -6
  90. package/include/diff_options.h +82 -120
  91. package/include/diff_patchid_options.h +27 -19
  92. package/include/diff_perfdata.h +18 -6
  93. package/include/diff_stats.h +29 -10
  94. package/include/error.h +18 -6
  95. package/include/fetch.h +15 -4
  96. package/include/fetch_options.h +26 -45
  97. package/include/filter.h +115 -142
  98. package/include/filter_list.h +62 -22
  99. package/include/filter_registry.h +24 -11
  100. package/include/filter_source.h +29 -10
  101. package/include/graph.h +37 -12
  102. package/include/hashsig.h +40 -14
  103. package/include/ignore.h +26 -8
  104. package/include/index.h +282 -99
  105. package/include/index_conflict_iterator.h +29 -10
  106. package/include/index_entry.h +74 -43
  107. package/include/index_iterator.h +29 -10
  108. package/include/index_name_entry.h +40 -14
  109. package/include/index_reuc_entry.h +62 -22
  110. package/include/index_time.h +59 -32
  111. package/include/indexer_progress.h +18 -6
  112. package/include/libgit2.h +15 -4
  113. package/include/lock_master.h +146 -165
  114. package/include/mailmap.h +84 -30
  115. package/include/merge.h +103 -36
  116. package/include/merge_file_input.h +26 -34
  117. package/include/merge_file_options.h +26 -42
  118. package/include/merge_file_result.h +18 -6
  119. package/include/merge_options.h +26 -46
  120. package/include/nodegit.h +0 -4
  121. package/include/nodegit_wrapper.h +35 -6
  122. package/include/note.h +117 -41
  123. package/include/note_iterator.h +18 -6
  124. package/include/object.h +84 -30
  125. package/include/odb.h +95 -34
  126. package/include/odb_object.h +18 -6
  127. package/include/oid.h +18 -6
  128. package/include/oid_shorten.h +18 -6
  129. package/include/oidarray.h +18 -6
  130. package/include/packbuilder.h +62 -22
  131. package/include/patch.h +77 -27
  132. package/include/path.h +15 -4
  133. package/include/pathspec.h +62 -22
  134. package/include/pathspec_match_list.h +18 -6
  135. package/include/promise_completion.h +7 -11
  136. package/include/proxy.h +15 -4
  137. package/include/proxy_options.h +85 -94
  138. package/include/push_options.h +26 -37
  139. package/include/push_update.h +18 -6
  140. package/include/rebase.h +73 -26
  141. package/include/rebase_operation.h +18 -6
  142. package/include/rebase_options.h +55 -76
  143. package/include/refdb.h +29 -10
  144. package/include/reference.h +175 -63
  145. package/include/reflog.h +40 -14
  146. package/include/reflog_entry.h +18 -6
  147. package/include/refspec.h +29 -10
  148. package/include/remote.h +280 -91
  149. package/include/remote_callbacks.h +201 -186
  150. package/include/remote_create_options.h +27 -35
  151. package/include/remote_head.h +18 -6
  152. package/include/repository.h +324 -105
  153. package/include/repository_init_options.h +26 -46
  154. package/include/reset.h +48 -16
  155. package/include/revert.h +37 -12
  156. package/include/revert_options.h +26 -32
  157. package/include/revparse.h +26 -8
  158. package/include/revspec.h +86 -0
  159. package/include/revwalk.h +62 -22
  160. package/include/signature.h +40 -14
  161. package/include/stash.h +81 -27
  162. package/include/stash_apply_options.h +49 -57
  163. package/include/status.h +70 -22
  164. package/include/status_entry.h +18 -6
  165. package/include/status_list.h +29 -10
  166. package/include/status_options.h +26 -31
  167. package/include/str_array_converter.h +2 -0
  168. package/include/strarray.h +19 -7
  169. package/include/submodule.h +216 -77
  170. package/include/submodule_update_options.h +26 -32
  171. package/include/tag.h +153 -55
  172. package/include/thread_pool.h +56 -51
  173. package/include/time.h +18 -6
  174. package/include/trace.h +15 -4
  175. package/include/tracker_wrap.h +76 -0
  176. package/include/transaction.h +29 -10
  177. package/include/transport.h +18 -6
  178. package/include/tree.h +73 -26
  179. package/include/tree_entry.h +29 -10
  180. package/include/tree_update.h +27 -32
  181. package/include/treebuilder.h +40 -14
  182. package/include/v8_helpers.h +10 -0
  183. package/include/worker_pool.h +180 -0
  184. package/include/worktree.h +119 -22
  185. package/include/worktree_add_options.h +33 -33
  186. package/include/worktree_prune_options.h +33 -33
  187. package/include/wrapper.h +2 -3
  188. package/include/writestream.h +18 -6
  189. package/lifecycleScripts/install.js +7 -1
  190. package/package.json +8 -9
  191. package/src/annotated_commit.cc +250 -258
  192. package/src/apply.cc +215 -108
  193. package/src/apply_options.cc +183 -218
  194. package/src/async_baton.cc +76 -2
  195. package/src/async_worker.cc +43 -0
  196. package/src/attr.cc +127 -147
  197. package/src/blame.cc +149 -154
  198. package/src/blame_hunk.cc +43 -43
  199. package/src/blame_options.cc +128 -164
  200. package/src/blob.cc +496 -517
  201. package/src/blob_filter_options.cc +49 -65
  202. package/src/branch.cc +577 -557
  203. package/src/branch_iterator.cc +6 -6
  204. package/src/buf.cc +35 -35
  205. package/src/cert.cc +10 -10
  206. package/src/cert_hostkey.cc +78 -30
  207. package/src/cert_x509.cc +20 -20
  208. package/src/checkout.cc +196 -205
  209. package/src/checkout_options.cc +435 -674
  210. package/src/checkout_perfdata.cc +18 -18
  211. package/src/cherrypick.cc +142 -150
  212. package/src/cherrypick_options.cc +83 -119
  213. package/src/cleanup_handle.cc +6 -0
  214. package/src/clone.cc +74 -75
  215. package/src/clone_options.cc +108 -194
  216. package/src/commit.cc +856 -910
  217. package/src/config.cc +997 -1034
  218. package/src/config_entry.cc +20 -20
  219. package/src/config_iterator.cc +173 -182
  220. package/src/configmap.cc +19 -19
  221. package/src/context.cc +84 -0
  222. package/src/convenient_hunk.cc +48 -22
  223. package/src/convenient_patch.cc +65 -35
  224. package/src/credential.cc +153 -161
  225. package/src/describe_format_options.cc +74 -104
  226. package/src/describe_options.cc +96 -134
  227. package/src/describe_result.cc +6 -6
  228. package/src/diff.cc +911 -920
  229. package/src/diff_binary.cc +20 -20
  230. package/src/diff_binary_file.cc +23 -23
  231. package/src/diff_delta.cc +32 -32
  232. package/src/diff_file.cc +32 -32
  233. package/src/diff_find_options.cc +104 -140
  234. package/src/diff_hunk.cc +31 -31
  235. package/src/diff_line.cc +35 -35
  236. package/src/diff_options.cc +310 -384
  237. package/src/diff_patchid_options.cc +37 -49
  238. package/src/diff_perfdata.cc +14 -14
  239. package/src/diff_stats.cc +77 -80
  240. package/src/error.cc +30 -30
  241. package/src/fetch.cc +2 -2
  242. package/src/fetch_options.cc +142 -181
  243. package/src/filter.cc +336 -495
  244. package/src/filter_list.cc +239 -260
  245. package/src/filter_registry.cc +77 -26
  246. package/src/filter_source.cc +65 -48
  247. package/src/graph.cc +127 -125
  248. package/src/hashsig.cc +120 -128
  249. package/src/ignore.cc +65 -70
  250. package/src/index.cc +1216 -1250
  251. package/src/index_conflict_iterator.cc +71 -72
  252. package/src/index_entry.cc +308 -96
  253. package/src/index_iterator.cc +65 -66
  254. package/src/index_name_entry.cc +132 -144
  255. package/src/index_reuc_entry.cc +258 -276
  256. package/src/index_time.cc +121 -45
  257. package/src/indexer_progress.cc +34 -34
  258. package/src/libgit2.cc +23 -23
  259. package/src/lock_master.cc +190 -197
  260. package/src/mailmap.cc +329 -349
  261. package/src/merge.cc +591 -595
  262. package/src/merge_file_input.cc +88 -128
  263. package/src/merge_file_options.cc +113 -169
  264. package/src/merge_file_result.cc +30 -30
  265. package/src/merge_options.cc +118 -166
  266. package/src/nodegit.cc +158 -229
  267. package/src/nodegit_wrapper.cc +71 -8
  268. package/src/note.cc +527 -552
  269. package/src/note_iterator.cc +6 -6
  270. package/src/object.cc +380 -386
  271. package/src/odb.cc +391 -408
  272. package/src/odb_object.cc +28 -28
  273. package/src/oid.cc +59 -59
  274. package/src/oid_shorten.cc +17 -17
  275. package/src/oidarray.cc +15 -15
  276. package/src/packbuilder.cc +250 -254
  277. package/src/patch.cc +418 -347
  278. package/src/path.cc +7 -7
  279. package/src/pathspec.cc +229 -249
  280. package/src/pathspec_match_list.cc +34 -34
  281. package/src/promise_completion.cc +32 -15
  282. package/src/proxy.cc +2 -2
  283. package/src/proxy_options.cc +203 -254
  284. package/src/push_options.cc +119 -146
  285. package/src/push_update.cc +26 -26
  286. package/src/rebase.cc +370 -378
  287. package/src/rebase_operation.cc +20 -20
  288. package/src/rebase_options.cc +172 -242
  289. package/src/refdb.cc +64 -65
  290. package/src/reference.cc +973 -962
  291. package/src/reference_counter.cc +2 -2
  292. package/src/reflog.cc +138 -142
  293. package/src/reflog_entry.cc +30 -30
  294. package/src/refspec.cc +98 -101
  295. package/src/remote.cc +1592 -1456
  296. package/src/remote_callbacks.cc +671 -544
  297. package/src/remote_create_options.cc +91 -140
  298. package/src/remote_head.cc +30 -30
  299. package/src/repository.cc +3248 -1216
  300. package/src/repository_init_options.cc +138 -208
  301. package/src/reset.cc +185 -204
  302. package/src/revert.cc +142 -152
  303. package/src/revert_options.cc +83 -119
  304. package/src/revparse.cc +62 -65
  305. package/src/revspec.cc +130 -0
  306. package/src/revwalk.cc +255 -201
  307. package/src/signature.cc +139 -141
  308. package/src/stash.cc +294 -312
  309. package/src/stash_apply_options.cc +133 -179
  310. package/src/status.cc +199 -197
  311. package/src/status_entry.cc +20 -20
  312. package/src/status_list.cc +85 -85
  313. package/src/status_options.cc +96 -111
  314. package/src/str_array_converter.cc +16 -0
  315. package/src/strarray.cc +20 -20
  316. package/src/submodule.cc +990 -1036
  317. package/src/submodule_update_options.cc +83 -119
  318. package/src/tag.cc +772 -763
  319. package/src/thread_pool.cc +748 -87
  320. package/src/time.cc +19 -19
  321. package/src/trace.cc +2 -2
  322. package/src/tracker_wrap.cc +238 -0
  323. package/src/transaction.cc +89 -90
  324. package/src/transport.cc +6 -6
  325. package/src/tree.cc +349 -346
  326. package/src/tree_entry.cc +87 -88
  327. package/src/tree_update.cc +83 -117
  328. package/src/treebuilder.cc +137 -141
  329. package/src/v8_helpers.cc +19 -0
  330. package/src/worktree.cc +539 -328
  331. package/src/worktree_add_options.cc +59 -51
  332. package/src/worktree_prune_options.cc +59 -51
  333. package/src/wrapper.cc +10 -10
  334. package/src/writestream.cc +6 -6
  335. package/utils/README.md +1 -13
  336. package/utils/acquireOpenSSL.js +196 -62
  337. package/utils/build-openssl.bat +13 -0
  338. package/utils/execPromise.js +9 -2
  339. package/utils/getElectronOpenSSLRoot.js +10 -0
  340. package/vendor/libgit2/.gitattributes +1 -0
  341. package/vendor/libgit2/.github/workflows/codeql.yml +36 -0
  342. package/vendor/libgit2/.github/workflows/main.yml +98 -34
  343. package/vendor/libgit2/.github/workflows/nightly.yml +292 -0
  344. package/vendor/libgit2/CMakeLists.txt +6 -6
  345. package/vendor/libgit2/README.md +29 -5
  346. package/vendor/libgit2/{azure-pipelines → ci}/build.sh +12 -1
  347. package/vendor/libgit2/{azure-pipelines → ci}/coverity.sh +0 -0
  348. package/vendor/libgit2/{azure-pipelines → ci}/docker/bionic +4 -1
  349. package/vendor/libgit2/{azure-pipelines → ci}/docker/docurium +2 -1
  350. package/vendor/libgit2/{azure-pipelines → ci}/docker/entrypoint.sh +0 -0
  351. package/vendor/libgit2/{azure-pipelines → ci}/docker/focal +5 -4
  352. package/vendor/libgit2/{azure-pipelines → ci}/docker/xenial +2 -1
  353. package/vendor/libgit2/{azure-pipelines → ci}/getcontainer.sh +17 -11
  354. package/vendor/libgit2/{azure-pipelines → ci}/setup-mingw.sh +0 -0
  355. package/vendor/libgit2/{azure-pipelines → ci}/setup-osx.sh +0 -0
  356. package/vendor/libgit2/{azure-pipelines → ci}/test.sh +0 -0
  357. package/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  358. package/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -0
  359. package/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
  360. package/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
  361. package/vendor/libgit2/deps/ntlmclient/ntlm.c +5 -5
  362. package/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  363. package/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  364. package/vendor/libgit2/deps/pcre/LICENCE +93 -0
  365. package/vendor/libgit2/deps/pcre/pcre.h +2 -2
  366. package/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  367. package/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  368. package/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  369. package/vendor/libgit2/examples/blame.c +1 -1
  370. package/vendor/libgit2/examples/checkout.c +1 -1
  371. package/vendor/libgit2/examples/common.h +1 -1
  372. package/vendor/libgit2/examples/general.c +0 -5
  373. package/vendor/libgit2/examples/log.c +3 -3
  374. package/vendor/libgit2/examples/rev-list.c +1 -1
  375. package/vendor/libgit2/examples/rev-parse.c +3 -3
  376. package/vendor/libgit2/examples/tag.c +2 -2
  377. package/vendor/libgit2/fuzzers/commit_graph_fuzzer.c +80 -0
  378. package/vendor/libgit2/fuzzers/corpora/commit_graph/005682ce1cb5b20c20fccf4be5dbd47ca399e53e +0 -0
  379. package/vendor/libgit2/fuzzers/corpora/commit_graph/00574fc29fd1323e93d18d625cde80d3ea20e8cc +0 -0
  380. package/vendor/libgit2/fuzzers/corpora/commit_graph/00916ec21ddbd3c622bde6e4dc824250176b9e88 +0 -0
  381. package/vendor/libgit2/fuzzers/corpora/commit_graph/00b6dde4b8d5e68a5ec40d88c39134cf2f1f8bc3 +0 -0
  382. package/vendor/libgit2/fuzzers/corpora/commit_graph/020f0e77e42d8b3810019050f4c5ceadd205b37c +0 -0
  383. package/vendor/libgit2/fuzzers/corpora/commit_graph/02739c05abc1715fac1ce995b532e482abc8d4dc +0 -0
  384. package/vendor/libgit2/fuzzers/corpora/commit_graph/02a276faa5dc8c7df5b82a57ab6cd195a13e4ae0 +0 -0
  385. package/vendor/libgit2/fuzzers/corpora/commit_graph/02de15987d68a97db3d9fd964cfd785bcbd54d3a +0 -0
  386. package/vendor/libgit2/fuzzers/corpora/commit_graph/02e106f97a91b1d3aef4dd2d31368ae5077bd42b +0 -0
  387. package/vendor/libgit2/fuzzers/corpora/commit_graph/038555bcb4cc2daf764840f79ebce4023bdb7670 +0 -0
  388. package/vendor/libgit2/fuzzers/corpora/commit_graph/04c159a04b0732e04ac4c59ed3356860af8dffce +0 -0
  389. package/vendor/libgit2/fuzzers/corpora/commit_graph/0560ec993882ffbd8d46dcab0ed430089c4f2aa1 +0 -0
  390. package/vendor/libgit2/fuzzers/corpora/commit_graph/059b3aab3fde6b4c9404aff83fed638596f594bb +0 -0
  391. package/vendor/libgit2/fuzzers/corpora/commit_graph/06168e726aa0260f520165be4ea0c88244831049 +0 -0
  392. package/vendor/libgit2/fuzzers/corpora/commit_graph/066d1ec700a526b97009cedd0305b6a47242faba +0 -0
  393. package/vendor/libgit2/fuzzers/corpora/commit_graph/086a5f8cbfa9f058b5c938a6eb724c9e4c5f84f3 +0 -0
  394. package/vendor/libgit2/fuzzers/corpora/commit_graph/089313c698f3e351433e9a45af2ace1d85b9673e +0 -0
  395. package/vendor/libgit2/fuzzers/corpora/commit_graph/092eb973a771fa14cf0b567d65bd2c99130f543e +0 -0
  396. package/vendor/libgit2/fuzzers/corpora/commit_graph/094b8cd1aa3e40b1f9ff83680892d52e246df0f8 +0 -0
  397. package/vendor/libgit2/fuzzers/corpora/commit_graph/0ce990c9c2ec121b8c78ba2bdf84679e04c0bdae +0 -0
  398. package/vendor/libgit2/fuzzers/corpora/commit_graph/0dd0770c34fcf6b1f13219450190616d344db021 +0 -0
  399. package/vendor/libgit2/fuzzers/corpora/commit_graph/0e2b2e6a32733b8a625bc7e812e2ea508d69a5e4 +0 -0
  400. package/vendor/libgit2/fuzzers/corpora/commit_graph/0e8d0bd07c543d708aecaca377106492b7a74fa3 +0 -0
  401. package/vendor/libgit2/fuzzers/corpora/commit_graph/0f0d16e1b8c8671dbe1074115c1d86aa9b359e7e +0 -0
  402. package/vendor/libgit2/fuzzers/corpora/commit_graph/102ef78036de5a30927e7f751377b05441c41a08 +0 -0
  403. package/vendor/libgit2/fuzzers/corpora/commit_graph/10494e7cc9cb8dff289c431d7560bcee0d1b14ed +0 -0
  404. package/vendor/libgit2/fuzzers/corpora/commit_graph/107b11d86381345f50aa19b8485477a870ff399f +0 -0
  405. package/vendor/libgit2/fuzzers/corpora/commit_graph/10bb37e18fb3c0897dabacf9c464b4d324007dc3 +0 -0
  406. package/vendor/libgit2/fuzzers/corpora/commit_graph/10ee715f64b08549c3e8261204276694728eb841 +0 -0
  407. package/vendor/libgit2/fuzzers/corpora/commit_graph/123e4eeb7a731f48d06e336b4d29af717f8b6550 +0 -0
  408. package/vendor/libgit2/fuzzers/corpora/commit_graph/125a228afb923970e0a6d4412f7257ba998594a1 +0 -0
  409. package/vendor/libgit2/fuzzers/corpora/commit_graph/130d96c16fba06dcbe7e2a661ab959a3274a4bd9 +0 -0
  410. package/vendor/libgit2/fuzzers/corpora/commit_graph/131c5a2fec55cb0d63f7dc055d6fad5f3dc3c974 +0 -0
  411. package/vendor/libgit2/fuzzers/corpora/commit_graph/13e562d61acb3aa36260a819a00b07ff16450335 +0 -0
  412. package/vendor/libgit2/fuzzers/corpora/commit_graph/1414e6e8ab6bad1b5c51fed807c514a9d6575e66 +0 -0
  413. package/vendor/libgit2/fuzzers/corpora/commit_graph/1432d191846ae2d0e381813efcfacff2f1dba0e4 +0 -0
  414. package/vendor/libgit2/fuzzers/corpora/commit_graph/14a84cdc6f8d432be4cd3d3eafce92ae385e472f +0 -0
  415. package/vendor/libgit2/fuzzers/corpora/commit_graph/14e3e735dba88791f2cadd6e0dc5d662a104a6d7 +0 -0
  416. package/vendor/libgit2/fuzzers/corpora/commit_graph/1574abb020203103ea629d677edd21c967fc0f4c +0 -0
  417. package/vendor/libgit2/fuzzers/corpora/commit_graph/169cc492ba94948a6206765436881a1a0c601780 +0 -0
  418. package/vendor/libgit2/fuzzers/corpora/commit_graph/16a2130c1d75129f3bae3bf8f2c2de41fb3533c0 +0 -0
  419. package/vendor/libgit2/fuzzers/corpora/commit_graph/16ba602eadfc9a3f74c0845394eda0de42b61571 +0 -0
  420. package/vendor/libgit2/fuzzers/corpora/commit_graph/17555fb2dfc444d171ba686667d72e388bd6c041 +0 -0
  421. package/vendor/libgit2/fuzzers/corpora/commit_graph/1a10450d99c1e53d9b7f97b8014cb7fc01906ef2 +0 -0
  422. package/vendor/libgit2/fuzzers/corpora/commit_graph/1af670b5515231fc04b2be9038ee30a7e066b09b +0 -0
  423. package/vendor/libgit2/fuzzers/corpora/commit_graph/1b72cfa68259e3f3b3802906902a0a29368f86b5 +0 -0
  424. package/vendor/libgit2/fuzzers/corpora/commit_graph/1c62ac5d632aa9e449a4335b675941107d8825ae +0 -0
  425. package/vendor/libgit2/fuzzers/corpora/commit_graph/1d95b5db2f802011b33d10212a66fbe40827dfd4 +0 -0
  426. package/vendor/libgit2/fuzzers/corpora/commit_graph/1e068537ce1211a325aab42ae1263a109131c9f9 +0 -0
  427. package/vendor/libgit2/fuzzers/corpora/commit_graph/1e9c882c9d33304a5791ef6c98eee65e142bd7fd +0 -0
  428. package/vendor/libgit2/fuzzers/corpora/commit_graph/1f54935df929403a29e77591c97f767d94871aea +0 -0
  429. package/vendor/libgit2/fuzzers/corpora/commit_graph/206015659641771bb0d668728c2fdc4209e65dda +0 -0
  430. package/vendor/libgit2/fuzzers/corpora/commit_graph/2096493a2bcc2d15b7ae5bf3112fe49c39976ad8 +0 -0
  431. package/vendor/libgit2/fuzzers/corpora/commit_graph/209b74e08abe8c787b7c5ba81e51cb69c57ecded +0 -0
  432. package/vendor/libgit2/fuzzers/corpora/commit_graph/21137876575fbca357fc0c96db1de73c6737e1ae +0 -0
  433. package/vendor/libgit2/fuzzers/corpora/commit_graph/2143d9db9802f076c72a71184cd9d0cb4581e9e7 +0 -0
  434. package/vendor/libgit2/fuzzers/corpora/commit_graph/21a52a5282145407d951ac73c2ff27876783899d +0 -0
  435. package/vendor/libgit2/fuzzers/corpora/commit_graph/21d5c8c8ac3a09bcba5388c472df32795986a5cb +1 -0
  436. package/vendor/libgit2/fuzzers/corpora/commit_graph/22170d1110a1c18009b7feb21a470681f55e85fb +0 -0
  437. package/vendor/libgit2/fuzzers/corpora/commit_graph/22f55dff94785f24252d7a070f713840f59b0870 +0 -0
  438. package/vendor/libgit2/fuzzers/corpora/commit_graph/23d10ee9694e1c66bedc7060990f19a2ac3eaee3 +0 -0
  439. package/vendor/libgit2/fuzzers/corpora/commit_graph/2435430ca19502c3b0ec4987508d4a8fbdbc898c +0 -0
  440. package/vendor/libgit2/fuzzers/corpora/commit_graph/244d2ea0c5c3117000b599cfab37680ba8f04513 +0 -0
  441. package/vendor/libgit2/fuzzers/corpora/commit_graph/248bf94143d150da2459cfdca099c30c6daff00a +0 -0
  442. package/vendor/libgit2/fuzzers/corpora/commit_graph/25bc53498129bb3717671f00c355d2637a91c86a +0 -0
  443. package/vendor/libgit2/fuzzers/corpora/commit_graph/2614f60da2d7e291501397238366d27513bff773 +0 -0
  444. package/vendor/libgit2/fuzzers/corpora/commit_graph/2651b3d5a8b4616b1faa81dabe27ab2712a27561 +0 -0
  445. package/vendor/libgit2/fuzzers/corpora/commit_graph/270257a2872b33dd13c4fd466cbc1ae67d613f9b +0 -0
  446. package/vendor/libgit2/fuzzers/corpora/commit_graph/2830c6244c74656f6c5649c8226953905a582a38 +0 -0
  447. package/vendor/libgit2/fuzzers/corpora/commit_graph/2889a85c07c20551ff0b97fc640e3c91b33aa4a1 +0 -0
  448. package/vendor/libgit2/fuzzers/corpora/commit_graph/295ce43fdd56def8948d1ba2bfa7fdf0c47b5318 +0 -0
  449. package/vendor/libgit2/fuzzers/corpora/commit_graph/296cbb94c4e68ab86972a174405308ee34d0c40f +0 -0
  450. package/vendor/libgit2/fuzzers/corpora/commit_graph/2975adf222cad108ec90d8225fd655e30e3bf253 +0 -0
  451. package/vendor/libgit2/fuzzers/corpora/commit_graph/29f5d27760c9254ab4db661a6cd0323dd11c34ca +0 -0
  452. package/vendor/libgit2/fuzzers/corpora/commit_graph/2a359fb09eaad968e57d353453908027645873d1 +0 -0
  453. package/vendor/libgit2/fuzzers/corpora/commit_graph/2a6b65a8d6c28febaa081d220a4433f8366d02bc +0 -0
  454. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b14dcade4d0919b0a17830fe353738015f492a6 +0 -0
  455. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b298a13abbd9829e965424a1486baa13d4166c4 +0 -0
  456. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b44d8cd8e70e25172b4c740ebe38ef411c965b3 +0 -0
  457. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b590c4e61fdfcf21c017b29440747a1894b1534 +0 -0
  458. package/vendor/libgit2/fuzzers/corpora/commit_graph/2becb18a971ae30e1a8f6680982fd7305708caa0 +0 -0
  459. package/vendor/libgit2/fuzzers/corpora/commit_graph/2bf78b02099a1fe4ce50d065254e843ca55e280f +0 -0
  460. package/vendor/libgit2/fuzzers/corpora/commit_graph/2c1541ecd01aa7b9e99bccfe9804198b3e79f118 +0 -0
  461. package/vendor/libgit2/fuzzers/corpora/commit_graph/2c6798057af5894c27631ff63e845fe1e4bdc9ee +0 -0
  462. package/vendor/libgit2/fuzzers/corpora/commit_graph/2cf7eb7fe489e5acd64df755e820c871784c2ba1 +0 -0
  463. package/vendor/libgit2/fuzzers/corpora/commit_graph/2d49ba35ca404baa0d593925f36a81ce53943c8d +0 -0
  464. package/vendor/libgit2/fuzzers/corpora/commit_graph/2d507d42ca43ffc2f3c8892826e1db74144ec096 +0 -0
  465. package/vendor/libgit2/fuzzers/corpora/commit_graph/2e4da693e3e336d2b1a40311a7ccf94def035b6b +0 -0
  466. package/vendor/libgit2/fuzzers/corpora/commit_graph/2e71ff86128b5618f0f067c407a76ff645ae2019 +0 -0
  467. package/vendor/libgit2/fuzzers/corpora/commit_graph/2eb777c6d7e6ee9bd7a44e37372595043aad596b +0 -0
  468. package/vendor/libgit2/fuzzers/corpora/commit_graph/2ec3ebffba165b9dd49e755a9e77e23aed796628 +0 -0
  469. package/vendor/libgit2/fuzzers/corpora/commit_graph/302703e3b0d74219868aca39ee7593944c0b2400 +0 -0
  470. package/vendor/libgit2/fuzzers/corpora/commit_graph/3048c6908dc3176707fa8bcb0196824e3358357a +0 -0
  471. package/vendor/libgit2/fuzzers/corpora/commit_graph/30616cb39d3ad6060324fada03709d611ad28d5c +0 -0
  472. package/vendor/libgit2/fuzzers/corpora/commit_graph/306beadd9b3135a00037323760eb5377c88a403e +0 -0
  473. package/vendor/libgit2/fuzzers/corpora/commit_graph/31464a6fbad023923a7e4700fc11564e811bcbd2 +0 -0
  474. package/vendor/libgit2/fuzzers/corpora/commit_graph/317f4bcfecf066961ef1982d551cd14e63c9f008 +0 -0
  475. package/vendor/libgit2/fuzzers/corpora/commit_graph/31b2248faaabbec69a06098c8cb0f69c5d0aa208 +0 -0
  476. package/vendor/libgit2/fuzzers/corpora/commit_graph/31d1c3d1147385d58dbe6f82898a5523320fbcac +0 -0
  477. package/vendor/libgit2/fuzzers/corpora/commit_graph/32c9bc1616a78a230a3724abc02150db1cc40aa0 +0 -0
  478. package/vendor/libgit2/fuzzers/corpora/commit_graph/331e2866416b091252f0299e98d32cfb29237029 +0 -0
  479. package/vendor/libgit2/fuzzers/corpora/commit_graph/331eb3876dd2f3f0bd51f380ac431d86d6e3bb5e +0 -0
  480. package/vendor/libgit2/fuzzers/corpora/commit_graph/346bd6eaeadeafcb840ff9441614b309330db63e +0 -0
  481. package/vendor/libgit2/fuzzers/corpora/commit_graph/349931f447981f21476481448576e805c093a25b +0 -0
  482. package/vendor/libgit2/fuzzers/corpora/commit_graph/34a2da1e9adaac1b4be1d40b1ece81fe00643d49 +0 -0
  483. package/vendor/libgit2/fuzzers/corpora/commit_graph/34bb8f475e7384a8a39618fd15fdc5fb1b12c1a1 +0 -0
  484. package/vendor/libgit2/fuzzers/corpora/commit_graph/351a036c6eb95db9364706b861f7e75ad26194e8 +0 -0
  485. package/vendor/libgit2/fuzzers/corpora/commit_graph/355452c1da8e7689d816d67cdde040b5df7eabd7 +0 -0
  486. package/vendor/libgit2/fuzzers/corpora/commit_graph/35c157ad2b100b4f334cddcf3dea6ef2d85462be +0 -0
  487. package/vendor/libgit2/fuzzers/corpora/commit_graph/36a81a45eabfcf53e1ae0361aa234791e2fdb750 +0 -0
  488. package/vendor/libgit2/fuzzers/corpora/commit_graph/36ee20f6dbeb3a34e91eafbbe2e379f9ac6cfa43 +0 -0
  489. package/vendor/libgit2/fuzzers/corpora/commit_graph/377627c19bcac6adc880202048a9eac07b5417d4 +0 -0
  490. package/vendor/libgit2/fuzzers/corpora/commit_graph/38747e7c8bec2f9c923739d50ba54ff88ba6503f +0 -0
  491. package/vendor/libgit2/fuzzers/corpora/commit_graph/3945843a6fab2ec71030f09b237c125b97cd3ea5 +0 -0
  492. package/vendor/libgit2/fuzzers/corpora/commit_graph/396321d39b82ffaccbc64115117df7e822b0f515 +0 -0
  493. package/vendor/libgit2/fuzzers/corpora/commit_graph/396e78eb9b54e2cefb52cd76a22137c8abd6cbcf +0 -0
  494. package/vendor/libgit2/fuzzers/corpora/commit_graph/39c1ab66035adc104cd06a6d98b77668172d21af +0 -0
  495. package/vendor/libgit2/fuzzers/corpora/commit_graph/3a1078c35f5401ce09b5ba921fc348dde37530bb +0 -0
  496. package/vendor/libgit2/fuzzers/corpora/commit_graph/3aa3d8f40392d1c863d23799b8ec0aedc7191302 +0 -0
  497. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b08c505601271cb92345ec7f0ff0b28daf90a9c +0 -0
  498. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b41702587be45f678b36823ad2f7e5002337dc4 +0 -0
  499. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b69108cc919aba0248f9b864d4e71c5f6d1931e +0 -0
  500. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b90507501bb3bcfe0094f9c92cc2869f1a7dda5 +0 -0
  501. package/vendor/libgit2/fuzzers/corpora/commit_graph/3bc7fe44c3a1464dd35a4d22b482f46cdeda0405 +0 -0
  502. package/vendor/libgit2/fuzzers/corpora/commit_graph/3ce99994986efb6df3f3568423e0077b53c7ef78 +0 -0
  503. package/vendor/libgit2/fuzzers/corpora/commit_graph/3d6cb3ba21181c9f0ab08b2608eab773f36773f2 +0 -0
  504. package/vendor/libgit2/fuzzers/corpora/commit_graph/3d8ec41450b943d5dea73fb1e393960b03d7c3b9 +0 -0
  505. package/vendor/libgit2/fuzzers/corpora/commit_graph/3e29e8baaac0f6c7e4cf3d5adca2ab3a2c491ac7 +0 -0
  506. package/vendor/libgit2/fuzzers/corpora/commit_graph/3e9469b3c68ba334671aacda7a7669b0e97b74d6 +0 -0
  507. package/vendor/libgit2/fuzzers/corpora/commit_graph/3eeda3bfa7abef69911c94520c009a08c49b9942 +0 -0
  508. package/vendor/libgit2/fuzzers/corpora/commit_graph/3f0f5021016451b57f673d0603cd9e4830c2198d +0 -0
  509. package/vendor/libgit2/fuzzers/corpora/commit_graph/3f46540fbd94bf0337c1d0d7437ec992a3568f09 +0 -0
  510. package/vendor/libgit2/fuzzers/corpora/commit_graph/402d9c25d5833d42630882ab5c57833266bef785 +0 -0
  511. package/vendor/libgit2/fuzzers/corpora/commit_graph/4048bb3c26d67c345630ff9e86db551a3add6549 +0 -0
  512. package/vendor/libgit2/fuzzers/corpora/commit_graph/40792f23c1281842dab671e8b213fc408d1ec39f +0 -0
  513. package/vendor/libgit2/fuzzers/corpora/commit_graph/41cd0b5d9a9540947b7b1841a55e4c11bd4346a2 +0 -0
  514. package/vendor/libgit2/fuzzers/corpora/commit_graph/41d86e5ea3df4a0de60d42aeb16e2a5599aedeae +0 -0
  515. package/vendor/libgit2/fuzzers/corpora/commit_graph/42b4e5430b2b1b17a361067fb9dd33ab74e52232 +0 -0
  516. package/vendor/libgit2/fuzzers/corpora/commit_graph/42ef1c9d234b90acaf1651d930fc52d5f8f158f2 +0 -0
  517. package/vendor/libgit2/fuzzers/corpora/commit_graph/4570c8ff26d7f31afe73b3d9a35a29bc1274d68a +0 -0
  518. package/vendor/libgit2/fuzzers/corpora/commit_graph/45cf4751a5929930a7c30ec10134434b9ee13c3d +0 -0
  519. package/vendor/libgit2/fuzzers/corpora/commit_graph/46e9d351dd5bb71f7d4d8f15b3fad312c781452e +0 -0
  520. package/vendor/libgit2/fuzzers/corpora/commit_graph/472421633b984556b96bc20f1fcf7a98c25736f3 +0 -0
  521. package/vendor/libgit2/fuzzers/corpora/commit_graph/47f35b91699caee098cacdde0161ffab21bdfc57 +0 -0
  522. package/vendor/libgit2/fuzzers/corpora/commit_graph/48b9da327218f9409287687a43b7eead4789a588 +0 -0
  523. package/vendor/libgit2/fuzzers/corpora/commit_graph/48d14fca326d5d591d18d34c2821a457277819a2 +0 -0
  524. package/vendor/libgit2/fuzzers/corpora/commit_graph/48f3a33e2a027f5735d0a333ec4acd5a2aa57118 +0 -0
  525. package/vendor/libgit2/fuzzers/corpora/commit_graph/49e0eee24eab094a9c62f6b37b6ba01f8aece4e4 +0 -0
  526. package/vendor/libgit2/fuzzers/corpora/commit_graph/4b45bcb707d2a0bc23b415e9bc3d7eb1f7f0e188 +0 -0
  527. package/vendor/libgit2/fuzzers/corpora/commit_graph/4c428300fe4866fe81cff02ad4bc14b6848f7f73 +0 -0
  528. package/vendor/libgit2/fuzzers/corpora/commit_graph/4d69c567df2e858c5f248b3fc8e4a9c04f02481c +0 -0
  529. package/vendor/libgit2/fuzzers/corpora/commit_graph/4d88b6c9b513d5db2e07313a39b43d112d3d4562 +0 -0
  530. package/vendor/libgit2/fuzzers/corpora/commit_graph/4da73370cf854ef8bd08c7f79b92a187cdbff278 +0 -0
  531. package/vendor/libgit2/fuzzers/corpora/commit_graph/4e4b2827351bbfd414b718052a8f950a9e3eb7ee +0 -0
  532. package/vendor/libgit2/fuzzers/corpora/commit_graph/4ed43f7d3c0305461edcbc86f62e0c6ad56df01e +0 -0
  533. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f011529809e88205421fa8ce39dcc025293bcb8 +0 -0
  534. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f1928b6376369ab6acf8a282284366cc3bf71ef +0 -0
  535. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f669eca3416c44f0d003ef2720d03e697e2230e +0 -0
  536. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f750f24ecb5080bea2845061cfd3ce4529d30ee +0 -0
  537. package/vendor/libgit2/fuzzers/corpora/commit_graph/4fab9bb2bacf562e65f4a8681c429e6ea92aaed7 +0 -0
  538. package/vendor/libgit2/fuzzers/corpora/commit_graph/4fd757c7251c17413b3005fb38aee0fd029d89ec +0 -0
  539. package/vendor/libgit2/fuzzers/corpora/commit_graph/506092de91dcf93254cdd5ad9e02a953a38099ea +0 -0
  540. package/vendor/libgit2/fuzzers/corpora/commit_graph/50e934fb52d9bc5cd2a531adced1cad7f102a112 +0 -0
  541. package/vendor/libgit2/fuzzers/corpora/commit_graph/512e49a9e789656964988950009e6534907e6317 +0 -0
  542. package/vendor/libgit2/fuzzers/corpora/commit_graph/51404149f1ea30ee6959fafe81a52acabed97e9e +0 -0
  543. package/vendor/libgit2/fuzzers/corpora/commit_graph/5150f8a67399ee16178a2b08198cf91a90c0e53e +0 -0
  544. package/vendor/libgit2/fuzzers/corpora/commit_graph/51a1fd23dfe5a8062cd4601d235509247f3bc2dc +0 -0
  545. package/vendor/libgit2/fuzzers/corpora/commit_graph/51a963486f041a60c422f0dd6da3b69c52f12fb7 +0 -0
  546. package/vendor/libgit2/fuzzers/corpora/commit_graph/51fbf57a2a35ec33164838fa254fe605a3c868e9 +0 -0
  547. package/vendor/libgit2/fuzzers/corpora/commit_graph/53068b9f9cb54bb52d076e9602ccd55f169ef39a +0 -0
  548. package/vendor/libgit2/fuzzers/corpora/commit_graph/5314619e15fa5ee67df44481b8213a53786d39c5 +0 -0
  549. package/vendor/libgit2/fuzzers/corpora/commit_graph/533f5f00275968129846522fe01e2819746272eb +0 -0
  550. package/vendor/libgit2/fuzzers/corpora/commit_graph/53a62799135c282435a17e032deda03eaf9daf0f +0 -0
  551. package/vendor/libgit2/fuzzers/corpora/commit_graph/53c9d5cd849977e523d92dd2d639e9b0e721be50 +0 -0
  552. package/vendor/libgit2/fuzzers/corpora/commit_graph/54767a0bb3b96d39f5b2004ce3f274465f1a927e +0 -0
  553. package/vendor/libgit2/fuzzers/corpora/commit_graph/548de37dbe6a3829b73d976996ec9838cf608554 +0 -0
  554. package/vendor/libgit2/fuzzers/corpora/commit_graph/5522cefa54b798ea4aba8ef2a42ad248a7fb02ee +0 -0
  555. package/vendor/libgit2/fuzzers/corpora/commit_graph/554fab3eef5d8709f06d1d4319efe5c0c437421b +0 -0
  556. package/vendor/libgit2/fuzzers/corpora/commit_graph/567fe73919dae39b0bcb78b03d655643a71714a8 +0 -0
  557. package/vendor/libgit2/fuzzers/corpora/commit_graph/5717a281aa722ee4a32dfa1cc72fc5d6081f6755 +0 -0
  558. package/vendor/libgit2/fuzzers/corpora/commit_graph/577d814e0be43df9321c5b27119c398bd00a00c5 +0 -0
  559. package/vendor/libgit2/fuzzers/corpora/commit_graph/58680611707c6188f9f067f8747b699cd2fe82d3 +0 -0
  560. package/vendor/libgit2/fuzzers/corpora/commit_graph/5915b7f91dd43ec37a4718061c90cbec2686b916 +0 -0
  561. package/vendor/libgit2/fuzzers/corpora/commit_graph/599516e368ff621dd06d8450837350f4e9558c38 +0 -0
  562. package/vendor/libgit2/fuzzers/corpora/commit_graph/5a2d01d141e4d523e718c30e20cb07c3ad98f33d +0 -0
  563. package/vendor/libgit2/fuzzers/corpora/commit_graph/5a9803ef8cd88d1e8f1d6e5920b8afd170cafb11 +0 -0
  564. package/vendor/libgit2/fuzzers/corpora/commit_graph/5ba93c9db0cff93f52b521d7420e43f6eda2784f +0 -0
  565. package/vendor/libgit2/fuzzers/corpora/commit_graph/5bf0ca772092e6fa34b6822f61a1b1c3d7f2c6e3 +0 -0
  566. package/vendor/libgit2/fuzzers/corpora/commit_graph/5cfbfb3e12b629dc9f74baf0a8741345ec288795 +0 -0
  567. package/vendor/libgit2/fuzzers/corpora/commit_graph/5d8cc97b739c39820b761b6551d34dd647da6816 +0 -0
  568. package/vendor/libgit2/fuzzers/corpora/commit_graph/5dcbb3e1c2fc9a191dd3f3443b86f6bc38c39e37 +0 -0
  569. package/vendor/libgit2/fuzzers/corpora/commit_graph/5ec17d081aef9872f746e88ad8b03553719f9c36 +0 -0
  570. package/vendor/libgit2/fuzzers/corpora/commit_graph/5f88e3ba60c11be25c47a842763d8870d23cc7f2 +0 -0
  571. package/vendor/libgit2/fuzzers/corpora/commit_graph/6045e4d2bf85013c78a32e71b014ba3d4a4b7c61 +0 -0
  572. package/vendor/libgit2/fuzzers/corpora/commit_graph/615c7ba7ffbce955ffd964682e2a0f7ef3c767e4 +0 -0
  573. package/vendor/libgit2/fuzzers/corpora/commit_graph/6189f29cbbe88ac6cb32fdefecda1bd6194332a6 +0 -0
  574. package/vendor/libgit2/fuzzers/corpora/commit_graph/627224cb8484c62992dcbc4cdebdbfa48a3c021a +0 -0
  575. package/vendor/libgit2/fuzzers/corpora/commit_graph/629fff0962d298a7283a3d1e1d1b940dfef9b315 +0 -0
  576. package/vendor/libgit2/fuzzers/corpora/commit_graph/6322594cff2a99d0abb1139e6a43b06df76d539a +0 -0
  577. package/vendor/libgit2/fuzzers/corpora/commit_graph/63de5e8e042222d53bf05640c87da376aefb76cc +0 -0
  578. package/vendor/libgit2/fuzzers/corpora/commit_graph/647dbb1d05fe0fab685bfe126bd9ac3a12b6bccf +0 -0
  579. package/vendor/libgit2/fuzzers/corpora/commit_graph/647e5e265d8d1079784fc2a3da25f7ba58126acd +0 -0
  580. package/vendor/libgit2/fuzzers/corpora/commit_graph/653bd480dfd1e5f4bdca702aba3dfd8da0c204b7 +0 -0
  581. package/vendor/libgit2/fuzzers/corpora/commit_graph/65485740a465377213c80fa68028727f281299fb +0 -0
  582. package/vendor/libgit2/fuzzers/corpora/commit_graph/6551f8c8c3028006d0cc4997943df8a86ee3f598 +0 -0
  583. package/vendor/libgit2/fuzzers/corpora/commit_graph/67799e79d33883510f85ae9705ab3932862128a2 +0 -0
  584. package/vendor/libgit2/fuzzers/corpora/commit_graph/67b475481e5a21351b49789874adbc988aefd64c +0 -0
  585. package/vendor/libgit2/fuzzers/corpora/commit_graph/67e5a649967dee002d1c181e079748c404e29767 +0 -0
  586. package/vendor/libgit2/fuzzers/corpora/commit_graph/687424a4a31a66a78d1637c680c9c10746741007 +0 -0
  587. package/vendor/libgit2/fuzzers/corpora/commit_graph/68fa6dd52832657cb8dd7e1485d6fbafd4e93903 +0 -0
  588. package/vendor/libgit2/fuzzers/corpora/commit_graph/691696af1c042115f4d9f9b8e24f7b8c06ed189b +0 -0
  589. package/vendor/libgit2/fuzzers/corpora/commit_graph/6a80152f9b1afa3a3080bf3f6aa48e84c2e18497 +0 -0
  590. package/vendor/libgit2/fuzzers/corpora/commit_graph/6af27e4cf4c7bcce128a5949ee27fc73ab2cc71e +0 -0
  591. package/vendor/libgit2/fuzzers/corpora/commit_graph/6afd8f82d5639b774de0dfd418ae85322f4168dd +0 -0
  592. package/vendor/libgit2/fuzzers/corpora/commit_graph/6c64a9e26e0e1480bb5e60b7044ca6ce17104a80 +0 -0
  593. package/vendor/libgit2/fuzzers/corpora/commit_graph/6c850c17db130ca0152f7c75562fa191f7ef89de +0 -0
  594. package/vendor/libgit2/fuzzers/corpora/commit_graph/6c9afe4527371a2baf33c5e220e4ca21a3207f94 +0 -0
  595. package/vendor/libgit2/fuzzers/corpora/commit_graph/6ce3d40b0225923a7f4123a919b1c5d70841fad7 +0 -0
  596. package/vendor/libgit2/fuzzers/corpora/commit_graph/6cfd064aa6197813eb18f38df967ae4cdba9c6da +0 -0
  597. package/vendor/libgit2/fuzzers/corpora/commit_graph/6e6675676c53bcddc870e06605d2432e3429f224 +0 -0
  598. package/vendor/libgit2/fuzzers/corpora/commit_graph/6e6e82579b7abae2b43d90448d3f2ead4dfcba78 +0 -0
  599. package/vendor/libgit2/fuzzers/corpora/commit_graph/6f13d23c75a562eddefafe85e208e602832294e2 +0 -0
  600. package/vendor/libgit2/fuzzers/corpora/commit_graph/6fed59b0472927f5d2396d0ee4d7fd13579377ce +0 -0
  601. package/vendor/libgit2/fuzzers/corpora/commit_graph/71f7724196f9f8fcfe3ee0161a84893bb9c4ab11 +0 -0
  602. package/vendor/libgit2/fuzzers/corpora/commit_graph/7335ecb1d41e713bf3909adf5802b90e22bc1581 +0 -0
  603. package/vendor/libgit2/fuzzers/corpora/commit_graph/73afaa73175f461e1d19d5138e055c1649926dfe +0 -0
  604. package/vendor/libgit2/fuzzers/corpora/commit_graph/73e2fcb45c4df90d19091056b235e7a317631a62 +0 -0
  605. package/vendor/libgit2/fuzzers/corpora/commit_graph/741cb2d5ae11b0a9e0608b58ec7284d75129a1f2 +0 -0
  606. package/vendor/libgit2/fuzzers/corpora/commit_graph/7431bb0097a9bb52e1ceaaa8674a13cd3486a387 +0 -0
  607. package/vendor/libgit2/fuzzers/corpora/commit_graph/7455b805995d0c96ac12f8a1c1264caaffcfac1c +0 -0
  608. package/vendor/libgit2/fuzzers/corpora/commit_graph/74e39b8a82fc06f9ed8f83ea30545ddf6df66811 +0 -0
  609. package/vendor/libgit2/fuzzers/corpora/commit_graph/75d51e413d3e916560dc0c2ee5092d2f4972aec1 +0 -0
  610. package/vendor/libgit2/fuzzers/corpora/commit_graph/75e068964ea6beb7310a154d763de74a70071f48 +0 -0
  611. package/vendor/libgit2/fuzzers/corpora/commit_graph/763bf498dd847bd2b4af7b611199619bd428bea6 +0 -0
  612. package/vendor/libgit2/fuzzers/corpora/commit_graph/77064ae04581a3c6d2a77158ef1a0b1e60db414a +0 -0
  613. package/vendor/libgit2/fuzzers/corpora/commit_graph/783bb14d68021061f592601607f40fe232ad17c4 +0 -0
  614. package/vendor/libgit2/fuzzers/corpora/commit_graph/7862814cb684310b54ef920b35403515efaba13c +0 -0
  615. package/vendor/libgit2/fuzzers/corpora/commit_graph/791fd85b6ffb2429e9fa5ba29eebdce214ad88c7 +0 -0
  616. package/vendor/libgit2/fuzzers/corpora/commit_graph/79396d4f6142a53e26e14aa6ccb4afb4fd8fc580 +0 -0
  617. package/vendor/libgit2/fuzzers/corpora/commit_graph/79661b8e529e2182d5c612faba9f26e32a122b78 +0 -0
  618. package/vendor/libgit2/fuzzers/corpora/commit_graph/7969143acb3334bffac46c6dfd96362c81644191 +0 -0
  619. package/vendor/libgit2/fuzzers/corpora/commit_graph/79d84866dc8c067508c02516b65c0e48cf689b56 +0 -0
  620. package/vendor/libgit2/fuzzers/corpora/commit_graph/7b61f8f4a96e309bbe64ed82637fc81492a9652f +0 -0
  621. package/vendor/libgit2/fuzzers/corpora/commit_graph/7b8123f973edfb0f3cab027c0cd6b8efc7b11d6b +0 -0
  622. package/vendor/libgit2/fuzzers/corpora/commit_graph/7b8dd3093efba07f7a4d3bab4b90b8f6e4f28bfb +0 -0
  623. package/vendor/libgit2/fuzzers/corpora/commit_graph/7cc771aab0f3be7730881a46d952ae0a06958201 +0 -0
  624. package/vendor/libgit2/fuzzers/corpora/commit_graph/7d177f4207de78d50df2493a3bc07f2cd578b363 +0 -0
  625. package/vendor/libgit2/fuzzers/corpora/commit_graph/7d2df075f3e73ea9809c31586c37ece0f568b7fa +0 -0
  626. package/vendor/libgit2/fuzzers/corpora/commit_graph/7d386e68e4c733a1fb11c0117f379fb4b9955fbb +1 -0
  627. package/vendor/libgit2/fuzzers/corpora/commit_graph/7e4260830352479d29310bd6e1022e19a68ffe76 +0 -0
  628. package/vendor/libgit2/fuzzers/corpora/commit_graph/7e4dfdae52be18cf95555c2eb1f54af7f69c6dde +0 -0
  629. package/vendor/libgit2/fuzzers/corpora/commit_graph/7eafedf7e7f20e86ecdf9ba51febf8492bdbc1f1 +0 -0
  630. package/vendor/libgit2/fuzzers/corpora/commit_graph/7ef1829a378d66b1dd70a767729127a0dc5edcae +0 -0
  631. package/vendor/libgit2/fuzzers/corpora/commit_graph/80b7d2b9d7e8c8fd7ae239b8d307b592f97ee000 +0 -0
  632. package/vendor/libgit2/fuzzers/corpora/commit_graph/810f577ff5c1af7807a26226af912687558158cd +0 -0
  633. package/vendor/libgit2/fuzzers/corpora/commit_graph/81603f1fe8d8e29005418d0fc9a9b33972366038 +0 -0
  634. package/vendor/libgit2/fuzzers/corpora/commit_graph/81c8b4d6884f954935fa4a8e828c4637db04b61a +0 -0
  635. package/vendor/libgit2/fuzzers/corpora/commit_graph/8226846e9b092561f85cc2956ab89d8cc1ae61e0 +0 -0
  636. package/vendor/libgit2/fuzzers/corpora/commit_graph/825cfceea434e2392cce161356e3cb5f81ec2b3a +0 -0
  637. package/vendor/libgit2/fuzzers/corpora/commit_graph/82603febce83d95adf68b85cabf15d43ca0c4ee9 +0 -0
  638. package/vendor/libgit2/fuzzers/corpora/commit_graph/827f0826cc4156e19b4c4938bec74e38de62fe9c +0 -0
  639. package/vendor/libgit2/fuzzers/corpora/commit_graph/8486397ff8d1156249676c19b419a7758ff53f9a +0 -0
  640. package/vendor/libgit2/fuzzers/corpora/commit_graph/84d99ee359bec1b8ee0f59e9bd96f1da062030b7 +0 -0
  641. package/vendor/libgit2/fuzzers/corpora/commit_graph/84e629bc7416039f1feb81fa9168d7c1ee3141c2 +0 -0
  642. package/vendor/libgit2/fuzzers/corpora/commit_graph/84e885752179076fb38739ca7bc4345716bee56a +0 -0
  643. package/vendor/libgit2/fuzzers/corpora/commit_graph/859ef05494c8070057810b5c20df00fc81f81cf5 +0 -0
  644. package/vendor/libgit2/fuzzers/corpora/commit_graph/859fe592f33abc1d959c0e73ecd6cd4bffe23a97 +0 -0
  645. package/vendor/libgit2/fuzzers/corpora/commit_graph/860da5e8a468805b76a44b9ac99b4575be16ea15 +0 -0
  646. package/vendor/libgit2/fuzzers/corpora/commit_graph/865e415745cead02a826f058a5ee49099bdf9562 +0 -0
  647. package/vendor/libgit2/fuzzers/corpora/commit_graph/878bfce051a9c7462847d4e99b7e926dc821b7b8 +0 -0
  648. package/vendor/libgit2/fuzzers/corpora/commit_graph/880492e4dc7259577c227bb4f075d7165e875c29 +0 -0
  649. package/vendor/libgit2/fuzzers/corpora/commit_graph/88b7de1bd1c96454a1350286d115c0ee368511f9 +0 -0
  650. package/vendor/libgit2/fuzzers/corpora/commit_graph/896268e4a5775b7ce33923ac6daeb0810420c55b +0 -0
  651. package/vendor/libgit2/fuzzers/corpora/commit_graph/8978f8da89f9652878edabad164f5513ef508f27 +0 -0
  652. package/vendor/libgit2/fuzzers/corpora/commit_graph/89a6525b7db0e6ec211a484efd2880abef928d4e +0 -0
  653. package/vendor/libgit2/fuzzers/corpora/commit_graph/8ae86cba2bba6664fc5eb97be8e9777b8825d823 +0 -0
  654. package/vendor/libgit2/fuzzers/corpora/commit_graph/8b845fbd2aa14e4f83c4dbc8b4b0b54d06482acd +0 -0
  655. package/vendor/libgit2/fuzzers/corpora/commit_graph/8c4121e6ce5956cfa408b980f16d276f456374dc +0 -0
  656. package/vendor/libgit2/fuzzers/corpora/commit_graph/8cb6a5b8ab41e3d27668d5735b5c09ff1f2eab65 +0 -0
  657. package/vendor/libgit2/fuzzers/corpora/commit_graph/8d80a70ffd362a89b88663e27f11e8ab69b70c1b +0 -0
  658. package/vendor/libgit2/fuzzers/corpora/commit_graph/8db603c1720b3680047f831f2ea9862567a7cdc4 +0 -0
  659. package/vendor/libgit2/fuzzers/corpora/commit_graph/8dd40b2d27c7dd4b986c35d87f826da287c09c4c +0 -0
  660. package/vendor/libgit2/fuzzers/corpora/commit_graph/8e9d6e6408e5f708a1924e8370e687e2c202a4c4 +0 -0
  661. package/vendor/libgit2/fuzzers/corpora/commit_graph/8f2dff1a30ee28e5985cb9379828aea5658d5849 +0 -0
  662. package/vendor/libgit2/fuzzers/corpora/commit_graph/8f7d18cdd6e605b85784ada14571fd5e5a184f2a +0 -0
  663. package/vendor/libgit2/fuzzers/corpora/commit_graph/903ae52f0ac9af8348038b12f9259741b0de42f1 +0 -0
  664. package/vendor/libgit2/fuzzers/corpora/commit_graph/9119e331f59e9337d419739c324f49d1bd62c8bf +0 -0
  665. package/vendor/libgit2/fuzzers/corpora/commit_graph/91d54d03b0917314ea1d67a70690df9247dd08d2 +0 -0
  666. package/vendor/libgit2/fuzzers/corpora/commit_graph/922da3b96725bfd0e3f6ce119f1e2249d53f9086 +0 -0
  667. package/vendor/libgit2/fuzzers/corpora/commit_graph/9277561e0524cccba2f851970b0d88ec4f4d3f5e +0 -0
  668. package/vendor/libgit2/fuzzers/corpora/commit_graph/92a4d571804026b7bbe957396185e079e756b894 +0 -0
  669. package/vendor/libgit2/fuzzers/corpora/commit_graph/931224cc80168fd362a360d99bab813ed7bbf8ce +0 -0
  670. package/vendor/libgit2/fuzzers/corpora/commit_graph/936ea5dad3bf023c552aa0bbeea8f7f66a11612c +0 -0
  671. package/vendor/libgit2/fuzzers/corpora/commit_graph/93aa4e0b1864933dce0abc0df69fe3d261f117f2 +0 -0
  672. package/vendor/libgit2/fuzzers/corpora/commit_graph/93d5b084965cf1b09085c4079a972e25207b3659 +0 -0
  673. package/vendor/libgit2/fuzzers/corpora/commit_graph/9443fd3468bcc0bc3ff8dfe765225f045ab43d0a +0 -0
  674. package/vendor/libgit2/fuzzers/corpora/commit_graph/9624c26cefb5804b7906147d262e81ee4000b6d6 +0 -0
  675. package/vendor/libgit2/fuzzers/corpora/commit_graph/9890933a73f39208627bd36e2fe88a6d54343a74 +0 -0
  676. package/vendor/libgit2/fuzzers/corpora/commit_graph/989dad0448e79af10040d5080f74eba2b8a401ba +0 -0
  677. package/vendor/libgit2/fuzzers/corpora/commit_graph/98ed4808b4a8da66a91fcea1be63be6371a7c7ac +0 -0
  678. package/vendor/libgit2/fuzzers/corpora/commit_graph/9928e516b85e22fbad58d562d3b7e814d9ce812d +0 -0
  679. package/vendor/libgit2/fuzzers/corpora/commit_graph/994c7cc5599252b5628d89cd0ba4b5574d32bf00 +0 -0
  680. package/vendor/libgit2/fuzzers/corpora/commit_graph/99c8557c2a02ea030de42869af42c1f7c77114db +0 -0
  681. package/vendor/libgit2/fuzzers/corpora/commit_graph/9a14c867272f102b84efdba73662d318c3e51cfe +0 -0
  682. package/vendor/libgit2/fuzzers/corpora/commit_graph/9a6f158c176d4a1982d541be2bc27a8afba4ea57 +0 -0
  683. package/vendor/libgit2/fuzzers/corpora/commit_graph/9aa4af603192823a2fdc53d95ed36896bc3309b2 +0 -0
  684. package/vendor/libgit2/fuzzers/corpora/commit_graph/9b40c2190123cec66af3b37212f6c567869efda3 +0 -0
  685. package/vendor/libgit2/fuzzers/corpora/commit_graph/9b6268c11d78c35db5164f1346905e602b6a49fe +0 -0
  686. package/vendor/libgit2/fuzzers/corpora/commit_graph/9c6883ba5cedb7d711b12733d66ef1a1156dd0af +0 -0
  687. package/vendor/libgit2/fuzzers/corpora/commit_graph/9c85c90f44b454ce0d52882c447f5ecb8d303634 +0 -0
  688. package/vendor/libgit2/fuzzers/corpora/commit_graph/9cb7a2e89ec636da3fd41ecc49ebe25e5344e2c6 +0 -0
  689. package/vendor/libgit2/fuzzers/corpora/commit_graph/9d912dc5a3497e4b5b40b37202fc0ffbf5263666 +0 -0
  690. package/vendor/libgit2/fuzzers/corpora/commit_graph/9dcbafe8c5345194ee0ce7eb4f6efaeb55543626 +0 -0
  691. package/vendor/libgit2/fuzzers/corpora/commit_graph/9f4b0f3d2d25e6405ba6093f24d0605327711573 +0 -0
  692. package/vendor/libgit2/fuzzers/corpora/commit_graph/a047bf683239fa208dbac09424b105820ac23f43 +0 -0
  693. package/vendor/libgit2/fuzzers/corpora/commit_graph/a1379dcd89ef5e73eabbfcc395113e3636e0ae09 +0 -0
  694. package/vendor/libgit2/fuzzers/corpora/commit_graph/a38c7ef56adabd0916abac514154b1f362d40434 +0 -0
  695. package/vendor/libgit2/fuzzers/corpora/commit_graph/a38ec6ad4a8466b4feb88e67b16524e8f3feac64 +0 -0
  696. package/vendor/libgit2/fuzzers/corpora/commit_graph/a3fdea21020268b3b2409c1115d50697d9ae8f8c +0 -0
  697. package/vendor/libgit2/fuzzers/corpora/commit_graph/a45f1987a444b2c27e90fc1477e8b0815f75383f +0 -0
  698. package/vendor/libgit2/fuzzers/corpora/commit_graph/a4682958fb7029384c0a01a4a1356ac6f2f44fe1 +0 -0
  699. package/vendor/libgit2/fuzzers/corpora/commit_graph/a4de41561725960d6f48f210a4fb74d527f7b0c2 +0 -0
  700. package/vendor/libgit2/fuzzers/corpora/commit_graph/a5935f34435ecdd6587ad4f77b20d479d3387dbe +0 -0
  701. package/vendor/libgit2/fuzzers/corpora/commit_graph/a5b394beb2b1d463ad80924a8c8c70584bf5c629 +0 -0
  702. package/vendor/libgit2/fuzzers/corpora/commit_graph/a62bc806f8c98ba7986243c2185a0548a8dd57ef +0 -0
  703. package/vendor/libgit2/fuzzers/corpora/commit_graph/a7013e97948893e0118c686c06e332cc611bea7e +0 -0
  704. package/vendor/libgit2/fuzzers/corpora/commit_graph/a74f5df8c7f25c37c15c0f74ed50019d17338225 +0 -0
  705. package/vendor/libgit2/fuzzers/corpora/commit_graph/a7ab3559fb3da3f027e67091116253f3bdfd7828 +0 -0
  706. package/vendor/libgit2/fuzzers/corpora/commit_graph/a845c8258a02022d447ea9249788b345f5504648 +0 -0
  707. package/vendor/libgit2/fuzzers/corpora/commit_graph/a8d3e026e2393587eb170afb32e94ff0e1f8a8be +0 -0
  708. package/vendor/libgit2/fuzzers/corpora/commit_graph/a8d547e41ee21e163e65cf0a186d469dfa50ec19 +0 -0
  709. package/vendor/libgit2/fuzzers/corpora/commit_graph/a8fa22521dd6813e595cc0a9586ee71fff305fe2 +0 -0
  710. package/vendor/libgit2/fuzzers/corpora/commit_graph/a9969442d585d9a53259c71c73b095701280eac5 +0 -0
  711. package/vendor/libgit2/fuzzers/corpora/commit_graph/a99789d0ce2d7b937aaa8afa3cfc0f4ccd7be95f +0 -0
  712. package/vendor/libgit2/fuzzers/corpora/commit_graph/aaca30ee3ab38edfa2b061fcbcbca0c0ea657f15 +0 -0
  713. package/vendor/libgit2/fuzzers/corpora/commit_graph/aacdec3f05e98eb6eedddb9c6edb968e1a63c551 +0 -0
  714. package/vendor/libgit2/fuzzers/corpora/commit_graph/aadd85127241b94a41d02d9e9699e3e9773de1c9 +0 -0
  715. package/vendor/libgit2/fuzzers/corpora/commit_graph/ab8ad126702803d21dbafc85713bbee7f25f36e5 +0 -0
  716. package/vendor/libgit2/fuzzers/corpora/commit_graph/ac26f9afd599ff6f33396c2e02130654f3e2390c +0 -0
  717. package/vendor/libgit2/fuzzers/corpora/commit_graph/ac8b129e4756fda0c50c9dd0eb13e34c7b41ce8e +1 -0
  718. package/vendor/libgit2/fuzzers/corpora/commit_graph/aceaf3b72c2627dd3dd065974b854150681c093f +0 -0
  719. package/vendor/libgit2/fuzzers/corpora/commit_graph/ad1fcdc3bf806392e754a902eba9edd3b344c31f +0 -0
  720. package/vendor/libgit2/fuzzers/corpora/commit_graph/ad8c80e532482f9dfbfbb7c0d447f1f4e592bf72 +0 -0
  721. package/vendor/libgit2/fuzzers/corpora/commit_graph/add92b71bf897da2f71f691e6abcb6d02cb8e99f +0 -0
  722. package/vendor/libgit2/fuzzers/corpora/commit_graph/aeb8ccf6d82be9236c9e689e1580d043bd701eb0 +0 -0
  723. package/vendor/libgit2/fuzzers/corpora/commit_graph/af1a827aedbf674fff2bdeb5589554eec62787ab +0 -0
  724. package/vendor/libgit2/fuzzers/corpora/commit_graph/afaab9a75414d231176ad4582b6f8d81b5dbedb3 +0 -0
  725. package/vendor/libgit2/fuzzers/corpora/commit_graph/afc12c4ebed1f3ab962d7dcef110b5328b1e24c3 +0 -0
  726. package/vendor/libgit2/fuzzers/corpora/commit_graph/b0044f3744cf019658d668a33f8d1e53ef8bd6ce +0 -0
  727. package/vendor/libgit2/fuzzers/corpora/commit_graph/b06adc81a4e1cdcda3786970ca07ed9dee0b6401 +0 -0
  728. package/vendor/libgit2/fuzzers/corpora/commit_graph/b139802a1cc90fd5b86cae044c221361892c688d +0 -0
  729. package/vendor/libgit2/fuzzers/corpora/commit_graph/b1b8f251542db01bdb01be3b6d5b117b07db1834 +0 -0
  730. package/vendor/libgit2/fuzzers/corpora/commit_graph/b1b9af93f84ed6861b9c0ade39980e89ef828c8f +0 -0
  731. package/vendor/libgit2/fuzzers/corpora/commit_graph/b2eae68035cafd4077f6a4c3e4e961fdc1e8122b +0 -0
  732. package/vendor/libgit2/fuzzers/corpora/commit_graph/b32897a6aedaa8c5a6e656dd808bafabc4ee5608 +0 -0
  733. package/vendor/libgit2/fuzzers/corpora/commit_graph/b376e4fc517297f92ac1713803ae3b60d5ebbe43 +0 -0
  734. package/vendor/libgit2/fuzzers/corpora/commit_graph/b3fd100b139cfbffaad68aacf7d462861e9dca35 +0 -0
  735. package/vendor/libgit2/fuzzers/corpora/commit_graph/b40808ca955faab4829811bced1cccb2ab58ea58 +0 -0
  736. package/vendor/libgit2/fuzzers/corpora/commit_graph/b43daf9f87a514bce74af3e5a39284c69c4e7011 +0 -0
  737. package/vendor/libgit2/fuzzers/corpora/commit_graph/b477da07f3e5796ff4a98c8a5bdb0e4a634954bf +0 -0
  738. package/vendor/libgit2/fuzzers/corpora/commit_graph/b4a2ef09cf59ca5ccf810a6f001cce710cc02f6b +0 -0
  739. package/vendor/libgit2/fuzzers/corpora/commit_graph/b4b75e588cb83430c502a34ec3dcfaf774a00359 +0 -0
  740. package/vendor/libgit2/fuzzers/corpora/commit_graph/b4ce98acd2b288b6cfc00461e2e15e0f8004030c +0 -0
  741. package/vendor/libgit2/fuzzers/corpora/commit_graph/b75563f30f7e4fb369d2449b723ee8b282d03eff +0 -0
  742. package/vendor/libgit2/fuzzers/corpora/commit_graph/b7a0a820afa7057081de186728d0d887131d9314 +0 -0
  743. package/vendor/libgit2/fuzzers/corpora/commit_graph/b7e880446146c735a3f820fb93969c8c172c2fb5 +0 -0
  744. package/vendor/libgit2/fuzzers/corpora/commit_graph/b833073d3006e7cbac03c494603a9b75e7b2a723 +0 -0
  745. package/vendor/libgit2/fuzzers/corpora/commit_graph/b89459c1fb6fc918db4c81a32a75ee66217f9ab8 +0 -0
  746. package/vendor/libgit2/fuzzers/corpora/commit_graph/b8aab6c9b2c706f8df0ff695ff94969171f9c807 +0 -0
  747. package/vendor/libgit2/fuzzers/corpora/commit_graph/b9751182a36acb79b77585e1e379857a530e95c8 +0 -0
  748. package/vendor/libgit2/fuzzers/corpora/commit_graph/b9ddb239b5a2c1348d972ec70a08507c35ba4432 +0 -0
  749. package/vendor/libgit2/fuzzers/corpora/commit_graph/ba8f573256a0fbb95c5626f399ebc3ef50bbd826 +0 -0
  750. package/vendor/libgit2/fuzzers/corpora/commit_graph/bc165749042d5425c5d6d4e29b17769a2315a80d +0 -0
  751. package/vendor/libgit2/fuzzers/corpora/commit_graph/bc910bd349319e1ed44d7c7266e3ac99cc29ecc6 +0 -0
  752. package/vendor/libgit2/fuzzers/corpora/commit_graph/bc97b1d4f57eb7770bc3983e2d57c8c01b21d29e +0 -0
  753. package/vendor/libgit2/fuzzers/corpora/commit_graph/bd06f768e35ded4437cb88e2bc0ddd0bea3fa84c +0 -0
  754. package/vendor/libgit2/fuzzers/corpora/commit_graph/bd702faff9725a7a1957fd0f85cc52799f37b682 +0 -0
  755. package/vendor/libgit2/fuzzers/corpora/commit_graph/bee4464861e1cae3cfdd5fbcb340efbf02e8d8ca +0 -0
  756. package/vendor/libgit2/fuzzers/corpora/commit_graph/bf7ad994b098ec85d62683a16e067635e21a8af5 +0 -0
  757. package/vendor/libgit2/fuzzers/corpora/commit_graph/c054fc89ed72101dec861668ff1738ef85b728b9 +0 -0
  758. package/vendor/libgit2/fuzzers/corpora/commit_graph/c06752415ac037fefe5172dc7245cd7c49ca7fca +0 -0
  759. package/vendor/libgit2/fuzzers/corpora/commit_graph/c0c8b54354d172a0be751e3e9b80be961bb15ddb +0 -0
  760. package/vendor/libgit2/fuzzers/corpora/commit_graph/c0e7ca9b5b4d0e72d23d7dc9e9d1f2463a17a20d +0 -0
  761. package/vendor/libgit2/fuzzers/corpora/commit_graph/c13576a29c98bee02aa47f646f5f170f9b7d83f9 +0 -0
  762. package/vendor/libgit2/fuzzers/corpora/commit_graph/c14edf1d34f40b3cc74772c81ebe5d72172cc662 +0 -0
  763. package/vendor/libgit2/fuzzers/corpora/commit_graph/c2789364cb35d111f08f924d0d7550ea9785c61e +0 -0
  764. package/vendor/libgit2/fuzzers/corpora/commit_graph/c2d8b07acb13e43a89b6c4afb3ecb9817dd4a8e9 +0 -0
  765. package/vendor/libgit2/fuzzers/corpora/commit_graph/c36ed796c1bf839668db8fc3475a2ffb32ad8ceb +0 -0
  766. package/vendor/libgit2/fuzzers/corpora/commit_graph/c41ec9dd94427423e4704721e7f21eae0c44ef20 +0 -0
  767. package/vendor/libgit2/fuzzers/corpora/commit_graph/c42c544fa9dbb1264b39bf920b40985384db1d16 +0 -0
  768. package/vendor/libgit2/fuzzers/corpora/commit_graph/c45ec3f594abc15de0a8cc3ad748ba23cb34ec64 +0 -0
  769. package/vendor/libgit2/fuzzers/corpora/commit_graph/c49004d980961f288616a4eb9ebf68123fd68ffa +0 -0
  770. package/vendor/libgit2/fuzzers/corpora/commit_graph/c4c3c3c8df24adf505127627b3090116de78d9a6 +0 -0
  771. package/vendor/libgit2/fuzzers/corpora/commit_graph/c5c1921293af4a5953cb386092694042715fcfb3 +0 -0
  772. package/vendor/libgit2/fuzzers/corpora/commit_graph/c615caad21cd8a754fcb2008420234c5511c62b7 +0 -0
  773. package/vendor/libgit2/fuzzers/corpora/commit_graph/c6a9ee3f8fdc42566c4799db3912a83c8c438d7f +0 -0
  774. package/vendor/libgit2/fuzzers/corpora/commit_graph/c6b661e976282051285b913b3728383f36103ef8 +0 -0
  775. package/vendor/libgit2/fuzzers/corpora/commit_graph/c716ba47f810c238fe7bda1fbdc7b1ccc34e9848 +1 -0
  776. package/vendor/libgit2/fuzzers/corpora/commit_graph/c85b2fa4421302e2fa333a9e33d59a882aa04f4f +0 -0
  777. package/vendor/libgit2/fuzzers/corpora/commit_graph/c871d135f2d3117b326688355bc0fa6f26d56cd6 +0 -0
  778. package/vendor/libgit2/fuzzers/corpora/commit_graph/c915b02265a27d185a8b028305f082ddb3ebd704 +0 -0
  779. package/vendor/libgit2/fuzzers/corpora/commit_graph/c952d38b3e642db4795d7f954b85f4f6d2a041aa +0 -0
  780. package/vendor/libgit2/fuzzers/corpora/commit_graph/c98ee52065736c4172f6ee0c31977bf1b560d685 +0 -0
  781. package/vendor/libgit2/fuzzers/corpora/commit_graph/c99b183a2cd0dd8a4c1a141cc6eebb0311501fa5 +1 -0
  782. package/vendor/libgit2/fuzzers/corpora/commit_graph/ca0cd26baff2f2c0759e619800ebbe7314d2bb95 +0 -0
  783. package/vendor/libgit2/fuzzers/corpora/commit_graph/ca3e0d745c35d7cceb0f6e3f8a709eb658b7e5a8 +0 -0
  784. package/vendor/libgit2/fuzzers/corpora/commit_graph/cac667320e99e93a796bb89842de4675735eb4a4 +0 -0
  785. package/vendor/libgit2/fuzzers/corpora/commit_graph/cb41b00e9db33a07e27b3ee05d3bbecaf853b963 +0 -0
  786. package/vendor/libgit2/fuzzers/corpora/commit_graph/cbdbd3f320eee627097778f15b9fb2c1dc2bd15f +0 -0
  787. package/vendor/libgit2/fuzzers/corpora/commit_graph/cc7f114000c83abb2ab17f0deab6dcfc2acde7f5 +0 -0
  788. package/vendor/libgit2/fuzzers/corpora/commit_graph/cc9bb93a6b7a1362a15f04898845dbe1447ec382 +0 -0
  789. package/vendor/libgit2/fuzzers/corpora/commit_graph/cce7355f826bbcf3955394596d358abc7df6fe6f +0 -0
  790. package/vendor/libgit2/fuzzers/corpora/commit_graph/cceff2878a558166fb5bf2a0354c1be31dcc4e21 +0 -0
  791. package/vendor/libgit2/fuzzers/corpora/commit_graph/cd96909f3ded7aa54bb2ffd2f2f47f8acc6f99e2 +0 -0
  792. package/vendor/libgit2/fuzzers/corpora/commit_graph/cee9f69d7d1a227833fba127a529ea2a10341da3 +0 -0
  793. package/vendor/libgit2/fuzzers/corpora/commit_graph/d064f27a3109afde629165432f78f389da73ff07 +0 -0
  794. package/vendor/libgit2/fuzzers/corpora/commit_graph/d07e3094f02b0c0e3bab370684c2d8c5634224d5 +0 -0
  795. package/vendor/libgit2/fuzzers/corpora/commit_graph/d0ba3413d5706de17de64824d78233d48c6efbec +0 -0
  796. package/vendor/libgit2/fuzzers/corpora/commit_graph/d136511364a74973b009f2be9b021d4122f71a6c +0 -0
  797. package/vendor/libgit2/fuzzers/corpora/commit_graph/d1d215c40bcc8dd4ce02b0c0621e90b183b40b3e +0 -0
  798. package/vendor/libgit2/fuzzers/corpora/commit_graph/d1e35b137b2027b61def408f3f3c8cf9bcab274e +0 -0
  799. package/vendor/libgit2/fuzzers/corpora/commit_graph/d349d137e57fb1a60ab8babd20e2acedc7a9042e +0 -0
  800. package/vendor/libgit2/fuzzers/corpora/commit_graph/d3714ec4d3acc6262295b0fc99c6ba699f5bfe65 +0 -0
  801. package/vendor/libgit2/fuzzers/corpora/commit_graph/d419df696512216074f1c6b17ea1dfc81c0e6e20 +0 -0
  802. package/vendor/libgit2/fuzzers/corpora/commit_graph/d49ad4fdafac251ceec32481826228c1698360aa +0 -0
  803. package/vendor/libgit2/fuzzers/corpora/commit_graph/d4f85ba549c87ccaba59971a25da7e07b57c9f4e +0 -0
  804. package/vendor/libgit2/fuzzers/corpora/commit_graph/d51ade0715bcea7decee2a045934599a10c1b07a +0 -0
  805. package/vendor/libgit2/fuzzers/corpora/commit_graph/d5447fb72c97462a3f47c8b2d55deb0afaa225f8 +0 -0
  806. package/vendor/libgit2/fuzzers/corpora/commit_graph/d6611a91c29291872ed2932455cb15ddb3801323 +0 -0
  807. package/vendor/libgit2/fuzzers/corpora/commit_graph/d676f5e7efd6de6f2e1773231479471d2bba7261 +0 -0
  808. package/vendor/libgit2/fuzzers/corpora/commit_graph/d6a21eaa08a957d8f428192e193c2508fca2c218 +0 -0
  809. package/vendor/libgit2/fuzzers/corpora/commit_graph/d778052a29539344a9e3144e262e68df9628ebde +0 -0
  810. package/vendor/libgit2/fuzzers/corpora/commit_graph/d884f6944adfff7cb41728062bf91cac5cdacfc9 +0 -0
  811. package/vendor/libgit2/fuzzers/corpora/commit_graph/d89aae18d8e320bbae55eaae6a0514d7e005a883 +0 -0
  812. package/vendor/libgit2/fuzzers/corpora/commit_graph/d926fde818c63f7b34f38c9f018bc833bc0bf7e1 +0 -0
  813. package/vendor/libgit2/fuzzers/corpora/commit_graph/d9d542d7c56774143cb6362e5a63739055469349 +0 -0
  814. package/vendor/libgit2/fuzzers/corpora/commit_graph/da99bc9ce5b831f132dfb2eb11b8537e5cccfcd4 +0 -0
  815. package/vendor/libgit2/fuzzers/corpora/commit_graph/dabff2729fa69ab507fb00b7392aee1262056a29 +0 -0
  816. package/vendor/libgit2/fuzzers/corpora/commit_graph/dac4f4b91e33847bcedf7c66ef6e4ad0181e8ad8 +0 -0
  817. package/vendor/libgit2/fuzzers/corpora/commit_graph/db10ff6d01c7a66aa1823b9f99193590ddce99c6 +0 -0
  818. package/vendor/libgit2/fuzzers/corpora/commit_graph/dbbda2208fa688a5275dda0d304630db01ca081d +0 -0
  819. package/vendor/libgit2/fuzzers/corpora/commit_graph/dc47c5037be68a2747ff8a9fa450e1078a5ac5a5 +0 -0
  820. package/vendor/libgit2/fuzzers/corpora/commit_graph/dc760f136b123e38677aec72853e3365f08010fc +0 -0
  821. package/vendor/libgit2/fuzzers/corpora/commit_graph/dca41b901bf1612d4197e6a450366a00ac036ec3 +0 -0
  822. package/vendor/libgit2/fuzzers/corpora/commit_graph/dca62f21fce50d1c8c51b82e0d7eeedc6746e652 +0 -0
  823. package/vendor/libgit2/fuzzers/corpora/commit_graph/dcc7e6c444f95b10d634b1137413824e2cd68f62 +0 -0
  824. package/vendor/libgit2/fuzzers/corpora/commit_graph/dcf4b6addda69040f792c9b860ade2af0b77a14c +0 -0
  825. package/vendor/libgit2/fuzzers/corpora/commit_graph/dd6178166ac1eed82d132fea491bcda0d953227c +0 -0
  826. package/vendor/libgit2/fuzzers/corpora/commit_graph/ddbd5d3074323ccd7cd70bf5de5a2f30de977d99 +0 -0
  827. package/vendor/libgit2/fuzzers/corpora/commit_graph/ddd8ec5632bf1b8153d03a4537d3d76517c497d5 +0 -0
  828. package/vendor/libgit2/fuzzers/corpora/commit_graph/de7a56f36e10d7b9ff43160b1cea3e76b24386d1 +0 -0
  829. package/vendor/libgit2/fuzzers/corpora/commit_graph/defa60aa46ea5a47c09b6962b4e4296ef1bcad92 +0 -0
  830. package/vendor/libgit2/fuzzers/corpora/commit_graph/e0ae419425207832518d66c0ef35d11cbdc20361 +0 -0
  831. package/vendor/libgit2/fuzzers/corpora/commit_graph/e0f519accbf15bc57a1bf1d7cc46d2a0b07a67f5 +0 -0
  832. package/vendor/libgit2/fuzzers/corpora/commit_graph/e128eff8ca7572d9bb0bfc84f64d79c52afc2c67 +0 -0
  833. package/vendor/libgit2/fuzzers/corpora/commit_graph/e17fdc21ae03243bd1d31bb6301b4187cab6fe47 +0 -0
  834. package/vendor/libgit2/fuzzers/corpora/commit_graph/e340ace35a2db7f89d6aa21cc1300766a74be4e1 +0 -0
  835. package/vendor/libgit2/fuzzers/corpora/commit_graph/e36dfc11bcaab1e42df13924a2d7da024684db2e +0 -0
  836. package/vendor/libgit2/fuzzers/corpora/commit_graph/e39e0c87ac5ce0b78c89ae2df84226baba666372 +0 -0
  837. package/vendor/libgit2/fuzzers/corpora/commit_graph/e46b4666c6bfcd6f589ec3617a48cce9c968e833 +0 -0
  838. package/vendor/libgit2/fuzzers/corpora/commit_graph/e57219555e11f9221d3166d5029ed2ad92300608 +0 -0
  839. package/vendor/libgit2/fuzzers/corpora/commit_graph/e58ce590c2454e7ebe18e0a31a943b0b754fbd13 +0 -0
  840. package/vendor/libgit2/fuzzers/corpora/commit_graph/e595f8fef5c8014cb0867978c6580301078ca0d9 +0 -0
  841. package/vendor/libgit2/fuzzers/corpora/commit_graph/e5b76398f60628e879328d7009b9fa89feea14cb +0 -0
  842. package/vendor/libgit2/fuzzers/corpora/commit_graph/e5cec0217eea93b18a59d76b0aed6b46b13fa6a9 +0 -0
  843. package/vendor/libgit2/fuzzers/corpora/commit_graph/e637b4e0b47d0d6cd870502e6a2d6a53bf917f73 +0 -0
  844. package/vendor/libgit2/fuzzers/corpora/commit_graph/e7a6cb6e5a1552837fdbee9025fc48a9373f8564 +0 -0
  845. package/vendor/libgit2/fuzzers/corpora/commit_graph/e7f57c48016e1180c9af95acd34470881f10bd06 +0 -0
  846. package/vendor/libgit2/fuzzers/corpora/commit_graph/e8253c668bfe37df5c5ada3226860cee74fb33a2 +0 -0
  847. package/vendor/libgit2/fuzzers/corpora/commit_graph/e8f9981443c34ece02bca3c66130f3429d7b3375 +0 -0
  848. package/vendor/libgit2/fuzzers/corpora/commit_graph/e91ed5416bbcd1b03803197b99c08f42c9869139 +0 -0
  849. package/vendor/libgit2/fuzzers/corpora/commit_graph/e94201cfa88df7b198abd3abae9007a6780b52a7 +0 -0
  850. package/vendor/libgit2/fuzzers/corpora/commit_graph/e967bbd6a0d251ae62c9c38b784271d707f792c0 +0 -0
  851. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea01737ceed783b3e0f66d9d0c409cb496c1d526 +0 -0
  852. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea40f7879a58d1e52a46404c761f76a949e14a31 +0 -0
  853. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea5ad04a54f95963baea1f47845847626e08dd55 +0 -0
  854. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea608a401f54b0ca70e42b897f0c8ce6efdbc0ef +0 -0
  855. package/vendor/libgit2/fuzzers/corpora/commit_graph/eb8700d6b3728e6e70c2a0fe504543771639f2b6 +0 -0
  856. package/vendor/libgit2/fuzzers/corpora/commit_graph/ec1f271b04c322353865f4819153d46df7def873 +0 -0
  857. package/vendor/libgit2/fuzzers/corpora/commit_graph/ee215536e7f0cfbd07b53dd65c5af9a604a01830 +0 -0
  858. package/vendor/libgit2/fuzzers/corpora/commit_graph/ee4d4393d7d79b755f85ef5bf8f6e3d743bfa258 +0 -0
  859. package/vendor/libgit2/fuzzers/corpora/commit_graph/ee8099331b2c392e7e036ffcd4a9b36ec2c2082d +0 -0
  860. package/vendor/libgit2/fuzzers/corpora/commit_graph/eede9da76db25513f8347f972e170102831de91a +0 -0
  861. package/vendor/libgit2/fuzzers/corpora/commit_graph/ef707cdeaa9548b6c820f769c1d8ad607b3c4514 +0 -0
  862. package/vendor/libgit2/fuzzers/corpora/commit_graph/ef98609d8196dc158365dfcbbc47e3d1699c50c2 +0 -0
  863. package/vendor/libgit2/fuzzers/corpora/commit_graph/efa38b4269f978f3714b44b501831bea678244e0 +0 -0
  864. package/vendor/libgit2/fuzzers/corpora/commit_graph/efba428e29811d233720ccaaf41966a309312a29 +0 -0
  865. package/vendor/libgit2/fuzzers/corpora/commit_graph/efd514f056d8d83498b4724249c4623560e0390d +0 -0
  866. package/vendor/libgit2/fuzzers/corpora/commit_graph/f00e449ba67ef15e7f29df1e6948c28155d72baa +0 -0
  867. package/vendor/libgit2/fuzzers/corpora/commit_graph/f0a83929d588466051dced6eae0c387db307d646 +0 -0
  868. package/vendor/libgit2/fuzzers/corpora/commit_graph/f0e53b72e5d69467e7c014474028ea734f4fcb26 +0 -0
  869. package/vendor/libgit2/fuzzers/corpora/commit_graph/f186265b3f10f4383f4174e9fb74f0a0cdfa3fca +0 -0
  870. package/vendor/libgit2/fuzzers/corpora/commit_graph/f18932fcce5a9db5d6c8f59d622eabc25e255e12 +0 -0
  871. package/vendor/libgit2/fuzzers/corpora/commit_graph/f2ea163bddb95d67597e2a747779ebf4651cb2a9 +0 -0
  872. package/vendor/libgit2/fuzzers/corpora/commit_graph/f2f7d48a6d86143ecb4969808d634163576065b1 +0 -0
  873. package/vendor/libgit2/fuzzers/corpora/commit_graph/f34a833faf2b0dcbae8aaad142c76c7c7e534e99 +0 -0
  874. package/vendor/libgit2/fuzzers/corpora/commit_graph/f5c044ce01645c069334698fb8c4750e44835912 +0 -0
  875. package/vendor/libgit2/fuzzers/corpora/commit_graph/f680112645c2502f0612e9d017bbb50cb28affbf +0 -0
  876. package/vendor/libgit2/fuzzers/corpora/commit_graph/f6b778d1b34415a7715905f54968c8b6eb057912 +0 -0
  877. package/vendor/libgit2/fuzzers/corpora/commit_graph/f6ca6a62dc885c6b2a4b40c4aa1a7cb8118e30bb +0 -0
  878. package/vendor/libgit2/fuzzers/corpora/commit_graph/f733a8770c23fde182d2fef7e0d96e67244274d5 +0 -0
  879. package/vendor/libgit2/fuzzers/corpora/commit_graph/f8529ddf17d4505c0932c3d40abe33cbfd8c6f22 +0 -0
  880. package/vendor/libgit2/fuzzers/corpora/commit_graph/f96f8419a3fc3719ae86d64e1147e7b7f66a2470 +0 -0
  881. package/vendor/libgit2/fuzzers/corpora/commit_graph/fae241a6c87af37781a3b49e534b7ddb6636eda8 +0 -0
  882. package/vendor/libgit2/fuzzers/corpora/commit_graph/faf8817a04b77c6a976ab0a3d1e905f79bb7f799 +0 -0
  883. package/vendor/libgit2/fuzzers/corpora/commit_graph/fb3e769019fb25d384d4be9d38e4cbce00a6adbc +0 -0
  884. package/vendor/libgit2/fuzzers/corpora/commit_graph/fb9b4b2a46f1c65076340a7bd03b076eb101b760 +0 -0
  885. package/vendor/libgit2/fuzzers/corpora/commit_graph/fca9b0a398832c9ba02cdc811f625b97d5beb18e +0 -0
  886. package/vendor/libgit2/fuzzers/corpora/commit_graph/fcb1b42c706e61245d5e86f708be777ae63f2772 +0 -0
  887. package/vendor/libgit2/fuzzers/corpora/commit_graph/fd6c463e7c30b0e51198c0d1ebbea25f20145e3f +0 -0
  888. package/vendor/libgit2/fuzzers/corpora/commit_graph/fdcbaa49097ad120c6d7709b29d5b65b8cf8e719 +0 -0
  889. package/vendor/libgit2/fuzzers/corpora/commit_graph/fe46775b28a2923b8770b44381552a8a1560d875 +0 -0
  890. package/vendor/libgit2/fuzzers/corpora/commit_graph/ff04441135ef3308fec2687cf688069c6df8aa31 +0 -0
  891. package/vendor/libgit2/fuzzers/corpora/midx/037cbbe0dc03807dd9d9e8629f1712d7df34ee18 +0 -0
  892. package/vendor/libgit2/fuzzers/corpora/midx/039ee34fef8f323ed618a10abc0109df123d0cb5 +0 -0
  893. package/vendor/libgit2/fuzzers/corpora/midx/054ee2c82bdb6a170106eb5d35f21bde2119d584 +1 -0
  894. package/vendor/libgit2/fuzzers/corpora/midx/055ca4cbc961ebf5fd5c922b4f73880d3fbfe39d +0 -0
  895. package/vendor/libgit2/fuzzers/corpora/midx/05c4e5eb1b97bc9b6973921fcb30d4c5e2eb79e4 +0 -0
  896. package/vendor/libgit2/fuzzers/corpora/midx/0672eeda541a191cfc68d521a3c7ac0aac4057a6 +0 -0
  897. package/vendor/libgit2/fuzzers/corpora/midx/06a58d1bd5562a668ebf01ef297fd774e0e587a6 +0 -0
  898. package/vendor/libgit2/fuzzers/corpora/midx/06bf7c2461ae1049030f31b83ae76babfcc20c83 +0 -0
  899. package/vendor/libgit2/fuzzers/corpora/midx/06c2db67ea65758d971346bfd6beaa61ed12f22c +0 -0
  900. package/vendor/libgit2/fuzzers/corpora/midx/07f88eefaf12609b7370fe78b82be2955f1b41fd +0 -0
  901. package/vendor/libgit2/fuzzers/corpora/midx/08495c5f3828a56c167de870d385c46ffdce03c5 +0 -0
  902. package/vendor/libgit2/fuzzers/corpora/midx/08ec8594e5b35fb9e8e0726584f720154f0b2b5d +0 -0
  903. package/vendor/libgit2/fuzzers/corpora/midx/0903e378a493c596298074d6bff8de7f9ac25aa7 +1 -0
  904. package/vendor/libgit2/fuzzers/corpora/midx/09144a846f90f894049ef8a0ed0cc7ab4588dc6c +1 -0
  905. package/vendor/libgit2/fuzzers/corpora/midx/09b40dd618373bfe4d3f2838f686a70f645e640b +0 -0
  906. package/vendor/libgit2/fuzzers/corpora/midx/0a00ef44d234c18d365ec41724dbf4f21b09d0c5 +0 -0
  907. package/vendor/libgit2/fuzzers/corpora/midx/0a94e9f4a9b8cf56d52a9e3e7f2fa9a0a5c80d30 +0 -0
  908. package/vendor/libgit2/fuzzers/corpora/midx/0b35a123104b7872a7f15a710a23ef3594ace04d +0 -0
  909. package/vendor/libgit2/fuzzers/corpora/midx/0c3d7e6be32c014ea873440b0f095961d391af1a +0 -0
  910. package/vendor/libgit2/fuzzers/corpora/midx/0c65de477b89afc312a7e89cde06f8a17f65bd54 +0 -0
  911. package/vendor/libgit2/fuzzers/corpora/midx/0c81d0f368e979d2a0eb4598cbf1c9283936ba0c +0 -0
  912. package/vendor/libgit2/fuzzers/corpora/midx/0c95a44ae995070a5279a2991c36de2251081460 +0 -0
  913. package/vendor/libgit2/fuzzers/corpora/midx/0de38e2cb13167df7d5a882570633596f64bc4f4 +0 -0
  914. package/vendor/libgit2/fuzzers/corpora/midx/0de96aa193045315457ade63c2614610c503db9e +0 -0
  915. package/vendor/libgit2/fuzzers/corpora/midx/0e02deca2b16d71f8637933bd56dc8592ed9fdff +1 -0
  916. package/vendor/libgit2/fuzzers/corpora/midx/0e44fc9176fe2c1bae4209369da5bc057f54b2d2 +0 -0
  917. package/vendor/libgit2/fuzzers/corpora/midx/0f6c5fc9b6a68835364bbef8937560ee5a481938 +1 -0
  918. package/vendor/libgit2/fuzzers/corpora/midx/10d542d5c7da060a5f0664e21478a0d598e29844 +0 -0
  919. package/vendor/libgit2/fuzzers/corpora/midx/118735f7786ae6b4c2f6b36314ab1f2cafe9c3c8 +1 -0
  920. package/vendor/libgit2/fuzzers/corpora/midx/119b58eb353aa344264005016297fb911510ea0d +0 -0
  921. package/vendor/libgit2/fuzzers/corpora/midx/127626832c30d6d94bb29384c0fde7ac6bca75ec +0 -0
  922. package/vendor/libgit2/fuzzers/corpora/midx/1284f1a162588d4de87ca17149474644a0863b27 +0 -0
  923. package/vendor/libgit2/fuzzers/corpora/midx/1458599f19f1a967c787562bf8ec3e67677da9c8 +0 -0
  924. package/vendor/libgit2/fuzzers/corpora/midx/14ba6c1ddd05b22c6f2eae5f894721cd3efcbb16 +0 -0
  925. package/vendor/libgit2/fuzzers/corpora/midx/158cdc0a5aa005f167a8588d0beed9eee4aa36f2 +0 -0
  926. package/vendor/libgit2/fuzzers/corpora/midx/15dafc6fa800327f694b5eb2fc4ebf007be9c117 +0 -0
  927. package/vendor/libgit2/fuzzers/corpora/midx/1613ed4b2e909871f8897fd6354ff80a4ac12f87 +0 -0
  928. package/vendor/libgit2/fuzzers/corpora/midx/16daf4cb967bb47cf4566e9be7d96d3125bd2e12 +0 -0
  929. package/vendor/libgit2/fuzzers/corpora/midx/177783dce78efee878f6d6020fd87ab107bb11a1 +0 -0
  930. package/vendor/libgit2/fuzzers/corpora/midx/17a5090400a1fedc45070e4b530a26f320a89097 +0 -0
  931. package/vendor/libgit2/fuzzers/corpora/midx/17dea5cfa498f4d54384289a1daed0d15a85e7cc +0 -0
  932. package/vendor/libgit2/fuzzers/corpora/midx/17e76ae5b54316679981113f52c27edc87dbcdea +0 -0
  933. package/vendor/libgit2/fuzzers/corpora/midx/191ed5e9334693c53fc843f692dbc3c2c63e8241 +0 -0
  934. package/vendor/libgit2/fuzzers/corpora/midx/196a0ba4edb5bbfd66c1cda669abf0496573cf0e +0 -0
  935. package/vendor/libgit2/fuzzers/corpora/midx/19742b6cee79fa5bf9b27dcbe367c82d0a399904 +0 -0
  936. package/vendor/libgit2/fuzzers/corpora/midx/1a21d7581d3b0a8d67934d48e91d45bd818836e8 +0 -0
  937. package/vendor/libgit2/fuzzers/corpora/midx/1b2f96c5d75c7ca09b1012be4e6c3a7b248ed924 +0 -0
  938. package/vendor/libgit2/fuzzers/corpora/midx/1b604ff0683d0e23dc7945431f6514ba30d6ca0d +0 -0
  939. package/vendor/libgit2/fuzzers/corpora/midx/1b771dd5bd3ae2b1c42c4efe6c896c83b88a4f91 +0 -0
  940. package/vendor/libgit2/fuzzers/corpora/midx/1b793a4ee73fa8bf423da70fca5f39ef32a8d288 +0 -0
  941. package/vendor/libgit2/fuzzers/corpora/midx/1c9599ce00978780519272be279f508c402e3268 +1 -0
  942. package/vendor/libgit2/fuzzers/corpora/midx/1cc0068f9f63b12dc8fdd38f9ebfb96c42664e95 +0 -0
  943. package/vendor/libgit2/fuzzers/corpora/midx/1de6e1f5579da6e5c40f4ee23ac62e29e4f90541 +0 -0
  944. package/vendor/libgit2/fuzzers/corpora/midx/1eec93083260ebfab5f4c6d13119cf27c374b7e9 +0 -0
  945. package/vendor/libgit2/fuzzers/corpora/midx/1f0f574addd363d1fed131289f301c5c033aaa8f +0 -0
  946. package/vendor/libgit2/fuzzers/corpora/midx/1f3e85cffdb545c1ba7c8bbe1ca18ec13e341038 +0 -0
  947. package/vendor/libgit2/fuzzers/corpora/midx/1f6a66a92d5f083a73a82280a0a1ae0800e56ae5 +0 -0
  948. package/vendor/libgit2/fuzzers/corpora/midx/208e422322052efcdaeb1a09bbf06c5f476b8efc +0 -0
  949. package/vendor/libgit2/fuzzers/corpora/midx/22d75b2c3937957b14eded621b638283ce7fe1fe +0 -0
  950. package/vendor/libgit2/fuzzers/corpora/midx/22f90ff68166a409acf8f89bf60a31ad2c64ab37 +0 -0
  951. package/vendor/libgit2/fuzzers/corpora/midx/236ebad449d432b039d6ace1f250ef1fa2aa364d +0 -0
  952. package/vendor/libgit2/fuzzers/corpora/midx/252a4e4bf7fb21792ec2f305fd88fa7c9168505f +0 -0
  953. package/vendor/libgit2/fuzzers/corpora/midx/259e1faf7b7f12250062d36ded1193a9dbcae0f5 +0 -0
  954. package/vendor/libgit2/fuzzers/corpora/midx/25ad3dfb655ab4c853d0d277872310d9579c8e83 +0 -0
  955. package/vendor/libgit2/fuzzers/corpora/midx/26210f5b8fdbf81b312feea48659ec6e2e083c0b +0 -0
  956. package/vendor/libgit2/fuzzers/corpora/midx/263a2a0915be36d8cb2bc30774e37e0344262347 +0 -0
  957. package/vendor/libgit2/fuzzers/corpora/midx/2679bfbc2f4f7c10a304245da4e156e235377b63 +0 -0
  958. package/vendor/libgit2/fuzzers/corpora/midx/270b7b567a63dd94bb2a90448bbbc2e2bbc4a261 +0 -0
  959. package/vendor/libgit2/fuzzers/corpora/midx/271cd5c5e254a293d115588ee130040ef26b59e8 +0 -0
  960. package/vendor/libgit2/fuzzers/corpora/midx/27839a8035b48f8c19ab073808a03a95b6a90cc3 +0 -0
  961. package/vendor/libgit2/fuzzers/corpora/midx/2810c385c9285cbdb65bcdab5175999fe547cbad +0 -0
  962. package/vendor/libgit2/fuzzers/corpora/midx/28afaf4ab4b092ccf987661e58009f96126bba63 +0 -0
  963. package/vendor/libgit2/fuzzers/corpora/midx/29f842e86a891cff9f0b44c8aec19f7e23a47000 +0 -0
  964. package/vendor/libgit2/fuzzers/corpora/midx/2aa2549f617f19402d1feac61d4ca1af3545cc8a +0 -0
  965. package/vendor/libgit2/fuzzers/corpora/midx/2b73c2902eda6da41321493601003b29c3445713 +0 -0
  966. package/vendor/libgit2/fuzzers/corpora/midx/2bcec1274c5e7b2d7a581d851c016ef5b553fabe +0 -0
  967. package/vendor/libgit2/fuzzers/corpora/midx/2dd9a328b6d4e29e42684347be5c4b7cd7dc1a66 +0 -0
  968. package/vendor/libgit2/fuzzers/corpora/midx/2ddc17ee7ee89bb7dbc673328d5f3e55c76e686e +0 -0
  969. package/vendor/libgit2/fuzzers/corpora/midx/2f71d5e99dc93618ed99fdb7c244a8f5e4a7eb4a +0 -0
  970. package/vendor/libgit2/fuzzers/corpora/midx/2f7cd0154d71a83e7b104670b2a77fbd285ffde2 +0 -0
  971. package/vendor/libgit2/fuzzers/corpora/midx/2f9d40ef790f5213234e95d123dce942b2d1d389 +0 -0
  972. package/vendor/libgit2/fuzzers/corpora/midx/31577bacbca7017308d2a0c9ebfdd4fce513bbe4 +0 -0
  973. package/vendor/libgit2/fuzzers/corpora/midx/3278f1bab88b80597d0066812d49f8bd3c7b1dcf +0 -0
  974. package/vendor/libgit2/fuzzers/corpora/midx/328160cae6235605ff70951a2f6ac669ba7bb397 +0 -0
  975. package/vendor/libgit2/fuzzers/corpora/midx/337ed1bf91701a4c8926840259077e55938c6efc +0 -0
  976. package/vendor/libgit2/fuzzers/corpora/midx/33a97d83ff7a774797b1751ea4bffbb4a22c58d9 +0 -0
  977. package/vendor/libgit2/fuzzers/corpora/midx/341021da9516401cf364ed2b7dfdda346db04f2f +0 -0
  978. package/vendor/libgit2/fuzzers/corpora/midx/341773a439cdecc58f55fb205ac584cd93ffe0f2 +1 -0
  979. package/vendor/libgit2/fuzzers/corpora/midx/366091157510e40bca08fc2102b9018ccf4697de +0 -0
  980. package/vendor/libgit2/fuzzers/corpora/midx/37096157e2f9f2ec8e0b97b21d335bd653f3edbd +0 -0
  981. package/vendor/libgit2/fuzzers/corpora/midx/373a74b8613d09babcb567f91047e7b556a8de90 +0 -0
  982. package/vendor/libgit2/fuzzers/corpora/midx/3748b07ee7bec7bdd202ee14222cefca182417d1 +0 -0
  983. package/vendor/libgit2/fuzzers/corpora/midx/38b7906b9f956dca01dc92d0a901388ec1cbc8b1 +0 -0
  984. package/vendor/libgit2/fuzzers/corpora/midx/38ddf3424559f1a6e7687eff8469a358184b833b +1 -0
  985. package/vendor/libgit2/fuzzers/corpora/midx/38e31d0a7dcc3835ce1a4afeeda8446fb3d7ed73 +0 -0
  986. package/vendor/libgit2/fuzzers/corpora/midx/3955ec4497b226391ef9eb40f38af6dee4fa26b7 +0 -0
  987. package/vendor/libgit2/fuzzers/corpora/midx/3b6b424342133feb0f587f22bcd8f21595c004e5 +0 -0
  988. package/vendor/libgit2/fuzzers/corpora/midx/3bb71f41200e0ebf8d19532e7d6e384c48aa2d03 +0 -0
  989. package/vendor/libgit2/fuzzers/corpora/midx/3c5a6063797aba9ffe5ea9903bbfcf87193652d3 +0 -0
  990. package/vendor/libgit2/fuzzers/corpora/midx/3dfb9927d959f2462f6944a32d080b60a265abfe +0 -0
  991. package/vendor/libgit2/fuzzers/corpora/midx/3e19242a63ec92a0c3f7138ebbc31bfe7cbd40cd +0 -0
  992. package/vendor/libgit2/fuzzers/corpora/midx/3ec53ce4ea1f41f040a3c2beed929572af95dd43 +0 -0
  993. package/vendor/libgit2/fuzzers/corpora/midx/3f0762fdf49a58c0d8fd6683964a85caddee391b +0 -0
  994. package/vendor/libgit2/fuzzers/corpora/midx/3f71ae863c4e9bac98e49a554b8ec4d78b17492d +1 -0
  995. package/vendor/libgit2/fuzzers/corpora/midx/3f9df30bfb66a28fbe6f1951ef7ae4ca9f19fdf2 +0 -0
  996. package/vendor/libgit2/fuzzers/corpora/midx/3fabb14670c008c22094c1d7cd7b1e23b4c48b3d +0 -0
  997. package/vendor/libgit2/fuzzers/corpora/midx/408fba9c66c5d1deb31e4c69f1dd0677844dbc1b +0 -0
  998. package/vendor/libgit2/fuzzers/corpora/midx/40ca8645081087e950ad61bccf8d43450366356e +0 -0
  999. package/vendor/libgit2/fuzzers/corpora/midx/412faec949b9d04498de939561664ee559a583a7 +1 -0
  1000. package/vendor/libgit2/fuzzers/corpora/midx/4148bd5336f89e73b2a5416c67d491c0ec4a2b7d +0 -0
  1001. package/vendor/libgit2/fuzzers/corpora/midx/41933e61fa20fbe2b190f9ae7ceae4a4b1220021 +0 -0
  1002. package/vendor/libgit2/fuzzers/corpora/midx/423d90f3fc7ddc146095ec5a4b4f455aa876b69b +0 -0
  1003. package/vendor/libgit2/fuzzers/corpora/midx/42a6c52249aa12cfef1db1bf302a483a01c972f3 +0 -0
  1004. package/vendor/libgit2/fuzzers/corpora/midx/42a82726f0e70da9b87b6c52bc1b3415576025f2 +0 -0
  1005. package/vendor/libgit2/fuzzers/corpora/midx/4458e19f99e38c61ad9792b0b3bf8ac79f8236f1 +1 -0
  1006. package/vendor/libgit2/fuzzers/corpora/midx/44a4411a8d6ed67ee3ea61d91d2afafe89295b0f +0 -0
  1007. package/vendor/libgit2/fuzzers/corpora/midx/44e04754d1b6c0c045e05509dd7033d19a926b10 +0 -0
  1008. package/vendor/libgit2/fuzzers/corpora/midx/45259e9f0a2cc7739a94eccaafb37c1570f73884 +0 -0
  1009. package/vendor/libgit2/fuzzers/corpora/midx/46c0d7e952200cabc08b9cd776a9f6759f4208c3 +0 -0
  1010. package/vendor/libgit2/fuzzers/corpora/midx/46deac8631633ea3c32005124e20a2bc2bbabade +0 -0
  1011. package/vendor/libgit2/fuzzers/corpora/midx/46e7edf6e9d6cbcdabde3b48f1c4efd93be40348 +0 -0
  1012. package/vendor/libgit2/fuzzers/corpora/midx/46fe9556c28c94f7321baa2519a3cbeabbd54d09 +0 -0
  1013. package/vendor/libgit2/fuzzers/corpora/midx/49223681729e73b48b26a2262e4a66b2ba00e176 +0 -0
  1014. package/vendor/libgit2/fuzzers/corpora/midx/499e61b689f6cc7e4efb0631684739c2a6f97c7d +0 -0
  1015. package/vendor/libgit2/fuzzers/corpora/midx/4a06ad8c4d717bd048a7a1315a3d609d70f0162d +0 -0
  1016. package/vendor/libgit2/fuzzers/corpora/midx/4adb7d4791a4c6370478dff2eb987d715554bf09 +0 -0
  1017. package/vendor/libgit2/fuzzers/corpora/midx/4b01c479cdc9b750a31d5e7ac5004309222d218d +0 -0
  1018. package/vendor/libgit2/fuzzers/corpora/midx/4bce7460a6becba6d26984bb438d7d3aa4e4fc56 +0 -0
  1019. package/vendor/libgit2/fuzzers/corpora/midx/4cc96483b6800dda296f00887b12a35154115090 +0 -0
  1020. package/vendor/libgit2/fuzzers/corpora/midx/4f3aa59bae0619c9a06b631d9cb7767591810ab0 +0 -0
  1021. package/vendor/libgit2/fuzzers/corpora/midx/501840d963cedd2945018de59e0202444d7ebf4b +0 -0
  1022. package/vendor/libgit2/fuzzers/corpora/midx/50479958c030d1addceb1ca8c27f24447e555e65 +0 -0
  1023. package/vendor/libgit2/fuzzers/corpora/midx/508ba8ef164a809f739834a39d690e700101a7a1 +0 -0
  1024. package/vendor/libgit2/fuzzers/corpora/midx/521d345313812e54bc6c944485e19dbb39a87768 +0 -0
  1025. package/vendor/libgit2/fuzzers/corpora/midx/5369d74ac157f85b597c1b28bbd6768105e9327b +0 -0
  1026. package/vendor/libgit2/fuzzers/corpora/midx/53997b0146ff49bfe464be203b130a67ea93fd26 +0 -0
  1027. package/vendor/libgit2/fuzzers/corpora/midx/560ea8bd7d11b00e0d21631b6d9ec7e63f0a5286 +0 -0
  1028. package/vendor/libgit2/fuzzers/corpora/midx/5682ebc6878e247ce9bc636d34ada6ad338fcaf0 +0 -0
  1029. package/vendor/libgit2/fuzzers/corpora/midx/5762abb5234edd913754b69e1ab03274c711ee68 +0 -0
  1030. package/vendor/libgit2/fuzzers/corpora/midx/579406f055070559bda3c6120107feb3e637c481 +2 -0
  1031. package/vendor/libgit2/fuzzers/corpora/midx/5837d16af4a9c1f2616467cc4aa9ec8836e05c58 +0 -0
  1032. package/vendor/libgit2/fuzzers/corpora/midx/58901e865fe20b9fa136cca4b253d3ae73c2b78e +0 -0
  1033. package/vendor/libgit2/fuzzers/corpora/midx/58a87098a14572e46b53c87340083f999d8fcfc2 +0 -0
  1034. package/vendor/libgit2/fuzzers/corpora/midx/59ae139a21448e0eb7371ddc6ef57f0c9dfe9c85 +0 -0
  1035. package/vendor/libgit2/fuzzers/corpora/midx/5a7e81419f895168c555ac9b4e75a1ad4f04b34a +0 -0
  1036. package/vendor/libgit2/fuzzers/corpora/midx/5b848c1f56a150d64020e9b0bb398a286dca4096 +0 -0
  1037. package/vendor/libgit2/fuzzers/corpora/midx/5bd311bd846336149b2815666052fdb7e8bf2ea6 +0 -0
  1038. package/vendor/libgit2/fuzzers/corpora/midx/5ce77eb98473a2e01d04909939edf7aabef5762c +0 -0
  1039. package/vendor/libgit2/fuzzers/corpora/midx/5e5cd5819811507ac69bd8abad27433ccd6b7521 +0 -0
  1040. package/vendor/libgit2/fuzzers/corpora/midx/5ea114ae3dbb140364000c416152b0f32ce3de23 +0 -0
  1041. package/vendor/libgit2/fuzzers/corpora/midx/5f181bb0a79603c84534a9b8e37ecdeb1d2aeeb5 +1 -0
  1042. package/vendor/libgit2/fuzzers/corpora/midx/5f428ce1169e28353cedb8be3e2f6edd0ef354e4 +0 -0
  1043. package/vendor/libgit2/fuzzers/corpora/midx/5f9bc7729dc331e3c4d8e52df0688abad6d4aee8 +0 -0
  1044. package/vendor/libgit2/fuzzers/corpora/midx/619527e1d650cd1c26e9bc61e424c9fdc04b17b9 +0 -0
  1045. package/vendor/libgit2/fuzzers/corpora/midx/625d3676de25188865e05db2a3933c38508406fc +0 -0
  1046. package/vendor/libgit2/fuzzers/corpora/midx/6368569cfde7fbe369a0ee4695fa4d5a7d7887a6 +0 -0
  1047. package/vendor/libgit2/fuzzers/corpora/midx/6388fe4d630064ea1ea33aa85381d9c82e328e95 +0 -0
  1048. package/vendor/libgit2/fuzzers/corpora/midx/64cff4e110f0bcb3ea833c1afda6e27a57dac0bc +0 -0
  1049. package/vendor/libgit2/fuzzers/corpora/midx/66449b87ce47b681c6326f337bebf03366a0ee99 +0 -0
  1050. package/vendor/libgit2/fuzzers/corpora/midx/66ae3584497a1823a955c33e5bc53f7434c13e49 +0 -0
  1051. package/vendor/libgit2/fuzzers/corpora/midx/66e238a6ad70fb30c82171ff1b73ea71b4379355 +0 -0
  1052. package/vendor/libgit2/fuzzers/corpora/midx/66f345dc060ac5a1fe8bcf0828102d072deb1111 +0 -0
  1053. package/vendor/libgit2/fuzzers/corpora/midx/66f839146ef46deed25fd2cd169a4f1a2a3533fa +0 -0
  1054. package/vendor/libgit2/fuzzers/corpora/midx/671720ee2b7ba45920b41b8016eb5206b88168ee +0 -0
  1055. package/vendor/libgit2/fuzzers/corpora/midx/679c7140ad60ed32aeb7ee464499dd52b0fc212f +0 -0
  1056. package/vendor/libgit2/fuzzers/corpora/midx/67c5e6ce7bb47cefe54d749374f3288a2c915936 +0 -0
  1057. package/vendor/libgit2/fuzzers/corpora/midx/69592399b45f2f83e0cc823c5f0e3865ac3fa611 +0 -0
  1058. package/vendor/libgit2/fuzzers/corpora/midx/6abf97508f0ed808b7fe0d9bb2439981153badd2 +0 -0
  1059. package/vendor/libgit2/fuzzers/corpora/midx/6b2dfb51b35b78680cb02ff54e06f0c983c04866 +0 -0
  1060. package/vendor/libgit2/fuzzers/corpora/midx/6bbf6ab605fedd41ed6c7581ec9f87c75403e9c3 +0 -0
  1061. package/vendor/libgit2/fuzzers/corpora/midx/6c0656104902e1323f3a19c46df7cffecae94f1c +0 -0
  1062. package/vendor/libgit2/fuzzers/corpora/midx/6c0ce8006b3ebd8202e61fe5f4cc2285248bd1ba +0 -0
  1063. package/vendor/libgit2/fuzzers/corpora/midx/6cc635e6dd4e430ed4fb68a9f5add38aa02ae14f +0 -0
  1064. package/vendor/libgit2/fuzzers/corpora/midx/6d1b281d7bdd9887e53505fd5d040731db18ba48 +0 -0
  1065. package/vendor/libgit2/fuzzers/corpora/midx/6d5c35f9d87253b2fbe383bfde3775a9f737da12 +1 -0
  1066. package/vendor/libgit2/fuzzers/corpora/midx/6d95355018cadedd97bed65c45a44a7ff6f065f7 +0 -0
  1067. package/vendor/libgit2/fuzzers/corpora/midx/6dd70e887ab94db3327d9aaa0335914a1f4986b7 +0 -0
  1068. package/vendor/libgit2/fuzzers/corpora/midx/6ed51a953a8b6671de417406e340d8d0a211aa12 +0 -0
  1069. package/vendor/libgit2/fuzzers/corpora/midx/6f911f19652a4457c93ef92b594bc1dc2ca900f8 +0 -0
  1070. package/vendor/libgit2/fuzzers/corpora/midx/6fa76cbaeb3cf0417c7a372132167bcd737db66b +0 -0
  1071. package/vendor/libgit2/fuzzers/corpora/midx/71f66d3f7da318d69681a22ebbceb1a2bb290658 +0 -0
  1072. package/vendor/libgit2/fuzzers/corpora/midx/7227a2dc335af13e7225536c49969f46a800750a +1 -0
  1073. package/vendor/libgit2/fuzzers/corpora/midx/72fce27bbccf582f2023f5e168853251e576592a +0 -0
  1074. package/vendor/libgit2/fuzzers/corpora/midx/738e5543ae005a6de85dfcd960eb8e3e6faa8947 +0 -0
  1075. package/vendor/libgit2/fuzzers/corpora/midx/739d9c8868445202305d0a4e5766df1c68932688 +0 -0
  1076. package/vendor/libgit2/fuzzers/corpora/midx/7438b07314917c84d348e7d9629e3712190c7da7 +0 -0
  1077. package/vendor/libgit2/fuzzers/corpora/midx/7490f00d660f5d8dedfa606cca241bd07be86a4f +0 -0
  1078. package/vendor/libgit2/fuzzers/corpora/midx/75c64e8b61af41b28516c2c0fe902362d55a24f3 +0 -0
  1079. package/vendor/libgit2/fuzzers/corpora/midx/75e94b59a41e7f086b6f7ab3bca801251744ae3d +0 -0
  1080. package/vendor/libgit2/fuzzers/corpora/midx/7612ceb3a989f97a7bb19f57c7f9c61366953642 +0 -0
  1081. package/vendor/libgit2/fuzzers/corpora/midx/76ac2328e1c979bca648b4082b8bfe6f2e2e73ea +0 -0
  1082. package/vendor/libgit2/fuzzers/corpora/midx/76f296039ba4d666c9147ad234d43b55050808e3 +0 -0
  1083. package/vendor/libgit2/fuzzers/corpora/midx/777f248eea53e3dd2b726e1e0de5eeda43b6d323 +1 -0
  1084. package/vendor/libgit2/fuzzers/corpora/midx/792fcd0075bd8031a98a68ce04d6a9f23feef7b4 +0 -0
  1085. package/vendor/libgit2/fuzzers/corpora/midx/7a936c3e69013b2c71dcb72f0eccd99c93367533 +0 -0
  1086. package/vendor/libgit2/fuzzers/corpora/midx/7b30d0cd07108f2e45ce1a3fab3f971b25dcf5cd +0 -0
  1087. package/vendor/libgit2/fuzzers/corpora/midx/7b87f367b5fa3bf29bae19031814e5d0120a15ba +0 -0
  1088. package/vendor/libgit2/fuzzers/corpora/midx/7c12e4bca60858eae13c47a66e54cd9e96a50909 +0 -0
  1089. package/vendor/libgit2/fuzzers/corpora/midx/7c59f95e649b3be6344f4f835afd0d9a894c1144 +0 -0
  1090. package/vendor/libgit2/fuzzers/corpora/midx/7dcb6494c3614a8690dc496309f90e0f23634c37 +0 -0
  1091. package/vendor/libgit2/fuzzers/corpora/midx/7e64b86827ea98f0a4eb54736c460a59b0c30420 +0 -0
  1092. package/vendor/libgit2/fuzzers/corpora/midx/8125d9eaa09b3d2283fea73223866cb36877c4a4 +0 -0
  1093. package/vendor/libgit2/fuzzers/corpora/midx/81c7fc514fa9a07b5b87b94cf9c00df2b1325a74 +0 -0
  1094. package/vendor/libgit2/fuzzers/corpora/midx/81f9df0493052d980ca13918637bc6ce565615b3 +0 -0
  1095. package/vendor/libgit2/fuzzers/corpora/midx/82556b9345134dd689cb9d0d08d3dc8459454181 +0 -0
  1096. package/vendor/libgit2/fuzzers/corpora/midx/82d35a7a6ffb333b02d0d597e88ffdd481237a8b +0 -0
  1097. package/vendor/libgit2/fuzzers/corpora/midx/82e931da372a2c69c0f10274342173c2be091f1c +0 -0
  1098. package/vendor/libgit2/fuzzers/corpora/midx/83e2b53f22afe8f7ee21d30fae2619ad0d6a71e3 +0 -0
  1099. package/vendor/libgit2/fuzzers/corpora/midx/83f4d70189dbc0d3aaf5025977c53d4d34fc5893 +0 -0
  1100. package/vendor/libgit2/fuzzers/corpora/midx/85e17cceba7850be893afdc04c8233bea1ef6e72 +0 -0
  1101. package/vendor/libgit2/fuzzers/corpora/midx/874d4abdcd7db751eb930928231669afe90589f5 +0 -0
  1102. package/vendor/libgit2/fuzzers/corpora/midx/87894ec663568153d7837f49b80f6d2e99818bd7 +0 -0
  1103. package/vendor/libgit2/fuzzers/corpora/midx/88052b76108b4ede342f3dd87bb6835b2f71ea83 +0 -0
  1104. package/vendor/libgit2/fuzzers/corpora/midx/884c54256c0ec2cf1c5fa08a0b3d9c2fea021300 +0 -0
  1105. package/vendor/libgit2/fuzzers/corpora/midx/8858f36373db5fd6b805a768af55c21019c664b2 +0 -0
  1106. package/vendor/libgit2/fuzzers/corpora/midx/88fe8b6767c1bd32308208b22e0b00697e5eddf7 +0 -0
  1107. package/vendor/libgit2/fuzzers/corpora/midx/898cac1610f2f2fb67eb092cd053f0006c3070e3 +0 -0
  1108. package/vendor/libgit2/fuzzers/corpora/midx/89d0f5573ae1b524e7e9bdb1fb54ea4ce99e3ef0 +0 -0
  1109. package/vendor/libgit2/fuzzers/corpora/midx/8a55300e400efd56be5e12258ebf575c4f3b55ed +0 -0
  1110. package/vendor/libgit2/fuzzers/corpora/midx/8bf7b464aaa2c2b536aa1d76a1297c19155f5603 +1 -0
  1111. package/vendor/libgit2/fuzzers/corpora/midx/8c05e8ef26302a79c89670ad3aa4e8d0bc921923 +0 -0
  1112. package/vendor/libgit2/fuzzers/corpora/midx/8c15f5a268ded9663197d66e8d7d4098e0ae9bf5 +0 -0
  1113. package/vendor/libgit2/fuzzers/corpora/midx/8ca9e85a9e628f0016ea4e6413945b3830730c24 +0 -0
  1114. package/vendor/libgit2/fuzzers/corpora/midx/8e74126a239927900a8f655c813a4b230191a5ba +0 -0
  1115. package/vendor/libgit2/fuzzers/corpora/midx/8ee63e791c004427dd033b468b2ed7446ee6e2e0 +0 -0
  1116. package/vendor/libgit2/fuzzers/corpora/midx/9028113aa78b649e13ff259027a4e450d469e5da +0 -0
  1117. package/vendor/libgit2/fuzzers/corpora/midx/90db2115b8262ebecbefbe8f0a07c451e39bca07 +0 -0
  1118. package/vendor/libgit2/fuzzers/corpora/midx/923f28a4d1917e20ee0736b90695c2123c0c987c +0 -0
  1119. package/vendor/libgit2/fuzzers/corpora/midx/92a5c74e0506d65d1a12686496452870367b169a +0 -0
  1120. package/vendor/libgit2/fuzzers/corpora/midx/92dcf94eb2f92b4e1a232eab3b3f808f4236f118 +0 -0
  1121. package/vendor/libgit2/fuzzers/corpora/midx/9414502aedbef5e307897683625418dd4ac575ac +0 -0
  1122. package/vendor/libgit2/fuzzers/corpora/midx/9422e25bec5fec9f84603a85673b54b1a5e77a40 +0 -0
  1123. package/vendor/libgit2/fuzzers/corpora/midx/943754e865888063e0684aec838222522390d43e +0 -0
  1124. package/vendor/libgit2/fuzzers/corpora/midx/943e067806ae069afbc029ea7a612410e5395687 +0 -0
  1125. package/vendor/libgit2/fuzzers/corpora/midx/9547646cc1a5d260df099b00ea7ee2b95567aee1 +0 -0
  1126. package/vendor/libgit2/fuzzers/corpora/midx/968f7027ec9fbf75a519069ea5189e85a81448b2 +0 -0
  1127. package/vendor/libgit2/fuzzers/corpora/midx/9691046a2f8b31319a6fdfde0506c9a72aed839a +0 -0
  1128. package/vendor/libgit2/fuzzers/corpora/midx/96a8cd5c33986cc26cc00eb2de627149f5259e33 +0 -0
  1129. package/vendor/libgit2/fuzzers/corpora/midx/972466bbc33d2d7d7c21be21c7594b51e78675c5 +0 -0
  1130. package/vendor/libgit2/fuzzers/corpora/midx/980f21a3609762154030f7cf0fe98a892d20f220 +0 -0
  1131. package/vendor/libgit2/fuzzers/corpora/midx/9865f12189ef977418d8410fceebb6830c74d820 +0 -0
  1132. package/vendor/libgit2/fuzzers/corpora/midx/98a1096d609545083878d5126743bbc5985786a9 +0 -0
  1133. package/vendor/libgit2/fuzzers/corpora/midx/98c3b6bbf5dc19bc4aad894087277a36d7c79669 +0 -0
  1134. package/vendor/libgit2/fuzzers/corpora/midx/98f9cd44400b592f809596004125267acf848435 +0 -0
  1135. package/vendor/libgit2/fuzzers/corpora/midx/9a97260f04ecfe0918499ede95cf4bcb3dbc2b51 +0 -0
  1136. package/vendor/libgit2/fuzzers/corpora/midx/9ba0dba2ca4405d04113086309882dac6182e6b8 +0 -0
  1137. package/vendor/libgit2/fuzzers/corpora/midx/9c329ee4b02f2d26ee1a399c873b0452aedca3c0 +0 -0
  1138. package/vendor/libgit2/fuzzers/corpora/midx/9e8e638837e202d83ff606a22dd0e310150fa260 +0 -0
  1139. package/vendor/libgit2/fuzzers/corpora/midx/9ee03d17e070df72547e423a412da0b6a60ad565 +0 -0
  1140. package/vendor/libgit2/fuzzers/corpora/midx/9fad6bd2b07d65e607039bb2bcda0816410cf983 +0 -0
  1141. package/vendor/libgit2/fuzzers/corpora/midx/9fcbd21f4dd194a623d832422384a1519742f0bb +0 -0
  1142. package/vendor/libgit2/fuzzers/corpora/midx/a019fb7f17aa36a9743c530e1f11d5613b8b1158 +0 -0
  1143. package/vendor/libgit2/fuzzers/corpora/midx/a0b8c6ef20198377b19f59e41f08f4cf2107f460 +0 -0
  1144. package/vendor/libgit2/fuzzers/corpora/midx/a14079a3e8cbc2112da4fa747ef20cdfd580e068 +0 -0
  1145. package/vendor/libgit2/fuzzers/corpora/midx/a14d61ba0c609665d37e6c6da929cb53c5b70545 +0 -0
  1146. package/vendor/libgit2/fuzzers/corpora/midx/a15cf2a13e408cb76af0091a0c286af7ffce58e1 +0 -0
  1147. package/vendor/libgit2/fuzzers/corpora/midx/a1ddedbdd05eac99b8b31322635771cd9c999f8a +0 -0
  1148. package/vendor/libgit2/fuzzers/corpora/midx/a235661c3f8b0174a1658e9c435a69577c49256a +0 -0
  1149. package/vendor/libgit2/fuzzers/corpora/midx/a261397a4db5ac196c72d73ba6999e9fd4fc5c1f +0 -0
  1150. package/vendor/libgit2/fuzzers/corpora/midx/a3a803fd6a56d31269717983bbdf2fceebb626c3 +0 -0
  1151. package/vendor/libgit2/fuzzers/corpora/midx/a3d5b0b21d977e8f94d401250de1bbd4fa1d0ee0 +0 -0
  1152. package/vendor/libgit2/fuzzers/corpora/midx/a42f2900ca519bd15b8d6f507449d1a07de2ef75 +0 -0
  1153. package/vendor/libgit2/fuzzers/corpora/midx/a4884775b414eaf9643224564f3be405519cf99a +0 -0
  1154. package/vendor/libgit2/fuzzers/corpora/midx/a48da63e9a5709c24cb66f598a7a964cbc7ccfc7 +0 -0
  1155. package/vendor/libgit2/fuzzers/corpora/midx/a5789fd83dff18079ea7ba41c999f57bee4db41b +0 -0
  1156. package/vendor/libgit2/fuzzers/corpora/midx/a5bb1c60191742df4a91afb622e9b22a2f0b7765 +0 -0
  1157. package/vendor/libgit2/fuzzers/corpora/midx/a5fdfade1cef5e7e494dd6e3791bca5a663d7012 +0 -0
  1158. package/vendor/libgit2/fuzzers/corpora/midx/a6c66f79f5aaf2c1a26ff16754fe1a8c22627e0c +0 -0
  1159. package/vendor/libgit2/fuzzers/corpora/midx/a7478a05a1fc04a9e035be5593bfb6a281ec460f +0 -0
  1160. package/vendor/libgit2/fuzzers/corpora/midx/a75193dd600661d2b417d4e29b23faa7d721c214 +0 -0
  1161. package/vendor/libgit2/fuzzers/corpora/midx/a7ccae74c641ffcdda0042e6c04438d5b32c4cf3 +0 -0
  1162. package/vendor/libgit2/fuzzers/corpora/midx/a94aa5881abdea5374775b8155812121673f89c3 +0 -0
  1163. package/vendor/libgit2/fuzzers/corpora/midx/a98d794f0f24be7a36917826121fc14a24120893 +1 -0
  1164. package/vendor/libgit2/fuzzers/corpora/midx/a993077e321bc4e1831bb5a8ac7511d90d32ae27 +0 -0
  1165. package/vendor/libgit2/fuzzers/corpora/midx/aa3bc67656945e43f9342d3aaaef247584d96cfa +0 -0
  1166. package/vendor/libgit2/fuzzers/corpora/midx/ab111c4d72e3d6796e3d7391e9f35b4e6fefc04a +0 -0
  1167. package/vendor/libgit2/fuzzers/corpora/midx/ab248c42f77952d5d17d6f5203adaa5925c05c64 +0 -0
  1168. package/vendor/libgit2/fuzzers/corpora/midx/ab8451fadf805e5087837d9f6d91ef7eb6fa5edb +0 -0
  1169. package/vendor/libgit2/fuzzers/corpora/midx/abbee3b37aff879b1cef47390001b89b0f6ebc0a +0 -0
  1170. package/vendor/libgit2/fuzzers/corpora/midx/ac15b23f03af8be6dbbb3bbb8d3877a1f9e074a3 +0 -0
  1171. package/vendor/libgit2/fuzzers/corpora/midx/ac47bda12269c06d773f5f3c6517f78513a54a08 +0 -0
  1172. package/vendor/libgit2/fuzzers/corpora/midx/ad1f4fb57f481a00a9bb231517a3155ef0d0877f +0 -0
  1173. package/vendor/libgit2/fuzzers/corpora/midx/ad25e7ffabedd94833d2529886af4d459529ec9d +0 -0
  1174. package/vendor/libgit2/fuzzers/corpora/midx/ad796ebb423f58187806c4a7ee7b787394353ce6 +0 -0
  1175. package/vendor/libgit2/fuzzers/corpora/midx/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc +1 -0
  1176. package/vendor/libgit2/fuzzers/corpora/midx/ae14b80f26f5cee2d85d5154c2cef1eefafa8cc9 +0 -0
  1177. package/vendor/libgit2/fuzzers/corpora/midx/ae3ba892de543801b3c1dfbce370eb2c80a6fb27 +0 -0
  1178. package/vendor/libgit2/fuzzers/corpora/midx/aecc0c7f08810803da234e26e7c6fa7a9f1c0593 +0 -0
  1179. package/vendor/libgit2/fuzzers/corpora/midx/aed2e85d5d39d25e738a34f30a722680bde30368 +0 -0
  1180. package/vendor/libgit2/fuzzers/corpora/midx/b00a75de1987c6f549bf73a63e8f23a2de6641b3 +0 -0
  1181. package/vendor/libgit2/fuzzers/corpora/midx/b02e9f951ce9f10a8eb80f1fc61cd3d2832dd7f4 +0 -0
  1182. package/vendor/libgit2/fuzzers/corpora/midx/b04aff8ab2e133d45bf44565bd4bf9e33b795a97 +0 -0
  1183. package/vendor/libgit2/fuzzers/corpora/midx/b12097ed83db761f7bb79411a59e2474de9b1199 +0 -0
  1184. package/vendor/libgit2/fuzzers/corpora/midx/b1beb2f462b4cb30a09d534b9f49f2e08d76363c +1 -0
  1185. package/vendor/libgit2/fuzzers/corpora/midx/b201733b6165f4544578bd6aad3f55aeafd9a194 +0 -0
  1186. package/vendor/libgit2/fuzzers/corpora/midx/b2699f25c21ffe453dcce20e31b3093e0f9b2abf +1 -0
  1187. package/vendor/libgit2/fuzzers/corpora/midx/b34a5760a1036f909e0243cd857fcef65e40d752 +0 -0
  1188. package/vendor/libgit2/fuzzers/corpora/midx/b3fdacd639073cc1954bcb1f31046d094e2d2296 +0 -0
  1189. package/vendor/libgit2/fuzzers/corpora/midx/b40a6dbe32c8e6a9b777331e7fd97f0d94ceca1c +0 -0
  1190. package/vendor/libgit2/fuzzers/corpora/midx/b52ff2010f22ae6758cde5d529fd19de2a7d5fc5 +0 -0
  1191. package/vendor/libgit2/fuzzers/corpora/midx/b53a7a2afd9dfc55c328b4e06a36882c53126e95 +0 -0
  1192. package/vendor/libgit2/fuzzers/corpora/midx/b548ae8a77a62b7f375b8b48e7184ceed59bc8f8 +0 -0
  1193. package/vendor/libgit2/fuzzers/corpora/midx/b66eaf0b689495cc7c194ab1fca7d36ae9da9758 +0 -0
  1194. package/vendor/libgit2/fuzzers/corpora/midx/b680bf23da22b8b7e77d847169fe9b6968d79e8b +1 -0
  1195. package/vendor/libgit2/fuzzers/corpora/midx/b70d6e7d230fb1393b8f665adcd5658cad7059fe +0 -0
  1196. package/vendor/libgit2/fuzzers/corpora/midx/b87a59f78adb3ef18b0176a8e7fe7e90c2ab4ef7 +0 -0
  1197. package/vendor/libgit2/fuzzers/corpora/midx/b88c5233090e859e923acbdfa9b168f95d7fc14b +0 -0
  1198. package/vendor/libgit2/fuzzers/corpora/midx/ba1923ea69eec8fe765e8d1222eccb928ca6c3c2 +0 -0
  1199. package/vendor/libgit2/fuzzers/corpora/midx/ba4d695c1eb02c702bd99a3db27838c7ba617d79 +0 -0
  1200. package/vendor/libgit2/fuzzers/corpora/midx/ba7e4f999dc22d223c7f75db36646bfa05848572 +0 -0
  1201. package/vendor/libgit2/fuzzers/corpora/midx/bc5f0cd338d1d17a230378390aa810bc7b103cda +0 -0
  1202. package/vendor/libgit2/fuzzers/corpora/midx/bcbb4cf10018a177dd9a6c642d887e0de3d8e522 +0 -0
  1203. package/vendor/libgit2/fuzzers/corpora/midx/bcfeb114df6d5c6e0c85cbe1081631bc321ff65b +0 -0
  1204. package/vendor/libgit2/fuzzers/corpora/midx/bd582237a9293e2a53d8222722a69e7d215822bf +0 -0
  1205. package/vendor/libgit2/fuzzers/corpora/midx/bdc83a415da40f74825379203538a2e4d27cffa7 +0 -0
  1206. package/vendor/libgit2/fuzzers/corpora/midx/be160536594c87dc07554a71c7d24cd1d718aecc +0 -0
  1207. package/vendor/libgit2/fuzzers/corpora/midx/be8f3c744a23f67fb316a39609ca11ddac025b58 +0 -0
  1208. package/vendor/libgit2/fuzzers/corpora/midx/bf873b027b48f3fd7b727473c832486d99ddb196 +0 -0
  1209. package/vendor/libgit2/fuzzers/corpora/midx/bf8e20ef6b79131ef9bab8c9c1bb7dbecbead6a5 +0 -0
  1210. package/vendor/libgit2/fuzzers/corpora/midx/bf90507b8f7c7eebb89edeaabf6a432d86e7df4a +0 -0
  1211. package/vendor/libgit2/fuzzers/corpora/midx/bfa7a5ce666899fb3e2a7216dbf59886da672658 +0 -0
  1212. package/vendor/libgit2/fuzzers/corpora/midx/bfeaa454d8db33efabba88f146bee6c803369ba0 +0 -0
  1213. package/vendor/libgit2/fuzzers/corpora/midx/c0388910e8d88dcd2e65848ba2cef465caa6b258 +0 -0
  1214. package/vendor/libgit2/fuzzers/corpora/midx/c0db293f75bb44668bcbb79286ebed87df141a85 +0 -0
  1215. package/vendor/libgit2/fuzzers/corpora/midx/c1234da1441255244aba15ecad2a4fa7fd47115e +0 -0
  1216. package/vendor/libgit2/fuzzers/corpora/midx/c2206ac3c289a759ee0e9d0d31cc336f0802f7bc +1 -0
  1217. package/vendor/libgit2/fuzzers/corpora/midx/c22340ab36e5cff088a58272f63cf69e54a1a9f4 +0 -0
  1218. package/vendor/libgit2/fuzzers/corpora/midx/c242c9336c4c22b316e0e56d616b2d45b3318ca4 +0 -0
  1219. package/vendor/libgit2/fuzzers/corpora/midx/c25a51d8dfaf58d5b609729bb156a80e3b0d892f +0 -0
  1220. package/vendor/libgit2/fuzzers/corpora/midx/c3419450240d06982b0d828911b188a903355216 +0 -0
  1221. package/vendor/libgit2/fuzzers/corpora/midx/c36ea7651f76ae817d8d60cae580e47638741372 +0 -0
  1222. package/vendor/libgit2/fuzzers/corpora/midx/c42300c021bfd35702f564e917839503922cbe9a +0 -0
  1223. package/vendor/libgit2/fuzzers/corpora/midx/c45d82ddade99ef857b563e435f2efe89e58b0be +0 -0
  1224. package/vendor/libgit2/fuzzers/corpora/midx/c4d1e9187de1e13353b3beb3c1ab16dd62cda571 +0 -0
  1225. package/vendor/libgit2/fuzzers/corpora/midx/c4e98278a25011c54734494d4534a97489cf4c24 +0 -0
  1226. package/vendor/libgit2/fuzzers/corpora/midx/c4f996ab08f56ce2e9fec7a0428ded510dd6a04a +0 -0
  1227. package/vendor/libgit2/fuzzers/corpora/midx/c544850a7325e7226583895204f99de730525803 +0 -0
  1228. package/vendor/libgit2/fuzzers/corpora/midx/c56629528d5bebdb94f85522caf0f36bbcb19106 +0 -0
  1229. package/vendor/libgit2/fuzzers/corpora/midx/c5c75b58883ccf41b20b140740e2ce763c6086cd +0 -0
  1230. package/vendor/libgit2/fuzzers/corpora/midx/c62da85dca0d4dfb1d7af5d0520eb74993a1e3b0 +0 -0
  1231. package/vendor/libgit2/fuzzers/corpora/midx/c6379aaaecd282b8ed6d0b4291d0d9fdc763160a +0 -0
  1232. package/vendor/libgit2/fuzzers/corpora/midx/c6431921184e3edf4fd3e47384c69654cdac0189 +0 -0
  1233. package/vendor/libgit2/fuzzers/corpora/midx/c6f2ca17c6d313a35676cbacd094eb40fd74b23e +0 -0
  1234. package/vendor/libgit2/fuzzers/corpora/midx/c83e04d58e04fccac37b9dd313eab72011fe8ea1 +0 -0
  1235. package/vendor/libgit2/fuzzers/corpora/midx/c88dc350b98a5c5ae0503683318c1f30443906a8 +1 -0
  1236. package/vendor/libgit2/fuzzers/corpora/midx/c89ee2e9e30a474b5f9532ec61d7aad78377baa0 +0 -0
  1237. package/vendor/libgit2/fuzzers/corpora/midx/c921be4abeb44d1ff07f76f632a16e86526bc4be +0 -0
  1238. package/vendor/libgit2/fuzzers/corpora/midx/c98bdc0431aaece1e8a721aff0ea511cfb8062a6 +0 -0
  1239. package/vendor/libgit2/fuzzers/corpora/midx/c9c456fd3e35a942ef4ab756e04e725cf1f71167 +0 -0
  1240. package/vendor/libgit2/fuzzers/corpora/midx/cd1f1a31b79af77e1e764102942ba7a79dcd24cf +0 -0
  1241. package/vendor/libgit2/fuzzers/corpora/midx/cd57e5904254c2278e9ecf28ed7414d7aed8eef1 +0 -0
  1242. package/vendor/libgit2/fuzzers/corpora/midx/cd665cdc2bd6a26eb68c9af6d1728a7d4f6eb309 +0 -0
  1243. package/vendor/libgit2/fuzzers/corpora/midx/ce72111c4314b22c4c7824bc8ea340ebd6d3fa84 +0 -0
  1244. package/vendor/libgit2/fuzzers/corpora/midx/ceacc7ace2f4be962b0db2eeeea3fe6a00ca9dd6 +0 -0
  1245. package/vendor/libgit2/fuzzers/corpora/midx/cf40769d8b4fcbac1b10ced2e0c3c1294f23fcdd +0 -0
  1246. package/vendor/libgit2/fuzzers/corpora/midx/d120111a77a3e3d1d504a04bbfc5f53effa14eb0 +0 -0
  1247. package/vendor/libgit2/fuzzers/corpora/midx/d1ce81240a32aec2de1b0d779aa29a62c36f291f +0 -0
  1248. package/vendor/libgit2/fuzzers/corpora/midx/d21869b290cd2b448e7b8103dced97e62fefffcc +0 -0
  1249. package/vendor/libgit2/fuzzers/corpora/midx/d2bffcd01e87ce9860007b244ff1e79ecd3d4d0f +0 -0
  1250. package/vendor/libgit2/fuzzers/corpora/midx/d2d668b6e28fca83da5146021879c2b006406fa4 +0 -0
  1251. package/vendor/libgit2/fuzzers/corpora/midx/d37abe0d299b8ad1e90f5b7af302c24f411a7ed1 +0 -0
  1252. package/vendor/libgit2/fuzzers/corpora/midx/d3d689a12ab3808313d5ba0044e8c67ecb4337e4 +0 -0
  1253. package/vendor/libgit2/fuzzers/corpora/midx/d48eb559213edf05aa2850a14194885ae2086ba4 +0 -0
  1254. package/vendor/libgit2/fuzzers/corpora/midx/d490f365693e49ebdeaf658b3f549311a399c6a8 +0 -0
  1255. package/vendor/libgit2/fuzzers/corpora/midx/d54821b652a8611c486bedd8645081d3a4b1c8d1 +0 -0
  1256. package/vendor/libgit2/fuzzers/corpora/midx/d5586a91f9a879e8a67ec7b09a48038909918ad9 +0 -0
  1257. package/vendor/libgit2/fuzzers/corpora/midx/d696362920a2fad8e280293e8d1c92b18c87e4ae +0 -0
  1258. package/vendor/libgit2/fuzzers/corpora/midx/d6b546a2b1bc1c8f80028e4be10c45a06014b32d +0 -0
  1259. package/vendor/libgit2/fuzzers/corpora/midx/d7f04cbca92b2122e0f437ed4dd8fd1782d40f7f +0 -0
  1260. package/vendor/libgit2/fuzzers/corpora/midx/d81944a0c1ed56d11129533d9a3d0d038113d53d +0 -0
  1261. package/vendor/libgit2/fuzzers/corpora/midx/d8524e83ea63c9b365c2e93af75a8100a08b1b69 +0 -0
  1262. package/vendor/libgit2/fuzzers/corpora/midx/d8d9a2d06763cf6feb433cef92a80ef14baab31a +0 -0
  1263. package/vendor/libgit2/fuzzers/corpora/midx/d917fbd641cc40786246387456a636899d56b5a6 +0 -0
  1264. package/vendor/libgit2/fuzzers/corpora/midx/d99f9ec8b504029457185ac03ea8ba21c2611737 +0 -0
  1265. package/vendor/libgit2/fuzzers/corpora/midx/d9c9c90c1bbc55beb81875838e9067c473d0fa92 +0 -0
  1266. package/vendor/libgit2/fuzzers/corpora/midx/d9e908317a6ef08a7528924672836a550d34cb5f +0 -0
  1267. package/vendor/libgit2/fuzzers/corpora/midx/d9ef71deb57fa6f40e027be2c84fa37d288e1cc5 +0 -0
  1268. package/vendor/libgit2/fuzzers/corpora/midx/da8841b9d04382d62d4aeb3fde4dc78466f31543 +0 -0
  1269. package/vendor/libgit2/fuzzers/corpora/midx/db3fbb74c9c9c4185f91eca85f14c3d2c3d9f487 +0 -0
  1270. package/vendor/libgit2/fuzzers/corpora/midx/db7a31de22258d4dc17d44a27d9340946e9c9ee9 +0 -0
  1271. package/vendor/libgit2/fuzzers/corpora/midx/dbbe57fc653930b4ff43f168565ba84ef25f60c2 +0 -0
  1272. package/vendor/libgit2/fuzzers/corpora/midx/dbe74c0d9e7b62c1fd87d5e3ea73ee04f0337154 +0 -0
  1273. package/vendor/libgit2/fuzzers/corpora/midx/dbebf36a6b91568ac059142c3ca3211226da12a8 +0 -0
  1274. package/vendor/libgit2/fuzzers/corpora/midx/ddacbb379242b31a00d62fdff5777dffc1e899c2 +0 -0
  1275. package/vendor/libgit2/fuzzers/corpora/midx/decd2cd9cef352610ac9e5cc461df1829543f9f0 +3 -0
  1276. package/vendor/libgit2/fuzzers/corpora/midx/deeae69363db06972798b296a0c5c99e02cb2b4c +0 -0
  1277. package/vendor/libgit2/fuzzers/corpora/midx/e03e105323e6e7b2af90ad876b5c547af90d8f6b +0 -0
  1278. package/vendor/libgit2/fuzzers/corpora/midx/e3133215848c9cde428338c9d51424c8a81b96f5 +0 -0
  1279. package/vendor/libgit2/fuzzers/corpora/midx/e32a25f0347b0e95d4bea16c27a1f374847683bd +0 -0
  1280. package/vendor/libgit2/fuzzers/corpora/midx/e45ce97522194abcdd7ff9beb931e20b86c97a79 +0 -0
  1281. package/vendor/libgit2/fuzzers/corpora/midx/e484023d50fc1036e46a437053b965c527700d42 +0 -0
  1282. package/vendor/libgit2/fuzzers/corpora/midx/e4e60e77fe3a050940d0afcc7dbab7ef06b04ba3 +0 -0
  1283. package/vendor/libgit2/fuzzers/corpora/midx/e51629784092d9cf811ea1bd894297f062ed7ec4 +0 -0
  1284. package/vendor/libgit2/fuzzers/corpora/midx/e5a7e837029178b3fb6a26d77ea4574ffeaa219d +0 -0
  1285. package/vendor/libgit2/fuzzers/corpora/midx/e5c616e9efdd9c80181f9210d0e3a81c08fe9b4d +0 -0
  1286. package/vendor/libgit2/fuzzers/corpora/midx/e5e6e84e2c7770537c744bcfdbe8303afe39ef92 +0 -0
  1287. package/vendor/libgit2/fuzzers/corpora/midx/e5fb20928feec1ee3114597317edc0e06c413749 +0 -0
  1288. package/vendor/libgit2/fuzzers/corpora/midx/e789319791fe704e5a8ffd7cb570c8d2722ac35f +0 -0
  1289. package/vendor/libgit2/fuzzers/corpora/midx/e9fdb9f08f225b4231f01dda9c7b61e7b78bf7d3 +0 -0
  1290. package/vendor/libgit2/fuzzers/corpora/midx/ea6780324dca9a06db28598dfb590436d846d99f +0 -0
  1291. package/vendor/libgit2/fuzzers/corpora/midx/ea6afcc92b8a6c9e14cc053d351909ad5b0a3fdf +0 -0
  1292. package/vendor/libgit2/fuzzers/corpora/midx/ea8c569029c0cacc4ae75e95b2f4e84abb6867f4 +0 -0
  1293. package/vendor/libgit2/fuzzers/corpora/midx/eb3e80c3ea9cfe9e08b2eef117aaa522a51a619c +0 -0
  1294. package/vendor/libgit2/fuzzers/corpora/midx/ec55b30741fe8fffeec584176c8d20f6a679cfa1 +0 -0
  1295. package/vendor/libgit2/fuzzers/corpora/midx/ed0724a6c3804a3ab20a980b5ca48671689a602f +0 -0
  1296. package/vendor/libgit2/fuzzers/corpora/midx/edeb545d1cf852dc9582fa764010fe844a5e3515 +0 -0
  1297. package/vendor/libgit2/fuzzers/corpora/midx/ee70b920de91f1be6b4448070ee2d1bd9e08286d +0 -0
  1298. package/vendor/libgit2/fuzzers/corpora/midx/ef004af4e947d25b4d1d1dd16502260d4c7a99cd +0 -0
  1299. package/vendor/libgit2/fuzzers/corpora/midx/f009d226503b73aed0f1fd952ef8725433d158be +0 -0
  1300. package/vendor/libgit2/fuzzers/corpora/midx/f0a821dffe21afd357932febaf6e8ee331f53197 +0 -0
  1301. package/vendor/libgit2/fuzzers/corpora/midx/f101a2fe93dfaaed1c596022b4e509cf3a591c8a +0 -0
  1302. package/vendor/libgit2/fuzzers/corpora/midx/f1101f71657385174f8cb920026a761404b4395d +0 -0
  1303. package/vendor/libgit2/fuzzers/corpora/midx/f138c84e42d3cc61a219c4be9db791750f0541c8 +1 -0
  1304. package/vendor/libgit2/fuzzers/corpora/midx/f1da273522bfff4a4971b4ffc31e365f60fdbbfe +0 -0
  1305. package/vendor/libgit2/fuzzers/corpora/midx/f2fe69d30ec47e78a9e92f1423698a52270672b2 +0 -0
  1306. package/vendor/libgit2/fuzzers/corpora/midx/f368bb6f633587a7bb271de7e20695f178c89686 +0 -0
  1307. package/vendor/libgit2/fuzzers/corpora/midx/f38ced5a16edaceb5f527ebc35e7870f42586c90 +0 -0
  1308. package/vendor/libgit2/fuzzers/corpora/midx/f404371362ae68ffb2837ce1766346ebb645d173 +0 -0
  1309. package/vendor/libgit2/fuzzers/corpora/midx/f473b5e1cf51502345f5c1840ec3948d308dd314 +0 -0
  1310. package/vendor/libgit2/fuzzers/corpora/midx/f4ad43d6f913c3be6243dfc439e4b6f5b2e814b9 +0 -0
  1311. package/vendor/libgit2/fuzzers/corpora/midx/f4cde4083a974d755a38bf5ea3820f78b576754a +0 -0
  1312. package/vendor/libgit2/fuzzers/corpora/midx/f5888d0dcacda196d73772aabc18fe2ad6e1dfa2 +0 -0
  1313. package/vendor/libgit2/fuzzers/corpora/midx/f5c3577a62d401f071d5edaa77c54ae98d6a0318 +1 -0
  1314. package/vendor/libgit2/fuzzers/corpora/midx/f5dee0d9da0d6950069ac36b1880090a20f50f3e +0 -0
  1315. package/vendor/libgit2/fuzzers/corpora/midx/f605fff495fef2719585c706c05c350812402a35 +0 -0
  1316. package/vendor/libgit2/fuzzers/corpora/midx/f6fdaf4e77e29c780b9e0b91637777575bebfab4 +0 -0
  1317. package/vendor/libgit2/fuzzers/corpora/midx/f72700bd65fa86c588607ec50d60a9c684c86f43 +0 -0
  1318. package/vendor/libgit2/fuzzers/corpora/midx/f777db12ef18f002febd5af13e2b948c95d964c3 +0 -0
  1319. package/vendor/libgit2/fuzzers/corpora/midx/f777e9274d508e7ac1069e2a04bedc042942491c +0 -0
  1320. package/vendor/libgit2/fuzzers/corpora/midx/f81306f8ceaec3d06d5d34afa9769d15f0d209eb +0 -0
  1321. package/vendor/libgit2/fuzzers/corpora/midx/f84c2b36689f22809d9bda00febab557c381ffa4 +0 -0
  1322. package/vendor/libgit2/fuzzers/corpora/midx/f98168fa74c26b17ad0c3002f2263beb0af7c0ce +0 -0
  1323. package/vendor/libgit2/fuzzers/corpora/midx/fa6759d6a2807bbad83ba21761772c0119122c35 +0 -0
  1324. package/vendor/libgit2/fuzzers/corpora/midx/fa8b927b25a67fa3d60b12c53ac365366cc2b52d +0 -0
  1325. package/vendor/libgit2/fuzzers/corpora/midx/fc5e4b78e59daebed1118389b57a386981f2430e +0 -0
  1326. package/vendor/libgit2/fuzzers/corpora/midx/fdaf408880429153cfcf5d978727cd7b84c3d60e +0 -0
  1327. package/vendor/libgit2/fuzzers/corpora/midx/fe50e7564a28683b24c57f8bcdcb3fbfa61f5c6a +0 -0
  1328. package/vendor/libgit2/fuzzers/corpora/midx/fe64b998872d3ad87df2019173ddc52686841d7d +0 -0
  1329. package/vendor/libgit2/fuzzers/corpora/midx/fec56c7cc86871aaa9c7a947c4084307cac2778d +0 -0
  1330. package/vendor/libgit2/fuzzers/corpora/midx/ff164dfc56dd28709488130dc6dfc17406bf9e9d +0 -0
  1331. package/vendor/libgit2/fuzzers/corpora/midx/ff7035b3c055718728a6025b3cdf55c34c4c744b +0 -0
  1332. package/vendor/libgit2/fuzzers/midx_fuzzer.c +76 -0
  1333. package/vendor/libgit2/git.git-authors +2 -2
  1334. package/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  1335. package/vendor/libgit2/include/git2/blob.h +18 -2
  1336. package/vendor/libgit2/include/git2/branch.h +12 -0
  1337. package/vendor/libgit2/include/git2/cert.h +41 -5
  1338. package/vendor/libgit2/include/git2/config.h +1 -1
  1339. package/vendor/libgit2/include/git2/deprecated.h +102 -8
  1340. package/vendor/libgit2/include/git2/index.h +1 -1
  1341. package/vendor/libgit2/include/git2/patch.h +8 -0
  1342. package/vendor/libgit2/include/git2/refs.h +6 -5
  1343. package/vendor/libgit2/include/git2/remote.h +3 -2
  1344. package/vendor/libgit2/include/git2/repository.h +95 -52
  1345. package/vendor/libgit2/include/git2/revparse.h +5 -5
  1346. package/vendor/libgit2/include/git2/tag.h +12 -0
  1347. package/vendor/libgit2/include/git2/transport.h +1 -1
  1348. package/vendor/libgit2/include/git2/tree.h +0 -14
  1349. package/vendor/libgit2/include/git2/version.h +3 -3
  1350. package/vendor/libgit2/package.json +1 -1
  1351. package/vendor/libgit2/script/thread-sanitizer.supp +26 -0
  1352. package/vendor/libgit2/src/CMakeLists.txt +13 -2
  1353. package/vendor/libgit2/src/alloc.c +21 -8
  1354. package/vendor/libgit2/src/allocators/failalloc.c +92 -0
  1355. package/vendor/libgit2/src/allocators/failalloc.h +23 -0
  1356. package/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  1357. package/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  1358. package/vendor/libgit2/src/annotated_commit.c +21 -9
  1359. package/vendor/libgit2/src/apply.c +16 -7
  1360. package/vendor/libgit2/src/attr.c +12 -3
  1361. package/vendor/libgit2/src/attr_file.c +8 -5
  1362. package/vendor/libgit2/src/attrcache.c +5 -5
  1363. package/vendor/libgit2/src/blame.c +26 -15
  1364. package/vendor/libgit2/src/blob.c +32 -12
  1365. package/vendor/libgit2/src/branch.c +57 -15
  1366. package/vendor/libgit2/src/buf_text.c +2 -2
  1367. package/vendor/libgit2/src/buffer.c +25 -14
  1368. package/vendor/libgit2/src/buffer.h +2 -2
  1369. package/vendor/libgit2/src/cache.c +3 -3
  1370. package/vendor/libgit2/src/cache.h +7 -7
  1371. package/vendor/libgit2/src/cc-compat.h +1 -1
  1372. package/vendor/libgit2/src/checkout.c +66 -63
  1373. package/vendor/libgit2/src/cherrypick.c +6 -2
  1374. package/vendor/libgit2/src/clone.c +109 -25
  1375. package/vendor/libgit2/src/commit.c +41 -28
  1376. package/vendor/libgit2/src/commit_graph.c +470 -0
  1377. package/vendor/libgit2/src/commit_graph.h +116 -0
  1378. package/vendor/libgit2/src/common.h +4 -2
  1379. package/vendor/libgit2/src/config.c +38 -19
  1380. package/vendor/libgit2/src/config_cache.c +8 -4
  1381. package/vendor/libgit2/src/config_file.c +2 -2
  1382. package/vendor/libgit2/src/config_parse.c +2 -2
  1383. package/vendor/libgit2/src/custom_tls.c +4 -4
  1384. package/vendor/libgit2/src/date.c +2 -1
  1385. package/vendor/libgit2/src/delta.c +1 -1
  1386. package/vendor/libgit2/src/describe.c +7 -4
  1387. package/vendor/libgit2/src/diff.c +11 -8
  1388. package/vendor/libgit2/src/diff_driver.c +2 -2
  1389. package/vendor/libgit2/src/diff_generate.c +45 -15
  1390. package/vendor/libgit2/src/diff_print.c +19 -6
  1391. package/vendor/libgit2/src/diff_stats.c +13 -10
  1392. package/vendor/libgit2/src/diff_tform.c +7 -6
  1393. package/vendor/libgit2/src/errors.c +24 -14
  1394. package/vendor/libgit2/src/features.h.in +1 -1
  1395. package/vendor/libgit2/src/fetch.c +5 -2
  1396. package/vendor/libgit2/src/fetchhead.c +8 -4
  1397. package/vendor/libgit2/src/filebuf.c +9 -7
  1398. package/vendor/libgit2/src/filter.c +31 -25
  1399. package/vendor/libgit2/src/futils.c +5 -5
  1400. package/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  1401. package/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  1402. package/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  1403. package/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  1404. package/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  1405. package/vendor/libgit2/src/hash.c +11 -8
  1406. package/vendor/libgit2/src/hashsig.c +20 -9
  1407. package/vendor/libgit2/src/ignore.c +6 -2
  1408. package/vendor/libgit2/src/index.c +109 -72
  1409. package/vendor/libgit2/src/index.h +1 -1
  1410. package/vendor/libgit2/src/indexer.c +50 -32
  1411. package/vendor/libgit2/src/integer.h +77 -0
  1412. package/vendor/libgit2/src/iterator.c +28 -20
  1413. package/vendor/libgit2/src/iterator.h +1 -1
  1414. package/vendor/libgit2/src/{settings.c → libgit2.c} +116 -46
  1415. package/vendor/libgit2/src/libgit2.h +15 -0
  1416. package/vendor/libgit2/src/mailmap.c +19 -10
  1417. package/vendor/libgit2/src/map.h +3 -3
  1418. package/vendor/libgit2/src/merge.c +53 -21
  1419. package/vendor/libgit2/src/merge_driver.c +19 -13
  1420. package/vendor/libgit2/src/merge_file.c +11 -3
  1421. package/vendor/libgit2/src/message.c +3 -1
  1422. package/vendor/libgit2/src/midx.c +477 -0
  1423. package/vendor/libgit2/src/midx.h +94 -0
  1424. package/vendor/libgit2/src/mwindow.c +110 -61
  1425. package/vendor/libgit2/src/mwindow.h +3 -3
  1426. package/vendor/libgit2/src/net.c +15 -4
  1427. package/vendor/libgit2/src/net.h +5 -2
  1428. package/vendor/libgit2/src/netops.c +6 -4
  1429. package/vendor/libgit2/src/netops.h +1 -1
  1430. package/vendor/libgit2/src/notes.c +10 -10
  1431. package/vendor/libgit2/src/object.c +22 -14
  1432. package/vendor/libgit2/src/odb.c +197 -40
  1433. package/vendor/libgit2/src/odb.h +1 -0
  1434. package/vendor/libgit2/src/odb_loose.c +28 -18
  1435. package/vendor/libgit2/src/odb_mempack.c +1 -1
  1436. package/vendor/libgit2/src/odb_pack.c +317 -114
  1437. package/vendor/libgit2/src/oid.c +5 -4
  1438. package/vendor/libgit2/src/pack-objects.c +36 -36
  1439. package/vendor/libgit2/src/pack.c +272 -132
  1440. package/vendor/libgit2/src/pack.h +19 -7
  1441. package/vendor/libgit2/src/patch.c +14 -7
  1442. package/vendor/libgit2/src/patch_generate.c +3 -5
  1443. package/vendor/libgit2/src/patch_parse.c +4 -2
  1444. package/vendor/libgit2/src/path.c +44 -43
  1445. package/vendor/libgit2/src/path.h +0 -2
  1446. package/vendor/libgit2/src/pathspec.c +6 -5
  1447. package/vendor/libgit2/src/pool.c +28 -20
  1448. package/vendor/libgit2/src/pool.h +8 -0
  1449. package/vendor/libgit2/src/posix.c +36 -12
  1450. package/vendor/libgit2/src/posix.h +9 -0
  1451. package/vendor/libgit2/src/reader.c +9 -4
  1452. package/vendor/libgit2/src/rebase.c +26 -18
  1453. package/vendor/libgit2/src/refdb.c +30 -13
  1454. package/vendor/libgit2/src/refdb_fs.c +59 -33
  1455. package/vendor/libgit2/src/reflog.c +19 -14
  1456. package/vendor/libgit2/src/refs.c +92 -44
  1457. package/vendor/libgit2/src/refs.h +1 -2
  1458. package/vendor/libgit2/src/refspec.c +80 -44
  1459. package/vendor/libgit2/src/remote.c +137 -72
  1460. package/vendor/libgit2/src/repository.c +170 -92
  1461. package/vendor/libgit2/src/repository.h +8 -2
  1462. package/vendor/libgit2/src/reset.c +7 -6
  1463. package/vendor/libgit2/src/revert.c +6 -2
  1464. package/vendor/libgit2/src/revparse.c +14 -9
  1465. package/vendor/libgit2/src/revwalk.c +32 -15
  1466. package/vendor/libgit2/src/runtime.c +162 -0
  1467. package/vendor/libgit2/src/runtime.h +62 -0
  1468. package/vendor/libgit2/src/settings.h +11 -0
  1469. package/vendor/libgit2/src/signature.c +6 -5
  1470. package/vendor/libgit2/src/sortedcache.h +1 -1
  1471. package/vendor/libgit2/src/stash.c +3 -1
  1472. package/vendor/libgit2/src/status.c +7 -4
  1473. package/vendor/libgit2/src/strarray.c +2 -1
  1474. package/vendor/libgit2/src/streams/mbedtls.c +8 -8
  1475. package/vendor/libgit2/src/streams/openssl.c +13 -10
  1476. package/vendor/libgit2/src/streams/registry.c +5 -6
  1477. package/vendor/libgit2/src/streams/socket.c +6 -2
  1478. package/vendor/libgit2/src/streams/stransport.c +6 -3
  1479. package/vendor/libgit2/src/streams/tls.c +5 -3
  1480. package/vendor/libgit2/src/submodule.c +89 -33
  1481. package/vendor/libgit2/src/submodule.h +9 -9
  1482. package/vendor/libgit2/src/sysdir.c +8 -7
  1483. package/vendor/libgit2/src/tag.c +47 -11
  1484. package/vendor/libgit2/src/thread.c +140 -0
  1485. package/vendor/libgit2/src/thread.h +422 -0
  1486. package/vendor/libgit2/src/threadstate.c +83 -0
  1487. package/vendor/libgit2/src/threadstate.h +24 -0
  1488. package/vendor/libgit2/src/trace.c +2 -2
  1489. package/vendor/libgit2/src/transaction.c +19 -8
  1490. package/vendor/libgit2/src/transport.c +3 -3
  1491. package/vendor/libgit2/src/transports/auth_negotiate.c +10 -3
  1492. package/vendor/libgit2/src/transports/auth_ntlm.c +8 -4
  1493. package/vendor/libgit2/src/transports/credential.c +15 -7
  1494. package/vendor/libgit2/src/transports/git.c +1 -3
  1495. package/vendor/libgit2/src/transports/http.c +6 -6
  1496. package/vendor/libgit2/src/transports/http.h +1 -0
  1497. package/vendor/libgit2/src/transports/httpclient.c +59 -34
  1498. package/vendor/libgit2/src/transports/local.c +3 -3
  1499. package/vendor/libgit2/src/transports/smart.c +10 -7
  1500. package/vendor/libgit2/src/transports/smart.h +1 -1
  1501. package/vendor/libgit2/src/transports/smart_protocol.c +9 -4
  1502. package/vendor/libgit2/src/transports/ssh.c +47 -13
  1503. package/vendor/libgit2/src/transports/winhttp.c +98 -58
  1504. package/vendor/libgit2/src/tree.c +97 -75
  1505. package/vendor/libgit2/src/tree.h +1 -0
  1506. package/vendor/libgit2/src/tsort.c +0 -2
  1507. package/vendor/libgit2/src/unix/map.c +3 -1
  1508. package/vendor/libgit2/src/unix/posix.h +16 -1
  1509. package/vendor/libgit2/src/unix/pthread.c +27 -6
  1510. package/vendor/libgit2/src/unix/pthread.h +2 -2
  1511. package/vendor/libgit2/src/util.c +53 -12
  1512. package/vendor/libgit2/src/util.h +11 -7
  1513. package/vendor/libgit2/src/vector.c +23 -19
  1514. package/vendor/libgit2/src/win32/findfile.c +4 -2
  1515. package/vendor/libgit2/src/win32/map.c +1 -1
  1516. package/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  1517. package/vendor/libgit2/src/win32/path_w32.c +6 -8
  1518. package/vendor/libgit2/src/win32/posix_w32.c +70 -1
  1519. package/vendor/libgit2/src/win32/precompiled.h +0 -1
  1520. package/vendor/libgit2/src/win32/thread.c +27 -18
  1521. package/vendor/libgit2/src/win32/thread.h +1 -1
  1522. package/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  1523. package/vendor/libgit2/src/win32/w32_leakcheck.c +576 -0
  1524. package/vendor/libgit2/src/win32/w32_leakcheck.h +220 -0
  1525. package/vendor/libgit2/src/worktree.c +27 -12
  1526. package/vendor/libgit2/src/zstream.c +1 -1
  1527. package/vendor/libgit2/tests/clar/fs.h +3 -3
  1528. package/vendor/libgit2/tests/clar/sandbox.h +7 -4
  1529. package/vendor/libgit2/tests/clar_libgit2.c +4 -3
  1530. package/vendor/libgit2/tests/clar_libgit2_trace.c +2 -2
  1531. package/vendor/libgit2/tests/clone/empty.c +17 -0
  1532. package/vendor/libgit2/tests/clone/nonetwork.c +8 -0
  1533. package/vendor/libgit2/tests/config/read.c +76 -0
  1534. package/vendor/libgit2/tests/config/stress.c +5 -0
  1535. package/vendor/libgit2/tests/core/integer.c +253 -0
  1536. package/vendor/libgit2/tests/core/path.c +1 -27
  1537. package/vendor/libgit2/tests/core/strtol.c +2 -0
  1538. package/vendor/libgit2/tests/core/structinit.c +5 -0
  1539. package/vendor/libgit2/tests/core/useragent.c +1 -1
  1540. package/vendor/libgit2/tests/diff/format_email.c +1 -2
  1541. package/vendor/libgit2/tests/diff/parse.c +23 -0
  1542. package/vendor/libgit2/tests/diff/stats.c +36 -2
  1543. package/vendor/libgit2/tests/fetchhead/nonetwork.c +29 -0
  1544. package/vendor/libgit2/tests/filter/bare.c +1 -1
  1545. package/vendor/libgit2/tests/graph/commit_graph.c +90 -0
  1546. package/vendor/libgit2/tests/network/refspecs.c +1 -1
  1547. package/vendor/libgit2/tests/network/remote/isvalidname.c +15 -8
  1548. package/vendor/libgit2/tests/network/urlparse.c +401 -12
  1549. package/vendor/libgit2/tests/online/badssl.c +2 -7
  1550. package/vendor/libgit2/tests/online/clone.c +28 -1
  1551. package/vendor/libgit2/tests/online/push_util.c +3 -1
  1552. package/vendor/libgit2/tests/pack/filelimit.c +1 -1
  1553. package/vendor/libgit2/tests/pack/midx.c +46 -0
  1554. package/vendor/libgit2/tests/pack/threadsafety.c +62 -0
  1555. package/vendor/libgit2/tests/refs/branches/name.c +17 -0
  1556. package/vendor/libgit2/tests/refs/isvalidname.c +29 -22
  1557. package/vendor/libgit2/tests/refs/revparse.c +13 -13
  1558. package/vendor/libgit2/tests/refs/tags/name.c +17 -0
  1559. package/vendor/libgit2/tests/repo/getters.c +13 -0
  1560. package/vendor/libgit2/tests/repo/init.c +120 -81
  1561. package/vendor/libgit2/tests/resources/config/config12 +10 -0
  1562. package/vendor/libgit2/tests/resources/describe/.gitted/refs/tags/A +1 -0
  1563. package/vendor/libgit2/tests/resources/describe/.gitted/refs/tags/B +1 -0
  1564. package/vendor/libgit2/tests/resources/describe/.gitted/refs/tags/D +1 -0
  1565. package/vendor/libgit2/tests/resources/describe/.gitted/refs/tags/R +1 -0
  1566. package/vendor/libgit2/tests/resources/describe/.gitted/refs/tags/c +1 -0
  1567. package/vendor/libgit2/tests/resources/describe/.gitted/refs/tags/e +1 -0
  1568. package/vendor/libgit2/tests/resources/empty_bare.git/refs/tags/dummy-marker.txt +0 -0
  1569. package/vendor/libgit2/tests/resources/empty_standard_repo/.gitted/refs/tags/dummy-marker.txt +0 -0
  1570. package/vendor/libgit2/tests/resources/merge-recursive/.gitted/objects/info/commit-graph +0 -0
  1571. package/vendor/libgit2/tests/resources/push_src/.gitted/refs/tags/tag-blob +1 -0
  1572. package/vendor/libgit2/tests/resources/push_src/.gitted/refs/tags/tag-commit +1 -0
  1573. package/vendor/libgit2/tests/resources/push_src/.gitted/refs/tags/tag-commit-two +1 -0
  1574. package/vendor/libgit2/tests/resources/push_src/.gitted/refs/tags/tag-lightweight +1 -0
  1575. package/vendor/libgit2/tests/resources/push_src/.gitted/refs/tags/tag-tag +1 -0
  1576. package/vendor/libgit2/tests/resources/push_src/.gitted/refs/tags/tag-tree +1 -0
  1577. package/vendor/libgit2/tests/resources/testrepo/.gitted/refs/tags/e90810b +1 -0
  1578. package/vendor/libgit2/tests/resources/testrepo/.gitted/refs/tags/foo/bar +1 -0
  1579. package/vendor/libgit2/tests/resources/testrepo/.gitted/refs/tags/foo/foo/bar +1 -0
  1580. package/vendor/libgit2/tests/resources/testrepo/.gitted/refs/tags/point_to_blob +1 -0
  1581. package/vendor/libgit2/tests/resources/testrepo/.gitted/refs/tags/test +1 -0
  1582. package/vendor/libgit2/tests/resources/testrepo.git/objects/info/commit-graph +0 -0
  1583. package/vendor/libgit2/tests/resources/testrepo.git/objects/pack/multi-pack-index +0 -0
  1584. package/vendor/libgit2/tests/resources/testrepo.git/refs/tags/annotated_tag_to_blob +1 -0
  1585. package/vendor/libgit2/tests/resources/testrepo.git/refs/tags/e90810b +1 -0
  1586. package/vendor/libgit2/tests/resources/testrepo.git/refs/tags/hard_tag +1 -0
  1587. package/vendor/libgit2/tests/resources/testrepo.git/refs/tags/point_to_blob +1 -0
  1588. package/vendor/libgit2/tests/resources/testrepo.git/refs/tags/taggerless +1 -0
  1589. package/vendor/libgit2/tests/resources/testrepo.git/refs/tags/test +1 -0
  1590. package/vendor/libgit2/tests/resources/testrepo.git/refs/tags/wrapped_tag +1 -0
  1591. package/vendor/libgit2/tests/threads/basic.c +7 -1
  1592. package/vendor/libgit2/tests/threads/diff.c +9 -9
  1593. package/vendor/libgit2/tests/threads/thread_helpers.h +1 -1
  1594. package/vendor/libgit2/tests/threads/tlsdata.c +65 -0
  1595. package/vendor/libgit2/tests/trace/windows/stacktrace.c +53 -53
  1596. package/vendor/libgit2/tests/worktree/worktree.c +12 -0
  1597. package/vendor/libgit2.gyp +35 -18
  1598. package/vendor/libssh2/CMakeLists.txt +8 -0
  1599. package/vendor/libssh2/COPYING +3 -1
  1600. package/vendor/libssh2/Makefile.am +5 -3
  1601. package/vendor/libssh2/Makefile.in +29 -15
  1602. package/vendor/libssh2/Makefile.inc +2 -2
  1603. package/vendor/libssh2/NEWS +1376 -486
  1604. package/vendor/libssh2/RELEASE-NOTES +56 -38
  1605. package/vendor/libssh2/acinclude.m4 +1 -0
  1606. package/vendor/libssh2/aclocal.m4 +44 -33
  1607. package/vendor/libssh2/compile +3 -3
  1608. package/vendor/libssh2/configure +9704 -4102
  1609. package/vendor/libssh2/configure.ac +20 -8
  1610. package/vendor/libssh2/depcomp +1 -1
  1611. package/vendor/libssh2/docs/{HACKING.CRYPTO → HACKING-CRYPTO} +312 -49
  1612. package/vendor/libssh2/docs/INSTALL_AUTOTOOLS +2 -2
  1613. package/vendor/libssh2/docs/Makefile.am +2 -2
  1614. package/vendor/libssh2/docs/Makefile.in +14 -7
  1615. package/vendor/libssh2/docs/libssh2_session_callback_set.3 +36 -4
  1616. package/vendor/libssh2/example/CMakeLists.txt +1 -0
  1617. package/vendor/libssh2/example/Makefile.am +3 -3
  1618. package/vendor/libssh2/example/Makefile.in +49 -42
  1619. package/vendor/libssh2/example/ssh2_agent_forwarding.c +292 -0
  1620. package/vendor/libssh2/include/libssh2.h +18 -13
  1621. package/vendor/libssh2/include/libssh2_sftp.h +26 -26
  1622. package/vendor/libssh2/install-sh +92 -69
  1623. package/vendor/libssh2/ltmain.sh +6 -4
  1624. package/vendor/libssh2/m4/libtool.m4 +5 -5
  1625. package/vendor/libssh2/missing +1 -1
  1626. package/vendor/libssh2/src/CMakeLists.txt +8 -2
  1627. package/vendor/libssh2/src/Makefile.in +25 -17
  1628. package/vendor/libssh2/src/agent.c +60 -63
  1629. package/vendor/libssh2/src/agent.h +112 -0
  1630. package/vendor/libssh2/src/agent_win.c +361 -0
  1631. package/vendor/libssh2/src/bcrypt_pbkdf.c +3 -3
  1632. package/vendor/libssh2/src/blf.h +3 -4
  1633. package/vendor/libssh2/src/channel.c +158 -1
  1634. package/vendor/libssh2/src/comp.c +2 -1
  1635. package/vendor/libssh2/src/comp.h +0 -1
  1636. package/vendor/libssh2/src/crypto.h +6 -6
  1637. package/vendor/libssh2/src/global.c +2 -1
  1638. package/vendor/libssh2/src/hostkey.c +41 -2
  1639. package/vendor/libssh2/src/kex.c +691 -974
  1640. package/vendor/libssh2/src/knownhost.c +2 -2
  1641. package/vendor/libssh2/src/libgcrypt.h +4 -1
  1642. package/vendor/libssh2/src/libssh2_config.h.in +6 -18
  1643. package/vendor/libssh2/src/libssh2_priv.h +17 -6
  1644. package/vendor/libssh2/src/mac.h +0 -1
  1645. package/vendor/libssh2/src/mbedtls.c +520 -2
  1646. package/vendor/libssh2/src/mbedtls.h +146 -7
  1647. package/vendor/libssh2/src/misc.c +14 -16
  1648. package/vendor/libssh2/src/openssl.c +227 -181
  1649. package/vendor/libssh2/src/openssl.h +9 -22
  1650. package/vendor/libssh2/src/packet.c +98 -38
  1651. package/vendor/libssh2/src/packet.h +3 -3
  1652. package/vendor/libssh2/src/pem.c +20 -11
  1653. package/vendor/libssh2/src/scp.c +3 -3
  1654. package/vendor/libssh2/src/session.c +2 -2
  1655. package/vendor/libssh2/src/session.h +3 -3
  1656. package/vendor/libssh2/src/sftp.c +1 -1
  1657. package/vendor/libssh2/src/sftp.h +3 -3
  1658. package/vendor/libssh2/src/transport.c +11 -4
  1659. package/vendor/libssh2/src/transport.h +0 -1
  1660. package/vendor/libssh2/src/userauth.c +24 -22
  1661. package/vendor/libssh2/src/userauth.h +3 -3
  1662. package/vendor/libssh2/src/wincng.c +485 -60
  1663. package/vendor/libssh2/src/wincng.h +33 -5
  1664. package/vendor/libssh2/test-driver +6 -4
  1665. package/vendor/libssh2/tests/CMakeLists.txt +4 -1
  1666. package/vendor/libssh2/tests/Makefile.am +60 -23
  1667. package/vendor/libssh2/tests/Makefile.in +223 -65
  1668. package/vendor/libssh2/tests/key_ecdsa +10 -0
  1669. package/vendor/libssh2/tests/key_ecdsa.pub +1 -0
  1670. package/vendor/libssh2/tests/key_ed25519 +7 -0
  1671. package/vendor/libssh2/tests/key_ed25519.pub +1 -0
  1672. package/vendor/libssh2/tests/key_ed25519_encrypted +8 -0
  1673. package/vendor/libssh2/tests/key_ed25519_encrypted.pub +1 -0
  1674. package/vendor/libssh2/tests/key_rsa_encrypted +30 -0
  1675. package/vendor/libssh2/tests/key_rsa_encrypted.pub +1 -0
  1676. package/vendor/libssh2/tests/key_rsa_openssh +27 -0
  1677. package/vendor/libssh2/tests/key_rsa_openssh.pub +1 -0
  1678. package/vendor/libssh2/tests/openssh_fixture.c +141 -46
  1679. package/vendor/libssh2/tests/openssh_server/Dockerfile +9 -0
  1680. package/vendor/libssh2/tests/openssh_server/authorized_keys +1 -0
  1681. package/vendor/libssh2/tests/openssh_server/ca_ecdsa +12 -0
  1682. package/vendor/libssh2/tests/openssh_server/ca_ecdsa.pub +1 -0
  1683. package/vendor/libssh2/tests/openssh_server/ssh_host_ecdsa_key +5 -0
  1684. package/vendor/libssh2/tests/openssh_server/ssh_host_ed25519_key +7 -0
  1685. package/vendor/libssh2/tests/ossfuzz/Makefile.am +32 -0
  1686. package/vendor/libssh2/tests/ossfuzz/Makefile.in +731 -0
  1687. package/vendor/libssh2/tests/ossfuzz/ssh2_client_fuzzer.cc +90 -0
  1688. package/vendor/libssh2/tests/ossfuzz/standaloneengine.cc +74 -0
  1689. package/vendor/libssh2/tests/ossfuzz/testinput.h +3 -0
  1690. package/vendor/libssh2/tests/ssh2.c +9 -5
  1691. package/vendor/libssh2/tests/test_agent_forward_succeeds.c +51 -0
  1692. package/vendor/libssh2/tests/test_hostkey.c +5 -3
  1693. package/vendor/libssh2/tests/test_hostkey_hash.c +32 -19
  1694. package/vendor/libssh2/tests/test_keyboard_interactive_auth_fails_with_wrong_response.c +3 -3
  1695. package/vendor/libssh2/tests/test_keyboard_interactive_auth_succeeds_with_correct_response.c +5 -4
  1696. package/vendor/libssh2/tests/test_password_auth_fails_with_wrong_password.c +1 -1
  1697. package/vendor/libssh2/tests/test_password_auth_fails_with_wrong_username.c +2 -1
  1698. package/vendor/libssh2/tests/test_password_auth_succeeds_with_correct_credentials.c +3 -2
  1699. package/vendor/libssh2/tests/test_public_key_auth_fails_with_wrong_key.c +1 -1
  1700. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_dsa_key.c +3 -2
  1701. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_ecdsa_key.c +38 -0
  1702. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_ed25519_key.c +38 -0
  1703. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_ed25519_key_from_mem.c +98 -0
  1704. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_encrypted_ed25519_key.c +39 -0
  1705. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_encrypted_rsa_key.c +3 -2
  1706. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_rsa_key.c +3 -2
  1707. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_rsa_openssh_key.c +3 -2
  1708. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_signed_ecdsa_key.c +38 -0
  1709. package/vendor/libssh2/vms/libssh2_make_help.dcl +12 -12
  1710. package/vendor/libssh2/win32/libssh2.dsp +8 -0
  1711. package/CHANGELOG.md +0 -3415
  1712. package/HISTORY.md +0 -9
  1713. package/dist/blame.js +0 -22
  1714. package/dist/checkout.js +0 -53
  1715. package/dist/cherrypick.js +0 -62
  1716. package/dist/clone.js +0 -35
  1717. package/dist/status_list.js +0 -14
  1718. package/dist/utils/normalize_fetch_options.js +0 -43
  1719. package/dist/utils/normalize_options.js +0 -31
  1720. package/gibberish/.git/hooks/README.sample +0 -5
  1721. package/include/async_libgit2_queue_worker.h +0 -33
  1722. package/vendor/libgit2/azure-pipelines/bash.yml +0 -17
  1723. package/vendor/libgit2/azure-pipelines/coverity.yml +0 -26
  1724. package/vendor/libgit2/azure-pipelines/docker.yml +0 -51
  1725. package/vendor/libgit2/azure-pipelines/nightly.yml +0 -232
  1726. package/vendor/libgit2/azure-pipelines.yml +0 -203
  1727. package/vendor/libgit2/docs/changelog.md +0 -1627
  1728. package/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  1729. package/vendor/libgit2/src/global.c +0 -357
  1730. package/vendor/libgit2/src/global.h +0 -41
  1731. package/vendor/libgit2/src/thread-utils.c +0 -263
  1732. package/vendor/libgit2/src/thread-utils.h +0 -294
  1733. package/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +0 -345
  1734. package/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  1735. package/vendor/libgit2/src/win32/w32_stack.c +0 -188
  1736. package/vendor/libgit2/src/win32/w32_stack.h +0 -140
  1737. package/vendor/libssh2/buildconf +0 -22
  1738. package/vendor/libssh2/docs/INSTALL_CMAKE +0 -179
package/src/remote.cc CHANGED
@@ -12,7 +12,6 @@ extern "C" {
12
12
  #include "../include/functions/copy.h"
13
13
  #include "../include/remote.h"
14
14
  #include "nodegit_wrapper.cc"
15
- #include "../include/async_libgit2_queue_worker.h"
16
15
 
17
16
  #include "../include/str_array_converter.h"
18
17
  #include "../include/remote_head.h"
@@ -37,61 +36,63 @@ using namespace node;
37
36
  // this will cause an error if you have a non-self-freeing object that also needs
38
37
  // to save values. Since the object that will eventually free the object has no
39
38
  // way of knowing to free these values.
40
- }
39
+ }
41
40
 
42
- void GitRemote::InitializeComponent(v8::Local<v8::Object> target) {
41
+ void GitRemote::InitializeComponent(v8::Local<v8::Object> target, nodegit::Context *nodegitContext) {
43
42
  Nan::HandleScope scope;
44
43
 
45
- v8::Local<FunctionTemplate> tpl = Nan::New<FunctionTemplate>(JSNewFunction);
44
+ v8::Local<v8::External> nodegitExternal = Nan::New<v8::External>(nodegitContext);
45
+ v8::Local<FunctionTemplate> tpl = Nan::New<FunctionTemplate>(JSNewFunction, nodegitExternal);
46
46
 
47
47
  tpl->InstanceTemplate()->SetInternalFieldCount(1);
48
48
  tpl->SetClassName(Nan::New("Remote").ToLocalChecked());
49
49
 
50
- Nan::SetMethod(tpl, "addFetch", AddFetch);
51
- Nan::SetMethod(tpl, "addPush", AddPush);
52
- Nan::SetPrototypeMethod(tpl, "autotag", Autotag);
53
- Nan::SetPrototypeMethod(tpl, "connect", Connect);
54
- Nan::SetPrototypeMethod(tpl, "connected", Connected);
55
- Nan::SetMethod(tpl, "create", Create);
56
- Nan::SetMethod(tpl, "createAnonymous", CreateAnonymous);
57
- Nan::SetMethod(tpl, "createDetached", CreateDetached);
58
- Nan::SetMethod(tpl, "createWithFetchspec", CreateWithFetchspec);
59
- Nan::SetMethod(tpl, "createWithOpts", CreateWithOpts);
60
- Nan::SetPrototypeMethod(tpl, "defaultBranch", DefaultBranch);
61
- Nan::SetMethod(tpl, "delete", Delete);
62
- Nan::SetPrototypeMethod(tpl, "disconnect", Disconnect);
63
- Nan::SetPrototypeMethod(tpl, "download", Download);
64
- Nan::SetPrototypeMethod(tpl, "dup", Dup);
65
- Nan::SetPrototypeMethod(tpl, "fetch", Fetch);
66
- Nan::SetPrototypeMethod(tpl, "getFetchRefspecs", GetFetchRefspecs);
67
- Nan::SetPrototypeMethod(tpl, "getPushRefspecs", GetPushRefspecs);
68
- Nan::SetPrototypeMethod(tpl, "getRefspec", GetRefspec);
69
- Nan::SetMethod(tpl, "isValidName", IsValidName);
70
- Nan::SetMethod(tpl, "list", List);
71
- Nan::SetMethod(tpl, "lookup", Lookup);
72
- Nan::SetPrototypeMethod(tpl, "name", Name);
73
- Nan::SetPrototypeMethod(tpl, "owner", Owner);
74
- Nan::SetPrototypeMethod(tpl, "prune", Prune);
75
- Nan::SetPrototypeMethod(tpl, "pruneRefs", PruneRefs);
76
- Nan::SetPrototypeMethod(tpl, "push", Push);
77
- Nan::SetPrototypeMethod(tpl, "pushurl", Pushurl);
78
- Nan::SetPrototypeMethod(tpl, "refspecCount", RefspecCount);
79
- Nan::SetMethod(tpl, "rename", Rename);
80
- Nan::SetMethod(tpl, "setAutotag", SetAutotag);
81
- Nan::SetMethod(tpl, "setPushurl", SetPushurl);
82
- Nan::SetMethod(tpl, "setUrl", SetUrl);
83
- Nan::SetPrototypeMethod(tpl, "stats", Stats);
84
- Nan::SetPrototypeMethod(tpl, "stop", Stop);
85
- Nan::SetPrototypeMethod(tpl, "updateTips", UpdateTips);
86
- Nan::SetPrototypeMethod(tpl, "upload", Upload);
87
- Nan::SetPrototypeMethod(tpl, "url", Url);
88
- Nan::SetPrototypeMethod(tpl, "referenceList", ReferenceList);
50
+ Nan::SetMethod(tpl, "addFetch", AddFetch, nodegitExternal);
51
+ Nan::SetMethod(tpl, "addPush", AddPush, nodegitExternal);
52
+ Nan::SetPrototypeMethod(tpl, "autotag", Autotag, nodegitExternal);
53
+ Nan::SetPrototypeMethod(tpl, "connect", Connect, nodegitExternal);
54
+ Nan::SetPrototypeMethod(tpl, "connected", Connected, nodegitExternal);
55
+ Nan::SetMethod(tpl, "create", Create, nodegitExternal);
56
+ Nan::SetMethod(tpl, "createAnonymous", CreateAnonymous, nodegitExternal);
57
+ Nan::SetMethod(tpl, "createDetached", CreateDetached, nodegitExternal);
58
+ Nan::SetMethod(tpl, "createWithFetchspec", CreateWithFetchspec, nodegitExternal);
59
+ Nan::SetMethod(tpl, "createWithOpts", CreateWithOpts, nodegitExternal);
60
+ Nan::SetPrototypeMethod(tpl, "defaultBranch", DefaultBranch, nodegitExternal);
61
+ Nan::SetMethod(tpl, "delete", Delete, nodegitExternal);
62
+ Nan::SetPrototypeMethod(tpl, "disconnect", Disconnect, nodegitExternal);
63
+ Nan::SetPrototypeMethod(tpl, "download", Download, nodegitExternal);
64
+ Nan::SetPrototypeMethod(tpl, "dup", Dup, nodegitExternal);
65
+ Nan::SetPrototypeMethod(tpl, "fetch", Fetch, nodegitExternal);
66
+ Nan::SetPrototypeMethod(tpl, "getFetchRefspecs", GetFetchRefspecs, nodegitExternal);
67
+ Nan::SetPrototypeMethod(tpl, "getPushRefspecs", GetPushRefspecs, nodegitExternal);
68
+ Nan::SetPrototypeMethod(tpl, "getRefspec", GetRefspec, nodegitExternal);
69
+ Nan::SetMethod(tpl, "isValidName", IsValidName, nodegitExternal);
70
+ Nan::SetMethod(tpl, "list", List, nodegitExternal);
71
+ Nan::SetMethod(tpl, "lookup", Lookup, nodegitExternal);
72
+ Nan::SetPrototypeMethod(tpl, "name", Name, nodegitExternal);
73
+ Nan::SetMethod(tpl, "nameIsValid", NameIsValid, nodegitExternal);
74
+ Nan::SetPrototypeMethod(tpl, "owner", Owner, nodegitExternal);
75
+ Nan::SetPrototypeMethod(tpl, "prune", Prune, nodegitExternal);
76
+ Nan::SetPrototypeMethod(tpl, "pruneRefs", PruneRefs, nodegitExternal);
77
+ Nan::SetPrototypeMethod(tpl, "push", Push, nodegitExternal);
78
+ Nan::SetPrototypeMethod(tpl, "pushurl", Pushurl, nodegitExternal);
79
+ Nan::SetPrototypeMethod(tpl, "refspecCount", RefspecCount, nodegitExternal);
80
+ Nan::SetMethod(tpl, "rename", Rename, nodegitExternal);
81
+ Nan::SetMethod(tpl, "setAutotag", SetAutotag, nodegitExternal);
82
+ Nan::SetMethod(tpl, "setPushurl", SetPushurl, nodegitExternal);
83
+ Nan::SetMethod(tpl, "setUrl", SetUrl, nodegitExternal);
84
+ Nan::SetPrototypeMethod(tpl, "stats", Stats, nodegitExternal);
85
+ Nan::SetPrototypeMethod(tpl, "stop", Stop, nodegitExternal);
86
+ Nan::SetPrototypeMethod(tpl, "updateTips", UpdateTips, nodegitExternal);
87
+ Nan::SetPrototypeMethod(tpl, "upload", Upload, nodegitExternal);
88
+ Nan::SetPrototypeMethod(tpl, "url", Url, nodegitExternal);
89
+ Nan::SetPrototypeMethod(tpl, "referenceList", ReferenceList, nodegitExternal);
89
90
 
90
91
  InitializeTemplate(tpl);
91
92
 
92
- v8::Local<Function> _constructor_template = Nan::GetFunction(tpl).ToLocalChecked();
93
- constructor_template.Reset(_constructor_template);
94
- Nan::Set(target, Nan::New("Remote").ToLocalChecked(), _constructor_template);
93
+ v8::Local<Function> constructor_template = Nan::GetFunction(tpl).ToLocalChecked();
94
+ nodegitContext->SaveToPersistent("GitRemote::Template", constructor_template);
95
+ Nan::Set(target, Nan::New("Remote").ToLocalChecked(), constructor_template);
95
96
  }
96
97
 
97
98
 
@@ -149,7 +150,7 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
149
150
  git_error_clear();
150
151
 
151
152
  { // lock master scope start
152
- LockMaster lockMaster(
153
+ nodegit::LockMaster lockMaster(
153
154
  /*asyncAction: */false
154
155
  ,
155
156
  from_repo
@@ -166,11 +167,11 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
166
167
  );
167
168
 
168
169
 
169
- v8::Local<v8::Value> to;
170
+ v8::Local<v8::Value> v8ConversionSlot;
170
171
  // start convert_to_v8 block
171
- to = Nan::New<Number>( result);
172
+ v8ConversionSlot = Nan::New<Number>( result);
172
173
  // end convert_to_v8 block
173
- return info.GetReturnValue().Set(scope.Escape(to));
174
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
174
175
  }
175
176
  }
176
177
 
@@ -228,7 +229,7 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
228
229
  git_error_clear();
229
230
 
230
231
  { // lock master scope start
231
- LockMaster lockMaster(
232
+ nodegit::LockMaster lockMaster(
232
233
  /*asyncAction: */false
233
234
  ,
234
235
  from_repo
@@ -245,11 +246,11 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
245
246
  );
246
247
 
247
248
 
248
- v8::Local<v8::Value> to;
249
+ v8::Local<v8::Value> v8ConversionSlot;
249
250
  // start convert_to_v8 block
250
- to = Nan::New<Number>( result);
251
+ v8ConversionSlot = Nan::New<Number>( result);
251
252
  // end convert_to_v8 block
252
- return info.GetReturnValue().Set(scope.Escape(to));
253
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
253
254
  }
254
255
  }
255
256
 
@@ -262,7 +263,7 @@ NAN_METHOD(GitRemote::Autotag) {
262
263
  git_error_clear();
263
264
 
264
265
  { // lock master scope start
265
- LockMaster lockMaster(
266
+ nodegit::LockMaster lockMaster(
266
267
  /*asyncAction: */false
267
268
  ,
268
269
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -273,11 +274,11 @@ NAN_METHOD(GitRemote::Autotag) {
273
274
  );
274
275
 
275
276
 
276
- v8::Local<v8::Value> to;
277
+ v8::Local<v8::Value> v8ConversionSlot;
277
278
  // start convert_to_v8 block
278
- to = Nan::New<Number>( result);
279
+ v8ConversionSlot = Nan::New<Number>( result);
279
280
  // end convert_to_v8 block
280
- return info.GetReturnValue().Set(scope.Escape(to));
281
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
281
282
  }
282
283
  }
283
284
 
@@ -293,78 +294,86 @@ NAN_METHOD(GitRemote::Connect) {
293
294
  return Nan::ThrowError("Number direction is required.");
294
295
  }
295
296
 
296
- if (info.Length() == 1 || !info[1]->IsObject()) {
297
- return Nan::ThrowError("RemoteCallbacks callbacks is required.");
298
- }
299
-
300
- if (info.Length() == 2 || !info[2]->IsObject()) {
301
- return Nan::ThrowError("ProxyOptions proxy_opts is required.");
302
- }
303
-
304
- if (info.Length() == 3 || !(Nan::To<bool>(info[3]).FromJust())) {
305
- return Nan::ThrowError("Array, String Object, or string custom_headers is required.");
306
- }
307
- if (info.Length() == 4 || !info[4]->IsFunction()) {
297
+ if (!info[info.Length() - 1]->IsFunction()) {
308
298
  return Nan::ThrowError("Callback is required and must be a Function.");
309
299
  }
310
300
 
311
- ConnectBaton* baton = new ConnectBaton;
301
+ ConnectBaton* baton = new ConnectBaton();
312
302
 
313
303
  baton->error_code = GIT_OK;
314
304
  baton->error = NULL;
315
305
 
306
+
307
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
308
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
309
+
316
310
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
317
311
  // start convert_from_v8 block
318
312
  git_direction from_direction;
319
313
  from_direction = (git_direction) (int) info[0].As<v8::Number>()->Value();
320
314
  // end convert_from_v8 block
321
315
  baton->direction = from_direction;
322
- // start convert_from_v8 block
323
- const git_remote_callbacks * from_callbacks = NULL;
324
- from_callbacks = Nan::ObjectWrap::Unwrap<GitRemoteCallbacks>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
325
- // end convert_from_v8 block
326
- baton->callbacks = from_callbacks;
327
- // start convert_from_v8 block
328
- const git_proxy_options * from_proxy_opts = NULL;
329
- from_proxy_opts = Nan::ObjectWrap::Unwrap<GitProxyOptions>(Nan::To<v8::Object>(info[2]).ToLocalChecked())->GetValue();
330
- // end convert_from_v8 block
331
- baton->proxy_opts = from_proxy_opts;
332
- // start convert_from_v8 block
316
+ if (info[1]->IsNull() || info[1]->IsUndefined()) {
317
+ baton->callbacks = nullptr;
318
+ } else
319
+ {
320
+ auto conversionResult = ConfigurableGitRemoteCallbacks::fromJavascript(nodegitContext, info[1]);
321
+ if (!conversionResult.result) {
322
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
323
+ }
324
+
325
+ auto convertedObject = conversionResult.result;
326
+ cleanupHandles["callbacks"] = convertedObject;
327
+ baton->callbacks = convertedObject->GetValue();
328
+ }
329
+ if (info[2]->IsNull() || info[2]->IsUndefined()) {
330
+ baton->proxy_opts = nullptr;
331
+ } else
332
+ {
333
+ auto conversionResult = ConfigurableGitProxyOptions::fromJavascript(nodegitContext, info[2]);
334
+ if (!conversionResult.result) {
335
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
336
+ }
337
+
338
+ auto convertedObject = conversionResult.result;
339
+ cleanupHandles["proxy_opts"] = convertedObject;
340
+ baton->proxy_opts = convertedObject->GetValue();
341
+ }
342
+ // start convert_from_v8 block
333
343
  const git_strarray * from_custom_headers = NULL;
334
344
 
335
345
  from_custom_headers = StrArrayConverter::Convert(info[3]);
336
346
  // end convert_from_v8 block
337
347
  baton->custom_headers = from_custom_headers;
338
348
 
339
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[4]));
340
- ConnectWorker *worker = new ConnectWorker(baton, callback);
349
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
350
+ ConnectWorker *worker = new ConnectWorker(baton, callback, cleanupHandles);
341
351
 
342
- worker->SaveToPersistent("remote", info.This());
343
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
344
- worker->SaveToPersistent("direction", Nan::To<v8::Object>(info[0]).ToLocalChecked());
345
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
346
- worker->SaveToPersistent("callbacks", Nan::To<v8::Object>(info[1]).ToLocalChecked());
347
- if (!info[2]->IsUndefined() && !info[2]->IsNull())
348
- worker->SaveToPersistent("proxy_opts", Nan::To<v8::Object>(info[2]).ToLocalChecked());
349
- if (!info[3]->IsUndefined() && !info[3]->IsNull())
350
- worker->SaveToPersistent("custom_headers", Nan::To<v8::Object>(info[3]).ToLocalChecked());
351
-
352
- AsyncLibgit2QueueWorker(worker);
352
+ worker->Reference<GitRemote>("remote", info.This());
353
+ worker->Reference("direction", info[0]);
354
+ worker->Reference("callbacks", info[1]);
355
+ worker->Reference("proxy_opts", info[2]);
356
+ worker->Reference("custom_headers", info[3]);
357
+
358
+ nodegitContext->QueueWorker(worker);
353
359
  return;
354
360
  }
355
361
 
362
+ nodegit::LockMaster GitRemote::ConnectWorker::AcquireLocks() {
363
+ nodegit::LockMaster lockMaster(
364
+ /*asyncAction: */true
365
+ ,baton->remote
366
+ ,baton->callbacks
367
+ ,baton->proxy_opts
368
+ ,baton->custom_headers
369
+ );
370
+
371
+ return lockMaster;
372
+ }
373
+
356
374
  void GitRemote::ConnectWorker::Execute() {
357
375
  git_error_clear();
358
376
 
359
- {
360
- LockMaster lockMaster(
361
- /*asyncAction: */true
362
- ,baton->remote
363
- ,baton->callbacks
364
- ,baton->proxy_opts
365
- ,baton->custom_headers
366
- );
367
-
368
377
  int result = git_remote_connect(
369
378
  baton->remote,baton->direction,baton->callbacks,baton->proxy_opts,baton->custom_headers );
370
379
 
@@ -374,13 +383,42 @@ baton->remote,baton->direction,baton->callbacks,baton->proxy_opts,baton->custom_
374
383
  baton->error = git_error_dup(git_error_last());
375
384
  }
376
385
 
386
+ }
387
+
388
+ void GitRemote::ConnectWorker::HandleErrorCallback() {
389
+ if (!GetIsCancelled()) {
390
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
391
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.connect").ToLocalChecked());
392
+ v8::Local<v8::Value> argv[1] = {
393
+ err
394
+ };
395
+ callback->Call(1, argv, async_resource);
396
+ }
397
+
398
+ if (baton->error) {
399
+ if (baton->error->message) {
400
+ free((void *)baton->error->message);
401
+ }
402
+
403
+ free((void *)baton->error);
377
404
  }
405
+
406
+
407
+ delete baton;
378
408
  }
379
409
 
380
410
  void GitRemote::ConnectWorker::HandleOKCallback() {
381
411
  if (baton->error_code == GIT_OK) {
382
412
  v8::Local<v8::Value> result = Nan::Undefined();
383
-
413
+ {
414
+ auto objWrap = Nan::ObjectWrap::Unwrap<GitRemote>(GetFromPersistent("remote").As<v8::Object>());
415
+ objWrap->SaveCleanupHandle(cleanupHandles["callbacks"]);
416
+ }
417
+ {
418
+ auto objWrap = Nan::ObjectWrap::Unwrap<GitRemote>(GetFromPersistent("remote").As<v8::Object>());
419
+ objWrap->SaveCleanupHandle(cleanupHandles["proxy_opts"]);
420
+ }
421
+
384
422
  v8::Local<v8::Value> argv[2] = {
385
423
  Nan::Null(),
386
424
  result
@@ -404,48 +442,15 @@ void GitRemote::ConnectWorker::HandleOKCallback() {
404
442
  free((void *)baton->error->message);
405
443
  free((void *)baton->error);
406
444
  } else if (baton->error_code < 0) {
407
- std::queue< v8::Local<v8::Value> > workerArguments;
408
- workerArguments.push(GetFromPersistent("direction"));
409
- workerArguments.push(GetFromPersistent("callbacks"));
410
- workerArguments.push(GetFromPersistent("proxy_opts"));
411
- workerArguments.push(GetFromPersistent("custom_headers"));
412
445
  bool callbackFired = false;
413
- while(!workerArguments.empty()) {
414
- v8::Local<v8::Value> node = workerArguments.front();
415
- workerArguments.pop();
416
-
417
- if (
418
- !node->IsObject()
419
- || node->IsArray()
420
- || node->IsBooleanObject()
421
- || node->IsDate()
422
- || node->IsFunction()
423
- || node->IsNumberObject()
424
- || node->IsRegExp()
425
- || node->IsStringObject()
426
- ) {
427
- continue;
428
- }
429
-
430
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
431
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
432
-
433
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
446
+ if (!callbackErrorHandle.IsEmpty()) {
447
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
448
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
434
449
  v8::Local<v8::Value> argv[1] = {
435
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
450
+ maybeError
436
451
  };
437
452
  callback->Call(1, argv, async_resource);
438
453
  callbackFired = true;
439
- break;
440
- }
441
-
442
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
443
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
444
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
445
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
446
- if (!nodeToQueue->IsUndefined()) {
447
- workerArguments.push(nodeToQueue);
448
- }
449
454
  }
450
455
  }
451
456
 
@@ -478,7 +483,7 @@ NAN_METHOD(GitRemote::Connected) {
478
483
  git_error_clear();
479
484
 
480
485
  { // lock master scope start
481
- LockMaster lockMaster(
486
+ nodegit::LockMaster lockMaster(
482
487
  /*asyncAction: */false
483
488
  ,
484
489
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -489,11 +494,11 @@ NAN_METHOD(GitRemote::Connected) {
489
494
  );
490
495
 
491
496
 
492
- v8::Local<v8::Value> to;
497
+ v8::Local<v8::Value> v8ConversionSlot;
493
498
  // start convert_to_v8 block
494
- to = Nan::New<Number>( result);
499
+ v8ConversionSlot = Nan::New<Number>( result);
495
500
  // end convert_to_v8 block
496
- return info.GetReturnValue().Set(scope.Escape(to));
501
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
497
502
  }
498
503
  }
499
504
 
@@ -517,15 +522,19 @@ NAN_METHOD(GitRemote::Create) {
517
522
  return Nan::ThrowError("String url is required.");
518
523
  }
519
524
 
520
- if (info.Length() == 3 || !info[3]->IsFunction()) {
525
+ if (!info[info.Length() - 1]->IsFunction()) {
521
526
  return Nan::ThrowError("Callback is required and must be a Function.");
522
527
  }
523
528
 
524
- CreateBaton* baton = new CreateBaton;
529
+ CreateBaton* baton = new CreateBaton();
525
530
 
526
531
  baton->error_code = GIT_OK;
527
532
  baton->error = NULL;
528
533
 
534
+
535
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
536
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
537
+
529
538
  // start convert_from_v8 block
530
539
  git_repository * from_repo = NULL;
531
540
  from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
@@ -560,31 +569,31 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
560
569
  // end convert_from_v8 block
561
570
  baton->url = from_url;
562
571
 
563
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[3]));
564
- CreateWorker *worker = new CreateWorker(baton, callback);
565
-
566
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
567
- worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
568
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
569
- worker->SaveToPersistent("name", Nan::To<v8::Object>(info[1]).ToLocalChecked());
570
- if (!info[2]->IsUndefined() && !info[2]->IsNull())
571
- worker->SaveToPersistent("url", Nan::To<v8::Object>(info[2]).ToLocalChecked());
572
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
573
+ CreateWorker *worker = new CreateWorker(baton, callback, cleanupHandles);
572
574
 
573
- AsyncLibgit2QueueWorker(worker);
575
+ worker->Reference<GitRepository>("repo", info[0]);
576
+ worker->Reference("name", info[1]);
577
+ worker->Reference("url", info[2]);
578
+
579
+ nodegitContext->QueueWorker(worker);
574
580
  return;
575
581
  }
576
582
 
583
+ nodegit::LockMaster GitRemote::CreateWorker::AcquireLocks() {
584
+ nodegit::LockMaster lockMaster(
585
+ /*asyncAction: */true
586
+ ,baton->repo
587
+ ,baton->name
588
+ ,baton->url
589
+ );
590
+
591
+ return lockMaster;
592
+ }
593
+
577
594
  void GitRemote::CreateWorker::Execute() {
578
595
  git_error_clear();
579
596
 
580
- {
581
- LockMaster lockMaster(
582
- /*asyncAction: */true
583
- ,baton->repo
584
- ,baton->name
585
- ,baton->url
586
- );
587
-
588
597
  int result = git_remote_create(
589
598
  &baton->out,baton->repo,baton->name,baton->url );
590
599
 
@@ -594,12 +603,34 @@ void GitRemote::CreateWorker::Execute() {
594
603
  baton->error = git_error_dup(git_error_last());
595
604
  }
596
605
 
606
+ }
607
+
608
+ void GitRemote::CreateWorker::HandleErrorCallback() {
609
+ if (!GetIsCancelled()) {
610
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
611
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.create").ToLocalChecked());
612
+ v8::Local<v8::Value> argv[1] = {
613
+ err
614
+ };
615
+ callback->Call(1, argv, async_resource);
616
+ }
617
+
618
+ if (baton->error) {
619
+ if (baton->error->message) {
620
+ free((void *)baton->error->message);
621
+ }
622
+
623
+ free((void *)baton->error);
597
624
  }
625
+
626
+ free(baton->out);
627
+
628
+ delete baton;
598
629
  }
599
630
 
600
631
  void GitRemote::CreateWorker::HandleOKCallback() {
601
632
  if (baton->error_code == GIT_OK) {
602
- v8::Local<v8::Value> to;
633
+ v8::Local<v8::Value> v8ConversionSlot;
603
634
  // start convert_to_v8 block
604
635
  if (baton->out != NULL) {
605
636
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
@@ -611,18 +642,18 @@ void GitRemote::CreateWorker::HandleOKCallback() {
611
642
  true
612
643
  )).ToLocalChecked()
613
644
  );
614
- to = GitRemote::New(
645
+ v8ConversionSlot = GitRemote::New(
615
646
  baton->out,
616
647
  true
617
648
  , owners
618
649
  );
619
650
  }
620
651
  else {
621
- to = Nan::Null();
652
+ v8ConversionSlot = Nan::Null();
622
653
  }
623
654
  // end convert_to_v8 block
624
- v8::Local<v8::Value> result = to;
625
-
655
+ v8::Local<v8::Value> result = v8ConversionSlot;
656
+
626
657
  v8::Local<v8::Value> argv[2] = {
627
658
  Nan::Null(),
628
659
  result
@@ -646,47 +677,15 @@ void GitRemote::CreateWorker::HandleOKCallback() {
646
677
  free((void *)baton->error->message);
647
678
  free((void *)baton->error);
648
679
  } else if (baton->error_code < 0) {
649
- std::queue< v8::Local<v8::Value> > workerArguments;
650
- workerArguments.push(GetFromPersistent("repo"));
651
- workerArguments.push(GetFromPersistent("name"));
652
- workerArguments.push(GetFromPersistent("url"));
653
680
  bool callbackFired = false;
654
- while(!workerArguments.empty()) {
655
- v8::Local<v8::Value> node = workerArguments.front();
656
- workerArguments.pop();
657
-
658
- if (
659
- !node->IsObject()
660
- || node->IsArray()
661
- || node->IsBooleanObject()
662
- || node->IsDate()
663
- || node->IsFunction()
664
- || node->IsNumberObject()
665
- || node->IsRegExp()
666
- || node->IsStringObject()
667
- ) {
668
- continue;
669
- }
670
-
671
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
672
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
673
-
674
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
681
+ if (!callbackErrorHandle.IsEmpty()) {
682
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
683
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
675
684
  v8::Local<v8::Value> argv[1] = {
676
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
685
+ maybeError
677
686
  };
678
687
  callback->Call(1, argv, async_resource);
679
688
  callbackFired = true;
680
- break;
681
- }
682
-
683
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
684
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
685
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
686
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
687
- if (!nodeToQueue->IsUndefined()) {
688
- workerArguments.push(nodeToQueue);
689
- }
690
689
  }
691
690
  }
692
691
 
@@ -703,6 +702,7 @@ void GitRemote::CreateWorker::HandleOKCallback() {
703
702
  callback->Call(0, NULL, async_resource);
704
703
  }
705
704
 
705
+ free(baton->out);
706
706
  }
707
707
 
708
708
 
@@ -725,15 +725,19 @@ NAN_METHOD(GitRemote::CreateAnonymous) {
725
725
  return Nan::ThrowError("String url is required.");
726
726
  }
727
727
 
728
- if (info.Length() == 2 || !info[2]->IsFunction()) {
728
+ if (!info[info.Length() - 1]->IsFunction()) {
729
729
  return Nan::ThrowError("Callback is required and must be a Function.");
730
730
  }
731
731
 
732
- CreateAnonymousBaton* baton = new CreateAnonymousBaton;
732
+ CreateAnonymousBaton* baton = new CreateAnonymousBaton();
733
733
 
734
734
  baton->error_code = GIT_OK;
735
735
  baton->error = NULL;
736
736
 
737
+
738
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
739
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
740
+
737
741
  // start convert_from_v8 block
738
742
  git_repository * from_repo = NULL;
739
743
  from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
@@ -754,28 +758,29 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
754
758
  // end convert_from_v8 block
755
759
  baton->url = from_url;
756
760
 
757
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[2]));
758
- CreateAnonymousWorker *worker = new CreateAnonymousWorker(baton, callback);
761
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
762
+ CreateAnonymousWorker *worker = new CreateAnonymousWorker(baton, callback, cleanupHandles);
759
763
 
760
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
761
- worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
762
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
763
- worker->SaveToPersistent("url", Nan::To<v8::Object>(info[1]).ToLocalChecked());
764
-
765
- AsyncLibgit2QueueWorker(worker);
764
+ worker->Reference<GitRepository>("repo", info[0]);
765
+ worker->Reference("url", info[1]);
766
+
767
+ nodegitContext->QueueWorker(worker);
766
768
  return;
767
769
  }
768
770
 
771
+ nodegit::LockMaster GitRemote::CreateAnonymousWorker::AcquireLocks() {
772
+ nodegit::LockMaster lockMaster(
773
+ /*asyncAction: */true
774
+ ,baton->repo
775
+ ,baton->url
776
+ );
777
+
778
+ return lockMaster;
779
+ }
780
+
769
781
  void GitRemote::CreateAnonymousWorker::Execute() {
770
782
  git_error_clear();
771
783
 
772
- {
773
- LockMaster lockMaster(
774
- /*asyncAction: */true
775
- ,baton->repo
776
- ,baton->url
777
- );
778
-
779
784
  int result = git_remote_create_anonymous(
780
785
  &baton->out,baton->repo,baton->url );
781
786
 
@@ -785,12 +790,34 @@ void GitRemote::CreateAnonymousWorker::Execute() {
785
790
  baton->error = git_error_dup(git_error_last());
786
791
  }
787
792
 
793
+ }
794
+
795
+ void GitRemote::CreateAnonymousWorker::HandleErrorCallback() {
796
+ if (!GetIsCancelled()) {
797
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
798
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.createAnonymous").ToLocalChecked());
799
+ v8::Local<v8::Value> argv[1] = {
800
+ err
801
+ };
802
+ callback->Call(1, argv, async_resource);
803
+ }
804
+
805
+ if (baton->error) {
806
+ if (baton->error->message) {
807
+ free((void *)baton->error->message);
808
+ }
809
+
810
+ free((void *)baton->error);
788
811
  }
812
+
813
+ free(baton->out);
814
+
815
+ delete baton;
789
816
  }
790
817
 
791
818
  void GitRemote::CreateAnonymousWorker::HandleOKCallback() {
792
819
  if (baton->error_code == GIT_OK) {
793
- v8::Local<v8::Value> to;
820
+ v8::Local<v8::Value> v8ConversionSlot;
794
821
  // start convert_to_v8 block
795
822
  if (baton->out != NULL) {
796
823
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
@@ -802,18 +829,18 @@ void GitRemote::CreateAnonymousWorker::HandleOKCallback() {
802
829
  true
803
830
  )).ToLocalChecked()
804
831
  );
805
- to = GitRemote::New(
832
+ v8ConversionSlot = GitRemote::New(
806
833
  baton->out,
807
834
  true
808
835
  , owners
809
836
  );
810
837
  }
811
838
  else {
812
- to = Nan::Null();
839
+ v8ConversionSlot = Nan::Null();
813
840
  }
814
841
  // end convert_to_v8 block
815
- v8::Local<v8::Value> result = to;
816
-
842
+ v8::Local<v8::Value> result = v8ConversionSlot;
843
+
817
844
  v8::Local<v8::Value> argv[2] = {
818
845
  Nan::Null(),
819
846
  result
@@ -837,46 +864,15 @@ void GitRemote::CreateAnonymousWorker::HandleOKCallback() {
837
864
  free((void *)baton->error->message);
838
865
  free((void *)baton->error);
839
866
  } else if (baton->error_code < 0) {
840
- std::queue< v8::Local<v8::Value> > workerArguments;
841
- workerArguments.push(GetFromPersistent("repo"));
842
- workerArguments.push(GetFromPersistent("url"));
843
867
  bool callbackFired = false;
844
- while(!workerArguments.empty()) {
845
- v8::Local<v8::Value> node = workerArguments.front();
846
- workerArguments.pop();
847
-
848
- if (
849
- !node->IsObject()
850
- || node->IsArray()
851
- || node->IsBooleanObject()
852
- || node->IsDate()
853
- || node->IsFunction()
854
- || node->IsNumberObject()
855
- || node->IsRegExp()
856
- || node->IsStringObject()
857
- ) {
858
- continue;
859
- }
860
-
861
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
862
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
863
-
864
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
868
+ if (!callbackErrorHandle.IsEmpty()) {
869
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
870
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
865
871
  v8::Local<v8::Value> argv[1] = {
866
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
872
+ maybeError
867
873
  };
868
874
  callback->Call(1, argv, async_resource);
869
875
  callbackFired = true;
870
- break;
871
- }
872
-
873
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
874
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
875
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
876
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
877
- if (!nodeToQueue->IsUndefined()) {
878
- workerArguments.push(nodeToQueue);
879
- }
880
876
  }
881
877
  }
882
878
 
@@ -893,6 +889,7 @@ void GitRemote::CreateAnonymousWorker::HandleOKCallback() {
893
889
  callback->Call(0, NULL, async_resource);
894
890
  }
895
891
 
892
+ free(baton->out);
896
893
  }
897
894
 
898
895
 
@@ -910,15 +907,19 @@ NAN_METHOD(GitRemote::CreateDetached) {
910
907
  return Nan::ThrowError("String url is required.");
911
908
  }
912
909
 
913
- if (info.Length() == 1 || !info[1]->IsFunction()) {
910
+ if (!info[info.Length() - 1]->IsFunction()) {
914
911
  return Nan::ThrowError("Callback is required and must be a Function.");
915
912
  }
916
913
 
917
- CreateDetachedBaton* baton = new CreateDetachedBaton;
914
+ CreateDetachedBaton* baton = new CreateDetachedBaton();
918
915
 
919
916
  baton->error_code = GIT_OK;
920
917
  baton->error = NULL;
921
918
 
919
+
920
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
921
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
922
+
922
923
  // start convert_from_v8 block
923
924
  const char * from_url = NULL;
924
925
 
@@ -934,25 +935,27 @@ NAN_METHOD(GitRemote::CreateDetached) {
934
935
  // end convert_from_v8 block
935
936
  baton->url = from_url;
936
937
 
937
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[1]));
938
- CreateDetachedWorker *worker = new CreateDetachedWorker(baton, callback);
939
-
940
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
941
- worker->SaveToPersistent("url", Nan::To<v8::Object>(info[0]).ToLocalChecked());
938
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
939
+ CreateDetachedWorker *worker = new CreateDetachedWorker(baton, callback, cleanupHandles);
942
940
 
943
- AsyncLibgit2QueueWorker(worker);
941
+ worker->Reference("url", info[0]);
942
+
943
+ nodegitContext->QueueWorker(worker);
944
944
  return;
945
945
  }
946
946
 
947
+ nodegit::LockMaster GitRemote::CreateDetachedWorker::AcquireLocks() {
948
+ nodegit::LockMaster lockMaster(
949
+ /*asyncAction: */true
950
+ ,baton->url
951
+ );
952
+
953
+ return lockMaster;
954
+ }
955
+
947
956
  void GitRemote::CreateDetachedWorker::Execute() {
948
957
  git_error_clear();
949
958
 
950
- {
951
- LockMaster lockMaster(
952
- /*asyncAction: */true
953
- ,baton->url
954
- );
955
-
956
959
  int result = git_remote_create_detached(
957
960
  &baton->out,baton->url );
958
961
 
@@ -962,25 +965,47 @@ void GitRemote::CreateDetachedWorker::Execute() {
962
965
  baton->error = git_error_dup(git_error_last());
963
966
  }
964
967
 
968
+ }
969
+
970
+ void GitRemote::CreateDetachedWorker::HandleErrorCallback() {
971
+ if (!GetIsCancelled()) {
972
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
973
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.createDetached").ToLocalChecked());
974
+ v8::Local<v8::Value> argv[1] = {
975
+ err
976
+ };
977
+ callback->Call(1, argv, async_resource);
978
+ }
979
+
980
+ if (baton->error) {
981
+ if (baton->error->message) {
982
+ free((void *)baton->error->message);
983
+ }
984
+
985
+ free((void *)baton->error);
965
986
  }
987
+
988
+ free(baton->out);
989
+
990
+ delete baton;
966
991
  }
967
992
 
968
993
  void GitRemote::CreateDetachedWorker::HandleOKCallback() {
969
994
  if (baton->error_code == GIT_OK) {
970
- v8::Local<v8::Value> to;
995
+ v8::Local<v8::Value> v8ConversionSlot;
971
996
  // start convert_to_v8 block
972
997
  if (baton->out != NULL) {
973
- to = GitRemote::New(
998
+ v8ConversionSlot = GitRemote::New(
974
999
  baton->out,
975
1000
  true
976
1001
  );
977
1002
  }
978
1003
  else {
979
- to = Nan::Null();
1004
+ v8ConversionSlot = Nan::Null();
980
1005
  }
981
1006
  // end convert_to_v8 block
982
- v8::Local<v8::Value> result = to;
983
-
1007
+ v8::Local<v8::Value> result = v8ConversionSlot;
1008
+
984
1009
  v8::Local<v8::Value> argv[2] = {
985
1010
  Nan::Null(),
986
1011
  result
@@ -1004,45 +1029,15 @@ void GitRemote::CreateDetachedWorker::HandleOKCallback() {
1004
1029
  free((void *)baton->error->message);
1005
1030
  free((void *)baton->error);
1006
1031
  } else if (baton->error_code < 0) {
1007
- std::queue< v8::Local<v8::Value> > workerArguments;
1008
- workerArguments.push(GetFromPersistent("url"));
1009
1032
  bool callbackFired = false;
1010
- while(!workerArguments.empty()) {
1011
- v8::Local<v8::Value> node = workerArguments.front();
1012
- workerArguments.pop();
1013
-
1014
- if (
1015
- !node->IsObject()
1016
- || node->IsArray()
1017
- || node->IsBooleanObject()
1018
- || node->IsDate()
1019
- || node->IsFunction()
1020
- || node->IsNumberObject()
1021
- || node->IsRegExp()
1022
- || node->IsStringObject()
1023
- ) {
1024
- continue;
1025
- }
1026
-
1027
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
1028
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
1029
-
1030
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
1033
+ if (!callbackErrorHandle.IsEmpty()) {
1034
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
1035
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
1031
1036
  v8::Local<v8::Value> argv[1] = {
1032
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
1037
+ maybeError
1033
1038
  };
1034
1039
  callback->Call(1, argv, async_resource);
1035
1040
  callbackFired = true;
1036
- break;
1037
- }
1038
-
1039
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
1040
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
1041
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
1042
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
1043
- if (!nodeToQueue->IsUndefined()) {
1044
- workerArguments.push(nodeToQueue);
1045
- }
1046
1041
  }
1047
1042
  }
1048
1043
 
@@ -1059,6 +1054,7 @@ void GitRemote::CreateDetachedWorker::HandleOKCallback() {
1059
1054
  callback->Call(0, NULL, async_resource);
1060
1055
  }
1061
1056
 
1057
+ free(baton->out);
1062
1058
  }
1063
1059
 
1064
1060
 
@@ -1091,15 +1087,19 @@ NAN_METHOD(GitRemote::CreateWithFetchspec) {
1091
1087
  return Nan::ThrowError("String fetch is required.");
1092
1088
  }
1093
1089
 
1094
- if (info.Length() == 4 || !info[4]->IsFunction()) {
1090
+ if (!info[info.Length() - 1]->IsFunction()) {
1095
1091
  return Nan::ThrowError("Callback is required and must be a Function.");
1096
1092
  }
1097
1093
 
1098
- CreateWithFetchspecBaton* baton = new CreateWithFetchspecBaton;
1094
+ CreateWithFetchspecBaton* baton = new CreateWithFetchspecBaton();
1099
1095
 
1100
1096
  baton->error_code = GIT_OK;
1101
1097
  baton->error = NULL;
1102
1098
 
1099
+
1100
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
1101
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
1102
+
1103
1103
  // start convert_from_v8 block
1104
1104
  git_repository * from_repo = NULL;
1105
1105
  from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
@@ -1148,34 +1148,33 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
1148
1148
  // end convert_from_v8 block
1149
1149
  baton->fetch = from_fetch;
1150
1150
 
1151
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[4]));
1152
- CreateWithFetchspecWorker *worker = new CreateWithFetchspecWorker(baton, callback);
1151
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
1152
+ CreateWithFetchspecWorker *worker = new CreateWithFetchspecWorker(baton, callback, cleanupHandles);
1153
1153
 
1154
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
1155
- worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
1156
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
1157
- worker->SaveToPersistent("name", Nan::To<v8::Object>(info[1]).ToLocalChecked());
1158
- if (!info[2]->IsUndefined() && !info[2]->IsNull())
1159
- worker->SaveToPersistent("url", Nan::To<v8::Object>(info[2]).ToLocalChecked());
1160
- if (!info[3]->IsUndefined() && !info[3]->IsNull())
1161
- worker->SaveToPersistent("fetch", Nan::To<v8::Object>(info[3]).ToLocalChecked());
1162
-
1163
- AsyncLibgit2QueueWorker(worker);
1154
+ worker->Reference<GitRepository>("repo", info[0]);
1155
+ worker->Reference("name", info[1]);
1156
+ worker->Reference("url", info[2]);
1157
+ worker->Reference("fetch", info[3]);
1158
+
1159
+ nodegitContext->QueueWorker(worker);
1164
1160
  return;
1165
1161
  }
1166
1162
 
1163
+ nodegit::LockMaster GitRemote::CreateWithFetchspecWorker::AcquireLocks() {
1164
+ nodegit::LockMaster lockMaster(
1165
+ /*asyncAction: */true
1166
+ ,baton->repo
1167
+ ,baton->name
1168
+ ,baton->url
1169
+ ,baton->fetch
1170
+ );
1171
+
1172
+ return lockMaster;
1173
+ }
1174
+
1167
1175
  void GitRemote::CreateWithFetchspecWorker::Execute() {
1168
1176
  git_error_clear();
1169
1177
 
1170
- {
1171
- LockMaster lockMaster(
1172
- /*asyncAction: */true
1173
- ,baton->repo
1174
- ,baton->name
1175
- ,baton->url
1176
- ,baton->fetch
1177
- );
1178
-
1179
1178
  int result = git_remote_create_with_fetchspec(
1180
1179
  &baton->out,baton->repo,baton->name,baton->url,baton->fetch );
1181
1180
 
@@ -1185,12 +1184,34 @@ void GitRemote::CreateWithFetchspecWorker::Execute() {
1185
1184
  baton->error = git_error_dup(git_error_last());
1186
1185
  }
1187
1186
 
1187
+ }
1188
+
1189
+ void GitRemote::CreateWithFetchspecWorker::HandleErrorCallback() {
1190
+ if (!GetIsCancelled()) {
1191
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
1192
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.createWithFetchspec").ToLocalChecked());
1193
+ v8::Local<v8::Value> argv[1] = {
1194
+ err
1195
+ };
1196
+ callback->Call(1, argv, async_resource);
1197
+ }
1198
+
1199
+ if (baton->error) {
1200
+ if (baton->error->message) {
1201
+ free((void *)baton->error->message);
1202
+ }
1203
+
1204
+ free((void *)baton->error);
1188
1205
  }
1206
+
1207
+ free(baton->out);
1208
+
1209
+ delete baton;
1189
1210
  }
1190
1211
 
1191
1212
  void GitRemote::CreateWithFetchspecWorker::HandleOKCallback() {
1192
1213
  if (baton->error_code == GIT_OK) {
1193
- v8::Local<v8::Value> to;
1214
+ v8::Local<v8::Value> v8ConversionSlot;
1194
1215
  // start convert_to_v8 block
1195
1216
  if (baton->out != NULL) {
1196
1217
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
@@ -1202,18 +1223,18 @@ void GitRemote::CreateWithFetchspecWorker::HandleOKCallback() {
1202
1223
  true
1203
1224
  )).ToLocalChecked()
1204
1225
  );
1205
- to = GitRemote::New(
1226
+ v8ConversionSlot = GitRemote::New(
1206
1227
  baton->out,
1207
1228
  true
1208
1229
  , owners
1209
1230
  );
1210
1231
  }
1211
1232
  else {
1212
- to = Nan::Null();
1233
+ v8ConversionSlot = Nan::Null();
1213
1234
  }
1214
1235
  // end convert_to_v8 block
1215
- v8::Local<v8::Value> result = to;
1216
-
1236
+ v8::Local<v8::Value> result = v8ConversionSlot;
1237
+
1217
1238
  v8::Local<v8::Value> argv[2] = {
1218
1239
  Nan::Null(),
1219
1240
  result
@@ -1237,48 +1258,15 @@ void GitRemote::CreateWithFetchspecWorker::HandleOKCallback() {
1237
1258
  free((void *)baton->error->message);
1238
1259
  free((void *)baton->error);
1239
1260
  } else if (baton->error_code < 0) {
1240
- std::queue< v8::Local<v8::Value> > workerArguments;
1241
- workerArguments.push(GetFromPersistent("repo"));
1242
- workerArguments.push(GetFromPersistent("name"));
1243
- workerArguments.push(GetFromPersistent("url"));
1244
- workerArguments.push(GetFromPersistent("fetch"));
1245
1261
  bool callbackFired = false;
1246
- while(!workerArguments.empty()) {
1247
- v8::Local<v8::Value> node = workerArguments.front();
1248
- workerArguments.pop();
1249
-
1250
- if (
1251
- !node->IsObject()
1252
- || node->IsArray()
1253
- || node->IsBooleanObject()
1254
- || node->IsDate()
1255
- || node->IsFunction()
1256
- || node->IsNumberObject()
1257
- || node->IsRegExp()
1258
- || node->IsStringObject()
1259
- ) {
1260
- continue;
1261
- }
1262
-
1263
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
1264
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
1265
-
1266
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
1262
+ if (!callbackErrorHandle.IsEmpty()) {
1263
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
1264
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
1267
1265
  v8::Local<v8::Value> argv[1] = {
1268
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
1266
+ maybeError
1269
1267
  };
1270
1268
  callback->Call(1, argv, async_resource);
1271
1269
  callbackFired = true;
1272
- break;
1273
- }
1274
-
1275
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
1276
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
1277
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
1278
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
1279
- if (!nodeToQueue->IsUndefined()) {
1280
- workerArguments.push(nodeToQueue);
1281
- }
1282
1270
  }
1283
1271
  }
1284
1272
 
@@ -1295,6 +1283,7 @@ void GitRemote::CreateWithFetchspecWorker::HandleOKCallback() {
1295
1283
  callback->Call(0, NULL, async_resource);
1296
1284
  }
1297
1285
 
1286
+ free(baton->out);
1298
1287
  }
1299
1288
 
1300
1289
 
@@ -1313,15 +1302,19 @@ NAN_METHOD(GitRemote::CreateWithOpts) {
1313
1302
  return Nan::ThrowError("String url is required.");
1314
1303
  }
1315
1304
 
1316
- if (info.Length() == 2 || !info[2]->IsFunction()) {
1305
+ if (!info[info.Length() - 1]->IsFunction()) {
1317
1306
  return Nan::ThrowError("Callback is required and must be a Function.");
1318
1307
  }
1319
1308
 
1320
- CreateWithOptsBaton* baton = new CreateWithOptsBaton;
1309
+ CreateWithOptsBaton* baton = new CreateWithOptsBaton();
1321
1310
 
1322
1311
  baton->error_code = GIT_OK;
1323
1312
  baton->error = NULL;
1324
1313
 
1314
+
1315
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
1316
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
1317
+
1325
1318
  // start convert_from_v8 block
1326
1319
  const char * from_url = NULL;
1327
1320
 
@@ -1336,39 +1329,43 @@ NAN_METHOD(GitRemote::CreateWithOpts) {
1336
1329
  memset((void *)(((char *)from_url) + url.length()), 0, 1);
1337
1330
  // end convert_from_v8 block
1338
1331
  baton->url = from_url;
1339
- // start convert_from_v8 block
1340
- const git_remote_create_options * from_opts = NULL;
1341
- if (info[1]->IsObject()) {
1342
- from_opts = Nan::ObjectWrap::Unwrap<GitRemoteCreateOptions>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
1343
- }
1344
- else {
1345
- from_opts = 0;
1346
- }
1347
- // end convert_from_v8 block
1348
- baton->opts = from_opts;
1332
+ if (info[1]->IsNull() || info[1]->IsUndefined()) {
1333
+ baton->opts = nullptr;
1334
+ } else
1335
+ {
1336
+ auto conversionResult = ConfigurableGitRemoteCreateOptions::fromJavascript(nodegitContext, info[1]);
1337
+ if (!conversionResult.result) {
1338
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
1339
+ }
1340
+
1341
+ auto convertedObject = conversionResult.result;
1342
+ cleanupHandles["opts"] = convertedObject;
1343
+ baton->opts = convertedObject->GetValue();
1344
+ }
1345
+
1346
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
1347
+ CreateWithOptsWorker *worker = new CreateWithOptsWorker(baton, callback, cleanupHandles);
1349
1348
 
1350
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[2]));
1351
- CreateWithOptsWorker *worker = new CreateWithOptsWorker(baton, callback);
1349
+ worker->Reference("url", info[0]);
1350
+ worker->Reference("opts", info[1]);
1351
+
1352
+ nodegitContext->QueueWorker(worker);
1353
+ return;
1354
+ }
1352
1355
 
1353
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
1354
- worker->SaveToPersistent("url", Nan::To<v8::Object>(info[0]).ToLocalChecked());
1355
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
1356
- worker->SaveToPersistent("opts", Nan::To<v8::Object>(info[1]).ToLocalChecked());
1356
+ nodegit::LockMaster GitRemote::CreateWithOptsWorker::AcquireLocks() {
1357
+ nodegit::LockMaster lockMaster(
1358
+ /*asyncAction: */true
1359
+ ,baton->url
1360
+ ,baton->opts
1361
+ );
1357
1362
 
1358
- AsyncLibgit2QueueWorker(worker);
1359
- return;
1363
+ return lockMaster;
1360
1364
  }
1361
1365
 
1362
1366
  void GitRemote::CreateWithOptsWorker::Execute() {
1363
1367
  git_error_clear();
1364
1368
 
1365
- {
1366
- LockMaster lockMaster(
1367
- /*asyncAction: */true
1368
- ,baton->url
1369
- ,baton->opts
1370
- );
1371
-
1372
1369
  int result = git_remote_create_with_opts(
1373
1370
  &baton->out,baton->url,baton->opts );
1374
1371
 
@@ -1378,12 +1375,34 @@ void GitRemote::CreateWithOptsWorker::Execute() {
1378
1375
  baton->error = git_error_dup(git_error_last());
1379
1376
  }
1380
1377
 
1378
+ }
1379
+
1380
+ void GitRemote::CreateWithOptsWorker::HandleErrorCallback() {
1381
+ if (!GetIsCancelled()) {
1382
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
1383
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.createWithOpts").ToLocalChecked());
1384
+ v8::Local<v8::Value> argv[1] = {
1385
+ err
1386
+ };
1387
+ callback->Call(1, argv, async_resource);
1388
+ }
1389
+
1390
+ if (baton->error) {
1391
+ if (baton->error->message) {
1392
+ free((void *)baton->error->message);
1393
+ }
1394
+
1395
+ free((void *)baton->error);
1381
1396
  }
1397
+
1398
+ free(baton->out);
1399
+
1400
+ delete baton;
1382
1401
  }
1383
1402
 
1384
1403
  void GitRemote::CreateWithOptsWorker::HandleOKCallback() {
1385
1404
  if (baton->error_code == GIT_OK) {
1386
- v8::Local<v8::Value> to;
1405
+ v8::Local<v8::Value> v8ConversionSlot;
1387
1406
  // start convert_to_v8 block
1388
1407
  if (baton->out != NULL) {
1389
1408
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
@@ -1395,18 +1414,18 @@ void GitRemote::CreateWithOptsWorker::HandleOKCallback() {
1395
1414
  true
1396
1415
  )).ToLocalChecked()
1397
1416
  );
1398
- to = GitRemote::New(
1417
+ v8ConversionSlot = GitRemote::New(
1399
1418
  baton->out,
1400
1419
  true
1401
1420
  , owners
1402
1421
  );
1403
1422
  }
1404
1423
  else {
1405
- to = Nan::Null();
1424
+ v8ConversionSlot = Nan::Null();
1406
1425
  }
1407
1426
  // end convert_to_v8 block
1408
- v8::Local<v8::Value> result = to;
1409
-
1427
+ v8::Local<v8::Value> result = v8ConversionSlot;
1428
+
1410
1429
  v8::Local<v8::Value> argv[2] = {
1411
1430
  Nan::Null(),
1412
1431
  result
@@ -1430,46 +1449,15 @@ void GitRemote::CreateWithOptsWorker::HandleOKCallback() {
1430
1449
  free((void *)baton->error->message);
1431
1450
  free((void *)baton->error);
1432
1451
  } else if (baton->error_code < 0) {
1433
- std::queue< v8::Local<v8::Value> > workerArguments;
1434
- workerArguments.push(GetFromPersistent("url"));
1435
- workerArguments.push(GetFromPersistent("opts"));
1436
1452
  bool callbackFired = false;
1437
- while(!workerArguments.empty()) {
1438
- v8::Local<v8::Value> node = workerArguments.front();
1439
- workerArguments.pop();
1440
-
1441
- if (
1442
- !node->IsObject()
1443
- || node->IsArray()
1444
- || node->IsBooleanObject()
1445
- || node->IsDate()
1446
- || node->IsFunction()
1447
- || node->IsNumberObject()
1448
- || node->IsRegExp()
1449
- || node->IsStringObject()
1450
- ) {
1451
- continue;
1452
- }
1453
-
1454
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
1455
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
1456
-
1457
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
1453
+ if (!callbackErrorHandle.IsEmpty()) {
1454
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
1455
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
1458
1456
  v8::Local<v8::Value> argv[1] = {
1459
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
1457
+ maybeError
1460
1458
  };
1461
1459
  callback->Call(1, argv, async_resource);
1462
1460
  callbackFired = true;
1463
- break;
1464
- }
1465
-
1466
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
1467
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
1468
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
1469
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
1470
- if (!nodeToQueue->IsUndefined()) {
1471
- workerArguments.push(nodeToQueue);
1472
- }
1473
1461
  }
1474
1462
  }
1475
1463
 
@@ -1486,6 +1474,7 @@ void GitRemote::CreateWithOptsWorker::HandleOKCallback() {
1486
1474
  callback->Call(0, NULL, async_resource);
1487
1475
  }
1488
1476
 
1477
+ free(baton->out);
1489
1478
  }
1490
1479
 
1491
1480
 
@@ -1498,39 +1487,46 @@ void GitRemote::CreateWithOptsWorker::HandleOKCallback() {
1498
1487
  */
1499
1488
  NAN_METHOD(GitRemote::DefaultBranch) {
1500
1489
 
1501
- if (info.Length() == 0 || !info[0]->IsFunction()) {
1490
+ if (!info[info.Length() - 1]->IsFunction()) {
1502
1491
  return Nan::ThrowError("Callback is required and must be a Function.");
1503
1492
  }
1504
1493
 
1505
- DefaultBranchBaton* baton = new DefaultBranchBaton;
1494
+ DefaultBranchBaton* baton = new DefaultBranchBaton();
1506
1495
 
1507
1496
  baton->error_code = GIT_OK;
1508
1497
  baton->error = NULL;
1509
1498
 
1499
+
1500
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
1501
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
1502
+
1510
1503
  baton->out = (git_buf *)malloc(sizeof(git_buf ));
1511
1504
  baton->out->ptr = NULL;
1512
1505
  baton->out->size = baton->out->asize = 0;
1513
1506
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
1514
1507
 
1515
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[0]));
1516
- DefaultBranchWorker *worker = new DefaultBranchWorker(baton, callback);
1508
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
1509
+ DefaultBranchWorker *worker = new DefaultBranchWorker(baton, callback, cleanupHandles);
1517
1510
 
1518
- worker->SaveToPersistent("remote", info.This());
1511
+ worker->Reference<GitRemote>("remote", info.This());
1519
1512
 
1520
- AsyncLibgit2QueueWorker(worker);
1513
+ nodegitContext->QueueWorker(worker);
1521
1514
  return;
1522
1515
  }
1523
1516
 
1517
+ nodegit::LockMaster GitRemote::DefaultBranchWorker::AcquireLocks() {
1518
+ nodegit::LockMaster lockMaster(
1519
+ /*asyncAction: */true
1520
+ ,baton->out
1521
+ ,baton->remote
1522
+ );
1523
+
1524
+ return lockMaster;
1525
+ }
1526
+
1524
1527
  void GitRemote::DefaultBranchWorker::Execute() {
1525
1528
  git_error_clear();
1526
1529
 
1527
- {
1528
- LockMaster lockMaster(
1529
- /*asyncAction: */true
1530
- ,baton->out
1531
- ,baton->remote
1532
- );
1533
-
1534
1530
  int result = git_remote_default_branch(
1535
1531
  baton->out,baton->remote );
1536
1532
 
@@ -1540,22 +1536,45 @@ baton->out,baton->remote );
1540
1536
  baton->error = git_error_dup(git_error_last());
1541
1537
  }
1542
1538
 
1539
+ }
1540
+
1541
+ void GitRemote::DefaultBranchWorker::HandleErrorCallback() {
1542
+ if (!GetIsCancelled()) {
1543
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
1544
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.defaultBranch").ToLocalChecked());
1545
+ v8::Local<v8::Value> argv[1] = {
1546
+ err
1547
+ };
1548
+ callback->Call(1, argv, async_resource);
1549
+ }
1550
+
1551
+ if (baton->error) {
1552
+ if (baton->error->message) {
1553
+ free((void *)baton->error->message);
1554
+ }
1555
+
1556
+ free((void *)baton->error);
1543
1557
  }
1558
+
1559
+ git_buf_dispose(baton->out);
1560
+ free((void *)baton->out);
1561
+
1562
+ delete baton;
1544
1563
  }
1545
1564
 
1546
1565
  void GitRemote::DefaultBranchWorker::HandleOKCallback() {
1547
1566
  if (baton->error_code == GIT_OK) {
1548
- v8::Local<v8::Value> to;
1567
+ v8::Local<v8::Value> v8ConversionSlot;
1549
1568
  // start convert_to_v8 block
1550
1569
  if (baton->out) {
1551
- to = Nan::New<v8::String>(baton->out->ptr, baton->out->size).ToLocalChecked();
1570
+ v8ConversionSlot = Nan::New<v8::String>(baton->out->ptr, baton->out->size).ToLocalChecked();
1552
1571
  }
1553
1572
  else {
1554
- to = Nan::Null();
1573
+ v8ConversionSlot = Nan::Null();
1555
1574
  }
1556
1575
  // end convert_to_v8 block
1557
- v8::Local<v8::Value> result = to;
1558
-
1576
+ v8::Local<v8::Value> result = v8ConversionSlot;
1577
+
1559
1578
  v8::Local<v8::Value> argv[2] = {
1560
1579
  Nan::Null(),
1561
1580
  result
@@ -1579,44 +1598,15 @@ void GitRemote::DefaultBranchWorker::HandleOKCallback() {
1579
1598
  free((void *)baton->error->message);
1580
1599
  free((void *)baton->error);
1581
1600
  } else if (baton->error_code < 0) {
1582
- std::queue< v8::Local<v8::Value> > workerArguments;
1583
1601
  bool callbackFired = false;
1584
- while(!workerArguments.empty()) {
1585
- v8::Local<v8::Value> node = workerArguments.front();
1586
- workerArguments.pop();
1587
-
1588
- if (
1589
- !node->IsObject()
1590
- || node->IsArray()
1591
- || node->IsBooleanObject()
1592
- || node->IsDate()
1593
- || node->IsFunction()
1594
- || node->IsNumberObject()
1595
- || node->IsRegExp()
1596
- || node->IsStringObject()
1597
- ) {
1598
- continue;
1599
- }
1600
-
1601
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
1602
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
1603
-
1604
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
1602
+ if (!callbackErrorHandle.IsEmpty()) {
1603
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
1604
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
1605
1605
  v8::Local<v8::Value> argv[1] = {
1606
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
1606
+ maybeError
1607
1607
  };
1608
1608
  callback->Call(1, argv, async_resource);
1609
1609
  callbackFired = true;
1610
- break;
1611
- }
1612
-
1613
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
1614
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
1615
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
1616
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
1617
- if (!nodeToQueue->IsUndefined()) {
1618
- workerArguments.push(nodeToQueue);
1619
- }
1620
1610
  }
1621
1611
  }
1622
1612
 
@@ -1656,15 +1646,19 @@ NAN_METHOD(GitRemote::Delete) {
1656
1646
  return Nan::ThrowError("String name is required.");
1657
1647
  }
1658
1648
 
1659
- if (info.Length() == 2 || !info[2]->IsFunction()) {
1649
+ if (!info[info.Length() - 1]->IsFunction()) {
1660
1650
  return Nan::ThrowError("Callback is required and must be a Function.");
1661
1651
  }
1662
1652
 
1663
- DeleteBaton* baton = new DeleteBaton;
1653
+ DeleteBaton* baton = new DeleteBaton();
1664
1654
 
1665
1655
  baton->error_code = GIT_OK;
1666
1656
  baton->error = NULL;
1667
1657
 
1658
+
1659
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
1660
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
1661
+
1668
1662
  // start convert_from_v8 block
1669
1663
  git_repository * from_repo = NULL;
1670
1664
  from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
@@ -1685,28 +1679,29 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
1685
1679
  // end convert_from_v8 block
1686
1680
  baton->name = from_name;
1687
1681
 
1688
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[2]));
1689
- DeleteWorker *worker = new DeleteWorker(baton, callback);
1690
-
1691
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
1692
- worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
1693
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
1694
- worker->SaveToPersistent("name", Nan::To<v8::Object>(info[1]).ToLocalChecked());
1682
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
1683
+ DeleteWorker *worker = new DeleteWorker(baton, callback, cleanupHandles);
1695
1684
 
1696
- AsyncLibgit2QueueWorker(worker);
1685
+ worker->Reference<GitRepository>("repo", info[0]);
1686
+ worker->Reference("name", info[1]);
1687
+
1688
+ nodegitContext->QueueWorker(worker);
1697
1689
  return;
1698
1690
  }
1699
1691
 
1692
+ nodegit::LockMaster GitRemote::DeleteWorker::AcquireLocks() {
1693
+ nodegit::LockMaster lockMaster(
1694
+ /*asyncAction: */true
1695
+ ,baton->repo
1696
+ ,baton->name
1697
+ );
1698
+
1699
+ return lockMaster;
1700
+ }
1701
+
1700
1702
  void GitRemote::DeleteWorker::Execute() {
1701
1703
  git_error_clear();
1702
1704
 
1703
- {
1704
- LockMaster lockMaster(
1705
- /*asyncAction: */true
1706
- ,baton->repo
1707
- ,baton->name
1708
- );
1709
-
1710
1705
  int result = git_remote_delete(
1711
1706
  baton->repo,baton->name );
1712
1707
 
@@ -1716,15 +1711,36 @@ baton->repo,baton->name );
1716
1711
  baton->error = git_error_dup(git_error_last());
1717
1712
  }
1718
1713
 
1719
- }
1720
1714
  }
1721
1715
 
1722
- void GitRemote::DeleteWorker::HandleOKCallback() {
1723
- if (baton->error_code == GIT_OK) {
1724
- v8::Local<v8::Value> result = Nan::Undefined();
1725
-
1726
- v8::Local<v8::Value> argv[2] = {
1727
- Nan::Null(),
1716
+ void GitRemote::DeleteWorker::HandleErrorCallback() {
1717
+ if (!GetIsCancelled()) {
1718
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
1719
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.delete").ToLocalChecked());
1720
+ v8::Local<v8::Value> argv[1] = {
1721
+ err
1722
+ };
1723
+ callback->Call(1, argv, async_resource);
1724
+ }
1725
+
1726
+ if (baton->error) {
1727
+ if (baton->error->message) {
1728
+ free((void *)baton->error->message);
1729
+ }
1730
+
1731
+ free((void *)baton->error);
1732
+ }
1733
+
1734
+
1735
+ delete baton;
1736
+ }
1737
+
1738
+ void GitRemote::DeleteWorker::HandleOKCallback() {
1739
+ if (baton->error_code == GIT_OK) {
1740
+ v8::Local<v8::Value> result = Nan::Undefined();
1741
+
1742
+ v8::Local<v8::Value> argv[2] = {
1743
+ Nan::Null(),
1728
1744
  result
1729
1745
  };
1730
1746
  callback->Call(2, argv, async_resource);
@@ -1746,46 +1762,15 @@ void GitRemote::DeleteWorker::HandleOKCallback() {
1746
1762
  free((void *)baton->error->message);
1747
1763
  free((void *)baton->error);
1748
1764
  } else if (baton->error_code < 0) {
1749
- std::queue< v8::Local<v8::Value> > workerArguments;
1750
- workerArguments.push(GetFromPersistent("repo"));
1751
- workerArguments.push(GetFromPersistent("name"));
1752
1765
  bool callbackFired = false;
1753
- while(!workerArguments.empty()) {
1754
- v8::Local<v8::Value> node = workerArguments.front();
1755
- workerArguments.pop();
1756
-
1757
- if (
1758
- !node->IsObject()
1759
- || node->IsArray()
1760
- || node->IsBooleanObject()
1761
- || node->IsDate()
1762
- || node->IsFunction()
1763
- || node->IsNumberObject()
1764
- || node->IsRegExp()
1765
- || node->IsStringObject()
1766
- ) {
1767
- continue;
1768
- }
1769
-
1770
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
1771
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
1772
-
1773
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
1766
+ if (!callbackErrorHandle.IsEmpty()) {
1767
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
1768
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
1774
1769
  v8::Local<v8::Value> argv[1] = {
1775
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
1770
+ maybeError
1776
1771
  };
1777
1772
  callback->Call(1, argv, async_resource);
1778
1773
  callbackFired = true;
1779
- break;
1780
- }
1781
-
1782
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
1783
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
1784
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
1785
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
1786
- if (!nodeToQueue->IsUndefined()) {
1787
- workerArguments.push(nodeToQueue);
1788
- }
1789
1774
  }
1790
1775
  }
1791
1776
 
@@ -1813,35 +1798,42 @@ void GitRemote::DeleteWorker::HandleOKCallback() {
1813
1798
  */
1814
1799
  NAN_METHOD(GitRemote::Disconnect) {
1815
1800
 
1816
- if (info.Length() == 0 || !info[0]->IsFunction()) {
1801
+ if (!info[info.Length() - 1]->IsFunction()) {
1817
1802
  return Nan::ThrowError("Callback is required and must be a Function.");
1818
1803
  }
1819
1804
 
1820
- DisconnectBaton* baton = new DisconnectBaton;
1805
+ DisconnectBaton* baton = new DisconnectBaton();
1821
1806
 
1822
1807
  baton->error_code = GIT_OK;
1823
1808
  baton->error = NULL;
1824
1809
 
1810
+
1811
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
1812
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
1813
+
1825
1814
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
1826
1815
 
1827
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[0]));
1828
- DisconnectWorker *worker = new DisconnectWorker(baton, callback);
1816
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
1817
+ DisconnectWorker *worker = new DisconnectWorker(baton, callback, cleanupHandles);
1829
1818
 
1830
- worker->SaveToPersistent("remote", info.This());
1819
+ worker->Reference<GitRemote>("remote", info.This());
1831
1820
 
1832
- AsyncLibgit2QueueWorker(worker);
1821
+ nodegitContext->QueueWorker(worker);
1833
1822
  return;
1834
1823
  }
1835
1824
 
1825
+ nodegit::LockMaster GitRemote::DisconnectWorker::AcquireLocks() {
1826
+ nodegit::LockMaster lockMaster(
1827
+ /*asyncAction: */true
1828
+ ,baton->remote
1829
+ );
1830
+
1831
+ return lockMaster;
1832
+ }
1833
+
1836
1834
  void GitRemote::DisconnectWorker::Execute() {
1837
1835
  git_error_clear();
1838
1836
 
1839
- {
1840
- LockMaster lockMaster(
1841
- /*asyncAction: */true
1842
- ,baton->remote
1843
- );
1844
-
1845
1837
  int result = git_remote_disconnect(
1846
1838
  baton->remote );
1847
1839
 
@@ -1851,13 +1843,34 @@ baton->remote );
1851
1843
  baton->error = git_error_dup(git_error_last());
1852
1844
  }
1853
1845
 
1846
+ }
1847
+
1848
+ void GitRemote::DisconnectWorker::HandleErrorCallback() {
1849
+ if (!GetIsCancelled()) {
1850
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
1851
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.disconnect").ToLocalChecked());
1852
+ v8::Local<v8::Value> argv[1] = {
1853
+ err
1854
+ };
1855
+ callback->Call(1, argv, async_resource);
1856
+ }
1857
+
1858
+ if (baton->error) {
1859
+ if (baton->error->message) {
1860
+ free((void *)baton->error->message);
1861
+ }
1862
+
1863
+ free((void *)baton->error);
1854
1864
  }
1865
+
1866
+
1867
+ delete baton;
1855
1868
  }
1856
1869
 
1857
1870
  void GitRemote::DisconnectWorker::HandleOKCallback() {
1858
1871
  if (baton->error_code == GIT_OK) {
1859
1872
  v8::Local<v8::Value> result = Nan::Undefined();
1860
-
1873
+
1861
1874
  v8::Local<v8::Value> argv[2] = {
1862
1875
  Nan::Null(),
1863
1876
  result
@@ -1881,44 +1894,15 @@ void GitRemote::DisconnectWorker::HandleOKCallback() {
1881
1894
  free((void *)baton->error->message);
1882
1895
  free((void *)baton->error);
1883
1896
  } else if (baton->error_code < 0) {
1884
- std::queue< v8::Local<v8::Value> > workerArguments;
1885
1897
  bool callbackFired = false;
1886
- while(!workerArguments.empty()) {
1887
- v8::Local<v8::Value> node = workerArguments.front();
1888
- workerArguments.pop();
1889
-
1890
- if (
1891
- !node->IsObject()
1892
- || node->IsArray()
1893
- || node->IsBooleanObject()
1894
- || node->IsDate()
1895
- || node->IsFunction()
1896
- || node->IsNumberObject()
1897
- || node->IsRegExp()
1898
- || node->IsStringObject()
1899
- ) {
1900
- continue;
1901
- }
1902
-
1903
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
1904
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
1905
-
1906
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
1898
+ if (!callbackErrorHandle.IsEmpty()) {
1899
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
1900
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
1907
1901
  v8::Local<v8::Value> argv[1] = {
1908
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
1902
+ maybeError
1909
1903
  };
1910
1904
  callback->Call(1, argv, async_resource);
1911
1905
  callbackFired = true;
1912
- break;
1913
- }
1914
-
1915
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
1916
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
1917
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
1918
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
1919
- if (!nodeToQueue->IsUndefined()) {
1920
- workerArguments.push(nodeToQueue);
1921
- }
1922
1906
  }
1923
1907
  }
1924
1908
 
@@ -1948,19 +1932,19 @@ void GitRemote::DisconnectWorker::HandleOKCallback() {
1948
1932
  */
1949
1933
  NAN_METHOD(GitRemote::Download) {
1950
1934
 
1951
- if (info.Length() == 1 || !info[1]->IsObject()) {
1952
- return Nan::ThrowError("FetchOptions opts is required.");
1953
- }
1954
-
1955
- if (info.Length() == 2 || !info[2]->IsFunction()) {
1935
+ if (!info[info.Length() - 1]->IsFunction()) {
1956
1936
  return Nan::ThrowError("Callback is required and must be a Function.");
1957
1937
  }
1958
1938
 
1959
- DownloadBaton* baton = new DownloadBaton;
1939
+ DownloadBaton* baton = new DownloadBaton();
1960
1940
 
1961
1941
  baton->error_code = GIT_OK;
1962
1942
  baton->error = NULL;
1963
1943
 
1944
+
1945
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
1946
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
1947
+
1964
1948
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
1965
1949
  // start convert_from_v8 block
1966
1950
  const git_strarray * from_refspecs = NULL;
@@ -1968,36 +1952,45 @@ NAN_METHOD(GitRemote::Download) {
1968
1952
  from_refspecs = StrArrayConverter::Convert(info[0]);
1969
1953
  // end convert_from_v8 block
1970
1954
  baton->refspecs = from_refspecs;
1971
- // start convert_from_v8 block
1972
- const git_fetch_options * from_opts = NULL;
1973
- from_opts = Nan::ObjectWrap::Unwrap<GitFetchOptions>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
1974
- // end convert_from_v8 block
1975
- baton->opts = from_opts;
1955
+ if (info[1]->IsNull() || info[1]->IsUndefined()) {
1956
+ baton->opts = nullptr;
1957
+ } else
1958
+ {
1959
+ auto conversionResult = ConfigurableGitFetchOptions::fromJavascript(nodegitContext, info[1]);
1960
+ if (!conversionResult.result) {
1961
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
1962
+ }
1963
+
1964
+ auto convertedObject = conversionResult.result;
1965
+ cleanupHandles["opts"] = convertedObject;
1966
+ baton->opts = convertedObject->GetValue();
1967
+ }
1968
+
1969
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
1970
+ DownloadWorker *worker = new DownloadWorker(baton, callback, cleanupHandles);
1976
1971
 
1977
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[2]));
1978
- DownloadWorker *worker = new DownloadWorker(baton, callback);
1972
+ worker->Reference<GitRemote>("remote", info.This());
1973
+ worker->Reference("refspecs", info[0]);
1974
+ worker->Reference("opts", info[1]);
1975
+
1976
+ nodegitContext->QueueWorker(worker);
1977
+ return;
1978
+ }
1979
1979
 
1980
- worker->SaveToPersistent("remote", info.This());
1981
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
1982
- worker->SaveToPersistent("refspecs", Nan::To<v8::Object>(info[0]).ToLocalChecked());
1983
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
1984
- worker->SaveToPersistent("opts", Nan::To<v8::Object>(info[1]).ToLocalChecked());
1980
+ nodegit::LockMaster GitRemote::DownloadWorker::AcquireLocks() {
1981
+ nodegit::LockMaster lockMaster(
1982
+ /*asyncAction: */true
1983
+ ,baton->remote
1984
+ ,baton->refspecs
1985
+ ,baton->opts
1986
+ );
1985
1987
 
1986
- AsyncLibgit2QueueWorker(worker);
1987
- return;
1988
+ return lockMaster;
1988
1989
  }
1989
1990
 
1990
1991
  void GitRemote::DownloadWorker::Execute() {
1991
1992
  git_error_clear();
1992
1993
 
1993
- {
1994
- LockMaster lockMaster(
1995
- /*asyncAction: */true
1996
- ,baton->remote
1997
- ,baton->refspecs
1998
- ,baton->opts
1999
- );
2000
-
2001
1994
  int result = git_remote_download(
2002
1995
  baton->remote,baton->refspecs,baton->opts );
2003
1996
 
@@ -2007,13 +2000,34 @@ baton->remote,baton->refspecs,baton->opts );
2007
2000
  baton->error = git_error_dup(git_error_last());
2008
2001
  }
2009
2002
 
2003
+ }
2004
+
2005
+ void GitRemote::DownloadWorker::HandleErrorCallback() {
2006
+ if (!GetIsCancelled()) {
2007
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
2008
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.download").ToLocalChecked());
2009
+ v8::Local<v8::Value> argv[1] = {
2010
+ err
2011
+ };
2012
+ callback->Call(1, argv, async_resource);
2010
2013
  }
2014
+
2015
+ if (baton->error) {
2016
+ if (baton->error->message) {
2017
+ free((void *)baton->error->message);
2018
+ }
2019
+
2020
+ free((void *)baton->error);
2021
+ }
2022
+
2023
+
2024
+ delete baton;
2011
2025
  }
2012
2026
 
2013
2027
  void GitRemote::DownloadWorker::HandleOKCallback() {
2014
2028
  if (baton->error_code == GIT_OK) {
2015
2029
  v8::Local<v8::Value> result = Nan::Undefined();
2016
-
2030
+
2017
2031
  v8::Local<v8::Value> argv[2] = {
2018
2032
  Nan::Null(),
2019
2033
  result
@@ -2037,46 +2051,15 @@ void GitRemote::DownloadWorker::HandleOKCallback() {
2037
2051
  free((void *)baton->error->message);
2038
2052
  free((void *)baton->error);
2039
2053
  } else if (baton->error_code < 0) {
2040
- std::queue< v8::Local<v8::Value> > workerArguments;
2041
- workerArguments.push(GetFromPersistent("refspecs"));
2042
- workerArguments.push(GetFromPersistent("opts"));
2043
2054
  bool callbackFired = false;
2044
- while(!workerArguments.empty()) {
2045
- v8::Local<v8::Value> node = workerArguments.front();
2046
- workerArguments.pop();
2047
-
2048
- if (
2049
- !node->IsObject()
2050
- || node->IsArray()
2051
- || node->IsBooleanObject()
2052
- || node->IsDate()
2053
- || node->IsFunction()
2054
- || node->IsNumberObject()
2055
- || node->IsRegExp()
2056
- || node->IsStringObject()
2057
- ) {
2058
- continue;
2059
- }
2060
-
2061
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
2062
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
2063
-
2064
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
2055
+ if (!callbackErrorHandle.IsEmpty()) {
2056
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
2057
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
2065
2058
  v8::Local<v8::Value> argv[1] = {
2066
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
2059
+ maybeError
2067
2060
  };
2068
2061
  callback->Call(1, argv, async_resource);
2069
2062
  callbackFired = true;
2070
- break;
2071
- }
2072
-
2073
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
2074
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
2075
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
2076
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
2077
- if (!nodeToQueue->IsUndefined()) {
2078
- workerArguments.push(nodeToQueue);
2079
- }
2080
2063
  }
2081
2064
  }
2082
2065
 
@@ -2105,35 +2088,42 @@ void GitRemote::DownloadWorker::HandleOKCallback() {
2105
2088
  */
2106
2089
  NAN_METHOD(GitRemote::Dup) {
2107
2090
 
2108
- if (info.Length() == 0 || !info[0]->IsFunction()) {
2091
+ if (!info[info.Length() - 1]->IsFunction()) {
2109
2092
  return Nan::ThrowError("Callback is required and must be a Function.");
2110
2093
  }
2111
2094
 
2112
- DupBaton* baton = new DupBaton;
2095
+ DupBaton* baton = new DupBaton();
2113
2096
 
2114
2097
  baton->error_code = GIT_OK;
2115
2098
  baton->error = NULL;
2116
2099
 
2100
+
2101
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
2102
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
2103
+
2117
2104
  baton->source = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
2118
2105
 
2119
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[0]));
2120
- DupWorker *worker = new DupWorker(baton, callback);
2106
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
2107
+ DupWorker *worker = new DupWorker(baton, callback, cleanupHandles);
2121
2108
 
2122
- worker->SaveToPersistent("source", info.This());
2109
+ worker->Reference<GitRemote>("source", info.This());
2123
2110
 
2124
- AsyncLibgit2QueueWorker(worker);
2111
+ nodegitContext->QueueWorker(worker);
2125
2112
  return;
2126
2113
  }
2127
2114
 
2115
+ nodegit::LockMaster GitRemote::DupWorker::AcquireLocks() {
2116
+ nodegit::LockMaster lockMaster(
2117
+ /*asyncAction: */true
2118
+ ,baton->source
2119
+ );
2120
+
2121
+ return lockMaster;
2122
+ }
2123
+
2128
2124
  void GitRemote::DupWorker::Execute() {
2129
2125
  git_error_clear();
2130
2126
 
2131
- {
2132
- LockMaster lockMaster(
2133
- /*asyncAction: */true
2134
- ,baton->source
2135
- );
2136
-
2137
2127
  int result = git_remote_dup(
2138
2128
  &baton->dest,baton->source );
2139
2129
 
@@ -2143,12 +2133,34 @@ void GitRemote::DupWorker::Execute() {
2143
2133
  baton->error = git_error_dup(git_error_last());
2144
2134
  }
2145
2135
 
2136
+ }
2137
+
2138
+ void GitRemote::DupWorker::HandleErrorCallback() {
2139
+ if (!GetIsCancelled()) {
2140
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
2141
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.dup").ToLocalChecked());
2142
+ v8::Local<v8::Value> argv[1] = {
2143
+ err
2144
+ };
2145
+ callback->Call(1, argv, async_resource);
2146
+ }
2147
+
2148
+ if (baton->error) {
2149
+ if (baton->error->message) {
2150
+ free((void *)baton->error->message);
2151
+ }
2152
+
2153
+ free((void *)baton->error);
2146
2154
  }
2155
+
2156
+ free(baton->dest);
2157
+
2158
+ delete baton;
2147
2159
  }
2148
2160
 
2149
2161
  void GitRemote::DupWorker::HandleOKCallback() {
2150
2162
  if (baton->error_code == GIT_OK) {
2151
- v8::Local<v8::Value> to;
2163
+ v8::Local<v8::Value> v8ConversionSlot;
2152
2164
  // start convert_to_v8 block
2153
2165
  if (baton->dest != NULL) {
2154
2166
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
@@ -2160,18 +2172,18 @@ void GitRemote::DupWorker::HandleOKCallback() {
2160
2172
  true
2161
2173
  )).ToLocalChecked()
2162
2174
  );
2163
- to = GitRemote::New(
2175
+ v8ConversionSlot = GitRemote::New(
2164
2176
  baton->dest,
2165
2177
  true
2166
2178
  , owners
2167
2179
  );
2168
2180
  }
2169
2181
  else {
2170
- to = Nan::Null();
2182
+ v8ConversionSlot = Nan::Null();
2171
2183
  }
2172
2184
  // end convert_to_v8 block
2173
- v8::Local<v8::Value> result = to;
2174
-
2185
+ v8::Local<v8::Value> result = v8ConversionSlot;
2186
+
2175
2187
  v8::Local<v8::Value> argv[2] = {
2176
2188
  Nan::Null(),
2177
2189
  result
@@ -2195,44 +2207,15 @@ void GitRemote::DupWorker::HandleOKCallback() {
2195
2207
  free((void *)baton->error->message);
2196
2208
  free((void *)baton->error);
2197
2209
  } else if (baton->error_code < 0) {
2198
- std::queue< v8::Local<v8::Value> > workerArguments;
2199
2210
  bool callbackFired = false;
2200
- while(!workerArguments.empty()) {
2201
- v8::Local<v8::Value> node = workerArguments.front();
2202
- workerArguments.pop();
2203
-
2204
- if (
2205
- !node->IsObject()
2206
- || node->IsArray()
2207
- || node->IsBooleanObject()
2208
- || node->IsDate()
2209
- || node->IsFunction()
2210
- || node->IsNumberObject()
2211
- || node->IsRegExp()
2212
- || node->IsStringObject()
2213
- ) {
2214
- continue;
2215
- }
2216
-
2217
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
2218
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
2219
-
2220
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
2211
+ if (!callbackErrorHandle.IsEmpty()) {
2212
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
2213
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
2221
2214
  v8::Local<v8::Value> argv[1] = {
2222
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
2215
+ maybeError
2223
2216
  };
2224
2217
  callback->Call(1, argv, async_resource);
2225
2218
  callbackFired = true;
2226
- break;
2227
- }
2228
-
2229
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
2230
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
2231
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
2232
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
2233
- if (!nodeToQueue->IsUndefined()) {
2234
- workerArguments.push(nodeToQueue);
2235
- }
2236
2219
  }
2237
2220
  }
2238
2221
 
@@ -2249,6 +2232,7 @@ void GitRemote::DupWorker::HandleOKCallback() {
2249
2232
  callback->Call(0, NULL, async_resource);
2250
2233
  }
2251
2234
 
2235
+ free(baton->dest);
2252
2236
  }
2253
2237
 
2254
2238
 
@@ -2263,19 +2247,19 @@ void GitRemote::DupWorker::HandleOKCallback() {
2263
2247
  */
2264
2248
  NAN_METHOD(GitRemote::Fetch) {
2265
2249
 
2266
- if (info.Length() == 1 || !info[1]->IsObject()) {
2267
- return Nan::ThrowError("FetchOptions opts is required.");
2268
- }
2269
-
2270
- if (info.Length() == 3 || !info[3]->IsFunction()) {
2250
+ if (!info[info.Length() - 1]->IsFunction()) {
2271
2251
  return Nan::ThrowError("Callback is required and must be a Function.");
2272
2252
  }
2273
2253
 
2274
- FetchBaton* baton = new FetchBaton;
2254
+ FetchBaton* baton = new FetchBaton();
2275
2255
 
2276
2256
  baton->error_code = GIT_OK;
2277
2257
  baton->error = NULL;
2278
2258
 
2259
+
2260
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
2261
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
2262
+
2279
2263
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
2280
2264
  // start convert_from_v8 block
2281
2265
  const git_strarray * from_refspecs = NULL;
@@ -2283,14 +2267,22 @@ NAN_METHOD(GitRemote::Fetch) {
2283
2267
  from_refspecs = StrArrayConverter::Convert(info[0]);
2284
2268
  // end convert_from_v8 block
2285
2269
  baton->refspecs = from_refspecs;
2286
- // start convert_from_v8 block
2287
- const git_fetch_options * from_opts = NULL;
2288
- from_opts = Nan::ObjectWrap::Unwrap<GitFetchOptions>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
2289
- // end convert_from_v8 block
2290
- baton->opts = from_opts;
2291
- // start convert_from_v8 block
2270
+ if (info[1]->IsNull() || info[1]->IsUndefined()) {
2271
+ baton->opts = nullptr;
2272
+ } else
2273
+ {
2274
+ auto conversionResult = ConfigurableGitFetchOptions::fromJavascript(nodegitContext, info[1]);
2275
+ if (!conversionResult.result) {
2276
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
2277
+ }
2278
+
2279
+ auto convertedObject = conversionResult.result;
2280
+ cleanupHandles["opts"] = convertedObject;
2281
+ baton->opts = convertedObject->GetValue();
2282
+ }
2283
+ // start convert_from_v8 block
2292
2284
  const char * from_reflog_message = NULL;
2293
- if (info[2]->IsString()) {
2285
+ if ((info.Length() - 1) > 2 && info[2]->IsString()) {
2294
2286
 
2295
2287
  Nan::Utf8String reflog_message(Nan::To<v8::String>(info[2]).ToLocalChecked());
2296
2288
  // malloc with one extra byte so we can add the terminating null character C-strings expect:
@@ -2308,33 +2300,33 @@ from_opts = Nan::ObjectWrap::Unwrap<GitFetchOptions>(Nan::To<v8::Object>(info[1]
2308
2300
  // end convert_from_v8 block
2309
2301
  baton->reflog_message = from_reflog_message;
2310
2302
 
2311
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[3]));
2312
- FetchWorker *worker = new FetchWorker(baton, callback);
2303
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
2304
+ FetchWorker *worker = new FetchWorker(baton, callback, cleanupHandles);
2313
2305
 
2314
- worker->SaveToPersistent("remote", info.This());
2315
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
2316
- worker->SaveToPersistent("refspecs", Nan::To<v8::Object>(info[0]).ToLocalChecked());
2317
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
2318
- worker->SaveToPersistent("opts", Nan::To<v8::Object>(info[1]).ToLocalChecked());
2319
- if (!info[2]->IsUndefined() && !info[2]->IsNull())
2320
- worker->SaveToPersistent("reflog_message", Nan::To<v8::Object>(info[2]).ToLocalChecked());
2321
-
2322
- AsyncLibgit2QueueWorker(worker);
2306
+ worker->Reference<GitRemote>("remote", info.This());
2307
+ worker->Reference("refspecs", info[0]);
2308
+ worker->Reference("opts", info[1]);
2309
+ worker->Reference("reflog_message", info[2]);
2310
+
2311
+ nodegitContext->QueueWorker(worker);
2323
2312
  return;
2324
2313
  }
2325
2314
 
2315
+ nodegit::LockMaster GitRemote::FetchWorker::AcquireLocks() {
2316
+ nodegit::LockMaster lockMaster(
2317
+ /*asyncAction: */true
2318
+ ,baton->remote
2319
+ ,baton->refspecs
2320
+ ,baton->opts
2321
+ ,baton->reflog_message
2322
+ );
2323
+
2324
+ return lockMaster;
2325
+ }
2326
+
2326
2327
  void GitRemote::FetchWorker::Execute() {
2327
2328
  git_error_clear();
2328
2329
 
2329
- {
2330
- LockMaster lockMaster(
2331
- /*asyncAction: */true
2332
- ,baton->remote
2333
- ,baton->refspecs
2334
- ,baton->opts
2335
- ,baton->reflog_message
2336
- );
2337
-
2338
2330
  int result = git_remote_fetch(
2339
2331
  baton->remote,baton->refspecs,baton->opts,baton->reflog_message );
2340
2332
 
@@ -2344,13 +2336,34 @@ baton->remote,baton->refspecs,baton->opts,baton->reflog_message );
2344
2336
  baton->error = git_error_dup(git_error_last());
2345
2337
  }
2346
2338
 
2339
+ }
2340
+
2341
+ void GitRemote::FetchWorker::HandleErrorCallback() {
2342
+ if (!GetIsCancelled()) {
2343
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
2344
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.fetch").ToLocalChecked());
2345
+ v8::Local<v8::Value> argv[1] = {
2346
+ err
2347
+ };
2348
+ callback->Call(1, argv, async_resource);
2347
2349
  }
2350
+
2351
+ if (baton->error) {
2352
+ if (baton->error->message) {
2353
+ free((void *)baton->error->message);
2354
+ }
2355
+
2356
+ free((void *)baton->error);
2357
+ }
2358
+
2359
+
2360
+ delete baton;
2348
2361
  }
2349
2362
 
2350
2363
  void GitRemote::FetchWorker::HandleOKCallback() {
2351
2364
  if (baton->error_code == GIT_OK) {
2352
2365
  v8::Local<v8::Value> result = Nan::Undefined();
2353
-
2366
+
2354
2367
  v8::Local<v8::Value> argv[2] = {
2355
2368
  Nan::Null(),
2356
2369
  result
@@ -2374,47 +2387,15 @@ void GitRemote::FetchWorker::HandleOKCallback() {
2374
2387
  free((void *)baton->error->message);
2375
2388
  free((void *)baton->error);
2376
2389
  } else if (baton->error_code < 0) {
2377
- std::queue< v8::Local<v8::Value> > workerArguments;
2378
- workerArguments.push(GetFromPersistent("refspecs"));
2379
- workerArguments.push(GetFromPersistent("opts"));
2380
- workerArguments.push(GetFromPersistent("reflog_message"));
2381
2390
  bool callbackFired = false;
2382
- while(!workerArguments.empty()) {
2383
- v8::Local<v8::Value> node = workerArguments.front();
2384
- workerArguments.pop();
2385
-
2386
- if (
2387
- !node->IsObject()
2388
- || node->IsArray()
2389
- || node->IsBooleanObject()
2390
- || node->IsDate()
2391
- || node->IsFunction()
2392
- || node->IsNumberObject()
2393
- || node->IsRegExp()
2394
- || node->IsStringObject()
2395
- ) {
2396
- continue;
2397
- }
2398
-
2399
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
2400
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
2401
-
2402
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
2391
+ if (!callbackErrorHandle.IsEmpty()) {
2392
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
2393
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
2403
2394
  v8::Local<v8::Value> argv[1] = {
2404
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
2395
+ maybeError
2405
2396
  };
2406
2397
  callback->Call(1, argv, async_resource);
2407
2398
  callbackFired = true;
2408
- break;
2409
- }
2410
-
2411
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
2412
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
2413
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
2414
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
2415
- if (!nodeToQueue->IsUndefined()) {
2416
- workerArguments.push(nodeToQueue);
2417
- }
2418
2399
  }
2419
2400
  }
2420
2401
 
@@ -2443,37 +2424,44 @@ void GitRemote::FetchWorker::HandleOKCallback() {
2443
2424
  */
2444
2425
  NAN_METHOD(GitRemote::GetFetchRefspecs) {
2445
2426
 
2446
- if (info.Length() == 0 || !info[0]->IsFunction()) {
2427
+ if (!info[info.Length() - 1]->IsFunction()) {
2447
2428
  return Nan::ThrowError("Callback is required and must be a Function.");
2448
2429
  }
2449
2430
 
2450
- GetFetchRefspecsBaton* baton = new GetFetchRefspecsBaton;
2431
+ GetFetchRefspecsBaton* baton = new GetFetchRefspecsBaton();
2451
2432
 
2452
2433
  baton->error_code = GIT_OK;
2453
2434
  baton->error = NULL;
2454
2435
 
2436
+
2437
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
2438
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
2439
+
2455
2440
  baton->array = (git_strarray *)malloc(sizeof(git_strarray ));
2456
2441
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
2457
2442
 
2458
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[0]));
2459
- GetFetchRefspecsWorker *worker = new GetFetchRefspecsWorker(baton, callback);
2443
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
2444
+ GetFetchRefspecsWorker *worker = new GetFetchRefspecsWorker(baton, callback, cleanupHandles);
2460
2445
 
2461
- worker->SaveToPersistent("remote", info.This());
2446
+ worker->Reference<GitRemote>("remote", info.This());
2462
2447
 
2463
- AsyncLibgit2QueueWorker(worker);
2448
+ nodegitContext->QueueWorker(worker);
2464
2449
  return;
2465
2450
  }
2466
2451
 
2452
+ nodegit::LockMaster GitRemote::GetFetchRefspecsWorker::AcquireLocks() {
2453
+ nodegit::LockMaster lockMaster(
2454
+ /*asyncAction: */true
2455
+ ,baton->array
2456
+ ,baton->remote
2457
+ );
2458
+
2459
+ return lockMaster;
2460
+ }
2461
+
2467
2462
  void GitRemote::GetFetchRefspecsWorker::Execute() {
2468
2463
  git_error_clear();
2469
2464
 
2470
- {
2471
- LockMaster lockMaster(
2472
- /*asyncAction: */true
2473
- ,baton->array
2474
- ,baton->remote
2475
- );
2476
-
2477
2465
  int result = git_remote_get_fetch_refspecs(
2478
2466
  baton->array,baton->remote );
2479
2467
 
@@ -2483,22 +2471,44 @@ baton->array,baton->remote );
2483
2471
  baton->error = git_error_dup(git_error_last());
2484
2472
  }
2485
2473
 
2474
+ }
2475
+
2476
+ void GitRemote::GetFetchRefspecsWorker::HandleErrorCallback() {
2477
+ if (!GetIsCancelled()) {
2478
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
2479
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.getFetchRefspecs").ToLocalChecked());
2480
+ v8::Local<v8::Value> argv[1] = {
2481
+ err
2482
+ };
2483
+ callback->Call(1, argv, async_resource);
2486
2484
  }
2485
+
2486
+ if (baton->error) {
2487
+ if (baton->error->message) {
2488
+ free((void *)baton->error->message);
2489
+ }
2490
+
2491
+ free((void *)baton->error);
2492
+ }
2493
+
2494
+ free((void*)baton->array);
2495
+
2496
+ delete baton;
2487
2497
  }
2488
2498
 
2489
2499
  void GitRemote::GetFetchRefspecsWorker::HandleOKCallback() {
2490
2500
  if (baton->error_code == GIT_OK) {
2491
- v8::Local<v8::Value> to;
2501
+ v8::Local<v8::Value> v8ConversionSlot;
2492
2502
  // start convert_to_v8 block
2493
2503
  v8::Local<Array> tmpArray = Nan::New<Array>(baton->array->count);
2494
2504
  for (unsigned int i = 0; i < baton->array->count; i++) {
2495
2505
  Nan::Set(tmpArray, Nan::New<Number>(i), Nan::New<v8::String>(baton->array->strings[i]).ToLocalChecked());
2496
2506
  }
2497
2507
 
2498
- to = tmpArray;
2508
+ v8ConversionSlot = tmpArray;
2499
2509
  // end convert_to_v8 block
2500
- v8::Local<v8::Value> result = to;
2501
-
2510
+ v8::Local<v8::Value> result = v8ConversionSlot;
2511
+
2502
2512
  v8::Local<v8::Value> argv[2] = {
2503
2513
  Nan::Null(),
2504
2514
  result
@@ -2522,44 +2532,15 @@ void GitRemote::GetFetchRefspecsWorker::HandleOKCallback() {
2522
2532
  free((void *)baton->error->message);
2523
2533
  free((void *)baton->error);
2524
2534
  } else if (baton->error_code < 0) {
2525
- std::queue< v8::Local<v8::Value> > workerArguments;
2526
2535
  bool callbackFired = false;
2527
- while(!workerArguments.empty()) {
2528
- v8::Local<v8::Value> node = workerArguments.front();
2529
- workerArguments.pop();
2530
-
2531
- if (
2532
- !node->IsObject()
2533
- || node->IsArray()
2534
- || node->IsBooleanObject()
2535
- || node->IsDate()
2536
- || node->IsFunction()
2537
- || node->IsNumberObject()
2538
- || node->IsRegExp()
2539
- || node->IsStringObject()
2540
- ) {
2541
- continue;
2542
- }
2543
-
2544
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
2545
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
2546
-
2547
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
2536
+ if (!callbackErrorHandle.IsEmpty()) {
2537
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
2538
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
2548
2539
  v8::Local<v8::Value> argv[1] = {
2549
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
2540
+ maybeError
2550
2541
  };
2551
2542
  callback->Call(1, argv, async_resource);
2552
2543
  callbackFired = true;
2553
- break;
2554
- }
2555
-
2556
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
2557
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
2558
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
2559
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
2560
- if (!nodeToQueue->IsUndefined()) {
2561
- workerArguments.push(nodeToQueue);
2562
- }
2563
2544
  }
2564
2545
  }
2565
2546
 
@@ -2579,7 +2560,6 @@ void GitRemote::GetFetchRefspecsWorker::HandleOKCallback() {
2579
2560
  free((void*)baton->array);
2580
2561
  }
2581
2562
 
2582
- free((void *)baton->array);
2583
2563
 
2584
2564
  delete baton;
2585
2565
  }
@@ -2590,37 +2570,44 @@ void GitRemote::GetFetchRefspecsWorker::HandleOKCallback() {
2590
2570
  */
2591
2571
  NAN_METHOD(GitRemote::GetPushRefspecs) {
2592
2572
 
2593
- if (info.Length() == 0 || !info[0]->IsFunction()) {
2573
+ if (!info[info.Length() - 1]->IsFunction()) {
2594
2574
  return Nan::ThrowError("Callback is required and must be a Function.");
2595
2575
  }
2596
2576
 
2597
- GetPushRefspecsBaton* baton = new GetPushRefspecsBaton;
2577
+ GetPushRefspecsBaton* baton = new GetPushRefspecsBaton();
2598
2578
 
2599
2579
  baton->error_code = GIT_OK;
2600
2580
  baton->error = NULL;
2601
2581
 
2582
+
2583
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
2584
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
2585
+
2602
2586
  baton->array = (git_strarray *)malloc(sizeof(git_strarray ));
2603
2587
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
2604
2588
 
2605
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[0]));
2606
- GetPushRefspecsWorker *worker = new GetPushRefspecsWorker(baton, callback);
2589
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
2590
+ GetPushRefspecsWorker *worker = new GetPushRefspecsWorker(baton, callback, cleanupHandles);
2607
2591
 
2608
- worker->SaveToPersistent("remote", info.This());
2592
+ worker->Reference<GitRemote>("remote", info.This());
2609
2593
 
2610
- AsyncLibgit2QueueWorker(worker);
2594
+ nodegitContext->QueueWorker(worker);
2611
2595
  return;
2612
2596
  }
2613
2597
 
2598
+ nodegit::LockMaster GitRemote::GetPushRefspecsWorker::AcquireLocks() {
2599
+ nodegit::LockMaster lockMaster(
2600
+ /*asyncAction: */true
2601
+ ,baton->array
2602
+ ,baton->remote
2603
+ );
2604
+
2605
+ return lockMaster;
2606
+ }
2607
+
2614
2608
  void GitRemote::GetPushRefspecsWorker::Execute() {
2615
2609
  git_error_clear();
2616
2610
 
2617
- {
2618
- LockMaster lockMaster(
2619
- /*asyncAction: */true
2620
- ,baton->array
2621
- ,baton->remote
2622
- );
2623
-
2624
2611
  int result = git_remote_get_push_refspecs(
2625
2612
  baton->array,baton->remote );
2626
2613
 
@@ -2630,22 +2617,44 @@ baton->array,baton->remote );
2630
2617
  baton->error = git_error_dup(git_error_last());
2631
2618
  }
2632
2619
 
2620
+ }
2621
+
2622
+ void GitRemote::GetPushRefspecsWorker::HandleErrorCallback() {
2623
+ if (!GetIsCancelled()) {
2624
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
2625
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.getPushRefspecs").ToLocalChecked());
2626
+ v8::Local<v8::Value> argv[1] = {
2627
+ err
2628
+ };
2629
+ callback->Call(1, argv, async_resource);
2630
+ }
2631
+
2632
+ if (baton->error) {
2633
+ if (baton->error->message) {
2634
+ free((void *)baton->error->message);
2635
+ }
2636
+
2637
+ free((void *)baton->error);
2633
2638
  }
2639
+
2640
+ free((void*)baton->array);
2641
+
2642
+ delete baton;
2634
2643
  }
2635
2644
 
2636
2645
  void GitRemote::GetPushRefspecsWorker::HandleOKCallback() {
2637
2646
  if (baton->error_code == GIT_OK) {
2638
- v8::Local<v8::Value> to;
2647
+ v8::Local<v8::Value> v8ConversionSlot;
2639
2648
  // start convert_to_v8 block
2640
2649
  v8::Local<Array> tmpArray = Nan::New<Array>(baton->array->count);
2641
2650
  for (unsigned int i = 0; i < baton->array->count; i++) {
2642
2651
  Nan::Set(tmpArray, Nan::New<Number>(i), Nan::New<v8::String>(baton->array->strings[i]).ToLocalChecked());
2643
2652
  }
2644
2653
 
2645
- to = tmpArray;
2654
+ v8ConversionSlot = tmpArray;
2646
2655
  // end convert_to_v8 block
2647
- v8::Local<v8::Value> result = to;
2648
-
2656
+ v8::Local<v8::Value> result = v8ConversionSlot;
2657
+
2649
2658
  v8::Local<v8::Value> argv[2] = {
2650
2659
  Nan::Null(),
2651
2660
  result
@@ -2669,44 +2678,15 @@ void GitRemote::GetPushRefspecsWorker::HandleOKCallback() {
2669
2678
  free((void *)baton->error->message);
2670
2679
  free((void *)baton->error);
2671
2680
  } else if (baton->error_code < 0) {
2672
- std::queue< v8::Local<v8::Value> > workerArguments;
2673
2681
  bool callbackFired = false;
2674
- while(!workerArguments.empty()) {
2675
- v8::Local<v8::Value> node = workerArguments.front();
2676
- workerArguments.pop();
2677
-
2678
- if (
2679
- !node->IsObject()
2680
- || node->IsArray()
2681
- || node->IsBooleanObject()
2682
- || node->IsDate()
2683
- || node->IsFunction()
2684
- || node->IsNumberObject()
2685
- || node->IsRegExp()
2686
- || node->IsStringObject()
2687
- ) {
2688
- continue;
2689
- }
2690
-
2691
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
2692
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
2693
-
2694
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
2682
+ if (!callbackErrorHandle.IsEmpty()) {
2683
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
2684
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
2695
2685
  v8::Local<v8::Value> argv[1] = {
2696
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
2686
+ maybeError
2697
2687
  };
2698
2688
  callback->Call(1, argv, async_resource);
2699
2689
  callbackFired = true;
2700
- break;
2701
- }
2702
-
2703
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
2704
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
2705
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
2706
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
2707
- if (!nodeToQueue->IsUndefined()) {
2708
- workerArguments.push(nodeToQueue);
2709
- }
2710
2690
  }
2711
2691
  }
2712
2692
 
@@ -2726,7 +2706,6 @@ void GitRemote::GetPushRefspecsWorker::HandleOKCallback() {
2726
2706
  free((void*)baton->array);
2727
2707
  }
2728
2708
 
2729
- free((void *)baton->array);
2730
2709
 
2731
2710
  delete baton;
2732
2711
  }
@@ -2750,7 +2729,7 @@ NAN_METHOD(GitRemote::GetRefspec) {
2750
2729
  git_error_clear();
2751
2730
 
2752
2731
  { // lock master scope start
2753
- LockMaster lockMaster(
2732
+ nodegit::LockMaster lockMaster(
2754
2733
  /*asyncAction: */false
2755
2734
  ,
2756
2735
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -2766,22 +2745,22 @@ NAN_METHOD(GitRemote::GetRefspec) {
2766
2745
  return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
2767
2746
  }
2768
2747
 
2769
- v8::Local<v8::Value> to;
2748
+ v8::Local<v8::Value> v8ConversionSlot;
2770
2749
  // start convert_to_v8 block
2771
2750
  if (result != NULL) {
2772
2751
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
2773
2752
  Nan::Set(owners, owners->Length(), info.This());
2774
- to = GitRefspec::New(
2753
+ v8ConversionSlot = GitRefspec::New(
2775
2754
  result,
2776
2755
  false
2777
2756
  , owners
2778
2757
  );
2779
2758
  }
2780
2759
  else {
2781
- to = Nan::Null();
2760
+ v8ConversionSlot = Nan::Null();
2782
2761
  }
2783
2762
  // end convert_to_v8 block
2784
- return info.GetReturnValue().Set(scope.Escape(to));
2763
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
2785
2764
  }
2786
2765
  }
2787
2766
 
@@ -2812,7 +2791,7 @@ NAN_METHOD(GitRemote::IsValidName) {
2812
2791
  git_error_clear();
2813
2792
 
2814
2793
  { // lock master scope start
2815
- LockMaster lockMaster(
2794
+ nodegit::LockMaster lockMaster(
2816
2795
  /*asyncAction: */false
2817
2796
  ,
2818
2797
  from_remote_name
@@ -2823,11 +2802,11 @@ NAN_METHOD(GitRemote::IsValidName) {
2823
2802
  );
2824
2803
 
2825
2804
 
2826
- v8::Local<v8::Value> to;
2805
+ v8::Local<v8::Value> v8ConversionSlot;
2827
2806
  // start convert_to_v8 block
2828
- to = Nan::New<Number>( result);
2807
+ v8ConversionSlot = Nan::New<Number>( result);
2829
2808
  // end convert_to_v8 block
2830
- return info.GetReturnValue().Set(scope.Escape(to));
2809
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
2831
2810
  }
2832
2811
  }
2833
2812
 
@@ -2841,15 +2820,19 @@ NAN_METHOD(GitRemote::List) {
2841
2820
  return Nan::ThrowError("Repository repo is required.");
2842
2821
  }
2843
2822
 
2844
- if (info.Length() == 1 || !info[1]->IsFunction()) {
2823
+ if (!info[info.Length() - 1]->IsFunction()) {
2845
2824
  return Nan::ThrowError("Callback is required and must be a Function.");
2846
2825
  }
2847
2826
 
2848
- ListBaton* baton = new ListBaton;
2827
+ ListBaton* baton = new ListBaton();
2849
2828
 
2850
2829
  baton->error_code = GIT_OK;
2851
2830
  baton->error = NULL;
2852
2831
 
2832
+
2833
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
2834
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
2835
+
2853
2836
  baton->out = (git_strarray *)malloc(sizeof(git_strarray ));
2854
2837
  // start convert_from_v8 block
2855
2838
  git_repository * from_repo = NULL;
@@ -2857,26 +2840,28 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
2857
2840
  // end convert_from_v8 block
2858
2841
  baton->repo = from_repo;
2859
2842
 
2860
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[1]));
2861
- ListWorker *worker = new ListWorker(baton, callback);
2862
-
2863
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
2864
- worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
2843
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
2844
+ ListWorker *worker = new ListWorker(baton, callback, cleanupHandles);
2865
2845
 
2866
- AsyncLibgit2QueueWorker(worker);
2846
+ worker->Reference<GitRepository>("repo", info[0]);
2847
+
2848
+ nodegitContext->QueueWorker(worker);
2867
2849
  return;
2868
2850
  }
2869
2851
 
2852
+ nodegit::LockMaster GitRemote::ListWorker::AcquireLocks() {
2853
+ nodegit::LockMaster lockMaster(
2854
+ /*asyncAction: */true
2855
+ ,baton->out
2856
+ ,baton->repo
2857
+ );
2858
+
2859
+ return lockMaster;
2860
+ }
2861
+
2870
2862
  void GitRemote::ListWorker::Execute() {
2871
2863
  git_error_clear();
2872
2864
 
2873
- {
2874
- LockMaster lockMaster(
2875
- /*asyncAction: */true
2876
- ,baton->out
2877
- ,baton->repo
2878
- );
2879
-
2880
2865
  int result = git_remote_list(
2881
2866
  baton->out,baton->repo );
2882
2867
 
@@ -2886,22 +2871,44 @@ baton->out,baton->repo );
2886
2871
  baton->error = git_error_dup(git_error_last());
2887
2872
  }
2888
2873
 
2874
+ }
2875
+
2876
+ void GitRemote::ListWorker::HandleErrorCallback() {
2877
+ if (!GetIsCancelled()) {
2878
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
2879
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.list").ToLocalChecked());
2880
+ v8::Local<v8::Value> argv[1] = {
2881
+ err
2882
+ };
2883
+ callback->Call(1, argv, async_resource);
2889
2884
  }
2885
+
2886
+ if (baton->error) {
2887
+ if (baton->error->message) {
2888
+ free((void *)baton->error->message);
2889
+ }
2890
+
2891
+ free((void *)baton->error);
2892
+ }
2893
+
2894
+ free((void*)baton->out);
2895
+
2896
+ delete baton;
2890
2897
  }
2891
2898
 
2892
2899
  void GitRemote::ListWorker::HandleOKCallback() {
2893
2900
  if (baton->error_code == GIT_OK) {
2894
- v8::Local<v8::Value> to;
2901
+ v8::Local<v8::Value> v8ConversionSlot;
2895
2902
  // start convert_to_v8 block
2896
2903
  v8::Local<Array> tmpArray = Nan::New<Array>(baton->out->count);
2897
2904
  for (unsigned int i = 0; i < baton->out->count; i++) {
2898
2905
  Nan::Set(tmpArray, Nan::New<Number>(i), Nan::New<v8::String>(baton->out->strings[i]).ToLocalChecked());
2899
2906
  }
2900
2907
 
2901
- to = tmpArray;
2908
+ v8ConversionSlot = tmpArray;
2902
2909
  // end convert_to_v8 block
2903
- v8::Local<v8::Value> result = to;
2904
-
2910
+ v8::Local<v8::Value> result = v8ConversionSlot;
2911
+
2905
2912
  v8::Local<v8::Value> argv[2] = {
2906
2913
  Nan::Null(),
2907
2914
  result
@@ -2925,45 +2932,15 @@ void GitRemote::ListWorker::HandleOKCallback() {
2925
2932
  free((void *)baton->error->message);
2926
2933
  free((void *)baton->error);
2927
2934
  } else if (baton->error_code < 0) {
2928
- std::queue< v8::Local<v8::Value> > workerArguments;
2929
- workerArguments.push(GetFromPersistent("repo"));
2930
2935
  bool callbackFired = false;
2931
- while(!workerArguments.empty()) {
2932
- v8::Local<v8::Value> node = workerArguments.front();
2933
- workerArguments.pop();
2934
-
2935
- if (
2936
- !node->IsObject()
2937
- || node->IsArray()
2938
- || node->IsBooleanObject()
2939
- || node->IsDate()
2940
- || node->IsFunction()
2941
- || node->IsNumberObject()
2942
- || node->IsRegExp()
2943
- || node->IsStringObject()
2944
- ) {
2945
- continue;
2946
- }
2947
-
2948
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
2949
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
2950
-
2951
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
2936
+ if (!callbackErrorHandle.IsEmpty()) {
2937
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
2938
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
2952
2939
  v8::Local<v8::Value> argv[1] = {
2953
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
2940
+ maybeError
2954
2941
  };
2955
2942
  callback->Call(1, argv, async_resource);
2956
2943
  callbackFired = true;
2957
- break;
2958
- }
2959
-
2960
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
2961
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
2962
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
2963
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
2964
- if (!nodeToQueue->IsUndefined()) {
2965
- workerArguments.push(nodeToQueue);
2966
- }
2967
2944
  }
2968
2945
  }
2969
2946
 
@@ -2983,7 +2960,6 @@ void GitRemote::ListWorker::HandleOKCallback() {
2983
2960
  free((void*)baton->out);
2984
2961
  }
2985
2962
 
2986
- free((void *)baton->out);
2987
2963
 
2988
2964
  delete baton;
2989
2965
  }
@@ -3004,15 +2980,19 @@ NAN_METHOD(GitRemote::Lookup) {
3004
2980
  return Nan::ThrowError("String name is required.");
3005
2981
  }
3006
2982
 
3007
- if (info.Length() == 2 || !info[2]->IsFunction()) {
2983
+ if (!info[info.Length() - 1]->IsFunction()) {
3008
2984
  return Nan::ThrowError("Callback is required and must be a Function.");
3009
2985
  }
3010
2986
 
3011
- LookupBaton* baton = new LookupBaton;
2987
+ LookupBaton* baton = new LookupBaton();
3012
2988
 
3013
2989
  baton->error_code = GIT_OK;
3014
2990
  baton->error = NULL;
3015
2991
 
2992
+
2993
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
2994
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
2995
+
3016
2996
  // start convert_from_v8 block
3017
2997
  git_repository * from_repo = NULL;
3018
2998
  from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
@@ -3033,28 +3013,29 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3033
3013
  // end convert_from_v8 block
3034
3014
  baton->name = from_name;
3035
3015
 
3036
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[2]));
3037
- LookupWorker *worker = new LookupWorker(baton, callback);
3038
-
3039
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
3040
- worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
3041
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
3042
- worker->SaveToPersistent("name", Nan::To<v8::Object>(info[1]).ToLocalChecked());
3016
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
3017
+ LookupWorker *worker = new LookupWorker(baton, callback, cleanupHandles);
3043
3018
 
3044
- AsyncLibgit2QueueWorker(worker);
3019
+ worker->Reference<GitRepository>("repo", info[0]);
3020
+ worker->Reference("name", info[1]);
3021
+
3022
+ nodegitContext->QueueWorker(worker);
3045
3023
  return;
3046
3024
  }
3047
3025
 
3026
+ nodegit::LockMaster GitRemote::LookupWorker::AcquireLocks() {
3027
+ nodegit::LockMaster lockMaster(
3028
+ /*asyncAction: */true
3029
+ ,baton->repo
3030
+ ,baton->name
3031
+ );
3032
+
3033
+ return lockMaster;
3034
+ }
3035
+
3048
3036
  void GitRemote::LookupWorker::Execute() {
3049
3037
  git_error_clear();
3050
3038
 
3051
- {
3052
- LockMaster lockMaster(
3053
- /*asyncAction: */true
3054
- ,baton->repo
3055
- ,baton->name
3056
- );
3057
-
3058
3039
  int result = git_remote_lookup(
3059
3040
  &baton->out,baton->repo,baton->name );
3060
3041
 
@@ -3064,12 +3045,34 @@ void GitRemote::LookupWorker::Execute() {
3064
3045
  baton->error = git_error_dup(git_error_last());
3065
3046
  }
3066
3047
 
3048
+ }
3049
+
3050
+ void GitRemote::LookupWorker::HandleErrorCallback() {
3051
+ if (!GetIsCancelled()) {
3052
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
3053
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.lookup").ToLocalChecked());
3054
+ v8::Local<v8::Value> argv[1] = {
3055
+ err
3056
+ };
3057
+ callback->Call(1, argv, async_resource);
3067
3058
  }
3059
+
3060
+ if (baton->error) {
3061
+ if (baton->error->message) {
3062
+ free((void *)baton->error->message);
3063
+ }
3064
+
3065
+ free((void *)baton->error);
3066
+ }
3067
+
3068
+ git_remote_free(baton->out);
3069
+
3070
+ delete baton;
3068
3071
  }
3069
3072
 
3070
3073
  void GitRemote::LookupWorker::HandleOKCallback() {
3071
3074
  if (baton->error_code == GIT_OK) {
3072
- v8::Local<v8::Value> to;
3075
+ v8::Local<v8::Value> v8ConversionSlot;
3073
3076
  // start convert_to_v8 block
3074
3077
  if (baton->out != NULL) {
3075
3078
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
@@ -3081,18 +3084,18 @@ void GitRemote::LookupWorker::HandleOKCallback() {
3081
3084
  true
3082
3085
  )).ToLocalChecked()
3083
3086
  );
3084
- to = GitRemote::New(
3087
+ v8ConversionSlot = GitRemote::New(
3085
3088
  baton->out,
3086
3089
  true
3087
3090
  , owners
3088
3091
  );
3089
3092
  }
3090
3093
  else {
3091
- to = Nan::Null();
3094
+ v8ConversionSlot = Nan::Null();
3092
3095
  }
3093
3096
  // end convert_to_v8 block
3094
- v8::Local<v8::Value> result = to;
3095
-
3097
+ v8::Local<v8::Value> result = v8ConversionSlot;
3098
+
3096
3099
  v8::Local<v8::Value> argv[2] = {
3097
3100
  Nan::Null(),
3098
3101
  result
@@ -3116,53 +3119,307 @@ void GitRemote::LookupWorker::HandleOKCallback() {
3116
3119
  free((void *)baton->error->message);
3117
3120
  free((void *)baton->error);
3118
3121
  } else if (baton->error_code < 0) {
3119
- std::queue< v8::Local<v8::Value> > workerArguments;
3120
- workerArguments.push(GetFromPersistent("repo"));
3121
- workerArguments.push(GetFromPersistent("name"));
3122
3122
  bool callbackFired = false;
3123
- while(!workerArguments.empty()) {
3124
- v8::Local<v8::Value> node = workerArguments.front();
3125
- workerArguments.pop();
3126
-
3127
- if (
3128
- !node->IsObject()
3129
- || node->IsArray()
3130
- || node->IsBooleanObject()
3131
- || node->IsDate()
3132
- || node->IsFunction()
3133
- || node->IsNumberObject()
3134
- || node->IsRegExp()
3135
- || node->IsStringObject()
3136
- ) {
3137
- continue;
3138
- }
3139
-
3140
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
3141
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
3142
-
3143
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
3123
+ if (!callbackErrorHandle.IsEmpty()) {
3124
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
3125
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
3144
3126
  v8::Local<v8::Value> argv[1] = {
3145
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
3127
+ maybeError
3146
3128
  };
3147
3129
  callback->Call(1, argv, async_resource);
3148
3130
  callbackFired = true;
3149
- break;
3150
3131
  }
3132
+ }
3133
+
3134
+ if (!callbackFired) {
3135
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error("Method lookup has thrown an error.")).ToLocalChecked();
3136
+ Nan::Set(err, Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
3137
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.lookup").ToLocalChecked());
3138
+ v8::Local<v8::Value> argv[1] = {
3139
+ err
3140
+ };
3141
+ callback->Call(1, argv, async_resource);
3142
+ }
3143
+ } else {
3144
+ callback->Call(0, NULL, async_resource);
3145
+ }
3146
+
3147
+ git_remote_free(baton->out);
3148
+ }
3149
+
3150
+
3151
+ delete baton;
3152
+ }
3153
+
3154
+
3155
+ /*
3156
+ * @return String result */
3157
+ NAN_METHOD(GitRemote::Name) {
3158
+ Nan::EscapableHandleScope scope;
3159
+
3160
+
3161
+ git_error_clear();
3151
3162
 
3152
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
3153
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
3154
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
3155
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
3156
- if (!nodeToQueue->IsUndefined()) {
3157
- workerArguments.push(nodeToQueue);
3163
+ { // lock master scope start
3164
+ nodegit::LockMaster lockMaster(
3165
+ /*asyncAction: */false
3166
+ ,
3167
+ Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3168
+ );
3169
+
3170
+ const char * result = git_remote_name(
3171
+ Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3172
+ );
3173
+
3174
+ // null checks on pointers
3175
+ if (!result) {
3176
+ return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
3177
+ }
3178
+
3179
+ v8::Local<v8::Value> v8ConversionSlot;
3180
+ // start convert_to_v8 block
3181
+ if (result){
3182
+ v8ConversionSlot = Nan::New<v8::String>(result).ToLocalChecked();
3183
+ }
3184
+ else {
3185
+ v8ConversionSlot = Nan::Null();
3186
+ }
3187
+
3188
+ // end convert_to_v8 block
3189
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3190
+ }
3191
+ }
3192
+
3193
+ /*
3194
+ * @param Number valid
3195
+ * @param String remote_name
3196
+ * @return Number result */
3197
+ NAN_METHOD(GitRemote::NameIsValid) {
3198
+ Nan::EscapableHandleScope scope;
3199
+
3200
+ if (info.Length() == 0 || !info[0]->IsNumber()) {
3201
+ return Nan::ThrowError("Number valid is required.");
3202
+ }
3203
+
3204
+ if (info.Length() == 1 || !info[1]->IsString()) {
3205
+ return Nan::ThrowError("String remote_name is required.");
3206
+ }
3207
+
3208
+ // start convert_from_v8 block
3209
+ int * from_valid = NULL;
3210
+ *from_valid = (int) info[0].As<v8::Number>()->Value();
3211
+ // end convert_from_v8 block
3212
+ // start convert_from_v8 block
3213
+ const char * from_remote_name = NULL;
3214
+
3215
+ Nan::Utf8String remote_name(Nan::To<v8::String>(info[1]).ToLocalChecked());
3216
+ // malloc with one extra byte so we can add the terminating null character C-strings expect:
3217
+ from_remote_name = (const char *) malloc(remote_name.length() + 1);
3218
+ // copy the characters from the nodejs string into our C-string (used instead of strdup or strcpy because nulls in
3219
+ // the middle of strings are valid coming from nodejs):
3220
+ memcpy((void *)from_remote_name, *remote_name, remote_name.length());
3221
+ // ensure the final byte of our new string is null, extra casts added to ensure compatibility with various C types
3222
+ // used in the nodejs binding generation:
3223
+ memset((void *)(((char *)from_remote_name) + remote_name.length()), 0, 1);
3224
+ // end convert_from_v8 block
3225
+
3226
+ git_error_clear();
3227
+
3228
+ { // lock master scope start
3229
+ nodegit::LockMaster lockMaster(
3230
+ /*asyncAction: */false
3231
+ ,
3232
+ from_valid
3233
+ ,
3234
+ from_remote_name
3235
+ );
3236
+
3237
+ int result = git_remote_name_is_valid(
3238
+ from_valid
3239
+ , from_remote_name
3240
+ );
3241
+
3242
+
3243
+ v8::Local<v8::Value> v8ConversionSlot;
3244
+ // start convert_to_v8 block
3245
+ v8ConversionSlot = Nan::New<Number>( result);
3246
+ // end convert_to_v8 block
3247
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3248
+ }
3249
+ }
3250
+
3251
+ /*
3252
+ * @return Repository result */
3253
+ NAN_METHOD(GitRemote::Owner) {
3254
+ Nan::EscapableHandleScope scope;
3255
+
3256
+
3257
+ git_error_clear();
3258
+
3259
+ { // lock master scope start
3260
+ nodegit::LockMaster lockMaster(
3261
+ /*asyncAction: */false
3262
+ ,
3263
+ Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3264
+ );
3265
+
3266
+ git_repository * result = git_remote_owner(
3267
+ Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3268
+ );
3269
+
3270
+ // null checks on pointers
3271
+ if (!result) {
3272
+ return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
3273
+ }
3274
+
3275
+ v8::Local<v8::Value> v8ConversionSlot;
3276
+ // start convert_to_v8 block
3277
+ if (result != NULL) {
3278
+ v8ConversionSlot = GitRepository::New(
3279
+ result,
3280
+ true
3281
+ );
3282
+ }
3283
+ else {
3284
+ v8ConversionSlot = Nan::Null();
3285
+ }
3286
+ // end convert_to_v8 block
3287
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3288
+ }
3289
+ }
3290
+
3291
+ /*
3292
+ * @param RemoteCallbacks callbacks
3293
+ */
3294
+ NAN_METHOD(GitRemote::Prune) {
3295
+
3296
+ if (!info[info.Length() - 1]->IsFunction()) {
3297
+ return Nan::ThrowError("Callback is required and must be a Function.");
3298
+ }
3299
+
3300
+ PruneBaton* baton = new PruneBaton();
3301
+
3302
+ baton->error_code = GIT_OK;
3303
+ baton->error = NULL;
3304
+
3305
+
3306
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
3307
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
3308
+
3309
+ baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
3310
+ if (info[0]->IsNull() || info[0]->IsUndefined()) {
3311
+ baton->callbacks = nullptr;
3312
+ } else
3313
+ {
3314
+ auto conversionResult = ConfigurableGitRemoteCallbacks::fromJavascript(nodegitContext, info[0]);
3315
+ if (!conversionResult.result) {
3316
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
3317
+ }
3318
+
3319
+ auto convertedObject = conversionResult.result;
3320
+ cleanupHandles["callbacks"] = convertedObject;
3321
+ baton->callbacks = convertedObject->GetValue();
3158
3322
  }
3323
+
3324
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
3325
+ PruneWorker *worker = new PruneWorker(baton, callback, cleanupHandles);
3326
+
3327
+ worker->Reference<GitRemote>("remote", info.This());
3328
+ worker->Reference("callbacks", info[0]);
3329
+
3330
+ nodegitContext->QueueWorker(worker);
3331
+ return;
3332
+ }
3333
+
3334
+ nodegit::LockMaster GitRemote::PruneWorker::AcquireLocks() {
3335
+ nodegit::LockMaster lockMaster(
3336
+ /*asyncAction: */true
3337
+ ,baton->remote
3338
+ ,baton->callbacks
3339
+ );
3340
+
3341
+ return lockMaster;
3342
+ }
3343
+
3344
+ void GitRemote::PruneWorker::Execute() {
3345
+ git_error_clear();
3346
+
3347
+ int result = git_remote_prune(
3348
+ baton->remote,baton->callbacks );
3349
+
3350
+ baton->error_code = result;
3351
+
3352
+ if (result != GIT_OK && git_error_last() != NULL) {
3353
+ baton->error = git_error_dup(git_error_last());
3354
+ }
3355
+
3356
+ }
3357
+
3358
+ void GitRemote::PruneWorker::HandleErrorCallback() {
3359
+ if (!GetIsCancelled()) {
3360
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
3361
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.prune").ToLocalChecked());
3362
+ v8::Local<v8::Value> argv[1] = {
3363
+ err
3364
+ };
3365
+ callback->Call(1, argv, async_resource);
3366
+ }
3367
+
3368
+ if (baton->error) {
3369
+ if (baton->error->message) {
3370
+ free((void *)baton->error->message);
3371
+ }
3372
+
3373
+ free((void *)baton->error);
3374
+ }
3375
+
3376
+
3377
+ delete baton;
3378
+ }
3379
+
3380
+ void GitRemote::PruneWorker::HandleOKCallback() {
3381
+ if (baton->error_code == GIT_OK) {
3382
+ v8::Local<v8::Value> result = Nan::Undefined();
3383
+
3384
+ v8::Local<v8::Value> argv[2] = {
3385
+ Nan::Null(),
3386
+ result
3387
+ };
3388
+ callback->Call(2, argv, async_resource);
3389
+ } else {
3390
+ if (baton->error) {
3391
+ v8::Local<v8::Object> err;
3392
+ if (baton->error->message) {
3393
+ err = Nan::To<v8::Object>(Nan::Error(baton->error->message)).ToLocalChecked();
3394
+ } else {
3395
+ err = Nan::To<v8::Object>(Nan::Error("Method prune has thrown an error.")).ToLocalChecked();
3396
+ }
3397
+ Nan::Set(err, Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
3398
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.prune").ToLocalChecked());
3399
+ v8::Local<v8::Value> argv[1] = {
3400
+ err
3401
+ };
3402
+ callback->Call(1, argv, async_resource);
3403
+ if (baton->error->message)
3404
+ free((void *)baton->error->message);
3405
+ free((void *)baton->error);
3406
+ } else if (baton->error_code < 0) {
3407
+ bool callbackFired = false;
3408
+ if (!callbackErrorHandle.IsEmpty()) {
3409
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
3410
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
3411
+ v8::Local<v8::Value> argv[1] = {
3412
+ maybeError
3413
+ };
3414
+ callback->Call(1, argv, async_resource);
3415
+ callbackFired = true;
3159
3416
  }
3160
3417
  }
3161
3418
 
3162
3419
  if (!callbackFired) {
3163
- v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error("Method lookup has thrown an error.")).ToLocalChecked();
3420
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error("Method prune has thrown an error.")).ToLocalChecked();
3164
3421
  Nan::Set(err, Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
3165
- Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.lookup").ToLocalChecked());
3422
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.prune").ToLocalChecked());
3166
3423
  v8::Local<v8::Value> argv[1] = {
3167
3424
  err
3168
3425
  };
@@ -3179,124 +3436,6 @@ void GitRemote::LookupWorker::HandleOKCallback() {
3179
3436
  }
3180
3437
 
3181
3438
 
3182
- /*
3183
- * @return String result */
3184
- NAN_METHOD(GitRemote::Name) {
3185
- Nan::EscapableHandleScope scope;
3186
-
3187
-
3188
- git_error_clear();
3189
-
3190
- { // lock master scope start
3191
- LockMaster lockMaster(
3192
- /*asyncAction: */false
3193
- ,
3194
- Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3195
- );
3196
-
3197
- const char * result = git_remote_name(
3198
- Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3199
- );
3200
-
3201
- // null checks on pointers
3202
- if (!result) {
3203
- return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
3204
- }
3205
-
3206
- v8::Local<v8::Value> to;
3207
- // start convert_to_v8 block
3208
- if (result){
3209
- to = Nan::New<v8::String>(result).ToLocalChecked();
3210
- }
3211
- else {
3212
- to = Nan::Null();
3213
- }
3214
-
3215
- // end convert_to_v8 block
3216
- return info.GetReturnValue().Set(scope.Escape(to));
3217
- }
3218
- }
3219
-
3220
- /*
3221
- * @return Repository result */
3222
- NAN_METHOD(GitRemote::Owner) {
3223
- Nan::EscapableHandleScope scope;
3224
-
3225
-
3226
- git_error_clear();
3227
-
3228
- { // lock master scope start
3229
- LockMaster lockMaster(
3230
- /*asyncAction: */false
3231
- ,
3232
- Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3233
- );
3234
-
3235
- git_repository * result = git_remote_owner(
3236
- Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3237
- );
3238
-
3239
- // null checks on pointers
3240
- if (!result) {
3241
- return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
3242
- }
3243
-
3244
- v8::Local<v8::Value> to;
3245
- // start convert_to_v8 block
3246
- if (result != NULL) {
3247
- to = GitRepository::New(
3248
- result,
3249
- true
3250
- );
3251
- }
3252
- else {
3253
- to = Nan::Null();
3254
- }
3255
- // end convert_to_v8 block
3256
- return info.GetReturnValue().Set(scope.Escape(to));
3257
- }
3258
- }
3259
-
3260
- /*
3261
- * @param RemoteCallbacks callbacks
3262
- * @return Number result */
3263
- NAN_METHOD(GitRemote::Prune) {
3264
- Nan::EscapableHandleScope scope;
3265
-
3266
- if (info.Length() == 0 || !info[0]->IsObject()) {
3267
- return Nan::ThrowError("RemoteCallbacks callbacks is required.");
3268
- }
3269
-
3270
- // start convert_from_v8 block
3271
- const git_remote_callbacks * from_callbacks = NULL;
3272
- from_callbacks = Nan::ObjectWrap::Unwrap<GitRemoteCallbacks>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
3273
- // end convert_from_v8 block
3274
-
3275
- git_error_clear();
3276
-
3277
- { // lock master scope start
3278
- LockMaster lockMaster(
3279
- /*asyncAction: */false
3280
- ,
3281
- Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3282
- ,
3283
- from_callbacks
3284
- );
3285
-
3286
- int result = git_remote_prune(
3287
- Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
3288
- , from_callbacks
3289
- );
3290
-
3291
-
3292
- v8::Local<v8::Value> to;
3293
- // start convert_to_v8 block
3294
- to = Nan::New<Number>( result);
3295
- // end convert_to_v8 block
3296
- return info.GetReturnValue().Set(scope.Escape(to));
3297
- }
3298
- }
3299
-
3300
3439
  /*
3301
3440
  * @return Number result */
3302
3441
  NAN_METHOD(GitRemote::PruneRefs) {
@@ -3306,7 +3445,7 @@ NAN_METHOD(GitRemote::PruneRefs) {
3306
3445
  git_error_clear();
3307
3446
 
3308
3447
  { // lock master scope start
3309
- LockMaster lockMaster(
3448
+ nodegit::LockMaster lockMaster(
3310
3449
  /*asyncAction: */false
3311
3450
  ,
3312
3451
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -3317,11 +3456,11 @@ NAN_METHOD(GitRemote::PruneRefs) {
3317
3456
  );
3318
3457
 
3319
3458
 
3320
- v8::Local<v8::Value> to;
3459
+ v8::Local<v8::Value> v8ConversionSlot;
3321
3460
  // start convert_to_v8 block
3322
- to = Nan::New<Number>( result);
3461
+ v8ConversionSlot = Nan::New<Number>( result);
3323
3462
  // end convert_to_v8 block
3324
- return info.GetReturnValue().Set(scope.Escape(to));
3463
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3325
3464
  }
3326
3465
  }
3327
3466
 
@@ -3331,18 +3470,19 @@ NAN_METHOD(GitRemote::PruneRefs) {
3331
3470
  */
3332
3471
  NAN_METHOD(GitRemote::Push) {
3333
3472
 
3334
- if (info.Length() == 0 || !(Nan::To<bool>(info[0]).FromJust())) {
3335
- return Nan::ThrowError("Array, String Object, or string refspecs is required.");
3336
- }
3337
- if (info.Length() == 2 || !info[2]->IsFunction()) {
3473
+ if (!info[info.Length() - 1]->IsFunction()) {
3338
3474
  return Nan::ThrowError("Callback is required and must be a Function.");
3339
3475
  }
3340
3476
 
3341
- PushBaton* baton = new PushBaton;
3477
+ PushBaton* baton = new PushBaton();
3342
3478
 
3343
3479
  baton->error_code = GIT_OK;
3344
3480
  baton->error = NULL;
3345
3481
 
3482
+
3483
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
3484
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
3485
+
3346
3486
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
3347
3487
  // start convert_from_v8 block
3348
3488
  const git_strarray * from_refspecs = NULL;
@@ -3350,41 +3490,45 @@ NAN_METHOD(GitRemote::Push) {
3350
3490
  from_refspecs = StrArrayConverter::Convert(info[0]);
3351
3491
  // end convert_from_v8 block
3352
3492
  baton->refspecs = from_refspecs;
3353
- // start convert_from_v8 block
3354
- const git_push_options * from_opts = NULL;
3355
- if (info[1]->IsObject()) {
3356
- from_opts = Nan::ObjectWrap::Unwrap<GitPushOptions>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
3357
- }
3358
- else {
3359
- from_opts = 0;
3360
- }
3361
- // end convert_from_v8 block
3362
- baton->opts = from_opts;
3493
+ if (info[1]->IsNull() || info[1]->IsUndefined()) {
3494
+ baton->opts = nullptr;
3495
+ } else
3496
+ {
3497
+ auto conversionResult = ConfigurableGitPushOptions::fromJavascript(nodegitContext, info[1]);
3498
+ if (!conversionResult.result) {
3499
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
3500
+ }
3501
+
3502
+ auto convertedObject = conversionResult.result;
3503
+ cleanupHandles["opts"] = convertedObject;
3504
+ baton->opts = convertedObject->GetValue();
3505
+ }
3506
+
3507
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
3508
+ PushWorker *worker = new PushWorker(baton, callback, cleanupHandles);
3363
3509
 
3364
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[2]));
3365
- PushWorker *worker = new PushWorker(baton, callback);
3510
+ worker->Reference<GitRemote>("remote", info.This());
3511
+ worker->Reference("refspecs", info[0]);
3512
+ worker->Reference("opts", info[1]);
3513
+
3514
+ nodegitContext->QueueWorker(worker);
3515
+ return;
3516
+ }
3366
3517
 
3367
- worker->SaveToPersistent("remote", info.This());
3368
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
3369
- worker->SaveToPersistent("refspecs", Nan::To<v8::Object>(info[0]).ToLocalChecked());
3370
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
3371
- worker->SaveToPersistent("opts", Nan::To<v8::Object>(info[1]).ToLocalChecked());
3518
+ nodegit::LockMaster GitRemote::PushWorker::AcquireLocks() {
3519
+ nodegit::LockMaster lockMaster(
3520
+ /*asyncAction: */true
3521
+ ,baton->remote
3522
+ ,baton->refspecs
3523
+ ,baton->opts
3524
+ );
3372
3525
 
3373
- AsyncLibgit2QueueWorker(worker);
3374
- return;
3526
+ return lockMaster;
3375
3527
  }
3376
3528
 
3377
3529
  void GitRemote::PushWorker::Execute() {
3378
3530
  git_error_clear();
3379
3531
 
3380
- {
3381
- LockMaster lockMaster(
3382
- /*asyncAction: */true
3383
- ,baton->remote
3384
- ,baton->refspecs
3385
- ,baton->opts
3386
- );
3387
-
3388
3532
  int result = git_remote_push(
3389
3533
  baton->remote,baton->refspecs,baton->opts );
3390
3534
 
@@ -3394,13 +3538,34 @@ baton->remote,baton->refspecs,baton->opts );
3394
3538
  baton->error = git_error_dup(git_error_last());
3395
3539
  }
3396
3540
 
3541
+ }
3542
+
3543
+ void GitRemote::PushWorker::HandleErrorCallback() {
3544
+ if (!GetIsCancelled()) {
3545
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
3546
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.push").ToLocalChecked());
3547
+ v8::Local<v8::Value> argv[1] = {
3548
+ err
3549
+ };
3550
+ callback->Call(1, argv, async_resource);
3551
+ }
3552
+
3553
+ if (baton->error) {
3554
+ if (baton->error->message) {
3555
+ free((void *)baton->error->message);
3556
+ }
3557
+
3558
+ free((void *)baton->error);
3397
3559
  }
3560
+
3561
+
3562
+ delete baton;
3398
3563
  }
3399
3564
 
3400
3565
  void GitRemote::PushWorker::HandleOKCallback() {
3401
3566
  if (baton->error_code == GIT_OK) {
3402
3567
  v8::Local<v8::Value> result = Nan::Undefined();
3403
-
3568
+
3404
3569
  v8::Local<v8::Value> argv[2] = {
3405
3570
  Nan::Null(),
3406
3571
  result
@@ -3424,46 +3589,15 @@ void GitRemote::PushWorker::HandleOKCallback() {
3424
3589
  free((void *)baton->error->message);
3425
3590
  free((void *)baton->error);
3426
3591
  } else if (baton->error_code < 0) {
3427
- std::queue< v8::Local<v8::Value> > workerArguments;
3428
- workerArguments.push(GetFromPersistent("refspecs"));
3429
- workerArguments.push(GetFromPersistent("opts"));
3430
3592
  bool callbackFired = false;
3431
- while(!workerArguments.empty()) {
3432
- v8::Local<v8::Value> node = workerArguments.front();
3433
- workerArguments.pop();
3434
-
3435
- if (
3436
- !node->IsObject()
3437
- || node->IsArray()
3438
- || node->IsBooleanObject()
3439
- || node->IsDate()
3440
- || node->IsFunction()
3441
- || node->IsNumberObject()
3442
- || node->IsRegExp()
3443
- || node->IsStringObject()
3444
- ) {
3445
- continue;
3446
- }
3447
-
3448
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
3449
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
3450
-
3451
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
3593
+ if (!callbackErrorHandle.IsEmpty()) {
3594
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
3595
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
3452
3596
  v8::Local<v8::Value> argv[1] = {
3453
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
3597
+ maybeError
3454
3598
  };
3455
3599
  callback->Call(1, argv, async_resource);
3456
3600
  callbackFired = true;
3457
- break;
3458
- }
3459
-
3460
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
3461
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
3462
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
3463
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
3464
- if (!nodeToQueue->IsUndefined()) {
3465
- workerArguments.push(nodeToQueue);
3466
- }
3467
3601
  }
3468
3602
  }
3469
3603
 
@@ -3496,7 +3630,7 @@ NAN_METHOD(GitRemote::Pushurl) {
3496
3630
  git_error_clear();
3497
3631
 
3498
3632
  { // lock master scope start
3499
- LockMaster lockMaster(
3633
+ nodegit::LockMaster lockMaster(
3500
3634
  /*asyncAction: */false
3501
3635
  ,
3502
3636
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -3511,17 +3645,17 @@ NAN_METHOD(GitRemote::Pushurl) {
3511
3645
  return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
3512
3646
  }
3513
3647
 
3514
- v8::Local<v8::Value> to;
3648
+ v8::Local<v8::Value> v8ConversionSlot;
3515
3649
  // start convert_to_v8 block
3516
3650
  if (result){
3517
- to = Nan::New<v8::String>(result).ToLocalChecked();
3651
+ v8ConversionSlot = Nan::New<v8::String>(result).ToLocalChecked();
3518
3652
  }
3519
3653
  else {
3520
- to = Nan::Null();
3654
+ v8ConversionSlot = Nan::Null();
3521
3655
  }
3522
3656
 
3523
3657
  // end convert_to_v8 block
3524
- return info.GetReturnValue().Set(scope.Escape(to));
3658
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3525
3659
  }
3526
3660
  }
3527
3661
 
@@ -3534,7 +3668,7 @@ NAN_METHOD(GitRemote::RefspecCount) {
3534
3668
  git_error_clear();
3535
3669
 
3536
3670
  { // lock master scope start
3537
- LockMaster lockMaster(
3671
+ nodegit::LockMaster lockMaster(
3538
3672
  /*asyncAction: */false
3539
3673
  ,
3540
3674
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -3545,11 +3679,11 @@ NAN_METHOD(GitRemote::RefspecCount) {
3545
3679
  );
3546
3680
 
3547
3681
 
3548
- v8::Local<v8::Value> to;
3682
+ v8::Local<v8::Value> v8ConversionSlot;
3549
3683
  // start convert_to_v8 block
3550
- to = Nan::New<Number>( result);
3684
+ v8ConversionSlot = Nan::New<Number>( result);
3551
3685
  // end convert_to_v8 block
3552
- return info.GetReturnValue().Set(scope.Escape(to));
3686
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3553
3687
  }
3554
3688
  }
3555
3689
 
@@ -3573,15 +3707,19 @@ NAN_METHOD(GitRemote::Rename) {
3573
3707
  return Nan::ThrowError("String new_name is required.");
3574
3708
  }
3575
3709
 
3576
- if (info.Length() == 3 || !info[3]->IsFunction()) {
3710
+ if (!info[info.Length() - 1]->IsFunction()) {
3577
3711
  return Nan::ThrowError("Callback is required and must be a Function.");
3578
3712
  }
3579
3713
 
3580
- RenameBaton* baton = new RenameBaton;
3714
+ RenameBaton* baton = new RenameBaton();
3581
3715
 
3582
3716
  baton->error_code = GIT_OK;
3583
3717
  baton->error = NULL;
3584
3718
 
3719
+
3720
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
3721
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
3722
+
3585
3723
  baton->problems = (git_strarray *)malloc(sizeof(git_strarray ));
3586
3724
  // start convert_from_v8 block
3587
3725
  git_repository * from_repo = NULL;
@@ -3617,32 +3755,32 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3617
3755
  // end convert_from_v8 block
3618
3756
  baton->new_name = from_new_name;
3619
3757
 
3620
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[3]));
3621
- RenameWorker *worker = new RenameWorker(baton, callback);
3622
-
3623
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
3624
- worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
3625
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
3626
- worker->SaveToPersistent("name", Nan::To<v8::Object>(info[1]).ToLocalChecked());
3627
- if (!info[2]->IsUndefined() && !info[2]->IsNull())
3628
- worker->SaveToPersistent("new_name", Nan::To<v8::Object>(info[2]).ToLocalChecked());
3758
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
3759
+ RenameWorker *worker = new RenameWorker(baton, callback, cleanupHandles);
3629
3760
 
3630
- AsyncLibgit2QueueWorker(worker);
3761
+ worker->Reference<GitRepository>("repo", info[0]);
3762
+ worker->Reference("name", info[1]);
3763
+ worker->Reference("new_name", info[2]);
3764
+
3765
+ nodegitContext->QueueWorker(worker);
3631
3766
  return;
3632
3767
  }
3633
3768
 
3769
+ nodegit::LockMaster GitRemote::RenameWorker::AcquireLocks() {
3770
+ nodegit::LockMaster lockMaster(
3771
+ /*asyncAction: */true
3772
+ ,baton->problems
3773
+ ,baton->repo
3774
+ ,baton->name
3775
+ ,baton->new_name
3776
+ );
3777
+
3778
+ return lockMaster;
3779
+ }
3780
+
3634
3781
  void GitRemote::RenameWorker::Execute() {
3635
3782
  git_error_clear();
3636
3783
 
3637
- {
3638
- LockMaster lockMaster(
3639
- /*asyncAction: */true
3640
- ,baton->problems
3641
- ,baton->repo
3642
- ,baton->name
3643
- ,baton->new_name
3644
- );
3645
-
3646
3784
  int result = git_remote_rename(
3647
3785
  baton->problems,baton->repo,baton->name,baton->new_name );
3648
3786
 
@@ -3652,22 +3790,44 @@ baton->problems,baton->repo,baton->name,baton->new_name );
3652
3790
  baton->error = git_error_dup(git_error_last());
3653
3791
  }
3654
3792
 
3793
+ }
3794
+
3795
+ void GitRemote::RenameWorker::HandleErrorCallback() {
3796
+ if (!GetIsCancelled()) {
3797
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
3798
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.rename").ToLocalChecked());
3799
+ v8::Local<v8::Value> argv[1] = {
3800
+ err
3801
+ };
3802
+ callback->Call(1, argv, async_resource);
3803
+ }
3804
+
3805
+ if (baton->error) {
3806
+ if (baton->error->message) {
3807
+ free((void *)baton->error->message);
3808
+ }
3809
+
3810
+ free((void *)baton->error);
3655
3811
  }
3812
+
3813
+ free((void*)baton->problems);
3814
+
3815
+ delete baton;
3656
3816
  }
3657
3817
 
3658
3818
  void GitRemote::RenameWorker::HandleOKCallback() {
3659
3819
  if (baton->error_code == GIT_OK) {
3660
- v8::Local<v8::Value> to;
3820
+ v8::Local<v8::Value> v8ConversionSlot;
3661
3821
  // start convert_to_v8 block
3662
3822
  v8::Local<Array> tmpArray = Nan::New<Array>(baton->problems->count);
3663
3823
  for (unsigned int i = 0; i < baton->problems->count; i++) {
3664
3824
  Nan::Set(tmpArray, Nan::New<Number>(i), Nan::New<v8::String>(baton->problems->strings[i]).ToLocalChecked());
3665
3825
  }
3666
3826
 
3667
- to = tmpArray;
3827
+ v8ConversionSlot = tmpArray;
3668
3828
  // end convert_to_v8 block
3669
- v8::Local<v8::Value> result = to;
3670
-
3829
+ v8::Local<v8::Value> result = v8ConversionSlot;
3830
+
3671
3831
  v8::Local<v8::Value> argv[2] = {
3672
3832
  Nan::Null(),
3673
3833
  result
@@ -3691,47 +3851,15 @@ void GitRemote::RenameWorker::HandleOKCallback() {
3691
3851
  free((void *)baton->error->message);
3692
3852
  free((void *)baton->error);
3693
3853
  } else if (baton->error_code < 0) {
3694
- std::queue< v8::Local<v8::Value> > workerArguments;
3695
- workerArguments.push(GetFromPersistent("repo"));
3696
- workerArguments.push(GetFromPersistent("name"));
3697
- workerArguments.push(GetFromPersistent("new_name"));
3698
3854
  bool callbackFired = false;
3699
- while(!workerArguments.empty()) {
3700
- v8::Local<v8::Value> node = workerArguments.front();
3701
- workerArguments.pop();
3702
-
3703
- if (
3704
- !node->IsObject()
3705
- || node->IsArray()
3706
- || node->IsBooleanObject()
3707
- || node->IsDate()
3708
- || node->IsFunction()
3709
- || node->IsNumberObject()
3710
- || node->IsRegExp()
3711
- || node->IsStringObject()
3712
- ) {
3713
- continue;
3714
- }
3715
-
3716
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
3717
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
3718
-
3719
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
3855
+ if (!callbackErrorHandle.IsEmpty()) {
3856
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
3857
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
3720
3858
  v8::Local<v8::Value> argv[1] = {
3721
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
3859
+ maybeError
3722
3860
  };
3723
3861
  callback->Call(1, argv, async_resource);
3724
3862
  callbackFired = true;
3725
- break;
3726
- }
3727
-
3728
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
3729
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
3730
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
3731
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
3732
- if (!nodeToQueue->IsUndefined()) {
3733
- workerArguments.push(nodeToQueue);
3734
- }
3735
3863
  }
3736
3864
  }
3737
3865
 
@@ -3751,7 +3879,6 @@ void GitRemote::RenameWorker::HandleOKCallback() {
3751
3879
  free((void*)baton->problems);
3752
3880
  }
3753
3881
 
3754
- free((void *)baton->problems);
3755
3882
 
3756
3883
  delete baton;
3757
3884
  }
@@ -3802,7 +3929,7 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3802
3929
  git_error_clear();
3803
3930
 
3804
3931
  { // lock master scope start
3805
- LockMaster lockMaster(
3932
+ nodegit::LockMaster lockMaster(
3806
3933
  /*asyncAction: */false
3807
3934
  ,
3808
3935
  from_repo
@@ -3817,11 +3944,11 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3817
3944
  );
3818
3945
 
3819
3946
 
3820
- v8::Local<v8::Value> to;
3947
+ v8::Local<v8::Value> v8ConversionSlot;
3821
3948
  // start convert_to_v8 block
3822
- to = Nan::New<Number>( result);
3949
+ v8ConversionSlot = Nan::New<Number>( result);
3823
3950
  // end convert_to_v8 block
3824
- return info.GetReturnValue().Set(scope.Escape(to));
3951
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3825
3952
  }
3826
3953
  }
3827
3954
 
@@ -3879,7 +4006,7 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3879
4006
  git_error_clear();
3880
4007
 
3881
4008
  { // lock master scope start
3882
- LockMaster lockMaster(
4009
+ nodegit::LockMaster lockMaster(
3883
4010
  /*asyncAction: */false
3884
4011
  ,
3885
4012
  from_repo
@@ -3896,11 +4023,11 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3896
4023
  );
3897
4024
 
3898
4025
 
3899
- v8::Local<v8::Value> to;
4026
+ v8::Local<v8::Value> v8ConversionSlot;
3900
4027
  // start convert_to_v8 block
3901
- to = Nan::New<Number>( result);
4028
+ v8ConversionSlot = Nan::New<Number>( result);
3902
4029
  // end convert_to_v8 block
3903
- return info.GetReturnValue().Set(scope.Escape(to));
4030
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3904
4031
  }
3905
4032
  }
3906
4033
 
@@ -3958,7 +4085,7 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3958
4085
  git_error_clear();
3959
4086
 
3960
4087
  { // lock master scope start
3961
- LockMaster lockMaster(
4088
+ nodegit::LockMaster lockMaster(
3962
4089
  /*asyncAction: */false
3963
4090
  ,
3964
4091
  from_repo
@@ -3975,11 +4102,11 @@ from_repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).
3975
4102
  );
3976
4103
 
3977
4104
 
3978
- v8::Local<v8::Value> to;
4105
+ v8::Local<v8::Value> v8ConversionSlot;
3979
4106
  // start convert_to_v8 block
3980
- to = Nan::New<Number>( result);
4107
+ v8ConversionSlot = Nan::New<Number>( result);
3981
4108
  // end convert_to_v8 block
3982
- return info.GetReturnValue().Set(scope.Escape(to));
4109
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
3983
4110
  }
3984
4111
  }
3985
4112
 
@@ -3992,7 +4119,7 @@ NAN_METHOD(GitRemote::Stats) {
3992
4119
  git_error_clear();
3993
4120
 
3994
4121
  { // lock master scope start
3995
- LockMaster lockMaster(
4122
+ nodegit::LockMaster lockMaster(
3996
4123
  /*asyncAction: */false
3997
4124
  ,
3998
4125
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -4007,22 +4134,22 @@ NAN_METHOD(GitRemote::Stats) {
4007
4134
  return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
4008
4135
  }
4009
4136
 
4010
- v8::Local<v8::Value> to;
4137
+ v8::Local<v8::Value> v8ConversionSlot;
4011
4138
  // start convert_to_v8 block
4012
4139
  if (result != NULL) {
4013
4140
  v8::Local<v8::Array> owners = Nan::New<Array>(0);
4014
4141
  Nan::Set(owners, owners->Length(), info.This());
4015
- to = GitIndexerProgress::New(
4142
+ v8ConversionSlot = GitIndexerProgress::New(
4016
4143
  result,
4017
4144
  false
4018
4145
  , owners
4019
4146
  );
4020
4147
  }
4021
4148
  else {
4022
- to = Nan::Null();
4149
+ v8ConversionSlot = Nan::Null();
4023
4150
  }
4024
4151
  // end convert_to_v8 block
4025
- return info.GetReturnValue().Set(scope.Escape(to));
4152
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
4026
4153
  }
4027
4154
  }
4028
4155
 
@@ -4035,7 +4162,7 @@ NAN_METHOD(GitRemote::Stop) {
4035
4162
  git_error_clear();
4036
4163
 
4037
4164
  { // lock master scope start
4038
- LockMaster lockMaster(
4165
+ nodegit::LockMaster lockMaster(
4039
4166
  /*asyncAction: */false
4040
4167
  ,
4041
4168
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -4046,11 +4173,11 @@ NAN_METHOD(GitRemote::Stop) {
4046
4173
  );
4047
4174
 
4048
4175
 
4049
- v8::Local<v8::Value> to;
4176
+ v8::Local<v8::Value> v8ConversionSlot;
4050
4177
  // start convert_to_v8 block
4051
- to = Nan::New<Number>( result);
4178
+ v8ConversionSlot = Nan::New<Number>( result);
4052
4179
  // end convert_to_v8 block
4053
- return info.GetReturnValue().Set(scope.Escape(to));
4180
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
4054
4181
  }
4055
4182
  }
4056
4183
 
@@ -4074,22 +4201,31 @@ NAN_METHOD(GitRemote::UpdateTips) {
4074
4201
  return Nan::ThrowError("Number download_tags is required.");
4075
4202
  }
4076
4203
 
4077
- if (info.Length() == 4 || !info[4]->IsFunction()) {
4204
+ if (!info[info.Length() - 1]->IsFunction()) {
4078
4205
  return Nan::ThrowError("Callback is required and must be a Function.");
4079
4206
  }
4080
4207
 
4081
- UpdateTipsBaton* baton = new UpdateTipsBaton;
4208
+ UpdateTipsBaton* baton = new UpdateTipsBaton();
4082
4209
 
4083
4210
  baton->error_code = GIT_OK;
4084
4211
  baton->error = NULL;
4085
4212
 
4213
+
4214
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
4215
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
4216
+
4086
4217
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
4087
- // start convert_from_v8 block
4088
- const git_remote_callbacks * from_callbacks = NULL;
4089
- from_callbacks = Nan::ObjectWrap::Unwrap<GitRemoteCallbacks>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
4090
- // end convert_from_v8 block
4091
- baton->callbacks = from_callbacks;
4092
- // start convert_from_v8 block
4218
+ {
4219
+ auto conversionResult = ConfigurableGitRemoteCallbacks::fromJavascript(nodegitContext, info[0]);
4220
+ if (!conversionResult.result) {
4221
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
4222
+ }
4223
+
4224
+ auto convertedObject = conversionResult.result;
4225
+ cleanupHandles["callbacks"] = convertedObject;
4226
+ baton->callbacks = convertedObject->GetValue();
4227
+ }
4228
+ // start convert_from_v8 block
4093
4229
  int from_update_fetchhead;
4094
4230
  from_update_fetchhead = (int) info[1].As<v8::Number>()->Value();
4095
4231
  // end convert_from_v8 block
@@ -4101,7 +4237,7 @@ from_callbacks = Nan::ObjectWrap::Unwrap<GitRemoteCallbacks>(Nan::To<v8::Object>
4101
4237
  baton->download_tags = from_download_tags;
4102
4238
  // start convert_from_v8 block
4103
4239
  const char * from_reflog_message = NULL;
4104
- if (info[3]->IsString()) {
4240
+ if ((info.Length() - 1) > 3 && info[3]->IsString()) {
4105
4241
 
4106
4242
  Nan::Utf8String reflog_message(Nan::To<v8::String>(info[3]).ToLocalChecked());
4107
4243
  // malloc with one extra byte so we can add the terminating null character C-strings expect:
@@ -4119,34 +4255,33 @@ from_callbacks = Nan::ObjectWrap::Unwrap<GitRemoteCallbacks>(Nan::To<v8::Object>
4119
4255
  // end convert_from_v8 block
4120
4256
  baton->reflog_message = from_reflog_message;
4121
4257
 
4122
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[4]));
4123
- UpdateTipsWorker *worker = new UpdateTipsWorker(baton, callback);
4258
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
4259
+ UpdateTipsWorker *worker = new UpdateTipsWorker(baton, callback, cleanupHandles);
4124
4260
 
4125
- worker->SaveToPersistent("remote", info.This());
4126
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
4127
- worker->SaveToPersistent("callbacks", Nan::To<v8::Object>(info[0]).ToLocalChecked());
4128
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
4129
- worker->SaveToPersistent("update_fetchhead", Nan::To<v8::Object>(info[1]).ToLocalChecked());
4130
- if (!info[2]->IsUndefined() && !info[2]->IsNull())
4131
- worker->SaveToPersistent("download_tags", Nan::To<v8::Object>(info[2]).ToLocalChecked());
4132
- if (!info[3]->IsUndefined() && !info[3]->IsNull())
4133
- worker->SaveToPersistent("reflog_message", Nan::To<v8::Object>(info[3]).ToLocalChecked());
4134
-
4135
- AsyncLibgit2QueueWorker(worker);
4261
+ worker->Reference<GitRemote>("remote", info.This());
4262
+ worker->Reference("callbacks", info[0]);
4263
+ worker->Reference("update_fetchhead", info[1]);
4264
+ worker->Reference("download_tags", info[2]);
4265
+ worker->Reference("reflog_message", info[3]);
4266
+
4267
+ nodegitContext->QueueWorker(worker);
4136
4268
  return;
4137
4269
  }
4138
4270
 
4271
+ nodegit::LockMaster GitRemote::UpdateTipsWorker::AcquireLocks() {
4272
+ nodegit::LockMaster lockMaster(
4273
+ /*asyncAction: */true
4274
+ ,baton->remote
4275
+ ,baton->callbacks
4276
+ ,baton->reflog_message
4277
+ );
4278
+
4279
+ return lockMaster;
4280
+ }
4281
+
4139
4282
  void GitRemote::UpdateTipsWorker::Execute() {
4140
4283
  git_error_clear();
4141
4284
 
4142
- {
4143
- LockMaster lockMaster(
4144
- /*asyncAction: */true
4145
- ,baton->remote
4146
- ,baton->callbacks
4147
- ,baton->reflog_message
4148
- );
4149
-
4150
4285
  int result = git_remote_update_tips(
4151
4286
  baton->remote,baton->callbacks,baton->update_fetchhead,baton->download_tags,baton->reflog_message );
4152
4287
 
@@ -4156,13 +4291,34 @@ baton->remote,baton->callbacks,baton->update_fetchhead,baton->download_tags,bato
4156
4291
  baton->error = git_error_dup(git_error_last());
4157
4292
  }
4158
4293
 
4294
+ }
4295
+
4296
+ void GitRemote::UpdateTipsWorker::HandleErrorCallback() {
4297
+ if (!GetIsCancelled()) {
4298
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
4299
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.updateTips").ToLocalChecked());
4300
+ v8::Local<v8::Value> argv[1] = {
4301
+ err
4302
+ };
4303
+ callback->Call(1, argv, async_resource);
4304
+ }
4305
+
4306
+ if (baton->error) {
4307
+ if (baton->error->message) {
4308
+ free((void *)baton->error->message);
4309
+ }
4310
+
4311
+ free((void *)baton->error);
4159
4312
  }
4313
+
4314
+
4315
+ delete baton;
4160
4316
  }
4161
4317
 
4162
4318
  void GitRemote::UpdateTipsWorker::HandleOKCallback() {
4163
4319
  if (baton->error_code == GIT_OK) {
4164
4320
  v8::Local<v8::Value> result = Nan::Undefined();
4165
-
4321
+
4166
4322
  v8::Local<v8::Value> argv[2] = {
4167
4323
  Nan::Null(),
4168
4324
  result
@@ -4186,48 +4342,15 @@ void GitRemote::UpdateTipsWorker::HandleOKCallback() {
4186
4342
  free((void *)baton->error->message);
4187
4343
  free((void *)baton->error);
4188
4344
  } else if (baton->error_code < 0) {
4189
- std::queue< v8::Local<v8::Value> > workerArguments;
4190
- workerArguments.push(GetFromPersistent("callbacks"));
4191
- workerArguments.push(GetFromPersistent("update_fetchhead"));
4192
- workerArguments.push(GetFromPersistent("download_tags"));
4193
- workerArguments.push(GetFromPersistent("reflog_message"));
4194
4345
  bool callbackFired = false;
4195
- while(!workerArguments.empty()) {
4196
- v8::Local<v8::Value> node = workerArguments.front();
4197
- workerArguments.pop();
4198
-
4199
- if (
4200
- !node->IsObject()
4201
- || node->IsArray()
4202
- || node->IsBooleanObject()
4203
- || node->IsDate()
4204
- || node->IsFunction()
4205
- || node->IsNumberObject()
4206
- || node->IsRegExp()
4207
- || node->IsStringObject()
4208
- ) {
4209
- continue;
4210
- }
4211
-
4212
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
4213
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
4214
-
4215
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
4346
+ if (!callbackErrorHandle.IsEmpty()) {
4347
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
4348
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
4216
4349
  v8::Local<v8::Value> argv[1] = {
4217
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
4350
+ maybeError
4218
4351
  };
4219
4352
  callback->Call(1, argv, async_resource);
4220
4353
  callbackFired = true;
4221
- break;
4222
- }
4223
-
4224
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
4225
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
4226
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
4227
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
4228
- if (!nodeToQueue->IsUndefined()) {
4229
- workerArguments.push(nodeToQueue);
4230
- }
4231
4354
  }
4232
4355
  }
4233
4356
 
@@ -4257,22 +4380,23 @@ void GitRemote::UpdateTipsWorker::HandleOKCallback() {
4257
4380
  */
4258
4381
  NAN_METHOD(GitRemote::Upload) {
4259
4382
 
4260
- if (info.Length() == 0 || !(Nan::To<bool>(info[0]).FromJust())) {
4261
- return Nan::ThrowError("Array, String Object, or string refspecs is required.");
4262
- }
4263
4383
  if (info.Length() == 1 || !info[1]->IsObject()) {
4264
4384
  return Nan::ThrowError("PushOptions opts is required.");
4265
4385
  }
4266
4386
 
4267
- if (info.Length() == 2 || !info[2]->IsFunction()) {
4387
+ if (!info[info.Length() - 1]->IsFunction()) {
4268
4388
  return Nan::ThrowError("Callback is required and must be a Function.");
4269
4389
  }
4270
4390
 
4271
- UploadBaton* baton = new UploadBaton;
4391
+ UploadBaton* baton = new UploadBaton();
4272
4392
 
4273
4393
  baton->error_code = GIT_OK;
4274
4394
  baton->error = NULL;
4275
4395
 
4396
+
4397
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
4398
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
4399
+
4276
4400
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
4277
4401
  // start convert_from_v8 block
4278
4402
  const git_strarray * from_refspecs = NULL;
@@ -4280,36 +4404,42 @@ NAN_METHOD(GitRemote::Upload) {
4280
4404
  from_refspecs = StrArrayConverter::Convert(info[0]);
4281
4405
  // end convert_from_v8 block
4282
4406
  baton->refspecs = from_refspecs;
4283
- // start convert_from_v8 block
4284
- const git_push_options * from_opts = NULL;
4285
- from_opts = Nan::ObjectWrap::Unwrap<GitPushOptions>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
4286
- // end convert_from_v8 block
4287
- baton->opts = from_opts;
4407
+ {
4408
+ auto conversionResult = ConfigurableGitPushOptions::fromJavascript(nodegitContext, info[1]);
4409
+ if (!conversionResult.result) {
4410
+ return Nan::ThrowError(Nan::New(conversionResult.error).ToLocalChecked());
4411
+ }
4412
+
4413
+ auto convertedObject = conversionResult.result;
4414
+ cleanupHandles["opts"] = convertedObject;
4415
+ baton->opts = convertedObject->GetValue();
4416
+ }
4417
+
4418
+ Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[info.Length() - 1]));
4419
+ UploadWorker *worker = new UploadWorker(baton, callback, cleanupHandles);
4288
4420
 
4289
- Nan::Callback *callback = new Nan::Callback(v8::Local<Function>::Cast(info[2]));
4290
- UploadWorker *worker = new UploadWorker(baton, callback);
4421
+ worker->Reference<GitRemote>("remote", info.This());
4422
+ worker->Reference("refspecs", info[0]);
4423
+ worker->Reference("opts", info[1]);
4424
+
4425
+ nodegitContext->QueueWorker(worker);
4426
+ return;
4427
+ }
4291
4428
 
4292
- worker->SaveToPersistent("remote", info.This());
4293
- if (!info[0]->IsUndefined() && !info[0]->IsNull())
4294
- worker->SaveToPersistent("refspecs", Nan::To<v8::Object>(info[0]).ToLocalChecked());
4295
- if (!info[1]->IsUndefined() && !info[1]->IsNull())
4296
- worker->SaveToPersistent("opts", Nan::To<v8::Object>(info[1]).ToLocalChecked());
4429
+ nodegit::LockMaster GitRemote::UploadWorker::AcquireLocks() {
4430
+ nodegit::LockMaster lockMaster(
4431
+ /*asyncAction: */true
4432
+ ,baton->remote
4433
+ ,baton->refspecs
4434
+ ,baton->opts
4435
+ );
4297
4436
 
4298
- AsyncLibgit2QueueWorker(worker);
4299
- return;
4437
+ return lockMaster;
4300
4438
  }
4301
4439
 
4302
4440
  void GitRemote::UploadWorker::Execute() {
4303
4441
  git_error_clear();
4304
4442
 
4305
- {
4306
- LockMaster lockMaster(
4307
- /*asyncAction: */true
4308
- ,baton->remote
4309
- ,baton->refspecs
4310
- ,baton->opts
4311
- );
4312
-
4313
4443
  int result = git_remote_upload(
4314
4444
  baton->remote,baton->refspecs,baton->opts );
4315
4445
 
@@ -4319,13 +4449,34 @@ baton->remote,baton->refspecs,baton->opts );
4319
4449
  baton->error = git_error_dup(git_error_last());
4320
4450
  }
4321
4451
 
4452
+ }
4453
+
4454
+ void GitRemote::UploadWorker::HandleErrorCallback() {
4455
+ if (!GetIsCancelled()) {
4456
+ v8::Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error(ErrorMessage())).ToLocalChecked();
4457
+ Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Remote.upload").ToLocalChecked());
4458
+ v8::Local<v8::Value> argv[1] = {
4459
+ err
4460
+ };
4461
+ callback->Call(1, argv, async_resource);
4462
+ }
4463
+
4464
+ if (baton->error) {
4465
+ if (baton->error->message) {
4466
+ free((void *)baton->error->message);
4467
+ }
4468
+
4469
+ free((void *)baton->error);
4322
4470
  }
4471
+
4472
+
4473
+ delete baton;
4323
4474
  }
4324
4475
 
4325
4476
  void GitRemote::UploadWorker::HandleOKCallback() {
4326
4477
  if (baton->error_code == GIT_OK) {
4327
4478
  v8::Local<v8::Value> result = Nan::Undefined();
4328
-
4479
+
4329
4480
  v8::Local<v8::Value> argv[2] = {
4330
4481
  Nan::Null(),
4331
4482
  result
@@ -4349,46 +4500,15 @@ void GitRemote::UploadWorker::HandleOKCallback() {
4349
4500
  free((void *)baton->error->message);
4350
4501
  free((void *)baton->error);
4351
4502
  } else if (baton->error_code < 0) {
4352
- std::queue< v8::Local<v8::Value> > workerArguments;
4353
- workerArguments.push(GetFromPersistent("refspecs"));
4354
- workerArguments.push(GetFromPersistent("opts"));
4355
4503
  bool callbackFired = false;
4356
- while(!workerArguments.empty()) {
4357
- v8::Local<v8::Value> node = workerArguments.front();
4358
- workerArguments.pop();
4359
-
4360
- if (
4361
- !node->IsObject()
4362
- || node->IsArray()
4363
- || node->IsBooleanObject()
4364
- || node->IsDate()
4365
- || node->IsFunction()
4366
- || node->IsNumberObject()
4367
- || node->IsRegExp()
4368
- || node->IsStringObject()
4369
- ) {
4370
- continue;
4371
- }
4372
-
4373
- v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
4374
- v8::Local<v8::Value> checkValue = GetPrivate(nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
4375
-
4376
- if (!checkValue.IsEmpty() && !checkValue->IsNull() && !checkValue->IsUndefined()) {
4504
+ if (!callbackErrorHandle.IsEmpty()) {
4505
+ v8::Local<v8::Value> maybeError = Nan::New(callbackErrorHandle);
4506
+ if (!maybeError->IsNull() && !maybeError->IsUndefined()) {
4377
4507
  v8::Local<v8::Value> argv[1] = {
4378
- Nan::To<v8::Object>(checkValue).ToLocalChecked()
4508
+ maybeError
4379
4509
  };
4380
4510
  callback->Call(1, argv, async_resource);
4381
4511
  callbackFired = true;
4382
- break;
4383
- }
4384
-
4385
- v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
4386
- for (unsigned int propIndex = 0; propIndex < properties->Length(); ++propIndex) {
4387
- v8::Local<v8::String> propName = Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
4388
- v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
4389
- if (!nodeToQueue->IsUndefined()) {
4390
- workerArguments.push(nodeToQueue);
4391
- }
4392
4512
  }
4393
4513
  }
4394
4514
 
@@ -4421,7 +4541,7 @@ NAN_METHOD(GitRemote::Url) {
4421
4541
  git_error_clear();
4422
4542
 
4423
4543
  { // lock master scope start
4424
- LockMaster lockMaster(
4544
+ nodegit::LockMaster lockMaster(
4425
4545
  /*asyncAction: */false
4426
4546
  ,
4427
4547
  Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue()
@@ -4436,71 +4556,85 @@ NAN_METHOD(GitRemote::Url) {
4436
4556
  return info.GetReturnValue().Set(scope.Escape(Nan::Undefined()));
4437
4557
  }
4438
4558
 
4439
- v8::Local<v8::Value> to;
4559
+ v8::Local<v8::Value> v8ConversionSlot;
4440
4560
  // start convert_to_v8 block
4441
4561
  if (result){
4442
- to = Nan::New<v8::String>(result).ToLocalChecked();
4562
+ v8ConversionSlot = Nan::New<v8::String>(result).ToLocalChecked();
4443
4563
  }
4444
4564
  else {
4445
- to = Nan::Null();
4565
+ v8ConversionSlot = Nan::Null();
4446
4566
  }
4447
4567
 
4448
4568
  // end convert_to_v8 block
4449
- return info.GetReturnValue().Set(scope.Escape(to));
4569
+ return info.GetReturnValue().Set(scope.Escape(v8ConversionSlot));
4450
4570
  }
4451
4571
  }
4452
4572
  NAN_METHOD(GitRemote::ReferenceList)
4453
4573
  {
4454
- if (info.Length() == 0 || !info[0]->IsFunction()) {
4574
+ if (!info[info.Length() - 1]->IsFunction()) {
4455
4575
  return Nan::ThrowError("Callback is required and must be a Function.");
4456
4576
  }
4457
4577
 
4458
- ReferenceListBaton* baton = new ReferenceListBaton;
4578
+ ReferenceListBaton* baton = new ReferenceListBaton();
4459
4579
 
4460
4580
  baton->error_code = GIT_OK;
4461
4581
  baton->error = NULL;
4462
4582
  baton->out = new std::vector<git_remote_head*>;
4463
4583
  baton->remote = Nan::ObjectWrap::Unwrap<GitRemote>(info.This())->GetValue();
4464
4584
 
4465
- Nan::Callback *callback = new Nan::Callback(Local<Function>::Cast(info[0]));
4466
- ReferenceListWorker *worker = new ReferenceListWorker(baton, callback);
4467
- worker->SaveToPersistent("remote", info.This());
4468
- Nan::AsyncQueueWorker(worker);
4585
+ Nan::Callback *callback = new Nan::Callback(Local<Function>::Cast(info[info.Length() - 1]));
4586
+ std::map<std::string, std::shared_ptr<nodegit::CleanupHandle>> cleanupHandles;
4587
+ ReferenceListWorker *worker = new ReferenceListWorker(baton, callback, cleanupHandles);
4588
+ worker->Reference<GitRemote>("remote", info.This());
4589
+ nodegit::Context *nodegitContext = reinterpret_cast<nodegit::Context *>(info.Data().As<External>()->Value());
4590
+ nodegitContext->QueueWorker(worker);
4469
4591
  return;
4470
4592
  }
4471
4593
 
4594
+ nodegit::LockMaster GitRemote::ReferenceListWorker::AcquireLocks() {
4595
+ nodegit::LockMaster lockMaster(true, baton->remote);
4596
+ return lockMaster;
4597
+ }
4598
+
4472
4599
  void GitRemote::ReferenceListWorker::Execute()
4473
4600
  {
4474
4601
  git_error_clear();
4475
4602
 
4476
- {
4477
- LockMaster lockMaster(
4478
- /*asyncAction: */true,
4479
- baton->remote
4480
- );
4603
+ const git_remote_head **remote_heads;
4604
+ size_t num_remote_heads;
4605
+ baton->error_code = git_remote_ls(
4606
+ &remote_heads,
4607
+ &num_remote_heads,
4608
+ baton->remote
4609
+ );
4481
4610
 
4482
- const git_remote_head **remote_heads;
4483
- size_t num_remote_heads;
4484
- baton->error_code = git_remote_ls(
4485
- &remote_heads,
4486
- &num_remote_heads,
4487
- baton->remote
4488
- );
4611
+ if (baton->error_code != GIT_OK) {
4612
+ baton->error = git_error_dup(git_error_last());
4613
+ delete baton->out;
4614
+ baton->out = NULL;
4615
+ return;
4616
+ }
4489
4617
 
4490
- if (baton->error_code != GIT_OK) {
4491
- baton->error = git_error_dup(git_error_last());
4492
- delete baton->out;
4493
- baton->out = NULL;
4494
- return;
4495
- }
4618
+ baton->out->reserve(num_remote_heads);
4496
4619
 
4497
- baton->out->reserve(num_remote_heads);
4620
+ for (size_t head_index = 0; head_index < num_remote_heads; ++head_index) {
4621
+ git_remote_head *remote_head = git_remote_head_dup(remote_heads[head_index]);
4622
+ baton->out->push_back(remote_head);
4623
+ }
4624
+ }
4498
4625
 
4499
- for (size_t head_index = 0; head_index < num_remote_heads; ++head_index) {
4500
- git_remote_head *remote_head = git_remote_head_dup(remote_heads[head_index]);
4501
- baton->out->push_back(remote_head);
4626
+ void GitRemote::ReferenceListWorker::HandleErrorCallback() {
4627
+ if (baton->error) {
4628
+ if (baton->error->message) {
4629
+ free((void *)baton->error->message);
4502
4630
  }
4631
+
4632
+ free((void *)baton->error);
4503
4633
  }
4634
+
4635
+ delete baton->out;
4636
+
4637
+ delete baton;
4504
4638
  }
4505
4639
 
4506
4640
  void GitRemote::ReferenceListWorker::HandleOKCallback()
@@ -4548,6 +4682,8 @@ void GitRemote::ReferenceListWorker::HandleOKCallback()
4548
4682
  {
4549
4683
  callback->Call(0, NULL, async_resource);
4550
4684
  }
4685
+
4686
+ delete baton;
4551
4687
  }
4552
4688
 
4553
4689
  // force base class template instantiation, to make sure we get all the