instasign 1.1.5 → 1.1.6

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 CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.1.6] - 2026-03-18
6
+
7
+ ### Added
8
+ - **SignatureType**: Added `signatureType` field to sign requests, supporting values `"otp"`, `"advanced"`, and `"qualified"`. Defaults to `"otp"`.
9
+ - **Sign Requests API**: `signRequests.create()` now accepts an optional `signatureType` parameter.
10
+ - **Envelopes API**: `envelopes.addAll()` now accepts an optional `signatureType` per sign request item.
11
+ - **Type Exports**: `VALID_SIGN_REQUEST_SIGNATURE_TYPES` and `SignatureType` are now exported from the `instasign` package.
12
+
5
13
  ## [1.1.5] - 2026-03-01
6
14
  - **Envelopes API**: Added `addAll` method to add multiple sign requests to an envelope from the SDK.
7
15
  - **Envelopes API**: Renamed `removeSignRequest` to `remove` method to remove a sign request from an envelope from the SDK.
package/README.md CHANGED
@@ -57,12 +57,13 @@ await instasign.envelopes.updateMetadata({
57
57
  });
58
58
 
59
59
  // Add sign requests to an envelope
60
- await instasign.envelopes.addSignRequests({
60
+ await instasign.envelopes.addAll({
61
61
  envelopeId: 'envelope_id_here',
62
62
  signRequests: [
63
63
  {
64
64
  filename: 'contract.pdf',
65
- base64File: '...'
65
+ base64File: '...',
66
+ signatureType: 'advanced', // 'otp' | 'advanced' | 'qualified' — defaults to 'otp'
66
67
  }
67
68
  ]
68
69
  });
@@ -80,6 +81,7 @@ Manage individual signature requests.
80
81
  const signRequest = await instasign.signRequests.create({
81
82
  filename: 'contract.pdf',
82
83
  base64File: '...', // base64 encoded file content
84
+ signatureType: 'otp', // 'otp' | 'advanced' | 'qualified' — defaults to 'otp'
83
85
  });
84
86
 
85
87
  // Retrieve file data
@@ -114,7 +116,7 @@ try {
114
116
  ## TypeScript Support
115
117
 
116
118
  This library is built with TypeScript and provides industry-standard type definitions auto-generated from the Instasign OpenAPI schema. Every method in the SDK is strictly typed, including:
117
- - **Enums**: Fields like `status`, `orderBy`, and `orderDirection` use string union types.
119
+ - **Enums**: Fields like `status`, `signatureType`, `orderBy`, and `orderDirection` use string union types.
118
120
  - **Nested Objects**: Complex structures like the `signRequests` array inside an envelope are fully typed.
119
121
  - **Dates**: Automatic mapping of ISO date strings for `createdAt`, `updatedAt`, and `expirationDate`.
120
122
 
package/dist/index.cjs CHANGED
@@ -36,6 +36,7 @@ __export(index_exports, {
36
36
  VALID_ENVELOPE_STATUSES: () => VALID_ENVELOPE_STATUSES,
37
37
  VALID_ORDER_BY: () => VALID_ORDER_BY,
38
38
  VALID_ORDER_DIRECTION: () => VALID_ORDER_DIRECTION,
39
+ VALID_SIGN_REQUEST_SIGNATURE_TYPES: () => VALID_SIGN_REQUEST_SIGNATURE_TYPES,
39
40
  VALID_SIGN_REQUEST_STATUSES: () => VALID_SIGN_REQUEST_STATUSES,
40
41
  VALID_WEBHOOK_EVENT_TYPES: () => VALID_WEBHOOK_EVENT_TYPES,
41
42
  Webhooks: () => Webhooks
@@ -203,6 +204,7 @@ var VALID_SIGN_REQUEST_STATUSES = [
203
204
  "canceled",
204
205
  "queued"
205
206
  ];
207
+ var VALID_SIGN_REQUEST_SIGNATURE_TYPES = ["otp", "advanced", "qualified"];
206
208
  var VALID_ENVELOPE_STATUSES = [
207
209
  "pending",
208
210
  "in-progress",
@@ -219,6 +221,7 @@ var VALID_ORDER_DIRECTION = ["asc", "desc"];
219
221
  VALID_ENVELOPE_STATUSES,
220
222
  VALID_ORDER_BY,
221
223
  VALID_ORDER_DIRECTION,
224
+ VALID_SIGN_REQUEST_SIGNATURE_TYPES,
222
225
  VALID_SIGN_REQUEST_STATUSES,
223
226
  VALID_WEBHOOK_EVENT_TYPES,
224
227
  Webhooks
@@ -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\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\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\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 '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] as const;\n\nexport type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];\n\nexport const VALID_ENVELOPE_STATUSES = [\n 'pending',\n 'in-progress',\n 'completed',\n 'cancelled',\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"]}
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\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\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\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 '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] 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 'cancelled',\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
@@ -35,6 +35,8 @@ interface paths {
35
35
  [key: string]: unknown;
36
36
  };
37
37
  clientReferenceId?: string;
38
+ /** @enum {string} */
39
+ signatureType?: "otp" | "advanced" | "qualified";
38
40
  }[];
39
41
  };
40
42
  };
@@ -466,6 +468,8 @@ interface paths {
466
468
  clientReferenceId?: string;
467
469
  /** Format: date-time */
468
470
  expirationDate?: string;
471
+ /** @enum {string} */
472
+ signatureType?: "otp" | "advanced" | "qualified";
469
473
  };
470
474
  };
471
475
  };
@@ -613,6 +617,8 @@ interface components {
613
617
  requestId: string;
614
618
  /** @enum {string} */
615
619
  status: "pending" | "completed" | "canceled" | "queued";
620
+ /** @enum {string} */
621
+ signatureType: "otp" | "advanced" | "qualified";
616
622
  fileName: string;
617
623
  fileUrl: string;
618
624
  signedFileUrl?: string;
@@ -641,6 +647,8 @@ interface components {
641
647
  requestId: string;
642
648
  /** @enum {string} */
643
649
  status: "pending" | "completed" | "canceled" | "queued";
650
+ /** @enum {string} */
651
+ signatureType: "otp" | "advanced" | "qualified";
644
652
  fileName: string;
645
653
  fileUrl: string;
646
654
  signedFileUrl?: string;
@@ -678,6 +686,8 @@ interface components {
678
686
  requestId: string;
679
687
  /** @enum {string} */
680
688
  status: "pending" | "completed" | "canceled" | "queued";
689
+ /** @enum {string} */
690
+ signatureType: "otp" | "advanced" | "qualified";
681
691
  fileName: string;
682
692
  originalFile: string;
683
693
  signedFile?: string;
@@ -732,6 +742,8 @@ type WebhookPayloadMap = {
732
742
  };
733
743
  declare const VALID_SIGN_REQUEST_STATUSES: readonly ["pending", "completed", "canceled", "queued"];
734
744
  type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];
745
+ declare const VALID_SIGN_REQUEST_SIGNATURE_TYPES: readonly ["otp", "advanced", "qualified"];
746
+ type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];
735
747
  declare const VALID_ENVELOPE_STATUSES: readonly ["pending", "in-progress", "completed", "cancelled"];
736
748
  type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];
737
749
  type SignRequestMetadata = Record<string, unknown>;
@@ -889,4 +901,4 @@ declare class Instasign {
889
901
  constructor(config: IInstasignConfig);
890
902
  }
891
903
 
892
- export { type $defs, type AddSignRequestsToEnvelopeParams, type AddSignRequestsToEnvelopeResponse, type CompleteSignRequestParams, type CompleteSignRequestResponse, type CreateEnvelopeParams, type CreateEnvelopeResponse, type CreateSignRequestParams, type CreateSignRequestResponse, type Envelope, type EnvelopeCreatedEvent, type EnvelopeExpiredEvent, type EnvelopeListItem, type EnvelopeMetadata, type EnvelopeStatus, Envelopes, type GetEnvelopesParams, type GetFileFromRequestIdParams, type IInstasignConfig, Instasign, type OperationResponse, type OrderBy, type OrderDirection, type RemoveSignRequestFromEnvelopeParams, type RequestBody, type ResponseResult, type SchemaResult, type SignRequest, type SignRequestCreatedEvent, type SignRequestExpiredEvent, type SignRequestMetadata, type SignRequestSignedEvent, type SignRequestStatus, SignRequests, type UpdateEnvelopeMetadataParams, type UpdateEnvelopeMetadataResponse, type UpdateSignRequestMetadataParams, type UpdateSignRequestMetadataResponse, VALID_ENVELOPE_STATUSES, VALID_ORDER_BY, VALID_ORDER_DIRECTION, VALID_SIGN_REQUEST_STATUSES, VALID_WEBHOOK_EVENT_TYPES, type WebhookEvent, type WebhookEventType, type WebhookPayloadMap, type WebhookStatus, Webhooks, type components, type operations, type paths, type webhooks };
904
+ export { type $defs, type AddSignRequestsToEnvelopeParams, type AddSignRequestsToEnvelopeResponse, type CompleteSignRequestParams, type CompleteSignRequestResponse, type CreateEnvelopeParams, type CreateEnvelopeResponse, type CreateSignRequestParams, type CreateSignRequestResponse, type Envelope, type EnvelopeCreatedEvent, type EnvelopeExpiredEvent, type EnvelopeListItem, type EnvelopeMetadata, type EnvelopeStatus, Envelopes, type GetEnvelopesParams, type GetFileFromRequestIdParams, type IInstasignConfig, Instasign, type OperationResponse, type OrderBy, type OrderDirection, type RemoveSignRequestFromEnvelopeParams, type RequestBody, type ResponseResult, type SchemaResult, type SignRequest, type SignRequestCreatedEvent, type SignRequestExpiredEvent, type SignRequestMetadata, type SignRequestSignedEvent, type SignRequestStatus, SignRequests, type SignatureType, type UpdateEnvelopeMetadataParams, type UpdateEnvelopeMetadataResponse, type UpdateSignRequestMetadataParams, type UpdateSignRequestMetadataResponse, VALID_ENVELOPE_STATUSES, VALID_ORDER_BY, VALID_ORDER_DIRECTION, VALID_SIGN_REQUEST_SIGNATURE_TYPES, VALID_SIGN_REQUEST_STATUSES, VALID_WEBHOOK_EVENT_TYPES, type WebhookEvent, type WebhookEventType, type WebhookPayloadMap, type WebhookStatus, Webhooks, type components, type operations, type paths, type webhooks };
package/dist/index.d.ts CHANGED
@@ -35,6 +35,8 @@ interface paths {
35
35
  [key: string]: unknown;
36
36
  };
37
37
  clientReferenceId?: string;
38
+ /** @enum {string} */
39
+ signatureType?: "otp" | "advanced" | "qualified";
38
40
  }[];
