@mtcute/web 0.11.0 → 0.12.0

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 (51) hide show
  1. package/cjs/common-internals-web/base64.js.map +1 -0
  2. package/cjs/common-internals-web/hex.js.map +1 -0
  3. package/cjs/common-internals-web/logging.d.ts +2 -0
  4. package/cjs/common-internals-web/logging.js.map +1 -0
  5. package/cjs/{encodings → common-internals-web}/utf8.js +1 -1
  6. package/cjs/common-internals-web/utf8.js.map +1 -0
  7. package/cjs/index.js +6 -0
  8. package/cjs/platform.d.ts +4 -4
  9. package/cjs/platform.js +4 -4
  10. package/cjs/platform.js.map +1 -1
  11. package/cjs/utils.js +6 -0
  12. package/cjs/websocket.d.ts +0 -1
  13. package/cjs/worker.js.map +1 -1
  14. package/esm/common-internals-web/base64.js.map +1 -0
  15. package/esm/common-internals-web/hex.js.map +1 -0
  16. package/esm/common-internals-web/logging.d.ts +2 -0
  17. package/esm/common-internals-web/logging.js.map +1 -0
  18. package/esm/{encodings → common-internals-web}/utf8.js +1 -1
  19. package/esm/common-internals-web/utf8.js.map +1 -0
  20. package/esm/platform.d.ts +4 -4
  21. package/esm/platform.js +4 -4
  22. package/esm/platform.js.map +1 -1
  23. package/esm/websocket.d.ts +0 -1
  24. package/esm/worker.js.map +1 -1
  25. package/index.d.ts +1 -0
  26. package/index.js +1 -0
  27. package/package.json +4 -4
  28. package/utils.d.ts +1 -0
  29. package/utils.js +1 -0
  30. package/cjs/encodings/base64.js.map +0 -1
  31. package/cjs/encodings/hex.js.map +0 -1
  32. package/cjs/encodings/utf8.js.map +0 -1
  33. package/cjs/logging.d.ts +0 -1
  34. package/cjs/logging.js.map +0 -1
  35. package/esm/encodings/base64.js.map +0 -1
  36. package/esm/encodings/hex.js.map +0 -1
  37. package/esm/encodings/utf8.js.map +0 -1
  38. package/esm/logging.d.ts +0 -1
  39. package/esm/logging.js.map +0 -1
  40. /package/cjs/{encodings → common-internals-web}/base64.d.ts +0 -0
  41. /package/cjs/{encodings → common-internals-web}/base64.js +0 -0
  42. /package/cjs/{encodings → common-internals-web}/hex.d.ts +0 -0
  43. /package/cjs/{encodings → common-internals-web}/hex.js +0 -0
  44. /package/cjs/{logging.js → common-internals-web/logging.js} +0 -0
  45. /package/cjs/{encodings → common-internals-web}/utf8.d.ts +0 -0
  46. /package/esm/{encodings → common-internals-web}/base64.d.ts +0 -0
  47. /package/esm/{encodings → common-internals-web}/base64.js +0 -0
  48. /package/esm/{encodings → common-internals-web}/hex.d.ts +0 -0
  49. /package/esm/{encodings → common-internals-web}/hex.js +0 -0
  50. /package/esm/{logging.js → common-internals-web/logging.js} +0 -0
  51. /package/esm/{encodings → common-internals-web}/utf8.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../src/common-internals-web/base64.ts"],"names":[],"mappings":"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","sourcesContent":["/// Based on https://github.com/beatgammit/base64-js, MIT license\nconst lookup: string[] = []\nconst revLookup: number[] = []\n\nconst code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\nfor (let i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nfunction getLens(b64: string): [number, number] {\n const len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n let validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n const placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\nfunction _byteLength(b64: string, validLen: number, placeHoldersLen: number) {\n return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen\n}\n\nfunction toByteArray(b64: string, arr: Uint8Array) {\n let tmp\n const lens = getLens(b64)\n const validLen = lens[0]\n const placeHoldersLen = lens[1]\n\n let curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n const len = placeHoldersLen > 0 ? validLen - 4 : validLen\n\n let i\n\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xff\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n return arr\n}\n\nfunction tripletToBase64(num: number) {\n return lookup[(num >> 18) & 0x3f] + lookup[(num >> 12) & 0x3f] + lookup[(num >> 6) & 0x3f] + lookup[num & 0x3f]\n}\n\nfunction encodeChunk(uint8: Uint8Array, start: number, end: number) {\n let tmp\n const output = []\n\n for (let i = start; i < end; i += 3) {\n tmp = ((uint8[i] << 16) & 0xff0000) + ((uint8[i + 1] << 8) & 0xff00) + (uint8[i + 2] & 0xff)\n output.push(tripletToBase64(tmp))\n }\n\n return output.join('')\n}\n\nfunction fromByteArray(uint8: Uint8Array) {\n let tmp\n const len = uint8.length\n const extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n const parts = []\n const maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (let i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3f] + '==')\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3f] + lookup[(tmp << 2) & 0x3f] + '=')\n }\n\n return parts.join('')\n}\n\nexport function base64Encode(buf: Uint8Array, url = false): string {\n const str = fromByteArray(buf)\n if (url) return str.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n\n return str\n}\n\nexport function base64Decode(string: string, url = false): Uint8Array {\n if (url) {\n string = string.replace(/-/g, '+').replace(/_/g, '/')\n while (string.length % 4) string += '='\n }\n\n const buf = new Uint8Array(_byteLength(string, ...getLens(string)))\n\n toByteArray(string, buf)\n\n return buf\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/common-internals-web/hex.ts"],"names":[],"mappings":"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","sourcesContent":["/// Based on https://github.com/feross/buffer, MIT license\n\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const table: string[] = new Array(256)\n\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n\n return table\n})()\n\nconst hexCharValueTable: Record<string, number> = {\n '0': 0,\n '1': 1,\n '2': 2,\n '3': 3,\n '4': 4,\n '5': 5,\n '6': 6,\n '7': 7,\n '8': 8,\n '9': 9,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n}\n\nexport function hexEncode(buf: Uint8Array): string {\n let out = ''\n\n for (let i = 0; i < buf.byteLength; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n\n return out\n}\n\nfunction hexDecodeInner(buf: Uint8Array, string: string): void {\n const strLen = string.length\n const length = Math.min(buf.length, strLen / 2)\n\n let i\n\n for (i = 0; i < length; ++i) {\n const a = hexCharValueTable[string[i * 2]]\n const b = hexCharValueTable[string[i * 2 + 1]]\n\n if (a === undefined || b === undefined) {\n return\n }\n buf[i] = (a << 4) | b\n }\n\n return\n}\n\nexport function hexDecode(string: string): Uint8Array {\n const buf = new Uint8Array(Math.ceil(string.length / 2))\n hexDecodeInner(buf, string)\n\n return buf\n}\n"]}
