/* esm.sh - @jsr/std__path@1.1.4/posix/parse */ import{CHAR_DOT as b}from"../_common/constants.mjs";import{stripTrailingSeparators as d}from"../_common/strip_trailing_separators.mjs";import{assertPath as u}from"../_common/assert_path.mjs";import{isPosixPathSeparator as n}from"./_util.mjs";function g(i){u(i);let e={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return e;let f=n(i.charCodeAt(0)),a;f?(e.root="/",a=1):a=0;let r=-1,t=0,s=-1,c=!0,l=i.length-1,o=0;for(;l>=a;--l){let m=i.charCodeAt(l);if(n(m)){if(!c){t=l+1;break}continue}s===-1&&(c=!1,s=l+1),m===b?r===-1?r=l:o!==1&&(o=1):r!==-1&&(o=-1)}return r===-1||s===-1||o===0||o===1&&r===s-1&&r===t+1?(s!==-1&&(t===0&&f?e.base=e.name=i.slice(1,s):e.base=e.name=i.slice(t,s)),e.base=e.base||"/"):(t===0&&f?(e.name=i.slice(1,r),e.base=i.slice(1,s)):(e.name=i.slice(t,r),e.base=i.slice(t,s)),e.ext=i.slice(r,s)),t>0?e.dir=d(i.slice(0,t-1),n):f&&(e.dir="/"),e}export{g as parse}; //parse.mjs.map