@portkey/socket 0.0.2-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +54 -0
- package/dist/commonjs/didSignalr.d.ts +16 -0
- package/dist/commonjs/didSignalr.js +51 -0
- package/dist/commonjs/index.d.ts +4 -0
- package/dist/commonjs/index.js +20 -0
- package/dist/commonjs/package.json +1 -0
- package/dist/commonjs/sellSignalr.d.ts +21 -0
- package/dist/commonjs/sellSignalr.js +66 -0
- package/dist/commonjs/signalr.d.ts +24 -0
- package/dist/commonjs/signalr.js +87 -0
- package/dist/commonjs/types/did.d.ts +36 -0
- package/dist/commonjs/types/did.js +9 -0
- package/dist/commonjs/types/index.d.ts +3 -0
- package/dist/commonjs/types/index.js +19 -0
- package/dist/commonjs/types/sell.d.ts +34 -0
- package/dist/commonjs/types/sell.js +24 -0
- package/dist/commonjs/types/signalr.d.ts +35 -0
- package/dist/commonjs/types/signalr.js +7 -0
- package/dist/esm/didSignalr.d.ts +16 -0
- package/dist/esm/didSignalr.js +47 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/sellSignalr.d.ts +21 -0
- package/dist/esm/sellSignalr.js +62 -0
- package/dist/esm/signalr.d.ts +24 -0
- package/dist/esm/signalr.js +83 -0
- package/dist/esm/types/did.d.ts +36 -0
- package/dist/esm/types/did.js +6 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/sell.d.ts +34 -0
- package/dist/esm/types/sell.js +21 -0
- package/dist/esm/types/signalr.d.ts +35 -0
- package/dist/esm/types/signalr.js +4 -0
- package/dist/types/didSignalr.d.ts +17 -0
- package/dist/types/didSignalr.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/sellSignalr.d.ts +22 -0
- package/dist/types/sellSignalr.d.ts.map +1 -0
- package/dist/types/signalr.d.ts +25 -0
- package/dist/types/signalr.d.ts.map +1 -0
- package/dist/types/types/did.d.ts +37 -0
- package/dist/types/types/did.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/sell.d.ts +35 -0
- package/dist/types/types/sell.d.ts.map +1 -0
- package/dist/types/types/signalr.d.ts +36 -0
- package/dist/types/types/signalr.d.ts.map +1 -0
- package/package.json +50 -0
package/README.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# `@portkey/socket`
|
2
|
+
|
3
|
+

|
4
|
+

