@eternl/tools 0.10.26 → 0.10.28

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/index.cjs CHANGED
@@ -44,7 +44,7 @@ const serializeValue = (value) => {
44
44
  const bigValue = value;
45
45
  return {
46
46
  [DB_SERDE_TYPE_KEY]: DB_SERDE_BIG_TYPE,
47
- v: bigValue.toString()
47
+ v: bigValue.toFixed(0)
48
48
  };
49
49
  }
50
50
  if (Array.isArray(value)) return value.map((item) => serializeValue(item));
@@ -62,7 +62,24 @@ const deserializeValue = (value) => {
62
62
  for (const [key, item] of Object.entries(value)) copy[key] = deserializeValue(item);
63
63
  return copy;
64
64
  };
65
+ const trimUIJson = (value, stripBytes = true) => {
66
+ if (Array.isArray(value)) return value.map((item) => trimUIJson(item));
67
+ if (!isPlainObject(value)) return value;
68
+ if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === "string") return value.v;
69
+ if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === "string" && canCreateBuffer()) {
70
+ if (!stripBytes) return Buffer.from(value.v, "base64");
71
+ return null;
72
+ }
73
+ const copy = {};
74
+ for (const [key, item] of Object.entries(value)) {
75
+ const value = trimUIJson(item);
76
+ if (value === null) delete copy[key];
77
+ else copy[key] = value;
78
+ }
79
+ return copy;
80
+ };
65
81
  const toDbJson = (value) => require_lib_json.json(serializeValue(value));
82
+ const toUIJson = (value, stripBytes = true) => trimUIJson(require_lib_json.json(serializeValue(value)), stripBytes);
66
83
  const fromDbJson = (value) => deserializeValue(value);
