@kikuchan/hexdump 0.1.0-alpha.1 → 0.1.0-alpha.2

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.
package/dist/hexdump.d.ts CHANGED
@@ -11,6 +11,7 @@ type Context = {
11
11
  type ColorizerOperation = {
12
12
  enter: string;
13
13
  leave: string;
14
+ escape?: (s: string) => string;
14
15
  } | null;
15
16
  type Colorizer = boolean | undefined | 'simple' | 'html' | ((s: string, ctx: Context) => ColorizerOperation | undefined);
16
17
  type Formatter = undefined | ((s: string, ctx: Context) => string | undefined);
package/dist/hexdump.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";function y(t,s){return Number(t).toString(16).padStart(s,"0")}const g=t=>t,z={simple:{address:{enter:"\x1B[38;5;238m",leave:"\x1B[m"},separator:{enter:"\x1B[38;5;238m",leave:"\x1B[m"},control:{enter:"\x1B[38;5;178m",leave:"\x1B[m"},ascii:{enter:"\x1B[m",leave:"\x1B[m"},exascii:{enter:"\x1B[38;5;209m",leave:"\x1B[m"},null:{enter:"\x1B[38;5;244m",leave:"\x1B[m"},normal:null},html:{address:{enter:'<span class="hexdump-address">',leave:"</span>"},separator:{enter:'<span class="hexdump-separator">',leave:"</span>"},control:{enter:'<span class="hexdump-control">',leave:"</span>"},ascii:{enter:'<span class="hexdump-ascii">',leave:"</span>"},exascii:{enter:'<span class="hexdump-exascii">',leave:"</span>"},null:{enter:'<span class="hexdump-null">',leave:"</span>"},normal:null}},H=t=>{let s;if(!t)return g;if(t===!0&&(t="simple"),typeof t=="string"){const e=z[t],n=["address-prefix","address-suffix","character-prefix","character-suffix"];t=function(a,i){if(a.trim())return e.address&&i.type==="address"?e.address:e.separator&&n.includes(i.type)?e.separator:(i.type==="hex-value"||i.type==="character-value")&&typeof i.value=="number"?e.null!==void 0&&i.value===0?e.null:e.control!==void 0&&i.value<32?e.control:e.ascii!==void 0&&32<=i.value&&i.value<127?e.ascii:e.exascii!==void 0&&128<=i.value&&i.value<=255?e.exascii:e.normal:e.normal}}return(e,n)=>{const a=n.type==="flush"?null:t(e,n);return a!==void 0&&(s?.enter!==a?.enter||s?.leave!==a?.leave)&&(e=(s?.leave||"")+(a?.enter||"")+e,s=a),e}},w=t=>(t||(t=g),(s,e)=>t(s,e)||"");function f(t){return(s,e,n)=>{const a=ArrayBuffer.isView(s)?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):new Uint8Array(s);typeof e!="number"&&(n=e,e=a.length),n={...n??{}},(e===void 0||e<0)&&(e=a.length),t=n.printer||t;const i=w(n.formatter),v=H(n.color),l=n.foldSize||16,b=n.printChars!==!1;let p=n.addrOffset||0;const c=p%l,C=(c+e+l-1)/l,m=[];let x="";const r=function(d,u){x+=v(i(d,u),u)},h=n?.prefix||"",O=n?.addrLength??8-h.length;for(let d=0;d<C;d++){r("",{type:"line-prefix"}),r(h,{type:"address-prefix"}),r(y(p,O),{type:"address",address:p}),r(": ",{type:"address-suffix"}),p=p/l*l,r(" ",{type:"hex-dump-prefix"}),r("",{type:"hex-group-prefix"});for(let u=0;u<l;u++){const o=d*l+u-c;u&&u%8==0?(r("",{type:"hex-group-suffix"}),r(" ",{type:"hex-group-gap"}),r("",{type:"hex-group-prefix"})):u&&r(" ",{type:"hex-gap"}),o<e?r(y(a[o],2),{type:"hex-value",address:p+o,value:a[o]}):r(" ",{type:"hex-value-no-data",address:p+o})}if(r("",{type:"hex-group-suffix"}),r(" ",{type:"hex-dump-suffix"}),b){r(" |",{type:"character-prefix"});for(let u=0;u<l;u++){const o=d*l+u-c;o<e?r(a[o]>=32&&a[o]<127?String.fromCharCode(a[o]):".",{type:"character-value",address:p+o,value:a[o]}):r(" ",{type:"character-value-no-data",address:p+o})}r("|",{type:"character-suffix"})}r("",{type:"line-suffix"}),r("",{type:"flush"}),t?.(x),m.push(x),x="",p+=l}return m.join(`
2
- `)}}export const hexdump=Object.assign(f(null),{create:f,log:f(console.log),warn:f(console.warn),error:f(console.error),string:f(null)});export default{hexdump};
1
+ "use strict";function v(r,n){return Number(r).toString(16).padStart(n,"0")}const h=r=>r,d=r=>r.replace(/[&<>]/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;"})[n]),H={simple:{address:{enter:"\x1B[38;5;238m",leave:"\x1B[m"},separator:{enter:"\x1B[38;5;238m",leave:"\x1B[m"},control:{enter:"\x1B[38;5;178m",leave:"\x1B[m"},ascii:{enter:"\x1B[m",leave:"\x1B[m"},exascii:{enter:"\x1B[38;5;209m",leave:"\x1B[m"},null:{enter:"\x1B[38;5;244m",leave:"\x1B[m"},normal:null},html:{address:{enter:'<span class="hexdump-address">',leave:"</span>",escape:d},separator:{enter:'<span class="hexdump-separator">',leave:"</span>",escape:d},control:{enter:'<span class="hexdump-control">',leave:"</span>",escape:d},ascii:{enter:'<span class="hexdump-ascii">',leave:"</span>",escape:d},exascii:{enter:'<span class="hexdump-exascii">',leave:"</span>",escape:d},null:{enter:'<span class="hexdump-null">',leave:"</span>",escape:d},normal:{enter:"",leave:"",escape:d}}},w=r=>{let n;if(!r)return h;if(r===!0&&(r="simple"),typeof r=="string"){const e=H[r],s=["address-prefix","address-suffix","character-prefix","character-suffix"];r=function(a,i){if(a.trim())return e.address&&i.type==="address"?e.address:e.separator&&s.includes(i.type)?e.separator:(i.type==="hex-value"||i.type==="character-value")&&typeof i.value=="number"?e.null!==void 0&&i.value===0?e.null:e.control!==void 0&&i.value<32?e.control:e.ascii!==void 0&&32<=i.value&&i.value<127?e.ascii:e.exascii!==void 0&&128<=i.value&&i.value<=255?e.exascii:e.normal:e.normal}}return(e,s)=>{const a=s.type==="flush"?null:r(e,s);return a!==void 0&&(n?.enter!==a?.enter||n?.leave!==a?.leave||n?.escape!==a?.escape)&&(e=(n?.leave||"")+(a?.enter||"")+(a?.escape||h)(e),n=a),e}},A=r=>(r||(r=h),(n,e)=>r(n,e)||"");function x(r){return(n,e,s)=>{const a=ArrayBuffer.isView(n)?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(n);typeof e!="number"&&(s=e,e=a.length),s={...s??{}},(e===void 0||e<0)&&(e=a.length),r=s.printer||r;const i=A(s.formatter),b=w(s.color),o=s.foldSize||16,C=s.printChars!==!1;let l=s.addrOffset||0;const m=l%o,O=(m+e+o-1)/o,g=[];let c="";const t=function(f,p){c+=b(i(f,p),p)},y=s?.prefix||"",z=s?.addrLength??8-y.length;for(let f=0;f<O;f++){t("",{type:"line-prefix"}),t(y,{type:"address-prefix"}),t(v(l,z),{type:"address",address:l}),t(": ",{type:"address-suffix"}),l=l/o*o,t(" ",{type:"hex-dump-prefix"}),t("",{type:"hex-group-prefix"});for(let p=0;p<o;p++){const u=f*o+p-m;p&&p%8==0?(t("",{type:"hex-group-suffix"}),t(" ",{type:"hex-group-gap"}),t("",{type:"hex-group-prefix"})):p&&t(" ",{type:"hex-gap"}),u<e?t(v(a[u],2),{type:"hex-value",address:l+u,value:a[u]}):t(" ",{type:"hex-value-no-data",address:l+u})}if(t("",{type:"hex-group-suffix"}),t(" ",{type:"hex-dump-suffix"}),C){t(" |",{type:"character-prefix"});for(let p=0;p<o;p++){const u=f*o+p-m;u<e?t(a[u]>=32&&a[u]<127?String.fromCharCode(a[u]):".",{type:"character-value",address:l+u,value:a[u]}):t(" ",{type:"character-value-no-data",address:l+u})}t("|",{type:"character-suffix"})}t("",{type:"line-suffix"}),t("",{type:"flush"}),r?.(c),g.push(c),c="",l+=o}return g.join(`
2
+ `)}}export const hexdump=Object.assign(x(null),{create:x,log:x(console.log),warn:x(console.warn),error:x(console.error),string:x(null)});export default{hexdump};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kikuchan/hexdump",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.2",
4
4
  "description": "hexdump",
5
5
  "type": "module",
6
6
  "main": "dist/hexdump.js",