@scolladon/tsgit 1.3.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +3 -2
  2. package/dist/cjs/adapters/browser/index.cjs +1 -1
  3. package/dist/cjs/adapters/memory/index.cjs +1 -1
  4. package/dist/cjs/adapters/memory/index.cjs.map +1 -1
  5. package/dist/cjs/adapters/node/index.cjs +1 -1
  6. package/dist/cjs/chunks/adapter-detect-CD_LcgaH.cjs +2 -0
  7. package/dist/cjs/chunks/adapter-detect-CD_LcgaH.cjs.map +1 -0
  8. package/dist/cjs/chunks/{browser-http-transport-D4NH-8oJ.cjs → browser-http-transport-CiMRqtDS.cjs} +2 -2
  9. package/dist/cjs/chunks/browser-http-transport-CiMRqtDS.cjs.map +1 -0
  10. package/dist/cjs/chunks/error-CfjFO3x_.cjs +2 -0
  11. package/dist/cjs/chunks/error-CfjFO3x_.cjs.map +1 -0
  12. package/dist/cjs/chunks/index-BWCq_5BJ.cjs +2 -0
  13. package/dist/cjs/chunks/index-BWCq_5BJ.cjs.map +1 -0
  14. package/dist/cjs/chunks/memory-http-transport-BVL6VgB-.cjs +2 -0
  15. package/dist/cjs/chunks/memory-http-transport-BVL6VgB-.cjs.map +1 -0
  16. package/dist/cjs/chunks/node-http-transport-BvfVcf02.cjs +2 -0
  17. package/dist/cjs/chunks/node-http-transport-BvfVcf02.cjs.map +1 -0
  18. package/dist/cjs/chunks/{progress-Bj2w-90A.cjs → progress-CxU62NC1.cjs} +2 -2
  19. package/dist/cjs/chunks/{progress-Bj2w-90A.cjs.map → progress-CxU62NC1.cjs.map} +1 -1
  20. package/dist/cjs/chunks/repository-BEg2zNtx.cjs +2 -0
  21. package/dist/cjs/chunks/repository-BEg2zNtx.cjs.map +1 -0
  22. package/dist/cjs/chunks/walk-submodules-D2Sp7JEB.cjs +2 -0
  23. package/dist/cjs/chunks/walk-submodules-D2Sp7JEB.cjs.map +1 -0
  24. package/dist/cjs/commands/index.cjs +1 -1
  25. package/dist/cjs/index.browser.cjs +1 -1
  26. package/dist/cjs/index.browser.cjs.map +1 -1
  27. package/dist/cjs/index.cjs +1 -1
  28. package/dist/cjs/index.cjs.map +1 -1
  29. package/dist/cjs/index.default.cjs +1 -1
  30. package/dist/cjs/index.default.cjs.map +1 -1
  31. package/dist/cjs/index.node.cjs +1 -1
  32. package/dist/cjs/index.node.cjs.map +1 -1
  33. package/dist/cjs/primitives/index.cjs +1 -1
  34. package/dist/cjs/primitives/index.cjs.map +1 -1
  35. package/dist/esm/adapters/browser/index.js +1 -1
  36. package/dist/esm/adapters/memory/index.js +1 -1
  37. package/dist/esm/adapters/memory/index.js.map +1 -1
  38. package/dist/esm/adapters/node/index.js +1 -1
  39. package/dist/esm/adapters/node/index.js.map +1 -1
  40. package/dist/esm/chunks/adapter-detect-DkZhhUhd.js +2 -0
  41. package/dist/esm/chunks/adapter-detect-DkZhhUhd.js.map +1 -0
  42. package/dist/esm/chunks/{browser-http-transport-DL8bkNdg.js → browser-http-transport-4rJkHcQu.js} +2 -2
  43. package/dist/esm/chunks/browser-http-transport-4rJkHcQu.js.map +1 -0
  44. package/dist/esm/chunks/error-Dc-SRSJK.js +2 -0
  45. package/dist/esm/chunks/error-Dc-SRSJK.js.map +1 -0
  46. package/dist/esm/chunks/index-jH0UMhh-.js +2 -0
  47. package/dist/esm/chunks/index-jH0UMhh-.js.map +1 -0
  48. package/dist/esm/chunks/memory-http-transport-CA1WxWBp.js +2 -0
  49. package/dist/esm/chunks/memory-http-transport-CA1WxWBp.js.map +1 -0
  50. package/dist/esm/chunks/node-http-transport-DPa2lK3T.js +2 -0
  51. package/dist/esm/chunks/node-http-transport-DPa2lK3T.js.map +1 -0
  52. package/dist/esm/chunks/progress-BZobfl7p.js +2 -0
  53. package/dist/esm/chunks/{progress-NePjO3Kd.js.map → progress-BZobfl7p.js.map} +1 -1
  54. package/dist/esm/chunks/repository-DF6ePd1x.js +2 -0
  55. package/dist/esm/chunks/repository-DF6ePd1x.js.map +1 -0
  56. package/dist/esm/chunks/walk-submodules-Dq9oGwP8.js +2 -0
  57. package/dist/esm/chunks/walk-submodules-Dq9oGwP8.js.map +1 -0
  58. package/dist/esm/commands/index.js +1 -1
  59. package/dist/esm/index.browser.js +1 -1
  60. package/dist/esm/index.browser.js.map +1 -1
  61. package/dist/esm/index.default.js +1 -1
  62. package/dist/esm/index.default.js.map +1 -1
  63. package/dist/esm/index.js +1 -1
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/index.node.js +1 -1
  66. package/dist/esm/index.node.js.map +1 -1
  67. package/dist/esm/primitives/index.js +1 -1
  68. package/dist/esm/primitives/index.js.map +1 -1
  69. package/dist/types/adapters/browser/index.d.cts +5 -2
  70. package/dist/types/adapters/browser/index.d.ts +5 -2
  71. package/dist/types/adapters/memory/index.d.cts +17 -2
  72. package/dist/types/adapters/memory/index.d.ts +17 -2
  73. package/dist/types/adapters/node/index.d.cts +5 -2
  74. package/dist/types/adapters/node/index.d.ts +5 -2
  75. package/dist/types/chunks/{context-BORy7yXb.d.ts → context-CCL0_F8R.d.ts} +65 -39
  76. package/dist/types/chunks/{context-CMrHCVwK.d.cts → context-YDw6qicq.d.cts} +65 -39
  77. package/dist/types/chunks/{http-transport-DirKfK2S.d.cts → http-transport--_NdQOiw.d.cts} +1 -1
  78. package/dist/types/chunks/{http-transport-DirKfK2S.d.ts → http-transport--_NdQOiw.d.ts} +1 -1
  79. package/dist/types/chunks/index-entry-DtEbVpOG.d.cts +47 -0
  80. package/dist/types/chunks/index-entry-UD4dvtKh.d.ts +47 -0
  81. package/dist/types/chunks/progress-7KKiXXfX.d.ts +405 -0
  82. package/dist/types/chunks/progress-By8yFaUE.d.cts +405 -0
  83. package/dist/types/chunks/{reflog-entry-C2Hsdobk.d.ts → reflog-entry-BbNnXCTC.d.cts} +17 -3
  84. package/dist/types/chunks/{reflog-entry-DNvSz7S5.d.cts → reflog-entry-CSzjnZd4.d.ts} +17 -3
  85. package/dist/types/chunks/{repository-DCR_3RVt.d.cts → repository-BeifCqp0.d.cts} +48 -8
  86. package/dist/types/chunks/{repository-DFxFeYi3.d.ts → repository-FoS_Laoy.d.ts} +48 -8
  87. package/dist/types/chunks/{write-tree-CuhpWKFo.d.cts → write-tree-C3oNxOlX.d.cts} +78 -46
  88. package/dist/types/chunks/{write-tree-Dn1LtIh7.d.ts → write-tree-DRI-LzSr.d.ts} +78 -46
  89. package/dist/types/commands/index.d.cts +826 -95
  90. package/dist/types/commands/index.d.ts +826 -95
  91. package/dist/types/index.browser.d.cts +7 -6
  92. package/dist/types/index.browser.d.ts +7 -6
  93. package/dist/types/index.d.cts +278 -53
  94. package/dist/types/index.d.ts +278 -53
  95. package/dist/types/index.default.d.cts +7 -6
  96. package/dist/types/index.default.d.ts +7 -6
  97. package/dist/types/index.node.d.cts +7 -6
  98. package/dist/types/index.node.d.ts +7 -6
  99. package/dist/types/primitives/index.d.cts +260 -12
  100. package/dist/types/primitives/index.d.ts +260 -12
  101. package/dist/types/transport/index.d.cts +1 -1
  102. package/dist/types/transport/index.d.ts +1 -1
  103. package/package.json +25 -18
  104. package/dist/cjs/chunks/browser-http-transport-D4NH-8oJ.cjs.map +0 -1
  105. package/dist/cjs/chunks/error-CDLOBdNU.cjs +0 -2
  106. package/dist/cjs/chunks/error-CDLOBdNU.cjs.map +0 -1
  107. package/dist/cjs/chunks/index-BVArBKuk.cjs +0 -2
  108. package/dist/cjs/chunks/index-BVArBKuk.cjs.map +0 -1
  109. package/dist/cjs/chunks/index-DE9HSiWf.cjs +0 -2
  110. package/dist/cjs/chunks/index-DE9HSiWf.cjs.map +0 -1
  111. package/dist/cjs/chunks/logger-CVG0zcPH.cjs +0 -2
  112. package/dist/cjs/chunks/logger-CVG0zcPH.cjs.map +0 -1
  113. package/dist/cjs/chunks/memory-http-transport-DXwDGKtR.cjs +0 -2
  114. package/dist/cjs/chunks/memory-http-transport-DXwDGKtR.cjs.map +0 -1
  115. package/dist/cjs/chunks/node-http-transport-vrbnNEDb.cjs +0 -2
  116. package/dist/cjs/chunks/node-http-transport-vrbnNEDb.cjs.map +0 -1
  117. package/dist/cjs/chunks/repository-BJwTSiGf.cjs +0 -2
  118. package/dist/cjs/chunks/repository-BJwTSiGf.cjs.map +0 -1
  119. package/dist/esm/chunks/browser-http-transport-DL8bkNdg.js.map +0 -1
  120. package/dist/esm/chunks/error-MOmSzp9Z.js +0 -2
  121. package/dist/esm/chunks/error-MOmSzp9Z.js.map +0 -1
  122. package/dist/esm/chunks/index-BjmofbKE.js +0 -2
  123. package/dist/esm/chunks/index-BjmofbKE.js.map +0 -1
  124. package/dist/esm/chunks/index-Jh5R-UmU.js +0 -2
  125. package/dist/esm/chunks/index-Jh5R-UmU.js.map +0 -1
  126. package/dist/esm/chunks/logger-DP2cCpvL.js +0 -2
  127. package/dist/esm/chunks/logger-DP2cCpvL.js.map +0 -1
  128. package/dist/esm/chunks/memory-http-transport-COJU6VOL.js +0 -2
  129. package/dist/esm/chunks/memory-http-transport-COJU6VOL.js.map +0 -1
  130. package/dist/esm/chunks/node-http-transport-DYCFIJbc.js +0 -2
  131. package/dist/esm/chunks/node-http-transport-DYCFIJbc.js.map +0 -1
  132. package/dist/esm/chunks/progress-NePjO3Kd.js +0 -2
  133. package/dist/esm/chunks/repository-Cs-dbHqO.js +0 -2
  134. package/dist/esm/chunks/repository-Cs-dbHqO.js.map +0 -1
