@verdocs/js-sdk 1.0.27 → 1.1.3
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/Documents/Documents.d.ts +14 -3
- package/Documents/Documents.js +27 -2
- package/Documents/Signatures.js +4 -4
- package/Documents/Stars.js +1 -1
- package/Documents/Types.d.ts +20 -0
- package/HTTP/Transport.d.ts +13 -39
- package/HTTP/Transport.js +18 -81
- package/HTTP/{Endpoint.d.ts → VerdocsEndpoint.d.ts} +20 -8
- package/HTTP/{Endpoint.js → VerdocsEndpoint.js} +36 -23
- package/HTTP/index.d.ts +1 -1
- package/HTTP/index.js +1 -1
- package/Organizations/ApiKeys.js +5 -5
- package/Organizations/Groups.js +7 -7
- package/Organizations/Invitations.js +7 -7
- package/Organizations/Members.js +5 -5
- package/Organizations/Organizations.js +6 -6
- package/Organizations/Webhooks.js +2 -2
- package/Organizations/Whitelabel.js +2 -2
- package/Search/Content.js +3 -3
- package/Templates/Documents.js +4 -4
- package/Templates/Fields.js +3 -3
- package/Templates/Pages.js +4 -4
- package/Templates/Reminders.js +4 -4
- package/Templates/Roles.js +7 -7
- package/Templates/Stars.js +2 -2
- package/Templates/Tags.js +6 -6
- package/Templates/Templates.js +6 -6
- package/Templates/Validators.js +2 -2
- package/Users/Auth.d.ts +17 -1
- package/Users/Auth.js +58 -6
- package/Users/Notifications.js +1 -1
- package/Users/Profiles.js +10 -10
- package/Utils/Token.d.ts +20 -0
- package/Utils/Token.js +67 -0
- package/Utils/index.d.ts +1 -0
- package/Utils/index.js +1 -0
- package/package.json +3 -1
package/Documents/Documents.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ISigningSession, ISigningSessionRequest } from './Types';
|
|
1
2
|
export declare type TDocumentStatus = 'complete' | 'pending' | 'in progress' | 'declined' | 'canceled';
|
|
2
3
|
export declare type TRecipientStatus = 'invited' | 'opened' | 'signed' | 'submitted' | 'canceled' | 'pending' | 'declined';
|
|
3
4
|
export declare type TRecipientType = 'signer' | 'cc' | 'approver';
|
|
@@ -51,10 +52,10 @@ export interface IRecipient {
|
|
|
51
52
|
email: string;
|
|
52
53
|
envelope_id: string;
|
|
53
54
|
full_name: string;
|
|
54
|
-
in_app_access_key
|
|
55
|
-
key_used_to_conclude
|
|
55
|
+
in_app_access_key?: string;
|
|
56
|
+
key_used_to_conclude?: string;
|
|
56
57
|
message: string | null;
|
|
57
|
-
phone: string;
|
|
58
|
+
phone: string | null;
|
|
58
59
|
profile_id: string;
|
|
59
60
|
role_name: string;
|
|
60
61
|
sequence: number;
|
|
@@ -137,3 +138,13 @@ export declare const getSummary: (page: number) => Promise<IDocumentsSummary>;
|
|
|
137
138
|
* ```
|
|
138
139
|
*/
|
|
139
140
|
export declare const searchDocuments: (params: any) => Promise<IDocumentsSearchResult>;
|
|
141
|
+
export interface ISigningSessionResult {
|
|
142
|
+
recipient: IRecipient;
|
|
143
|
+
session: ISigningSession;
|
|
144
|
+
signerToken: string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get a signing session for a document.
|
|
148
|
+
*/
|
|
149
|
+
export declare const getSigningSession: (params: ISigningSessionRequest) => Promise<ISigningSessionResult>;
|
|
150
|
+
export declare const getDocumentRecipients: (documentId: string) => Promise<IRecipient[]>;
|
package/Documents/Documents.js
CHANGED
|
@@ -35,6 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
import { getEndpoint } from '../HTTP/Transport';
|
|
38
|
+
import { decodeAccessTokenBody } from '../Utils/Token';
|
|
38
39
|
/**
|
|
39
40
|
* Get a summary of currently active documents.
|
|
40
41
|
*
|
|
@@ -47,7 +48,7 @@ import { getEndpoint } from '../HTTP/Transport';
|
|
|
47
48
|
export var getSummary = function (page) { return __awaiter(void 0, void 0, void 0, function () {
|
|
48
49
|
return __generator(this, function (_a) {
|
|
49
50
|
return [2 /*return*/, getEndpoint()
|
|
50
|
-
.post('/documents/summary', { page: page })
|
|
51
|
+
.api.post('/documents/summary', { page: page })
|
|
51
52
|
.then(function (r) { return r.data; })];
|
|
52
53
|
});
|
|
53
54
|
}); };
|
|
@@ -63,7 +64,31 @@ export var getSummary = function (page) { return __awaiter(void 0, void 0, void
|
|
|
63
64
|
export var searchDocuments = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
64
65
|
return __generator(this, function (_a) {
|
|
65
66
|
return [2 /*return*/, getEndpoint()
|
|
66
|
-
.post('/documents/search', params)
|
|
67
|
+
.api.post('/documents/search', params)
|
|
68
|
+
.then(function (r) { return r.data; })];
|
|
69
|
+
});
|
|
70
|
+
}); };
|
|
71
|
+
/**
|
|
72
|
+
* Get a signing session for a document.
|
|
73
|
+
*/
|
|
74
|
+
export var getSigningSession = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
75
|
+
return __generator(this, function (_a) {
|
|
76
|
+
return [2 /*return*/, getEndpoint()
|
|
77
|
+
.api.get("/documents/".concat(params.documentId, "/recipients/").concat(encodeURIComponent(params.roleId), "/invitation/").concat(params.inviteCode))
|
|
78
|
+
.then(function (r) {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
// Avoiding a jsonwebtoken dependency here - we don't actually need the whole library
|
|
81
|
+
var signerToken = ((_a = r.headers) === null || _a === void 0 ? void 0 : _a.signer_token) || '';
|
|
82
|
+
var session = decodeAccessTokenBody(signerToken);
|
|
83
|
+
getEndpoint().setAuthorization((_b = r.headers) === null || _b === void 0 ? void 0 : _b.signer_token);
|
|
84
|
+
return { recipient: r.data, session: session, signerToken: signerToken };
|
|
85
|
+
})];
|
|
86
|
+
});
|
|
87
|
+
}); };
|
|
88
|
+
export var getDocumentRecipients = function (documentId) { return __awaiter(void 0, void 0, void 0, function () {
|
|
89
|
+
return __generator(this, function (_a) {
|
|
90
|
+
return [2 /*return*/, getEndpoint()
|
|
91
|
+
.api.get("/documents/".concat(documentId, "/recipients"))
|
|
67
92
|
.then(function (r) { return r.data; })];
|
|
68
93
|
});
|
|
69
94
|
}); };
|
package/Documents/Signatures.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { getEndpoint } from '../HTTP/Transport';
|
|
2
2
|
export var createSignature = function (params) {
|
|
3
3
|
return getEndpoint()
|
|
4
|
-
.post('/signatures', params)
|
|
4
|
+
.api.post('/signatures', params)
|
|
5
5
|
.then(function (r) { return r.data; });
|
|
6
6
|
};
|
|
7
7
|
export var getSignatures = function () {
|
|
8
8
|
return getEndpoint()
|
|
9
|
-
.get('/signatures')
|
|
9
|
+
.api.get('/signatures')
|
|
10
10
|
.then(function (r) { return r.data; });
|
|
11
11
|
};
|
|
12
12
|
export var getSignature = function (signatureId) {
|
|
13
13
|
return getEndpoint()
|
|
14
|
-
.get("/signatures/".concat(signatureId))
|
|
14
|
+
.api.get("/signatures/".concat(signatureId))
|
|
15
15
|
.then(function (r) { return r.data; });
|
|
16
16
|
};
|
|
17
17
|
export var deleteSignature = function (signatureId) {
|
|
18
18
|
return getEndpoint()
|
|
19
|
-
.delete("/signatures/".concat(signatureId))
|
|
19
|
+
.api.delete("/signatures/".concat(signatureId))
|
|
20
20
|
.then(function (r) { return r.data; });
|
|
21
21
|
};
|
package/Documents/Stars.js
CHANGED
|
@@ -36,5 +36,5 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
};
|
|
37
37
|
import { getEndpoint } from '../HTTP/Transport';
|
|
38
38
|
export var toggleStar = function (templateId) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
39
|
-
return [2 /*return*/, getEndpoint().post("/templates/".concat(templateId, "/stars/toggle")).then(function (r) { return r.data; })];
|
|
39
|
+
return [2 /*return*/, getEndpoint().api.post("/templates/".concat(templateId, "/stars/toggle")).then(function (r) { return r.data; })];
|
|
40
40
|
}); }); };
|
package/Documents/Types.d.ts
CHANGED
|
@@ -21,3 +21,23 @@ export interface ITemplatesSummary {
|
|
|
21
21
|
total: number;
|
|
22
22
|
result: ITemplateSummaryEntry[];
|
|
23
23
|
}
|
|
24
|
+
export interface ISigningSessionRequest {
|
|
25
|
+
documentId: string;
|
|
26
|
+
roleId: string;
|
|
27
|
+
inviteCode: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ISigningSession {
|
|
30
|
+
profile_id: string;
|
|
31
|
+
document_id: string;
|
|
32
|
+
role: string;
|
|
33
|
+
email: string;
|
|
34
|
+
access_key: {
|
|
35
|
+
id: string;
|
|
36
|
+
type: string;
|
|
37
|
+
};
|
|
38
|
+
iss: string;
|
|
39
|
+
aud: string;
|
|
40
|
+
exp: number;
|
|
41
|
+
iat: number;
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
}
|
package/HTTP/Transport.d.ts
CHANGED
|
@@ -5,56 +5,30 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { VerdocsEndpoint } from './VerdocsEndpoint';
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
14
|
-
*
|
|
15
|
-
* Transport.setAuthorization(accessToken);
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export declare const setAuthorization: (accessToken: string | null) => void;
|
|
19
|
-
/**
|
|
20
|
-
* Set the Client ID for Verdocs API calls.
|
|
21
|
-
*
|
|
22
|
-
* ```typescript
|
|
23
|
-
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
24
|
-
*
|
|
25
|
-
* Transport.setClientID('1234);
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export declare const setClientID: (clientID: string) => void;
|
|
29
|
-
/**
|
|
30
|
-
* Set the base URL for API calls. This defaults to https://api.verdocs.com/ and should only be changed after consultation with
|
|
31
|
-
* Verdocs Developer Support (e.g. to access a private API endpoint).
|
|
32
|
-
*
|
|
33
|
-
* ```typescript
|
|
34
|
-
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
35
|
-
*
|
|
36
|
-
* Transport.setBaseUrl('https://my-private-api.verdocs.com');
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export declare const setBaseUrl: (baseUrl: string) => void;
|
|
40
|
-
/**
|
|
41
|
-
* Set the timeout for API calls in milliseconds. 2000-4000ms is recommended for most purposes. 3000ms is the default.
|
|
10
|
+
* Helper to get the endpoint for direct access to HTTP functions.
|
|
42
11
|
*
|
|
43
12
|
* ```typescript
|
|
44
13
|
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
45
14
|
*
|
|
46
|
-
* Transport.
|
|
15
|
+
* console.log('Current timeout', Transport.getEndpoint().defaults.timeout);
|
|
47
16
|
* ```
|
|
48
17
|
*/
|
|
49
|
-
export declare const
|
|
50
|
-
export declare const logRequests: (enable: boolean) => void;
|
|
18
|
+
export declare const getEndpoint: () => VerdocsEndpoint;
|
|
51
19
|
/**
|
|
52
|
-
*
|
|
20
|
+
* Change the endpoint that will be used when making calls to Verdocs. Only one endpoint may be active at a time.
|
|
21
|
+
* Authorization and other configuration data is specific to each endpoint, and will not be carried over when the
|
|
22
|
+
* endpoint is changed. The typical use-case is to change to a sandboxed endpoint for signing sessions, then revert
|
|
23
|
+
* to the global endpoint when the signing session is complete. To revert, pass `null` as the endpoint to use.
|
|
53
24
|
*
|
|
54
25
|
* ```typescript
|
|
55
26
|
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
56
27
|
*
|
|
57
|
-
*
|
|
28
|
+
* const mySigningEndpoint = new VerdocsEndpoint();
|
|
29
|
+
* setActiveEndpoint(mySigningEndpoint);
|
|
30
|
+
* ... [Perform signing operations]
|
|
31
|
+
* setActiveEndpoint(null);
|
|
58
32
|
* ```
|
|
59
33
|
*/
|
|
60
|
-
export declare const
|
|
34
|
+
export declare const setActiveEndpoint: (e: VerdocsEndpoint | null) => void;
|
package/HTTP/Transport.js
CHANGED
|
@@ -5,106 +5,43 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import axios from 'axios';
|
|
9
8
|
import globalThis from './globalThis';
|
|
10
|
-
|
|
11
|
-
baseURL: 'https://api.verdocs.com/',
|
|
12
|
-
timeout: 6000,
|
|
13
|
-
headers: { 'X-Client-ID': 'NONE' },
|
|
14
|
-
};
|
|
9
|
+
import { VerdocsEndpoint } from './VerdocsEndpoint';
|
|
15
10
|
// @credit https://derickbailey.com/2016/03/09/creating-a-true-singleton-in-node-js-with-es6-symbols/
|
|
16
11
|
// Also see globalThis for comments about why we're doing this in the first place.
|
|
17
12
|
var ENDPOINT_KEY = Symbol.for('verdocs-api-endpoint');
|
|
18
13
|
if (!globalThis[ENDPOINT_KEY]) {
|
|
19
|
-
globalThis[ENDPOINT_KEY] =
|
|
14
|
+
globalThis[ENDPOINT_KEY] = new VerdocsEndpoint({ baseURL: 'https://api.verdocs.com/' });
|
|
20
15
|
}
|
|
21
|
-
var
|
|
22
|
-
var
|
|
23
|
-
// tslint:disable-next-line
|
|
24
|
-
console.log("[JS-SDK] ".concat(r.method.toUpperCase(), " ").concat(r.baseURL).concat(r.url), r.data ? JSON.stringify(r.data) : '');
|
|
25
|
-
return r;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Set the auth token that will be used for Verdocs API calls.
|
|
29
|
-
*
|
|
30
|
-
* ```typescript
|
|
31
|
-
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
32
|
-
*
|
|
33
|
-
* Transport.setAuthorization(accessToken);
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export var setAuthorization = function (accessToken) {
|
|
37
|
-
if (accessToken) {
|
|
38
|
-
endpoint.defaults.headers.Authorization = "Bearer ".concat(accessToken);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
delete endpoint.defaults.headers.Authorization;
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Set the Client ID for Verdocs API calls.
|
|
46
|
-
*
|
|
47
|
-
* ```typescript
|
|
48
|
-
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
49
|
-
*
|
|
50
|
-
* Transport.setClientID('1234);
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
export var setClientID = function (clientID) {
|
|
54
|
-
endpoint.defaults.headers['X-Client-ID'] = clientID;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Set the base URL for API calls. This defaults to https://api.verdocs.com/ and should only be changed after consultation with
|
|
58
|
-
* Verdocs Developer Support (e.g. to access a private API endpoint).
|
|
59
|
-
*
|
|
60
|
-
* ```typescript
|
|
61
|
-
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
62
|
-
*
|
|
63
|
-
* Transport.setBaseUrl('https://my-private-api.verdocs.com');
|
|
64
|
-
* ```
|
|
65
|
-
*/
|
|
66
|
-
export var setBaseUrl = function (baseUrl) {
|
|
67
|
-
endpoint.defaults.baseURL = baseUrl;
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Set the timeout for API calls in milliseconds. 2000-4000ms is recommended for most purposes. 3000ms is the default.
|
|
71
|
-
*
|
|
72
|
-
* ```typescript
|
|
73
|
-
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
74
|
-
*
|
|
75
|
-
* Transport.setTimeout(3000);
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
export var setTimeout = function (timeout) {
|
|
79
|
-
endpoint.defaults.timeout = timeout;
|
|
80
|
-
};
|
|
16
|
+
var globalEndpoint = globalThis[ENDPOINT_KEY];
|
|
17
|
+
var activeEndpoint = globalEndpoint;
|
|
81
18
|
/**
|
|
82
|
-
*
|
|
19
|
+
* Helper to get the endpoint for direct access to HTTP functions.
|
|
83
20
|
*
|
|
84
21
|
* ```typescript
|
|
85
22
|
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
86
23
|
*
|
|
87
|
-
* Transport.
|
|
24
|
+
* console.log('Current timeout', Transport.getEndpoint().defaults.timeout);
|
|
88
25
|
* ```
|
|
89
26
|
*/
|
|
90
|
-
var
|
|
91
|
-
|
|
92
|
-
if (enable && requestLoggerId === null) {
|
|
93
|
-
requestLoggerId = endpoint.interceptors.request.use(requestLogger);
|
|
94
|
-
}
|
|
95
|
-
else if (!enable && requestLoggerId !== null) {
|
|
96
|
-
endpoint.interceptors.request.eject(requestLoggerId);
|
|
97
|
-
}
|
|
27
|
+
export var getEndpoint = function () {
|
|
28
|
+
return activeEndpoint;
|
|
98
29
|
};
|
|
99
30
|
/**
|
|
100
|
-
*
|
|
31
|
+
* Change the endpoint that will be used when making calls to Verdocs. Only one endpoint may be active at a time.
|
|
32
|
+
* Authorization and other configuration data is specific to each endpoint, and will not be carried over when the
|
|
33
|
+
* endpoint is changed. The typical use-case is to change to a sandboxed endpoint for signing sessions, then revert
|
|
34
|
+
* to the global endpoint when the signing session is complete. To revert, pass `null` as the endpoint to use.
|
|
101
35
|
*
|
|
102
36
|
* ```typescript
|
|
103
37
|
* import {Transport} from '@verdocs/js-sdk/HTTP';
|
|
104
38
|
*
|
|
105
|
-
*
|
|
39
|
+
* const mySigningEndpoint = new VerdocsEndpoint();
|
|
40
|
+
* setActiveEndpoint(mySigningEndpoint);
|
|
41
|
+
* ... [Perform signing operations]
|
|
42
|
+
* setActiveEndpoint(null);
|
|
106
43
|
* ```
|
|
107
44
|
*/
|
|
108
|
-
export var
|
|
109
|
-
|
|
45
|
+
export var setActiveEndpoint = function (e) {
|
|
46
|
+
activeEndpoint = e || globalEndpoint;
|
|
110
47
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* to simpliy standard-user operations, Endpoints can be used for isolated session tasks.
|
|
4
|
-
* created independently of a caller's status as an authenticated user.
|
|
5
|
-
* for calls related to signing operations, then
|
|
2
|
+
* A VerdocsEndpoint is a specific connection and authorization session for calling the Verdocs APIs. Where the global
|
|
3
|
+
* Transport is generally used to simpliy standard-user operations, Endpoints can be used for isolated session tasks.
|
|
4
|
+
* For instance, ephemeral signing sessions may be created independently of a caller's status as an authenticated user.
|
|
5
|
+
* In that case, an Endpoint can be created and authenticated, used for calls related to signing operations, then
|
|
6
|
+
* discarded once signing is complete.
|
|
6
7
|
*
|
|
7
8
|
* @module
|
|
8
9
|
*/
|
|
9
10
|
import { AxiosInstance } from 'axios';
|
|
10
|
-
export declare class
|
|
11
|
-
|
|
12
|
-
endpoint: AxiosInstance;
|
|
11
|
+
export declare class VerdocsEndpoint {
|
|
12
|
+
api: AxiosInstance;
|
|
13
13
|
requestLoggerId: number | null;
|
|
14
14
|
/**
|
|
15
15
|
* Create a new Endpoint to call Verdocs services.
|
|
@@ -20,8 +20,9 @@ export declare class Endpoint {
|
|
|
20
20
|
* console.log('Current timeout', Transport.getEndpoint().defaults.timeout);
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
constructor({ baseURL }
|
|
23
|
+
constructor({ baseURL, timeout }?: {
|
|
24
24
|
baseURL?: string;
|
|
25
|
+
timeout?: number;
|
|
25
26
|
});
|
|
26
27
|
/**
|
|
27
28
|
* Set the timeout for API calls in milliseconds. 2000-4000ms is recommended for most purposes. 3000ms is the default.
|
|
@@ -56,6 +57,17 @@ export declare class Endpoint {
|
|
|
56
57
|
* ```
|
|
57
58
|
*/
|
|
58
59
|
setAuthorization(accessToken: string | null): void;
|
|
60
|
+
/**
|
|
61
|
+
* Set the base URL for API calls. May also be set via the constructor.
|
|
62
|
+
*
|
|
63
|
+
* ```typescript
|
|
64
|
+
* import {Endpoint} from '@verdocs/js-sdk/HTTP';
|
|
65
|
+
*
|
|
66
|
+
* const endpoint = new Endpoint();
|
|
67
|
+
* endpoint.setBaseURL('https://api.verdocs.com');
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
setBaseURL(url: string): void;
|
|
59
71
|
/**
|
|
60
72
|
* Enable or disable request logging. This may expose sensitive data in the console log, so it should only be used for debugging.
|
|
61
73
|
*
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* to simpliy standard-user operations, Endpoints can be used for isolated session tasks.
|
|
4
|
-
* created independently of a caller's status as an authenticated user.
|
|
5
|
-
* for calls related to signing operations, then
|
|
2
|
+
* A VerdocsEndpoint is a specific connection and authorization session for calling the Verdocs APIs. Where the global
|
|
3
|
+
* Transport is generally used to simpliy standard-user operations, Endpoints can be used for isolated session tasks.
|
|
4
|
+
* For instance, ephemeral signing sessions may be created independently of a caller's status as an authenticated user.
|
|
5
|
+
* In that case, an Endpoint can be created and authenticated, used for calls related to signing operations, then
|
|
6
|
+
* discarded once signing is complete.
|
|
6
7
|
*
|
|
7
8
|
* @module
|
|
8
9
|
*/
|
|
@@ -12,7 +13,7 @@ var requestLogger = function (r) {
|
|
|
12
13
|
console.log("[JS-SDK] ".concat(r.method.toUpperCase(), " ").concat(r.baseURL).concat(r.url), r.data ? JSON.stringify(r.data) : '');
|
|
13
14
|
return r;
|
|
14
15
|
};
|
|
15
|
-
var
|
|
16
|
+
var VerdocsEndpoint = /** @class */ (function () {
|
|
16
17
|
/**
|
|
17
18
|
* Create a new Endpoint to call Verdocs services.
|
|
18
19
|
*
|
|
@@ -22,13 +23,12 @@ var Endpoint = /** @class */ (function () {
|
|
|
22
23
|
* console.log('Current timeout', Transport.getEndpoint().defaults.timeout);
|
|
23
24
|
* ```
|
|
24
25
|
*/
|
|
25
|
-
function
|
|
26
|
-
var baseURL =
|
|
26
|
+
function VerdocsEndpoint(_a) {
|
|
27
|
+
var _b = _a === void 0 ? {} : _a, baseURL = _b.baseURL, timeout = _b.timeout;
|
|
27
28
|
this.requestLoggerId = null;
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
timeout: 6000,
|
|
29
|
+
this.api = axios.create({
|
|
30
|
+
baseURL: baseURL || 'https://api.verdocs.com',
|
|
31
|
+
timeout: timeout || 6000,
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
@@ -41,8 +41,8 @@ var Endpoint = /** @class */ (function () {
|
|
|
41
41
|
* endpoint.setTimeout(3000);
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
|
-
|
|
45
|
-
this.
|
|
44
|
+
VerdocsEndpoint.prototype.setTimeout = function (timeout) {
|
|
45
|
+
this.api.defaults.timeout = timeout;
|
|
46
46
|
};
|
|
47
47
|
/**
|
|
48
48
|
* Set the Client ID for Verdocs API calls.
|
|
@@ -54,8 +54,8 @@ var Endpoint = /** @class */ (function () {
|
|
|
54
54
|
* endpoint.setClientID('1234);
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
|
-
|
|
58
|
-
this.
|
|
57
|
+
VerdocsEndpoint.prototype.setClientID = function (clientID) {
|
|
58
|
+
this.api.defaults.headers['X-Client-ID'] = clientID;
|
|
59
59
|
};
|
|
60
60
|
/**
|
|
61
61
|
* Set the auth token that will be used for Verdocs API calls.
|
|
@@ -67,14 +67,27 @@ var Endpoint = /** @class */ (function () {
|
|
|
67
67
|
* endpoint.setAuthorization(accessToken);
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
|
-
|
|
70
|
+
VerdocsEndpoint.prototype.setAuthorization = function (accessToken) {
|
|
71
71
|
if (accessToken) {
|
|
72
|
-
this.
|
|
72
|
+
this.api.defaults.headers.Authorization = "Bearer ".concat(accessToken);
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
|
-
delete this.
|
|
75
|
+
delete this.api.defaults.headers.Authorization;
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* Set the base URL for API calls. May also be set via the constructor.
|
|
80
|
+
*
|
|
81
|
+
* ```typescript
|
|
82
|
+
* import {Endpoint} from '@verdocs/js-sdk/HTTP';
|
|
83
|
+
*
|
|
84
|
+
* const endpoint = new Endpoint();
|
|
85
|
+
* endpoint.setBaseURL('https://api.verdocs.com');
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
VerdocsEndpoint.prototype.setBaseURL = function (url) {
|
|
89
|
+
this.api.defaults.baseURL = url;
|
|
90
|
+
};
|
|
78
91
|
/**
|
|
79
92
|
* Enable or disable request logging. This may expose sensitive data in the console log, so it should only be used for debugging.
|
|
80
93
|
*
|
|
@@ -85,14 +98,14 @@ var Endpoint = /** @class */ (function () {
|
|
|
85
98
|
* endpoint.logRequests(true);
|
|
86
99
|
* ```
|
|
87
100
|
*/
|
|
88
|
-
|
|
101
|
+
VerdocsEndpoint.prototype.logRequests = function (enable) {
|
|
89
102
|
if (enable && this.requestLoggerId === null) {
|
|
90
|
-
this.requestLoggerId = this.
|
|
103
|
+
this.requestLoggerId = this.api.interceptors.request.use(requestLogger);
|
|
91
104
|
}
|
|
92
105
|
else if (!enable && this.requestLoggerId !== null) {
|
|
93
|
-
this.
|
|
106
|
+
this.api.interceptors.request.eject(this.requestLoggerId);
|
|
94
107
|
}
|
|
95
108
|
};
|
|
96
|
-
return
|
|
109
|
+
return VerdocsEndpoint;
|
|
97
110
|
}());
|
|
98
|
-
export {
|
|
111
|
+
export { VerdocsEndpoint };
|
package/HTTP/index.d.ts
CHANGED
package/HTTP/index.js
CHANGED
package/Organizations/ApiKeys.js
CHANGED
|
@@ -22,7 +22,7 @@ import { getEndpoint } from '../HTTP/Transport';
|
|
|
22
22
|
*/
|
|
23
23
|
export var getKeys = function (organizationId) {
|
|
24
24
|
return getEndpoint()
|
|
25
|
-
.get("/organizations/".concat(organizationId, "/api_key"))
|
|
25
|
+
.api.get("/organizations/".concat(organizationId, "/api_key"))
|
|
26
26
|
.then(function (r) { return r.data; });
|
|
27
27
|
};
|
|
28
28
|
/**
|
|
@@ -36,7 +36,7 @@ export var getKeys = function (organizationId) {
|
|
|
36
36
|
*/
|
|
37
37
|
export var createKey = function (organizationId, params) {
|
|
38
38
|
return getEndpoint()
|
|
39
|
-
.post("/organizations/".concat(organizationId, "/api_key"), params)
|
|
39
|
+
.api.post("/organizations/".concat(organizationId, "/api_key"), params)
|
|
40
40
|
.then(function (r) { return r.data; });
|
|
41
41
|
};
|
|
42
42
|
/**
|
|
@@ -50,7 +50,7 @@ export var createKey = function (organizationId, params) {
|
|
|
50
50
|
*/
|
|
51
51
|
export var rotateKey = function (organizationId, clientId) {
|
|
52
52
|
return getEndpoint()
|
|
53
|
-
.put("/organizations/".concat(organizationId, "/api_key/").concat(clientId, "/rotate"))
|
|
53
|
+
.api.put("/organizations/".concat(organizationId, "/api_key/").concat(clientId, "/rotate"))
|
|
54
54
|
.then(function (r) { return r.data; });
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
@@ -64,7 +64,7 @@ export var rotateKey = function (organizationId, clientId) {
|
|
|
64
64
|
*/
|
|
65
65
|
export var updateKey = function (organizationId, clientId, params) {
|
|
66
66
|
return getEndpoint()
|
|
67
|
-
.patch("/organizations/".concat(organizationId, "/api_key/").concat(clientId), params)
|
|
67
|
+
.api.patch("/organizations/".concat(organizationId, "/api_key/").concat(clientId), params)
|
|
68
68
|
.then(function (r) { return r.data; });
|
|
69
69
|
};
|
|
70
70
|
/**
|
|
@@ -78,6 +78,6 @@ export var updateKey = function (organizationId, clientId, params) {
|
|
|
78
78
|
*/
|
|
79
79
|
export var deleteKey = function (organizationId, clientId) {
|
|
80
80
|
return getEndpoint()
|
|
81
|
-
.delete("/organizations/".concat(organizationId, "/api_key/").concat(clientId))
|
|
81
|
+
.api.delete("/organizations/".concat(organizationId, "/api_key/").concat(clientId))
|
|
82
82
|
.then(function (r) { return r.data; });
|
|
83
83
|
};
|
package/Organizations/Groups.js
CHANGED
|
@@ -19,7 +19,7 @@ import { getEndpoint } from '../HTTP/Transport';
|
|
|
19
19
|
*/
|
|
20
20
|
export var getGroups = function (organizationId) {
|
|
21
21
|
return getEndpoint()
|
|
22
|
-
.get("/organizations/".concat(organizationId, "/groups"))
|
|
22
|
+
.api.get("/organizations/".concat(organizationId, "/groups"))
|
|
23
23
|
.then(function (r) { return r.data; });
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
@@ -33,31 +33,31 @@ export var getGroups = function (organizationId) {
|
|
|
33
33
|
*/
|
|
34
34
|
export var getGroup = function (organizationId, groupId) {
|
|
35
35
|
return getEndpoint()
|
|
36
|
-
.get("/organizations/".concat(organizationId, "/groups/").concat(groupId))
|
|
36
|
+
.api.get("/organizations/".concat(organizationId, "/groups/").concat(groupId))
|
|
37
37
|
.then(function (r) { return r.data; });
|
|
38
38
|
};
|
|
39
39
|
export var getMembers = function (organizationId, groupId) {
|
|
40
40
|
return getEndpoint()
|
|
41
|
-
.get("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/members"))
|
|
41
|
+
.api.get("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/members"))
|
|
42
42
|
.then(function (r) { return r.data; });
|
|
43
43
|
};
|
|
44
44
|
export var addMembers = function (organizationId, groupId, params) {
|
|
45
45
|
return getEndpoint()
|
|
46
|
-
.post("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/members"), params)
|
|
46
|
+
.api.post("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/members"), params)
|
|
47
47
|
.then(function (r) { return r.data; });
|
|
48
48
|
};
|
|
49
49
|
export var deleteMembers = function (organizationId, groupId, params) {
|
|
50
50
|
return getEndpoint()
|
|
51
|
-
.put("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/delete_members"), params)
|
|
51
|
+
.api.put("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/delete_members"), params)
|
|
52
52
|
.then(function (r) { return r.data; });
|
|
53
53
|
};
|
|
54
54
|
export var addPermission = function (organizationId, groupId, permissionId, params) {
|
|
55
55
|
return getEndpoint()
|
|
56
|
-
.post("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/permissions/").concat(permissionId), params)
|
|
56
|
+
.api.post("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/permissions/").concat(permissionId), params)
|
|
57
57
|
.then(function (r) { return r.data; });
|
|
58
58
|
};
|
|
59
59
|
export var deletePermission = function (organizationId, groupId, permissionId) {
|
|
60
60
|
return getEndpoint()
|
|
61
|
-
.delete("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/permissions/").concat(permissionId))
|
|
61
|
+
.api.delete("/organizations/".concat(organizationId, "/groups/").concat(groupId, "/permissions/").concat(permissionId))
|
|
62
62
|
.then(function (r) { return r.data; });
|
|
63
63
|
};
|
|
@@ -6,36 +6,36 @@
|
|
|
6
6
|
import { getEndpoint } from '../HTTP/Transport';
|
|
7
7
|
export var getInvitations = function (organizationId) {
|
|
8
8
|
return getEndpoint()
|
|
9
|
-
.get("/organizations/".concat(organizationId, "/invitation"))
|
|
9
|
+
.api.get("/organizations/".concat(organizationId, "/invitation"))
|
|
10
10
|
.then(function (r) { return r.data; });
|
|
11
11
|
};
|
|
12
12
|
export var createInvitation = function (organizationId, params) {
|
|
13
13
|
return getEndpoint()
|
|
14
|
-
.post("/organizations/".concat(organizationId, "/invitation"), params)
|
|
14
|
+
.api.post("/organizations/".concat(organizationId, "/invitation"), params)
|
|
15
15
|
.then(function (r) { return r.data; });
|
|
16
16
|
};
|
|
17
17
|
export var deleteInvitation = function (organizationId, email) {
|
|
18
18
|
return getEndpoint()
|
|
19
|
-
.delete("/organizations/".concat(organizationId, "/invitation/").concat(email))
|
|
19
|
+
.api.delete("/organizations/".concat(organizationId, "/invitation/").concat(email))
|
|
20
20
|
.then(function (r) { return r.data; });
|
|
21
21
|
};
|
|
22
22
|
export var updateInvitation = function (organizationId, email, params) {
|
|
23
23
|
return getEndpoint()
|
|
24
|
-
.patch("/organizations/".concat(organizationId, "/invitation/").concat(email), params)
|
|
24
|
+
.api.patch("/organizations/".concat(organizationId, "/invitation/").concat(email), params)
|
|
25
25
|
.then(function (r) { return r.data; });
|
|
26
26
|
};
|
|
27
27
|
export var resendInvitation = function (organizationId, email) {
|
|
28
28
|
return getEndpoint()
|
|
29
|
-
.post("/organizations/".concat(organizationId, "/invitation/").concat(email, "/resend"))
|
|
29
|
+
.api.post("/organizations/".concat(organizationId, "/invitation/").concat(email, "/resend"))
|
|
30
30
|
.then(function (r) { return r.data; });
|
|
31
31
|
};
|
|
32
32
|
export var claimInvitation = function (organizationId, email, params) {
|
|
33
33
|
return getEndpoint()
|
|
34
|
-
.put("/organizations/".concat(organizationId, "/invitation/").concat(email), params)
|
|
34
|
+
.api.put("/organizations/".concat(organizationId, "/invitation/").concat(email), params)
|
|
35
35
|
.then(function (r) { return r.data; });
|
|
36
36
|
};
|
|
37
37
|
export var claimNewUser = function (organizationId, email, token) {
|
|
38
38
|
return getEndpoint()
|
|
39
|
-
.put("/organizations/".concat(organizationId, "/invitation/").concat(email, "/token/").concat(token, "/new_user"))
|
|
39
|
+
.api.put("/organizations/".concat(organizationId, "/invitation/").concat(email, "/token/").concat(token, "/new_user"))
|
|
40
40
|
.then(function (r) { return r.data; });
|
|
41
41
|
};
|