|
5
|
+
[![NPM Package Version][npm-image-version]][npm-url]
|
6
|
+
|
7
|
+
|
8
|
+
It is already possible to follow [the standard abp tutorial](https://docs.abp.io/en/abp/latest/SignalR-Integration) to add [SignalR](https://docs.abp.io/en/abp/latest/SignalR-Integration) to your application. However, Portkey provides SignalR integration packages those simplify the integration and usage.
|
9
|
+
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
### Using NPM
|
14
|
+
|
15
|
+
```bash
|
16
|
+
npm install @portkey/socket
|
17
|
+
```
|
18
|
+
|
19
|
+
### Using Yarn
|
20
|
+
|
21
|
+
```bash
|
22
|
+
yarn add @portkey/socket
|
23
|
+
```
|
24
|
+
|
25
|
+
## Prerequisites
|
26
|
+
|
27
|
+
- :gear: [NodeJS](https://nodejs.org/) (LTS/Fermium)
|
28
|
+
- :toolbox: [Yarn](https://yarnpkg.com/)/[Lerna](https://lerna.js.org/)
|
29
|
+
|
30
|
+
## Package.json Scripts
|
31
|
+
|
32
|
+
| Script | Description |
|
33
|
+
| -------- | -------------------------------------------------- |
|
34
|
+
| clean | Uses `rm` to remove `dist/` |
|
35
|
+
| build | Uses `tsc` to build package and dependent packages |
|
36
|
+
| lint | Uses `eslint` to lint package |
|
37
|
+
| lint:fix | Uses `eslint` to check and fix any warnings |
|
38
|
+
| format | Uses `prettier` to format the code |
|
39
|
+
|
40
|
+
# Basic Usage
|
41
|
+
|
42
|
+
```typescript
|
43
|
+
import { DIDSignalr } from '@portkey/socket'
|
44
|
+
|
45
|
+
// new signalr instance
|
46
|
+
const didSignalr = new DIDSignalr();
|
47
|
+
// open link
|
48
|
+
didSignalr.doOpen({ url: 'your did signalr url', clientId: 'your clientId' });
|
49
|
+
// Scan code feedback
|
50
|
+
didSignalr.onScanLogin(({ body }) => console.log(body));
|
51
|
+
```
|
52
|
+
|
53
|
+
[npm-image-version]: https://img.shields.io/npm/v/@portkey/socket
|
54
|
+
[npm-url]: https://npmjs.org/package/@portkey/socket
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { BaseSignalr } from './signalr';
|
2
|
+
import { BaseSocketMessage, ISignalrOptions, CaAccountRecoverResult, CaAccountRegisterResult, DefaultDIDListenListType, IDIDSignalr } from './types';
|
3
|
+
export declare class DIDSignalr<T extends DefaultDIDListenListType = DefaultDIDListenListType> extends BaseSignalr<T> implements IDIDSignalr<T> {
|
4
|
+
constructor(options?: ISignalrOptions<T>);
|
5
|
+
Ack(clientId: string, requestId: string): void;
|
6
|
+
onCaAccountRegister({ clientId, requestId }: {
|
7
|
+
clientId: string;
|
8
|
+
requestId: string;
|
9
|
+
}, callback: (data: CaAccountRegisterResult) => void): import("./types").IListen;
|
10
|
+
onCaAccountRecover({ clientId, requestId }: {
|
11
|
+
clientId: string;
|
12
|
+
requestId: string;
|
13
|
+
}, callback: (data: CaAccountRecoverResult) => void): import("./types").IListen;
|
14
|
+
onScanLoginSuccess(callback: (data: BaseSocketMessage) => void): import("./types").IListen;
|
15
|
+
onScanLogin(callback: (data: BaseSocketMessage) => void): import("./types").IListen;
|
16
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DIDSignalr = void 0;
|
4
|
+
const signalr_1 = require("./signalr");
|
5
|
+
const types_1 = require("./types");
|
6
|
+
class DIDSignalr extends signalr_1.BaseSignalr {
|
7
|
+
constructor(options) {
|
8
|
+
const { listenList = types_1.DefaultDIDListenList } = options || {};
|
9
|
+
super({ listenList });
|
10
|
+
}
|
11
|
+
Ack(clientId, requestId) {
|
12
|
+
this.invoke('Ack', clientId, requestId);
|
13
|
+
}
|
14
|
+
onCaAccountRegister({ clientId, requestId }, callback) {
|
15
|
+
return this.listen('caAccountRegister', (data) => {
|
16
|
+
if (data.requestId === requestId) {
|
17
|
+
if (data.body.registerStatus !== 'pending') {
|
18
|
+
this.Ack(clientId, requestId);
|
19
|
+
}
|
20
|
+
callback(data);
|
21
|
+
}
|
22
|
+
});
|
23
|
+
}
|
24
|
+
onCaAccountRecover({ clientId, requestId }, callback) {
|
25
|
+
return this.listen('caAccountRecover', (data) => {
|
26
|
+
if (data.requestId === requestId) {
|
27
|
+
if (data.body.recoveryStatus !== 'pending') {
|
28
|
+
this.Ack(clientId, requestId);
|
29
|
+
}
|
30
|
+
callback(data);
|
31
|
+
}
|
32
|
+
});
|
33
|
+
}
|
34
|
+
onScanLoginSuccess(callback) {
|
35
|
+
return this.listen('onScanLoginSuccess', (data) => {
|
36
|
+
if (typeof (data === null || data === void 0 ? void 0 : data.body) === 'string') {
|
37
|
+
callback(data);
|
38
|
+
this.stop();
|
39
|
+
}
|
40
|
+
});
|
41
|
+
}
|
42
|
+
onScanLogin(callback) {
|
43
|
+
return this.listen('onScanLogin', (data) => {
|
44
|
+
if (typeof (data === null || data === void 0 ? void 0 : data.body) === 'string') {
|
45
|
+
callback(data);
|
46
|
+
this.stop();
|
47
|
+
}
|
48
|
+
});
|
49
|
+
}
|
50
|
+
}
|
51
|
+
exports.DIDSignalr = DIDSignalr;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./didSignalr"), exports);
|
18
|
+
__exportStar(require("./signalr"), exports);
|
19
|
+
__exportStar(require("./sellSignalr"), exports);
|
20
|
+
__exportStar(require("./types"), exports);
|
@@ -0,0 +1 @@
|
|
1
|
+
{"type": "commonjs"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { BaseSignalr } from './signalr';
|
2
|
+
import { AchTxAddressReceivedType, NFTOrderChangedData, RequestOrderTransferredType } from './types/sell';
|
3
|
+
export declare class SignalrSell extends BaseSignalr {
|
4
|
+
requestAchTxAddress(clientId: string, orderId: string): Promise<any>;
|
5
|
+
onAchTxAddressReceived({ orderId }: {
|
6
|
+
clientId: string;
|
7
|
+
orderId: string;
|
8
|
+
}, callback: (data: AchTxAddressReceivedType | null) => void): import("./types").IListen;
|
9
|
+
requestOrderTransferred(clientId: string, orderId: string): Promise<any>;
|
10
|
+
onRequestOrderTransferred({ orderId }: {
|
11
|
+
clientId: string;
|
12
|
+
orderId: string;
|
13
|
+
}, callback: (data: RequestOrderTransferredType | null) => void): import("./types").IListen;
|
14
|
+
requestNFTOrderStatus(clientId: string, orderId: string): Promise<any>;
|
15
|
+
OnNFTOrderChanged({ orderId }: {
|
16
|
+
clientId: string;
|
17
|
+
orderId: string;
|
18
|
+
}, callback: (data: NFTOrderChangedData | null) => void): import("./types").IListen;
|
19
|
+
}
|
20
|
+
export declare const sellListenList: readonly ["onAchTxAddressReceived", "onOrderTransferredReceived", "OnNFTOrderChanged"];
|
21
|
+
export declare const signalrSell: BaseSignalr<readonly ["onAchTxAddressReceived", "onOrderTransferredReceived", "OnNFTOrderChanged"]> & SignalrSell;
|
@@ -0,0 +1,66 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.signalrSell = exports.sellListenList = exports.SignalrSell = void 0;
|
4
|
+
const signalr_1 = require("./signalr");
|
5
|
+
class SignalrSell extends signalr_1.BaseSignalr {
|
6
|
+
requestAchTxAddress(clientId, orderId) {
|
7
|
+
console.log('invoke RequestAchTxAddress', clientId, orderId);
|
8
|
+
return this.invoke('RequestAchTxAddress', {
|
9
|
+
TargetClientId: clientId,
|
10
|
+
OrderId: orderId,
|
11
|
+
});
|
12
|
+
}
|
13
|
+
onAchTxAddressReceived({ orderId }, callback) {
|
14
|
+
return this.listen('onAchTxAddressReceived', (data) => {
|
15
|
+
var _a;
|
16
|
+
if (((_a = data === null || data === void 0 ? void 0 : data.body) === null || _a === void 0 ? void 0 : _a.orderId) === orderId) {
|
17
|
+
callback(data.body);
|
18
|
+
}
|
19
|
+
else {
|
20
|
+
callback(null);
|
21
|
+
}
|
22
|
+
});
|
23
|
+
}
|
24
|
+
requestOrderTransferred(clientId, orderId) {
|
25
|
+
console.log('invoke RequestOrderTransferred', clientId, orderId);
|
26
|
+
return this.invoke('RequestOrderTransferred', {
|
27
|
+
TargetClientId: clientId,
|
28
|
+
OrderId: orderId,
|
29
|
+
});
|
30
|
+
}
|
31
|
+
onRequestOrderTransferred({ orderId }, callback) {
|
32
|
+
return this.listen('onOrderTransferredReceived', (data) => {
|
33
|
+
var _a;
|
34
|
+
if (((_a = data === null || data === void 0 ? void 0 : data.body) === null || _a === void 0 ? void 0 : _a.orderId) === orderId) {
|
35
|
+
callback(data.body);
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
callback(null);
|
39
|
+
}
|
40
|
+
});
|
41
|
+
}
|
42
|
+
requestNFTOrderStatus(clientId, orderId) {
|
43
|
+
console.log('invoke RequestNFTOrderStatus', clientId, orderId);
|
44
|
+
return this.invoke('RequestNFTOrderStatus', {
|
45
|
+
targetClientId: clientId,
|
46
|
+
orderId: orderId,
|
47
|
+
});
|
48
|
+
}
|
49
|
+
OnNFTOrderChanged({ orderId }, callback) {
|
50
|
+
return this.listen('OnNFTOrderChanged', (data) => {
|
51
|
+
var _a;
|
52
|
+
console.log('OnNFTOrderChanged:', data, orderId);
|
53
|
+
if (((_a = data === null || data === void 0 ? void 0 : data.body) === null || _a === void 0 ? void 0 : _a.orderId) === orderId) {
|
54
|
+
callback(data.body);
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
callback(null);
|
58
|
+
}
|
59
|
+
});
|
60
|
+
}
|
61
|
+
}
|
62
|
+
exports.SignalrSell = SignalrSell;
|
63
|
+
exports.sellListenList = ['onAchTxAddressReceived', 'onOrderTransferredReceived', 'OnNFTOrderChanged'];
|
64
|
+
exports.signalrSell = new SignalrSell({
|
65
|
+
listenList: exports.sellListenList,
|
66
|
+
});
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { HubConnection } from '@microsoft/signalr';
|
2
|
+
import { IListen, ISignalr, ISignalrOptions } from './types';
|
3
|
+
export declare class BaseSignalr<ListenList = any> implements ISignalr<ListenList> {
|
4
|
+
url?: string;
|
5
|
+
signalr: HubConnection | null;
|
6
|
+
connectionId: string;
|
7
|
+
private _messageMap;
|
8
|
+
private _listenList;
|
9
|
+
constructor({ listenList }: ISignalrOptions<ListenList>);
|
10
|
+
doOpen: ({ url, clientId }: {
|
11
|
+
url: string;
|
12
|
+
clientId: string;
|
13
|
+
}) => Promise<HubConnection>;
|
14
|
+
listen: (name: ListenList[keyof ListenList], handler: (data?: any) => void) => IListen;
|
15
|
+
start: HubConnection['start'];
|
16
|
+
on: HubConnection['on'];
|
17
|
+
invoke: HubConnection['invoke'];
|
18
|
+
onClose: HubConnection['onclose'];
|
19
|
+
stop: HubConnection['stop'];
|
20
|
+
destroy: HubConnection['stop'];
|
21
|
+
private _listener;
|
22
|
+
private _onReceiver;
|
23
|
+
private _checkSignalr;
|
24
|
+
}
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.BaseSignalr = void 0;
|
13
|
+
const signalr_1 = require("@microsoft/signalr");
|
14
|
+
const utils_1 = require("@portkey/utils");
|
15
|
+
const types_1 = require("./types");
|
16
|
+
class BaseSignalr {
|
17
|
+
constructor({ listenList }) {
|
18
|
+
this.doOpen = ({ url, clientId }) => __awaiter(this, void 0, void 0, function* () {
|
19
|
+
var _a;
|
20
|
+
const signalr = new signalr_1.HubConnectionBuilder().withUrl(url).withAutomaticReconnect().build();
|
21
|
+
this._listener(signalr);
|
22
|
+
if (this.signalr)
|
23
|
+
yield this.signalr.stop();
|
24
|
+
yield signalr.start();
|
25
|
+
yield signalr.invoke('Connect', clientId);
|
26
|
+
this.connectionId = (_a = signalr.connectionId) !== null && _a !== void 0 ? _a : '';
|
27
|
+
this.signalr = signalr;
|
28
|
+
this.url = url;
|
29
|
+
return signalr;
|
30
|
+
});
|
31
|
+
this.listen = (name, handler) => {
|
32
|
+
const key = (0, utils_1.randomId)();
|
33
|
+
let _name = name;
|
34
|
+
if (!this._messageMap[_name])
|
35
|
+
this._messageMap[_name] = {};
|
36
|
+
this._messageMap[_name][key] = handler;
|
37
|
+
return {
|
38
|
+
remove: () => {
|
39
|
+
delete this._messageMap[_name][key];
|
40
|
+
},
|
41
|
+
};
|
42
|
+
};
|
43
|
+
this.start = (...args) => {
|
44
|
+
return this._checkSignalr().start(...args);
|
45
|
+
};
|
46
|
+
this.on = (...args) => {
|
47
|
+
return this._checkSignalr().on(...args);
|
48
|
+
};
|
49
|
+
this.invoke = (...args) => {
|
50
|
+
return this._checkSignalr().invoke(...args);
|
51
|
+
};
|
52
|
+
this.onClose = (...args) => {
|
53
|
+
return this._checkSignalr().onclose(...args);
|
54
|
+
};
|
55
|
+
this.stop = (...args) => {
|
56
|
+
return this._checkSignalr().stop(...args);
|
57
|
+
};
|
58
|
+
this.destroy = () => {
|
59
|
+
this._messageMap = {};
|
60
|
+
return this._checkSignalr().stop();
|
61
|
+
};
|
62
|
+
this.connectionId = '';
|
63
|
+
this._messageMap = {};
|
64
|
+
this.signalr = null;
|
65
|
+
this._listenList = listenList;
|
66
|
+
}
|
67
|
+
_listener(signalr) {
|
68
|
+
this._listenList.forEach(listenType => {
|
69
|
+
signalr.on(listenType, (data) => {
|
70
|
+
this._onReceiver({ Event: listenType, Data: data });
|
71
|
+
});
|
72
|
+
});
|
73
|
+
}
|
74
|
+
_onReceiver(data) {
|
75
|
+
const callback = this._messageMap[data.Event];
|
76
|
+
callback &&
|
77
|
+
Object.values(callback).forEach(handler => {
|
78
|
+
handler(data.Data);
|
79
|
+
});
|
80
|
+
}
|
81
|
+
_checkSignalr() {
|
82
|
+
if (!this.signalr)
|
83
|
+
throw types_1.SocketError.notConnect;
|
84
|
+
return this.signalr;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
exports.BaseSignalr = BaseSignalr;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { BaseSocketMessage, IListen, ISignalr } from './signalr';
|
2
|
+
export declare const DefaultDIDListenList: readonly ["caAccountRegister", "caAccountRecover", "onScanLoginSuccess", "onScanLogin"];
|
3
|
+
export type DefaultDIDListenListType = typeof DefaultDIDListenList;
|
4
|
+
export type RegisterStatus = 'pass' | 'pending' | 'fail' | null;
|
5
|
+
export interface RegisterBody {
|
6
|
+
caAddress: string;
|
7
|
+
caHash: string;
|
8
|
+
registerMessage: null | string;
|
9
|
+
registerStatus: RegisterStatus;
|
10
|
+
}
|
11
|
+
export interface RecoverBody {
|
12
|
+
caAddress: string;
|
13
|
+
caHash: string;
|
14
|
+
recoveryMessage: null | string;
|
15
|
+
recoveryStatus: RegisterStatus;
|
16
|
+
}
|
17
|
+
export interface CaAccountRegisterResult {
|
18
|
+
requestId: string;
|
19
|
+
body: RegisterBody;
|
20
|
+
}
|
21
|
+
export interface CaAccountRecoverResult {
|
22
|
+
requestId: string;
|
23
|
+
body: RecoverBody;
|
24
|
+
}
|
25
|
+
export interface IDIDSignalr<T> extends ISignalr<T> {
|
26
|
+
onCaAccountRegister({ clientId, requestId }: {
|
27
|
+
clientId: string;
|
28
|
+
requestId: string;
|
29
|
+
}, callback: (data: CaAccountRegisterResult) => void): IListen;
|
30
|
+
onCaAccountRecover({ clientId, requestId }: {
|
31
|
+
clientId: string;
|
32
|
+
requestId: string;
|
33
|
+
}, callback: (data: CaAccountRecoverResult) => void): IListen;
|
34
|
+
onScanLoginSuccess(callback: (data: BaseSocketMessage) => void): IListen;
|
35
|
+
onScanLogin(callback: (data: BaseSocketMessage) => void): IListen;
|
36
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./did"), exports);
|
18
|
+
__exportStar(require("./signalr"), exports);
|
19
|
+
__exportStar(require("./sell"), exports);
|
@@ -0,0 +1,34 @@
|
|
1
|
+
export type PaymentMerchantType = 'Alchemy';
|
2
|
+
export interface AchTxAddressReceivedType {
|
3
|
+
merchantName: PaymentMerchantType;
|
4
|
+
orderId: string;
|
5
|
+
crypto: string;
|
6
|
+
network: string;
|
7
|
+
cryptoAmount: string;
|
8
|
+
address: string;
|
9
|
+
}
|
10
|
+
export interface RequestOrderTransferredType extends AchTxAddressReceivedType {
|
11
|
+
status: 'Transferred' | 'TransferFailed';
|
12
|
+
}
|
13
|
+
export type TransDirectType = 'TokenBuy' | 'TokenSell' | 'NFTBuy' | 'NFTSell';
|
14
|
+
export declare enum OrderStatusEnum {
|
15
|
+
Initialized = "Initialized",
|
16
|
+
Created = "Created",
|
17
|
+
Pending = "Pending",
|
18
|
+
StartTransfer = "StartTransfer",
|
19
|
+
Transferring = "Transferring",
|
20
|
+
Transferred = "Transferred",
|
21
|
+
TransferFailed = "TransferFailed",
|
22
|
+
Failed = "Failed",
|
23
|
+
Finish = "Finish"
|
24
|
+
}
|
25
|
+
export interface NFTOrderChangedData {
|
26
|
+
orderId: string;
|
27
|
+
merchantName: string;
|
28
|
+
address: string;
|
29
|
+
network: string;
|
30
|
+
crypto: string;
|
31
|
+
cryptoAmount: string;
|
32
|
+
status: `${OrderStatusEnum}`;
|
33
|
+
transDirect: 'NFTBuy';
|
34
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.OrderStatusEnum = void 0;
|
4
|
+
var OrderStatusEnum;
|
5
|
+
(function (OrderStatusEnum) {
|
6
|
+
// The order is initialized, and no callback from the payment supplier is received at this time.
|
7
|
+
OrderStatusEnum["Initialized"] = "Initialized";
|
8
|
+
// The supplier calls back a new order and the user has not paid successfully. When the front end jumps back to Portkey, this is the most likely state.
|
9
|
+
OrderStatusEnum["Created"] = "Created";
|
10
|
+
// Order payment successful
|
11
|
+
OrderStatusEnum["Pending"] = "Pending";
|
12
|
+
// Start settling ELF with merchants
|
13
|
+
OrderStatusEnum["StartTransfer"] = "StartTransfer";
|
14
|
+
// The transfer transaction has been sent, but the transaction has not been packaged yet
|
15
|
+
OrderStatusEnum["Transferring"] = "Transferring";
|
16
|
+
// The transaction has been packaged and is waiting for LIB (the transaction is in Mined status)
|
17
|
+
OrderStatusEnum["Transferred"] = "Transferred";
|
18
|
+
// Transfer transaction failed, ready to try again (When the Pending status is waiting for packaging, other statuses other than Mined are queried)
|
19
|
+
OrderStatusEnum["TransferFailed"] = "TransferFailed";
|
20
|
+
// User payment failed
|
21
|
+
OrderStatusEnum["Failed"] = "Failed";
|
22
|
+
// LIB confirmed
|
23
|
+
OrderStatusEnum["Finish"] = "Finish";
|
24
|
+
})(OrderStatusEnum = exports.OrderStatusEnum || (exports.OrderStatusEnum = {}));
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { HubConnection } from '@microsoft/signalr';
|
2
|
+
export interface ISignalrOptions<T> {
|
3
|
+
listenList: T;
|
4
|
+
}
|
5
|
+
export interface IMessageMap {
|
6
|
+
[eventName: string]: {
|
7
|
+
[key: string]: (data?: any) => void;
|
8
|
+
};
|
9
|
+
}
|
10
|
+
export interface Receive {
|
11
|
+
Event: string;
|
12
|
+
Data?: any;
|
13
|
+
}
|
14
|
+
export declare enum SocketError {
|
15
|
+
notConnect = "Signalr is null, please doOpen"
|
16
|
+
}
|
17
|
+
export type BaseSocketMessage = {
|
18
|
+
body: string;
|
19
|
+
};
|
20
|
+
export interface IListen {
|
21
|
+
remove(): void;
|
22
|
+
}
|
23
|
+
export interface ISignalr<T> {
|
24
|
+
doOpen: ({ url, clientId }: {
|
25
|
+
url: string;
|
26
|
+
clientId: string;
|
27
|
+
}) => Promise<HubConnection>;
|
28
|
+
listen: (name: T[keyof T], handler: (data?: any) => void) => IListen;
|
29
|
+
start: HubConnection['start'];
|
30
|
+
invoke: HubConnection['invoke'];
|
31
|
+
onClose: HubConnection['onclose'];
|
32
|
+
stop: HubConnection['stop'];
|
33
|
+
on: HubConnection['on'];
|
34
|
+
destroy: HubConnection['stop'];
|
35
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.SocketError = void 0;
|
4
|
+
var SocketError;
|
5
|
+
(function (SocketError) {
|
6
|
+
SocketError["notConnect"] = "Signalr is null, please doOpen";
|
7
|
+
})(SocketError = exports.SocketError || (exports.SocketError = {}));
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { BaseSignalr } from './signalr.js';
|
2
|
+
import { BaseSocketMessage, ISignalrOptions, CaAccountRecoverResult, CaAccountRegisterResult, DefaultDIDListenListType, IDIDSignalr } from './types/index.js';
|
3
|
+
export declare class DIDSignalr<T extends DefaultDIDListenListType = DefaultDIDListenListType> extends BaseSignalr<T> implements IDIDSignalr<T> {
|
4
|
+
constructor(options?: ISignalrOptions<T>);
|
5
|
+
Ack(clientId: string, requestId: string): void;
|
6
|
+
onCaAccountRegister({ clientId, requestId }: {
|
7
|
+
clientId: string;
|
8
|
+
requestId: string;
|
9
|
+
}, callback: (data: CaAccountRegisterResult) => void): import("./types").IListen;
|
10
|
+
onCaAccountRecover({ clientId, requestId }: {
|
11
|
+
clientId: string;
|
12
|
+
requestId: string;
|
13
|
+
}, callback: (data: CaAccountRecoverResult) => void): import("./types").IListen;
|
14
|
+
onScanLoginSuccess(callback: (data: BaseSocketMessage) => void): import("./types").IListen;
|
15
|
+
onScanLogin(callback: (data: BaseSocketMessage) => void): import("./types").IListen;
|
16
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { BaseSignalr } from './signalr.js';
|
2
|
+
import { DefaultDIDListenList, } from './types/index.js';
|
3
|
+
export class DIDSignalr extends BaseSignalr {
|
4
|
+
constructor(options) {
|
5
|
+
const { listenList = DefaultDIDListenList } = options || {};
|
6
|
+
super({ listenList });
|
7
|
+
}
|
8
|
+
Ack(clientId, requestId) {
|
9
|
+
this.invoke('Ack', clientId, requestId);
|
10
|
+
}
|
11
|
+
onCaAccountRegister({ clientId, requestId }, callback) {
|
12
|
+
return this.listen('caAccountRegister', (data) => {
|
13
|
+
if (data.requestId === requestId) {
|
14
|
+
if (data.body.registerStatus !== 'pending') {
|
15
|
+
this.Ack(clientId, requestId);
|
16
|
+
}
|
17
|
+
callback(data);
|
18
|
+
}
|
19
|
+
});
|
20
|
+
}
|
21
|
+
onCaAccountRecover({ clientId, requestId }, callback) {
|
22
|
+
return this.listen('caAccountRecover', (data) => {
|
23
|
+
if (data.requestId === requestId) {
|
24
|
+
if (data.body.recoveryStatus !== 'pending') {
|
25
|
+
this.Ack(clientId, requestId);
|
26
|
+
}
|
27
|
+
callback(data);
|
28
|
+
}
|
29
|
+
});
|
30
|
+
}
|
31
|
+
onScanLoginSuccess(callback) {
|
32
|
+
return this.listen('onScanLoginSuccess', (data) => {
|
33
|
+
if (typeof (data === null || data === void 0 ? void 0 : data.body) === 'string') {
|
34
|
+
callback(data);
|
35
|
+
this.stop();
|
36
|
+
}
|
37
|
+
});
|
38
|
+
}
|
39
|
+
onScanLogin(callback) {
|
40
|
+
return this.listen('onScanLogin', (data) => {
|
41
|
+
if (typeof (data === null || data === void 0 ? void 0 : data.body) === 'string') {
|
42
|
+
callback(data);
|
43
|
+
this.stop();
|
44
|
+
}
|
45
|
+
});
|
46
|
+
}
|
47
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"type": "module"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { BaseSignalr } from './signalr.js';
|
2
|
+
import { AchTxAddressReceivedType, NFTOrderChangedData, RequestOrderTransferredType } from './types/sell.js';
|
3
|
+
export declare class SignalrSell extends BaseSignalr {
|
4
|
+
requestAchTxAddress(clientId: string, orderId: string): Promise<any>;
|
5
|
+
onAchTxAddressReceived({ orderId }: {
|
6
|
+
clientId: string;
|
7
|
+
orderId: string;
|
8
|
+
}, callback: (data: AchTxAddressReceivedType | null) => void): import("./types").IListen;
|
9
|
+
requestOrderTransferred(clientId: string, orderId: string): Promise<any>;
|
10
|
+
onRequestOrderTransferred({ orderId }: {
|
11
|
+
clientId: string;
|
12
|
+
orderId: string;
|
13
|
+
}, callback: (data: RequestOrderTransferredType | null) => void): import("./types").IListen;
|
14
|
+
requestNFTOrderStatus(clientId: string, orderId: string): Promise<any>;
|
15
|
+
OnNFTOrderChanged({ orderId }: {
|
16
|
+
clientId: string;
|
17
|
+
orderId: string;
|
18
|
+
}, callback: (data: NFTOrderChangedData | null) => void): import("./types").IListen;
|
19
|
+
}
|
20
|
+
export declare const sellListenList: readonly ["onAchTxAddressReceived", "onOrderTransferredReceived", "OnNFTOrderChanged"];
|
21
|
+
export declare const signalrSell: BaseSignalr<readonly ["onAchTxAddressReceived", "onOrderTransferredReceived", "OnNFTOrderChanged"]> & SignalrSell;
|