@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.
Files changed (53) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +54 -0
  3. package/dist/commonjs/didSignalr.d.ts +16 -0
  4. package/dist/commonjs/didSignalr.js +51 -0
  5. package/dist/commonjs/index.d.ts +4 -0
  6. package/dist/commonjs/index.js +20 -0
  7. package/dist/commonjs/package.json +1 -0
  8. package/dist/commonjs/sellSignalr.d.ts +21 -0
  9. package/dist/commonjs/sellSignalr.js +66 -0
  10. package/dist/commonjs/signalr.d.ts +24 -0
  11. package/dist/commonjs/signalr.js +87 -0
  12. package/dist/commonjs/types/did.d.ts +36 -0
  13. package/dist/commonjs/types/did.js +9 -0
  14. package/dist/commonjs/types/index.d.ts +3 -0
  15. package/dist/commonjs/types/index.js +19 -0
  16. package/dist/commonjs/types/sell.d.ts +34 -0
  17. package/dist/commonjs/types/sell.js +24 -0
  18. package/dist/commonjs/types/signalr.d.ts +35 -0
  19. package/dist/commonjs/types/signalr.js +7 -0
  20. package/dist/esm/didSignalr.d.ts +16 -0
  21. package/dist/esm/didSignalr.js +47 -0
  22. package/dist/esm/index.d.ts +4 -0
  23. package/dist/esm/index.js +4 -0
  24. package/dist/esm/package.json +1 -0
  25. package/dist/esm/sellSignalr.d.ts +21 -0
  26. package/dist/esm/sellSignalr.js +62 -0
  27. package/dist/esm/signalr.d.ts +24 -0
  28. package/dist/esm/signalr.js +83 -0
  29. package/dist/esm/types/did.d.ts +36 -0
  30. package/dist/esm/types/did.js +6 -0
  31. package/dist/esm/types/index.d.ts +3 -0
  32. package/dist/esm/types/index.js +3 -0
  33. package/dist/esm/types/sell.d.ts +34 -0
  34. package/dist/esm/types/sell.js +21 -0
  35. package/dist/esm/types/signalr.d.ts +35 -0
  36. package/dist/esm/types/signalr.js +4 -0
  37. package/dist/types/didSignalr.d.ts +17 -0
  38. package/dist/types/didSignalr.d.ts.map +1 -0
  39. package/dist/types/index.d.ts +5 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/sellSignalr.d.ts +22 -0
  42. package/dist/types/sellSignalr.d.ts.map +1 -0
  43. package/dist/types/signalr.d.ts +25 -0
  44. package/dist/types/signalr.d.ts.map +1 -0
  45. package/dist/types/types/did.d.ts +37 -0
  46. package/dist/types/types/did.d.ts.map +1 -0
  47. package/dist/types/types/index.d.ts +4 -0
  48. package/dist/types/types/index.d.ts.map +1 -0
  49. package/dist/types/types/sell.d.ts +35 -0
  50. package/dist/types/types/sell.d.ts.map +1 -0
  51. package/dist/types/types/signalr.d.ts +36 -0
  52. package/dist/types/types/signalr.d.ts.map +1 -0
  53. package/package.json +50 -0
package/README.md ADDED
@@ -0,0 +1,54 @@
1
+ # `@portkey/socket`
2
+
3
+ ![ES Version](https://img.shields.io/badge/ES-2020-yellow)
4
+ ![Node Version](https://img.shields.io/badge/node-14.x-green)
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,4 @@
1
+ export * from './didSignalr';
2
+ export * from './signalr';
3
+ export * from './sellSignalr';
4
+ export * from './types';
@@ -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,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultDIDListenList = void 0;
4
+ exports.DefaultDIDListenList = [
5
+ 'caAccountRegister',
6
+ 'caAccountRecover',
7
+ 'onScanLoginSuccess',
8
+ 'onScanLogin',
9
+ ];
@@ -0,0 +1,3 @@
1
+ export * from './did';
2
+ export * from './signalr';
3
+ export * from './sell';
@@ -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,4 @@
1
+ export * from './didSignalr.js';
2
+ export * from './signalr.js';
3
+ export * from './sellSignalr.js';
4
+ export * from './types/index.js';
@@ -0,0 +1,4 @@
1
+ export * from './didSignalr.js';
2
+ export * from './signalr.js';
3
+ export * from './sellSignalr.js';
4
+ export * from './types/index.js';
@@ -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;