@another-trial/airgram 5.1.1
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/Airgram.d.ts +12 -0
- package/Airgram.js +66 -0
- package/Airgram.js.map +1 -0
- package/README.md +3 -0
- package/__tests__/json.d.ts +1 -0
- package/__tests__/json.js +29 -0
- package/__tests__/json.js.map +1 -0
- package/components/Auth.d.ts +35 -0
- package/components/Auth.js +391 -0
- package/components/Auth.js.map +1 -0
- package/components/BaseJsonClient.d.ts +14 -0
- package/components/BaseJsonClient.js +10 -0
- package/components/BaseJsonClient.js.map +1 -0
- package/components/FakeJsonClient.d.ts +35 -0
- package/components/FakeJsonClient.js +252 -0
- package/components/FakeJsonClient.js.map +1 -0
- package/components/Provider.d.ts +12 -0
- package/components/Provider.js +117 -0
- package/components/Provider.js.map +1 -0
- package/components/TdJsonClient.d.ts +40 -0
- package/components/TdJsonClient.js +310 -0
- package/components/TdJsonClient.js.map +1 -0
- package/components/index.d.ts +3 -0
- package/components/index.js +16 -0
- package/components/index.js.map +1 -0
- package/index.d.ts +5 -0
- package/index.js +24 -0
- package/index.js.map +1 -0
- package/package.json +28 -0
- package/types.d.ts +14 -0
- package/types.js +3 -0
- package/types.js.map +1 -0
- package/utils/index.d.ts +2 -0
- package/utils/index.js +15 -0
- package/utils/index.js.map +1 -0
- package/utils/json.d.ts +5 -0
- package/utils/json.js +77 -0
- package/utils/json.js.map +1 -0
- package/utils/prompt.d.ts +5 -0
- package/utils/prompt.js +58 -0
- package/utils/prompt.js.map +1 -0
package/Airgram.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AirgramCore, Config, CreateProviderFactoryFn } from '@airgram/core';
|
|
2
|
+
import { Provider } from './components';
|
|
3
|
+
import { BaseJsonClient } from './components/BaseJsonClient';
|
|
4
|
+
import { TdJsonConfig } from './types';
|
|
5
|
+
export interface ExtendedConfig extends Config, Pick<TdJsonConfig, 'command' | 'models'> {
|
|
6
|
+
}
|
|
7
|
+
export declare const createProviderFactory: CreateProviderFactoryFn<Provider, BaseJsonClient>;
|
|
8
|
+
export declare class Airgram extends AirgramCore<Provider> {
|
|
9
|
+
private static tdJsonClient;
|
|
10
|
+
constructor(config: ExtendedConfig);
|
|
11
|
+
constructor(tdJsonClient: BaseJsonClient, config: Config);
|
|
12
|
+
}
|
package/Airgram.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
extendStatics(d, b);
|
|
11
|
+
function __() { this.constructor = d; }
|
|
12
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
16
|
+
var t = {};
|
|
17
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
18
|
+
t[p] = s[p];
|
|
19
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
20
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
21
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
22
|
+
t[p[i]] = s[p[i]];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.Airgram = exports.createProviderFactory = void 0;
|
|
28
|
+
var core_1 = require("@airgram/core");
|
|
29
|
+
var components_1 = require("./components");
|
|
30
|
+
var BaseJsonClient_1 = require("./components/BaseJsonClient");
|
|
31
|
+
exports.createProviderFactory = function (tdJsonClient) {
|
|
32
|
+
return function (handleUpdate) {
|
|
33
|
+
return new components_1.Provider(tdJsonClient, {
|
|
34
|
+
handleUpdate: handleUpdate
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
var Airgram = /** @class */ (function (_super) {
|
|
39
|
+
__extends(Airgram, _super);
|
|
40
|
+
function Airgram(configOrClient, config) {
|
|
41
|
+
var _a;
|
|
42
|
+
var _this = this;
|
|
43
|
+
if (configOrClient instanceof BaseJsonClient_1.BaseJsonClient && config) {
|
|
44
|
+
_this = _super.call(this, exports.createProviderFactory(configOrClient), config) || this;
|
|
45
|
+
}
|
|
46
|
+
else if (typeof configOrClient === 'object' && 'apiId' in configOrClient) {
|
|
47
|
+
var command = configOrClient.command, models = configOrClient.models, restConfig = __rest(configOrClient, ["command", "models"]);
|
|
48
|
+
if (models) {
|
|
49
|
+
throw new Error('For using models you need to create TdJsonClient manually. See: https://airgram.netlify.app/api-reference/tdjsonclient');
|
|
50
|
+
}
|
|
51
|
+
var tdJsonClient = Airgram.tdJsonClient = (_a = Airgram.tdJsonClient) !== null && _a !== void 0 ? _a : new components_1.TdJsonClient({ command: command });
|
|
52
|
+
if (tdJsonClient.command !== command) {
|
|
53
|
+
throw new Error('The "command" option must have the same value as in active TdJsonClient instance.');
|
|
54
|
+
}
|
|
55
|
+
_this = _super.call(this, exports.createProviderFactory(tdJsonClient), restConfig) || this;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw new Error('Invalid Airgram config.');
|
|
59
|
+
}
|
|
60
|
+
return _this;
|
|
61
|
+
}
|
|
62
|
+
Airgram.tdJsonClient = null;
|
|
63
|
+
return Airgram;
|
|
64
|
+
}(core_1.AirgramCore));
|
|
65
|
+
exports.Airgram = Airgram;
|
|
66
|
+
//# sourceMappingURL=Airgram.js.map
|
package/Airgram.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Airgram.js","sourceRoot":"","sources":["../src/Airgram.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAA4E;AAC5E,2CAAqD;AACrD,8DAA4D;AAK/C,QAAA,qBAAqB,GAAsD,UAAC,YAA4B;IACnH,OAAO,UAAC,YAA8C;QACpD,OAAO,IAAI,qBAAQ,CAAC,YAAY,EAAE;YAChC,YAAY,cAAA;SACb,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAA;AAED;IAA6B,2BAAqB;IAKhD,iBAAoB,cAA+C,EAAE,MAAe;;QAApF,iBAoBC;QAnBC,IAAI,cAAc,YAAY,+BAAc,IAAI,MAAM,EAAE;YACtD,QAAA,kBAAM,6BAAqB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,SAAA;SACrD;aAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,IAAI,cAAc,EAAE;YAClE,IAAA,OAAO,GAA4B,cAAc,QAA1C,EAAE,MAAM,GAAoB,cAAc,OAAlC,EAAK,UAAU,UAAK,cAAc,EAAnD,qBAAkC,CAAF,CAAmB;YAEzD,IAAI,MAAM,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,wHAAwH,CAAC,CAAA;aAC1I;YAED,IAAM,YAAY,GAAG,OAAO,CAAC,YAAY,SAAG,OAAO,CAAC,YAAY,mCAAI,IAAI,yBAAY,CAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;YAEjG,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,EAAE;gBACpC,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAA;aACrG;YAED,QAAA,kBAAM,6BAAqB,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,SAAA;SACvD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;SAC3C;;IACH,CAAC;IAxBc,oBAAY,GAA0B,IAAI,CAAA;IAyB3D,cAAC;CAAA,AA1BD,CAA6B,kBAAW,GA0BvC;AA1BY,0BAAO"}
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
var utils_1 = require("../utils");
|
|
5
|
+
test('prepare params for tdlib', function () {
|
|
6
|
+
var serialize = utils_1.createSerializer();
|
|
7
|
+
var src = { _: 'parent', id: 1, child: { _: 'child' } };
|
|
8
|
+
var res = '{"@type":"parent","id":1,"child":{"@type":"child"}}';
|
|
9
|
+
expect(JSON.stringify(src, serialize)).toBe(res);
|
|
10
|
+
});
|
|
11
|
+
test('parse tdlib response', function () {
|
|
12
|
+
var deserialize = utils_1.createDeserializer();
|
|
13
|
+
var src = '{"@type":"parent","id":1,"child":{"@type":"child"}}';
|
|
14
|
+
var res = { _: 'parent', id: 1, child: { _: 'child' } };
|
|
15
|
+
expect(JSON.parse(src, deserialize)).toStrictEqual(res);
|
|
16
|
+
});
|
|
17
|
+
test('parse null response', function () {
|
|
18
|
+
var deserialize = utils_1.createDeserializer();
|
|
19
|
+
var src = null;
|
|
20
|
+
var res = null;
|
|
21
|
+
expect(JSON.parse(src, deserialize)).toBe(res);
|
|
22
|
+
});
|
|
23
|
+
test('parse false response', function () {
|
|
24
|
+
var deserialize = utils_1.createDeserializer();
|
|
25
|
+
var src = false;
|
|
26
|
+
var res = false;
|
|
27
|
+
expect(JSON.parse(src, deserialize)).toBe(res);
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/__tests__/json.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAEvD,kCAA+D;AAE/D,IAAI,CAAC,0BAA0B,EAAE;IAC/B,IAAM,SAAS,GAAG,wBAAgB,EAAE,CAAA;IACpC,IAAM,GAAG,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,CAAA;IACzD,IAAM,GAAG,GAAG,qDAAqD,CAAA;IACjE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,sBAAsB,EAAE;IAC3B,IAAM,WAAW,GAAG,0BAAkB,EAAE,CAAA;IACxC,IAAM,GAAG,GAAG,qDAAqD,CAAA;IACjE,IAAM,GAAG,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,CAAA;IACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AACzD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,qBAAqB,EAAE;IAC1B,IAAM,WAAW,GAAG,0BAAkB,EAAE,CAAA;IACxC,IAAM,GAAG,GAAG,IAAI,CAAA;IAChB,IAAM,GAAG,GAAG,IAAI,CAAA;IAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAU,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,sBAAsB,EAAE;IAC3B,IAAM,WAAW,GAAG,0BAAkB,EAAE,CAAA;IACxC,IAAM,GAAG,GAAG,KAAK,CAAA;IACjB,IAAM,GAAG,GAAG,KAAK,CAAA;IACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAU,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvD,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Context, MiddlewareFn } from '@airgram/core';
|
|
2
|
+
declare type AuthConfigOption = string | (() => string) | (() => Promise<string>);
|
|
3
|
+
interface AuthConfig {
|
|
4
|
+
code?: AuthConfigOption;
|
|
5
|
+
firstName?: AuthConfigOption;
|
|
6
|
+
lastName?: AuthConfigOption;
|
|
7
|
+
phoneNumber?: AuthConfigOption;
|
|
8
|
+
password?: AuthConfigOption;
|
|
9
|
+
token?: AuthConfigOption;
|
|
10
|
+
}
|
|
11
|
+
export declare class Auth {
|
|
12
|
+
maxAttempts: number;
|
|
13
|
+
private _airgram?;
|
|
14
|
+
private answers;
|
|
15
|
+
private attempt;
|
|
16
|
+
private authState;
|
|
17
|
+
private readonly config;
|
|
18
|
+
private deferred;
|
|
19
|
+
private invalidPhoneNumbers;
|
|
20
|
+
constructor(config: AuthConfig);
|
|
21
|
+
get isAuthorized(): boolean;
|
|
22
|
+
get isBot(): boolean;
|
|
23
|
+
private get airgram();
|
|
24
|
+
middleware(): MiddlewareFn<Context>;
|
|
25
|
+
private ask;
|
|
26
|
+
private askPhoneNumber;
|
|
27
|
+
private checkAuthenticationPassword;
|
|
28
|
+
private fatalError;
|
|
29
|
+
private handleError;
|
|
30
|
+
private handleUpdateState;
|
|
31
|
+
private login;
|
|
32
|
+
private registerUser;
|
|
33
|
+
private sendCode;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-dupe-class-members */
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
13
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
14
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
15
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
16
|
+
function step(op) {
|
|
17
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
18
|
+
while (_) try {
|
|
19
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
20
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
21
|
+
switch (op[0]) {
|
|
22
|
+
case 0: case 1: t = op; break;
|
|
23
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
24
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
25
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
26
|
+
default:
|
|
27
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
28
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
29
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
30
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
31
|
+
if (t[2]) _.ops.pop();
|
|
32
|
+
_.trys.pop(); continue;
|
|
33
|
+
}
|
|
34
|
+
op = body.call(thisArg, _);
|
|
35
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
36
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.Auth = void 0;
|
|
41
|
+
var constants_1 = require("@airgram/constants");
|
|
42
|
+
var core_1 = require("@airgram/core");
|
|
43
|
+
var authMethods = [
|
|
44
|
+
'addProxy',
|
|
45
|
+
'disableProxy',
|
|
46
|
+
'editProxy',
|
|
47
|
+
'enableProxy',
|
|
48
|
+
'pingProxy',
|
|
49
|
+
'removeProxy',
|
|
50
|
+
'checkAuthenticationBotToken',
|
|
51
|
+
'checkAuthenticationCode',
|
|
52
|
+
'checkAuthenticationPassword',
|
|
53
|
+
'getAuthorizationState',
|
|
54
|
+
'getLogStream',
|
|
55
|
+
'getLogTagVerbosityLevel',
|
|
56
|
+
'getLogTags',
|
|
57
|
+
'getLogVerbosityLevel',
|
|
58
|
+
'registerUser',
|
|
59
|
+
'requestAuthenticationPasswordRecovery',
|
|
60
|
+
'resendAuthenticationCode',
|
|
61
|
+
'setAuthenticationPhoneNumber',
|
|
62
|
+
'setOption',
|
|
63
|
+
'setTdlibParameters',
|
|
64
|
+
'setLogStream',
|
|
65
|
+
'setLogTagVerbosityLevel',
|
|
66
|
+
'setLogVerbosityLevel',
|
|
67
|
+
];
|
|
68
|
+
var Auth = /** @class */ (function () {
|
|
69
|
+
function Auth(config) {
|
|
70
|
+
this.maxAttempts = 3;
|
|
71
|
+
this.answers = {};
|
|
72
|
+
this.attempt = 0;
|
|
73
|
+
this.authState = null;
|
|
74
|
+
this.config = {};
|
|
75
|
+
this.deferred = null;
|
|
76
|
+
this.invalidPhoneNumbers = new Set();
|
|
77
|
+
this.config = config;
|
|
78
|
+
}
|
|
79
|
+
Object.defineProperty(Auth.prototype, "isAuthorized", {
|
|
80
|
+
get: function () {
|
|
81
|
+
return !!(this.authState && this.authState._ === constants_1.AUTHORIZATION_STATE.authorizationStateReady);
|
|
82
|
+
},
|
|
83
|
+
enumerable: false,
|
|
84
|
+
configurable: true
|
|
85
|
+
});
|
|
86
|
+
Object.defineProperty(Auth.prototype, "isBot", {
|
|
87
|
+
get: function () {
|
|
88
|
+
return 'token' in this.config;
|
|
89
|
+
},
|
|
90
|
+
enumerable: false,
|
|
91
|
+
configurable: true
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(Auth.prototype, "airgram", {
|
|
94
|
+
get: function () {
|
|
95
|
+
if (!this._airgram) {
|
|
96
|
+
throw new Error('Airgram has not been initialized yet.');
|
|
97
|
+
}
|
|
98
|
+
return this._airgram;
|
|
99
|
+
},
|
|
100
|
+
enumerable: false,
|
|
101
|
+
configurable: true
|
|
102
|
+
});
|
|
103
|
+
Auth.prototype.middleware = function () {
|
|
104
|
+
var _this = this;
|
|
105
|
+
return core_1.Composer.compose([
|
|
106
|
+
function (ctx, next) {
|
|
107
|
+
if (!_this._airgram) {
|
|
108
|
+
_this._airgram = ctx.airgram;
|
|
109
|
+
}
|
|
110
|
+
return next();
|
|
111
|
+
},
|
|
112
|
+
core_1.Composer.filter(function (ctx) { return !('update' in ctx) ||
|
|
113
|
+
!ctx.update ||
|
|
114
|
+
ctx.update._ !== constants_1.UPDATE.updateAuthorizationState ||
|
|
115
|
+
!_this.handleUpdateState(ctx.update); }),
|
|
116
|
+
core_1.Composer.optional(function (ctx) {
|
|
117
|
+
return !_this.isAuthorized &&
|
|
118
|
+
!authMethods.includes(ctx._) &&
|
|
119
|
+
!constants_1.authIndependentMethods.includes(ctx._);
|
|
120
|
+
}, function (_ctx, next) { return _this.login().then(next); })
|
|
121
|
+
]);
|
|
122
|
+
};
|
|
123
|
+
Auth.prototype.ask = function (type) {
|
|
124
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
125
|
+
return __generator(this, function (_a) {
|
|
126
|
+
if (!(type in this.config) || !this.config[type]) {
|
|
127
|
+
throw new Error("The \"" + type + "\" option does not specified.");
|
|
128
|
+
}
|
|
129
|
+
if (typeof this.config[type] === 'function') {
|
|
130
|
+
return [2 /*return*/, this.config[type]()];
|
|
131
|
+
}
|
|
132
|
+
return [2 /*return*/, this.config[type]];
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
Auth.prototype.askPhoneNumber = function () {
|
|
137
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
138
|
+
var _this = this;
|
|
139
|
+
return __generator(this, function (_a) {
|
|
140
|
+
return [2 /*return*/, this.ask('phoneNumber')
|
|
141
|
+
.then(function (phoneNumber) { return __awaiter(_this, void 0, void 0, function () {
|
|
142
|
+
return __generator(this, function (_a) {
|
|
143
|
+
if (!phoneNumber) {
|
|
144
|
+
throw new Error('Phone number is not defined');
|
|
145
|
+
}
|
|
146
|
+
if (this.invalidPhoneNumbers.has(phoneNumber) || !/^\+?\d{10,}$/.test(phoneNumber.trim())) {
|
|
147
|
+
this.invalidPhoneNumbers.add(phoneNumber);
|
|
148
|
+
delete this.answers.phoneNumber;
|
|
149
|
+
throw new Error('Invalid phone number');
|
|
150
|
+
}
|
|
151
|
+
return [2 /*return*/, phoneNumber];
|
|
152
|
+
});
|
|
153
|
+
}); })];
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
Auth.prototype.checkAuthenticationPassword = function () {
|
|
158
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
159
|
+
var _a, _b, _c;
|
|
160
|
+
return __generator(this, function (_d) {
|
|
161
|
+
switch (_d.label) {
|
|
162
|
+
case 0:
|
|
163
|
+
_b = (_a = this.airgram.api).checkAuthenticationPassword;
|
|
164
|
+
_c = {};
|
|
165
|
+
return [4 /*yield*/, this.ask('password')];
|
|
166
|
+
case 1: return [2 /*return*/, _b.apply(_a, [(_c.password = _d.sent(),
|
|
167
|
+
_c)])];
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
Auth.prototype.fatalError = function (error) {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
174
|
+
return __generator(this, function (_a) {
|
|
175
|
+
switch (_a.label) {
|
|
176
|
+
case 0:
|
|
177
|
+
console.error("[Airgram Auth] quit due an error: \"" + error.message + "\"");
|
|
178
|
+
if (!(this.airgram.provider instanceof core_1.Provider)) return [3 /*break*/, 2];
|
|
179
|
+
return [4 /*yield*/, this.airgram.provider.destroy()];
|
|
180
|
+
case 1:
|
|
181
|
+
_a.sent();
|
|
182
|
+
_a.label = 2;
|
|
183
|
+
case 2: return [2 /*return*/, false];
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
Auth.prototype.handleError = function (error) {
|
|
189
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
190
|
+
var promise;
|
|
191
|
+
var _this = this;
|
|
192
|
+
return __generator(this, function (_a) {
|
|
193
|
+
promise = null;
|
|
194
|
+
if (error.code === 429) {
|
|
195
|
+
return [2 /*return*/, this.fatalError(new Error(error.message))];
|
|
196
|
+
}
|
|
197
|
+
switch (error.message) {
|
|
198
|
+
case 'PHONE_NUMBER_INVALID': {
|
|
199
|
+
if (this.answers.phoneNumber) {
|
|
200
|
+
this.invalidPhoneNumbers.add(this.answers.phoneNumber);
|
|
201
|
+
delete this.answers.phoneNumber;
|
|
202
|
+
}
|
|
203
|
+
promise = this.askPhoneNumber()
|
|
204
|
+
.then(function (phoneNumber) { return _this.airgram.api.setAuthenticationPhoneNumber({ phoneNumber: phoneNumber }); });
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case 'PHONE_CODE_EMPTY':
|
|
208
|
+
case 'PHONE_CODE_EXPIRED':
|
|
209
|
+
case 'PHONE_CODE_INVALID': {
|
|
210
|
+
if (this.attempt < this.maxAttempts) {
|
|
211
|
+
this.attempt += 1;
|
|
212
|
+
promise = this.sendCode();
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
return [2 /*return*/, this.fatalError(new Error('Exceeded the limit of failed attempts'))];
|
|
216
|
+
}
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
case 'PASSWORD_HASH_INVALID': {
|
|
220
|
+
if (this.attempt < this.maxAttempts) {
|
|
221
|
+
this.attempt += 1;
|
|
222
|
+
promise = this.checkAuthenticationPassword();
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
return [2 /*return*/, this.fatalError(new Error('Exceeded the limit of failed attempts'))];
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
default: {
|
|
230
|
+
return [2 /*return*/, false];
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return [2 /*return*/, promise
|
|
234
|
+
? promise.then(function (_a) {
|
|
235
|
+
var response = _a.response;
|
|
236
|
+
if (core_1.isError(response)) {
|
|
237
|
+
_this.handleError(response);
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
return true;
|
|
241
|
+
}).catch(function (error) { return _this.fatalError(error); })
|
|
242
|
+
: true];
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
Auth.prototype.handleUpdateState = function (_a) {
|
|
247
|
+
var authorizationState = _a.authorizationState;
|
|
248
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
249
|
+
var promise, _b, token;
|
|
250
|
+
var _this = this;
|
|
251
|
+
return __generator(this, function (_c) {
|
|
252
|
+
switch (_c.label) {
|
|
253
|
+
case 0:
|
|
254
|
+
this.attempt = 0;
|
|
255
|
+
this.authState = authorizationState;
|
|
256
|
+
promise = null;
|
|
257
|
+
_b = authorizationState._;
|
|
258
|
+
switch (_b) {
|
|
259
|
+
case constants_1.AUTHORIZATION_STATE.authorizationStateWaitPhoneNumber: return [3 /*break*/, 1];
|
|
260
|
+
case constants_1.AUTHORIZATION_STATE.authorizationStateWaitCode: return [3 /*break*/, 5];
|
|
261
|
+
case constants_1.AUTHORIZATION_STATE.authorizationStateWaitRegistration: return [3 /*break*/, 6];
|
|
262
|
+
case constants_1.AUTHORIZATION_STATE.authorizationStateWaitPassword: return [3 /*break*/, 7];
|
|
263
|
+
case constants_1.AUTHORIZATION_STATE.authorizationStateReady: return [3 /*break*/, 8];
|
|
264
|
+
}
|
|
265
|
+
return [3 /*break*/, 11];
|
|
266
|
+
case 1:
|
|
267
|
+
if (!this.isBot) return [3 /*break*/, 3];
|
|
268
|
+
return [4 /*yield*/, this.ask('token')];
|
|
269
|
+
case 2:
|
|
270
|
+
token = _c.sent();
|
|
271
|
+
promise = this.airgram.api.checkAuthenticationBotToken({ token: token });
|
|
272
|
+
return [3 /*break*/, 4];
|
|
273
|
+
case 3:
|
|
274
|
+
promise = this.askPhoneNumber().then(function (phoneNumber) { return _this.airgram.api.setAuthenticationPhoneNumber({
|
|
275
|
+
phoneNumber: phoneNumber
|
|
276
|
+
}); });
|
|
277
|
+
_c.label = 4;
|
|
278
|
+
case 4: return [3 /*break*/, 12];
|
|
279
|
+
case 5:
|
|
280
|
+
{
|
|
281
|
+
promise = this.sendCode();
|
|
282
|
+
return [3 /*break*/, 12];
|
|
283
|
+
}
|
|
284
|
+
_c.label = 6;
|
|
285
|
+
case 6:
|
|
286
|
+
{
|
|
287
|
+
promise = this.registerUser();
|
|
288
|
+
return [3 /*break*/, 12];
|
|
289
|
+
}
|
|
290
|
+
_c.label = 7;
|
|
291
|
+
case 7:
|
|
292
|
+
{
|
|
293
|
+
promise = this.checkAuthenticationPassword();
|
|
294
|
+
return [3 /*break*/, 12];
|
|
295
|
+
}
|
|
296
|
+
_c.label = 8;
|
|
297
|
+
case 8:
|
|
298
|
+
if (!this.deferred) return [3 /*break*/, 10];
|
|
299
|
+
return [4 /*yield*/, this.deferred.resolve()];
|
|
300
|
+
case 9:
|
|
301
|
+
_c.sent();
|
|
302
|
+
this.deferred = null;
|
|
303
|
+
_c.label = 10;
|
|
304
|
+
case 10: return [3 /*break*/, 12];
|
|
305
|
+
case 11:
|
|
306
|
+
{
|
|
307
|
+
return [2 /*return*/, false];
|
|
308
|
+
}
|
|
309
|
+
_c.label = 12;
|
|
310
|
+
case 12: return [2 /*return*/, promise
|
|
311
|
+
? promise.then(function (_a) {
|
|
312
|
+
var response = _a.response;
|
|
313
|
+
if (core_1.isError(response)) {
|
|
314
|
+
_this.handleError(response);
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
return true;
|
|
318
|
+
}).catch(function (error) { return _this.fatalError(error); })
|
|
319
|
+
: true];
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
});
|
|
323
|
+
};
|
|
324
|
+
Auth.prototype.login = function () {
|
|
325
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
326
|
+
var deferred_1, authState;
|
|
327
|
+
return __generator(this, function (_a) {
|
|
328
|
+
switch (_a.label) {
|
|
329
|
+
case 0:
|
|
330
|
+
if (!!this.deferred) return [3 /*break*/, 2];
|
|
331
|
+
deferred_1 = {};
|
|
332
|
+
deferred_1.promise = new Promise(function (resolve, reject) {
|
|
333
|
+
deferred_1.resolve = resolve;
|
|
334
|
+
deferred_1.reject = reject;
|
|
335
|
+
});
|
|
336
|
+
this.deferred = deferred_1;
|
|
337
|
+
if (!!this.authState) return [3 /*break*/, 2];
|
|
338
|
+
return [4 /*yield*/, this.airgram.api.getAuthorizationState()];
|
|
339
|
+
case 1:
|
|
340
|
+
authState = (_a.sent()).response;
|
|
341
|
+
this.authState = authState || null;
|
|
342
|
+
_a.label = 2;
|
|
343
|
+
case 2: return [2 /*return*/, Promise.resolve(this.deferred ? this.deferred.promise : undefined)];
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
});
|
|
347
|
+
};
|
|
348
|
+
Auth.prototype.registerUser = function () {
|
|
349
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
350
|
+
var firstName, _a, _b, _c;
|
|
351
|
+
return __generator(this, function (_d) {
|
|
352
|
+
switch (_d.label) {
|
|
353
|
+
case 0: return [4 /*yield*/, this.ask('firstName')];
|
|
354
|
+
case 1:
|
|
355
|
+
firstName = _d.sent();
|
|
356
|
+
if (!firstName) {
|
|
357
|
+
throw new Error('First name can not be empty.');
|
|
358
|
+
}
|
|
359
|
+
_b = (_a = this.airgram.api).registerUser;
|
|
360
|
+
_c = {
|
|
361
|
+
firstName: firstName
|
|
362
|
+
};
|
|
363
|
+
return [4 /*yield*/, this.ask('lastName')];
|
|
364
|
+
case 2: return [2 /*return*/, _b.apply(_a, [(_c.lastName = (_d.sent()) || undefined,
|
|
365
|
+
_c)])];
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
});
|
|
369
|
+
};
|
|
370
|
+
Auth.prototype.sendCode = function () {
|
|
371
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
372
|
+
var code;
|
|
373
|
+
return __generator(this, function (_a) {
|
|
374
|
+
switch (_a.label) {
|
|
375
|
+
case 0: return [4 /*yield*/, this.ask('code')];
|
|
376
|
+
case 1:
|
|
377
|
+
code = _a.sent();
|
|
378
|
+
if (!code || !/^\d+$/.test(code)) {
|
|
379
|
+
throw new Error('Invalid authorization code');
|
|
380
|
+
}
|
|
381
|
+
return [2 /*return*/, this.airgram.api.checkAuthenticationCode({
|
|
382
|
+
code: code
|
|
383
|
+
})];
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
};
|
|
388
|
+
return Auth;
|
|
389
|
+
}());
|
|
390
|
+
exports.Auth = Auth;
|
|
391
|
+
//# sourceMappingURL=Auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/components/Auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TdObject } from '@airgram/core';
|
|
2
|
+
import { NativeTdObject, UpdateHandlerFn } from '../types';
|
|
3
|
+
export declare abstract class BaseJsonClient {
|
|
4
|
+
readonly command?: string;
|
|
5
|
+
abstract addUpdateHandler(clientId: number, fn: UpdateHandlerFn): void;
|
|
6
|
+
abstract catch(handler: (error: Error) => void): void;
|
|
7
|
+
abstract create(): number;
|
|
8
|
+
abstract destroy(): void;
|
|
9
|
+
abstract execute(query: TdObject): NativeTdObject;
|
|
10
|
+
abstract pause(): void;
|
|
11
|
+
abstract removeUpdateHandler(clientId: number): void;
|
|
12
|
+
abstract resume(): void;
|
|
13
|
+
abstract send(clientId: number, id: string, request: TdObject, resolve: UpdateHandlerFn): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseJsonClient = void 0;
|
|
4
|
+
var BaseJsonClient = /** @class */ (function () {
|
|
5
|
+
function BaseJsonClient() {
|
|
6
|
+
}
|
|
7
|
+
return BaseJsonClient;
|
|
8
|
+
}());
|
|
9
|
+
exports.BaseJsonClient = BaseJsonClient;
|
|
10
|
+
//# sourceMappingURL=BaseJsonClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseJsonClient.js","sourceRoot":"","sources":["../../src/components/BaseJsonClient.ts"],"names":[],"mappings":";;;AAGA;IAAA;IAyBA,CAAC;IAAD,qBAAC;AAAD,CAAC,AAzBD,IAyBC;AAzBqB,wCAAc"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TdObject } from '@airgram/core';
|
|
2
|
+
import { NativeTdObject, UpdateHandlerFn } from '../types';
|
|
3
|
+
import { BaseJsonClient } from './BaseJsonClient';
|
|
4
|
+
export declare class FakeJsonClient extends BaseJsonClient {
|
|
5
|
+
readonly command?: string;
|
|
6
|
+
private readonly deserialize;
|
|
7
|
+
private destroyed;
|
|
8
|
+
private handleError;
|
|
9
|
+
private readonly pending;
|
|
10
|
+
private sleepPromise;
|
|
11
|
+
private stack;
|
|
12
|
+
private readonly updateHandlers;
|
|
13
|
+
private log;
|
|
14
|
+
private logSize;
|
|
15
|
+
private wakeup;
|
|
16
|
+
constructor(filename: string);
|
|
17
|
+
addUpdateHandler(clientId: number, fn: UpdateHandlerFn): void;
|
|
18
|
+
catch(handler: (error: Error) => void): void;
|
|
19
|
+
create(): number;
|
|
20
|
+
destroy(): void;
|
|
21
|
+
execute(query: TdObject): NativeTdObject;
|
|
22
|
+
pause(): void;
|
|
23
|
+
removeUpdateHandler(clientId: number): void;
|
|
24
|
+
resume(): void;
|
|
25
|
+
send(clientId: number, id: string, request: TdObject, resolve: UpdateHandlerFn): void;
|
|
26
|
+
private addToStack;
|
|
27
|
+
private getClientHandlers;
|
|
28
|
+
private getClientStack;
|
|
29
|
+
private handleResponse;
|
|
30
|
+
private handleUpdate;
|
|
31
|
+
private loop;
|
|
32
|
+
private onReceive;
|
|
33
|
+
private parseResponse;
|
|
34
|
+
private receive;
|
|
35
|
+
}
|