39
41
  };
40
42
  };
@@ -466,6 +468,8 @@ interface paths {
466
468
  clientReferenceId?: string;
467
469
  /** Format: date-time */
468
470
  expirationDate?: string;
471
+ /** @enum {string} */
472
+ signatureType?: "otp" | "advanced" | "qualified";
469
473
  };
470
474
  };
471
475
  };
@@ -613,6 +617,8 @@ interface components {
613
617
  requestId: string;
614
618
  /** @enum {string} */
615
619
  status: "pending" | "completed" | "canceled" | "queued";
620
+ /** @enum {string} */
621
+ signatureType: "otp" | "advanced" | "qualified";
616
622
  fileName: string;
617
623
  fileUrl: string;
618
624
  signedFileUrl?: string;
@@ -641,6 +647,8 @@ interface components {
641
647
  requestId: string;
642
648
  /** @enum {string} */
643
649
  status: "pending" | "completed" | "canceled" | "queued";
650
+ /** @enum {string} */
651
+ signatureType: "otp" | "advanced" | "qualified";
644
652
  fileName: string;
645
653
  fileUrl: string;
646
654
  signedFileUrl?: string;
@@ -678,6 +686,8 @@ interface components {
678
686
  requestId: string;
679
687
  /** @enum {string} */
680
688
  status: "pending" | "completed" | "canceled" | "queued";
689
+ /** @enum {string} */
690
+ signatureType: "otp" | "advanced" | "qualified";
681
691
  fileName: string;
682
692
  originalFile: string;
683
693
  signedFile?: string;
@@ -732,6 +742,8 @@ type WebhookPayloadMap = {
732
742
  };
733
743
  declare const VALID_SIGN_REQUEST_STATUSES: readonly ["pending", "completed", "canceled", "queued"];
734
744
  type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];
745
+ declare const VALID_SIGN_REQUEST_SIGNATURE_TYPES: readonly ["otp", "advanced", "qualified"];
746
+ type SignatureType = typeof VALID_SIGN_REQUEST_SIGNATURE_TYPES[number];
735
747
  declare const VALID_ENVELOPE_STATUSES: readonly ["pending", "in-progress", "completed", "cancelled"];
736
748
  type EnvelopeStatus = typeof VALID_ENVELOPE_STATUSES[number];
737
749
  type SignRequestMetadata = Record<string, unknown>;
@@ -889,4 +901,4 @@ declare class Instasign {
889
901
  constructor(config: IInstasignConfig);
890
902
  }
891
903
 
892
- export { type $defs, type AddSignRequestsToEnvelopeParams, type AddSignRequestsToEnvelopeResponse, type CompleteSignRequestParams, type CompleteSignRequestResponse, type CreateEnvelopeParams, type CreateEnvelopeResponse, type CreateSignRequestParams, type CreateSignRequestResponse, type Envelope, type EnvelopeCreatedEvent, type EnvelopeExpiredEvent, type EnvelopeListItem, type EnvelopeMetadata, type EnvelopeStatus, Envelopes, type GetEnvelopesParams, type GetFileFromRequestIdParams, type IInstasignConfig, Instasign, type OperationResponse, type OrderBy, type OrderDirection, type RemoveSignRequestFromEnvelopeParams, type RequestBody, type ResponseResult, type SchemaResult, type SignRequest, type SignRequestCreatedEvent, type SignRequestExpiredEvent, type SignRequestMetadata, type SignRequestSignedEvent, type SignRequestStatus, SignRequests, type UpdateEnvelopeMetadataParams, type UpdateEnvelopeMetadataResponse, type UpdateSignRequestMetadataParams, type UpdateSignRequestMetadataResponse, VALID_ENVELOPE_STATUSES, VALID_ORDER_BY, VALID_ORDER_DIRECTION, VALID_SIGN_REQUEST_STATUSES, VALID_WEBHOOK_EVENT_TYPES, type WebhookEvent, type WebhookEventType, type WebhookPayloadMap, type WebhookStatus, Webhooks, type components, type operations, type paths, type webhooks };
904
+ export { type $defs, type AddSignRequestsToEnvelopeParams, type AddSignRequestsToEnvelopeResponse, type CompleteSignRequestParams, type CompleteSignRequestResponse, type CreateEnvelopeParams, type CreateEnvelopeResponse, type CreateSignRequestParams, type CreateSignRequestResponse, type Envelope, type EnvelopeCreatedEvent, type EnvelopeExpiredEvent, type EnvelopeListItem, type EnvelopeMetadata, type EnvelopeStatus, Envelopes, type GetEnvelopesParams, type GetFileFromRequestIdParams, type IInstasignConfig, Instasign, type OperationResponse, type OrderBy, type OrderDirection, type RemoveSignRequestFromEnvelopeParams, type RequestBody, type ResponseResult, type SchemaResult, type SignRequest, type SignRequestCreatedEvent, type SignRequestExpiredEvent, type SignRequestMetadata, type SignRequestSignedEvent, type SignRequestStatus, SignRequests, type SignatureType, type UpdateEnvelopeMetadataParams, type UpdateEnvelopeMetadataResponse, type UpdateSignRequestMetadataParams, type UpdateSignRequestMetadataResponse, VALID_ENVELOPE_STATUSES, VALID_ORDER_BY, VALID_ORDER_DIRECTION, VALID_SIGN_REQUEST_SIGNATURE_TYPES, VALID_SIGN_REQUEST_STATUSES, VALID_WEBHOOK_EVENT_TYPES, type WebhookEvent, type WebhookEventType, type WebhookPayloadMap, type WebhookStatus, Webhooks, type components, type operations, type paths, type webhooks };
package/dist/index.js CHANGED
@@ -159,6 +159,7 @@ var VALID_SIGN_REQUEST_STATUSES = [
159
159
  "canceled",
160
160
  "queued"
161
161
  ];
162
+ var VALID_SIGN_REQUEST_SIGNATURE_TYPES = ["otp", "advanced", "qualified"];
162
163
  var VALID_ENVELOPE_STATUSES = [
163
164
  "pending",
164
165
  "in-progress",
@@ -174,6 +175,7 @@ export {
174
175
  VALID_ENVELOPE_STATUSES,
175
176
  VALID_ORDER_BY,
176
177
  VALID_ORDER_DIRECTION,
178
+ VALID_SIGN_REQUEST_SIGNATURE_TYPES,
177
179
  VALID_SIGN_REQUEST_STATUSES,
178
180
  VALID_WEBHOOK_EVENT_TYPES,
179
181
  Webhooks
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\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\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\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 '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] as const;\n\nexport type SignRequestStatus = typeof VALID_SIGN_REQUEST_STATUSES[number];\n\nexport const VALID_ENVELOPE_STATUSES = [\n 'pending',\n 'in-progress',\n 'completed',\n 'cancelled',\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\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\n","export const VALID_WEBHOOK_EVENT_TYPES = [\n 'envelope_created',\n 'envelope_expired',\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 '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] 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 'cancelled',\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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instasign",
3
- "version": "1.1.5",
3
+ "version": "1.1.6",
4
4
  "description": "Instasign API wrapper",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
package/types/schema.d.ts CHANGED
@@ -33,6 +33,8 @@ export interface paths {
33
33
  [key: string]: unknown;
34
34
  };
35
35
  clientReferenceId?: string;
36
+ /** @enum {string} */
37
+ signatureType?: "otp" | "advanced" | "qualified";
36
38
  }[];
37
39
  };
38
40
  };
