@augmentd-labs/canvas-web 2.20.1 → 2.20.3

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.
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{St as t,wt as n,xt as r}from"./react-DQazvoR7.js";import{_ as i,a,b as o,c as s,i as c,s as l,t as u,u as d,v as f,x as p}from"./alert-dialog-C7BWAVBm.js";var ee=`data/schema/note`,te=`data/schema/link`,ne=`data/schema/tab`,re=`data/schema/file`,ie=`data/schema/drawing`,ae=`data/schema/message/email`,oe=`data/schema/task`,m=`data/schema/identity`;function h(e,t){return e.startsWith(`${t}/`)?e.slice(t.length+1):``}var se={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,bmp:`image/bmp`,svg:`image/svg+xml`,avif:`image/avif`,heic:`image/heic`,heif:`image/heif`,mp3:`audio/mpeg`,wav:`audio/wav`,ogg:`audio/ogg`,oga:`audio/ogg`,m4a:`audio/mp4`,flac:`audio/flac`,aac:`audio/aac`,mp4:`video/mp4`,m4v:`video/mp4`,webm:`video/webm`,mov:`video/quicktime`,mkv:`video/x-matroska`,avi:`video/x-msvideo`,ogv:`video/ogg`,pdf:`application/pdf`,md:`text/markdown`,markdown:`text/markdown`,txt:`text/plain`,json:`application/json`,xml:`application/xml`,csv:`text/csv`,log:`text/plain`,yml:`text/yaml`,yaml:`text/yaml`};function ce(e){let t=/\.([a-z0-9]+)$/i.exec(e||``);return t?t[1].toLowerCase():``}function le(e){return se[ce(e)]}function g(e){return e.startsWith(`image/`)?`image`:e.startsWith(`audio/`)?`audio`:e.startsWith(`video/`)?`video`:e===`application/pdf`?`pdf`:e.startsWith(`text/`)||e.endsWith(`+json`)||e===`application/json`||e===`application/xml`?`text`:null}function ue(e,t){if(e===`text/markdown`||/\.(md|markdown)$/i.test(t||``))return`markdown`;if(e&&e!==`application/octet-stream`){let t=g(e);if(t)return t}let n=le(t);if(n){let e=g(n);if(e)return e}return`binary`}function de(e){if(!e)return null;try{let t=new URL(e),n=t.hostname.replace(/^www\.|^m\./,``);if(n===`youtu.be`)return t.pathname.slice(1).split(`/`)[0]||null;if(n===`youtube.com`||n===`youtube-nocookie.com`){if(t.pathname===`/watch`)return t.searchParams.get(`v`);let e=t.pathname.match(/^\/(shorts|embed|live)\/([^/]+)/);if(e)return e[2]}return null}catch{return null}}var fe=`data/schema/message/email`,pe=`data/schema/tab`,_=`data/schema/task`;function v(e,t){let n=String(e||``).replace(/\s+/g,` `).trim();return n?n.length>t?`${n.slice(0,t)}...`:n:``}function me(e){return String(e||``).replace(/```[\s\S]*?```/g,` `).replace(/`([^`]*)`/g,`$1`).replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/^#{1,6}\s+/gm,``).replace(/^\s*>\s?/gm,``).replace(/^\s*[-*+]\s+/gm,``).replace(/(\*\*|__|\*|_|~~)/g,``)}function y(e){if(!e)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(y).filter(Boolean).join(`, `);if(typeof e==`object`){let t=e,n=String(t.address||``).trim(),r=String(t.name||``).trim();return r&&n&&r!==n?`${r} <${n}>`:r||n}return``}function he(e){let t=Array.isArray(e?.channels)?e.channels.length:0,n=Array.isArray(e?.identifiers)?e.identifiers.length:0,r=Array.isArray(e?.organizations)?e.organizations.length:0;return[t?`${t} channel${t===1?``:`s`}`:``,n?`${n} identifier${n===1?``:`s`}`:``,r?`${r} organization${r===1?``:`s`}`:``].filter(Boolean).join(` · `)}function ge(e){let t=String(e?.displayName||``).trim();if(t)return t;let n=e?.name;if(!n||typeof n!=`object`)return String(n||``).trim();let r=n;return[r.prefix,r.given,r.middle,r.family,r.suffix].map(e=>String(e||``).trim()).filter(Boolean).join(` `)}function _e(e){let t=String(e?.primaryEmail||``).trim();if(t)return t;let n=Array.isArray(e?.channels)?e.channels:[],r=n.find(e=>e?.kind===`email`&&e?.primary)||n.find(e=>e?.kind===`email`);return String(r?.value||``).trim()}function ve(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`}catch{return e}}function ye(e){return e.schema===`data/schema/file`&&String(e.metadata?.contentType||``).startsWith(`image/`)}var be=/^(imaps?|pop3s?|mailto|graph|ews|news|nntp):/i;function xe(e){if(!e||be.test(e))return``;let t=e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,``),n=t.indexOf(`/`),r=(n>=0?t.slice(n+1):t).split(`/`).filter(Boolean).pop();if(!r)return``;let i;try{i=decodeURIComponent(r)}catch{i=r}return/^stored:\/\//i.test(e)&&!Se(i)?``:i}function Se(e){return e.length>0&&!/^[a-f0-9]{12,}$/i.test(e)&&!/^[a-f0-9]{16,}\.[A-Za-z0-9]{1,12}$/i.test(e)}function Ce(e){return typeof e.comment==`string`?e.comment.trim():``}function b(e){let t=String(e.metadata?.filename||``).trim();if(t)return t;let n=String(e.data?.filename||``).trim();if(n)return n;let r=(e.locations||[]).filter(Boolean),i=r.find(e=>/^stored:\/\/workspace:/i.test(e.url||``)),a=String(i?.metadata?.filename||``).trim();if(a)return a;let o=[...r].sort((e,t)=>String(e.url||``).localeCompare(String(t.url||``))),s=o.find(e=>String(e.metadata?.filename||``).trim());if(s)return String(s.metadata?.filename||``).trim();for(let e of o){let t=xe(e.url);if(t)return t}return``}function we(e){let t=e.data;for(let e of[t.url,t.htmlUrl,t.htmlLink])if(typeof e==`string`&&/^https?:\/\//i.test(e))return e;for(let t of e.locations||[])if(typeof t?.url==`string`&&/^https?:\/\//i.test(t.url))return t.url;return null}function Te(e){let t=e.schema===fe,n=e.schema===pe,r=e.schema.split(`/`).pop()||e.schema;if(t)return{title:v(e.data.title||e.data.name||e.data.subject,160)||`Email ${e.id}`,preview:v(e.data.bodyPreview||e.data.body||``,140),subtitle:v(y(e.data.from),120),icon:`mail`,isExternal:!1,schemaLabel:r};if(e.schema===`data/schema/message`){let t=e.data.sender,n=e.data.channel;return{title:v(e.data.text,160)||`Message`,preview:v(e.data.text,400),subtitle:[t?.name||t?.displayName||t?.username||t?.id,n?.name||n?.id].filter(Boolean).join(` · `),icon:`mail`,isExternal:!1,schemaLabel:r}}if(n){let t=String(e.data.title||e.data.name||``).trim(),n=String(e.data.url||``).trim();return{title:t||ve(n)||`Document ${e.id}`,preview:v(e.data.description||e.data.summary||n,140),subtitle:n,icon:`globe`,isExternal:!!n,schemaLabel:r}}if(e.schema===_||e.schema.startsWith(`${_}/`)){let t=String(e.data.status||(e.data.completed?`completed`:`pending`)).trim(),n=e.data.dueDate?new Date(String(e.data.dueDate)):null,i=n&&!Number.isNaN(n.getTime())?n.toLocaleDateString(void 0,{month:`short`,day:`numeric`}):``;return{title:v(e.data.title||e.data.name,160)||`Task ${e.id}`,preview:v(me(e.data.description||e.data.summary),400),subtitle:[t,i?`due ${i}`:``].filter(Boolean).join(` · `),icon:`file`,isExternal:!1,schemaLabel:r}}if(e.schema===`data/schema/identity`||e.schema.startsWith(`data/schema/identity/`)){let t=_e(e.data),n=h(e.schema,m);return{title:v(ge(e.data),160)||`Identity ${e.id}`,preview:v(he(e.data),140),subtitle:[t,n].filter(Boolean).join(` · `),icon:t?`mail`:`file`,isExternal:!1,schemaLabel:r}}if(e.schema===`data/schema/file`){let t=b(e),n=String(e.metadata?.contentType||``).trim(),i=e.metadata?.size,a=[n,Number.isFinite(i)?`${i} bytes`:``].filter(Boolean);return{title:v(t,160)||`File ${e.id}`,preview:a.join(` · `),subtitle:t,icon:`file`,isExternal:!1,schemaLabel:r}}return{title:v(e.data.title||e.data.name||e.data.subject||b(e),160)||`Document ${e.id}`,preview:v(me(e.data.content||e.data.description||e.data.summary||e.data.bodyPreview||e.data.body),400),subtitle:``,icon:`file`,isExternal:!1,schemaLabel:r}}function x(e){return e===`alphabetical`||e===`type`}function Ee(e){return e.schema===`data/schema/file`?(/\.([^.]+)$/.exec(b(e))?.[1]||e.metadata?.contentType||`file`).toLowerCase():e.schema.split(`/`).pop()||e.schema}function S(e,t,n=`asc`){let r=n===`desc`?-1:1,i=(e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:`base`}),a=e.map(e=>({document:e,title:Te(e).title,type:Ee(e)}));return a.sort((e,n)=>((t===`type`?i(e.type,n.type):0)||i(e.title,n.title)||e.document.id-n.document.id)*r),a.map(({document:e})=>e)}async function C(e,t){let n=[],r=new Set,i,a=0,o=500;do{if(i=await t({limit:o,offset:a,page:void 0}),a===0&&i.payload.length&&i.payload.length<o&&(i.totalCount==null||i.payload.length<i.totalCount)&&(o=i.payload.length,i=await t({limit:o,offset:a,page:void 0})),!i.payload.length&&(i.totalCount==null||a>=i.totalCount))break;let e=0;for(let t of i.payload)r.has(t.id)||(r.add(t.id),n.push(t),e++);if(i.payload.length&&!e)throw Error(`Document pagination did not advance`);if(a+=o,i.totalCount!=null&&a>=i.totalCount)break}while(!0);let s=S(n,e.sortBy,e.order),c=e.limit??50,l=Math.max(0,e.offset??((e.page??1)-1)*(c||100)),u=c===0?s:s.slice(l,l+c);return{...i,payload:u,count:u.length,totalCount:s.length}}var w=e(n(),1),De=t(),T=r();function Oe(e){return new Promise((t,n)=>{let r=document.createElement(`div`);document.body.appendChild(r);let i=(0,De.createRoot)(r),d=e=>{i.unmount(),r.remove(),e?t(e):n(Error(`Workspace start cancelled`))};function f(){let[t,n]=(0,w.useState)(``);return(0,T.jsx)(u,{open:!0,onOpenChange:e=>{e||d()},children:(0,T.jsxs)(c,{children:[(0,T.jsxs)(l,{children:[(0,T.jsx)(s,{children:`Start protected workspace`}),(0,T.jsx)(a,{children:e===`workspace`?`Enter the workspace PIN/password or recovery key to start.`:`Unlock integrations, or start with authenticated integrations unavailable.`})]}),(0,T.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),d({passphrase:t})},children:[(0,T.jsxs)(`label`,{className:`space-y-2 block text-sm`,children:[`PIN/password or recovery key`,(0,T.jsx)(o,{autoFocus:!0,type:`password`,autoComplete:`current-password`,value:t,onChange:e=>n(e.target.value)})]}),(0,T.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,T.jsx)(p,{type:`submit`,disabled:!t,children:`Unlock and start`}),e===`secrets`&&(0,T.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>d({withoutSecrets:!0}),children:`Start without integrations`}),(0,T.jsx)(p,{type:`button`,variant:`ghost`,onClick:()=>d(),children:`Cancel`})]})]})]})})}i.render((0,T.jsx)(f,{}))})}var ke={gh:`GitHub`,slack:`Slack`,gcal:`Google Calendar`,caldav:`CalDAV`,msteams:`Microsoft Teams`};function Ae(e){for(let t of e.locations||[]){let e=t?.url;if(typeof e!=`string`)continue;let n=e.indexOf(`://`);if(n<=0)continue;let r=e.slice(0,n),i=ke[r];if(i)return{scheme:r,label:i,url:e}}return null}var E=new Map,D=new Set;function O(){for(let e of D)e()}function je(e){E.set(e,(E.get(e)||0)+1),O()}function Me(e){let t=(E.get(e)||0)-1;t>0?E.set(e,t):E.delete(e),O()}function Ne(e){return D.add(e),()=>{D.delete(e)}}function Pe(e){let t=(0,w.useCallback)(()=>e!=null&&E.has(e),[e]);return(0,w.useSyncExternalStore)(Ne,t,()=>!1)}function Fe(e){let t=Pe(e.id),n=Ae(e),r=t&&n!=null;return{mirror:n,replicating:r,label:r?`Replicating to ${n.label}…`:``}}var k=`context`,A=`data/schema/identity`,Ie=e=>e===`directory`||e===`backends`?`directory`:`context`;function Le(e,t){if(!e||t===`/`)return null;let n=t.split(`/`).filter(Boolean),r=e;for(let e of n)if(r=r?.children?.find(t=>t.name===e),!r)return null;return r??null}var j=new Map,M=new Map;function N(e,t=`/`,n=k,r=`context`){e.append(`treeNameOrTreeId`,n),e.append(`treeType`,r),t&&e.append(`context`,t)}var P=[`includes`,`references`,`derived-from`,`mentions`,`replies-to`,`depicts`,`authored-by`,`member-of`];function F(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`allOf`,t))}function Re(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`anyOf`,t))}function I(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`noneOf`,t))}function L(e,t=[]){t.filter(Boolean).forEach(t=>e.append(`filters`,t))}function R(e,t){for(let n of t??[])e.append(`ids`,String(n))}function ze(e,t){for(let n of t??[]){let t=n.op===`allOf`?`+`:n.op===`noneOf`?`!`:``;e.append(`rel`,`${t}${n.p}:${n.of}:${n.dir??`out`}`)}}function z(e,t,n){let r=(t&&t.length?t:n?[n]:[]).map(e=>e.trim()).filter(Boolean);for(let t of r)e.append(`q`,t)}function Be(e,t=k){return`${i.workspaces}/${e}/trees/${encodeURIComponent(t)}`}function B(e,t=k){return`${e}\0${t}`}function Ve(e){return String(e||`/`).split(`/`).filter(Boolean).map(encodeURIComponent).join(`/`)}function V(e,t,n){let r=Ve(n);return`${Be(e,t)}/path/${r}`}async function He(e){let t=await d.get(`${i.workspaces}/${e}`);return t&&`workspace`in t?t.workspace:t}async function Ue(e){return d.get(`${i.workspaces}/${e}/status`)}async function We(){try{let e=await d.get(i.workspaces);return Array.isArray(e)?e:(console.warn(`listWorkspaces: response.payload is not an array:`,e),[])}catch(e){throw console.error(`Failed to list workspaces:`,e),e}}async function Ge(){return d.post(`${i.workspaces}/scan`)}async function Ke(e){try{return await d.post(i.workspaces,e)}catch(e){throw console.error(`Failed to create workspace:`,e),e}}var qe={resolving:`Resolving token on the remote server…`,exporting:`Remote server is packing the workspace…`,downloading:`Downloading archive…`,extracting:`Extracting…`,loading:`Validating and loading…`,done:`Done`};async function Je(e){return d.get(`${i.workspaces}/import/jobs/${encodeURIComponent(e)}`)}async function H(e,t,{intervalMs:n=1500,signal:r}={}){for(;;){if(r?.aborted)throw Error(`Import tracking cancelled`);let i=await Je(e);if(t?.(i),i.status===`done`){if(!i.result)throw Error(`Import finished without returning a workspace`);return i.result}if(i.status===`failed`)throw Error(i.error?.message||`Import failed`);await new Promise(e=>setTimeout(e,n))}}async function Ye(e,t,n,r={}){return H((await d.post(`${i.workspaces}/import`,{url:e,token:t,...r})).id,n)}async function Xe(){return d.get(`${i.workspaces}/remotes`)}async function Ze(e,t,n){return d.post(`${i.workspaces}/remotes`,{url:e,token:t,...n?{label:n}:{}})}async function Qe(e){await d.delete(`${i.workspaces}/remotes/${encodeURIComponent(e)}`)}async function $e(e,t={}){return d.post(`${i.workspaces}/${e}/export`,{stop:t.stop===!0})}async function et(e){return d.get(`${i.workspaces}/${e}/exports`)}async function tt(e){await d.delete(`${i.workspaces}/exports/${encodeURIComponent(e)}`)}async function nt(e){await d.post(`${i.workspaces}/exports/ticket`);let t=`${i.workspaces}/exports/${encodeURIComponent(e)}`,n=document.createElement(`a`);n.href=t,n.download=e,document.body.appendChild(n),n.click(),n.remove()}async function rt(e,t,n,r={}){return H((await it(e,t,r)).id,n)}function it(e,t,n={}){let r=localStorage.getItem(`authToken`),a=new URLSearchParams({filename:e.name,...n}),o=`${i.workspaces}/import/upload?${a}`;return new Promise((n,i)=>{let a=new XMLHttpRequest;a.open(`POST`,o,!0),a.withCredentials=!0,r&&a.setRequestHeader(`Authorization`,`Bearer ${r}`),a.setRequestHeader(`Content-Type`,`application/octet-stream`),a.upload.onprogress=e=>{e.lengthComputable&&t&&t(e.loaded/e.total)},a.onload=()=>{let e=null;try{e=JSON.parse(a.responseText)}catch{}let t=e?.payload?.job;a.status>=200&&a.status<300&&t?n(t):i(Error(e?.message||`Import failed (HTTP ${a.status})`))},a.onerror=()=>i(Error(`Upload failed — the connection dropped`)),a.onabort=()=>i(Error(`Upload cancelled`)),a.send(e)})}async function at(e,t,n){let r=await d.post(`${i.workspaces}/import`,{path:e,...t});return`phase`in r?H(r.id,n):r}async function ot(e,t){try{if(!t){let n=await d.get(`${i.workspaces}/${e}/status`),r=n.protection?.mode||`none`;t=n.status!==`active`&&r!==`none`?await Oe(r):{}}let n=await d.post(`${i.workspaces}/${e}/start`,t);return window.dispatchEvent(new CustomEvent(`workspaces:refresh`)),n}catch(e){throw console.error(`Failed to start workspace:`,e),e}}async function st(e){try{let t=await d.post(`${i.workspaces}/${e}/stop`);return W(e),window.dispatchEvent(new CustomEvent(`workspace:stopped`,{detail:{refs:[e]}})),window.dispatchEvent(new CustomEvent(`workspaces:refresh`)),t}catch(e){throw console.error(`Failed to stop workspace:`,e),e}}async function ct(e){try{return await d.delete(`${i.workspaces}/${e}`)}catch(e){throw console.error(`Failed to remove workspace:`,e),e}}async function lt(e){try{return await d.get(`${i.workspaces}/${e}/trees`)||[]}catch(t){throw console.error(`Failed to list workspace trees ${e}:`,t),t}}async function U(e,t){try{return await d.get(`${i.workspaces}/${e}/trees/${encodeURIComponent(t)}`)}catch(n){throw console.error(`Failed to get workspace tree ${e}/${t}:`,n),n}}function W(e,t){if(!e){j.clear(),M.clear();return}if(!t){let t=`${e}\0`;for(let e of j.keys())e.startsWith(t)&&j.delete(e);for(let e of M.keys())e.startsWith(t)&&M.delete(e);return}let n=B(e,t);j.delete(n),M.delete(n)}var ut=`.trash`;function dt(e){return e?Array.isArray(e.children)?{...e,children:e.children.filter(e=>e?.name!==ut)}:e:null}async function ft(e,t,n={}){let r=B(e,t);if(!n.force&&j.has(r))return j.get(r);if(!n.force&&M.has(r))return M.get(r);let i=U(e,t).then(e=>{let t=dt(e);return M.get(r)===i&&j.set(r,t),t}).finally(()=>{M.get(r)===i&&M.delete(r)});return M.set(r,i),i}async function G(e,t=`/`,n=[],r={}){if(x(r.sortBy))return C(r,i=>G(e,t,n,{...r,...i,sortBy:void 0,order:`asc`}));try{let a=new URLSearchParams,o=r.scope===`workspace`;o&&a.append(`scope`,`workspace`),r.applyCanvasSpec===!1&&a.append(`applyCanvasSpec`,`false`),a.append(`treeNameOrTreeId`,r.treeName||`context`),r.treeType&&a.append(`treeType`,r.treeType),t&&!o&&a.append(`context`,t),F(a,n),Re(a,r.anyOf),I(a,r.noneOf),L(a,r.filters),ze(a,r.rel),R(a,r.ids),r.limit!==void 0&&a.append(`limit`,r.limit.toString()),r.offset!==void 0&&a.append(`offset`,r.offset.toString()),r.page!==void 0&&a.append(`page`,r.page.toString()),r.debug&&a.append(`debug`,`true`),r.debug&&r.debugLimit&&a.append(`debugLimit`,String(r.debugLimit)),r.sortBy&&a.append(`sortBy`,r.sortBy),r.order&&a.append(`order`,r.order),z(a,r.queries,r.q);let s=a.toString(),c=`${i.workspaces}/${e}/documents${s?`?`+s:``}`;return await d.getEnvelope(c)}catch(t){throw console.error(`Failed to get workspace documents ${e}:`,t),t}}async function pt(e,t,n=k,r={}){let i=n===`directory`?`directory`:`context`;return G(e,t,r.allOf||[],{treeName:n,treeType:i,limit:r.limit,page:r.page,offset:r.offset,q:r.q,queries:r.queries,anyOf:r.anyOf,noneOf:r.noneOf,filters:r.filters,ids:r.ids,sortBy:r.sortBy,order:r.order,applyCanvasSpec:r.applyCanvasSpec})}async function K(e,t,n,r={}){if(x(r.sortBy))return C(r,i=>K(e,t,n,{...r,...i,sortBy:void 0,order:`asc`}));try{let a=new URLSearchParams;r.limit!==void 0&&a.append(`limit`,r.limit.toString()),r.offset!==void 0&&a.append(`offset`,r.offset.toString()),r.page!==void 0&&a.append(`page`,r.page.toString()),z(a,r.queries,r.q),F(a,r.allOf),Re(a,r.anyOf),I(a,r.noneOf),L(a,r.filters),R(a,r.ids),r.sortBy&&a.append(`sortBy`,r.sortBy),r.order&&a.append(`order`,r.order);let o=a.toString(),s=`${i.workspaces}/${e}/trees/${encodeURIComponent(t)}/layers/${encodeURIComponent(n)}/documents${o?`?`+o:``}`;return await d.getEnvelope(s)}catch(r){throw console.error(`Failed to get workspace layer documents ${e}/${t}/${n}:`,r),r}}async function mt(e,t){try{return await d.patch(`${i.workspaces}/${e}`,t)}catch(e){throw console.error(`Failed to update workspace:`,e),e}}async function ht(e,t,n=!0,r=k,i=`context`){try{return await d.put(V(e,r,t),{type:i,autoCreateLayers:n}),!0}catch(e){throw console.error(`Failed to insert workspace path ${t}:`,e),e}}async function gt(e,t,n=k,r={}){try{return await d.put(V(e,n,t),{type:`canvas`,...r}),!0}catch(e){throw console.error(`Failed to create workspace canvas ${t}:`,e),e}}async function _t(e,t,n,r,i){let a={metadata:r};return i&&(a.querySpec=i),await d.patch(V(e,n,t),a),!0}async function vt(e,t,n=k){return await d.post(`${f}/pub/c`,{workspaceId:e,path:t,treeName:n})}async function yt(e,t,n=k){let r=new URLSearchParams({workspaceId:e,path:t,treeName:n});return await d.get(`${f}/pub/c?${r.toString()}`)}async function bt(e){return await d.delete(`${f}/pub/c/${encodeURIComponent(e)}`),!0}async function xt(e){let t=await d.get(`${i.workspaces}/${e}/shares`);return{publicCanvasShares:t?.publicCanvasShares||[],emailShares:t?.emailShares||[]}}async function St(e,t){return await d.delete(`${i.workspaces}/${e}/shares/public-canvas/${encodeURIComponent(t)}`),!0}async function Ct(e,t,n,r=k){try{return await d.patch(V(e,r,t),n),!0}catch(e){throw console.error(`Failed to update workspace path ${t}:`,e),e}}async function wt(e,t,n=!1,r=k,i=!1,a=!1){try{let o=new URLSearchParams({recursive:n.toString()});return i&&o.set(`purge`,`true`),a&&o.set(`destroy`,`true`),await d.delete(`${V(e,r,t)}?${o.toString()}`),!0}catch(e){throw console.error(`Failed to remove workspace path ${t}:`,e),e}}async function Tt(e,t,n,r=!1,i=k,a,o={}){try{return await d.patch(V(e,i,t),{to:n,recursive:r,...o.mergeDown?{mergeDown:!0}:{},...a&&a!==i?{targetTreeNameOrTreeId:a}:{}}),!0}catch(e){throw console.error(`Failed to move workspace path from ${t} to ${n}:`,e),e}}async function Et(e,t,n,r=!1,i=k,a){try{return await d.post(V(e,i,t),{to:n,recursive:r,...a&&a!==i?{targetTreeNameOrTreeId:a}:{}}),!0}catch(e){throw console.error(`Failed to copy workspace path from ${t} to ${n}:`,e),e}}async function Dt(e,t,n,r=k,a=`context`){try{let o=J(Array.isArray(n)?n:[n]),s=performance.now();return await d.post(`${i.workspaces}/${e}/documents`,{documentIds:o,treeNameOrTreeId:r,treeType:a,context:t}),console.info(`[paste] linked ${o.length} document(s) → ${r}:${t} in ${Math.round(performance.now()-s)} ms`),!0}catch(e){throw console.error(`Failed to paste documents to workspace path ${t}:`,e),e}}async function Ot(e,t,n,r=k,a=`context`){try{let o=Array.isArray(n)?n:[n],s=await d.post(`${i.workspaces}/${e}/documents`,{documents:o,treeNameOrTreeId:r,treeType:a,context:t});return Array.isArray(s)?s:[]}catch(e){throw console.error(`Failed to import documents to workspace path ${t}:`,e),e}}var q=e=>`${i.workspaces}/${e}/pins`,kt=(e,t)=>`${e}\0${t}`;async function At(e){let t=await d.get(q(e));return Array.isArray(t)?t:[]}async function jt(e,t,n=k){return d.post(q(e),{path:t,tree:n})}async function Mt(e,t){await d.delete(`${q(e)}/${encodeURIComponent(t)}`)}async function Nt(e,t){let n=await d.patch(`${q(e)}/order`,{order:t});return Array.isArray(n)?n:[]}async function Pt(e,t=k){return await d.get(`${i.workspaces}/${e}/trees/${encodeURIComponent(t)}/layers`)||[]}async function Ft(e,t,n,r=k){return await d.patch(`${i.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/${t}`,{name:n})}async function It(e,t,n,r=k){return await d.post(`${i.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/${t}/lock`,{lockBy:n}),!0}async function Lt(e,t,n,r=k){return await d.post(`${i.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/${t}/unlock`,{lockBy:n}),!0}async function Rt(e,t,n=k){return await d.delete(`${i.workspaces}/${e}/trees/${encodeURIComponent(n)}/layers/${t}`),!0}async function zt(e,t,n,r=k){return await d.post(`${i.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/merge`,{layerId:t,targetLayers:n})}async function Bt(e,t,n=k){return(await d.post(`${i.workspaces}/${e}/trees/${encodeURIComponent(n)}/paths/merge-down`,{path:t}))?.data??null}async function Vt(e,t,n=k){return(await d.post(`${i.workspaces}/${e}/trees/${encodeURIComponent(n)}/paths/subtract-down`,{path:t}))?.data??null}async function Ht(e,t,n,r=k){return await d.post(`${i.workspaces}/${e}/trees/${encodeURIComponent(r)}/layers/subtract`,{layerId:t,targetLayers:n})}function J(e){let t=e.map(e=>typeof e==`number`?e:Number(e));if(t.some(e=>!Number.isFinite(e)))throw Error(`Invalid document ID(s): expected numbers (or numeric strings), got ${JSON.stringify(e)}`);return t}async function Ut(e,t,n=`/`,r=[],a=k,o=`context`,s={}){let c=new URLSearchParams;N(c,n,a,o),F(c,r),s.trashIfOrphaned&&c.append(`trashIfOrphaned`,`true`);let l=J(t);return await d.delete(`${i.workspaces}/${e}/documents/remove?${c.toString()}`,{headers:{"Content-Type":`application/json`},body:JSON.stringify(l)}),!0}async function Wt(e,t,n=`/`,r=[],a=k,o=`context`){let s=new URLSearchParams;N(s,n,a,o),F(s,r);let c=J(t);return await d.delete(`${i.workspaces}/${e}/documents?${s.toString()}`,{headers:{"Content-Type":`application/json`},body:JSON.stringify(c)}),!0}async function Gt(e,t){je(t.id);try{await d.put(`${i.workspaces}/${e}/documents`,{documents:[t]})}finally{Me(t.id)}return!0}async function Kt(e,t,n={}){let r={documentIds:J(t)};return n.urls&&(r.urls=n.urls),n.keepDocument&&(r.keepDocument=!0),await d.delete(`${i.workspaces}/${e}/documents/destroy`,{headers:{"Content-Type":`application/json`},body:JSON.stringify(r)})}async function qt(e,t,n){let r=n.folder?.trim().replace(/^\/+|\/+$/g,``),a=n.filename?.trim();return await d.post(`${i.workspaces}/${e}/documents/transfer`,{documentIds:J(t),to:n.to,mode:n.mode??`copy`,...n.keepDocument?{keepDocument:!0}:{},...r?{folder:r}:{},...a?{filename:a}:{},...n.onConflict?{onConflict:n.onConflict}:{}})}function Jt(e){return typeof e.capabilities?.paths==`boolean`?e.capabilities.paths:e.kind===`storage`&&e.driver!==`cacache`}async function Yt(e,t){return await d.get(`${i.workspaces}/${encodeURIComponent(e)}/documents/${t}`)}async function Xt(e,t,n){return await d.get(`${i.workspaces}/${encodeURIComponent(e)}/documents/by-hash/${encodeURIComponent(t)}/${encodeURIComponent(n)}`)}async function Zt(e,t){return await d.get(`${i.workspaces}/${e}/documents/${t}/locations`)||[]}async function Qt(e,t,n){let r=n?`?tree=${encodeURIComponent(n)}`:``;return(await d.get(`${i.workspaces}/${e}/documents/${t}/memberships${r}`))?.memberships||[]}async function $t(e,t,n=500){return(await G(e,`/`,[t?`${A}/${t}`:A],{scope:`workspace`,limit:n})).payload||[]}async function en(e){try{let t=await d.get(`${i.workspaces}/${e}/documents/relations/predicates`);return t?.predicates?.length?t.predicates:[...P]}catch{return[...P]}}async function tn(e,t,n={}){let r=new URLSearchParams;n.resolve===!1&&r.set(`resolve`,`false`),n.offset!==void 0&&r.set(`offset`,String(n.offset)),n.limit!==void 0&&r.set(`limit`,String(n.limit)),n.summary&&r.set(`summary`,`true`);let a=r.size?`?${r}`:``;return await d.get(`${i.workspaces}/${e}/documents/${t}/relations${a}`)??{documentId:Number(t),predicates:[...P],outgoing:[],incoming:[]}}async function nn(e,t,n,r,a=`out`){return await d.post(`${i.workspaces}/${e}/documents/${t}/relations`,{p:n,to:Array.isArray(r)?J(r):r,dir:a}),!0}async function rn(e,t,n,r,a=`out`){return await d.delete(`${i.workspaces}/${e}/documents/${t}/relations`,{headers:{"Content-Type":`application/json`},body:JSON.stringify({p:n,to:r,dir:a})}),!0}function Y(e,t,n={}){let r=new URLSearchParams;n.version&&r.set(`v`,n.version),n.download&&r.set(`download`,`1`),n.url&&r.set(`url`,n.url);let a=r.toString();return`${i.workspaces}/${e}/documents/${t}/content${a?`?${a}`:``}`}async function an(e,t,n=256,r){let a=localStorage.getItem(`authToken`),o=r?`&v=${encodeURIComponent(r)}`:``,s=await fetch(`${i.workspaces}/${e}/documents/${t}/thumbnail?size=${n}${o}`,{headers:a?{Authorization:`Bearer ${a}`}:{}});if(!s.ok)throw Error(`HTTP ${s.status}`);let c=s.headers.get(`content-type`)||`image/webp`;return{blob:await s.blob(),mime:c}}async function on(e,t,n={}){let r=localStorage.getItem(`authToken`),i=await fetch(Y(e,t,n),{headers:r?{Authorization:`Bearer ${r}`}:{}});if(!i.ok)throw Error(`HTTP ${i.status}`);let a=i.headers.get(`content-type`)||`application/octet-stream`;return{blob:await i.blob(),mime:a}}function sn(e,t,n={}){return Y(e,t,n)}async function cn(e,t){let n=localStorage.getItem(`authToken`);return(await fetch(`${i.workspaces}/${e}/documents/${t}/content-ticket`,{method:`POST`,headers:n?{Authorization:`Bearer ${n}`}:{},credentials:`include`})).ok}async function ln(e,t,n,r={}){let i=localStorage.getItem(`authToken`),a=await fetch(Y(e,t,{download:!0,url:r.url}),{headers:i?{Authorization:`Bearer ${i}`}:{}});if(!a.ok)throw Error(`HTTP ${a.status}`);let o=await a.blob(),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=n,document.body.appendChild(c),c.click(),c.remove(),setTimeout(()=>URL.revokeObjectURL(s),3e4)}async function un(e,t=`/`,n=[],r=[],a={},o=k){let s=new URLSearchParams;return s.append(`treeNameOrTreeId`,o),t&&s.append(`context`,t),F(s,n),L(s,r),await d.delete(`${i.workspaces}/${e}/documents/purge?${s.toString()}`)}async function dn(e){try{return await d.get(`${i.workspaces}/${e}/services`)}catch(e){throw console.error(`Failed to get workspace services status:`,e),e}}async function fn(e,t){try{return await d.post(`${i.workspaces}/${e}/services/${t}/enable`)}catch(e){throw console.error(`Failed to enable ${t} service:`,e),e}}async function pn(e,t){try{return await d.post(`${i.workspaces}/${e}/services/${t}/disable`)}catch(e){throw console.error(`Failed to disable ${t} service:`,e),e}}var X=e=>`${i.workspaces}/${e}/backends`,Z=(e,t,n)=>`${X(e)}/${encodeURIComponent(t)}/${encodeURIComponent(n)}`;async function mn(e,t){let n=t?`${X(e)}/${encodeURIComponent(t)}`:X(e);return await d.get(n)||[]}async function hn(e,t,n){return await d.get(`${Z(e,t,n)}/usage`)}async function gn(e){return await d.delete(`${i.workspaces}/${e}/thumbnails`)}async function _n(e){return await d.get(`${i.workspaces}/${e}/usage`)}function vn(e){if(e==null||!Number.isFinite(e))return`—`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=`B`;for(let e of t){if(n<1024)break;n/=1024,r=e}return`${n.toFixed(n>=100?0:1)} ${r}`}async function yn(e,t,n){return await d.post(`${X(e)}/${encodeURIComponent(t)}`,n)}async function bn(e,t,n,r){return await d.patch(Z(e,t,n),r)}async function xn(e,t,n){return await d.delete(Z(e,t,n))}async function Sn(e,t,n){return await d.post(`${Z(e,t,n)}/sync`)}async function Cn(e,t,n){return await d.post(`${Z(e,t,n)}/sync/cancel`)}async function wn(e,t,n){return await d.post(`${Z(e,t,n)}/test`)}async function Tn(e,t,n){return await d.get(`${Z(e,t,n)}/containers`)||[]}async function En(e,t,n,r,i){return await d.post(`${Z(e,t,n)}/containers/${encodeURIComponent(r)}/documents`,i)}async function Dn(e,t,n,r){return await d.post(`${Z(e,t,n)}/containers/${encodeURIComponent(r)}/sync`)}async function On(e,t,n){return await d.get(`${Z(e,t,n)}/containers?available=1`)||[]}async function kn(e,t,n,r){return await d.post(`${Z(e,t,n)}/containers`,{folders:r})}async function An(e,t,n,r){return await d.delete(`${Z(e,t,n)}/containers/${encodeURIComponent(r)}`)}async function jn(e,t,n,r,i){return await d.patch(`${Z(e,t,n)}/containers/${encodeURIComponent(r)}`,{name:i})}function Q(e,t){if(!t?.length)return null;let n=`/`+String(e||``).split(`/`).filter(Boolean).join(`/`);for(let e of t)if(e.treePath){if(n===e.treePath)return{backend:e,key:``};if(n.startsWith(e.treePath+`/`))return{backend:e,key:n.slice(e.treePath.length+1)}}return null}function Mn(e,t){let n=Q(e,t);if(n)return{driver:n.backend.driver,address:n.backend.address,key:n.key};let r=Nn(e);return r?{...r,driver:t?.find(e=>e.address===r.address)?.driver||r.driver}:null}function Nn(e,t){let n=Q(e,t);if(n)return n.backend.driver===`file`?{driver:`file`,address:n.backend.address,key:n.key}:null;let r=String(e||``).split(`/`).filter(Boolean);return r[0]===`workspace`&&r[1]===`git`?null:r[0]===`workspace`&&r.length>=2?{driver:`file`,address:`workspace:${r[1]}`,key:r.slice(2).join(`/`)}:r[0]===`device`&&r.length>=3?{driver:`file`,address:r[2],key:r.slice(3).join(`/`)}:r[0]===`file`&&r.length>=2?{driver:`file`,address:r[1],key:r.slice(2).join(`/`)}:null}async function Pn(e,t,n,r={}){let i=new URLSearchParams;r.linked!==void 0&&i.append(`linked`,String(r.linked)),r.limit!==void 0&&i.append(`limit`,String(r.limit)),r.offset!==void 0&&i.append(`offset`,String(r.offset));let a=i.toString();return await d.getEnvelope(`${Z(e,t,n)}/documents${a?`?${a}`:``}`)}async function Fn(e,t,n){return await d.post(`${X(e)}/${encodeURIComponent(t)}/discover`,n)||[]}function In(e,t){let n=Q(e,t);if(n)return{driver:n.backend.driver,address:n.backend.address};let r=String(e||``).split(`/`).filter(Boolean);return r.length<2||r[0]===`workspace`&&r[1]===`git`?null:r[0]===`workspace`?{driver:`file`,address:`workspace:${r[1]}`}:r[0]===`device`?r.length>=3?{driver:`file`,address:r[2]}:null:{driver:r[0],address:r[1]}}var Ln=[`internal/`,`context/`,`vfs/`];async function Rn(e){try{return(await d.get(`${i.workspaces}/${encodeURIComponent(e)}/bitmaps`)||[]).map(e=>typeof e==`string`?e:e.key??String(e)).filter(e=>e&&!Ln.some(t=>e.startsWith(t)))}catch{return[]}}async function zn(e){return(await Rn(e)).filter(e=>e.startsWith(`tag/`)).map(e=>e.slice(4)).filter(Boolean).sort()}async function Bn(e,t){let n=t.replace(/^\/+|\/+$/g,``);if(!n)throw Error(`Bitmap key is required`);if(n.startsWith(`data/`)||n===`data`)throw Error(`data/* bitmaps are protected and cannot be deleted manually`);return await d.delete(`${i.workspaces}/${encodeURIComponent(e)}/bitmaps/${n.split(`/`).map(encodeURIComponent).join(`/`)}`),!0}async function Vn(e,t,n=!0){let r=t.replace(/^data\/dataset\//,``).replace(/^\/+|\/+$/g,``);if(!r)throw Error(`Dataset name is required`);if(r==="default")throw Error(`The "default" dataset is virtual and cannot be deleted`);return await d.delete(`${i.workspaces}/${encodeURIComponent(e)}/datasets/${r.split(`/`).map(encodeURIComponent).join(`/`)}?dropDocuments=${n}`)}function $(e){return`${i.workspaces}/${encodeURIComponent(e)}/timelines`}async function Hn(e){try{return await d.get($(e))||[]}catch{return[]}}async function Un(e){try{return await d.get(`${$(e)}?verbose=true`)||[]}catch{return[]}}async function Wn(e,t){return await d.post($(e),{name:t})}async function Gn(e,t){return await d.delete(`${$(e)}/${encodeURIComponent(t)}`),!0}async function Kn(e,t){return(await d.post(`${$(e)}/histogram`,t))?.buckets??[]}async function qn(e,t){let n=t?`?workspaceId=${encodeURIComponent(t)}`:``;return await d.post(`${i.admin.inferd}/${e?`pause`:`resume`}${n}`)}async function Jn(e){return await d.get(`${i.workspaces}/${e}/db/stats`)}async function Yn(e,t){return await d.put(`${i.workspaces}/${e}/db/tuning`,t)}async function Xn(e){let t=await d.get(`${i.workspaces}/${e}/trash`);return Array.isArray(t)?t:[]}async function Zn(e,t){return await d.post(`${i.workspaces}/${e}/trash/restore`,{documentIds:J(t)})}async function Qn(e,t){return await d.delete(`${i.workspaces}/${e}/trash`,t?.length?{headers:{"Content-Type":`application/json`},body:JSON.stringify({documentIds:J(t)})}:{})}var $n=(e,t,n)=>`${i.workspaces}/${e}/members/${encodeURIComponent(`${t}:${n}`)}`;async function er(e){return d.get(`${i.workspaces}/${e}/members`)}async function tr(e,t,n,r){return d.post(`${i.workspaces}/${e}/members`,{...t,permissions:n,...r?{description:r}:{}})}async function nr(e,t,n,r){return d.put($n(e,t,n),{permissions:r})}async function rr(e,t,n){await d.delete($n(e,t,n))}async function ir(e,t,n){return d.post(`${i.workspaces}/${encodeURIComponent(e)}/documents/copy-to-workspace`,{documentId:t,...n})}export{Yt as $,Ge as $t,Fn as A,ae as An,We as At,Le as B,rn as Bt,Vn as C,S as Cn,er as Ct,Kt as D,b as Dn,Hn as Dt,Gn as E,we as En,zn as Et,fn as F,ne as Fn,Dt as Ft,Zt as G,jn as Gt,hn as H,ct as Ht,$e as I,oe as In,jt as It,yt as J,cn as Jt,Qt as K,Ft as Kt,on as L,ue as Ln,un as Lt,ln as M,m as Mn,Bt as Mt,nt as N,te as Nn,zt as Nt,Rt as O,ye as On,Un as Ot,Qn as P,ee as Pn,Tt as Pt,_n as Q,_t as Qt,an as R,h as Rn,xn as Rt,Bn as S,x as Sn,Pt as St,tt as T,Te as Tn,xt as Tt,ft as U,Ut,vn as V,Qe as Vt,pt as W,wt as Wt,He as X,rr as Xt,en as Y,Zn as Yt,Jn as Z,St as Zt,vt as _,Ct as _n,Xe as _t,kn as a,Ht as an,U as at,Wn as b,Ee as bn,et as bt,Nn as c,wn as cn,rt as ct,Cn as d,Lt as dn,ht as dt,qn as en,Xt as et,gn as f,Mt as fn,W as ft,nn as g,nr as gn,mn as gt,En as h,Gt as hn,On as ht,yn as i,Vt as in,Ue as it,sn as j,re as jn,It as jt,pn as k,ie as kn,lt as kt,Jt as l,qt as ln,at as lt,Et as m,mt as mn,Pn as mt,qe as n,ot as nn,K as nt,Ze as o,Sn as on,tr as ot,ir as p,bn as pn,Tn as pt,tn as q,Nt as qt,P as r,st as rn,dn as rt,In as s,Dn as sn,Ot as st,k as t,Yn as tn,G as tt,Mn as u,Ie as un,Ye as ut,Ke as v,kt as vn,Xn as vt,Wt as w,Ce as wn,At as wt,bt as x,C as xn,$t as xt,gt as y,Fe as yn,Rn as yt,Kn as z,de as zn,An as zt};