@mtcute/web 0.16.7 → 0.16.13
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/{cjs/client.d.ts → client.d.ts} +2 -3
- package/{cjs/crypto.d.ts → crypto.d.ts} +2 -3
- package/idb/idb.test.d.ts +1 -0
- package/{esm/idb → idb}/index.d.ts +1 -1
- package/{esm/idb → idb}/repository/auth-keys.d.ts +2 -2
- package/{cjs/idb → idb}/repository/kv.d.ts +2 -2
- package/{esm/idb → idb}/repository/peers.d.ts +3 -3
- package/{cjs/idb → idb}/repository/ref-messages.d.ts +2 -2
- package/index.cjs +965 -0
- package/index.d.ts +7 -1
- package/index.js +955 -1
- package/methods.cjs +14 -0
- package/methods.d.ts +1 -1
- package/methods.js +1 -1
- package/package.json +56 -40
- package/{cjs/platform.d.ts → platform.d.ts} +1 -1
- package/utils.cjs +14 -0
- package/utils.d.ts +1 -1
- package/utils.js +1 -1
- package/{esm/websocket.d.ts → websocket.d.ts} +3 -4
- package/websocket.test.d.ts +1 -0
- package/{cjs/worker.d.ts → worker.d.ts} +1 -2
- package/cjs/client.js +0 -43
- package/cjs/client.js.map +0 -1
- package/cjs/common-internals-web/base64.js +0 -111
- package/cjs/common-internals-web/base64.js.map +0 -1
- package/cjs/common-internals-web/hex.js +0 -66
- package/cjs/common-internals-web/hex.js.map +0 -1
- package/cjs/common-internals-web/logging.js +0 -35
- package/cjs/common-internals-web/logging.js.map +0 -1
- package/cjs/common-internals-web/utf8.js +0 -28
- package/cjs/common-internals-web/utf8.js.map +0 -1
- package/cjs/crypto.js +0 -73
- package/cjs/crypto.js.map +0 -1
- package/cjs/exit-hook.js +0 -23
- package/cjs/exit-hook.js.map +0 -1
- package/cjs/idb/driver.js +0 -139
- package/cjs/idb/driver.js.map +0 -1
- package/cjs/idb/index.d.ts +0 -22
- package/cjs/idb/index.js +0 -34
- package/cjs/idb/index.js.map +0 -1
- package/cjs/idb/repository/auth-keys.d.ts +0 -14
- package/cjs/idb/repository/auth-keys.js +0 -71
- package/cjs/idb/repository/auth-keys.js.map +0 -1
- package/cjs/idb/repository/kv.js +0 -35
- package/cjs/idb/repository/kv.js.map +0 -1
- package/cjs/idb/repository/peers.d.ts +0 -12
- package/cjs/idb/repository/peers.js +0 -39
- package/cjs/idb/repository/peers.js.map +0 -1
- package/cjs/idb/repository/ref-messages.js +0 -62
- package/cjs/idb/repository/ref-messages.js.map +0 -1
- package/cjs/idb/utils.js +0 -17
- package/cjs/idb/utils.js.map +0 -1
- package/cjs/index.js +0 -30
- package/cjs/index.js.map +0 -1
- package/cjs/methods.js +0 -24
- package/cjs/methods.js.map +0 -1
- package/cjs/package.json +0 -3
- package/cjs/platform.js +0 -49
- package/cjs/platform.js.map +0 -1
- package/cjs/utils.js +0 -24
- package/cjs/utils.js.map +0 -1
- package/cjs/wasm.js +0 -35
- package/cjs/wasm.js.map +0 -1
- package/cjs/websocket.d.ts +0 -47
- package/cjs/websocket.js +0 -132
- package/cjs/websocket.js.map +0 -1
- package/cjs/worker.js +0 -128
- package/cjs/worker.js.map +0 -1
- package/esm/client.d.ts +0 -31
- package/esm/client.js +0 -38
- package/esm/client.js.map +0 -1
- package/esm/common-internals-web/base64.d.ts +0 -2
- package/esm/common-internals-web/base64.js +0 -107
- package/esm/common-internals-web/base64.js.map +0 -1
- package/esm/common-internals-web/hex.d.ts +0 -2
- package/esm/common-internals-web/hex.js +0 -62
- package/esm/common-internals-web/hex.js.map +0 -1
- package/esm/common-internals-web/logging.d.ts +0 -2
- package/esm/common-internals-web/logging.js +0 -31
- package/esm/common-internals-web/logging.js.map +0 -1
- package/esm/common-internals-web/utf8.d.ts +0 -3
- package/esm/common-internals-web/utf8.js +0 -23
- package/esm/common-internals-web/utf8.js.map +0 -1
- package/esm/crypto.d.ts +0 -22
- package/esm/crypto.js +0 -69
- package/esm/crypto.js.map +0 -1
- package/esm/exit-hook.d.ts +0 -1
- package/esm/exit-hook.js +0 -20
- package/esm/exit-hook.js.map +0 -1
- package/esm/idb/driver.d.ts +0 -18
- package/esm/idb/driver.js +0 -135
- package/esm/idb/driver.js.map +0 -1
- package/esm/idb/index.js +0 -29
- package/esm/idb/index.js.map +0 -1
- package/esm/idb/repository/auth-keys.js +0 -67
- package/esm/idb/repository/auth-keys.js.map +0 -1
- package/esm/idb/repository/kv.d.ts +0 -11
- package/esm/idb/repository/kv.js +0 -31
- package/esm/idb/repository/kv.js.map +0 -1
- package/esm/idb/repository/peers.js +0 -35
- package/esm/idb/repository/peers.js.map +0 -1
- package/esm/idb/repository/ref-messages.d.ts +0 -12
- package/esm/idb/repository/ref-messages.js +0 -58
- package/esm/idb/repository/ref-messages.js.map +0 -1
- package/esm/idb/utils.d.ts +0 -2
- package/esm/idb/utils.js +0 -13
- package/esm/idb/utils.js.map +0 -1
- package/esm/index.d.ts +0 -7
- package/esm/index.js +0 -8
- package/esm/index.js.map +0 -1
- package/esm/methods.d.ts +0 -1
- package/esm/methods.js +0 -2
- package/esm/methods.js.map +0 -1
- package/esm/platform.d.ts +0 -21
- package/esm/platform.js +0 -45
- package/esm/platform.js.map +0 -1
- package/esm/utils.d.ts +0 -1
- package/esm/utils.js +0 -2
- package/esm/utils.js.map +0 -1
- package/esm/wasm.d.ts +0 -2
- package/esm/wasm.js +0 -32
- package/esm/wasm.js.map +0 -1
- package/esm/websocket.js +0 -124
- package/esm/websocket.js.map +0 -1
- package/esm/worker.d.ts +0 -11
- package/esm/worker.js +0 -123
- package/esm/worker.js.map +0 -1
- /package/{cjs/common-internals-web → common-internals-web}/base64.d.ts +0 -0
- /package/{cjs/common-internals-web → common-internals-web}/hex.d.ts +0 -0
- /package/{cjs/common-internals-web → common-internals-web}/logging.d.ts +0 -0
- /package/{cjs/common-internals-web → common-internals-web}/utf8.d.ts +0 -0
- /package/{cjs/exit-hook.d.ts → exit-hook.d.ts} +0 -0
- /package/{cjs/idb → idb}/driver.d.ts +0 -0
- /package/{cjs/idb → idb}/utils.d.ts +0 -0
- /package/{cjs/index.d.ts → index.d.cts} +0 -0
- /package/{cjs/methods.d.ts → methods.d.cts} +0 -0
- /package/{cjs/utils.d.ts → utils.d.cts} +0 -0
- /package/{cjs/wasm.d.ts → wasm.d.ts} +0 -0
package/methods.cjs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[@mtcute/web] CommonJS support is deprecated and will be removed soon. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[@mtcute/web] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const methods_js = require("@mtcute/core/methods.js");
|
|
9
|
+
Object.keys(methods_js).forEach((k) => {
|
|
10
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: () => methods_js[k]
|
|
13
|
+
});
|
|
14
|
+
});
|
package/methods.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '
|
|
1
|
+
export * from '@mtcute/core/methods.js';
|
package/methods.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "@mtcute/core/methods.js";
|
package/package.json
CHANGED
|
@@ -1,45 +1,61 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
"name": "@mtcute/web",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.16.13",
|
|
5
|
+
"description": "Meta-package for the web platform",
|
|
6
|
+
"author": "alina sireneva <alina@tei.su>",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./index.d.ts",
|
|
13
|
+
"default": "./index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./index.d.cts",
|
|
17
|
+
"default": "./index.cjs"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"./utils.js": {
|
|
21
|
+
"import": {
|
|
22
|
+
"types": "./utils.d.ts",
|
|
23
|
+
"default": "./utils.js"
|
|
24
|
+
},
|
|
25
|
+
"require": {
|
|
26
|
+
"types": "./utils.d.cts",
|
|
27
|
+
"default": "./utils.cjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"./methods.js": {
|
|
31
|
+
"import": {
|
|
32
|
+
"types": "./methods.d.ts",
|
|
33
|
+
"default": "./methods.js"
|
|
34
|
+
},
|
|
35
|
+
"require": {
|
|
36
|
+
"types": "./methods.d.cts",
|
|
37
|
+
"default": "./methods.cjs"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
13
40
|
},
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
41
|
+
"scripts": {},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@mtcute/core": "^0.16.13",
|
|
44
|
+
"@mtcute/wasm": "^0.16.11",
|
|
45
|
+
"events": "3.2.0"
|
|
17
46
|
},
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"lib": [
|
|
32
|
-
"dom",
|
|
33
|
-
"dom.iterable",
|
|
34
|
-
"WebWorker"
|
|
35
|
-
]
|
|
47
|
+
"denoJson": {
|
|
48
|
+
"compilerOptions": {
|
|
49
|
+
"lib": [
|
|
50
|
+
"dom",
|
|
51
|
+
"dom.iterable",
|
|
52
|
+
"WebWorker"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://mtcute.dev",
|
|
57
|
+
"repository": {
|
|
58
|
+
"type": "git",
|
|
59
|
+
"url": "https://github.com/mtcute/mtcute"
|
|
36
60
|
}
|
|
37
|
-
},
|
|
38
|
-
"main": "cjs/index.js",
|
|
39
|
-
"module": "esm/index.js",
|
|
40
|
-
"homepage": "https://mtcute.dev",
|
|
41
|
-
"repository": {
|
|
42
|
-
"type": "git",
|
|
43
|
-
"url": "https://github.com/mtcute/mtcute"
|
|
44
|
-
}
|
|
45
61
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ICorePlatform } from '@mtcute/core/platform.js';
|
|
2
2
|
import { base64Decode, base64Encode } from './common-internals-web/base64.js';
|
|
3
3
|
import { hexDecode, hexEncode } from './common-internals-web/hex.js';
|
|
4
4
|
import { defaultLoggingHandler } from './common-internals-web/logging.js';
|
package/utils.cjs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[@mtcute/web] CommonJS support is deprecated and will be removed soon. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[@mtcute/web] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const utils_js = require("@mtcute/core/utils.js");
|
|
9
|
+
Object.keys(utils_js).forEach((k) => {
|
|
10
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: () => utils_js[k]
|
|
13
|
+
});
|
|
14
|
+
});
|
package/utils.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '
|
|
1
|
+
export * from '@mtcute/core/utils.js';
|
package/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "@mtcute/core/utils.js";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import EventEmitter from 'node:events';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import type { BasicDcOption, ICryptoProvider, Logger } from '@mtcute/core/utils.js';
|
|
1
|
+
import { default as EventEmitter } from 'node:events';
|
|
2
|
+
import { IPacketCodec, ITelegramTransport, ObfuscatedPacketCodec, TransportState } from '@mtcute/core';
|
|
3
|
+
import { BasicDcOption, ICryptoProvider, Logger } from '@mtcute/core/utils.js';
|
|
5
4
|
export interface WebSocketConstructor {
|
|
6
5
|
new (address: string, protocol?: string): WebSocket;
|
|
7
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { TelegramWorker as TelegramWorkerBase, TelegramWorkerPort as TelegramWorkerPortBase } from '@mtcute/core/worker.js';
|
|
1
|
+
import { ClientMessageHandler, RespondFn, SendFn, SomeWorker, TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods, WorkerMessageHandler, TelegramWorker as TelegramWorkerBase, TelegramWorkerPort as TelegramWorkerPortBase } from '@mtcute/core/worker.js';
|
|
3
2
|
export type { TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods };
|
|
4
3
|
export declare class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {
|
|
5
4
|
registerWorker(handler: WorkerMessageHandler): RespondFn;
|
package/cjs/client.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TelegramClient = exports.BaseTelegramClient = void 0;
|
|
4
|
-
const client_js_1 = require("@mtcute/core/client.js");
|
|
5
|
-
const platform_js_1 = require("@mtcute/core/platform.js");
|
|
6
|
-
const crypto_js_1 = require("./crypto.js");
|
|
7
|
-
const index_js_1 = require("./idb/index.js");
|
|
8
|
-
const platform_js_2 = require("./platform.js");
|
|
9
|
-
const websocket_js_1 = require("./websocket.js");
|
|
10
|
-
class BaseTelegramClient extends client_js_1.BaseTelegramClient {
|
|
11
|
-
constructor(opts) {
|
|
12
|
-
if (!opts.platformless)
|
|
13
|
-
(0, platform_js_1.setPlatform)(new platform_js_2.WebPlatform());
|
|
14
|
-
super({
|
|
15
|
-
crypto: new crypto_js_1.WebCryptoProvider(),
|
|
16
|
-
transport: () => new websocket_js_1.WebSocketTransport(),
|
|
17
|
-
...opts,
|
|
18
|
-
storage: typeof opts.storage === 'string'
|
|
19
|
-
? new index_js_1.IdbStorage(opts.storage)
|
|
20
|
-
: opts.storage ?? new index_js_1.IdbStorage('client.session'),
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.BaseTelegramClient = BaseTelegramClient;
|
|
25
|
-
/**
|
|
26
|
-
* Telegram client for use in Node.js
|
|
27
|
-
*/
|
|
28
|
-
class TelegramClient extends client_js_1.TelegramClient {
|
|
29
|
-
constructor(opts) {
|
|
30
|
-
if ('client' in opts) {
|
|
31
|
-
super(opts);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
super({
|
|
35
|
-
client: new BaseTelegramClient(opts),
|
|
36
|
-
disableUpdates: opts.disableUpdates,
|
|
37
|
-
skipConversationUpdates: opts.skipConversationUpdates,
|
|
38
|
-
updates: opts.updates,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.TelegramClient = TelegramClient;
|
|
43
|
-
//# sourceMappingURL=client.js.map
|
package/cjs/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;AAKA,sDAG+B;AAC/B,0DAAsD;AAEtD,2CAA+C;AAC/C,6CAA2C;AAC3C,+CAA2C;AAC3C,iDAAmD;AAyBnD,MAAa,kBAAmB,SAAQ,8BAAsB;IAC1D,YAAY,IAA+B;QACvC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,IAAA,yBAAW,EAAC,IAAI,yBAAW,EAAE,CAAC,CAAA;QAEtD,KAAK,CAAC;YACF,MAAM,EAAE,IAAI,6BAAiB,EAAE;YAC/B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,iCAAkB,EAAE;YACzC,GAAG,IAAI;YACP,OAAO,EACH,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAC5B,CAAC,CAAC,IAAI,qBAAU,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,qBAAU,CAAC,gBAAgB,CAAC;SAC7D,CAAC,CAAA;IACN,CAAC;CACJ;AAdD,gDAcC;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,0BAAkB;IAClD,YAAY,IAA2B;QACnC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,CAAA;YAEX,OAAM;QACV,CAAC;QAED,KAAK,CAAC;YACF,MAAM,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC;YACpC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC,CAAA;IACN,CAAC;CACJ;AAfD,wCAeC","sourcesContent":["import type { ITelegramStorageProvider, PartialOnly } from '@mtcute/core'\nimport type {\n BaseTelegramClientOptions as BaseTelegramClientOptionsBase,\n TelegramClientOptions,\n} from '@mtcute/core/client.js'\nimport {\n BaseTelegramClient as BaseTelegramClientBase,\n TelegramClient as TelegramClientBase,\n} from '@mtcute/core/client.js'\nimport { setPlatform } from '@mtcute/core/platform.js'\n\nimport { WebCryptoProvider } from './crypto.js'\nimport { IdbStorage } from './idb/index.js'\nimport { WebPlatform } from './platform.js'\nimport { WebSocketTransport } from './websocket.js'\n\nexport type { TelegramClientOptions }\n\nexport interface BaseTelegramClientOptions\n extends PartialOnly<Omit<BaseTelegramClientOptionsBase, 'storage'>, 'transport' | 'crypto'> {\n /**\n * Storage to use for this client.\n *\n * If a string is passed, it will be used as\n * a name for an IndexedDB database.\n *\n * @default `\"client.session\"`\n */\n storage?: string | ITelegramStorageProvider\n\n /**\n * **ADVANCED USE ONLY**\n *\n * Whether to not set up the platform.\n * This is useful if you call `setPlatform` yourself.\n */\n platformless?: boolean\n}\n\nexport class BaseTelegramClient extends BaseTelegramClientBase {\n constructor(opts: BaseTelegramClientOptions) {\n if (!opts.platformless) setPlatform(new WebPlatform())\n\n super({\n crypto: new WebCryptoProvider(),\n transport: () => new WebSocketTransport(),\n ...opts,\n storage:\n typeof opts.storage === 'string'\n ? new IdbStorage(opts.storage)\n : opts.storage ?? new IdbStorage('client.session'),\n })\n }\n}\n\n/**\n * Telegram client for use in Node.js\n */\nexport class TelegramClient extends TelegramClientBase {\n constructor(opts: TelegramClientOptions) {\n if ('client' in opts) {\n super(opts)\n\n return\n }\n\n super({\n client: new BaseTelegramClient(opts),\n disableUpdates: opts.disableUpdates,\n skipConversationUpdates: opts.skipConversationUpdates,\n updates: opts.updates,\n })\n }\n}\n"]}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.base64Encode = base64Encode;
|
|
4
|
-
exports.base64Decode = base64Decode;
|
|
5
|
-
/// Based on https://github.com/beatgammit/base64-js, MIT license
|
|
6
|
-
const lookup = [];
|
|
7
|
-
const revLookup = [];
|
|
8
|
-
const code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
9
|
-
for (let i = 0, len = code.length; i < len; ++i) {
|
|
10
|
-
lookup[i] = code[i];
|
|
11
|
-
revLookup[code.charCodeAt(i)] = i;
|
|
12
|
-
}
|
|
13
|
-
function getLens(b64) {
|
|
14
|
-
const len = b64.length;
|
|
15
|
-
if (len % 4 > 0) {
|
|
16
|
-
throw new Error('Invalid string. Length must be a multiple of 4');
|
|
17
|
-
}
|
|
18
|
-
// Trim off extra bytes after placeholder bytes are found
|
|
19
|
-
// See: https://github.com/beatgammit/base64-js/issues/42
|
|
20
|
-
let validLen = b64.indexOf('=');
|
|
21
|
-
if (validLen === -1)
|
|
22
|
-
validLen = len;
|
|
23
|
-
const placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4);
|
|
24
|
-
return [validLen, placeHoldersLen];
|
|
25
|
-
}
|
|
26
|
-
function _byteLength(b64, validLen, placeHoldersLen) {
|
|
27
|
-
return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen;
|
|
28
|
-
}
|
|
29
|
-
function toByteArray(b64, arr) {
|
|
30
|
-
let tmp;
|
|
31
|
-
const lens = getLens(b64);
|
|
32
|
-
const validLen = lens[0];
|
|
33
|
-
const placeHoldersLen = lens[1];
|
|
34
|
-
let curByte = 0;
|
|
35
|
-
// if there are placeholders, only get up to the last complete 4 chars
|
|
36
|
-
const len = placeHoldersLen > 0 ? validLen - 4 : validLen;
|
|
37
|
-
let i;
|
|
38
|
-
for (i = 0; i < len; i += 4) {
|
|
39
|
-
tmp
|
|
40
|
-
= (revLookup[b64.charCodeAt(i)] << 18)
|
|
41
|
-
| (revLookup[b64.charCodeAt(i + 1)] << 12)
|
|
42
|
-
| (revLookup[b64.charCodeAt(i + 2)] << 6)
|
|
43
|
-
| revLookup[b64.charCodeAt(i + 3)];
|
|
44
|
-
arr[curByte++] = (tmp >> 16) & 0xFF;
|
|
45
|
-
arr[curByte++] = (tmp >> 8) & 0xFF;
|
|
46
|
-
arr[curByte++] = tmp & 0xFF;
|
|
47
|
-
}
|
|
48
|
-
if (placeHoldersLen === 2) {
|
|
49
|
-
tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);
|
|
50
|
-
arr[curByte++] = tmp & 0xFF;
|
|
51
|
-
}
|
|
52
|
-
if (placeHoldersLen === 1) {
|
|
53
|
-
tmp
|
|
54
|
-
= (revLookup[b64.charCodeAt(i)] << 10)
|
|
55
|
-
| (revLookup[b64.charCodeAt(i + 1)] << 4)
|
|
56
|
-
| (revLookup[b64.charCodeAt(i + 2)] >> 2);
|
|
57
|
-
arr[curByte++] = (tmp >> 8) & 0xFF;
|
|
58
|
-
arr[curByte++] = tmp & 0xFF;
|
|
59
|
-
}
|
|
60
|
-
return arr;
|
|
61
|
-
}
|
|
62
|
-
function tripletToBase64(num) {
|
|
63
|
-
return lookup[(num >> 18) & 0x3F] + lookup[(num >> 12) & 0x3F] + lookup[(num >> 6) & 0x3F] + lookup[num & 0x3F];
|
|
64
|
-
}
|
|
65
|
-
function encodeChunk(uint8, start, end) {
|
|
66
|
-
let tmp;
|
|
67
|
-
const output = [];
|
|
68
|
-
for (let i = start; i < end; i += 3) {
|
|
69
|
-
tmp = ((uint8[i] << 16) & 0xFF0000) + ((uint8[i + 1] << 8) & 0xFF00) + (uint8[i + 2] & 0xFF);
|
|
70
|
-
output.push(tripletToBase64(tmp));
|
|
71
|
-
}
|
|
72
|
-
return output.join('');
|
|
73
|
-
}
|
|
74
|
-
function fromByteArray(uint8) {
|
|
75
|
-
let tmp;
|
|
76
|
-
const len = uint8.length;
|
|
77
|
-
const extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes
|
|
78
|
-
const parts = [];
|
|
79
|
-
const maxChunkLength = 16383; // must be multiple of 3
|
|
80
|
-
// go through the array every three bytes, we'll deal with trailing stuff later
|
|
81
|
-
for (let i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
|
|
82
|
-
parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));
|
|
83
|
-
}
|
|
84
|
-
// pad the end with zeros, but make sure to not forget the extra bytes
|
|
85
|
-
if (extraBytes === 1) {
|
|
86
|
-
tmp = uint8[len - 1];
|
|
87
|
-
parts.push(`${lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3F]}==`);
|
|
88
|
-
}
|
|
89
|
-
else if (extraBytes === 2) {
|
|
90
|
-
tmp = (uint8[len - 2] << 8) + uint8[len - 1];
|
|
91
|
-
parts.push(`${lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3F] + lookup[(tmp << 2) & 0x3F]}=`);
|
|
92
|
-
}
|
|
93
|
-
return parts.join('');
|
|
94
|
-
}
|
|
95
|
-
function base64Encode(buf, url = false) {
|
|
96
|
-
const str = fromByteArray(buf);
|
|
97
|
-
if (url)
|
|
98
|
-
return str.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
|
|
99
|
-
return str;
|
|
100
|
-
}
|
|
101
|
-
function base64Decode(string, url = false) {
|
|
102
|
-
if (url) {
|
|
103
|
-
string = string.replace(/-/g, '+').replace(/_/g, '/');
|
|
104
|
-
while (string.length % 4)
|
|
105
|
-
string += '=';
|
|
106
|
-
}
|
|
107
|
-
const buf = new Uint8Array(_byteLength(string, ...getLens(string)));
|
|
108
|
-
toByteArray(string, buf);
|
|
109
|
-
return buf;
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=base64.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../src/common-internals-web/base64.ts"],"names":[],"mappings":";;AAiHA,oCAKC;AAED,oCAWC;AAnID,iEAAiE;AACjE,MAAM,MAAM,GAAa,EAAE,CAAA;AAC3B,MAAM,SAAS,GAAa,EAAE,CAAA;AAE9B,MAAM,IAAI,GAAG,kEAAkE,CAAA;AAE/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9C,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IACxB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IAEtB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACrE,CAAC;IAED,yDAAyD;IACzD,yDAAyD;IACzD,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,QAAQ,GAAG,GAAG,CAAA;IAEnC,MAAM,eAAe,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;IAEjE,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,QAAgB,EAAE,eAAuB;IACvE,OAAO,CAAC,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,CAAA;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,GAAe;IAC7C,IAAI,GAAG,CAAA;IACP,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IAE/B,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,sEAAsE;IACtE,MAAM,GAAG,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAEzD,IAAI,CAAC,CAAA;IAEL,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,GAAG;cACG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;kBACpC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;kBACxC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;kBACvC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACtC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;QACnC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IAC/B,CAAC;IAED,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACnF,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IAC/B,CAAC;IAED,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG;cACG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;kBACpC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;kBACvC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IAC/B,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAChC,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;AACnH,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB,EAAE,KAAa,EAAE,GAAW;IAC9D,IAAI,GAAG,CAAA;IACP,MAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;QAC5F,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACpC,IAAI,GAAG,CAAA;IACP,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAA;IACxB,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,CAAA,CAAC,sCAAsC;IACjE,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,KAAK,CAAA,CAAC,wBAAwB;IAErD,+EAA+E;IAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAA;IAC5F,CAAC;IAED,sEAAsE;IACtE,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACnB,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACpB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IACnE,CAAC;SAAM,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QAC1B,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;IAC/F,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAe,EAAE,MAAe,KAAK;IAC9D,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAE7E,OAAO,GAAG,CAAA;AACd,CAAC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,MAAe,KAAK;IAC7D,IAAI,GAAG,EAAE,CAAC;QACN,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,GAAG,CAAA;IAC3C,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAEnE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAExB,OAAO,GAAG,CAAA;AACd,CAAC","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: boolean = 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: boolean = 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,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/// Based on https://github.com/feross/buffer, MIT license
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.hexEncode = hexEncode;
|
|
5
|
-
exports.hexDecode = hexDecode;
|
|
6
|
-
const hexSliceLookupTable = (function () {
|
|
7
|
-
const alphabet = '0123456789abcdef';
|
|
8
|
-
const table = Array.from({ length: 256 });
|
|
9
|
-
for (let i = 0; i < 16; ++i) {
|
|
10
|
-
const i16 = i * 16;
|
|
11
|
-
for (let j = 0; j < 16; ++j) {
|
|
12
|
-
table[i16 + j] = alphabet[i] + alphabet[j];
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return table;
|
|
16
|
-
})();
|
|
17
|
-
const hexCharValueTable = {
|
|
18
|
-
0: 0,
|
|
19
|
-
1: 1,
|
|
20
|
-
2: 2,
|
|
21
|
-
3: 3,
|
|
22
|
-
4: 4,
|
|
23
|
-
5: 5,
|
|
24
|
-
6: 6,
|
|
25
|
-
7: 7,
|
|
26
|
-
8: 8,
|
|
27
|
-
9: 9,
|
|
28
|
-
a: 10,
|
|
29
|
-
b: 11,
|
|
30
|
-
c: 12,
|
|
31
|
-
d: 13,
|
|
32
|
-
e: 14,
|
|
33
|
-
f: 15,
|
|
34
|
-
A: 10,
|
|
35
|
-
B: 11,
|
|
36
|
-
C: 12,
|
|
37
|
-
D: 13,
|
|
38
|
-
E: 14,
|
|
39
|
-
F: 15,
|
|
40
|
-
};
|
|
41
|
-
function hexEncode(buf) {
|
|
42
|
-
let out = '';
|
|
43
|
-
for (let i = 0; i < buf.byteLength; ++i) {
|
|
44
|
-
out += hexSliceLookupTable[buf[i]];
|
|
45
|
-
}
|
|
46
|
-
return out;
|
|
47
|
-
}
|
|
48
|
-
function hexDecodeInner(buf, string) {
|
|
49
|
-
const strLen = string.length;
|
|
50
|
-
const length = Math.min(buf.length, strLen / 2);
|
|
51
|
-
let i;
|
|
52
|
-
for (i = 0; i < length; ++i) {
|
|
53
|
-
const a = hexCharValueTable[string[i * 2]];
|
|
54
|
-
const b = hexCharValueTable[string[i * 2 + 1]];
|
|
55
|
-
if (a === undefined || b === undefined) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
buf[i] = (a << 4) | b;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function hexDecode(string) {
|
|
62
|
-
const buf = new Uint8Array(Math.ceil(string.length / 2));
|
|
63
|
-
hexDecodeInner(buf, string);
|
|
64
|
-
return buf;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=hex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 const table: string[] = Array.from({ length: 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\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,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultLoggingHandler = void 0;
|
|
4
|
-
const BASE_FORMAT = '%s [%c%s%c] [%c%s%c] ';
|
|
5
|
-
const LEVEL_NAMES = [
|
|
6
|
-
'', // OFF
|
|
7
|
-
'ERR',
|
|
8
|
-
'WRN',
|
|
9
|
-
'INF',
|
|
10
|
-
'DBG',
|
|
11
|
-
'VRB',
|
|
12
|
-
];
|
|
13
|
-
const COLORS = [
|
|
14
|
-
'', // OFF
|
|
15
|
-
'color: #7a5f9d',
|
|
16
|
-
'color: #8d7041',
|
|
17
|
-
'color: #396c9e',
|
|
18
|
-
'color: #437761',
|
|
19
|
-
'color: #7a5f9d',
|
|
20
|
-
];
|
|
21
|
-
const TAG_COLORS = [
|
|
22
|
-
'color: #437761',
|
|
23
|
-
'color: #537a36',
|
|
24
|
-
'color: #8d7041',
|
|
25
|
-
'color: #396c9e',
|
|
26
|
-
'color: #7a5f9d',
|
|
27
|
-
'color: #7a5f9d',
|
|
28
|
-
];
|
|
29
|
-
/** @internal */
|
|
30
|
-
const defaultLoggingHandler = (color, level, tag, fmt, args) => {
|
|
31
|
-
// eslint-disable-next-line no-console
|
|
32
|
-
console.log(BASE_FORMAT + fmt, new Date().toISOString(), COLORS[level], LEVEL_NAMES[level], '', TAG_COLORS[color], tag, '', ...args);
|
|
33
|
-
};
|
|
34
|
-
exports.defaultLoggingHandler = defaultLoggingHandler;
|
|
35
|
-
//# sourceMappingURL=logging.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,GAMtB,CAAC,KAAa,EAAE,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,IAAe,EAAQ,EAAE;IAC1F,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 = (color: number, level: number, tag: string, fmt: string, args: unknown[]): 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,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.utf8ByteLength = utf8ByteLength;
|
|
4
|
-
exports.utf8Decode = utf8Decode;
|
|
5
|
-
exports.utf8Encode = utf8Encode;
|
|
6
|
-
const sharedEncoder = new TextEncoder();
|
|
7
|
-
const sharedDecoder = new TextDecoder('utf8');
|
|
8
|
-
function utf8ByteLength(str) {
|
|
9
|
-
// https://stackoverflow.com/a/23329386
|
|
10
|
-
let s = str.length;
|
|
11
|
-
for (let i = str.length - 1; i >= 0; i--) {
|
|
12
|
-
const code = str.charCodeAt(i);
|
|
13
|
-
if (code > 0x7F && code <= 0x7FF)
|
|
14
|
-
s++;
|
|
15
|
-
else if (code > 0x7FF && code <= 0xFFFF)
|
|
16
|
-
s += 2;
|
|
17
|
-
if (code >= 0xDC00 && code <= 0xDFFF)
|
|
18
|
-
i--; // trail surrogate
|
|
19
|
-
}
|
|
20
|
-
return s;
|
|
21
|
-
}
|
|
22
|
-
function utf8Decode(buf) {
|
|
23
|
-
return sharedDecoder.decode(buf);
|
|
24
|
-
}
|
|
25
|
-
function utf8Encode(str) {
|
|
26
|
-
return sharedEncoder.encode(str);
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=utf8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../src/common-internals-web/utf8.ts"],"names":[],"mappings":";;AAGA,wCAYC;AAED,gCAEC;AAED,gCAEC;AAvBD,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,kBAAkB;IAChE,CAAC;IAED,OAAO,CAAC,CAAA;AACZ,CAAC;AAED,SAAgB,UAAU,CAAC,GAAe;IACtC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,SAAgB,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): number {\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/crypto.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebCryptoProvider = void 0;
|
|
4
|
-
const utils_js_1 = require("@mtcute/core/utils.js");
|
|
5
|
-
const wasm_1 = require("@mtcute/wasm");
|
|
6
|
-
const wasm_js_1 = require("./wasm.js");
|
|
7
|
-
const ALGO_TO_SUBTLE = {
|
|
8
|
-
sha256: 'SHA-256',
|
|
9
|
-
sha1: 'SHA-1',
|
|
10
|
-
sha512: 'SHA-512',
|
|
11
|
-
};
|
|
12
|
-
class WebCryptoProvider extends utils_js_1.BaseCryptoProvider {
|
|
13
|
-
crypto;
|
|
14
|
-
_wasmInput;
|
|
15
|
-
sha1(data) {
|
|
16
|
-
return (0, wasm_1.sha1)(data);
|
|
17
|
-
}
|
|
18
|
-
sha256(data) {
|
|
19
|
-
return (0, wasm_1.sha256)(data);
|
|
20
|
-
}
|
|
21
|
-
createAesCtr(key, iv) {
|
|
22
|
-
const ctx = (0, wasm_1.createCtr256)(key, iv);
|
|
23
|
-
return {
|
|
24
|
-
process: data => (0, wasm_1.ctr256)(ctx, data),
|
|
25
|
-
close: () => (0, wasm_1.freeCtr256)(ctx),
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
createAesIge(key, iv) {
|
|
29
|
-
return {
|
|
30
|
-
encrypt: data => (0, wasm_1.ige256Encrypt)(data, key, iv),
|
|
31
|
-
decrypt: data => (0, wasm_1.ige256Decrypt)(data, key, iv),
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
gzip(data, maxSize) {
|
|
35
|
-
return (0, wasm_1.deflateMaxSize)(data, maxSize);
|
|
36
|
-
}
|
|
37
|
-
gunzip(data) {
|
|
38
|
-
return (0, wasm_1.gunzip)(data);
|
|
39
|
-
}
|
|
40
|
-
constructor(params) {
|
|
41
|
-
super();
|
|
42
|
-
const crypto = params?.crypto ?? globalThis.crypto;
|
|
43
|
-
if (!crypto || !crypto.subtle) {
|
|
44
|
-
throw new Error('WebCrypto is not available');
|
|
45
|
-
}
|
|
46
|
-
this.crypto = crypto;
|
|
47
|
-
this._wasmInput = params?.wasmInput;
|
|
48
|
-
}
|
|
49
|
-
async initialize() {
|
|
50
|
-
(0, wasm_1.initSync)(await (0, wasm_js_1.loadWasmBinary)(this._wasmInput));
|
|
51
|
-
}
|
|
52
|
-
async pbkdf2(password, salt, iterations, keylen, algo) {
|
|
53
|
-
const keyMaterial = await this.crypto.subtle.importKey('raw', password, 'PBKDF2', false, ['deriveBits']);
|
|
54
|
-
return this.crypto.subtle
|
|
55
|
-
.deriveBits({
|
|
56
|
-
name: 'PBKDF2',
|
|
57
|
-
salt,
|
|
58
|
-
iterations,
|
|
59
|
-
hash: algo ? ALGO_TO_SUBTLE[algo] : 'SHA-512',
|
|
60
|
-
}, keyMaterial, (keylen || 64) * 8)
|
|
61
|
-
.then(result => new Uint8Array(result));
|
|
62
|
-
}
|
|
63
|
-
async hmacSha256(data, key) {
|
|
64
|
-
const keyMaterial = await this.crypto.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);
|
|
65
|
-
const res = await this.crypto.subtle.sign({ name: 'HMAC' }, keyMaterial, data);
|
|
66
|
-
return new Uint8Array(res);
|
|
67
|
-
}
|
|
68
|
-
randomFill(buf) {
|
|
69
|
-
this.crypto.getRandomValues(buf);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
exports.WebCryptoProvider = WebCryptoProvider;
|
|
73
|
-
//# sourceMappingURL=crypto.js.map
|
package/cjs/crypto.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IAesCtr, ICryptoProvider, IEncryptionScheme } from '@mtcute/core/utils.js'\nimport { BaseCryptoProvider } from '@mtcute/core/utils.js'\nimport {\n createCtr256,\n ctr256,\n deflateMaxSize,\n freeCtr256,\n gunzip,\n ige256Decrypt,\n ige256Encrypt,\n initSync,\n sha1,\n sha256,\n} from '@mtcute/wasm'\n\nimport type { WasmInitInput } from './wasm.js'\nimport { loadWasmBinary } from './wasm.js'\n\nconst ALGO_TO_SUBTLE: Record<string, string> = {\n sha256: 'SHA-256',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n}\n\nexport interface WebCryptoProviderOptions {\n crypto?: Crypto\n wasmInput?: WasmInitInput\n}\n\nexport class WebCryptoProvider extends BaseCryptoProvider implements ICryptoProvider {\n readonly crypto: Crypto\n private _wasmInput?: WasmInitInput\n\n sha1(data: Uint8Array): Uint8Array {\n return sha1(data)\n }\n\n sha256(data: Uint8Array): Uint8Array {\n return sha256(data)\n }\n\n createAesCtr(key: Uint8Array, iv: Uint8Array): IAesCtr {\n const ctx = createCtr256(key, iv)\n\n return {\n process: data => ctr256(ctx, data),\n close: () => freeCtr256(ctx),\n }\n }\n\n createAesIge(key: Uint8Array, iv: Uint8Array): IEncryptionScheme {\n return {\n encrypt: data => ige256Encrypt(data, key, iv),\n decrypt: data => ige256Decrypt(data, key, iv),\n }\n }\n\n gzip(data: Uint8Array, maxSize: number): Uint8Array | null {\n return deflateMaxSize(data, maxSize)\n }\n\n gunzip(data: Uint8Array): Uint8Array {\n return gunzip(data)\n }\n\n constructor(params?: WebCryptoProviderOptions) {\n super()\n const crypto = params?.crypto ?? globalThis.crypto\n\n if (!crypto || !crypto.subtle) {\n throw new Error('WebCrypto is not available')\n }\n this.crypto = crypto\n this._wasmInput = params?.wasmInput\n }\n\n async initialize(): Promise<void> {\n initSync(await loadWasmBinary(this._wasmInput))\n }\n\n async pbkdf2(\n password: Uint8Array,\n salt: Uint8Array,\n iterations: number,\n keylen?: number | undefined,\n algo?: string | undefined,\n ): Promise<Uint8Array> {\n const keyMaterial = await this.crypto.subtle.importKey('raw', password, 'PBKDF2', false, ['deriveBits'])\n\n return this.crypto.subtle\n .deriveBits(\n {\n name: 'PBKDF2',\n salt,\n iterations,\n hash: algo ? ALGO_TO_SUBTLE[algo] : 'SHA-512',\n },\n keyMaterial,\n (keylen || 64) * 8,\n )\n .then(result => new Uint8Array(result))\n }\n\n async hmacSha256(data: Uint8Array, key: Uint8Array): Promise<Uint8Array> {\n const keyMaterial = await this.crypto.subtle.importKey(\n 'raw',\n key,\n { name: 'HMAC', hash: { name: 'SHA-256' } },\n false,\n ['sign'],\n )\n\n const res = await this.crypto.subtle.sign({ name: 'HMAC' }, keyMaterial, data)\n\n return new Uint8Array(res)\n }\n\n randomFill(buf: Uint8Array): void {\n this.crypto.getRandomValues(buf)\n }\n}\n"]}
|
package/cjs/exit-hook.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.beforeExit = beforeExit;
|
|
4
|
-
const callbacks = new Set();
|
|
5
|
-
let registered = false;
|
|
6
|
-
function beforeExit(fn) {
|
|
7
|
-
if (typeof window === 'undefined') {
|
|
8
|
-
return () => { };
|
|
9
|
-
}
|
|
10
|
-
if (!registered) {
|
|
11
|
-
registered = true;
|
|
12
|
-
window.addEventListener('beforeunload', () => {
|
|
13
|
-
for (const callback of callbacks) {
|
|
14
|
-
callback();
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
callbacks.add(fn);
|
|
19
|
-
return () => {
|
|
20
|
-
callbacks.delete(fn);
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=exit-hook.js.map
|
package/cjs/exit-hook.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exit-hook.js","sourceRoot":"","sources":["../../src/exit-hook.ts"],"names":[],"mappings":";;AAIA,gCAmBC;AAvBD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAA;AAEvC,IAAI,UAAU,GAAG,KAAK,CAAA;AAEtB,SAAgB,UAAU,CAAC,EAAc;IACrC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACnB,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,UAAU,GAAG,IAAI,CAAA;QAEjB,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC/B,QAAQ,EAAE,CAAA;YACd,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEjB,OAAO,GAAG,EAAE;QACR,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC,CAAA;AACL,CAAC","sourcesContent":["const callbacks = new Set<() => void>()\n\nlet registered = false\n\nexport function beforeExit(fn: () => void): () => void {\n if (typeof window === 'undefined') {\n return () => {}\n }\n if (!registered) {\n registered = true\n\n window.addEventListener('beforeunload', () => {\n for (const callback of callbacks) {\n callback()\n }\n })\n }\n\n callbacks.add(fn)\n\n return () => {\n callbacks.delete(fn)\n }\n}\n"]}
|