67
84
  const fromDbJsonArray = (value) => {
68
85
  return value.map((item) => fromDbJson(item));
@@ -123,6 +140,7 @@ exports.setOffsetFromServer = require_lib_time.setOffsetFromServer;
123
140
  exports.sl = require_log_index.sl;
124
141
  exports.sleep = require_lib_sleep.sleep;
125
142
  exports.sleepDefault = require_lib_sleep.sleepDefault;
143
+ exports.sortHexList = require_lib_hex.sortHexList;
126
144
  exports.toB64Array = require_lib_hex.toB64Array;
127
145
  exports.toB64Buffer = require_lib_hex.toB64Buffer;
128
146
  exports.toB64String = require_lib_hex.toB64String;
@@ -135,6 +153,7 @@ exports.toHexBuffer = require_lib_hex.toHexBuffer;
135
153
  exports.toHexString = require_lib_hex.toHexString;
136
154
  exports.toHexStringBuffer = require_lib_hex.toHexStringBuffer;
137
155
  exports.toStringArray = require_lib_hex.toStringArray;
156
+ exports.toUIJson = toUIJson;
138
157
  exports.trimAllStrings = require_lib_string.trimAllStrings;
139
158
  exports.trimQuotes = require_lib_string.trimQuotes;
140
159
  exports.truncateAddress = require_lib_string.truncateAddress;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["Big","json"],"sources":["../src/lib/guard.ts","../src/serde.ts"],"sourcesContent":["export const fileHashSubstringLength = 8\n","import Big from '@eternl/big'\n\nimport { json } from './lib/json'\n\nconst DB_SERDE_TYPE_KEY = '__eternlSerde'\nconst DB_SERDE_BIG_TYPE = 'big.v1'\nconst DB_SERDE_BUFFER_TYPE = 'buffer.v1'\n\ninterface DbSerdeBig {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BIG_TYPE\n v: string\n}\ninterface DbSerdeBuffer {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BUFFER_TYPE\n v: string\n}\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n\n return !!value && typeof value === 'object'\n}\nconst isBufferObject = (value: unknown): value is Buffer => {\n\n return (typeof Buffer !== 'undefined') && Buffer.isBuffer(value)\n}\nconst canCreateBuffer = (): boolean => {\n\n return (typeof Buffer !== 'undefined') && typeof Buffer.from === 'function'\n}\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\n if (!isObject(value) || Array.isArray(value)) { return false }\n\n const proto = Object.getPrototypeOf(value)\n\n return proto === Object.prototype || proto === null\n}\nconst serializeValue = (value: unknown): unknown => {\n\n if (isBufferObject(value)) {\n\n return <DbSerdeBuffer>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BUFFER_TYPE,\n v: value.toString('base64')\n }\n }\n\n if (value instanceof Big) {\n\n const bigValue = value as Big\n\n return <DbSerdeBig>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BIG_TYPE,\n v: bigValue.toString()\n }\n }\n\n if (Array.isArray(value)) {\n\n return value.map(item => serializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = serializeValue(item)\n }\n\n return copy\n}\nconst deserializeValue = (value: unknown): unknown => {\n\n if (Array.isArray(value)) {\n\n return value.map(item => deserializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === 'string') {\n\n return Big(value.v)\n }\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === 'string' && canCreateBuffer()) {\n\n return Buffer.from(value.v, 'base64')\n }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = deserializeValue(item)\n }\n\n return copy\n}\n\n// TODO: fix: check all usage for where we can prevent recreating the same objects again to save on allocations.\nexport const toDbJson = <T>(value: T): T => json(serializeValue(value)) as T\nexport const fromDbJson = <T>(value: T): T => deserializeValue(value) as T\n\nexport const fromDbJsonArray = <T>(value: T[]): T[] => {\n\n return value.map(item => fromDbJson(item))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,MAAa,0BAA0B;;;ACIvC,MAAM,oBAA0B;AAChC,MAAM,oBAA0B;AAChC,MAAM,uBAA0B;AAahC,MAAM,YAA2B,UAAqD;AAEpF,QAAO,CAAC,CAAC,SAAS,OAAO,UAAU;;AAErC,MAAM,kBAA2B,UAAoC;AAEnE,QAAQ,OAAO,WAAW,eAAgB,OAAO,SAAS,MAAM;;AAElE,MAAM,wBAAyC;AAE7C,QAAQ,OAAO,WAAW,eAAgB,OAAO,OAAO,SAAS;;AAEnE,MAAM,iBAA2B,UAAqD;AAEpF,KAAI,CAAC,SAAS,MAAM,IAAI,MAAM,QAAQ,MAAM,CAAI,QAAO;CAEvD,MAAM,QAAuB,OAAO,eAAe,MAAM;AAEzD,QAAO,UAAU,OAAO,aAAa,UAAU;;AAEjD,MAAM,kBAA2B,UAA4B;AAE3D,KAAI,eAAe,MAAM,CAEvB,QAAsB;GACnB,oBAAsB;EACvB,GAAuB,MAAM,SAAS,SAAS;EAChD;AAGH,KAAI,iBAAiBA,YAAAA,SAAK;EAExB,MAAM,WAAqB;AAE3B,SAAmB;IAChB,oBAAsB;GACvB,GAAuB,SAAS,UAAU;GAC3C;;AAGH,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,eAAe,KAAK,CAAC;AAGhD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;CAEpC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,eAAe,KAAK;AAGjD,QAAO;;AAET,MAAM,oBAA2B,UAA4B;AAE3D,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,iBAAiB,KAAK,CAAC;AAGlD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;AAEpC,KAAI,MAAM,uBAAuB,qBAAqB,OAAO,MAAM,MAAM,SAEvE,SAAA,GAAA,YAAA,SAAW,MAAM,EAAE;AAErB,KAAI,MAAM,uBAAuB,wBAAwB,OAAO,MAAM,MAAM,YAAY,iBAAiB,CAEvG,QAAO,OAAO,KAAK,MAAM,GAAG,SAAS;CAGvC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,iBAAiB,KAAK;AAGnD,QAAO;;AAIT,MAAe,YAAqB,UAAgBC,iBAAAA,KAAK,eAAe,MAAM,CAAC;AAC/E,MAAa,cAAuB,UAAgB,iBAAiB,MAAM;AAE3E,MAAa,mBAAuB,UAAoB;AAEtD,QAAO,MAAM,KAAI,SAAQ,WAAW,KAAK,CAAC"}
1
+ {"version":3,"file":"index.cjs","names":["Big","json"],"sources":["../src/lib/guard.ts","../src/serde.ts"],"sourcesContent":["export const fileHashSubstringLength = 8\n","import Big from '@eternl/big'\n\nimport { json } from './lib/json'\n\nconst DB_SERDE_TYPE_KEY = '__eternlSerde'\nconst DB_SERDE_BIG_TYPE = 'big.v1'\nconst DB_SERDE_BUFFER_TYPE = 'buffer.v1'\n\ninterface DbSerdeBig {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BIG_TYPE\n v: string\n}\ninterface DbSerdeBuffer {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BUFFER_TYPE\n v: string\n}\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n\n return !!value && typeof value === 'object'\n}\nconst isBufferObject = (value: unknown): value is Buffer => {\n\n return (typeof Buffer !== 'undefined') && Buffer.isBuffer(value)\n}\nconst canCreateBuffer = (): boolean => {\n\n return (typeof Buffer !== 'undefined') && typeof Buffer.from === 'function'\n}\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\n if (!isObject(value) || Array.isArray(value)) { return false }\n\n const proto = Object.getPrototypeOf(value)\n\n return proto === Object.prototype || proto === null\n}\nconst serializeValue = (value: unknown): unknown => {\n\n if (isBufferObject(value)) {\n\n return <DbSerdeBuffer>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BUFFER_TYPE,\n v: value.toString('base64')\n }\n }\n\n if (value instanceof Big) {\n\n const bigValue = value as Big\n\n return <DbSerdeBig>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BIG_TYPE,\n v: bigValue.toFixed(0)\n }\n }\n\n if (Array.isArray(value)) {\n\n return value.map(item => serializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = serializeValue(item)\n }\n\n return copy\n}\nconst deserializeValue = (value: unknown): unknown => {\n\n if (Array.isArray(value)) {\n\n return value.map(item => deserializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === 'string') {\n\n return Big(value.v)\n }\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === 'string' && canCreateBuffer()) {\n\n return Buffer.from(value.v, 'base64')\n }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = deserializeValue(item)\n }\n\n return copy\n}\nconst trimUIJson = (value: unknown, stripBytes: boolean = true): unknown => {\n\n if (Array.isArray(value)) { return value.map(item => trimUIJson(item)) }\n if (!isPlainObject(value)) { return value }\n\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === 'string') { return value.v }\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === 'string' && canCreateBuffer()) {\n\n if (!stripBytes) {\n\n return Buffer.from(value.v, 'base64')\n }\n\n return null\n }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n //\n // if (stripBytes && key === 'bytes') {\n //\n // continue\n // }\n\n const value = trimUIJson(item)\n\n if (value === null) {\n\n delete copy[key]\n\n } else {\n\n copy[key] = value\n }\n }\n\n return copy\n}\n\n// TODO: fix: check all usage for where we can prevent recreating the same objects again to save on allocations.\nexport const toDbJson = <T>(value: T): T => json(serializeValue(value)) as T\nexport const toUIJson = <T>(value: T, stripBytes: boolean = true): T => trimUIJson(json(serializeValue(value)), stripBytes) as T\nexport const fromDbJson = <T>(value: T): T => deserializeValue(value) as T\n\nexport const fromDbJsonArray = <T>(value: T[]): T[] => {\n\n return value.map(item => fromDbJson(item))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,MAAa,0BAA0B;;;ACIvC,MAAM,oBAA0B;AAChC,MAAM,oBAA0B;AAChC,MAAM,uBAA0B;AAahC,MAAM,YAA2B,UAAqD;AAEpF,QAAO,CAAC,CAAC,SAAS,OAAO,UAAU;;AAErC,MAAM,kBAA2B,UAAoC;AAEnE,QAAQ,OAAO,WAAW,eAAgB,OAAO,SAAS,MAAM;;AAElE,MAAM,wBAAyC;AAE7C,QAAQ,OAAO,WAAW,eAAgB,OAAO,OAAO,SAAS;;AAEnE,MAAM,iBAA2B,UAAqD;AAEpF,KAAI,CAAC,SAAS,MAAM,IAAI,MAAM,QAAQ,MAAM,CAAI,QAAO;CAEvD,MAAM,QAAuB,OAAO,eAAe,MAAM;AAEzD,QAAO,UAAU,OAAO,aAAa,UAAU;;AAEjD,MAAM,kBAA2B,UAA4B;AAE3D,KAAI,eAAe,MAAM,CAEvB,QAAsB;GACnB,oBAAsB;EACvB,GAAuB,MAAM,SAAS,SAAS;EAChD;AAGH,KAAI,iBAAiBA,YAAAA,SAAK;EAExB,MAAM,WAAqB;AAE3B,SAAmB;IAChB,oBAAsB;GACvB,GAAuB,SAAS,QAAQ,EAAE;GAC3C;;AAGH,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,eAAe,KAAK,CAAC;AAGhD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;CAEpC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,eAAe,KAAK;AAGjD,QAAO;;AAET,MAAM,oBAA2B,UAA4B;AAE3D,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,iBAAiB,KAAK,CAAC;AAGlD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;AAEpC,KAAI,MAAM,uBAAuB,qBAAqB,OAAO,MAAM,MAAM,SAEvE,SAAA,GAAA,YAAA,SAAW,MAAM,EAAE;AAErB,KAAI,MAAM,uBAAuB,wBAAwB,OAAO,MAAM,MAAM,YAAY,iBAAiB,CAEvG,QAAO,OAAO,KAAK,MAAM,GAAG,SAAS;CAGvC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,iBAAiB,KAAK;AAGnD,QAAO;;AAET,MAAM,cAA2B,OAAgB,aAAsB,SAAkB;AAEvF,KAAI,MAAM,QAAQ,MAAM,CAAM,QAAO,MAAM,KAAI,SAAQ,WAAW,KAAK,CAAC;AACxE,KAAI,CAAC,cAAc,MAAM,CAAK,QAAO;AAErC,KAAI,MAAM,uBAAuB,qBAAwB,OAAO,MAAM,MAAM,SAAY,QAAO,MAAM;AACrG,KAAI,MAAM,uBAAuB,wBAAwB,OAAO,MAAM,MAAM,YAAY,iBAAiB,EAAE;AAEzG,MAAI,CAAC,WAEH,QAAO,OAAO,KAAK,MAAM,GAAG,SAAS;AAGvC,SAAO;;CAGT,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,EAAE;EAOjD,MAAM,QAAqB,WAAW,KAAK;AAE3C,MAAI,UAAU,KAEZ,QAAO,KAAK;MAIZ,MAAK,OAAoB;;AAI7B,QAAO;;AAIT,MAAe,YAAqB,UAA2BC,iBAAAA,KAAK,eAAe,MAAM,CAAC;AAC1F,MAAe,YAAqB,OAAU,aAAsB,SAAY,WAAWA,iBAAAA,KAAK,eAAe,MAAM,CAAC,EAAE,WAAW;AACnI,MAAa,cAAuB,UAAgB,iBAAiB,MAAM;AAE3E,MAAa,mBAAuB,UAAoB;AAEtD,QAAO,MAAM,KAAI,SAAQ,WAAW,KAAK,CAAC"}
package/dist/index.d.cts CHANGED
@@ -4,7 +4,7 @@ import { copyToNewArray, isSameArray, removeDuplicates, removeMissingNumbersFrom
4
4
  import { PREFIX_BECH32, decodeBech32, decodeBech32Buffer, decodeBech32Key, encodeBech32 } from "./lib/bech32.cjs";
5
5
  import { blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str } from "./lib/blake.cjs";
6
6
  import { crc8 } from "./lib/crc8.cjs";
7
- import { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String } from "./lib/hex.cjs";
7
+ import { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String } from "./lib/hex.cjs";
8
8
  import { getRandomId, getShortId } from "./lib/id.cjs";
9
9
  import { toFraction } from "./lib/math.cjs";
10
10
  import { isNumber } from "./lib/number.cjs";
@@ -17,8 +17,9 @@ declare const fileHashSubstringLength = 8;
17
17
  //#endregion
18
18
  //#region src/serde.d.ts
19
19
  declare const toDbJson: <T>(value: T) => T;
20
+ declare const toUIJson: <T>(value: T, stripBytes?: boolean) => T;
20
21
  declare const fromDbJson: <T>(value: T) => T;
21
22
  declare const fromDbJsonArray: <T>(value: T[]) => T[];
22
23
  //#endregion
23
- export { DEFAULT_SLEEP_MS, PREFIX_BECH32, blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str, byteaToHex, canUpdate, changeTimezone, copyToNewArray, crc8, createHash, createJsonFromCborJson, dataViewToArray, decodeBech32, decodeBech32Buffer, decodeBech32Key, decodeHex, deepMerge, el, elapsedSeconds, elapsedTime, encodeBech32, encodeHex, ensureLength, er, error, fileHashSubstringLength, fromDbJson, fromDbJsonArray, getErrorMsg, getKeyValue, getRandomId, getShortId, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isNumber, isSameArray, isTxHash, json, now, prefix0x, removeDuplicates, removeMissingNumbersFromArray, removeNumberFromArray, replaceItemsInList, reverseString, setOffsetFromServer, sl, sleep, sleepDefault, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toDbJson, toFraction, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, trimAllStrings, trimQuotes, truncateAddress, truncateString, uint8ArrayToUtf8String, warn };
24
+ export { DEFAULT_SLEEP_MS, PREFIX_BECH32, blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str, byteaToHex, canUpdate, changeTimezone, copyToNewArray, crc8, createHash, createJsonFromCborJson, dataViewToArray, decodeBech32, decodeBech32Buffer, decodeBech32Key, decodeHex, deepMerge, el, elapsedSeconds, elapsedTime, encodeBech32, encodeHex, ensureLength, er, error, fileHashSubstringLength, fromDbJson, fromDbJsonArray, getErrorMsg, getKeyValue, getRandomId, getShortId, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isNumber, isSameArray, isTxHash, json, now, prefix0x, removeDuplicates, removeMissingNumbersFromArray, removeNumberFromArray, replaceItemsInList, reverseString, setOffsetFromServer, sl, sleep, sleepDefault, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toDbJson, toFraction, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, toUIJson, trimAllStrings, trimQuotes, truncateAddress, truncateString, uint8ArrayToUtf8String, warn };
24
25
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/guard.ts","../src/serde.ts"],"mappings":";;;;;;;;;;;;;;;cAAa,uBAAA;;;cCwGE,QAAA,MAAqB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAClC,UAAA,MAAuB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAElC,eAAA,MAAuB,KAAA,EAAO,CAAA,OAAM,CAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/guard.ts","../src/serde.ts"],"mappings":";;;;;;;;;;;;;;;cAAa,uBAAA;;;cC+IE,QAAA,MAAqB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAChC,QAAA,MAAqB,KAAA,EAAO,CAAA,EAAG,UAAA,eAA6B,CAAA;AAAA,cAC9D,UAAA,MAAuB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAElC,eAAA,MAAuB,KAAA,EAAO,CAAA,OAAM,CAAA"}
package/dist/index.d.mts CHANGED
@@ -4,7 +4,7 @@ import { copyToNewArray, isSameArray, removeDuplicates, removeMissingNumbersFrom
4
4
  import { PREFIX_BECH32, decodeBech32, decodeBech32Buffer, decodeBech32Key, encodeBech32 } from "./lib/bech32.mjs";
5
5
  import { blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str } from "./lib/blake.mjs";
6
6
  import { crc8 } from "./lib/crc8.mjs";
7
- import { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String } from "./lib/hex.mjs";
7
+ import { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String } from "./lib/hex.mjs";
8
8
  import { getRandomId, getShortId } from "./lib/id.mjs";
9
9
  import { toFraction } from "./lib/math.mjs";
10
10
  import { isNumber } from "./lib/number.mjs";
@@ -17,8 +17,9 @@ declare const fileHashSubstringLength = 8;
17
17
  //#endregion
18
18
  //#region src/serde.d.ts
19
19
  declare const toDbJson: <T>(value: T) => T;
20
+ declare const toUIJson: <T>(value: T, stripBytes?: boolean) => T;
20
21
  declare const fromDbJson: <T>(value: T) => T;
21
22
  declare const fromDbJsonArray: <T>(value: T[]) => T[];
22
23
  //#endregion
23
- export { DEFAULT_SLEEP_MS, PREFIX_BECH32, blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str, byteaToHex, canUpdate, changeTimezone, copyToNewArray, crc8, createHash, createJsonFromCborJson, dataViewToArray, decodeBech32, decodeBech32Buffer, decodeBech32Key, decodeHex, deepMerge, el, elapsedSeconds, elapsedTime, encodeBech32, encodeHex, ensureLength, er, error, fileHashSubstringLength, fromDbJson, fromDbJsonArray, getErrorMsg, getKeyValue, getRandomId, getShortId, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isNumber, isSameArray, isTxHash, json, now, prefix0x, removeDuplicates, removeMissingNumbersFromArray, removeNumberFromArray, replaceItemsInList, reverseString, setOffsetFromServer, sl, sleep, sleepDefault, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toDbJson, toFraction, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, trimAllStrings, trimQuotes, truncateAddress, truncateString, uint8ArrayToUtf8String, warn };
24
+ export { DEFAULT_SLEEP_MS, PREFIX_BECH32, blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str, byteaToHex, canUpdate, changeTimezone, copyToNewArray, crc8, createHash, createJsonFromCborJson, dataViewToArray, decodeBech32, decodeBech32Buffer, decodeBech32Key, decodeHex, deepMerge, el, elapsedSeconds, elapsedTime, encodeBech32, encodeHex, ensureLength, er, error, fileHashSubstringLength, fromDbJson, fromDbJsonArray, getErrorMsg, getKeyValue, getRandomId, getShortId, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isNumber, isSameArray, isTxHash, json, now, prefix0x, removeDuplicates, removeMissingNumbersFromArray, removeNumberFromArray, replaceItemsInList, reverseString, setOffsetFromServer, sl, sleep, sleepDefault, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toDbJson, toFraction, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, toUIJson, trimAllStrings, trimQuotes, truncateAddress, truncateString, uint8ArrayToUtf8String, warn };
24
25
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/lib/guard.ts","../src/serde.ts"],"mappings":";;;;;;;;;;;;;;;cAAa,uBAAA;;;cCwGE,QAAA,MAAqB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAClC,UAAA,MAAuB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAElC,eAAA,MAAuB,KAAA,EAAO,CAAA,OAAM,CAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/lib/guard.ts","../src/serde.ts"],"mappings":";;;;;;;;;;;;;;;cAAa,uBAAA;;;cC+IE,QAAA,MAAqB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAChC,QAAA,MAAqB,KAAA,EAAO,CAAA,EAAG,UAAA,eAA6B,CAAA;AAAA,cAC9D,UAAA,MAAuB,KAAA,EAAO,CAAA,KAAI,CAAA;AAAA,cAElC,eAAA,MAAuB,KAAA,EAAO,CAAA,OAAM,CAAA"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createHash, ensureLength, reverseString, trimAllStrings, trimQuotes, truncateAddress, truncateString } from "./lib/string.mjs";
2
- import { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String } from "./lib/hex.mjs";
2
+ import { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String } from "./lib/hex.mjs";
3
3
  import { createJsonFromCborJson, deepMerge, getErrorMsg, getKeyValue, json } from "./lib/json.mjs";
4
4
  import { el, er, error, sl, warn } from "./log/index.mjs";
5
5
  import { copyToNewArray, isSameArray, removeDuplicates, removeMissingNumbersFromArray, removeNumberFromArray, replaceItemsInList } from "./lib/array.mjs";
@@ -42,7 +42,7 @@ const serializeValue = (value) => {
42
42
  const bigValue = value;
43
43
  return {
44
44
  [DB_SERDE_TYPE_KEY]: DB_SERDE_BIG_TYPE,
45
- v: bigValue.toString()
45
+ v: bigValue.toFixed(0)
46
46
  };
47
47
  }
48
48
  if (Array.isArray(value)) return value.map((item) => serializeValue(item));
@@ -60,12 +60,29 @@ const deserializeValue = (value) => {
60
60
  for (const [key, item] of Object.entries(value)) copy[key] = deserializeValue(item);
61
61
  return copy;
62
62
  };
63
+ const trimUIJson = (value, stripBytes = true) => {
64
+ if (Array.isArray(value)) return value.map((item) => trimUIJson(item));
65
+ if (!isPlainObject(value)) return value;
66
+ if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === "string") return value.v;
67
+ if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === "string" && canCreateBuffer()) {
68
+ if (!stripBytes) return Buffer.from(value.v, "base64");
69
+ return null;
70
+ }
71
+ const copy = {};
72
+ for (const [key, item] of Object.entries(value)) {
73
+ const value = trimUIJson(item);
74
+ if (value === null) delete copy[key];
75
+ else copy[key] = value;
76
+ }
77
+ return copy;
78
+ };
63
79
  const toDbJson = (value) => json(serializeValue(value));
80
+ const toUIJson = (value, stripBytes = true) => trimUIJson(json(serializeValue(value)), stripBytes);
64
81
  const fromDbJson = (value) => deserializeValue(value);
65
82
  const fromDbJsonArray = (value) => {
66
83
  return value.map((item) => fromDbJson(item));
67
84
  };
68
85
  //#endregion
69
- export { DEFAULT_SLEEP_MS, PREFIX_BECH32, blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str, byteaToHex, canUpdate, changeTimezone, copyToNewArray, crc8, createHash, createJsonFromCborJson, dataViewToArray, decodeBech32, decodeBech32Buffer, decodeBech32Key, decodeHex, deepMerge, el, elapsedSeconds, elapsedTime, encodeBech32, encodeHex, ensureLength, er, error, fileHashSubstringLength, fromDbJson, fromDbJsonArray, getErrorMsg, getKeyValue, getRandomId, getShortId, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isNumber, isSameArray, isTxHash, json, now, prefix0x, removeDuplicates, removeMissingNumbersFromArray, removeNumberFromArray, replaceItemsInList, reverseString, setOffsetFromServer, sl, sleep, sleepDefault, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toDbJson, toFraction, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, trimAllStrings, trimQuotes, truncateAddress, truncateString, uint8ArrayToUtf8String, warn };
86
+ export { DEFAULT_SLEEP_MS, PREFIX_BECH32, blake2b160, blake2b224, blake2b224Str, blake2b256, blake2b256Str, byteaToHex, canUpdate, changeTimezone, copyToNewArray, crc8, createHash, createJsonFromCborJson, dataViewToArray, decodeBech32, decodeBech32Buffer, decodeBech32Key, decodeHex, deepMerge, el, elapsedSeconds, elapsedTime, encodeBech32, encodeHex, ensureLength, er, error, fileHashSubstringLength, fromDbJson, fromDbJsonArray, getErrorMsg, getKeyValue, getRandomId, getShortId, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isNumber, isSameArray, isTxHash, json, now, prefix0x, removeDuplicates, removeMissingNumbersFromArray, removeNumberFromArray, replaceItemsInList, reverseString, setOffsetFromServer, sl, sleep, sleepDefault, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toDbJson, toFraction, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, toUIJson, trimAllStrings, trimQuotes, truncateAddress, truncateString, uint8ArrayToUtf8String, warn };
70
87
 
71
88
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/lib/guard.ts","../src/serde.ts"],"sourcesContent":["export const fileHashSubstringLength = 8\n","import Big from '@eternl/big'\n\nimport { json } from './lib/json'\n\nconst DB_SERDE_TYPE_KEY = '__eternlSerde'\nconst DB_SERDE_BIG_TYPE = 'big.v1'\nconst DB_SERDE_BUFFER_TYPE = 'buffer.v1'\n\ninterface DbSerdeBig {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BIG_TYPE\n v: string\n}\ninterface DbSerdeBuffer {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BUFFER_TYPE\n v: string\n}\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n\n return !!value && typeof value === 'object'\n}\nconst isBufferObject = (value: unknown): value is Buffer => {\n\n return (typeof Buffer !== 'undefined') && Buffer.isBuffer(value)\n}\nconst canCreateBuffer = (): boolean => {\n\n return (typeof Buffer !== 'undefined') && typeof Buffer.from === 'function'\n}\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\n if (!isObject(value) || Array.isArray(value)) { return false }\n\n const proto = Object.getPrototypeOf(value)\n\n return proto === Object.prototype || proto === null\n}\nconst serializeValue = (value: unknown): unknown => {\n\n if (isBufferObject(value)) {\n\n return <DbSerdeBuffer>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BUFFER_TYPE,\n v: value.toString('base64')\n }\n }\n\n if (value instanceof Big) {\n\n const bigValue = value as Big\n\n return <DbSerdeBig>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BIG_TYPE,\n v: bigValue.toString()\n }\n }\n\n if (Array.isArray(value)) {\n\n return value.map(item => serializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = serializeValue(item)\n }\n\n return copy\n}\nconst deserializeValue = (value: unknown): unknown => {\n\n if (Array.isArray(value)) {\n\n return value.map(item => deserializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === 'string') {\n\n return Big(value.v)\n }\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === 'string' && canCreateBuffer()) {\n\n return Buffer.from(value.v, 'base64')\n }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = deserializeValue(item)\n }\n\n return copy\n}\n\n// TODO: fix: check all usage for where we can prevent recreating the same objects again to save on allocations.\nexport const toDbJson = <T>(value: T): T => json(serializeValue(value)) as T\nexport const fromDbJson = <T>(value: T): T => deserializeValue(value) as T\n\nexport const fromDbJsonArray = <T>(value: T[]): T[] => {\n\n return value.map(item => fromDbJson(item))\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,MAAa,0BAA0B;;;ACIvC,MAAM,oBAA0B;AAChC,MAAM,oBAA0B;AAChC,MAAM,uBAA0B;AAahC,MAAM,YAA2B,UAAqD;AAEpF,QAAO,CAAC,CAAC,SAAS,OAAO,UAAU;;AAErC,MAAM,kBAA2B,UAAoC;AAEnE,QAAQ,OAAO,WAAW,eAAgB,OAAO,SAAS,MAAM;;AAElE,MAAM,wBAAyC;AAE7C,QAAQ,OAAO,WAAW,eAAgB,OAAO,OAAO,SAAS;;AAEnE,MAAM,iBAA2B,UAAqD;AAEpF,KAAI,CAAC,SAAS,MAAM,IAAI,MAAM,QAAQ,MAAM,CAAI,QAAO;CAEvD,MAAM,QAAuB,OAAO,eAAe,MAAM;AAEzD,QAAO,UAAU,OAAO,aAAa,UAAU;;AAEjD,MAAM,kBAA2B,UAA4B;AAE3D,KAAI,eAAe,MAAM,CAEvB,QAAsB;GACnB,oBAAsB;EACvB,GAAuB,MAAM,SAAS,SAAS;EAChD;AAGH,KAAI,iBAAiB,KAAK;EAExB,MAAM,WAAqB;AAE3B,SAAmB;IAChB,oBAAsB;GACvB,GAAuB,SAAS,UAAU;GAC3C;;AAGH,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,eAAe,KAAK,CAAC;AAGhD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;CAEpC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,eAAe,KAAK;AAGjD,QAAO;;AAET,MAAM,oBAA2B,UAA4B;AAE3D,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,iBAAiB,KAAK,CAAC;AAGlD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;AAEpC,KAAI,MAAM,uBAAuB,qBAAqB,OAAO,MAAM,MAAM,SAEvE,QAAO,IAAI,MAAM,EAAE;AAErB,KAAI,MAAM,uBAAuB,wBAAwB,OAAO,MAAM,MAAM,YAAY,iBAAiB,CAEvG,QAAO,OAAO,KAAK,MAAM,GAAG,SAAS;CAGvC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,iBAAiB,KAAK;AAGnD,QAAO;;AAIT,MAAe,YAAqB,UAAgB,KAAK,eAAe,MAAM,CAAC;AAC/E,MAAa,cAAuB,UAAgB,iBAAiB,MAAM;AAE3E,MAAa,mBAAuB,UAAoB;AAEtD,QAAO,MAAM,KAAI,SAAQ,WAAW,KAAK,CAAC"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/lib/guard.ts","../src/serde.ts"],"sourcesContent":["export const fileHashSubstringLength = 8\n","import Big from '@eternl/big'\n\nimport { json } from './lib/json'\n\nconst DB_SERDE_TYPE_KEY = '__eternlSerde'\nconst DB_SERDE_BIG_TYPE = 'big.v1'\nconst DB_SERDE_BUFFER_TYPE = 'buffer.v1'\n\ninterface DbSerdeBig {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BIG_TYPE\n v: string\n}\ninterface DbSerdeBuffer {\n\n [DB_SERDE_TYPE_KEY]: typeof DB_SERDE_BUFFER_TYPE\n v: string\n}\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n\n return !!value && typeof value === 'object'\n}\nconst isBufferObject = (value: unknown): value is Buffer => {\n\n return (typeof Buffer !== 'undefined') && Buffer.isBuffer(value)\n}\nconst canCreateBuffer = (): boolean => {\n\n return (typeof Buffer !== 'undefined') && typeof Buffer.from === 'function'\n}\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\n if (!isObject(value) || Array.isArray(value)) { return false }\n\n const proto = Object.getPrototypeOf(value)\n\n return proto === Object.prototype || proto === null\n}\nconst serializeValue = (value: unknown): unknown => {\n\n if (isBufferObject(value)) {\n\n return <DbSerdeBuffer>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BUFFER_TYPE,\n v: value.toString('base64')\n }\n }\n\n if (value instanceof Big) {\n\n const bigValue = value as Big\n\n return <DbSerdeBig>{\n [DB_SERDE_TYPE_KEY]: DB_SERDE_BIG_TYPE,\n v: bigValue.toFixed(0)\n }\n }\n\n if (Array.isArray(value)) {\n\n return value.map(item => serializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = serializeValue(item)\n }\n\n return copy\n}\nconst deserializeValue = (value: unknown): unknown => {\n\n if (Array.isArray(value)) {\n\n return value.map(item => deserializeValue(item))\n }\n\n if (!isPlainObject(value)) { return value }\n\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === 'string') {\n\n return Big(value.v)\n }\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === 'string' && canCreateBuffer()) {\n\n return Buffer.from(value.v, 'base64')\n }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n\n copy[key] = deserializeValue(item)\n }\n\n return copy\n}\nconst trimUIJson = (value: unknown, stripBytes: boolean = true): unknown => {\n\n if (Array.isArray(value)) { return value.map(item => trimUIJson(item)) }\n if (!isPlainObject(value)) { return value }\n\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BIG_TYPE && typeof value.v === 'string') { return value.v }\n if (value[DB_SERDE_TYPE_KEY] === DB_SERDE_BUFFER_TYPE && typeof value.v === 'string' && canCreateBuffer()) {\n\n if (!stripBytes) {\n\n return Buffer.from(value.v, 'base64')\n }\n\n return null\n }\n\n const copy: Record<string, unknown> = {}\n\n for (const [ key, item ] of Object.entries(value)) {\n //\n // if (stripBytes && key === 'bytes') {\n //\n // continue\n // }\n\n const value = trimUIJson(item)\n\n if (value === null) {\n\n delete copy[key]\n\n } else {\n\n copy[key] = value\n }\n }\n\n return copy\n}\n\n// TODO: fix: check all usage for where we can prevent recreating the same objects again to save on allocations.\nexport const toDbJson = <T>(value: T): T => json(serializeValue(value)) as T\nexport const toUIJson = <T>(value: T, stripBytes: boolean = true): T => trimUIJson(json(serializeValue(value)), stripBytes) as T\nexport const fromDbJson = <T>(value: T): T => deserializeValue(value) as T\n\nexport const fromDbJsonArray = <T>(value: T[]): T[] => {\n\n return value.map(item => fromDbJson(item))\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,MAAa,0BAA0B;;;ACIvC,MAAM,oBAA0B;AAChC,MAAM,oBAA0B;AAChC,MAAM,uBAA0B;AAahC,MAAM,YAA2B,UAAqD;AAEpF,QAAO,CAAC,CAAC,SAAS,OAAO,UAAU;;AAErC,MAAM,kBAA2B,UAAoC;AAEnE,QAAQ,OAAO,WAAW,eAAgB,OAAO,SAAS,MAAM;;AAElE,MAAM,wBAAyC;AAE7C,QAAQ,OAAO,WAAW,eAAgB,OAAO,OAAO,SAAS;;AAEnE,MAAM,iBAA2B,UAAqD;AAEpF,KAAI,CAAC,SAAS,MAAM,IAAI,MAAM,QAAQ,MAAM,CAAI,QAAO;CAEvD,MAAM,QAAuB,OAAO,eAAe,MAAM;AAEzD,QAAO,UAAU,OAAO,aAAa,UAAU;;AAEjD,MAAM,kBAA2B,UAA4B;AAE3D,KAAI,eAAe,MAAM,CAEvB,QAAsB;GACnB,oBAAsB;EACvB,GAAuB,MAAM,SAAS,SAAS;EAChD;AAGH,KAAI,iBAAiB,KAAK;EAExB,MAAM,WAAqB;AAE3B,SAAmB;IAChB,oBAAsB;GACvB,GAAuB,SAAS,QAAQ,EAAE;GAC3C;;AAGH,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,eAAe,KAAK,CAAC;AAGhD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;CAEpC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,eAAe,KAAK;AAGjD,QAAO;;AAET,MAAM,oBAA2B,UAA4B;AAE3D,KAAI,MAAM,QAAQ,MAAM,CAEtB,QAAO,MAAM,KAAI,SAAQ,iBAAiB,KAAK,CAAC;AAGlD,KAAI,CAAC,cAAc,MAAM,CAAI,QAAO;AAEpC,KAAI,MAAM,uBAAuB,qBAAqB,OAAO,MAAM,MAAM,SAEvE,QAAO,IAAI,MAAM,EAAE;AAErB,KAAI,MAAM,uBAAuB,wBAAwB,OAAO,MAAM,MAAM,YAAY,iBAAiB,CAEvG,QAAO,OAAO,KAAK,MAAM,GAAG,SAAS;CAGvC,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,CAE/C,MAAK,OAAsB,iBAAiB,KAAK;AAGnD,QAAO;;AAET,MAAM,cAA2B,OAAgB,aAAsB,SAAkB;AAEvF,KAAI,MAAM,QAAQ,MAAM,CAAM,QAAO,MAAM,KAAI,SAAQ,WAAW,KAAK,CAAC;AACxE,KAAI,CAAC,cAAc,MAAM,CAAK,QAAO;AAErC,KAAI,MAAM,uBAAuB,qBAAwB,OAAO,MAAM,MAAM,SAAY,QAAO,MAAM;AACrG,KAAI,MAAM,uBAAuB,wBAAwB,OAAO,MAAM,MAAM,YAAY,iBAAiB,EAAE;AAEzG,MAAI,CAAC,WAEH,QAAO,OAAO,KAAK,MAAM,GAAG,SAAS;AAGvC,SAAO;;CAGT,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,CAAE,KAAK,SAAU,OAAO,QAAQ,MAAM,EAAE;EAOjD,MAAM,QAAqB,WAAW,KAAK;AAE3C,MAAI,UAAU,KAEZ,QAAO,KAAK;MAIZ,MAAK,OAAoB;;AAI7B,QAAO;;AAIT,MAAe,YAAqB,UAA2B,KAAK,eAAe,MAAM,CAAC;AAC1F,MAAe,YAAqB,OAAU,aAAsB,SAAY,WAAW,KAAK,eAAe,MAAM,CAAC,EAAE,WAAW;AACnI,MAAa,cAAuB,UAAgB,iBAAiB,MAAM;AAE3E,MAAa,mBAAuB,UAAoB;AAEtD,QAAO,MAAM,KAAI,SAAQ,WAAW,KAAK,CAAC"}
package/dist/lib/hex.cjs CHANGED
@@ -15,6 +15,7 @@ const toBufferFromArray = (arr) => Buffer.from(arr);
15
15
  const toHexArray = (hex) => Uint8Array.from(toHexBuffer(hex));