@@ -0,0 +1,2 @@
1
+ /** @internal */
2
+ export declare const defaultLoggingHandler: (color: number, level: number, tag: string, fmt: string, args: unknown[]) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/common-internals-web/logging.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,GAAG,uBAAuB,CAAA;AAC3C,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,MAAM;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACR,CAAA;AACD,MAAM,MAAM,GAAG;IACX,EAAE,EAAE,MAAM;IACV,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AACD,MAAM,UAAU,GAAG;IACf,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AAED,gBAAgB;AACT,MAAM,qBAAqB,GAAG,CACjC,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,IAAe,EACX,EAAE;IACN,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACP,WAAW,GAAG,GAAG,EACjB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACxB,MAAM,CAAC,KAAK,CAAC,EACb,WAAW,CAAC,KAAK,CAAC,EAClB,EAAE,EACF,UAAU,CAAC,KAAK,CAAC,EACjB,GAAG,EACH,EAAE,EACF,GAAG,IAAI,CACV,CAAA;AACL,CAAC,CAAA;AAnBY,QAAA,qBAAqB,yBAmBjC","sourcesContent":["const BASE_FORMAT = '%s [%c%s%c] [%c%s%c] '\nconst LEVEL_NAMES = [\n '', // OFF\n 'ERR',\n 'WRN',\n 'INF',\n 'DBG',\n 'VRB',\n]\nconst COLORS = [\n '', // OFF\n 'color: #7a5f9d',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #437761',\n 'color: #7a5f9d',\n]\nconst TAG_COLORS = [\n 'color: #437761',\n 'color: #537a36',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #7a5f9d',\n 'color: #7a5f9d',\n]\n\n/** @internal */\nexport const defaultLoggingHandler = (\n color: number,\n level: number,\n tag: string,\n fmt: string,\n args: unknown[],\n): void => {\n // eslint-disable-next-line no-console\n console.log(\n BASE_FORMAT + fmt,\n new Date().toISOString(),\n COLORS[level],\n LEVEL_NAMES[level],\n '',\n TAG_COLORS[color],\n tag,\n '',\n ...args,\n )\n}\n"]}
@@ -12,7 +12,7 @@ function utf8ByteLength(str) {
12
12
  s++;
13
13
  else if (code > 0x7ff && code <= 0xffff)
14
14
  s += 2;
15
- if (code >= 0xDC00 && code <= 0xDFFF)
15
+ if (code >= 0xdc00 && code <= 0xdfff)
16
16
  i--; //trail surrogate
17
17
  }
18
18
  return s;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../src/common-internals-web/utf8.ts"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAA;AACvC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;AAE7C,SAAgB,cAAc,CAAC,GAAW;IACtC,uCAAuC;IACvC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAA;IAElB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK;YAAE,CAAC,EAAE,CAAA;aAChC,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,EAAE,CAAA,CAAC,iBAAiB;IAC/D,CAAC;IAED,OAAO,CAAC,CAAA;AACZ,CAAC;AAZD,wCAYC;AAED,SAAgB,UAAU,CAAC,GAAe;IACtC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAFD,gCAEC;AAED,SAAgB,UAAU,CAAC,GAAW;IAClC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAFD,gCAEC","sourcesContent":["const sharedEncoder = new TextEncoder()\nconst sharedDecoder = new TextDecoder('utf8')\n\nexport function utf8ByteLength(str: string) {\n // https://stackoverflow.com/a/23329386\n let s = str.length\n\n for (let i = str.length - 1; i >= 0; i--) {\n const code = str.charCodeAt(i)\n if (code > 0x7f && code <= 0x7ff) s++\n else if (code > 0x7ff && code <= 0xffff) s += 2\n if (code >= 0xdc00 && code <= 0xdfff) i-- //trail surrogate\n }\n\n return s\n}\n\nexport function utf8Decode(buf: Uint8Array): string {\n return sharedDecoder.decode(buf)\n}\n\nexport function utf8Encode(str: string): Uint8Array {\n return sharedEncoder.encode(str)\n}\n"]}
package/cjs/index.js CHANGED
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ if (typeof globalThis !== 'undefined' && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
3
+ globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true
4
+ console.warn("[@mtcute/web] CommonJS support is deprecated and will be removed soon. Please consider switching to ESM, it's "+(new Date()).getFullYear()+" already.")
5
+ console.warn("[@mtcute/web] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c")
6
+ }
7
+ "use strict";
2
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
9
  if (k2 === undefined) k2 = k;
4
10
  var desc = Object.getOwnPropertyDescriptor(m, k);
package/cjs/platform.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { ICorePlatform } from '@mtcute/core/platform.js';
2
- import { base64Decode, base64Encode } from './encodings/base64.js';
3
- import { hexDecode, hexEncode } from './encodings/hex.js';
4
- import { utf8ByteLength, utf8Decode, utf8Encode } from './encodings/utf8.js';
2
+ import { base64Decode, base64Encode } from './common-internals-web/base64.js';
3
+ import { hexDecode, hexEncode } from './common-internals-web/hex.js';
4
+ import { defaultLoggingHandler } from './common-internals-web/logging.js';
5
+ import { utf8ByteLength, utf8Decode, utf8Encode } from './common-internals-web/utf8.js';
5
6
  import { beforeExit } from './exit-hook.js';
