@deepcitation/deepcitation-js 1.1.29 → 1.1.31
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/README.md +254 -253
- package/lib/chunk-4HRWJSX6.cjs +1 -0
- package/lib/chunk-ETIDLMKZ.js +1 -0
- package/lib/chunk-G6RPOT3H.js +2 -0
- package/lib/chunk-URRIEXFH.cjs +2 -0
- package/lib/client/index.cjs +1 -1
- package/lib/client/index.d.cts +9 -10
- package/lib/client/index.d.ts +9 -10
- package/lib/client/index.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.cts +48 -2
- package/lib/index.d.ts +48 -2
- package/lib/index.js +1 -1
- package/lib/react/index.cjs +2 -2
- package/lib/react/index.js +2 -2
- package/package.json +1 -1
- package/lib/chunk-3GR7VKUJ.cjs +0 -1
- package/lib/chunk-LSKISWWH.cjs +0 -2
- package/lib/chunk-QGXCOW3E.js +0 -1
- package/lib/chunk-RCHWBA6D.js +0 -2
package/lib/chunk-LSKISWWH.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var chunk3GR7VKUJ_cjs=require('./chunk-3GR7VKUJ.cjs'),chunkF2MMVEVC_cjs=require('./chunk-F2MMVEVC.cjs');function E(t){if(!t)return;let e=[],n=t.split(",");for(let s of n){let i=s.trim();if(i)if(i.includes("-")){let[r,a]=i.split("-"),o=parseInt(r,10),p=parseInt(a,10);if(!isNaN(o)&&!isNaN(p)&&o<=p)for(let c=o;c<=p;c++)e.push(c);else isNaN(o)||e.push(o);}else {let r=parseInt(i,10);isNaN(r)||e.push(r);}}if(e.length!==0)return [...new Set(e)].sort((s,i)=>s-i)}function q(t){let e=t?.status,n=e==="not_found",s=e==="found_phrase_missed_value",i=e==="found_key_span_only",r=e==="partial_text_found"||e==="found_on_other_page"||e==="found_on_other_line"||e==="first_word_found";return {isVerified:e==="found"||i||r||s,isMiss:n,isPartialMatch:r,isPending:e==="pending"||e==="loading"||!e}}var M=(t,e,n,s)=>{let i=f=>f?f.replace(/^['"]|['"]$/g,"").replace(/\\'/g,"'"):void 0,r=n?.current?n.current++:void 0,a=t.substring(0,t.indexOf("<cite")),o=t.includes("/>")?t.slice(t.indexOf("/>")+2):"",p=t.substring(t.indexOf("<cite"),t.indexOf("/>")+2),c=(f,y)=>{for(let N of y){let D=new RegExp(`${N}='((?:[^'\\\\]|\\\\.)*)'`),v=f.match(D);if(v)return v[1]}},l=c(p,["attachment_id","attachmentId","file_id","fileId"]),h=l?.length===20?l:e||l,m=c(p,["start_page_key","startPageKey","start_page"]),d,_;if(m){let f=m.match(/page[\_a-zA-Z]*(\d+)_index_(\d+)/);f&&(d=parseInt(f[1]),_=parseInt(f[2]));}let B=i(c(p,["full_phrase","fullPhrase"])),T=i(c(p,["key_span","keySpan"])),V=i(c(p,["reasoning"])),K=i(c(p,["value"])),b;try{let y=c(p,["line_ids","lineIds"])?.replace(/[A-Za-z_[\](){}:]/g,"");b=y?E(y):void 0;}catch(f){s&&console.error("Error parsing lineIds",f);}let w=c(p,["timestamps"]),k;if(w){let[f,y]=w.split("-")||[];k={startTime:f,endTime:y};}let $={attachmentId:h,pageNumber:d,startPageKey:`page_number_${d||1}_index_${_||0}`,fullPhrase:B,keySpan:T||K,citationNumber:r,lineIds:b,beforeCite:a,timestamps:k,reasoning:V};return {beforeCite:a,afterCite:o,citation:$}},z=(t,e)=>{if(!t)return null;let n=t.fullPhrase??t.full_phrase,s=t.startPageKey??t.start_page_key,i=t.keySpan??t.key_span,r=t.lineIds??t.line_ids,a=t.attachmentId??t.attachment_id??t.fileId??t.file_id,o=t.reasoning,p=t.value;if(!n)return null;let c;if(s){let m=s.match(/page[_a-zA-Z]*(\d+)_index_(\d+)/i);if(m)c=parseInt(m[1],10);else {let d=s.match(/^(\d+)_(\d+)$/);d&&(c=parseInt(d[1],10));}}let l=r?.length?[...r].sort((m,d)=>m-d):void 0;return {attachmentId:a,pageNumber:c,fullPhrase:n,citationNumber:e,lineIds:l,keySpan:i||p,reasoning:o}},O=t=>typeof t=="object"&&t!==null&&("fullPhrase"in t||"full_phrase"in t||"startPageKey"in t||"start_page_key"in t||"keySpan"in t||"key_span"in t||"lineIds"in t||"line_ids"in t),I=t=>Array.isArray(t)?t.length>0&&t.some(O):typeof t=="object"&&t!==null?O(t):false,x=t=>{let e={},n=Array.isArray(t)?t:[t],s=1;for(let i of n){let r=z(i,s++);if(r&&r.fullPhrase){let a=chunk3GR7VKUJ_cjs.h(r);e[a]=r;}}return e},P=(t,e)=>{if(!(!t||typeof t!="object")){if(t.citation&&I(t.citation)){let n=Array.isArray(t.citation)?t.citation:[t.citation];e.push(...n);}if(t.citations&&I(t.citations)){let n=Array.isArray(t.citations)?t.citations:[t.citations];e.push(...n);}if(Array.isArray(t))for(let n of t)P(n,e);else for(let n of Object.keys(t))n!=="citation"&&n!=="citations"&&P(t[n],e);}},R=t=>{let e=chunk3GR7VKUJ_cjs.e(t),n=/<cite\s+[^>]*\/>/g,s=e.match(n);if(!s||s.length===0)return {};let i={},r={current:1};for(let a of s){let{citation:o}=M(a,void 0,r);if(o&&o.fullPhrase){let p=chunk3GR7VKUJ_cjs.h(o);i[p]=o;}}return i},S=t=>{if(!t)return {};let e={};if(typeof t=="object"){if(I(t)){let i=x(t);Object.assign(e,i);}else {let i=[];if(P(t,i),i.length>0){let r=x(i);Object.assign(e,r);}}let n=JSON.stringify(t),s=R(n);Object.assign(e,s);}else if(typeof t=="string"){let n=R(t);Object.assign(e,n);}return e};function Z(t){let e=new Map,n=Array.isArray(t)?t.map((s,i)=>[chunk3GR7VKUJ_cjs.h(s)||String(i+1),s]):Object.entries(t);for(let[s,i]of n){let r=i.attachmentId||"";e.has(r)||e.set(r,{}),e.get(r)[s]=i;}return e}function G(t){let e={},n=Array.isArray(t)?t.map((s,i)=>[chunk3GR7VKUJ_cjs.h(s)||String(i+1),s]):Object.entries(t);for(let[s,i]of n){let r=i.attachmentId||"";e[r]||(e[r]={}),e[r][s]=i;}return e}var L="https://api.deepcitation.com";function U(t,e){if(typeof Buffer<"u"&&Buffer.isBuffer(t)){let n=Uint8Array.from(t);return {blob:new Blob([n]),name:e||"document"}}if(t instanceof Blob)return {blob:t,name:e||(t instanceof File?t.name:"document")};throw new Error("Invalid file type. Expected File, Blob, or Buffer.")}async function g(t,e){return (await t.json().catch(()=>({})))?.error?.message||`${e} failed with status ${t.status}`}var F=class{constructor(e){chunkF2MMVEVC_cjs.a(this,"apiKey");chunkF2MMVEVC_cjs.a(this,"apiUrl");if(!e.apiKey)throw new Error("DeepCitation API key is required. Get one at https://deepcitation.com/dashboard");this.apiKey=e.apiKey,this.apiUrl=e.apiUrl?.replace(/\/$/,"")||L;}async uploadFile(e,n){let{blob:s,name:i}=U(e,n?.filename),r=new FormData;r.append("file",s,i),n?.attachmentId&&r.append("attachmentId",n.attachmentId),n?.filename&&r.append("filename",n.filename);let a=await fetch(`${this.apiUrl}/prepareFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`},body:r});if(!a.ok)throw new Error(await g(a,"Upload"));return await a.json()}async convertToPdf(e){let n=typeof e=="string"?{url:e}:e,{url:s,file:i,filename:r,attachmentId:a}=n;if(!s&&!i)throw new Error("Either url or file must be provided");let o;if(s)o=await fetch(`${this.apiUrl}/convertFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({url:s,filename:r,attachmentId:a})});else {let{blob:p,name:c}=U(i,r),l=new FormData;l.append("file",p,c),a&&l.append("attachmentId",a),r&&l.append("filename",r),o=await fetch(`${this.apiUrl}/convertFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`},body:l});}if(!o.ok)throw new Error(await g(o,"Conversion"));return await o.json()}async prepareConvertedFile(e){let n=await fetch(`${this.apiUrl}/prepareFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({attachmentId:e.attachmentId})});if(!n.ok)throw new Error(await g(n,"Prepare"));return await n.json()}async prepareFiles(e){if(e.length===0)return {fileDataParts:[],deepTextPromptPortion:[]};let n=e.map(({file:a,filename:o,attachmentId:p})=>this.uploadFile(a,{filename:o,attachmentId:p}).then(c=>({result:c,filename:o}))),i=(await Promise.all(n)).map(({result:a,filename:o})=>({attachmentId:a.attachmentId,deepTextPromptPortion:a.deepTextPromptPortion,filename:o||a.metadata?.filename})),r=i.map(a=>a.deepTextPromptPortion);return {fileDataParts:i,deepTextPromptPortion:r}}async verifyCitations(e,n,s){let i={};if(Array.isArray(n))for(let c of n){let l=chunk3GR7VKUJ_cjs.h(c);i[l]=c;}else if(typeof n=="object"&&n!==null)if("fullPhrase"in n||"value"in n){let c=chunk3GR7VKUJ_cjs.h(n);i[c]=n;}else Object.assign(i,n);else throw new Error("Invalid citations format");let r=`${this.apiUrl}/verifyCitations`,a={data:{attachmentId:e,citations:i,outputImageFormat:s?.outputImageFormat||"avif"}},o=await fetch(r,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!o.ok)throw new Error(await g(o,"Verification"));return await o.json()}async verifyCitationsFromLlmOutput(e,n){let{llmOutput:s,outputImageFormat:i="avif"}=e;if(n||(n=S(s)),Object.keys(n).length===0)return {verifications:{}};let r=new Map;for(let[c,l]of Object.entries(n)){let h=l.attachmentId||"";r.has(h)||r.set(h,{}),r.get(h)[c]=l;}let a=[];for(let[c,l]of r)c&&a.push(this.verifyCitations(c,l,{outputImageFormat:i}));let o=await Promise.all(a),p={};for(let c of o)Object.assign(p,c.verifications);return {verifications:p}}};
|
|
2
|
-
exports.a=q;exports.b=M;exports.c=S;exports.d=Z;exports.e=G;exports.f=F;
|
package/lib/chunk-QGXCOW3E.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var j=(e,t)=>{let o=/<cite\s+(?:fileId|attachmentId)='(\w{0,25})'\s+start_page[\_a-zA-Z]*='page[\_a-zA-Z]*(\d+)_index_(\d+)'\s+full_phrase='((?:[^'\\]|\\.)*)'\s+key_span='((?:[^'\\]|\\.)*)'\s+line(?:_ids|Ids)='([^']+)'(?:\s+(value|reasoning)='((?:[^'\\]|\\.)*)')?\s*\/>/g;return e.replace(o,(u,x,b,p,r,a,g,n)=>t&&a?.replace(/key_span=['"]|['"]/g,"")||"")},v=e=>e.replace(/<page_number_\d+_index_\d+>/g,"").replace(/<\/page_number_\d+_index_\d+>/g,"").trim(),$=e=>{let t=/<line id="[^"]*">|<\/line>/g;return e.replace(t,"")},N=e=>{if(!e)return null;let t=e.match(/\d+/)?.[0];return t?parseInt(t):null},z=e=>{let t=e?.trim()||"",o=t.split(/(<cite[\s\S]*?(?:\/>|<\/cite>))/gm);return o.length<=1?C(t):(t=o.map(u=>u.startsWith("<cite")?C(u):u).join(""),t)},C=e=>{let t=e;t=t.replace(/><\/cite>/g,"/>");let o=p=>{let r=p.toLowerCase();return r==="fullphrase"||r==="full_phrase"?"full_phrase":r==="lineids"||r==="line_ids"?"line_ids":r==="startpagekey"||r==="start_pagekey"||r==="start_page_key"?"start_page_key":r==="fileid"||r==="file_id"||r==="attachmentid"||r==="attachment_id"?"attachment_id":r==="keyspan"||r==="key_span"?"key_span":r==="reasoning"||r==="value"?r:r==="timestamps"||r==="timestamp"||r==="timestamps"?"timestamps":r},u=p=>p.replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&"),x=/(fullPhrase|full_phrase|keySpan|key_span|reasoning|value)\s*=\s*(['"])([\s\S]*?)(?=\s+(?:line_ids|lineIds|timestamps|fileId|file_id|attachmentId|attachment_id|start_page_key|start_pageKey|startPageKey|keySpan|key_span|reasoning|value|full_phrase)|\s*\/?>)/gm;t=t.replace(x,(p,r,a,g)=>{let n=g;return n.endsWith(a)&&(n=n.slice(0,-1)),n=n.replace(/(\r?\n)+/g," "),n=u(n),n=n.replace(/(\*|_){2,}/g,""),n=n.replace(/\\\\'/g,"'"),n=n.replace(/\\'/g,"'"),n=n.replace(/'/g,"\\'"),n=n.replace(/\\\\"/g,'"'),n=n.replace(/\\"/g,'"'),n=n.replace(/"/g,'\\"'),n=n.replace(/\*/g,""),`${o(r)}='${n}'`}),t=t.replace(/(line_ids|lineIds|timestamps)=['"]?([\[\]\(\){}A-Za-z0-9_\-, ]+)['"]?(\s*\/?>|\s+)/gm,(p,r,a,g)=>{let n=a.replace(/[A-Za-z\[\]\(\){}]/g,"");return n=n.replace(/(\d+)-(\d+)/g,(k,h,i)=>{let d=parseInt(h,10),m=parseInt(i,10),s=[];if(d<=m)for(let c=d;c<=m;c++)s.push(c);else s.push(d);return s.join(",")}),n=n.replace(/,+/g,",").replace(/^,|,$/g,""),`${o(r)}='${n}'${g}`});let b=p=>{let r=/([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(['"])((?:[^'"\\\n]|\\.)*)(?:\2)/g,a={},g;for(;g=r.exec(p);){let s=g[1],c=g[3],f=o(s);a[f]=c;}let n=Object.keys(a);if(n.length===0)return p;let k=typeof a.timestamps=="string"&&a.timestamps.length>0,h=n.filter(s=>s.startsWith("start_page")),i=[];a.attachment_id&&i.push("attachment_id"),k?(a.full_phrase&&i.push("full_phrase"),i.push("timestamps")):(h.includes("start_page_key")&&i.push("start_page_key"),h.filter(s=>s!=="start_page_key").sort().forEach(s=>i.push(s)),a.full_phrase&&i.push("full_phrase"),a.key_span&&i.push("key_span"),a.line_ids&&i.push("line_ids")),a.reasoning&&i.push("reasoning"),a.value&&i.push("value");let d=new Set(i);return n.filter(s=>!d.has(s)).sort().forEach(s=>i.push(s)),`<cite ${i.map(s=>`${s}='${a[s]}'`).join(" ")} />`};return t=t.replace(/<cite\b[\s\S]*?\/>/gm,p=>b(p)),t};function w(e){return new TextEncoder().encode(e)}function T(e){let t=1732584193,o=4023233417,u=2562383102,x=271733878,b=3285377520,p=e.length,r=p*8,a=p+1+8,g=Math.ceil(a/64)*64,n=new ArrayBuffer(g),k=new Uint8Array(n),h=new DataView(n);k.set(e),k[p]=128,h.setUint32(g-8,Math.floor(r/4294967296),false),h.setUint32(g-4,r>>>0,false);let i=new Uint32Array(80);for(let m=0;m<g;m+=64){for(let l=0;l<16;l++)i[l]=h.getUint32(m+l*4,false);for(let l=16;l<80;l++){let y=i[l-3]^i[l-8]^i[l-14]^i[l-16];i[l]=y<<1|y>>>31;}let s=t,c=o,f=u,_=x,S=b;for(let l=0;l<80;l++){let y,I;l<20?(y=c&f|~c&_,I=1518500249):l<40?(y=c^f^_,I=1859775393):l<60?(y=c&f|c&_|f&_,I=2400959708):(y=c^f^_,I=3395469782);let P=(s<<5|s>>>27)+y+S+I+i[l]>>>0;S=_,_=f,f=(c<<30|c>>>2)>>>0,c=s,s=P;}t=t+s>>>0,o=o+c>>>0,u=u+f>>>0,x=x+_>>>0,b=b+S>>>0;}let d=m=>m.toString(16).padStart(8,"0");return d(t)+d(o)+d(u)+d(x)+d(b)}function A(e){try{if(!e)return "";let t=typeof e=="string"?e:JSON.stringify(e);return T(w(t))}catch(t){console.error("Error in making the hash:",t);}return ""}function M(...e){return e.filter(Boolean).join(" ")}function R(e){let t=e.pageNumber||N(e.startPageKey),o=[e.attachmentId||"",t?.toString()||"",e.fullPhrase||"",e.keySpan?.toString()||"",e.lineIds?.join(",")||"",e.timestamps?.startTime||"",e.timestamps?.endTime||""];return A(o.join("|")).slice(0,16)}function U(e){let t=[e.attachmentId||"",e.label||"",e.verifiedFullPhrase||"",e.verifiedKeySpan||"",e.verifiedLineIds?.join(",")||"",e.verifiedPageNumber?.toString()||"",e.verifiedTimestamps?.startTime||"",e.verifiedTimestamps?.endTime||"",e.verifiedMatchSnippet||"",e.hitIndexWithinPage?.toString()||""];return A(t.join("|")).slice(0,16)}function V(e){let t=Math.random().toString(36).slice(2,11);return `${e}-${t}`}function Z(e,t={}){let{fallbackDisplay:o}=t;return e.keySpan?.toString()||e.citationNumber?.toString()||o||"1"}function O(e){return e.citationNumber?.toString()||"1"}function W(e){return e.keySpan?.toString()||""}function B(...e){return e.filter(Boolean).join(" ")}var H=4,G=1;export{j as a,v as b,$ as c,N as d,z as e,A as f,M as g,R as h,U as i,V as j,Z as k,O as l,W as m,B as n,H as o,G as p};
|
package/lib/chunk-RCHWBA6D.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {h,e}from'./chunk-QGXCOW3E.js';import {a}from'./chunk-O2XFH626.js';function E(t){if(!t)return;let e=[],n=t.split(",");for(let s of n){let i=s.trim();if(i)if(i.includes("-")){let[r,a]=i.split("-"),o=parseInt(r,10),p=parseInt(a,10);if(!isNaN(o)&&!isNaN(p)&&o<=p)for(let c=o;c<=p;c++)e.push(c);else isNaN(o)||e.push(o);}else {let r=parseInt(i,10);isNaN(r)||e.push(r);}}if(e.length!==0)return [...new Set(e)].sort((s,i)=>s-i)}function q(t){let e=t?.status,n=e==="not_found",s=e==="found_phrase_missed_value",i=e==="found_key_span_only",r=e==="partial_text_found"||e==="found_on_other_page"||e==="found_on_other_line"||e==="first_word_found";return {isVerified:e==="found"||i||r||s,isMiss:n,isPartialMatch:r,isPending:e==="pending"||e==="loading"||!e}}var M=(t,e,n,s)=>{let i=f=>f?f.replace(/^['"]|['"]$/g,"").replace(/\\'/g,"'"):void 0,r=n?.current?n.current++:void 0,a=t.substring(0,t.indexOf("<cite")),o=t.includes("/>")?t.slice(t.indexOf("/>")+2):"",p=t.substring(t.indexOf("<cite"),t.indexOf("/>")+2),c=(f,y)=>{for(let N of y){let D=new RegExp(`${N}='((?:[^'\\\\]|\\\\.)*)'`),v=f.match(D);if(v)return v[1]}},l=c(p,["attachment_id","attachmentId","file_id","fileId"]),h=l?.length===20?l:e||l,m=c(p,["start_page_key","startPageKey","start_page"]),d,_;if(m){let f=m.match(/page[\_a-zA-Z]*(\d+)_index_(\d+)/);f&&(d=parseInt(f[1]),_=parseInt(f[2]));}let B=i(c(p,["full_phrase","fullPhrase"])),T=i(c(p,["key_span","keySpan"])),V=i(c(p,["reasoning"])),K=i(c(p,["value"])),b;try{let y=c(p,["line_ids","lineIds"])?.replace(/[A-Za-z_[\](){}:]/g,"");b=y?E(y):void 0;}catch(f){s&&console.error("Error parsing lineIds",f);}let w=c(p,["timestamps"]),k;if(w){let[f,y]=w.split("-")||[];k={startTime:f,endTime:y};}let $={attachmentId:h,pageNumber:d,startPageKey:`page_number_${d||1}_index_${_||0}`,fullPhrase:B,keySpan:T||K,citationNumber:r,lineIds:b,beforeCite:a,timestamps:k,reasoning:V};return {beforeCite:a,afterCite:o,citation:$}},z=(t,e)=>{if(!t)return null;let n=t.fullPhrase??t.full_phrase,s=t.startPageKey??t.start_page_key,i=t.keySpan??t.key_span,r=t.lineIds??t.line_ids,a=t.attachmentId??t.attachment_id??t.fileId??t.file_id,o=t.reasoning,p=t.value;if(!n)return null;let c;if(s){let m=s.match(/page[_a-zA-Z]*(\d+)_index_(\d+)/i);if(m)c=parseInt(m[1],10);else {let d=s.match(/^(\d+)_(\d+)$/);d&&(c=parseInt(d[1],10));}}let l=r?.length?[...r].sort((m,d)=>m-d):void 0;return {attachmentId:a,pageNumber:c,fullPhrase:n,citationNumber:e,lineIds:l,keySpan:i||p,reasoning:o}},O=t=>typeof t=="object"&&t!==null&&("fullPhrase"in t||"full_phrase"in t||"startPageKey"in t||"start_page_key"in t||"keySpan"in t||"key_span"in t||"lineIds"in t||"line_ids"in t),I=t=>Array.isArray(t)?t.length>0&&t.some(O):typeof t=="object"&&t!==null?O(t):false,x=t=>{let e={},n=Array.isArray(t)?t:[t],s=1;for(let i of n){let r=z(i,s++);if(r&&r.fullPhrase){let a=h(r);e[a]=r;}}return e},P=(t,e)=>{if(!(!t||typeof t!="object")){if(t.citation&&I(t.citation)){let n=Array.isArray(t.citation)?t.citation:[t.citation];e.push(...n);}if(t.citations&&I(t.citations)){let n=Array.isArray(t.citations)?t.citations:[t.citations];e.push(...n);}if(Array.isArray(t))for(let n of t)P(n,e);else for(let n of Object.keys(t))n!=="citation"&&n!=="citations"&&P(t[n],e);}},R=t=>{let e$1=e(t),n=/<cite\s+[^>]*\/>/g,s=e$1.match(n);if(!s||s.length===0)return {};let i={},r={current:1};for(let a of s){let{citation:o}=M(a,void 0,r);if(o&&o.fullPhrase){let p=h(o);i[p]=o;}}return i},S=t=>{if(!t)return {};let e={};if(typeof t=="object"){if(I(t)){let i=x(t);Object.assign(e,i);}else {let i=[];if(P(t,i),i.length>0){let r=x(i);Object.assign(e,r);}}let n=JSON.stringify(t),s=R(n);Object.assign(e,s);}else if(typeof t=="string"){let n=R(t);Object.assign(e,n);}return e};function Z(t){let e=new Map,n=Array.isArray(t)?t.map((s,i)=>[h(s)||String(i+1),s]):Object.entries(t);for(let[s,i]of n){let r=i.attachmentId||"";e.has(r)||e.set(r,{}),e.get(r)[s]=i;}return e}function G(t){let e={},n=Array.isArray(t)?t.map((s,i)=>[h(s)||String(i+1),s]):Object.entries(t);for(let[s,i]of n){let r=i.attachmentId||"";e[r]||(e[r]={}),e[r][s]=i;}return e}var L="https://api.deepcitation.com";function U(t,e){if(typeof Buffer<"u"&&Buffer.isBuffer(t)){let n=Uint8Array.from(t);return {blob:new Blob([n]),name:e||"document"}}if(t instanceof Blob)return {blob:t,name:e||(t instanceof File?t.name:"document")};throw new Error("Invalid file type. Expected File, Blob, or Buffer.")}async function g(t,e){return (await t.json().catch(()=>({})))?.error?.message||`${e} failed with status ${t.status}`}var F=class{constructor(e){a(this,"apiKey");a(this,"apiUrl");if(!e.apiKey)throw new Error("DeepCitation API key is required. Get one at https://deepcitation.com/dashboard");this.apiKey=e.apiKey,this.apiUrl=e.apiUrl?.replace(/\/$/,"")||L;}async uploadFile(e,n){let{blob:s,name:i}=U(e,n?.filename),r=new FormData;r.append("file",s,i),n?.attachmentId&&r.append("attachmentId",n.attachmentId),n?.filename&&r.append("filename",n.filename);let a=await fetch(`${this.apiUrl}/prepareFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`},body:r});if(!a.ok)throw new Error(await g(a,"Upload"));return await a.json()}async convertToPdf(e){let n=typeof e=="string"?{url:e}:e,{url:s,file:i,filename:r,attachmentId:a}=n;if(!s&&!i)throw new Error("Either url or file must be provided");let o;if(s)o=await fetch(`${this.apiUrl}/convertFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({url:s,filename:r,attachmentId:a})});else {let{blob:p,name:c}=U(i,r),l=new FormData;l.append("file",p,c),a&&l.append("attachmentId",a),r&&l.append("filename",r),o=await fetch(`${this.apiUrl}/convertFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`},body:l});}if(!o.ok)throw new Error(await g(o,"Conversion"));return await o.json()}async prepareConvertedFile(e){let n=await fetch(`${this.apiUrl}/prepareFile`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({attachmentId:e.attachmentId})});if(!n.ok)throw new Error(await g(n,"Prepare"));return await n.json()}async prepareFiles(e){if(e.length===0)return {fileDataParts:[],deepTextPromptPortion:[]};let n=e.map(({file:a,filename:o,attachmentId:p})=>this.uploadFile(a,{filename:o,attachmentId:p}).then(c=>({result:c,filename:o}))),i=(await Promise.all(n)).map(({result:a,filename:o})=>({attachmentId:a.attachmentId,deepTextPromptPortion:a.deepTextPromptPortion,filename:o||a.metadata?.filename})),r=i.map(a=>a.deepTextPromptPortion);return {fileDataParts:i,deepTextPromptPortion:r}}async verifyCitations(e,n,s){let i={};if(Array.isArray(n))for(let c of n){let l=h(c);i[l]=c;}else if(typeof n=="object"&&n!==null)if("fullPhrase"in n||"value"in n){let c=h(n);i[c]=n;}else Object.assign(i,n);else throw new Error("Invalid citations format");let r=`${this.apiUrl}/verifyCitations`,a={data:{attachmentId:e,citations:i,outputImageFormat:s?.outputImageFormat||"avif"}},o=await fetch(r,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!o.ok)throw new Error(await g(o,"Verification"));return await o.json()}async verifyCitationsFromLlmOutput(e,n){let{llmOutput:s,outputImageFormat:i="avif"}=e;if(n||(n=S(s)),Object.keys(n).length===0)return {verifications:{}};let r=new Map;for(let[c,l]of Object.entries(n)){let h=l.attachmentId||"";r.has(h)||r.set(h,{}),r.get(h)[c]=l;}let a=[];for(let[c,l]of r)c&&a.push(this.verifyCitations(c,l,{outputImageFormat:i}));let o=await Promise.all(a),p={};for(let c of o)Object.assign(p,c.verifications);return {verifications:p}}};
|
|
2
|
-
export{q as a,M as b,S as c,Z as d,G as e,F as f};
|