@visulima/ansi
Version:
ANSI escape codes for some terminal swag.
2 lines (1 loc) • 1.18 kB
JavaScript
const d=27;const S={95:"apc",80:"dcs",94:"pm",88:"sos"},e={159:"apc",144:"dcs",158:"pm",152:"sos"},_=n=>n===155||n===157||n===144||n===152||n===158||n===159,r=(n,s)=>{for(let t=s;t<n.length;t+=1){const o=n.codePointAt(t);if(o>=64&&o<=126)return t}return-1},c=(n,s,t)=>{for(let o=s;o<n.length;o+=1){const C=n.codePointAt(o);if(C===156||t&&C===7)return o;if(C===27&&n.codePointAt(o+1)===92)return o+1}return-1},i=(n,s)=>{const t=n.codePointAt(s+1);if(t===91){const o=r(n,s+2);return o===-1?void 0:{end:o,kind:"csi"}}if(t===93){const o=c(n,s+2,!0);return o===-1?void 0:{end:o,kind:"osc"}}if(t===80||t===88||t===94||t===95){const o=c(n,s+2,!1),C=S[t];return o===-1?void 0:{end:o,kind:C}}return t===void 0?void 0:{end:s+1,kind:"escape"}},A=(n,s)=>{const t=n.codePointAt(s);if(t===155){const o=r(n,s+1);return o===-1?void 0:{end:o,kind:"csi"}}if(t===157){const o=c(n,s+1,!0);return o===-1?void 0:{end:o,kind:"osc"}}if(t===144||t===152||t===158||t===159){const o=c(n,s+1,!1),C=e[t];return o===-1?void 0:{end:o,kind:C}}},f=n=>{if(n.includes(String.fromCodePoint(27)))return!0;for(let s=0;s<n.length;s+=1)if(_(n.codePointAt(s)))return!0;return!1};export{d as E,A as a,i as f,f as h,_ as i};