6
- import { defaultLoggingHandler } from './logging.js';
7
7
  export declare class WebPlatform implements ICorePlatform {
8
8
  log: typeof defaultLoggingHandler;
9
9
  beforeExit: typeof beforeExit;
package/cjs/platform.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebPlatform = void 0;
4
- const base64_js_1 = require("./encodings/base64.js");
5
- const hex_js_1 = require("./encodings/hex.js");
6
- const utf8_js_1 = require("./encodings/utf8.js");
4
+ const base64_js_1 = require("./common-internals-web/base64.js");
5
+ const hex_js_1 = require("./common-internals-web/hex.js");
6
+ const logging_js_1 = require("./common-internals-web/logging.js");
7
+ const utf8_js_1 = require("./common-internals-web/utf8.js");
7
8
  const exit_hook_js_1 = require("./exit-hook.js");
8
- const logging_js_1 = require("./logging.js");
9
9
  class WebPlatform {
10
10
  getDeviceModel() {
11
11
  if (typeof navigator === 'undefined')
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":";;;AAEA,qDAAkE;AAClE,+CAAyD;AACzD,iDAA4E;AAC5E,iDAA2C;AAC3C,6CAAoD;AAEpD,MAAa,WAAW;IAKpB,cAAc;QACV,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAEtD,OAAO,SAAS,CAAC,SAAS,CAAA;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAA0B,CAAC,CAAA;YAEvE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxB,OAAO,aAAa,CAAA;YACxB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,gBAAgB,CAAC,EAAgC;QAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QAE7C,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;YACnD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACxD,CAAC,CAAA;IACL,CAAC;IAED,QAAQ;QACJ,OAAO,SAAS,CAAC,MAAM,CAAA;IAC3B,CAAC;CAWJ;AAjDD,kCAiDC;AAED,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,kCAAqB,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,yBAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,wBAAc,CAAA;AACrD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,oBAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,oBAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,kBAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,kBAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,wBAAY,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,wBAAY,CAAA","sourcesContent":["import { ICorePlatform } from '@mtcute/core/platform.js'\n\nimport { base64Decode, base64Encode } from './encodings/base64.js'\nimport { hexDecode, hexEncode } from './encodings/hex.js'\nimport { utf8ByteLength, utf8Decode, utf8Encode } from './encodings/utf8.js'\nimport { beforeExit } from './exit-hook.js'\nimport { defaultLoggingHandler } from './logging.js'\n\nexport class WebPlatform implements ICorePlatform {\n // ICorePlatform\n declare log: typeof defaultLoggingHandler\n declare beforeExit: typeof beforeExit\n\n getDeviceModel(): string {\n if (typeof navigator === 'undefined') return 'Browser'\n\n return navigator.userAgent\n }\n\n getDefaultLogLevel(): number | null {\n if (typeof localStorage !== 'undefined') {\n const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL as string)\n\n if (!isNaN(localLogLevel)) {\n return localLogLevel\n }\n }\n\n return null\n }\n\n onNetworkChanged(fn: (connected: boolean) => void) {\n if (!('onLine' in navigator)) return () => {}\n\n const onlineHandler = () => fn(navigator.onLine)\n window.addEventListener('online', onlineHandler)\n window.addEventListener('offline', onlineHandler)\n\n return () => {\n window.removeEventListener('online', onlineHandler)\n window.removeEventListener('offline', onlineHandler)\n }\n }\n\n isOnline(): boolean {\n return navigator.onLine\n }\n\n // ITlPlatform\n declare utf8ByteLength: typeof utf8ByteLength\n declare utf8Encode: typeof utf8Encode\n declare utf8Decode: typeof utf8Decode\n declare hexEncode: typeof hexEncode\n declare hexDecode: typeof hexDecode\n\n declare base64Encode: typeof base64Encode\n declare base64Decode: typeof base64Decode\n}\n\nWebPlatform.prototype.log = defaultLoggingHandler\nWebPlatform.prototype.beforeExit = beforeExit\nWebPlatform.prototype.utf8ByteLength = utf8ByteLength\nWebPlatform.prototype.utf8Encode = utf8Encode\nWebPlatform.prototype.utf8Decode = utf8Decode\nWebPlatform.prototype.hexEncode = hexEncode\nWebPlatform.prototype.hexDecode = hexDecode\nWebPlatform.prototype.base64Encode = base64Encode\nWebPlatform.prototype.base64Decode = base64Decode\n"]}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":";;;AAEA,gEAA6E;AAC7E,0DAAoE;AACpE,kEAAyE;AACzE,4DAAuF;AACvF,iDAA2C;AAE3C,MAAa,WAAW;IAKpB,cAAc;QACV,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAEtD,OAAO,SAAS,CAAC,SAAS,CAAA;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAA0B,CAAC,CAAA;YAEvE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxB,OAAO,aAAa,CAAA;YACxB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,gBAAgB,CAAC,EAAgC;QAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QAE7C,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;YACnD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACxD,CAAC,CAAA;IACL,CAAC;IAED,QAAQ;QACJ,OAAO,SAAS,CAAC,MAAM,CAAA;IAC3B,CAAC;CAUJ;AAhDD,kCAgDC;AAED,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,kCAAqB,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,yBAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,wBAAc,CAAA;AACrD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,oBAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,oBAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,kBAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,kBAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,wBAAY,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,wBAAY,CAAA","sourcesContent":["import { ICorePlatform } from '@mtcute/core/platform.js'\n\nimport { base64Decode, base64Encode } from './common-internals-web/base64.js'\nimport { hexDecode, hexEncode } from './common-internals-web/hex.js'\nimport { defaultLoggingHandler } from './common-internals-web/logging.js'\nimport { utf8ByteLength, utf8Decode, utf8Encode } from './common-internals-web/utf8.js'\nimport { beforeExit } from './exit-hook.js'\n\nexport class WebPlatform implements ICorePlatform {\n // ICorePlatform\n declare log: typeof defaultLoggingHandler\n declare beforeExit: typeof beforeExit\n\n getDeviceModel(): string {\n if (typeof navigator === 'undefined') return 'Browser'\n\n return navigator.userAgent\n }\n\n getDefaultLogLevel(): number | null {\n if (typeof localStorage !== 'undefined') {\n const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL as string)\n\n if (!isNaN(localLogLevel)) {\n return localLogLevel\n }\n }\n\n return null\n }\n\n onNetworkChanged(fn: (connected: boolean) => void) {\n if (!('onLine' in navigator)) return () => {}\n\n const onlineHandler = () => fn(navigator.onLine)\n window.addEventListener('online', onlineHandler)\n window.addEventListener('offline', onlineHandler)\n\n return () => {\n window.removeEventListener('online', onlineHandler)\n window.removeEventListener('offline', onlineHandler)\n }\n }\n\n isOnline(): boolean {\n return navigator.onLine\n }\n\n // ITlPlatform\n declare utf8ByteLength: typeof utf8ByteLength\n declare utf8Encode: typeof utf8Encode\n declare utf8Decode: typeof utf8Decode\n declare hexEncode: typeof hexEncode\n declare hexDecode: typeof hexDecode\n declare base64Encode: typeof base64Encode\n declare base64Decode: typeof base64Decode\n}\n\nWebPlatform.prototype.log = defaultLoggingHandler\nWebPlatform.prototype.beforeExit = beforeExit\nWebPlatform.prototype.utf8ByteLength = utf8ByteLength\nWebPlatform.prototype.utf8Encode = utf8Encode\nWebPlatform.prototype.utf8Decode = utf8Decode\nWebPlatform.prototype.hexEncode = hexEncode\nWebPlatform.prototype.hexDecode = hexDecode\nWebPlatform.prototype.base64Encode = base64Encode\nWebPlatform.prototype.base64Decode = base64Decode\n"]}
package/cjs/utils.js CHANGED
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ if (typeof globalThis !== 'undefined' && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
3
+ globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true
4
+ console.warn("[@mtcute/web] CommonJS support is deprecated and will be removed soon. Please consider switching to ESM, it's "+(new Date()).getFullYear()+" already.")
5
+ console.warn("[@mtcute/web] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c")
6
+ }
7
+ "use strict";
2
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
9
  if (k2 === undefined) k2 = k;
4
10
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,4 +1,3 @@
1
-
2
1
  import EventEmitter from 'events';
3
2
  import { IPacketCodec, ITelegramTransport, ObfuscatedPacketCodec, TransportState } from '@mtcute/core';
4
3
  import { BasicDcOption, ICryptoProvider, Logger } from '@mtcute/core/utils.js';
package/cjs/worker.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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","sourcesContent":["import { setPlatform } from '@mtcute/core/platform.js'\nimport {\n ClientMessageHandler,\n RespondFn,\n SendFn,\n SomeWorker,\n TelegramWorker as TelegramWorkerBase,\n TelegramWorkerOptions,\n TelegramWorkerPort as TelegramWorkerPortBase,\n TelegramWorkerPortOptions,\n WorkerCustomMethods,\n WorkerMessageHandler,\n} from '@mtcute/core/worker.js'\n\nimport { WebPlatform } from './platform.js'\n\nexport type { TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods }\n\nlet _registered = false\n\nexport class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {\n registerWorker(handler: WorkerMessageHandler): RespondFn {\n if (_registered) {\n throw new Error('TelegramWorker must be created only once')\n }\n\n _registered = true\n\n if (typeof SharedWorkerGlobalScope !== 'undefined' && self instanceof SharedWorkerGlobalScope) {\n const connections: MessagePort[] = []\n\n const broadcast = (message: unknown) => {\n for (const port of connections) {\n port.postMessage(message)\n }\n }\n\n self.onconnect = (event) => {\n const port = event.ports[0]\n connections.push(port)\n\n const respond = port.postMessage.bind(port)\n\n // not very reliable, but better than nothing\n // SharedWorker API doesn't provide a way to detect when the client closes the connection\n // so we just assume that the client is done when it sends a 'close' message\n // and keep a timeout for the case when the client closes without sending a 'close' message\n const onClose = () => {\n port.close()\n const idx = connections.indexOf(port)\n\n if (idx >= 0) {\n connections.splice(connections.indexOf(port), 1)\n }\n }\n\n const onTimeout = () => {\n console.warn('some connection timed out!')\n respond({ __type__: 'timeout' })\n onClose()\n }\n\n // 60s should be a reasonable timeout considering that the client should send a ping every 10s\n // so even if the browser has suspended the timers, we should still get a ping within a minute\n let timeout = setTimeout(onTimeout, 60000)\n\n port.addEventListener('message', (message) => {\n if (message.data.__type__ === 'close') {\n onClose()\n\n return\n }\n\n if (message.data.__type__ === 'ping') {\n clearTimeout(timeout)\n timeout = setTimeout(onTimeout, 60000)\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(message.data, respond)\n })\n port.start()\n }\n\n return broadcast\n }\n\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n const respond: RespondFn = self.postMessage.bind(self)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n self.addEventListener('message', (message) => handler(message.data, respond))\n\n return respond\n }\n\n throw new Error('TelegramWorker must be created from a worker')\n }\n}\n\nconst platform = new WebPlatform()\n\nexport class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramWorkerPortBase<T> {\n constructor(readonly options: TelegramWorkerPortOptions) {\n setPlatform(platform)\n super(options)\n }\n\n connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void] {\n if (worker instanceof Worker) {\n const send: SendFn = worker.postMessage.bind(worker)\n\n const messageHandler = (ev: MessageEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.addEventListener('message', messageHandler)\n\n return [\n send,\n () => {\n worker.removeEventListener('message', messageHandler)\n },\n ]\n }\n\n if (worker instanceof SharedWorker) {\n const send: SendFn = worker.port.postMessage.bind(worker.port)\n\n const pingInterval = setInterval(() => {\n worker.port.postMessage({ __type__: 'ping' })\n }, 10000)\n\n const messageHandler = (ev: MessageEvent) => {\n if (ev.data.__type__ === 'timeout') {\n // we got disconnected from the worker due to timeout\n // if the page is still alive (which is unlikely), we should reconnect\n // however it's not really possible with SharedWorker API without re-creating the worker\n // so we just reload the page for now\n location.reload()\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.port.addEventListener('message', messageHandler)\n worker.port.start()\n\n // eslint-disable-next-line prefer-const\n let cancelBeforeExit: () => void\n\n const close = () => {\n clearInterval(pingInterval)\n worker.port.postMessage({ __type__: 'close' })\n worker.port.removeEventListener('message', messageHandler)\n worker.port.close()\n cancelBeforeExit()\n }\n\n cancelBeforeExit = platform.beforeExit(close)\n\n return [send, close]\n }\n\n throw new Error('Only workers and shared workers are supported')\n }\n}\n"]}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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","sourcesContent":["import { setPlatform } from '@mtcute/core/platform.js'\nimport {\n ClientMessageHandler,\n RespondFn,\n SendFn,\n SomeWorker,\n TelegramWorker as TelegramWorkerBase,\n TelegramWorkerOptions,\n TelegramWorkerPort as TelegramWorkerPortBase,\n TelegramWorkerPortOptions,\n WorkerCustomMethods,\n WorkerMessageHandler,\n} from '@mtcute/core/worker.js'\n\nimport { WebPlatform } from './platform.js'\n\nexport type { TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods }\n\nlet _registered = false\n\nexport class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {\n registerWorker(handler: WorkerMessageHandler): RespondFn {\n if (_registered) {\n throw new Error('TelegramWorker must be created only once')\n }\n\n _registered = true\n\n if (typeof SharedWorkerGlobalScope !== 'undefined' && self instanceof SharedWorkerGlobalScope) {\n const connections: MessagePort[] = []\n\n const broadcast = (message: unknown) => {\n for (const port of connections) {\n port.postMessage(message)\n }\n }\n\n self.onconnect = (event: MessageEvent) => {\n const port = event.ports[0]\n connections.push(port)\n\n const respond = port.postMessage.bind(port)\n\n // not very reliable, but better than nothing\n // SharedWorker API doesn't provide a way to detect when the client closes the connection\n // so we just assume that the client is done when it sends a 'close' message\n // and keep a timeout for the case when the client closes without sending a 'close' message\n const onClose = () => {\n port.close()\n const idx = connections.indexOf(port)\n\n if (idx >= 0) {\n connections.splice(connections.indexOf(port), 1)\n }\n }\n\n const onTimeout = () => {\n console.warn('some connection timed out!')\n respond({ __type__: 'timeout' })\n onClose()\n }\n\n // 60s should be a reasonable timeout considering that the client should send a ping every 10s\n // so even if the browser has suspended the timers, we should still get a ping within a minute\n let timeout = setTimeout(onTimeout, 60000)\n\n port.addEventListener('message', (message) => {\n if (message.data.__type__ === 'close') {\n onClose()\n\n return\n }\n\n if (message.data.__type__ === 'ping') {\n clearTimeout(timeout)\n timeout = setTimeout(onTimeout, 60000)\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(message.data, respond)\n })\n port.start()\n }\n\n return broadcast\n }\n\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n const respond: RespondFn = self.postMessage.bind(self)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n self.addEventListener('message', (message: MessageEvent) => handler(message.data, respond))\n\n return respond\n }\n\n throw new Error('TelegramWorker must be created from a worker')\n }\n}\n\nconst platform = new WebPlatform()\n\nexport class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramWorkerPortBase<T> {\n constructor(readonly options: TelegramWorkerPortOptions) {\n setPlatform(platform)\n super(options)\n }\n\n connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void] {\n if (worker instanceof Worker) {\n const send: SendFn = worker.postMessage.bind(worker)\n\n const messageHandler = (ev: MessageEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.addEventListener('message', messageHandler)\n\n return [\n send,\n () => {\n worker.removeEventListener('message', messageHandler)\n },\n ]\n }\n\n if (worker instanceof SharedWorker) {\n const send: SendFn = worker.port.postMessage.bind(worker.port)\n\n const pingInterval = setInterval(() => {\n worker.port.postMessage({ __type__: 'ping' })\n }, 10000)\n\n const messageHandler = (ev: MessageEvent) => {\n if (ev.data.__type__ === 'timeout') {\n // we got disconnected from the worker due to timeout\n // if the page is still alive (which is unlikely), we should reconnect\n // however it's not really possible with SharedWorker API without re-creating the worker\n // so we just reload the page for now\n location.reload()\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.port.addEventListener('message', messageHandler)\n worker.port.start()\n\n // eslint-disable-next-line prefer-const\n let cancelBeforeExit: () => void\n\n const close = () => {\n clearInterval(pingInterval)\n worker.port.postMessage({ __type__: 'close' })\n worker.port.removeEventListener('message', messageHandler)\n worker.port.close()\n cancelBeforeExit()\n }\n\n cancelBeforeExit = platform.beforeExit(close)\n\n return [send, close]\n }\n\n throw new Error('Only workers and shared workers are supported')\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../src/common-internals-web/base64.ts"],"names":[],"mappings":"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","sourcesContent":["/// Based on https://github.com/beatgammit/base64-js, MIT license\nconst lookup: string[] = []\nconst revLookup: number[] = []\n\nconst code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\nfor (let i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nfunction getLens(b64: string): [number, number] {\n const len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n let validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n const placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\nfunction _byteLength(b64: string, validLen: number, placeHoldersLen: number) {\n return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen\n}\n\nfunction toByteArray(b64: string, arr: Uint8Array) {\n let tmp\n const lens = getLens(b64)\n const validLen = lens[0]\n const placeHoldersLen = lens[1]\n\n let curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n const len = placeHoldersLen > 0 ? validLen - 4 : validLen\n\n let i\n\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xff\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n return arr\n}\n\nfunction tripletToBase64(num: number) {\n return lookup[(num >> 18) & 0x3f] + lookup[(num >> 12) & 0x3f] + lookup[(num >> 6) & 0x3f] + lookup[num & 0x3f]\n}\n\nfunction encodeChunk(uint8: Uint8Array, start: number, end: number) {\n let tmp\n const output = []\n\n for (let i = start; i < end; i += 3) {\n tmp = ((uint8[i] << 16) & 0xff0000) + ((uint8[i + 1] << 8) & 0xff00) + (uint8[i + 2] & 0xff)\n output.push(tripletToBase64(tmp))\n }\n\n return output.join('')\n}\n\nfunction fromByteArray(uint8: Uint8Array) {\n let tmp\n const len = uint8.length\n const extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n const parts = []\n const maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (let i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3f] + '==')\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3f] + lookup[(tmp << 2) & 0x3f] + '=')\n }\n\n return parts.join('')\n}\n\nexport function base64Encode(buf: Uint8Array, url = false): string {\n const str = fromByteArray(buf)\n if (url) return str.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n\n return str\n}\n\nexport function base64Decode(string: string, url = false): Uint8Array {\n if (url) {\n string = string.replace(/-/g, '+').replace(/_/g, '/')\n while (string.length % 4) string += '='\n }\n\n const buf = new Uint8Array(_byteLength(string, ...getLens(string)))\n\n toByteArray(string, buf)\n\n return buf\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/common-internals-web/hex.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,MAAM,mBAAmB,GAAG,CAAC;IACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAA;IACnC,mEAAmE;IACnE,MAAM,KAAK,GAAa,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC,CAAC,EAAE,CAAA;AAEJ,MAAM,iBAAiB,GAA2B;IAC9C,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;CACR,CAAA;AAED,MAAM,UAAU,SAAS,CAAC,GAAe;IACrC,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,GAAe,EAAE,MAAc;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;IAE/C,IAAI,CAAC,CAAA;IAEL,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAE9C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrC,OAAM;QACV,CAAC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,OAAM;AACV,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc;IACpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,GAAG,CAAA;AACd,CAAC","sourcesContent":["/// Based on https://github.com/feross/buffer, MIT license\n\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const table: string[] = new Array(256)\n\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n\n return table\n})()\n\nconst hexCharValueTable: Record<string, number> = {\n '0': 0,\n '1': 1,\n '2': 2,\n '3': 3,\n '4': 4,\n '5': 5,\n '6': 6,\n '7': 7,\n '8': 8,\n '9': 9,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n}\n\nexport function hexEncode(buf: Uint8Array): string {\n let out = ''\n\n for (let i = 0; i < buf.byteLength; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n\n return out\n}\n\nfunction hexDecodeInner(buf: Uint8Array, string: string): void {\n const strLen = string.length\n const length = Math.min(buf.length, strLen / 2)\n\n let i\n\n for (i = 0; i < length; ++i) {\n const a = hexCharValueTable[string[i * 2]]\n const b = hexCharValueTable[string[i * 2 + 1]]\n\n if (a === undefined || b === undefined) {\n return\n }\n buf[i] = (a << 4) | b\n }\n\n return\n}\n\nexport function hexDecode(string: string): Uint8Array {\n const buf = new Uint8Array(Math.ceil(string.length / 2))\n hexDecodeInner(buf, string)\n\n return buf\n}\n"]}
@@ -0,0 +1,2 @@
1
+ /** @internal */
2
+ export declare const defaultLoggingHandler: (color: number, level: number, tag: string, fmt: string, args: unknown[]) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/common-internals-web/logging.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,uBAAuB,CAAA;AAC3C,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,MAAM;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACR,CAAA;AACD,MAAM,MAAM,GAAG;IACX,EAAE,EAAE,MAAM;IACV,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AACD,MAAM,UAAU,GAAG;IACf,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,IAAe,EACX,EAAE;IACN,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACP,WAAW,GAAG,GAAG,EACjB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACxB,MAAM,CAAC,KAAK,CAAC,EACb,WAAW,CAAC,KAAK,CAAC,EAClB,EAAE,EACF,UAAU,CAAC,KAAK,CAAC,EACjB,GAAG,EACH,EAAE,EACF,GAAG,IAAI,CACV,CAAA;AACL,CAAC,CAAA","sourcesContent":["const BASE_FORMAT = '%s [%c%s%c] [%c%s%c] '\nconst LEVEL_NAMES = [\n '', // OFF\n 'ERR',\n 'WRN',\n 'INF',\n 'DBG',\n 'VRB',\n]\nconst COLORS = [\n '', // OFF\n 'color: #7a5f9d',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #437761',\n 'color: #7a5f9d',\n]\nconst TAG_COLORS = [\n 'color: #437761',\n 'color: #537a36',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #7a5f9d',\n 'color: #7a5f9d',\n]\n\n/** @internal */\nexport const defaultLoggingHandler = (\n color: number,\n level: number,\n tag: string,\n fmt: string,\n args: unknown[],\n): void => {\n // eslint-disable-next-line no-console\n console.log(\n BASE_FORMAT + fmt,\n new Date().toISOString(),\n COLORS[level],\n LEVEL_NAMES[level],\n '',\n TAG_COLORS[color],\n tag,\n '',\n ...args,\n )\n}\n"]}
@@ -9,7 +9,7 @@ export function utf8ByteLength(str) {
9
9
  s++;
10
10
  else if (code > 0x7ff && code <= 0xffff)
11
11
  s += 2;
12
- if (code >= 0xDC00 && code <= 0xDFFF)
12
+ if (code >= 0xdc00 && code <= 0xdfff)
13
13
  i--; //trail surrogate
14
14
  }
15
15
  return s;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../src/common-internals-web/utf8.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAA;AACvC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;AAE7C,MAAM,UAAU,cAAc,CAAC,GAAW;IACtC,uCAAuC;IACvC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAA;IAElB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK;YAAE,CAAC,EAAE,CAAA;aAChC,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,EAAE,CAAA,CAAC,iBAAiB;IAC/D,CAAC;IAED,OAAO,CAAC,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAe;IACtC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IAClC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC","sourcesContent":["const sharedEncoder = new TextEncoder()\nconst sharedDecoder = new TextDecoder('utf8')\n\nexport function utf8ByteLength(str: string) {\n // https://stackoverflow.com/a/23329386\n let s = str.length\n\n for (let i = str.length - 1; i >= 0; i--) {\n const code = str.charCodeAt(i)\n if (code > 0x7f && code <= 0x7ff) s++\n else if (code > 0x7ff && code <= 0xffff) s += 2\n if (code >= 0xdc00 && code <= 0xdfff) i-- //trail surrogate\n }\n\n return s\n}\n\nexport function utf8Decode(buf: Uint8Array): string {\n return sharedDecoder.decode(buf)\n}\n\nexport function utf8Encode(str: string): Uint8Array {\n return sharedEncoder.encode(str)\n}\n"]}
package/esm/platform.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { ICorePlatform } from '@mtcute/core/platform.js';
2
- import { base64Decode, base64Encode } from './encodings/base64.js';
3
- import { hexDecode, hexEncode } from './encodings/hex.js';
4
- import { utf8ByteLength, utf8Decode, utf8Encode } from './encodings/utf8.js';
2
+ import { base64Decode, base64Encode } from './common-internals-web/base64.js';
3
+ import { hexDecode, hexEncode } from './common-internals-web/hex.js';
4
+ import { defaultLoggingHandler } from './common-internals-web/logging.js';
5
+ import { utf8ByteLength, utf8Decode, utf8Encode } from './common-internals-web/utf8.js';
5
6
  import { beforeExit } from './exit-hook.js';
6
- import { defaultLoggingHandler } from './logging.js';
7
7
  export declare class WebPlatform implements ICorePlatform {
8
8
  log: typeof defaultLoggingHandler;
9
9
  beforeExit: typeof beforeExit;
package/esm/platform.js CHANGED
@@ -1,8 +1,8 @@
1
- import { base64Decode, base64Encode } from './encodings/base64.js';
2
- import { hexDecode, hexEncode } from './encodings/hex.js';
3
- import { utf8ByteLength, utf8Decode, utf8Encode } from './encodings/utf8.js';
1
+ import { base64Decode, base64Encode } from './common-internals-web/base64.js';
2
+ import { hexDecode, hexEncode } from './common-internals-web/hex.js';
3
+ import { defaultLoggingHandler } from './common-internals-web/logging.js';
4
+ import { utf8ByteLength, utf8Decode, utf8Encode } from './common-internals-web/utf8.js';
4
5
  import { beforeExit } from './exit-hook.js';
5
- import { defaultLoggingHandler } from './logging.js';
6
6
  export class WebPlatform {
7
7
  getDeviceModel() {
8
8
  if (typeof navigator === 'undefined')
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEpD,MAAM,OAAO,WAAW;IAKpB,cAAc;QACV,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAEtD,OAAO,SAAS,CAAC,SAAS,CAAA;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAA0B,CAAC,CAAA;YAEvE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxB,OAAO,aAAa,CAAA;YACxB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,gBAAgB,CAAC,EAAgC;QAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QAE7C,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;YACnD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACxD,CAAC,CAAA;IACL,CAAC;IAED,QAAQ;QACJ,OAAO,SAAS,CAAC,MAAM,CAAA;IAC3B,CAAC;CAWJ;AAED,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,qBAAqB,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAA;AACrD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAA","sourcesContent":["import { ICorePlatform } from '@mtcute/core/platform.js'\n\nimport { base64Decode, base64Encode } from './encodings/base64.js'\nimport { hexDecode, hexEncode } from './encodings/hex.js'\nimport { utf8ByteLength, utf8Decode, utf8Encode } from './encodings/utf8.js'\nimport { beforeExit } from './exit-hook.js'\nimport { defaultLoggingHandler } from './logging.js'\n\nexport class WebPlatform implements ICorePlatform {\n // ICorePlatform\n declare log: typeof defaultLoggingHandler\n declare beforeExit: typeof beforeExit\n\n getDeviceModel(): string {\n if (typeof navigator === 'undefined') return 'Browser'\n\n return navigator.userAgent\n }\n\n getDefaultLogLevel(): number | null {\n if (typeof localStorage !== 'undefined') {\n const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL as string)\n\n if (!isNaN(localLogLevel)) {\n return localLogLevel\n }\n }\n\n return null\n }\n\n onNetworkChanged(fn: (connected: boolean) => void) {\n if (!('onLine' in navigator)) return () => {}\n\n const onlineHandler = () => fn(navigator.onLine)\n window.addEventListener('online', onlineHandler)\n window.addEventListener('offline', onlineHandler)\n\n return () => {\n window.removeEventListener('online', onlineHandler)\n window.removeEventListener('offline', onlineHandler)\n }\n }\n\n isOnline(): boolean {\n return navigator.onLine\n }\n\n // ITlPlatform\n declare utf8ByteLength: typeof utf8ByteLength\n declare utf8Encode: typeof utf8Encode\n declare utf8Decode: typeof utf8Decode\n declare hexEncode: typeof hexEncode\n declare hexDecode: typeof hexDecode\n\n declare base64Encode: typeof base64Encode\n declare base64Decode: typeof base64Decode\n}\n\nWebPlatform.prototype.log = defaultLoggingHandler\nWebPlatform.prototype.beforeExit = beforeExit\nWebPlatform.prototype.utf8ByteLength = utf8ByteLength\nWebPlatform.prototype.utf8Encode = utf8Encode\nWebPlatform.prototype.utf8Decode = utf8Decode\nWebPlatform.prototype.hexEncode = hexEncode\nWebPlatform.prototype.hexDecode = hexDecode\nWebPlatform.prototype.base64Encode = base64Encode\nWebPlatform.prototype.base64Decode = base64Decode\n"]}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,OAAO,WAAW;IAKpB,cAAc;QACV,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAEtD,OAAO,SAAS,CAAC,SAAS,CAAA;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAA0B,CAAC,CAAA;YAEvE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxB,OAAO,aAAa,CAAA;YACxB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,gBAAgB,CAAC,EAAgC;QAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QAE7C,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;YACnD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACxD,CAAC,CAAA;IACL,CAAC;IAED,QAAQ;QACJ,OAAO,SAAS,CAAC,MAAM,CAAA;IAC3B,CAAC;CAUJ;AAED,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,qBAAqB,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAA;AACrD,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAA;AAC7C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAA;AAC3C,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAA;AACjD,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAA","sourcesContent":["import { ICorePlatform } from '@mtcute/core/platform.js'\n\nimport { base64Decode, base64Encode } from './common-internals-web/base64.js'\nimport { hexDecode, hexEncode } from './common-internals-web/hex.js'\nimport { defaultLoggingHandler } from './common-internals-web/logging.js'\nimport { utf8ByteLength, utf8Decode, utf8Encode } from './common-internals-web/utf8.js'\nimport { beforeExit } from './exit-hook.js'\n\nexport class WebPlatform implements ICorePlatform {\n // ICorePlatform\n declare log: typeof defaultLoggingHandler\n declare beforeExit: typeof beforeExit\n\n getDeviceModel(): string {\n if (typeof navigator === 'undefined') return 'Browser'\n\n return navigator.userAgent\n }\n\n getDefaultLogLevel(): number | null {\n if (typeof localStorage !== 'undefined') {\n const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL as string)\n\n if (!isNaN(localLogLevel)) {\n return localLogLevel\n }\n }\n\n return null\n }\n\n onNetworkChanged(fn: (connected: boolean) => void) {\n if (!('onLine' in navigator)) return () => {}\n\n const onlineHandler = () => fn(navigator.onLine)\n window.addEventListener('online', onlineHandler)\n window.addEventListener('offline', onlineHandler)\n\n return () => {\n window.removeEventListener('online', onlineHandler)\n window.removeEventListener('offline', onlineHandler)\n }\n }\n\n isOnline(): boolean {\n return navigator.onLine\n }\n\n // ITlPlatform\n declare utf8ByteLength: typeof utf8ByteLength\n declare utf8Encode: typeof utf8Encode\n declare utf8Decode: typeof utf8Decode\n declare hexEncode: typeof hexEncode\n declare hexDecode: typeof hexDecode\n declare base64Encode: typeof base64Encode\n declare base64Decode: typeof base64Decode\n}\n\nWebPlatform.prototype.log = defaultLoggingHandler\nWebPlatform.prototype.beforeExit = beforeExit\nWebPlatform.prototype.utf8ByteLength = utf8ByteLength\nWebPlatform.prototype.utf8Encode = utf8Encode\nWebPlatform.prototype.utf8Decode = utf8Decode\nWebPlatform.prototype.hexEncode = hexEncode\nWebPlatform.prototype.hexDecode = hexDecode\nWebPlatform.prototype.base64Encode = base64Encode\nWebPlatform.prototype.base64Decode = base64Decode\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import EventEmitter from 'events';
3
2
  import { IPacketCodec, ITelegramTransport, ObfuscatedPacketCodec, TransportState } from '@mtcute/core';
4
3
  import { BasicDcOption, ICryptoProvider, Logger } from '@mtcute/core/utils.js';
package/esm/worker.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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","sourcesContent":["import { setPlatform } from '@mtcute/core/platform.js'\nimport {\n ClientMessageHandler,\n RespondFn,\n SendFn,\n SomeWorker,\n TelegramWorker as TelegramWorkerBase,\n TelegramWorkerOptions,\n TelegramWorkerPort as TelegramWorkerPortBase,\n TelegramWorkerPortOptions,\n WorkerCustomMethods,\n WorkerMessageHandler,\n} from '@mtcute/core/worker.js'\n\nimport { WebPlatform } from './platform.js'\n\nexport type { TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods }\n\nlet _registered = false\n\nexport class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {\n registerWorker(handler: WorkerMessageHandler): RespondFn {\n if (_registered) {\n throw new Error('TelegramWorker must be created only once')\n }\n\n _registered = true\n\n if (typeof SharedWorkerGlobalScope !== 'undefined' && self instanceof SharedWorkerGlobalScope) {\n const connections: MessagePort[] = []\n\n const broadcast = (message: unknown) => {\n for (const port of connections) {\n port.postMessage(message)\n }\n }\n\n self.onconnect = (event) => {\n const port = event.ports[0]\n connections.push(port)\n\n const respond = port.postMessage.bind(port)\n\n // not very reliable, but better than nothing\n // SharedWorker API doesn't provide a way to detect when the client closes the connection\n // so we just assume that the client is done when it sends a 'close' message\n // and keep a timeout for the case when the client closes without sending a 'close' message\n const onClose = () => {\n port.close()\n const idx = connections.indexOf(port)\n\n if (idx >= 0) {\n connections.splice(connections.indexOf(port), 1)\n }\n }\n\n const onTimeout = () => {\n console.warn('some connection timed out!')\n respond({ __type__: 'timeout' })\n onClose()\n }\n\n // 60s should be a reasonable timeout considering that the client should send a ping every 10s\n // so even if the browser has suspended the timers, we should still get a ping within a minute\n let timeout = setTimeout(onTimeout, 60000)\n\n port.addEventListener('message', (message) => {\n if (message.data.__type__ === 'close') {\n onClose()\n\n return\n }\n\n if (message.data.__type__ === 'ping') {\n clearTimeout(timeout)\n timeout = setTimeout(onTimeout, 60000)\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(message.data, respond)\n })\n port.start()\n }\n\n return broadcast\n }\n\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n const respond: RespondFn = self.postMessage.bind(self)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n self.addEventListener('message', (message) => handler(message.data, respond))\n\n return respond\n }\n\n throw new Error('TelegramWorker must be created from a worker')\n }\n}\n\nconst platform = new WebPlatform()\n\nexport class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramWorkerPortBase<T> {\n constructor(readonly options: TelegramWorkerPortOptions) {\n setPlatform(platform)\n super(options)\n }\n\n connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void] {\n if (worker instanceof Worker) {\n const send: SendFn = worker.postMessage.bind(worker)\n\n const messageHandler = (ev: MessageEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.addEventListener('message', messageHandler)\n\n return [\n send,\n () => {\n worker.removeEventListener('message', messageHandler)\n },\n ]\n }\n\n if (worker instanceof SharedWorker) {\n const send: SendFn = worker.port.postMessage.bind(worker.port)\n\n const pingInterval = setInterval(() => {\n worker.port.postMessage({ __type__: 'ping' })\n }, 10000)\n\n const messageHandler = (ev: MessageEvent) => {\n if (ev.data.__type__ === 'timeout') {\n // we got disconnected from the worker due to timeout\n // if the page is still alive (which is unlikely), we should reconnect\n // however it's not really possible with SharedWorker API without re-creating the worker\n // so we just reload the page for now\n location.reload()\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.port.addEventListener('message', messageHandler)\n worker.port.start()\n\n // eslint-disable-next-line prefer-const\n let cancelBeforeExit: () => void\n\n const close = () => {\n clearInterval(pingInterval)\n worker.port.postMessage({ __type__: 'close' })\n worker.port.removeEventListener('message', messageHandler)\n worker.port.close()\n cancelBeforeExit()\n }\n\n cancelBeforeExit = platform.beforeExit(close)\n\n return [send, close]\n }\n\n throw new Error('Only workers and shared workers are supported')\n }\n}\n"]}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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","sourcesContent":["import { setPlatform } from '@mtcute/core/platform.js'\nimport {\n ClientMessageHandler,\n RespondFn,\n SendFn,\n SomeWorker,\n TelegramWorker as TelegramWorkerBase,\n TelegramWorkerOptions,\n TelegramWorkerPort as TelegramWorkerPortBase,\n TelegramWorkerPortOptions,\n WorkerCustomMethods,\n WorkerMessageHandler,\n} from '@mtcute/core/worker.js'\n\nimport { WebPlatform } from './platform.js'\n\nexport type { TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods }\n\nlet _registered = false\n\nexport class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {\n registerWorker(handler: WorkerMessageHandler): RespondFn {\n if (_registered) {\n throw new Error('TelegramWorker must be created only once')\n }\n\n _registered = true\n\n if (typeof SharedWorkerGlobalScope !== 'undefined' && self instanceof SharedWorkerGlobalScope) {\n const connections: MessagePort[] = []\n\n const broadcast = (message: unknown) => {\n for (const port of connections) {\n port.postMessage(message)\n }\n }\n\n self.onconnect = (event: MessageEvent) => {\n const port = event.ports[0]\n connections.push(port)\n\n const respond = port.postMessage.bind(port)\n\n // not very reliable, but better than nothing\n // SharedWorker API doesn't provide a way to detect when the client closes the connection\n // so we just assume that the client is done when it sends a 'close' message\n // and keep a timeout for the case when the client closes without sending a 'close' message\n const onClose = () => {\n port.close()\n const idx = connections.indexOf(port)\n\n if (idx >= 0) {\n connections.splice(connections.indexOf(port), 1)\n }\n }\n\n const onTimeout = () => {\n console.warn('some connection timed out!')\n respond({ __type__: 'timeout' })\n onClose()\n }\n\n // 60s should be a reasonable timeout considering that the client should send a ping every 10s\n // so even if the browser has suspended the timers, we should still get a ping within a minute\n let timeout = setTimeout(onTimeout, 60000)\n\n port.addEventListener('message', (message) => {\n if (message.data.__type__ === 'close') {\n onClose()\n\n return\n }\n\n if (message.data.__type__ === 'ping') {\n clearTimeout(timeout)\n timeout = setTimeout(onTimeout, 60000)\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(message.data, respond)\n })\n port.start()\n }\n\n return broadcast\n }\n\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n const respond: RespondFn = self.postMessage.bind(self)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n self.addEventListener('message', (message: MessageEvent) => handler(message.data, respond))\n\n return respond\n }\n\n throw new Error('TelegramWorker must be created from a worker')\n }\n}\n\nconst platform = new WebPlatform()\n\nexport class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramWorkerPortBase<T> {\n constructor(readonly options: TelegramWorkerPortOptions) {\n setPlatform(platform)\n super(options)\n }\n\n connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void] {\n if (worker instanceof Worker) {\n const send: SendFn = worker.postMessage.bind(worker)\n\n const messageHandler = (ev: MessageEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.addEventListener('message', messageHandler)\n\n return [\n send,\n () => {\n worker.removeEventListener('message', messageHandler)\n },\n ]\n }\n\n if (worker instanceof SharedWorker) {\n const send: SendFn = worker.port.postMessage.bind(worker.port)\n\n const pingInterval = setInterval(() => {\n worker.port.postMessage({ __type__: 'ping' })\n }, 10000)\n\n const messageHandler = (ev: MessageEvent) => {\n if (ev.data.__type__ === 'timeout') {\n // we got disconnected from the worker due to timeout\n // if the page is still alive (which is unlikely), we should reconnect\n // however it's not really possible with SharedWorker API without re-creating the worker\n // so we just reload the page for now\n location.reload()\n\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n handler(ev.data)\n }\n\n worker.port.addEventListener('message', messageHandler)\n worker.port.start()\n\n // eslint-disable-next-line prefer-const\n let cancelBeforeExit: () => void\n\n const close = () => {\n clearInterval(pingInterval)\n worker.port.postMessage({ __type__: 'close' })\n worker.port.removeEventListener('message', messageHandler)\n worker.port.close()\n cancelBeforeExit()\n }\n\n cancelBeforeExit = platform.beforeExit(close)\n\n return [send, close]\n }\n\n throw new Error('Only workers and shared workers are supported')\n }\n}\n"]}
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './esm/index.js'
package/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './esm/index.js'
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@mtcute/web",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Meta-package for the web platform",
5
5
  "author": "alina sireneva <alina@tei.su>",
6
6
  "license": "MIT",
7
- "main": "cjs/index.js",
8
7
  "type": "module",
9
8
  "sideEffects": false,
10
9
  "scripts": {},
@@ -19,8 +18,8 @@
19
18
  }
20
19
  },
21
20
  "dependencies": {
22
- "@mtcute/core": "^0.11.0",
23
- "@mtcute/wasm": "^0.11.0",
21
+ "@mtcute/core": "^0.12.0",
22
+ "@mtcute/wasm": "^0.12.0",
24
23
  "events": "3.2.0"
25
24
  },
26
25
  "denoJson": {
@@ -32,5 +31,6 @@
32
31
  ]
33
32
  }
34
33
  },
34
+ "main": "cjs/index.js",
35
35
  "module": "esm/index.js"
36
36
  }
package/utils.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './esm/utils.js'
package/utils.js ADDED
@@ -0,0 +1 @@
1
+ export * from './esm/utils.js'
@@ -1 +0,0 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../src/encodings/base64.ts"],"names":[],"mappings":"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","sourcesContent":["/// Based on https://github.com/beatgammit/base64-js, MIT license\nconst lookup: string[] = []\nconst revLookup: number[] = []\n\nconst code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\nfor (let i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nfunction getLens(b64: string): [number, number] {\n const len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n let validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n const placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\nfunction _byteLength(b64: string, validLen: number, placeHoldersLen: number) {\n return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen\n}\n\nfunction toByteArray(b64: string, arr: Uint8Array) {\n let tmp\n const lens = getLens(b64)\n const validLen = lens[0]\n const placeHoldersLen = lens[1]\n\n let curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n const len = placeHoldersLen > 0 ? validLen - 4 : validLen\n\n let i\n\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xff\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n return arr\n}\n\nfunction tripletToBase64(num: number) {\n return lookup[(num >> 18) & 0x3f] + lookup[(num >> 12) & 0x3f] + lookup[(num >> 6) & 0x3f] + lookup[num & 0x3f]\n}\n\nfunction encodeChunk(uint8: Uint8Array, start: number, end: number) {\n let tmp\n const output = []\n\n for (let i = start; i < end; i += 3) {\n tmp = ((uint8[i] << 16) & 0xff0000) + ((uint8[i + 1] << 8) & 0xff00) + (uint8[i + 2] & 0xff)\n output.push(tripletToBase64(tmp))\n }\n\n return output.join('')\n}\n\nfunction fromByteArray(uint8: Uint8Array) {\n let tmp\n const len = uint8.length\n const extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n const parts = []\n const maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (let i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3f] + '==')\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3f] + lookup[(tmp << 2) & 0x3f] + '=')\n }\n\n return parts.join('')\n}\n\nexport function base64Encode(buf: Uint8Array, url = false): string {\n const str = fromByteArray(buf)\n if (url) return str.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n\n return str\n}\n\nexport function base64Decode(string: string, url = false): Uint8Array {\n if (url) {\n string = string.replace(/-/g, '+').replace(/_/g, '/')\n while (string.length % 4) string += '='\n }\n\n const buf = new Uint8Array(_byteLength(string, ...getLens(string)))\n\n toByteArray(string, buf)\n\n return buf\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/encodings/hex.ts"],"names":[],"mappings":";AAAA,0DAA0D;;;AAE1D,MAAM,mBAAmB,GAAG,CAAC;IACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAA;IACnC,mEAAmE;IACnE,MAAM,KAAK,GAAa,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC,CAAC,EAAE,CAAA;AAEJ,MAAM,iBAAiB,GAA2B;IAC9C,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;CACR,CAAA;AAED,SAAgB,SAAS,CAAC,GAAe;IACrC,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AARD,8BAQC;AAED,SAAS,cAAc,CAAC,GAAe,EAAE,MAAc;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;IAE/C,IAAI,CAAC,CAAA;IAEL,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAE9C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrC,OAAM;QACV,CAAC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,OAAM;AACV,CAAC;AAED,SAAgB,SAAS,CAAC,MAAc;IACpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,GAAG,CAAA;AACd,CAAC;AALD,8BAKC","sourcesContent":["/// Based on https://github.com/feross/buffer, MIT license\n\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const table: string[] = new Array(256)\n\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n\n return table\n})()\n\nconst hexCharValueTable: Record<string, number> = {\n '0': 0,\n '1': 1,\n '2': 2,\n '3': 3,\n '4': 4,\n '5': 5,\n '6': 6,\n '7': 7,\n '8': 8,\n '9': 9,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n}\n\nexport function hexEncode(buf: Uint8Array): string {\n let out = ''\n\n for (let i = 0; i < buf.byteLength; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n\n return out\n}\n\nfunction hexDecodeInner(buf: Uint8Array, string: string): void {\n const strLen = string.length\n const length = Math.min(buf.length, strLen / 2)\n\n let i\n\n for (i = 0; i < length; ++i) {\n const a = hexCharValueTable[string[i * 2]]\n const b = hexCharValueTable[string[i * 2 + 1]]\n\n if (a === undefined || b === undefined) {\n return\n }\n buf[i] = (a << 4) | b\n }\n\n return\n}\n\nexport function hexDecode(string: string): Uint8Array {\n const buf = new Uint8Array(Math.ceil(string.length / 2))\n hexDecodeInner(buf, string)\n\n return buf\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../src/encodings/utf8.ts"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAA;AACvC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;AAE7C,SAAgB,cAAc,CAAC,GAAW;IACtC,uCAAuC;IACvC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAA;IAElB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK;YAAE,CAAC,EAAE,CAAA;aAChC,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,EAAE,CAAA,CAAC,iBAAiB;IAC/D,CAAC;IAED,OAAO,CAAC,CAAA;AACZ,CAAC;AAZD,wCAYC;AAED,SAAgB,UAAU,CAAC,GAAe;IACtC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAFD,gCAEC;AAED,SAAgB,UAAU,CAAC,GAAW;IAClC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAFD,gCAEC","sourcesContent":["const sharedEncoder = new TextEncoder()\nconst sharedDecoder = new TextDecoder('utf8')\n\nexport function utf8ByteLength(str: string) {\n // https://stackoverflow.com/a/23329386\n let s = str.length\n\n for (let i = str.length - 1; i >= 0; i--) {\n const code = str.charCodeAt(i)\n if (code > 0x7f && code <= 0x7ff) s++\n else if (code > 0x7ff && code <= 0xffff) s += 2\n if (code >= 0xDC00 && code <= 0xDFFF) i-- //trail surrogate\n }\n\n return s\n}\n\nexport function utf8Decode(buf: Uint8Array): string {\n return sharedDecoder.decode(buf)\n}\n\nexport function utf8Encode(str: string): Uint8Array {\n return sharedEncoder.encode(str)\n}\n"]}
package/cjs/logging.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,GAAG,uBAAuB,CAAA;AAC3C,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,MAAM;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACR,CAAA;AACD,MAAM,MAAM,GAAG;IACX,EAAE,EAAE,MAAM;IACV,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AACD,MAAM,UAAU,GAAG;IACf,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AAED,gBAAgB;AACT,MAAM,qBAAqB,GAAG,CACjC,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,IAAe,EACX,EAAE;IACN,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACP,WAAW,GAAG,GAAG,EACjB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACxB,MAAM,CAAC,KAAK,CAAC,EACb,WAAW,CAAC,KAAK,CAAC,EAClB,EAAE,EACF,UAAU,CAAC,KAAK,CAAC,EACjB,GAAG,EACH,EAAE,EACF,GAAG,IAAI,CACV,CAAA;AACL,CAAC,CAAA;AAnBY,QAAA,qBAAqB,yBAmBjC","sourcesContent":["const BASE_FORMAT = '%s [%c%s%c] [%c%s%c] '\nconst LEVEL_NAMES = [\n '', // OFF\n 'ERR',\n 'WRN',\n 'INF',\n 'DBG',\n 'VRB',\n]\nconst COLORS = [\n '', // OFF\n 'color: #7a5f9d',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #437761',\n 'color: #7a5f9d',\n]\nconst TAG_COLORS = [\n 'color: #437761',\n 'color: #537a36',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #7a5f9d',\n 'color: #7a5f9d',\n]\n\n/** @internal */\nexport const defaultLoggingHandler = (\n color: number,\n level: number,\n tag: string,\n fmt: string,\n args: unknown[],\n): void => {\n // eslint-disable-next-line no-console\n console.log(\n BASE_FORMAT + fmt,\n new Date().toISOString(),\n COLORS[level],\n LEVEL_NAMES[level],\n '',\n TAG_COLORS[color],\n tag,\n '',\n ...args,\n )\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../src/encodings/base64.ts"],"names":[],"mappings":"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","sourcesContent":["/// Based on https://github.com/beatgammit/base64-js, MIT license\nconst lookup: string[] = []\nconst revLookup: number[] = []\n\nconst code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\nfor (let i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nfunction getLens(b64: string): [number, number] {\n const len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n let validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n const placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\nfunction _byteLength(b64: string, validLen: number, placeHoldersLen: number) {\n return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen\n}\n\nfunction toByteArray(b64: string, arr: Uint8Array) {\n let tmp\n const lens = getLens(b64)\n const validLen = lens[0]\n const placeHoldersLen = lens[1]\n\n let curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n const len = placeHoldersLen > 0 ? validLen - 4 : validLen\n\n let i\n\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xff\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xff\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xff\n arr[curByte++] = tmp & 0xff\n }\n\n return arr\n}\n\nfunction tripletToBase64(num: number) {\n return lookup[(num >> 18) & 0x3f] + lookup[(num >> 12) & 0x3f] + lookup[(num >> 6) & 0x3f] + lookup[num & 0x3f]\n}\n\nfunction encodeChunk(uint8: Uint8Array, start: number, end: number) {\n let tmp\n const output = []\n\n for (let i = start; i < end; i += 3) {\n tmp = ((uint8[i] << 16) & 0xff0000) + ((uint8[i + 1] << 8) & 0xff00) + (uint8[i + 2] & 0xff)\n output.push(tripletToBase64(tmp))\n }\n\n return output.join('')\n}\n\nfunction fromByteArray(uint8: Uint8Array) {\n let tmp\n const len = uint8.length\n const extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n const parts = []\n const maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (let i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3f] + '==')\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3f] + lookup[(tmp << 2) & 0x3f] + '=')\n }\n\n return parts.join('')\n}\n\nexport function base64Encode(buf: Uint8Array, url = false): string {\n const str = fromByteArray(buf)\n if (url) return str.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n\n return str\n}\n\nexport function base64Decode(string: string, url = false): Uint8Array {\n if (url) {\n string = string.replace(/-/g, '+').replace(/_/g, '/')\n while (string.length % 4) string += '='\n }\n\n const buf = new Uint8Array(_byteLength(string, ...getLens(string)))\n\n toByteArray(string, buf)\n\n return buf\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/encodings/hex.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,MAAM,mBAAmB,GAAG,CAAC;IACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAA;IACnC,mEAAmE;IACnE,MAAM,KAAK,GAAa,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC,CAAC,EAAE,CAAA;AAEJ,MAAM,iBAAiB,GAA2B;IAC9C,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;CACR,CAAA;AAED,MAAM,UAAU,SAAS,CAAC,GAAe;IACrC,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,GAAe,EAAE,MAAc;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;IAE/C,IAAI,CAAC,CAAA;IAEL,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAE9C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrC,OAAM;QACV,CAAC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,OAAM;AACV,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc;IACpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,GAAG,CAAA;AACd,CAAC","sourcesContent":["/// Based on https://github.com/feross/buffer, MIT license\n\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const table: string[] = new Array(256)\n\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n\n return table\n})()\n\nconst hexCharValueTable: Record<string, number> = {\n '0': 0,\n '1': 1,\n '2': 2,\n '3': 3,\n '4': 4,\n '5': 5,\n '6': 6,\n '7': 7,\n '8': 8,\n '9': 9,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n}\n\nexport function hexEncode(buf: Uint8Array): string {\n let out = ''\n\n for (let i = 0; i < buf.byteLength; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n\n return out\n}\n\nfunction hexDecodeInner(buf: Uint8Array, string: string): void {\n const strLen = string.length\n const length = Math.min(buf.length, strLen / 2)\n\n let i\n\n for (i = 0; i < length; ++i) {\n const a = hexCharValueTable[string[i * 2]]\n const b = hexCharValueTable[string[i * 2 + 1]]\n\n if (a === undefined || b === undefined) {\n return\n }\n buf[i] = (a << 4) | b\n }\n\n return\n}\n\nexport function hexDecode(string: string): Uint8Array {\n const buf = new Uint8Array(Math.ceil(string.length / 2))\n hexDecodeInner(buf, string)\n\n return buf\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../src/encodings/utf8.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAA;AACvC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;AAE7C,MAAM,UAAU,cAAc,CAAC,GAAW;IACtC,uCAAuC;IACvC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAA;IAElB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK;YAAE,CAAC,EAAE,CAAA;aAChC,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,CAAC,EAAE,CAAA,CAAC,iBAAiB;IAC/D,CAAC;IAED,OAAO,CAAC,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAe;IACtC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IAClC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC","sourcesContent":["const sharedEncoder = new TextEncoder()\nconst sharedDecoder = new TextDecoder('utf8')\n\nexport function utf8ByteLength(str: string) {\n // https://stackoverflow.com/a/23329386\n let s = str.length\n\n for (let i = str.length - 1; i >= 0; i--) {\n const code = str.charCodeAt(i)\n if (code > 0x7f && code <= 0x7ff) s++\n else if (code > 0x7ff && code <= 0xffff) s += 2\n if (code >= 0xDC00 && code <= 0xDFFF) i-- //trail surrogate\n }\n\n return s\n}\n\nexport function utf8Decode(buf: Uint8Array): string {\n return sharedDecoder.decode(buf)\n}\n\nexport function utf8Encode(str: string): Uint8Array {\n return sharedEncoder.encode(str)\n}\n"]}
package/esm/logging.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,uBAAuB,CAAA;AAC3C,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,MAAM;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACR,CAAA;AACD,MAAM,MAAM,GAAG;IACX,EAAE,EAAE,MAAM;IACV,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AACD,MAAM,UAAU,GAAG;IACf,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACnB,CAAA;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,IAAe,EACX,EAAE;IACN,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACP,WAAW,GAAG,GAAG,EACjB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACxB,MAAM,CAAC,KAAK,CAAC,EACb,WAAW,CAAC,KAAK,CAAC,EAClB,EAAE,EACF,UAAU,CAAC,KAAK,CAAC,EACjB,GAAG,EACH,EAAE,EACF,GAAG,IAAI,CACV,CAAA;AACL,CAAC,CAAA","sourcesContent":["const BASE_FORMAT = '%s [%c%s%c] [%c%s%c] '\nconst LEVEL_NAMES = [\n '', // OFF\n 'ERR',\n 'WRN',\n 'INF',\n 'DBG',\n 'VRB',\n]\nconst COLORS = [\n '', // OFF\n 'color: #7a5f9d',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #437761',\n 'color: #7a5f9d',\n]\nconst TAG_COLORS = [\n 'color: #437761',\n 'color: #537a36',\n 'color: #8d7041',\n 'color: #396c9e',\n 'color: #7a5f9d',\n 'color: #7a5f9d',\n]\n\n/** @internal */\nexport const defaultLoggingHandler = (\n color: number,\n level: number,\n tag: string,\n fmt: string,\n args: unknown[],\n): void => {\n // eslint-disable-next-line no-console\n console.log(\n BASE_FORMAT + fmt,\n new Date().toISOString(),\n COLORS[level],\n LEVEL_NAMES[level],\n '',\n TAG_COLORS[color],\n tag,\n '',\n ...args,\n )\n}\n"]}
File without changes
File without changes