didox 0.0.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/README.md +57 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +127 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +53 -0
package/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# didox
|
|
2
|
+
|
|
3
|
+
[](https://badge.fury.io/js/didox)
|
|
4
|
+
[](https://thebetacompany.uz/projects/didox-npm-module)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**didox** is a Node.js module developed to streamline the integration process for developers and their applications with the Electronic Document Management System (EDM) on the [www.didox.uz](https://didox.uz) platform. With this module, you can simplify interactions with Didox, send and receive electronic documents, manage your account, and more.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
To install the **didox** module, use the following npm command:
|
|
12
|
+
|
|
13
|
+
### NPM
|
|
14
|
+
```bash
|
|
15
|
+
npm install didox
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Yarn
|
|
19
|
+
```bash
|
|
20
|
+
yarn add didox
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Environment Variables
|
|
24
|
+
|
|
25
|
+
Before using the didox module, make sure to set the following environment variables in your project's .env file:
|
|
26
|
+
|
|
27
|
+
`TBC_DIDOX_LOGIN`: Your didox login or username.
|
|
28
|
+
|
|
29
|
+
`TBC_DIDOX_PASSWORD`: Your didox password or API key secret.
|
|
30
|
+
|
|
31
|
+
These environment variables are required for authentication when using the module. Be sure to keep them secure and do not expose them in your code.
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
const { Account } = require('didox');
|
|
37
|
+
|
|
38
|
+
async function getAccountInfo ( ) {
|
|
39
|
+
const accountInfo = await Account.getInfo();
|
|
40
|
+
// Here is your code...
|
|
41
|
+
}
|
|
42
|
+
// Here is your code...
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Documentation
|
|
46
|
+
For detailed usage instructions and API documentation, please refer to the [documentation](https://docs.thebetacompany.uz/tbc-didox-npm).
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# Releases
|
|
50
|
+
### v0.0.1
|
|
51
|
+
- ***Added*** support for [Account](https://api-docs.didox.uz/ru/integrators-account) controller
|
|
52
|
+
- Get account information
|
|
53
|
+
- Get account status ( own or by TIN )
|
|
54
|
+
- ***Added*** support for [Profile](https://api-docs.didox.uz/ru/integrators-profile) controller
|
|
55
|
+
- Get profile information
|
|
56
|
+
- ***Added*** support for [Documents](https://api-docs.didox.uz/ru/integrators-documents) controller
|
|
57
|
+
- Get documents list
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
declare class Account {
|
|
2
|
+
static getInfo(): Promise<any>;
|
|
3
|
+
static getStatus(taxID?: string): Promise<any>;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
declare class Authorization {
|
|
7
|
+
static getUserToken(): Promise<any>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare class Document {
|
|
11
|
+
static getList(params: IDocumentGetListParamsInterface): Promise<any>;
|
|
12
|
+
}
|
|
13
|
+
interface IDocumentGetListParamsInterface extends Object {
|
|
14
|
+
owner: 1 | 0;
|
|
15
|
+
page?: number;
|
|
16
|
+
limit?: number;
|
|
17
|
+
dateFromCreated?: string;
|
|
18
|
+
dateToCreated?: string;
|
|
19
|
+
dateFromUpdated?: string;
|
|
20
|
+
dateToUpdated?: string;
|
|
21
|
+
signDateFrom?: string;
|
|
22
|
+
signDateTo?: string;
|
|
23
|
+
doctype?: IDocumentType;
|
|
24
|
+
name?: string;
|
|
25
|
+
sum?: number;
|
|
26
|
+
docDateFromCreated?: string;
|
|
27
|
+
docDateToCreated?: string;
|
|
28
|
+
сontractname?: string;
|
|
29
|
+
contractdate?: string;
|
|
30
|
+
hasCommittent?: boolean;
|
|
31
|
+
hasLgota?: boolean;
|
|
32
|
+
hasMarks?: boolean;
|
|
33
|
+
oneside?: boolean;
|
|
34
|
+
}
|
|
35
|
+
type IDocumentType = '000' | // Custom Document
|
|
36
|
+
'001' | // Invoice [Not used]
|
|
37
|
+
'002' | // Invoice without request
|
|
38
|
+
'004' | // Product Transport Document
|
|
39
|
+
'005' | '006' | '007' | '008' | '052' | '054';
|
|
40
|
+
|
|
41
|
+
declare class Profile {
|
|
42
|
+
static getInfo(): Promise<any>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { Account, Authorization, Document, Profile };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var __async = (__this, __arguments, generator) => {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
var fulfilled = (value) => {
|
|
32
|
+
try {
|
|
33
|
+
step(generator.next(value));
|
|
34
|
+
} catch (e) {
|
|
35
|
+
reject(e);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var rejected = (value) => {
|
|
39
|
+
try {
|
|
40
|
+
step(generator.throw(value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
46
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// src/index.ts
|
|
51
|
+
var src_exports = {};
|
|
52
|
+
__export(src_exports, {
|
|
53
|
+
Account: () => Account_default,
|
|
54
|
+
Authorization: () => Authorization_default,
|
|
55
|
+
Document: () => Document_default,
|
|
56
|
+
Profile: () => Profile_default
|
|
57
|
+
});
|
|
58
|
+
module.exports = __toCommonJS(src_exports);
|
|
59
|
+
|
|
60
|
+
// src/controllers/Request.ts
|
|
61
|
+
var import_axios = __toESM(require("axios"));
|
|
62
|
+
var _Request = class {
|
|
63
|
+
static make(options) {
|
|
64
|
+
return __async(this, null, function* () {
|
|
65
|
+
let headers = {
|
|
66
|
+
"Content-Type": "application/json",
|
|
67
|
+
"Partner-Token": this.partnerToken
|
|
68
|
+
};
|
|
69
|
+
Object.assign(headers, options.headers);
|
|
70
|
+
return (0, import_axios.default)({
|
|
71
|
+
method: options.type,
|
|
72
|
+
url: _Request.baseURL + options.path,
|
|
73
|
+
data: options.data,
|
|
74
|
+
headers
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
var Request = _Request;
|
|
80
|
+
Request.baseURL = "https://stage.goodsign.biz/";
|
|
81
|
+
Request.partnerToken = process.env.TBC_DIDOX_PARTNER_TOKEN || "";
|
|
82
|
+
var Request_default = Request;
|
|
83
|
+
|
|
84
|
+
// src/controllers/Authorization.ts
|
|
85
|
+
var Authorization = class {
|
|
86
|
+
static getUserToken() {
|
|
87
|
+
return __async(this, null, function* () {
|
|
88
|
+
if (!process.env.TBC_DIDOX_LOGIN || !process.env.TBC_DIDOX_PASSWORD) {
|
|
89
|
+
console.error("Please, edit your ENV variables as introduced in module Documentation");
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
const response = yield Request_default.make({
|
|
93
|
+
type: "post",
|
|
94
|
+
path: `/v1/auth/${process.env.TBC_DIDOX_LOGIN}/token`,
|
|
95
|
+
data: {
|
|
96
|
+
"password": process.env.TBC_DIDOX_PASSWORD
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
return response == null ? void 0 : response.data.token;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
var Authorization_default = Authorization;
|
|
104
|
+
|
|
105
|
+
// src/controllers/Profile.ts
|
|
106
|
+
var Profile = class {
|
|
107
|
+
static getInfo() {
|
|
108
|
+
return __async(this, null, function* () {
|
|
109
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
110
|
+
const response = yield Request_default.make({ type: "get", path: `/v1/profile`, headers: { "User-Key": userKey } });
|
|
111
|
+
return response.data;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
var Profile_default = Profile;
|
|
116
|
+
|
|
117
|
+
// src/controllers/Account.ts
|
|
118
|
+
var Account = class {
|
|
119
|
+
static getInfo() {
|
|
120
|
+
return __async(this, null, function* () {
|
|
121
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
122
|
+
const response = yield Request_default.make({ type: "get", path: `/v1/account`, headers: { "User-Key": userKey } });
|
|
123
|
+
return response.data;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
static getStatus(taxID) {
|
|
127
|
+
return __async(this, null, function* () {
|
|
128
|
+
if (!taxID) {
|
|
129
|
+
const profile = yield Profile_default.getInfo();
|
|
130
|
+
taxID = profile.tin;
|
|
131
|
+
}
|
|
132
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
133
|
+
const response = yield Request_default.make({ type: "get", path: `/v1/account/status/${taxID}`, headers: { "User-Key": userKey } });
|
|
134
|
+
return response.data;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
var Account_default = Account;
|
|
139
|
+
|
|
140
|
+
// src/controllers/Document.ts
|
|
141
|
+
var Document = class {
|
|
142
|
+
static getList(params) {
|
|
143
|
+
return __async(this, null, function* () {
|
|
144
|
+
let queryParams = "?";
|
|
145
|
+
queryParams += `owner=${params.owner || 1}`;
|
|
146
|
+
queryParams += `&page=${params.page || 1}`;
|
|
147
|
+
queryParams += `&limit=${params.limit || 20}`;
|
|
148
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
149
|
+
const response = yield Request_default.make({ type: "get", path: `/v2/documents${queryParams}`, headers: { "User-Key": userKey } });
|
|
150
|
+
return response.data;
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
var Document_default = Document;
|
|
155
|
+
|
|
156
|
+
// src/index.ts
|
|
157
|
+
var import_dotenv = __toESM(require("dotenv"));
|
|
158
|
+
import_dotenv.default.config();
|
|
159
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
160
|
+
0 && (module.exports = {
|
|
161
|
+
Account,
|
|
162
|
+
Authorization,
|
|
163
|
+
Document,
|
|
164
|
+
Profile
|
|
165
|
+
});
|
|
166
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/controllers/Request.ts","../src/controllers/Authorization.ts","../src/controllers/Profile.ts","../src/controllers/Account.ts","../src/controllers/Document.ts"],"sourcesContent":["import { \n Authorization, \n Account, \n Profile, \n Document \n} from \"./controllers\";\n\nimport dotenv from 'dotenv';\ndotenv.config();\n\nexport {\n Account,\n Profile,\n Authorization,\n Document\n}","import axios, { Method } from \"axios\";\nimport { Authorization } from \"./\";\n\nclass Request {\n private static baseURL: string = \"https://stage.goodsign.biz/\";\n private static partnerToken: string = process.env.TBC_DIDOX_PARTNER_TOKEN || '';\n\n public static async make (options: IRequestOptions) {\n let headers = {\n \"Content-Type\": \"application/json\",\n \"Partner-Token\": this.partnerToken\n };\n\n Object.assign(headers, options.headers);\n\n return axios({\n method: options.type,\n url: Request.baseURL + options.path,\n data: options.data,\n headers: headers\n });\n }\n}\n\ninterface IRequestOptions {\n type: Method;\n path: string;\n data?: any;\n headers?: any;\n}\n\nexport default Request;","import Request from \"./Request\";\n\nclass Authorization {\n public static async getUserToken() {\n\n if ( !process.env.TBC_DIDOX_LOGIN || !process.env.TBC_DIDOX_PASSWORD ) {\n console.error('Please, edit your ENV variables as introduced in module Documentation');\n return false;\n }\n\n const response = await Request.make({\n type: 'post', \n path: `/v1/auth/${process.env.TBC_DIDOX_LOGIN}/token`, \n data: {\n \"password\": process.env.TBC_DIDOX_PASSWORD\n }\n });\n\n return response?.data.token;\n }\n}\n\nexport default Authorization;","import Authorization from \"./Authorization\";\nimport Request from \"./Request\";\n\nclass Profile {\n public static async getInfo() {\n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v1/profile`, headers: { \"User-Key\": userKey } });\n\n return response.data;\n }\n}\n\n\n\nexport default Profile;","import Authorization from \"./Authorization\";\nimport Profile from \"./Profile\";\nimport Request from \"./Request\";\n\nclass Account {\n public static async getInfo() {\n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v1/account`, headers: { \"User-Key\": userKey } });\n\n return response.data;\n }\n\n public static async getStatus(taxID?: string) {\n\n if ( !taxID ) {\n const profile = await Profile.getInfo();\n taxID = profile.tin;\n }\n \n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v1/account/status/${taxID}`, headers: { \"User-Key\": userKey } });\n\n return response.data;\n }\n}\n\nexport default Account;","import Authorization from \"./Authorization\";\nimport Request from \"./Request\";\n\nclass Document {\n public static async getList (params: IDocumentGetListParamsInterface) {\n\n let queryParams : string = '?';\n queryParams += `owner=${params.owner || 1}`;\n queryParams += `&page=${params.page || 1}`;\n queryParams += `&limit=${params.limit || 20}`;\n\n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v2/documents${queryParams}`, headers: { \"User-Key\": userKey } });\n \n return response.data;\n }\n}\n\ninterface IDocumentGetListParamsInterface extends Object {\n owner: 1 | 0;\n page?: number;\n limit?: number;\n\n dateFromCreated?: string;\n dateToCreated?: string;\n dateFromUpdated?: string;\n dateToUpdated?: string;\n signDateFrom?: string;\n signDateTo?: string;\n doctype?: IDocumentType;\n name?: string;\n sum?: number;\n docDateFromCreated?: string;\n docDateToCreated?: string;\n сontractname?: string;\n contractdate?: string;\n hasCommittent?: boolean;\n hasLgota?: boolean;\n hasMarks?: boolean;\n oneside?: boolean;\n\n}\n\ntype IDocumentType = \n'000' | // Custom Document\n'001' | // Invoice [Not used]\n'002' | // Invoice without request\n'004' | // Product Transport Document\n'005' | \n'006' | \n'007' | \n'008' | \n'052' | \n'054'\n\nexport default Document;"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAA8B;AAG9B,IAAM,WAAN,MAAc;AAAA,EAIV,OAAoB,KAAM,SAA0B;AAAA;AAChD,UAAI,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,iBAAiB,KAAK;AAAA,MAC1B;AAEA,aAAO,OAAO,SAAS,QAAQ,OAAO;AAEtC,iBAAO,aAAAA,SAAM;AAAA,QACT,QAAQ,QAAQ;AAAA,QAChB,KAAK,SAAQ,UAAU,QAAQ;AAAA,QAC/B,MAAM,QAAQ;AAAA,QACd;AAAA,MACJ,CAAC;AAAA,IACL;AAAA;AACJ;AAnBA,IAAM,UAAN;AAAM,QACa,UAAkB;AAD/B,QAEa,eAAuB,QAAQ,IAAI,2BAA2B;AA0BjF,IAAO,kBAAQ;;;AC7Bf,IAAM,gBAAN,MAAoB;AAAA,EAChB,OAAoB,eAAe;AAAA;AAE/B,UAAK,CAAC,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,IAAI,oBAAqB;AACnE,gBAAQ,MAAM,uEAAuE;AACrF,eAAO;AAAA,MACX;AAEA,YAAM,WAAW,MAAM,gBAAQ,KAAK;AAAA,QAChC,MAAM;AAAA,QACN,MAAM,YAAY,QAAQ,IAAI;AAAA,QAC9B,MAAM;AAAA,UACF,YAAY,QAAQ,IAAI;AAAA,QAC5B;AAAA,MACJ,CAAC;AAED,aAAO,qCAAU,KAAK;AAAA,IAC1B;AAAA;AACJ;AAEA,IAAO,wBAAQ;;;ACnBf,IAAM,UAAN,MAAc;AAAA,EACV,OAAoB,UAAU;AAAA;AAC1B,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,eAAe,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzG,aAAO,SAAS;AAAA,IACpB;AAAA;AACJ;AAIA,IAAO,kBAAQ;;;ACVf,IAAM,UAAN,MAAc;AAAA,EACV,OAAoB,UAAU;AAAA;AAC1B,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,eAAe,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzG,aAAO,SAAS;AAAA,IACpB;AAAA;AAAA,EAEA,OAAoB,UAAU,OAAgB;AAAA;AAE1C,UAAK,CAAC,OAAQ;AACV,cAAM,UAAU,MAAM,gBAAQ,QAAQ;AACtC,gBAAQ,QAAQ;AAAA,MACpB;AAEA,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,sBAAsB,SAAS,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzH,aAAO,SAAS;AAAA,IACpB;AAAA;AACJ;AAEA,IAAO,kBAAQ;;;ACvBf,IAAM,WAAN,MAAe;AAAA,EACX,OAAoB,QAAS,QAAyC;AAAA;AAElE,UAAI,cAAuB;AAC3B,qBAAe,SAAS,OAAO,SAAS;AACxC,qBAAe,SAAS,OAAO,QAAQ;AACvC,qBAAe,UAAU,OAAO,SAAS;AAEzC,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,gBAAgB,eAAe,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzH,aAAO,SAAS;AAAA,IACpB;AAAA;AACJ;AAuCA,IAAO,mBAAQ;;;ALhDf,oBAAmB;AACnB,cAAAC,QAAO,OAAO;","names":["axios","dotenv"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// src/controllers/Request.ts
|
|
23
|
+
import axios from "axios";
|
|
24
|
+
var _Request = class {
|
|
25
|
+
static make(options) {
|
|
26
|
+
return __async(this, null, function* () {
|
|
27
|
+
let headers = {
|
|
28
|
+
"Content-Type": "application/json",
|
|
29
|
+
"Partner-Token": this.partnerToken
|
|
30
|
+
};
|
|
31
|
+
Object.assign(headers, options.headers);
|
|
32
|
+
return axios({
|
|
33
|
+
method: options.type,
|
|
34
|
+
url: _Request.baseURL + options.path,
|
|
35
|
+
data: options.data,
|
|
36
|
+
headers
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var Request = _Request;
|
|
42
|
+
Request.baseURL = "https://stage.goodsign.biz/";
|
|
43
|
+
Request.partnerToken = process.env.TBC_DIDOX_PARTNER_TOKEN || "";
|
|
44
|
+
var Request_default = Request;
|
|
45
|
+
|
|
46
|
+
// src/controllers/Authorization.ts
|
|
47
|
+
var Authorization = class {
|
|
48
|
+
static getUserToken() {
|
|
49
|
+
return __async(this, null, function* () {
|
|
50
|
+
if (!process.env.TBC_DIDOX_LOGIN || !process.env.TBC_DIDOX_PASSWORD) {
|
|
51
|
+
console.error("Please, edit your ENV variables as introduced in module Documentation");
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const response = yield Request_default.make({
|
|
55
|
+
type: "post",
|
|
56
|
+
path: `/v1/auth/${process.env.TBC_DIDOX_LOGIN}/token`,
|
|
57
|
+
data: {
|
|
58
|
+
"password": process.env.TBC_DIDOX_PASSWORD
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return response == null ? void 0 : response.data.token;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var Authorization_default = Authorization;
|
|
66
|
+
|
|
67
|
+
// src/controllers/Profile.ts
|
|
68
|
+
var Profile = class {
|
|
69
|
+
static getInfo() {
|
|
70
|
+
return __async(this, null, function* () {
|
|
71
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
72
|
+
const response = yield Request_default.make({ type: "get", path: `/v1/profile`, headers: { "User-Key": userKey } });
|
|
73
|
+
return response.data;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var Profile_default = Profile;
|
|
78
|
+
|
|
79
|
+
// src/controllers/Account.ts
|
|
80
|
+
var Account = class {
|
|
81
|
+
static getInfo() {
|
|
82
|
+
return __async(this, null, function* () {
|
|
83
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
84
|
+
const response = yield Request_default.make({ type: "get", path: `/v1/account`, headers: { "User-Key": userKey } });
|
|
85
|
+
return response.data;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
static getStatus(taxID) {
|
|
89
|
+
return __async(this, null, function* () {
|
|
90
|
+
if (!taxID) {
|
|
91
|
+
const profile = yield Profile_default.getInfo();
|
|
92
|
+
taxID = profile.tin;
|
|
93
|
+
}
|
|
94
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
95
|
+
const response = yield Request_default.make({ type: "get", path: `/v1/account/status/${taxID}`, headers: { "User-Key": userKey } });
|
|
96
|
+
return response.data;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
var Account_default = Account;
|
|
101
|
+
|
|
102
|
+
// src/controllers/Document.ts
|
|
103
|
+
var Document = class {
|
|
104
|
+
static getList(params) {
|
|
105
|
+
return __async(this, null, function* () {
|
|
106
|
+
let queryParams = "?";
|
|
107
|
+
queryParams += `owner=${params.owner || 1}`;
|
|
108
|
+
queryParams += `&page=${params.page || 1}`;
|
|
109
|
+
queryParams += `&limit=${params.limit || 20}`;
|
|
110
|
+
const userKey = yield Authorization_default.getUserToken();
|
|
111
|
+
const response = yield Request_default.make({ type: "get", path: `/v2/documents${queryParams}`, headers: { "User-Key": userKey } });
|
|
112
|
+
return response.data;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
var Document_default = Document;
|
|
117
|
+
|
|
118
|
+
// src/index.ts
|
|
119
|
+
import dotenv from "dotenv";
|
|
120
|
+
dotenv.config();
|
|
121
|
+
export {
|
|
122
|
+
Account_default as Account,
|
|
123
|
+
Authorization_default as Authorization,
|
|
124
|
+
Document_default as Document,
|
|
125
|
+
Profile_default as Profile
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/Request.ts","../src/controllers/Authorization.ts","../src/controllers/Profile.ts","../src/controllers/Account.ts","../src/controllers/Document.ts","../src/index.ts"],"sourcesContent":["import axios, { Method } from \"axios\";\nimport { Authorization } from \"./\";\n\nclass Request {\n private static baseURL: string = \"https://stage.goodsign.biz/\";\n private static partnerToken: string = process.env.TBC_DIDOX_PARTNER_TOKEN || '';\n\n public static async make (options: IRequestOptions) {\n let headers = {\n \"Content-Type\": \"application/json\",\n \"Partner-Token\": this.partnerToken\n };\n\n Object.assign(headers, options.headers);\n\n return axios({\n method: options.type,\n url: Request.baseURL + options.path,\n data: options.data,\n headers: headers\n });\n }\n}\n\ninterface IRequestOptions {\n type: Method;\n path: string;\n data?: any;\n headers?: any;\n}\n\nexport default Request;","import Request from \"./Request\";\n\nclass Authorization {\n public static async getUserToken() {\n\n if ( !process.env.TBC_DIDOX_LOGIN || !process.env.TBC_DIDOX_PASSWORD ) {\n console.error('Please, edit your ENV variables as introduced in module Documentation');\n return false;\n }\n\n const response = await Request.make({\n type: 'post', \n path: `/v1/auth/${process.env.TBC_DIDOX_LOGIN}/token`, \n data: {\n \"password\": process.env.TBC_DIDOX_PASSWORD\n }\n });\n\n return response?.data.token;\n }\n}\n\nexport default Authorization;","import Authorization from \"./Authorization\";\nimport Request from \"./Request\";\n\nclass Profile {\n public static async getInfo() {\n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v1/profile`, headers: { \"User-Key\": userKey } });\n\n return response.data;\n }\n}\n\n\n\nexport default Profile;","import Authorization from \"./Authorization\";\nimport Profile from \"./Profile\";\nimport Request from \"./Request\";\n\nclass Account {\n public static async getInfo() {\n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v1/account`, headers: { \"User-Key\": userKey } });\n\n return response.data;\n }\n\n public static async getStatus(taxID?: string) {\n\n if ( !taxID ) {\n const profile = await Profile.getInfo();\n taxID = profile.tin;\n }\n \n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v1/account/status/${taxID}`, headers: { \"User-Key\": userKey } });\n\n return response.data;\n }\n}\n\nexport default Account;","import Authorization from \"./Authorization\";\nimport Request from \"./Request\";\n\nclass Document {\n public static async getList (params: IDocumentGetListParamsInterface) {\n\n let queryParams : string = '?';\n queryParams += `owner=${params.owner || 1}`;\n queryParams += `&page=${params.page || 1}`;\n queryParams += `&limit=${params.limit || 20}`;\n\n const userKey = await Authorization.getUserToken();\n const response = await Request.make({type: 'get', path: `/v2/documents${queryParams}`, headers: { \"User-Key\": userKey } });\n \n return response.data;\n }\n}\n\ninterface IDocumentGetListParamsInterface extends Object {\n owner: 1 | 0;\n page?: number;\n limit?: number;\n\n dateFromCreated?: string;\n dateToCreated?: string;\n dateFromUpdated?: string;\n dateToUpdated?: string;\n signDateFrom?: string;\n signDateTo?: string;\n doctype?: IDocumentType;\n name?: string;\n sum?: number;\n docDateFromCreated?: string;\n docDateToCreated?: string;\n сontractname?: string;\n contractdate?: string;\n hasCommittent?: boolean;\n hasLgota?: boolean;\n hasMarks?: boolean;\n oneside?: boolean;\n\n}\n\ntype IDocumentType = \n'000' | // Custom Document\n'001' | // Invoice [Not used]\n'002' | // Invoice without request\n'004' | // Product Transport Document\n'005' | \n'006' | \n'007' | \n'008' | \n'052' | \n'054'\n\nexport default Document;","import { \n Authorization, \n Account, \n Profile, \n Document \n} from \"./controllers\";\n\nimport dotenv from 'dotenv';\ndotenv.config();\n\nexport {\n Account,\n Profile,\n Authorization,\n Document\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAuB;AAG9B,IAAM,WAAN,MAAc;AAAA,EAIV,OAAoB,KAAM,SAA0B;AAAA;AAChD,UAAI,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,iBAAiB,KAAK;AAAA,MAC1B;AAEA,aAAO,OAAO,SAAS,QAAQ,OAAO;AAEtC,aAAO,MAAM;AAAA,QACT,QAAQ,QAAQ;AAAA,QAChB,KAAK,SAAQ,UAAU,QAAQ;AAAA,QAC/B,MAAM,QAAQ;AAAA,QACd;AAAA,MACJ,CAAC;AAAA,IACL;AAAA;AACJ;AAnBA,IAAM,UAAN;AAAM,QACa,UAAkB;AAD/B,QAEa,eAAuB,QAAQ,IAAI,2BAA2B;AA0BjF,IAAO,kBAAQ;;;AC7Bf,IAAM,gBAAN,MAAoB;AAAA,EAChB,OAAoB,eAAe;AAAA;AAE/B,UAAK,CAAC,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,IAAI,oBAAqB;AACnE,gBAAQ,MAAM,uEAAuE;AACrF,eAAO;AAAA,MACX;AAEA,YAAM,WAAW,MAAM,gBAAQ,KAAK;AAAA,QAChC,MAAM;AAAA,QACN,MAAM,YAAY,QAAQ,IAAI;AAAA,QAC9B,MAAM;AAAA,UACF,YAAY,QAAQ,IAAI;AAAA,QAC5B;AAAA,MACJ,CAAC;AAED,aAAO,qCAAU,KAAK;AAAA,IAC1B;AAAA;AACJ;AAEA,IAAO,wBAAQ;;;ACnBf,IAAM,UAAN,MAAc;AAAA,EACV,OAAoB,UAAU;AAAA;AAC1B,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,eAAe,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzG,aAAO,SAAS;AAAA,IACpB;AAAA;AACJ;AAIA,IAAO,kBAAQ;;;ACVf,IAAM,UAAN,MAAc;AAAA,EACV,OAAoB,UAAU;AAAA;AAC1B,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,eAAe,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzG,aAAO,SAAS;AAAA,IACpB;AAAA;AAAA,EAEA,OAAoB,UAAU,OAAgB;AAAA;AAE1C,UAAK,CAAC,OAAQ;AACV,cAAM,UAAU,MAAM,gBAAQ,QAAQ;AACtC,gBAAQ,QAAQ;AAAA,MACpB;AAEA,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,sBAAsB,SAAS,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzH,aAAO,SAAS;AAAA,IACpB;AAAA;AACJ;AAEA,IAAO,kBAAQ;;;ACvBf,IAAM,WAAN,MAAe;AAAA,EACX,OAAoB,QAAS,QAAyC;AAAA;AAElE,UAAI,cAAuB;AAC3B,qBAAe,SAAS,OAAO,SAAS;AACxC,qBAAe,SAAS,OAAO,QAAQ;AACvC,qBAAe,UAAU,OAAO,SAAS;AAEzC,YAAM,UAAU,MAAM,sBAAc,aAAa;AACjD,YAAM,WAAW,MAAM,gBAAQ,KAAK,EAAC,MAAM,OAAO,MAAM,gBAAgB,eAAe,SAAS,EAAE,YAAY,QAAQ,EAAE,CAAC;AAEzH,aAAO,SAAS;AAAA,IACpB;AAAA;AACJ;AAuCA,IAAO,mBAAQ;;;AChDf,OAAO,YAAY;AACnB,OAAO,OAAO;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "didox",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"homepage": "https://thebetacompany.uz/projects/didox-npm-module",
|
|
5
|
+
"description": "Didox integration module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsup",
|
|
15
|
+
"test": "jest"
|
|
16
|
+
},
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/thebetacompany/fiscal-integration-uz/issues",
|
|
19
|
+
"email": "contact@thebetacompany.uz"
|
|
20
|
+
},
|
|
21
|
+
"author": {
|
|
22
|
+
"name": "The Beta Company",
|
|
23
|
+
"url": "https://github.com/thebetacompany",
|
|
24
|
+
"email": "contact@thebetacompany.uz"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git@github.com:thebetacompany/tbc-didox-npm.git"
|
|
29
|
+
},
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=16.19.0",
|
|
32
|
+
"npm": ">=8.19.3"
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"didox",
|
|
36
|
+
"didox-uzbekistan",
|
|
37
|
+
"didox-integration",
|
|
38
|
+
"electron-documents"
|
|
39
|
+
],
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"axios": "^1.6.2",
|
|
42
|
+
"dotenv": "^16.3.1"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/jest": "^29.5.2",
|
|
46
|
+
"@types/node": "^20.10.5",
|
|
47
|
+
"jest": "^29.5.0",
|
|
48
|
+
"ts-jest": "^29.1.0",
|
|
49
|
+
"ts-node": "^10.9.1",
|
|
50
|
+
"tsup": "^6.7.0",
|
|
51
|
+
"typescript": "^5.1.3"
|
|
52
|
+
}
|
|
53
|
+
}
|