16
16
  const toB64Array = (str) => Uint8Array.from(toB64Buffer(str));
17
17
  const toStringArray = (str) => Uint8Array.from(toBuffer(str));
18
+ const sortHexList = (arr) => Array.from(new Set(arr)).sort((a, b) => a.localeCompare(b, "en-US"));
18
19
  const hexToDataView = (hex) => new DataView(toHexArray(hex).buffer);
19
20
  const dataViewToArray = (dv) => new Uint8Array(dv.buffer, dv.byteOffset, dv.byteLength);
20
21
  const decodeHex = (str) => {
@@ -70,6 +71,7 @@ exports.isASCII = isASCII;
70
71
  exports.isHexString = isHexString;
71
72
  exports.isTxHash = isTxHash;
72
73
  exports.prefix0x = prefix0x;
74
+ exports.sortHexList = sortHexList;
73
75
  exports.toB64Array = toB64Array;
74
76
  exports.toB64Buffer = toB64Buffer;
75
77
  exports.toB64String = toB64String;
@@ -1 +1 @@
1
- {"version":3,"file":"hex.cjs","names":[],"sources":["../../src/lib/hex.ts"],"sourcesContent":["export const byteaToHex = (bytea: string | String): string => bytea.startsWith('\\\\x') ? bytea.substring(2) : bytea.toString()\nexport const hexToBytea = ( hex: string | String): string => hex.startsWith('\\\\x') ? hex.toString() : ( '\\\\x' + hex )\nexport const prefix0x = ( hex: string | String): string => hex.startsWith( '0x') ? hex.toString() : ( '0x' + hex )\n\nconst toBufferView = ( arr: Uint8Array): Buffer => Buffer.isBuffer(arr)\n ? arr\n : Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength)\n\nexport const encodeHex = ( str: string | String): string => Buffer.from(str).toString('hex')\nexport const toHexStringBuffer= ( arr: Buffer | null): string => arr ? arr.toString('hex') : ''\nexport const toHexString = ( arr: Uint8Array | null): string => arr ? toBufferView(arr).toString('hex') : ''\nexport const toB64String = ( arr: Uint8Array): string => Buffer.from(arr).toString('base64')\nexport const toBuffer = ( hex: string | String): Buffer => toHexBuffer(hex)\nexport const toHexBuffer = ( hex: string | String): Buffer => Buffer.from(byteaToHex(hex), 'hex')\nexport const toB64Buffer = ( str: string | String): Buffer => Buffer.from(str, 'base64')\nexport const toBufferFromArray= ( arr: Uint8Array): Buffer => Buffer.from(arr)\nexport const toHexArray = ( hex: string | String): Uint8Array => Uint8Array.from(toHexBuffer(hex))\nexport const toB64Array = ( str: string | String): Uint8Array => Uint8Array.from(toB64Buffer(str))\nexport const toStringArray = ( str: string | String): Uint8Array => Uint8Array.from(toBuffer(str))\n\nexport const hexToDataView = ( hex: string | String): DataView => new DataView(toHexArray(hex).buffer)\nexport const dataViewToArray = ( dv: DataView): Uint8Array => new Uint8Array(dv.buffer, dv.byteOffset, dv.byteLength)\n\nexport const decodeHex = ( str: string | String): string => {\n\n const decoded = toHexBuffer(str).toString()\n\n return !isASCII(decoded) || hasUnicode(decoded) ? prefix0x(str) : decoded\n}\nexport const isASCII = ( str: string | String, ext: boolean = true): boolean => (ext ? /^[\\x00-\\xFF]*$/ : /^[\\x00-\\x7F]*$/).test(str.toString())\nexport const isHexString = ( str: string | String): boolean => str.length % 2 === 0 && /^[0-9a-fA-F]*$/.test(str.toString())\nexport const isTxHash = ( str: string | String): boolean => str.length === 64 && isHexString(str)\nexport const hasUnicode = ( str: string | String): boolean => (JSON.stringify(str).match(/\\\\u[\\dA-F]{4}/gi)?.length ?? 0) > 0\n\n/* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>\n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\nexport const uint8ArrayToUtf8String = (array: Uint8Array): string => {\n var out, i, len, c;\n var char2, char3;\n\n out = \"\";\n len = array.length;\n i = 0;\n while (i < len) {\n c = array[i++]!;\n switch (c >> 4)\n {\n case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n case 12: case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++]!;\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]!;\n char3 = array[i++]!;\n out += String.fromCharCode(((c & 0x0F) << 12) |\n ((char2 & 0x3F) << 6) |\n ((char3 & 0x3F) << 0));\n break;\n }\n }\n\n return out;\n}\n"],"mappings":";;AAAA,MAAa,cAAoB,UAA2D,MAAM,WAAW,MAAM,GAAG,MAAM,UAAU,EAAE,GAAG,MAAM,UAAU;AAC3J,MAAa,cAAsB,QAA2D,IAAI,WAAW,MAAM,GAAG,IAAI,UAAU,GAAS,QAAQ;AACrJ,MAAa,YAAsB,QAA2D,IAAI,WAAY,KAAK,GAAG,IAAI,UAAU,GAAU,OAAO;AAErJ,MAAM,gBAA6B,QAAkD,OAAO,SAAS,IAAI,GACrG,MACA,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,WAAW;AAE3D,MAAa,aAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,MAAM;AAC3H,MAAa,qBAAsB,QAAkD,MAAM,IAAI,SAAS,MAAM,GAAG;AACjH,MAAa,eAAsB,QAAkD,MAAM,aAAa,IAAI,CAAC,SAAS,MAAM,GAAG;AAC/H,MAAa,eAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,SAAS;AAC9H,MAAa,YAAsB,QAAwD,YAAY,IAAI;AAC3G,MAAa,eAAsB,QAAwD,OAAO,KAAK,WAAW,IAAI,EAAE,MAAM;AAC9H,MAAa,eAAsB,QAAwD,OAAO,KAAK,KAAK,SAAS;AACrH,MAAa,qBAAsB,QAAwD,OAAO,KAAK,IAAI;AAC3G,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,iBAAsB,QAAoD,WAAW,KAAK,SAAS,IAAI,CAAC;AAErH,MAAa,iBAAsB,QAAkD,IAAI,SAAS,WAAW,IAAI,CAAC,OAAO;AACzH,MAAa,mBAAuB,OAAiD,IAAI,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW;AAE5I,MAAa,aAAsB,QAAkD;CAEnF,MAAM,UAAwB,YAAY,IAAI,CAAC,UAAU;AAEzD,QAAO,CAAC,QAAQ,QAAQ,IAAI,WAAW,QAAQ,GAAG,SAAS,IAAI,GAAG;;AAEpE,MAAa,WAAsB,KAAsB,MAAe,UAAmB,MAAM,mBAAmB,kBAAkB,KAAK,IAAI,UAAU,CAAC;AAC1J,MAAa,eAAsB,QAAkD,IAAI,SAAS,MAAM,KAAK,iBAAiB,KAAK,IAAI,UAAU,CAAC;AAClJ,MAAa,YAAsB,QAAkD,IAAI,WAAW,MAAM,YAAY,IAAI;AAC1H,MAAa,cAAsB,SAAuD,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,EAAE,UAAU,KAAK;AASvJ,MAAa,0BAA0B,UAA8B;CACnE,IAAI,KAAK,GAAG,KAAK;CACjB,IAAI,OAAO;AAEX,OAAM;AACN,OAAM,MAAM;AACZ,KAAI;AACJ,QAAO,IAAI,KAAK;AACd,MAAI,MAAM;AACV,UAAQ,KAAK,GAAb;GAEE,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;AAE7D,WAAO,OAAO,aAAa,EAAE;AAC7B;GACA,KAAK;GAAI,KAAK;AAEd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,IAAM,QAAQ,GAAM;AAC9D;GACA,KAAK;AAEH,YAAQ,MAAM;AACd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,MACtC,QAAQ,OAAS,KACjB,QAAQ,OAAS,EAAG;AACxB;;;AAIN,QAAO"}
1
+ {"version":3,"file":"hex.cjs","names":[],"sources":["../../src/lib/hex.ts"],"sourcesContent":["export const byteaToHex = (bytea: string | String): string => bytea.startsWith('\\\\x') ? bytea.substring(2) : bytea.toString()\nexport const hexToBytea = ( hex: string | String): string => hex.startsWith('\\\\x') ? hex.toString() : ( '\\\\x' + hex )\nexport const prefix0x = ( hex: string | String): string => hex.startsWith( '0x') ? hex.toString() : ( '0x' + hex )\n\nconst toBufferView = ( arr: Uint8Array): Buffer => Buffer.isBuffer(arr)\n ? arr\n : Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength)\n\nexport const encodeHex = ( str: string | String): string => Buffer.from(str).toString('hex')\nexport const toHexStringBuffer= ( arr: Buffer | null): string => arr ? arr.toString('hex') : ''\nexport const toHexString = ( arr: Uint8Array | null): string => arr ? toBufferView(arr).toString('hex') : ''\nexport const toB64String = ( arr: Uint8Array): string => Buffer.from(arr).toString('base64')\nexport const toBuffer = ( hex: string | String): Buffer => toHexBuffer(hex)\nexport const toHexBuffer = ( hex: string | String): Buffer => Buffer.from(byteaToHex(hex), 'hex')\nexport const toB64Buffer = ( str: string | String): Buffer => Buffer.from(str, 'base64')\nexport const toBufferFromArray= ( arr: Uint8Array): Buffer => Buffer.from(arr)\nexport const toHexArray = ( hex: string | String): Uint8Array => Uint8Array.from(toHexBuffer(hex))\nexport const toB64Array = ( str: string | String): Uint8Array => Uint8Array.from(toB64Buffer(str))\nexport const toStringArray = ( str: string | String): Uint8Array => Uint8Array.from(toBuffer(str))\nexport const sortHexList = ( arr: Iterable<string>): string[] => Array.from(new Set(arr)).sort((a, b) => a.localeCompare(b, 'en-US'))\n\nexport const hexToDataView = ( hex: string | String): DataView => new DataView(toHexArray(hex).buffer)\nexport const dataViewToArray = ( dv: DataView): Uint8Array => new Uint8Array(dv.buffer, dv.byteOffset, dv.byteLength)\n\nexport const decodeHex = ( str: string | String): string => {\n\n const decoded = toHexBuffer(str).toString()\n\n return !isASCII(decoded) || hasUnicode(decoded) ? prefix0x(str) : decoded\n}\nexport const isASCII = ( str: string | String, ext: boolean = true): boolean => (ext ? /^[\\x00-\\xFF]*$/ : /^[\\x00-\\x7F]*$/).test(str.toString())\nexport const isHexString = ( str: string | String): boolean => str.length % 2 === 0 && /^[0-9a-fA-F]*$/.test(str.toString())\nexport const isTxHash = ( str: string | String): boolean => str.length === 64 && isHexString(str)\nexport const hasUnicode = ( str: string | String): boolean => (JSON.stringify(str).match(/\\\\u[\\dA-F]{4}/gi)?.length ?? 0) > 0\n\n/* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>\n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\nexport const uint8ArrayToUtf8String = (array: Uint8Array): string => {\n var out, i, len, c;\n var char2, char3;\n\n out = \"\";\n len = array.length;\n i = 0;\n while (i < len) {\n c = array[i++]!;\n switch (c >> 4)\n {\n case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n case 12: case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++]!;\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]!;\n char3 = array[i++]!;\n out += String.fromCharCode(((c & 0x0F) << 12) |\n ((char2 & 0x3F) << 6) |\n ((char3 & 0x3F) << 0));\n break;\n }\n }\n\n return out;\n}\n"],"mappings":";;AAAA,MAAa,cAAoB,UAA2D,MAAM,WAAW,MAAM,GAAG,MAAM,UAAU,EAAE,GAAG,MAAM,UAAU;AAC3J,MAAa,cAAsB,QAA2D,IAAI,WAAW,MAAM,GAAG,IAAI,UAAU,GAAS,QAAQ;AACrJ,MAAa,YAAsB,QAA2D,IAAI,WAAY,KAAK,GAAG,IAAI,UAAU,GAAU,OAAO;AAErJ,MAAM,gBAA6B,QAAkD,OAAO,SAAS,IAAI,GACrG,MACA,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,WAAW;AAE3D,MAAa,aAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,MAAM;AAC3H,MAAa,qBAAsB,QAAkD,MAAM,IAAI,SAAS,MAAM,GAAG;AACjH,MAAa,eAAsB,QAAkD,MAAM,aAAa,IAAI,CAAC,SAAS,MAAM,GAAG;AAC/H,MAAa,eAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,SAAS;AAC9H,MAAa,YAAsB,QAAwD,YAAY,IAAI;AAC3G,MAAa,eAAsB,QAAwD,OAAO,KAAK,WAAW,IAAI,EAAE,MAAM;AAC9H,MAAa,eAAsB,QAAwD,OAAO,KAAK,KAAK,SAAS;AACrH,MAAa,qBAAsB,QAAwD,OAAO,KAAK,IAAI;AAC3G,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,iBAAsB,QAAoD,WAAW,KAAK,SAAS,IAAI,CAAC;AACrH,MAAa,eAAsB,QAAyD,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC;AAEhK,MAAa,iBAAsB,QAAkD,IAAI,SAAS,WAAW,IAAI,CAAC,OAAO;AACzH,MAAa,mBAAuB,OAAiD,IAAI,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW;AAE5I,MAAa,aAAsB,QAAkD;CAEnF,MAAM,UAAwB,YAAY,IAAI,CAAC,UAAU;AAEzD,QAAO,CAAC,QAAQ,QAAQ,IAAI,WAAW,QAAQ,GAAG,SAAS,IAAI,GAAG;;AAEpE,MAAa,WAAsB,KAAsB,MAAe,UAAmB,MAAM,mBAAmB,kBAAkB,KAAK,IAAI,UAAU,CAAC;AAC1J,MAAa,eAAsB,QAAkD,IAAI,SAAS,MAAM,KAAK,iBAAiB,KAAK,IAAI,UAAU,CAAC;AAClJ,MAAa,YAAsB,QAAkD,IAAI,WAAW,MAAM,YAAY,IAAI;AAC1H,MAAa,cAAsB,SAAuD,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,EAAE,UAAU,KAAK;AASvJ,MAAa,0BAA0B,UAA8B;CACnE,IAAI,KAAK,GAAG,KAAK;CACjB,IAAI,OAAO;AAEX,OAAM;AACN,OAAM,MAAM;AACZ,KAAI;AACJ,QAAO,IAAI,KAAK;AACd,MAAI,MAAM;AACV,UAAQ,KAAK,GAAb;GAEE,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;AAE7D,WAAO,OAAO,aAAa,EAAE;AAC7B;GACA,KAAK;GAAI,KAAK;AAEd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,IAAM,QAAQ,GAAM;AAC9D;GACA,KAAK;AAEH,YAAQ,MAAM;AACd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,MACtC,QAAQ,OAAS,KACjB,QAAQ,OAAS,EAAG;AACxB;;;AAIN,QAAO"}
@@ -13,6 +13,7 @@ declare const toBufferFromArray: (arr: Uint8Array) => Buffer;
13
13
  declare const toHexArray: (hex: string | String) => Uint8Array;
14
14
  declare const toB64Array: (str: string | String) => Uint8Array;
15
15
  declare const toStringArray: (str: string | String) => Uint8Array;
16
+ declare const sortHexList: (arr: Iterable<string>) => string[];
16
17
  declare const hexToDataView: (hex: string | String) => DataView;
17
18
  declare const dataViewToArray: (dv: DataView) => Uint8Array;
18
19
  declare const decodeHex: (str: string | String) => string;
@@ -22,5 +23,5 @@ declare const isTxHash: (str: string | String) => boolean;
22
23
  declare const hasUnicode: (str: string | String) => boolean;
23
24
  declare const uint8ArrayToUtf8String: (array: Uint8Array) => string;
24
25
  //#endregion
25
- export { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String };
26
+ export { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String };
26
27
  //# sourceMappingURL=hex.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hex.d.cts","names":[],"sources":["../../src/lib/hex.ts"],"mappings":";cAAa,UAAA,GAAoB,KAAA,WAAgB,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,iBAAA,GAAsB,GAAA,EAAK,MAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,QAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,iBAAA,GAAsB,GAAA,EAAK,UAAA,KAA8B,MAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cAEzD,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,QAAA;AAAA,cACzD,eAAA,GAAuB,EAAA,EAAI,QAAA,KAA8B,UAAA;AAAA,cAEzD,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,OAAA,GAAsB,GAAA,WAAc,MAAA,EAAQ,GAAA;AAAA,cAC5C,WAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cASpC,sBAAA,GAA0B,KAAA,EAAO,UAAA"}
1
+ {"version":3,"file":"hex.d.cts","names":[],"sources":["../../src/lib/hex.ts"],"mappings":";cAAa,UAAA,GAAoB,KAAA,WAAgB,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,iBAAA,GAAsB,GAAA,EAAK,MAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,QAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,iBAAA,GAAsB,GAAA,EAAK,UAAA,KAA8B,MAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,EAAK,QAAA;AAAA,cAE3B,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,QAAA;AAAA,cACzD,eAAA,GAAuB,EAAA,EAAI,QAAA,KAA8B,UAAA;AAAA,cAEzD,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,OAAA,GAAsB,GAAA,WAAc,MAAA,EAAQ,GAAA;AAAA,cAC5C,WAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cASpC,sBAAA,GAA0B,KAAA,EAAO,UAAA"}
@@ -13,6 +13,7 @@ declare const toBufferFromArray: (arr: Uint8Array) => Buffer;
13
13
  declare const toHexArray: (hex: string | String) => Uint8Array;
14
14
  declare const toB64Array: (str: string | String) => Uint8Array;
15
15
  declare const toStringArray: (str: string | String) => Uint8Array;
16
+ declare const sortHexList: (arr: Iterable<string>) => string[];
16
17
  declare const hexToDataView: (hex: string | String) => DataView;
17
18
  declare const dataViewToArray: (dv: DataView) => Uint8Array;
18
19
  declare const decodeHex: (str: string | String) => string;
@@ -22,5 +23,5 @@ declare const isTxHash: (str: string | String) => boolean;
22
23
  declare const hasUnicode: (str: string | String) => boolean;
23
24
  declare const uint8ArrayToUtf8String: (array: Uint8Array) => string;
24
25
  //#endregion
25
- export { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String };
26
+ export { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String };
26
27
  //# sourceMappingURL=hex.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hex.d.mts","names":[],"sources":["../../src/lib/hex.ts"],"mappings":";cAAa,UAAA,GAAoB,KAAA,WAAgB,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,iBAAA,GAAsB,GAAA,EAAK,MAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,QAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,iBAAA,GAAsB,GAAA,EAAK,UAAA,KAA8B,MAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cAEzD,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,QAAA;AAAA,cACzD,eAAA,GAAuB,EAAA,EAAI,QAAA,KAA8B,UAAA;AAAA,cAEzD,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,OAAA,GAAsB,GAAA,WAAc,MAAA,EAAQ,GAAA;AAAA,cAC5C,WAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cASpC,sBAAA,GAA0B,KAAA,EAAO,UAAA"}
1
+ {"version":3,"file":"hex.d.mts","names":[],"sources":["../../src/lib/hex.ts"],"mappings":";cAAa,UAAA,GAAoB,KAAA,WAAgB,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,iBAAA,GAAsB,GAAA,EAAK,MAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,WAAA,GAAsB,GAAA,EAAK,UAAA;AAAA,cAC3B,QAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,MAAA;AAAA,cACzD,iBAAA,GAAsB,GAAA,EAAK,UAAA,KAA8B,MAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,UAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,UAAA;AAAA,cACzD,WAAA,GAAsB,GAAA,EAAK,QAAA;AAAA,cAE3B,aAAA,GAAsB,GAAA,WAAc,MAAA,KAAqB,QAAA;AAAA,cACzD,eAAA,GAAuB,EAAA,EAAI,QAAA,KAA8B,UAAA;AAAA,cAEzD,SAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cAMpC,OAAA,GAAsB,GAAA,WAAc,MAAA,EAAQ,GAAA;AAAA,cAC5C,WAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,QAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cACpC,UAAA,GAAsB,GAAA,WAAc,MAAA;AAAA,cASpC,sBAAA,GAA0B,KAAA,EAAO,UAAA"}
package/dist/lib/hex.mjs CHANGED
@@ -14,6 +14,7 @@ const toBufferFromArray = (arr) => Buffer.from(arr);
14
14
  const toHexArray = (hex) => Uint8Array.from(toHexBuffer(hex));
15
15
  const toB64Array = (str) => Uint8Array.from(toB64Buffer(str));
16
16
  const toStringArray = (str) => Uint8Array.from(toBuffer(str));
17
+ const sortHexList = (arr) => Array.from(new Set(arr)).sort((a, b) => a.localeCompare(b, "en-US"));
17
18
  const hexToDataView = (hex) => new DataView(toHexArray(hex).buffer);
18
19
  const dataViewToArray = (dv) => new Uint8Array(dv.buffer, dv.byteOffset, dv.byteLength);
19
20
  const decodeHex = (str) => {
@@ -58,6 +59,6 @@ const uint8ArrayToUtf8String = (array) => {
58
59
  return out;
59
60
  };
60
61
  //#endregion
61
- export { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String };
62
+ export { byteaToHex, dataViewToArray, decodeHex, encodeHex, hasUnicode, hexToBytea, hexToDataView, isASCII, isHexString, isTxHash, prefix0x, sortHexList, toB64Array, toB64Buffer, toB64String, toBuffer, toBufferFromArray, toHexArray, toHexBuffer, toHexString, toHexStringBuffer, toStringArray, uint8ArrayToUtf8String };
62
63
 
63
64
  //# sourceMappingURL=hex.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hex.mjs","names":[],"sources":["../../src/lib/hex.ts"],"sourcesContent":["export const byteaToHex = (bytea: string | String): string => bytea.startsWith('\\\\x') ? bytea.substring(2) : bytea.toString()\nexport const hexToBytea = ( hex: string | String): string => hex.startsWith('\\\\x') ? hex.toString() : ( '\\\\x' + hex )\nexport const prefix0x = ( hex: string | String): string => hex.startsWith( '0x') ? hex.toString() : ( '0x' + hex )\n\nconst toBufferView = ( arr: Uint8Array): Buffer => Buffer.isBuffer(arr)\n ? arr\n : Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength)\n\nexport const encodeHex = ( str: string | String): string => Buffer.from(str).toString('hex')\nexport const toHexStringBuffer= ( arr: Buffer | null): string => arr ? arr.toString('hex') : ''\nexport const toHexString = ( arr: Uint8Array | null): string => arr ? toBufferView(arr).toString('hex') : ''\nexport const toB64String = ( arr: Uint8Array): string => Buffer.from(arr).toString('base64')\nexport const toBuffer = ( hex: string | String): Buffer => toHexBuffer(hex)\nexport const toHexBuffer = ( hex: string | String): Buffer => Buffer.from(byteaToHex(hex), 'hex')\nexport const toB64Buffer = ( str: string | String): Buffer => Buffer.from(str, 'base64')\nexport const toBufferFromArray= ( arr: Uint8Array): Buffer => Buffer.from(arr)\nexport const toHexArray = ( hex: string | String): Uint8Array => Uint8Array.from(toHexBuffer(hex))\nexport const toB64Array = ( str: string | String): Uint8Array => Uint8Array.from(toB64Buffer(str))\nexport const toStringArray = ( str: string | String): Uint8Array => Uint8Array.from(toBuffer(str))\n\nexport const hexToDataView = ( hex: string | String): DataView => new DataView(toHexArray(hex).buffer)\nexport const dataViewToArray = ( dv: DataView): Uint8Array => new Uint8Array(dv.buffer, dv.byteOffset, dv.byteLength)\n\nexport const decodeHex = ( str: string | String): string => {\n\n const decoded = toHexBuffer(str).toString()\n\n return !isASCII(decoded) || hasUnicode(decoded) ? prefix0x(str) : decoded\n}\nexport const isASCII = ( str: string | String, ext: boolean = true): boolean => (ext ? /^[\\x00-\\xFF]*$/ : /^[\\x00-\\x7F]*$/).test(str.toString())\nexport const isHexString = ( str: string | String): boolean => str.length % 2 === 0 && /^[0-9a-fA-F]*$/.test(str.toString())\nexport const isTxHash = ( str: string | String): boolean => str.length === 64 && isHexString(str)\nexport const hasUnicode = ( str: string | String): boolean => (JSON.stringify(str).match(/\\\\u[\\dA-F]{4}/gi)?.length ?? 0) > 0\n\n/* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>\n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\nexport const uint8ArrayToUtf8String = (array: Uint8Array): string => {\n var out, i, len, c;\n var char2, char3;\n\n out = \"\";\n len = array.length;\n i = 0;\n while (i < len) {\n c = array[i++]!;\n switch (c >> 4)\n {\n case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n case 12: case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++]!;\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]!;\n char3 = array[i++]!;\n out += String.fromCharCode(((c & 0x0F) << 12) |\n ((char2 & 0x3F) << 6) |\n ((char3 & 0x3F) << 0));\n break;\n }\n }\n\n return out;\n}\n"],"mappings":";AAAA,MAAa,cAAoB,UAA2D,MAAM,WAAW,MAAM,GAAG,MAAM,UAAU,EAAE,GAAG,MAAM,UAAU;AAC3J,MAAa,cAAsB,QAA2D,IAAI,WAAW,MAAM,GAAG,IAAI,UAAU,GAAS,QAAQ;AACrJ,MAAa,YAAsB,QAA2D,IAAI,WAAY,KAAK,GAAG,IAAI,UAAU,GAAU,OAAO;AAErJ,MAAM,gBAA6B,QAAkD,OAAO,SAAS,IAAI,GACrG,MACA,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,WAAW;AAE3D,MAAa,aAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,MAAM;AAC3H,MAAa,qBAAsB,QAAkD,MAAM,IAAI,SAAS,MAAM,GAAG;AACjH,MAAa,eAAsB,QAAkD,MAAM,aAAa,IAAI,CAAC,SAAS,MAAM,GAAG;AAC/H,MAAa,eAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,SAAS;AAC9H,MAAa,YAAsB,QAAwD,YAAY,IAAI;AAC3G,MAAa,eAAsB,QAAwD,OAAO,KAAK,WAAW,IAAI,EAAE,MAAM;AAC9H,MAAa,eAAsB,QAAwD,OAAO,KAAK,KAAK,SAAS;AACrH,MAAa,qBAAsB,QAAwD,OAAO,KAAK,IAAI;AAC3G,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,iBAAsB,QAAoD,WAAW,KAAK,SAAS,IAAI,CAAC;AAErH,MAAa,iBAAsB,QAAkD,IAAI,SAAS,WAAW,IAAI,CAAC,OAAO;AACzH,MAAa,mBAAuB,OAAiD,IAAI,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW;AAE5I,MAAa,aAAsB,QAAkD;CAEnF,MAAM,UAAwB,YAAY,IAAI,CAAC,UAAU;AAEzD,QAAO,CAAC,QAAQ,QAAQ,IAAI,WAAW,QAAQ,GAAG,SAAS,IAAI,GAAG;;AAEpE,MAAa,WAAsB,KAAsB,MAAe,UAAmB,MAAM,mBAAmB,kBAAkB,KAAK,IAAI,UAAU,CAAC;AAC1J,MAAa,eAAsB,QAAkD,IAAI,SAAS,MAAM,KAAK,iBAAiB,KAAK,IAAI,UAAU,CAAC;AAClJ,MAAa,YAAsB,QAAkD,IAAI,WAAW,MAAM,YAAY,IAAI;AAC1H,MAAa,cAAsB,SAAuD,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,EAAE,UAAU,KAAK;AASvJ,MAAa,0BAA0B,UAA8B;CACnE,IAAI,KAAK,GAAG,KAAK;CACjB,IAAI,OAAO;AAEX,OAAM;AACN,OAAM,MAAM;AACZ,KAAI;AACJ,QAAO,IAAI,KAAK;AACd,MAAI,MAAM;AACV,UAAQ,KAAK,GAAb;GAEE,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;AAE7D,WAAO,OAAO,aAAa,EAAE;AAC7B;GACA,KAAK;GAAI,KAAK;AAEd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,IAAM,QAAQ,GAAM;AAC9D;GACA,KAAK;AAEH,YAAQ,MAAM;AACd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,MACtC,QAAQ,OAAS,KACjB,QAAQ,OAAS,EAAG;AACxB;;;AAIN,QAAO"}
1
+ {"version":3,"file":"hex.mjs","names":[],"sources":["../../src/lib/hex.ts"],"sourcesContent":["export const byteaToHex = (bytea: string | String): string => bytea.startsWith('\\\\x') ? bytea.substring(2) : bytea.toString()\nexport const hexToBytea = ( hex: string | String): string => hex.startsWith('\\\\x') ? hex.toString() : ( '\\\\x' + hex )\nexport const prefix0x = ( hex: string | String): string => hex.startsWith( '0x') ? hex.toString() : ( '0x' + hex )\n\nconst toBufferView = ( arr: Uint8Array): Buffer => Buffer.isBuffer(arr)\n ? arr\n : Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength)\n\nexport const encodeHex = ( str: string | String): string => Buffer.from(str).toString('hex')\nexport const toHexStringBuffer= ( arr: Buffer | null): string => arr ? arr.toString('hex') : ''\nexport const toHexString = ( arr: Uint8Array | null): string => arr ? toBufferView(arr).toString('hex') : ''\nexport const toB64String = ( arr: Uint8Array): string => Buffer.from(arr).toString('base64')\nexport const toBuffer = ( hex: string | String): Buffer => toHexBuffer(hex)\nexport const toHexBuffer = ( hex: string | String): Buffer => Buffer.from(byteaToHex(hex), 'hex')\nexport const toB64Buffer = ( str: string | String): Buffer => Buffer.from(str, 'base64')\nexport const toBufferFromArray= ( arr: Uint8Array): Buffer => Buffer.from(arr)\nexport const toHexArray = ( hex: string | String): Uint8Array => Uint8Array.from(toHexBuffer(hex))\nexport const toB64Array = ( str: string | String): Uint8Array => Uint8Array.from(toB64Buffer(str))\nexport const toStringArray = ( str: string | String): Uint8Array => Uint8Array.from(toBuffer(str))\nexport const sortHexList = ( arr: Iterable<string>): string[] => Array.from(new Set(arr)).sort((a, b) => a.localeCompare(b, 'en-US'))\n\nexport const hexToDataView = ( hex: string | String): DataView => new DataView(toHexArray(hex).buffer)\nexport const dataViewToArray = ( dv: DataView): Uint8Array => new Uint8Array(dv.buffer, dv.byteOffset, dv.byteLength)\n\nexport const decodeHex = ( str: string | String): string => {\n\n const decoded = toHexBuffer(str).toString()\n\n return !isASCII(decoded) || hasUnicode(decoded) ? prefix0x(str) : decoded\n}\nexport const isASCII = ( str: string | String, ext: boolean = true): boolean => (ext ? /^[\\x00-\\xFF]*$/ : /^[\\x00-\\x7F]*$/).test(str.toString())\nexport const isHexString = ( str: string | String): boolean => str.length % 2 === 0 && /^[0-9a-fA-F]*$/.test(str.toString())\nexport const isTxHash = ( str: string | String): boolean => str.length === 64 && isHexString(str)\nexport const hasUnicode = ( str: string | String): boolean => (JSON.stringify(str).match(/\\\\u[\\dA-F]{4}/gi)?.length ?? 0) > 0\n\n/* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>\n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\nexport const uint8ArrayToUtf8String = (array: Uint8Array): string => {\n var out, i, len, c;\n var char2, char3;\n\n out = \"\";\n len = array.length;\n i = 0;\n while (i < len) {\n c = array[i++]!;\n switch (c >> 4)\n {\n case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n case 12: case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++]!;\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]!;\n char3 = array[i++]!;\n out += String.fromCharCode(((c & 0x0F) << 12) |\n ((char2 & 0x3F) << 6) |\n ((char3 & 0x3F) << 0));\n break;\n }\n }\n\n return out;\n}\n"],"mappings":";AAAA,MAAa,cAAoB,UAA2D,MAAM,WAAW,MAAM,GAAG,MAAM,UAAU,EAAE,GAAG,MAAM,UAAU;AAC3J,MAAa,cAAsB,QAA2D,IAAI,WAAW,MAAM,GAAG,IAAI,UAAU,GAAS,QAAQ;AACrJ,MAAa,YAAsB,QAA2D,IAAI,WAAY,KAAK,GAAG,IAAI,UAAU,GAAU,OAAO;AAErJ,MAAM,gBAA6B,QAAkD,OAAO,SAAS,IAAI,GACrG,MACA,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,WAAW;AAE3D,MAAa,aAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,MAAM;AAC3H,MAAa,qBAAsB,QAAkD,MAAM,IAAI,SAAS,MAAM,GAAG;AACjH,MAAa,eAAsB,QAAkD,MAAM,aAAa,IAAI,CAAC,SAAS,MAAM,GAAG;AAC/H,MAAa,eAAsB,QAAwD,OAAO,KAAK,IAAI,CAAC,SAAS,SAAS;AAC9H,MAAa,YAAsB,QAAwD,YAAY,IAAI;AAC3G,MAAa,eAAsB,QAAwD,OAAO,KAAK,WAAW,IAAI,EAAE,MAAM;AAC9H,MAAa,eAAsB,QAAwD,OAAO,KAAK,KAAK,SAAS;AACrH,MAAa,qBAAsB,QAAwD,OAAO,KAAK,IAAI;AAC3G,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,cAAsB,QAAoD,WAAW,KAAK,YAAY,IAAI,CAAC;AACxH,MAAa,iBAAsB,QAAoD,WAAW,KAAK,SAAS,IAAI,CAAC;AACrH,MAAa,eAAsB,QAAyD,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC;AAEhK,MAAa,iBAAsB,QAAkD,IAAI,SAAS,WAAW,IAAI,CAAC,OAAO;AACzH,MAAa,mBAAuB,OAAiD,IAAI,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW;AAE5I,MAAa,aAAsB,QAAkD;CAEnF,MAAM,UAAwB,YAAY,IAAI,CAAC,UAAU;AAEzD,QAAO,CAAC,QAAQ,QAAQ,IAAI,WAAW,QAAQ,GAAG,SAAS,IAAI,GAAG;;AAEpE,MAAa,WAAsB,KAAsB,MAAe,UAAmB,MAAM,mBAAmB,kBAAkB,KAAK,IAAI,UAAU,CAAC;AAC1J,MAAa,eAAsB,QAAkD,IAAI,SAAS,MAAM,KAAK,iBAAiB,KAAK,IAAI,UAAU,CAAC;AAClJ,MAAa,YAAsB,QAAkD,IAAI,WAAW,MAAM,YAAY,IAAI;AAC1H,MAAa,cAAsB,SAAuD,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,EAAE,UAAU,KAAK;AASvJ,MAAa,0BAA0B,UAA8B;CACnE,IAAI,KAAK,GAAG,KAAK;CACjB,IAAI,OAAO;AAEX,OAAM;AACN,OAAM,MAAM;AACZ,KAAI;AACJ,QAAO,IAAI,KAAK;AACd,MAAI,MAAM;AACV,UAAQ,KAAK,GAAb;GAEE,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;GAAG,KAAK;AAE7D,WAAO,OAAO,aAAa,EAAE;AAC7B;GACA,KAAK;GAAI,KAAK;AAEd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,IAAM,QAAQ,GAAM;AAC9D;GACA,KAAK;AAEH,YAAQ,MAAM;AACd,YAAQ,MAAM;AACd,WAAO,OAAO,cAAe,IAAI,OAAS,MACtC,QAAQ,OAAS,KACjB,QAAQ,OAAS,EAAG;AACxB;;;AAIN,QAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eternl/tools",
3
- "version": "0.10.26",
3
+ "version": "0.10.28",
4
4
  "description": "Shared tools package for log helpers, base utilities and bech32 helpers",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "bech32": "2.0.0",
35
35
  "blakejs": "1.2.1",
36
- "@eternl/big": "0.10.26"
36
+ "@eternl/big": "0.10.28"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public"