{"_id":"nano-git","_rev":"37-830467d8e4bd4ea6d395edb1c92be2bd","name":"nano-git","dist-tags":{"latest":"0.14.0"},"versions":{"0.1.0":{"name":"nano-git","version":"0.1.0","_id":"nano-git@0.1.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"b9cea07ef4663c33754cdcc48e951d9edb5496aa","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.1.0.tgz","fileCount":227,"integrity":"sha512-5YFqEUo60majk0d5F68i8lN3nAdu4WIynQSaUlN1PJtBDK0fBpO8QxjOeLyTtJczIyMnz7jUF5/s45ANRQHzpQ==","signatures":[{"sig":"MEUCIFcbMYjs+Qzz848icL3LYTymiPbKWsXmNdbME2f7/0kPAiEA9R/ygzOa46wsy1rlOT7zGaWfXua4Pt0609svRBJeut4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464749},"type":"module","exports":{".":"./src/index.ts","./pack":"./src/pack/index.ts","./sha1":"./src/sha1.ts","./errors":"./src/errors.ts","./backend":"./src/backend/index.ts","./objects":"./src/objects/index.ts","./odb/file":"./src/odb/file.ts","./hash-file":"./src/hash-file.ts","./refs/file":"./src/refs/file.ts","./transport":"./src/transport/index.ts","./odb/memory":"./src/odb/memory.ts","./refs/names":"./src/refs/names.ts","./refs/memory":"./src/refs/memory.ts","./backend/file":"./src/backend/file.ts","./refs/resolve":"./src/refs/resolve.ts","./backend/memory":"./src/backend/memory.ts","./transport/http":"./src/transport/http/index.ts","./repository/core":"./src/repository/core.ts","./repository/file":"./src/repository/file.ts","./refs/shallow/file":"./src/refs/shallow/file.ts","./repository/memory":"./src/repository/memory.ts","./refs/shallow/memory":"./src/refs/shallow/memory.ts","./transport/upload-pack":"./src/transport/upload-pack.ts","./transport/receive-pack":"./src/transport/receive-pack.ts","./repository/tree/tree-walk":"./src/repository/tree/tree-walk.ts","./repository/tree/tree-patch":"./src/repository/tree/tree-patch.ts","./transport/server/upload-pack":"./src/transport/server/upload-pack/index.ts","./transport/server/receive-pack":"./src/transport/server/receive-pack/index.ts"},"gitHead":"adac5ba3e72106e79cdca45c495d31d03a7a4cff","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","publishConfig":{"exports":{".":"./dist/index.mjs","./pack":"./dist/pack/index.mjs","./sha1":"./dist/sha1.mjs","./errors":"./dist/errors.mjs","./backend":"./dist/backend/index.mjs","./objects":"./dist/objects/index.mjs","./odb/file":"./dist/odb/file.mjs","./hash-file":"./dist/hash-file.mjs","./refs/file":"./dist/refs/file.mjs","./transport":"./dist/transport/index.mjs","./odb/memory":"./dist/odb/memory.mjs","./refs/names":"./dist/refs/names.mjs","./refs/memory":"./dist/refs/memory.mjs","./backend/file":"./dist/backend/file.mjs","./refs/resolve":"./dist/refs/resolve.mjs","./backend/memory":"./dist/backend/memory.mjs","./transport/http":"./dist/transport/http/index.mjs","./repository/core":"./dist/repository/core.mjs","./repository/file":"./dist/repository/file.mjs","./refs/shallow/file":"./dist/refs/shallow/file.mjs","./repository/memory":"./dist/repository/memory.mjs","./refs/shallow/memory":"./dist/refs/shallow/memory.mjs","./transport/upload-pack":"./dist/transport/upload-pack.mjs","./transport/receive-pack":"./dist/transport/receive-pack.mjs","./repository/tree/tree-walk":"./dist/repository/tree/tree-walk.mjs","./repository/tree/tree-patch":"./dist/repository/tree/tree-patch.mjs","./transport/server/upload-pack":"./dist/transport/server/upload-pack/index.mjs","./transport/server/receive-pack":"./dist/transport/server/receive-pack/index.mjs"}},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.1.0_1782278574185_0.3604247198699604","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"nano-git","version":"0.2.0","_id":"nano-git@0.2.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"e5600522659401b152d709dbfc7bed90dd83827f","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.2.0.tgz","fileCount":240,"integrity":"sha512-uo8MNd94zic06/RNQpTbSpwSdBRUFbgyruVaFnoVXwuhPXH/qjn+MJL7dv4rTQwWDjCe6NKkdS8wybGyAHZ1nw==","signatures":[{"sig":"MEYCIQChYZcy2vNHzXxaUrw+oih3uGvY3bugD2eEaQMJs91/YwIhAIdpbl0mIWnVxpLDoIsn2ly8tSZkouzH0J9kXG44z6Zi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487651},"type":"module","exports":{".":"./src/index.ts","./pack":"./src/pack/index.ts","./sha1":"./src/sha1.ts","./errors":"./src/errors.ts","./backend":"./src/backend/index.ts","./objects":"./src/objects/index.ts","./odb/file":"./src/odb/file.ts","./hash-file":"./src/hash-file.ts","./refs/file":"./src/refs/file.ts","./transport":"./src/transport/index.ts","./odb/memory":"./src/odb/memory.ts","./odb/sqlite":"./src/odb/sqlite.ts","./refs/names":"./src/refs/names.ts","./refs/memory":"./src/refs/memory.ts","./refs/sqlite":"./src/refs/sqlite.ts","./remote/http":"./src/remote/http.ts","./backend/file":"./src/backend/file.ts","./refs/resolve":"./src/refs/resolve.ts","./backend/memory":"./src/backend/memory.ts","./backend/sqlite":"./src/backend/sqlite.ts","./transport/http":"./src/transport/http/index.ts","./repository/core":"./src/repository/core.ts","./repository/file":"./src/repository/file.ts","./refs/shallow/file":"./src/refs/shallow/file.ts","./repository/memory":"./src/repository/memory.ts","./repository/sqlite":"./src/repository/sqlite.ts","./refs/shallow/memory":"./src/refs/shallow/memory.ts","./refs/shallow/sqlite":"./src/refs/shallow/sqlite.ts","./transport/upload-pack":"./src/transport/upload-pack.ts","./transport/receive-pack":"./src/transport/receive-pack.ts","./repository/tree/tree-walk":"./src/repository/tree/tree-walk.ts","./repository/tree/tree-patch":"./src/repository/tree/tree-patch.ts","./transport/server/upload-pack":"./src/transport/server/upload-pack/index.ts","./transport/server/receive-pack":"./src/transport/server/receive-pack/index.ts"},"gitHead":"6f0fb141f3e1d8b6ccb8467c4253d0da06cb2ec8","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","publishConfig":{"exports":{".":"./dist/index.mjs","./pack":"./dist/pack/index.mjs","./sha1":"./dist/sha1.mjs","./errors":"./dist/errors.mjs","./backend":"./dist/backend/index.mjs","./objects":"./dist/objects/index.mjs","./odb/file":"./dist/odb/file.mjs","./hash-file":"./dist/hash-file.mjs","./refs/file":"./dist/refs/file.mjs","./transport":"./dist/transport/index.mjs","./odb/memory":"./dist/odb/memory.mjs","./odb/sqlite":"./dist/odb/sqlite.mjs","./refs/names":"./dist/refs/names.mjs","./refs/memory":"./dist/refs/memory.mjs","./refs/sqlite":"./dist/refs/sqlite.mjs","./remote/http":"./dist/remote/http.mjs","./backend/file":"./dist/backend/file.mjs","./refs/resolve":"./dist/refs/resolve.mjs","./backend/memory":"./dist/backend/memory.mjs","./backend/sqlite":"./dist/backend/sqlite.mjs","./transport/http":"./dist/transport/http/index.mjs","./repository/core":"./dist/repository/core.mjs","./repository/file":"./dist/repository/file.mjs","./refs/shallow/file":"./dist/refs/shallow/file.mjs","./repository/memory":"./dist/repository/memory.mjs","./repository/sqlite":"./dist/repository/sqlite.mjs","./refs/shallow/memory":"./dist/refs/shallow/memory.mjs","./refs/shallow/sqlite":"./dist/refs/shallow/sqlite.mjs","./transport/upload-pack":"./dist/transport/upload-pack.mjs","./transport/receive-pack":"./dist/transport/receive-pack.mjs","./repository/tree/tree-walk":"./dist/repository/tree/tree-walk.mjs","./repository/tree/tree-patch":"./dist/repository/tree/tree-patch.mjs","./transport/server/upload-pack":"./dist/transport/server/upload-pack/index.mjs","./transport/server/receive-pack":"./dist/transport/server/receive-pack/index.mjs"}},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.2.0_1782283602376_0.20794624061439615","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"nano-git","version":"0.2.1","_id":"nano-git@0.2.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"4e17b09544131cfe12920d8c60f1fdc16907bf0f","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.2.1.tgz","fileCount":260,"integrity":"sha512-8weV9IWLzqzw7WK6QhdpH6KNbqCJoZwiVis+y+t0p4v7BF4R7GsEhn4uzBPa9tjnhP2IFaAOwCJq2VZ+d6HWAg==","signatures":[{"sig":"MEYCIQDIc+mvDnE0+Rb9ADaU+2zxwKYzhtbfx/nMllIPPbz7dAIhAMQrO+K5s0KBpbgVWuwAv5AbMu5H87YAYi1kBgpBeaoQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":547496},"type":"module","exports":{".":"./src/index.ts","./log":"./src/log/index.ts","./pack":"./src/pack/index.ts","./sha1":"./src/sha1.ts","./errors":"./src/errors.ts","./backend":"./src/backend/index.ts","./objects":"./src/objects/index.ts","./odb/file":"./src/odb/file.ts","./hash-file":"./src/hash-file.ts","./refs/file":"./src/refs/file.ts","./transport":"./src/transport/index.ts","./odb/memory":"./src/odb/memory.ts","./odb/sqlite":"./src/odb/sqlite.ts","./refs/names":"./src/refs/names.ts","./refs/memory":"./src/refs/memory.ts","./refs/sqlite":"./src/refs/sqlite.ts","./remote/http":"./src/remote/http.ts","./backend/file":"./src/backend/file.ts","./refs/resolve":"./src/refs/resolve.ts","./workdir/core":"./src/workdir/core.ts","./backend/memory":"./src/backend/memory.ts","./backend/sqlite":"./src/backend/sqlite.ts","./transport/http":"./src/transport/http/index.ts","./workdir/memory":"./src/workdir/memory.ts","./repository/core":"./src/repository/core.ts","./repository/file":"./src/repository/file.ts","./refs/shallow/file":"./src/refs/shallow/file.ts","./repository/memory":"./src/repository/memory.ts","./repository/sqlite":"./src/repository/sqlite.ts","./refs/shallow/memory":"./src/refs/shallow/memory.ts","./refs/shallow/sqlite":"./src/refs/shallow/sqlite.ts","./transport/upload-pack":"./src/transport/upload-pack.ts","./transport/receive-pack":"./src/transport/receive-pack.ts","./repository/tree/tree-walk":"./src/repository/tree/tree-walk.ts","./repository/tree/tree-patch":"./src/repository/tree/tree-patch.ts","./transport/server/upload-pack":"./src/transport/server/upload-pack/index.ts","./transport/server/receive-pack":"./src/transport/server/receive-pack/index.ts"},"gitHead":"df29d7926b961ca6b2e62a4f156d571ca8a37c1f","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","publishConfig":{"exports":{".":"./dist/index.mjs","./log":"./dist/log/index.mjs","./pack":"./dist/pack/index.mjs","./sha1":"./dist/sha1.mjs","./errors":"./dist/errors.mjs","./backend":"./dist/backend/index.mjs","./objects":"./dist/objects/index.mjs","./odb/file":"./dist/odb/file.mjs","./hash-file":"./dist/hash-file.mjs","./refs/file":"./dist/refs/file.mjs","./transport":"./dist/transport/index.mjs","./odb/memory":"./dist/odb/memory.mjs","./odb/sqlite":"./dist/odb/sqlite.mjs","./refs/names":"./dist/refs/names.mjs","./refs/memory":"./dist/refs/memory.mjs","./refs/sqlite":"./dist/refs/sqlite.mjs","./remote/http":"./dist/remote/http.mjs","./backend/file":"./dist/backend/file.mjs","./refs/resolve":"./dist/refs/resolve.mjs","./workdir/core":"./dist/workdir/core.mjs","./backend/memory":"./dist/backend/memory.mjs","./backend/sqlite":"./dist/backend/sqlite.mjs","./transport/http":"./dist/transport/http/index.mjs","./workdir/memory":"./dist/workdir/memory.mjs","./repository/core":"./dist/repository/core.mjs","./repository/file":"./dist/repository/file.mjs","./refs/shallow/file":"./dist/refs/shallow/file.mjs","./repository/memory":"./dist/repository/memory.mjs","./repository/sqlite":"./dist/repository/sqlite.mjs","./refs/shallow/memory":"./dist/refs/shallow/memory.mjs","./refs/shallow/sqlite":"./dist/refs/shallow/sqlite.mjs","./transport/upload-pack":"./dist/transport/upload-pack.mjs","./transport/receive-pack":"./dist/transport/receive-pack.mjs","./repository/tree/tree-walk":"./dist/repository/tree/tree-walk.mjs","./repository/tree/tree-patch":"./dist/repository/tree/tree-patch.mjs","./transport/server/upload-pack":"./dist/transport/server/upload-pack/index.mjs","./transport/server/receive-pack":"./dist/transport/server/receive-pack/index.mjs"}},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.2.1_1782298252577_0.9282793029509873","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"nano-git","version":"0.2.2","_id":"nano-git@0.2.2","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"530227dd9b885cb532059bf25830b11be1ba5fcb","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.2.2.tgz","fileCount":275,"integrity":"sha512-SGr+nrgP/okXmou6W6wswSN2NiuPH+l60F2op4m/wGJGyjJXo1AOyuxj+aSujTb/ScN/tG07Lx3fcKogiOgVSw==","signatures":[{"sig":"MEUCIQCJ+6Ng95/XqIe+WyZ8JicIj/M75cV/fCxl29g13cX/iAIgBx69Vcosg1TSejsErg1Z6Lo3fJ7YyeJm1drU114wgns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588766},"type":"module","exports":{".":"./src/index.ts","./log":"./src/log/index.ts","./pack":"./src/pack/index.ts","./sha1":"./src/sha1.ts","./errors":"./src/errors.ts","./backend":"./src/backend/index.ts","./objects":"./src/objects/index.ts","./odb/file":"./src/odb/file.ts","./hash-file":"./src/hash-file.ts","./refs/file":"./src/refs/file.ts","./transport":"./src/transport/index.ts","./odb/memory":"./src/odb/memory.ts","./odb/sqlite":"./src/odb/sqlite.ts","./refs/names":"./src/refs/names.ts","./refs/memory":"./src/refs/memory.ts","./refs/sqlite":"./src/refs/sqlite.ts","./remote/http":"./src/remote/http.ts","./backend/file":"./src/backend/file.ts","./refs/resolve":"./src/refs/resolve.ts","./workdir/core":"./src/workdir/core.ts","./workdir/file":"./src/workdir/file.ts","./backend/memory":"./src/backend/memory.ts","./backend/sqlite":"./src/backend/sqlite.ts","./transport/http":"./src/transport/http/index.ts","./workdir/memory":"./src/workdir/memory.ts","./workdir/sqlite":"./src/workdir/sqlite.ts","./repository/core":"./src/repository/core.ts","./repository/file":"./src/repository/file.ts","./refs/shallow/file":"./src/refs/shallow/file.ts","./repository/memory":"./src/repository/memory.ts","./repository/sqlite":"./src/repository/sqlite.ts","./refs/shallow/memory":"./src/refs/shallow/memory.ts","./refs/shallow/sqlite":"./src/refs/shallow/sqlite.ts","./transport/upload-pack":"./src/transport/upload-pack.ts","./transport/receive-pack":"./src/transport/receive-pack.ts","./repository/tree/tree-walk":"./src/repository/tree/tree-walk.ts","./repository/tree/tree-patch":"./src/repository/tree/tree-patch.ts","./transport/server/upload-pack":"./src/transport/server/upload-pack/index.ts","./transport/server/receive-pack":"./src/transport/server/receive-pack/index.ts"},"gitHead":"710544fe7396cfade50b2fe7991dae75c6b3fe3e","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","publishConfig":{"exports":{".":"./dist/index.mjs","./log":"./dist/log/index.mjs","./pack":"./dist/pack/index.mjs","./sha1":"./dist/sha1.mjs","./errors":"./dist/errors.mjs","./backend":"./dist/backend/index.mjs","./objects":"./dist/objects/index.mjs","./odb/file":"./dist/odb/file.mjs","./hash-file":"./dist/hash-file.mjs","./refs/file":"./dist/refs/file.mjs","./transport":"./dist/transport/index.mjs","./odb/memory":"./dist/odb/memory.mjs","./odb/sqlite":"./dist/odb/sqlite.mjs","./refs/names":"./dist/refs/names.mjs","./refs/memory":"./dist/refs/memory.mjs","./refs/sqlite":"./dist/refs/sqlite.mjs","./remote/http":"./dist/remote/http.mjs","./backend/file":"./dist/backend/file.mjs","./refs/resolve":"./dist/refs/resolve.mjs","./workdir/core":"./dist/workdir/core.mjs","./workdir/file":"./dist/workdir/file.mjs","./backend/memory":"./dist/backend/memory.mjs","./backend/sqlite":"./dist/backend/sqlite.mjs","./transport/http":"./dist/transport/http/index.mjs","./workdir/memory":"./dist/workdir/memory.mjs","./workdir/sqlite":"./dist/workdir/sqlite.mjs","./repository/core":"./dist/repository/core.mjs","./repository/file":"./dist/repository/file.mjs","./refs/shallow/file":"./dist/refs/shallow/file.mjs","./repository/memory":"./dist/repository/memory.mjs","./repository/sqlite":"./dist/repository/sqlite.mjs","./refs/shallow/memory":"./dist/refs/shallow/memory.mjs","./refs/shallow/sqlite":"./dist/refs/shallow/sqlite.mjs","./transport/upload-pack":"./dist/transport/upload-pack.mjs","./transport/receive-pack":"./dist/transport/receive-pack.mjs","./repository/tree/tree-walk":"./dist/repository/tree/tree-walk.mjs","./repository/tree/tree-patch":"./dist/repository/tree/tree-patch.mjs","./transport/server/upload-pack":"./dist/transport/server/upload-pack/index.mjs","./transport/server/receive-pack":"./dist/transport/server/receive-pack/index.mjs"}},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.2.2_1782305744030_0.8484584429652289","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"nano-git","version":"0.2.3","_id":"nano-git@0.2.3","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"059267bccb3c52fb4be6889179abbf02831bf518","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.2.3.tgz","fileCount":275,"integrity":"sha512-yr+uI/gBdB9OEV1FPoDNRSYYyguk0auRBGwrOxtyLakoa9Patp5t4aKDMibbJ0z5ifzEQeNPZjf2OeG0mkM3bg==","signatures":[{"sig":"MEQCIFq9q0qkwO0Zke3ifNDi/ExdowgwLAjc/2xui3c1fdc2AiAOGmENl1cKCrXqw6w1YhMW8zGr7Heb67fIq5ME/Dj1sQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591793},"type":"module","exports":{".":"./src/index.ts","./log":"./src/log/index.ts","./pack":"./src/pack/index.ts","./sha1":"./src/sha1.ts","./errors":"./src/errors.ts","./backend":"./src/backend/index.ts","./objects":"./src/objects/index.ts","./odb/file":"./src/odb/file.ts","./hash-file":"./src/hash-file.ts","./refs/file":"./src/refs/file.ts","./transport":"./src/transport/index.ts","./odb/memory":"./src/odb/memory.ts","./odb/sqlite":"./src/odb/sqlite.ts","./refs/names":"./src/refs/names.ts","./refs/memory":"./src/refs/memory.ts","./refs/sqlite":"./src/refs/sqlite.ts","./remote/http":"./src/remote/http.ts","./backend/file":"./src/backend/file.ts","./refs/resolve":"./src/refs/resolve.ts","./workdir/core":"./src/workdir/core.ts","./workdir/file":"./src/workdir/file.ts","./backend/memory":"./src/backend/memory.ts","./backend/sqlite":"./src/backend/sqlite.ts","./transport/http":"./src/transport/http/index.ts","./workdir/memory":"./src/workdir/memory.ts","./workdir/sqlite":"./src/workdir/sqlite.ts","./repository/core":"./src/repository/core.ts","./repository/file":"./src/repository/file.ts","./refs/shallow/file":"./src/refs/shallow/file.ts","./repository/memory":"./src/repository/memory.ts","./repository/sqlite":"./src/repository/sqlite.ts","./refs/shallow/memory":"./src/refs/shallow/memory.ts","./refs/shallow/sqlite":"./src/refs/shallow/sqlite.ts","./transport/upload-pack":"./src/transport/upload-pack.ts","./transport/receive-pack":"./src/transport/receive-pack.ts","./repository/tree/tree-walk":"./src/repository/tree/tree-walk.ts","./repository/tree/tree-patch":"./src/repository/tree/tree-patch.ts","./transport/server/upload-pack":"./src/transport/server/upload-pack/index.ts","./transport/server/receive-pack":"./src/transport/server/receive-pack/index.ts"},"gitHead":"2c4e955743dace3d5a3c2387970d5b53059dd14b","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","publishConfig":{"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}}},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.2.3_1782306514613_0.042581891276076256","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"nano-git","version":"0.3.0","_id":"nano-git@0.3.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"15d14e354d115cefad0e716c1554d848d7041c37","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.0.tgz","fileCount":275,"integrity":"sha512-fRtFQGFe2VtUN8asc9woYg0IMxXkNc5VTWBVslYalJnLXWAvGo28eaFwSNv6gdivJqWzu/Fkco0qW6M5jTRn4w==","signatures":[{"sig":"MEUCIEkWzwkAB0YElb/OcOTuho02FYOaqJcb5RLMxjBfI1MsAiEAkU8loqBYf6qh7CsJRsVdc5ttkF9reiH+CpvE8pgScmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589545},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"8d580fd1262958d91b74f8958e9784337869d68f","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.0_1782306660434_0.3016195253376255","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"nano-git","version":"0.3.1","_id":"nano-git@0.3.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"bb9c3226c68c7f64dc2c6c39203a75160e65417e","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.1.tgz","fileCount":281,"integrity":"sha512-XiVQuMx+GvYjKynIRD/RcB+rxOcNRFJFH8/NpC6X1e1O+/AlBFQH0qsxFSTdxD+Snf/IZkwa1RnWtIWmADKbAg==","signatures":[{"sig":"MEQCIBpZRkpiEk9HAJLMIm9CnLzOnEJ/z3dqmvTwG570KY+mAiBzOkyogNMADLE8L3D/jxVWj3SBHk50Vkpg1uwL+0HIsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":636077},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"2b5746f4e46d7c59877c2cf0ac9b9cab8d28f414","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.1_1782325148480_0.45731606011325354","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"nano-git","version":"0.3.2","_id":"nano-git@0.3.2","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"32ce7cebb3dce2024f9c2194780284ff8876f1aa","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.2.tgz","fileCount":279,"integrity":"sha512-Fgpilyr2ZyMCAlD9a21vwSEYVOmbA2eZQ31KM1SY+lP3mta1g0UjYHga6ZM13PB/MSujEti2Hj/Ro3rix38Qbw==","signatures":[{"sig":"MEQCIGg3XGGxoPNDzeWrJXpIIQLlvR2k+gkBUeibnIdl8CRTAiBgIjXWrlCbGOLVDqx43MqRO5PIZN+OkYLTgpgMjz8QUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631792},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"f87630b3c3ac5be0b1714d59bf228f48f4e05b56","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.2_1782352008340_0.6814360110533906","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"nano-git","version":"0.3.3","_id":"nano-git@0.3.3","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"28a06311aa36485b078cac1fdafb0c57bd0e9bec","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.3.tgz","fileCount":279,"integrity":"sha512-Ycg79y+4l4nJDc9nBUrk7fCQ4ka7fXNx6VkymgLniAGMfeYXDzrx05CuFcRykFr/c3G8MOZQz6nDrQ12Y/fZYw==","signatures":[{"sig":"MEYCIQDJQ2kjOfSyYH7mdNiE+WSxYTU9R8+h/3Px2UFf4mNzAwIhAJFid8E9XFZ7pomEgnKlLxiY6DhVj/k+2SE7ssnKgMHV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633654},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"6f823eded29414ea17add3feede7802c50c16cdc","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.3_1782362921150_0.4283983681977377","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"nano-git","version":"0.3.4","_id":"nano-git@0.3.4","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"fdd2d5dca7fc8ce0d1d86dae37ebab0051fb2f30","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.4.tgz","fileCount":279,"integrity":"sha512-nZnMb4o34UDwT4qBZ8WacqXLhgDVtqLlibaKY4pSGRMgejIl9KsOLIC7advVdIRIBeCiboSaX24PKtVUznNAkA==","signatures":[{"sig":"MEUCIBE+rkksHKvd3DSqtyrQO31Gbi2SOq5xJUTH1khYYxo9AiEAhLRvLZO0pRt/hM8NnP1yEoR49ZarLIEb6ZLJqRgS8ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":635113},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"46c43d780c690342c26e2c2a4acadab55ac5d0b9","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.4_1782367898766_0.13708480317503602","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"nano-git","version":"0.3.5","_id":"nano-git@0.3.5","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"530a8fb2adb6ace0e1cf028834f53a6d9bdacac3","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.5.tgz","fileCount":279,"integrity":"sha512-YlDDw664nz4ALa3SX1ATDGt4OaCRHzXxJ1klFPVHqWet7hrybzLWixSWYjC2Qj37d0MUnvu2U3+D0XG+EniW8w==","signatures":[{"sig":"MEQCIA+Or/YGazsFFgKQjDBz5aAvp9SKHP2U3nOCGAkg56wRAiBaeMOiZucQrPRuxv2xHFNq5Zej62ACqb5SuU5P1M2/XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":635983},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"2d9a1d3097e04f5a4eee3d34ec84503d140e209f","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.5_1782368879010_0.7622767343888228","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"nano-git","version":"0.3.6","_id":"nano-git@0.3.6","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"574f2d7561eaf80b51046bb2d6945fd97e57857f","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.6.tgz","fileCount":279,"integrity":"sha512-+rPjpWU2ezdClwnyFDVTSdUAQiz1zhGoSLD8z/GEqots0NCRXpaKTnm6U6oHVaGl2qtLgm4/rufcpbb9k6Kq0Q==","signatures":[{"sig":"MEQCIBM2ZL1kHoA3qkgIGpXGVobf2aniRtpsV6v0845FzNtDAiAHH9XSfoOehsOmowLI0VP6NZ1Hv+cOEdbC0F8WO2KUzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633984},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"f0f818fb38884baadb21b0c312c502a46ddfa81c","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.6_1782387463001_0.6026783855073121","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"nano-git","version":"0.3.7","_id":"nano-git@0.3.7","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"dd18d5459298403fe5a417fc957ffc7406f311af","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.3.7.tgz","fileCount":279,"integrity":"sha512-IaQllz9UWRcchz260YE8nc7ilHW7UMzAZj02VUGBCp3K8C3YXoDZqcDj32j+Bafu6KDNvT73VHGCoJwxm0/tow==","signatures":[{"sig":"MEUCICRuuuNKS7otxwMb3xe7gkpgNIO9DVTdQ9QMYy1EZhT/AiEA7P9vg1bn7VIJtwRpuyeCN4rHC+7MdTUe94jftOilLQY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":635569},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"936e1e6c83613611857f78012052091afc89ee35","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.3.7_1782442064466_0.8265651062403243","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"nano-git","version":"0.4.0","_id":"nano-git@0.4.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"5a0b974822fb6bd76cb1774d1802df69b9ab8927","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.4.0.tgz","fileCount":279,"integrity":"sha512-ajq4J1QQMtp/oWxtdZp+OxBXbGWoBHpBBNbV8sFrMJ+jyw3d8gBnAuHrjVUrMlTHoTZ8UeiRMjOq6+yak71/bw==","signatures":[{"sig":"MEYCIQDDczRnJKI6lvTn9bDlL/bDvmP6A03U7finUy8U61nFrwIhAMSVUsjujTUWqNqYNIwifG/Hueg+EHIIDAkPttLk3ds9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":629845},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"a2c9c666c6be181967b449cc5e6ad3082f19c626","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.4.0_1782450624553_0.23677777801056732","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"nano-git","version":"0.4.1","_id":"nano-git@0.4.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"994b8083205b9e3811aeea30a840a43bd3b9f0ea","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.4.1.tgz","fileCount":279,"integrity":"sha512-4EzSCMOL/G++hGp66dei/Cu4mJWN3c2YO9J/5zFGTjfd/CUqA9I8svPaBVZoM+AX1ZNcy0qS4edDiFhAeR4+pw==","signatures":[{"sig":"MEUCIQCf/jxl52ZWKL3//nyokXcT78ukKEtgWQ107BAtruDgKAIgBnFSS5KHVvaqocbl/op2vp5AXtdqc3ohLlDOi92tilE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":629773},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-walk":{"types":"./dist/repository/tree/tree-walk.d.mts","default":"./dist/repository/tree/tree-walk.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"0a5fbc1d110d5d2984c7084b18609342003952ef","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.4.1_1782450805114_0.9607050993536237","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"nano-git","version":"0.5.0","_id":"nano-git@0.5.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"9af598c67877b553c9602e0bdb929f4b2013a8b4","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.5.0.tgz","fileCount":280,"integrity":"sha512-zZ60B1tVrgzlEU7TBRJPaJR0p9k8LduhGpGnb0lfEQLXPA93rslR6xHfDwIST6wTi83t+pqXXkI+iQX2rwI1nA==","signatures":[{"sig":"MEYCIQD7EmWz5+7mzyQ/SnkQqoCVPfTU/uyuGNTLxQObyDFYEAIhAKbLnAPjeakr+OExWwdehhbpvYETJ/YysL4iFDK13wL7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":635298},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"f0a5565aa14e72e525a9f0b0e82f2b899fa6ab82","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.5.0_1782452164390_0.5795903423885334","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"nano-git","version":"0.6.0","_id":"nano-git@0.6.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"5d4253cb0b914a884b5169b747a702d785118ef9","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.6.0.tgz","fileCount":280,"integrity":"sha512-Bo3Oo93HIeMLIsA1r/gTLWVV/t0IuLsEfNf2YuiAQmgf14Ixnv/yfXYfARsFpdYPBCdDiS3mmhdbMENcFJ1+9Q==","signatures":[{"sig":"MEQCIEK1UmZ0RSP/rPipyQXICccGofPRR+OPk4IyjiekId4fAiAJL9cy2R7Wx8quYOEhH8qK6AiW2i9zaYeuE0ZvaRkk5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630530},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"410323c6cd3b035c8380f9d089c5a6df536eac71","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.6.0_1782458337995_0.38805777691206456","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"nano-git","version":"0.6.1","_id":"nano-git@0.6.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"c160f307cb39c894300cf5b993a5a05c15477a2f","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.6.1.tgz","fileCount":280,"integrity":"sha512-6Hdq50sInHAq5g15AaSG/Of9s98HD/zf30UK8qhRtQkjiicqtca3D7VLKb2TYyj8RblBIU+LoJEeL8PehRHmVw==","signatures":[{"sig":"MEUCIQCXCROA66XyuWd5PskARZUWlHAPHRB5Om0+Pk1HNcAyDwIgQpdklTQmQ0juqn2FYEsD0Iou850Vq4LnC9P3AsyfB1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633587},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"8b0ce0926fa48d085d4d6238a8a6560b2ccaceb3","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.6.1_1782462331604_0.13647764384079508","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"nano-git","version":"0.7.0","_id":"nano-git@0.7.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"d9cbfe53ff8fd60ec0c473cae3ac446d5cc1565d","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.7.0.tgz","fileCount":280,"integrity":"sha512-352xPEmbIxzJdv1w22LBXcPKn6+CfwvZkpvE8Y0lXWpVt0NXDGivP/hElZAhFicarYeas8CpbCW06AZcTSt+Cg==","signatures":[{"sig":"MEUCIQC4d45ShhQVIEqimEihnFJjGSydp4hwp2SznsNIvfxACQIgZV0ox/vw3oBf2j/7qE3WQ3bx2f1l7gSOlJ5fBx1/aHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633648},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"1e479b3bc50a1c325bbf75da7d3b5d0b097a80da","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.7.0_1782574113747_0.31097450155293793","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"nano-git","version":"0.7.1","_id":"nano-git@0.7.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"1052281546e7b45fc56cb979b87d8ba613804279","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.7.1.tgz","fileCount":458,"integrity":"sha512-BSjyHBoQzWXxV/dRPrNezxLKGWF0nztj6vBgpC6fwwc7ETXdlk6btnscK8CnjFRmspcoa8xRm03dNuWG8xuEPA==","signatures":[{"sig":"MEQCIEzYYHJC8ekfTHoAFlQ0NBF2Yp8BlcqH5CgEikpP0y/9AiA8BGx+wXGwBWV9xJAgloMdLw7tdxx8TNxnbDj3Pizd6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1323982},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./workdir/core":{"perry":"./src/workdir/core.ts","types":"./dist/workdir/core.d.mts","default":"./dist/workdir/core.mjs"},"./workdir/file":{"perry":"./src/workdir/file.ts","types":"./dist/workdir/file.d.mts","default":"./dist/workdir/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./workdir/memory":{"perry":"./src/workdir/memory.ts","types":"./dist/workdir/memory.d.mts","default":"./dist/workdir/memory.mjs"},"./workdir/sqlite":{"perry":"./src/workdir/sqlite.ts","types":"./dist/workdir/sqlite.d.mts","default":"./dist/workdir/sqlite.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"2db8ded88b8b0f977b984e30cadbb4b054b621c0","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:workdir-diff":"bun run examples/workdir-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.7.1_1782646351319_0.6707325058108062","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"nano-git","version":"0.8.0","_id":"nano-git@0.8.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"e87e3214825d6973d4669b8972959950b0f4df1f","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.8.0.tgz","fileCount":458,"integrity":"sha512-M2GhKF2LADkjVlZVlnd3bxicT+BtSXqWauf/K03u4FxDIciGv/lt9ELlg5bFGzij3ltVwfBxGtEEbzo2egzSFQ==","signatures":[{"sig":"MEYCIQD+gDRVAyMklo/ER5oK6Q/KWxG6NbTMXOJEVlO8o0ko4gIhAPlmQtb58lmH/YBY/BKisDEcUHHLYXmOQ0AElU4d5OLO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1327135},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"4942fa6ddd4ee36cc95988e1fe7703afc462c521","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.8.0_1782816710038_0.4142128574091395","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"nano-git","version":"0.8.1","_id":"nano-git@0.8.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"cb9eb7be931a9245f472cbcb658a05482dde0a07","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.8.1.tgz","fileCount":466,"integrity":"sha512-H0KU/0AFtI3DyqfhECzjkd8nUD8sW4vhOEN3stOPThe3gA7IHFjDhS5HaTAFeKqUcJaeZrPH70dCTWSwGRTUzA==","signatures":[{"sig":"MEYCIQDoQZ/6RWCkx+hPHJVxoCWDGBx7bJznYLRhk8keO9eAkwIhANMv/Lqg2N+G2oQMeY2fNYDnJ+fw7Smg4k8Dc62oqw+f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1308431},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"77ee37af8e9d723ad21c9146f35013deb2251fdb","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.8.1_1782824656865_0.2106434332162903","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"nano-git","version":"0.9.0","_id":"nano-git@0.9.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"7796d0c5fe07949073a5d1b44f42c721fa906016","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.0.tgz","fileCount":462,"integrity":"sha512-X1Anz7Y0vDs1SVezPzcLXD5CLTQ6edAfcT/nQDXQmt/DDqxVlAvBnpThNUHy7PVeCzAy+YtGNMcHYbbqQfVOhA==","signatures":[{"sig":"MEQCIEkTcQXeiu53AahSPY8ZgCZJefcLjASU/+gcNYYV6W3XAiBKG1Aeq/+5JBr6ClMNfYJ7Ifnc9zr3PCwRaPZ88XUezQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1323211},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"fcf02a4586f7360acd26b221691072f5ad945b99","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.0_1782830118048_0.07761216839515783","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"nano-git","version":"0.9.1","_id":"nano-git@0.9.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"612e5a19713dbc2ab9bf1e5ec224898872124525","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.1.tgz","fileCount":474,"integrity":"sha512-256gyRAe0i+wxThYRV09VIq5ZF7zaxDWIzjwEtUmuk6GmESYUdY6tcvpwejt6fOto01Gf19R9WhabdEWwx5JYQ==","signatures":[{"sig":"MEUCIQCTpcoSE3yauMoilKEpxzuVlL7hNVojMnMW6FiSRFnhxgIgPvtdCfPIHNwSO+WkLVDQTYK7b2SXoj2JgAsU5QXJ9eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428512},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"36dd059ced9be7a4bccd2150b65bd010d2bd9c8d","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.1_1782890520713_0.8597475840167688","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"nano-git","version":"0.9.2","_id":"nano-git@0.9.2","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"c497505dd33cdc4dc485b9046688582fbf5d1506","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.2.tgz","fileCount":474,"integrity":"sha512-WMXCqf/HQbu2b/BCHGS0ayKpZLovG67Y3tm0O5SvYc+PQkEc2NsCvcqPWs/sJYN13Q/o3aTfFelbVSe/MP464A==","signatures":[{"sig":"MEUCIF2SkYW/t/qKzV7lHQ3XaN3kcI1P9XAyvrvzZdo5aCAcAiEA1l7Hn/LTkirHNc80BfdBzFZt5Gw15vNLoiyjNX3W7Ok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428795},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"0a5f01a37e6f899ff9f538ba3037fb94533d068a","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.2_1782892494111_0.22277417952464496","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"nano-git","version":"0.9.3","_id":"nano-git@0.9.3","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"080101a62ab38d4a71c637389afe5f0090bbda14","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.3.tgz","fileCount":474,"integrity":"sha512-xnI8BdRtzUj16asxQOd30IFw4CRgH8DKt6ZthlmQkfUAjPu8GOwHrLIyPLXJSQpthtsODzNsDHqFoM4q/TxcdA==","signatures":[{"sig":"MEYCIQCE/s/lPWkaHEU3j047hgKygwor3WhKLw25obJO8hQUIAIhALrxMq1u/UvBstHXQ6aahZ0V7BnF+Q6WwlA4qEGvnSEE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428639},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"22e97a5e6d5c990b10a04ad53ff1f35098be1b5a","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.3_1782894637614_0.4977169226980078","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"nano-git","version":"0.9.4","_id":"nano-git@0.9.4","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"3be2ba85adb32cd65a087c82b417bbf4d9d48363","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.4.tgz","fileCount":488,"integrity":"sha512-+5CuWCXl0GrOrJ+6N3CaREkr7u1zBpOCt+XTE8Mjtq4O2AifyD0MQkqBJC79IdMXyGLU9Yf7A8YNhR77qp5AXQ==","signatures":[{"sig":"MEQCIDuIaceqzZPoijz01QrBDZPzM0q5d8PrM3g0pglVy8AFAiALd93W61TMNdZ4qnS45CkLmv7A5tE/VD6sVdq2U2rxmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1588070},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"f1f45d6f565cb576af12b07dce4fc525cd1139e1","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"11.16.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.4_1783315575329_0.9011124379265756","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"nano-git","version":"0.9.5","_id":"nano-git@0.9.5","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"ffb41775ca718f5158e73f6173e2bd7c96dff9f5","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.5.tgz","fileCount":488,"integrity":"sha512-viRl2PogRl8+5wJp1c1c+UY9X8i7Z9/kmdqH/S/VOhvfc5nuvyzIVkU7YqcrFMveY+UjeIxFPG69zxzfB9jRKA==","signatures":[{"sig":"MEUCICJxphaV7Sy41VMOEnBLe7uVSxy+eDBbU6SYchTWMVOrAiEA1DgJXC3lSgOS/AuvN3HPdq1m/EQ7fXgnuXm+XJTtGgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1637506},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"429c7a738e693246fc1e5f4435f54fad4e109bd6","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.1","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.5_1784522222925_0.4952921064379088","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"nano-git","version":"0.9.6","_id":"nano-git@0.9.6","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"b811d23e82301dc61e0083f98781f57c1210ad14","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.6.tgz","fileCount":490,"integrity":"sha512-NoGwDlmb0+Jr51jqgB3k7ZIVbQT/GaVSOzwPmZ099egP4Q8XOohyYT0RJsnMNigRP2UitNUp8vAbfvQjDsb9dg==","signatures":[{"sig":"MEUCIQCQPwu3YEw+PNZcIKtYC43hOdR6Ud4R+B5Qk9r/N4yWOwIgMPJodl51m1i3ZcepRrDFnCct3WtX235kTtX3eL3onVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1640199},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"3540c2abdfefac1f136d45b00bba48fe2756a6f4","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.1","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.6_1784523359984_0.11783714179417082","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"nano-git","version":"0.9.7","_id":"nano-git@0.9.7","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"841f0e6d2c0fcf9ce6c9e38162ad98222d88491e","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.9.7.tgz","fileCount":494,"integrity":"sha512-q9v5f0060AFbnR7r8T08MuEMikJ8UYJ7kVtag8D1y0fflXmxqwn3vvdF4wzbQTRvsD45LyvO0o6pju2y7+odzQ==","signatures":[{"sig":"MEUCIDCoa9L5k0Dx4JNCh8uRd9bq8+hJ7rnkN1EovRdYZ7NHAiEA4fY2MdPdhS6uVtI1uhy4hSTCjMnWNIGSvv+LB4THCwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1669108},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"0d467598804f47dd9dd2757435e9783e32966ded","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.1","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.9.7_1784524581926_0.24022950517845","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"nano-git","version":"0.10.0","_id":"nano-git@0.10.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"adbf3ee7b8609a89111ae44df90b33c4873e9439","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.10.0.tgz","fileCount":494,"integrity":"sha512-A5CY0PuEHebvdji3E3OXjPCuR8V1/ioAprh6aBJ8bv9tHEAZjBVcE1pfdZsZ3QfBVhLUk/w5xT7muC98ZEbivg==","signatures":[{"sig":"MEUCIQCWKXo1P3kdAKQWIbLjnMew9/iC9//GhoHsBZzE2DfJTQIgMp4dFJZ+hrSiY/3qegQNH/DWNpunvtJ+OCTE24d/AWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1670800},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"6e40f5a733fa9a7eeab35051281354b1c0ed111f","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.1","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.10.0_1784525542865_0.3620828767316071","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"nano-git","version":"0.10.1","_id":"nano-git@0.10.1","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"41e03443c211e3c1465ae9baa02b48836889d7a1","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.10.1.tgz","fileCount":514,"integrity":"sha512-lcNeECkhQBbyQ5a73LK45gWIbSQSdmIGwRX4dqmYrhjBjIinod9OtvkBHafZlz9i1ZZdiu8MzWP9zRnQhbbvpg==","signatures":[{"sig":"MEYCIQD3BFXff4PIiUqXRfWEdZEQAJDKuDcKf8TQUoFErTyxJwIhAJVF27CXOW/aMpPuFt1W52lSrYe+4LjYVp3YURCZTxbB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1753541},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./merge":{"perry":"./src/merge/index.ts","types":"./dist/merge/index.d.mts","default":"./dist/merge/index.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"2a1d90ffbb5a1103bd1a3cd96d6ae9dda1157b5e","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.1","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.10.1_1784527558153_0.9094792510517646","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"nano-git","version":"0.10.2","_id":"nano-git@0.10.2","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"4aee6e573d5aec190c42e6e8727c9cac27903381","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.10.2.tgz","fileCount":514,"integrity":"sha512-9mT96/nSr+4F6hZx6CLM1IBp+tFDfUK11V5xKM06fiaVxAN1TqN5hXAmn2+CzCywJEUaz9N8EWLkdt8KcTCBwA==","signatures":[{"sig":"MEUCIQDCJEu502dQsb05JnkayZPY5i+6M+TS+EFngzwB0EkmhAIgAruqVbAnkwlwzEy5wZfFDRG/I0iJWvAjxP7Aaajig4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1762170},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./merge":{"perry":"./src/merge/index.ts","types":"./dist/merge/index.d.mts","default":"./dist/merge/index.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"29005fc090ea212fd0da92375cfa47abfe9a1835","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.1","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.4.0","dependencies":{"native-sqlite":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","@types/bun":"latest","lint-staged":"^17.0.7","oxlint-tsgolint":"^0.23.0"},"peerDependencies":{"typescript":"^6"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.10.2_1784530300376_0.4354578641985991","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"nano-git","version":"0.11.0","_id":"nano-git@0.11.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"433fba70e646e30fff7b53d08c1fc5c5b2aff059","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.11.0.tgz","fileCount":514,"integrity":"sha512-m5ijvdNpi1zF7HqCJbyyjlqcX5dFZNeZmOTszmavbFjUR4RNlvfjEsewrhYpZATLXV3oVI8/YV9qpSPLF7WKbg==","signatures":[{"sig":"MEUCIQCXwLIPUlJGrmn+dsvBgNH7P0tzLs2OKafFaW0+v+qifQIgAntVj9vqzJ2AusCv91pW5tJADq2iE8gbp7rMUw8pcrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1764236},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./merge":{"perry":"./src/merge/index.ts","types":"./dist/merge/index.d.mts","default":"./dist/merge/index.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"53b63680e9ef9985873c8e965e38865c9c9a7e57","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.2","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.7.0","dependencies":{"native-sqlite":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.65.0","oxlint":"^1.80.0","tsdown":"^0.22.14","@types/bun":"^1.4.0","lint-staged":"^17.4.1","oxlint-tsgolint":"^7.0.2001"},"peerDependencies":{"typescript":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.11.0_1788101070287_0.5862676473093618","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"nano-git","version":"0.12.0","_id":"nano-git@0.12.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"6d0cbfb1df6e09524305775dc30bd4168a78cf42","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.12.0.tgz","fileCount":514,"integrity":"sha512-TBh3A6C/q/2ghViiXcg12iccbQfG4ww8darEaXcXPDU9/QiFvezZEGBmNEGcLLY6PstxDvM02DSznW74qX1Kkw==","signatures":[{"sig":"MEQCIEtLGIgx3BTWi2753WTMzhaY9aa4gK8NQjTo7wgKieS/AiARb+z9r2A5CzdBxjRwREdZGjTT7ycX9ix2SqLAcmrBxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1758724},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./pack":{"perry":"./src/pack/index.ts","types":"./dist/pack/index.d.mts","default":"./dist/pack/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./merge":{"perry":"./src/merge/index.ts","types":"./dist/merge/index.d.mts","default":"./dist/merge/index.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./types/sqlite":{"perry":"./src/types/sqlite.ts","types":"./dist/types/sqlite.d.mts","default":"./dist/types/sqlite.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./backend/sqlite":{"perry":"./src/backend/sqlite.ts","types":"./dist/backend/sqlite.d.mts","default":"./dist/backend/sqlite.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"fd0165abc1b51c6c565982cd233a7504062891e9","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.2","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.7.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.65.0","oxlint":"^1.80.0","tsdown":"^0.22.14","@types/bun":"^1.4.0","lint-staged":"^17.4.1","oxlint-tsgolint":"^7.0.2001"},"peerDependencies":{"typescript":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.12.0_1788163290412_0.033746807297160064","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"nano-git","version":"0.13.0","_id":"nano-git@0.13.0","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"dist":{"shasum":"25c9b991891b40f0224aa25f0e3b7a922af74b05","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.13.0.tgz","fileCount":539,"integrity":"sha512-LZR25c0OwupaTI1HuccP8M+TGJDfctOx9PhPyBGYfIbcMg/0xV/7hdOKC2sS885q+1inHK4A0Ql2NANsNeBhVQ==","signatures":[{"sig":"MEUCIHF8bAjGPwHKdtTfRcaa/yTUpcwElYpPQpE2dGnLnd3oAiEAhVEa6gsva463IBUTprBRgh456mgnScSC/KoTvoE+ReQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1765592},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"perry":"./src/index.ts","types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./log":{"perry":"./src/log/index.ts","types":"./dist/log/index.d.mts","default":"./dist/log/index.mjs"},"./sha1":{"perry":"./src/sha1.ts","types":"./dist/sha1.d.mts","default":"./dist/sha1.mjs"},"./merge":{"perry":"./src/merge/index.ts","types":"./dist/merge/index.d.mts","default":"./dist/merge/index.mjs"},"./errors":{"perry":"./src/errors.ts","types":"./dist/errors.d.mts","default":"./dist/errors.mjs"},"./backend":{"perry":"./src/backend/index.ts","types":"./dist/backend/index.d.mts","default":"./dist/backend/index.mjs"},"./objects":{"perry":"./src/objects/index.ts","types":"./dist/objects/index.d.mts","default":"./dist/objects/index.mjs"},"./odb/file":{"perry":"./src/odb/file.ts","types":"./dist/odb/file.d.mts","default":"./dist/odb/file.mjs"},"./hash-file":{"perry":"./src/hash-file.ts","types":"./dist/hash-file.d.mts","default":"./dist/hash-file.mjs"},"./pack/core":{"perry":"./src/pack/core.ts","types":"./dist/pack/core.d.mts","default":"./dist/pack/core.mjs"},"./pack/file":{"perry":"./src/pack/file.ts","types":"./dist/pack/file.d.mts","default":"./dist/pack/file.mjs"},"./refs/file":{"perry":"./src/refs/file.ts","types":"./dist/refs/file.d.mts","default":"./dist/refs/file.mjs"},"./transport":{"perry":"./src/transport/index.ts","types":"./dist/transport/index.d.mts","default":"./dist/transport/index.mjs"},"./odb/memory":{"perry":"./src/odb/memory.ts","types":"./dist/odb/memory.d.mts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"perry":"./src/odb/sqlite.ts","types":"./dist/odb/sqlite.d.mts","default":"./dist/odb/sqlite.mjs"},"./pack/types":{"perry":"./src/pack/types.ts","types":"./dist/pack/types.d.mts","default":"./dist/pack/types.mjs"},"./refs/names":{"perry":"./src/refs/names.ts","types":"./dist/refs/names.d.mts","default":"./dist/refs/names.mjs"},"./refs/memory":{"perry":"./src/refs/memory.ts","types":"./dist/refs/memory.d.mts","default":"./dist/refs/memory.mjs"},"./refs/sqlite":{"perry":"./src/refs/sqlite.ts","types":"./dist/refs/sqlite.d.mts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"perry":"./src/remote/http.ts","types":"./dist/remote/http.d.mts","default":"./dist/remote/http.mjs"},"./backend/file":{"perry":"./src/backend/file.ts","types":"./dist/backend/file.d.mts","default":"./dist/backend/file.mjs"},"./backend/pack":{"perry":"./src/backend/pack.ts","types":"./dist/backend/pack.d.mts","default":"./dist/backend/pack.mjs"},"./refs/resolve":{"perry":"./src/refs/resolve.ts","types":"./dist/refs/resolve.d.mts","default":"./dist/refs/resolve.mjs"},"./types/sqlite":{"perry":"./src/types/sqlite.ts","types":"./dist/types/sqlite.d.mts","default":"./dist/types/sqlite.mjs"},"./worktree/core":{"perry":"./src/worktree/core.ts","types":"./dist/worktree/core.d.mts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"perry":"./src/worktree/file.ts","types":"./dist/worktree/file.d.mts","default":"./dist/worktree/file.mjs"},"./backend/memory":{"perry":"./src/backend/memory.ts","types":"./dist/backend/memory.d.mts","default":"./dist/backend/memory.mjs"},"./transport/http":{"perry":"./src/transport/http/index.ts","types":"./dist/transport/http/index.d.mts","default":"./dist/transport/http/index.mjs"},"./repository/core":{"perry":"./src/repository/core.ts","types":"./dist/repository/core.d.mts","default":"./dist/repository/core.mjs"},"./repository/file":{"perry":"./src/repository/file.ts","types":"./dist/repository/file.d.mts","default":"./dist/repository/file.mjs"},"./repository/pack":{"perry":"./src/repository/pack.ts","types":"./dist/repository/pack.d.mts","default":"./dist/repository/pack.mjs"},"./worktree/memory":{"perry":"./src/worktree/memory.ts","types":"./dist/worktree/memory.d.mts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"perry":"./src/worktree/sqlite.ts","types":"./dist/worktree/sqlite.d.mts","default":"./dist/worktree/sqlite.mjs"},"./refs/shallow/file":{"perry":"./src/refs/shallow/file.ts","types":"./dist/refs/shallow/file.d.mts","default":"./dist/refs/shallow/file.mjs"},"./repository/memory":{"perry":"./src/repository/memory.ts","types":"./dist/repository/memory.d.mts","default":"./dist/repository/memory.mjs"},"./repository/sqlite":{"perry":"./src/repository/sqlite.ts","types":"./dist/repository/sqlite.d.mts","default":"./dist/repository/sqlite.mjs"},"./refs/shallow/memory":{"perry":"./src/refs/shallow/memory.ts","types":"./dist/refs/shallow/memory.d.mts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"perry":"./src/refs/shallow/sqlite.ts","types":"./dist/refs/shallow/sqlite.d.mts","default":"./dist/refs/shallow/sqlite.mjs"},"./transport/upload-pack":{"perry":"./src/transport/upload-pack.ts","types":"./dist/transport/upload-pack.d.mts","default":"./dist/transport/upload-pack.mjs"},"./transport/receive-pack":{"perry":"./src/transport/receive-pack.ts","types":"./dist/transport/receive-pack.d.mts","default":"./dist/transport/receive-pack.mjs"},"./repository/tree/tree-diff":{"perry":"./src/repository/tree/tree-diff.ts","types":"./dist/repository/tree/tree-diff.d.mts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"perry":"./src/repository/tree/tree-patch.ts","types":"./dist/repository/tree/tree-patch.d.mts","default":"./dist/repository/tree/tree-patch.mjs"},"./transport/server/upload-pack":{"perry":"./src/transport/server/upload-pack/index.ts","types":"./dist/transport/server/upload-pack/index.d.mts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/server/receive-pack":{"perry":"./src/transport/server/receive-pack/index.ts","types":"./dist/transport/server/receive-pack/index.d.mts","default":"./dist/transport/server/receive-pack/index.mjs"}},"gitHead":"5b9404300782b176872e4d311276cd2beb919ea2","scripts":{"lint":"oxlint .","test":"bun test","build":"tsdown","format":"oxfmt .","prepare":"husky","format:check":"oxfmt --check .","prepublishOnly":"bun run build","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts"},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"_npmVersion":"12.0.2","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","directories":{},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"sideEffects":false,"_nodeVersion":"26.7.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","oxfmt":"^0.65.0","oxlint":"^1.80.0","tsdown":"^0.22.14","@types/bun":"^1.4.0","lint-staged":"^17.4.1","oxlint-tsgolint":"^7.0.2001"},"peerDependencies":{"typescript":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/nano-git_0.13.0_1788183116176_0.12188416067273167","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"nano-git","version":"0.14.0","type":"module","sideEffects":false,"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","perry":"./src/index.ts","default":"./dist/index.mjs"},"./backend":{"types":"./dist/backend/index.d.mts","perry":"./src/backend/index.ts","default":"./dist/backend/index.mjs"},"./backend/file":{"types":"./dist/backend/file.d.mts","perry":"./src/backend/file.ts","default":"./dist/backend/file.mjs"},"./backend/memory":{"types":"./dist/backend/memory.d.mts","perry":"./src/backend/memory.ts","default":"./dist/backend/memory.mjs"},"./backend/pack":{"types":"./dist/backend/pack.d.mts","perry":"./src/backend/pack.ts","default":"./dist/backend/pack.mjs"},"./errors":{"types":"./dist/errors.d.mts","perry":"./src/errors.ts","default":"./dist/errors.mjs"},"./hash-file":{"types":"./dist/hash-file.d.mts","perry":"./src/hash-file.ts","default":"./dist/hash-file.mjs"},"./log":{"types":"./dist/log/index.d.mts","perry":"./src/log/index.ts","default":"./dist/log/index.mjs"},"./merge":{"types":"./dist/merge/index.d.mts","perry":"./src/merge/index.ts","default":"./dist/merge/index.mjs"},"./objects":{"types":"./dist/objects/index.d.mts","perry":"./src/objects/index.ts","default":"./dist/objects/index.mjs"},"./odb/file":{"types":"./dist/odb/file.d.mts","perry":"./src/odb/file.ts","default":"./dist/odb/file.mjs"},"./odb/memory":{"types":"./dist/odb/memory.d.mts","perry":"./src/odb/memory.ts","default":"./dist/odb/memory.mjs"},"./odb/sqlite":{"types":"./dist/odb/sqlite.d.mts","perry":"./src/odb/sqlite.ts","default":"./dist/odb/sqlite.mjs"},"./pack/core":{"types":"./dist/pack/core.d.mts","perry":"./src/pack/core.ts","default":"./dist/pack/core.mjs"},"./pack/file":{"types":"./dist/pack/file.d.mts","perry":"./src/pack/file.ts","default":"./dist/pack/file.mjs"},"./pack/types":{"types":"./dist/pack/types.d.mts","perry":"./src/pack/types.ts","default":"./dist/pack/types.mjs"},"./refs/file":{"types":"./dist/refs/file.d.mts","perry":"./src/refs/file.ts","default":"./dist/refs/file.mjs"},"./refs/memory":{"types":"./dist/refs/memory.d.mts","perry":"./src/refs/memory.ts","default":"./dist/refs/memory.mjs"},"./refs/names":{"types":"./dist/refs/names.d.mts","perry":"./src/refs/names.ts","default":"./dist/refs/names.mjs"},"./refs/resolve":{"types":"./dist/refs/resolve.d.mts","perry":"./src/refs/resolve.ts","default":"./dist/refs/resolve.mjs"},"./refs/shallow/file":{"types":"./dist/refs/shallow/file.d.mts","perry":"./src/refs/shallow/file.ts","default":"./dist/refs/shallow/file.mjs"},"./refs/shallow/memory":{"types":"./dist/refs/shallow/memory.d.mts","perry":"./src/refs/shallow/memory.ts","default":"./dist/refs/shallow/memory.mjs"},"./refs/shallow/sqlite":{"types":"./dist/refs/shallow/sqlite.d.mts","perry":"./src/refs/shallow/sqlite.ts","default":"./dist/refs/shallow/sqlite.mjs"},"./refs/sqlite":{"types":"./dist/refs/sqlite.d.mts","perry":"./src/refs/sqlite.ts","default":"./dist/refs/sqlite.mjs"},"./remote/http":{"types":"./dist/remote/http.d.mts","perry":"./src/remote/http.ts","default":"./dist/remote/http.mjs"},"./repository/core":{"types":"./dist/repository/core.d.mts","perry":"./src/repository/core.ts","default":"./dist/repository/core.mjs"},"./repository/file":{"types":"./dist/repository/file.d.mts","perry":"./src/repository/file.ts","default":"./dist/repository/file.mjs"},"./repository/memory":{"types":"./dist/repository/memory.d.mts","perry":"./src/repository/memory.ts","default":"./dist/repository/memory.mjs"},"./repository/pack":{"types":"./dist/repository/pack.d.mts","perry":"./src/repository/pack.ts","default":"./dist/repository/pack.mjs"},"./repository/sqlite":{"types":"./dist/repository/sqlite.d.mts","perry":"./src/repository/sqlite.ts","default":"./dist/repository/sqlite.mjs"},"./repository/tree/tree-diff":{"types":"./dist/repository/tree/tree-diff.d.mts","perry":"./src/repository/tree/tree-diff.ts","default":"./dist/repository/tree/tree-diff.mjs"},"./repository/tree/tree-patch":{"types":"./dist/repository/tree/tree-patch.d.mts","perry":"./src/repository/tree/tree-patch.ts","default":"./dist/repository/tree/tree-patch.mjs"},"./sha1":{"types":"./dist/sha1.d.mts","perry":"./src/sha1.ts","default":"./dist/sha1.mjs"},"./transport":{"types":"./dist/transport/index.d.mts","perry":"./src/transport/index.ts","default":"./dist/transport/index.mjs"},"./transport/http":{"types":"./dist/transport/http/index.d.mts","perry":"./src/transport/http/index.ts","default":"./dist/transport/http/index.mjs"},"./transport/receive-pack":{"types":"./dist/transport/receive-pack.d.mts","perry":"./src/transport/receive-pack.ts","default":"./dist/transport/receive-pack.mjs"},"./transport/server/receive-pack":{"types":"./dist/transport/server/receive-pack/index.d.mts","perry":"./src/transport/server/receive-pack/index.ts","default":"./dist/transport/server/receive-pack/index.mjs"},"./transport/server/upload-pack":{"types":"./dist/transport/server/upload-pack/index.d.mts","perry":"./src/transport/server/upload-pack/index.ts","default":"./dist/transport/server/upload-pack/index.mjs"},"./transport/upload-pack":{"types":"./dist/transport/upload-pack.d.mts","perry":"./src/transport/upload-pack.ts","default":"./dist/transport/upload-pack.mjs"},"./types/sqlite":{"types":"./dist/types/sqlite.d.mts","perry":"./src/types/sqlite.ts","default":"./dist/types/sqlite.mjs"},"./worktree/core":{"types":"./dist/worktree/core.d.mts","perry":"./src/worktree/core.ts","default":"./dist/worktree/core.mjs"},"./worktree/file":{"types":"./dist/worktree/file.d.mts","perry":"./src/worktree/file.ts","default":"./dist/worktree/file.mjs"},"./worktree/memory":{"types":"./dist/worktree/memory.d.mts","perry":"./src/worktree/memory.ts","default":"./dist/worktree/memory.mjs"},"./worktree/sqlite":{"types":"./dist/worktree/sqlite.d.mts","perry":"./src/worktree/sqlite.ts","default":"./dist/worktree/sqlite.mjs"}},"scripts":{"build":"tsdown","bench:worktree-diff":"bun run examples/worktree-diff-benchmark.ts","lint":"oxlint .","format":"oxfmt .","format:check":"oxfmt --check .","test":"bun test","prepublishOnly":"bun run build","prepare":"husky"},"devDependencies":{"@types/bun":"^1.4.0","husky":"^9.1.7","lint-staged":"^17.4.1","oxfmt":"^0.65.0","oxlint":"^1.80.0","oxlint-tsgolint":"^7.0.2001","tsdown":"^0.22.14"},"peerDependencies":{"typescript":"^7.0.2"},"lint-staged":{"*":["oxlint --fix --no-error-on-unmatched-pattern","oxfmt --no-error-on-unmatched-pattern"]},"gitHead":"3a3cc571deb9ff94b44f495c7fbc44d0f8d801ae","_id":"nano-git@0.14.0","description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","_nodeVersion":"26.8.1","_npmVersion":"12.0.2","dist":{"integrity":"sha512-cvWZgfOR8asg4egJP+6h+aJdxUcMZyz5PAYy65bAoIaKHx6yAff3cc9nmjAgDaXbOoIzgQ8TzuJobT1U2lFPhQ==","shasum":"d21be5268c726463be1c363491ea5b16bf43a667","tarball":"https://registry.npmjs.org/nano-git/-/nano-git-0.14.0.tgz","fileCount":541,"unpackedSize":1782002,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGR5vHnPUWYqEijA6YAyIVIx22GIwhUiiK15wOX3SFrXAiEAqxXhoemXHsxzvX6bXGRHICRKTqEyfVFUB+fsSV4VqmU="}]},"_npmUser":{"name":"codehz","email":"CodeHz@Outlook.com"},"directories":{},"maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nano-git_0.14.0_1788372208924_0.2627319133400874"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-24T05:22:54.114Z","modified":"2026-09-02T18:03:29.376Z","0.1.0":"2026-06-24T05:22:54.345Z","0.2.0":"2026-06-24T06:46:42.509Z","0.2.1":"2026-06-24T10:50:52.739Z","0.2.2":"2026-06-24T12:55:44.199Z","0.2.3":"2026-06-24T13:08:34.805Z","0.3.0":"2026-06-24T13:11:00.616Z","0.3.1":"2026-06-24T18:19:08.773Z","0.3.2":"2026-06-25T01:46:48.492Z","0.3.3":"2026-06-25T04:48:41.297Z","0.3.4":"2026-06-25T06:11:38.910Z","0.3.5":"2026-06-25T06:27:59.187Z","0.3.6":"2026-06-25T11:37:43.163Z","0.3.7":"2026-06-26T02:47:44.634Z","0.4.0":"2026-06-26T05:10:24.702Z","0.4.1":"2026-06-26T05:13:25.273Z","0.5.0":"2026-06-26T05:36:04.563Z","0.6.0":"2026-06-26T07:18:58.127Z","0.6.1":"2026-06-26T08:25:31.903Z","0.7.0":"2026-06-27T15:28:33.985Z","0.7.1":"2026-06-28T11:32:31.521Z","0.8.0":"2026-06-30T10:51:50.189Z","0.8.1":"2026-06-30T13:04:17.062Z","0.9.0":"2026-06-30T14:35:18.224Z","0.9.1":"2026-07-01T07:22:00.922Z","0.9.2":"2026-07-01T07:54:54.324Z","0.9.3":"2026-07-01T08:30:37.802Z","0.9.4":"2026-07-06T05:26:15.461Z","0.9.5":"2026-07-20T04:37:03.137Z","0.9.6":"2026-07-20T04:56:00.161Z","0.9.7":"2026-07-20T05:16:22.195Z","0.10.0":"2026-07-20T05:32:23.032Z","0.10.1":"2026-07-20T06:05:58.364Z","0.10.2":"2026-07-20T06:51:40.556Z","0.11.0":"2026-08-30T14:44:30.447Z","0.12.0":"2026-08-31T08:01:30.624Z","0.13.0":"2026-08-31T13:31:56.329Z","0.14.0":"2026-09-02T18:03:29.078Z"},"description":"使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景， 不涉及暂存区（index）和工作目录管理。","maintainers":[{"name":"codehz","email":"CodeHz@Outlook.com"}],"readme":"# nano-git\n\n使用 TypeScript 实现的 Git 核心功能，专注于**裸仓库（bare repository）** 操作与服务端场景，\n不涉及暂存区（index）和工作目录管理。\n\n## 特性\n\n- ✅ **SHA-1 哈希计算** — 与 Git 完全兼容的对象哈希\n- ✅ **Git 对象模型** — 支持 blob、tree、commit、tag 四种对象类型\n- ✅ **对象序列化/反序列化** — 完整的二进制格式支持\n- ✅ **对象存储** — 文件系统存储、内存存储和 SQLite 存储三种模式\n- ✅ **Packfile 支持** — 读取、写入、索引生成、delta 编解码\n- ✅ **引用管理** — refs 验证、解析、存储（文件系统 + 内存）\n- ✅ **仓库 API** — 类似 Git plumbing 命令的高层接口（init、hash-object、cat-file、commit-tree、update-ref 等）\n- ✅ **增量 Tree Patch** — 不经暂存区直接修改目录结构（`patchTree`、`readTree`、`walkTree`）\n- ✅ **可达性遍历与 GC** — 基于 refs 的可达对象收集、repack、gc\n- ✅ **Smart HTTP 传输** — 基于 Bun fetch 的 Git 协议客户端，支持 `fetch()`/`push()` 与完整的 Import Session 物化流程\n- ✅ **远端查询 API** — 将 refs 快照、`object-info` 等纯远端能力独立出 `Repository`\n- ✅ **类型安全** — 完整的 TypeScript 类型定义\n- ✅ **Reference Transaction** — 批量 ref 更新的原子性保障，支持 Hooks 回调与自动回滚\n- ✅ **Virtual Worktree** — 基于 `baseTree` 的虚拟工作树（读写、diff、`writeTree`），支持内存 / 目录 / SQLite 持久化（`nano-git/worktree/*`）\n- ✅ **基础 Merge** — merge-base 查找、路径级三方 tree 合并、交互式 plan → resolve → finalize（`nano-git/merge`）\n\n## 安装\n\n```bash\nbun install\n```\n\n## 快速开始\n\n### 5 行完成\"创建 → 写入 → 提交\"\n\n```typescript\nimport { createMemoryRepository } from \"nano-git/repository/memory\";\n\nconst repo = createMemoryRepository();\nconst treeHash = repo.createTree([\n  { mode: \"100644\", name: \"hello.txt\", hash: repo.writeBlob(Buffer.from(\"Hello!\")) },\n]);\nconst commitHash = repo.createCommit(treeHash, [], \"Initial commit\", {\n  name: \"You\",\n  email: \"you@example.com\",\n  timestamp: Math.floor(Date.now() / 1000),\n  timezone: \"+0800\",\n});\nconsole.log(`Created commit: ${commitHash}`);\n```\n\n### 从远端仓库拉取\n\n```typescript\nimport { initRepository } from \"nano-git/repository/file\";\n\nconst repo = initRepository(\"/tmp/project\");\nawait repo.fetch(\"https://github.com/user/repo.git\");\n// 所有分支和标签已就绪\nconsole.log(repo.listBranches());\n```\n\n### 查询远端 refs / object-info\n\n```typescript\nimport { createHttpRemote } from \"nano-git/remote/http\";\n\nconst remote = createHttpRemote({\n  url: \"https://github.com/user/repo.git\",\n});\n\nconst snapshot = await remote.readRefAdvertisement();\nconsole.log(snapshot.defaultBranch);\n\nconst info = await remote.fetchObjectInfo([\"95d09f2b10159347eece71399a7e2e907ea3df4f\"]);\nconsole.log(info.objects[0]?.size);\n```\n\n### 内存仓库完整工作流\n\n```typescript\nimport { createMemoryRepository } from \"nano-git/repository/memory\";\nimport type { GitAuthor } from \"nano-git\";\n\nconst repo = createMemoryRepository();\n\n// 写入文件内容\nconst fileHash = repo.writeBlob(Buffer.from(\"Hello, nano-git!\"));\n\n// 创建目录结构\nconst treeHash = repo.createTree([{ mode: \"100644\", name: \"README.md\", hash: fileHash }]);\n\n// 创建提交\nconst author: GitAuthor = {\n  name: \"Your Name\",\n  email: \"you@example.com\",\n  timestamp: Math.floor(Date.now() / 1000),\n  timezone: \"+0800\",\n};\n\nconst commitHash = repo.createCommit(\n  treeHash,\n  [], // 初始提交\n  \"Initial commit\",\n  author,\n);\n\nconsole.log(`Created commit: ${commitHash}`);\n```\n\n### 启动 Smart HTTP 服务器\n\n```typescript\nimport { openRepository } from \"nano-git/repository/file\";\nimport { createSmartHttpHandler } from \"nano-git/transport/http\";\n\n// 创建 Git HTTP 后端处理函数（框架无关，标准 Request/Response）\nconst handler = createSmartHttpHandler(openRepository(\"/path/to/repo\"));\n\n// 接入 Bun.serve — 直接作为 fetch 处理器\nBun.serve({ port: 8080, fetch: handler });\n\nconsole.log(\"Git server running on http://localhost:8080\");\n// 客户端可用 `git clone http://localhost:8080/` 拉取\n```\n\n### 使用显式仓库后端\n\n```typescript\nimport { createMemoryRepositoryBackend } from \"nano-git/backend/memory\";\nimport { createRepository } from \"nano-git/repository/core\";\n\nconst backend = createMemoryRepositoryBackend();\nconst repo = createRepository(backend);\n\nrepo.createBranch(\"main\", repo.createTree([]));\n```\n\n### 使用文件系统仓库\n\n```typescript\nimport { initRepository, openRepository } from \"nano-git/repository/file\";\n\n// 初始化新仓库\nconst repo = initRepository(\"/path/to/project\");\n\n// 或打开已有仓库\nconst existingRepo = openRepository(\"/path/to/existing/project\");\n\n// 写入文件\nconst hash = repo.writeBlobFile(\"/path/to/file.txt\");\n\n// 将整个目录写入 tree\nconst treeHash = repo.writeTree(\"/path/to/directory\");\n\n// 更新引用\nrepo.updateRef(\"refs/heads/main\", commitHash);\n```\n\n`openRepository()` 默认会同时读取 `.git/objects/` 下的 loose objects 和 `.git/objects/pack/` 下的 packed objects，因此可以直接打开经过 `git gc` 或 `git repack` 的真实仓库（包括裸仓库）。搭配 `initRepository()` 的第二个参数可初始化为裸仓库布局。\n\n### 使用 SQLite 仓库（注入驱动）\n\n适用于需要持久化但又不想管理松散文件的场景——\n所有对象和引用存在一个 SQLite 数据库中。\n本库不捆绑具体 SQLite 驱动：打开连接后注入符合 `SqliteDatabase` 的实例即可\n（例如 `bun:sqlite`）。\n\n```typescript\nimport { Database } from \"bun:sqlite\";\nimport { createSqliteRepository } from \"nano-git/repository/sqlite\";\nimport type { SqliteDatabase } from \"nano-git/types/sqlite\";\n\nconst db = new Database(\"/tmp/cache.sqlite\") as unknown as SqliteDatabase;\nconst repo = createSqliteRepository(db);\n\n// 与普通 repo 使用方式完全一致\nconst hash = repo.writeBlob(Buffer.from(\"persistent data\"));\nconst treeHash = repo.createTree([{ mode: \"100644\", name: \"data.txt\", hash }]);\nconst commitHash = repo.createCommit(treeHash, [], \"SQLite commit\", {\n  name: \"You\",\n  email: \"you@example.com\",\n  timestamp: Math.floor(Date.now() / 1000),\n  timezone: \"+0800\",\n});\nconsole.log(`Committed: ${commitHash}`);\n\ndb.close(); // 连接生命周期由调用方管理\n```\n\n也可拆分使用底层后端：\n\n```typescript\nimport { Database } from \"bun:sqlite\";\nimport { createSqliteRepositoryBackend } from \"nano-git/backend/sqlite\";\nimport { createRepository } from \"nano-git/repository/core\";\nimport type { SqliteDatabase } from \"nano-git/types/sqlite\";\n\nconst db = new Database(\"/tmp/repo.sqlite\") as unknown as SqliteDatabase;\nconst backend = createSqliteRepositoryBackend(db);\nconst repo = createRepository(backend);\n```\n\n### 生成 Packfile\n\n```typescript\nimport { openRepository } from \"nano-git/repository/file\";\n\nconst repo = openRepository(\"/path/to/repo\");\n\n// 打包当前仓库中所有可见对象\nconst result = repo.writePack();\nconsole.log(result.packPath);\n```\n\n### Repack 仓库\n\n```typescript\nimport { openRepository } from \"nano-git/repository/file\";\n\nconst repo = openRepository(\"/path/to/repo\");\n\n// 重新生成 pack，并删除旧 pack 文件\nrepo.repack();\n\n// 如需同时移除已打包的 loose objects：\nrepo.repack({ pruneLoose: true });\n```\n\n### 基于可达对象执行 GC\n\n```typescript\nimport { openRepository } from \"nano-git/repository/file\";\n\nconst repo = openRepository(\"/path/to/repo\");\n\n// 仅保留从 HEAD、分支、标签可达的对象\nconst result = repo.gc();\nconsole.log(result.objectCount);\n```\n\n### 从远程仓库导入（Import Session）\n\n```typescript\nimport { initRepository } from \"nano-git/repository/file\";\n\nconst repo = initRepository(\"/tmp/my-clone\");\n\nconst session = await repo.openImportSession({\n  url: \"https://github.com/user/repo\",\n});\n\nconst branches = session.select(\"refs/heads/*\");\nconst defaultBranch = session.defaultBranch();\n\nconst plan = session\n  .plan()\n  .materialize(branches)\n  .toNamespace(\"refs/mirrors/upstream/*\", {\n    policy: { mode: \"mirror\" },\n    prune: true,\n  })\n  .materialize(defaultBranch)\n  .toBranch(\"main\")\n  .materialize(defaultBranch)\n  .setHead();\n\nconst prepared = await plan.build().prepare();\nconst preview = prepared.preview;\nconsole.log(preview.refOperations.map((op) => op.localRef));\nconsole.log(preview.prefetchedObjects);\n\nconst result = await prepared.apply();\nconsole.log(`Imported ${result.importedObjects} objects`);\nconsole.log(`Updated ${result.updatedRefs.size} refs`);\n```\n\n`build()` 只做静态计划编译；`prepare()` 可能会为严格校验预取缺失对象，但不会写入 refs 或 `HEAD`；`apply()` 只消费同一份 prepared plan。\n\n带认证的导入（私有仓库）：\n\n```typescript\nconst session = await repo.openImportSession({\n  url: \"https://github.com/org/private-repo\",\n  auth: { username: \"x-access-token\", password: \"ghp_xxxxxxxxxxxx\" },\n});\n\nconst session2 = await repo.openImportSession({\n  url: \"https://gitlab.com/org/private-repo\",\n  headers: { \"Job-Token\": \"xxxxxxxx\" },\n});\n\nawait (\n  await session.plan().materialize(session.defaultBranch()).toBranch(\"main\").build().prepare()\n).apply();\nawait (\n  await session2\n    .plan()\n    .materialize(session2.allRefs())\n    .toNamespace(\"refs/mirrors/upstream/*\", {\n      policy: { mode: \"mirror\" },\n      prune: true,\n    })\n    .build()\n    .prepare()\n).apply();\n```\n\n如果你需要更底层的控制，也可以直接使用 transport 层的独立函数：\n\n```typescript\nimport {\n  buildUploadPackRequest,\n  createUploadPackHttpClient,\n  decodeUploadPackResponse,\n} from \"nano-git/transport\";\nimport { sha1 } from \"nano-git\";\n\n// 仅获取引用广告\nconst client = createUploadPackHttpClient(\"https://github.com/user/repo\");\nconst adv = await client.advertise();\nconsole.log(adv.refs);\n\n// 带认证的底层传输控制\nconst authedClient = createUploadPackHttpClient(\"https://github.com/user/repo\", {\n  auth: { username: \"x-access-token\", password: \"ghp_xxxxxxxx\" },\n});\n\nconst body = buildUploadPackRequest(\n  [sha1(\"95d09f2b10159347eece71399a7e2e907ea3df4f\")],\n  [],\n  [\"multi_ack\", \"side-band-64k\", \"ofs-delta\"],\n);\n\nconst raw = await authedClient.request(body);\nconst { packfile } = decodeUploadPackResponse(raw);\n```\n\n### 对象序列化\n\n```typescript\nimport { serialize, deserialize } from \"nano-git/objects\";\nimport type { GitBlob } from \"nano-git\";\n\nconst blob: GitBlob = {\n  type: \"blob\",\n  content: Buffer.from(\"file content\"),\n};\n\n// 序列化为 Git 存储格式\nconst data = serialize(blob);\n// => Buffer(\"blob 12\\0file content\")\n\n// 反序列化\nconst obj = deserialize(data);\nconsole.log(obj.type); // => \"blob\"\n```\n\n### Virtual Worktree（虚拟工作树）\n\n在不操作真实工作目录的前提下，在某一 `baseTree` 之上叠加可写视图：修改可 `writeTree()` 导出为新 tree，并与仓库 `diff` 语义对齐。\n\n| 子路径                     | 用途                                                                  |\n| -------------------------- | --------------------------------------------------------------------- |\n| `nano-git/worktree/core`   | `VirtualWorktree` 类型与公开错误                                      |\n| `nano-git/worktree/memory` | 内存实例（`createVirtualWorktree`）                                   |\n| `nano-git/worktree/file`   | 目录持久化（`createFileVirtualWorktree` + `openFileVirtualWorktree`） |\n| `nano-git/worktree/sqlite` | SQLite 持久化（`openSqliteVirtualWorktreeDatabase`）                  |\n\n```typescript\nimport { createMemoryRepository } from \"nano-git/repository/memory\";\nimport { createVirtualWorktree } from \"nano-git/worktree/memory\";\n\nconst repo = createMemoryRepository();\nconst baseTree = repo.createTree([]);\n\nconst worktree = createVirtualWorktree(repo.objects, { baseTree });\nworktree.writeFile(\"hello.txt\", Buffer.from(\"world\"));\nconst newTree = worktree.writeTree();\n\nconsole.log(worktree.diff().length); // 相对 baseTree 的净变更\n```\n\n持久化后端统一为 **注册（需 `baseTree`）→ 打开（`baseTree` 以存储为准）**：\n\n```typescript\nimport { Database } from \"bun:sqlite\";\nimport { createFileVirtualWorktree, openFileVirtualWorktree } from \"nano-git/worktree/file\";\nimport { openSqliteVirtualWorktreeDatabase } from \"nano-git/worktree/sqlite\";\nimport type { SqliteDatabase } from \"nano-git/types/sqlite\";\n\ncreateFileVirtualWorktree(\"/tmp/wt\", { baseTree });\nconst fileWt = openFileVirtualWorktree(repo.objects, \"/tmp/wt\");\n\nconst sqlite = new Database(\"/tmp/wt.sqlite\") as unknown as SqliteDatabase;\nconst db = openSqliteVirtualWorktreeDatabase(sqlite);\ndb.createWorktree(\"main\", { baseTree });\nconst sqliteWt = db.openWorktree(repo.objects, \"main\");\n```\n\n完整示例见 `examples/worktree-persistence.ts`；diff 基准见 `bun run bench:worktree-diff`。\n\n### 三方合并（merge-base + plan/resolve/finalize）\n\n```typescript\nimport { createMemoryRepository } from \"nano-git/repository/memory\";\nimport { planCommitMerge, createMergeSession } from \"nano-git/merge\";\n\nconst repo = createMemoryRepository();\nconst author = {\n  name: \"You\",\n  email: \"you@example.com\",\n  timestamp: Math.floor(Date.now() / 1000),\n  timezone: \"+0800\",\n};\n\n// base → ours / theirs 分叉\nconst baseTree = repo.createTree([\n  { mode: \"100644\", name: \"a.txt\", hash: repo.writeBlob(Buffer.from(\"a0\")) },\n  { mode: \"100644\", name: \"b.txt\", hash: repo.writeBlob(Buffer.from(\"b0\")) },\n]);\nconst base = repo.createCommit(baseTree, [], \"base\", author);\nconst ours = repo.createCommit(\n  repo.createTree([\n    { mode: \"100644\", name: \"a.txt\", hash: repo.writeBlob(Buffer.from(\"a1\")) },\n    { mode: \"100644\", name: \"b.txt\", hash: repo.writeBlob(Buffer.from(\"b0\")) },\n  ]),\n  [base],\n  \"ours\",\n  author,\n);\nconst theirs = repo.createCommit(\n  repo.createTree([\n    { mode: \"100644\", name: \"a.txt\", hash: repo.writeBlob(Buffer.from(\"a0\")) },\n    { mode: \"100644\", name: \"b.txt\", hash: repo.writeBlob(Buffer.from(\"b1\")) },\n  ]),\n  [base],\n  \"theirs\",\n  author,\n);\n\nconst plan = planCommitMerge(repo.objects, { ours, theirs });\nconst session = createMergeSession(repo.objects, plan);\nfor (const conflict of session.listConflicts()) {\n  session.resolve(conflict.path, { take: \"ours\" }); // 或 theirs / base / custom\n}\nconst { tree } = session.finalize();\n\n// merge 模块不写 commit；由调用方创建双 parent merge commit\nconst mergeCommit = repo.createCommit(tree, [ours, theirs], \"Merge branch\", author);\nconsole.log(mergeCommit);\n```\n\n## 运行演示\n\n```bash\nbun run examples/demo.ts\n```\n\n运行 Virtual Worktree diff 基准：\n\n```bash\nbun run bench:worktree-diff\n```\n\n演示脚本展示了：\n\n- SHA-1 哈希计算\n- 对象序列化/反序列化\n- 内存仓库操作\n- 创建 blob、tree、commit 对象\n- 对象存储和读取\n\n## 导出结构\n\n本库默认入口 `\"nano-git\"` 直接提供高频的纯计算能力：类型、错误、对象编解码、refs 工具和 SHA-1 工具。\n带 `node:fs` 的运行时能力通过明确的文件子路径导入，例如 `nano-git/repository/file`、`nano-git/pack/file`、`nano-git/transport/http`。\n纯 Pack 解析与编码通过 `nano-git/pack/core`，Pack 类型通过 `nano-git/pack/types`，Pack backend 类型通过 `nano-git/backend/pack`。\n`nano-git/repository/sqlite`、`nano-git/repository/memory` 与 `nano-git/repository/core` 不依赖文件系统或 MIDX；网络 fetch/push 使用的 pack 编解码属于核心传输能力。\n纯远端查询能力通过 `nano-git/remote/http` 导入。\n基于注入式 SQLite 接口的存储后端通过 `nano-git/odb/sqlite`、`nano-git/refs/sqlite`、`nano-git/backend/sqlite`、`nano-git/repository/sqlite`、`nano-git/types/sqlite` 等子路径导入；调用方自行打开并注入符合 `SqliteDatabase` 的连接。\nVirtual Worktree 通过 `nano-git/worktree/core`、`nano-git/worktree/memory`、`nano-git/worktree/file`、`nano-git/worktree/sqlite` 导入（后两者为持久化后端）。\n基础 merge（merge-base / 三方 tree 合并 / 交互会话）通过 `nano-git/merge` 导入。\n完整入口表见 `package.json` 的 `exports` 与 `src/index.ts` 的 JSDoc。\n\n## Git 对象模型\n\nGit 使用内容寻址文件系统，所有对象通过 SHA-1 哈希寻址：\n\n### Blob（文件内容）\n\n存储文件的原始内容，不包含文件名或权限信息。\n\n### Tree（目录结构）\n\n存储目录内容，每个条目包含：\n\n- 文件模式（如 `100644` 普通文件，`100755` 可执行文件，`040000` 目录，API 中均使用规范 6 位形式）\n- 文件名\n- 指向 blob 或子 tree 的哈希\n\n### Commit（快照）\n\n存储一次提交的完整信息：\n\n- 指向 tree 的哈希（项目快照）\n- 父 commit 哈希列表（merge commit 有多个父节点）\n- 作者和提交者信息\n- 提交信息\n\n### Tag（标签）\n\n带注释的标签，指向特定对象（通常是 commit）。\n\n## 对象存储格式\n\n所有 Git 对象以以下格式存储：\n\n```\n<type> <size>\\0<content>\n```\n\n例如，一个包含 \"hello world\" 的 blob：\n\n```\nblob 11\\0hello world\n```\n\n对象在 `.git/objects/` 目录下以 zlib 压缩格式存储，路径为：\n\n```\n.git/objects/<前2字符>/<剩余38字符>\n```\n\n例如：`.git/objects/95/d09f2b10159347eece71399a7e2e907ea3df4f`\n\n## 开发\n\n```bash\n# 类型检查\nbun tsc --noEmit\n\n# 运行测试\nbun test\n```\n\n## 路线图\n\n### 已实现\n\n- [x] 基础数据结构和哈希算法\n- [x] 对象序列化/反序列化\n- [x] 对象存储（文件系统和内存）\n- [x] Packfile 支持（读取、写入、索引、delta 编解码、打包构建器）\n- [x] 引用管理（refs、HEAD、符号引用解析）\n- [x] 仓库 API（init、open、hash-object、cat-file、write-tree、commit-tree、update-ref、branch、tag）\n- [x] 可达性遍历与 GC（repack、gc）\n- [x] **Smart HTTP 传输** — pkt-line 编解码、ref 广告解析、side-band 解复用、Fetch / Push 协议、Import Session 集成\n- [x] **Reference Transaction** — 批量 ref 更新原子性、lock-then-rename 文件事务、生命周期 Hooks\n- [x] **SQLite 存储后端** — 注入式 `SqliteDatabase` 接口，支持对象/refs/shallow 存储与 ACID 事务（驱动由调用方提供）\n\n- [x] **Smart HTTP 服务端（upload-pack）** — 类 git-http-backend、框架无关的 HTTP handler，支持 ls-refs 和 fetch 命令，协议实现与编排器解耦\n- [x] **Smart HTTP 服务端（v1 receive-pack）** — 服务端 push 支持，基于 v1 协议，含 ref 广告、packfile 解包、ref 校验与 report-status\n- [x] **基础 Merge** — merge-base、路径级三方 tree 合并、plan → resolve → finalize 交互会话（无 rename / 无行级合并）\n\n### 规划中（聚焦裸仓库/服务端场景）\n\n- [ ] **Partial Clone / Filter 支持** — 按需对象过滤传输\n\n### 非目标（明确不实现）\n\n- ~~暂存区（index）操作~~ — 如 `git add`、`git status`\n- ~~工作目录管理~~ — 如 `git checkout`、`git restore`\n- ~~文件级别的差异计算（diff）~~ — 如 `git diff`（内容行级）；tree 级 diff / merge 已支持\n- ~~多格式哈希支持~~ — SHA-256 兼容准备（当前仅 SHA-1）\n\n## 参考资料\n\n- [Git Internals - Git Objects](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects)\n- [Git Internals - Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)\n- [Git Repository Layout](https://git-scm.com/docs/gitrepository-layout)\n\n## 许可证\n\nMIT\n","readmeFilename":"README.md"}