instasign 1.1.11 → 1.1.12
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/CHANGELOG.md +5 -0
- package/README.md +2 -2
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -18
- package/dist/index.d.ts +23 -18
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/types/schema.d.ts +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.1.12] - 2026-04-26
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **SignatureType**: `"graphometric"` added to `VALID_SIGN_REQUEST_SIGNATURE_TYPES`. `signRequests.create()` and `envelopes.addAll()` now accept `signatureType: 'graphometric'`.
|
|
9
|
+
|
|
5
10
|
## [1.1.11] - 2026-03-27
|
|
6
11
|
|
|
7
12
|
### Added
|
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ await instasign.envelopes.addAll({
|
|
|
63
63
|
{
|
|
64
64
|
filename: 'contract.pdf',
|
|
65
65
|
base64File: '...',
|
|
66
|
-
signatureType: 'advanced', // 'otp' | 'advanced' | 'qualified' — defaults to 'otp'
|
|
66
|
+
signatureType: 'advanced', // 'otp' | 'advanced' | 'qualified' | 'graphometric' — defaults to 'otp'
|
|
67
67
|
}
|
|
68
68
|
]
|
|
69
69
|
});
|
|
@@ -81,7 +81,7 @@ Manage individual signature requests.
|
|
|
81
81
|
const signRequest = await instasign.signRequests.create({
|
|
82
82
|
filename: 'contract.pdf',
|
|
83
83
|
base64File: '...', // base64 encoded file content
|
|
84
|
-
signatureType: 'otp', // 'otp' | 'advanced' | 'qualified' — defaults to 'otp'
|
|
84
|
+
signatureType: 'otp', // 'otp' | 'advanced' | 'qualified' | 'graphometric' — defaults to 'otp'
|
|
85
85
|
});
|
|
86
86
|
|
|
87
87
|
// Retrieve file data
|
package/dist/index.cjs
CHANGED
|
@@ -254,12 +254,13 @@ var VALID_SIGN_REQUEST_STATUSES = [
|
|
|
254
254
|
"queued",
|
|
255
255
|
"expired"
|
|
256
256
|
];
|
|
257
|
-
var VALID_SIGN_REQUEST_SIGNATURE_TYPES = ["otp", "advanced", "qualified"];
|
|
257
|
+
var VALID_SIGN_REQUEST_SIGNATURE_TYPES = ["otp", "advanced", "qualified", "graphometric"];
|
|
258
258
|
var VALID_ENVELOPE_STATUSES = [
|
|
259
259
|
"pending",
|
|
260
260
|
"in-progress",
|
|
261
261
|
"completed",
|
|
262
|
-
"canceled"
|
|
262
|
+
"canceled",
|
|
263
|
+
"expired"
|
|
263
264
|
];
|
|
264
265
|
var VALID_ORDER_BY = ["updatedAt", "createdAt"];
|
|
265
266
|
var VALID_ORDER_DIRECTION = ["asc", "desc"];
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/resources/Envelopes.ts","../src/resources/SignRequests.ts","../src/resources/Webhooks.ts","../src/instasign.ts","../../types/src/index.ts"],"sourcesContent":["export * from './resources/Envelopes.js';\nexport * from './resources/SignRequests.js';\nexport * from './resources/Webhooks.js';\nexport * from './instasign.js';\nexport * from './types.js';\nexport * from '@instasign/types';\n\nexport type * from '../types/schema.js';","import { AxiosInstance } from 'axios';\nimport {\n Envelope,\n type AddSignRequestsToEnvelopeParams,\n type AddSignRequestsToEnvelopeResponse,\n type CreateEnvelopeParams,\n type CreateEnvelopeResponse,\n type GetEnvelopesParams,\n type OperationResponse,\n type RemoveSignRequestFromEnvelopeParams,\n type UpdateEnvelopeMetadataParams,\n type UpdateEnvelopeMetadataResponse\n} from '../types.js';\n\nexport class Envelopes {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new envelope\n */\n async create(params: CreateEnvelopeParams): Promise<CreateEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:create', params);\n return response.data.result;\n }\n\n /**\n * List envelopes\n */\n async list(params: GetEnvelopesParams = {}): Promise<Envelope[] | undefined> {\n const response = await this.client.post('/functions/envelope:list', params);\n return response.data.result;\n }\n\n /**\n * Retrieve a single envelope with its sign requests\n */\n async get(envelopeId: string): Promise<Envelope | undefined> {\n const response = await this.client.post('/functions/envelope:get', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Complete an envelope\n */\n async complete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:complete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Delete an envelope\n */\n async delete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:delete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Update envelope metadata\n */\n async updateMetadata(params: UpdateEnvelopeMetadataParams): Promise<UpdateEnvelopeMetadataResponse | undefined> {\n const response = await this.client.post('/functions/envelope:update-metadata', params);\n return response.data.result;\n }\n\n /**\n * Remove a sign request from an envelope\n */\n async remove(params: RemoveSignRequestFromEnvelopeParams): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:remove-sign-request', params);\n return response.data.result;\n }\n\n /**\n * Add sign requests to an envelope\n */\n async addAll(params: AddSignRequestsToEnvelopeParams): Promise<AddSignRequestsToEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:add-sign-requests', params);\n return response.data.result;\n }\n}","import { AxiosInstance } from 'axios';\nimport {\n type CreateSignRequestParams,\n type CreateSignRequestResponse,\n type CompleteSignRequestParams,\n type CompleteSignRequestResponse,\n type SignRequest,\n} from '../types.js';\n\nexport class SignRequests {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new sign request\n */\n async create(params: CreateSignRequestParams): Promise<CreateSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:create', params);\n return response.data.result;\n }\n\n /**\n * Complete a sign request\n */\n async complete(params: CompleteSignRequestParams): Promise<CompleteSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:complete', params);\n return response.data.result;\n }\n\n /**\n * Get the file associated with a sign request\n */\n async get(requestId: string): Promise<SignRequest | undefined> {\n const response = await this.client.post('/functions/sign-request:get', { requestId });\n return response.data.result;\n }\n}","import * as crypto from 'node:crypto';\nimport { WebhookEvent } from '../types.js';\n\nexport class Webhooks {\n constructor(private tolerance: number = 300) { }\n\n /**\n * Verify and parse a webhook event\n */\n public constructEvent(payload: string, signatureHeader: string, webhookSecret: string): WebhookEvent {\n const parts = signatureHeader.split(',');\n const timestamp = parts.find((p) => p.startsWith('t='))?.split('=')[1];\n const signature = parts.find((p) => p.startsWith('v1='))?.split('=')[1];\n\n if (!timestamp || !signature) {\n throw new Error('Invalid signature header');\n }\n\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - parseInt(timestamp)) > this.tolerance) {\n throw new Error('Signature too old');\n }\n\n const signedPayload = `${timestamp}.${payload}`;\n const expectedSignature = crypto\n .createHmac('sha256', webhookSecret)\n .update(signedPayload)\n .digest('hex');\n\n const isValid = crypto.timingSafeEqual(\n Buffer.from(signature),\n Buffer.from(expectedSignature)\n );\n\n if (!isValid) {\n throw new Error('Invalid signature');\n }\n\n return JSON.parse(payload) as WebhookEvent;\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { Envelopes } from './resources/Envelopes.js';\nimport { SignRequests } from './resources/SignRequests.js';\nimport { Webhooks } from './resources/Webhooks.js';\n\nexport interface IInstasignConfig {\n /// Required Instasign API key\n apiKey: string;\n\n /// Optional Parse Server config\n appId?: string;\n restApiKey?: string;\n serverUrl?: string;\n /// Optional webhook signature tolerance in seconds (default 300)\n webhookTolerance?: number;\n}\n\nexport class Instasign {\n private client: AxiosInstance;\n\n public readonly envelopes: Envelopes;\n public readonly signRequests: SignRequests;\n public readonly webhooks: Webhooks;\n\n constructor(config: IInstasignConfig) {\n this.client = axios.create({\n baseURL: config.serverUrl,\n headers: {\n 'X-Parse-APPLICATION-ID': config.appId,\n 'X-Parse-REST-API-KEY': config.restApiKey,\n 'x-api-key': config.apiKey,\n 'Content-Type': 'application/json',\n },\n });\n this.client.interceptors.request.use(\n (requestConfig) => {\n if (requestConfig.data) {\n requestConfig.data = this._serializeDateInputs(requestConfig.data);\n }\n return requestConfig;\n },\n );\n this.client.interceptors.response.use(\n (response) => {\n if (response.data && response.data.result) {\n response.data.result = this._normalizeParseDates(response.data.result);\n }\n return response;\n },\n );\n\n this.envelopes = new Envelopes(this.client);\n this.signRequests = new SignRequests(this.client);\n this.webhooks = new Webhooks(config.webhookTolerance ?? 300);\n }\n\n private _serializeDateInputs(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (data instanceof Date) {\n return data.toISOString();\n }\n\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._serializeDateInputs(item));\n }\n\n const serialized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n serialized[key] = this._serializeDateInputs(data[key]);\n }\n }\n return serialized;\n }\n\n private _normalizeParseDates(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._normalizeParseDates(item));\n }\n\n if (data.__type === 'Date' && data.iso) {\n return data.iso;\n }\n\n const normalized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n normalized[key] = this._normalizeParseDates(data[key]);\n }\n }\n return normalized;\n }\n}\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\n 'envelope_all_requests_signed',\n 'sign_request_created',\n 'sign_request_signed',\n 'sign_request_expired',\n] as const;\n\nexport type WebhookEventType = typeof VALID_WEBHOOK_EVENT_TYPES[number];\n\nexport type WebhookStatus = 'pending' | 'success' | 'error';\n\nexport type WebhookPayloadMap = {\n 'envelope_created': { envelopeId: string };\n 'envelope_expired': { envelopeId: string };\n 'envelope_all_requests_signed': { envelopeId: string };\n 'sign_request_created': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_signed': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_expired': { requestId: string };\n};\n\nexport const VALID_SIGN_REQUEST_STATUSES = [\n 'pending',\n 'completed',\n 'canceled',\n 'queued',\n 'expired',\n] as const;\n\nexport type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];\n\nexport const VALID_SIGN_REQUEST_SIGNATURE_TYPES = ['otp', 'advanced', 'qualified'] as const;\n\nexport type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];\n\nexport const VALID_ENVELOPE_STATUSES = [\n 'pending',\n 'in-progress',\n 'completed',\n 'canceled',\n] as const;\n\nexport type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];\n\nexport type SignRequestMetadata = Record<string, unknown>;\nexport type EnvelopeMetadata = Record<string, unknown>;\n\nexport const VALID_ORDER_BY = ['updatedAt', 'createdAt'] as const;\nexport type OrderBy = (typeof VALID_ORDER_BY)[number];\n\nexport const VALID_ORDER_DIRECTION = ['asc', 'desc'] as const;\nexport type OrderDirection = (typeof VALID_ORDER_DIRECTION)[number];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACcO,IAAM,YAAN,MAAgB;AAAA,EACnB,YAAoB,QAAuB;AAAvB;AAAA,EAAyB;AAAA;AAAA;AAAA;AAAA,EAK7C,MAAM,OAAO,QAA2E;AACpF,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,8BAA8B,MAAM;AAC5E,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,KAAK,SAA6B,CAAC,GAAoC;AACzE,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,4BAA4B,MAAM;AAC1E,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,IAAI,YAAmD;AACzD,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,2BAA2B,EAAE,WAAW,CAAC;AACjF,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,YAA4D;AACvE,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,gCAAgC,EAAE,WAAW,CAAC;AACtF,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,YAA4D;AACrE,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,8BAA8B,EAAE,WAAW,CAAC;AACpF,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,eAAe,QAA2F;AAC5G,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,uCAAuC,MAAM;AACrF,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,QAAqF;AAC9F,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,2CAA2C,MAAM;AACzF,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,QAAiG;AAC1G,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,yCAAyC,MAAM;AACvF,WAAO,SAAS,KAAK;AAAA,EACzB;AACJ;;;ACvEO,IAAM,eAAN,MAAmB;AAAA,EACtB,YAAoB,QAAuB;AAAvB;AAAA,EAAyB;AAAA;AAAA;AAAA;AAAA,EAK7C,MAAM,OAAO,QAAiF;AAC1F,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,kCAAkC,MAAM;AAChF,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,QAAqF;AAChG,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,oCAAoC,MAAM;AAClF,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,IAAI,WAAqD;AAC3D,UAAM,WAAW,MAAM,KAAK,OAAO,KAAK,+BAA+B,EAAE,UAAU,CAAC;AACpF,WAAO,SAAS,KAAK;AAAA,EACzB;AACJ;;;ACnCA,aAAwB;AAGjB,IAAM,WAAN,MAAe;AAAA,EAClB,YAAoB,YAAoB,KAAK;AAAzB;AAAA,EAA2B;AAAA;AAAA;AAAA;AAAA,EAKxC,eAAe,SAAiB,iBAAyB,eAAqC;AACjG,UAAM,QAAQ,gBAAgB,MAAM,GAAG;AACvC,UAAM,YAAY,MAAM,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;AACrE,UAAM,YAAY,MAAM,KAAK,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;AAEtE,QAAI,CAAC,aAAa,CAAC,WAAW;AAC1B,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AAEA,UAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;AACxC,QAAI,KAAK,IAAI,MAAM,SAAS,SAAS,CAAC,IAAI,KAAK,WAAW;AACtD,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACvC;AAEA,UAAM,gBAAgB,GAAG,SAAS,IAAI,OAAO;AAC7C,UAAM,oBACD,kBAAW,UAAU,aAAa,EAClC,OAAO,aAAa,EACpB,OAAO,KAAK;AAEjB,UAAM,UAAiB;AAAA,MACnB,OAAO,KAAK,SAAS;AAAA,MACrB,OAAO,KAAK,iBAAiB;AAAA,IACjC;AAEA,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACvC;AAEA,WAAO,KAAK,MAAM,OAAO;AAAA,EAC7B;AACJ;;;ACxCA,mBAAqC;AAiB9B,IAAM,YAAN,MAAgB;AAAA,EACX;AAAA,EAEQ;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YAAY,QAA0B;AAClC,SAAK,SAAS,aAAAA,QAAM,OAAO;AAAA,MACvB,SAAS,OAAO;AAAA,MAChB,SAAS;AAAA,QACL,0BAA0B,OAAO;AAAA,QACjC,wBAAwB,OAAO;AAAA,QAC/B,aAAa,OAAO;AAAA,QACpB,gBAAgB;AAAA,MACpB;AAAA,IACJ,CAAC;AACD,SAAK,OAAO,aAAa,QAAQ;AAAA,MAC7B,CAAC,kBAAkB;AACf,YAAI,cAAc,MAAM;AACpB,wBAAc,OAAO,KAAK,qBAAqB,cAAc,IAAI;AAAA,QACrE;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AACA,SAAK,OAAO,aAAa,SAAS;AAAA,MAC9B,CAAC,aAAa;AACV,YAAI,SAAS,QAAQ,SAAS,KAAK,QAAQ;AACvC,mBAAS,KAAK,SAAS,KAAK,qBAAqB,SAAS,KAAK,MAAM;AAAA,QACzE;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,SAAK,YAAY,IAAI,UAAU,KAAK,MAAM;AAC1C,SAAK,eAAe,IAAI,aAAa,KAAK,MAAM;AAChD,SAAK,WAAW,IAAI,SAAS,OAAO,oBAAoB,GAAG;AAAA,EAC/D;AAAA,EAEQ,qBAAqB,MAAgB;AACzC,QAAI,gBAAgB,MAAM;AACtB,aAAO,KAAK,YAAY;AAAA,IAC5B;AAEA,QAAI,CAAC,QAAQ,OAAO,SAAS,SAAU,QAAO;AAE9C,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,aAAO,KAAK,IAAI,UAAQ,KAAK,qBAAqB,IAAI,CAAC;AAAA,IAC3D;AAEA,UAAM,aAAkB,CAAC;AACzB,eAAW,OAAO,MAAM;AACpB,UAAI,OAAO,UAAU,eAAe,KAAK,MAAM,GAAG,GAAG;AACjD,mBAAW,GAAG,IAAI,KAAK,qBAAqB,KAAK,GAAG,CAAC;AAAA,MACzD;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEQ,qBAAqB,MAAgB;AACzC,QAAI,CAAC,QAAQ,OAAO,SAAS,SAAU,QAAO;AAE9C,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,aAAO,KAAK,IAAI,UAAQ,KAAK,qBAAqB,IAAI,CAAC;AAAA,IAC3D;AAEA,QAAI,KAAK,WAAW,UAAU,KAAK,KAAK;AACpC,aAAO,KAAK;AAAA,IAChB;AAEA,UAAM,aAAkB,CAAC;AACzB,eAAW,OAAO,MAAM;AACpB,UAAI,OAAO,UAAU,eAAe,KAAK,MAAM,GAAG,GAAG;AACjD,mBAAW,GAAG,IAAI,KAAK,qBAAqB,KAAK,GAAG,CAAC;AAAA,MACzD;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACJ;;;AC/FO,IAAM,4BAA4B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAeO,IAAM,8BAA8B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAIO,IAAM,qCAAqC,CAAC,OAAO,YAAY,WAAW;AAI1E,IAAM,0BAA0B;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAOO,IAAM,iBAAiB,CAAC,aAAa,WAAW;AAGhD,IAAM,wBAAwB,CAAC,OAAO,MAAM;","names":["axios"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/resources/Envelopes.ts","../src/resources/SignRequests.ts","../src/resources/Webhooks.ts","../src/instasign.ts","../../types/src/index.ts"],"sourcesContent":["export * from './resources/Envelopes.js';\nexport * from './resources/SignRequests.js';\nexport * from './resources/Webhooks.js';\nexport * from './instasign.js';\nexport * from './types.js';\nexport * from '@instasign/types';\n\nexport type * from '../types/schema.js';","import { AxiosInstance } from 'axios';\nimport {\n Envelope,\n type AddSignRequestsToEnvelopeParams,\n type AddSignRequestsToEnvelopeResponse,\n type CreateEnvelopeParams,\n type CreateEnvelopeResponse,\n type GetEnvelopesParams,\n type OperationResponse,\n type RemoveSignRequestFromEnvelopeParams,\n type UpdateEnvelopeMetadataParams,\n type UpdateEnvelopeMetadataResponse\n} from '../types.js';\n\nexport class Envelopes {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new envelope\n */\n async create(params: CreateEnvelopeParams): Promise<CreateEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:create', params);\n return response.data.result;\n }\n\n /**\n * List envelopes\n */\n async list(params: GetEnvelopesParams = {}): Promise<Envelope[] | undefined> {\n const response = await this.client.post('/functions/envelope:list', params);\n return response.data.result;\n }\n\n /**\n * Retrieve a single envelope with its sign requests\n */\n async get(envelopeId: string): Promise<Envelope | undefined> {\n const response = await this.client.post('/functions/envelope:get', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Complete an envelope\n */\n async complete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:complete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Delete an envelope\n */\n async delete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:delete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Update envelope metadata\n */\n async updateMetadata(params: UpdateEnvelopeMetadataParams): Promise<UpdateEnvelopeMetadataResponse | undefined> {\n const response = await this.client.post('/functions/envelope:update-metadata', params);\n return response.data.result;\n }\n\n /**\n * Remove a sign request from an envelope\n */\n async remove(params: RemoveSignRequestFromEnvelopeParams): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:remove-sign-request', params);\n return response.data.result;\n }\n\n /**\n * Add sign requests to an envelope\n */\n async addAll(params: AddSignRequestsToEnvelopeParams): Promise<AddSignRequestsToEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:add-sign-requests', params);\n return response.data.result;\n }\n}","import { AxiosInstance } from 'axios';\nimport {\n type CreateSignRequestParams,\n type CreateSignRequestResponse,\n type CompleteSignRequestParams,\n type CompleteSignRequestResponse,\n type SignRequest,\n} from '../types.js';\n\nexport class SignRequests {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new sign request\n */\n async create(params: CreateSignRequestParams): Promise<CreateSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:create', params);\n return response.data.result;\n }\n\n /**\n * Complete a sign request\n */\n async complete(params: CompleteSignRequestParams): Promise<CompleteSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:complete', params);\n return response.data.result;\n }\n\n /**\n * Get the file associated with a sign request\n */\n async get(requestId: string): Promise<SignRequest | undefined> {\n const response = await this.client.post('/functions/sign-request:get', { requestId });\n return response.data.result;\n }\n}","import * as crypto from 'node:crypto';\nimport { WebhookEvent } from '../types.js';\n\nexport class Webhooks {\n constructor(private tolerance: number = 300) { }\n\n /**\n * Verify and parse a webhook event\n */\n public constructEvent(payload: string, signatureHeader: string, webhookSecret: string): WebhookEvent {\n const parts = signatureHeader.split(',');\n const timestamp = parts.find((p) => p.startsWith('t='))?.split('=')[1];\n const signature = parts.find((p) => p.startsWith('v1='))?.split('=')[1];\n\n if (!timestamp || !signature) {\n throw new Error('Invalid signature header');\n }\n\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - parseInt(timestamp)) > this.tolerance) {\n throw new Error('Signature too old');\n }\n\n const signedPayload = `${timestamp}.${payload}`;\n const expectedSignature = crypto\n .createHmac('sha256', webhookSecret)\n .update(signedPayload)\n .digest('hex');\n\n const isValid = crypto.timingSafeEqual(\n Buffer.from(signature),\n Buffer.from(expectedSignature)\n );\n\n if (!isValid) {\n throw new Error('Invalid signature');\n }\n\n return JSON.parse(payload) as WebhookEvent;\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { Envelopes } from './resources/Envelopes.js';\nimport { SignRequests } from './resources/SignRequests.js';\nimport { Webhooks } from './resources/Webhooks.js';\n\nexport interface IInstasignConfig {\n /// Required Instasign API key\n apiKey: string;\n\n /// Optional Parse Server config\n appId?: string;\n restApiKey?: string;\n serverUrl?: string;\n /// Optional webhook signature tolerance in seconds (default 300)\n webhookTolerance?: number;\n}\n\nexport class Instasign {\n private client: AxiosInstance;\n\n public readonly envelopes: Envelopes;\n public readonly signRequests: SignRequests;\n public readonly webhooks: Webhooks;\n\n constructor(config: IInstasignConfig) {\n this.client = axios.create({\n baseURL: config.serverUrl,\n headers: {\n 'X-Parse-APPLICATION-ID': config.appId,\n 'X-Parse-REST-API-KEY': config.restApiKey,\n 'x-api-key': config.apiKey,\n 'Content-Type': 'application/json',\n },\n });\n this.client.interceptors.request.use(\n (requestConfig) => {\n if (requestConfig.data) {\n requestConfig.data = this._serializeDateInputs(requestConfig.data);\n }\n return requestConfig;\n },\n );\n this.client.interceptors.response.use(\n (response) => {\n if (response.data && response.data.result) {\n response.data.result = this._normalizeParseDates(response.data.result);\n }\n return response;\n },\n );\n\n this.envelopes = new Envelopes(this.client);\n this.signRequests = new SignRequests(this.client);\n this.webhooks = new Webhooks(config.webhookTolerance ?? 300);\n }\n\n private _serializeDateInputs(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (data instanceof Date) {\n return data.toISOString();\n }\n\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._serializeDateInputs(item));\n }\n\n const serialized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n serialized[key] = this._serializeDateInputs(data[key]);\n }\n }\n return serialized;\n }\n\n private _normalizeParseDates(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._normalizeParseDates(item));\n }\n\n if (data.__type === 'Date' && data.iso) {\n return data.iso;\n }\n\n const normalized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n normalized[key] = this._normalizeParseDates(data[key]);\n }\n }\n return normalized;\n }\n}\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\n 'envelope_all_requests_signed',\n 'sign_request_created',\n 'sign_request_signed',\n 'sign_request_expired',\n] as const;\n\nexport type WebhookEventType = typeof VALID_WEBHOOK_EVENT_TYPES[number];\n\nexport type WebhookStatus = 'pending' | 'success' | 'error';\n\nexport type WebhookPayloadMap = {\n 'envelope_created': { envelopeId: string };\n 'envelope_expired': { envelopeId: string };\n 'envelope_all_requests_signed': { envelopeId: string };\n 'sign_request_created': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_signed': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_expired': { requestId: string };\n};\n\nexport const VALID_SIGN_REQUEST_STATUSES = [\n 'pending',\n 'completed',\n 'canceled',\n 'queued',\n 'expired',\n] as const;\n\nexport type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];\n\nexport const VALID_SIGN_REQUEST_SIGNATURE_TYPES = ['otp', 'advanced', 'qualified', 'graphometric'] as const;\n\nexport type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];\n\nexport const VALID_ENVELOPE_STATUSES = [\n 'pending',\n 'in-progress',\n 'completed',\n 'canceled',\n 'expired',\n] as const;\n\nexport type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];\n\nexport type SignRequestMetadata = Record<string, unknown>;\nexport type EnvelopeMetadata = Record<string, unknown>;\n\nexport const VALID_ORDER_BY = ['updatedAt', 'createdAt'] as const;\nexport type OrderBy = (typeof VALID_ORDER_BY)[number];\n\nexport const VALID_ORDER_DIRECTION = ['asc', 'desc'] as const;\nexport type OrderDirection = (typeof VALID_ORDER_DIRECTION)[number];\n"],"mappings":"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","names":["axios"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -36,7 +36,7 @@ interface paths {
|
|
|
36
36
|
};
|
|
37
37
|
clientReferenceId?: string;
|
|
38
38
|
/** @enum {string} */
|
|
39
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
39
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
40
40
|
/** Format: date-time */
|
|
41
41
|
expirationDate?: string;
|
|
42
42
|
}[];
|
|
@@ -269,7 +269,7 @@ interface paths {
|
|
|
269
269
|
"application/json": {
|
|
270
270
|
name?: string;
|
|
271
271
|
/** @enum {string} */
|
|
272
|
-
status?: "pending" | "in-progress" | "completed" | "canceled";
|
|
272
|
+
status?: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
273
273
|
clientReferenceId?: string;
|
|
274
274
|
signRequests?: string[];
|
|
275
275
|
/** @enum {string} */
|
|
@@ -471,7 +471,7 @@ interface paths {
|
|
|
471
471
|
/** Format: date-time */
|
|
472
472
|
expirationDate?: string;
|
|
473
473
|
/** @enum {string} */
|
|
474
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
474
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
475
475
|
};
|
|
476
476
|
};
|
|
477
477
|
};
|
|
@@ -612,15 +612,15 @@ interface components {
|
|
|
612
612
|
name: string;
|
|
613
613
|
description?: string;
|
|
614
614
|
/** @enum {string} */
|
|
615
|
-
status: "pending" | "in-progress" | "completed" | "canceled";
|
|
615
|
+
status: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
616
616
|
clientReferenceId?: string;
|
|
617
617
|
signRequestsCount: number;
|
|
618
618
|
signRequests: {
|
|
619
619
|
requestId: string;
|
|
620
620
|
/** @enum {string} */
|
|
621
|
-
status: "pending" | "completed" | "canceled" | "
|
|
621
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
622
622
|
/** @enum {string} */
|
|
623
|
-
signatureType: "otp" | "advanced" | "qualified";
|
|
623
|
+
signatureType: "otp" | "advanced" | "qualified" | "graphometric";
|
|
624
624
|
fileName: string;
|
|
625
625
|
fileUrl: string;
|
|
626
626
|
signedFileUrl?: string;
|
|
@@ -644,15 +644,15 @@ interface components {
|
|
|
644
644
|
name: string;
|
|
645
645
|
description?: string;
|
|
646
646
|
/** @enum {string} */
|
|
647
|
-
status: "pending" | "in-progress" | "completed" | "canceled";
|
|
647
|
+
status: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
648
648
|
clientReferenceId?: string;
|
|
649
649
|
signRequestsCount: number;
|
|
650
650
|
signRequests: {
|
|
651
651
|
requestId: string;
|
|
652
652
|
/** @enum {string} */
|
|
653
|
-
status: "pending" | "completed" | "canceled" | "
|
|
653
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
654
654
|
/** @enum {string} */
|
|
655
|
-
signatureType: "otp" | "advanced" | "qualified";
|
|
655
|
+
signatureType: "otp" | "advanced" | "qualified" | "graphometric";
|
|
656
656
|
fileName: string;
|
|
657
657
|
fileUrl: string;
|
|
658
658
|
signedFileUrl?: string;
|
|
@@ -691,9 +691,9 @@ interface components {
|
|
|
691
691
|
SignRequestGetResult: {
|
|
692
692
|
requestId: string;
|
|
693
693
|
/** @enum {string} */
|
|
694
|
-
status: "pending" | "completed" | "canceled" | "
|
|
694
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
695
695
|
/** @enum {string} */
|
|
696
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
696
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
697
697
|
fileName: string;
|
|
698
698
|
originalFile?: string;
|
|
699
699
|
signedFile?: string;
|
|
@@ -754,9 +754,9 @@ type WebhookPayloadMap = {
|
|
|
754
754
|
};
|
|
755
755
|
declare const VALID_SIGN_REQUEST_STATUSES: readonly ["pending", "completed", "canceled", "queued", "expired"];
|
|
756
756
|
type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];
|
|
757
|
-
declare const VALID_SIGN_REQUEST_SIGNATURE_TYPES: readonly ["otp", "advanced", "qualified"];
|
|
757
|
+
declare const VALID_SIGN_REQUEST_SIGNATURE_TYPES: readonly ["otp", "advanced", "qualified", "graphometric"];
|
|
758
758
|
type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];
|
|
759
|
-
declare const VALID_ENVELOPE_STATUSES: readonly ["pending", "in-progress", "completed", "canceled"];
|
|
759
|
+
declare const VALID_ENVELOPE_STATUSES: readonly ["pending", "in-progress", "completed", "canceled", "expired"];
|
|
760
760
|
type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];
|
|
761
761
|
type SignRequestMetadata = Record<string, unknown>;
|
|
762
762
|
type EnvelopeMetadata = Record<string, unknown>;
|
|
@@ -779,14 +779,19 @@ type DateInput = string | Date;
|
|
|
779
779
|
type WithDateInputFields<T, K extends keyof T> = Omit<T, K> & {
|
|
780
780
|
[P in K]?: DateInput;
|
|
781
781
|
};
|
|
782
|
+
type WithOverrides<T, O> = Omit<T, keyof O> & O;
|
|
782
783
|
/** A full envelope with its sign requests */
|
|
783
|
-
|
|
784
|
-
|
|
784
|
+
type Envelope = WithOverrides<SchemaResult<'EnvelopeGetResult'>, {
|
|
785
|
+
status: EnvelopeStatus;
|
|
786
|
+
}>;
|
|
785
787
|
/** Envelope as returned in a list */
|
|
786
|
-
|
|
787
|
-
|
|
788
|
+
type EnvelopeListItem = WithOverrides<SchemaResult<'EnvelopeListResult'>, {
|
|
789
|
+
status: EnvelopeStatus;
|
|
790
|
+
}>;
|
|
788
791
|
type CreateEnvelopeParams = WithDateInputFields<RequestBody<'/functions/envelope:create'>, 'expirationDate'>;
|
|
789
|
-
type GetEnvelopesParams = WithDateInputFields<RequestBody<'/functions/envelope:list'>, 'expirationDateStart' | 'expirationDateEnd'
|
|
792
|
+
type GetEnvelopesParams = WithOverrides<WithDateInputFields<RequestBody<'/functions/envelope:list'>, 'expirationDateStart' | 'expirationDateEnd'>, {
|
|
793
|
+
status?: EnvelopeStatus;
|
|
794
|
+
}>;
|
|
790
795
|
type UpdateEnvelopeMetadataParams = RequestBody<'/functions/envelope:update-metadata'>;
|
|
791
796
|
type RemoveSignRequestFromEnvelopeParams = RequestBody<'/functions/envelope:remove-sign-request'>;
|
|
792
797
|
type AddSignRequestInput = WithDateInputFields<RequestBody<'/functions/envelope:add-sign-requests'>['signRequests'][number], 'expirationDate'>;
|
package/dist/index.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ interface paths {
|
|
|
36
36
|
};
|
|
37
37
|
clientReferenceId?: string;
|
|
38
38
|
/** @enum {string} */
|
|
39
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
39
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
40
40
|
/** Format: date-time */
|
|
41
41
|
expirationDate?: string;
|
|
42
42
|
}[];
|
|
@@ -269,7 +269,7 @@ interface paths {
|
|
|
269
269
|
"application/json": {
|
|
270
270
|
name?: string;
|
|
271
271
|
/** @enum {string} */
|
|
272
|
-
status?: "pending" | "in-progress" | "completed" | "canceled";
|
|
272
|
+
status?: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
273
273
|
clientReferenceId?: string;
|
|
274
274
|
signRequests?: string[];
|
|
275
275
|
/** @enum {string} */
|
|
@@ -471,7 +471,7 @@ interface paths {
|
|
|
471
471
|
/** Format: date-time */
|
|
472
472
|
expirationDate?: string;
|
|
473
473
|
/** @enum {string} */
|
|
474
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
474
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
475
475
|
};
|
|
476
476
|
};
|
|
477
477
|
};
|
|
@@ -612,15 +612,15 @@ interface components {
|
|
|
612
612
|
name: string;
|
|
613
613
|
description?: string;
|
|
614
614
|
/** @enum {string} */
|
|
615
|
-
status: "pending" | "in-progress" | "completed" | "canceled";
|
|
615
|
+
status: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
616
616
|
clientReferenceId?: string;
|
|
617
617
|
signRequestsCount: number;
|
|
618
618
|
signRequests: {
|
|
619
619
|
requestId: string;
|
|
620
620
|
/** @enum {string} */
|
|
621
|
-
status: "pending" | "completed" | "canceled" | "
|
|
621
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
622
622
|
/** @enum {string} */
|
|
623
|
-
signatureType: "otp" | "advanced" | "qualified";
|
|
623
|
+
signatureType: "otp" | "advanced" | "qualified" | "graphometric";
|
|
624
624
|
fileName: string;
|
|
625
625
|
fileUrl: string;
|
|
626
626
|
signedFileUrl?: string;
|
|
@@ -644,15 +644,15 @@ interface components {
|
|
|
644
644
|
name: string;
|
|
645
645
|
description?: string;
|
|
646
646
|
/** @enum {string} */
|
|
647
|
-
status: "pending" | "in-progress" | "completed" | "canceled";
|
|
647
|
+
status: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
648
648
|
clientReferenceId?: string;
|
|
649
649
|
signRequestsCount: number;
|
|
650
650
|
signRequests: {
|
|
651
651
|
requestId: string;
|
|
652
652
|
/** @enum {string} */
|
|
653
|
-
status: "pending" | "completed" | "canceled" | "
|
|
653
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
654
654
|
/** @enum {string} */
|
|
655
|
-
signatureType: "otp" | "advanced" | "qualified";
|
|
655
|
+
signatureType: "otp" | "advanced" | "qualified" | "graphometric";
|
|
656
656
|
fileName: string;
|
|
657
657
|
fileUrl: string;
|
|
658
658
|
signedFileUrl?: string;
|
|
@@ -691,9 +691,9 @@ interface components {
|
|
|
691
691
|
SignRequestGetResult: {
|
|
692
692
|
requestId: string;
|
|
693
693
|
/** @enum {string} */
|
|
694
|
-
status: "pending" | "completed" | "canceled" | "
|
|
694
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
695
695
|
/** @enum {string} */
|
|
696
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
696
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
697
697
|
fileName: string;
|
|
698
698
|
originalFile?: string;
|
|
699
699
|
signedFile?: string;
|
|
@@ -754,9 +754,9 @@ type WebhookPayloadMap = {
|
|
|
754
754
|
};
|
|
755
755
|
declare const VALID_SIGN_REQUEST_STATUSES: readonly ["pending", "completed", "canceled", "queued", "expired"];
|
|
756
756
|
type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];
|
|
757
|
-
declare const VALID_SIGN_REQUEST_SIGNATURE_TYPES: readonly ["otp", "advanced", "qualified"];
|
|
757
|
+
declare const VALID_SIGN_REQUEST_SIGNATURE_TYPES: readonly ["otp", "advanced", "qualified", "graphometric"];
|
|
758
758
|
type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];
|
|
759
|
-
declare const VALID_ENVELOPE_STATUSES: readonly ["pending", "in-progress", "completed", "canceled"];
|
|
759
|
+
declare const VALID_ENVELOPE_STATUSES: readonly ["pending", "in-progress", "completed", "canceled", "expired"];
|
|
760
760
|
type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];
|
|
761
761
|
type SignRequestMetadata = Record<string, unknown>;
|
|
762
762
|
type EnvelopeMetadata = Record<string, unknown>;
|
|
@@ -779,14 +779,19 @@ type DateInput = string | Date;
|
|
|
779
779
|
type WithDateInputFields<T, K extends keyof T> = Omit<T, K> & {
|
|
780
780
|
[P in K]?: DateInput;
|
|
781
781
|
};
|
|
782
|
+
type WithOverrides<T, O> = Omit<T, keyof O> & O;
|
|
782
783
|
/** A full envelope with its sign requests */
|
|
783
|
-
|
|
784
|
-
|
|
784
|
+
type Envelope = WithOverrides<SchemaResult<'EnvelopeGetResult'>, {
|
|
785
|
+
status: EnvelopeStatus;
|
|
786
|
+
}>;
|
|
785
787
|
/** Envelope as returned in a list */
|
|
786
|
-
|
|
787
|
-
|
|
788
|
+
type EnvelopeListItem = WithOverrides<SchemaResult<'EnvelopeListResult'>, {
|
|
789
|
+
status: EnvelopeStatus;
|
|
790
|
+
}>;
|
|
788
791
|
type CreateEnvelopeParams = WithDateInputFields<RequestBody<'/functions/envelope:create'>, 'expirationDate'>;
|
|
789
|
-
type GetEnvelopesParams = WithDateInputFields<RequestBody<'/functions/envelope:list'>, 'expirationDateStart' | 'expirationDateEnd'
|
|
792
|
+
type GetEnvelopesParams = WithOverrides<WithDateInputFields<RequestBody<'/functions/envelope:list'>, 'expirationDateStart' | 'expirationDateEnd'>, {
|
|
793
|
+
status?: EnvelopeStatus;
|
|
794
|
+
}>;
|
|
790
795
|
type UpdateEnvelopeMetadataParams = RequestBody<'/functions/envelope:update-metadata'>;
|
|
791
796
|
type RemoveSignRequestFromEnvelopeParams = RequestBody<'/functions/envelope:remove-sign-request'>;
|
|
792
797
|
type AddSignRequestInput = WithDateInputFields<RequestBody<'/functions/envelope:add-sign-requests'>['signRequests'][number], 'expirationDate'>;
|
package/dist/index.js
CHANGED
|
@@ -209,12 +209,13 @@ var VALID_SIGN_REQUEST_STATUSES = [
|
|
|
209
209
|
"queued",
|
|
210
210
|
"expired"
|
|
211
211
|
];
|
|
212
|
-
var VALID_SIGN_REQUEST_SIGNATURE_TYPES = ["otp", "advanced", "qualified"];
|
|
212
|
+
var VALID_SIGN_REQUEST_SIGNATURE_TYPES = ["otp", "advanced", "qualified", "graphometric"];
|
|
213
213
|
var VALID_ENVELOPE_STATUSES = [
|
|
214
214
|
"pending",
|
|
215
215
|
"in-progress",
|
|
216
216
|
"completed",
|
|
217
|
-
"canceled"
|
|
217
|
+
"canceled",
|
|
218
|
+
"expired"
|
|
218
219
|
];
|
|
219
220
|
var VALID_ORDER_BY = ["updatedAt", "createdAt"];
|
|
220
221
|
var VALID_ORDER_DIRECTION = ["asc", "desc"];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resources/Envelopes.ts","../src/resources/SignRequests.ts","../src/resources/Webhooks.ts","../src/instasign.ts","../../types/src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\nimport {\n Envelope,\n type AddSignRequestsToEnvelopeParams,\n type AddSignRequestsToEnvelopeResponse,\n type CreateEnvelopeParams,\n type CreateEnvelopeResponse,\n type GetEnvelopesParams,\n type OperationResponse,\n type RemoveSignRequestFromEnvelopeParams,\n type UpdateEnvelopeMetadataParams,\n type UpdateEnvelopeMetadataResponse\n} from '../types.js';\n\nexport class Envelopes {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new envelope\n */\n async create(params: CreateEnvelopeParams): Promise<CreateEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:create', params);\n return response.data.result;\n }\n\n /**\n * List envelopes\n */\n async list(params: GetEnvelopesParams = {}): Promise<Envelope[] | undefined> {\n const response = await this.client.post('/functions/envelope:list', params);\n return response.data.result;\n }\n\n /**\n * Retrieve a single envelope with its sign requests\n */\n async get(envelopeId: string): Promise<Envelope | undefined> {\n const response = await this.client.post('/functions/envelope:get', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Complete an envelope\n */\n async complete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:complete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Delete an envelope\n */\n async delete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:delete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Update envelope metadata\n */\n async updateMetadata(params: UpdateEnvelopeMetadataParams): Promise<UpdateEnvelopeMetadataResponse | undefined> {\n const response = await this.client.post('/functions/envelope:update-metadata', params);\n return response.data.result;\n }\n\n /**\n * Remove a sign request from an envelope\n */\n async remove(params: RemoveSignRequestFromEnvelopeParams): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:remove-sign-request', params);\n return response.data.result;\n }\n\n /**\n * Add sign requests to an envelope\n */\n async addAll(params: AddSignRequestsToEnvelopeParams): Promise<AddSignRequestsToEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:add-sign-requests', params);\n return response.data.result;\n }\n}","import { AxiosInstance } from 'axios';\nimport {\n type CreateSignRequestParams,\n type CreateSignRequestResponse,\n type CompleteSignRequestParams,\n type CompleteSignRequestResponse,\n type SignRequest,\n} from '../types.js';\n\nexport class SignRequests {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new sign request\n */\n async create(params: CreateSignRequestParams): Promise<CreateSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:create', params);\n return response.data.result;\n }\n\n /**\n * Complete a sign request\n */\n async complete(params: CompleteSignRequestParams): Promise<CompleteSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:complete', params);\n return response.data.result;\n }\n\n /**\n * Get the file associated with a sign request\n */\n async get(requestId: string): Promise<SignRequest | undefined> {\n const response = await this.client.post('/functions/sign-request:get', { requestId });\n return response.data.result;\n }\n}","import * as crypto from 'node:crypto';\nimport { WebhookEvent } from '../types.js';\n\nexport class Webhooks {\n constructor(private tolerance: number = 300) { }\n\n /**\n * Verify and parse a webhook event\n */\n public constructEvent(payload: string, signatureHeader: string, webhookSecret: string): WebhookEvent {\n const parts = signatureHeader.split(',');\n const timestamp = parts.find((p) => p.startsWith('t='))?.split('=')[1];\n const signature = parts.find((p) => p.startsWith('v1='))?.split('=')[1];\n\n if (!timestamp || !signature) {\n throw new Error('Invalid signature header');\n }\n\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - parseInt(timestamp)) > this.tolerance) {\n throw new Error('Signature too old');\n }\n\n const signedPayload = `${timestamp}.${payload}`;\n const expectedSignature = crypto\n .createHmac('sha256', webhookSecret)\n .update(signedPayload)\n .digest('hex');\n\n const isValid = crypto.timingSafeEqual(\n Buffer.from(signature),\n Buffer.from(expectedSignature)\n );\n\n if (!isValid) {\n throw new Error('Invalid signature');\n }\n\n return JSON.parse(payload) as WebhookEvent;\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { Envelopes } from './resources/Envelopes.js';\nimport { SignRequests } from './resources/SignRequests.js';\nimport { Webhooks } from './resources/Webhooks.js';\n\nexport interface IInstasignConfig {\n /// Required Instasign API key\n apiKey: string;\n\n /// Optional Parse Server config\n appId?: string;\n restApiKey?: string;\n serverUrl?: string;\n /// Optional webhook signature tolerance in seconds (default 300)\n webhookTolerance?: number;\n}\n\nexport class Instasign {\n private client: AxiosInstance;\n\n public readonly envelopes: Envelopes;\n public readonly signRequests: SignRequests;\n public readonly webhooks: Webhooks;\n\n constructor(config: IInstasignConfig) {\n this.client = axios.create({\n baseURL: config.serverUrl,\n headers: {\n 'X-Parse-APPLICATION-ID': config.appId,\n 'X-Parse-REST-API-KEY': config.restApiKey,\n 'x-api-key': config.apiKey,\n 'Content-Type': 'application/json',\n },\n });\n this.client.interceptors.request.use(\n (requestConfig) => {\n if (requestConfig.data) {\n requestConfig.data = this._serializeDateInputs(requestConfig.data);\n }\n return requestConfig;\n },\n );\n this.client.interceptors.response.use(\n (response) => {\n if (response.data && response.data.result) {\n response.data.result = this._normalizeParseDates(response.data.result);\n }\n return response;\n },\n );\n\n this.envelopes = new Envelopes(this.client);\n this.signRequests = new SignRequests(this.client);\n this.webhooks = new Webhooks(config.webhookTolerance ?? 300);\n }\n\n private _serializeDateInputs(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (data instanceof Date) {\n return data.toISOString();\n }\n\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._serializeDateInputs(item));\n }\n\n const serialized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n serialized[key] = this._serializeDateInputs(data[key]);\n }\n }\n return serialized;\n }\n\n private _normalizeParseDates(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._normalizeParseDates(item));\n }\n\n if (data.__type === 'Date' && data.iso) {\n return data.iso;\n }\n\n const normalized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n normalized[key] = this._normalizeParseDates(data[key]);\n }\n }\n return normalized;\n }\n}\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\n 'envelope_all_requests_signed',\n 'sign_request_created',\n 'sign_request_signed',\n 'sign_request_expired',\n] as const;\n\nexport type WebhookEventType = typeof VALID_WEBHOOK_EVENT_TYPES[number];\n\nexport type WebhookStatus = 'pending' | 'success' | 'error';\n\nexport type WebhookPayloadMap = {\n 'envelope_created': { envelopeId: string };\n 'envelope_expired': { envelopeId: string };\n 'envelope_all_requests_signed': { envelopeId: string };\n 'sign_request_created': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_signed': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_expired': { requestId: string };\n};\n\nexport const VALID_SIGN_REQUEST_STATUSES = [\n 'pending',\n 'completed',\n 'canceled',\n 'queued',\n 'expired',\n] as const;\n\nexport type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];\n\nexport const VALID_SIGN_REQUEST_SIGNATURE_TYPES = ['otp', 'advanced', 'qualified'] as const;\n\nexport type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];\n\nexport const VALID_ENVELOPE_STATUSES = [\n 'pending',\n 'in-progress',\n 'completed',\n 'canceled',\n] as const;\n\nexport type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];\n\nexport type SignRequestMetadata = Record<string, unknown>;\nexport type EnvelopeMetadata = Record<string, unknown>;\n\nexport const VALID_ORDER_BY = ['updatedAt', 'createdAt'] as const;\nexport type OrderBy = (typeof VALID_ORDER_BY)[number];\n\nexport const VALID_ORDER_DIRECTION = ['asc', 'desc'] as const;\nexport type OrderDirection = (typeof VALID_ORDER_DIRECTION)[number];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/resources/Envelopes.ts","../src/resources/SignRequests.ts","../src/resources/Webhooks.ts","../src/instasign.ts","../../types/src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\nimport {\n Envelope,\n type AddSignRequestsToEnvelopeParams,\n type AddSignRequestsToEnvelopeResponse,\n type CreateEnvelopeParams,\n type CreateEnvelopeResponse,\n type GetEnvelopesParams,\n type OperationResponse,\n type RemoveSignRequestFromEnvelopeParams,\n type UpdateEnvelopeMetadataParams,\n type UpdateEnvelopeMetadataResponse\n} from '../types.js';\n\nexport class Envelopes {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new envelope\n */\n async create(params: CreateEnvelopeParams): Promise<CreateEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:create', params);\n return response.data.result;\n }\n\n /**\n * List envelopes\n */\n async list(params: GetEnvelopesParams = {}): Promise<Envelope[] | undefined> {\n const response = await this.client.post('/functions/envelope:list', params);\n return response.data.result;\n }\n\n /**\n * Retrieve a single envelope with its sign requests\n */\n async get(envelopeId: string): Promise<Envelope | undefined> {\n const response = await this.client.post('/functions/envelope:get', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Complete an envelope\n */\n async complete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:complete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Delete an envelope\n */\n async delete(envelopeId: string): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:delete', { envelopeId });\n return response.data.result;\n }\n\n /**\n * Update envelope metadata\n */\n async updateMetadata(params: UpdateEnvelopeMetadataParams): Promise<UpdateEnvelopeMetadataResponse | undefined> {\n const response = await this.client.post('/functions/envelope:update-metadata', params);\n return response.data.result;\n }\n\n /**\n * Remove a sign request from an envelope\n */\n async remove(params: RemoveSignRequestFromEnvelopeParams): Promise<OperationResponse | undefined> {\n const response = await this.client.post('/functions/envelope:remove-sign-request', params);\n return response.data.result;\n }\n\n /**\n * Add sign requests to an envelope\n */\n async addAll(params: AddSignRequestsToEnvelopeParams): Promise<AddSignRequestsToEnvelopeResponse | undefined> {\n const response = await this.client.post('/functions/envelope:add-sign-requests', params);\n return response.data.result;\n }\n}","import { AxiosInstance } from 'axios';\nimport {\n type CreateSignRequestParams,\n type CreateSignRequestResponse,\n type CompleteSignRequestParams,\n type CompleteSignRequestResponse,\n type SignRequest,\n} from '../types.js';\n\nexport class SignRequests {\n constructor(private client: AxiosInstance) { }\n\n /**\n * Create a new sign request\n */\n async create(params: CreateSignRequestParams): Promise<CreateSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:create', params);\n return response.data.result;\n }\n\n /**\n * Complete a sign request\n */\n async complete(params: CompleteSignRequestParams): Promise<CompleteSignRequestResponse | undefined> {\n const response = await this.client.post('/functions/sign-request:complete', params);\n return response.data.result;\n }\n\n /**\n * Get the file associated with a sign request\n */\n async get(requestId: string): Promise<SignRequest | undefined> {\n const response = await this.client.post('/functions/sign-request:get', { requestId });\n return response.data.result;\n }\n}","import * as crypto from 'node:crypto';\nimport { WebhookEvent } from '../types.js';\n\nexport class Webhooks {\n constructor(private tolerance: number = 300) { }\n\n /**\n * Verify and parse a webhook event\n */\n public constructEvent(payload: string, signatureHeader: string, webhookSecret: string): WebhookEvent {\n const parts = signatureHeader.split(',');\n const timestamp = parts.find((p) => p.startsWith('t='))?.split('=')[1];\n const signature = parts.find((p) => p.startsWith('v1='))?.split('=')[1];\n\n if (!timestamp || !signature) {\n throw new Error('Invalid signature header');\n }\n\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - parseInt(timestamp)) > this.tolerance) {\n throw new Error('Signature too old');\n }\n\n const signedPayload = `${timestamp}.${payload}`;\n const expectedSignature = crypto\n .createHmac('sha256', webhookSecret)\n .update(signedPayload)\n .digest('hex');\n\n const isValid = crypto.timingSafeEqual(\n Buffer.from(signature),\n Buffer.from(expectedSignature)\n );\n\n if (!isValid) {\n throw new Error('Invalid signature');\n }\n\n return JSON.parse(payload) as WebhookEvent;\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { Envelopes } from './resources/Envelopes.js';\nimport { SignRequests } from './resources/SignRequests.js';\nimport { Webhooks } from './resources/Webhooks.js';\n\nexport interface IInstasignConfig {\n /// Required Instasign API key\n apiKey: string;\n\n /// Optional Parse Server config\n appId?: string;\n restApiKey?: string;\n serverUrl?: string;\n /// Optional webhook signature tolerance in seconds (default 300)\n webhookTolerance?: number;\n}\n\nexport class Instasign {\n private client: AxiosInstance;\n\n public readonly envelopes: Envelopes;\n public readonly signRequests: SignRequests;\n public readonly webhooks: Webhooks;\n\n constructor(config: IInstasignConfig) {\n this.client = axios.create({\n baseURL: config.serverUrl,\n headers: {\n 'X-Parse-APPLICATION-ID': config.appId,\n 'X-Parse-REST-API-KEY': config.restApiKey,\n 'x-api-key': config.apiKey,\n 'Content-Type': 'application/json',\n },\n });\n this.client.interceptors.request.use(\n (requestConfig) => {\n if (requestConfig.data) {\n requestConfig.data = this._serializeDateInputs(requestConfig.data);\n }\n return requestConfig;\n },\n );\n this.client.interceptors.response.use(\n (response) => {\n if (response.data && response.data.result) {\n response.data.result = this._normalizeParseDates(response.data.result);\n }\n return response;\n },\n );\n\n this.envelopes = new Envelopes(this.client);\n this.signRequests = new SignRequests(this.client);\n this.webhooks = new Webhooks(config.webhookTolerance ?? 300);\n }\n\n private _serializeDateInputs(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (data instanceof Date) {\n return data.toISOString();\n }\n\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._serializeDateInputs(item));\n }\n\n const serialized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n serialized[key] = this._serializeDateInputs(data[key]);\n }\n }\n return serialized;\n }\n\n private _normalizeParseDates(data: any): any { // eslint-disable-line @typescript-eslint/no-explicit-any\n if (!data || typeof data !== 'object') return data;\n\n if (Array.isArray(data)) {\n return data.map(item => this._normalizeParseDates(item));\n }\n\n if (data.__type === 'Date' && data.iso) {\n return data.iso;\n }\n\n const normalized: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n normalized[key] = this._normalizeParseDates(data[key]);\n }\n }\n return normalized;\n }\n}\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\n 'envelope_all_requests_signed',\n 'sign_request_created',\n 'sign_request_signed',\n 'sign_request_expired',\n] as const;\n\nexport type WebhookEventType = typeof VALID_WEBHOOK_EVENT_TYPES[number];\n\nexport type WebhookStatus = 'pending' | 'success' | 'error';\n\nexport type WebhookPayloadMap = {\n 'envelope_created': { envelopeId: string };\n 'envelope_expired': { envelopeId: string };\n 'envelope_all_requests_signed': { envelopeId: string };\n 'sign_request_created': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_signed': { requestId: string; status: string; envelopeId?: string };\n 'sign_request_expired': { requestId: string };\n};\n\nexport const VALID_SIGN_REQUEST_STATUSES = [\n 'pending',\n 'completed',\n 'canceled',\n 'queued',\n 'expired',\n] as const;\n\nexport type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];\n\nexport const VALID_SIGN_REQUEST_SIGNATURE_TYPES = ['otp', 'advanced', 'qualified', 'graphometric'] as const;\n\nexport type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];\n\nexport const VALID_ENVELOPE_STATUSES = [\n 'pending',\n 'in-progress',\n 'completed',\n 'canceled',\n 'expired',\n] as const;\n\nexport type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];\n\nexport type SignRequestMetadata = Record<string, unknown>;\nexport type EnvelopeMetadata = Record<string, unknown>;\n\nexport const VALID_ORDER_BY = ['updatedAt', 'createdAt'] as const;\nexport type OrderBy = (typeof VALID_ORDER_BY)[number];\n\nexport const VALID_ORDER_DIRECTION = ['asc', 'desc'] as const;\nexport type OrderDirection = (typeof VALID_ORDER_DIRECTION)[number];\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
package/types/schema.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export interface paths {
|
|
|
34
34
|
};
|
|
35
35
|
clientReferenceId?: string;
|
|
36
36
|
/** @enum {string} */
|
|
37
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
37
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
38
38
|
/** Format: date-time */
|
|
39
39
|
expirationDate?: string;
|
|
40
40
|
}[];
|
|
@@ -267,7 +267,7 @@ export interface paths {
|
|
|
267
267
|
"application/json": {
|
|
268
268
|
name?: string;
|
|
269
269
|
/** @enum {string} */
|
|
270
|
-
status?: "pending" | "in-progress" | "completed" | "canceled";
|
|
270
|
+
status?: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
271
271
|
clientReferenceId?: string;
|
|
272
272
|
signRequests?: string[];
|
|
273
273
|
/** @enum {string} */
|
|
@@ -469,7 +469,7 @@ export interface paths {
|
|
|
469
469
|
/** Format: date-time */
|
|
470
470
|
expirationDate?: string;
|
|
471
471
|
/** @enum {string} */
|
|
472
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
472
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
473
473
|
};
|
|
474
474
|
};
|
|
475
475
|
};
|
|
@@ -610,15 +610,15 @@ export interface components {
|
|
|
610
610
|
name: string;
|
|
611
611
|
description?: string;
|
|
612
612
|
/** @enum {string} */
|
|
613
|
-
status: "pending" | "in-progress" | "completed" | "canceled";
|
|
613
|
+
status: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
614
614
|
clientReferenceId?: string;
|
|
615
615
|
signRequestsCount: number;
|
|
616
616
|
signRequests: {
|
|
617
617
|
requestId: string;
|
|
618
618
|
/** @enum {string} */
|
|
619
|
-
status: "pending" | "completed" | "canceled" | "
|
|
619
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
620
620
|
/** @enum {string} */
|
|
621
|
-
signatureType: "otp" | "advanced" | "qualified";
|
|
621
|
+
signatureType: "otp" | "advanced" | "qualified" | "graphometric";
|
|
622
622
|
fileName: string;
|
|
623
623
|
fileUrl: string;
|
|
624
624
|
signedFileUrl?: string;
|
|
@@ -642,15 +642,15 @@ export interface components {
|
|
|
642
642
|
name: string;
|
|
643
643
|
description?: string;
|
|
644
644
|
/** @enum {string} */
|
|
645
|
-
status: "pending" | "in-progress" | "completed" | "canceled";
|
|
645
|
+
status: "pending" | "in-progress" | "completed" | "canceled" | "expired";
|
|
646
646
|
clientReferenceId?: string;
|
|
647
647
|
signRequestsCount: number;
|
|
648
648
|
signRequests: {
|
|
649
649
|
requestId: string;
|
|
650
650
|
/** @enum {string} */
|
|
651
|
-
status: "pending" | "completed" | "canceled" | "
|
|
651
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
652
652
|
/** @enum {string} */
|
|
653
|
-
signatureType: "otp" | "advanced" | "qualified";
|
|
653
|
+
signatureType: "otp" | "advanced" | "qualified" | "graphometric";
|
|
654
654
|
fileName: string;
|
|
655
655
|
fileUrl: string;
|
|
656
656
|
signedFileUrl?: string;
|
|
@@ -689,9 +689,9 @@ export interface components {
|
|
|
689
689
|
SignRequestGetResult: {
|
|
690
690
|
requestId: string;
|
|
691
691
|
/** @enum {string} */
|
|
692
|
-
status: "pending" | "completed" | "canceled" | "
|
|
692
|
+
status: "pending" | "completed" | "canceled" | "expired" | "queued";
|
|
693
693
|
/** @enum {string} */
|
|
694
|
-
signatureType?: "otp" | "advanced" | "qualified";
|
|
694
|
+
signatureType?: "otp" | "advanced" | "qualified" | "graphometric";
|
|
695
695
|
fileName: string;
|
|
696
696
|
originalFile?: string;
|
|
697
697
|
signedFile?: string;
|