@arbidocs/react 0.5.61 → 0.5.62
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/dist/ProductionDialog.d-CpzslFn0.d.cts +51 -0
- package/dist/ProductionDialog.d-CpzslFn0.d.ts +51 -0
- package/dist/annotations/freeze/index.cjs +14 -14
- package/dist/annotations/freeze/index.js +3 -3
- package/dist/annotations/index.d.cts +3 -2
- package/dist/annotations/index.d.ts +3 -2
- package/dist/artifacts/index.cjs +12 -12
- package/dist/artifacts/index.js +5 -5
- package/dist/bundle-IC65W2AO.cjs +14 -0
- package/dist/{bundle-DCWPYNGD.cjs.map → bundle-IC65W2AO.cjs.map} +1 -1
- package/dist/bundle-YNOX7VIL.js +5 -0
- package/dist/{bundle-JCKKGEJE.js.map → bundle-YNOX7VIL.js.map} +1 -1
- package/dist/calls/livekit/index.cjs +54 -54
- package/dist/calls/livekit/index.js +6 -6
- package/dist/{chunk-S2W3ZOWG.js → chunk-2LV53J46.js} +85 -16
- package/dist/chunk-2LV53J46.js.map +1 -0
- package/dist/{chunk-H3HYKAS5.cjs → chunk-3BFSALPC.cjs} +3 -3
- package/dist/{chunk-H3HYKAS5.cjs.map → chunk-3BFSALPC.cjs.map} +1 -1
- package/dist/{chunk-2NFUEC5O.js → chunk-3NBPMR3X.js} +3 -3
- package/dist/{chunk-2NFUEC5O.js.map → chunk-3NBPMR3X.js.map} +1 -1
- package/dist/chunk-4DTTEUVY.js +1042 -0
- package/dist/chunk-4DTTEUVY.js.map +1 -0
- package/dist/{chunk-U64WCQP3.js → chunk-AOEJ744V.js} +25 -14
- package/dist/chunk-AOEJ744V.js.map +1 -0
- package/dist/{chunk-4E737GNX.cjs → chunk-BLBXADTN.cjs} +86 -73
- package/dist/chunk-BLBXADTN.cjs.map +1 -0
- package/dist/{chunk-X7JXQT6F.cjs → chunk-DVL7EFZZ.cjs} +42 -46
- package/dist/chunk-DVL7EFZZ.cjs.map +1 -0
- package/dist/{chunk-VAMPYLQ4.cjs → chunk-DZUBZ45Y.cjs} +78 -2
- package/dist/chunk-DZUBZ45Y.cjs.map +1 -0
- package/dist/{chunk-OSWKXZTJ.js → chunk-ER4LFZG3.js} +12 -16
- package/dist/chunk-ER4LFZG3.js.map +1 -0
- package/dist/{chunk-5HDC43MF.js → chunk-G4Z3IP4J.js} +72 -3
- package/dist/chunk-G4Z3IP4J.js.map +1 -0
- package/dist/chunk-GOJHU7RZ.cjs +1122 -0
- package/dist/chunk-GOJHU7RZ.cjs.map +1 -0
- package/dist/{chunk-G76ASVVH.cjs → chunk-GQAXAZN7.cjs} +25 -14
- package/dist/chunk-GQAXAZN7.cjs.map +1 -0
- package/dist/{chunk-TUPSNW3B.cjs → chunk-LMW46NBD.cjs} +11 -11
- package/dist/{chunk-TUPSNW3B.cjs.map → chunk-LMW46NBD.cjs.map} +1 -1
- package/dist/{chunk-KRH55LXW.js → chunk-NCMSQACC.js} +37 -24
- package/dist/chunk-NCMSQACC.js.map +1 -0
- package/dist/{chunk-A2XSLTIP.js → chunk-NIKPG4PW.js} +3 -3
- package/dist/{chunk-A2XSLTIP.js.map → chunk-NIKPG4PW.js.map} +1 -1
- package/dist/{chunk-B6I2HRRF.cjs → chunk-PC4O3JDV.cjs} +3 -3
- package/dist/{chunk-B6I2HRRF.cjs.map → chunk-PC4O3JDV.cjs.map} +1 -1
- package/dist/{chunk-M2SZQBCO.js → chunk-SI7DJWBT.js} +3 -3
- package/dist/{chunk-M2SZQBCO.js.map → chunk-SI7DJWBT.js.map} +1 -1
- package/dist/{chunk-3QK4VVPG.cjs → chunk-TGSEQGM3.cjs} +3 -3
- package/dist/{chunk-3QK4VVPG.cjs.map → chunk-TGSEQGM3.cjs.map} +1 -1
- package/dist/{chunk-LCSUCZVX.cjs → chunk-ZNQPUPX6.cjs} +118 -41
- package/dist/chunk-ZNQPUPX6.cjs.map +1 -0
- package/dist/{chunk-CMNZI4WQ.js → chunk-ZTPJNKF2.js} +4 -4
- package/dist/{chunk-CMNZI4WQ.js.map → chunk-ZTPJNKF2.js.map} +1 -1
- package/dist/document-tools/core.cjs +408 -0
- package/dist/document-tools/core.cjs.map +1 -0
- package/dist/document-tools/core.d.cts +957 -0
- package/dist/document-tools/core.d.ts +957 -0
- package/dist/document-tools/core.js +15 -0
- package/dist/document-tools/core.js.map +1 -0
- package/dist/document-tools/index.cjs +347 -1130
- package/dist/document-tools/index.cjs.map +1 -1
- package/dist/document-tools/index.d.cts +12 -950
- package/dist/document-tools/index.d.ts +12 -950
- package/dist/document-tools/index.js +13 -1034
- package/dist/document-tools/index.js.map +1 -1
- package/dist/index.cjs +1510 -1255
- package/dist/index.cjs.map +1 -1
- package/dist/{index.d-BLw5AN0H.d.cts → index.d-AT7wdTWC.d.cts} +50 -2
- package/dist/{index.d-BLw5AN0H.d.ts → index.d-AT7wdTWC.d.ts} +50 -2
- package/dist/{index.d-DPVj21h1.d.ts → index.d-B0dosFZc.d.cts} +6 -6
- package/dist/{index.d-DPVj21h1.d.cts → index.d-B0dosFZc.d.ts} +6 -6
- package/dist/index.d.cts +145 -69
- package/dist/index.d.ts +145 -69
- package/dist/index.js +346 -121
- package/dist/index.js.map +1 -1
- package/dist/{query-keys.d-DEEMzkLz.d.cts → query-keys.d-BFKQVevT.d.cts} +21 -12
- package/dist/{query-keys.d-DEEMzkLz.d.ts → query-keys.d-BFKQVevT.d.ts} +21 -12
- package/dist/shell/index.cjs +68 -40
- package/dist/shell/index.d.cts +1 -1
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +3 -3
- package/dist/store.d-DkFXbWDk.d.ts +35 -0
- package/dist/store.d-GADDvC7w.d.cts +35 -0
- package/dist/ui/index.cjs +149 -149
- package/dist/ui/index.d.cts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +2 -2
- package/package.json +11 -3
- package/dist/ProductionDialog.d-BDJwBSzj.d.ts +0 -84
- package/dist/ProductionDialog.d-DjRQFmQw.d.cts +0 -84
- package/dist/bundle-DCWPYNGD.cjs +0 -14
- package/dist/bundle-JCKKGEJE.js +0 -5
- package/dist/chunk-4E737GNX.cjs.map +0 -1
- package/dist/chunk-5HDC43MF.js.map +0 -1
- package/dist/chunk-G76ASVVH.cjs.map +0 -1
- package/dist/chunk-KRH55LXW.js.map +0 -1
- package/dist/chunk-LCSUCZVX.cjs.map +0 -1
- package/dist/chunk-OSWKXZTJ.js.map +0 -1
- package/dist/chunk-S2W3ZOWG.js.map +0 -1
- package/dist/chunk-U64WCQP3.js.map +0 -1
- package/dist/chunk-VAMPYLQ4.cjs.map +0 -1
- package/dist/chunk-X7JXQT6F.cjs.map +0 -1
|
@@ -1,169 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import { P as ProductionChoices
|
|
1
|
+
import { DocumentToolsClient, DocumentToolsEnvironment } from './core.js';
|
|
2
|
+
export { AdoptedSignature, AnnotatableState, CopyMatch, CreateFileShare, DEFAULT_FIELD_SIZE, DocumentChange, DocumentFetchError, DocumentFetchOptions, DocumentToolsNoticeKind, DocumentToolsNoticeOptions, DocumentToolsNotify, DocumentToolsProvider, DocumentToolsProviderProps, DocumentToolsUser, DocumentUploadQuery, DocumentUploadRequest, FIELD_TYPE_LABELS, FileShare, FrozenCopySource, INFORMAL_SIGNATURE_NOTE, KeypairSource, LEGACY_LAYER_PREFIX, LegacyPrompt, MARK_FIELD_TYPES, MAX_MERGE_ATTEMPTS, MarkupDocument, MarkupDownloadError, MarkupSnapshot, MarkupStore, MarkupStoreError, MarkupStoreOptions, NamedSigner, OlderMarkupNote, ResolvedDocumentToolsEnvironment, SIGNATURE_FIELD_TYPES, SIGNED_LOCKED_REASON, SIGNED_UNCHANGED, SIGNER_PROGRESS_LABELS, SaveSignatureRequestVars, SavedSignature, SignDocumentResponse, SignDocumentVars, SignRequestSignResponse, SignRequestVars, SignatureAppearance, SignatureField, SignatureFieldSuggestions, SignatureFieldType, SignatureRecord, SignatureRequest, SignatureRequestSigner, SignatureStatusResponse, SignatureVerification, SignatureVerificationError, SignerCandidate, SignerDetails, SignerProgress, SigningError, SigningErrorReason, SuggestedSignatureField, UseDocumentBytesOptions, VERIFY_PATH, VerifiedSignature, VersionInfo, addToMarkup, canAnnotate, certificateLink, clientUpload, contentDispositionFileName, copyOpenThreads, createFileShare, createMarkupStore, currentHasMarkup, defaultCertificateUrl, deleteSavedSignature, downloadBlob, fetchDocumentFile, fetchDocumentPdf, fetchDocumentSignatureRequests, fetchDocumentSignatures, fetchMarkupPdf, fetchSavedSignature, fetchSignatureVerification, fieldsFromSuggestions, fieldsInSigningOrder, fileShareBytes, fileShareSigningRequest, forgetLegacyLayer, frozenCopyName, getFileShare, initialsOf, intentText, inviteSigners, isEmailSigner, isLegibleSignatureBox, isSignatureReference, isSignedVersion, marksByVersion, matchSignedCopy, migrateLegacyLayer, newFieldId, openThreadsOf, pngBytes, pngSize, readLegacyLayer, redactionLogName, saveSignatureRequest, sendBlocker, sha256Hex, signDocument, signFileShare, signSignatureRequest, signatureFieldSuggestions, splitSuggestions, storeSavedSignature, suggestSignatureFields, toAppearance, uploadFrozenCopy, uploadQueryString, useDeclineSignatureRequest, useDeleteSavedSignature, useDocumentBytes, useDocumentMarkup, useDocumentSignatureRequests, useDocumentSignatures, useDocumentTools, useFileShare, useFileSharePdf, useFileShares, useInviteSigners, useIsOnline, useOptionalDocumentTools, useSaveSignatureRequest, useSavedSignature, useSignDocument, useSignSignatureRequest, useSignatureRequest, useSignatureRequestsAwaitingMe, useSignatureVerification, useSignerCandidates, useStoreSavedSignature, useVoidSignatureRequest, versionsWithMarkup } from './core.js';
|
|
3
|
+
import { components } from '@arbidocs/client';
|
|
4
|
+
import { P as ProductionChoices } from '../ProductionDialog.d-CpzslFn0.js';
|
|
5
5
|
import { a as BundleFile, b as BundleIndexEntry } from '../bundle.d-BnCSbHy2.js';
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
6
|
+
export { D as DocumentBytesKind, f as documentBytesKey } from '../query-keys.d-BFKQVevT.js';
|
|
7
|
+
import 'react';
|
|
8
|
+
import '../store.d-DkFXbWDk.js';
|
|
9
|
+
import '../model.d-CNtRWKVK.js';
|
|
10
|
+
import '@tanstack/react-query';
|
|
10
11
|
import '@arbidocs/sdk/browser';
|
|
11
12
|
|
|
12
|
-
type DocumentToolsClient = ArbiClient['fetch'];
|
|
13
|
-
type DocumentToolsNoticeKind = 'success' | 'error' | 'info' | 'warning';
|
|
14
|
-
interface DocumentToolsNoticeOptions {
|
|
15
|
-
/** A second line under the message. */
|
|
16
|
-
description?: string;
|
|
17
|
-
/** One action button on the notice ("Email it"). */
|
|
18
|
-
action?: {
|
|
19
|
-
label: string;
|
|
20
|
-
onClick: () => void;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
type DocumentToolsNotify = (message: string, kind: DocumentToolsNoticeKind, options?: DocumentToolsNoticeOptions) => void;
|
|
24
|
-
interface DocumentToolsUser {
|
|
25
|
-
/** The name marks are authored as and the signer's name is prefilled with. */
|
|
26
|
-
name: string;
|
|
27
|
-
/** The sign-in email: signing re-derives the user's key from it and the password. */
|
|
28
|
-
email?: string | null;
|
|
29
|
-
/** The user's id (usr-*): which fields of a signature request are theirs. */
|
|
30
|
-
externalId?: string | null;
|
|
31
|
-
}
|
|
32
|
-
/** What changed about a document, so the host can refresh its own lists and caches. */
|
|
33
|
-
type DocumentChange =
|
|
34
|
-
/** A version's markup got its first mark or lost its last one. */
|
|
35
|
-
'markup'
|
|
36
|
-
/** A signature was added: the document has a new current version. */
|
|
37
|
-
| 'signed'
|
|
38
|
-
/** A new document was made from it (a frozen copy). The ids are the NEW documents. */
|
|
39
|
-
| 'copy'
|
|
40
|
-
/** A new version was saved (the Word editor's Save version): the document's current version. */
|
|
41
|
-
| 'version';
|
|
42
|
-
/**
|
|
43
|
-
* The `/v1/document/upload` query, typed from the API schema: `derived_from` is a list (a
|
|
44
|
-
* production set is derived from every document in it), `shared` a boolean.
|
|
45
|
-
*/
|
|
46
|
-
type DocumentUploadQuery = NonNullable<operations['upload_documents']['parameters']['query']>;
|
|
47
|
-
interface DocumentUploadRequest {
|
|
48
|
-
file: File;
|
|
49
|
-
/** `/v1/document/upload` query: `derived_from`, `derived_role`, `shared`, `folder`. */
|
|
50
|
-
query: DocumentUploadQuery;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* The upload query as a URL query string, for a host that posts the upload itself (an XHR with
|
|
54
|
-
* progress): a list repeats its key (`derived_from=a&derived_from=b`), empty values are left out.
|
|
55
|
-
*/
|
|
56
|
-
declare function uploadQueryString(query: DocumentUploadQuery): string;
|
|
57
|
-
interface DocumentToolsEnvironment {
|
|
58
|
-
client: DocumentToolsClient;
|
|
59
|
-
/**
|
|
60
|
-
* The deployment domain the user's keys are derived for. Needed for signing. Default: the one
|
|
61
|
-
* the host's `Arbi` computes (`arbi.getDeploymentDomain()`), if any.
|
|
62
|
-
*/
|
|
63
|
-
deploymentDomain?: string;
|
|
64
|
-
/** The signed-in user; marks are authored as "You" without one, and signing is unavailable. */
|
|
65
|
-
user?: DocumentToolsUser | null;
|
|
66
|
-
/** Surface a transient message. Default: none (errors still show inline where they can). */
|
|
67
|
-
notify?: DocumentToolsNotify;
|
|
68
|
-
/** Open a document or a version reference (`doc-…@v2`): the copy just made, the signed copy. */
|
|
69
|
-
openDocument?: (documentRef: string) => void;
|
|
70
|
-
/**
|
|
71
|
-
* Documents changed on the server (see {@link DocumentChange}); refresh the host's lists. The
|
|
72
|
-
* tools wait for it before opening the document, so a copy is listed when it opens.
|
|
73
|
-
*/
|
|
74
|
-
onDocumentsChanged?: (documentIds: string[], change: DocumentChange) => void | Promise<void>;
|
|
75
|
-
/** Upload a derived copy. Default: `POST /v1/document/upload` through `client`. */
|
|
76
|
-
uploadDocument?: (request: DocumentUploadRequest) => Promise<{
|
|
77
|
-
doc_ext_ids?: string[];
|
|
78
|
-
} | undefined>;
|
|
79
|
-
/** Save a file to the user's computer. Default: a temporary download link. */
|
|
80
|
-
saveFile?: (blob: Blob, fileName: string) => void;
|
|
81
|
-
/** Email a document (offered once it is signed). Omitted: no "Email it". */
|
|
82
|
-
emailDocument?: (documentRef: string) => void;
|
|
83
|
-
/**
|
|
84
|
-
* The public page that checks a signature (the certificate) in this app. When given, "View
|
|
85
|
-
* certificate" opens it in preference to the backend's `certificate_url` (which is on the
|
|
86
|
-
* deployment domain, like the link embedded in the signed PDF). Without it: the backend's
|
|
87
|
-
* `certificate_url`, else `/verify/{reference}` on this origin.
|
|
88
|
-
*/
|
|
89
|
-
certificateUrl?: (reference: string) => string;
|
|
90
|
-
}
|
|
91
|
-
/** The environment with every default filled in. */
|
|
92
|
-
interface ResolvedDocumentToolsEnvironment extends DocumentToolsEnvironment {
|
|
93
|
-
prepareFileShare: (documentId: string) => Promise<void>;
|
|
94
|
-
registerBeforeFileShare: (documentId: string, flush: () => Promise<void>) => () => void;
|
|
95
|
-
notify: DocumentToolsNotify;
|
|
96
|
-
saveFile: (blob: Blob, fileName: string) => void;
|
|
97
|
-
uploadDocument: (request: DocumentUploadRequest) => Promise<{
|
|
98
|
-
doc_ext_ids?: string[];
|
|
99
|
-
} | undefined>;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Save a blob through a temporary `<a download>`. The object URL is revoked a minute later, not at
|
|
103
|
-
* once: revoking straight after `click()` can cancel the download (Safari, and large files
|
|
104
|
-
* elsewhere) before the browser has read the blob.
|
|
105
|
-
*/
|
|
106
|
-
declare function downloadBlob(blob: Blob, fileName: string): void;
|
|
107
|
-
/** The default upload: multipart `files` to `/v1/document/upload` through the API client. */
|
|
108
|
-
declare function clientUpload(client: DocumentToolsClient): ({ file, query }: DocumentUploadRequest) => Promise<{
|
|
109
|
-
doc_ext_ids?: string[] | undefined;
|
|
110
|
-
version?: number | null | undefined;
|
|
111
|
-
batch_id?: string | null | undefined;
|
|
112
|
-
skipped?: {
|
|
113
|
-
file_name: string;
|
|
114
|
-
reason: string;
|
|
115
|
-
}[] | undefined;
|
|
116
|
-
} | undefined>;
|
|
117
|
-
declare function defaultCertificateUrl(reference: string): string;
|
|
118
|
-
/**
|
|
119
|
-
* Where "View certificate" goes for a signature: the host's `certificateUrl(reference)` when it
|
|
120
|
-
* gives one, else the `certificate_url` the backend returned, else `/verify/{reference}` here.
|
|
121
|
-
*/
|
|
122
|
-
declare function certificateLink(signature: {
|
|
123
|
-
reference: string;
|
|
124
|
-
certificate_url?: string | null;
|
|
125
|
-
}, certificateUrl?: (reference: string) => string): string;
|
|
126
|
-
interface DocumentToolsProviderProps extends DocumentToolsEnvironment {
|
|
127
|
-
children: ReactNode;
|
|
128
|
-
}
|
|
129
|
-
declare function DocumentToolsProvider({ children, ...env }: DocumentToolsProviderProps): React.JSX.Element;
|
|
130
|
-
/** The host's environment, or `null` outside a `<DocumentToolsProvider>`. */
|
|
131
|
-
declare function useOptionalDocumentTools(): ResolvedDocumentToolsEnvironment | null;
|
|
132
|
-
/** The host's environment; throws outside a `<DocumentToolsProvider>`. */
|
|
133
|
-
declare function useDocumentTools(): ResolvedDocumentToolsEnvironment;
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* A document's bytes, through the host's API client: the PDF the viewer and the tools draw on
|
|
137
|
-
* (`/view`: the file itself for a PDF, its PDF rendering for a Word or text file) and the stored
|
|
138
|
-
* file (`/download`). Either takes a document id or a version reference `doc-…@v{n}`.
|
|
139
|
-
*/
|
|
140
|
-
|
|
141
|
-
interface DocumentFetchOptions {
|
|
142
|
-
/** The version to fetch. Default: the one `documentRef` names, else the current version. */
|
|
143
|
-
version?: number | null;
|
|
144
|
-
signal?: AbortSignal;
|
|
145
|
-
}
|
|
146
|
-
/** A document's bytes could not be fetched; `status` is the HTTP status. */
|
|
147
|
-
declare class DocumentFetchError extends Error {
|
|
148
|
-
readonly status: number;
|
|
149
|
-
constructor(message: string, status: number);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* The file name a `Content-Disposition` header gives, or `undefined`. Prefers the RFC 5987
|
|
153
|
-
* `filename*=UTF-8''…` form (percent-encoded, any script) over the plain `filename=`.
|
|
154
|
-
*/
|
|
155
|
-
declare function contentDispositionFileName(header: string | null | undefined): string | undefined;
|
|
156
|
-
/**
|
|
157
|
-
* The PDF of a document version: `GET /v1/document/{id}/view?version=` with
|
|
158
|
-
* `Accept: application/pdf`. Throws a {@link DocumentFetchError} when there is none (yet).
|
|
159
|
-
*/
|
|
160
|
-
declare function fetchDocumentPdf(client: DocumentToolsClient, documentRef: string, options?: DocumentFetchOptions): Promise<Blob>;
|
|
161
|
-
/**
|
|
162
|
-
* The stored file of a document version, as uploaded: `GET /v1/document/{id}/download`. When the
|
|
163
|
-
* server names the file (`Content-Disposition`), the result is a `File` carrying that name.
|
|
164
|
-
*/
|
|
165
|
-
declare function fetchDocumentFile(client: DocumentToolsClient, documentRef: string, options?: DocumentFetchOptions): Promise<Blob | File>;
|
|
166
|
-
|
|
167
13
|
/**
|
|
168
14
|
* Production sets: number the selected documents with Bates labels (optionally a QR code back to
|
|
169
15
|
* each document and an index page) and save the result back to the workspace. The dialog is
|
|
@@ -184,6 +30,8 @@ type ProductionSource = Pick<components['schemas']['DocResponse'], 'external_id'
|
|
|
184
30
|
doc_metadata?: {
|
|
185
31
|
title?: string | null;
|
|
186
32
|
} | null;
|
|
33
|
+
/** The document's workspace: the produced files are saved there, named on the upload. */
|
|
34
|
+
workspace_ext_id?: string | null;
|
|
187
35
|
};
|
|
188
36
|
declare const PRODUCTIONS_FOLDER = "Productions";
|
|
189
37
|
declare const isPdfDocument: (doc: ProductionSource) => boolean;
|
|
@@ -239,790 +87,4 @@ interface BuiltProduction {
|
|
|
239
87
|
*/
|
|
240
88
|
declare function buildProduction(client: DocumentToolsClient, documents: readonly ProductionSource[], choices: ProductionChoices, options: BuildProductionOptions): Promise<BuiltProduction>;
|
|
241
89
|
|
|
242
|
-
|
|
243
|
-
* The annotation store for a document version's MARKUP on the server: `GET`/`PUT
|
|
244
|
-
* /v1/document/{id}/markup`. The server keeps the marks as native PDF annotations in an encrypted
|
|
245
|
-
* `{doc}-markup.pdf` next to the version (same document id, the document's own privacy); this store
|
|
246
|
-
* only moves the layer and its revision.
|
|
247
|
-
*
|
|
248
|
-
* Optimistic concurrency: every save names the revision it started from. When someone else saved
|
|
249
|
-
* first the server answers 409; the store then re-reads the latest layer, merges it with ours by
|
|
250
|
-
* annotation id (`mergeLayers`: union, last edit wins per mark, replies unioned, our deletions
|
|
251
|
-
* stay deleted) and saves again. The merged layer is returned so the viewer shows their marks too.
|
|
252
|
-
*
|
|
253
|
-
* Deletions are tracked as tombstones for the session: an id this session has seen that is no
|
|
254
|
-
* longer in the layer it saves was deleted here, and a concurrent edit elsewhere cannot bring it
|
|
255
|
-
* back.
|
|
256
|
-
*/
|
|
257
|
-
|
|
258
|
-
/** How many times a save re-reads and merges after a 409 before giving up (each is a real race). */
|
|
259
|
-
declare const MAX_MERGE_ATTEMPTS = 5;
|
|
260
|
-
interface MarkupSnapshot {
|
|
261
|
-
revision: number;
|
|
262
|
-
count: number;
|
|
263
|
-
canEdit: boolean;
|
|
264
|
-
}
|
|
265
|
-
interface MarkupStoreOptions {
|
|
266
|
-
/** The version the markup belongs to; omitted = the document's current version. */
|
|
267
|
-
version?: number;
|
|
268
|
-
/** The ARBI API client (see `DocumentToolsEnvironment.client`). */
|
|
269
|
-
client: DocumentToolsClient;
|
|
270
|
-
/** After every successful save: the new revision and how many marks the markup holds. */
|
|
271
|
-
onSaved?: (snapshot: MarkupSnapshot) => void;
|
|
272
|
-
}
|
|
273
|
-
interface MarkupStore extends AnnotationStore {
|
|
274
|
-
snapshot(): MarkupSnapshot;
|
|
275
|
-
}
|
|
276
|
-
declare class MarkupStoreError extends Error {
|
|
277
|
-
readonly status?: number | undefined;
|
|
278
|
-
constructor(message: string, status?: number | undefined);
|
|
279
|
-
}
|
|
280
|
-
declare function createMarkupStore({ version, client, onSaved }: MarkupStoreOptions): MarkupStore;
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* Moving marks INTO a version's markup without the viewer: the one-time migration of layers kept in
|
|
284
|
-
* this browser before markup lived on the server, and "copy open comments" from an older version's
|
|
285
|
-
* markup onto the current one (a new version — signed, synced from Drive, saved from Word — starts
|
|
286
|
-
* with an empty markup; redactions never carry over).
|
|
287
|
-
*
|
|
288
|
-
* Both are unions by annotation id, so running them twice adds nothing twice.
|
|
289
|
-
*/
|
|
290
|
-
|
|
291
|
-
declare const LEGACY_LAYER_PREFIX = "arbi:annotations:";
|
|
292
|
-
interface VersionInfo {
|
|
293
|
-
n: number;
|
|
294
|
-
created_at?: string | null;
|
|
295
|
-
markup_count?: number | null;
|
|
296
|
-
}
|
|
297
|
-
/** The layer this browser kept for a document before markup moved to the server, if any. */
|
|
298
|
-
declare function readLegacyLayer(documentId: string): AnnotationLayer | null;
|
|
299
|
-
declare function forgetLegacyLayer(documentId: string): void;
|
|
300
|
-
/**
|
|
301
|
-
* Which version each legacy mark belongs to: the version that was current when it was made. A
|
|
302
|
-
* document's id is the id of its first version (older layers were made on it); a layer made after
|
|
303
|
-
* the versions moved inside the document was made on whatever version was then current.
|
|
304
|
-
*/
|
|
305
|
-
declare function marksByVersion(layer: AnnotationLayer, versions: VersionInfo[]): Map<number, Annotation[]>;
|
|
306
|
-
/** Add marks to one version's markup (union by id); returns how many were new. */
|
|
307
|
-
declare function addToMarkup(documentId: string, version: number | undefined, marks: Annotation[], client: DocumentToolsClient): Promise<number>;
|
|
308
|
-
/**
|
|
309
|
-
* Migrate this browser's layer for a document into its markup, version by version, then forget
|
|
310
|
-
* the browser copy. Throws (and keeps the browser copy) if any version could not be saved.
|
|
311
|
-
*/
|
|
312
|
-
declare function migrateLegacyLayer(documentId: string, layer: AnnotationLayer, versions: VersionInfo[], currentVersion: number, client: DocumentToolsClient): Promise<number>;
|
|
313
|
-
/** The unresolved comment threads (with replies) of a version's markup. */
|
|
314
|
-
declare function openThreadsOf(documentId: string, version: number, client: DocumentToolsClient): Promise<Annotation[]>;
|
|
315
|
-
/** Copy the open comment threads of an older version onto the current version's markup. */
|
|
316
|
-
declare function copyOpenThreads(documentId: string, fromVersion: number, client: DocumentToolsClient): Promise<number>;
|
|
317
|
-
/** Version entries of a document as the API returns them (`DocResponse.versions`). */
|
|
318
|
-
declare function versionsWithMarkup(versions: VersionInfo[] | null | undefined): VersionInfo[];
|
|
319
|
-
|
|
320
|
-
/**
|
|
321
|
-
* "Download with markup": a document version's markup PDF, the PDF with its annotations as native
|
|
322
|
-
* PDF annotations (comments, highlights, stamps, unapplied redactions), which Acrobat and Preview
|
|
323
|
-
* show. The plain Download serves the original. Kept apart from the annotation layer code so a
|
|
324
|
-
* documents list can offer it without loading the annotation tools.
|
|
325
|
-
*
|
|
326
|
-
* A SIGNED version is locked: nothing but a further signature changes it. Its markup stays in the
|
|
327
|
-
* separate markup layer (a title beside the signature, say) and is never written into its PDF, so
|
|
328
|
-
* it has no "Download with markup"; the plain Download is the signed file as it is.
|
|
329
|
-
*/
|
|
330
|
-
|
|
331
|
-
interface DocumentVersions {
|
|
332
|
-
current_version?: number | null;
|
|
333
|
-
versions?: Array<{
|
|
334
|
-
n: number;
|
|
335
|
-
markup_count?: number | null;
|
|
336
|
-
reason?: string | null;
|
|
337
|
-
}> | null;
|
|
338
|
-
}
|
|
339
|
-
/** Why "Download with markup" is off for a signed version. */
|
|
340
|
-
declare const SIGNED_LOCKED_REASON = "Signed documents can't be changed \u2014 download the signed file instead";
|
|
341
|
-
/** Whether a version (default: the current one) is a signed copy, per its version entry. */
|
|
342
|
-
declare function isSignedVersion(doc: DocumentVersions, version?: number): boolean;
|
|
343
|
-
declare class MarkupDownloadError extends Error {
|
|
344
|
-
readonly status?: number | undefined;
|
|
345
|
-
constructor(message: string, status?: number | undefined);
|
|
346
|
-
}
|
|
347
|
-
/** Whether a document's current version has markup (per its version entries). */
|
|
348
|
-
declare function currentHasMarkup(doc: DocumentVersions): boolean;
|
|
349
|
-
/** Fetch a version's markup PDF (default: the current version's). */
|
|
350
|
-
declare function fetchMarkupPdf(client: DocumentToolsClient, documentId: string, version?: number): Promise<{
|
|
351
|
-
blob: Blob;
|
|
352
|
-
fileName: string;
|
|
353
|
-
}>;
|
|
354
|
-
|
|
355
|
-
declare const SIGNED_UNCHANGED = "The signed PDF is unchanged: the comments are kept beside it as markup.";
|
|
356
|
-
interface MarkupDocument {
|
|
357
|
-
external_id: string;
|
|
358
|
-
shared?: boolean | null;
|
|
359
|
-
current_version?: number | null;
|
|
360
|
-
versions?: VersionInfo[] | null;
|
|
361
|
-
}
|
|
362
|
-
interface LegacyPrompt {
|
|
363
|
-
count: number;
|
|
364
|
-
busy: boolean;
|
|
365
|
-
add: () => void;
|
|
366
|
-
discard: () => void;
|
|
367
|
-
}
|
|
368
|
-
interface OlderMarkupNote {
|
|
369
|
-
version: number;
|
|
370
|
-
busy: boolean;
|
|
371
|
-
/** The current version is a signed copy: say that copying leaves its signed PDF as it is. */
|
|
372
|
-
signed: boolean;
|
|
373
|
-
copy: () => void;
|
|
374
|
-
}
|
|
375
|
-
declare function useDocumentMarkup(documentData: MarkupDocument | null | undefined,
|
|
376
|
-
/** The version on screen when it is an older one (a read-only snapshot). */
|
|
377
|
-
snapshotVersion: number | undefined,
|
|
378
|
-
/**
|
|
379
|
-
* Whether the version on screen is a signed, sealed copy: locked, so no "Download with markup"
|
|
380
|
-
* (and, for the current version, copied comments leave its signed PDF as it is).
|
|
381
|
-
*/
|
|
382
|
-
currentSigned?: boolean): {
|
|
383
|
-
hasMarkup: boolean;
|
|
384
|
-
showOriginal: boolean;
|
|
385
|
-
setShowOriginal: React.Dispatch<React.SetStateAction<boolean>>;
|
|
386
|
-
onMarkupChange: (snapshot: MarkupSnapshot) => void;
|
|
387
|
-
downloadMarkup: () => Promise<void>;
|
|
388
|
-
legacyPrompt: LegacyPrompt | null;
|
|
389
|
-
olderNote: OlderMarkupNote | null;
|
|
390
|
-
};
|
|
391
|
-
|
|
392
|
-
/**
|
|
393
|
-
* Saving a frozen copy: a SEPARATE document derived from the version it was frozen from
|
|
394
|
-
* (`derived_from`, role `redaction` or `annotated`), never a new version of it. The original keeps
|
|
395
|
-
* its place in every list and stays the current version; the copy sits beside it, in the same
|
|
396
|
-
* folder and with the same workspace sharing.
|
|
397
|
-
*/
|
|
398
|
-
|
|
399
|
-
interface FrozenCopySource {
|
|
400
|
-
/** The version on screen, which the copy is derived from. */
|
|
401
|
-
documentId: string;
|
|
402
|
-
fileName: string | null | undefined;
|
|
403
|
-
shared: boolean;
|
|
404
|
-
folder?: string | null;
|
|
405
|
-
}
|
|
406
|
-
/** "Contract.pdf" becomes "Contract (redacted).pdf"; a .txt or .docx keeps its extension inside. */
|
|
407
|
-
declare function frozenCopyName(fileName: string | null | undefined, redacted: boolean): string;
|
|
408
|
-
declare function redactionLogName(fileName: string | null | undefined): string;
|
|
409
|
-
/** Upload the frozen bytes as a new document derived from `source`; returns its id, if any. */
|
|
410
|
-
declare function uploadFrozenCopy(upload: NonNullable<DocumentToolsEnvironment['uploadDocument']>, bytes: Uint8Array, source: FrozenCopySource, redacted: boolean): Promise<string | undefined>;
|
|
411
|
-
|
|
412
|
-
/**
|
|
413
|
-
* Whether the document on screen can be annotated: only a PDF the viewer is actually showing.
|
|
414
|
-
* Text and Word files are shown as a PDF too, so they qualify; images, audio, video, files that
|
|
415
|
-
* cannot be previewed, drafts and streaming output do not, and neither does a read-only snapshot
|
|
416
|
-
* or a comparison.
|
|
417
|
-
*/
|
|
418
|
-
interface AnnotatableState {
|
|
419
|
-
activeTab: string;
|
|
420
|
-
/** The PDF bytes have been fetched. */
|
|
421
|
-
hasPdf: boolean;
|
|
422
|
-
isImage: boolean;
|
|
423
|
-
isVideo: boolean;
|
|
424
|
-
isAudio: boolean;
|
|
425
|
-
isDownloadOnly: boolean;
|
|
426
|
-
isDraft: boolean;
|
|
427
|
-
isStreaming: boolean;
|
|
428
|
-
isSnapshot: boolean;
|
|
429
|
-
isComparing: boolean;
|
|
430
|
-
}
|
|
431
|
-
declare function canAnnotate(s: AnnotatableState): boolean;
|
|
432
|
-
|
|
433
|
-
/**
|
|
434
|
-
* Reactive connectivity from React Query's `onlineManager` (the browser's online events, plus
|
|
435
|
-
* whatever the host feeds it, e.g. a WebSocket). The markup autosave waits while it is false.
|
|
436
|
-
*/
|
|
437
|
-
declare function useIsOnline(): boolean;
|
|
438
|
-
|
|
439
|
-
interface UseDocumentBytesOptions {
|
|
440
|
-
/** The document's current version, so a new one reads afresh. */
|
|
441
|
-
version: number | null | undefined;
|
|
442
|
-
kind: DocumentBytesKind;
|
|
443
|
-
enabled?: boolean;
|
|
444
|
-
/**
|
|
445
|
-
* Bytes to use when the network cannot give them (a copy kept on this device): asked first when
|
|
446
|
-
* offline, and again when the request fails.
|
|
447
|
-
*/
|
|
448
|
-
fallback?: () => Promise<Blob | undefined>;
|
|
449
|
-
}
|
|
450
|
-
/** A document's (or version reference's) bytes; see {@link UseDocumentBytesOptions}. */
|
|
451
|
-
declare function useDocumentBytes(documentRef: string, options: UseDocumentBytesOptions): _tanstack_react_query.UseQueryResult<NoInfer<Blob>, Error>;
|
|
452
|
-
|
|
453
|
-
/**
|
|
454
|
-
* Who signs: the name only. A role, a firm or a place go on the page as ordinary annotation text,
|
|
455
|
-
* which is not part of the signature.
|
|
456
|
-
*/
|
|
457
|
-
type SignerDetails = components['schemas']['SignerDetails'];
|
|
458
|
-
/** Same sentence as `esign.intent_text`; the dialog refuses to sign if the server's differs. */
|
|
459
|
-
declare function intentText(signer: SignerDetails): string;
|
|
460
|
-
declare function sha256Hex(blob: Blob): Promise<string>;
|
|
461
|
-
/** A signature box drawn on the annotation overlay, as the signing API's placement. */
|
|
462
|
-
declare function toAppearance(box: {
|
|
463
|
-
page: number;
|
|
464
|
-
rect: {
|
|
465
|
-
x: number;
|
|
466
|
-
y: number;
|
|
467
|
-
w: number;
|
|
468
|
-
h: number;
|
|
469
|
-
};
|
|
470
|
-
}): {
|
|
471
|
-
page: number;
|
|
472
|
-
x: number;
|
|
473
|
-
y: number;
|
|
474
|
-
width: number;
|
|
475
|
-
height: number;
|
|
476
|
-
};
|
|
477
|
-
declare function isLegibleSignatureBox(rect: {
|
|
478
|
-
w: number;
|
|
479
|
-
h: number;
|
|
480
|
-
}): boolean;
|
|
481
|
-
type SignatureAppearance = components['schemas']['SignatureAppearance'];
|
|
482
|
-
type SignatureStatusResponse = components['schemas']['SignatureStatusResponse'];
|
|
483
|
-
type SignatureRecord = components['schemas']['SignatureRecord'];
|
|
484
|
-
type SignDocumentResponse = components['schemas']['SignDocumentResponse'];
|
|
485
|
-
/** Whether a document version is a signed copy, and its signatures. */
|
|
486
|
-
declare function fetchDocumentSignatures(client: DocumentToolsClient, documentRef: string): Promise<SignatureStatusResponse>;
|
|
487
|
-
/**
|
|
488
|
-
* Is a document version a signed copy? `documentId` is a document id (its current version) or a
|
|
489
|
-
* version reference `doc-…@v{n}`. Needs a React Query `QueryClientProvider`.
|
|
490
|
-
*/
|
|
491
|
-
declare function useDocumentSignatures(documentId: string | null | undefined, enabled?: boolean): _tanstack_react_query.UseQueryResult<NoInfer<{
|
|
492
|
-
signed: boolean;
|
|
493
|
-
intact: boolean;
|
|
494
|
-
timestamped: boolean;
|
|
495
|
-
certificate_url?: string | null;
|
|
496
|
-
signatures: components["schemas"]["SignatureRecord"][];
|
|
497
|
-
}>, Error>;
|
|
498
|
-
/**
|
|
499
|
-
* Why the server would not sign: the PDF of a Word or text document is still being rendered
|
|
500
|
-
* (`preparing`, worth another try in a moment), or the version on screen is no longer the current
|
|
501
|
-
* one (`stale`: only the current version can be signed, so the signer reopens it).
|
|
502
|
-
*/
|
|
503
|
-
type SigningErrorReason = 'preparing' | 'stale' | 'failed';
|
|
504
|
-
declare class SigningError extends Error {
|
|
505
|
-
readonly reason: SigningErrorReason;
|
|
506
|
-
constructor(message: string, reason: SigningErrorReason);
|
|
507
|
-
}
|
|
508
|
-
interface SignDocumentVars {
|
|
509
|
-
documentId: string;
|
|
510
|
-
/**
|
|
511
|
-
* The PDF bytes the viewer is showing (`GET /view?version=`, never the original's download): the
|
|
512
|
-
* signer signs exactly these.
|
|
513
|
-
*/
|
|
514
|
-
pdfBlob: Blob;
|
|
515
|
-
/**
|
|
516
|
-
* The version `pdfBlob` is of. The server signs only the current version and refuses
|
|
517
|
-
* (`SigningError` `stale`) when this one has been superseded. Omitted = the current version.
|
|
518
|
-
*/
|
|
519
|
-
version?: number;
|
|
520
|
-
email: string;
|
|
521
|
-
password: string;
|
|
522
|
-
signer: SignerDetails;
|
|
523
|
-
/** Where the signature goes; omitted = the backend default (bottom of the last page). */
|
|
524
|
-
appearance?: SignatureAppearance;
|
|
525
|
-
/** Draw the signing date under the signature. Default off: only the signature is drawn. */
|
|
526
|
-
includeDate?: boolean;
|
|
527
|
-
}
|
|
528
|
-
/**
|
|
529
|
-
* Sign a document: the server prepares the statement, the browser checks that it covers the PDF
|
|
530
|
-
* on screen under the wording the signer read, re-derives the user's Ed25519 key from their
|
|
531
|
-
* password and signs it, and the server seals the signed copy as a new version.
|
|
532
|
-
*
|
|
533
|
-
* What is drawn on the page is only the signature (the signer's name as the signature mark) and,
|
|
534
|
-
* with `includeDate`, the date; anyone can click it to open its certificate. A role, a firm or a
|
|
535
|
-
* place go on the page as ordinary annotation text, which is not part of the signature.
|
|
536
|
-
*/
|
|
537
|
-
declare function signDocument(client: DocumentToolsClient, deploymentDomain: string, { documentId, pdfBlob, email, password, signer, appearance, includeDate, version, }: SignDocumentVars): Promise<SignDocumentResponse>;
|
|
538
|
-
/** The signing mutation. On success the host hears the document changed (`'signed'`). */
|
|
539
|
-
declare function useSignDocument(): _tanstack_react_query.UseMutationResult<{
|
|
540
|
-
doc_ext_id: string;
|
|
541
|
-
version: number;
|
|
542
|
-
signature: components["schemas"]["SignatureRecord"];
|
|
543
|
-
}, Error, SignDocumentVars, unknown>;
|
|
544
|
-
|
|
545
|
-
declare const VERIFY_PATH = "/v1/sign/verify/{reference}";
|
|
546
|
-
type SignatureVerification = components['schemas']['SignatureVerification'];
|
|
547
|
-
type VerifiedSignature = components['schemas']['VerifiedSignature'];
|
|
548
|
-
declare function isSignatureReference(reference: string | null | undefined): boolean;
|
|
549
|
-
declare class SignatureVerificationError extends Error {
|
|
550
|
-
readonly status?: number | undefined;
|
|
551
|
-
constructor(message: string, status?: number | undefined);
|
|
552
|
-
}
|
|
553
|
-
declare function fetchSignatureVerification(client: DocumentToolsClient, reference: string): Promise<SignatureVerification>;
|
|
554
|
-
/** The certificate of a signature reference. Needs a `<DocumentToolsProvider>` (no user). */
|
|
555
|
-
declare function useSignatureVerification(reference: string | null | undefined): _tanstack_react_query.UseQueryResult<NoInfer<{
|
|
556
|
-
signatures: components["schemas"]["VerifiedSignature"][];
|
|
557
|
-
document_sha256: string;
|
|
558
|
-
intact: boolean;
|
|
559
|
-
}>, Error>;
|
|
560
|
-
/**
|
|
561
|
-
* What a copy is: the signed document as it stands (`current`), the document as it was when an
|
|
562
|
-
* earlier signer signed it (`earlier`, a counter-signed PDF's earlier revision), or neither.
|
|
563
|
-
*/
|
|
564
|
-
type CopyMatch = {
|
|
565
|
-
kind: 'current';
|
|
566
|
-
} | {
|
|
567
|
-
kind: 'earlier';
|
|
568
|
-
signature: VerifiedSignature;
|
|
569
|
-
} | {
|
|
570
|
-
kind: 'none';
|
|
571
|
-
};
|
|
572
|
-
/** Compare a file with the signed PDF and its signed revisions. Hashed here; nothing is uploaded. */
|
|
573
|
-
declare function matchSignedCopy(file: Blob, verification: Pick<SignatureVerification, 'document_sha256' | 'signatures'>): Promise<CopyMatch>;
|
|
574
|
-
|
|
575
|
-
type SignatureField = components['schemas']['SignatureField'];
|
|
576
|
-
type SignatureFieldType = SignatureField['type'];
|
|
577
|
-
type SignatureRequest = components['schemas']['SignatureRequestResponse'];
|
|
578
|
-
type SignatureRequestSigner = components['schemas']['SignatureRequestSigner'];
|
|
579
|
-
type SignerProgress = components['schemas']['SignerProgress'];
|
|
580
|
-
type SuggestedSignatureField = components['schemas']['SuggestedSignatureField'];
|
|
581
|
-
type AdoptedSignature = components['schemas']['AdoptedSignature'];
|
|
582
|
-
type SignRequestSignResponse = components['schemas']['SignRequestSignResponse'];
|
|
583
|
-
/** Field types in the order the editor offers them. */
|
|
584
|
-
declare const SIGNATURE_FIELD_TYPES: readonly SignatureFieldType[];
|
|
585
|
-
declare const FIELD_TYPE_LABELS: Record<SignatureFieldType, string>;
|
|
586
|
-
/**
|
|
587
|
-
* Default size of a new field, as fractions of the page (the backend draws to fit the box). The
|
|
588
|
-
* same sizes the server's suggester places fields in (`esign_suggest._SIZE`).
|
|
589
|
-
*/
|
|
590
|
-
declare const DEFAULT_FIELD_SIZE: Record<SignatureFieldType, {
|
|
591
|
-
width: number;
|
|
592
|
-
height: number;
|
|
593
|
-
}>;
|
|
594
|
-
/** How far each signer has got, as the request's sender sees it. */
|
|
595
|
-
declare const SIGNER_PROGRESS_LABELS: Record<SignerProgress, string>;
|
|
596
|
-
/** Whether a field's signer is an email (someone to invite) rather than a member or request signer. */
|
|
597
|
-
declare const isEmailSigner: (signer: string) => boolean;
|
|
598
|
-
/** The fields carrying a signer's mark: every signer needs at least one to be sent the request. */
|
|
599
|
-
declare const MARK_FIELD_TYPES: readonly SignatureFieldType[];
|
|
600
|
-
/** A short unique id for a new field (the server only needs it unique within the request). */
|
|
601
|
-
declare function newFieldId(): string;
|
|
602
|
-
/** Initials from a name: "Olive M. Owner" -> "OMO". */
|
|
603
|
-
declare function initialsOf(name: string): string;
|
|
604
|
-
/** The fields a signer completes, in the order they are walked through: page, then top to bottom. */
|
|
605
|
-
declare function fieldsInSigningOrder(fields: SignatureField[], signer: string): SignatureField[];
|
|
606
|
-
/** Why a draft cannot be sent yet, or null when it can. Mirrors the server's checks. */
|
|
607
|
-
declare function sendBlocker(fields: SignatureField[]): string | null;
|
|
608
|
-
/**
|
|
609
|
-
* Suggested fields grouped by signature block; `assign` maps a block (`group`) to the signer its
|
|
610
|
-
* fields go to. A field placed in the Word document that names its signer goes to them: the
|
|
611
|
-
* member with that email (`members`, by lowercased email), else the email itself (an invitee).
|
|
612
|
-
* Unassigned blocks are left out.
|
|
613
|
-
*/
|
|
614
|
-
declare function fieldsFromSuggestions(suggestions: SuggestedSignatureField[], assign: Record<number, string | undefined>, members?: ReadonlyMap<string, string>): SignatureField[];
|
|
615
|
-
/** The Word document's own fields (found by their anchors) and the optional layout suggestions. */
|
|
616
|
-
declare function splitSuggestions(suggestions: SuggestedSignatureField[]): {
|
|
617
|
-
placed: {
|
|
618
|
-
type: "signature" | "initials" | "date" | "name";
|
|
619
|
-
page: number;
|
|
620
|
-
x: number;
|
|
621
|
-
y: number;
|
|
622
|
-
width: number;
|
|
623
|
-
height: number;
|
|
624
|
-
group: number;
|
|
625
|
-
role?: string | null;
|
|
626
|
-
anchor: string;
|
|
627
|
-
source: "anchor" | "layout";
|
|
628
|
-
signer_email?: string | null;
|
|
629
|
-
signer_name?: string | null;
|
|
630
|
-
required: boolean;
|
|
631
|
-
}[];
|
|
632
|
-
extras: {
|
|
633
|
-
type: "signature" | "initials" | "date" | "name";
|
|
634
|
-
page: number;
|
|
635
|
-
x: number;
|
|
636
|
-
y: number;
|
|
637
|
-
width: number;
|
|
638
|
-
height: number;
|
|
639
|
-
group: number;
|
|
640
|
-
role?: string | null;
|
|
641
|
-
anchor: string;
|
|
642
|
-
source: "anchor" | "layout";
|
|
643
|
-
signer_email?: string | null;
|
|
644
|
-
signer_name?: string | null;
|
|
645
|
-
required: boolean;
|
|
646
|
-
}[];
|
|
647
|
-
};
|
|
648
|
-
declare function fetchDocumentSignatureRequests(client: DocumentToolsClient, documentId: string): Promise<SignatureRequest[]>;
|
|
649
|
-
/** A document's signature requests, newest first. */
|
|
650
|
-
declare function useDocumentSignatureRequests(documentId: string | null | undefined, enabled?: boolean): _tanstack_react_query.UseQueryResult<NoInfer<{
|
|
651
|
-
external_id: string;
|
|
652
|
-
doc_ext_id: string | null;
|
|
653
|
-
version: number;
|
|
654
|
-
source_sha256: string;
|
|
655
|
-
status: components["schemas"]["SignatureRequestStatus"];
|
|
656
|
-
message?: string | null;
|
|
657
|
-
fields: components["schemas"]["SignatureField"][];
|
|
658
|
-
signers: components["schemas"]["SignatureRequestSigner"][];
|
|
659
|
-
created_by?: string | null;
|
|
660
|
-
created_at: string;
|
|
661
|
-
sent_at?: string | null;
|
|
662
|
-
completed_at?: string | null;
|
|
663
|
-
signed_version?: number | null;
|
|
664
|
-
stale: boolean;
|
|
665
|
-
}[]>, Error>;
|
|
666
|
-
/** Requests in the active workspace still waiting for the current user's signature. */
|
|
667
|
-
declare function useSignatureRequestsAwaitingMe(enabled?: boolean): _tanstack_react_query.UseQueryResult<NoInfer<{
|
|
668
|
-
external_id: string;
|
|
669
|
-
doc_ext_id: string | null;
|
|
670
|
-
version: number;
|
|
671
|
-
source_sha256: string;
|
|
672
|
-
status: components["schemas"]["SignatureRequestStatus"];
|
|
673
|
-
message?: string | null | undefined;
|
|
674
|
-
fields: {
|
|
675
|
-
id: string;
|
|
676
|
-
type: "signature" | "initials" | "date" | "name";
|
|
677
|
-
page: number;
|
|
678
|
-
x: number;
|
|
679
|
-
y: number;
|
|
680
|
-
width: number;
|
|
681
|
-
height: number;
|
|
682
|
-
signer: string;
|
|
683
|
-
required: boolean;
|
|
684
|
-
}[];
|
|
685
|
-
signers: {
|
|
686
|
-
external_id: string;
|
|
687
|
-
user_ext_id?: string | null | undefined;
|
|
688
|
-
name: string;
|
|
689
|
-
email?: string | null | undefined;
|
|
690
|
-
status: components["schemas"]["SignerStatus"];
|
|
691
|
-
progress: components["schemas"]["SignerProgress"];
|
|
692
|
-
viewed_at?: string | null | undefined;
|
|
693
|
-
signed_at?: string | null | undefined;
|
|
694
|
-
reference?: string | null | undefined;
|
|
695
|
-
fields: number;
|
|
696
|
-
}[];
|
|
697
|
-
created_by?: string | null | undefined;
|
|
698
|
-
created_at: string;
|
|
699
|
-
sent_at?: string | null | undefined;
|
|
700
|
-
completed_at?: string | null | undefined;
|
|
701
|
-
signed_version?: number | null | undefined;
|
|
702
|
-
stale: boolean;
|
|
703
|
-
}[]>, Error>;
|
|
704
|
-
declare function useSignatureRequest(requestId: string | null | undefined): _tanstack_react_query.UseQueryResult<NoInfer<{
|
|
705
|
-
external_id: string;
|
|
706
|
-
doc_ext_id: string | null;
|
|
707
|
-
version: number;
|
|
708
|
-
source_sha256: string;
|
|
709
|
-
status: components["schemas"]["SignatureRequestStatus"];
|
|
710
|
-
message?: string | null | undefined;
|
|
711
|
-
fields: {
|
|
712
|
-
id: string;
|
|
713
|
-
type: "signature" | "initials" | "date" | "name";
|
|
714
|
-
page: number;
|
|
715
|
-
x: number;
|
|
716
|
-
y: number;
|
|
717
|
-
width: number;
|
|
718
|
-
height: number;
|
|
719
|
-
signer: string;
|
|
720
|
-
required: boolean;
|
|
721
|
-
}[];
|
|
722
|
-
signers: {
|
|
723
|
-
external_id: string;
|
|
724
|
-
user_ext_id?: string | null | undefined;
|
|
725
|
-
name: string;
|
|
726
|
-
email?: string | null | undefined;
|
|
727
|
-
status: components["schemas"]["SignerStatus"];
|
|
728
|
-
progress: components["schemas"]["SignerProgress"];
|
|
729
|
-
viewed_at?: string | null | undefined;
|
|
730
|
-
signed_at?: string | null | undefined;
|
|
731
|
-
reference?: string | null | undefined;
|
|
732
|
-
fields: number;
|
|
733
|
-
}[];
|
|
734
|
-
created_by?: string | null | undefined;
|
|
735
|
-
created_at: string;
|
|
736
|
-
sent_at?: string | null | undefined;
|
|
737
|
-
completed_at?: string | null | undefined;
|
|
738
|
-
signed_version?: number | null | undefined;
|
|
739
|
-
stale: boolean;
|
|
740
|
-
}>, Error>;
|
|
741
|
-
/** A signer the Word document's placed fields name, with the name they give. */
|
|
742
|
-
interface NamedSigner {
|
|
743
|
-
email: string;
|
|
744
|
-
name: string;
|
|
745
|
-
}
|
|
746
|
-
/** What a document asks to be signed: the fields found, and the signers its Word fields name. */
|
|
747
|
-
interface SignatureFieldSuggestions {
|
|
748
|
-
fields: SuggestedSignatureField[];
|
|
749
|
-
/**
|
|
750
|
-
* Named even when the PDF shows none of the Word fields' anchors (the fields are then placed by
|
|
751
|
-
* hand): who each email belongs to. Empty from a server that does not report them.
|
|
752
|
-
*/
|
|
753
|
-
signers: NamedSigner[];
|
|
754
|
-
}
|
|
755
|
-
declare function signatureFieldSuggestions(client: DocumentToolsClient, documentId: string, version?: number): Promise<SignatureFieldSuggestions>;
|
|
756
|
-
declare function suggestSignatureFields(client: DocumentToolsClient, documentId: string, version?: number): Promise<SuggestedSignatureField[]>;
|
|
757
|
-
interface SaveSignatureRequestVars {
|
|
758
|
-
documentId: string;
|
|
759
|
-
/** The version the fields were placed on (the PDF shown). Omitted = current. */
|
|
760
|
-
version?: number;
|
|
761
|
-
fields: SignatureField[];
|
|
762
|
-
message?: string;
|
|
763
|
-
/** Existing draft to update instead of creating a new request. */
|
|
764
|
-
requestId?: string;
|
|
765
|
-
/** Send it to the signers (else it is saved as a draft). */
|
|
766
|
-
send: boolean;
|
|
767
|
-
}
|
|
768
|
-
declare function saveSignatureRequest(client: DocumentToolsClient, { documentId, version, fields, message, requestId, send }: SaveSignatureRequestVars): Promise<SignatureRequest>;
|
|
769
|
-
declare function useSaveSignatureRequest(): _tanstack_react_query.UseMutationResult<{
|
|
770
|
-
external_id: string;
|
|
771
|
-
doc_ext_id: string | null;
|
|
772
|
-
version: number;
|
|
773
|
-
source_sha256: string;
|
|
774
|
-
status: components["schemas"]["SignatureRequestStatus"];
|
|
775
|
-
message?: string | null;
|
|
776
|
-
fields: components["schemas"]["SignatureField"][];
|
|
777
|
-
signers: components["schemas"]["SignatureRequestSigner"][];
|
|
778
|
-
created_by?: string | null;
|
|
779
|
-
created_at: string;
|
|
780
|
-
sent_at?: string | null;
|
|
781
|
-
completed_at?: string | null;
|
|
782
|
-
signed_version?: number | null;
|
|
783
|
-
stale: boolean;
|
|
784
|
-
}, Error, SaveSignatureRequestVars, unknown>;
|
|
785
|
-
declare function useVoidSignatureRequest(): _tanstack_react_query.UseMutationResult<{
|
|
786
|
-
external_id: string;
|
|
787
|
-
doc_ext_id: string | null;
|
|
788
|
-
version: number;
|
|
789
|
-
source_sha256: string;
|
|
790
|
-
status: components["schemas"]["SignatureRequestStatus"];
|
|
791
|
-
message?: string | null | undefined;
|
|
792
|
-
fields: {
|
|
793
|
-
id: string;
|
|
794
|
-
type: "signature" | "initials" | "date" | "name";
|
|
795
|
-
page: number;
|
|
796
|
-
x: number;
|
|
797
|
-
y: number;
|
|
798
|
-
width: number;
|
|
799
|
-
height: number;
|
|
800
|
-
signer: string;
|
|
801
|
-
required: boolean;
|
|
802
|
-
}[];
|
|
803
|
-
signers: {
|
|
804
|
-
external_id: string;
|
|
805
|
-
user_ext_id?: string | null | undefined;
|
|
806
|
-
name: string;
|
|
807
|
-
email?: string | null | undefined;
|
|
808
|
-
status: components["schemas"]["SignerStatus"];
|
|
809
|
-
progress: components["schemas"]["SignerProgress"];
|
|
810
|
-
viewed_at?: string | null | undefined;
|
|
811
|
-
signed_at?: string | null | undefined;
|
|
812
|
-
reference?: string | null | undefined;
|
|
813
|
-
fields: number;
|
|
814
|
-
}[];
|
|
815
|
-
created_by?: string | null | undefined;
|
|
816
|
-
created_at: string;
|
|
817
|
-
sent_at?: string | null | undefined;
|
|
818
|
-
completed_at?: string | null | undefined;
|
|
819
|
-
signed_version?: number | null | undefined;
|
|
820
|
-
stale: boolean;
|
|
821
|
-
}, Error, string, unknown>;
|
|
822
|
-
declare function useDeclineSignatureRequest(): _tanstack_react_query.UseMutationResult<{
|
|
823
|
-
external_id: string;
|
|
824
|
-
doc_ext_id: string | null;
|
|
825
|
-
version: number;
|
|
826
|
-
source_sha256: string;
|
|
827
|
-
status: components["schemas"]["SignatureRequestStatus"];
|
|
828
|
-
message?: string | null | undefined;
|
|
829
|
-
fields: {
|
|
830
|
-
id: string;
|
|
831
|
-
type: "signature" | "initials" | "date" | "name";
|
|
832
|
-
page: number;
|
|
833
|
-
x: number;
|
|
834
|
-
y: number;
|
|
835
|
-
width: number;
|
|
836
|
-
height: number;
|
|
837
|
-
signer: string;
|
|
838
|
-
required: boolean;
|
|
839
|
-
}[];
|
|
840
|
-
signers: {
|
|
841
|
-
external_id: string;
|
|
842
|
-
user_ext_id?: string | null | undefined;
|
|
843
|
-
name: string;
|
|
844
|
-
email?: string | null | undefined;
|
|
845
|
-
status: components["schemas"]["SignerStatus"];
|
|
846
|
-
progress: components["schemas"]["SignerProgress"];
|
|
847
|
-
viewed_at?: string | null | undefined;
|
|
848
|
-
signed_at?: string | null | undefined;
|
|
849
|
-
reference?: string | null | undefined;
|
|
850
|
-
fields: number;
|
|
851
|
-
}[];
|
|
852
|
-
created_by?: string | null | undefined;
|
|
853
|
-
created_at: string;
|
|
854
|
-
sent_at?: string | null | undefined;
|
|
855
|
-
completed_at?: string | null | undefined;
|
|
856
|
-
signed_version?: number | null | undefined;
|
|
857
|
-
stale: boolean;
|
|
858
|
-
}, Error, {
|
|
859
|
-
requestId: string;
|
|
860
|
-
reason?: string;
|
|
861
|
-
}, unknown>;
|
|
862
|
-
interface SignRequestVars {
|
|
863
|
-
request: SignatureRequest;
|
|
864
|
-
/** The PDF the signer was walked through (`GET /view?version=` of the request's version). */
|
|
865
|
-
pdfBlob: Blob;
|
|
866
|
-
email: string;
|
|
867
|
-
password: string;
|
|
868
|
-
adopted: AdoptedSignature;
|
|
869
|
-
/** The ids of the fields the signer applied: every required one of theirs. */
|
|
870
|
-
fields: string[];
|
|
871
|
-
}
|
|
872
|
-
/**
|
|
873
|
-
* Sign all of the signer's fields at once: the server prepares the statement, the browser checks
|
|
874
|
-
* it covers the PDF on screen under the wording the signer read, re-derives the Ed25519 key from
|
|
875
|
-
* the password and signs. Resolves with `completed` when this was the last signature.
|
|
876
|
-
*/
|
|
877
|
-
declare function signSignatureRequest(client: DocumentToolsClient, deploymentDomain: string, { request, pdfBlob, email, password, adopted, fields }: SignRequestVars): Promise<SignRequestSignResponse>;
|
|
878
|
-
declare function useSignSignatureRequest(): _tanstack_react_query.UseMutationResult<{
|
|
879
|
-
request: components["schemas"]["SignatureRequestResponse"];
|
|
880
|
-
completed: boolean;
|
|
881
|
-
signed_version?: number | null;
|
|
882
|
-
}, Error, SignRequestVars, unknown>;
|
|
883
|
-
interface SignerCandidate {
|
|
884
|
-
externalId: string;
|
|
885
|
-
name: string;
|
|
886
|
-
email: string;
|
|
887
|
-
role: string;
|
|
888
|
-
}
|
|
889
|
-
/**
|
|
890
|
-
* The people in the active workspace who may sign: owners, collaborators and guests (an agent never
|
|
891
|
-
* does). The first one listed is the current user when they are a member.
|
|
892
|
-
*/
|
|
893
|
-
declare function useSignerCandidates(enabled?: boolean): _tanstack_react_query.UseQueryResult<NoInfer<SignerCandidate[]>, Error>;
|
|
894
|
-
/**
|
|
895
|
-
* Invite signers who are not in the workspace yet, as guests, through the workspace's own invite
|
|
896
|
-
* (`POST /v1/workspace/users` with `confirm_invite`): a registered person is added at once, anyone
|
|
897
|
-
* else is emailed an invitation that lands on the document. Each is asked to sign when they join.
|
|
898
|
-
* Only a workspace owner can invite.
|
|
899
|
-
*/
|
|
900
|
-
declare function inviteSigners(client: DocumentToolsClient, documentId: string, emails: string[]): Promise<void>;
|
|
901
|
-
declare function useInviteSigners(): _tanstack_react_query.UseMutationResult<void, Error, {
|
|
902
|
-
documentId: string;
|
|
903
|
-
emails: string[];
|
|
904
|
-
}, unknown>;
|
|
905
|
-
|
|
906
|
-
interface SavedSignature {
|
|
907
|
-
name: string;
|
|
908
|
-
initials: string;
|
|
909
|
-
/** How the signature was adopted (a typed one is saved as its picture as well). */
|
|
910
|
-
style: 'typed' | 'drawn' | 'uploaded';
|
|
911
|
-
initials_style: 'typed' | 'drawn';
|
|
912
|
-
/** Base64 PNGs, transparent around the ink. */
|
|
913
|
-
signature_png: string;
|
|
914
|
-
initials_png: string;
|
|
915
|
-
}
|
|
916
|
-
/** The one line shown wherever a saved signature is placed by hand. */
|
|
917
|
-
declare const INFORMAL_SIGNATURE_NOTE = "Your saved signature or initials are placed as an image on the document.";
|
|
918
|
-
/** The user's own keypair (the session's); a host or a test may pass another. */
|
|
919
|
-
type KeypairSource = () => Promise<KeyPair | null>;
|
|
920
|
-
/** The saved signature, opened with the user's own key; null when none is saved. */
|
|
921
|
-
declare function fetchSavedSignature(client: DocumentToolsClient, source?: KeypairSource): Promise<SavedSignature | null>;
|
|
922
|
-
/** Seal it to the user's own key and save it (replacing any saved before). */
|
|
923
|
-
declare function storeSavedSignature(client: DocumentToolsClient, signature: SavedSignature, source?: KeypairSource): Promise<void>;
|
|
924
|
-
/** Remove it from the account completely. */
|
|
925
|
-
declare function deleteSavedSignature(client: DocumentToolsClient): Promise<void>;
|
|
926
|
-
declare function useSavedSignature(enabled?: boolean): _tanstack_react_query.UseQueryResult<NoInfer<SavedSignature | null>, Error>;
|
|
927
|
-
declare function useStoreSavedSignature(): _tanstack_react_query.UseMutationResult<void, Error, SavedSignature, unknown>;
|
|
928
|
-
declare function useDeleteSavedSignature(): _tanstack_react_query.UseMutationResult<void, Error, void, unknown>;
|
|
929
|
-
/** Base64 PNG bytes, decoded (for an inline picture or an upload). */
|
|
930
|
-
declare function pngBytes(base64: string): Uint8Array;
|
|
931
|
-
/** A PNG's pixel size, read from its header (IHDR). */
|
|
932
|
-
declare function pngSize(base64: string): {
|
|
933
|
-
width: number;
|
|
934
|
-
height: number;
|
|
935
|
-
};
|
|
936
|
-
|
|
937
|
-
type FileShare = components['schemas']['FileShareResponse'];
|
|
938
|
-
type CreateFileShare = components['schemas']['CreateFileShare'];
|
|
939
|
-
declare function createFileShare(client: DocumentToolsClient, documentId: string, body: CreateFileShare): Promise<{
|
|
940
|
-
external_id: string;
|
|
941
|
-
document_ext_id: string;
|
|
942
|
-
version: number;
|
|
943
|
-
file_name: string;
|
|
944
|
-
status: string;
|
|
945
|
-
source_sha256: string;
|
|
946
|
-
fields: {
|
|
947
|
-
id: string;
|
|
948
|
-
type: "signature" | "initials" | "date" | "name";
|
|
949
|
-
page: number;
|
|
950
|
-
x: number;
|
|
951
|
-
y: number;
|
|
952
|
-
width: number;
|
|
953
|
-
height: number;
|
|
954
|
-
signer: string;
|
|
955
|
-
required: boolean;
|
|
956
|
-
}[];
|
|
957
|
-
message: string;
|
|
958
|
-
owner: boolean;
|
|
959
|
-
can_sign: boolean;
|
|
960
|
-
can_preview: boolean;
|
|
961
|
-
recipients: {
|
|
962
|
-
email: string;
|
|
963
|
-
permission: string;
|
|
964
|
-
status: string;
|
|
965
|
-
expires_at: string | null;
|
|
966
|
-
delivery_status: string;
|
|
967
|
-
reference?: string | null | undefined;
|
|
968
|
-
}[];
|
|
969
|
-
published_version?: number | null | undefined;
|
|
970
|
-
owner_workspace_ext_id?: string | null | undefined;
|
|
971
|
-
}>;
|
|
972
|
-
declare function getFileShare(client: DocumentToolsClient, id: string): Promise<FileShare>;
|
|
973
|
-
declare function fileShareBytes(client: DocumentToolsClient, id: string, kind: 'view' | 'original' | 'signed'): Promise<Blob>;
|
|
974
|
-
/** Adapt only the guided viewer's presentation data; sharing uses its own authorization endpoints. */
|
|
975
|
-
declare function fileShareSigningRequest(share: FileShare): SignatureRequest;
|
|
976
|
-
declare function signFileShare(client: DocumentToolsClient, domain: string, vars: SignRequestVars): Promise<SignRequestSignResponse>;
|
|
977
|
-
declare function useFileShare(client: DocumentToolsClient, shareId: string, signing: boolean): _tanstack_react_query.UseQueryResult<NoInfer<{
|
|
978
|
-
external_id: string;
|
|
979
|
-
document_ext_id: string;
|
|
980
|
-
version: number;
|
|
981
|
-
file_name: string;
|
|
982
|
-
status: string;
|
|
983
|
-
source_sha256: string;
|
|
984
|
-
fields: components["schemas"]["SignatureField"][];
|
|
985
|
-
message: string;
|
|
986
|
-
owner: boolean;
|
|
987
|
-
can_sign: boolean;
|
|
988
|
-
can_preview: boolean;
|
|
989
|
-
recipients: components["schemas"]["FileShareRecipientResponse"][];
|
|
990
|
-
published_version?: number | null;
|
|
991
|
-
owner_workspace_ext_id?: string | null;
|
|
992
|
-
}>, Error>;
|
|
993
|
-
declare function useFileSharePdf(client: DocumentToolsClient, shareId: string, share?: FileShare): _tanstack_react_query.UseQueryResult<NoInfer<Blob>, Error>;
|
|
994
|
-
declare function useFileShares(client: DocumentToolsClient): _tanstack_react_query.UseQueryResult<NoInfer<{
|
|
995
|
-
external_id: string;
|
|
996
|
-
document_ext_id: string;
|
|
997
|
-
version: number;
|
|
998
|
-
file_name: string;
|
|
999
|
-
status: string;
|
|
1000
|
-
source_sha256: string;
|
|
1001
|
-
fields: {
|
|
1002
|
-
id: string;
|
|
1003
|
-
type: "signature" | "initials" | "date" | "name";
|
|
1004
|
-
page: number;
|
|
1005
|
-
x: number;
|
|
1006
|
-
y: number;
|
|
1007
|
-
width: number;
|
|
1008
|
-
height: number;
|
|
1009
|
-
signer: string;
|
|
1010
|
-
required: boolean;
|
|
1011
|
-
}[];
|
|
1012
|
-
message: string;
|
|
1013
|
-
owner: boolean;
|
|
1014
|
-
can_sign: boolean;
|
|
1015
|
-
can_preview: boolean;
|
|
1016
|
-
recipients: {
|
|
1017
|
-
email: string;
|
|
1018
|
-
permission: string;
|
|
1019
|
-
status: string;
|
|
1020
|
-
expires_at: string | null;
|
|
1021
|
-
delivery_status: string;
|
|
1022
|
-
reference?: string | null | undefined;
|
|
1023
|
-
}[];
|
|
1024
|
-
published_version?: number | null | undefined;
|
|
1025
|
-
owner_workspace_ext_id?: string | null | undefined;
|
|
1026
|
-
}[]>, Error>;
|
|
1027
|
-
|
|
1028
|
-
export { type AdoptedSignature, type AnnotatableState, type BuildProductionOptions, type BuiltProduction, type CopyMatch, type CreateFileShare, DEFAULT_FIELD_SIZE, DocumentBytesKind, type DocumentChange, DocumentFetchError, type DocumentFetchOptions, type DocumentToolsClient, type DocumentToolsEnvironment, type DocumentToolsNoticeKind, type DocumentToolsNoticeOptions, type DocumentToolsNotify, DocumentToolsProvider, type DocumentToolsProviderProps, type DocumentToolsUser, type DocumentUploadQuery, type DocumentUploadRequest, FIELD_TYPE_LABELS, type FileShare, type FrozenCopySource, INFORMAL_SIGNATURE_NOTE, type KeypairSource, LEGACY_LAYER_PREFIX, type LegacyPrompt, MARK_FIELD_TYPES, MAX_MERGE_ATTEMPTS, type MarkupDocument, MarkupDownloadError, type MarkupSnapshot, type MarkupStore, MarkupStoreError, type MarkupStoreOptions, type NamedSigner, type OlderMarkupNote, PRODUCTIONS_FOLDER, type ProductionSource, type ProductionUpload, type ResolvedDocumentToolsEnvironment, SIGNATURE_FIELD_TYPES, SIGNED_LOCKED_REASON, SIGNED_UNCHANGED, SIGNER_PROGRESS_LABELS, type SaveSignatureRequestVars, type SavedSignature, type SignDocumentResponse, type SignDocumentVars, type SignRequestSignResponse, type SignRequestVars, type SignatureAppearance, type SignatureField, type SignatureFieldSuggestions, type SignatureFieldType, type SignatureRecord, type SignatureRequest, type SignatureRequestSigner, type SignatureStatusResponse, type SignatureVerification, SignatureVerificationError, type SignerCandidate, type SignerDetails, type SignerProgress, SigningError, type SigningErrorReason, type SuggestedSignatureField, type UseDocumentBytesOptions, VERIFY_PATH, type VerifiedSignature, type VersionInfo, addToMarkup, buildProduction, canAnnotate, certificateLink, clientUpload, contentDispositionFileName, copyOpenThreads, createFileShare, createMarkupStore, currentHasMarkup, defaultCertificateUrl, deleteSavedSignature, downloadBlob, fetchDocumentFile, fetchDocumentPdf, fetchDocumentSignatureRequests, fetchDocumentSignatures, fetchMarkupPdf, fetchProductionPdf, fetchSavedSignature, fetchSignatureVerification, fieldsFromSuggestions, fieldsInSigningOrder, fileShareBytes, fileShareSigningRequest, forgetLegacyLayer, frozenCopyName, getFileShare, hasNoRendition, initialsOf, intentText, inviteSigners, isEmailSigner, isLegibleSignatureBox, isPdfDocument, isSignatureReference, isSignedVersion, marksByVersion, matchSignedCopy, migrateLegacyLayer, newFieldId, openThreadsOf, pngBytes, pngSize, productionDocumentName, productionFileName, productionFolder, productionIndexCsv, productionTitle, readLegacyLayer, redactionLogName, saveProductionFiles, saveSignatureRequest, sendBlocker, sha256Hex, signDocument, signFileShare, signSignatureRequest, signatureFieldSuggestions, splitSuggestions, storeSavedSignature, suggestSignatureFields, toAppearance, uploadFrozenCopy, uploadQueryString, useDeclineSignatureRequest, useDeleteSavedSignature, useDocumentBytes, useDocumentMarkup, useDocumentSignatureRequests, useDocumentSignatures, useDocumentTools, useFileShare, useFileSharePdf, useFileShares, useInviteSigners, useIsOnline, useOptionalDocumentTools, useSaveSignatureRequest, useSavedSignature, useSignDocument, useSignSignatureRequest, useSignatureRequest, useSignatureRequestsAwaitingMe, useSignatureVerification, useSignerCandidates, useStoreSavedSignature, useVoidSignatureRequest, versionsWithMarkup };
|
|
90
|
+
export { type BuildProductionOptions, type BuiltProduction, DocumentToolsClient, DocumentToolsEnvironment, PRODUCTIONS_FOLDER, type ProductionSource, type ProductionUpload, buildProduction, fetchProductionPdf, hasNoRendition, isPdfDocument, productionDocumentName, productionFileName, productionFolder, productionIndexCsv, productionTitle, saveProductionFiles };
|