@@ -1,2 +0,0 @@
1
- "use strict";var t=require("./error-CDLOBdNU.cjs"),e=require("./readable-stream-MTA6D0Zh.cjs");const n=e=>new t.TsgitError({code:"INVALID_INDEX_HEADER",reason:e}),r=(e,n)=>new t.TsgitError({code:"INVALID_INDEX_ENTRY",offset:e,reason:n}),o={assumeValid:!1,stage:0,skipWorktree:!1,intentToAdd:!1},s=t=>({ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,mode:t.mode,uid:0,gid:0,fileSize:0,id:t.id,flags:{...o,skipWorktree:!0},path:t.path}),i=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function a(t){const e=new Array(t.length);for(let n=0;n<t.length;n++)e[n]=i[t[n]];return e.join("")}function c(t){if(t.length%2!=0)throw new Error("Hex string must have even length");const e=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2){const r=d(t.charCodeAt(n)),o=d(t.charCodeAt(n+1));if(-1===r||-1===o)throw new Error(`Invalid hex character at position ${n}`);e[n/2]=r<<4|o}return e}function d(t){return t>=48&&t<=57?t-48:t>=97&&t<=102?t-87:-1}function f(t,e){const n=Math.min(t.length,e.length);for(let r=0;r<n;r++)if(t[r]!==e[r])return t[r]-e[r];return t.length-e.length}function u(t,e,n){for(let r=n;r<t.length;r++)if(t[r]===e)return r;return-1}const l=new TextEncoder,h=new TextDecoder;function p(t){return l.encode(t)}function g(t){return h.decode(t)}function w(t){const e=t.indexOf("\n\n");return-1===e?{headerPart:t,message:""}:{headerPart:t.slice(0,e),message:t.slice(e+2)}}function m(t,e){if(t.includes("\n")||t.includes(" ")||""===t)throw new Error(`invalid header key: ${t}`);const n=e.split("\n");return[`${t} ${n[0]}`,...n.slice(1).map(t=>` ${t}`)].join("\n")}function y(t){const e=t.indexOf(" ");return-1===e?{key:t,value:""}:{key:t.slice(0,e),value:t.slice(e+1)}}function x(t,e,n,r){let o;const s=[];let i=e;for(;i<t.length;){const{key:e,value:a}=y(t[i]);""===e&&n("unexpected continuation line without preceding header");const c=[a];let d=i;for(let e=i+1;e<t.length;e++){const n=t[e];if(!n.startsWith(" "))break;c.push(n.slice(1)),d=e}i=d+1;const f=c.join("\n");"gpgsig"===e?(void 0!==o&&r("duplicate gpgsig header"),o=f):s.push({key:e,value:f})}return{gpgSignature:o,extraHeaders:s}}const b=e=>new t.TsgitError({code:"INVALID_OBJECT_ID",value:e}),v=e=>new t.TsgitError({code:"INVALID_OBJECT_HEADER",reason:e}),E=(e,n)=>new t.TsgitError({code:"INVALID_TREE_ENTRY",offset:e,reason:n}),k=e=>new t.TsgitError({code:"INVALID_COMMIT",reason:e}),T=e=>new t.TsgitError({code:"INVALID_TAG",reason:e}),$=(e,n)=>new t.TsgitError({code:"INVALID_IDENTITY",line:e,reason:n}),D=e=>new t.TsgitError({code:"OBJECT_NOT_FOUND",id:e}),I=(e,n)=>new t.TsgitError({code:"OBJECT_HASH_MISMATCH",expected:e,actual:n}),A=(e,n,r)=>new t.TsgitError({code:"UNEXPECTED_OBJECT_TYPE",expected:e,actual:n,id:r}),O=e=>new t.TsgitError({code:"TREE_DEPTH_EXCEEDED",depth:e}),S=(e,n)=>new t.TsgitError({code:"TREE_ENTRY_LIMIT_EXCEEDED",count:e,limit:n}),L=(e,n,r)=>new t.TsgitError({code:"OBJECT_TOO_LARGE",id:e,actualSize:n,limit:r});function _(t){const e=t.lastIndexOf(">");if(-1===e)throw $(t,"missing closing angle bracket");const n=t.lastIndexOf("<",e);if(-1===n)throw $(t,"missing opening angle bracket");const r=t.slice(0,n),o=r.endsWith(" ")?r.slice(0,-1):r,s=t.slice(n+1,e),i=t.slice(e+1).trim().split(/\s+/);if(i.length<2)throw $(t,"missing timestamp or timezone");const a=Number(i[0]);if(!Number.isSafeInteger(a))throw $(t,"invalid timestamp");const c=i[1];if(!/^[+-]\d{4}$/.test(c))throw $(t,"invalid timezone offset");return{name:o,email:s,timestamp:a,timezoneOffset:c}}const U=/[\n\r\0]/;function C(t){const e=`${t.name} <${t.email}>`;if(U.test(t.name))throw $(e,"name contains forbidden control character");if(U.test(t.email))throw $(e,"email contains forbidden control character");if(U.test(t.timezoneOffset))throw $(e,"timezoneOffset contains forbidden control character");if(t.name.includes("<")||t.name.includes(">"))throw $(e,"invalid identity fields");if(t.email.includes("<")||t.email.includes(">"))throw $(e,"invalid identity fields");if(!/^[+-]\d{4}$/.test(t.timezoneOffset))throw $(e,"invalid identity fields");return`${t.name} <${t.email}> ${t.timestamp} ${t.timezoneOffset}`}const N=/^[0-9a-f]{40}$/,R=/^[0-9a-f]{64}$/,P={from(t){if(!N.test(t)&&!R.test(t))throw b(t);return t},fromRaw(t){if(20!==t.length&&32!==t.length)throw b(`raw bytes length ${t.length} is not 20 or 32`);return P.from(a(t))}},F=P.from("0000000000000000000000000000000000000000");P.from("4b825dc642cb6eb9a060e54bf8d69288fbee4904");const M={from(t){if(""===t)throw new Error("RefName must not be empty");return t}},W={from(t){if(""===t)throw new Error("FilePath must not be empty");return t}};function j(t){const e=[],{data:n}=t;e.push(`tree ${n.tree}`);for(const t of n.parents)e.push(`parent ${t}`);e.push(`author ${C(n.author)}`),e.push(`committer ${C(n.committer)}`),void 0!==n.gpgSignature&&e.push(m("gpgsig",n.gpgSignature));for(const t of n.extraHeaders)e.push(m(t.key,t.value));return p(`${e.join("\n")}\n\n${n.message}`)}const B={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"40000",GITLINK:"160000"},z=new Set(Object.values(B)),H=new Map([["040000",B.DIRECTORY]]);function V(e){return function(e){if(!z.has(e))throw new t.TsgitError({code:"INVALID_FILE_MODE",value:e});return e}(H.get(e)??e)}function K(t){return t===B.DIRECTORY}const G=new Set(["blob","tree","commit","tag"]);function Y(t){const e=u(t,0,0);if(-1===e)throw v("missing null terminator");const n=g(t.subarray(0,e)),r=n.indexOf(" ");if(-1===r)throw v("missing space between type and size");const o=n.slice(0,r);if(!G.has(o))throw v(`unknown object type: ${o}`);const s=n.slice(r+1),i=Number(s);if(!Number.isFinite(i)||i<0||s!==String(i))throw v(`invalid size: ${s}`);return{type:o,size:i,contentOffset:e+1}}const X=new Set(["blob","tree","commit","tag"]);function q(t){const e=[],{data:n}=t;if(e.push(`object ${n.object}`),e.push(`type ${n.objectType}`),""===n.tagName||n.tagName.includes("\n")||n.tagName.includes("\0"))throw T(`invalid tag name: ${n.tagName}`);e.push(`tag ${n.tagName}`),void 0!==n.tagger&&e.push(`tagger ${C(n.tagger)}`),void 0!==n.gpgSignature&&e.push(m("gpgsig",n.gpgSignature));for(const t of n.extraHeaders)e.push(m(t.key,t.value));return p(`${e.join("\n")}\n\n${n.message}`)}function J(t,e){const n=Z(t.entries).map(t=>({mode:p(t.mode),name:p(t.name),hash:c(t.id)})),r=n.reduce((t,n)=>t+n.mode.length+1+n.name.length+1+e.digestLength,0),o=new Uint8Array(r);let s=0;for(const t of n)o.set(t.mode,s),s+=t.mode.length,o[s++]=32,o.set(t.name,s),s+=t.name.length,o[s++]=0,o.set(t.hash,s),s+=t.hash.length;return o}function Z(t){const e=t.map(t=>({entry:t,sortKey:tt(t.name,K(t.mode))}));return e.sort((t,e)=>f(t.sortKey,e.sortKey)),e.map(t=>t.entry)}function Q(t,e){return f(tt(t.name,K(t.mode)),tt(e.name,K(e.mode)))}function tt(t,e){const n=p(t);if(!e)return n;const r=new Uint8Array(n.length+1);return r.set(n),r[n.length]=47,r}function et(t,e,n){const{type:r,size:o,contentOffset:s}=Y(e),i=e.subarray(s);if(i.length!==o)throw v(`size mismatch: header says ${o}, actual content is ${i.length}`);switch(r){case"blob":return function(t,e){return{type:"blob",id:t,content:e}}(t,i);case"tree":return function(t,e,n){const r=[],o=new Set;let s=0;for(;s<e.length;){const t=u(e,32,s);if(-1===t)throw E(s,"missing space after mode");const i=g(e.subarray(s,t)),a=u(e,0,t+1);if(-1===a)throw E(s,"missing null after name");const c=g(e.subarray(t+1,a));if(""===c||"."===c||".."===c||c.includes("/"))throw E(s,`invalid entry name: ${c}`);const d=a+1,f=d+n.digestLength;if(f>e.length)throw E(s,"truncated hash");const l=e.subarray(d,f),h=P.fromRaw(l),p=V(i);if(o.has(c))throw E(s,`duplicate entry name: ${c}`);o.add(c),r.push({mode:p,name:c,id:h}),s=f}return{type:"tree",id:t,entries:r}}(t,i,n);case"commit":return function(t,e){const{headerPart:n,message:r}=w(g(e)),o=n.split("\n"),{tree:s,parents:i,author:a,committer:c,nextIndex:d}=function(t){if(!t[0].startsWith("tree "))throw k("first line must be tree");const e=P.from(t[0].slice(5)),n=[];let r=1;for(;r<t.length&&t[r].startsWith("parent ");)n.push(P.from(t[r].slice(7))),r++;if(r>=t.length||!t[r].startsWith("author "))throw k("missing author");const o=_(t[r].slice(7));if(r++,r>=t.length||!t[r].startsWith("committer "))throw k("missing committer");const s=_(t[r].slice(10));return r++,{tree:e,parents:n,author:o,committer:s,nextIndex:r}}(o),{gpgSignature:f,extraHeaders:u}=function(t,e){return x(t,e,t=>{throw k(t)},t=>{throw k(t)})}(o,d);return{type:"commit",id:t,data:{tree:s,parents:i,author:a,committer:c,message:r,...void 0!==f?{gpgSignature:f}:{},extraHeaders:u}}}(t,i);case"tag":return function(t,e){const{headerPart:n,message:r}=w(g(e)),o=n.split("\n"),{object:s,objectType:i,tagName:a,nextIndex:c}=function(t){if(!t[0].startsWith("object "))throw T("first line must be object");const e=P.from(t[0].slice(7));if(t.length<2||!t[1].startsWith("type "))throw T("second line must be type");const n=t[1].slice(5);if(!X.has(n))throw T(`invalid object type: ${n}`);if(t.length<3||!t[2].startsWith("tag "))throw T("third line must be tag name");const r=t[2].slice(4);if(""===r||r.includes("\0")||r.includes("\n"))throw T(`invalid tag name: ${r}`);return{object:e,objectType:n,tagName:r,nextIndex:3}}(o),{tagger:d,nextIndex:f}=function(t,e){return e<t.length&&t[e].startsWith("tagger ")?{tagger:_(t[e].slice(7)),nextIndex:e+1}:{tagger:void 0,nextIndex:e}}(o,c),{gpgSignature:u,extraHeaders:l}=function(t,e){return x(t,e,t=>{throw T(t)},t=>{throw T(t)})}(o,f);return{type:"tag",id:t,data:{object:s,objectType:i,tagName:a,...void 0!==d?{tagger:d}:{},message:r,...void 0!==u?{gpgSignature:u}:{},extraHeaders:l}}}(t,i)}}function nt(t,e){let n;switch(t.type){case"blob":n=t.content;break;case"tree":n=J(t,e);break;case"commit":n=j(t);break;case"tag":n=q(t)}const r=p(`${t.type} ${n.length}\0`),o=new Uint8Array(r.length+n.length);return o.set(r,0),o.set(n,r.length),o}const rt=(t,e)=>{switch(t.type){case"blob":return t.content.byteLength;case"tree":return J(t,e).byteLength;case"commit":return j(t).byteLength;case"tag":return q(t).byteLength}},ot=new Set(["",".",".."]),st=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),it=t=>""===t?"empty segment rejected":"."===t?"'.' segment rejected":"'..' segment rejected",at=t=>t<32||t>=127&&t<=159,ct=(t,e)=>{if(t.startsWith("/"))throw r(e,"absolute path rejected");const n=(t=>{for(let e=0;e<t.length;e+=1){const n=t.charCodeAt(e);if(92===n)return"backslash rejected";if(at(n))return"control character rejected";if(st.has(n))return"bidi control character rejected"}})(t);if(void 0!==n)throw r(e,n);for(const n of t.split("/"))if(ot.has(n))throw r(e,it(n))};function dt(t,e,n,o){const s=t.getUint16(e+60),i=!!(16384&s);if(i&&3!==n)throw r(e,"extended flag requires index v3");const a=i?2:0;if(e+62+a>o-20)throw r(e,"truncated extended flags");return{flags:(c=s,d=i?t.getUint16(e+62):0,{assumeValid:!!(32768&c),stage:c>>>12&3,skipWorktree:!!(16384&d),intentToAdd:!!(8192&d)}),extendedSize:a};var c,d}function ft(t,e){for(let n=e;n<t.length;n++)if(0===t[n])return n;return-1}function ut(t,e){const n=t.path,r=e.path;return n<r?-1:n>r?1:0}function lt(t,e,n,r,o,s){e.setUint32(n,r.ctimeSeconds),e.setUint32(n+4,r.ctimeNanoseconds),e.setUint32(n+8,r.mtimeSeconds),e.setUint32(n+12,r.mtimeNanoseconds),e.setUint32(n+16,r.dev),e.setUint32(n+20,r.ino),e.setUint32(n+24,Number.parseInt(r.mode,8)),e.setUint32(n+28,r.uid),e.setUint32(n+32,r.gid),e.setUint32(n+36,r.fileSize);const i=c(r.id);t.set(i,n+40);const a=Math.min(o.length,4095);e.setUint16(n+60,(r.flags.assumeValid?32768:0)|(s?16384:0)|r.flags.stage<<12|a),s&&e.setUint16(n+62,(r.flags.skipWorktree?16384:0)|(r.flags.intentToAdd?8192:0)),t.set(o,n+62+(s?2:0))}const ht=1e6;function pt(t){switch(t.type){case"add":case"rename":return t.newPath;case"delete":return t.oldPath;case"modify":case"type-change":return t.path}}function gt(t){return t===B.REGULAR||t===B.EXECUTABLE?"file":t===B.SYMLINK?"symlink":t===B.DIRECTORY?"directory":"gitlink"}function wt(t,e){return gt(t)===gt(e)}const mt=new TextEncoder;function yt(t,e){const n=t.map(t=>({item:t,key:mt.encode(e(t))}));return n.sort((t,e)=>f(t.key,e.key)),n.map(t=>t.item)}function xt(t,e){const n=e.get(t.newId);if(void 0===n||1!==n.length)return;const r=n[0];return{rename:{type:"rename",oldPath:r.oldPath,newPath:t.newPath,id:t.newId,mode:t.newMode},consumedDelete:r}}function bt(t){return{type:"add",newPath:t.name,newId:t.id,newMode:t.mode}}function vt(t){return{type:"delete",oldPath:t.name,oldId:t.id,oldMode:t.mode}}function Et(t,e){if(t.id!==e.id||t.mode!==e.mode)return wt(t.mode,e.mode)?{type:"modify",path:t.name,oldId:t.id,newId:e.id,oldMode:t.mode,newMode:e.mode}:{type:"type-change",path:t.name,oldId:t.id,newId:e.id,oldMode:t.mode,newMode:e.mode}}function kt(t){return void 0===t?[]:Z(t.entries)}const Tt={kind:"star-slash"},$t=(t,e)=>{const n=t[e];return"*"===n?((t,e)=>{if("*"!==t[e+1])return{token:{kind:"star"},next:e+1};const n=e+2;return"/"===t[n]?{token:{kind:"star-slash"},next:n+1}:{token:{kind:"star-star"},next:n}})(t,e):"?"===n?{token:{kind:"single"},next:e+1}:{token:{kind:"literal",char:n},next:e+1}},Dt=(t,e,n)=>{switch(t.kind){case"literal":return((t,e,n)=>{const r=new Uint8Array(e.length+1);for(let o=0;o<e.length;o++)e[o]===t&&1===n[o+1]&&(r[o]=1);return r})(t.char,e,n);case"single":return((t,e)=>{const n=new Uint8Array(t.length+1);for(let r=0;r<t.length;r++)"/"!==t[r]&&1===e[r+1]&&(n[r]=1);return n})(e,n);case"star":return((t,e)=>{const n=new Uint8Array(t.length+1);n[t.length]=1===e[t.length]?1:0;for(let r=t.length-1;r>=0;r--)n[r]=1===e[r]||"/"!==t[r]&&1===n[r+1]?1:0;return n})(e,n);case"star-star":return((t,e)=>{const n=new Uint8Array(t.length+1);n[t.length]=1===e[t.length]?1:0;for(let r=t.length-1;r>=0;r--)n[r]=1===e[r]||1===n[r+1]?1:0;return n})(e,n);case"star-slash":return((t,e)=>{const n=new Uint8Array(t.length+1);for(let r=t.length-1;r>=0;r--)n[r]="/"===t[r]&&1===e[r+1]||1===n[r+1]?1:0;const r=new Uint8Array(t.length+1);for(let o=0;o<=t.length;o++)r[o]=1===e[o]||1===n[o]?1:0;return r})(e,n)}},It=(t,e)=>{const n=(t=>{const e=[];let n=0;for(;n<t.length;){const r=$t(t,n);e.push(r.token),n=r.next}return e})(t);return{test:t=>((t,e,n)=>{let r=((t,e)=>{const n=new Uint8Array(t.length+1);if(n[t.length]=1,e)for(let e=0;e<t.length;e++)"/"===t[e]&&(n[e]=1);return n})(n,!0===e.withDirSuffix);for(let e=t.length-1;e>=0;e--)r=Dt(t[e],n,r);return e.anchored||(r=Dt(Tt,n,r)),1===r[0]})(n,e,t)}},At=t=>{let e=t.length;for(;e>0&&32===t.charCodeAt(e-1)&&!(e>=2&&92===t.charCodeAt(e-2));)e-=1;return t.slice(0,e)},Ot=t=>t.replace(/\\(.)/g,"$1"),St=t=>{if(""===t)return;if(/^\s*$/.test(t))return;if(t.startsWith("#"))return;const e=At(t),n=e.startsWith("!"),r=n?e.slice(1):e,o=r.endsWith("/"),s=o?r.slice(0,-1):r,i=s.startsWith("/")||s.includes("/"),a=s.startsWith("/")?s.slice(1):s;return{negated:n,anchored:i,directoryOnly:o,cleanPattern:Ot(a)}},Lt="agent=tsgit/0.0",_t=["multi_ack_detailed","side-band-64k","ofs-delta","thin-pack","no-progress","include-tag","filter",Lt],Ut=["report-status","side-band-64k","ofs-delta","atomic","delete-refs",Lt],Ct=t=>{const e=t.indexOf("=");return e<0?t:t.slice(0,e)},Nt=e=>new t.TsgitError({code:"PKT_LENGTH_RESERVED",value:e}),Rt=e=>new t.TsgitError({code:"PKT_TOO_LARGE",value:e}),Pt=e=>new t.TsgitError({code:"INVALID_BASE_URL",reason:e}),Ft=(e,n)=>new t.TsgitError({code:"MISSING_SERVICE_HEADER",expected:e,actual:n}),Mt=e=>new t.TsgitError({code:"INVALID_REF_LINE",line:e}),Wt=e=>new t.TsgitError({code:"INVALID_SIDEBAND_CHANNEL",channel:e}),jt=e=>new t.TsgitError({code:"SIDEBAND_FATAL",message:e}),Bt=(e,n)=>new t.TsgitError({code:"TOO_MANY_ADVERTISED_REFS",count:e,limit:n}),zt=new TextEncoder,Ht=new TextDecoder("utf-8",{fatal:!1}),Vt=/^[0-9a-f]{4}$/i,Kt=65520,Gt=zt.encode("0000");zt.encode("0001"),zt.encode("0002");const Yt=t=>{const e=(t+65536).toString(16).slice(-4);return zt.encode(e)},Xt=t=>{let e=Gt.byteLength;for(const n of t){if(n.byteLength>65516)throw new RangeError(`pkt-line: payload too large (${n.byteLength} > 65516)`);e+=n.byteLength+4}const n=new Uint8Array(e);let r=0;for(const e of t)n.set(Yt(e.byteLength+4),r),r+=4,n.set(e,r),r+=e.byteLength;return n.set(Gt,r),n},qt=e=>{const n=Ht.decode(e.subarray(0,4));if(!Vt.test(n))throw new t.TsgitError({code:"INVALID_PKT_LENGTH",value:n});const r=Number.parseInt(n,16);if(r>Kt)throw Rt(r);return r},Jt=(e,n)=>({[Symbol.asyncIterator]:()=>async function*(e){const n=new Qt;for await(const t of e)n.accept(t),yield*te(n);if(n.used>0)throw new t.TsgitError({code:"PKT_TRUNCATED",remaining:n.used})}(e)}),Zt=(t,e,n)=>{if(0===t)return{kind:"flush",consume:4};if(1===t)throw Nt(1);if(2===t)throw Nt(2);if(t<4)throw Nt(t);return e<t?{kind:"wait"}:{kind:"data",consume:t}};class Qt{acc=new Uint8Array(Kt);used=0;accept(t){if(this.used+t.byteLength<=Kt)return this.acc.set(t,this.used),void(this.used+=t.byteLength);const e=Math.max(0,4-this.used),n=t.subarray(0,e);throw this.acc.set(n,this.used),this.used+=n.byteLength,qt(this.acc),Rt(this.used)}drop(t){this.acc.copyWithin(0,t,this.used),this.used-=t}slice(t,e){return this.acc.slice(t,e)}}function*te(t,e){for(;t.used>=4;){const e=qt(t.acc),n=Zt(e,t.used);if("wait"===n.kind)return;if("data"===n.kind){const e=t.slice(4,n.consume);t.drop(n.consume),yield{kind:"data",payload:e};continue}t.drop(n.consume),yield{kind:n.kind}}}const ee=new TextDecoder("utf-8",{fatal:!1}),ne=(t,e)=>{if(t)try{t(e)}catch{}},re=(t,e)=>({[Symbol.asyncIterator]:()=>async function*(t,e){for await(const n of t){if("data"!==n.kind)return;if(0===n.payload.byteLength)throw Wt(-1);const t=n.payload[0],r=n.payload.subarray(1);if(1!==t){if(2!==t){if(3===t){const t=ee.decode(r);throw ne(e.onError,t),jt(t)}throw Wt(t)}ne(e.onProgress,ee.decode(r))}else yield r}}(t,e)}),oe=new TextDecoder("utf-8",{fatal:!1}),se=new TextEncoder,ie=/^[0-9a-f]{40}([0-9a-f]{24})?$/i,ae=/^# service=(?<service>[^\n]+)\n?$/,ce=5e5,de=t=>t.endsWith("\n")?t.slice(0,-1):t,fe=t=>{if(!ie.test(t))throw Mt(t);return P.from(t)},ue=t=>{const e=t.indexOf(" ");if(e<0)throw Mt(t);const n=t.slice(0,e),r=t.slice(e+1);if(0===r.length)throw Mt(t);return{id:n,name:r}},le=(e,n,r)=>{if(e.byName.has(n))throw(e=>new t.TsgitError({code:"DUPLICATE_REF",name:e}))(n);e.refs.push({id:r,name:n}),e.byName.set(n,e.refs.length-1)},he=(e,n,r)=>{if(void 0===n){const n=(e=>{const n=e.indexOf("\0");if(n<0)throw new t.TsgitError({code:"MISSING_CAPABILITIES"});const r=e.slice(0,n),o=e.slice(n+1),s=r.indexOf(" ");if(s<0)throw Mt(e);const i=r.slice(0,s),a=r.slice(s+1);if(0===a.length)throw Mt(e);return{id:i,name:a,tail:o}})(r);return le(e,n.name,fe(n.id)),(t=>{const e=new Map;for(const n of t)e.set(Ct(n),n);return Array.from(e.values())})(n.tail.split(" ").filter(t=>t.length>0))}if(r.endsWith("^{}"))return((t,e)=>{const n=e.slice(0,-3),r=ue(n),o=fe(r.id),s=t.byName.get(r.name);if(void 0===s)throw Mt(e);t.refs[s]={...t.refs[s],peeled:o}})(e,r),n;const o=ue(r);return le(e,o.name,fe(o.id)),n},pe=t=>se.encode(`have ${t}\n`),ge=(t=>{if(t.byteLength>65516)throw new RangeError(`pkt-line: payload too large (${t.byteLength} > 65516)`);const e=t.byteLength+4,n=new Uint8Array(e);return n.set(Yt(e),0),n.set(t,4),n})(se.encode("done\n")),we=e=>{const n=de(e).split(" "),r=P.from(n[1]),o=n[2];if(void 0===o)return{id:r,status:"ack"};if("continue"===o||"common"===o||"ready"===o)return{id:r,status:o};throw new t.TsgitError({code:"UNKNOWN_ACK_STATUS",value:o})},me="shallow ",ye="unshallow ",xe=(t,e)=>{const n=de(t),r=n.slice(e.length);if(!ie.test(r))throw Mt(n);return P.from(r)},be=(t,e)=>t.startsWith(me)?(e.shallow.push(xe(t,me)),!0):!!t.startsWith(ye)&&(e.unshallow.push(xe(t,ye)),!0),ve=new WeakMap,Ee=e=>new t.TsgitError({code:"INVALID_REFLOG_ENTRY",reason:e}),ke=/[\n\r]/;function Te(t){if(ke.test(t.message))throw Ee("message contains a line break");const e=C(t.identity);return`${t.oldId} ${t.newId} ${e}\t${t.message}\n`}function $e(t){const e=t.indexOf("\t");if(-1===e)throw Ee("missing tab separator");const n=t.slice(0,e),r=t.slice(e+1);if(" "!==n[40]||" "!==n[81])throw Ee("misplaced field separator");return{oldId:Ie(n.slice(0,40)),newId:Ie(n.slice(41,81)),identity:function(t){try{return _(t)}catch{throw Ee("invalid identity")}}(n.slice(82)),message:r}}function De(t){return t.replace(/[\r\n]+/g," ").trim()}function Ie(t){try{return P.from(t)}catch{throw Ee("invalid object id")}}const Ae=["refs/heads/","refs/remotes/","refs/notes/"];const Oe=e=>new t.TsgitError({code:"INVALID_REF",reason:e}),Se=e=>new t.TsgitError({code:"INVALID_PACKED_REFS",reason:e}),Le=e=>new t.TsgitError({code:"REF_NOT_FOUND",name:e}),_e=(e,n)=>new t.TsgitError({code:"REF_CHAIN_TOO_DEEP",depth:e,chain:n}),Ue=e=>new t.TsgitError({code:"REF_CYCLE_DETECTED",chain:e}),Ce=e=>new t.TsgitError({code:"REF_LOCKED",name:e}),Ne=new Set(["~","^",":","?","*","[","\\"," "]);function Re(t){if(""===t)throw Oe("ref name must not be empty");if(t.startsWith("/")||t.endsWith("/"))throw Oe("ref name must not start or end with /");if(t.startsWith("-"))throw Oe("ref name must not start with -");if("@"===t)throw Oe("ref name must not be single @");if(t.includes(".."))throw Oe("ref name must not contain ..");if(t.includes("//"))throw Oe("ref name must not contain consecutive slashes");if(t.includes("@{"))throw Oe("ref name must not contain @{");if(t.endsWith("."))throw Oe("ref name must not end with .");!function(t){for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);if(n<=31||127===n)throw Oe("ref name contains forbidden character");const r=t[e];if(void 0!==r&&Ne.has(r))throw Oe("ref name contains forbidden character");if(n>=8234&&n<=8238||n>=8294&&n<=8297)throw Oe("ref name contains forbidden Unicode override")}}(t);const e=t.split("/");for(const t of e){if(t.startsWith("."))throw Oe("ref name component must not start with .");if(t.endsWith(".lock"))throw Oe("ref name component must not end with .lock")}return t}function Pe(t){const e=t.replace(/[\r\n]+$/,"");if(""===e)throw Oe("empty ref content");if(e.startsWith("ref: ")){const t=e.slice(5);if(""===t)throw Oe("empty symbolic ref target");return{type:"symbolic",target:Re(t)}}return{type:"direct",target:P.from(e)}}const Fe=t=>{const e=t.split("/"),n=[];for(let t=e.length-1;t>0;t-=1)n.push(e.slice(0,t).join("/"));return n},Me=t=>{const e=t.replace(/\\/g,"/").replace(/^\/+/,"").replace(/\/+$/,"");for(const n of e.split("/"))We(n,t);return e},We=(e,n)=>{const r=n.slice(0,128);if(""===e||"."===e||".."===e)throw t.invalidOption("patterns",`cone directory has an invalid segment: ${r}`);if(e.includes("*")||e.includes("?"))throw t.invalidOption("patterns",`cone directory must not contain glob metacharacters: ${r}`);if(/[\n\r\0]/.test(e))throw t.invalidOption("patterns",`cone directory must not contain control characters: ${r}`)},je=t=>{if(!t.startsWith("/")||!t.endsWith("/"))return;const e=t.slice(1,-1);return""===e||e.startsWith("!")?void 0:e},Be=(t,e)=>{const n=(t=>{if(t.directoryOnly)return!0;const e=t.cleanPattern.split("/"),n=e[e.length-1];return!n.includes("*")&&!n.includes("?")})(t);return{source:e,negated:t.negated,matcher:It(t.cleanPattern,{anchored:t.anchored,withDirSuffix:n})}},ze=new TextEncoder,He=e=>{const n=e.split("\n").map(t=>t.replace(/\r$/,"")),r=[];for(const e of n){if(ze.encode(e).byteLength>256)throw t.invalidOption("patterns","pattern exceeds max length 256 bytes");const n=St(e);if(void 0!==n){if(r.length>=2048)throw t.invalidOption("patterns","pattern file exceeds max 2048 patterns");r.push(Be(n,e))}}return r},Ve=(t,e)=>{if(e){const e=(t=>{const e=t.split("\n").map(t=>t.replace(/\r$/,""));if("/*"!==e[0]||"!/*/"!==e[1])return;const n=new Set,r=new Set;let o=2;for(;o<e.length;){const t=e[o];if(""===t){o+=1;continue}const s=je(t);if(void 0===s)return;o+=1,e[o]===`!/${s}/*/`?(r.add(s),o+=1):n.add(s)}return{mode:"cone",recursive:n,parents:r}})(t);return void 0!==e?{spec:e,degraded:!1}:{spec:{mode:"no-cone",rules:He(t)},degraded:!0}}return{spec:{mode:"no-cone",rules:He(t)},degraded:!1}},Ke=t=>{return"cone"===t.mode?(t=>e=>{const n=(t=>{const e=t.lastIndexOf("/");return-1===e?"":t.slice(0,e)})(e);if(""===n)return!0;if(t.parents.has(n))return!0;let r=n;for(;;){if(t.recursive.has(r))return!0;const e=r.lastIndexOf("/");if(-1===e)return!1;r=r.slice(0,e)}})(t):(e=t.rules,t=>{let n=!1;for(const r of e)r.matcher.test(t)&&(n=!r.negated);return n});var e},Ge=function(){const t=new Uint32Array(256);for(let e=0;e<256;e++){let n=e;for(let t=0;t<8;t++)n=1&n?3988292384^n>>>1:n>>>1;t[e]=n}return t}();function Ye(t){let e=4294967295;for(let n=0;n<t.length;n++)e=Ge[255&(e^t[n])]^e>>>8;return(4294967295^e)>>>0}const Xe=e=>new t.TsgitError({code:"INVALID_PACK_HEADER",reason:e}),qe=e=>new t.TsgitError({code:"INVALID_PACK_INDEX",reason:e}),Je=(e,n)=>new t.TsgitError({code:"INVALID_PACK_ENTRY",offset:e,reason:n}),Ze=e=>new t.TsgitError({code:"INVALID_DELTA",reason:e}),Qe=e=>new t.TsgitError({code:"DELTA_CHAIN_TOO_DEEP",depth:e});function tn(t,e){if(e>=t.length)throw Ze("truncated variable-length integer");let n=0,r=0,o=e,s=0,i=t[o];for(n=(127&i)<<r>>>0,r+=7,s+=1;128&i;){if(s>=5)throw Ze("variable-length integer too long");if(o+=1,o>=t.length)throw Ze("truncated variable-length integer");i=t[o],n=(n|(127&i)<<r)>>>0,r+=7,s+=1}return{value:n,nextOffset:o+1}}function en(t,e,n){const r=function(t){let e=0;return 1&t&&(e+=1),2&t&&(e+=1),4&t&&(e+=1),8&t&&(e+=1),16&t&&(e+=1),32&t&&(e+=1),64&t&&(e+=1),e}(n);if(e+r>t.length)throw Ze(`COPY instruction truncated: needs ${r} bytes at position ${e}`);let o=e,s=0,i=0;return 1&n&&(s|=t[o],o+=1),2&n&&(s|=t[o]<<8,o+=1),4&n&&(s|=t[o]<<16,o+=1),8&n&&(s=(s|16777216*t[o])>>>0,o+=1),16&n&&(i|=t[o],o+=1),32&n&&(i|=t[o]<<8,o+=1),64&n&&(i|=t[o]<<16,o+=1),0===i&&(i=65536),{offset:s,size:i,nextPos:o}}function nn(t,e,n,r,o){if(t+e>n)throw Ze(`COPY out of bounds: offset=${t} size=${e} exceeds base length ${n}`);if(r+e>o)throw Ze(`COPY overflows target: position=${r} size=${e} exceeds target length ${o}`)}function rn(t,e,n,r,o,s){if(0===n)throw Ze("INSERT with N=0 is reserved");if(e+n>t.length)throw Ze(`INSERT data truncated: needs ${n} bytes at position ${e}`);if(o+n>s)throw Ze(`INSERT overflows target: position=${o} size=${n} exceeds target length ${s}`);return r.set(t.subarray(e,e+n),o),{nextPos:e+n,nextResultPos:o+n}}function on(t,e){const{value:n,nextOffset:r}=tn(e,0),{value:o,nextOffset:s}=tn(e,r);!function(t,e,n){if(t.length!==e)throw Ze(`source length mismatch: expected ${e}, got ${t.length}`);if(n>2147483648)throw Ze(`target length ${n} exceeds maximum allowed size`)}(t,n,o);const i=new Uint8Array(o);let a=0,c=s;for(;c<e.length;){const n=e[c];if(c+=1,128&n){const{offset:r,size:s,nextPos:d}=en(e,c,n);c=d,nn(r,s,t.length,a,o),i.set(t.subarray(r,r+s),a),a+=s}else{const t=rn(e,c,n,i,a,o);c=t.nextPos,a=t.nextResultPos}}if(a!==o)throw Ze(`underfill: produced ${a} bytes but target length is ${o}`);return i}const sn=1346454347;function an(t,e,n){const{type:r,size:o,nextPos:s}=function(t,e){if(e>=t.length)throw Je(e,"unexpected end of header");let n=e;const r=t[n],o=r>>4&7;let s=15&r,i=4,a=0;for(;128&t[n];){if(a+=1,a>5)throw Je(e,"size encoding too long");if(n+=1,n>=t.length)throw Je(e,"unexpected end of header");s|=(127&t[n])<<i,i+=7}return{type:o,size:s,nextPos:n+1}}(t,e);if(function(t,e){if(5===t)throw Je(e,"reserved type 5");if(t<1||t>7)throw Je(e,`unknown type ${t}`)}(r,e),6===r){const{distance:n,nextPos:r}=function(t,e,n){if(e>=t.length)throw Je(n,"unexpected end of OFS_DELTA distance");let r=e,o=127&t[r],s=0;for(;128&t[r];){if(s+=1,s>4)throw Je(n,"OFS_DELTA distance encoding too long");if(r+=1,r>=t.length)throw Je(n,"unexpected end of OFS_DELTA distance");o=o+1<<7|127&t[r]}return{distance:o,nextPos:r+1}}(t,s,e);return{type:6,size:o,dataOffset:r,baseDistance:n}}if(7===r){const r=s+n.digestLength;if(r>t.length)throw Je(e,"unexpected end of REF_DELTA base id");return{type:7,size:o,dataOffset:r,baseId:a(t.subarray(s,r))}}return{type:r,size:o,dataOffset:s}}function cn(t,e){const n=[];let r=(7&t)<<4|15&e,o=e>>>4;for(o>0&&(r|=128),n.push(r);o>0;){let t=127&o;o>>>=7,o>0&&(t|=128),n.push(t)}return new Uint8Array(n)}const dn=1032;function fn(t,e){return t._view.getUint32(8+4*e)}function un(t,e,n){const r=dn+20*e;return f(t._bytes.subarray(r,r+20),n)}function ln(t,e){const n=t._view.getUint32(t.smallOffsetsTableOffset+4*e);if(2147483648&n){const e=2147483647&n,r=t.largeOffsetsTableOffset+8*e;if(r+8>t.trailerOffset)throw qe(`large offset index ${e} out of range`);const o=t._view.getUint32(r),s=t._view.getUint32(r+4);if(o>2097151)throw qe(`pack offset exceeds safe JavaScript number range: high word=${o}`);return 4294967296*o+s}return n}function hn(t,e){const n=c(e),r=n[0];let o=0===r?0:fn(t,r-1),s=fn(t,r);for(;o<s;){const e=o+s>>>1,r=un(t,e,n);if(r<0)o=e+1;else{if(!(r>0))return ln(t,e);s=e}}}function pn(t,e){const n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function gn(t){const e=t.reduce((t,e)=>t+e.length,0),n=new Uint8Array(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n}const wn=(t,e)=>`${t}/objects/${function(t){return`${t.slice(0,2)}/${t.slice(2)}`}(e)}`,mn=(t,e)=>`${t}/${e}`,yn=t=>`${t}/index`,xn=(t,e)=>`${t}/logs/${e}`,bn=t=>`${t}/info/sparse-checkout`,vn=".lock";function En(t){return!!(t.includes("\0")||t.includes("\r")||t.includes("\n\n")||t.startsWith("\n")||t.endsWith("\n"))}function kn(t){return 0===t.length||!!(t.includes("\0")||t.includes("\r")||t.includes("\n"))||!(!t.includes(" ")&&!t.includes("\t"))}const Tn="index file exceeds 256 MiB",$n="pack .idx file exceeds 64 MiB";function Dn(t){return t>268435456}function In(t){return t>67108864}function An(t,e=5){return t>e}function On(t,e=5){return t>e}function Sn(t){return"160000"===t}function Ln(t,e){return t>e}const _n=/^[0-9a-f]{40}$/,Un=/^[0-9a-f]{64}$/;function Cn(t){return _n.test(t)||Un.test(t)}const Nn=new TextEncoder,Rn=new Set([".git"]),Pn=t=>{""===t&&Mn(t),jn(t)>4096&&Mn(t),t.startsWith("/")&&Mn(t),t.includes("\\")&&Mn(t),t.includes("\0")&&Mn(t);const e=t.split("/");for(const n of e)Wn(n,t);return t},Fn=t=>{const e=t.toLowerCase();return!!Rn.has(e)||".git"===e.replace(/[. ]+$/,"")},Mn=e=>{throw t.pathspecOutsideRepo(e)},Wn=(t,e)=>{""===t&&Mn(e),"."!==t&&".."!==t||Mn(e),jn(t)>255&&Mn(e),Fn(t)&&Mn(e),t.includes(":")&&Mn(e);for(let n=0;n<t.length;n+=1){const r=t.charCodeAt(n);(r<=31||127===r)&&Mn(e)}},jn=t=>Nn.encode(t).length;async function*Bn(e,n,r,o,s){if(o>e.maxDepth)throw O(o);const i=await e.ctx.fs.readdir(Hn(e,r));if(s||!i.some(Kn))for(const s of i){if(e.ctx.signal?.aborted)throw t.operationAborted();Fn(s.name)||(yield*zn(e,n,r,o,s))}}async function*zn(t,e,n,r,o){const s=Vn(n,o.name);if(Pn(s),o.isDirectory&&!o.isSymbolicLink){if(void 0!==t.ignore&&await t.ignore(s,!0))return;return void(yield*Bn(t,e,s,r+1,!1))}if(!o.isFile&&!o.isSymbolicLink)return;if(void 0!==t.ignore&&await t.ignore(s,!1))return;if(e.value+=1,e.value>t.maxEntries)throw S(e.value,t.maxEntries);const i=await t.ctx.fs.lstat(`${t.ctx.layout.workDir}/${s}`);yield{path:s,stat:i}}const Hn=(t,e)=>""===e?t.ctx.layout.workDir:`${t.ctx.layout.workDir}/${e}`,Vn=(t,e)=>""===t?e:`${t}/${e}`,Kn=t=>!!Fn(t.name)&&(t.isDirectory||t.isFile&&!t.isSymbolicLink);async function Gn(e,n){if(e.signal?.aborted)throw t.operationAborted();const r=nt(n,e.hashConfig),o=await e.hash.hashHex(r),s=n.id;if(""!==s&&s!==o)throw I(n.id,o);if(e.signal?.aborted)throw t.operationAborted();const i=o.slice(0,2);await e.fs.mkdir(((t,e)=>`${t}/objects/${e}`)(e.layout.gitDir,i));const a=wn(e.layout.gitDir,o),c=await e.compressor.deflate(r);try{await e.fs.writeExclusive(a,c)}catch(t){if(Yn(t))return o;throw t}return o}function Yn(e){return e instanceof t.TsgitError&&"FILE_EXISTS"===e.data.code}let Xn=new WeakMap;const qn=t=>{const e=Xn.get(t);if(void 0!==e)return e;const n=Zn(t);return Xn.set(t,n),n},Jn=t=>{Xn.delete(t)},Zn=async t=>{const e=await Qn(t);return void 0===e?{}:tr(e)},Qn=async e=>{try{return await e.fs.readUtf8(`${e.layout.gitDir}/config`)}catch(e){if(e instanceof t.TsgitError&&"FILE_NOT_FOUND"===e.data.code)return;throw e}},tr=t=>{const e=er(t);return cr(e)},er=t=>{const e=[];let n;for(const r of nr(t.split("\n"))){const t=rr(r).trim();if(""===t)continue;const o=sr(t);if(void 0!==o){n={section:o.section,subsection:o.subsection,entries:[]},e.push(n);continue}if(void 0===n)continue;const s=ir(t);void 0!==s&&n.entries.push(s)}return e},nr=t=>{const e=[];let n="";for(const r of t){const t=""===n?r:r.replace(/^\s+/,"");r.endsWith("\\")?n+=t.slice(0,t.length-1):(e.push(`${n}${t}`),n="")}return""!==n&&e.push(n),e},rr=t=>{const e=[or(t,"#"),or(t,";")].filter(t=>t>=0);return 0===e.length?t:t.slice(0,Math.min(...e))},or=(t,e)=>{let n=!1;for(let r=0;r<t.length;r+=1){const o=t[r];if('"'===o)n=!n;else if(!n&&o===e)return r}return-1},sr=t=>{if(!t.startsWith("[")||!t.endsWith("]"))return;const e=t.slice(1,-1).trim();if(""===e)return;const n=e.indexOf('"');if(-1===n)return{section:e,subsection:void 0};const r=e.slice(0,n).trim(),o=e.lastIndexOf('"');return o<=n?void 0:{section:r,subsection:e.slice(n+1,o)}},ir=t=>{const e=t.indexOf("=");if(-1===e)return;const n=t.slice(0,e).trim();return""!==n?{key:n,value:t.slice(e+1).trim()}:void 0},ar=(t,e)=>{"core"===e.section&&void 0===e.subsection?dr(t,e):"user"===e.section&&void 0===e.subsection?ur(t,e):"remote"===e.section&&void 0!==e.subsection?lr(t,e.subsection,e):"branch"===e.section&&void 0!==e.subsection?hr(t,e.subsection,e):"extensions"===e.section&&void 0===e.subsection&&pr(t,e)},cr=t=>{const e={};for(const n of t)ar(e,n);return gr(e)},dr=(t,e)=>{for(const{key:n,value:r}of e.entries){const e=n.toLowerCase();"bare"===e?t.core={...t.core,bare:mr(r)}:"excludesfile"===e?t.core={...t.core,excludesFile:r}:"logallrefupdates"===e?t.core={...t.core,logAllRefUpdates:fr(r)}:"hookspath"===e?t.core={...t.core,hooksPath:r}:"sparsecheckout"===e?t.core={...t.core,sparseCheckout:mr(r)}:"sparsecheckoutcone"===e&&(t.core={...t.core,sparseCheckoutCone:mr(r)})}},fr=t=>"always"===t.toLowerCase()?"always":mr(t),ur=(t,e)=>{for(const{key:n,value:r}of e.entries)"name"===n?t.user={...t.user,name:r}:"email"===n&&(t.user={...t.user,email:r})},lr=(t,e,n)=>{t.remote??=new Map;const r=t.remote.get(e)??{},o=r.fetch?[...r.fetch]:[];let s=r.url,i=r.promisor,a=r.partialCloneFilter;for(const{key:t,value:e}of n.entries){const n=t.toLowerCase();"url"===n?s=e:"fetch"===n?o.push(e):"promisor"===n?i=mr(e):"partialclonefilter"===n&&(a=e)}const c={};void 0!==s&&(c.url=s),o.length>0&&(c.fetch=o),void 0!==i&&(c.promisor=i),void 0!==a&&(c.partialCloneFilter=a),t.remote.set(e,c)},hr=(t,e,n)=>{t.branch??=new Map;const r={...t.branch.get(e)??{}};for(const{key:t,value:e}of n.entries)"remote"===t?r.remote=e:"merge"===t&&(r.merge=e);t.branch.set(e,r)},pr=(t,e)=>{for(const{key:n,value:r}of e.entries)"partialclone"===n.toLowerCase()&&(t.extensions={...t.extensions,partialClone:r})},gr=t=>{const e={},n=(t=>{if(void 0!==t)return{...void 0!==t.bare?{bare:t.bare}:{},...void 0!==t.excludesFile?{excludesFile:t.excludesFile}:{},...void 0!==t.logAllRefUpdates?{logAllRefUpdates:t.logAllRefUpdates}:{},...void 0!==t.hooksPath?{hooksPath:t.hooksPath}:{},...void 0!==t.sparseCheckout?{sparseCheckout:t.sparseCheckout}:{},...void 0!==t.sparseCheckoutCone?{sparseCheckoutCone:t.sparseCheckoutCone}:{}}})(t.core);return void 0!==n&&(e.core=n),void 0!==t.user?.name&&void 0!==t.user?.email&&(e.user={name:t.user.name,email:t.user.email}),void 0!==t.remote&&t.remote.size>0&&(e.remote=t.remote),void 0!==t.extensions&&(e.extensions=t.extensions),void 0!==t.branch&&t.branch.size>0&&(e.branch=t.branch),e},wr=new Set(["true","yes","on","1"]),mr=t=>wr.has(t.toLowerCase());async function yr(t,e,n){await t.fs.appendUtf8(xn(t.layout.gitDir,e),Te(n))}async function xr(t,e){return t.fs.exists(xn(t.layout.gitDir,e))}async function br(t,e){const n=xn(t.layout.gitDir,e);await t.fs.exists(n)&&await t.fs.rm(n)}async function vr(t,e,n){const r=await t.fs.readdir(e),o=[];for(const s of r){const r=""===n?s.name:`${n}/${s.name}`;s.isDirectory?o.push(...await vr(t,`${e}/${s.name}`,r)):o.push(r)}return o}async function Er(t,e,n,r,o){$r(t);const s=await async function(t,e){const n=wn(t.layout.gitDir,e);if(!await t.fs.exists(n))return;const r=await t.fs.read(n);return t.compressor.inflate(r)}(t,n);if(void 0!==s)return $r(t),function(t,e,n){if(void 0===n)return;const{contentOffset:r}=Y(e),o=e.length-r;if(o>n)throw L(t,o,n)}(n,s,o),Dr(t,n,s,r);$r(t);const i=await e.lookup(n);if(void 0===i)throw D(n);$r(t);const a=await async function(t,e,n,r,o){const s=await async function(t,e,n,r,o){const s=[];let i=n,a=0;for(;;){$r(t);const{header:n,chunk:c,headerEndInChunk:d}=await Ar(t,i);if(Ir(n))return kr(r,n.size,o),{deltas:s,baseContent:(await t.compressor.streamInflate(c,d)).output,baseType:n.type};if(a+=1,a>50)throw Qe(a);const{output:f}=await t.compressor.streamInflate(c,d);if(Tr(r,f,o,a),6===n.type){const t=i.offset-n.baseDistance;if(t<0)throw D(r);s.push({instructions:f,resolvedBaseId:void 0}),i={pack:i.pack,offset:t};continue}if(7===n.type){const r=n.baseId;s.push({instructions:f,resolvedBaseId:r});const i=await Or(t,e,r,o);return{deltas:s,baseContent:i.content,baseType:i.type}}throw D(r)}}(t,e,n,r,o);let i=s.baseContent;for(let t=s.deltas.length-1;t>=0;t-=1){const e=s.deltas[t];if(void 0===e)break;i=on(i,e.instructions)}if(void 0!==o&&i.length>o)throw L(r,i.length,o);const a=function(t,e,n){const r=function(t,e){switch(t){case 1:return"commit";case 2:return"tree";case 3:return"blob";case 4:return"tag";default:throw D(e)}}(e,n),o=`${r} ${t.length}\0`,s=(new TextEncoder).encode(o),i=new Uint8Array(s.length+t.length);return i.set(s,0),i.set(t,s.length),i}(i,s.baseType,r);return _r(t.deltaCache,r,a),a}(t,e,i,n,o);return $r(t),Dr(t,n,a,r)}function kr(t,e,n){if(void 0!==n&&e>n)throw L(t,e,n)}function Tr(t,e,n,r){if(void 0===n)return;if(1!==r)return;const o=function(t){const{nextOffset:e}=tn(t,0),{value:n}=tn(t,e);return n}(e);if(o>n)throw L(t,o,n)}function $r(e){if(!0===e.signal?.aborted)throw t.operationAborted()}async function Dr(t,e,n,r){if(r){const r=await t.hash.hashHex(n);if($r(t),r!==e)throw I(e,r)}return et(e,n,t.hashConfig)}function Ir(t){return 1===t.type||2===t.type||3===t.type||4===t.type}async function Ar(t,e){const n=await t.fs.readSlice(e.pack.packPath,e.offset,65536),r=an(n,0,t.hashConfig);return{header:r,chunk:n,headerEndInChunk:r.dataOffset}}async function Or(t,e,n,r){const o=t.deltaCache.get(n);if(void 0!==o)return function(t,e,n){if(void 0===n)return;const r=e.indexOf(0);if(r<0)return;const o=e.length-(r+1);if(o>n)throw L(t,o,n)}(n,o,r),Sr(o,n);const s=nt(await Er(t,e,n,!1,r),t.hashConfig);return _r(t.deltaCache,n,s),Sr(s,n)}function Sr(t,e){const n=t.indexOf(0);if(n<0)throw D(e);const r=t.subarray(0,n).indexOf(32);if(r<0)throw D(e);const o=(new TextDecoder).decode(t.subarray(0,r));return{content:t.subarray(n+1),type:Lr(o,e)}}function Lr(t,e){switch(t){case"commit":return 1;case"tree":return 2;case"blob":return 3;case"tag":return 4;default:throw D(e)}}function _r(t,e,n){t.set(e,n,n.length)}function Ur(t){return t.isFile&&t.name.endsWith(".idx")&&!(e=t.name).includes("/")&&!e.includes("\\")&&!e.includes("..");var e}async function Cr(t,e,n){const r=`${e}/${n}`,o=await async function(t,e){if(In((await t.fs.stat(e)).size))throw qe($n);const n=await t.fs.read(e);if(In(n.length))throw qe($n);return n}(t,r),s=function(t){if(t.length<1032)throw qe("truncated: file too short for header and fanout");const e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=e.getUint32(0);if(4285812579!==n)throw qe(`invalid magic: expected 0xff744f63, got 0x${n.toString(16).padStart(8,"0")}`);const r=e.getUint32(4);if(2!==r)throw qe(`unsupported version: expected 2, got ${r}`);!function(t){let e=0;for(let n=0;n<256;n++){const r=t.getUint32(8+4*n);if(r<e)throw qe(`non-monotonic fanout at index ${n}: ${e} > ${r}`);e=r}}(e);const o=e.getUint32(1028),s=dn+20*o,i=s+4*o,a=i+4*o,c=t.length-40,d=dn+20*o+4*o+4*o+40;if(t.length<d)throw qe(`truncated: expected at least ${d} bytes for ${o} objects, got ${t.length}`);return{objectCount:o,crc32TableOffset:s,smallOffsetsTableOffset:i,largeOffsetsTableOffset:a,trailerOffset:c,_bytes:t,_view:e}}(o),i=n.slice(0,-4);return{name:i,index:s,packPath:`${e}/${i}.pack`,idxPath:r}}function Nr(t){let e;async function n(){if(void 0!==e)return e;const n=`${t.layout.gitDir}/objects/pack`;if(!await t.fs.exists(n))return e=[],e;const r=await t.fs.readdir(n),o=[];for(const e of r)Ur(e)&&o.push(await Cr(t,n,e.name));return e=o,e}return{all:n,refresh(){e=void 0},async lookup(t){const e=await n();for(const n of e){const e=hn(n.index,t);if(void 0!==e)return{pack:n,offset:e}}}}}const Rr=new WeakMap,Pr=new WeakMap;async function Fr(e,n,r){const o=r?.verifyHash??!0,s=function(t){let e=Rr.get(t);return void 0===e&&(e=Nr(t),Rr.set(t,e)),e}(e);try{return await Er(e,s,n,o,r?.maxBytes)}catch(i){const a=e.promisor;if(void 0===a||!function(e){return e instanceof t.TsgitError&&"OBJECT_NOT_FOUND"===e.data.code}(i))throw i;if(!await async function(t,e,n){const r=function(t){let e=Pr.get(t);return void 0===e&&(e=new Map,Pr.set(t,e)),e}(t),o=r.get(n);if(void 0!==o)return o;const s=e.fetch([n]).then(t=>t.attempted);r.set(n,s);try{return await s}finally{r.delete(n)}}(e,a,n))throw i;return s.refresh(),Er(e,s,n,o,r?.maxBytes)}}const Mr=new WeakMap;function Wr(t){let e=Mr.get(t);return void 0===e&&(e=function(t){let e;async function n(){const n=`${t.layout.gitDir}/packed-refs`;if(!await t.fs.exists(n))return{entries:[],peeling:"none",sorted:!1};const r=await t.fs.stat(n),o=`${r.mtimeMs}:${r.size}`;if(void 0!==e&&e.mtimeKey===o)return e.parsed;const s=function(t){if(""===t)return{entries:[],peeling:"none",sorted:!1};const e=t.split("\n"),{peeling:n,sorted:r,startIndex:o}=function(t){const e=t[0];if(e?.startsWith("# pack-refs with:")){const t=e.slice(17).trim(),n=""===t?[]:t.split(/\s+/),r=n.includes("peeled");return{peeling:n.includes("fully-peeled")?"fully":r?"tags":"none",sorted:n.includes("sorted"),startIndex:1}}return{peeling:"none",sorted:!1,startIndex:0}}(e);return{entries:function(t,e){const n=[];for(let r=e;r<t.length;r++){const e=t[r];if(void 0===e||""===e||e.startsWith("#"))continue;if(e.startsWith("^")){if(0===n.length)throw Se("peel line without preceding ref entry");const t=P.from(e.slice(1)),r=n.length-1;n[r]={...n[r],peeled:t};continue}const o=e.indexOf(" ");if(-1===o)throw Se(`invalid ref line format: ${e.slice(0,80)}`);const s=e.slice(0,o),i=e.slice(o+1),a=P.from(s);n.push({name:M.from(i),id:a})}return n}(e,o),peeling:n,sorted:r}}(await t.fs.readUtf8(n));return e={parsed:s,mtimeKey:o},s}async function r(e){const n=mn(t.layout.gitDir,e);if(await t.fs.exists(n))return t.fs.readUtf8(n)}return{async resolveDirect(t){const e=await r(t);if(void 0!==e){const t=Pe(e);return"symbolic"===t.type?{kind:"symbolic",target:t.target}:{kind:"direct",id:t.target}}const o=await n();for(const e of o.entries)if(e.name===t)return{kind:"direct",id:e.id};return{kind:"missing"}},async writeLoose(e,n){const r=mn(t.layout.gitDir,e);await t.fs.writeUtf8(r,function(t){return`${t}\n`}(n))},async removeLoose(e){const n=mn(t.layout.gitDir,e);await t.fs.exists(n)&&await t.fs.rm(n)},isLoose:async e=>t.fs.exists(mn(t.layout.gitDir,e)),readLooseRaw:async t=>r(t),getPackedRefs:n}}(t),Mr.set(t,e)),e}async function jr(t,e,n){const r=n?.maxSymbolicDepth??5,o=n?.maxPeelDepth??5,s=n?.peel??!1,i=Wr(t),a=await async function(t,e,n){const r=[];let o=e,s=0;for(;;){if("HEAD"!==o&&Re(o),r.includes(o))throw Ue([...r,o]);r.push(o);const e=await t.resolveDirect(o);if("missing"===e.kind)throw Le(o);if("direct"===e.kind)return e.id;if(s+=1,An(s,n))throw _e(s,r);o=e.target}}(i,e,r);return s?async function(t,e,n){let r=e,o=0;for(;;){const e=await Fr(t,r);if("tag"!==e.type)return r;if(o+=1,On(o,n))throw _e(o,[]);r=e.data.object}}(t,a,o):a}async function Br(t,e,n,r){const o=`${n}${vn}`;try{await t.fs.writeExclusive(o,r)}catch(t){if(zr(t))throw Ce(e);throw t}try{await t.fs.rename(o,n)}catch(e){try{await t.fs.rm(o)}catch(t){if(!Hr(t))throw t}throw e}}function zr(e){return e instanceof t.TsgitError&&"FILE_EXISTS"===e.data.code}function Hr(e){return e instanceof t.TsgitError&&"FILE_NOT_FOUND"===e.data.code}async function Vr(t){const e=(await qn(t)).user;return{name:void 0===e?"tsgit":e.name,email:void 0===e?"tsgit@localhost":e.email,timestamp:Math.floor(Date.now()/1e3),timezoneOffset:"+0000"}}async function Kr(t,e,n,r,o){if(!await async function(t,e){if(await xr(t,e))return!0;return function(t,e){return"always"===e.logAllRefUpdates||!1!==e.logAllRefUpdates&&(!0===e.logAllRefUpdates||!0!==e.bare)&&function(t){return"HEAD"===t||Ae.some(e=>t.startsWith(e))}(t)}(e,(await qn(t)).core??{})}(t,e))return;const s=await Vr(t);await yr(t,e,{oldId:n,newId:r,identity:s,message:De(o)})}const Gr="HEAD",Yr=new TextEncoder,Xr=e=>{if(e.signal?.aborted)throw t.operationAborted()},qr=async(e,n,r)=>{try{return((t,e,n)=>({ok:!0,id:e,type:n.type,size:rt(n,t.hashConfig),object:n}))(e,n,await Fr(e,n,r))}catch(e){if((e=>e instanceof t.TsgitError&&"OBJECT_NOT_FOUND"===e.data.code)(e))return(t=>({ok:!1,id:t,reason:"missing"}))(n);throw e}};async function Jr(t,e,n){const r=await Fr(t,e,n);if("blob"!==r.type)throw A("blob",r.type,e);return r}const Zr=new TextDecoder,Qr=(t,e)=>t.endsWith("/")?`${t}${e}`:`${t}/${e}`,to=async(e,n,r)=>!!await e.fs.exists(n)&&!await(async(e,n,r)=>{let o;try{o=await e.fs.read(n)}catch(e){if(e instanceof t.TsgitError&&"FILE_NOT_FOUND"===e.data.code)return!0;throw e}const s=(new TextEncoder).encode(`blob ${o.length}\0`),i=new Uint8Array(s.length+o.length);return i.set(s,0),i.set(o,s.length),await e.hash.hashHex(i)===r})(e,n,r),eo=async(t,e,n)=>{const r=Qr(e,n.path);if("update"===n.kind||"delete"===n.kind){if(void 0===n.previousId)return;return await to(t,r,n.previousId)?n.path:void 0}if("add"===n.kind)return await(async(t,e)=>t.fs.exists(e))(t,r)?n.path:void 0},no=async(t,e,n,r)=>{if(r===B.SYMLINK){const r=Zr.decode(n);return await t.fs.exists(e)&&await t.fs.rm(e),void await t.fs.symlink(r,e)}r!==B.GITLINK?(await t.fs.write(e,n),await t.fs.chmod(e,r===B.EXECUTABLE?493:420)):await t.fs.mkdir(e)},ro=async(t,e,n)=>{const r=Qr(e,n.path);if("noop"!==n.kind)if("delete"!==n.kind){if(void 0!==n.id){if(n.mode!==B.GITLINK){const e=await Jr(t,n.id);await no(t,r,e.content,n.mode)}else await no(t,r,new Uint8Array,n.mode);return(async(t,e,n,r,s)=>{const i=await t.fs.lstat(e);return{ctimeSeconds:Math.floor(i.ctimeMs/1e3),ctimeNanoseconds:Number(i.ctimeNs??0n)%1e9,mtimeSeconds:Math.floor(i.mtimeMs/1e3),mtimeNanoseconds:Number(i.mtimeNs??0n)%1e9,dev:i.dev,ino:i.ino,mode:s,uid:i.uid,gid:i.gid,fileSize:i.size,id:r,flags:o,path:n}})(t,r,n.path,n.id,n.mode)}}else await t.fs.exists(r)&&await t.fs.rm(r)},oo=async(e,n)=>{const{changeset:r,force:o,workdir:s}=n;if(!o){const n=await(async(t,e,n)=>{const r=[];for(const o of n.entries){const n=await eo(t,e,o);void 0!==n&&r.push(n)}return r})(e,s,r);if(n.length>0)throw t.checkoutOverwriteDirty(n)}const i=[];let a=0,c=0;for(const t of r.entries){const n=await ro(e,s,t);"delete"===t.kind?c+=1:"add"!==t.kind&&"update"!==t.kind||(a+=1,void 0!==n&&i.push(n)),"noop"!==t.kind&&e.progress.update("checkout:materialize",a+c,r.stats.add+r.stats.update+r.stats.delete,t.path)}return{writtenEntries:i,written:a,deleted:c}},so=(t,e,n)=>void 0===e&&void 0!==n?{kind:"add",path:t,mode:n.mode,id:n.id,previousId:void 0,previousMode:void 0}:void 0!==e&&void 0===n?{kind:"delete",path:t,mode:e.mode,id:void 0,previousId:e.id,previousMode:e.mode}:{kind:e.id===n.id&&e.mode===n.mode?"noop":"update",path:t,mode:n.mode,id:n.id,previousId:e.id,previousMode:e.mode},io=(t,e)=>{const n=(t=>{const e=new Map;for(const n of t.entries)0===n.flags.stage&&e.set(n.path,{id:n.id,mode:n.mode});return e})(t),r=(t=>{const e=new Map;for(const n of t)e.set(n.path,n);return e})(e),o=new Set;for(const t of n.keys())o.add(t);for(const t of r.keys())o.add(t);const s=[],i={add:0,update:0,delete:0,noop:0};for(const t of[...o].sort()){const e=so(t,n.get(t),r.get(t));s.push(e),i[e.kind]+=1}return{entries:s,stats:i}};async function*ao(t,e,n){const r={ctx:t,recursive:n?.recursive??!0,maxDepth:n?.maxDepth??1024,maxEntries:n?.maxEntries??ht},o="string"==typeof e?await async function(t,e){const n=await Fr(t,e);if("tree"!==n.type)throw A("tree",n.type,e);return n}(t,e):e;yield*co(r,{value:0},o,"",0,[])}async function*co(e,n,r,o,s,i){if(i.includes(r.id))throw new t.TsgitError({code:"TREE_CYCLE_DETECTED",id:r.id});if(function(t,e){return t>e}(s,e.maxDepth))throw O(s);const a=[...i,r.id];for(const i of r.entries){if(e.ctx.signal?.aborted)throw t.operationAborted();const r=""===o?i.name:`${o}/${i.name}`;if(n.value+=1,Ln(n.value,e.maxEntries))throw S(n.value,e.maxEntries);if(yield{path:r,id:i.id,mode:i.mode},!fo(e.recursive,i.mode))continue;const c=await Fr(e.ctx,i.id);"tree"===c.type&&(yield*co(e,n,c,r,s+1,a))}}function fo(t,e){return!!t&&K(e)}const uo=(t,e)=>t.filter(t=>e.has(t.path)),lo=(t,e,n)=>e.get(t)??n.get(t),ho=t=>{const e={add:0,update:0,delete:0,noop:0};for(const n of t)e[n.kind]+=1;return e},po=1048576,go=new TextDecoder,wo=async e=>{const n=bn(e.layout.gitDir);let r;try{r=await e.fs.read(n)}catch(e){if(e instanceof t.TsgitError&&"FILE_NOT_FOUND"===e.data.code)return;throw e}if(r.byteLength>po)throw t.sparsePatternFileTooLarge("info/sparse-checkout",r.byteLength,po);return go.decode(r)};async function mo(t,e){let n=Cn(e)?e:await jr(t,e),r=await Fr(t,n),o=0;for(;"commit"===r.type||"tag"===r.type;){if(o+=1,o>5)throw _e(o,[]);n="commit"===r.type?r.data.tree:r.data.object,r=await Fr(t,n)}if("tree"!==r.type)throw A("tree",r.type,n);return r}async function yo(t,e){if(e.length>ht)throw S(e.length,ht);return Gn(t,{type:"tree",id:"",entries:e})}const xo=t=>{let e=0;for(const n of t)"/"===n&&(e+=1);if(e>4096)throw O(e)},bo=async(t,e)=>{const{files:n,subdirs:r}=(t=>{const e=[],n=new Map;for(const r of t){const t=r.path.indexOf("/");if(-1===t){e.push(r);continue}const o=r.path.slice(0,t),s=r.path.slice(t+1),i=n.get(o),a={path:s,id:r.id,mode:r.mode};void 0===i?n.set(o,[a]):i.push(a)}return{files:e,subdirs:n}})(e),o=[];for(const t of n)o.push({name:t.path,id:t.id,mode:t.mode});for(const[e,n]of r){const r=await bo(t,n);o.push({name:e,id:r,mode:B.DIRECTORY})}return yo(t,o)},vo=new TextEncoder,Eo=new Set(["side-band-64k","side-band"]),ko=async(n,r,o)=>{const s=(e=>{if(0===e.wants.length)throw new t.TsgitError({code:"EMPTY_WANTS"});const n=[];e.wants.forEach((t,r)=>{n.push(((t,e)=>{const n=0===e.length?"":` ${e.join(" ")}`;return se.encode(`want ${t}${n}\n`)})(t,0===r?e.capabilities:[]))}),void 0!==e.depth&&n.push(se.encode(`deepen ${e.depth}\n`)),void 0!==e.filter&&n.push(se.encode(`filter ${e.filter}\n`));const r=Xt(n),o=0===e.haves.length?new Uint8Array(0):Xt(e.haves.map(pe)),s=e.done?ge:new Uint8Array(0),i=new Uint8Array(r.byteLength+o.byteLength+s.byteLength);let a=0;return i.set(r,a),a+=r.byteLength,i.set(o,a),a+=o.byteLength,i.set(s,a),i})({wants:o.wants,haves:o.haves,capabilities:o.capabilities,done:!0,...void 0!==o.depth?{depth:o.depth}:{},...void 0!==o.filter?{filter:o.filter}:{}}),i=Do(o.url),a=await r.request({url:i,method:"POST",headers:{"content-type":"application/x-git-upload-pack-request",accept:"application/x-git-upload-pack-result"},body:s,...void 0!==n.signal?{signal:n.signal}:{}});if(200!==a.statusCode)throw t.httpError(a.statusCode,`git-upload-pack returned ${a.statusCode}`);const c=Jt(e.readableStreamToAsyncIterable(a.body)),d=await(async(t,e)=>{const n=t[Symbol.asyncIterator](),r=!0===e.expectShallow?await(async t=>{const e={shallow:[],unshallow:[]};let n=await t.next();for(;!n.done;){if("data"!==n.value.kind)return{shallow:e.shallow,unshallow:e.unshallow};const r=oe.decode(n.value.payload);if(!be(r,e))return ve.set(t,n.value),{shallow:e.shallow,unshallow:e.unshallow};n=await t.next()}return{shallow:e.shallow,unshallow:e.unshallow}})(n):{shallow:[],unshallow:[]},o=await(async t=>{const e=[];let n=!1;const r=ve.get(t);void 0!==r&&ve.delete(t);let o=void 0!==r?{done:!1,value:r}:await t.next();for(;!o.done;){if("data"!==o.value.kind)return{acks:e,nak:n,buffered:[o.value]};const r=oe.decode(o.value.payload);if(r.startsWith("ACK "))e.push(we(r)),o=await t.next();else{if(!r.startsWith("NAK"))return{acks:e,nak:n,buffered:[o.value]};n=!0,o=await t.next()}}return{acks:e,nak:n,buffered:[]}})(n);return{acks:o.acks,nak:o.nak,shallow:r.shallow,unshallow:r.unshallow,packBody:{[Symbol.asyncIterator]:()=>async function*(t,e,n){const r=async function*(t,e){for(const e of t)yield e;let n=await e.next();for(;!n.done;)yield n.value,n=await e.next()}(t,e);if(n.sideBand){const t=n.onProgress?{onProgress:n.onProgress}:{};return void(yield*re(r,t))}yield*async function*(t){for await(const e of t){if("data"!==e.kind)return;yield e.payload}}(r)}(o.buffered,n,e)}}})(c,{sideBand:Io(o.capabilities),onProgress:e=>n.progress.update(o.progressOp,0,void 0,t.sanitize(e)),expectShallow:void 0!==o.depth});return{packBytes:await To(n,o,d.packBody),shallow:d.shallow,unshallow:d.unshallow}},To=async(t,e,n)=>{const r=t.config?.maxResponseBytes??536870912,o=[];let s=0,i=0;for await(const a of n){if(s+a.byteLength>r)throw $o(r);o.push(a),s+=a.byteLength,s-i>=65536&&(t.progress.update(e.progressOp,s),i=s)}0!==s&&s!==i&&t.progress.update(e.progressOp,s);const a=new Uint8Array(s);let c=0;for(const t of o)a.set(t,c),c+=t.byteLength;return a},$o=e=>new t.TsgitError({code:"PACK_TOO_LARGE",objectCount:0,limit:e}),Do=t=>{let e;try{e=new URL(t)}catch{throw Pt("invalid URL")}if(""!==e.hash)throw Pt("fragment must not be set");const n=e.pathname.endsWith("/")?e.pathname.slice(0,-1):e.pathname;return`${e.protocol}//${e.host}${n}/git-upload-pack${e.search}`},Io=t=>t.some(t=>Eo.has(t)),Ao=async(e,n)=>{const r=function(t){if(t.length<12)throw Xe("truncated: pack header requires 12 bytes");const e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=e.getUint32(0);if(n!==sn)throw Xe(`invalid magic: expected 0x5041434b, got 0x${n.toString(16).padStart(8,"0")}`);const r=e.getUint32(4);if(2!==r)throw Xe(`unsupported version: expected 2, got ${r}`);return{version:r,objectCount:e.getUint32(8)}}(n),o=e.config?.maxObjectsPerPack??5e7;if(r.objectCount>o)throw new t.TsgitError({code:"PACK_TOO_LARGE",objectCount:r.objectCount,limit:o});const s=n.length-e.hash.digestLength,i=[];let a=12;for(let t=0;t<r.objectCount;t+=1){const t=an(n,a,e.hashConfig),r=await e.compressor.streamInflate(n,t.dataOffset),o=t.dataOffset+r.bytesConsumed;if(o>s)throw Xe("entry extends past pack trailer");const c=Ye(n.subarray(a,o));i.push({offset:a,header:t,inflated:r.output,crc32:c}),a=o}if(a!==s)throw Xe("extra bytes between last entry and trailer");return i},Oo=async(t,e)=>{const n=new Map,r=new Map;let o=e;for(;o.length>0;){const e=[];let s=!1;for(const i of o){const o=await _o(t,i,n,r);void 0===o?e.push(i):(n.set(o.offset,o),r.set(o.id,o),s=!0)}if(!s)throw So(e);o=e}return[...n.values()]},So=t=>{const e=t[0];if(void 0===e)return Xe("unresolved deltas: empty queue (internal invariant violated)");const n=Lo(e.header);return Xe(void 0!==n?`unresolved REF_DELTA: base ${n} not in pack`:`unresolved entry at offset ${e.offset}`)},Lo=t=>{if(!Co(t)&&6!==t.type)return t.baseId},_o=async(t,e,n,r)=>{if(Co(e.header)){const n=No(e.header.type);return{id:await Ro(t,n,e.inflated),type:n,content:e.inflated,crc32:e.crc32,offset:e.offset}}if(6===e.header.type){const r=e.offset-e.header.baseDistance;if(r<12)throw Xe(`OFS_DELTA at offset ${e.offset} points before pack body: distance ${e.header.baseDistance}`);const o=n.get(r);if(void 0===o)return;return Uo(t,e,o)}const o=r.get(e.header.baseId);if(void 0!==o)return Uo(t,e,o)},Uo=async(t,e,n)=>{const r=on(n.content,e.inflated);return{id:await Ro(t,n.type,r),type:n.type,content:r,crc32:e.crc32,offset:e.offset}},Co=t=>1===t.type||2===t.type||3===t.type||4===t.type,No=t=>{switch(t){case 1:return"commit";case 2:return"tree";case 3:return"blob";case 4:return"tag"}},Ro=async(t,e,n)=>{const r=vo.encode(`${e} ${n.length}\0`),o=new Uint8Array(r.length+n.length);return o.set(r,0),o.set(n,r.length),t.hash.hashHex(o)},Po=async(t,e,n,r,o,s)=>{const i=`${t.layout.gitDir}/objects/pack`;await t.fs.mkdir(i);const a=`${i}/pack-${r}.pack`,c=`${i}/pack-${r}.idx`;return await t.fs.writeExclusive(a,e),await t.fs.writeExclusive(c,n),s&&await t.fs.writeExclusive(`${i}/pack-${r}.promisor`,new Uint8Array(0)),{packPath:a,idxPath:c,objectCount:o,packSha:r}},Fo=t=>`${t.layout.gitDir}/shallow`,Mo=e=>e instanceof t.TsgitError&&"FILE_NOT_FOUND"===e.data.code,Wo=async t=>{let e;try{e=await t.fs.readUtf8(Fo(t))}catch(t){if(Mo(t))return new Set;throw t}const n=new Set;for(const t of e.split("\n")){const e=t.trim();0!==e.length&&Bo(e)&&n.add(P.from(e))}return n},jo=/^[0-9a-f]{40}([0-9a-f]{24})?$/i,Bo=t=>jo.test(t),zo=(t,e,n)=>{const r=sr(t.trim());return void 0!==r&&r.section.toLowerCase()===e.toLowerCase()&&(void 0===n?void 0===r.subsection||""===r.subsection:r.subsection===n)},Ho=t=>{const e=t.trim();return e.startsWith("[")&&e.endsWith("]")},Vo=(t,e)=>{const n=t.indexOf("=");return-1!==n&&t.slice(0,n).trim().toLowerCase()===e.toLowerCase()},Ko=(t,e)=>`\t${t} = ${e}`,Go=(e,n)=>{if(/[\n\r\0]/.test(n))throw t.invalidOption("config",`${e} must not contain a newline or NUL`)},Yo=(e,n,r,o,s)=>{(e=>{if(/[\n\r\0\]"\\]/.test(e))throw t.invalidOption("config","section must not contain a newline, NUL, bracket, quote, or backslash")})(n),Go("key",o),Go("value",s),void 0!==r&&(e=>{if(Go("subsection",e),/["\\\]]/.test(e))throw t.invalidOption("config","subsection must not contain a quote, backslash, or bracket")})(r);const i=e.split("\n"),a=((t,e,n)=>{for(let r=0;r<t.length;r+=1)if(zo(t[r],e,n))return r;return-1})(i,n,r);if(-1===a)return`${""===e?"":e.endsWith("\n")?e:`${e}\n`}${((t,e)=>void 0===e?`[${t}]`:`[${t} "${e}"]`)(n,r)}\n${Ko(o,s)}\n`;const c=((t,e,n)=>{for(let r=e+1;r<t.length;r+=1){const e=t[r];if(Ho(e))return-1;if(Vo(e,n))return r}return-1})(i,a,o);return-1!==c?((t,e,n)=>[...t.slice(0,e),n,...t.slice(e+1)])(i,c,Ko(o,s)).join("\n"):((t,e,n)=>[...t.slice(0,e+1),n,...t.slice(e+1)])(i,a,Ko(o,s)).join("\n")},Xo=async(t,e)=>{const n=`${t.layout.gitDir}/config`,r=await qo(t,n),o=e.reduce((t,e)=>Yo(t,e.section,e.subsection,e.key,e.value),r);await t.fs.writeUtf8(n,o),Jn(t)},qo=async(e,n)=>{try{return await e.fs.readUtf8(n)}catch(e){if(e instanceof t.TsgitError&&"FILE_NOT_FOUND"===e.data.code)return"";throw e}},Jo=(t,e)=>{const n=`${e.gitDir}/hooks`;return void 0===t?n:t.startsWith("~/")?void 0===e.homeDir?n:`${e.homeDir}/${t.slice(2)}`:(r=t).startsWith("/")||/^[A-Za-z]:[\\/]/.test(r)?t:`${e.workDir}/${t}`;var r};async function Zo(t,e){if(void 0!==e)return"string"==typeof e?mo(t,e):e}async function*Qo(e,n){!function(e){if(0===e.from.length)throw t.invalidWalkInput("empty from");if(function(t){return t.length>1024}(e.from))throw t.invalidWalkInput("too many seeds")}(n);const r=n.order??"topo",o=n.ignoreMissing??!1,s=n.verifyHash??!0,i={queue:[...n.from],visited:new Set,missing:new Set,until:new Set(n.until??[]),shallow:n.shallow??new Set};for(;i.queue.length>0;){if(e.signal?.aborted)throw t.operationAborted();const n=ns(i.queue);if(i.visited.has(n)||i.until.has(n))continue;const a=await ts(e,n,s,o,i.missing);void 0!==a&&(i.visited.add(n),yield a,es(i,a,r))}}async function ts(t,e,n,r,o){try{const r=await Fr(t,e,{verifyHash:n});if("commit"!==r.type)return;return r}catch(t){if(r&&rs(t))return void o.add(e);throw t}}function es(e,n,r){if(e.shallow.has(n.id))return;const o="first-parent"===r&&n.data.parents.length>0?[n.data.parents[0]]:n.data.parents;for(const n of o)if(!(e.visited.has(n)||e.missing.has(n)||e.until.has(n))){if(e.queue.length>=65536)throw t.invalidWalkInput("walk queue exceeds bound");e.queue.push(n)}}function ns(t,e){return t.shift()}function rs(e){return e instanceof t.TsgitError&&"OBJECT_NOT_FOUND"===e.data.code}const os=async(t,e,n)=>{const r=[];for(const o of e){const e=await Fr(t,o);if("commit"===e.type)for(const t of e.data.parents)n.has(t)||(n.add(t),r.push(t))}e.length=0;for(const t of r)e.push(t);return e.length>0},ss=(t,e)=>{const n=[];for(const r of t)e.has(r)&&n.push(r);return n},is=async(t,e)=>{const n=nt(e,t.hashConfig),r=n.indexOf(0),o=n.subarray(r+1),s=await t.compressor.deflate(o);return{type:as(e.type),uncompressedSize:o.length,compressedData:s}},as=t=>{switch(t){case"commit":return 1;case"tree":return 2;case"blob":return 3;case"tag":return 4}},cs=(e,n)=>{if(e.emitted.has(n))return!1;if(e.emitted.size>=e.cap)throw new t.TsgitError({code:"PACK_TOO_LARGE",objectCount:e.emitted.size+1,limit:e.cap});return e.emitted.add(n),!0},ds=async(t,e,n)=>{let r=e;for(let e=0;e<16;e+=1){const e=await Fr(t,r);if("tag"!==e.type)return r;n(r),r=e.data.object}return r};async function fs(t,e,n){const r=await t.fs.readdir(e),o=[];for(const s of r){const r=`${n}/${s.name}`;s.isDirectory?o.push(...await fs(t,`${e}/${s.name}`,r)):o.push(r)}return o}const us=(t,e)=>void 0!==e?{...t,stage:0,skipWorktree:!1}:{...t,stage:0},ls=(t,e)=>t.path<e.path?-1:t.path>e.path?1:0,hs=M.from("HEAD"),ps=new TextDecoder;async function*gs(t,e,n,r,o,s,i,a){const c=await ys(t,e);for await(const d of ao(t,e,{recursive:!0})){if(d.mode!==B.GITLINK)continue;const e=ms(o,d.path),f=c.get(d.path);if(yield ws(f,d.path,d.id,e,n,r),!i)continue;if(n>=a)continue;const u=await ks(t,f?.name,d.path,s);if(void 0===u)continue;const l=await Ts(u,d.id);if(void 0===l)continue;const h=new Set(s).add(u.layout.gitDir);yield*gs(u,l,n+1,e,e,h,i,a)}}const ws=(t,e,n,r,o,s)=>({name:t?.name??e,path:r,commit:n,depth:o,...void 0!==t?.url?{url:t.url}:{},...void 0!==t?.branch?{branch:t.branch}:{},...void 0!==s?{parent:s}:{}}),ms=(t,e)=>""===t?e:`${t}/${e}`,ys=async(t,e)=>{const n=e.entries.find(t=>".gitmodules"===t.name);if(void 0===n)return new Map;if(n.mode!==B.REGULAR&&n.mode!==B.EXECUTABLE)return new Map;const r=await Jr(t,n.id,{maxBytes:1048576}),o=ps.decode(r.content),s=new Map;for(const t of er(o)){const e=bs(t);void 0!==e&&void 0!==e.path&&s.set(e.path,e)}return s},xs=(t,e)=>{const n=e.key.toLowerCase();return"path"===n?{...t,path:e.value}:"url"===n?{...t,url:e.value}:"branch"===n?{...t,branch:e.value}:t},bs=t=>{if("submodule"!==t.section)return;if(void 0===t.subsection)return;if(Es(t.subsection))return;const e=t.entries.reduce(xs,{});return{name:t.subsection,...void 0!==e.path?{path:e.path}:{},...void 0!==e.url?{url:e.url}:{},...void 0!==e.branch?{branch:e.branch}:{}}},vs=/^[A-Za-z]:/,Es=t=>{if(t.startsWith("-"))return!0;if(t.includes("\\"))return!0;if((t=>{for(let e=0;e<t.length;e+=1){const n=t.charCodeAt(e);if(n<=31)return!0;if(127===n)return!0}return!1})(t))return!0;if(vs.test(t))return!0;for(const e of t.split("/")){if(""===e)return!0;if("."===e)return!0;if(".."===e)return!0}return!1},ks=async(t,e,n,r)=>{if(void 0===e)return;const o=`${t.layout.gitDir}/modules/${e}`;if(r.has(o))return;if(!await t.fs.exists(`${o}/HEAD`))return;const s=`${t.layout.workDir}/${n}`,{promisor:i,hooks:a,...c}=t;return Object.freeze({...c,layout:Object.freeze({workDir:s,gitDir:o,bare:!1,...void 0!==t.layout.homeDir?{homeDir:t.layout.homeDir}:{}}),cwd:s})},Ts=async(e,n)=>{try{return await mo(e,n)}catch(e){if(e instanceof t.TsgitError&&"OBJECT_NOT_FOUND"===e.data.code)return;throw e}};exports.AGENT=Lt,exports.CLIENT_CAPABILITIES_FETCH=_t,exports.CLIENT_CAPABILITIES_PUSH=Ut,exports.FILE_MODE=B,exports.MAX_FLAT_TREE_ENTRIES=ht,exports.MAX_GITIGNORE_BYTES=1048576,exports.MAX_HAVES=256,exports.MAX_SPARSE_PATTERN_FILE_BYTES=po,exports.MAX_WALK_SEEDS=1024,exports.MAX_WORKING_TREE_BLOB_BYTES=268435456,exports.ObjectId=P,exports.RefName=M,exports.STAGE0_FLAGS=o,exports.ZERO_OID=F,exports.appendReflog=yr,exports.applyChangeset=oo,exports.buildConeSpec=t=>{const e=new Set(t.map(Me)),n=new Set;for(const t of e)for(const r of Fe(t))e.has(r)||n.add(r);return{mode:"cone",recursive:e,parents:n}},exports.buildDiscoveryUrl=(t,e)=>{let n;try{n=new URL(t)}catch{throw Pt("invalid URL")}if(""!==n.hash)throw Pt("fragment must not be set");const r=n.pathname.endsWith("/")?n.pathname.slice(0,-1):n.pathname;return`${n.protocol}//${n.host}${r}/info/refs${""===n.search?`?service=${e}`:`${n.search}&service=${e}`}`},exports.buildIndexFromTree=async(t,e)=>{const n=(t=>{const e=new Map;for(const n of t.entries)0===n.flags.stage&&e.set(n.path,n);return e})(e.currentIndex),r=await(async(t,e)=>{const n=[];for await(const r of ao(t,e))r.mode!==B.DIRECTORY&&n.push({path:r.path,id:r.id,mode:r.mode});return n})(t,e.targetTree),i=r.map(t=>((t,e,n)=>{if(void 0!==n&&!n(t.path))return s(t);const r=e.get(t.path);return void 0!==r&&r.id===t.id&&r.mode===t.mode?{...r,flags:us(r.flags,n)}:(t=>({ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,mode:t.mode,uid:0,gid:0,fileSize:0,id:t.id,flags:o,path:t.path}))(t)})(t,n,e.sparse));return i.sort(ls),i},exports.buildPack=async(t,e)=>{const n=[];for(const r of e.oids){const e=await Fr(t,r);n.push(await is(t,e))}const r=function(t){const e=function(t,e){const n=new Uint8Array(12),r=new DataView(n.buffer);return r.setUint32(0,sn),r.setUint32(4,2),r.setUint32(8,e),n}(0,t.length),n=[e],r=[];let o=e.length;for(const e of t){const t=pn(cn(e.type,e.uncompressedSize),e.compressedData),s=Ye(t);r.push({crc32:s,offset:o}),n.push(t),o+=t.length}return{data:gn(n),entries:r}}(n),o=await t.hash.hash(r.data),s=a(o),i=new Uint8Array(r.data.length+o.length);return i.set(r.data,0),i.set(o,r.data.length),{bytes:i,sha:s,objectCount:n.length}},exports.buildSparseMatcher=Ke,exports.catFileBatch=async function*(t,e,n){const r=void 0===n?.maxBytes?void 0:{maxBytes:n.maxBytes};for await(const n of e){Xr(t);const e=await qr(t,n,r);yield e,Xr(t)}},exports.comparePaths=function(t,e){return f(mt.encode(t),mt.encode(e))},exports.compileGlob=It,exports.computeChangeset=io,exports.containsGlob=t=>t.includes("*")||t.includes("?"),exports.createCommit=async function(t,e){if(e.message.includes("\0"))throw k("message contains NUL");if(n=e.message,(new TextEncoder).encode(n).byteLength>16777216)throw k("message exceeds 16 MiB");var n;if(void 0!==e.gpgSignature&&En(e.gpgSignature))throw k("gpgSignature contains header-boundary chars");if(void 0!==e.extraHeaders)for(const t of e.extraHeaders){if(kn(t.key))throw k("extraHeader key contains forbidden characters");if(En(t.value))throw k("extraHeader value contains header-boundary chars")}return C(e.author),C(e.committer),Gn(t,{type:"commit",id:"",data:{tree:e.tree,parents:e.parents,author:e.author,committer:e.committer,message:e.message,...void 0!==e.gpgSignature?{gpgSignature:e.gpgSignature}:{},extraHeaders:e.extraHeaders??[]}})},exports.createPackRegistry=Nr,exports.decodePktStream=Jt,exports.deleteReflog=br,exports.diffTrees=async function(t,e,n,r){const[o,s]=await Promise.all([Zo(t,e),Zo(t,n)]),i=function(t,e){const n=kt(t),r=kt(e),o=[];let s=0,i=0;for(;s<n.length&&i<r.length;){const t=n[s],e=r[i],a=Q(t,e);if(a<0)o.push(vt(t)),s++;else if(a>0)o.push(bt(e)),i++;else{const n=Et(t,e);void 0!==n&&o.push(n),s++,i++}}for(;s<n.length;)o.push(vt(n[s])),s++;for(;i<r.length;)o.push(bt(r[i])),i++;return{changes:o}}(o,s);return!0===r?.detectRenames?function(t,e={}){const n=e.limit??1e3,r=e.maxSameIdDeletes??100,{adds:o,deletes:s,other:i}=function(t){const e=[],n=[],r=[];for(const o of t)"add"===o.type?e.push(o):"delete"===o.type?n.push(o):r.push(o);return{adds:e,deletes:n,other:r}}(t.changes);if(o.length*s.length>n)return t;const a=function(t,e){const n=new Map;for(const e of t){const t=n.get(e.oldId);void 0===t?n.set(e.oldId,[e]):t.push(e)}const r=new Map;for(const[t,o]of n)o.length<=e&&r.set(t,o);return r}(s,r),c=new Set,d=[],f=[];for(const t of o){const e=xt(t,a);void 0===e?f.push(t):(d.push(e.rename),c.add(e.consumedDelete))}const u=s.filter(t=>!c.has(t));return{changes:yt([...f,...u,...d,...i],pt)}}(i,r.renameOptions):i},exports.emptyReceiveUpdates=()=>new t.TsgitError({code:"EMPTY_RECEIVE_UPDATES"}),exports.encodePktStream=Xt,exports.enumeratePushObjects=async function*(t,e){const n={emitted:new Set,cap:e.maxObjects??1e6},r=await(async(t,e,n)=>{const r=[];for(const o of n){const n=await ds(t,o,t=>{cs(e,t)});r.push(n)}return r})(t,n,e.wants);for(const t of n.emitted)yield t;yield*async function*(t,e,n,r){for await(const o of Qo(t,{from:n,until:r,ignoreMissing:!0})){cs(e,o.id)&&(yield o.id),cs(e,o.data.tree)&&(yield o.data.tree);for await(const n of ao(t,o.data.tree,{recursive:!0}))Sn(n.mode)||cs(e,n.id)&&(yield n.id)}}(t,n,r,e.haves)},exports.enumerateRefs=async function(t){const e=new Set;await t.fs.exists(`${t.layout.gitDir}/HEAD`)&&e.add("HEAD");for(const n of await async function(t){const e=`${t.layout.gitDir}/refs`;return await t.fs.exists(e)?fs(t,e,"refs"):[]}(t))e.add(n);for(const n of(await Wr(t).getPackedRefs()).entries)e.add(n.name);return[...e]},exports.fetchPack=async(t,e,n)=>{t.progress.start(n.progressOp);try{const r=await ko(t,e,n);if(0===r.packBytes.length)return{packPath:"",idxPath:"",objectCount:0,packSha:"",shallow:r.shallow,unshallow:r.unshallow};const o=await(async(t,e)=>{const n=e.hash.digestLength;if(t.length<12+n)throw Xe("trailer mismatch: pack too short for header + trailer");const r=t.length-n,o=t.subarray(0,r),s=t.subarray(r),i=await e.hash.hashHex(o),c=a(s);if(i!==c)throw Xe(`trailer mismatch: expected ${i}, got ${c}`);return i})(r.packBytes,t),s=await(async(t,e)=>{const n=await Ao(t,e);return(await Oo(t,n)).slice().sort((t,e)=>t.offset-e.offset).map(t=>({id:t.id,crc32:t.crc32,offset:t.offset}))})(t,r.packBytes),i=await(async(t,e,n)=>{const r=function(t,e){if(20!==e.length)throw qe(`packChecksum must be 20 bytes, got ${e.length}`);const n=t.map(t=>({shaBytes:c(t.id),entry:t}));n.sort((t,e)=>f(t.shaBytes,e.shaBytes));const r=n.length;let o=0;for(const t of n)t.entry.offset>2147483647&&(o+=1);const s=20*r,i=4*r,a=4*r,d=1032+s+i+a+8*o+20,u=new Uint8Array(d),l=new DataView(u.buffer);l.setUint32(0,4285812579),l.setUint32(4,2);const h=new Uint32Array(256);for(const{shaBytes:t}of n)h[t[0]]+=1;const p=new Uint32Array(256);let g=0;for(let t=0;t<256;t++)g+=h[t],p[t]=g;for(let t=0;t<256;t++)l.setUint32(8+4*t,p[t]);for(let t=0;t<r;t++)u.set(n[t].shaBytes,1032+20*t);const w=1032+s;for(let t=0;t<r;t++)l.setUint32(w+4*t,n[t].entry.crc32);const m=w+i;let y=0;const x=m+a;for(let t=0;t<r;t++){const e=n[t].entry.offset;if(e>2147483647){l.setUint32(m+4*t,2147483648|y);const n=Math.floor(e/4294967296),r=e>>>0;l.setUint32(x+8*y,n),l.setUint32(x+8*y+4,r),y+=1}else l.setUint32(m+4*t,e)}return u.set(e,d-20),u}(e.map(t=>({id:t.id,crc32:t.crc32,offset:t.offset})),c(n)),o=c(await t.hash.hashHex(r)),s=new Uint8Array(r.length+o.length);return s.set(r,0),s.set(o,r.length),s})(t,s,o);return{...await Po(t,r.packBytes,i,o,s.length,!0===n.promisor),shallow:r.shallow,unshallow:r.unshallow}}finally{t.progress.end(n.progressOp)}},exports.getRefStore=Wr,exports.getRepoRoot=t=>t.layout.workDir,exports.indexPath=yn,exports.invalidBaseUrl=Pt,exports.invalidFilterSpec=(e,n)=>new t.TsgitError({code:"INVALID_FILTER_SPEC",spec:e,reason:n}),exports.invalidReportStatus=e=>new t.TsgitError({code:"INVALID_REPORT_STATUS",line:e}),exports.invalidateConfigCache=Jn,exports.isSameKind=wt,exports.isWorkingTreeDirty=to,exports.listReflogs=async function(t){const e=`${t.layout.gitDir}/logs`;return await t.fs.exists(e)?vr(t,e,""):[]},exports.loadSparseMatcher=async t=>{const e=await qn(t);if(!0!==e.core?.sparseCheckout)return;const n=!0===e.core.sparseCheckoutCone,r=await wo(t),o=Ve(r??"",n);return o.degraded&&void 0!==r&&t.logger?.warn?.(".git/info/sparse-checkout is not cone-shaped; falling back to non-cone matching"),Ke(o.spec)},exports.lockSuffix=vn,exports.looksLikeObjectId=Cn,exports.looseObjectPath=wn,exports.materializeTree=async(t,e)=>{const n=await(async(t,e)=>{const n=[];for await(const r of ao(t,e))r.mode!==B.DIRECTORY&&n.push({path:r.path,id:r.id,mode:r.mode});return n})(t,e.targetTree),r=((t,e)=>{if(void 0!==e.paths)return{target:uo(t,e.paths),indexForDiff:{...e.currentIndex,entries:uo(e.currentIndex.entries,e.paths)},excluded:[]};const n=e.sparse;if(void 0!==n){const r=[],o=[];for(const e of t)(n(e.path)?r:o).push(e);return{target:r,indexForDiff:{...e.currentIndex,entries:e.currentIndex.entries.filter(t=>!t.flags.skipWorktree)},excluded:o}}return{target:t,indexForDiff:e.currentIndex,excluded:[]}})(n,e),o=io(r.indexForDiff,r.target),i=!0===e.forceRewriteAll?(t=>{const e=t.entries.map(t=>"noop"===t.kind?{...t,kind:"update"}:t);return{entries:e,stats:ho(e)}})(o):o,a=await oo(t,{changeset:i,force:e.force??!1,workdir:t.layout.workDir}),c=((t,e,n,r)=>{const o=(t=>{const e=new Map;for(const n of t)e.set(n.path,n);return e})(t),s=(t=>{const e=new Map;for(const n of t.entries)0===n.flags.stage&&e.set(n.path,n);return e})(e),i=((t,e)=>{if(void 0===e)return[];const n=[];for(const[r,o]of t)e.has(r)||n.push(o);return n})(s,r);for(const t of n){const e=lo(t.path,o,s);void 0!==e&&i.push(e)}return i.sort((t,e)=>t.path<e.path?-1:1),i})(a.writtenEntries,e.currentIndex,r.target,e.paths);var d;return{newIndexEntries:0===r.excluded.length?c:(d=[...c,...r.excluded.map(s)],[...d].sort(ut)),written:a.written,deleted:a.deleted}},exports.mergeBase=async(t,e,n)=>{if(e===n)return e;const r=new Set([e]),o=new Set([n]),s=[e],i=[n];for(;;){const e=await os(t,s,r),n=await os(t,i,o),a=ss(r,o);if(a.length>0)return[...a].sort()[0];if(!e&&!n)break}},exports.negotiateCapabilities=(t,e)=>{const n=new Map;for(const e of t)n.set(Ct(e),e);const r=[];for(const t of e){const e=Ct(t),o=n.get(e);void 0!==o&&r.push(o)}return r},exports.objectNotFound=D,exports.parseAdvertisedRefs=async(t,e)=>{const n=t[Symbol.asyncIterator]();try{await(async(t,e)=>{const n=await t.next();if(n.done||"data"!==n.value.kind)throw Ft(e,"");const r=de(oe.decode(n.value.payload)),o=ae.exec(`${r}\n`),s=o?.groups?.service;if(void 0===s)throw Ft(e,r);if(s!==e)throw Ft(e,s);const i=await t.next();if(i.done||"flush"!==i.value.kind)throw Ft(e,s)})(n,e);const{capabilities:t,refs:r}=await(async t=>{const e={refs:[],byName:new Map};let n,r=await t.next();for(;!r.done&&"data"===r.value.kind;){if(e.refs.length>=ce)throw Bt(e.refs.length+1,ce);const o=de(oe.decode(r.value.payload));n=he(e,n,o),r=await t.next()}return{capabilities:n??[],refs:e.refs}})(n),o=((t,e)=>{const n=e.find(t=>"HEAD"===t.name);if(n)return n;const r=t.find(t=>t.startsWith("symref=HEAD:"));if(!r)return;const o=r.slice(12),s=e.find(t=>t.name===o);return s?{name:"HEAD",id:s.id}:void 0})(t,r);return o?{capabilities:t,refs:r,head:o}:{capabilities:t,refs:r}}finally{await(n.return?.())}},exports.parseGitignore=t=>{const e=[];for(const n of t.split("\n")){const t=St(n);if(void 0===t)continue;const{negated:r,anchored:o,directoryOnly:s,cleanPattern:i}=t;e.push({pattern:Ot(At(n)),negated:r,directoryOnly:s,anchored:o,compiled:It(i,{anchored:o})})}return e},exports.parseLooseRef=Pe,exports.parseSideBand=re,exports.parseSparseCheckout=Ve,exports.readBlob=Jr,exports.readConfig=qn,exports.readIndex=async function(t){const e=yn(t.layout.gitDir);if(!await t.fs.exists(e))return{version:2,entries:[],extensions:[]};if(Dn((await t.fs.stat(e)).size))throw n(Tn);const o=await t.fs.read(e);if(Dn(o.length))throw n(Tn);const s=t.hashConfig.digestLength;if(o.length<s)throw n("file is shorter than the hash trailer");const i=o.subarray(0,o.length-s),c=a(o.subarray(o.length-s));if(await t.hash.hashHex(i)!==c)throw n("index trailer checksum mismatch");return function(t){if(t.length<12)throw n("truncated header");const e=new DataView(t.buffer,t.byteOffset,t.byteLength);if(1145655875!==e.getUint32(0))throw n("invalid signature: expected DIRC");const o=e.getUint32(4);if(2!==o&&3!==o)throw n(`unsupported version: ${o}`);const s=e.getUint32(8);if(62*s>t.length-12-20)throw n(`entry count ${s} exceeds file capacity`);let i=12;const c=[];for(let n=0;n<s;n++){const n=i;if(i+62>t.length-20)throw r(i,"truncated entry");const s=e.getUint32(i),d=e.getUint32(i+4),f=e.getUint32(i+8),u=e.getUint32(i+12),l=e.getUint32(i+16),h=e.getUint32(i+20),p=e.getUint32(i+24),w=e.getUint32(i+28),m=e.getUint32(i+32),y=e.getUint32(i+36),x=a(t.subarray(i+40,i+60)),b=e.getUint16(i+60),{flags:v,extendedSize:E}=dt(e,i,o,t.length),k=V(p.toString(8));i+=62+E;const T=ft(t,i);if(-1===T)throw r(n,"missing NUL terminator");const $=4095&b,D=g(t.subarray(i,4095===$?T:i+$));ct(D,n),i=T+1,i=n+(i-n+7&-8),c.push({ctimeSeconds:s,ctimeNanoseconds:d,mtimeSeconds:f,mtimeNanoseconds:u,dev:l,ino:h,mode:k,uid:w,gid:m,fileSize:y,id:x,flags:v,path:W.from(D)})}const d=function(t,e,n){const o=[],s=t.length-20;for(;e+8<=s;){const i=g(t.subarray(e,e+4)),a=n.getUint32(e+4);if(e+8+a>s)throw r(e,"extension size exceeds remaining bytes");const c=i.charCodeAt(0);if(c>=97&&c<=122){const t=i.replace(/[^\x20-\x7e]/g,"?");throw r(e,`mandatory extension '${t}' not supported`)}const d=t.slice(e+8,e+8+a);o.push({signature:i,data:d}),e+=8+a}return o}(t,i,e);return{version:o,entries:c,extensions:d}}(o)},exports.readObject=Fr,exports.readReflog=async function(t,e){const n=xn(t.layout.gitDir,e);if(!await t.fs.exists(n))return[];if((await t.fs.stat(n)).size>16777216)throw Ee("reflog file exceeds 16777216 bytes");return(await t.fs.readUtf8(n)).split("\n").filter(t=>""!==t).map($e)},exports.readShallow=Wo,exports.readSparsePatternText=wo,exports.readTree=mo,exports.recordRefUpdate=Kr,exports.refNotFound=Le,exports.reflogEntryOutOfRange=(e,n,r)=>new t.TsgitError({code:"REFLOG_ENTRY_OUT_OF_RANGE",ref:e,requested:n,available:r}),exports.reflogExists=xr,exports.reflogNotFound=e=>new t.TsgitError({code:"REFLOG_NOT_FOUND",ref:e}),exports.refspecInvalid=(e,n)=>new t.TsgitError({code:"REFSPEC_INVALID",raw:e,reason:n}),exports.remoteFilterUnsupported=()=>new t.TsgitError({code:"REMOTE_FILTER_UNSUPPORTED"}),exports.resolveRef=jr,exports.resolveReflogIdentity=Vr,exports.runHook=async(e,n,r={})=>{const o=e.hooks;if(void 0===o)return;const s=await qn(e),i={name:n,hooksDir:Jo(s.core?.hooksPath,e.layout),workDir:e.layout.workDir,gitDir:e.layout.gitDir,args:r.args??[],stdin:r.stdin??"",...void 0!==e.signal?{signal:e.signal}:{}},a=await o.run(i);if("skipped"!==a.kind&&0!==a.exitCode)throw t.hookFailed(n,a.exitCode,a.stderr)},exports.serializeCone=t=>{const e=[...t.parents,...t.recursive].sort();let n="";for(const r of e)n+=`/${r}/\n`,t.parents.has(r)&&(n+=`!/${r}/*/\n`);return"/*\n!/*/\n"+n},exports.serializeIndex=function(t){const e=[...t.entries].sort(ut),n=e.map(t=>{const e=p(t.path),n=t.flags.skipWorktree||t.flags.intentToAdd;return{entry:t,pathBytes:e,extended:n,paddedLength:62+(n?2:0)+e.length+8&-8}}),r=t.extensions.map(t=>({ext:t,sigBytes:p(t.signature),totalLength:8+t.data.length})),o=12+n.reduce((t,e)=>t+e.paddedLength,0)+r.reduce((t,e)=>t+e.totalLength,0),s=new Uint8Array(o),i=new DataView(s.buffer),a=n.some(t=>t.extended)?3:2;i.setUint32(0,1145655875),i.setUint32(4,a),i.setUint32(8,e.length);let c=12;for(const{entry:t,pathBytes:e,extended:r,paddedLength:o}of n)lt(s,i,c,t,e,r),c+=o;for(const{ext:t,sigBytes:e,totalLength:n}of r)s.set(e,c),i.setUint32(c+4,t.data.length),s.set(t.data,c+8),c+=n;return s},exports.setConfigEntry=Yo,exports.setCoreConfigEntry=(t,e,n)=>Yo(t,"core",void 0,e,n),exports.skipWorktreeEntry=s,exports.sortByPath=yt,exports.sparseCheckoutPath=bn,exports.synthesizeTreeFromIndex=async(t,e)=>bo(t,(t=>{const e=[];for(const n of t)0===n.flags.stage&&(ct(n.path,-1),xo(n.path),e.push({path:n.path,id:n.id,mode:n.mode}));return e})(e)),exports.treeDepthExceeded=O,exports.unexpectedObjectType=A,exports.updateConfigEntries=Xo,exports.updateCoreConfig=async(t,e)=>{await Xo(t,Object.entries(e).map(([t,e])=>({section:"core",key:t,value:e})))},exports.updateRef=async function(e,n,r,o){Re(n);const s=mn(e.layout.gitDir,n),i=Wr(e),a=await i.resolveDirect(n);if(void 0!==o.expected){const e="direct"===a.kind?a.id:"absent";if(o.expected!==e)throw((e,n,r)=>new t.TsgitError({code:"REF_UPDATE_CONFLICT",name:e,expected:n,actual:r}))(n,o.expected,e)}if(!0===o.delete)return await async function(e,n){if(await e.isLoose(n))return void await e.removeLoose(n);if("direct"===(await e.resolveDirect(n)).kind)throw t.unsupportedOperation("delete-packed-ref","deleting packed-only refs requires packed-refs rewrite");throw Le(n)}(i,n),void await br(e,n);const c="direct"===a.kind?a.id:F,d=(new TextEncoder).encode(`${r}\n`);await Br(e,n,s,d),await Kr(e,n,c,r,o.reflogMessage),await async function(t,e,n,r,o,s){const i=await e.resolveDirect(Gr);"symbolic"===i.kind&&i.target===n&&await Kr(t,Gr,r,o,s)}(e,i,n,c,r,o.reflogMessage)},exports.updateShallow=async(t,e)=>{const n=new Set(await Wo(t));for(const t of e.shallow)n.add(t);for(const t of e.unshallow)n.delete(t);const r=Fo(t);if(0===n.size)return void await(async(t,e)=>{try{await t.fs.rm(e)}catch(t){if(Mo(t))return;throw t}})(t,r);const o=[...n].sort(),s=(new TextEncoder).encode(o.map(t=>`${t}\n`).join(""));await(async(t,e,n)=>{const r=(t=>`${t.layout.gitDir}/shallow.lock`)(t);await t.fs.writeExclusive(r,n);try{await t.fs.rename(r,e)}catch(e){try{await t.fs.rm(r)}catch(t){if(!Mo(t))throw t}throw e}})(t,r,s)},exports.validateRefName=Re,exports.validateWorkingTreePath=Pn,exports.walkCommits=Qo,exports.walkSubmodules=async function*(t,e){const n=e?.ref??hs,r=!0===e?.recursive,o=e?.maxDepth??100,s=await mo(t,n),i=new Set([t.layout.gitDir]);yield*gs(t,s,0,void 0,"",i,r,o)},exports.walkTree=ao,exports.walkWorkingTree=async function*(t,e){const n={ctx:t,maxDepth:e?.maxDepth??4096,maxEntries:e?.maxEntries??ht,ignore:e?.ignore};yield*Bn(n,{value:0},"",0,!0)},exports.writeObject=Gn,exports.writeReflog=async function(t,e,n){const r=n.map(Te).join("");await t.fs.writeUtf8(xn(t.layout.gitDir,e),r)},exports.writeSparsePatternText=async(t,e)=>{await t.fs.mkdir(`${t.layout.gitDir}/info`),await t.fs.writeUtf8(bn(t.layout.gitDir),e)},exports.writeSymbolicRef=async(t,e,n)=>{const r=Re(e),o=Re(n),s=mn(t.layout.gitDir,r),i=Yr.encode(function(t){return`ref: ${t}\n`}(o));await Br(t,r,s,i)},exports.writeTree=yo;
2
- //# sourceMappingURL=index-BVArBKuk.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BVArBKuk.cjs","sources":["../../../src/domain/git-index/error.ts","../../../src/domain/git-index/index-entry.ts","../../../src/domain/objects/encoding.ts","../../../src/domain/objects/error.ts","../../../src/domain/objects/author-identity.ts","../../../src/domain/objects/object-id.ts","../../../src/domain/objects/commit.ts","../../../src/domain/objects/file-mode.ts","../../../src/domain/objects/header.ts","../../../src/domain/objects/tag.ts","../../../src/domain/objects/tree.ts","../../../src/domain/objects/git-object.ts","../../../src/domain/objects/blob.ts","../../../src/domain/objects/size.ts","../../../src/domain/git-index/path-validator.ts","../../../src/domain/git-index/index-parser.ts","../../../src/domain/git-index/index-writer.ts","../../../src/domain/diff/flat-tree.ts","../../../src/domain/diff/change-path.ts","../../../src/domain/diff/mode-kind.ts","../../../src/domain/diff/path-compare.ts","../../../src/domain/diff/rename-detect.ts","../../../src/domain/diff/tree-diff.ts","../../../src/domain/pathspec/compile-glob.ts","../../../src/domain/ignore/parse-gitignore.ts","../../../src/domain/protocol/capabilities.ts","../../../src/domain/protocol/error.ts","../../../src/domain/protocol/pkt-line.ts","../../../src/domain/protocol/side-band.ts","../../../src/domain/protocol/upload-pack.ts","../../../src/domain/reflog/error.ts","../../../src/domain/reflog/reflog-format.ts","../../../src/domain/reflog/should-log.ts","../../../src/domain/refs/error.ts","../../../src/domain/refs/ref-validation.ts","../../../src/domain/refs/loose-ref.ts","../../../src/domain/sparse/cone.ts","../../../src/domain/sparse/non-cone.ts","../../../src/domain/sparse/parse-sparse-checkout.ts","../../../src/domain/storage/crc32.ts","../../../src/domain/storage/error.ts","../../../src/domain/storage/delta.ts","../../../src/domain/storage/pack-entry.ts","../../../src/domain/storage/pack-index.ts","../../../src/domain/storage/pack-writer.ts","../../../src/application/primitives/path-layout.ts","../../../src/domain/storage/loose-path.ts","../../../src/application/primitives/validators.ts","../../../src/application/primitives/types.ts","../../../src/domain/working-tree-path.ts","../../../src/application/primitives/walk-working-tree.ts","../../../src/application/primitives/write-object.ts","../../../src/application/primitives/config-read.ts","../../../src/application/primitives/reflog-store.ts","../../../src/application/primitives/object-resolver.ts","../../../src/application/primitives/pack-registry.ts","../../../src/application/primitives/read-object.ts","../../../src/application/primitives/ref-store.ts","../../../src/domain/refs/packed-refs.ts","../../../src/application/primitives/resolve-ref.ts","../../../src/application/primitives/atomic-write.ts","../../../src/application/primitives/reflog-identity.ts","../../../src/application/primitives/record-ref-update.ts","../../../src/application/primitives/update-ref.ts","../../../src/application/primitives/write-symbolic-ref.ts","../../../src/application/primitives/cat-file-batch.ts","../../../src/application/primitives/read-blob.ts","../../../src/application/primitives/apply-changeset.ts","../../../src/application/primitives/compute-changeset.ts","../../../src/application/primitives/walk-tree.ts","../../../src/application/primitives/materialize-tree.ts","../../../src/application/primitives/read-sparse-checkout.ts","../../../src/application/primitives/read-tree.ts","../../../src/application/primitives/write-tree.ts","../../../src/application/primitives/synthesize-tree-from-index.ts","../../../src/application/primitives/fetch-pack.ts","../../../src/application/primitives/shallow-file.ts","../../../src/application/primitives/update-config.ts","../../../src/application/primitives/run-hook.ts","../../../src/application/primitives/diff-trees.ts","../../../src/application/primitives/walk-commits.ts","../../../src/application/primitives/merge-base.ts","../../../src/application/primitives/build-pack.ts","../../../src/application/primitives/enumerate-push-objects.ts","../../../src/application/primitives/enumerate-refs.ts","../../../src/application/primitives/build-index-from-tree.ts","../../../src/application/primitives/walk-submodules.ts","../../../src/application/primitives/create-commit.ts","../../../src/application/primitives/read-index.ts","../../../src/application/primitives/write-sparse-checkout.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["invalidIndexHeader","reason","TsgitError","code","invalidIndexEntry","offset","STAGE0_FLAGS","assumeValid","stage","skipWorktree","intentToAdd","skipWorktreeEntry","entry","ctimeSeconds","ctimeNanoseconds","mtimeSeconds","mtimeNanoseconds","dev","ino","mode","uid","gid","fileSize","id","flags","path","HEX_TABLE","Array","from","length","_","i","toString","padStart","bytesToHex","bytes","parts","join","hexToBytes","hex","Error","Uint8Array","high","parseHexDigit","charCodeAt","low","charCode","compareBytes","a","b","len","Math","min","indexOf","target","fromIndex","textEncoder","TextEncoder","textDecoder","TextDecoder","encode","str","decode","splitHeaderAndMessage","text","blankIndex","headerPart","message","slice","formatContinuationHeader","key","value","includes","valueParts","split","map","line","parseHeaderLine","spaceIdx","parseOptionalHeaderBlock","lines","startIndex","onInvalidKey","onDuplicateGpgsig","gpgSignature","extraHeaders","firstValue","endIdx","j","nextLine","startsWith","push","undefined","invalidObjectId","invalidObjectHeader","invalidTreeEntry","invalidCommit","invalidTag","invalidIdentity","objectNotFound","objectHashMismatch","expected","actual","unexpectedObjectType","treeDepthExceeded","depth","treeEntryLimitExceeded","count","limit","objectTooLarge","actualSize","parseIdentity","lastClose","lastIndexOf","lastOpen","rawName","name","endsWith","email","trim","timestamp","Number","isSafeInteger","timezoneOffset","test","CONTROL_CHARS","serializeIdentity","identity","SHA1_HEX_RE","SHA256_HEX_RE","ObjectId","fromRaw","ZERO_OID","RefName","FilePath","serializeCommitContent","commit","data","tree","parent","parents","author","committer","header","FILE_MODE","REGULAR","EXECUTABLE","SYMLINK","DIRECTORY","GITLINK","VALID_MODES","Set","Object","values","NORMALIZE_MAP","Map","normalizeFileMode","has","validateFileMode","get","isDirectory","VALID_TYPES","parseHeader","rawBytes","nullIndex","headerStr","subarray","spaceIndex","type","sizeStr","size","isFinite","String","contentOffset","VALID_OBJECT_TYPES","serializeTagContent","tag","object","objectType","tagName","tagger","serializeTreeContent","hash","encoded","sortTreeEntries","entries","totalLength","reduce","sum","e","digestLength","result","set","decorated","sortKey","encodeEntryName","sort","d","treeEntryCompare","isDir","nameBytes","parseObject","content","parseBlobContent","names","modeStr","hashStart","hashEnd","rawHash","entryId","ObjectIdFactory","add","parseTreeContent","nextIndex","parseRequiredFields","msg","parseOptionalHeaders","parseCommitContent","requiredEnd","objectTypeStr","parseRequiredTagFields","parseTaggerField","parseTagOptionalHeaders","parseTagContent","serializeObject","contentBytes","payloadByteLength","byteLength","UNSAFE_SEGMENTS","BIDI_CONTROLS","reasonFor","segment","isControlChar","validateIndexPath","unsafeReason","decodeEntryFlags","view","version","flagsRaw","getUint16","extended","extendedSize","raw","extRaw","findNul","compareEntryPath","left","right","writeEntry","buf","pathBytes","setUint32","parseInt","shaBytes","nameLength","setUint16","MAX_FLAT_TREE_ENTRIES","primaryPath","change","newPath","oldPath","kindOf","isSameKind","pathEncoder","sortByPath","items","pathOf","item","tryFoldAdd","deletesByOldId","matches","newId","del","rename","newMode","consumedDelete","addFrom","deleteFrom","oldId","oldMode","classifySamePath","oldEntry","newEntry","entriesOf","PREFIX_TOKEN","kind","scanToken","pattern","ch","token","next","after","scanStar","char","stepToken","cur","stepLiteral","stepSingle","stepStar","stepStarStar","seg","stepStarSlash","compileGlob","options","tokens","scanned","tokenize","dp","withDirSuffix","baseLayer","anchored","matchTokens","stripTrailingSpaces","end","unescapePattern","s","replace","tokenizeIgnoreLine","rawLine","trimmed","negated","afterNegation","directoryOnly","withoutTrailingSlash","stripped","cleanPattern","AGENT","CLIENT_CAPABILITIES_FETCH","CLIENT_CAPABILITIES_PUSH","keyOf","eq","pktLengthReserved","pktTooLarge","invalidBaseUrl","missingServiceHeader","invalidRefLine","invalidSidebandChannel","channel","sidebandFatal","tooManyAdvertisedRefs","ENCODER","DECODER","fatal","HEX_LENGTH_RE","ACC_CAPACITY","MAX_PKT_LINE_PAYLOAD","FLUSH_PKT","lengthPrefix","encodePktStream","payloads","total","p","RangeError","out","off","parseLength","acc","decodePktStream","source","Symbol","asyncIterator","async","PktBuffer","chunk","accept","drain","used","remaining","classify","available","v2","consume","this","headerNeeded","max","headerSlice","drop","copyWithin","to","decision","payload","TEXT_DECODER","safeInvoke","cb","parseSideBand","pkt","body","onError","onProgress","demux","TEXT_ENCODER","SHA_ANY_RE","SERVICE_LINE_RE","MAX_ADVERTISED_REFS","stripTrailingNewline","validateOidString","splitRef","space","appendNewRef","byName","duplicateRef","refs","handleRefLine","capabilities","nul","head","tail","splitFirstRef","t","dedupeByKey","filter","PEELED_SUFFIX","peeled","baseIdx","applyPeeled","haveLine","oid","DONE_FRAME","encodePktLine","parseAckLine","status","SHALLOW_PREFIX","UNSHALLOW_PREFIX","parseShallowOid","prefix","tryConsumeShallowLine","state","shallow","unshallow","pushbackBuffer","WeakMap","invalidReflogEntry","serializeReflogLine","parseReflogLine","tab","meta","NEW_ID_START","parseOid","OID_LENGTH","parseReflogIdentity","NEW_ID_END","sanitizeReflogMessage","DEFAULT_LOGGABLE_PREFIXES","invalidRef","invalidPackedRefs","refNotFound","refChainTooDeep","chain","refCycleDetected","refLocked","FORBIDDEN_SIMPLE","validateRefName","throwIfBadChars","components","component","parseLooseRef","SYMBOLIC_PREFIX","properAncestors","dir","segments","ancestors","normalizeConeDir","posix","rejectBadSegment","shown","invalidOption","parseConeDirLine","inner","compileSparseRule","tokenized","recursive","last","isRecursive","matcher","PATTERN_ENCODER","parseNonCone","rules","parseSparseCheckout","coneRequested","cone","index","parseCone","spec","degraded","buildSparseMatcher","slash","dirname","ancestor","coneMatcher","included","rule","CRC32_TABLE","table","Uint32Array","c","buildCrc32Table","crc32","invalidPackHeader","invalidPackIndex","invalidPackEntry","invalidDelta","deltaChainTooDeep","readVariableLengthInt","shift","pos","bytesRead","byte","nextOffset","decodeCopyFields","cmd","needed","countCopyFieldBytes","currentPos","nextPos","validateCopyBounds","baseLen","resultPos","targetLen","applyInsert","delta","targetLength","nextResultPos","applyDelta","base","sourceLength","o1","o2","validateDeltaHeader","applied","PACK_MAGIC","parsePackEntryHeader","firstByte","extensionBytes","decodeTypeAndSize","validateEntryType","distance","entryOffset","continuationCount","decodeOfsDistance","dataOffset","baseDistance","endPos","baseId","encodePackEntryHeader","nextByte","IDX_SHA_TABLE_OFFSET","readFanout","_view","getUint32","compareShaAtIndex","targetBytes","_bytes","readOffset","smallOffsetsTableOffset","largeIdx","largeOffset","largeOffsetsTableOffset","trailerOffset","lookupPackIndex","mid","cmp","concat","concatAll","arrays","arr","looseObjectPath","gitDir","computeLooseObjectPath","looseRefPath","indexPath","reflogPath","ref","sparseCheckoutPath","lockSuffix","hasHeaderInjectionChars","isInvalidExtraHeaderKey","REASON_INDEX_EXCEEDS_MAX","REASON_PACK_IDX_EXCEEDS_MAX","exceedsMaxIndexBytes","exceedsMaxPackIdxBytes","exceedsMaxSymbolicDepth","cap","exceedsMaxPeelDepth","isGitlink","exceedsMaxTreeEntries","OBJECT_ID_SHA1_RE","OBJECT_ID_SHA256_RE","looksLikeObjectId","PATH_ENCODER","GIT_FORBIDDEN","validateWorkingTreePath","input","reject","rejectComponent","isForbiddenGitComponent","lowered","toLowerCase","pathspecOutsideRepo","original","walkInternal","config","counter","isRoot","maxDepth","ctx","fs","readdir","directoryPath","some","isEmbeddedGitMarker","signal","aborted","operationAborted","visitEntry","joinPath","isSymbolicLink","ignore","isFile","maxEntries","stat","lstat","layout","workDir","writeObject","hashConfig","computed","hashHex","declaredId","mkdir","objectsDir","compressed","compressor","deflate","writeExclusive","error","isFileExists","cache","readConfig","existing","pending","loadConfig","invalidateConfigCache","delete","readRawConfig","parseConfigText","readUtf8","err","sections","parseIniSections","assembleParsed","current","joinContinuations","stripInlineComment","parseSectionHeader","section","subsection","kv","parseKeyValue","piece","cuts","indexOfUnquoted","n","inQuotes","quoteAt","sectionPart","lastQuote","eqAt","dispatchSection","sec","mergeCore","mergeUser","mergeRemote","mergeBranch","mergeExtensions","finalize","core","bare","parseGitBoolean","excludesFile","logAllRefUpdates","parseLogAllRefUpdates","hooksPath","sparseCheckout","sparseCheckoutCone","user","remote","fetch","url","promisor","partialCloneFilter","merged","branch","merge","extensions","partialClone","finalizeCore","TRUE_VALUES","appendReflog","appendUtf8","reflogExists","exists","deleteReflog","rm","collectReflogs","rel","resolveObject","registry","verifyHash","maxBytes","checkAborted","loose","read","inflate","tryLoose","inflated","enforceLooseCap","hit","lookup","targetId","phase1","deltas","currentHit","headerEndInChunk","readEntryHeaderWithChunk","isBase","enforcePackBaseCap","baseContent","streamInflate","output","baseType","instructions","enforcePackDeltaPreApplyCap","resolvedBaseId","pack","refDeltaBaseId","resolveBaseForRefDelta","collectDeltaChain","step","fullBytes","typeName","packTypeName","headerBytes","prependHeader","cacheEntry","deltaCache","resolvePackChain","declaredSize","declaredTargetSize","readDeltaTargetSize","h","readSlice","packPath","cached","nulIdx","enforceCachedCap","splitHeader","sourceId","typeNameToPackType","isCandidate","loadPack","entryName","idxPath","idxBytes","readBoundedIdx","IDX_HEADER_SIZE","DataView","buffer","byteOffset","magic","prev","validateFanoutMonotonicity","objectCount","crc32TableOffset","minExpectedSize","parsePackIndex","createPackRegistry","loadAll","packs","all","refresh","registryCache","inflightCache","readObject","getPackRegistry","isObjectNotFound","inflight","getInflight","then","outcome","attempted","lazyFetchOnce","storeCache","getRefStore","store","packedCache","loadPackedRefs","peeling","sorted","mtimeMs","mtimeKey","parsed","firstLine","traitStr","HEADER_PREFIX","traits","hasPeeled","lastIndex","sha","RefNameFactory","parseEntries","parsePackedRefs","readLooseContent","resolveDirect","looseContent","packed","writeLoose","writeUtf8","serializeDirectRef","removeLoose","getPackedRefs","createRefStore","resolveRef","maxSymbolicDepth","maxPeelDepth","peel","refStore","initial","resolveDirectChain","startId","peelChain","atomicWriteRef","refName","refPath","lockPath","rmError","isFileNotFound","resolveReflogIdentity","floor","Date","now","recordRefUpdate","cfg","isDefaultLoggable","shouldAutocreateReflog","isLoggable","HEAD","throwIfAborted","readOne","readOptions","ok","buildOkEntry","buildMissingEntry","readBlob","decoder","workdir","isWorkingTreeDirty","absPath","expectedId","combined","blobMatches","evaluateDirtyPath","previousId","isUntrackedClash","writeFileEntry","symlink","write","chmod","applyEntry","blob","relPath","ctimeMs","ctimeNs","mtimeNs","buildIndexEntry","applyChangeset","opts","changeset","force","dirty","offending","checkDirty","checkoutOverwriteDirty","writtenEntries","written","deleted","indexEntry","progress","update","stats","targetEntry","previousMode","computeChangeset","currentIndex","targetTree","indexByPath","projectIndex","targetByPath","projectTarget","allPaths","keys","noop","walkTree","treeIdOrObject","rootTree","obj","resolveTree","stack","exceedsMaxTreeDepth","descentStack","shouldRecurse","subtreeObj","filterByPaths","paths","pickEntry","writtenByPath","oldByPath","tallyStats","MAX_SPARSE_PATTERN_FILE_BYTES","readSparsePatternText","sparsePatternFileTooLarge","readTree","currentId","writeTree","assertDepthBounded","slashCount","synthesizeLevel","files","subdirs","slashIndex","rest","bucket","sub","groupByPrefix","treeEntries","file","subEntries","subId","SIDE_BAND_CAPS","downloadPack","transport","requestBody","req","wants","wantPayloads","forEach","w","idx","caps","wantLine","wantStream","haveStream","haves","trailer","done","buildUploadPackRequest","uploadUrl","buildUploadPackUrl","response","request","method","headers","statusCode","httpError","pktSource","readableStreamToAsyncIterable","iter","shallowUpdates","expectShallow","parseShallowResponse","acks","nak","first","buffered","splitMeta","packBody","replayed","replay","sideBand","sbOptions","rawPackBytes","packBodyStream","parseUploadPackResponse","hasSideBand","progressOp","sanitize","packBytes","drainPackBodyBounded","maxResponseBytes","chunks","lastTick","packTooLargeBytes","baseUrl","URL","pathname","protocol","host","search","inflateAllEntries","parsePackHeader","objectCountCap","maxObjectsPerPack","trailerStart","entryHeader","entryEnd","bytesConsumed","entryCrc","resolveAllEntries","byOffset","byId","unresolved","resolved","tryResolveEntry","firstUnresolvedError","refBaseId","isBaseHeader","baseTypeName","computeLooseObjectId","baseOffset","resolveDelta","refBase","writePackArtifacts","packSha","packDir","shallowPath","readShallow","isShallowOid","OID","matchesSection","isSectionHeader","isKeyLine","renderEntry","rejectControlChars","field","setConfigEntry","rejectSection","rejectSubsection","headerIndex","findSectionHeader","renderSectionHeader","keyIndex","findKeyInSection","at","replacement","replaceLine","insertAfter","updateConfigEntries","readConfigText","updated","resolveHooksDir","fallback","homeDir","resolveInput","walkCommits","invalidWalkInput","exceedsMaxWalkSeeds","validateOptions","order","ignoreMissing","queue","visited","missing","until","pickNext","fetchCommit","enqueueParents","MAX_WALK_SEEDS","_order","advanceFrontier","frontier","intersection","encodeEntry","compressedData","packEntryTypeFor","uncompressedSize","tryEmit","emitted","resolveTagChain","recordTag","walkLooseRefs","includedFlags","donorFlags","sparse","byPath","HEAD_REF","walkInTree","pathPrefix","rows","readGitmodules","fullPath","row","buildEntry","childCtx","deriveChildContext","childTree","tryReadTree","nextVisited","treeRelPath","leaf","find","reduceSection","mergeKey","k","isUnsafeSubmoduleName","DRIVE_LETTER_PREFIX","hasControlChar","_promisor","hooks","_hooks","freeze","cwd","commitId","dirs","service","donors","donorByPath","leaves","treeId","collectLeaves","donor","zeroStatEntry","projectLeaf","writerEntries","oids","packfile","serializePackHeader","metas","currentOffset","entryBytes","serializePackfile","trailerBytes","ids","treeA","treeB","Promise","oldTree","newTree","oldEntries","newEntries","changes","domainDiffTrees","detectRenames","diff","maxSameIdDeletes","adds","deletes","other","partition","byOldId","list","pruned","buildDeletesByOldId","consumedDeletes","renames","unfoldedAdds","fold","unfoldedDeletes","renameOptions","maxObjects","commitSeeds","seeds","want","seed","collectCommitSeeds","walkCommitClosure","root","collectLooseRefs","start","download","trailerLen","bodyEnd","expectedHex","actualHex","verifyPackTrailer","r","walkPackEntries","packChecksum","withBytes","largeCount","shaTableSize","crcTableSize","offsetTableSize","totalSize","headerSize","bucketCounts","fanout","cumulative","fanoutOffset","crcStart","offsetStart","largeOffsetStart","serializePackIndex","idxTrailerBytes","buildIdx","logger","warn","allTarget","collected","collectTargetEntries","plan","indexForDiff","excluded","planMaterialize","rawChangeset","forceRewriteAll","upgradeNoopsToUpdates","inScope","scopedPaths","writtenEntriesByPath","indexEntriesByPath","preserveOutOfScope","picked","mergeNewIndexEntries","newIndexEntries","visitedA","visitedB","frontierA","frontierB","stepA","stepB","serverCaps","clientCaps","serverByKey","serverValue","expectedService","match","exec","groups","sep","consumeServiceHeader","collectRefs","directHead","symref","targetRef","findHead","return","compiled","trailerSize","entryCount","entryStart","rawMode","nulEnd","FilePathFactory","extensionEnd","signature","firstChar","safe","parseExtensions","parseIndex","requested","runner","hooksDir","args","stdin","run","exitCode","hookFailed","stderr","sortedEntries","entryMetas","paddedLength","extensionMetas","ext","sigBytes","m","stage0Entries","refUpdateConflict","isLoose","unsupportedOperation","deleteRef","reflogMessage","logCoupledHead","updates","deleteIfPresent","shallowLockPath","rmErr","atomicWrite","validatedName","validatedTarget","serializeSymbolicRef"],"mappings":"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"}