@subnoto/api-client 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/index.js +1 -1
- package/oak_session_wasm_nodejs_bg.wasm +0 -0
- package/package.json +1 -1
- package/src/base-client.d.ts +5 -1
- package/src/client.d.ts +5 -0
- package/src/generated/api.gen.d.ts +55 -23
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var Qe=Object.defineProperty;var de=(e,t)=>{for(var i in t)Qe(e,i,{get:t[i],enumerable:!0})};import m1 from"openapi-fetch";var _={};de(_,{generateDigestHeaders:()=>Me,generateSignatureHeader:()=>Be});var le=typeof Uint8Array=="function",T,U=class e{static decode(t){let i=typeof t=="string",r;if(T===void 0){let a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=`= \f
|
|
2
2
|
\r \xA0\u2028\u2029`;for(T=[],r=0;r<64;++r)T[a.charCodeAt(r)]=r;for(r=0;r<u.length;++r)T[u.charCodeAt(r)]=-1;T[45]=T[43],T[95]=T[47]}let s=le?new Uint8Array(t.length*3>>2):[],o=0,d=0,n=0;for(r=0;r<t.length;++r){let a=i?t.charCodeAt(r):t[r];if(a==61)break;if(a=T[a],a!=-1){if(a===void 0)throw"Illegal character at offset "+r;o|=a,++d>=4?(s[n++]=o>>16,s[n++]=o>>8&255,s[n++]=o&255,o=0,d=0):o<<=6}}switch(d){case 1:throw"Base64 encoding incomplete: at least 2 bits missing";case 2:s[n++]=o>>10;break;case 3:s[n++]=o>>16,s[n++]=o>>8&255;break}return le&&s.length>n&&(s=s.subarray(0,n)),s}static pretty(t){let i=4-t.length%4;return i<4&&(t+="===".slice(0,i)),t=t.replace(/-/g,"+").replace(/_/g,"/"),t.replace(/.{80}/g,`$&
|
|
3
3
|
`)}static unarmor(t){let i=e.re.exec(t);if(i)if(i[1])t=i[1];else if(i[2])t=i[2];else if(i[3])t=i[3];else throw"RegExp out of sync";return e.decode(t)}};U.re=/-----BEGIN [^-]+-----([A-Za-z0-9+/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+/=\s]+)====|^([A-Za-z0-9+/=\s]+)$/;var ue={chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bits:6};var P={parse:function(t,i){return Ze(t,ue,i)},stringify:function(t,i){return Je(t,ue,i)}};function Ze(e,t,i){var r;if(i===void 0&&(i={}),!t.codes){t.codes={};for(var s=0;s<t.chars.length;++s)t.codes[t.chars[s]]=s}if(!i.loose&&e.length*t.bits&7)throw new SyntaxError("Invalid padding");for(var o=e.length;e[o-1]==="=";)if(--o,!i.loose&&!((e.length-o)*t.bits&7))throw new SyntaxError("Invalid padding");for(var d=new((r=i.out)!=null?r:Uint8Array)(o*t.bits/8|0),n=0,a=0,u=0,S=0;S<o;++S){var c=t.codes[e[S]];if(c===void 0)throw new SyntaxError("Invalid character "+e[S]);a=a<<t.bits|c,n+=t.bits,n>=8&&(n-=8,d[u++]=255&a>>n)}if(n>=t.bits||255&a<<8-n)throw new SyntaxError("Unexpected end of data");return d}function Je(e,t,i){i===void 0&&(i={});for(var r=i,s=r.pad,o=s===void 0?!0:s,d=(1<<t.bits)-1,n="",a=0,u=0,S=0;S<e.length;++S)for(u=u<<8|255&e[S],a+=8;a>t.bits;)a-=t.bits,n+=t.chars[d&u>>a];if(a&&(n+=t.chars[d&u<<t.bits-a]),o)for(;n.length*t.bits&7;)n+="=";return n}var Ye=Object.create,ge=Object.defineProperty,et=Object.getOwnPropertyDescriptor,Ce=Object.getOwnPropertyNames,tt=Object.getPrototypeOf,it=Object.prototype.hasOwnProperty,k=(e,t)=>function(){return t||(0,e[Ce(e)[0]])((t={exports:{}}).exports,t),t.exports},rt=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ce(t))!it.call(e,s)&&s!==i&&ge(e,s,{get:()=>t[s],enumerable:!(r=et(t,s))||r.enumerable});return e},V=(e,t,i)=>(i=e!=null?Ye(tt(e)):{},rt(t||!e||!e.__esModule?ge(i,"default",{value:e,enumerable:!0}):i,e)),ee=k({"node_modules/.pnpm/structured-headers@1.0.1/node_modules/structured-headers/dist/types.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ByteSequence=void 0;var t=class{constructor(i){this.base64Value=i}toBase64(){return this.base64Value}};e.ByteSequence=t}}),L=k({"node_modules/.pnpm/structured-headers@1.0.1/node_modules/structured-headers/dist/util.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isByteSequence=e.isInnerList=e.isValidKeyStr=e.isValidTokenStr=e.isAscii=void 0;var t=/^[\x20-\x7E]*$/,i=/^[a-zA-Z*][:/!#$%&'*+\-.^_`|~A-Za-z0-9]*$/,r=/^[a-z*][*\-_.a-z0-9]*$/;function s(u){return t.test(u)}e.isAscii=s;function o(u){return i.test(u)}e.isValidTokenStr=o;function d(u){return r.test(u)}e.isValidKeyStr=d;function n(u){return Array.isArray(u[0])}e.isInnerList=n;function a(u){return typeof u=="object"&&"base64Value"in u}e.isByteSequence=a}}),te=k({"node_modules/.pnpm/structured-headers@1.0.1/node_modules/structured-headers/dist/token.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Token=void 0;var t=L(),i=class{constructor(r){if(!(0,t.isValidTokenStr)(r))throw new TypeError("Invalid character in Token string. Tokens must start with *, A-Z and the rest of the string may only contain a-z, A-Z, 0-9, :/!#$%&'*+-.^_`|~");this.value=r}toString(){return this.value}};e.Token=i}}),st=k({"node_modules/.pnpm/structured-headers@1.0.1/node_modules/structured-headers/dist/serializer.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.serializeKey=e.serializeParameters=e.serializeToken=e.serializeByteSequence=e.serializeBoolean=e.serializeString=e.serializeDecimal=e.serializeInteger=e.serializeBareItem=e.serializeInnerList=e.serializeItem=e.serializeDictionary=e.serializeList=e.SerializeError=void 0;var t=ee(),i=te(),r=L(),s=class extends Error{};e.SerializeError=s;function o(l){return l.map(g=>(0,r.isInnerList)(g)?a(g):n(g)).join(", ")}e.serializeList=o;function d(l){return Array.from(l.entries()).map(([g,A])=>{let E=b(g);return A[0]===!0?E+=I(A[1]):(E+="=",(0,r.isInnerList)(A)?E+=a(A):E+=n(A)),E}).join(", ")}e.serializeDictionary=d;function n(l){return u(l[0])+I(l[1])}e.serializeItem=n;function a(l){return`(${l[0].map(g=>n(g)).join(" ")})${I(l[1])}`}e.serializeInnerList=a;function u(l){if(typeof l=="number")return Number.isInteger(l)?S(l):c(l);if(typeof l=="string")return p(l);if(l instanceof i.Token)return v(l);if(l instanceof t.ByteSequence)return y(l);if(typeof l=="boolean")return f(l);throw new s(`Cannot serialize values of type ${typeof l}`)}e.serializeBareItem=u;function S(l){if(l<-999999999999999||l>999999999999999)throw new s("Structured headers can only encode integers in the range range of -999,999,999,999,999 to 999,999,999,999,999 inclusive");return l.toString()}e.serializeInteger=S;function c(l){let g=l.toFixed(3).replace(/0+$/,"");if(g.split(".")[0].replace("-","").length>12)throw new s("Fractional numbers are not allowed to have more than 12 significant digits before the decimal point");return g}e.serializeDecimal=c;function p(l){if(!(0,r.isAscii)(l))throw new s("Only ASCII strings may be serialized");return`"${l.replace(/("|\\)/g,g=>"\\"+g)}"`}e.serializeString=p;function f(l){return l?"?1":"?0"}e.serializeBoolean=f;function y(l){return`:${l.toBase64()}:`}e.serializeByteSequence=y;function v(l){return l.toString()}e.serializeToken=v;function I(l){return Array.from(l).map(([g,A])=>{let E=";"+b(g);return A!==!0&&(E+="="+u(A)),E}).join("")}e.serializeParameters=I;function b(l){if(!(0,r.isValidKeyStr)(l))throw new s("Keys in dictionaries must only contain lowercase letter, numbers, _-*. and must start with a letter or *");return l}e.serializeKey=b}}),nt=k({"node_modules/.pnpm/structured-headers@1.0.1/node_modules/structured-headers/dist/parser.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ParseError=e.parseItem=e.parseList=e.parseDictionary=void 0;var t=ee(),i=te(),r=L();function s(c){return new a(c).parseDictionary()}e.parseDictionary=s;function o(c){return new a(c).parseList()}e.parseList=o;function d(c){return new a(c).parseItem()}e.parseItem=d;var n=class extends Error{constructor(c,p){super(`Parse error: ${p} at offset ${c}`)}};e.ParseError=n;var a=class{constructor(c){this.input=c,this.pos=0}parseDictionary(){this.skipWS();let c=new Map;for(;!this.eof();){let p=this.parseKey(),f;if(this.lookChar()==="="?(this.pos++,f=this.parseItemOrInnerList()):f=[!0,this.parseParameters()],c.set(p,f),this.skipOWS(),this.eof())return c;if(this.expectChar(","),this.pos++,this.skipOWS(),this.eof())throw new n(this.pos,"Dictionary contained a trailing comma")}return c}parseList(){this.skipWS();let c=[];for(;!this.eof();){if(c.push(this.parseItemOrInnerList()),this.skipOWS(),this.eof())return c;if(this.expectChar(","),this.pos++,this.skipOWS(),this.eof())throw new n(this.pos,"A list may not end with a trailing comma")}return c}parseItem(c=!0){c&&this.skipWS();let p=[this.parseBareItem(),this.parseParameters()];return c&&this.checkTrail(),p}parseItemOrInnerList(){return this.lookChar()==="("?this.parseInnerList():this.parseItem(!1)}parseInnerList(){this.expectChar("("),this.pos++;let c=[];for(;!this.eof();){if(this.skipWS(),this.lookChar()===")")return this.pos++,[c,this.parseParameters()];c.push(this.parseItem(!1));let p=this.lookChar();if(p!==" "&&p!==")")throw new n(this.pos,"Expected a whitespace or ) after every item in an inner list")}throw new n(this.pos,"Could not find end of inner list")}parseBareItem(){let c=this.lookChar();if(c===void 0)throw new n(this.pos,"Unexpected end of string");if(c.match(/^[-0-9]/))return this.parseIntegerOrDecimal();if(c==='"')return this.parseString();if(c.match(/^[A-Za-z*]/))return this.parseToken();if(c===":")return this.parseByteSequence();if(c==="?")return this.parseBoolean();throw new n(this.pos,"Unexpected input")}parseParameters(){let c=new Map;for(;!this.eof()&&this.lookChar()===";";){this.pos++,this.skipWS();let f=this.parseKey(),y=!0;this.lookChar()==="="&&(this.pos++,y=this.parseBareItem()),c.set(f,y)}return c}parseIntegerOrDecimal(){let c="integer",p=1,f="";if(this.lookChar()==="-"&&(p=-1,this.pos++),!S(this.lookChar()))throw new n(this.pos,"Expected a digit (0-9)");for(;!this.eof();){let y=this.getChar();if(S(y))f+=y;else if(c==="integer"&&y==="."){if(f.length>12)throw new n(this.pos,"Exceeded maximum decimal length");f+=".",c="decimal"}else{this.pos--;break}if(c==="integer"&&f.length>15)throw new n(this.pos,"Exceeded maximum integer length");if(c==="decimal"&&f.length>16)throw new n(this.pos,"Exceeded maximum decimal length")}if(c==="integer")return parseInt(f,10)*p;if(f.endsWith("."))throw new n(this.pos,"Decimal cannot end on a period");if(f.split(".")[1].length>3)throw new n(this.pos,"Number of digits after the decimal point cannot exceed 3");return parseFloat(f)*p}parseString(){let c="";for(this.expectChar('"'),this.pos++;!this.eof();){let p=this.getChar();if(p==="\\"){if(this.eof())throw new n(this.pos,"Unexpected end of input");let f=this.getChar();if(f!=="\\"&&f!=='"')throw new n(this.pos,"A backslash must be followed by another backslash or double quote");c+=f}else{if(p==='"')return c;if((0,r.isAscii)(p))c+=p;else throw new n(this.pos,"Strings must be in the ASCII range")}}throw new n(this.pos,"Unexpected end of input")}parseToken(){let c="";for(;!this.eof();){let p=this.lookChar();if(p===void 0||!/^[:/!#$%&'*+\-.^_`|~A-Za-z0-9]$/.test(p))return new i.Token(c);c+=this.getChar()}return new i.Token(c)}parseByteSequence(){this.expectChar(":"),this.pos++;let c=this.input.indexOf(":",this.pos);if(c===-1)throw new n(this.pos,'Could not find a closing ":" character to mark end of Byte Sequence');let p=this.input.substring(this.pos,c);if(this.pos+=p.length+1,!/^[A-Za-z0-9+/=]*$/.test(p))throw new n(this.pos,"ByteSequence does not contain a valid base64 string");return new t.ByteSequence(p)}parseBoolean(){this.expectChar("?"),this.pos++;let c=this.getChar();if(c==="1")return!0;if(c==="0")return!1;throw new n(this.pos,'Unexpected character. Expected a "1" or a "0"')}parseKey(){var c;if(!(!((c=this.lookChar())===null||c===void 0)&&c.match(/^[a-z*]/)))throw new n(this.pos,"A key must begin with an asterisk or letter (a-z)");let p="";for(;!this.eof();){let f=this.lookChar();if(f===void 0||!/^[a-z0-9_\-.*]$/.test(f))return p;p+=this.getChar()}return p}lookChar(){return this.input[this.pos]}expectChar(c){if(this.lookChar()!==c)throw new n(this.pos,`Expected ${c}`)}getChar(){return this.input[this.pos++]}eof(){return this.pos>=this.input.length}skipOWS(){for(;;){let c=this.input.substr(this.pos,1);if(c===" "||c===" ")this.pos++;else break}}skipWS(){for(;this.lookChar()===" ";)this.pos++}checkTrail(){if(this.skipWS(),!this.eof())throw new n(this.pos,"Unexpected characters at end of input")}};e.default=a;var u=/^[0-9]$/;function S(c){return c===void 0?!1:u.test(c)}}}),z=k({"node_modules/.pnpm/structured-headers@1.0.1/node_modules/structured-headers/dist/index.js"(e){"use strict";var t=e&&e.__createBinding||(Object.create?function(s,o,d,n){n===void 0&&(n=d);var a=Object.getOwnPropertyDescriptor(o,d);(!a||("get"in a?!o.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return o[d]}}),Object.defineProperty(s,n,a)}:function(s,o,d,n){n===void 0&&(n=d),s[n]=o[d]}),i=e&&e.__exportStar||function(s,o){for(var d in s)d!=="default"&&!Object.prototype.hasOwnProperty.call(o,d)&&t(o,s,d)};Object.defineProperty(e,"__esModule",{value:!0}),e.Token=void 0,i(st(),e),i(nt(),e),i(ee(),e),i(L(),e);var r=te();Object.defineProperty(e,"Token",{enumerable:!0,get:function(){return r.Token}})}});var x1=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);var ye=new TextEncoder;async function ct(){return globalThis.crypto??(await import("node:crypto")).webcrypto}var ot=/[^\S\r\n]*\r?\n[^\S\r\n]+/g;function pe(e){return e.replaceAll(ot," ")}function N(e){if(typeof e=="number")return e.toString();if(!e)return"";if(typeof e=="string")return pe(e).trim();if(Array.isArray(e))return e.map(t=>{if(t==null)return"";if(typeof t=="number")return t.toString();if(typeof t=="string")return pe(t).trim();throw new Error(`Invalid header value type ${t}`)}).join(", ");throw new Error(`Invalid header value type ${e}`)}function q(e){return Object.entries(e).reduce((t,[i,r])=>(i==="__proto__"||(t[i.toLowerCase()]=r),t),{})}function he(e,t){t=t.toLowerCase();for(let[i,r]of Object.entries(e))if(i.toLowerCase()===t)return r}function at(e){return typeof e=="number"?e.toString():typeof e=="string"?e.toLowerCase():""}function Y(e){return e.reduce((t,i,r)=>{if(r%2===0){if(typeof i!="string")throw new Error(`Invalid header key type '${typeof i}' of ${i}`);if(i.toLowerCase()in t)return t;t[i.toLowerCase()]=[]}else t[at(e[r-1])].push(i==null?"":i.toString());return t},{})}function B(e){if("rawHeaders"in e&&e.rawHeaders)return Y(e.rawHeaders.flat(1));if("getHeaders"in e&&typeof e.getHeaders=="function")return q(e.getHeaders());if("headers"in e&&e.headers){if(typeof e.headers!="object")throw new Error("headers must be an object");return Ae(e.headers)?Y(Array.from(e.headers.entries()).flat(1)):Array.isArray(e.headers)?Y(e.headers.flat(1)):q(e.headers)}throw new Error("Cannot get headers from request object")}function Ie(e,t,i){if("setHeader"in e&&typeof e.setHeader=="function")e.setHeader(t,i.toString());else if("headers"in e&&typeof e.headers=="object")Ae(e.headers)?e.headers.set(t,i.toString()):e.headers[t]=i.toString();else throw new Error("Cannot set headers to request object")}function Se(e){return"Response"in globalThis&&typeof e=="object"&&e instanceof Response}function dt(e){return"Request"in globalThis&&typeof e=="object"&&e instanceof Request}function Ae(e){return"Headers"in globalThis&&typeof e=="object"&&e instanceof Headers}function be(e){let t=new Uint8Array(e);return P.stringify(t)}var lt={hash:"SHA-256",ec:"DSA"};function ut(e,t){return{hash:t,...e}}function ie(e){return e instanceof Map?new Map(e):Array.isArray(e)?new Map(e):new Map(Object.entries(e))}function fe(e){let t=ie(e);for(let[i,r]of t.entries())r===void 0&&t.delete(i);return t}var C=V(z(),1),pt={signature:"dict","signature-input":"dict","accept-signature":"dict","content-digest":"dict","repr-digest":"dict","want-content-digest":"dict","want-repr-digest":"dict","accept-ch":"list","proxy-status":"list","cache-status":"list",priority:"dict","client-cert":"bs","client-cert-chain":"list"},ht=["@method","@authority","@scheme","@target-uri","@request-target","@path","@query"],St=["@status"],Ee=class{isRequest(){return this.response===null}isResponse(){return this.response!==null}constructor(e,t="https",i={},r,s=null){if(s&&!Array.isArray(s))throw new Error("requiredComponents must be an array");if(s&&s.length>0?this.requiredComponents=s.map(n=>{let a;return n.startsWith('"')?a=C.parseItem(n):a=[n,new Map],C.serializeItem(a)}):this.requiredComponents=null,this.sfvTypeDictionary=q({...pt,...i}),"req"in e)this.response=e,this.responseHeaders=B(e),this.request=e.req,this.requestHeaders=B(this.request);else if(Se(e)){if(!r)throw new Error("Request is not provided");this.response=e,this.responseHeaders=B(e),this.request=r,this.requestHeaders=B(this.request)}else this.response=null,this.responseHeaders=null,this.request=e,this.requestHeaders=B(e);if(!this.request.url)throw new Error("Request URL is empty");if(!this.request.method)throw new Error("Request method is empty");if(!("signature-input"in this.requestHeaders))throw new Error("Signature-Input header is not found in request");if(this.requestSignatureInput=C.parseDictionary(N(this.requestHeaders["signature-input"])),this.isResponse()){if(!this.responseHeaders)throw new Error("responseHeaders is empty");if(!("signature-input"in this.responseHeaders))throw new Error("Signature-Input header is not found in response");this.responseSignatureInput=C.parseDictionary(N(this.responseHeaders["signature-input"]))}this.sfvTypeDictionary=q(i),this.scheme=this.request.url.startsWith("/")?t:new URL(this.request.url).protocol.replace(":","");let o="httpVersionMajor"in this.request&&this.request.httpVersionMajor===2?this.requestHeaders[":authority"]:this.requestHeaders.host;if(!dt(this.request)&&!o)throw new Error("Host header is empty");let d=N(o);this.targetUri=this.request.url.startsWith("/")?new URL(this.request.url,`${t}://${d}`).href:this.request.url,this.url=new URL(this.targetUri)}get(e,t=new Map){let i=ie(t),r=C.serializeItem([e,i]);if(!e)throw new Error(`Type is empty: ${r}`);if(e.startsWith('"'))if(e.endsWith('"'))e=e.slice(1,-1);else throw new Error(`Invalid component type string: ${r}`);if(this.isResponse()&&i.get("req")!==!0&&ht.includes(e))throw new Error(`component is not available in response (must use with ;req, or provided object is unintentionally treated as response (existing req prop.)): ${e}`);if(this.isRequest()&&St.includes(e))throw new Error(`component is not available in request (provided object is unintentionally treated as request (including req prop.)): ${e}`);if(this.isRequest()&&i.get("req")===!0)throw new Error("req param is not available in request (provided object is treated as request, please set req param with Request)");let s=this.isRequest()||i.get("req")===!0;if(e==="@signature-params")throw new Error(`@signature-params is not available in get method: ${r}`);if(e==="@method"){if(!this.request.method)throw new Error("Request method is empty");return this.request.method.toUpperCase()}else{if(e==="@authority")return this.url.host;if(e==="@scheme")return this.scheme.toLocaleLowerCase();if(e==="@target-uri")return this.targetUri;if(e==="@request-target"){if(!this.request.method)throw new Error("Request method is empty");return`${this.request.method.toLowerCase()} ${this.url.pathname}`}else{if(e==="@path")return this.url.pathname;if(e==="@query")return this.url.search;if(e==="@query-param"){let o=i.get("name");if(o===void 0)throw new Error("Query parameter name not found or invalid");let d=this.url.searchParams.get(o.toString());if(d===null)throw new Error(`Query parameter not found: ${o} (${r})`);return d}else if(e==="@status"){if(!this.response)throw new Error("response is empty (@status)");return Se(this.response)?this.response.status.toString():this.response.statusCode.toString()}else{if(e.startsWith("@"))throw new Error(`Unknown derived component: ${e}`);{let o=i.get("key"),d=i.get("sf")===!0,n=i.get("bs")===!0,a=i.get("tr")===!0;if([o,d,n].filter(S=>S).length>1)throw new Error(`Invalid component: ${r} (multiple params are specified)`);let u=(()=>{if(s)if(a){if("trailers"in this.request&&this.request.trailers)return he(this.request.trailers,e);throw new Error(`Trailers not found in request object (${r})`)}else return this.requestHeaders[e];else{if(!this.response||!this.responseHeaders)throw new Error("response is not provided");if(a){if("trailers"in this.response&&this.response.trailers)return he(this.response.trailers,e);throw new Error(`Trailers not found in response object (${r})`)}else return this.responseHeaders[e]}})();if(u===void 0)throw new Error(`Header not found: ${r}`);if(d){if(!(e in this.sfvTypeDictionary))throw new Error(`Type not found in SFV type dictionary: ${e}`);let S=N(u);if(this.sfvTypeDictionary[e]==="dict")return C.serializeDictionary(C.parseDictionary(S));if(this.sfvTypeDictionary[e]==="list")return C.serializeList(C.parseList(S));if(["item","bs","int","dec","str","bool","token"].includes(this.sfvTypeDictionary[e]))return C.serializeItem(C.parseItem(S))}if(o){if(!(e in this.sfvTypeDictionary))throw new Error(`key specified but type unknown (Type not found in SFV type dictionary): ${r}`);if(typeof u!="string")throw new Error(`Key specified but value is not a string: ${r}`);if(this.sfvTypeDictionary[e]==="dict"){let c=C.parseDictionary(u).get(o);if(c===void 0)throw new Error(`Key not found in dictionary: ${o} (${r})`);return Array.isArray(c[0])?C.serializeList([c]):C.serializeItem(c)}else throw new Error(`"${e}" is not dict: ${this.sfvTypeDictionary[e]} (${r})`)}if(n){let S=(Array.isArray(u)?u:[u]).map(c=>{if(typeof c!="string")throw new Error(`Invalid header value type: ${typeof c}`);return[new C.ByteSequence(be(ye.encode(N(c)).buffer)),new Map]});return C.serializeList(S)}return N(u)}}}}}generate(e){let t=this.isRequest()?this.requestSignatureInput?.get(e):this.responseSignatureInput?.get(e);if(!t)throw new Error(`label not found: ${e}`);if(!Array.isArray(t[0]))throw new Error(`item is not InnerList: ${C.serializeDictionary(new Map([[e,t]]))}`);let i=new Map;for(let r of t[0]){let s=r[0];if(s.startsWith('"'))if(s.endsWith('"'))s=s.slice(1,-1);else throw new Error(`Invalid component identifier name: ${s}`);r[0]=s;let o=C.serializeItem(r);if(i.has(o))throw new Error(`Duplicate key: ${s}`);i.set(o,this.get(s,r[1]))}if(this.requiredComponents){for(let r of this.requiredComponents)if(!i.has(r))throw new Error(`Required component not found: ${r}`)}return i.set('"@signature-params"',C.serializeInnerList(t)),Array.from(i.entries(),([r,s])=>`${r}: ${s}`).join(`
|
|
4
|
-
`)}};function Te(e){let t=ie(e),i=new Map;for(let[r,s]of t){if(!Array.isArray(s))throw new Error("item is not array");let[o,d]=s;i.set(r,[o.map(n=>typeof n=="string"?[n,new Map]:[n[0],fe(n[1])]),fe(d)])}return C.serializeDictionary(i)}var F1=V(z(),1);async function Pe(e,t,i=lt){let r=await(await ct()).subtle.sign(ut(e.algorithm,i.hash),e,ye.encode(t));return be(r)}var G1=V(z(),1);function we(e){let t=e.toUpperCase();if(t==="SHA-256")return"sha-256";if(t==="SHA-512")return"sha-512";throw new Error(`Unsupported hash algorithm: ${e}`)}var q1=V(z(),1);async function j(){return globalThis.crypto??(await import("node:crypto")).webcrypto}var De=e=>{let t=new Uint8Array(e);return P.stringify(t)};var ft=async(e,t="SHA-256")=>(t==="SHA"&&(t="SHA-1"),typeof e=="string"&&(e=new TextEncoder().encode(e)),(await j()).subtle.digest(t,e)),Me=async e=>{let t="SHA-256",i=await ft(e.body,t).then(De),r=`${t}=${i}`,s=`${we(t)}=:${i}:`;return{digest:r,contentDigest:s}};var mt=/^[\x20-\x7E]*$/,gt=/^[a-zA-Z*][:/!#$%&'*+\-.^_`|~A-Za-z0-9]*$/,Ct=/^[a-z*][*\-_.a-z0-9]*$/;function re(e){return mt.test(e)}function ve(e){return gt.test(e)}function Ne(e){return Ct.test(e)}function ke(e){return Array.isArray(e[0])}function Ke(e){let t=new Uint8Array(e),i="";for(let r of t)i+=String.fromCharCode(r);return btoa(i)}function se(e){let t=atob(e),i=t.length,r=new Uint8Array(i);for(let s=0;s<i;s++)r[s]=t.charCodeAt(s);return r.buffer}var K=class{constructor(t){if(!ve(t))throw new TypeError("Invalid character in Token string. Tokens must start with *, A-Z and the rest of the string may only contain a-z, A-Z, 0-9, :/!#$%&'*+-.^_`|~");this.value=t}toString(){return this.value}};var R=class{constructor(t){this.value=t}toString(){return this.value}};var D=class extends Error{};function Re(e){let t=e instanceof Map?e.entries():Object.entries(e);return Array.from(t).map(([i,r])=>{let s=xe(i);return Array.isArray(r)?r[0]===!0?s+Q(r[1]):ke(r)?s+"="+yt(r):s+"="+Oe(r):r===!0?s:s+"="+$(r)}).join(", ")}function Oe(e,t){return Array.isArray(e)?$(e[0])+Q(e[1]):$(e)+(t?Q(t):"")}function yt(e){return`(${e[0].map(t=>Oe(t)).join(" ")})${Q(e[1])}`}function $(e){if(typeof e=="number")return Number.isInteger(e)?It(e):At(e);if(typeof e=="string")return bt(e);if(e instanceof K)return wt(e);if(e instanceof ArrayBuffer)return Pt(e);if(e instanceof R)return Et(e);if(e instanceof Date)return Dt(e);if(typeof e=="boolean")return Tt(e);throw new D(`Cannot serialize values of type ${typeof e}`)}function It(e){if(e<-999999999999999||e>999999999999999)throw new D("Structured headers can only encode integers in the range range of -999,999,999,999,999 to 999,999,999,999,999 inclusive");return e.toString()}function At(e){let t=e.toFixed(3).replace(/0+$/,"");if(t.split(".")[0].replace("-","").length>12)throw new D("Fractional numbers are not allowed to have more than 12 significant digits before the decimal point");return t}function bt(e){if(!re(e))throw new D("Only ASCII strings may be serialized");return`"${e.replace(/("|\\)/g,t=>"\\"+t)}"`}function Et(e){let t='%"',i=new TextEncoder;for(let r of i.encode(e.toString()))r===37||r===34||r<=31||r>=127?t+="%"+r.toString(16):t+=String.fromCharCode(r);return t+'"'}function Tt(e){return e?"?1":"?0"}function Pt(e){return`:${Ke(e)}:`}function wt(e){return e.toString()}function Dt(e){return"@"+Math.floor(e.getTime()/1e3)}function Q(e){return Array.from(e).map(([t,i])=>{let r=";"+xe(t);return i!==!0&&(r+="="+$(i)),r}).join("")}function xe(e){if(!Ne(e))throw new D("Keys in dictionaries must only contain lowercase letter, numbers, _-*. and must start with a letter or *");return e}var Be=async e=>{let{request:t,authenticationType:i,accessKey:r,secretKey:s,creationDate:o}=e,d={key_ops:["sign","verify"],ext:!0,kty:"oct",k:s,alg:"HS256"},n=await(await j()).subtle.importKey("jwk",d,{name:"HMAC",hash:"SHA-256"},!0,["sign","verify"]),a=new Map,u=new Map;a.set(i,n),u.set(i,[["x-timestamp","@authority","content-type","content-digest","content-length"],{keyid:r,created:o,alg:"hmac-sha256"}]);let S=Te(u);Ie(t,"Signature-Input",S);let c=new Ee(t),p=(c.isRequest()?c.requestSignatureInput:c.responseSignatureInput)?.keys();if(!p)throw new Error("signaturesEntries is undefined");let f=new Map,y=new Map;for(let I of p){let b=c.generate(I),l=a.get(I);if(!l)throw new Error(`key not found: ${I}`);y.set(I,b),f.set(I,[se(await Pe(l,b,{hash:"SHA-256",ec:"DSA"})),new Map])}let v=Re(f);return{signatureInputHeader:S,signatureHeader:v}};function _e(e){return{async onRequest({request:t}){let i=t.clone(),r=i.url,s=await i.arrayBuffer()??JSON.stringify({}),o=i.method??"POST",d=await _.generateDigestHeaders({body:s}),n={headers:{"X-Timestamp":Date.now().toString(),Host:new URL(r).host,"Content-Type":i.headers.get("Content-Type")??"application/json","Content-Length":i.headers.get("Content-Length")??s.byteLength.toString(),Digest:d.digest,"Content-Digest":d.contentDigest},body:s.toString(),method:o,url:r},{signatureHeader:a,signatureInputHeader:u}=await _.generateSignatureHeader({request:n,authenticationType:"team",accessKey:e.accessKey,secretKey:Buffer.from(e.secretKey,"hex").toString("base64"),creationDate:Math.floor(Date.now()/1e3)});return t.headers.set("Signature",a),t.headers.set("Signature-Input",u),t.headers.set("X-Timestamp",n.headers["X-Timestamp"]),t.headers.set("Content-Type",n.headers["Content-Type"]),t.headers.set("Digest",n.headers.Digest),t.headers.set("Content-Digest",n.headers["Content-Digest"]),t}}}var m=class extends Error{statusCode;code;constructor(t,i,r){super(t),this.statusCode=i,this.code=r,this.name="SubnotoError"}};function Xe(e){return{async onRequest({request:t}){if(!t.url.includes("/tunnel/")&&!t.url.includes("/public/")||t.url.includes("/tunnel/session"))return t;try{await e.ensureSession();let i=t.clone(),r=Buffer.from(await i.arrayBuffer());if(!r||r.byteLength===0)throw new m("EMPTY_REQUEST_BODY");let s=e.encryptRequest(r);if(!s||s.byteLength===0)throw new m("Empty encrypted message");let o=e.getSessionId();if(!o)throw new m("Session ID not available");let d=new Headers(i.headers);d.set("X-Session-Id",o),d.set("Content-Type","application/octet-stream"),d.set("Content-Length",s.byteLength.toString());let n=await e.getCookies(i.url);return n&&d.set("Cookie",n),new Request(i.url,{method:i.method,headers:d,body:s,mode:i.mode,credentials:i.credentials,cache:i.cache,redirect:i.redirect,referrer:i.referrer,referrerPolicy:i.referrerPolicy,integrity:i.integrity,keepalive:i.keepalive})}catch(i){throw console.error(`Error in tunnel middleware for ${t.url}:`,i),i}},async onResponse({response:t,request:i}){if(!i.url.includes("/tunnel/")&&!i.url.includes("/public/")||i.url.includes("/tunnel/session"))return t;try{if(!(t.headers.get("x-subnoto-encrypted-response")?.includes("true")&&t.headers.get("content-type")?.includes("application/octet-stream")))return t;let s=t.clone(),o=Buffer.from(await s.arrayBuffer());if(o.byteLength===0)throw new m("Empty encrypted response");let d=e.decryptResponse(o),n=new Headers(t.headers);return n.get("x-subnoto-content-type-response")?.includes("application/octet-stream")?(n.set("Content-Type","application/octet-stream"),n.delete("x-subnoto-encrypted-response"),new Response(d,{status:t.status,statusText:t.statusText,headers:n})):(n.set("Content-Type","application/json"),n.delete("x-subnoto-encrypted-response"),n.delete("x-subnoto-content-type-response"),new Response(d,{status:t.status,statusText:t.statusText,headers:n}))}catch(r){throw console.error(`Error decrypting response for ${i.url}:`,r),r}}}}import{fileURLToPath as Mt}from"url";import{dirname as vt,join as Nt}from"path";var kt=Mt(import.meta.url),Kt=vt(kt),Fe=Nt(Kt,"oak_session_wasm_nodejs_bg.wasm");var ce={};de(ce,{PutIncomingMessageResult:()=>Bt,WasmClientSession:()=>H,__wbg_buffer_609cc3eee51ed158:()=>_t,__wbg_call_672a4d21634d4a24:()=>Xt,__wbg_call_7cccdd69e0791ae2:()=>Ft,__wbg_crypto_574e78ad8b13b65f:()=>Ht,__wbg_getRandomValues_b8f5dbd5f3995a9e:()=>Gt,__wbg_msCrypto_a61aeb35a24c1329:()=>Wt,__wbg_new_a12002a7f91c75be:()=>Ut,__wbg_newnoargs_105ed471475aaf50:()=>qt,__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a:()=>Vt,__wbg_newwithlength_a381634e90c276d4:()=>Lt,__wbg_node_905d3e251edff8a2:()=>zt,__wbg_now_807e54c39636c349:()=>jt,__wbg_process_dc0fbacc7c1c06f7:()=>$t,__wbg_randomFillSync_ac0988aba3254290:()=>Qt,__wbg_require_60cc747a6bc5215a:()=>Zt,__wbg_set_65595bdd868b3009:()=>Jt,__wbg_set_wasm:()=>xt,__wbg_static_accessor_GLOBAL_88a902d13a557d07:()=>Yt,__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0:()=>e1,__wbg_static_accessor_SELF_37c5d418e4bf5819:()=>t1,__wbg_static_accessor_WINDOW_5de37043a91a9c40:()=>i1,__wbg_subarray_aa9065fa9dc5df96:()=>r1,__wbg_versions_c01dfd4722a88165:()=>s1,__wbindgen_init_externref_table:()=>n1,__wbindgen_is_function:()=>c1,__wbindgen_is_object:()=>o1,__wbindgen_is_string:()=>a1,__wbindgen_is_undefined:()=>d1,__wbindgen_memory:()=>l1,__wbindgen_string_new:()=>u1,__wbindgen_throw:()=>p1});import{TextDecoder as Rt}from"util";var h,Ot;function xt(e,t){h=e,Ot=t}function G(e){let t=h.__externref_table_alloc();return h.__wbindgen_export_2.set(t,e),t}function W(e,t){try{return e.apply(this,t)}catch(i){let r=G(i);h.__wbindgen_exn_store(r)}}var Ge=new Rt("utf-8",{ignoreBOM:!0,fatal:!0});Ge.decode();var Z=null;function ne(){return(Z===null||Z.byteLength===0)&&(Z=new Uint8Array(h.memory.buffer)),Z}function F(e,t){return e=e>>>0,Ge.decode(ne().subarray(e,e+t))}function x(e){return e==null}var M=0;function O(e,t){let i=t(e.length*1,1)>>>0;return ne().set(e,i/1),M=e.length,i}function w(e){let t=h.__wbindgen_export_2.get(e);return h.__externref_table_dealloc(e),t}function X(e,t){return e=e>>>0,ne().subarray(e/1,e/1+t)}var Bt=Object.freeze({NoIncomingMessageExpected:0,0:"NoIncomingMessageExpected",Success:1,1:"Success"}),He=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>h.__wbg_wasmclientsession_free(e>>>0,1)),H=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,He.unregister(this),t}free(){let t=this.__destroy_into_raw();h.__wbg_wasmclientsession_free(t,0)}constructor(t,i){var r=x(i)?0:O(i,h.__wbindgen_malloc),s=M;let o=h.wasmclientsession_new(x(t)?16777215:t?1:0,r,s);if(o[2])throw w(o[1]);return this.__wbg_ptr=o[0]>>>0,He.register(this,this.__wbg_ptr,this),this}is_open(){return h.wasmclientsession_is_open(this.__wbg_ptr)!==0}write(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_write(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}read(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_read(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}write_buffer(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_write_buffer(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}read_buffer(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_read_buffer(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}put_incoming_message(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_put_incoming_message(this.__wbg_ptr,i,r);if(s[2])throw w(s[1]);return s[0]}get_outgoing_message(){let t=h.wasmclientsession_get_outgoing_message(this.__wbg_ptr);if(t[3])throw w(t[2]);let i;return t[0]!==0&&(i=X(t[0],t[1]).slice(),h.__wbindgen_free(t[0],t[1]*1,1)),i}get_attestation_results_json(){let t=h.wasmclientsession_get_attestation_results_json(this.__wbg_ptr);if(t[3])throw w(t[2]);let i;return t[0]!==0&&(i=F(t[0],t[1]).slice(),h.__wbindgen_free(t[0],t[1]*1,1)),i}get_attestation_status(){let t,i;try{let r=h.wasmclientsession_get_attestation_status(this.__wbg_ptr);return t=r[0],i=r[1],F(r[0],r[1])}finally{h.__wbindgen_free(t,i,1)}}};function _t(e){return e.buffer}function Xt(){return W(function(e,t){return e.call(t)},arguments)}function Ft(){return W(function(e,t,i){return e.call(t,i)},arguments)}function Ht(e){return e.crypto}function Gt(){return W(function(e,t){e.getRandomValues(t)},arguments)}function Wt(e){return e.msCrypto}function Ut(e){return new Uint8Array(e)}function qt(e,t){return new Function(F(e,t))}function Vt(e,t,i){return new Uint8Array(e,t>>>0,i>>>0)}function Lt(e){return new Uint8Array(e>>>0)}function zt(e){return e.node}function jt(){return Date.now()}function $t(e){return e.process}function Qt(){return W(function(e,t){e.randomFillSync(t)},arguments)}function Zt(){return W(function(){return module.require},arguments)}function Jt(e,t,i){e.set(t,i>>>0)}function Yt(){let e=typeof global>"u"?null:global;return x(e)?0:G(e)}function e1(){let e=typeof globalThis>"u"?null:globalThis;return x(e)?0:G(e)}function t1(){let e=typeof self>"u"?null:self;return x(e)?0:G(e)}function i1(){let e=typeof window>"u"?null:window;return x(e)?0:G(e)}function r1(e,t,i){return e.subarray(t>>>0,i>>>0)}function s1(e){return e.versions}function n1(){let e=h.__wbindgen_export_2,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}function c1(e){return typeof e=="function"}function o1(e){let t=e;return typeof t=="object"&&t!==null}function a1(e){return typeof e=="string"}function d1(e){return e===void 0}function l1(){return h.memory}function u1(e,t){return F(e,t)}function p1(e,t){throw new Error(F(e,t))}import*as Ue from"node:path";import*as qe from"node:fs";import*as Ve from"node:process";var oe={};oe["./oak_session_wasm_nodejs_bg.js"]=ce;var We=Ue.dirname(new URL(import.meta.url).pathname);Ve.platform==="win32"&&(We=We.substring(1));var h1=qe.readFileSync(Fe),Le=new WebAssembly.Module(h1),S1=new WebAssembly.Instance(Le,oe),ze=S1.exports;oe["./oak_session_wasm_nodejs_bg.js"].__wbg_set_wasm(ze,Le);ze.__wbindgen_start();import{CookieJar as f1}from"tough-cookie";var J=class{session=null;sessionId=null;config;handshakeInProgress=!1;cookieJar;constructor(t){this.config=t,this.cookieJar=new f1}async ensureSession(){if(!(this.session&&this.session.is_open())){if(this.handshakeInProgress){for(;this.handshakeInProgress;)await new Promise(t=>setTimeout(t,50));return}await this.handshake()}}async handshake(){this.handshakeInProgress=!0;try{let t=this.config.unattested??!1;this.session=new H(t,t?void 0:this.config.attesterKey);let i=4,r=0;if(!this.session)throw new m("Failed to create session");for(;!this.session.is_open()&&r<i;){r++;let s=this.session.get_outgoing_message();if(!s||this.session.is_open())break;let o=`${this.config.apiBaseUrl}/tunnel/session`,d={"Content-Type":"application/octet-stream"};this.sessionId&&(d["X-Session-Id"]=this.sessionId);let n=await this.cookieJar.getCookieString(o);n&&(d.Cookie=n);let a=await fetch(o,{method:"POST",body:s,headers:d});if(!this.sessionId){let c=a.headers.get("X-Session-Id");if(!c)throw new m("No session ID received from server");this.sessionId=c}if(!a.ok){let c=await a.text().catch(()=>"Unable to read error");throw new m(`Handshake failed with status ${a.status}: ${c}`,a.status)}let u=a.headers.getSetCookie?.()||[];for(let c of u)await this.cookieJar.setCookie(c,o);let S=await a.arrayBuffer();if(S.byteLength>0)this.session.put_incoming_message(Buffer.from(S));else throw new m("Empty response from server during handshake")}if(!this.session.is_open()||!this.sessionId)throw new m("Failed to establish session after handshake")}finally{this.handshakeInProgress=!1}}encryptRequest(t){if(!this.session||!this.session.is_open())throw new m("Session not open");try{let i=typeof t=="string"?Buffer.from(t,"utf-8"):t,r=this.session.write(i);return Buffer.from(r)}catch(i){throw new m(`Encryption failed: ${i instanceof Error?i.message:"Unknown error"}`)}}decryptResponse(t){if(!this.session||!this.session.is_open())throw new m("Session not open");try{let i=Buffer.isBuffer(t)?t:Buffer.from(t),r=this.session.read(i);return Buffer.from(r)}catch(i){throw new m(`Decryption failed: ${i instanceof Error?i.message:"Unknown error"}`)}}getSessionId(){return this.sessionId}getCookies(t){return this.cookieJar.getCookieString(t)}destroy(){this.session=null,this.sessionId=null}getAttestationResults(){return this.session?this.session.get_attestation_results_json()??null:null}getAttestationStatus(){return this.session?this.session.get_attestation_status()??null:null}};function je(e){let t=m1({baseUrl:e.apiBaseUrl}),i=new J(e);return t.use(Xe(i)),t.use(_e({accessKey:e.accessKey,secretKey:e.secretKey})),t}import{createCipheriv as g1,randomBytes as C1}from"crypto";async function $e(e,t){let{workspaceUuid:i,fileBuffer:r,envelopeTitle:s}=t,o=await e.POST("/public/envelope/create",{body:{workspaceUuid:i,envelopeTitle:s}});if(o.error)throw new m(`Failed to create envelope: ${JSON.stringify(o.error)}`,o.response?.status,typeof o.error=="object"&&"code"in o.error?String(o.error.code):void 0);let{envelopeUuid:d,documentUuid:n,presignedS3Params:a,revisionEncryptionKey:u}=o.data;if(!a)throw new m("Missing presigned S3 parameters in response");let S=Buffer.from(u,"base64");if(S.length!==32)throw new m("Encryption key must be 32 bytes (256-bit)");let c=C1(12),p=g1("aes-256-gcm",S,c),f=JSON.stringify({documentUuid:n});p.setAAD(Buffer.from(f));let y=Buffer.concat([p.update(r),p.final()]),v=p.getAuthTag(),I=Buffer.concat([c,y,v]),b=new FormData;Object.entries(a.fields).forEach(([A,E])=>{b.append(A,E)}),b.append("file",new Blob([I]),"document.pdf");let l=await fetch(a.url,{method:"POST",body:b});if(!l.ok)throw new m(`S3 upload failed: ${l.status} ${l.statusText}`,l.status);let g=await e.POST("/public/envelope/complete-document-upload",{body:{workspaceUuid:i,envelopeUuid:d,documentUuid:n}});if(g.error)throw new m(`Failed to confirm upload: ${JSON.stringify(g.error)}`,g.response?.status,typeof g.error=="object"&&"code"in g.error?String(g.error.code):void 0);return{envelopeUuid:d,documentUuid:n}}var ae=class{client;constructor(t){this.client=je(t)}get GET(){return this.client.GET}get POST(){return this.client.POST}get PUT(){return this.client.PUT}get DELETE(){return this.client.DELETE}get PATCH(){return this.client.PATCH}uploadDocument(t){return $e(this,t)}};export{ae as SubnotoClient,m as SubnotoError};
|
|
4
|
+
`)}};function Te(e){let t=ie(e),i=new Map;for(let[r,s]of t){if(!Array.isArray(s))throw new Error("item is not array");let[o,d]=s;i.set(r,[o.map(n=>typeof n=="string"?[n,new Map]:[n[0],fe(n[1])]),fe(d)])}return C.serializeDictionary(i)}var F1=V(z(),1);async function Pe(e,t,i=lt){let r=await(await ct()).subtle.sign(ut(e.algorithm,i.hash),e,ye.encode(t));return be(r)}var G1=V(z(),1);function we(e){let t=e.toUpperCase();if(t==="SHA-256")return"sha-256";if(t==="SHA-512")return"sha-512";throw new Error(`Unsupported hash algorithm: ${e}`)}var q1=V(z(),1);async function j(){return globalThis.crypto??(await import("node:crypto")).webcrypto}var De=e=>{let t=new Uint8Array(e);return P.stringify(t)};var ft=async(e,t="SHA-256")=>(t==="SHA"&&(t="SHA-1"),typeof e=="string"&&(e=new TextEncoder().encode(e)),(await j()).subtle.digest(t,e)),Me=async e=>{let t="SHA-256",i=await ft(e.body,t).then(De),r=`${t}=${i}`,s=`${we(t)}=:${i}:`;return{digest:r,contentDigest:s}};var mt=/^[\x20-\x7E]*$/,gt=/^[a-zA-Z*][:/!#$%&'*+\-.^_`|~A-Za-z0-9]*$/,Ct=/^[a-z*][*\-_.a-z0-9]*$/;function re(e){return mt.test(e)}function ve(e){return gt.test(e)}function Ne(e){return Ct.test(e)}function ke(e){return Array.isArray(e[0])}function Ke(e){let t=new Uint8Array(e),i="";for(let r of t)i+=String.fromCharCode(r);return btoa(i)}function se(e){let t=atob(e),i=t.length,r=new Uint8Array(i);for(let s=0;s<i;s++)r[s]=t.charCodeAt(s);return r.buffer}var K=class{constructor(t){if(!ve(t))throw new TypeError("Invalid character in Token string. Tokens must start with *, A-Z and the rest of the string may only contain a-z, A-Z, 0-9, :/!#$%&'*+-.^_`|~");this.value=t}toString(){return this.value}};var R=class{constructor(t){this.value=t}toString(){return this.value}};var D=class extends Error{};function Re(e){let t=e instanceof Map?e.entries():Object.entries(e);return Array.from(t).map(([i,r])=>{let s=xe(i);return Array.isArray(r)?r[0]===!0?s+Q(r[1]):ke(r)?s+"="+yt(r):s+"="+Oe(r):r===!0?s:s+"="+$(r)}).join(", ")}function Oe(e,t){return Array.isArray(e)?$(e[0])+Q(e[1]):$(e)+(t?Q(t):"")}function yt(e){return`(${e[0].map(t=>Oe(t)).join(" ")})${Q(e[1])}`}function $(e){if(typeof e=="number")return Number.isInteger(e)?It(e):At(e);if(typeof e=="string")return bt(e);if(e instanceof K)return wt(e);if(e instanceof ArrayBuffer)return Pt(e);if(e instanceof R)return Et(e);if(e instanceof Date)return Dt(e);if(typeof e=="boolean")return Tt(e);throw new D(`Cannot serialize values of type ${typeof e}`)}function It(e){if(e<-999999999999999||e>999999999999999)throw new D("Structured headers can only encode integers in the range range of -999,999,999,999,999 to 999,999,999,999,999 inclusive");return e.toString()}function At(e){let t=e.toFixed(3).replace(/0+$/,"");if(t.split(".")[0].replace("-","").length>12)throw new D("Fractional numbers are not allowed to have more than 12 significant digits before the decimal point");return t}function bt(e){if(!re(e))throw new D("Only ASCII strings may be serialized");return`"${e.replace(/("|\\)/g,t=>"\\"+t)}"`}function Et(e){let t='%"',i=new TextEncoder;for(let r of i.encode(e.toString()))r===37||r===34||r<=31||r>=127?t+="%"+r.toString(16):t+=String.fromCharCode(r);return t+'"'}function Tt(e){return e?"?1":"?0"}function Pt(e){return`:${Ke(e)}:`}function wt(e){return e.toString()}function Dt(e){return"@"+Math.floor(e.getTime()/1e3)}function Q(e){return Array.from(e).map(([t,i])=>{let r=";"+xe(t);return i!==!0&&(r+="="+$(i)),r}).join("")}function xe(e){if(!Ne(e))throw new D("Keys in dictionaries must only contain lowercase letter, numbers, _-*. and must start with a letter or *");return e}var Be=async e=>{let{request:t,authenticationType:i,accessKey:r,secretKey:s,creationDate:o}=e,d={key_ops:["sign","verify"],ext:!0,kty:"oct",k:s,alg:"HS256"},n=await(await j()).subtle.importKey("jwk",d,{name:"HMAC",hash:"SHA-256"},!0,["sign","verify"]),a=new Map,u=new Map;a.set(i,n),u.set(i,[["x-timestamp","@authority","content-type","content-digest","content-length"],{keyid:r,created:o,alg:"hmac-sha256"}]);let S=Te(u);Ie(t,"Signature-Input",S);let c=new Ee(t),p=(c.isRequest()?c.requestSignatureInput:c.responseSignatureInput)?.keys();if(!p)throw new Error("signaturesEntries is undefined");let f=new Map,y=new Map;for(let I of p){let b=c.generate(I),l=a.get(I);if(!l)throw new Error(`key not found: ${I}`);y.set(I,b),f.set(I,[se(await Pe(l,b,{hash:"SHA-256",ec:"DSA"})),new Map])}let v=Re(f);return{signatureInputHeader:S,signatureHeader:v}};function _e(e){return{async onRequest({request:t}){let i=t.clone(),r=i.url,s=await i.arrayBuffer()??JSON.stringify({}),o=i.method??"POST",d=await _.generateDigestHeaders({body:s}),n={headers:{"X-Timestamp":Date.now().toString(),Host:new URL(r).host,"Content-Type":i.headers.get("Content-Type")??"application/json","Content-Length":i.headers.get("Content-Length")??s.byteLength.toString(),Digest:d.digest,"Content-Digest":d.contentDigest},body:s.toString(),method:o,url:r},{signatureHeader:a,signatureInputHeader:u}=await _.generateSignatureHeader({request:n,authenticationType:"team",accessKey:e.accessKey,secretKey:Buffer.from(e.secretKey,"hex").toString("base64"),creationDate:Math.floor(Date.now()/1e3)});return t.headers.set("Signature",a),t.headers.set("Signature-Input",u),t.headers.set("X-Timestamp",n.headers["X-Timestamp"]),t.headers.set("Content-Type",n.headers["Content-Type"]),t.headers.set("Digest",n.headers.Digest),t.headers.set("Content-Digest",n.headers["Content-Digest"]),t}}}var m=class extends Error{statusCode;code;constructor(t,i,r){super(t),this.statusCode=i,this.code=r,this.name="SubnotoError"}};function Xe(e){return{async onRequest({request:t}){if(!t.url.includes("/tunnel/")&&!t.url.includes("/public/")||t.url.includes("/tunnel/session"))return t;try{await e.ensureSession();let i=t.clone(),r=Buffer.from(await i.arrayBuffer());if(!r||r.byteLength===0)throw new m("EMPTY_REQUEST_BODY");let s=e.encryptRequest(r);if(!s||s.byteLength===0)throw new m("Empty encrypted message");let o=e.getSessionId();if(!o)throw new m("Session ID not available");let d=new Headers(i.headers);d.set("X-Session-Id",o),d.set("Content-Type","application/octet-stream"),d.set("Content-Length",s.byteLength.toString());let n=await e.getCookies(i.url);return n&&d.set("Cookie",n),new Request(i.url,{method:i.method,headers:d,body:s,mode:i.mode,credentials:i.credentials,cache:i.cache,redirect:i.redirect,referrer:i.referrer,referrerPolicy:i.referrerPolicy,integrity:i.integrity,keepalive:i.keepalive})}catch(i){throw console.error(`Error in tunnel middleware for ${t.url}:`,i),i}},async onResponse({response:t,request:i}){if(!i.url.includes("/tunnel/")&&!i.url.includes("/public/")||i.url.includes("/tunnel/session"))return t;try{if(!(t.headers.get("x-subnoto-encrypted-response")?.includes("true")&&t.headers.get("content-type")?.includes("application/octet-stream")))return t;let s=t.clone(),o=Buffer.from(await s.arrayBuffer());if(o.byteLength===0)throw new m("Empty encrypted response");let d=e.decryptResponse(o),n=new Headers(t.headers);return n.get("x-subnoto-content-type-response")?.includes("application/octet-stream")?(n.set("Content-Type","application/octet-stream"),n.delete("x-subnoto-encrypted-response"),new Response(d,{status:t.status,statusText:t.statusText,headers:n})):(n.set("Content-Type","application/json"),n.delete("x-subnoto-encrypted-response"),n.delete("x-subnoto-content-type-response"),new Response(d,{status:t.status,statusText:t.statusText,headers:n}))}catch(r){throw console.error(`Error decrypting response for ${i.url}:`,r),r}}}}import{fileURLToPath as Mt}from"url";import{dirname as vt,join as Nt}from"path";var kt=Mt(import.meta.url),Kt=vt(kt),Fe=Nt(Kt,"oak_session_wasm_nodejs_bg.wasm");var ce={};de(ce,{PutIncomingMessageResult:()=>Bt,WasmClientSession:()=>H,__wbg_buffer_609cc3eee51ed158:()=>_t,__wbg_call_672a4d21634d4a24:()=>Xt,__wbg_call_7cccdd69e0791ae2:()=>Ft,__wbg_crypto_574e78ad8b13b65f:()=>Ht,__wbg_getRandomValues_b8f5dbd5f3995a9e:()=>Gt,__wbg_msCrypto_a61aeb35a24c1329:()=>Wt,__wbg_new_a12002a7f91c75be:()=>Ut,__wbg_newnoargs_105ed471475aaf50:()=>qt,__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a:()=>Vt,__wbg_newwithlength_a381634e90c276d4:()=>Lt,__wbg_node_905d3e251edff8a2:()=>zt,__wbg_now_807e54c39636c349:()=>jt,__wbg_process_dc0fbacc7c1c06f7:()=>$t,__wbg_randomFillSync_ac0988aba3254290:()=>Qt,__wbg_require_60cc747a6bc5215a:()=>Zt,__wbg_set_65595bdd868b3009:()=>Jt,__wbg_set_wasm:()=>xt,__wbg_static_accessor_GLOBAL_88a902d13a557d07:()=>Yt,__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0:()=>e1,__wbg_static_accessor_SELF_37c5d418e4bf5819:()=>t1,__wbg_static_accessor_WINDOW_5de37043a91a9c40:()=>i1,__wbg_subarray_aa9065fa9dc5df96:()=>r1,__wbg_versions_c01dfd4722a88165:()=>s1,__wbindgen_init_externref_table:()=>n1,__wbindgen_is_function:()=>c1,__wbindgen_is_object:()=>o1,__wbindgen_is_string:()=>a1,__wbindgen_is_undefined:()=>d1,__wbindgen_memory:()=>l1,__wbindgen_string_new:()=>u1,__wbindgen_throw:()=>p1});import{TextDecoder as Rt}from"util";var h,Ot;function xt(e,t){h=e,Ot=t}function G(e){let t=h.__externref_table_alloc();return h.__wbindgen_export_2.set(t,e),t}function W(e,t){try{return e.apply(this,t)}catch(i){let r=G(i);h.__wbindgen_exn_store(r)}}var Ge=new Rt("utf-8",{ignoreBOM:!0,fatal:!0});Ge.decode();var Z=null;function ne(){return(Z===null||Z.byteLength===0)&&(Z=new Uint8Array(h.memory.buffer)),Z}function F(e,t){return e=e>>>0,Ge.decode(ne().subarray(e,e+t))}function x(e){return e==null}var M=0;function O(e,t){let i=t(e.length*1,1)>>>0;return ne().set(e,i/1),M=e.length,i}function w(e){let t=h.__wbindgen_export_2.get(e);return h.__externref_table_dealloc(e),t}function X(e,t){return e=e>>>0,ne().subarray(e/1,e/1+t)}var Bt=Object.freeze({NoIncomingMessageExpected:0,0:"NoIncomingMessageExpected",Success:1,1:"Success"}),He=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>h.__wbg_wasmclientsession_free(e>>>0,1)),H=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,He.unregister(this),t}free(){let t=this.__destroy_into_raw();h.__wbg_wasmclientsession_free(t,0)}constructor(t,i){var r=x(i)?0:O(i,h.__wbindgen_malloc),s=M;let o=h.wasmclientsession_new(x(t)?16777215:t?1:0,r,s);if(o[2])throw w(o[1]);return this.__wbg_ptr=o[0]>>>0,He.register(this,this.__wbg_ptr,this),this}is_open(){return h.wasmclientsession_is_open(this.__wbg_ptr)!==0}write(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_write(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}read(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_read(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}write_buffer(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_write_buffer(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}read_buffer(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_read_buffer(this.__wbg_ptr,i,r);if(s[3])throw w(s[2]);var o=X(s[0],s[1]).slice();return h.__wbindgen_free(s[0],s[1]*1,1),o}put_incoming_message(t){let i=O(t,h.__wbindgen_malloc),r=M,s=h.wasmclientsession_put_incoming_message(this.__wbg_ptr,i,r);if(s[2])throw w(s[1]);return s[0]}get_outgoing_message(){let t=h.wasmclientsession_get_outgoing_message(this.__wbg_ptr);if(t[3])throw w(t[2]);let i;return t[0]!==0&&(i=X(t[0],t[1]).slice(),h.__wbindgen_free(t[0],t[1]*1,1)),i}get_attestation_results_json(){let t=h.wasmclientsession_get_attestation_results_json(this.__wbg_ptr);if(t[3])throw w(t[2]);let i;return t[0]!==0&&(i=F(t[0],t[1]).slice(),h.__wbindgen_free(t[0],t[1]*1,1)),i}get_attestation_status(){let t,i;try{let r=h.wasmclientsession_get_attestation_status(this.__wbg_ptr);return t=r[0],i=r[1],F(r[0],r[1])}finally{h.__wbindgen_free(t,i,1)}}};function _t(e){return e.buffer}function Xt(){return W(function(e,t){return e.call(t)},arguments)}function Ft(){return W(function(e,t,i){return e.call(t,i)},arguments)}function Ht(e){return e.crypto}function Gt(){return W(function(e,t){e.getRandomValues(t)},arguments)}function Wt(e){return e.msCrypto}function Ut(e){return new Uint8Array(e)}function qt(e,t){return new Function(F(e,t))}function Vt(e,t,i){return new Uint8Array(e,t>>>0,i>>>0)}function Lt(e){return new Uint8Array(e>>>0)}function zt(e){return e.node}function jt(){return Date.now()}function $t(e){return e.process}function Qt(){return W(function(e,t){e.randomFillSync(t)},arguments)}function Zt(){return W(function(){return module.require},arguments)}function Jt(e,t,i){e.set(t,i>>>0)}function Yt(){let e=typeof global>"u"?null:global;return x(e)?0:G(e)}function e1(){let e=typeof globalThis>"u"?null:globalThis;return x(e)?0:G(e)}function t1(){let e=typeof self>"u"?null:self;return x(e)?0:G(e)}function i1(){let e=typeof window>"u"?null:window;return x(e)?0:G(e)}function r1(e,t,i){return e.subarray(t>>>0,i>>>0)}function s1(e){return e.versions}function n1(){let e=h.__wbindgen_export_2,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}function c1(e){return typeof e=="function"}function o1(e){let t=e;return typeof t=="object"&&t!==null}function a1(e){return typeof e=="string"}function d1(e){return e===void 0}function l1(){return h.memory}function u1(e,t){return F(e,t)}function p1(e,t){throw new Error(F(e,t))}import*as Ue from"node:path";import*as qe from"node:fs";import*as Ve from"node:process";var oe={};oe["./oak_session_wasm_nodejs_bg.js"]=ce;var We=Ue.dirname(new URL(import.meta.url).pathname);Ve.platform==="win32"&&(We=We.substring(1));var h1=qe.readFileSync(Fe),Le=new WebAssembly.Module(h1),S1=new WebAssembly.Instance(Le,oe),ze=S1.exports;oe["./oak_session_wasm_nodejs_bg.js"].__wbg_set_wasm(ze,Le);ze.__wbindgen_start();import{CookieJar as f1}from"tough-cookie";var J=class{session=null;sessionId=null;config;handshakeInProgress=!1;cookieJar;constructor(t){this.config=t,this.cookieJar=new f1}async ensureSession(){if(!(this.session&&this.session.is_open())){if(this.handshakeInProgress){for(;this.handshakeInProgress;)await new Promise(t=>setTimeout(t,50));return}await this.handshake()}}async handshake(){this.handshakeInProgress=!0;try{let t=this.config.unattested??!1;this.session=new H(t,t?void 0:this.config.attesterKey);let i=4,r=0;if(!this.session)throw new m("Failed to create session");for(;!this.session.is_open()&&r<i;){r++;let s=this.session.get_outgoing_message();if(!s||this.session.is_open())break;let o=`${this.config.apiBaseUrl}/tunnel/session`,d={"Content-Type":"application/octet-stream"};this.sessionId&&(d["X-Session-Id"]=this.sessionId);let n=await this.cookieJar.getCookieString(o);n&&(d.Cookie=n);let a=await fetch(o,{method:"POST",body:s,headers:d});if(!this.sessionId){let c=a.headers.get("X-Session-Id");if(!c)throw new m("No session ID received from server");this.sessionId=c}if(!a.ok){let c=await a.text().catch(()=>"Unable to read error");throw new m(`Handshake failed with status ${a.status}: ${c}`,a.status)}let u=a.headers.getSetCookie?.()||[];for(let c of u)await this.cookieJar.setCookie(c,o);let S=await a.arrayBuffer();if(S.byteLength>0)this.session.put_incoming_message(Buffer.from(S));else throw new m("Empty response from server during handshake")}if(!this.session.is_open()||!this.sessionId)throw new m("Failed to establish session after handshake")}finally{this.handshakeInProgress=!1}}encryptRequest(t){if(!this.session||!this.session.is_open())throw new m("Session not open");try{let i=typeof t=="string"?Buffer.from(t,"utf-8"):t,r=this.session.write(i);return Buffer.from(r)}catch(i){throw new m(`Encryption failed: ${i instanceof Error?i.message:"Unknown error"}`)}}decryptResponse(t){if(!this.session||!this.session.is_open())throw new m("Session not open");try{let i=Buffer.isBuffer(t)?t:Buffer.from(t),r=this.session.read(i);return Buffer.from(r)}catch(i){throw new m(`Decryption failed: ${i instanceof Error?i.message:"Unknown error"}`)}}getSessionId(){return this.sessionId}getCookies(t){return this.cookieJar.getCookieString(t)}destroy(){this.session=null,this.sessionId=null}getAttestationResults(){return this.session?this.session.get_attestation_results_json()??null:null}getAttestationStatus(){return this.session?this.session.get_attestation_status()??null:null}};function je(e){let t=m1({baseUrl:e.apiBaseUrl}),i=new J(e);return t.use(Xe(i)),t.use(_e({accessKey:e.accessKey,secretKey:e.secretKey})),{client:t,sessionManager:i}}import{createCipheriv as g1,randomBytes as C1}from"crypto";async function $e(e,t){let{workspaceUuid:i,fileBuffer:r,envelopeTitle:s}=t,o=await e.POST("/public/envelope/create",{body:{workspaceUuid:i,envelopeTitle:s}});if(o.error)throw new m(`Failed to create envelope: ${JSON.stringify(o.error)}`,o.response?.status,typeof o.error=="object"&&"code"in o.error?String(o.error.code):void 0);let{envelopeUuid:d,documentUuid:n,presignedS3Params:a,revisionEncryptionKey:u}=o.data;if(!a)throw new m("Missing presigned S3 parameters in response");let S=Buffer.from(u,"base64");if(S.length!==32)throw new m("Encryption key must be 32 bytes (256-bit)");let c=C1(12),p=g1("aes-256-gcm",S,c),f=JSON.stringify({documentUuid:n});p.setAAD(Buffer.from(f));let y=Buffer.concat([p.update(r),p.final()]),v=p.getAuthTag(),I=Buffer.concat([c,y,v]),b=new FormData;Object.entries(a.fields).forEach(([A,E])=>{b.append(A,E)}),b.append("file",new Blob([I]),"document.pdf");let l=await fetch(a.url,{method:"POST",body:b});if(!l.ok)throw new m(`S3 upload failed: ${l.status} ${l.statusText}`,l.status);let g=await e.POST("/public/envelope/complete-document-upload",{body:{workspaceUuid:i,envelopeUuid:d,documentUuid:n}});if(g.error)throw new m(`Failed to confirm upload: ${JSON.stringify(g.error)}`,g.response?.status,typeof g.error=="object"&&"code"in g.error?String(g.error.code):void 0);return{envelopeUuid:d,documentUuid:n}}var ae=class{client;sessionManager;constructor(t){let{client:i,sessionManager:r}=je(t);this.client=i,this.sessionManager=r}get GET(){return this.client.GET}get POST(){return this.client.POST}get PUT(){return this.client.PUT}get DELETE(){return this.client.DELETE}get PATCH(){return this.client.PATCH}uploadDocument(t){return $e(this,t)}getAttestationStatus(){let t=this.sessionManager.getAttestationStatus();return t?JSON.parse(t):null}getAttestationResults(){let t=this.sessionManager.getAttestationResults();return t?JSON.parse(t):null}};export{ae as SubnotoClient,m as SubnotoError};
|
|
Binary file
|
package/package.json
CHANGED
package/src/base-client.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { type Client } from "openapi-fetch";
|
|
2
2
|
import type { paths } from "./generated/api.gen.js";
|
|
3
|
+
import { SessionManager } from "./session.js";
|
|
3
4
|
import type { SubnotoConfig } from "./types.js";
|
|
4
|
-
export declare function createBaseClient(config: SubnotoConfig):
|
|
5
|
+
export declare function createBaseClient(config: SubnotoConfig): {
|
|
6
|
+
client: Client<paths>;
|
|
7
|
+
sessionManager: SessionManager;
|
|
8
|
+
};
|
package/src/client.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type UploadDocumentOptions, type UploadDocumentResult } from "./helpers
|
|
|
4
4
|
import type { SubnotoConfig } from "./types.js";
|
|
5
5
|
export declare class SubnotoClient {
|
|
6
6
|
private client;
|
|
7
|
+
private sessionManager;
|
|
7
8
|
constructor(config: SubnotoConfig);
|
|
8
9
|
get GET(): Client<paths>["GET"];
|
|
9
10
|
get POST(): Client<paths>["POST"];
|
|
@@ -11,5 +12,9 @@ export declare class SubnotoClient {
|
|
|
11
12
|
get DELETE(): Client<paths>["DELETE"];
|
|
12
13
|
get PATCH(): Client<paths>["PATCH"];
|
|
13
14
|
uploadDocument(options: UploadDocumentOptions): Promise<UploadDocumentResult>;
|
|
15
|
+
getAttestationStatus(): {
|
|
16
|
+
status: string;
|
|
17
|
+
} | null;
|
|
18
|
+
getAttestationResults(): object | null;
|
|
14
19
|
}
|
|
15
20
|
export type { UploadDocumentOptions, UploadDocumentResult };
|
|
@@ -146,7 +146,7 @@ export interface paths {
|
|
|
146
146
|
* @description The error code
|
|
147
147
|
* @enum {string}
|
|
148
148
|
*/
|
|
149
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
149
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
150
150
|
/** @description The error message */
|
|
151
151
|
message: string;
|
|
152
152
|
/** @description A suggestion to resolve the error */
|
|
@@ -330,7 +330,7 @@ export interface paths {
|
|
|
330
330
|
* @description The error code
|
|
331
331
|
* @enum {string}
|
|
332
332
|
*/
|
|
333
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
333
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
334
334
|
/** @description The error message */
|
|
335
335
|
message: string;
|
|
336
336
|
/** @description A suggestion to resolve the error */
|
|
@@ -502,7 +502,7 @@ export interface paths {
|
|
|
502
502
|
* @description The error code
|
|
503
503
|
* @enum {string}
|
|
504
504
|
*/
|
|
505
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
505
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
506
506
|
/** @description The error message */
|
|
507
507
|
message: string;
|
|
508
508
|
/** @description A suggestion to resolve the error */
|
|
@@ -687,7 +687,7 @@ export interface paths {
|
|
|
687
687
|
* @description The error code
|
|
688
688
|
* @enum {string}
|
|
689
689
|
*/
|
|
690
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
690
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
691
691
|
/** @description The error message */
|
|
692
692
|
message: string;
|
|
693
693
|
/** @description A suggestion to resolve the error */
|
|
@@ -880,7 +880,7 @@ export interface paths {
|
|
|
880
880
|
* @description The error code
|
|
881
881
|
* @enum {string}
|
|
882
882
|
*/
|
|
883
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
883
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
884
884
|
/** @description The error message */
|
|
885
885
|
message: string;
|
|
886
886
|
/** @description A suggestion to resolve the error */
|
|
@@ -1123,7 +1123,7 @@ export interface paths {
|
|
|
1123
1123
|
* @description The error code
|
|
1124
1124
|
* @enum {string}
|
|
1125
1125
|
*/
|
|
1126
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
1126
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
1127
1127
|
/** @description The error message */
|
|
1128
1128
|
message: string;
|
|
1129
1129
|
/** @description A suggestion to resolve the error */
|
|
@@ -1219,16 +1219,48 @@ export interface paths {
|
|
|
1219
1219
|
firstname: string;
|
|
1220
1220
|
/** @description The recipient's last name. */
|
|
1221
1221
|
lastname: string;
|
|
1222
|
+
/** @description The recipient's phone number (required for SMS verification). */
|
|
1223
|
+
phone?: string;
|
|
1224
|
+
/**
|
|
1225
|
+
* @description The language for the recipient (e.g., 'en', 'fr').
|
|
1226
|
+
* @enum {string}
|
|
1227
|
+
*/
|
|
1228
|
+
language?: "en" | "fr";
|
|
1229
|
+
/**
|
|
1230
|
+
* @description The verification type for the recipient.
|
|
1231
|
+
* @enum {string}
|
|
1232
|
+
*/
|
|
1233
|
+
verificationType?: "none" | "sms";
|
|
1222
1234
|
} | {
|
|
1223
1235
|
/** @enum {string} */
|
|
1224
1236
|
type: "contact";
|
|
1225
1237
|
/** @description The UUID of the contact to use. */
|
|
1226
1238
|
contactUuid: string;
|
|
1239
|
+
/**
|
|
1240
|
+
* @description The language for the recipient (e.g., 'en', 'fr').
|
|
1241
|
+
* @enum {string}
|
|
1242
|
+
*/
|
|
1243
|
+
language?: "en" | "fr";
|
|
1244
|
+
/**
|
|
1245
|
+
* @description The verification type for the recipient.
|
|
1246
|
+
* @enum {string}
|
|
1247
|
+
*/
|
|
1248
|
+
verificationType?: "none" | "sms";
|
|
1227
1249
|
} | {
|
|
1228
1250
|
/** @enum {string} */
|
|
1229
1251
|
type: "member";
|
|
1230
1252
|
/** @description The UUID of the workspace member to use. */
|
|
1231
1253
|
userUuid: string;
|
|
1254
|
+
/**
|
|
1255
|
+
* @description The language for the recipient (e.g., 'en', 'fr').
|
|
1256
|
+
* @enum {string}
|
|
1257
|
+
*/
|
|
1258
|
+
language?: "en" | "fr";
|
|
1259
|
+
/**
|
|
1260
|
+
* @description The verification type for the recipient.
|
|
1261
|
+
* @enum {string}
|
|
1262
|
+
*/
|
|
1263
|
+
verificationType?: "none" | "sms";
|
|
1232
1264
|
})[];
|
|
1233
1265
|
};
|
|
1234
1266
|
};
|
|
@@ -1278,7 +1310,7 @@ export interface paths {
|
|
|
1278
1310
|
* @description The error code
|
|
1279
1311
|
* @enum {string}
|
|
1280
1312
|
*/
|
|
1281
|
-
code: "WORKSPACE_NOT_FOUND" | "ENVELOPE_NOT_FOUND" | "DUPLICATE_RECIPIENT" | "ENVELOPE_NOT_IN_DRAFT" | "CONTACT_NOT_FOUND" | "USER_NOT_FOUND" | "INVALID_REQUEST_FORMAT";
|
|
1313
|
+
code: "WORKSPACE_NOT_FOUND" | "ENVELOPE_NOT_FOUND" | "DUPLICATE_RECIPIENT" | "ENVELOPE_NOT_IN_DRAFT" | "CONTACT_NOT_FOUND" | "USER_NOT_FOUND" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
1282
1314
|
/** @description The error message */
|
|
1283
1315
|
message: string;
|
|
1284
1316
|
/** @description A suggestion to resolve the error */
|
|
@@ -1340,7 +1372,7 @@ export interface paths {
|
|
|
1340
1372
|
* @description The error code
|
|
1341
1373
|
* @enum {string}
|
|
1342
1374
|
*/
|
|
1343
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
1375
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
1344
1376
|
/** @description The error message */
|
|
1345
1377
|
message: string;
|
|
1346
1378
|
/** @description A suggestion to resolve the error */
|
|
@@ -1548,7 +1580,7 @@ export interface paths {
|
|
|
1548
1580
|
* @description The error code
|
|
1549
1581
|
* @enum {string}
|
|
1550
1582
|
*/
|
|
1551
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
1583
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
1552
1584
|
/** @description The error message */
|
|
1553
1585
|
message: string;
|
|
1554
1586
|
/** @description A suggestion to resolve the error */
|
|
@@ -1755,7 +1787,7 @@ export interface paths {
|
|
|
1755
1787
|
* @description The error code
|
|
1756
1788
|
* @enum {string}
|
|
1757
1789
|
*/
|
|
1758
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
1790
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
1759
1791
|
/** @description The error message */
|
|
1760
1792
|
message: string;
|
|
1761
1793
|
/** @description A suggestion to resolve the error */
|
|
@@ -1934,7 +1966,7 @@ export interface paths {
|
|
|
1934
1966
|
* @description The error code
|
|
1935
1967
|
* @enum {string}
|
|
1936
1968
|
*/
|
|
1937
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
1969
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
1938
1970
|
/** @description The error message */
|
|
1939
1971
|
message: string;
|
|
1940
1972
|
/** @description A suggestion to resolve the error */
|
|
@@ -2106,7 +2138,7 @@ export interface paths {
|
|
|
2106
2138
|
* @description The error code
|
|
2107
2139
|
* @enum {string}
|
|
2108
2140
|
*/
|
|
2109
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
2141
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
2110
2142
|
/** @description The error message */
|
|
2111
2143
|
message: string;
|
|
2112
2144
|
/** @description A suggestion to resolve the error */
|
|
@@ -2286,7 +2318,7 @@ export interface paths {
|
|
|
2286
2318
|
* @description The error code
|
|
2287
2319
|
* @enum {string}
|
|
2288
2320
|
*/
|
|
2289
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
2321
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
2290
2322
|
/** @description The error message */
|
|
2291
2323
|
message: string;
|
|
2292
2324
|
/** @description A suggestion to resolve the error */
|
|
@@ -2462,7 +2494,7 @@ export interface paths {
|
|
|
2462
2494
|
* @description The error code
|
|
2463
2495
|
* @enum {string}
|
|
2464
2496
|
*/
|
|
2465
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
2497
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
2466
2498
|
/** @description The error message */
|
|
2467
2499
|
message: string;
|
|
2468
2500
|
/** @description A suggestion to resolve the error */
|
|
@@ -2648,7 +2680,7 @@ export interface paths {
|
|
|
2648
2680
|
* @description The error code
|
|
2649
2681
|
* @enum {string}
|
|
2650
2682
|
*/
|
|
2651
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
2683
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
2652
2684
|
/** @description The error message */
|
|
2653
2685
|
message: string;
|
|
2654
2686
|
/** @description A suggestion to resolve the error */
|
|
@@ -2819,7 +2851,7 @@ export interface paths {
|
|
|
2819
2851
|
* @description The error code
|
|
2820
2852
|
* @enum {string}
|
|
2821
2853
|
*/
|
|
2822
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
2854
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
2823
2855
|
/** @description The error message */
|
|
2824
2856
|
message: string;
|
|
2825
2857
|
/** @description A suggestion to resolve the error */
|
|
@@ -2993,7 +3025,7 @@ export interface paths {
|
|
|
2993
3025
|
* @description The error code
|
|
2994
3026
|
* @enum {string}
|
|
2995
3027
|
*/
|
|
2996
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
3028
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
2997
3029
|
/** @description The error message */
|
|
2998
3030
|
message: string;
|
|
2999
3031
|
/** @description A suggestion to resolve the error */
|
|
@@ -3287,7 +3319,7 @@ export interface paths {
|
|
|
3287
3319
|
* @description The error code
|
|
3288
3320
|
* @enum {string}
|
|
3289
3321
|
*/
|
|
3290
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
3322
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
3291
3323
|
/** @description The error message */
|
|
3292
3324
|
message: string;
|
|
3293
3325
|
/** @description A suggestion to resolve the error */
|
|
@@ -3459,7 +3491,7 @@ export interface paths {
|
|
|
3459
3491
|
* @description The error code
|
|
3460
3492
|
* @enum {string}
|
|
3461
3493
|
*/
|
|
3462
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
3494
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
3463
3495
|
/** @description The error message */
|
|
3464
3496
|
message: string;
|
|
3465
3497
|
/** @description A suggestion to resolve the error */
|
|
@@ -3649,7 +3681,7 @@ export interface paths {
|
|
|
3649
3681
|
* @description The error code
|
|
3650
3682
|
* @enum {string}
|
|
3651
3683
|
*/
|
|
3652
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
3684
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
3653
3685
|
/** @description The error message */
|
|
3654
3686
|
message: string;
|
|
3655
3687
|
/** @description A suggestion to resolve the error */
|
|
@@ -3837,7 +3869,7 @@ export interface paths {
|
|
|
3837
3869
|
* @description The error code
|
|
3838
3870
|
* @enum {string}
|
|
3839
3871
|
*/
|
|
3840
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
3872
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
3841
3873
|
/** @description The error message */
|
|
3842
3874
|
message: string;
|
|
3843
3875
|
/** @description A suggestion to resolve the error */
|
|
@@ -3984,7 +4016,7 @@ export interface paths {
|
|
|
3984
4016
|
* @description The error code
|
|
3985
4017
|
* @enum {string}
|
|
3986
4018
|
*/
|
|
3987
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
4019
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
3988
4020
|
/** @description The error message */
|
|
3989
4021
|
message: string;
|
|
3990
4022
|
/** @description A suggestion to resolve the error */
|
|
@@ -4133,7 +4165,7 @@ export interface paths {
|
|
|
4133
4165
|
* @description The error code
|
|
4134
4166
|
* @enum {string}
|
|
4135
4167
|
*/
|
|
4136
|
-
code: "AUTHORIZATION_ERROR" | "INVALID_REQUEST_FORMAT";
|
|
4168
|
+
code: "AUTHORIZATION_ERROR" | "FEATURE_NOT_IN_CURRENT_PLAN" | "INVALID_REQUEST_FORMAT";
|
|
4137
4169
|
/** @description The error message */
|
|
4138
4170
|
message: string;
|
|
4139
4171
|
/** @description A suggestion to resolve the error */
|