@@ -464,6 +466,8 @@ export interface paths {
464
466
  clientReferenceId?: string;
465
467
  /** Format: date-time */
466
468
  expirationDate?: string;
469
+ /** @enum {string} */
470
+ signatureType?: "otp" | "advanced" | "qualified";
467
471
  };
468
472
  };
469
473
  };
@@ -611,6 +615,8 @@ export interface components {
611
615
  requestId: string;
612
616
  /** @enum {string} */
613
617
  status: "pending" | "completed" | "canceled" | "queued";
618
+ /** @enum {string} */
619
+ signatureType: "otp" | "advanced" | "qualified";
614
620
  fileName: string;
615
621
  fileUrl: string;
616
622
  signedFileUrl?: string;
@@ -639,6 +645,8 @@ export interface components {
639
645
  requestId: string;
640
646
  /** @enum {string} */
641
647
  status: "pending" | "completed" | "canceled" | "queued";
648
+ /** @enum {string} */
649
+ signatureType: "otp" | "advanced" | "qualified";
642
650
  fileName: string;
643
651
  fileUrl: string;
644
652
  signedFileUrl?: string;
@@ -676,6 +684,8 @@ export interface components {
676
684
  requestId: string;
677
685
  /** @enum {string} */
678
686
  status: "pending" | "completed" | "canceled" | "queued";
687
+ /** @enum {string} */
688
+ signatureType: "otp" | "advanced" | "qualified";
679
689
  fileName: string;
680
690
  originalFile: string;
681
691
  signedFile?: string;