pj-nodegit 0.27.12 → 0.28.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1721) 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/README.md +5 -0
  190. package/lifecycleScripts/install.js +7 -1
  191. package/package.json +8 -9
  192. package/src/annotated_commit.cc +250 -258
  193. package/src/apply.cc +215 -108
  194. package/src/apply_options.cc +183 -218
  195. package/src/async_baton.cc +76 -2
  196. package/src/async_worker.cc +43 -0
  197. package/src/attr.cc +127 -147
  198. package/src/blame.cc +149 -154
  199. package/src/blame_hunk.cc +43 -43
  200. package/src/blame_options.cc +128 -164
  201. package/src/blob.cc +496 -517
  202. package/src/blob_filter_options.cc +49 -65
  203. package/src/branch.cc +577 -557
  204. package/src/branch_iterator.cc +6 -6
  205. package/src/buf.cc +35 -35
  206. package/src/cert.cc +10 -10
  207. package/src/cert_hostkey.cc +78 -30
  208. package/src/cert_x509.cc +20 -20
  209. package/src/checkout.cc +196 -205
  210. package/src/checkout_options.cc +435 -674
  211. package/src/checkout_perfdata.cc +18 -18
  212. package/src/cherrypick.cc +142 -150
  213. package/src/cherrypick_options.cc +83 -119
  214. package/src/cleanup_handle.cc +6 -0
  215. package/src/clone.cc +74 -75
  216. package/src/clone_options.cc +108 -194
  217. package/src/commit.cc +856 -910
  218. package/src/config.cc +997 -1034
  219. package/src/config_entry.cc +20 -20
  220. package/src/config_iterator.cc +173 -182
  221. package/src/configmap.cc +19 -19
  222. package/src/context.cc +84 -0
  223. package/src/convenient_hunk.cc +48 -22
  224. package/src/convenient_patch.cc +65 -35
  225. package/src/credential.cc +153 -161
  226. package/src/describe_format_options.cc +74 -104
  227. package/src/describe_options.cc +96 -134
  228. package/src/describe_result.cc +6 -6
  229. package/src/diff.cc +911 -920
  230. package/src/diff_binary.cc +20 -20
  231. package/src/diff_binary_file.cc +23 -23
  232. package/src/diff_delta.cc +32 -32
  233. package/src/diff_file.cc +32 -32
  234. package/src/diff_find_options.cc +104 -140
  235. package/src/diff_hunk.cc +31 -31
  236. package/src/diff_line.cc +35 -35
  237. package/src/diff_options.cc +310 -384
  238. package/src/diff_patchid_options.cc +37 -49
  239. package/src/diff_perfdata.cc +14 -14
  240. package/src/diff_stats.cc +77 -80
  241. package/src/error.cc +30 -30
  242. package/src/fetch.cc +2 -2
  243. package/src/fetch_options.cc +142 -181
  244. package/src/filter.cc +336 -495
  245. package/src/filter_list.cc +239 -260
  246. package/src/filter_registry.cc +77 -26
  247. package/src/filter_source.cc +65 -48
  248. package/src/graph.cc +127 -125
  249. package/src/hashsig.cc +120 -128
  250. package/src/ignore.cc +65 -70
  251. package/src/index.cc +1216 -1250
  252. package/src/index_conflict_iterator.cc +71 -72
  253. package/src/index_entry.cc +308 -96
  254. package/src/index_iterator.cc +65 -66
  255. package/src/index_name_entry.cc +132 -144
  256. package/src/index_reuc_entry.cc +258 -276
  257. package/src/index_time.cc +121 -45
  258. package/src/indexer_progress.cc +34 -34
  259. package/src/libgit2.cc +23 -23
  260. package/src/lock_master.cc +190 -197
  261. package/src/mailmap.cc +329 -349
  262. package/src/merge.cc +591 -595
  263. package/src/merge_file_input.cc +88 -128
  264. package/src/merge_file_options.cc +113 -169
  265. package/src/merge_file_result.cc +30 -30
  266. package/src/merge_options.cc +118 -166
  267. package/src/nodegit.cc +158 -229
  268. package/src/nodegit_wrapper.cc +71 -8
  269. package/src/note.cc +527 -552
  270. package/src/note_iterator.cc +6 -6
  271. package/src/object.cc +380 -386
  272. package/src/odb.cc +391 -408
  273. package/src/odb_object.cc +28 -28
  274. package/src/oid.cc +59 -59
  275. package/src/oid_shorten.cc +17 -17
  276. package/src/oidarray.cc +15 -15
  277. package/src/packbuilder.cc +250 -254
  278. package/src/patch.cc +418 -347
  279. package/src/path.cc +7 -7
  280. package/src/pathspec.cc +229 -249
  281. package/src/pathspec_match_list.cc +34 -34
  282. package/src/promise_completion.cc +32 -15
  283. package/src/proxy.cc +2 -2
  284. package/src/proxy_options.cc +203 -254
  285. package/src/push_options.cc +119 -146
  286. package/src/push_update.cc +26 -26
  287. package/src/rebase.cc +370 -378
  288. package/src/rebase_operation.cc +20 -20
  289. package/src/rebase_options.cc +172 -242
  290. package/src/refdb.cc +64 -65
  291. package/src/reference.cc +973 -962
  292. package/src/reference_counter.cc +2 -2
  293. package/src/reflog.cc +138 -142
  294. package/src/reflog_entry.cc +30 -30
  295. package/src/refspec.cc +98 -101
  296. package/src/remote.cc +1592 -1456
  297. package/src/remote_callbacks.cc +671 -544
  298. package/src/remote_create_options.cc +91 -140
  299. package/src/remote_head.cc +30 -30
  300. package/src/repository.cc +3248 -1216
  301. package/src/repository_init_options.cc +138 -208
  302. package/src/reset.cc +185 -204
  303. package/src/revert.cc +142 -152
  304. package/src/revert_options.cc +83 -119
  305. package/src/revparse.cc +62 -65
  306. package/src/revspec.cc +130 -0
  307. package/src/revwalk.cc +255 -201
  308. package/src/signature.cc +139 -141
  309. package/src/stash.cc +294 -312
  310. package/src/stash_apply_options.cc +133 -179
  311. package/src/status.cc +199 -197
  312. package/src/status_entry.cc +20 -20
  313. package/src/status_list.cc +85 -85
  314. package/src/status_options.cc +96 -111
  315. package/src/str_array_converter.cc +16 -0
  316. package/src/strarray.cc +20 -20
  317. package/src/submodule.cc +990 -1036
  318. package/src/submodule_update_options.cc +83 -119
  319. package/src/tag.cc +772 -763
  320. package/src/thread_pool.cc +748 -87
  321. package/src/time.cc +19 -19
  322. package/src/trace.cc +2 -2
  323. package/src/tracker_wrap.cc +238 -0
  324. package/src/transaction.cc +89 -90
  325. package/src/transport.cc +6 -6
  326. package/src/tree.cc +349 -346
  327. package/src/tree_entry.cc +87 -88
  328. package/src/tree_update.cc +83 -117
  329. package/src/treebuilder.cc +137 -141
  330. package/src/v8_helpers.cc +19 -0
  331. package/src/worktree.cc +539 -328
  332. package/src/worktree_add_options.cc +59 -51
  333. package/src/worktree_prune_options.cc +59 -51
  334. package/src/wrapper.cc +10 -10
  335. package/src/writestream.cc +6 -6
  336. package/utils/README.md +9 -0
  337. package/utils/acquireOpenSSL.js +196 -62
  338. package/utils/build-openssl.bat +13 -0
  339. package/utils/execPromise.js +9 -2
  340. package/utils/getElectronOpenSSLRoot.js +10 -0
  341. package/vendor/README.md +4 -0
  342. package/vendor/http_parser/README.md +183 -0
  343. package/vendor/libgit2/.gitattributes +1 -0
  344. package/vendor/libgit2/.github/workflows/codeql.yml +36 -0
  345. package/vendor/libgit2/.github/workflows/main.yml +98 -34
  346. package/vendor/libgit2/.github/workflows/nightly.yml +292 -0
  347. package/vendor/libgit2/CMakeLists.txt +6 -6
  348. package/vendor/libgit2/README.md +430 -0
  349. package/vendor/libgit2/{azure-pipelines → ci}/build.sh +12 -1
  350. package/vendor/libgit2/{azure-pipelines → ci}/coverity.sh +0 -0
  351. package/vendor/libgit2/{azure-pipelines → ci}/docker/bionic +4 -1
  352. package/vendor/libgit2/{azure-pipelines → ci}/docker/docurium +2 -1
  353. package/vendor/libgit2/{azure-pipelines → ci}/docker/entrypoint.sh +0 -0
  354. package/vendor/libgit2/{azure-pipelines → ci}/docker/focal +5 -4
  355. package/vendor/libgit2/{azure-pipelines → ci}/docker/xenial +2 -1
  356. package/vendor/libgit2/{azure-pipelines → ci}/getcontainer.sh +17 -11
  357. package/vendor/libgit2/{azure-pipelines → ci}/setup-mingw.sh +0 -0
  358. package/vendor/libgit2/{azure-pipelines → ci}/setup-osx.sh +0 -0
  359. package/vendor/libgit2/{azure-pipelines → ci}/test.sh +0 -0
  360. package/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  361. package/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -0
  362. package/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
  363. package/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
  364. package/vendor/libgit2/deps/ntlmclient/ntlm.c +5 -5
  365. package/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  366. package/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  367. package/vendor/libgit2/deps/pcre/LICENCE +93 -0
  368. package/vendor/libgit2/deps/pcre/pcre.h +2 -2
  369. package/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  370. package/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  371. package/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  372. package/vendor/libgit2/examples/README.md +22 -0
  373. package/vendor/libgit2/examples/blame.c +1 -1
  374. package/vendor/libgit2/examples/checkout.c +1 -1
  375. package/vendor/libgit2/examples/common.h +1 -1
  376. package/vendor/libgit2/examples/general.c +0 -5
  377. package/vendor/libgit2/examples/log.c +3 -3
  378. package/vendor/libgit2/examples/rev-list.c +1 -1
  379. package/vendor/libgit2/examples/rev-parse.c +3 -3
  380. package/vendor/libgit2/examples/tag.c +2 -2
  381. package/vendor/libgit2/fuzzers/commit_graph_fuzzer.c +80 -0
  382. package/vendor/libgit2/fuzzers/corpora/commit_graph/005682ce1cb5b20c20fccf4be5dbd47ca399e53e +0 -0
  383. package/vendor/libgit2/fuzzers/corpora/commit_graph/00574fc29fd1323e93d18d625cde80d3ea20e8cc +0 -0
  384. package/vendor/libgit2/fuzzers/corpora/commit_graph/00916ec21ddbd3c622bde6e4dc824250176b9e88 +0 -0
  385. package/vendor/libgit2/fuzzers/corpora/commit_graph/00b6dde4b8d5e68a5ec40d88c39134cf2f1f8bc3 +0 -0
  386. package/vendor/libgit2/fuzzers/corpora/commit_graph/020f0e77e42d8b3810019050f4c5ceadd205b37c +0 -0
  387. package/vendor/libgit2/fuzzers/corpora/commit_graph/02739c05abc1715fac1ce995b532e482abc8d4dc +0 -0
  388. package/vendor/libgit2/fuzzers/corpora/commit_graph/02a276faa5dc8c7df5b82a57ab6cd195a13e4ae0 +0 -0
  389. package/vendor/libgit2/fuzzers/corpora/commit_graph/02de15987d68a97db3d9fd964cfd785bcbd54d3a +0 -0
  390. package/vendor/libgit2/fuzzers/corpora/commit_graph/02e106f97a91b1d3aef4dd2d31368ae5077bd42b +0 -0
  391. package/vendor/libgit2/fuzzers/corpora/commit_graph/038555bcb4cc2daf764840f79ebce4023bdb7670 +0 -0
  392. package/vendor/libgit2/fuzzers/corpora/commit_graph/04c159a04b0732e04ac4c59ed3356860af8dffce +0 -0
  393. package/vendor/libgit2/fuzzers/corpora/commit_graph/0560ec993882ffbd8d46dcab0ed430089c4f2aa1 +0 -0
  394. package/vendor/libgit2/fuzzers/corpora/commit_graph/059b3aab3fde6b4c9404aff83fed638596f594bb +0 -0
  395. package/vendor/libgit2/fuzzers/corpora/commit_graph/06168e726aa0260f520165be4ea0c88244831049 +0 -0
  396. package/vendor/libgit2/fuzzers/corpora/commit_graph/066d1ec700a526b97009cedd0305b6a47242faba +0 -0
  397. package/vendor/libgit2/fuzzers/corpora/commit_graph/086a5f8cbfa9f058b5c938a6eb724c9e4c5f84f3 +0 -0
  398. package/vendor/libgit2/fuzzers/corpora/commit_graph/089313c698f3e351433e9a45af2ace1d85b9673e +0 -0
  399. package/vendor/libgit2/fuzzers/corpora/commit_graph/092eb973a771fa14cf0b567d65bd2c99130f543e +0 -0
  400. package/vendor/libgit2/fuzzers/corpora/commit_graph/094b8cd1aa3e40b1f9ff83680892d52e246df0f8 +0 -0
  401. package/vendor/libgit2/fuzzers/corpora/commit_graph/0ce990c9c2ec121b8c78ba2bdf84679e04c0bdae +0 -0
  402. package/vendor/libgit2/fuzzers/corpora/commit_graph/0dd0770c34fcf6b1f13219450190616d344db021 +0 -0
  403. package/vendor/libgit2/fuzzers/corpora/commit_graph/0e2b2e6a32733b8a625bc7e812e2ea508d69a5e4 +0 -0
  404. package/vendor/libgit2/fuzzers/corpora/commit_graph/0e8d0bd07c543d708aecaca377106492b7a74fa3 +0 -0
  405. package/vendor/libgit2/fuzzers/corpora/commit_graph/0f0d16e1b8c8671dbe1074115c1d86aa9b359e7e +0 -0
  406. package/vendor/libgit2/fuzzers/corpora/commit_graph/102ef78036de5a30927e7f751377b05441c41a08 +0 -0
  407. package/vendor/libgit2/fuzzers/corpora/commit_graph/10494e7cc9cb8dff289c431d7560bcee0d1b14ed +0 -0
  408. package/vendor/libgit2/fuzzers/corpora/commit_graph/107b11d86381345f50aa19b8485477a870ff399f +0 -0
  409. package/vendor/libgit2/fuzzers/corpora/commit_graph/10bb37e18fb3c0897dabacf9c464b4d324007dc3 +0 -0
  410. package/vendor/libgit2/fuzzers/corpora/commit_graph/10ee715f64b08549c3e8261204276694728eb841 +0 -0
  411. package/vendor/libgit2/fuzzers/corpora/commit_graph/123e4eeb7a731f48d06e336b4d29af717f8b6550 +0 -0
  412. package/vendor/libgit2/fuzzers/corpora/commit_graph/125a228afb923970e0a6d4412f7257ba998594a1 +0 -0
  413. package/vendor/libgit2/fuzzers/corpora/commit_graph/130d96c16fba06dcbe7e2a661ab959a3274a4bd9 +0 -0
  414. package/vendor/libgit2/fuzzers/corpora/commit_graph/131c5a2fec55cb0d63f7dc055d6fad5f3dc3c974 +0 -0
  415. package/vendor/libgit2/fuzzers/corpora/commit_graph/13e562d61acb3aa36260a819a00b07ff16450335 +0 -0
  416. package/vendor/libgit2/fuzzers/corpora/commit_graph/1414e6e8ab6bad1b5c51fed807c514a9d6575e66 +0 -0
  417. package/vendor/libgit2/fuzzers/corpora/commit_graph/1432d191846ae2d0e381813efcfacff2f1dba0e4 +0 -0
  418. package/vendor/libgit2/fuzzers/corpora/commit_graph/14a84cdc6f8d432be4cd3d3eafce92ae385e472f +0 -0
  419. package/vendor/libgit2/fuzzers/corpora/commit_graph/14e3e735dba88791f2cadd6e0dc5d662a104a6d7 +0 -0
  420. package/vendor/libgit2/fuzzers/corpora/commit_graph/1574abb020203103ea629d677edd21c967fc0f4c +0 -0
  421. package/vendor/libgit2/fuzzers/corpora/commit_graph/169cc492ba94948a6206765436881a1a0c601780 +0 -0
  422. package/vendor/libgit2/fuzzers/corpora/commit_graph/16a2130c1d75129f3bae3bf8f2c2de41fb3533c0 +0 -0
  423. package/vendor/libgit2/fuzzers/corpora/commit_graph/16ba602eadfc9a3f74c0845394eda0de42b61571 +0 -0
  424. package/vendor/libgit2/fuzzers/corpora/commit_graph/17555fb2dfc444d171ba686667d72e388bd6c041 +0 -0
  425. package/vendor/libgit2/fuzzers/corpora/commit_graph/1a10450d99c1e53d9b7f97b8014cb7fc01906ef2 +0 -0
  426. package/vendor/libgit2/fuzzers/corpora/commit_graph/1af670b5515231fc04b2be9038ee30a7e066b09b +0 -0
  427. package/vendor/libgit2/fuzzers/corpora/commit_graph/1b72cfa68259e3f3b3802906902a0a29368f86b5 +0 -0
  428. package/vendor/libgit2/fuzzers/corpora/commit_graph/1c62ac5d632aa9e449a4335b675941107d8825ae +0 -0
  429. package/vendor/libgit2/fuzzers/corpora/commit_graph/1d95b5db2f802011b33d10212a66fbe40827dfd4 +0 -0
  430. package/vendor/libgit2/fuzzers/corpora/commit_graph/1e068537ce1211a325aab42ae1263a109131c9f9 +0 -0
  431. package/vendor/libgit2/fuzzers/corpora/commit_graph/1e9c882c9d33304a5791ef6c98eee65e142bd7fd +0 -0
  432. package/vendor/libgit2/fuzzers/corpora/commit_graph/1f54935df929403a29e77591c97f767d94871aea +0 -0
  433. package/vendor/libgit2/fuzzers/corpora/commit_graph/206015659641771bb0d668728c2fdc4209e65dda +0 -0
  434. package/vendor/libgit2/fuzzers/corpora/commit_graph/2096493a2bcc2d15b7ae5bf3112fe49c39976ad8 +0 -0
  435. package/vendor/libgit2/fuzzers/corpora/commit_graph/209b74e08abe8c787b7c5ba81e51cb69c57ecded +0 -0
  436. package/vendor/libgit2/fuzzers/corpora/commit_graph/21137876575fbca357fc0c96db1de73c6737e1ae +0 -0
  437. package/vendor/libgit2/fuzzers/corpora/commit_graph/2143d9db9802f076c72a71184cd9d0cb4581e9e7 +0 -0
  438. package/vendor/libgit2/fuzzers/corpora/commit_graph/21a52a5282145407d951ac73c2ff27876783899d +0 -0
  439. package/vendor/libgit2/fuzzers/corpora/commit_graph/21d5c8c8ac3a09bcba5388c472df32795986a5cb +1 -0
  440. package/vendor/libgit2/fuzzers/corpora/commit_graph/22170d1110a1c18009b7feb21a470681f55e85fb +0 -0
  441. package/vendor/libgit2/fuzzers/corpora/commit_graph/22f55dff94785f24252d7a070f713840f59b0870 +0 -0
  442. package/vendor/libgit2/fuzzers/corpora/commit_graph/23d10ee9694e1c66bedc7060990f19a2ac3eaee3 +0 -0
  443. package/vendor/libgit2/fuzzers/corpora/commit_graph/2435430ca19502c3b0ec4987508d4a8fbdbc898c +0 -0
  444. package/vendor/libgit2/fuzzers/corpora/commit_graph/244d2ea0c5c3117000b599cfab37680ba8f04513 +0 -0
  445. package/vendor/libgit2/fuzzers/corpora/commit_graph/248bf94143d150da2459cfdca099c30c6daff00a +0 -0
  446. package/vendor/libgit2/fuzzers/corpora/commit_graph/25bc53498129bb3717671f00c355d2637a91c86a +0 -0
  447. package/vendor/libgit2/fuzzers/corpora/commit_graph/2614f60da2d7e291501397238366d27513bff773 +0 -0
  448. package/vendor/libgit2/fuzzers/corpora/commit_graph/2651b3d5a8b4616b1faa81dabe27ab2712a27561 +0 -0
  449. package/vendor/libgit2/fuzzers/corpora/commit_graph/270257a2872b33dd13c4fd466cbc1ae67d613f9b +0 -0
  450. package/vendor/libgit2/fuzzers/corpora/commit_graph/2830c6244c74656f6c5649c8226953905a582a38 +0 -0
  451. package/vendor/libgit2/fuzzers/corpora/commit_graph/2889a85c07c20551ff0b97fc640e3c91b33aa4a1 +0 -0
  452. package/vendor/libgit2/fuzzers/corpora/commit_graph/295ce43fdd56def8948d1ba2bfa7fdf0c47b5318 +0 -0
  453. package/vendor/libgit2/fuzzers/corpora/commit_graph/296cbb94c4e68ab86972a174405308ee34d0c40f +0 -0
  454. package/vendor/libgit2/fuzzers/corpora/commit_graph/2975adf222cad108ec90d8225fd655e30e3bf253 +0 -0
  455. package/vendor/libgit2/fuzzers/corpora/commit_graph/29f5d27760c9254ab4db661a6cd0323dd11c34ca +0 -0
  456. package/vendor/libgit2/fuzzers/corpora/commit_graph/2a359fb09eaad968e57d353453908027645873d1 +0 -0
  457. package/vendor/libgit2/fuzzers/corpora/commit_graph/2a6b65a8d6c28febaa081d220a4433f8366d02bc +0 -0
  458. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b14dcade4d0919b0a17830fe353738015f492a6 +0 -0
  459. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b298a13abbd9829e965424a1486baa13d4166c4 +0 -0
  460. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b44d8cd8e70e25172b4c740ebe38ef411c965b3 +0 -0
  461. package/vendor/libgit2/fuzzers/corpora/commit_graph/2b590c4e61fdfcf21c017b29440747a1894b1534 +0 -0
  462. package/vendor/libgit2/fuzzers/corpora/commit_graph/2becb18a971ae30e1a8f6680982fd7305708caa0 +0 -0
  463. package/vendor/libgit2/fuzzers/corpora/commit_graph/2bf78b02099a1fe4ce50d065254e843ca55e280f +0 -0
  464. package/vendor/libgit2/fuzzers/corpora/commit_graph/2c1541ecd01aa7b9e99bccfe9804198b3e79f118 +0 -0
  465. package/vendor/libgit2/fuzzers/corpora/commit_graph/2c6798057af5894c27631ff63e845fe1e4bdc9ee +0 -0
  466. package/vendor/libgit2/fuzzers/corpora/commit_graph/2cf7eb7fe489e5acd64df755e820c871784c2ba1 +0 -0
  467. package/vendor/libgit2/fuzzers/corpora/commit_graph/2d49ba35ca404baa0d593925f36a81ce53943c8d +0 -0
  468. package/vendor/libgit2/fuzzers/corpora/commit_graph/2d507d42ca43ffc2f3c8892826e1db74144ec096 +0 -0
  469. package/vendor/libgit2/fuzzers/corpora/commit_graph/2e4da693e3e336d2b1a40311a7ccf94def035b6b +0 -0
  470. package/vendor/libgit2/fuzzers/corpora/commit_graph/2e71ff86128b5618f0f067c407a76ff645ae2019 +0 -0
  471. package/vendor/libgit2/fuzzers/corpora/commit_graph/2eb777c6d7e6ee9bd7a44e37372595043aad596b +0 -0
  472. package/vendor/libgit2/fuzzers/corpora/commit_graph/2ec3ebffba165b9dd49e755a9e77e23aed796628 +0 -0
  473. package/vendor/libgit2/fuzzers/corpora/commit_graph/302703e3b0d74219868aca39ee7593944c0b2400 +0 -0
  474. package/vendor/libgit2/fuzzers/corpora/commit_graph/3048c6908dc3176707fa8bcb0196824e3358357a +0 -0
  475. package/vendor/libgit2/fuzzers/corpora/commit_graph/30616cb39d3ad6060324fada03709d611ad28d5c +0 -0
  476. package/vendor/libgit2/fuzzers/corpora/commit_graph/306beadd9b3135a00037323760eb5377c88a403e +0 -0
  477. package/vendor/libgit2/fuzzers/corpora/commit_graph/31464a6fbad023923a7e4700fc11564e811bcbd2 +0 -0
  478. package/vendor/libgit2/fuzzers/corpora/commit_graph/317f4bcfecf066961ef1982d551cd14e63c9f008 +0 -0
  479. package/vendor/libgit2/fuzzers/corpora/commit_graph/31b2248faaabbec69a06098c8cb0f69c5d0aa208 +0 -0
  480. package/vendor/libgit2/fuzzers/corpora/commit_graph/31d1c3d1147385d58dbe6f82898a5523320fbcac +0 -0
  481. package/vendor/libgit2/fuzzers/corpora/commit_graph/32c9bc1616a78a230a3724abc02150db1cc40aa0 +0 -0
  482. package/vendor/libgit2/fuzzers/corpora/commit_graph/331e2866416b091252f0299e98d32cfb29237029 +0 -0
  483. package/vendor/libgit2/fuzzers/corpora/commit_graph/331eb3876dd2f3f0bd51f380ac431d86d6e3bb5e +0 -0
  484. package/vendor/libgit2/fuzzers/corpora/commit_graph/346bd6eaeadeafcb840ff9441614b309330db63e +0 -0
  485. package/vendor/libgit2/fuzzers/corpora/commit_graph/349931f447981f21476481448576e805c093a25b +0 -0
  486. package/vendor/libgit2/fuzzers/corpora/commit_graph/34a2da1e9adaac1b4be1d40b1ece81fe00643d49 +0 -0
  487. package/vendor/libgit2/fuzzers/corpora/commit_graph/34bb8f475e7384a8a39618fd15fdc5fb1b12c1a1 +0 -0
  488. package/vendor/libgit2/fuzzers/corpora/commit_graph/351a036c6eb95db9364706b861f7e75ad26194e8 +0 -0
  489. package/vendor/libgit2/fuzzers/corpora/commit_graph/355452c1da8e7689d816d67cdde040b5df7eabd7 +0 -0
  490. package/vendor/libgit2/fuzzers/corpora/commit_graph/35c157ad2b100b4f334cddcf3dea6ef2d85462be +0 -0
  491. package/vendor/libgit2/fuzzers/corpora/commit_graph/36a81a45eabfcf53e1ae0361aa234791e2fdb750 +0 -0
  492. package/vendor/libgit2/fuzzers/corpora/commit_graph/36ee20f6dbeb3a34e91eafbbe2e379f9ac6cfa43 +0 -0
  493. package/vendor/libgit2/fuzzers/corpora/commit_graph/377627c19bcac6adc880202048a9eac07b5417d4 +0 -0
  494. package/vendor/libgit2/fuzzers/corpora/commit_graph/38747e7c8bec2f9c923739d50ba54ff88ba6503f +0 -0
  495. package/vendor/libgit2/fuzzers/corpora/commit_graph/3945843a6fab2ec71030f09b237c125b97cd3ea5 +0 -0
  496. package/vendor/libgit2/fuzzers/corpora/commit_graph/396321d39b82ffaccbc64115117df7e822b0f515 +0 -0
  497. package/vendor/libgit2/fuzzers/corpora/commit_graph/396e78eb9b54e2cefb52cd76a22137c8abd6cbcf +0 -0
  498. package/vendor/libgit2/fuzzers/corpora/commit_graph/39c1ab66035adc104cd06a6d98b77668172d21af +0 -0
  499. package/vendor/libgit2/fuzzers/corpora/commit_graph/3a1078c35f5401ce09b5ba921fc348dde37530bb +0 -0
  500. package/vendor/libgit2/fuzzers/corpora/commit_graph/3aa3d8f40392d1c863d23799b8ec0aedc7191302 +0 -0
  501. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b08c505601271cb92345ec7f0ff0b28daf90a9c +0 -0
  502. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b41702587be45f678b36823ad2f7e5002337dc4 +0 -0
  503. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b69108cc919aba0248f9b864d4e71c5f6d1931e +0 -0
  504. package/vendor/libgit2/fuzzers/corpora/commit_graph/3b90507501bb3bcfe0094f9c92cc2869f1a7dda5 +0 -0
  505. package/vendor/libgit2/fuzzers/corpora/commit_graph/3bc7fe44c3a1464dd35a4d22b482f46cdeda0405 +0 -0
  506. package/vendor/libgit2/fuzzers/corpora/commit_graph/3ce99994986efb6df3f3568423e0077b53c7ef78 +0 -0
  507. package/vendor/libgit2/fuzzers/corpora/commit_graph/3d6cb3ba21181c9f0ab08b2608eab773f36773f2 +0 -0
  508. package/vendor/libgit2/fuzzers/corpora/commit_graph/3d8ec41450b943d5dea73fb1e393960b03d7c3b9 +0 -0
  509. package/vendor/libgit2/fuzzers/corpora/commit_graph/3e29e8baaac0f6c7e4cf3d5adca2ab3a2c491ac7 +0 -0
  510. package/vendor/libgit2/fuzzers/corpora/commit_graph/3e9469b3c68ba334671aacda7a7669b0e97b74d6 +0 -0
  511. package/vendor/libgit2/fuzzers/corpora/commit_graph/3eeda3bfa7abef69911c94520c009a08c49b9942 +0 -0
  512. package/vendor/libgit2/fuzzers/corpora/commit_graph/3f0f5021016451b57f673d0603cd9e4830c2198d +0 -0
  513. package/vendor/libgit2/fuzzers/corpora/commit_graph/3f46540fbd94bf0337c1d0d7437ec992a3568f09 +0 -0
  514. package/vendor/libgit2/fuzzers/corpora/commit_graph/402d9c25d5833d42630882ab5c57833266bef785 +0 -0
  515. package/vendor/libgit2/fuzzers/corpora/commit_graph/4048bb3c26d67c345630ff9e86db551a3add6549 +0 -0
  516. package/vendor/libgit2/fuzzers/corpora/commit_graph/40792f23c1281842dab671e8b213fc408d1ec39f +0 -0
  517. package/vendor/libgit2/fuzzers/corpora/commit_graph/41cd0b5d9a9540947b7b1841a55e4c11bd4346a2 +0 -0
  518. package/vendor/libgit2/fuzzers/corpora/commit_graph/41d86e5ea3df4a0de60d42aeb16e2a5599aedeae +0 -0
  519. package/vendor/libgit2/fuzzers/corpora/commit_graph/42b4e5430b2b1b17a361067fb9dd33ab74e52232 +0 -0
  520. package/vendor/libgit2/fuzzers/corpora/commit_graph/42ef1c9d234b90acaf1651d930fc52d5f8f158f2 +0 -0
  521. package/vendor/libgit2/fuzzers/corpora/commit_graph/4570c8ff26d7f31afe73b3d9a35a29bc1274d68a +0 -0
  522. package/vendor/libgit2/fuzzers/corpora/commit_graph/45cf4751a5929930a7c30ec10134434b9ee13c3d +0 -0
  523. package/vendor/libgit2/fuzzers/corpora/commit_graph/46e9d351dd5bb71f7d4d8f15b3fad312c781452e +0 -0
  524. package/vendor/libgit2/fuzzers/corpora/commit_graph/472421633b984556b96bc20f1fcf7a98c25736f3 +0 -0
  525. package/vendor/libgit2/fuzzers/corpora/commit_graph/47f35b91699caee098cacdde0161ffab21bdfc57 +0 -0
  526. package/vendor/libgit2/fuzzers/corpora/commit_graph/48b9da327218f9409287687a43b7eead4789a588 +0 -0
  527. package/vendor/libgit2/fuzzers/corpora/commit_graph/48d14fca326d5d591d18d34c2821a457277819a2 +0 -0
  528. package/vendor/libgit2/fuzzers/corpora/commit_graph/48f3a33e2a027f5735d0a333ec4acd5a2aa57118 +0 -0
  529. package/vendor/libgit2/fuzzers/corpora/commit_graph/49e0eee24eab094a9c62f6b37b6ba01f8aece4e4 +0 -0
  530. package/vendor/libgit2/fuzzers/corpora/commit_graph/4b45bcb707d2a0bc23b415e9bc3d7eb1f7f0e188 +0 -0
  531. package/vendor/libgit2/fuzzers/corpora/commit_graph/4c428300fe4866fe81cff02ad4bc14b6848f7f73 +0 -0
  532. package/vendor/libgit2/fuzzers/corpora/commit_graph/4d69c567df2e858c5f248b3fc8e4a9c04f02481c +0 -0
  533. package/vendor/libgit2/fuzzers/corpora/commit_graph/4d88b6c9b513d5db2e07313a39b43d112d3d4562 +0 -0
  534. package/vendor/libgit2/fuzzers/corpora/commit_graph/4da73370cf854ef8bd08c7f79b92a187cdbff278 +0 -0
  535. package/vendor/libgit2/fuzzers/corpora/commit_graph/4e4b2827351bbfd414b718052a8f950a9e3eb7ee +0 -0
  536. package/vendor/libgit2/fuzzers/corpora/commit_graph/4ed43f7d3c0305461edcbc86f62e0c6ad56df01e +0 -0
  537. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f011529809e88205421fa8ce39dcc025293bcb8 +0 -0
  538. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f1928b6376369ab6acf8a282284366cc3bf71ef +0 -0
  539. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f669eca3416c44f0d003ef2720d03e697e2230e +0 -0
  540. package/vendor/libgit2/fuzzers/corpora/commit_graph/4f750f24ecb5080bea2845061cfd3ce4529d30ee +0 -0
  541. package/vendor/libgit2/fuzzers/corpora/commit_graph/4fab9bb2bacf562e65f4a8681c429e6ea92aaed7 +0 -0
  542. package/vendor/libgit2/fuzzers/corpora/commit_graph/4fd757c7251c17413b3005fb38aee0fd029d89ec +0 -0
  543. package/vendor/libgit2/fuzzers/corpora/commit_graph/506092de91dcf93254cdd5ad9e02a953a38099ea +0 -0
  544. package/vendor/libgit2/fuzzers/corpora/commit_graph/50e934fb52d9bc5cd2a531adced1cad7f102a112 +0 -0
  545. package/vendor/libgit2/fuzzers/corpora/commit_graph/512e49a9e789656964988950009e6534907e6317 +0 -0
  546. package/vendor/libgit2/fuzzers/corpora/commit_graph/51404149f1ea30ee6959fafe81a52acabed97e9e +0 -0
  547. package/vendor/libgit2/fuzzers/corpora/commit_graph/5150f8a67399ee16178a2b08198cf91a90c0e53e +0 -0
  548. package/vendor/libgit2/fuzzers/corpora/commit_graph/51a1fd23dfe5a8062cd4601d235509247f3bc2dc +0 -0
  549. package/vendor/libgit2/fuzzers/corpora/commit_graph/51a963486f041a60c422f0dd6da3b69c52f12fb7 +0 -0
  550. package/vendor/libgit2/fuzzers/corpora/commit_graph/51fbf57a2a35ec33164838fa254fe605a3c868e9 +0 -0
  551. package/vendor/libgit2/fuzzers/corpora/commit_graph/53068b9f9cb54bb52d076e9602ccd55f169ef39a +0 -0
  552. package/vendor/libgit2/fuzzers/corpora/commit_graph/5314619e15fa5ee67df44481b8213a53786d39c5 +0 -0
  553. package/vendor/libgit2/fuzzers/corpora/commit_graph/533f5f00275968129846522fe01e2819746272eb +0 -0
  554. package/vendor/libgit2/fuzzers/corpora/commit_graph/53a62799135c282435a17e032deda03eaf9daf0f +0 -0
  555. package/vendor/libgit2/fuzzers/corpora/commit_graph/53c9d5cd849977e523d92dd2d639e9b0e721be50 +0 -0
  556. package/vendor/libgit2/fuzzers/corpora/commit_graph/54767a0bb3b96d39f5b2004ce3f274465f1a927e +0 -0
  557. package/vendor/libgit2/fuzzers/corpora/commit_graph/548de37dbe6a3829b73d976996ec9838cf608554 +0 -0
  558. package/vendor/libgit2/fuzzers/corpora/commit_graph/5522cefa54b798ea4aba8ef2a42ad248a7fb02ee +0 -0
  559. package/vendor/libgit2/fuzzers/corpora/commit_graph/554fab3eef5d8709f06d1d4319efe5c0c437421b +0 -0
  560. package/vendor/libgit2/fuzzers/corpora/commit_graph/567fe73919dae39b0bcb78b03d655643a71714a8 +0 -0
  561. package/vendor/libgit2/fuzzers/corpora/commit_graph/5717a281aa722ee4a32dfa1cc72fc5d6081f6755 +0 -0
  562. package/vendor/libgit2/fuzzers/corpora/commit_graph/577d814e0be43df9321c5b27119c398bd00a00c5 +0 -0
  563. package/vendor/libgit2/fuzzers/corpora/commit_graph/58680611707c6188f9f067f8747b699cd2fe82d3 +0 -0
  564. package/vendor/libgit2/fuzzers/corpora/commit_graph/5915b7f91dd43ec37a4718061c90cbec2686b916 +0 -0
  565. package/vendor/libgit2/fuzzers/corpora/commit_graph/599516e368ff621dd06d8450837350f4e9558c38 +0 -0
  566. package/vendor/libgit2/fuzzers/corpora/commit_graph/5a2d01d141e4d523e718c30e20cb07c3ad98f33d +0 -0
  567. package/vendor/libgit2/fuzzers/corpora/commit_graph/5a9803ef8cd88d1e8f1d6e5920b8afd170cafb11 +0 -0
  568. package/vendor/libgit2/fuzzers/corpora/commit_graph/5ba93c9db0cff93f52b521d7420e43f6eda2784f +0 -0
  569. package/vendor/libgit2/fuzzers/corpora/commit_graph/5bf0ca772092e6fa34b6822f61a1b1c3d7f2c6e3 +0 -0
  570. package/vendor/libgit2/fuzzers/corpora/commit_graph/5cfbfb3e12b629dc9f74baf0a8741345ec288795 +0 -0
  571. package/vendor/libgit2/fuzzers/corpora/commit_graph/5d8cc97b739c39820b761b6551d34dd647da6816 +0 -0
  572. package/vendor/libgit2/fuzzers/corpora/commit_graph/5dcbb3e1c2fc9a191dd3f3443b86f6bc38c39e37 +0 -0
  573. package/vendor/libgit2/fuzzers/corpora/commit_graph/5ec17d081aef9872f746e88ad8b03553719f9c36 +0 -0
  574. package/vendor/libgit2/fuzzers/corpora/commit_graph/5f88e3ba60c11be25c47a842763d8870d23cc7f2 +0 -0
  575. package/vendor/libgit2/fuzzers/corpora/commit_graph/6045e4d2bf85013c78a32e71b014ba3d4a4b7c61 +0 -0
  576. package/vendor/libgit2/fuzzers/corpora/commit_graph/615c7ba7ffbce955ffd964682e2a0f7ef3c767e4 +0 -0
  577. package/vendor/libgit2/fuzzers/corpora/commit_graph/6189f29cbbe88ac6cb32fdefecda1bd6194332a6 +0 -0
  578. package/vendor/libgit2/fuzzers/corpora/commit_graph/627224cb8484c62992dcbc4cdebdbfa48a3c021a +0 -0
  579. package/vendor/libgit2/fuzzers/corpora/commit_graph/629fff0962d298a7283a3d1e1d1b940dfef9b315 +0 -0
  580. package/vendor/libgit2/fuzzers/corpora/commit_graph/6322594cff2a99d0abb1139e6a43b06df76d539a +0 -0
  581. package/vendor/libgit2/fuzzers/corpora/commit_graph/63de5e8e042222d53bf05640c87da376aefb76cc +0 -0
  582. package/vendor/libgit2/fuzzers/corpora/commit_graph/647dbb1d05fe0fab685bfe126bd9ac3a12b6bccf +0 -0
  583. package/vendor/libgit2/fuzzers/corpora/commit_graph/647e5e265d8d1079784fc2a3da25f7ba58126acd +0 -0
  584. package/vendor/libgit2/fuzzers/corpora/commit_graph/653bd480dfd1e5f4bdca702aba3dfd8da0c204b7 +0 -0
  585. package/vendor/libgit2/fuzzers/corpora/commit_graph/65485740a465377213c80fa68028727f281299fb +0 -0
  586. package/vendor/libgit2/fuzzers/corpora/commit_graph/6551f8c8c3028006d0cc4997943df8a86ee3f598 +0 -0
  587. package/vendor/libgit2/fuzzers/corpora/commit_graph/67799e79d33883510f85ae9705ab3932862128a2 +0 -0
  588. package/vendor/libgit2/fuzzers/corpora/commit_graph/67b475481e5a21351b49789874adbc988aefd64c +0 -0
  589. package/vendor/libgit2/fuzzers/corpora/commit_graph/67e5a649967dee002d1c181e079748c404e29767 +0 -0
  590. package/vendor/libgit2/fuzzers/corpora/commit_graph/687424a4a31a66a78d1637c680c9c10746741007 +0 -0
  591. package/vendor/libgit2/fuzzers/corpora/commit_graph/68fa6dd52832657cb8dd7e1485d6fbafd4e93903 +0 -0
  592. package/vendor/libgit2/fuzzers/corpora/commit_graph/691696af1c042115f4d9f9b8e24f7b8c06ed189b +0 -0
  593. package/vendor/libgit2/fuzzers/corpora/commit_graph/6a80152f9b1afa3a3080bf3f6aa48e84c2e18497 +0 -0
  594. package/vendor/libgit2/fuzzers/corpora/commit_graph/6af27e4cf4c7bcce128a5949ee27fc73ab2cc71e +0 -0
  595. package/vendor/libgit2/fuzzers/corpora/commit_graph/6afd8f82d5639b774de0dfd418ae85322f4168dd +0 -0
  596. package/vendor/libgit2/fuzzers/corpora/commit_graph/6c64a9e26e0e1480bb5e60b7044ca6ce17104a80 +0 -0
  597. package/vendor/libgit2/fuzzers/corpora/commit_graph/6c850c17db130ca0152f7c75562fa191f7ef89de +0 -0
  598. package/vendor/libgit2/fuzzers/corpora/commit_graph/6c9afe4527371a2baf33c5e220e4ca21a3207f94 +0 -0
  599. package/vendor/libgit2/fuzzers/corpora/commit_graph/6ce3d40b0225923a7f4123a919b1c5d70841fad7 +0 -0
  600. package/vendor/libgit2/fuzzers/corpora/commit_graph/6cfd064aa6197813eb18f38df967ae4cdba9c6da +0 -0
  601. package/vendor/libgit2/fuzzers/corpora/commit_graph/6e6675676c53bcddc870e06605d2432e3429f224 +0 -0
  602. package/vendor/libgit2/fuzzers/corpora/commit_graph/6e6e82579b7abae2b43d90448d3f2ead4dfcba78 +0 -0
  603. package/vendor/libgit2/fuzzers/corpora/commit_graph/6f13d23c75a562eddefafe85e208e602832294e2 +0 -0
  604. package/vendor/libgit2/fuzzers/corpora/commit_graph/6fed59b0472927f5d2396d0ee4d7fd13579377ce +0 -0
  605. package/vendor/libgit2/fuzzers/corpora/commit_graph/71f7724196f9f8fcfe3ee0161a84893bb9c4ab11 +0 -0
  606. package/vendor/libgit2/fuzzers/corpora/commit_graph/7335ecb1d41e713bf3909adf5802b90e22bc1581 +0 -0
  607. package/vendor/libgit2/fuzzers/corpora/commit_graph/73afaa73175f461e1d19d5138e055c1649926dfe +0 -0
  608. package/vendor/libgit2/fuzzers/corpora/commit_graph/73e2fcb45c4df90d19091056b235e7a317631a62 +0 -0
  609. package/vendor/libgit2/fuzzers/corpora/commit_graph/741cb2d5ae11b0a9e0608b58ec7284d75129a1f2 +0 -0
  610. package/vendor/libgit2/fuzzers/corpora/commit_graph/7431bb0097a9bb52e1ceaaa8674a13cd3486a387 +0 -0
  611. package/vendor/libgit2/fuzzers/corpora/commit_graph/7455b805995d0c96ac12f8a1c1264caaffcfac1c +0 -0
  612. package/vendor/libgit2/fuzzers/corpora/commit_graph/74e39b8a82fc06f9ed8f83ea30545ddf6df66811 +0 -0
  613. package/vendor/libgit2/fuzzers/corpora/commit_graph/75d51e413d3e916560dc0c2ee5092d2f4972aec1 +0 -0
  614. package/vendor/libgit2/fuzzers/corpora/commit_graph/75e068964ea6beb7310a154d763de74a70071f48 +0 -0
  615. package/vendor/libgit2/fuzzers/corpora/commit_graph/763bf498dd847bd2b4af7b611199619bd428bea6 +0 -0
  616. package/vendor/libgit2/fuzzers/corpora/commit_graph/77064ae04581a3c6d2a77158ef1a0b1e60db414a +0 -0
  617. package/vendor/libgit2/fuzzers/corpora/commit_graph/783bb14d68021061f592601607f40fe232ad17c4 +0 -0
  618. package/vendor/libgit2/fuzzers/corpora/commit_graph/7862814cb684310b54ef920b35403515efaba13c +0 -0
  619. package/vendor/libgit2/fuzzers/corpora/commit_graph/791fd85b6ffb2429e9fa5ba29eebdce214ad88c7 +0 -0
  620. package/vendor/libgit2/fuzzers/corpora/commit_graph/79396d4f6142a53e26e14aa6ccb4afb4fd8fc580 +0 -0
  621. package/vendor/libgit2/fuzzers/corpora/commit_graph/79661b8e529e2182d5c612faba9f26e32a122b78 +0 -0
  622. package/vendor/libgit2/fuzzers/corpora/commit_graph/7969143acb3334bffac46c6dfd96362c81644191 +0 -0
  623. package/vendor/libgit2/fuzzers/corpora/commit_graph/79d84866dc8c067508c02516b65c0e48cf689b56 +0 -0
  624. package/vendor/libgit2/fuzzers/corpora/commit_graph/7b61f8f4a96e309bbe64ed82637fc81492a9652f +0 -0
  625. package/vendor/libgit2/fuzzers/corpora/commit_graph/7b8123f973edfb0f3cab027c0cd6b8efc7b11d6b +0 -0
  626. package/vendor/libgit2/fuzzers/corpora/commit_graph/7b8dd3093efba07f7a4d3bab4b90b8f6e4f28bfb +0 -0
  627. package/vendor/libgit2/fuzzers/corpora/commit_graph/7cc771aab0f3be7730881a46d952ae0a06958201 +0 -0
  628. package/vendor/libgit2/fuzzers/corpora/commit_graph/7d177f4207de78d50df2493a3bc07f2cd578b363 +0 -0
  629. package/vendor/libgit2/fuzzers/corpora/commit_graph/7d2df075f3e73ea9809c31586c37ece0f568b7fa +0 -0
  630. package/vendor/libgit2/fuzzers/corpora/commit_graph/7d386e68e4c733a1fb11c0117f379fb4b9955fbb +1 -0
  631. package/vendor/libgit2/fuzzers/corpora/commit_graph/7e4260830352479d29310bd6e1022e19a68ffe76 +0 -0
  632. package/vendor/libgit2/fuzzers/corpora/commit_graph/7e4dfdae52be18cf95555c2eb1f54af7f69c6dde +0 -0
  633. package/vendor/libgit2/fuzzers/corpora/commit_graph/7eafedf7e7f20e86ecdf9ba51febf8492bdbc1f1 +0 -0
  634. package/vendor/libgit2/fuzzers/corpora/commit_graph/7ef1829a378d66b1dd70a767729127a0dc5edcae +0 -0
  635. package/vendor/libgit2/fuzzers/corpora/commit_graph/80b7d2b9d7e8c8fd7ae239b8d307b592f97ee000 +0 -0
  636. package/vendor/libgit2/fuzzers/corpora/commit_graph/810f577ff5c1af7807a26226af912687558158cd +0 -0
  637. package/vendor/libgit2/fuzzers/corpora/commit_graph/81603f1fe8d8e29005418d0fc9a9b33972366038 +0 -0
  638. package/vendor/libgit2/fuzzers/corpora/commit_graph/81c8b4d6884f954935fa4a8e828c4637db04b61a +0 -0
  639. package/vendor/libgit2/fuzzers/corpora/commit_graph/8226846e9b092561f85cc2956ab89d8cc1ae61e0 +0 -0
  640. package/vendor/libgit2/fuzzers/corpora/commit_graph/825cfceea434e2392cce161356e3cb5f81ec2b3a +0 -0
  641. package/vendor/libgit2/fuzzers/corpora/commit_graph/82603febce83d95adf68b85cabf15d43ca0c4ee9 +0 -0
  642. package/vendor/libgit2/fuzzers/corpora/commit_graph/827f0826cc4156e19b4c4938bec74e38de62fe9c +0 -0
  643. package/vendor/libgit2/fuzzers/corpora/commit_graph/8486397ff8d1156249676c19b419a7758ff53f9a +0 -0
  644. package/vendor/libgit2/fuzzers/corpora/commit_graph/84d99ee359bec1b8ee0f59e9bd96f1da062030b7 +0 -0
  645. package/vendor/libgit2/fuzzers/corpora/commit_graph/84e629bc7416039f1feb81fa9168d7c1ee3141c2 +0 -0
  646. package/vendor/libgit2/fuzzers/corpora/commit_graph/84e885752179076fb38739ca7bc4345716bee56a +0 -0
  647. package/vendor/libgit2/fuzzers/corpora/commit_graph/859ef05494c8070057810b5c20df00fc81f81cf5 +0 -0
  648. package/vendor/libgit2/fuzzers/corpora/commit_graph/859fe592f33abc1d959c0e73ecd6cd4bffe23a97 +0 -0
  649. package/vendor/libgit2/fuzzers/corpora/commit_graph/860da5e8a468805b76a44b9ac99b4575be16ea15 +0 -0
  650. package/vendor/libgit2/fuzzers/corpora/commit_graph/865e415745cead02a826f058a5ee49099bdf9562 +0 -0
  651. package/vendor/libgit2/fuzzers/corpora/commit_graph/878bfce051a9c7462847d4e99b7e926dc821b7b8 +0 -0
  652. package/vendor/libgit2/fuzzers/corpora/commit_graph/880492e4dc7259577c227bb4f075d7165e875c29 +0 -0
  653. package/vendor/libgit2/fuzzers/corpora/commit_graph/88b7de1bd1c96454a1350286d115c0ee368511f9 +0 -0
  654. package/vendor/libgit2/fuzzers/corpora/commit_graph/896268e4a5775b7ce33923ac6daeb0810420c55b +0 -0
  655. package/vendor/libgit2/fuzzers/corpora/commit_graph/8978f8da89f9652878edabad164f5513ef508f27 +0 -0
  656. package/vendor/libgit2/fuzzers/corpora/commit_graph/89a6525b7db0e6ec211a484efd2880abef928d4e +0 -0
  657. package/vendor/libgit2/fuzzers/corpora/commit_graph/8ae86cba2bba6664fc5eb97be8e9777b8825d823 +0 -0
  658. package/vendor/libgit2/fuzzers/corpora/commit_graph/8b845fbd2aa14e4f83c4dbc8b4b0b54d06482acd +0 -0
  659. package/vendor/libgit2/fuzzers/corpora/commit_graph/8c4121e6ce5956cfa408b980f16d276f456374dc +0 -0
  660. package/vendor/libgit2/fuzzers/corpora/commit_graph/8cb6a5b8ab41e3d27668d5735b5c09ff1f2eab65 +0 -0
  661. package/vendor/libgit2/fuzzers/corpora/commit_graph/8d80a70ffd362a89b88663e27f11e8ab69b70c1b +0 -0
  662. package/vendor/libgit2/fuzzers/corpora/commit_graph/8db603c1720b3680047f831f2ea9862567a7cdc4 +0 -0
  663. package/vendor/libgit2/fuzzers/corpora/commit_graph/8dd40b2d27c7dd4b986c35d87f826da287c09c4c +0 -0
  664. package/vendor/libgit2/fuzzers/corpora/commit_graph/8e9d6e6408e5f708a1924e8370e687e2c202a4c4 +0 -0
  665. package/vendor/libgit2/fuzzers/corpora/commit_graph/8f2dff1a30ee28e5985cb9379828aea5658d5849 +0 -0
  666. package/vendor/libgit2/fuzzers/corpora/commit_graph/8f7d18cdd6e605b85784ada14571fd5e5a184f2a +0 -0
  667. package/vendor/libgit2/fuzzers/corpora/commit_graph/903ae52f0ac9af8348038b12f9259741b0de42f1 +0 -0
  668. package/vendor/libgit2/fuzzers/corpora/commit_graph/9119e331f59e9337d419739c324f49d1bd62c8bf +0 -0
  669. package/vendor/libgit2/fuzzers/corpora/commit_graph/91d54d03b0917314ea1d67a70690df9247dd08d2 +0 -0
  670. package/vendor/libgit2/fuzzers/corpora/commit_graph/922da3b96725bfd0e3f6ce119f1e2249d53f9086 +0 -0
  671. package/vendor/libgit2/fuzzers/corpora/commit_graph/9277561e0524cccba2f851970b0d88ec4f4d3f5e +0 -0
  672. package/vendor/libgit2/fuzzers/corpora/commit_graph/92a4d571804026b7bbe957396185e079e756b894 +0 -0
  673. package/vendor/libgit2/fuzzers/corpora/commit_graph/931224cc80168fd362a360d99bab813ed7bbf8ce +0 -0
  674. package/vendor/libgit2/fuzzers/corpora/commit_graph/936ea5dad3bf023c552aa0bbeea8f7f66a11612c +0 -0
  675. package/vendor/libgit2/fuzzers/corpora/commit_graph/93aa4e0b1864933dce0abc0df69fe3d261f117f2 +0 -0
  676. package/vendor/libgit2/fuzzers/corpora/commit_graph/93d5b084965cf1b09085c4079a972e25207b3659 +0 -0
  677. package/vendor/libgit2/fuzzers/corpora/commit_graph/9443fd3468bcc0bc3ff8dfe765225f045ab43d0a +0 -0
  678. package/vendor/libgit2/fuzzers/corpora/commit_graph/9624c26cefb5804b7906147d262e81ee4000b6d6 +0 -0
  679. package/vendor/libgit2/fuzzers/corpora/commit_graph/9890933a73f39208627bd36e2fe88a6d54343a74 +0 -0
  680. package/vendor/libgit2/fuzzers/corpora/commit_graph/989dad0448e79af10040d5080f74eba2b8a401ba +0 -0
  681. package/vendor/libgit2/fuzzers/corpora/commit_graph/98ed4808b4a8da66a91fcea1be63be6371a7c7ac +0 -0
  682. package/vendor/libgit2/fuzzers/corpora/commit_graph/9928e516b85e22fbad58d562d3b7e814d9ce812d +0 -0
  683. package/vendor/libgit2/fuzzers/corpora/commit_graph/994c7cc5599252b5628d89cd0ba4b5574d32bf00 +0 -0
  684. package/vendor/libgit2/fuzzers/corpora/commit_graph/99c8557c2a02ea030de42869af42c1f7c77114db +0 -0
  685. package/vendor/libgit2/fuzzers/corpora/commit_graph/9a14c867272f102b84efdba73662d318c3e51cfe +0 -0
  686. package/vendor/libgit2/fuzzers/corpora/commit_graph/9a6f158c176d4a1982d541be2bc27a8afba4ea57 +0 -0
  687. package/vendor/libgit2/fuzzers/corpora/commit_graph/9aa4af603192823a2fdc53d95ed36896bc3309b2 +0 -0
  688. package/vendor/libgit2/fuzzers/corpora/commit_graph/9b40c2190123cec66af3b37212f6c567869efda3 +0 -0
  689. package/vendor/libgit2/fuzzers/corpora/commit_graph/9b6268c11d78c35db5164f1346905e602b6a49fe +0 -0
  690. package/vendor/libgit2/fuzzers/corpora/commit_graph/9c6883ba5cedb7d711b12733d66ef1a1156dd0af +0 -0
  691. package/vendor/libgit2/fuzzers/corpora/commit_graph/9c85c90f44b454ce0d52882c447f5ecb8d303634 +0 -0
  692. package/vendor/libgit2/fuzzers/corpora/commit_graph/9cb7a2e89ec636da3fd41ecc49ebe25e5344e2c6 +0 -0
  693. package/vendor/libgit2/fuzzers/corpora/commit_graph/9d912dc5a3497e4b5b40b37202fc0ffbf5263666 +0 -0
  694. package/vendor/libgit2/fuzzers/corpora/commit_graph/9dcbafe8c5345194ee0ce7eb4f6efaeb55543626 +0 -0
  695. package/vendor/libgit2/fuzzers/corpora/commit_graph/9f4b0f3d2d25e6405ba6093f24d0605327711573 +0 -0
  696. package/vendor/libgit2/fuzzers/corpora/commit_graph/a047bf683239fa208dbac09424b105820ac23f43 +0 -0
  697. package/vendor/libgit2/fuzzers/corpora/commit_graph/a1379dcd89ef5e73eabbfcc395113e3636e0ae09 +0 -0
  698. package/vendor/libgit2/fuzzers/corpora/commit_graph/a38c7ef56adabd0916abac514154b1f362d40434 +0 -0
  699. package/vendor/libgit2/fuzzers/corpora/commit_graph/a38ec6ad4a8466b4feb88e67b16524e8f3feac64 +0 -0
  700. package/vendor/libgit2/fuzzers/corpora/commit_graph/a3fdea21020268b3b2409c1115d50697d9ae8f8c +0 -0
  701. package/vendor/libgit2/fuzzers/corpora/commit_graph/a45f1987a444b2c27e90fc1477e8b0815f75383f +0 -0
  702. package/vendor/libgit2/fuzzers/corpora/commit_graph/a4682958fb7029384c0a01a4a1356ac6f2f44fe1 +0 -0
  703. package/vendor/libgit2/fuzzers/corpora/commit_graph/a4de41561725960d6f48f210a4fb74d527f7b0c2 +0 -0
  704. package/vendor/libgit2/fuzzers/corpora/commit_graph/a5935f34435ecdd6587ad4f77b20d479d3387dbe +0 -0
  705. package/vendor/libgit2/fuzzers/corpora/commit_graph/a5b394beb2b1d463ad80924a8c8c70584bf5c629 +0 -0
  706. package/vendor/libgit2/fuzzers/corpora/commit_graph/a62bc806f8c98ba7986243c2185a0548a8dd57ef +0 -0
  707. package/vendor/libgit2/fuzzers/corpora/commit_graph/a7013e97948893e0118c686c06e332cc611bea7e +0 -0
  708. package/vendor/libgit2/fuzzers/corpora/commit_graph/a74f5df8c7f25c37c15c0f74ed50019d17338225 +0 -0
  709. package/vendor/libgit2/fuzzers/corpora/commit_graph/a7ab3559fb3da3f027e67091116253f3bdfd7828 +0 -0
  710. package/vendor/libgit2/fuzzers/corpora/commit_graph/a845c8258a02022d447ea9249788b345f5504648 +0 -0
  711. package/vendor/libgit2/fuzzers/corpora/commit_graph/a8d3e026e2393587eb170afb32e94ff0e1f8a8be +0 -0
  712. package/vendor/libgit2/fuzzers/corpora/commit_graph/a8d547e41ee21e163e65cf0a186d469dfa50ec19 +0 -0
  713. package/vendor/libgit2/fuzzers/corpora/commit_graph/a8fa22521dd6813e595cc0a9586ee71fff305fe2 +0 -0
  714. package/vendor/libgit2/fuzzers/corpora/commit_graph/a9969442d585d9a53259c71c73b095701280eac5 +0 -0
  715. package/vendor/libgit2/fuzzers/corpora/commit_graph/a99789d0ce2d7b937aaa8afa3cfc0f4ccd7be95f +0 -0
  716. package/vendor/libgit2/fuzzers/corpora/commit_graph/aaca30ee3ab38edfa2b061fcbcbca0c0ea657f15 +0 -0
  717. package/vendor/libgit2/fuzzers/corpora/commit_graph/aacdec3f05e98eb6eedddb9c6edb968e1a63c551 +0 -0
  718. package/vendor/libgit2/fuzzers/corpora/commit_graph/aadd85127241b94a41d02d9e9699e3e9773de1c9 +0 -0
  719. package/vendor/libgit2/fuzzers/corpora/commit_graph/ab8ad126702803d21dbafc85713bbee7f25f36e5 +0 -0
  720. package/vendor/libgit2/fuzzers/corpora/commit_graph/ac26f9afd599ff6f33396c2e02130654f3e2390c +0 -0
  721. package/vendor/libgit2/fuzzers/corpora/commit_graph/ac8b129e4756fda0c50c9dd0eb13e34c7b41ce8e +1 -0
  722. package/vendor/libgit2/fuzzers/corpora/commit_graph/aceaf3b72c2627dd3dd065974b854150681c093f +0 -0
  723. package/vendor/libgit2/fuzzers/corpora/commit_graph/ad1fcdc3bf806392e754a902eba9edd3b344c31f +0 -0
  724. package/vendor/libgit2/fuzzers/corpora/commit_graph/ad8c80e532482f9dfbfbb7c0d447f1f4e592bf72 +0 -0
  725. package/vendor/libgit2/fuzzers/corpora/commit_graph/add92b71bf897da2f71f691e6abcb6d02cb8e99f +0 -0
  726. package/vendor/libgit2/fuzzers/corpora/commit_graph/aeb8ccf6d82be9236c9e689e1580d043bd701eb0 +0 -0
  727. package/vendor/libgit2/fuzzers/corpora/commit_graph/af1a827aedbf674fff2bdeb5589554eec62787ab +0 -0
  728. package/vendor/libgit2/fuzzers/corpora/commit_graph/afaab9a75414d231176ad4582b6f8d81b5dbedb3 +0 -0
  729. package/vendor/libgit2/fuzzers/corpora/commit_graph/afc12c4ebed1f3ab962d7dcef110b5328b1e24c3 +0 -0
  730. package/vendor/libgit2/fuzzers/corpora/commit_graph/b0044f3744cf019658d668a33f8d1e53ef8bd6ce +0 -0
  731. package/vendor/libgit2/fuzzers/corpora/commit_graph/b06adc81a4e1cdcda3786970ca07ed9dee0b6401 +0 -0
  732. package/vendor/libgit2/fuzzers/corpora/commit_graph/b139802a1cc90fd5b86cae044c221361892c688d +0 -0
  733. package/vendor/libgit2/fuzzers/corpora/commit_graph/b1b8f251542db01bdb01be3b6d5b117b07db1834 +0 -0
  734. package/vendor/libgit2/fuzzers/corpora/commit_graph/b1b9af93f84ed6861b9c0ade39980e89ef828c8f +0 -0
  735. package/vendor/libgit2/fuzzers/corpora/commit_graph/b2eae68035cafd4077f6a4c3e4e961fdc1e8122b +0 -0
  736. package/vendor/libgit2/fuzzers/corpora/commit_graph/b32897a6aedaa8c5a6e656dd808bafabc4ee5608 +0 -0
  737. package/vendor/libgit2/fuzzers/corpora/commit_graph/b376e4fc517297f92ac1713803ae3b60d5ebbe43 +0 -0
  738. package/vendor/libgit2/fuzzers/corpora/commit_graph/b3fd100b139cfbffaad68aacf7d462861e9dca35 +0 -0
  739. package/vendor/libgit2/fuzzers/corpora/commit_graph/b40808ca955faab4829811bced1cccb2ab58ea58 +0 -0
  740. package/vendor/libgit2/fuzzers/corpora/commit_graph/b43daf9f87a514bce74af3e5a39284c69c4e7011 +0 -0
  741. package/vendor/libgit2/fuzzers/corpora/commit_graph/b477da07f3e5796ff4a98c8a5bdb0e4a634954bf +0 -0
  742. package/vendor/libgit2/fuzzers/corpora/commit_graph/b4a2ef09cf59ca5ccf810a6f001cce710cc02f6b +0 -0
  743. package/vendor/libgit2/fuzzers/corpora/commit_graph/b4b75e588cb83430c502a34ec3dcfaf774a00359 +0 -0
  744. package/vendor/libgit2/fuzzers/corpora/commit_graph/b4ce98acd2b288b6cfc00461e2e15e0f8004030c +0 -0
  745. package/vendor/libgit2/fuzzers/corpora/commit_graph/b75563f30f7e4fb369d2449b723ee8b282d03eff +0 -0
  746. package/vendor/libgit2/fuzzers/corpora/commit_graph/b7a0a820afa7057081de186728d0d887131d9314 +0 -0
  747. package/vendor/libgit2/fuzzers/corpora/commit_graph/b7e880446146c735a3f820fb93969c8c172c2fb5 +0 -0
  748. package/vendor/libgit2/fuzzers/corpora/commit_graph/b833073d3006e7cbac03c494603a9b75e7b2a723 +0 -0
  749. package/vendor/libgit2/fuzzers/corpora/commit_graph/b89459c1fb6fc918db4c81a32a75ee66217f9ab8 +0 -0
  750. package/vendor/libgit2/fuzzers/corpora/commit_graph/b8aab6c9b2c706f8df0ff695ff94969171f9c807 +0 -0
  751. package/vendor/libgit2/fuzzers/corpora/commit_graph/b9751182a36acb79b77585e1e379857a530e95c8 +0 -0
  752. package/vendor/libgit2/fuzzers/corpora/commit_graph/b9ddb239b5a2c1348d972ec70a08507c35ba4432 +0 -0
  753. package/vendor/libgit2/fuzzers/corpora/commit_graph/ba8f573256a0fbb95c5626f399ebc3ef50bbd826 +0 -0
  754. package/vendor/libgit2/fuzzers/corpora/commit_graph/bc165749042d5425c5d6d4e29b17769a2315a80d +0 -0
  755. package/vendor/libgit2/fuzzers/corpora/commit_graph/bc910bd349319e1ed44d7c7266e3ac99cc29ecc6 +0 -0
  756. package/vendor/libgit2/fuzzers/corpora/commit_graph/bc97b1d4f57eb7770bc3983e2d57c8c01b21d29e +0 -0
  757. package/vendor/libgit2/fuzzers/corpora/commit_graph/bd06f768e35ded4437cb88e2bc0ddd0bea3fa84c +0 -0
  758. package/vendor/libgit2/fuzzers/corpora/commit_graph/bd702faff9725a7a1957fd0f85cc52799f37b682 +0 -0
  759. package/vendor/libgit2/fuzzers/corpora/commit_graph/bee4464861e1cae3cfdd5fbcb340efbf02e8d8ca +0 -0
  760. package/vendor/libgit2/fuzzers/corpora/commit_graph/bf7ad994b098ec85d62683a16e067635e21a8af5 +0 -0
  761. package/vendor/libgit2/fuzzers/corpora/commit_graph/c054fc89ed72101dec861668ff1738ef85b728b9 +0 -0
  762. package/vendor/libgit2/fuzzers/corpora/commit_graph/c06752415ac037fefe5172dc7245cd7c49ca7fca +0 -0
  763. package/vendor/libgit2/fuzzers/corpora/commit_graph/c0c8b54354d172a0be751e3e9b80be961bb15ddb +0 -0
  764. package/vendor/libgit2/fuzzers/corpora/commit_graph/c0e7ca9b5b4d0e72d23d7dc9e9d1f2463a17a20d +0 -0
  765. package/vendor/libgit2/fuzzers/corpora/commit_graph/c13576a29c98bee02aa47f646f5f170f9b7d83f9 +0 -0
  766. package/vendor/libgit2/fuzzers/corpora/commit_graph/c14edf1d34f40b3cc74772c81ebe5d72172cc662 +0 -0
  767. package/vendor/libgit2/fuzzers/corpora/commit_graph/c2789364cb35d111f08f924d0d7550ea9785c61e +0 -0
  768. package/vendor/libgit2/fuzzers/corpora/commit_graph/c2d8b07acb13e43a89b6c4afb3ecb9817dd4a8e9 +0 -0
  769. package/vendor/libgit2/fuzzers/corpora/commit_graph/c36ed796c1bf839668db8fc3475a2ffb32ad8ceb +0 -0
  770. package/vendor/libgit2/fuzzers/corpora/commit_graph/c41ec9dd94427423e4704721e7f21eae0c44ef20 +0 -0
  771. package/vendor/libgit2/fuzzers/corpora/commit_graph/c42c544fa9dbb1264b39bf920b40985384db1d16 +0 -0
  772. package/vendor/libgit2/fuzzers/corpora/commit_graph/c45ec3f594abc15de0a8cc3ad748ba23cb34ec64 +0 -0
  773. package/vendor/libgit2/fuzzers/corpora/commit_graph/c49004d980961f288616a4eb9ebf68123fd68ffa +0 -0
  774. package/vendor/libgit2/fuzzers/corpora/commit_graph/c4c3c3c8df24adf505127627b3090116de78d9a6 +0 -0
  775. package/vendor/libgit2/fuzzers/corpora/commit_graph/c5c1921293af4a5953cb386092694042715fcfb3 +0 -0
  776. package/vendor/libgit2/fuzzers/corpora/commit_graph/c615caad21cd8a754fcb2008420234c5511c62b7 +0 -0
  777. package/vendor/libgit2/fuzzers/corpora/commit_graph/c6a9ee3f8fdc42566c4799db3912a83c8c438d7f +0 -0
  778. package/vendor/libgit2/fuzzers/corpora/commit_graph/c6b661e976282051285b913b3728383f36103ef8 +0 -0
  779. package/vendor/libgit2/fuzzers/corpora/commit_graph/c716ba47f810c238fe7bda1fbdc7b1ccc34e9848 +1 -0
  780. package/vendor/libgit2/fuzzers/corpora/commit_graph/c85b2fa4421302e2fa333a9e33d59a882aa04f4f +0 -0
  781. package/vendor/libgit2/fuzzers/corpora/commit_graph/c871d135f2d3117b326688355bc0fa6f26d56cd6 +0 -0
  782. package/vendor/libgit2/fuzzers/corpora/commit_graph/c915b02265a27d185a8b028305f082ddb3ebd704 +0 -0
  783. package/vendor/libgit2/fuzzers/corpora/commit_graph/c952d38b3e642db4795d7f954b85f4f6d2a041aa +0 -0
  784. package/vendor/libgit2/fuzzers/corpora/commit_graph/c98ee52065736c4172f6ee0c31977bf1b560d685 +0 -0
  785. package/vendor/libgit2/fuzzers/corpora/commit_graph/c99b183a2cd0dd8a4c1a141cc6eebb0311501fa5 +1 -0
  786. package/vendor/libgit2/fuzzers/corpora/commit_graph/ca0cd26baff2f2c0759e619800ebbe7314d2bb95 +0 -0
  787. package/vendor/libgit2/fuzzers/corpora/commit_graph/ca3e0d745c35d7cceb0f6e3f8a709eb658b7e5a8 +0 -0
  788. package/vendor/libgit2/fuzzers/corpora/commit_graph/cac667320e99e93a796bb89842de4675735eb4a4 +0 -0
  789. package/vendor/libgit2/fuzzers/corpora/commit_graph/cb41b00e9db33a07e27b3ee05d3bbecaf853b963 +0 -0
  790. package/vendor/libgit2/fuzzers/corpora/commit_graph/cbdbd3f320eee627097778f15b9fb2c1dc2bd15f +0 -0
  791. package/vendor/libgit2/fuzzers/corpora/commit_graph/cc7f114000c83abb2ab17f0deab6dcfc2acde7f5 +0 -0
  792. package/vendor/libgit2/fuzzers/corpora/commit_graph/cc9bb93a6b7a1362a15f04898845dbe1447ec382 +0 -0
  793. package/vendor/libgit2/fuzzers/corpora/commit_graph/cce7355f826bbcf3955394596d358abc7df6fe6f +0 -0
  794. package/vendor/libgit2/fuzzers/corpora/commit_graph/cceff2878a558166fb5bf2a0354c1be31dcc4e21 +0 -0
  795. package/vendor/libgit2/fuzzers/corpora/commit_graph/cd96909f3ded7aa54bb2ffd2f2f47f8acc6f99e2 +0 -0
  796. package/vendor/libgit2/fuzzers/corpora/commit_graph/cee9f69d7d1a227833fba127a529ea2a10341da3 +0 -0
  797. package/vendor/libgit2/fuzzers/corpora/commit_graph/d064f27a3109afde629165432f78f389da73ff07 +0 -0
  798. package/vendor/libgit2/fuzzers/corpora/commit_graph/d07e3094f02b0c0e3bab370684c2d8c5634224d5 +0 -0
  799. package/vendor/libgit2/fuzzers/corpora/commit_graph/d0ba3413d5706de17de64824d78233d48c6efbec +0 -0
  800. package/vendor/libgit2/fuzzers/corpora/commit_graph/d136511364a74973b009f2be9b021d4122f71a6c +0 -0
  801. package/vendor/libgit2/fuzzers/corpora/commit_graph/d1d215c40bcc8dd4ce02b0c0621e90b183b40b3e +0 -0
  802. package/vendor/libgit2/fuzzers/corpora/commit_graph/d1e35b137b2027b61def408f3f3c8cf9bcab274e +0 -0
  803. package/vendor/libgit2/fuzzers/corpora/commit_graph/d349d137e57fb1a60ab8babd20e2acedc7a9042e +0 -0
  804. package/vendor/libgit2/fuzzers/corpora/commit_graph/d3714ec4d3acc6262295b0fc99c6ba699f5bfe65 +0 -0
  805. package/vendor/libgit2/fuzzers/corpora/commit_graph/d419df696512216074f1c6b17ea1dfc81c0e6e20 +0 -0
  806. package/vendor/libgit2/fuzzers/corpora/commit_graph/d49ad4fdafac251ceec32481826228c1698360aa +0 -0
  807. package/vendor/libgit2/fuzzers/corpora/commit_graph/d4f85ba549c87ccaba59971a25da7e07b57c9f4e +0 -0
  808. package/vendor/libgit2/fuzzers/corpora/commit_graph/d51ade0715bcea7decee2a045934599a10c1b07a +0 -0
  809. package/vendor/libgit2/fuzzers/corpora/commit_graph/d5447fb72c97462a3f47c8b2d55deb0afaa225f8 +0 -0
  810. package/vendor/libgit2/fuzzers/corpora/commit_graph/d6611a91c29291872ed2932455cb15ddb3801323 +0 -0
  811. package/vendor/libgit2/fuzzers/corpora/commit_graph/d676f5e7efd6de6f2e1773231479471d2bba7261 +0 -0
  812. package/vendor/libgit2/fuzzers/corpora/commit_graph/d6a21eaa08a957d8f428192e193c2508fca2c218 +0 -0
  813. package/vendor/libgit2/fuzzers/corpora/commit_graph/d778052a29539344a9e3144e262e68df9628ebde +0 -0
  814. package/vendor/libgit2/fuzzers/corpora/commit_graph/d884f6944adfff7cb41728062bf91cac5cdacfc9 +0 -0
  815. package/vendor/libgit2/fuzzers/corpora/commit_graph/d89aae18d8e320bbae55eaae6a0514d7e005a883 +0 -0
  816. package/vendor/libgit2/fuzzers/corpora/commit_graph/d926fde818c63f7b34f38c9f018bc833bc0bf7e1 +0 -0
  817. package/vendor/libgit2/fuzzers/corpora/commit_graph/d9d542d7c56774143cb6362e5a63739055469349 +0 -0
  818. package/vendor/libgit2/fuzzers/corpora/commit_graph/da99bc9ce5b831f132dfb2eb11b8537e5cccfcd4 +0 -0
  819. package/vendor/libgit2/fuzzers/corpora/commit_graph/dabff2729fa69ab507fb00b7392aee1262056a29 +0 -0
  820. package/vendor/libgit2/fuzzers/corpora/commit_graph/dac4f4b91e33847bcedf7c66ef6e4ad0181e8ad8 +0 -0
  821. package/vendor/libgit2/fuzzers/corpora/commit_graph/db10ff6d01c7a66aa1823b9f99193590ddce99c6 +0 -0
  822. package/vendor/libgit2/fuzzers/corpora/commit_graph/dbbda2208fa688a5275dda0d304630db01ca081d +0 -0
  823. package/vendor/libgit2/fuzzers/corpora/commit_graph/dc47c5037be68a2747ff8a9fa450e1078a5ac5a5 +0 -0
  824. package/vendor/libgit2/fuzzers/corpora/commit_graph/dc760f136b123e38677aec72853e3365f08010fc +0 -0
  825. package/vendor/libgit2/fuzzers/corpora/commit_graph/dca41b901bf1612d4197e6a450366a00ac036ec3 +0 -0
  826. package/vendor/libgit2/fuzzers/corpora/commit_graph/dca62f21fce50d1c8c51b82e0d7eeedc6746e652 +0 -0
  827. package/vendor/libgit2/fuzzers/corpora/commit_graph/dcc7e6c444f95b10d634b1137413824e2cd68f62 +0 -0
  828. package/vendor/libgit2/fuzzers/corpora/commit_graph/dcf4b6addda69040f792c9b860ade2af0b77a14c +0 -0
  829. package/vendor/libgit2/fuzzers/corpora/commit_graph/dd6178166ac1eed82d132fea491bcda0d953227c +0 -0
  830. package/vendor/libgit2/fuzzers/corpora/commit_graph/ddbd5d3074323ccd7cd70bf5de5a2f30de977d99 +0 -0
  831. package/vendor/libgit2/fuzzers/corpora/commit_graph/ddd8ec5632bf1b8153d03a4537d3d76517c497d5 +0 -0
  832. package/vendor/libgit2/fuzzers/corpora/commit_graph/de7a56f36e10d7b9ff43160b1cea3e76b24386d1 +0 -0
  833. package/vendor/libgit2/fuzzers/corpora/commit_graph/defa60aa46ea5a47c09b6962b4e4296ef1bcad92 +0 -0
  834. package/vendor/libgit2/fuzzers/corpora/commit_graph/e0ae419425207832518d66c0ef35d11cbdc20361 +0 -0
  835. package/vendor/libgit2/fuzzers/corpora/commit_graph/e0f519accbf15bc57a1bf1d7cc46d2a0b07a67f5 +0 -0
  836. package/vendor/libgit2/fuzzers/corpora/commit_graph/e128eff8ca7572d9bb0bfc84f64d79c52afc2c67 +0 -0
  837. package/vendor/libgit2/fuzzers/corpora/commit_graph/e17fdc21ae03243bd1d31bb6301b4187cab6fe47 +0 -0
  838. package/vendor/libgit2/fuzzers/corpora/commit_graph/e340ace35a2db7f89d6aa21cc1300766a74be4e1 +0 -0
  839. package/vendor/libgit2/fuzzers/corpora/commit_graph/e36dfc11bcaab1e42df13924a2d7da024684db2e +0 -0
  840. package/vendor/libgit2/fuzzers/corpora/commit_graph/e39e0c87ac5ce0b78c89ae2df84226baba666372 +0 -0
  841. package/vendor/libgit2/fuzzers/corpora/commit_graph/e46b4666c6bfcd6f589ec3617a48cce9c968e833 +0 -0
  842. package/vendor/libgit2/fuzzers/corpora/commit_graph/e57219555e11f9221d3166d5029ed2ad92300608 +0 -0
  843. package/vendor/libgit2/fuzzers/corpora/commit_graph/e58ce590c2454e7ebe18e0a31a943b0b754fbd13 +0 -0
  844. package/vendor/libgit2/fuzzers/corpora/commit_graph/e595f8fef5c8014cb0867978c6580301078ca0d9 +0 -0
  845. package/vendor/libgit2/fuzzers/corpora/commit_graph/e5b76398f60628e879328d7009b9fa89feea14cb +0 -0
  846. package/vendor/libgit2/fuzzers/corpora/commit_graph/e5cec0217eea93b18a59d76b0aed6b46b13fa6a9 +0 -0
  847. package/vendor/libgit2/fuzzers/corpora/commit_graph/e637b4e0b47d0d6cd870502e6a2d6a53bf917f73 +0 -0
  848. package/vendor/libgit2/fuzzers/corpora/commit_graph/e7a6cb6e5a1552837fdbee9025fc48a9373f8564 +0 -0
  849. package/vendor/libgit2/fuzzers/corpora/commit_graph/e7f57c48016e1180c9af95acd34470881f10bd06 +0 -0
  850. package/vendor/libgit2/fuzzers/corpora/commit_graph/e8253c668bfe37df5c5ada3226860cee74fb33a2 +0 -0
  851. package/vendor/libgit2/fuzzers/corpora/commit_graph/e8f9981443c34ece02bca3c66130f3429d7b3375 +0 -0
  852. package/vendor/libgit2/fuzzers/corpora/commit_graph/e91ed5416bbcd1b03803197b99c08f42c9869139 +0 -0
  853. package/vendor/libgit2/fuzzers/corpora/commit_graph/e94201cfa88df7b198abd3abae9007a6780b52a7 +0 -0
  854. package/vendor/libgit2/fuzzers/corpora/commit_graph/e967bbd6a0d251ae62c9c38b784271d707f792c0 +0 -0
  855. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea01737ceed783b3e0f66d9d0c409cb496c1d526 +0 -0
  856. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea40f7879a58d1e52a46404c761f76a949e14a31 +0 -0
  857. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea5ad04a54f95963baea1f47845847626e08dd55 +0 -0
  858. package/vendor/libgit2/fuzzers/corpora/commit_graph/ea608a401f54b0ca70e42b897f0c8ce6efdbc0ef +0 -0
  859. package/vendor/libgit2/fuzzers/corpora/commit_graph/eb8700d6b3728e6e70c2a0fe504543771639f2b6 +0 -0
  860. package/vendor/libgit2/fuzzers/corpora/commit_graph/ec1f271b04c322353865f4819153d46df7def873 +0 -0
  861. package/vendor/libgit2/fuzzers/corpora/commit_graph/ee215536e7f0cfbd07b53dd65c5af9a604a01830 +0 -0
  862. package/vendor/libgit2/fuzzers/corpora/commit_graph/ee4d4393d7d79b755f85ef5bf8f6e3d743bfa258 +0 -0
  863. package/vendor/libgit2/fuzzers/corpora/commit_graph/ee8099331b2c392e7e036ffcd4a9b36ec2c2082d +0 -0
  864. package/vendor/libgit2/fuzzers/corpora/commit_graph/eede9da76db25513f8347f972e170102831de91a +0 -0
  865. package/vendor/libgit2/fuzzers/corpora/commit_graph/ef707cdeaa9548b6c820f769c1d8ad607b3c4514 +0 -0
  866. package/vendor/libgit2/fuzzers/corpora/commit_graph/ef98609d8196dc158365dfcbbc47e3d1699c50c2 +0 -0
  867. package/vendor/libgit2/fuzzers/corpora/commit_graph/efa38b4269f978f3714b44b501831bea678244e0 +0 -0
  868. package/vendor/libgit2/fuzzers/corpora/commit_graph/efba428e29811d233720ccaaf41966a309312a29 +0 -0
  869. package/vendor/libgit2/fuzzers/corpora/commit_graph/efd514f056d8d83498b4724249c4623560e0390d +0 -0
  870. package/vendor/libgit2/fuzzers/corpora/commit_graph/f00e449ba67ef15e7f29df1e6948c28155d72baa +0 -0
  871. package/vendor/libgit2/fuzzers/corpora/commit_graph/f0a83929d588466051dced6eae0c387db307d646 +0 -0
  872. package/vendor/libgit2/fuzzers/corpora/commit_graph/f0e53b72e5d69467e7c014474028ea734f4fcb26 +0 -0
  873. package/vendor/libgit2/fuzzers/corpora/commit_graph/f186265b3f10f4383f4174e9fb74f0a0cdfa3fca +0 -0
  874. package/vendor/libgit2/fuzzers/corpora/commit_graph/f18932fcce5a9db5d6c8f59d622eabc25e255e12 +0 -0
  875. package/vendor/libgit2/fuzzers/corpora/commit_graph/f2ea163bddb95d67597e2a747779ebf4651cb2a9 +0 -0
  876. package/vendor/libgit2/fuzzers/corpora/commit_graph/f2f7d48a6d86143ecb4969808d634163576065b1 +0 -0
  877. package/vendor/libgit2/fuzzers/corpora/commit_graph/f34a833faf2b0dcbae8aaad142c76c7c7e534e99 +0 -0
  878. package/vendor/libgit2/fuzzers/corpora/commit_graph/f5c044ce01645c069334698fb8c4750e44835912 +0 -0
  879. package/vendor/libgit2/fuzzers/corpora/commit_graph/f680112645c2502f0612e9d017bbb50cb28affbf +0 -0
  880. package/vendor/libgit2/fuzzers/corpora/commit_graph/f6b778d1b34415a7715905f54968c8b6eb057912 +0 -0
  881. package/vendor/libgit2/fuzzers/corpora/commit_graph/f6ca6a62dc885c6b2a4b40c4aa1a7cb8118e30bb +0 -0
  882. package/vendor/libgit2/fuzzers/corpora/commit_graph/f733a8770c23fde182d2fef7e0d96e67244274d5 +0 -0
  883. package/vendor/libgit2/fuzzers/corpora/commit_graph/f8529ddf17d4505c0932c3d40abe33cbfd8c6f22 +0 -0
  884. package/vendor/libgit2/fuzzers/corpora/commit_graph/f96f8419a3fc3719ae86d64e1147e7b7f66a2470 +0 -0
  885. package/vendor/libgit2/fuzzers/corpora/commit_graph/fae241a6c87af37781a3b49e534b7ddb6636eda8 +0 -0
  886. package/vendor/libgit2/fuzzers/corpora/commit_graph/faf8817a04b77c6a976ab0a3d1e905f79bb7f799 +0 -0
  887. package/vendor/libgit2/fuzzers/corpora/commit_graph/fb3e769019fb25d384d4be9d38e4cbce00a6adbc +0 -0
  888. package/vendor/libgit2/fuzzers/corpora/commit_graph/fb9b4b2a46f1c65076340a7bd03b076eb101b760 +0 -0
  889. package/vendor/libgit2/fuzzers/corpora/commit_graph/fca9b0a398832c9ba02cdc811f625b97d5beb18e +0 -0
  890. package/vendor/libgit2/fuzzers/corpora/commit_graph/fcb1b42c706e61245d5e86f708be777ae63f2772 +0 -0
  891. package/vendor/libgit2/fuzzers/corpora/commit_graph/fd6c463e7c30b0e51198c0d1ebbea25f20145e3f +0 -0
  892. package/vendor/libgit2/fuzzers/corpora/commit_graph/fdcbaa49097ad120c6d7709b29d5b65b8cf8e719 +0 -0
  893. package/vendor/libgit2/fuzzers/corpora/commit_graph/fe46775b28a2923b8770b44381552a8a1560d875 +0 -0
  894. package/vendor/libgit2/fuzzers/corpora/commit_graph/ff04441135ef3308fec2687cf688069c6df8aa31 +0 -0
  895. package/vendor/libgit2/fuzzers/corpora/midx/037cbbe0dc03807dd9d9e8629f1712d7df34ee18 +0 -0
  896. package/vendor/libgit2/fuzzers/corpora/midx/039ee34fef8f323ed618a10abc0109df123d0cb5 +0 -0
  897. package/vendor/libgit2/fuzzers/corpora/midx/054ee2c82bdb6a170106eb5d35f21bde2119d584 +1 -0
  898. package/vendor/libgit2/fuzzers/corpora/midx/055ca4cbc961ebf5fd5c922b4f73880d3fbfe39d +0 -0
  899. package/vendor/libgit2/fuzzers/corpora/midx/05c4e5eb1b97bc9b6973921fcb30d4c5e2eb79e4 +0 -0
  900. package/vendor/libgit2/fuzzers/corpora/midx/0672eeda541a191cfc68d521a3c7ac0aac4057a6 +0 -0
  901. package/vendor/libgit2/fuzzers/corpora/midx/06a58d1bd5562a668ebf01ef297fd774e0e587a6 +0 -0
  902. package/vendor/libgit2/fuzzers/corpora/midx/06bf7c2461ae1049030f31b83ae76babfcc20c83 +0 -0
  903. package/vendor/libgit2/fuzzers/corpora/midx/06c2db67ea65758d971346bfd6beaa61ed12f22c +0 -0
  904. package/vendor/libgit2/fuzzers/corpora/midx/07f88eefaf12609b7370fe78b82be2955f1b41fd +0 -0
  905. package/vendor/libgit2/fuzzers/corpora/midx/08495c5f3828a56c167de870d385c46ffdce03c5 +0 -0
  906. package/vendor/libgit2/fuzzers/corpora/midx/08ec8594e5b35fb9e8e0726584f720154f0b2b5d +0 -0
  907. package/vendor/libgit2/fuzzers/corpora/midx/0903e378a493c596298074d6bff8de7f9ac25aa7 +1 -0
  908. package/vendor/libgit2/fuzzers/corpora/midx/09144a846f90f894049ef8a0ed0cc7ab4588dc6c +1 -0
  909. package/vendor/libgit2/fuzzers/corpora/midx/09b40dd618373bfe4d3f2838f686a70f645e640b +0 -0
  910. package/vendor/libgit2/fuzzers/corpora/midx/0a00ef44d234c18d365ec41724dbf4f21b09d0c5 +0 -0
  911. package/vendor/libgit2/fuzzers/corpora/midx/0a94e9f4a9b8cf56d52a9e3e7f2fa9a0a5c80d30 +0 -0
  912. package/vendor/libgit2/fuzzers/corpora/midx/0b35a123104b7872a7f15a710a23ef3594ace04d +0 -0
  913. package/vendor/libgit2/fuzzers/corpora/midx/0c3d7e6be32c014ea873440b0f095961d391af1a +0 -0
  914. package/vendor/libgit2/fuzzers/corpora/midx/0c65de477b89afc312a7e89cde06f8a17f65bd54 +0 -0
  915. package/vendor/libgit2/fuzzers/corpora/midx/0c81d0f368e979d2a0eb4598cbf1c9283936ba0c +0 -0
  916. package/vendor/libgit2/fuzzers/corpora/midx/0c95a44ae995070a5279a2991c36de2251081460 +0 -0
  917. package/vendor/libgit2/fuzzers/corpora/midx/0de38e2cb13167df7d5a882570633596f64bc4f4 +0 -0
  918. package/vendor/libgit2/fuzzers/corpora/midx/0de96aa193045315457ade63c2614610c503db9e +0 -0
  919. package/vendor/libgit2/fuzzers/corpora/midx/0e02deca2b16d71f8637933bd56dc8592ed9fdff +1 -0
  920. package/vendor/libgit2/fuzzers/corpora/midx/0e44fc9176fe2c1bae4209369da5bc057f54b2d2 +0 -0
  921. package/vendor/libgit2/fuzzers/corpora/midx/0f6c5fc9b6a68835364bbef8937560ee5a481938 +1 -0
  922. package/vendor/libgit2/fuzzers/corpora/midx/10d542d5c7da060a5f0664e21478a0d598e29844 +0 -0
  923. package/vendor/libgit2/fuzzers/corpora/midx/118735f7786ae6b4c2f6b36314ab1f2cafe9c3c8 +1 -0
  924. package/vendor/libgit2/fuzzers/corpora/midx/119b58eb353aa344264005016297fb911510ea0d +0 -0
  925. package/vendor/libgit2/fuzzers/corpora/midx/127626832c30d6d94bb29384c0fde7ac6bca75ec +0 -0
  926. package/vendor/libgit2/fuzzers/corpora/midx/1284f1a162588d4de87ca17149474644a0863b27 +0 -0
  927. package/vendor/libgit2/fuzzers/corpora/midx/1458599f19f1a967c787562bf8ec3e67677da9c8 +0 -0
  928. package/vendor/libgit2/fuzzers/corpora/midx/14ba6c1ddd05b22c6f2eae5f894721cd3efcbb16 +0 -0
  929. package/vendor/libgit2/fuzzers/corpora/midx/158cdc0a5aa005f167a8588d0beed9eee4aa36f2 +0 -0
  930. package/vendor/libgit2/fuzzers/corpora/midx/15dafc6fa800327f694b5eb2fc4ebf007be9c117 +0 -0
  931. package/vendor/libgit2/fuzzers/corpora/midx/1613ed4b2e909871f8897fd6354ff80a4ac12f87 +0 -0
  932. package/vendor/libgit2/fuzzers/corpora/midx/16daf4cb967bb47cf4566e9be7d96d3125bd2e12 +0 -0
  933. package/vendor/libgit2/fuzzers/corpora/midx/177783dce78efee878f6d6020fd87ab107bb11a1 +0 -0
  934. package/vendor/libgit2/fuzzers/corpora/midx/17a5090400a1fedc45070e4b530a26f320a89097 +0 -0
  935. package/vendor/libgit2/fuzzers/corpora/midx/17dea5cfa498f4d54384289a1daed0d15a85e7cc +0 -0
  936. package/vendor/libgit2/fuzzers/corpora/midx/17e76ae5b54316679981113f52c27edc87dbcdea +0 -0
  937. package/vendor/libgit2/fuzzers/corpora/midx/191ed5e9334693c53fc843f692dbc3c2c63e8241 +0 -0
  938. package/vendor/libgit2/fuzzers/corpora/midx/196a0ba4edb5bbfd66c1cda669abf0496573cf0e +0 -0
  939. package/vendor/libgit2/fuzzers/corpora/midx/19742b6cee79fa5bf9b27dcbe367c82d0a399904 +0 -0
  940. package/vendor/libgit2/fuzzers/corpora/midx/1a21d7581d3b0a8d67934d48e91d45bd818836e8 +0 -0
  941. package/vendor/libgit2/fuzzers/corpora/midx/1b2f96c5d75c7ca09b1012be4e6c3a7b248ed924 +0 -0
  942. package/vendor/libgit2/fuzzers/corpora/midx/1b604ff0683d0e23dc7945431f6514ba30d6ca0d +0 -0
  943. package/vendor/libgit2/fuzzers/corpora/midx/1b771dd5bd3ae2b1c42c4efe6c896c83b88a4f91 +0 -0
  944. package/vendor/libgit2/fuzzers/corpora/midx/1b793a4ee73fa8bf423da70fca5f39ef32a8d288 +0 -0
  945. package/vendor/libgit2/fuzzers/corpora/midx/1c9599ce00978780519272be279f508c402e3268 +1 -0
  946. package/vendor/libgit2/fuzzers/corpora/midx/1cc0068f9f63b12dc8fdd38f9ebfb96c42664e95 +0 -0
  947. package/vendor/libgit2/fuzzers/corpora/midx/1de6e1f5579da6e5c40f4ee23ac62e29e4f90541 +0 -0
  948. package/vendor/libgit2/fuzzers/corpora/midx/1eec93083260ebfab5f4c6d13119cf27c374b7e9 +0 -0
  949. package/vendor/libgit2/fuzzers/corpora/midx/1f0f574addd363d1fed131289f301c5c033aaa8f +0 -0
  950. package/vendor/libgit2/fuzzers/corpora/midx/1f3e85cffdb545c1ba7c8bbe1ca18ec13e341038 +0 -0
  951. package/vendor/libgit2/fuzzers/corpora/midx/1f6a66a92d5f083a73a82280a0a1ae0800e56ae5 +0 -0
  952. package/vendor/libgit2/fuzzers/corpora/midx/208e422322052efcdaeb1a09bbf06c5f476b8efc +0 -0
  953. package/vendor/libgit2/fuzzers/corpora/midx/22d75b2c3937957b14eded621b638283ce7fe1fe +0 -0
  954. package/vendor/libgit2/fuzzers/corpora/midx/22f90ff68166a409acf8f89bf60a31ad2c64ab37 +0 -0
  955. package/vendor/libgit2/fuzzers/corpora/midx/236ebad449d432b039d6ace1f250ef1fa2aa364d +0 -0
  956. package/vendor/libgit2/fuzzers/corpora/midx/252a4e4bf7fb21792ec2f305fd88fa7c9168505f +0 -0
  957. package/vendor/libgit2/fuzzers/corpora/midx/259e1faf7b7f12250062d36ded1193a9dbcae0f5 +0 -0
  958. package/vendor/libgit2/fuzzers/corpora/midx/25ad3dfb655ab4c853d0d277872310d9579c8e83 +0 -0
  959. package/vendor/libgit2/fuzzers/corpora/midx/26210f5b8fdbf81b312feea48659ec6e2e083c0b +0 -0
  960. package/vendor/libgit2/fuzzers/corpora/midx/263a2a0915be36d8cb2bc30774e37e0344262347 +0 -0
  961. package/vendor/libgit2/fuzzers/corpora/midx/2679bfbc2f4f7c10a304245da4e156e235377b63 +0 -0
  962. package/vendor/libgit2/fuzzers/corpora/midx/270b7b567a63dd94bb2a90448bbbc2e2bbc4a261 +0 -0
  963. package/vendor/libgit2/fuzzers/corpora/midx/271cd5c5e254a293d115588ee130040ef26b59e8 +0 -0
  964. package/vendor/libgit2/fuzzers/corpora/midx/27839a8035b48f8c19ab073808a03a95b6a90cc3 +0 -0
  965. package/vendor/libgit2/fuzzers/corpora/midx/2810c385c9285cbdb65bcdab5175999fe547cbad +0 -0
  966. package/vendor/libgit2/fuzzers/corpora/midx/28afaf4ab4b092ccf987661e58009f96126bba63 +0 -0
  967. package/vendor/libgit2/fuzzers/corpora/midx/29f842e86a891cff9f0b44c8aec19f7e23a47000 +0 -0
  968. package/vendor/libgit2/fuzzers/corpora/midx/2aa2549f617f19402d1feac61d4ca1af3545cc8a +0 -0
  969. package/vendor/libgit2/fuzzers/corpora/midx/2b73c2902eda6da41321493601003b29c3445713 +0 -0
  970. package/vendor/libgit2/fuzzers/corpora/midx/2bcec1274c5e7b2d7a581d851c016ef5b553fabe +0 -0
  971. package/vendor/libgit2/fuzzers/corpora/midx/2dd9a328b6d4e29e42684347be5c4b7cd7dc1a66 +0 -0
  972. package/vendor/libgit2/fuzzers/corpora/midx/2ddc17ee7ee89bb7dbc673328d5f3e55c76e686e +0 -0
  973. package/vendor/libgit2/fuzzers/corpora/midx/2f71d5e99dc93618ed99fdb7c244a8f5e4a7eb4a +0 -0
  974. package/vendor/libgit2/fuzzers/corpora/midx/2f7cd0154d71a83e7b104670b2a77fbd285ffde2 +0 -0
  975. package/vendor/libgit2/fuzzers/corpora/midx/2f9d40ef790f5213234e95d123dce942b2d1d389 +0 -0
  976. package/vendor/libgit2/fuzzers/corpora/midx/31577bacbca7017308d2a0c9ebfdd4fce513bbe4 +0 -0
  977. package/vendor/libgit2/fuzzers/corpora/midx/3278f1bab88b80597d0066812d49f8bd3c7b1dcf +0 -0
  978. package/vendor/libgit2/fuzzers/corpora/midx/328160cae6235605ff70951a2f6ac669ba7bb397 +0 -0
  979. package/vendor/libgit2/fuzzers/corpora/midx/337ed1bf91701a4c8926840259077e55938c6efc +0 -0
  980. package/vendor/libgit2/fuzzers/corpora/midx/33a97d83ff7a774797b1751ea4bffbb4a22c58d9 +0 -0
  981. package/vendor/libgit2/fuzzers/corpora/midx/341021da9516401cf364ed2b7dfdda346db04f2f +0 -0
  982. package/vendor/libgit2/fuzzers/corpora/midx/341773a439cdecc58f55fb205ac584cd93ffe0f2 +1 -0
  983. package/vendor/libgit2/fuzzers/corpora/midx/366091157510e40bca08fc2102b9018ccf4697de +0 -0
  984. package/vendor/libgit2/fuzzers/corpora/midx/37096157e2f9f2ec8e0b97b21d335bd653f3edbd +0 -0
  985. package/vendor/libgit2/fuzzers/corpora/midx/373a74b8613d09babcb567f91047e7b556a8de90 +0 -0
  986. package/vendor/libgit2/fuzzers/corpora/midx/3748b07ee7bec7bdd202ee14222cefca182417d1 +0 -0
  987. package/vendor/libgit2/fuzzers/corpora/midx/38b7906b9f956dca01dc92d0a901388ec1cbc8b1 +0 -0
  988. package/vendor/libgit2/fuzzers/corpora/midx/38ddf3424559f1a6e7687eff8469a358184b833b +1 -0
  989. package/vendor/libgit2/fuzzers/corpora/midx/38e31d0a7dcc3835ce1a4afeeda8446fb3d7ed73 +0 -0
  990. package/vendor/libgit2/fuzzers/corpora/midx/3955ec4497b226391ef9eb40f38af6dee4fa26b7 +0 -0
  991. package/vendor/libgit2/fuzzers/corpora/midx/3b6b424342133feb0f587f22bcd8f21595c004e5 +0 -0
  992. package/vendor/libgit2/fuzzers/corpora/midx/3bb71f41200e0ebf8d19532e7d6e384c48aa2d03 +0 -0
  993. package/vendor/libgit2/fuzzers/corpora/midx/3c5a6063797aba9ffe5ea9903bbfcf87193652d3 +0 -0
  994. package/vendor/libgit2/fuzzers/corpora/midx/3dfb9927d959f2462f6944a32d080b60a265abfe +0 -0
  995. package/vendor/libgit2/fuzzers/corpora/midx/3e19242a63ec92a0c3f7138ebbc31bfe7cbd40cd +0 -0
  996. package/vendor/libgit2/fuzzers/corpora/midx/3ec53ce4ea1f41f040a3c2beed929572af95dd43 +0 -0
  997. package/vendor/libgit2/fuzzers/corpora/midx/3f0762fdf49a58c0d8fd6683964a85caddee391b +0 -0
  998. package/vendor/libgit2/fuzzers/corpora/midx/3f71ae863c4e9bac98e49a554b8ec4d78b17492d +1 -0
  999. package/vendor/libgit2/fuzzers/corpora/midx/3f9df30bfb66a28fbe6f1951ef7ae4ca9f19fdf2 +0 -0
  1000. package/vendor/libgit2/fuzzers/corpora/midx/3fabb14670c008c22094c1d7cd7b1e23b4c48b3d +0 -0
  1001. package/vendor/libgit2/fuzzers/corpora/midx/408fba9c66c5d1deb31e4c69f1dd0677844dbc1b +0 -0
  1002. package/vendor/libgit2/fuzzers/corpora/midx/40ca8645081087e950ad61bccf8d43450366356e +0 -0
  1003. package/vendor/libgit2/fuzzers/corpora/midx/412faec949b9d04498de939561664ee559a583a7 +1 -0
  1004. package/vendor/libgit2/fuzzers/corpora/midx/4148bd5336f89e73b2a5416c67d491c0ec4a2b7d +0 -0
  1005. package/vendor/libgit2/fuzzers/corpora/midx/41933e61fa20fbe2b190f9ae7ceae4a4b1220021 +0 -0
  1006. package/vendor/libgit2/fuzzers/corpora/midx/423d90f3fc7ddc146095ec5a4b4f455aa876b69b +0 -0
  1007. package/vendor/libgit2/fuzzers/corpora/midx/42a6c52249aa12cfef1db1bf302a483a01c972f3 +0 -0
  1008. package/vendor/libgit2/fuzzers/corpora/midx/42a82726f0e70da9b87b6c52bc1b3415576025f2 +0 -0
  1009. package/vendor/libgit2/fuzzers/corpora/midx/4458e19f99e38c61ad9792b0b3bf8ac79f8236f1 +1 -0
  1010. package/vendor/libgit2/fuzzers/corpora/midx/44a4411a8d6ed67ee3ea61d91d2afafe89295b0f +0 -0
  1011. package/vendor/libgit2/fuzzers/corpora/midx/44e04754d1b6c0c045e05509dd7033d19a926b10 +0 -0
  1012. package/vendor/libgit2/fuzzers/corpora/midx/45259e9f0a2cc7739a94eccaafb37c1570f73884 +0 -0
  1013. package/vendor/libgit2/fuzzers/corpora/midx/46c0d7e952200cabc08b9cd776a9f6759f4208c3 +0 -0
  1014. package/vendor/libgit2/fuzzers/corpora/midx/46deac8631633ea3c32005124e20a2bc2bbabade +0 -0
  1015. package/vendor/libgit2/fuzzers/corpora/midx/46e7edf6e9d6cbcdabde3b48f1c4efd93be40348 +0 -0
  1016. package/vendor/libgit2/fuzzers/corpora/midx/46fe9556c28c94f7321baa2519a3cbeabbd54d09 +0 -0
  1017. package/vendor/libgit2/fuzzers/corpora/midx/49223681729e73b48b26a2262e4a66b2ba00e176 +0 -0
  1018. package/vendor/libgit2/fuzzers/corpora/midx/499e61b689f6cc7e4efb0631684739c2a6f97c7d +0 -0
  1019. package/vendor/libgit2/fuzzers/corpora/midx/4a06ad8c4d717bd048a7a1315a3d609d70f0162d +0 -0
  1020. package/vendor/libgit2/fuzzers/corpora/midx/4adb7d4791a4c6370478dff2eb987d715554bf09 +0 -0
  1021. package/vendor/libgit2/fuzzers/corpora/midx/4b01c479cdc9b750a31d5e7ac5004309222d218d +0 -0
  1022. package/vendor/libgit2/fuzzers/corpora/midx/4bce7460a6becba6d26984bb438d7d3aa4e4fc56 +0 -0
  1023. package/vendor/libgit2/fuzzers/corpora/midx/4cc96483b6800dda296f00887b12a35154115090 +0 -0
  1024. package/vendor/libgit2/fuzzers/corpora/midx/4f3aa59bae0619c9a06b631d9cb7767591810ab0 +0 -0
  1025. package/vendor/libgit2/fuzzers/corpora/midx/501840d963cedd2945018de59e0202444d7ebf4b +0 -0
  1026. package/vendor/libgit2/fuzzers/corpora/midx/50479958c030d1addceb1ca8c27f24447e555e65 +0 -0
  1027. package/vendor/libgit2/fuzzers/corpora/midx/508ba8ef164a809f739834a39d690e700101a7a1 +0 -0
  1028. package/vendor/libgit2/fuzzers/corpora/midx/521d345313812e54bc6c944485e19dbb39a87768 +0 -0
  1029. package/vendor/libgit2/fuzzers/corpora/midx/5369d74ac157f85b597c1b28bbd6768105e9327b +0 -0
  1030. package/vendor/libgit2/fuzzers/corpora/midx/53997b0146ff49bfe464be203b130a67ea93fd26 +0 -0
  1031. package/vendor/libgit2/fuzzers/corpora/midx/560ea8bd7d11b00e0d21631b6d9ec7e63f0a5286 +0 -0
  1032. package/vendor/libgit2/fuzzers/corpora/midx/5682ebc6878e247ce9bc636d34ada6ad338fcaf0 +0 -0
  1033. package/vendor/libgit2/fuzzers/corpora/midx/5762abb5234edd913754b69e1ab03274c711ee68 +0 -0
  1034. package/vendor/libgit2/fuzzers/corpora/midx/579406f055070559bda3c6120107feb3e637c481 +2 -0
  1035. package/vendor/libgit2/fuzzers/corpora/midx/5837d16af4a9c1f2616467cc4aa9ec8836e05c58 +0 -0
  1036. package/vendor/libgit2/fuzzers/corpora/midx/58901e865fe20b9fa136cca4b253d3ae73c2b78e +0 -0
  1037. package/vendor/libgit2/fuzzers/corpora/midx/58a87098a14572e46b53c87340083f999d8fcfc2 +0 -0
  1038. package/vendor/libgit2/fuzzers/corpora/midx/59ae139a21448e0eb7371ddc6ef57f0c9dfe9c85 +0 -0
  1039. package/vendor/libgit2/fuzzers/corpora/midx/5a7e81419f895168c555ac9b4e75a1ad4f04b34a +0 -0
  1040. package/vendor/libgit2/fuzzers/corpora/midx/5b848c1f56a150d64020e9b0bb398a286dca4096 +0 -0
  1041. package/vendor/libgit2/fuzzers/corpora/midx/5bd311bd846336149b2815666052fdb7e8bf2ea6 +0 -0
  1042. package/vendor/libgit2/fuzzers/corpora/midx/5ce77eb98473a2e01d04909939edf7aabef5762c +0 -0
  1043. package/vendor/libgit2/fuzzers/corpora/midx/5e5cd5819811507ac69bd8abad27433ccd6b7521 +0 -0
  1044. package/vendor/libgit2/fuzzers/corpora/midx/5ea114ae3dbb140364000c416152b0f32ce3de23 +0 -0
  1045. package/vendor/libgit2/fuzzers/corpora/midx/5f181bb0a79603c84534a9b8e37ecdeb1d2aeeb5 +1 -0
  1046. package/vendor/libgit2/fuzzers/corpora/midx/5f428ce1169e28353cedb8be3e2f6edd0ef354e4 +0 -0
  1047. package/vendor/libgit2/fuzzers/corpora/midx/5f9bc7729dc331e3c4d8e52df0688abad6d4aee8 +0 -0
  1048. package/vendor/libgit2/fuzzers/corpora/midx/619527e1d650cd1c26e9bc61e424c9fdc04b17b9 +0 -0
  1049. package/vendor/libgit2/fuzzers/corpora/midx/625d3676de25188865e05db2a3933c38508406fc +0 -0
  1050. package/vendor/libgit2/fuzzers/corpora/midx/6368569cfde7fbe369a0ee4695fa4d5a7d7887a6 +0 -0
  1051. package/vendor/libgit2/fuzzers/corpora/midx/6388fe4d630064ea1ea33aa85381d9c82e328e95 +0 -0
  1052. package/vendor/libgit2/fuzzers/corpora/midx/64cff4e110f0bcb3ea833c1afda6e27a57dac0bc +0 -0
  1053. package/vendor/libgit2/fuzzers/corpora/midx/66449b87ce47b681c6326f337bebf03366a0ee99 +0 -0
  1054. package/vendor/libgit2/fuzzers/corpora/midx/66ae3584497a1823a955c33e5bc53f7434c13e49 +0 -0
  1055. package/vendor/libgit2/fuzzers/corpora/midx/66e238a6ad70fb30c82171ff1b73ea71b4379355 +0 -0
  1056. package/vendor/libgit2/fuzzers/corpora/midx/66f345dc060ac5a1fe8bcf0828102d072deb1111 +0 -0
  1057. package/vendor/libgit2/fuzzers/corpora/midx/66f839146ef46deed25fd2cd169a4f1a2a3533fa +0 -0
  1058. package/vendor/libgit2/fuzzers/corpora/midx/671720ee2b7ba45920b41b8016eb5206b88168ee +0 -0
  1059. package/vendor/libgit2/fuzzers/corpora/midx/679c7140ad60ed32aeb7ee464499dd52b0fc212f +0 -0
  1060. package/vendor/libgit2/fuzzers/corpora/midx/67c5e6ce7bb47cefe54d749374f3288a2c915936 +0 -0
  1061. package/vendor/libgit2/fuzzers/corpora/midx/69592399b45f2f83e0cc823c5f0e3865ac3fa611 +0 -0
  1062. package/vendor/libgit2/fuzzers/corpora/midx/6abf97508f0ed808b7fe0d9bb2439981153badd2 +0 -0
  1063. package/vendor/libgit2/fuzzers/corpora/midx/6b2dfb51b35b78680cb02ff54e06f0c983c04866 +0 -0
  1064. package/vendor/libgit2/fuzzers/corpora/midx/6bbf6ab605fedd41ed6c7581ec9f87c75403e9c3 +0 -0
  1065. package/vendor/libgit2/fuzzers/corpora/midx/6c0656104902e1323f3a19c46df7cffecae94f1c +0 -0
  1066. package/vendor/libgit2/fuzzers/corpora/midx/6c0ce8006b3ebd8202e61fe5f4cc2285248bd1ba +0 -0
  1067. package/vendor/libgit2/fuzzers/corpora/midx/6cc635e6dd4e430ed4fb68a9f5add38aa02ae14f +0 -0
  1068. package/vendor/libgit2/fuzzers/corpora/midx/6d1b281d7bdd9887e53505fd5d040731db18ba48 +0 -0
  1069. package/vendor/libgit2/fuzzers/corpora/midx/6d5c35f9d87253b2fbe383bfde3775a9f737da12 +1 -0
  1070. package/vendor/libgit2/fuzzers/corpora/midx/6d95355018cadedd97bed65c45a44a7ff6f065f7 +0 -0
  1071. package/vendor/libgit2/fuzzers/corpora/midx/6dd70e887ab94db3327d9aaa0335914a1f4986b7 +0 -0
  1072. package/vendor/libgit2/fuzzers/corpora/midx/6ed51a953a8b6671de417406e340d8d0a211aa12 +0 -0
  1073. package/vendor/libgit2/fuzzers/corpora/midx/6f911f19652a4457c93ef92b594bc1dc2ca900f8 +0 -0
  1074. package/vendor/libgit2/fuzzers/corpora/midx/6fa76cbaeb3cf0417c7a372132167bcd737db66b +0 -0
  1075. package/vendor/libgit2/fuzzers/corpora/midx/71f66d3f7da318d69681a22ebbceb1a2bb290658 +0 -0
  1076. package/vendor/libgit2/fuzzers/corpora/midx/7227a2dc335af13e7225536c49969f46a800750a +1 -0
  1077. package/vendor/libgit2/fuzzers/corpora/midx/72fce27bbccf582f2023f5e168853251e576592a +0 -0
  1078. package/vendor/libgit2/fuzzers/corpora/midx/738e5543ae005a6de85dfcd960eb8e3e6faa8947 +0 -0
  1079. package/vendor/libgit2/fuzzers/corpora/midx/739d9c8868445202305d0a4e5766df1c68932688 +0 -0
  1080. package/vendor/libgit2/fuzzers/corpora/midx/7438b07314917c84d348e7d9629e3712190c7da7 +0 -0
  1081. package/vendor/libgit2/fuzzers/corpora/midx/7490f00d660f5d8dedfa606cca241bd07be86a4f +0 -0
  1082. package/vendor/libgit2/fuzzers/corpora/midx/75c64e8b61af41b28516c2c0fe902362d55a24f3 +0 -0
  1083. package/vendor/libgit2/fuzzers/corpora/midx/75e94b59a41e7f086b6f7ab3bca801251744ae3d +0 -0
  1084. package/vendor/libgit2/fuzzers/corpora/midx/7612ceb3a989f97a7bb19f57c7f9c61366953642 +0 -0
  1085. package/vendor/libgit2/fuzzers/corpora/midx/76ac2328e1c979bca648b4082b8bfe6f2e2e73ea +0 -0
  1086. package/vendor/libgit2/fuzzers/corpora/midx/76f296039ba4d666c9147ad234d43b55050808e3 +0 -0
  1087. package/vendor/libgit2/fuzzers/corpora/midx/777f248eea53e3dd2b726e1e0de5eeda43b6d323 +1 -0
  1088. package/vendor/libgit2/fuzzers/corpora/midx/792fcd0075bd8031a98a68ce04d6a9f23feef7b4 +0 -0
  1089. package/vendor/libgit2/fuzzers/corpora/midx/7a936c3e69013b2c71dcb72f0eccd99c93367533 +0 -0
  1090. package/vendor/libgit2/fuzzers/corpora/midx/7b30d0cd07108f2e45ce1a3fab3f971b25dcf5cd +0 -0
  1091. package/vendor/libgit2/fuzzers/corpora/midx/7b87f367b5fa3bf29bae19031814e5d0120a15ba +0 -0
  1092. package/vendor/libgit2/fuzzers/corpora/midx/7c12e4bca60858eae13c47a66e54cd9e96a50909 +0 -0
  1093. package/vendor/libgit2/fuzzers/corpora/midx/7c59f95e649b3be6344f4f835afd0d9a894c1144 +0 -0
  1094. package/vendor/libgit2/fuzzers/corpora/midx/7dcb6494c3614a8690dc496309f90e0f23634c37 +0 -0
  1095. package/vendor/libgit2/fuzzers/corpora/midx/7e64b86827ea98f0a4eb54736c460a59b0c30420 +0 -0
  1096. package/vendor/libgit2/fuzzers/corpora/midx/8125d9eaa09b3d2283fea73223866cb36877c4a4 +0 -0
  1097. package/vendor/libgit2/fuzzers/corpora/midx/81c7fc514fa9a07b5b87b94cf9c00df2b1325a74 +0 -0
  1098. package/vendor/libgit2/fuzzers/corpora/midx/81f9df0493052d980ca13918637bc6ce565615b3 +0 -0
  1099. package/vendor/libgit2/fuzzers/corpora/midx/82556b9345134dd689cb9d0d08d3dc8459454181 +0 -0
  1100. package/vendor/libgit2/fuzzers/corpora/midx/82d35a7a6ffb333b02d0d597e88ffdd481237a8b +0 -0
  1101. package/vendor/libgit2/fuzzers/corpora/midx/82e931da372a2c69c0f10274342173c2be091f1c +0 -0
  1102. package/vendor/libgit2/fuzzers/corpora/midx/83e2b53f22afe8f7ee21d30fae2619ad0d6a71e3 +0 -0
  1103. package/vendor/libgit2/fuzzers/corpora/midx/83f4d70189dbc0d3aaf5025977c53d4d34fc5893 +0 -0
  1104. package/vendor/libgit2/fuzzers/corpora/midx/85e17cceba7850be893afdc04c8233bea1ef6e72 +0 -0
  1105. package/vendor/libgit2/fuzzers/corpora/midx/874d4abdcd7db751eb930928231669afe90589f5 +0 -0
  1106. package/vendor/libgit2/fuzzers/corpora/midx/87894ec663568153d7837f49b80f6d2e99818bd7 +0 -0
  1107. package/vendor/libgit2/fuzzers/corpora/midx/88052b76108b4ede342f3dd87bb6835b2f71ea83 +0 -0
  1108. package/vendor/libgit2/fuzzers/corpora/midx/884c54256c0ec2cf1c5fa08a0b3d9c2fea021300 +0 -0
  1109. package/vendor/libgit2/fuzzers/corpora/midx/8858f36373db5fd6b805a768af55c21019c664b2 +0 -0
  1110. package/vendor/libgit2/fuzzers/corpora/midx/88fe8b6767c1bd32308208b22e0b00697e5eddf7 +0 -0
  1111. package/vendor/libgit2/fuzzers/corpora/midx/898cac1610f2f2fb67eb092cd053f0006c3070e3 +0 -0
  1112. package/vendor/libgit2/fuzzers/corpora/midx/89d0f5573ae1b524e7e9bdb1fb54ea4ce99e3ef0 +0 -0
  1113. package/vendor/libgit2/fuzzers/corpora/midx/8a55300e400efd56be5e12258ebf575c4f3b55ed +0 -0
  1114. package/vendor/libgit2/fuzzers/corpora/midx/8bf7b464aaa2c2b536aa1d76a1297c19155f5603 +1 -0
  1115. package/vendor/libgit2/fuzzers/corpora/midx/8c05e8ef26302a79c89670ad3aa4e8d0bc921923 +0 -0
  1116. package/vendor/libgit2/fuzzers/corpora/midx/8c15f5a268ded9663197d66e8d7d4098e0ae9bf5 +0 -0
  1117. package/vendor/libgit2/fuzzers/corpora/midx/8ca9e85a9e628f0016ea4e6413945b3830730c24 +0 -0
  1118. package/vendor/libgit2/fuzzers/corpora/midx/8e74126a239927900a8f655c813a4b230191a5ba +0 -0
  1119. package/vendor/libgit2/fuzzers/corpora/midx/8ee63e791c004427dd033b468b2ed7446ee6e2e0 +0 -0
  1120. package/vendor/libgit2/fuzzers/corpora/midx/9028113aa78b649e13ff259027a4e450d469e5da +0 -0
  1121. package/vendor/libgit2/fuzzers/corpora/midx/90db2115b8262ebecbefbe8f0a07c451e39bca07 +0 -0
  1122. package/vendor/libgit2/fuzzers/corpora/midx/923f28a4d1917e20ee0736b90695c2123c0c987c +0 -0
  1123. package/vendor/libgit2/fuzzers/corpora/midx/92a5c74e0506d65d1a12686496452870367b169a +0 -0
  1124. package/vendor/libgit2/fuzzers/corpora/midx/92dcf94eb2f92b4e1a232eab3b3f808f4236f118 +0 -0
  1125. package/vendor/libgit2/fuzzers/corpora/midx/9414502aedbef5e307897683625418dd4ac575ac +0 -0
  1126. package/vendor/libgit2/fuzzers/corpora/midx/9422e25bec5fec9f84603a85673b54b1a5e77a40 +0 -0
  1127. package/vendor/libgit2/fuzzers/corpora/midx/943754e865888063e0684aec838222522390d43e +0 -0
  1128. package/vendor/libgit2/fuzzers/corpora/midx/943e067806ae069afbc029ea7a612410e5395687 +0 -0
  1129. package/vendor/libgit2/fuzzers/corpora/midx/9547646cc1a5d260df099b00ea7ee2b95567aee1 +0 -0
  1130. package/vendor/libgit2/fuzzers/corpora/midx/968f7027ec9fbf75a519069ea5189e85a81448b2 +0 -0
  1131. package/vendor/libgit2/fuzzers/corpora/midx/9691046a2f8b31319a6fdfde0506c9a72aed839a +0 -0
  1132. package/vendor/libgit2/fuzzers/corpora/midx/96a8cd5c33986cc26cc00eb2de627149f5259e33 +0 -0
  1133. package/vendor/libgit2/fuzzers/corpora/midx/972466bbc33d2d7d7c21be21c7594b51e78675c5 +0 -0
  1134. package/vendor/libgit2/fuzzers/corpora/midx/980f21a3609762154030f7cf0fe98a892d20f220 +0 -0
  1135. package/vendor/libgit2/fuzzers/corpora/midx/9865f12189ef977418d8410fceebb6830c74d820 +0 -0
  1136. package/vendor/libgit2/fuzzers/corpora/midx/98a1096d609545083878d5126743bbc5985786a9 +0 -0
  1137. package/vendor/libgit2/fuzzers/corpora/midx/98c3b6bbf5dc19bc4aad894087277a36d7c79669 +0 -0
  1138. package/vendor/libgit2/fuzzers/corpora/midx/98f9cd44400b592f809596004125267acf848435 +0 -0
  1139. package/vendor/libgit2/fuzzers/corpora/midx/9a97260f04ecfe0918499ede95cf4bcb3dbc2b51 +0 -0
  1140. package/vendor/libgit2/fuzzers/corpora/midx/9ba0dba2ca4405d04113086309882dac6182e6b8 +0 -0
  1141. package/vendor/libgit2/fuzzers/corpora/midx/9c329ee4b02f2d26ee1a399c873b0452aedca3c0 +0 -0
  1142. package/vendor/libgit2/fuzzers/corpora/midx/9e8e638837e202d83ff606a22dd0e310150fa260 +0 -0
  1143. package/vendor/libgit2/fuzzers/corpora/midx/9ee03d17e070df72547e423a412da0b6a60ad565 +0 -0
  1144. package/vendor/libgit2/fuzzers/corpora/midx/9fad6bd2b07d65e607039bb2bcda0816410cf983 +0 -0
  1145. package/vendor/libgit2/fuzzers/corpora/midx/9fcbd21f4dd194a623d832422384a1519742f0bb +0 -0
  1146. package/vendor/libgit2/fuzzers/corpora/midx/a019fb7f17aa36a9743c530e1f11d5613b8b1158 +0 -0
  1147. package/vendor/libgit2/fuzzers/corpora/midx/a0b8c6ef20198377b19f59e41f08f4cf2107f460 +0 -0
  1148. package/vendor/libgit2/fuzzers/corpora/midx/a14079a3e8cbc2112da4fa747ef20cdfd580e068 +0 -0
  1149. package/vendor/libgit2/fuzzers/corpora/midx/a14d61ba0c609665d37e6c6da929cb53c5b70545 +0 -0
  1150. package/vendor/libgit2/fuzzers/corpora/midx/a15cf2a13e408cb76af0091a0c286af7ffce58e1 +0 -0
  1151. package/vendor/libgit2/fuzzers/corpora/midx/a1ddedbdd05eac99b8b31322635771cd9c999f8a +0 -0
  1152. package/vendor/libgit2/fuzzers/corpora/midx/a235661c3f8b0174a1658e9c435a69577c49256a +0 -0
  1153. package/vendor/libgit2/fuzzers/corpora/midx/a261397a4db5ac196c72d73ba6999e9fd4fc5c1f +0 -0
  1154. package/vendor/libgit2/fuzzers/corpora/midx/a3a803fd6a56d31269717983bbdf2fceebb626c3 +0 -0
  1155. package/vendor/libgit2/fuzzers/corpora/midx/a3d5b0b21d977e8f94d401250de1bbd4fa1d0ee0 +0 -0
  1156. package/vendor/libgit2/fuzzers/corpora/midx/a42f2900ca519bd15b8d6f507449d1a07de2ef75 +0 -0
  1157. package/vendor/libgit2/fuzzers/corpora/midx/a4884775b414eaf9643224564f3be405519cf99a +0 -0
  1158. package/vendor/libgit2/fuzzers/corpora/midx/a48da63e9a5709c24cb66f598a7a964cbc7ccfc7 +0 -0
  1159. package/vendor/libgit2/fuzzers/corpora/midx/a5789fd83dff18079ea7ba41c999f57bee4db41b +0 -0
  1160. package/vendor/libgit2/fuzzers/corpora/midx/a5bb1c60191742df4a91afb622e9b22a2f0b7765 +0 -0
  1161. package/vendor/libgit2/fuzzers/corpora/midx/a5fdfade1cef5e7e494dd6e3791bca5a663d7012 +0 -0
  1162. package/vendor/libgit2/fuzzers/corpora/midx/a6c66f79f5aaf2c1a26ff16754fe1a8c22627e0c +0 -0
  1163. package/vendor/libgit2/fuzzers/corpora/midx/a7478a05a1fc04a9e035be5593bfb6a281ec460f +0 -0
  1164. package/vendor/libgit2/fuzzers/corpora/midx/a75193dd600661d2b417d4e29b23faa7d721c214 +0 -0
  1165. package/vendor/libgit2/fuzzers/corpora/midx/a7ccae74c641ffcdda0042e6c04438d5b32c4cf3 +0 -0
  1166. package/vendor/libgit2/fuzzers/corpora/midx/a94aa5881abdea5374775b8155812121673f89c3 +0 -0
  1167. package/vendor/libgit2/fuzzers/corpora/midx/a98d794f0f24be7a36917826121fc14a24120893 +1 -0
  1168. package/vendor/libgit2/fuzzers/corpora/midx/a993077e321bc4e1831bb5a8ac7511d90d32ae27 +0 -0
  1169. package/vendor/libgit2/fuzzers/corpora/midx/aa3bc67656945e43f9342d3aaaef247584d96cfa +0 -0
  1170. package/vendor/libgit2/fuzzers/corpora/midx/ab111c4d72e3d6796e3d7391e9f35b4e6fefc04a +0 -0
  1171. package/vendor/libgit2/fuzzers/corpora/midx/ab248c42f77952d5d17d6f5203adaa5925c05c64 +0 -0
  1172. package/vendor/libgit2/fuzzers/corpora/midx/ab8451fadf805e5087837d9f6d91ef7eb6fa5edb +0 -0
  1173. package/vendor/libgit2/fuzzers/corpora/midx/abbee3b37aff879b1cef47390001b89b0f6ebc0a +0 -0
  1174. package/vendor/libgit2/fuzzers/corpora/midx/ac15b23f03af8be6dbbb3bbb8d3877a1f9e074a3 +0 -0
  1175. package/vendor/libgit2/fuzzers/corpora/midx/ac47bda12269c06d773f5f3c6517f78513a54a08 +0 -0
  1176. package/vendor/libgit2/fuzzers/corpora/midx/ad1f4fb57f481a00a9bb231517a3155ef0d0877f +0 -0
  1177. package/vendor/libgit2/fuzzers/corpora/midx/ad25e7ffabedd94833d2529886af4d459529ec9d +0 -0
  1178. package/vendor/libgit2/fuzzers/corpora/midx/ad796ebb423f58187806c4a7ee7b787394353ce6 +0 -0
  1179. package/vendor/libgit2/fuzzers/corpora/midx/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc +1 -0
  1180. package/vendor/libgit2/fuzzers/corpora/midx/ae14b80f26f5cee2d85d5154c2cef1eefafa8cc9 +0 -0
  1181. package/vendor/libgit2/fuzzers/corpora/midx/ae3ba892de543801b3c1dfbce370eb2c80a6fb27 +0 -0
  1182. package/vendor/libgit2/fuzzers/corpora/midx/aecc0c7f08810803da234e26e7c6fa7a9f1c0593 +0 -0
  1183. package/vendor/libgit2/fuzzers/corpora/midx/aed2e85d5d39d25e738a34f30a722680bde30368 +0 -0
  1184. package/vendor/libgit2/fuzzers/corpora/midx/b00a75de1987c6f549bf73a63e8f23a2de6641b3 +0 -0
  1185. package/vendor/libgit2/fuzzers/corpora/midx/b02e9f951ce9f10a8eb80f1fc61cd3d2832dd7f4 +0 -0
  1186. package/vendor/libgit2/fuzzers/corpora/midx/b04aff8ab2e133d45bf44565bd4bf9e33b795a97 +0 -0
  1187. package/vendor/libgit2/fuzzers/corpora/midx/b12097ed83db761f7bb79411a59e2474de9b1199 +0 -0
  1188. package/vendor/libgit2/fuzzers/corpora/midx/b1beb2f462b4cb30a09d534b9f49f2e08d76363c +1 -0
  1189. package/vendor/libgit2/fuzzers/corpora/midx/b201733b6165f4544578bd6aad3f55aeafd9a194 +0 -0
  1190. package/vendor/libgit2/fuzzers/corpora/midx/b2699f25c21ffe453dcce20e31b3093e0f9b2abf +1 -0
  1191. package/vendor/libgit2/fuzzers/corpora/midx/b34a5760a1036f909e0243cd857fcef65e40d752 +0 -0
  1192. package/vendor/libgit2/fuzzers/corpora/midx/b3fdacd639073cc1954bcb1f31046d094e2d2296 +0 -0
  1193. package/vendor/libgit2/fuzzers/corpora/midx/b40a6dbe32c8e6a9b777331e7fd97f0d94ceca1c +0 -0
  1194. package/vendor/libgit2/fuzzers/corpora/midx/b52ff2010f22ae6758cde5d529fd19de2a7d5fc5 +0 -0
  1195. package/vendor/libgit2/fuzzers/corpora/midx/b53a7a2afd9dfc55c328b4e06a36882c53126e95 +0 -0
  1196. package/vendor/libgit2/fuzzers/corpora/midx/b548ae8a77a62b7f375b8b48e7184ceed59bc8f8 +0 -0
  1197. package/vendor/libgit2/fuzzers/corpora/midx/b66eaf0b689495cc7c194ab1fca7d36ae9da9758 +0 -0
  1198. package/vendor/libgit2/fuzzers/corpora/midx/b680bf23da22b8b7e77d847169fe9b6968d79e8b +1 -0
  1199. package/vendor/libgit2/fuzzers/corpora/midx/b70d6e7d230fb1393b8f665adcd5658cad7059fe +0 -0
  1200. package/vendor/libgit2/fuzzers/corpora/midx/b87a59f78adb3ef18b0176a8e7fe7e90c2ab4ef7 +0 -0
  1201. package/vendor/libgit2/fuzzers/corpora/midx/b88c5233090e859e923acbdfa9b168f95d7fc14b +0 -0
  1202. package/vendor/libgit2/fuzzers/corpora/midx/ba1923ea69eec8fe765e8d1222eccb928ca6c3c2 +0 -0
  1203. package/vendor/libgit2/fuzzers/corpora/midx/ba4d695c1eb02c702bd99a3db27838c7ba617d79 +0 -0
  1204. package/vendor/libgit2/fuzzers/corpora/midx/ba7e4f999dc22d223c7f75db36646bfa05848572 +0 -0
  1205. package/vendor/libgit2/fuzzers/corpora/midx/bc5f0cd338d1d17a230378390aa810bc7b103cda +0 -0
  1206. package/vendor/libgit2/fuzzers/corpora/midx/bcbb4cf10018a177dd9a6c642d887e0de3d8e522 +0 -0
  1207. package/vendor/libgit2/fuzzers/corpora/midx/bcfeb114df6d5c6e0c85cbe1081631bc321ff65b +0 -0
  1208. package/vendor/libgit2/fuzzers/corpora/midx/bd582237a9293e2a53d8222722a69e7d215822bf +0 -0
  1209. package/vendor/libgit2/fuzzers/corpora/midx/bdc83a415da40f74825379203538a2e4d27cffa7 +0 -0
  1210. package/vendor/libgit2/fuzzers/corpora/midx/be160536594c87dc07554a71c7d24cd1d718aecc +0 -0
  1211. package/vendor/libgit2/fuzzers/corpora/midx/be8f3c744a23f67fb316a39609ca11ddac025b58 +0 -0
  1212. package/vendor/libgit2/fuzzers/corpora/midx/bf873b027b48f3fd7b727473c832486d99ddb196 +0 -0
  1213. package/vendor/libgit2/fuzzers/corpora/midx/bf8e20ef6b79131ef9bab8c9c1bb7dbecbead6a5 +0 -0
  1214. package/vendor/libgit2/fuzzers/corpora/midx/bf90507b8f7c7eebb89edeaabf6a432d86e7df4a +0 -0
  1215. package/vendor/libgit2/fuzzers/corpora/midx/bfa7a5ce666899fb3e2a7216dbf59886da672658 +0 -0
  1216. package/vendor/libgit2/fuzzers/corpora/midx/bfeaa454d8db33efabba88f146bee6c803369ba0 +0 -0
  1217. package/vendor/libgit2/fuzzers/corpora/midx/c0388910e8d88dcd2e65848ba2cef465caa6b258 +0 -0
  1218. package/vendor/libgit2/fuzzers/corpora/midx/c0db293f75bb44668bcbb79286ebed87df141a85 +0 -0
  1219. package/vendor/libgit2/fuzzers/corpora/midx/c1234da1441255244aba15ecad2a4fa7fd47115e +0 -0
  1220. package/vendor/libgit2/fuzzers/corpora/midx/c2206ac3c289a759ee0e9d0d31cc336f0802f7bc +1 -0
  1221. package/vendor/libgit2/fuzzers/corpora/midx/c22340ab36e5cff088a58272f63cf69e54a1a9f4 +0 -0
  1222. package/vendor/libgit2/fuzzers/corpora/midx/c242c9336c4c22b316e0e56d616b2d45b3318ca4 +0 -0
  1223. package/vendor/libgit2/fuzzers/corpora/midx/c25a51d8dfaf58d5b609729bb156a80e3b0d892f +0 -0
  1224. package/vendor/libgit2/fuzzers/corpora/midx/c3419450240d06982b0d828911b188a903355216 +0 -0
  1225. package/vendor/libgit2/fuzzers/corpora/midx/c36ea7651f76ae817d8d60cae580e47638741372 +0 -0
  1226. package/vendor/libgit2/fuzzers/corpora/midx/c42300c021bfd35702f564e917839503922cbe9a +0 -0
  1227. package/vendor/libgit2/fuzzers/corpora/midx/c45d82ddade99ef857b563e435f2efe89e58b0be +0 -0
  1228. package/vendor/libgit2/fuzzers/corpora/midx/c4d1e9187de1e13353b3beb3c1ab16dd62cda571 +0 -0
  1229. package/vendor/libgit2/fuzzers/corpora/midx/c4e98278a25011c54734494d4534a97489cf4c24 +0 -0
  1230. package/vendor/libgit2/fuzzers/corpora/midx/c4f996ab08f56ce2e9fec7a0428ded510dd6a04a +0 -0
  1231. package/vendor/libgit2/fuzzers/corpora/midx/c544850a7325e7226583895204f99de730525803 +0 -0
  1232. package/vendor/libgit2/fuzzers/corpora/midx/c56629528d5bebdb94f85522caf0f36bbcb19106 +0 -0
  1233. package/vendor/libgit2/fuzzers/corpora/midx/c5c75b58883ccf41b20b140740e2ce763c6086cd +0 -0
  1234. package/vendor/libgit2/fuzzers/corpora/midx/c62da85dca0d4dfb1d7af5d0520eb74993a1e3b0 +0 -0
  1235. package/vendor/libgit2/fuzzers/corpora/midx/c6379aaaecd282b8ed6d0b4291d0d9fdc763160a +0 -0
  1236. package/vendor/libgit2/fuzzers/corpora/midx/c6431921184e3edf4fd3e47384c69654cdac0189 +0 -0
  1237. package/vendor/libgit2/fuzzers/corpora/midx/c6f2ca17c6d313a35676cbacd094eb40fd74b23e +0 -0
  1238. package/vendor/libgit2/fuzzers/corpora/midx/c83e04d58e04fccac37b9dd313eab72011fe8ea1 +0 -0
  1239. package/vendor/libgit2/fuzzers/corpora/midx/c88dc350b98a5c5ae0503683318c1f30443906a8 +1 -0
  1240. package/vendor/libgit2/fuzzers/corpora/midx/c89ee2e9e30a474b5f9532ec61d7aad78377baa0 +0 -0
  1241. package/vendor/libgit2/fuzzers/corpora/midx/c921be4abeb44d1ff07f76f632a16e86526bc4be +0 -0
  1242. package/vendor/libgit2/fuzzers/corpora/midx/c98bdc0431aaece1e8a721aff0ea511cfb8062a6 +0 -0
  1243. package/vendor/libgit2/fuzzers/corpora/midx/c9c456fd3e35a942ef4ab756e04e725cf1f71167 +0 -0
  1244. package/vendor/libgit2/fuzzers/corpora/midx/cd1f1a31b79af77e1e764102942ba7a79dcd24cf +0 -0
  1245. package/vendor/libgit2/fuzzers/corpora/midx/cd57e5904254c2278e9ecf28ed7414d7aed8eef1 +0 -0
  1246. package/vendor/libgit2/fuzzers/corpora/midx/cd665cdc2bd6a26eb68c9af6d1728a7d4f6eb309 +0 -0
  1247. package/vendor/libgit2/fuzzers/corpora/midx/ce72111c4314b22c4c7824bc8ea340ebd6d3fa84 +0 -0
  1248. package/vendor/libgit2/fuzzers/corpora/midx/ceacc7ace2f4be962b0db2eeeea3fe6a00ca9dd6 +0 -0
  1249. package/vendor/libgit2/fuzzers/corpora/midx/cf40769d8b4fcbac1b10ced2e0c3c1294f23fcdd +0 -0
  1250. package/vendor/libgit2/fuzzers/corpora/midx/d120111a77a3e3d1d504a04bbfc5f53effa14eb0 +0 -0
  1251. package/vendor/libgit2/fuzzers/corpora/midx/d1ce81240a32aec2de1b0d779aa29a62c36f291f +0 -0
  1252. package/vendor/libgit2/fuzzers/corpora/midx/d21869b290cd2b448e7b8103dced97e62fefffcc +0 -0
  1253. package/vendor/libgit2/fuzzers/corpora/midx/d2bffcd01e87ce9860007b244ff1e79ecd3d4d0f +0 -0
  1254. package/vendor/libgit2/fuzzers/corpora/midx/d2d668b6e28fca83da5146021879c2b006406fa4 +0 -0
  1255. package/vendor/libgit2/fuzzers/corpora/midx/d37abe0d299b8ad1e90f5b7af302c24f411a7ed1 +0 -0
  1256. package/vendor/libgit2/fuzzers/corpora/midx/d3d689a12ab3808313d5ba0044e8c67ecb4337e4 +0 -0
  1257. package/vendor/libgit2/fuzzers/corpora/midx/d48eb559213edf05aa2850a14194885ae2086ba4 +0 -0
  1258. package/vendor/libgit2/fuzzers/corpora/midx/d490f365693e49ebdeaf658b3f549311a399c6a8 +0 -0
  1259. package/vendor/libgit2/fuzzers/corpora/midx/d54821b652a8611c486bedd8645081d3a4b1c8d1 +0 -0
  1260. package/vendor/libgit2/fuzzers/corpora/midx/d5586a91f9a879e8a67ec7b09a48038909918ad9 +0 -0
  1261. package/vendor/libgit2/fuzzers/corpora/midx/d696362920a2fad8e280293e8d1c92b18c87e4ae +0 -0
  1262. package/vendor/libgit2/fuzzers/corpora/midx/d6b546a2b1bc1c8f80028e4be10c45a06014b32d +0 -0
  1263. package/vendor/libgit2/fuzzers/corpora/midx/d7f04cbca92b2122e0f437ed4dd8fd1782d40f7f +0 -0
  1264. package/vendor/libgit2/fuzzers/corpora/midx/d81944a0c1ed56d11129533d9a3d0d038113d53d +0 -0
  1265. package/vendor/libgit2/fuzzers/corpora/midx/d8524e83ea63c9b365c2e93af75a8100a08b1b69 +0 -0
  1266. package/vendor/libgit2/fuzzers/corpora/midx/d8d9a2d06763cf6feb433cef92a80ef14baab31a +0 -0
  1267. package/vendor/libgit2/fuzzers/corpora/midx/d917fbd641cc40786246387456a636899d56b5a6 +0 -0
  1268. package/vendor/libgit2/fuzzers/corpora/midx/d99f9ec8b504029457185ac03ea8ba21c2611737 +0 -0
  1269. package/vendor/libgit2/fuzzers/corpora/midx/d9c9c90c1bbc55beb81875838e9067c473d0fa92 +0 -0
  1270. package/vendor/libgit2/fuzzers/corpora/midx/d9e908317a6ef08a7528924672836a550d34cb5f +0 -0
  1271. package/vendor/libgit2/fuzzers/corpora/midx/d9ef71deb57fa6f40e027be2c84fa37d288e1cc5 +0 -0
  1272. package/vendor/libgit2/fuzzers/corpora/midx/da8841b9d04382d62d4aeb3fde4dc78466f31543 +0 -0
  1273. package/vendor/libgit2/fuzzers/corpora/midx/db3fbb74c9c9c4185f91eca85f14c3d2c3d9f487 +0 -0
  1274. package/vendor/libgit2/fuzzers/corpora/midx/db7a31de22258d4dc17d44a27d9340946e9c9ee9 +0 -0
  1275. package/vendor/libgit2/fuzzers/corpora/midx/dbbe57fc653930b4ff43f168565ba84ef25f60c2 +0 -0
  1276. package/vendor/libgit2/fuzzers/corpora/midx/dbe74c0d9e7b62c1fd87d5e3ea73ee04f0337154 +0 -0
  1277. package/vendor/libgit2/fuzzers/corpora/midx/dbebf36a6b91568ac059142c3ca3211226da12a8 +0 -0
  1278. package/vendor/libgit2/fuzzers/corpora/midx/ddacbb379242b31a00d62fdff5777dffc1e899c2 +0 -0
  1279. package/vendor/libgit2/fuzzers/corpora/midx/decd2cd9cef352610ac9e5cc461df1829543f9f0 +3 -0
  1280. package/vendor/libgit2/fuzzers/corpora/midx/deeae69363db06972798b296a0c5c99e02cb2b4c +0 -0
  1281. package/vendor/libgit2/fuzzers/corpora/midx/e03e105323e6e7b2af90ad876b5c547af90d8f6b +0 -0
  1282. package/vendor/libgit2/fuzzers/corpora/midx/e3133215848c9cde428338c9d51424c8a81b96f5 +0 -0
  1283. package/vendor/libgit2/fuzzers/corpora/midx/e32a25f0347b0e95d4bea16c27a1f374847683bd +0 -0
  1284. package/vendor/libgit2/fuzzers/corpora/midx/e45ce97522194abcdd7ff9beb931e20b86c97a79 +0 -0
  1285. package/vendor/libgit2/fuzzers/corpora/midx/e484023d50fc1036e46a437053b965c527700d42 +0 -0
  1286. package/vendor/libgit2/fuzzers/corpora/midx/e4e60e77fe3a050940d0afcc7dbab7ef06b04ba3 +0 -0
  1287. package/vendor/libgit2/fuzzers/corpora/midx/e51629784092d9cf811ea1bd894297f062ed7ec4 +0 -0
  1288. package/vendor/libgit2/fuzzers/corpora/midx/e5a7e837029178b3fb6a26d77ea4574ffeaa219d +0 -0
  1289. package/vendor/libgit2/fuzzers/corpora/midx/e5c616e9efdd9c80181f9210d0e3a81c08fe9b4d +0 -0
  1290. package/vendor/libgit2/fuzzers/corpora/midx/e5e6e84e2c7770537c744bcfdbe8303afe39ef92 +0 -0
  1291. package/vendor/libgit2/fuzzers/corpora/midx/e5fb20928feec1ee3114597317edc0e06c413749 +0 -0
  1292. package/vendor/libgit2/fuzzers/corpora/midx/e789319791fe704e5a8ffd7cb570c8d2722ac35f +0 -0
  1293. package/vendor/libgit2/fuzzers/corpora/midx/e9fdb9f08f225b4231f01dda9c7b61e7b78bf7d3 +0 -0
  1294. package/vendor/libgit2/fuzzers/corpora/midx/ea6780324dca9a06db28598dfb590436d846d99f +0 -0
  1295. package/vendor/libgit2/fuzzers/corpora/midx/ea6afcc92b8a6c9e14cc053d351909ad5b0a3fdf +0 -0
  1296. package/vendor/libgit2/fuzzers/corpora/midx/ea8c569029c0cacc4ae75e95b2f4e84abb6867f4 +0 -0
  1297. package/vendor/libgit2/fuzzers/corpora/midx/eb3e80c3ea9cfe9e08b2eef117aaa522a51a619c +0 -0
  1298. package/vendor/libgit2/fuzzers/corpora/midx/ec55b30741fe8fffeec584176c8d20f6a679cfa1 +0 -0
  1299. package/vendor/libgit2/fuzzers/corpora/midx/ed0724a6c3804a3ab20a980b5ca48671689a602f +0 -0
  1300. package/vendor/libgit2/fuzzers/corpora/midx/edeb545d1cf852dc9582fa764010fe844a5e3515 +0 -0
  1301. package/vendor/libgit2/fuzzers/corpora/midx/ee70b920de91f1be6b4448070ee2d1bd9e08286d +0 -0
  1302. package/vendor/libgit2/fuzzers/corpora/midx/ef004af4e947d25b4d1d1dd16502260d4c7a99cd +0 -0
  1303. package/vendor/libgit2/fuzzers/corpora/midx/f009d226503b73aed0f1fd952ef8725433d158be +0 -0
  1304. package/vendor/libgit2/fuzzers/corpora/midx/f0a821dffe21afd357932febaf6e8ee331f53197 +0 -0
  1305. package/vendor/libgit2/fuzzers/corpora/midx/f101a2fe93dfaaed1c596022b4e509cf3a591c8a +0 -0
  1306. package/vendor/libgit2/fuzzers/corpora/midx/f1101f71657385174f8cb920026a761404b4395d +0 -0
  1307. package/vendor/libgit2/fuzzers/corpora/midx/f138c84e42d3cc61a219c4be9db791750f0541c8 +1 -0
  1308. package/vendor/libgit2/fuzzers/corpora/midx/f1da273522bfff4a4971b4ffc31e365f60fdbbfe +0 -0
  1309. package/vendor/libgit2/fuzzers/corpora/midx/f2fe69d30ec47e78a9e92f1423698a52270672b2 +0 -0
  1310. package/vendor/libgit2/fuzzers/corpora/midx/f368bb6f633587a7bb271de7e20695f178c89686 +0 -0
  1311. package/vendor/libgit2/fuzzers/corpora/midx/f38ced5a16edaceb5f527ebc35e7870f42586c90 +0 -0
  1312. package/vendor/libgit2/fuzzers/corpora/midx/f404371362ae68ffb2837ce1766346ebb645d173 +0 -0
  1313. package/vendor/libgit2/fuzzers/corpora/midx/f473b5e1cf51502345f5c1840ec3948d308dd314 +0 -0
  1314. package/vendor/libgit2/fuzzers/corpora/midx/f4ad43d6f913c3be6243dfc439e4b6f5b2e814b9 +0 -0
  1315. package/vendor/libgit2/fuzzers/corpora/midx/f4cde4083a974d755a38bf5ea3820f78b576754a +0 -0
  1316. package/vendor/libgit2/fuzzers/corpora/midx/f5888d0dcacda196d73772aabc18fe2ad6e1dfa2 +0 -0
  1317. package/vendor/libgit2/fuzzers/corpora/midx/f5c3577a62d401f071d5edaa77c54ae98d6a0318 +1 -0
  1318. package/vendor/libgit2/fuzzers/corpora/midx/f5dee0d9da0d6950069ac36b1880090a20f50f3e +0 -0
  1319. package/vendor/libgit2/fuzzers/corpora/midx/f605fff495fef2719585c706c05c350812402a35 +0 -0
  1320. package/vendor/libgit2/fuzzers/corpora/midx/f6fdaf4e77e29c780b9e0b91637777575bebfab4 +0 -0
  1321. package/vendor/libgit2/fuzzers/corpora/midx/f72700bd65fa86c588607ec50d60a9c684c86f43 +0 -0
  1322. package/vendor/libgit2/fuzzers/corpora/midx/f777db12ef18f002febd5af13e2b948c95d964c3 +0 -0
  1323. package/vendor/libgit2/fuzzers/corpora/midx/f777e9274d508e7ac1069e2a04bedc042942491c +0 -0
  1324. package/vendor/libgit2/fuzzers/corpora/midx/f81306f8ceaec3d06d5d34afa9769d15f0d209eb +0 -0
  1325. package/vendor/libgit2/fuzzers/corpora/midx/f84c2b36689f22809d9bda00febab557c381ffa4 +0 -0
  1326. package/vendor/libgit2/fuzzers/corpora/midx/f98168fa74c26b17ad0c3002f2263beb0af7c0ce +0 -0
  1327. package/vendor/libgit2/fuzzers/corpora/midx/fa6759d6a2807bbad83ba21761772c0119122c35 +0 -0
  1328. package/vendor/libgit2/fuzzers/corpora/midx/fa8b927b25a67fa3d60b12c53ac365366cc2b52d +0 -0
  1329. package/vendor/libgit2/fuzzers/corpora/midx/fc5e4b78e59daebed1118389b57a386981f2430e +0 -0
  1330. package/vendor/libgit2/fuzzers/corpora/midx/fdaf408880429153cfcf5d978727cd7b84c3d60e +0 -0
  1331. package/vendor/libgit2/fuzzers/corpora/midx/fe50e7564a28683b24c57f8bcdcb3fbfa61f5c6a +0 -0
  1332. package/vendor/libgit2/fuzzers/corpora/midx/fe64b998872d3ad87df2019173ddc52686841d7d +0 -0
  1333. package/vendor/libgit2/fuzzers/corpora/midx/fec56c7cc86871aaa9c7a947c4084307cac2778d +0 -0
  1334. package/vendor/libgit2/fuzzers/corpora/midx/ff164dfc56dd28709488130dc6dfc17406bf9e9d +0 -0
  1335. package/vendor/libgit2/fuzzers/corpora/midx/ff7035b3c055718728a6025b3cdf55c34c4c744b +0 -0
  1336. package/vendor/libgit2/fuzzers/midx_fuzzer.c +76 -0
  1337. package/vendor/libgit2/git.git-authors +2 -2
  1338. package/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  1339. package/vendor/libgit2/include/git2/blob.h +18 -2
  1340. package/vendor/libgit2/include/git2/branch.h +12 -0
  1341. package/vendor/libgit2/include/git2/cert.h +41 -5
  1342. package/vendor/libgit2/include/git2/config.h +1 -1
  1343. package/vendor/libgit2/include/git2/deprecated.h +102 -8
  1344. package/vendor/libgit2/include/git2/index.h +1 -1
  1345. package/vendor/libgit2/include/git2/patch.h +8 -0
  1346. package/vendor/libgit2/include/git2/refs.h +6 -5
  1347. package/vendor/libgit2/include/git2/remote.h +3 -2
  1348. package/vendor/libgit2/include/git2/repository.h +95 -52
  1349. package/vendor/libgit2/include/git2/revparse.h +5 -5
  1350. package/vendor/libgit2/include/git2/tag.h +12 -0
  1351. package/vendor/libgit2/include/git2/transport.h +1 -1
  1352. package/vendor/libgit2/include/git2/tree.h +0 -14
  1353. package/vendor/libgit2/include/git2/version.h +3 -3
  1354. package/vendor/libgit2/package.json +1 -1
  1355. package/vendor/libgit2/script/thread-sanitizer.supp +26 -0
  1356. package/vendor/libgit2/src/CMakeLists.txt +13 -2
  1357. package/vendor/libgit2/src/alloc.c +21 -8
  1358. package/vendor/libgit2/src/allocators/failalloc.c +92 -0
  1359. package/vendor/libgit2/src/allocators/failalloc.h +23 -0
  1360. package/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  1361. package/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  1362. package/vendor/libgit2/src/annotated_commit.c +21 -9
  1363. package/vendor/libgit2/src/apply.c +16 -7
  1364. package/vendor/libgit2/src/attr.c +12 -3
  1365. package/vendor/libgit2/src/attr_file.c +8 -5
  1366. package/vendor/libgit2/src/attrcache.c +5 -5
  1367. package/vendor/libgit2/src/blame.c +26 -15
  1368. package/vendor/libgit2/src/blob.c +32 -12
  1369. package/vendor/libgit2/src/branch.c +57 -15
  1370. package/vendor/libgit2/src/buf_text.c +2 -2
  1371. package/vendor/libgit2/src/buffer.c +25 -14
  1372. package/vendor/libgit2/src/buffer.h +2 -2
  1373. package/vendor/libgit2/src/cache.c +3 -3
  1374. package/vendor/libgit2/src/cache.h +7 -7
  1375. package/vendor/libgit2/src/cc-compat.h +1 -1
  1376. package/vendor/libgit2/src/checkout.c +66 -63
  1377. package/vendor/libgit2/src/cherrypick.c +6 -2
  1378. package/vendor/libgit2/src/clone.c +109 -25
  1379. package/vendor/libgit2/src/commit.c +41 -28
  1380. package/vendor/libgit2/src/commit_graph.c +470 -0
  1381. package/vendor/libgit2/src/commit_graph.h +116 -0
  1382. package/vendor/libgit2/src/common.h +4 -2
  1383. package/vendor/libgit2/src/config.c +38 -19
  1384. package/vendor/libgit2/src/config_cache.c +8 -4
  1385. package/vendor/libgit2/src/config_file.c +2 -2
  1386. package/vendor/libgit2/src/config_parse.c +2 -2
  1387. package/vendor/libgit2/src/custom_tls.c +4 -4
  1388. package/vendor/libgit2/src/date.c +2 -1
  1389. package/vendor/libgit2/src/delta.c +1 -1
  1390. package/vendor/libgit2/src/describe.c +7 -4
  1391. package/vendor/libgit2/src/diff.c +11 -8
  1392. package/vendor/libgit2/src/diff_driver.c +2 -2
  1393. package/vendor/libgit2/src/diff_generate.c +45 -15
  1394. package/vendor/libgit2/src/diff_print.c +19 -6
  1395. package/vendor/libgit2/src/diff_stats.c +13 -10
  1396. package/vendor/libgit2/src/diff_tform.c +7 -6
  1397. package/vendor/libgit2/src/errors.c +24 -14
  1398. package/vendor/libgit2/src/features.h.in +1 -1
  1399. package/vendor/libgit2/src/fetch.c +5 -2
  1400. package/vendor/libgit2/src/fetchhead.c +8 -4
  1401. package/vendor/libgit2/src/filebuf.c +9 -7
  1402. package/vendor/libgit2/src/filter.c +31 -25
  1403. package/vendor/libgit2/src/futils.c +5 -5
  1404. package/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  1405. package/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  1406. package/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  1407. package/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  1408. package/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  1409. package/vendor/libgit2/src/hash.c +11 -8
  1410. package/vendor/libgit2/src/hashsig.c +20 -9
  1411. package/vendor/libgit2/src/ignore.c +6 -2
  1412. package/vendor/libgit2/src/index.c +109 -72
  1413. package/vendor/libgit2/src/index.h +1 -1
  1414. package/vendor/libgit2/src/indexer.c +50 -32
  1415. package/vendor/libgit2/src/integer.h +77 -0
  1416. package/vendor/libgit2/src/iterator.c +28 -20
  1417. package/vendor/libgit2/src/iterator.h +1 -1
  1418. package/vendor/libgit2/src/{settings.c → libgit2.c} +116 -46
  1419. package/vendor/libgit2/src/libgit2.h +15 -0
  1420. package/vendor/libgit2/src/mailmap.c +19 -10
  1421. package/vendor/libgit2/src/map.h +3 -3
  1422. package/vendor/libgit2/src/merge.c +53 -21
  1423. package/vendor/libgit2/src/merge_driver.c +19 -13
  1424. package/vendor/libgit2/src/merge_file.c +11 -3
  1425. package/vendor/libgit2/src/message.c +3 -1
  1426. package/vendor/libgit2/src/midx.c +477 -0
  1427. package/vendor/libgit2/src/midx.h +94 -0
  1428. package/vendor/libgit2/src/mwindow.c +110 -61
  1429. package/vendor/libgit2/src/mwindow.h +3 -3
  1430. package/vendor/libgit2/src/net.c +15 -4
  1431. package/vendor/libgit2/src/net.h +5 -2
  1432. package/vendor/libgit2/src/netops.c +6 -4
  1433. package/vendor/libgit2/src/netops.h +1 -1
  1434. package/vendor/libgit2/src/notes.c +10 -10
  1435. package/vendor/libgit2/src/object.c +22 -14
  1436. package/vendor/libgit2/src/odb.c +197 -40
  1437. package/vendor/libgit2/src/odb.h +1 -0
  1438. package/vendor/libgit2/src/odb_loose.c +28 -18
  1439. package/vendor/libgit2/src/odb_mempack.c +1 -1
  1440. package/vendor/libgit2/src/odb_pack.c +317 -114
  1441. package/vendor/libgit2/src/oid.c +5 -4
  1442. package/vendor/libgit2/src/pack-objects.c +36 -36
  1443. package/vendor/libgit2/src/pack.c +272 -132
  1444. package/vendor/libgit2/src/pack.h +19 -7
  1445. package/vendor/libgit2/src/patch.c +14 -7
  1446. package/vendor/libgit2/src/patch_generate.c +3 -5
  1447. package/vendor/libgit2/src/patch_parse.c +4 -2
  1448. package/vendor/libgit2/src/path.c +44 -43
  1449. package/vendor/libgit2/src/path.h +0 -2
  1450. package/vendor/libgit2/src/pathspec.c +6 -5
  1451. package/vendor/libgit2/src/pool.c +28 -20
  1452. package/vendor/libgit2/src/pool.h +8 -0
  1453. package/vendor/libgit2/src/posix.c +36 -12
  1454. package/vendor/libgit2/src/posix.h +9 -0
  1455. package/vendor/libgit2/src/reader.c +9 -4
  1456. package/vendor/libgit2/src/rebase.c +26 -18
  1457. package/vendor/libgit2/src/refdb.c +30 -13
  1458. package/vendor/libgit2/src/refdb_fs.c +59 -33
  1459. package/vendor/libgit2/src/reflog.c +19 -14
  1460. package/vendor/libgit2/src/refs.c +92 -44
  1461. package/vendor/libgit2/src/refs.h +1 -2
  1462. package/vendor/libgit2/src/refspec.c +80 -44
  1463. package/vendor/libgit2/src/remote.c +137 -72
  1464. package/vendor/libgit2/src/repository.c +170 -92
  1465. package/vendor/libgit2/src/repository.h +8 -2
  1466. package/vendor/libgit2/src/reset.c +7 -6
  1467. package/vendor/libgit2/src/revert.c +6 -2
  1468. package/vendor/libgit2/src/revparse.c +14 -9
  1469. package/vendor/libgit2/src/revwalk.c +32 -15
  1470. package/vendor/libgit2/src/runtime.c +162 -0
  1471. package/vendor/libgit2/src/runtime.h +62 -0
  1472. package/vendor/libgit2/src/settings.h +11 -0
  1473. package/vendor/libgit2/src/signature.c +6 -5
  1474. package/vendor/libgit2/src/sortedcache.h +1 -1
  1475. package/vendor/libgit2/src/stash.c +3 -1
  1476. package/vendor/libgit2/src/status.c +7 -4
  1477. package/vendor/libgit2/src/strarray.c +2 -1
  1478. package/vendor/libgit2/src/streams/mbedtls.c +8 -8
  1479. package/vendor/libgit2/src/streams/openssl.c +13 -10
  1480. package/vendor/libgit2/src/streams/registry.c +5 -6
  1481. package/vendor/libgit2/src/streams/socket.c +6 -2
  1482. package/vendor/libgit2/src/streams/stransport.c +6 -3
  1483. package/vendor/libgit2/src/streams/tls.c +5 -3
  1484. package/vendor/libgit2/src/submodule.c +89 -33
  1485. package/vendor/libgit2/src/submodule.h +9 -9
  1486. package/vendor/libgit2/src/sysdir.c +8 -7
  1487. package/vendor/libgit2/src/tag.c +47 -11
  1488. package/vendor/libgit2/src/thread.c +140 -0
  1489. package/vendor/libgit2/src/thread.h +422 -0
  1490. package/vendor/libgit2/src/threadstate.c +83 -0
  1491. package/vendor/libgit2/src/threadstate.h +24 -0
  1492. package/vendor/libgit2/src/trace.c +2 -2
  1493. package/vendor/libgit2/src/transaction.c +19 -8
  1494. package/vendor/libgit2/src/transport.c +3 -3
  1495. package/vendor/libgit2/src/transports/auth_negotiate.c +10 -3
  1496. package/vendor/libgit2/src/transports/auth_ntlm.c +8 -4
  1497. package/vendor/libgit2/src/transports/credential.c +15 -7
  1498. package/vendor/libgit2/src/transports/git.c +1 -3
  1499. package/vendor/libgit2/src/transports/http.c +6 -6
  1500. package/vendor/libgit2/src/transports/http.h +1 -0
  1501. package/vendor/libgit2/src/transports/httpclient.c +59 -34
  1502. package/vendor/libgit2/src/transports/local.c +3 -3
  1503. package/vendor/libgit2/src/transports/smart.c +10 -7
  1504. package/vendor/libgit2/src/transports/smart.h +1 -1
  1505. package/vendor/libgit2/src/transports/smart_protocol.c +9 -4
  1506. package/vendor/libgit2/src/transports/ssh.c +47 -13
  1507. package/vendor/libgit2/src/transports/winhttp.c +98 -58
  1508. package/vendor/libgit2/src/tree.c +97 -75
  1509. package/vendor/libgit2/src/tree.h +1 -0
  1510. package/vendor/libgit2/src/tsort.c +0 -2
  1511. package/vendor/libgit2/src/unix/map.c +3 -1
  1512. package/vendor/libgit2/src/unix/posix.h +16 -1
  1513. package/vendor/libgit2/src/unix/pthread.c +27 -6
  1514. package/vendor/libgit2/src/unix/pthread.h +2 -2
  1515. package/vendor/libgit2/src/util.c +53 -12
  1516. package/vendor/libgit2/src/util.h +11 -7
  1517. package/vendor/libgit2/src/vector.c +23 -19
  1518. package/vendor/libgit2/src/win32/findfile.c +4 -2
  1519. package/vendor/libgit2/src/win32/map.c +1 -1
  1520. package/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  1521. package/vendor/libgit2/src/win32/path_w32.c +6 -8
  1522. package/vendor/libgit2/src/win32/posix_w32.c +70 -1
  1523. package/vendor/libgit2/src/win32/precompiled.h +0 -1
  1524. package/vendor/libgit2/src/win32/thread.c +27 -18
  1525. package/vendor/libgit2/src/win32/thread.h +1 -1
  1526. package/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  1527. package/vendor/libgit2/src/win32/w32_leakcheck.c +576 -0
  1528. package/vendor/libgit2/src/win32/w32_leakcheck.h +220 -0
  1529. package/vendor/libgit2/src/worktree.c +27 -12
  1530. package/vendor/libgit2/src/zstream.c +1 -1
  1531. package/vendor/libgit2/tests/README.md +48 -0
  1532. package/vendor/libgit2/tests/clar/fs.h +3 -3
  1533. package/vendor/libgit2/tests/clar/sandbox.h +7 -4
  1534. package/vendor/libgit2/tests/clar_libgit2.c +4 -3
  1535. package/vendor/libgit2/tests/clar_libgit2_trace.c +2 -2
  1536. package/vendor/libgit2/tests/clone/empty.c +17 -0
  1537. package/vendor/libgit2/tests/clone/nonetwork.c +8 -0
  1538. package/vendor/libgit2/tests/config/read.c +76 -0
  1539. package/vendor/libgit2/tests/config/stress.c +5 -0
  1540. package/vendor/libgit2/tests/core/integer.c +253 -0
  1541. package/vendor/libgit2/tests/core/path.c +1 -27
  1542. package/vendor/libgit2/tests/core/strtol.c +2 -0
  1543. package/vendor/libgit2/tests/core/structinit.c +5 -0
  1544. package/vendor/libgit2/tests/core/useragent.c +1 -1
  1545. package/vendor/libgit2/tests/diff/format_email.c +1 -2
  1546. package/vendor/libgit2/tests/diff/parse.c +23 -0
  1547. package/vendor/libgit2/tests/diff/stats.c +36 -2
  1548. package/vendor/libgit2/tests/fetchhead/nonetwork.c +29 -0
  1549. package/vendor/libgit2/tests/filter/bare.c +1 -1
  1550. package/vendor/libgit2/tests/graph/commit_graph.c +90 -0
  1551. package/vendor/libgit2/tests/network/refspecs.c +1 -1
  1552. package/vendor/libgit2/tests/network/remote/isvalidname.c +15 -8
  1553. package/vendor/libgit2/tests/network/urlparse.c +401 -12
  1554. package/vendor/libgit2/tests/online/badssl.c +2 -7
  1555. package/vendor/libgit2/tests/online/clone.c +28 -1
  1556. package/vendor/libgit2/tests/online/push_util.c +3 -1
  1557. package/vendor/libgit2/tests/pack/filelimit.c +1 -1
  1558. package/vendor/libgit2/tests/pack/midx.c +46 -0
  1559. package/vendor/libgit2/tests/pack/threadsafety.c +62 -0
  1560. package/vendor/libgit2/tests/refs/branches/name.c +17 -0
  1561. package/vendor/libgit2/tests/refs/isvalidname.c +29 -22
  1562. package/vendor/libgit2/tests/refs/revparse.c +13 -13
  1563. package/vendor/libgit2/tests/refs/tags/name.c +17 -0
  1564. package/vendor/libgit2/tests/repo/getters.c +13 -0
  1565. package/vendor/libgit2/tests/repo/init.c +120 -81
  1566. package/vendor/libgit2/tests/resources/attr_index/README.md +1 -0
  1567. package/vendor/libgit2/tests/resources/attr_index/sub/sub/README.md +1 -0
  1568. package/vendor/libgit2/tests/resources/config/config12 +10 -0
  1569. package/vendor/libgit2/tests/resources/merge-recursive/.gitted/objects/info/commit-graph +0 -0
  1570. package/vendor/libgit2/tests/resources/testrepo.git/objects/info/commit-graph +0 -0
  1571. package/vendor/libgit2/tests/resources/testrepo.git/objects/pack/multi-pack-index +0 -0
  1572. package/vendor/libgit2/tests/resources/typechanges/README.md +43 -0
  1573. package/vendor/libgit2/tests/threads/basic.c +7 -1
  1574. package/vendor/libgit2/tests/threads/diff.c +9 -9
  1575. package/vendor/libgit2/tests/threads/thread_helpers.h +1 -1
  1576. package/vendor/libgit2/tests/threads/tlsdata.c +65 -0
  1577. package/vendor/libgit2/tests/trace/windows/stacktrace.c +53 -53
  1578. package/vendor/libgit2/tests/worktree/worktree.c +12 -0
  1579. package/vendor/libgit2.gyp +35 -18
  1580. package/vendor/libssh2/CMakeLists.txt +8 -0
  1581. package/vendor/libssh2/COPYING +3 -1
  1582. package/vendor/libssh2/Makefile.am +5 -3
  1583. package/vendor/libssh2/Makefile.in +29 -15
  1584. package/vendor/libssh2/Makefile.inc +2 -2
  1585. package/vendor/libssh2/NEWS +1376 -486
  1586. package/vendor/libssh2/RELEASE-NOTES +56 -38
  1587. package/vendor/libssh2/acinclude.m4 +1 -0
  1588. package/vendor/libssh2/aclocal.m4 +44 -33
  1589. package/vendor/libssh2/compile +3 -3
  1590. package/vendor/libssh2/configure +9704 -4102
  1591. package/vendor/libssh2/configure.ac +20 -8
  1592. package/vendor/libssh2/depcomp +1 -1
  1593. package/vendor/libssh2/docs/{HACKING.CRYPTO → HACKING-CRYPTO} +312 -49
  1594. package/vendor/libssh2/docs/INSTALL_AUTOTOOLS +2 -2
  1595. package/vendor/libssh2/docs/Makefile.am +2 -2
  1596. package/vendor/libssh2/docs/Makefile.in +14 -7
  1597. package/vendor/libssh2/docs/libssh2_session_callback_set.3 +36 -4
  1598. package/vendor/libssh2/example/CMakeLists.txt +1 -0
  1599. package/vendor/libssh2/example/Makefile.am +3 -3
  1600. package/vendor/libssh2/example/Makefile.in +49 -42
  1601. package/vendor/libssh2/example/ssh2_agent_forwarding.c +292 -0
  1602. package/vendor/libssh2/include/libssh2.h +18 -13
  1603. package/vendor/libssh2/include/libssh2_sftp.h +26 -26
  1604. package/vendor/libssh2/install-sh +92 -69
  1605. package/vendor/libssh2/ltmain.sh +6 -4
  1606. package/vendor/libssh2/m4/libtool.m4 +5 -5
  1607. package/vendor/libssh2/missing +1 -1
  1608. package/vendor/libssh2/src/CMakeLists.txt +8 -2
  1609. package/vendor/libssh2/src/Makefile.in +25 -17
  1610. package/vendor/libssh2/src/agent.c +60 -63
  1611. package/vendor/libssh2/src/agent.h +112 -0
  1612. package/vendor/libssh2/src/agent_win.c +361 -0
  1613. package/vendor/libssh2/src/bcrypt_pbkdf.c +3 -3
  1614. package/vendor/libssh2/src/blf.h +3 -4
  1615. package/vendor/libssh2/src/channel.c +158 -1
  1616. package/vendor/libssh2/src/comp.c +2 -1
  1617. package/vendor/libssh2/src/comp.h +0 -1
  1618. package/vendor/libssh2/src/crypto.h +6 -6
  1619. package/vendor/libssh2/src/global.c +2 -1
  1620. package/vendor/libssh2/src/hostkey.c +41 -2
  1621. package/vendor/libssh2/src/kex.c +691 -974
  1622. package/vendor/libssh2/src/knownhost.c +2 -2
  1623. package/vendor/libssh2/src/libgcrypt.h +4 -1
  1624. package/vendor/libssh2/src/libssh2_config.h.in +6 -18
  1625. package/vendor/libssh2/src/libssh2_priv.h +17 -6
  1626. package/vendor/libssh2/src/mac.h +0 -1
  1627. package/vendor/libssh2/src/mbedtls.c +520 -2
  1628. package/vendor/libssh2/src/mbedtls.h +146 -7
  1629. package/vendor/libssh2/src/misc.c +14 -16
  1630. package/vendor/libssh2/src/openssl.c +227 -181
  1631. package/vendor/libssh2/src/openssl.h +9 -22
  1632. package/vendor/libssh2/src/packet.c +98 -38
  1633. package/vendor/libssh2/src/packet.h +3 -3
  1634. package/vendor/libssh2/src/pem.c +20 -11
  1635. package/vendor/libssh2/src/scp.c +3 -3
  1636. package/vendor/libssh2/src/session.c +2 -2
  1637. package/vendor/libssh2/src/session.h +3 -3
  1638. package/vendor/libssh2/src/sftp.c +1 -1
  1639. package/vendor/libssh2/src/sftp.h +3 -3
  1640. package/vendor/libssh2/src/transport.c +11 -4
  1641. package/vendor/libssh2/src/transport.h +0 -1
  1642. package/vendor/libssh2/src/userauth.c +24 -22
  1643. package/vendor/libssh2/src/userauth.h +3 -3
  1644. package/vendor/libssh2/src/wincng.c +485 -60
  1645. package/vendor/libssh2/src/wincng.h +33 -5
  1646. package/vendor/libssh2/test-driver +6 -4
  1647. package/vendor/libssh2/tests/CMakeLists.txt +4 -1
  1648. package/vendor/libssh2/tests/Makefile.am +60 -23
  1649. package/vendor/libssh2/tests/Makefile.in +223 -65
  1650. package/vendor/libssh2/tests/key_ecdsa +10 -0
  1651. package/vendor/libssh2/tests/key_ecdsa.pub +1 -0
  1652. package/vendor/libssh2/tests/key_ed25519 +7 -0
  1653. package/vendor/libssh2/tests/key_ed25519.pub +1 -0
  1654. package/vendor/libssh2/tests/key_ed25519_encrypted +8 -0
  1655. package/vendor/libssh2/tests/key_ed25519_encrypted.pub +1 -0
  1656. package/vendor/libssh2/tests/key_rsa_encrypted +30 -0
  1657. package/vendor/libssh2/tests/key_rsa_encrypted.pub +1 -0
  1658. package/vendor/libssh2/tests/key_rsa_openssh +27 -0
  1659. package/vendor/libssh2/tests/key_rsa_openssh.pub +1 -0
  1660. package/vendor/libssh2/tests/openssh_fixture.c +141 -46
  1661. package/vendor/libssh2/tests/openssh_server/Dockerfile +9 -0
  1662. package/vendor/libssh2/tests/openssh_server/authorized_keys +1 -0
  1663. package/vendor/libssh2/tests/openssh_server/ca_ecdsa +12 -0
  1664. package/vendor/libssh2/tests/openssh_server/ca_ecdsa.pub +1 -0
  1665. package/vendor/libssh2/tests/openssh_server/ssh_host_ecdsa_key +5 -0
  1666. package/vendor/libssh2/tests/openssh_server/ssh_host_ed25519_key +7 -0
  1667. package/vendor/libssh2/tests/ossfuzz/Makefile.am +32 -0
  1668. package/vendor/libssh2/tests/ossfuzz/Makefile.in +731 -0
  1669. package/vendor/libssh2/tests/ossfuzz/ssh2_client_fuzzer.cc +90 -0
  1670. package/vendor/libssh2/tests/ossfuzz/standaloneengine.cc +74 -0
  1671. package/vendor/libssh2/tests/ossfuzz/testinput.h +3 -0
  1672. package/vendor/libssh2/tests/ssh2.c +9 -5
  1673. package/vendor/libssh2/tests/test_agent_forward_succeeds.c +51 -0
  1674. package/vendor/libssh2/tests/test_hostkey.c +5 -3
  1675. package/vendor/libssh2/tests/test_hostkey_hash.c +32 -19
  1676. package/vendor/libssh2/tests/test_keyboard_interactive_auth_fails_with_wrong_response.c +3 -3
  1677. package/vendor/libssh2/tests/test_keyboard_interactive_auth_succeeds_with_correct_response.c +5 -4
  1678. package/vendor/libssh2/tests/test_password_auth_fails_with_wrong_password.c +1 -1
  1679. package/vendor/libssh2/tests/test_password_auth_fails_with_wrong_username.c +2 -1
  1680. package/vendor/libssh2/tests/test_password_auth_succeeds_with_correct_credentials.c +3 -2
  1681. package/vendor/libssh2/tests/test_public_key_auth_fails_with_wrong_key.c +1 -1
  1682. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_dsa_key.c +3 -2
  1683. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_ecdsa_key.c +38 -0
  1684. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_ed25519_key.c +38 -0
  1685. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_ed25519_key_from_mem.c +98 -0
  1686. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_encrypted_ed25519_key.c +39 -0
  1687. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_encrypted_rsa_key.c +3 -2
  1688. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_rsa_key.c +3 -2
  1689. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_rsa_openssh_key.c +3 -2
  1690. package/vendor/libssh2/tests/test_public_key_auth_succeeds_with_correct_signed_ecdsa_key.c +38 -0
  1691. package/vendor/libssh2/vms/libssh2_make_help.dcl +12 -12
  1692. package/vendor/libssh2/win32/libssh2.dsp +8 -0
  1693. package/CHANGELOG.md +0 -3415
  1694. package/HISTORY.md +0 -9
  1695. package/dist/blame.js +0 -22
  1696. package/dist/checkout.js +0 -53
  1697. package/dist/cherrypick.js +0 -62
  1698. package/dist/clone.js +0 -35
  1699. package/dist/status_list.js +0 -14
  1700. package/dist/utils/normalize_fetch_options.js +0 -43
  1701. package/dist/utils/normalize_options.js +0 -31
  1702. package/generate/templates/templates/binding.gyp +0 -192
  1703. package/include/async_libgit2_queue_worker.h +0 -33
  1704. package/package-lock.json +0 -5139
  1705. package/vendor/libgit2/azure-pipelines/bash.yml +0 -17
  1706. package/vendor/libgit2/azure-pipelines/coverity.yml +0 -26
  1707. package/vendor/libgit2/azure-pipelines/docker.yml +0 -51
  1708. package/vendor/libgit2/azure-pipelines/nightly.yml +0 -232
  1709. package/vendor/libgit2/azure-pipelines.yml +0 -203
  1710. package/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  1711. package/vendor/libgit2/src/global.c +0 -357
  1712. package/vendor/libgit2/src/global.h +0 -41
  1713. package/vendor/libgit2/src/thread-utils.c +0 -263
  1714. package/vendor/libgit2/src/thread-utils.h +0 -294
  1715. package/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +0 -345
  1716. package/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  1717. package/vendor/libgit2/src/win32/w32_stack.c +0 -188
  1718. package/vendor/libgit2/src/win32/w32_stack.h +0 -140
  1719. package/vendor/libgit2/tests/resources/testrepo-worktree/link_to_new.txt +0 -1
  1720. package/vendor/libssh2/buildconf +0 -22
  1721. 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