@warmhub/sdk-ts 0.99.0 → 0.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/checkpoint.js +1 -1
- package/dist/checkpoint.js.map +1 -1
- package/dist/chunk-5LZWCDNV.js +10 -0
- package/dist/chunk-5LZWCDNV.js.map +1 -0
- package/dist/{chunk-2E722CFI.js → chunk-JBTUW4MQ.js} +24 -24
- package/dist/chunk-JBTUW4MQ.js.map +1 -0
- package/dist/index.d.ts +32 -18
- package/dist/index.js +1 -1
- package/dist/react.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-2E722CFI.js.map +0 -1
- package/dist/chunk-2UVRVJFH.js +0 -10
- package/dist/chunk-2UVRVJFH.js.map +0 -1
package/dist/chunk-2UVRVJFH.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import {j as j$1,E as E$1,n,q as q$1,o,p,r,Q,D as D$1,u,v,b,f as f$1,e,i,a,d,w as w$1,m,C,z as z$2,P,O as O$1,k as k$1,c as c$1,l,g,h}from'./chunk-2E722CFI.js';import {TRPCClientError,createTRPCProxyClient,splitLink,httpBatchLink,httpLink}from'@trpc/client';import {observable}from'@trpc/server/observable';import {z as z$1}from'zod';function pt(r,e){let{childContext:t,onStringValue:n,onObjectKey:i}=e,o=[{value:r,context:e.rootContext}];for(;o.length>0;){let{value:s,context:u}=o.pop();if(typeof s=="string"){n(s,u);continue}if(Array.isArray(s)){for(let l=s.length-1;l>=0;l--)o.push({value:s[l],context:t(u,l)});continue}if(!w$1(s))continue;let p=Object.entries(s).map(([l,d])=>[l,t(u,l),d]);if(i)for(let[l,d]of p)i(l,d);for(let l=p.length-1;l>=0;l--){let d=p[l];d&&o.push({value:d[2],context:d[1]});}}}var br=new Set(["arc","bond","pair","set","list"]);function G(r,e){let t=lt(r,e,"add");return {operation:"add",kind:"collection",name:t.name,type:t.type,members:t.members,...r.skipExisting===true?{skipExisting:true}:{}}}function ie(r,e){let t=lt(r,e,"revise");if(!t.name)throw new Error(`${e}: collection revise requires a target name`);return {operation:"revise",kind:"collection",name:t.name,type:t.type,members:t.members,...typeof r.expectedVersion=="number"?{expectedVersion:r.expectedVersion}:{},...typeof r.leaseId=="string"&&r.leaseId.length>0?{leaseId:r.leaseId}:{}}}function lt(r,e,t){let n=D$1({operation:t,kind:"collection",name:typeof r.name=="string"?r.name:void 0,type:typeof r.type=="string"?r.type:void 0,members:Array.isArray(r.members)?r.members:void 0},0);if(n.length>0)throw new Error(`${e}: ${n.map(s=>s.message).join("; ")}`);let i=Sr(r.type);if(!i)throw new Error(`${e}: collection ${t} requires 'type'. Use one of: arc, bond, set, list`);if(!Array.isArray(r.members))throw new Error(`${e}: collection ${t} requires a 'members' array`);let o=wr(r.name);if(!o)throw new Error(`${e}: collection ${t} name must be a non-empty string`);return Cr(r,e,t),{name:o,type:i,members:r.members}}function Cr(r,e,t){let n=["about","aboutWref","shapeWref","data",...t==="revise"?["skipExisting"]:[]].filter(i=>r[i]!==void 0);if(n.length>0)throw new Error(`${e}: collection ${t} does not support ${n.map(i=>`'${i}'`).join(", ")}`)}function Sr(r){if(typeof r!="string")return;let e=r.trim();if(br.has(e))return e}function wr(r){if(typeof r=="string"&&!(r.length===0||r.trim()!==r))return r}function N(r){if(r.expectedVersion!==void 0&&r.operation!=="revise"&&r.operation!=="retract"&&r.operation!=="reaffirm")throw new Error("expectedVersion is only valid on revise, retract, or reaffirm operations \u2014 set an explicit operation discriminator");if(r.operation==="retract")return {operation:"retract",name:r.name,...r.kind?{kind:r.kind}:{},...r.reason?{reason:r.reason}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.operation==="reaffirm")return {operation:"reaffirm",name:r.name,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.kind?{kind:r.kind}:{},...r.add?{add:r.add}:{},...r.remove?{remove:r.remove}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.operation==="rename")return {operation:"rename",name:r.name,newName:r.newName,...r.kind?{kind:r.kind}:{}};if(r.operation==="revise"){let n=r.name??r.wref;if(!n)throw new Error("revise operation requires a target");let i=m({kind:r.kind,name:n});if(Object.hasOwn(r,"active"))throw new Error(`${i} revise operation no longer supports 'active' \u2014 use retract('${n}') instead`);if(i!=="assertion"&&r.affirmedTargets!==void 0)throw new Error(`${i} revise operation does not support 'affirmedTargets' \u2014 it applies only to assertions; set kind: 'assertion' explicitly`);if(i==="collection")return ie(r,"commit.apply");if(r.data===void 0)throw new Error(`${i} revise operation requires 'data'`);return i==="assertion"?{operation:"revise",kind:"assertion",name:n,data:r.data,...r.affirmedTargets?{affirmedTargets:r.affirmedTargets}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}:{operation:"revise",kind:i,name:n,data:r.data,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}let e=m(r),t="skipExisting"in r?r.skipExisting:void 0;if(e!=="collection"&&("type"in r&&r.type!==void 0||"members"in r&&r.members!==void 0))throw new Error(`add operation '${r.name??""}' has collection fields but resolved kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`);if(e!=="assertion"&&r.affirmedTargets!==void 0)throw new Error(`${e} add operation does not support 'affirmedTargets' \u2014 it applies only to assertions; set kind: 'assertion' explicitly`);if(e==="collection")return G({...r,skipExisting:t},"commit.apply");if(!r.name)throw new Error("add operation requires a name");if(e==="assertion"){if(!("about"in r)||r.about===void 0)throw new Error("assertion add operation requires 'about'");if(typeof r.about!="string")throw new Error(C);if(r.data===void 0)throw new Error("assertion add operation requires 'data'");return {operation:"add",kind:"assertion",name:r.name,about:r.about,data:r.data,...r.affirmedTargets?{affirmedTargets:r.affirmedTargets}:{},...t===true?{skipExisting:t}:{}}}if(r.data===void 0)throw new Error(`${e} add operation requires 'data'`);return {operation:"add",kind:e,name:r.name,data:r.data,...t===true?{skipExisting:t}:{}}}var Or=1e4,Ir=4*1024*1024,ve=class extends Error{code="VALIDATION_ERROR";status=400;constructor(e){super(e),this.name="WarmHubError";}};function xe(r,e){return r.map((t,n)=>{let i;try{i=N(t);}catch(o){let s=o instanceof Error?o.message:String(o);throw new ve(`Invalid operation at index ${n}: ${s}`)}return e===true&&i.operation==="add"?{...i,skipExisting:true}:i})}function Ar(r,e,t,n){return {orgName:r,repoName:e,...n?.committer!==void 0?{committer:n.committer}:{},...n?.message!==void 0?{message:n.message}:{},...n?.componentRef!==void 0?{componentRef:n.componentRef}:{},operations:xe(t,n?.skipExisting),...n?.includeWouldBeBody!==void 0?{includeWouldBeBody:n.includeWouldBeBody}:{}}}function dt(r){return JSON.stringify(r)}function kr(r){return new TextEncoder().encode(dt(r)).byteLength}var Ee="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Te=new Uint8Array(256).fill(255);for(let r=0;r<Ee.length;r++){let e=Ee.charCodeAt(r);Te[e]=r,e>=65&&(Te[e+32]=r);}function mt(r){let e=r.length*8,t=Math.ceil(e/5),n="";for(let i=0;i<t;i++){let o=i*5,s=o>>3,u=o&7,p=r[s]??0,l;if(u<=3)l=p>>3-u&31;else {let d=r[s+1]??0;l=(p<<u-3|d>>11-u)&31;}n+=Ee[l];}return n}function gt(r){let e=Math.floor(r.length*5/8),t=new Uint8Array(e),n=0,i=0,o=0;for(let s=0;s<r.length;s++){let u=r.charCodeAt(s),p=Te[u];if(p===void 0||p===255)return null;n=n<<5|p,i+=5,i>=8&&(i-=8,o<e&&(t[o++]=n>>i&255));}return t}var vr=1;var ht=16,yt=4;function xr(r){return Math.ceil((1+r+yt)*8/5)}var Er=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let i=0;i<8;i++)n=n&1?n>>>1^2197175160:n>>>1;e[t]=n>>>0;}return e})();function Tr(r){let e=4294967295;for(let t of r)e=(e>>>8^(Er[(e^t)&255]??0))>>>0;return (e^4294967295)>>>0}function ft(r,e=0){let t=Array.from(r.slice(e,e+16)).map(n=>n.toString(16).padStart(2,"0")).join("");return [t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function Nr(r,e,t){let n=e.startsWith("wh:")?e.slice(3):e;if(n.length!==xr(t))return null;let i=gt(n);if(!i||i.length!==1+t+yt||i[0]!==r)return null;let o=1+t,s=(i[o]??0)<<24|(i[o+1]??0)<<16|(i[o+2]??0)<<8|(i[o+3]??0),u=Tr(i.slice(0,o));return s>>>0!==u>>>0||mt(i)!==n.toUpperCase()?null:i.slice(1,1+t)}function _r(r){let e=Nr(vr,r,ht*2);return e?{repoId:ft(e,0),thingId:ft(e,ht)}:null}var Pr=/^(?:v0*[1-9]\d*|[Hh][Ee][Aa][Dd]|[Aa][Ll][Ll])$/;function Rt(r){let e=r.lastIndexOf("@"),t=e>=0&&Pr.test(r.slice(e+1))?r.slice(e+1):null,n=t===null?r:r.slice(0,e);return _r(n)===null?null:{durableId:(n.startsWith("wh:")?n.slice(3):n).toUpperCase(),selector:t}}function oe(r){let e=new Set;return pt(r,{rootContext:{key:null,parentKey:null,insideData:false},childContext:(t,n)=>({key:n,parentKey:t.key,insideData:t.insideData||n==="data"}),onStringValue:(t,n)=>{if(n.key==="durableId"&&n.parentKey==="metadata"&&!n.insideData)return;let i=Rt(t);i&&e.add(i.durableId);}}),e}function Mr(r){let e={};for(let t of r)e[t.durableId]=t.canonicalWref;return e}function Ne(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function qr(r){if(!Ne(r))return;let e=r.decorations;return Ne(e)?e:void 0}function Br(r){let e=r instanceof Error?r:new Error(String(r));return Object.assign(e,{decorationFailure:true})}function bt(r){return ()=>({op:e,next:t})=>!r.enabled||e.type!=="query"||e.path==="thing.headVersions"?t(e):observable(n=>{let i=false,o=false,s=false,u=()=>{!i&&o&&!s&&n.complete();},p=t(e).subscribe({next:l=>{let d=l.result?.data;if(!Ne(d)){n.next(l);return}let m=oe(d);if(m.size===0){n.next(l);return}s=true,r.getClient().thing.headVersions(void 0,void 0,[...m]).then(({items:g})=>{i||n.next({...l,result:{...l.result,data:{...d,decorations:Mr(g)}}});}).catch(g=>{i||n.error(TRPCClientError.from(Br(g)));}).finally(()=>{s=false,u();});},error:l=>n.error(l),complete:()=>{o=true,u();}});return ()=>{i=true,p.unsubscribe();}})}function Ct(r,e){return {create:async(t,n,i)=>{try{return await r().grant.create.mutate({orgName:t,repoName:n,...i})}catch(o){throw e(o)}},get:async(t,n,i)=>{try{return await r().grant.get.query({orgName:t,repoName:n,grantId:i})}catch(o){throw e(o)}},list:async(t,n,i)=>{try{return await r().grant.list.query({orgName:t,repoName:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw e(o)}},revoke:async(t,n,i,o)=>{try{return await r().grant.revoke.mutate({orgName:t,repoName:n,grantId:i,reason:o?.reason})}catch(s){throw e(s)}}}}function se(r){return {...r,createdAt:new Date(r.createdAt),updatedAt:new Date(r.updatedAt),runStartedAt:new Date(r.runStartedAt),...r.state==="complete"||r.state==="failed"?{completedAt:new Date(r.completedAt)}:{}}}function Ur(r){return {...r,expiresAt:new Date(r.expiresAt)}}function St(r){if(typeof r.checkpointId=="string"&&typeof r.repoSeq!="number")return {by:"id",checkpointId:r.checkpointId};if(typeof r.repoSeq=="number"&&typeof r.checkpointId!="string")return {by:"repoSeq",repoSeq:r.repoSeq};throw new TypeError("Repository checkpoint selector must contain exactly one of checkpointId or repoSeq")}function wt(r,e){return {generate:async(t,n,i)=>{try{let o=await r().repo.checkpoint.generate.mutate({orgName:t,repoName:n,atLeastRepoSeq:i?.atLeastRepoSeq});return se(o.checkpoint)}catch(o){throw e(o)}},status:async(t,n,i)=>{try{let o=await r().repo.checkpoint.status.query({orgName:t,repoName:n,selector:St(i)});return se(o)}catch(o){throw e(o)}},latest:async(t,n)=>{try{let i=await r().repo.checkpoint.latest.query({orgName:t,repoName:n});return i.checkpoint?se(i.checkpoint):null}catch(i){throw e(i)}},getAccess:async(t,n,i)=>{try{let o=await r().repo.checkpoint.access.query({orgName:t,repoName:n,selector:i.checkpoint==="latest"?{by:"latest"}:St(i.checkpoint),artifact:i.artifact==="archive"||i.artifact==="manifest"?{kind:i.artifact}:{kind:"chunk",path:i.artifact.chunkPath}});return Ur(o)}catch(o){throw e(o)}},retry:async(t,n,i)=>{try{let o=await r().repo.checkpoint.retry.mutate({orgName:t,repoName:n,checkpointId:i});return se(o.checkpoint)}catch(o){throw e(o)}}}}function K(r,e,t){let n=P(e,t==="revise"?{allowUnsafeFieldNamePaths:O$1(e)}:void 0);return n.valid?null:`Invalid shape definition for "${r}": ${n.errors.join("; ")}`}function Vr(r,e,t){let n=r.operation===void 0||r.operation==="noop"?t?.operation??"add":r.operation,i={opIndex:e,name:r.name??"",operation:n,...r.affirmations?{affirmations:r.affirmations}:{},...r.resolvedName!==void 0?{resolvedName:r.resolvedName}:{},...r.warnings?{warnings:r.warnings}:{}};return r.status==="failed"?{...i,status:"error",errors:[{code:r.error?.code??"BACKEND",message:r.error?.message??`Operation on "${r.name}" failed`,...r.error?.details?{details:r.error.details}:{},...r.retryable!==void 0?{retryable:r.retryable}:{}}],...t?.name!==void 0?{submittedName:t.name}:{}}:{...i,status:r.status==="noop"||r.operation==="noop"?"noop":"applied",...r.version!==void 0?{version:r.version}:{},...r.dataHash!==void 0?{dataHash:r.dataHash}:{}}}var D=class{receipts=[];operations=[];statusCounts={applied:0,noop:0,error:0};get allFailed(){return this.operations.length>0&&this.statusCounts.error===this.operations.length}addChunk(e){if(e.result.schemaVersion==="operation-event-receipt/v2"){e.result.results.forEach(t=>{this.statusCounts[t.status]++,this.operations.push({...t,opIndex:e.chunkStart+t.opIndex});});return}e.result.results.forEach((t,n)=>{let i=t.opIndex??n,o=e.submittedOperations[i],s=Vr(t,e.chunkStart+i,o);this.statusCounts[s.status]++,this.operations.push(s);});}addReceipt(e){this.receipts.push(e);}completedOperations(){return this.operations.filter(e=>e.status!=="error")}toResult(e){let t=this.statusCounts.error>0;return {...e.committer!==void 0?{committer:e.committer}:{},...e.createdByEmail!==void 0?{createdByEmail:e.createdByEmail}:{},message:e.message,operationCount:this.operations.length,...e.repoSeq!==void 0?{repoSeq:e.repoSeq}:{},...t?{partial:t,statusCounts:{...this.statusCounts}}:{},operations:this.operations,receipts:this.receipts}}};var Hr="003e7e6c-2f1e-53ea-9dfa-627edd04a8cc",Fr=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;function Ot(r){if(!Fr.test(r))throw new Error("Operation-event submission ID must be a canonical UUID");let e=r.toLowerCase().replaceAll("-","");return Uint8Array.from({length:16},(t,n)=>Number.parseInt(e.slice(n*2,n*2+2),16))}function _e(r,e){return (r<<e|r>>>32-e)>>>0}function Wr(r){let e=r.length*8,t=Math.ceil((r.length+9)/64)*64,n=new Uint8Array(t);n.set(r),n[r.length]=128;let i=new DataView(n.buffer);i.setUint32(t-8,Math.floor(e/4294967296)),i.setUint32(t-4,e>>>0);let o=1732584193,s=4023233417,u=2562383102,p=271733878,l=3285377520,d=new Uint32Array(80);for(let y=0;y<t;y+=64){for(let b=0;b<16;b+=1)d[b]=i.getUint32(y+b*4);for(let b=16;b<80;b+=1)d[b]=_e(d[b-3]^d[b-8]^d[b-14]^d[b-16],1);let S=o,h=s,R=u,I=p,C=l;for(let b=0;b<80;b+=1){let H,F;b<20?(H=h&R|~h&I,F=1518500249):b<40?(H=h^R^I,F=1859775393):b<60?(H=h&R|h&I|R&I,F=2400959708):(H=h^R^I,F=3395469782);let Rr=_e(S,5)+H+C+F+d[b]>>>0;C=I,I=R,R=_e(h,30),h=S,S=Rr;}o=o+S>>>0,s=s+h>>>0,u=u+R>>>0,p=p+I>>>0,l=l+C>>>0;}let m=new Uint8Array(20),g=new DataView(m.buffer);for(let[y,S]of [o,s,u,p,l].entries())g.setUint32(y*4,S);return m}function $r(r){let e=Array.from(r,t=>t.toString(16).padStart(2,"0")).join("").slice(0,32);return `${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`}function M(){let r=globalThis.crypto?.randomUUID?.();if(!r)throw new Error("This runtime cannot mint a cryptographically secure UUID");return r.toLowerCase()}var Gr=M;function Pe(r,e){if(!Number.isInteger(e)||e<0||e>2147483647)throw new Error("Stream chunk ordinal must be an integer from 0 through 2147483647");Ot(r);let t=r.toLowerCase(),n=Ot(Hr),i=new TextEncoder().encode(`${t}:${e}`),o=Wr(Uint8Array.from([...n,...i])).slice(0,16);return o[6]=o[6]&15|80,o[8]=o[8]&63|128,$r(o)}var ae=1e3,ce=1e4,k=class extends Error{code="PARTIAL_STREAM_SUBMISSION";completedReceipts;completedOperations;submissionId;eventRequestId;chunkOrdinal;pendingOutcome;acknowledgedOperationCount;lastAcknowledgedRepoSeq;attemptedAppendOutcome;cause;constructor(e){super(e.pendingOutcome==="unknown"?`Stream submission outcome is unknown for event request ${e.eventRequestId}. Look up its immutable receipt before retrying.`:`Stream submission stopped at event request ${e.eventRequestId} after earlier chunks committed.`),this.name="WarmHubError",this.cause=e.cause,this.completedReceipts=e.completedReceipts,this.completedOperations=e.completedOperations??[],this.submissionId=e.submissionId,this.eventRequestId=e.eventRequestId,this.chunkOrdinal=e.chunkOrdinal,this.pendingOutcome=e.pendingOutcome,this.acknowledgedOperationCount=e.acknowledgedOperationCount??e.completedReceipts.length,this.attemptedAppendOutcome=e.attemptedAppendOutcome,e.lastAcknowledgedRepoSeq!==void 0&&(this.lastAcknowledgedRepoSeq=e.lastAcknowledgedRepoSeq);}},E=class extends Error{code="STREAM_ALL_OPERATIONS_FAILED";receipts;result;operations;statusCounts;cause;constructor(e){let t=e.operations.find(n=>n.status==="error")?.errors[0];super(t?`All ${e.operationCount} stream operations failed: ${t.message}`:`All ${e.operationCount} stream operations failed.`),this.name="WarmHubError",this.cause=t,this.result=e,this.receipts=e.receipts,this.operations=e.operations,this.statusCounts=e.statusCounts??{applied:0,noop:0,error:e.operationCount};}};function Le(r){let e="status"in r?r.status:void 0;return e==="failed"||e==="error"?"error":e==="noop"||r.operation==="noop"?"noop":"applied"}function kt(r){let e={applied:0,noop:0,error:0};for(let t of r)e[Le(t)]++;return e}var Kr={maxAttempts:3,baseDelayMs:250,maxDelayMs:8e3},zr=10,It=6e4;function De(r){if(r===false)return false;let e={};r!==void 0&&(Number.isFinite(r.maxAttempts)&&(e.maxAttempts=r.maxAttempts),Number.isFinite(r.baseDelayMs)&&(e.baseDelayMs=r.baseDelayMs),Number.isFinite(r.maxDelayMs)&&(e.maxDelayMs=r.maxDelayMs));let t={...Kr,...e};return {maxAttempts:Math.min(zr,Math.max(1,Math.trunc(t.maxAttempts))),baseDelayMs:Math.min(It,Math.max(0,Math.trunc(t.baseDelayMs))),maxDelayMs:Math.min(It,Math.max(0,Math.trunc(t.maxDelayMs)))}}var jr=new Set(["BAD_REQUEST","METHOD_NOT_SUPPORTED","PARSE_ERROR","PAYLOAD_TOO_LARGE","PRECONDITION_FAILED","UNAUTHORIZED","UNPROCESSABLE_CONTENT","UNSUPPORTED_MEDIA_TYPE","UNAUTHENTICATED","FORBIDDEN","VALIDATION_ERROR","SHAPE_MISMATCH","RESERVED_NAME","ILLEGAL_OP_SEQUENCE","NOT_FOUND","KIND_MISMATCH","CONFLICT","ALREADY_RETRACTED","ARCHIVED","RATE_LIMITED","TOO_MANY_REQUESTS","UNRESOLVED_TOKEN"]),Yr=new Set(["COMMIT_OUTCOME_UNKNOWN"]);function vt(r){if(!r||typeof r!="object")return;let e=r.code;if(typeof e=="string")return e;let t=r.data,n=t?.warmhub?.code;if(typeof n=="string")return n;let i=t?.code;if(typeof i=="string")return i}function Jr(r){if(!r||typeof r!="object")return;let e=r.data?.httpStatus;if(typeof e=="number")return e;let t=r.data?.warmhub?.status;if(typeof t=="number")return t;let n=r.status;return typeof n=="number"?n:void 0}function Qr(r){return r!==void 0&&r>=400&&r<500&&r!==408}function xt(r){let e=vt(r);return e!==void 0&&Yr.has(e)}function z(r){if(xt(r))return false;let e=vt(r);return e!==void 0&&jr.has(e)||Qr(Jr(r))}function Me(r){if(xt(r)||z(r))return false;if(At(r))return true;if(r instanceof TypeError||r instanceof SyntaxError)return false;let e=r?.cause;return At(e)?true:!(e instanceof TypeError||e instanceof SyntaxError)}function At(r){return r instanceof TypeError&&/fetch/i.test(r.message)}function qe(r,e){let t=e.baseDelayMs*2**Math.max(0,r-1),n=Math.random()*e.baseDelayMs;return Math.min(e.maxDelayMs,t+n)}function Be(r){return new Promise(e=>setTimeout(e,r))}var j=class extends Error{code;status=400;constructor(e,t="VALIDATION_ERROR"){super(e),this.code=t,this.name="WarmHubError";}},ue=class extends Error{constructor(t){super("operation source failed");this.reason=t;}reason};async function q(r,e){let t=le(e.chunkSize),n=e.submissionId??M(),i=e.streamId??n,o=De(e.retry),s=new D,u=[],p,l,d=0,m,g=0,y=h=>new k({cause:h.cause,completedReceipts:s.receipts,completedOperations:s.completedOperations(),acknowledgedOperationCount:d,lastAcknowledgedRepoSeq:m,attemptedAppendOutcome:h.pendingOutcome==="absent"?"not_applied":"unknown",submissionId:n,eventRequestId:Pe(n,g),chunkOrdinal:g,pendingOutcome:h.pendingOutcome});try{for await(let h of Xr(e.operations,t,e.skipExisting===!0)){let R=1,I=!1;for(;;)try{let C=await r.stream.append({allocatedTokenRanges:u,chunkOrdinal:g,orgName:e.orgName,repoName:e.repoName,streamId:i,submissionId:n,componentRef:e.componentRef,committer:e.committer,message:e.message,...e.returnRepoSeq!==void 0?{returnRepoSeq:e.returnRepoSeq}:{},operations:h.operations});s.addReceipt(C.receipt),u=C.allocatedTokenRanges,p=C.createdByEmail??p,l=C.repoSeq??l,s.addChunk({result:C,chunkStart:h.start,submittedOperations:h.operations}),d+=h.operations.length;let b=en(C.receipt);b!==void 0&&(m=b);break}catch(C){let b=z(C);if(s.receipts.length===0&&!I&&b)throw C;if(o!==!1&&R<o.maxAttempts&&Me(C)){await Be(qe(R,o)),R+=1,I=!0;continue}throw y({cause:C,pendingOutcome:I||!b?"unknown":"absent"})}g+=1;}}catch(h){throw h instanceof ue?s.receipts.length===0?h.reason:y({cause:h.reason,pendingOutcome:"absent"}):h}if(g===0)throw new j("At least one operation is required for stream submission.");let S=s.toResult({committer:e.committer,createdByEmail:p,message:e.message,repoSeq:l});if(s.allFailed)throw new E(S);return S}async function*Xr(r,e,t){try{if(Array.isArray(r)){let o=r.map((s,u)=>Ue(s,u,t));Nt(o,0);for(let s=0;s<o.length;s+=e)yield {operations:o.slice(s,s+e),start:s};return}let n=0,i=[];for await(let o of Tt(r,t))i.push(o),n+=1,!(i.length<e)&&(yield Et(i,n),i=[]);i.length>0&&(yield Et(i,n));}catch(n){throw new ue(n)}}function Et(r,e){let t=e-r.length;return Nt(r,t),{operations:r,start:t}}function Ue(r,e,t){let n;try{n=N(r);}catch(i){let o=i instanceof Error?i.message:String(i);throw new j(`Invalid operation at index ${e}: ${o}`)}return t&&n.operation==="add"?{...n,skipExisting:true}:n}async function*Tt(r,e){let t=pe(r,e);try{for(;;){let n=await t.next();if(n.done)return;yield n.value;}}finally{let n=t.returnSourceOnce();n&&await n;}}function pe(r,e){let t,n=0,i=false,o=false,s=()=>t||(t=Symbol.asyncIterator in r?r[Symbol.asyncIterator]():r[Symbol.iterator](),t);return {async next(){let u=await s().next();if(u.done)return o=true,{done:true,value:void 0};let p=Ue(u.value,n,e);return n+=1,{done:false,value:p}},returnSourceOnce(){if(!i&&(i=true,!o))return t?.return?.()}}}function Ve(r){return Zr.encode(`${JSON.stringify(r)}
|
|
2
|
-
`)}var Zr=new TextEncoder;function en(r){let e=r.event?.repoSeq;if(e===void 0)return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Nt(r,e){let t=E$1(r).find(n=>!tn(n));if(t)throw new j(`Invalid operation at index ${e+t.operationIndex}: ${t.message}`,t.code)}function tn(r){return r.code==="ILLEGAL_OP_SEQUENCE"&&r.message.includes("Cannot revise then add ")}function le(r){return Number.isFinite(r)?Math.max(1,Math.min(ce,Math.trunc(r))):ae}var Lt="warmhub/streaming-submission-manifest/v1",rn=new TextEncoder,Fe=z$1.string().regex(/^sha256:[0-9a-f]{64}$/),Dt={type:z$1.literal("result"),chunkOrdinal:z$1.number().int().nonnegative(),opIndex:z$1.number().int().nonnegative(),submissionIndex:z$1.number().int().nonnegative(),name:z$1.string()},nn=z$1.enum(j$1),on=z$1.enum([...j$1,"noop"]),Mt=z$1.object({path:z$1.string(),message:z$1.string()}),qt=z$1.object({undeclaredFields:z$1.array(z$1.string()).optional(),undeclaredFieldsTruncated:z$1.literal(true).optional(),totalUndeclared:z$1.number().int().nonnegative().optional(),coalescedWrefs:z$1.array(z$1.object({fieldPath:z$1.string(),wref:z$1.string(),reason:z$1.string()})).optional(),coalescedWrefsTruncated:z$1.literal(true).optional(),totalCoalescedWrefs:z$1.number().int().nonnegative().optional(),deprecations:z$1.array(z$1.object({shape:z$1.string(),message:z$1.string(),removalMilestone:z$1.string()})).optional()}).optional(),Bt=z$1.object({added:z$1.array(z$1.string()),removed:z$1.array(z$1.string()),ignored:z$1.array(z$1.string())}),sn=z$1.discriminatedUnion("reason",[z$1.object({reason:z$1.literal("expected_version_mismatch"),expectedVersion:z$1.number().int().positive(),currentVersion:z$1.number().int().positive()}),z$1.object({reason:z$1.literal("lease_held"),leaseExpiresAt:z$1.string().datetime()}),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(Mt)}),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().int().positive(),resetAt:z$1.string().datetime()}),z$1.object({reason:z$1.literal("cursor_fence_unavailable"),cause:z$1.enum(["not_ready","below_floor","above_head"]),retryFromStart:z$1.literal(true)})]),an=z$1.discriminatedUnion("reason",[z$1.object({reason:z$1.literal("expected_version_mismatch"),expectedVersion:z$1.number().int().nonnegative(),currentVersion:z$1.number().int().nonnegative()}).strict(),z$1.object({reason:z$1.literal("lease_held"),leaseExpiresAt:z$1.string().datetime()}).strict(),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(Mt.strict())}).strict(),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().nonnegative(),resetAt:z$1.string().datetime()}).strict(),z$1.object({reason:z$1.literal("cursor_fence_unavailable"),cause:z$1.enum(["not_ready","below_floor","above_head"]),retryFromStart:z$1.literal(true)}).strict(),z$1.object({reason:z$1.literal("dependency_failed"),producerOpIndexes:z$1.array(z$1.number().int().nonnegative()).min(1)}).strict()]),_t={...Dt,operation:nn,submittedName:z$1.string().optional(),resolvedName:z$1.string().optional(),warnings:qt,affirmations:Bt.optional()},cn=z$1.union([z$1.object({...Dt,operation:on.optional(),version:z$1.number().optional(),dataHash:z$1.string().optional(),status:z$1.enum(["success","noop","failed"]).optional(),error:z$1.object({code:z$1.string(),message:z$1.string(),details:sn.optional()}).optional(),resolvedName:z$1.string().optional(),retryable:z$1.boolean().optional(),warnings:qt,affirmations:Bt.optional()}).passthrough(),z$1.object({..._t,status:z$1.enum(["applied","noop"]),version:z$1.number().int().positive().optional(),dataHash:z$1.string().min(1).optional()}).passthrough(),z$1.object({..._t,status:z$1.literal("error"),errors:z$1.array(z$1.object({code:z$1.string().min(1),message:z$1.string(),path:z$1.string().min(1).optional(),details:an.optional(),retryable:z$1.boolean().optional()}).strict()).min(1)}).passthrough()]),Ut=z$1.object({applied:z$1.number().int().nonnegative(),noop:z$1.number().int().nonnegative(),failed:z$1.number().int().nonnegative()}),un=z$1.object({type:z$1.literal("group"),chunkOrdinal:z$1.number().int().nonnegative(),eventRequestId:z$1.string().uuid(),requestDigest:Fe,outcome:z$1.enum(["event","no_event"]),repoSeq:z$1.number().int().nonnegative().optional(),operations:Ut,manifestDigest:Fe}).passthrough(),pn=z$1.object({type:z$1.literal("summary"),submissionId:z$1.string().uuid(),streamId:z$1.string().min(1),groupSize:z$1.number().int().positive(),groups:z$1.number().int().nonnegative(),operations:Ut.extend({total:z$1.number().int().nonnegative()}),repoSeq:z$1.object({first:z$1.number().int().nonnegative().nullable(),last:z$1.number().int().nonnegative().nullable()}),verdict:z$1.string().min(1),durationMs:z$1.number().nonnegative(),truncatedAt:z$1.object({lineNumber:z$1.number().int().positive(),message:z$1.string()}).optional(),manifest:z$1.object({groups:z$1.number().int().nonnegative(),digest:Fe})}).passthrough(),ln=z$1.object({type:z$1.literal("error"),code:z$1.string().min(1),message:z$1.string().optional()}).passthrough(),dn=z$1.union([cn,un,pn,ln]),He=()=>({applied:0,noop:0,failed:0}),Pt=(r,e)=>r.applied===e.applied&&r.noop===e.noop&&r.failed===e.failed,mn=new Set(["complete","operation-limit-reached","group-limit-reached"]),x=class extends Error{constructor(t,n){super(`Streaming submission protocol error at row ${n}: ${t}`);this.rowIndex=n;this.name="StreamingSubmissionProtocolError";}rowIndex};async function Vt(r){let e=rn.encode(r),t=await globalThis.crypto.subtle.digest("SHA-256",e);return `sha256:${Array.from(new Uint8Array(t),n=>n.toString(16).padStart(2,"0")).join("")}`}async function gn(r,e,t){return Vt(`${Lt}\0${r}\0${e}\0${t}`)}function hn(r){return r.status==="failed"||r.status==="error"?"failed":r.status==="noop"||r.operation==="noop"?"noop":"applied"}var We=class{index=0;groupCount=0;resultCount=0;pendingCount=0;pendingCounts=He();totalCounts=He();firstRepoSeq=null;lastRepoSeq=null;manifestDigest=Vt(Lt);terminalSeen=false;accept(e){let t=n=>{throw new x(n,this.index)};if(this.terminalSeen&&t("No row may follow the terminal row"),e.type==="result"){e.chunkOrdinal!==this.groupCount&&t(`Expected result chunkOrdinal ${this.groupCount}`),e.opIndex!==this.pendingCount&&t(`Expected result opIndex ${this.pendingCount}`),e.submissionIndex!==this.resultCount&&t(`Expected submissionIndex ${this.resultCount}`);let n=hn(e);this.pendingCounts[n]+=1,this.totalCounts[n]+=1,this.pendingCount+=1,this.resultCount+=1,this.index+=1;return}if(e.type==="group")return e.chunkOrdinal!==this.groupCount&&t(`Expected group chunkOrdinal ${this.groupCount}`),this.pendingCount===0&&t("A group must close result rows"),Pt(this.pendingCounts,e.operations)||t("Group operation counters do not match its result rows"),this.acceptGroup(e,t);if(this.terminalSeen=true,this.pendingCount>0&&t("Terminal row cannot close a partial group"),e.type==="summary")return this.acceptSummary(e,t);this.index+=1;}async acceptGroup(e,t){this.manifestDigest=this.manifestDigest.then(n=>gn(n,e.chunkOrdinal,e.requestDigest)),e.manifestDigest!==await this.manifestDigest&&t("Group manifest digest does not match the receipt chain"),e.repoSeq!==void 0&&(this.firstRepoSeq??=e.repoSeq,this.lastRepoSeq=e.repoSeq),this.groupCount+=1,this.pendingCount=0,this.pendingCounts=He(),this.index+=1;}async acceptSummary(e,t){Pt(this.totalCounts,e.operations)||t("Summary operation counters do not match result rows"),(e.groups!==this.groupCount||e.manifest.groups!==this.groupCount)&&t("Summary group counters do not match group rows"),e.manifest.digest!==await this.manifestDigest&&t("Summary manifest digest does not match the receipt chain"),(e.repoSeq.first!==this.firstRepoSeq||e.repoSeq.last!==this.lastRepoSeq)&&t("Summary repo sequence does not match group rows"),(mn.has(e.verdict)?e.operations.total!==this.resultCount:e.operations.total<this.resultCount)&&t("Summary total is incompatible with its verdict"),e.verdict==="truncated-by-parse-error"!=(e.truncatedAt!==void 0)&&t("truncatedAt must appear only for a parse-truncated verdict"),this.index+=1;}finish(){if(!this.terminalSeen)throw new x("Response must end with a summary or error row",this.index)}};function fn(r,e){let t;try{t=JSON.parse(r);}catch(i){throw new x(i instanceof Error?i.message:"Invalid JSON",e)}let n=dn.safeParse(t);if(!n.success)throw new x(n.error.issues[0]?.message??"Malformed row",e);return n.data}async function*Ht(r,e){let t=r.body?.getReader();if(!t)throw new x("Missing response body",0);let n=new We,i=new TextDecoder,o="",s=0,u=false,p,l=m=>{if(m.endsWith("\r")&&(m=m.slice(0,-1)),m.length===0)throw new x("Blank response row",s);let g=fn(m,s);return {pending:n.accept(g),row:g}},d=m=>{if(m.type==="summary"&&e!==void 0&&(m.submissionId!==e.submissionId||m.streamId!==e.streamId||m.groupSize!==e.groupSize))throw new x("Summary identity does not match the submission handle",s);s+=1;};try{for(;;){let{done:m,value:g}=await t.read();if(m)break;for(o+=i.decode(g,{stream:!0});;){let y=o.indexOf(`
|
|
3
|
-
`);if(y===-1)break;let S=o.slice(0,y);o=o.slice(y+1);let{pending:h,row:R}=l(S);h&&await h,d(R),R.type==="summary"||R.type==="error"?p=R:yield R;}}if(o+=i.decode(),o.length>0){let{pending:m,row:g}=l(o);m&&await m,d(g),g.type==="summary"||g.type==="error"?p=g:yield g;}n.finish(),u=!0,p&&(yield p);}finally{u||await t.cancel().catch(()=>{}),t.releaseLock();}}var T=class extends Error{code="STREAMING_SUBMISSION_OUTCOME_UNKNOWN";outcome="unknown";retryable=false;retryIdentity;cause;constructor(e,t){super(`Streaming submission outcome is unknown for ${e.submissionId}. Reconstruct the original source and copy every retryIdentity field into the next applyStreaming call.`),this.name="StreamingSubmissionOutcomeUnknownError",this.retryIdentity=e,this.cause=t;}};function de(r){return r===void 0||r===""?void 0:r}function yn(){let r=globalThis;if(r.Bun!==void 0)return true;let e=r.process?.versions?.node;if(!e)return false;let[t=0,n=0]=e.split(".").map(Number);return t>22||t===22&&n>=2}function Rn(r){let e=new URLSearchParams({submissionId:r.submissionId,groupSize:String(r.groupSize)});return r.message!==void 0&&e.set("message",r.message),r.committer!==void 0&&e.set("committer",r.committer),`/api/repos/${encodeURIComponent(r.orgName)}/${encodeURIComponent(r.repoName)}/streams/${encodeURIComponent(r.streamId)}/submissions?${e}`}function bn(r){let e=pe(r,false),t=false,n=()=>{if(t)return;t=true;let o=e.returnSourceOnce();o&&Promise.resolve(o).catch(()=>{});};return {stream:new ReadableStream({async pull(o){try{let s=await e.next();if(t)return;if(s.done){o.close();return}o.enqueue(Ve(s.value));}catch(s){o.error(s),n();}},cancel(){n();}}),returnSourceOnce:n}}function Cn(r,e){if(!r)return ()=>{};let t=()=>e.abort(r.reason);return r.aborted?t():r.addEventListener("abort",t,{once:true}),()=>r.removeEventListener("abort",t)}function Sn(r){let e=r.options?.submissionId??M();return {orgName:r.orgName,repoName:r.repoName,streamId:r.options.streamId,submissionId:e,groupSize:le(r.options.groupSize),...de(r.message)!==void 0?{message:de(r.message)}:{},...de(r.options?.committer)!==void 0?{committer:de(r.options?.committer)}:{}}}function Ft(r,e){if(!r.options.streamId)throw e.localError("VALIDATION_ERROR","Streaming submissions require a non-empty streamId.");let t=Sn(r),n=new AbortController,i=()=>{},o,s=false,u=async function*(){let p=false,l=false,d;try{if(!(e.runtimeSupported??yn)())throw e.localError("VALIDATION_ERROR","Streaming submissions require Bun or Node.js 22.2 or newer.");if(i=Cn(r.options.signal,n),n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");let m=await e.prepare(Rn(t));if(n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");d=bn(r.operations),p=!0;let g=await m.dispatch(d.stream,n.signal);if(!g.ok)throw l=!0,await m.httpError(g);for await(let y of Ht(g,t))yield y;}catch(m){throw m instanceof T?m:p&&!l?new T(t,m):e.normalizeLocalError(m)}finally{n.abort(),d?.returnSourceOnce(),i(),s=true;}};return {retryIdentity:t,[Symbol.asyncIterator](){return this},next(){return s?Promise.resolve({done:true,value:void 0}):(o??=u(),o.next())},async return(p){return n.abort(),o?o.return(p):(s=true,i(),{done:true,value:p})},async throw(p){if(n.abort(p),!o)throw s=true,i(),p;return o.throw(p)}}}var wn="0.0.0-development";function B(r){return r===wn}var $e="0.99.0";var Wt=1;function On(r){return r===g?"Run: wh update --yes":r===f$1?"Run: npm install @warmhub/sdk-ts@latest (or your package manager's equivalent).":r===h?"Run: pip install --upgrade warmhub":`Deploy a released ${r} build that satisfies the backend compatibility contract.`}function $t(r,e){if(typeof r?.minSupportedClients!="object"||r.minSupportedClients===null||!Number.isSafeInteger(r.writeContractVersion)||r.writeContractVersion<1)return {message:"The backend does not advertise valid per-client write compatibility data.",hint:"Upgrade the WarmHub backend before retrying this write."};let t=r.minSupportedClients[e.name],n=typeof t=="string"?u(t):null;if(!n)return {message:`The backend does not advertise a valid compatibility floor for ${e.name}.`,hint:"Upgrade the WarmHub backend or register this first-party client family before writing."};if(!B(e.version)){let i=u(e.version);if(!i)return {message:`${e.name} reported malformed version "${e.version}".`,hint:"Use a released WarmHub client with a SemVer package version."};if(v(i,n)<0)return {message:`${e.name} ${e.version} is older than the backend's minimum supported version ${n}.`,hint:On(e.name)}}if(r.writeContractVersion<Wt)return {message:`${e.name} requires write contract ${Wt}, but the backend provides ${r.writeContractVersion}.`,hint:"Upgrade the WarmHub backend before retrying this write."}}function Ge(r,e){try{return new URL(r).origin===new URL(e).origin}catch{return false}}var In=new Set(["GET","POST","PUT","PATCH","DELETE"]),A=class extends Error{reason;constructor(e,t){super(t),this.name="CliCallVerificationError",this.reason=e;}};async function An(r$1,e,t){let n$1=r$1.method.toUpperCase();if(!In.has(n$1))throw new A("unsupported-method",`Unsupported HTTP method "${r$1.method}" \u2014 component CLI dispatch only emits GET, POST, PUT, or PATCH`);let i=n$1,o$1=r$1.headers.get(n);if(!o$1)throw new A("missing-install-repo",`Missing ${n} header`);let s=U(e.CLI_SIGNING_SECRET),u=U(e.CLI_BEARER_TOKEN),p$1=U(e.CLI_API_KEY),l=U(e.CLI_BASIC_USERNAME)&&U(e.CLI_BASIC_PASSWORD);if(!s&&!u&&!p$1&&!l)throw new A("no-scheme-configured","no-scheme-configured: need at least one of CLI_SIGNING_SECRET, CLI_BEARER_TOKEN, CLI_API_KEY, or CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD");if(u&&l)throw new A("no-scheme-configured","unsupported-scheme-combination: CLI_BEARER_TOKEN and CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD both use the Authorization header and cannot be configured together");let d=new URL(r$1.url),m=d.pathname,g,y,S;if(q$1(i)?g={}:(g=Object.fromEntries(d.searchParams.entries()),y="",S={...g}),s){let h=r$1.headers.get(o);if(!h)throw new A("missing-signature",`Missing ${o} header`);let R=r$1.headers.get(p);if(!R)throw new A("missing-timestamp",`Missing ${p} header`);let I=Number(R);if(!Number.isFinite(I)||!Number.isInteger(I))throw new A("invalid-timestamp",`${p} must be an integer unix seconds value; got "${R}"`);y=await Gt(r$1,i,y);let C=await r({secret:e.CLI_SIGNING_SECRET,method:i,path:m,query:g,installRepo:o$1,body:y,signature:h,timestamp:I,nowUnixSeconds:t?.nowUnixSeconds??Math.floor(Date.now()/1e3),toleranceSec:t?.toleranceSec});if(!C.ok)throw new A(C.reason,`HMAC verification failed: ${C.reason}`)}if(u){let h=`Bearer ${e.CLI_BEARER_TOKEN}`,R=r$1.headers.get("authorization")??"";if(!await Ke(R,h))throw new A("invalid-bearer","invalid-bearer: bearer token mismatch")}if(p$1){let h=U(e.CLI_API_KEY_HEADER)?e.CLI_API_KEY_HEADER:"X-API-Key",R=r$1.headers.get(h)??"";if(!await Ke(R,e.CLI_API_KEY))throw new A("invalid-api-key",`invalid-api-key: mismatch on header "${h}"`)}if(l){let h=`Basic ${btoa(`${e.CLI_BASIC_USERNAME}:${e.CLI_BASIC_PASSWORD}`)}`,R=r$1.headers.get("authorization")??"";if(!await Ke(R,h))throw new A("invalid-basic","invalid-basic: basic auth mismatch")}return S===void 0&&(y=await Gt(r$1,i,y),S=kn(y)),{method:i,installRepo:o$1,args:S}}async function Gt(r,e,t){return q$1(e)?t!==void 0?t:r.text():""}function kn(r){let e;try{e=JSON.parse(r);}catch{throw new A("invalid-body","POST body is not valid JSON")}if(!vn(e))throw new A("invalid-body","POST body must be a JSON object of primitive args (string / number / boolean)");return e}function U(r){return typeof r=="string"&&r.length>0}function vn(r){if(typeof r!="object"||r===null||Array.isArray(r))return false;for(let e of Object.values(r))if(e!==void 0&&typeof e!="string"&&typeof e!="number"&&typeof e!="boolean")return false;return true}async function Ke(r,e){let[t,n]=await Promise.all([Kt(r),Kt(e)]),i=0;for(let o=0;o<t.length;o++)i|=t[o]^n[o];return i===0}async function Kt(r){return new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r)))}function je(r){if(r.includes("/"))return r.split("/")[0]}function jt(r){if("shapeWref"in r&&typeof r.shapeWref=="string")return r.shapeWref;if(r.name)return je(r.name)}function ze(r){if(typeof r!="string")return;let e=r.trim();return e.length>0?e:void 0}function V(r){return m({kind:r.kind,name:r.name,about:he(r),type:me(r),members:ge(r)})}function he(r){if("about"in r&&r.about!==void 0)return r.about;if("aboutWref"in r)return r.aboutWref}function Ye(r){return "data"in r?r.data:void 0}function me(r){return "type"in r?r.type:void 0}function ge(r){return "members"in r?r.members:void 0}function Y(r,e){return m({kind:r.kind,name:e})}function zt(r){return r.data??{}}function Yt(r){if(r.operation==="retract")return N(r);if(r.operation==="reaffirm")return N({operation:"reaffirm",name:r.name,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.kind?{kind:r.kind}:{},...r.add?{add:[...r.add]}:{},...r.remove?{remove:[...r.remove]}:{},...r.leaseId?{leaseId:r.leaseId}:{}});if(r.operation==="add"){let n=V(r);if(n==="collection")return G(r,"OperationBuilder");let i=r,o=zt(i),s=ze(i.name);if(!s)throw new Error("OperationBuilder: add operation missing name");if(n==="assertion"){let u=he(i);if(u===void 0)throw new Error(`OperationBuilder: assertion add '${s}' missing required 'about'`);if(typeof u!="string")throw new Error(C);return {operation:"add",kind:n,name:s,about:u,data:o,...i.affirmedTargets?{affirmedTargets:[...i.affirmedTargets]}:{},...i.skipExisting===true?{skipExisting:true}:{}}}return {operation:"add",kind:n,name:s,data:o,...i.skipExisting===true?{skipExisting:true}:{}}}let e=ze(r.name)??ze(r.wref);if(!e)throw new Error("OperationBuilder: revise operation missing required target ('name' or 'wref')");let t=Y(r,e);if(t==="collection")return ie({...r,name:e},"OperationBuilder");if(t==="assertion")return {operation:"revise",kind:t,name:e,data:r.data??{},...r.affirmedTargets?{affirmedTargets:[...r.affirmedTargets]}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.affirmedTargets!==void 0)throw new Error(`OperationBuilder: REVISE '${e}' has affirmedTargets but inferred kind '${t}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`);return {operation:"revise",kind:t,name:e,data:zt(r),...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}function _(r,e){return r.operation==="add"?{operation:r.operation,kind:e,name:r.name,about:he(r),type:me(r),members:ge(r)}:{operation:r.operation,kind:e,name:r.name??r.wref,type:me(r),members:ge(r)}}function Jt(r){if(r.length!==0)throw new Error(r.join("; "))}function Qt(r,e,t,n){let i=[];if((e==="thing"||e==="assertion"||e==="collection"&&r==="REVISE")&&(l(t)||i.push(`${r} ${e} name must be a local path (Shape/name), got: "${t}"`)),e==="shape"&&(r==="ADD"||r==="REVISE")&&n!==void 0){let s=K(t,n,r==="REVISE"?"revise":"add");s&&i.push(s);}return i}function Xt(r,e){let t=[];if(r.name&&t.push(...Qt("ADD",e,r.name,Ye(r))),e==="assertion"&&he(r)===void 0&&t.push(`ADD assertion '${r.name}' missing required 'about' \u2014 for hierarchical thing names set kind: 'thing' explicitly`),e!=="collection"&&(me(r)!==void 0||ge(r)!==void 0)&&t.push(`ADD '${r.name}' has collection fields but inferred kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`),e!=="assertion"&&"affirmedTargets"in r&&r.affirmedTargets!==void 0&&t.push(`ADD '${r.name}' has affirmedTargets but inferred kind '${e}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),e==="collection")try{G(r,"OperationBuilder");}catch(n){t.push(n instanceof Error?n.message:String(n));}for(let n of D$1(_(r,e),0))t.push(n.message);Jt(t);}function Zt(r,e,t){let n=[];r!=="collection"&&t.data===void 0&&n.push(`OperationBuilder: ${r} revise requires 'data'`),r!=="assertion"&&t.affirmedTargets!==void 0&&n.push(`REVISE '${e}' has affirmedTargets but inferred kind '${r}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),n.push(...Qt("REVISE",r,e,t.data),...D$1(_({...t,name:e},r),0).map(i=>i.message)),Jt(n);}var fe=class{ops=[];pendingNames=new Set;shapes;wrefToShape=new Map;submitted=false;inFlight=false;constructor(e){this.shapes=e?.shapes;}add(e){this.assertCanModify();let t={...e};delete t.operation;let n=jt(t),i=Ye(t);if(this.shapes&&n&&i!==void 0){let p=this.shapes[n];if(p){let l=Q(i,p);if(!l.valid)throw new Error(`Shape validation failed for '${t.name}' (shape: ${n}): ${l.errors.join("; ")}`)}}let o={operation:"add",...t},s=V(o);(o.name||s==="collection")&&Xt(o,s);let u=Object.freeze({operation:"add",...t});return this.ops.push(u),t.name&&(this.pendingNames.add(t.name),n&&this.wrefToShape.set(t.name,n)),this}revise(e){this.assertCanModify();let t={...e};delete t.operation;let n=t.name??t.wref;if(this.shapes&&n&&t.data!==void 0){let o=this.wrefToShape.get(n)??je(n);if(o){let s=this.shapes[o];if(s){let u=Q(t.data,s);if(!u.valid)throw new Error(`Shape validation failed for revise '${n}' (shape: ${o}): ${u.errors.join("; ")}`)}}}if(n){let o=Y({...t},n);Zt(o,n,{operation:"revise",...t});}let i=Object.freeze({operation:"revise",...t});return this.ops.push(i),this}retract(e){this.assertCanModify();let t=Object.freeze(typeof e=="string"?{operation:"retract",name:e}:{operation:"retract",name:e.name,...e.kind?{kind:e.kind}:{},...e.reason?{reason:e.reason}:{},...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}reaffirm(e){this.assertCanModify();let t=Object.freeze({operation:"reaffirm",name:e.name,...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.kind?{kind:e.kind}:{},...e.add?{add:Object.freeze([...e.add])}:{},...e.remove?{remove:Object.freeze([...e.remove])}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}get operations(){return Object.freeze([...this.ops])}get size(){return this.ops.length}has(e){return this.pendingNames.has(e)}validate(){let e=[],t=[],n=new Set,i=new Set;for(let p=0;p<this.ops.length;p+=1){let l=this.ops[p];if(l){if(l.operation==="add"){let d=V(l);!l.name&&d!=="collection"?e.push({code:"MISSING_NAME",operationIndex:p,message:`Add operation at index ${p} is missing required 'name' field`}):l.name&&(n.has(l.name)&&e.push({code:"DUPLICATE_NAME",operationIndex:p,message:`Duplicate name '${l.name}' at index ${p} (already added earlier in commit)`}),n.add(l.name));}if(l.operation==="revise"){let d=l.name??l.wref;d?i.has(d)?e.push({code:"REVISE_AFTER_RETRACT",operationIndex:p,message:`Revise at index ${p} targets '${d}' which was already retracted in this commit`}):n.has(d)||t.push({code:"REVISE_UNKNOWN_WREF",operationIndex:p,message:`Revise at index ${p} references '${d}' which was not added in this commit (assuming it exists server-side)`}):e.push({code:"MISSING_WREF",operationIndex:p,message:`Revise operation at index ${p} is missing required target ('name' or 'wref')`});}l.operation==="retract"&&(l.name?i.has(l.name)?t.push({code:"RETRACT_AFTER_RETRACT",operationIndex:p,message:`Retract at index ${p} targets '${l.name}' which was already retracted in this commit`}):(n.has(l.name)||t.push({code:"RETRACT_UNKNOWN_WREF",operationIndex:p,message:`Retract at index ${p} references '${l.name}' which was not added in this commit (assuming it exists server-side)`}),i.add(l.name)):e.push({code:"MISSING_NAME",operationIndex:p,message:`Retract operation at index ${p} is missing required 'name' field`}));}}let o=this.ops.flatMap((p,l)=>{if(p.operation==="add")return D$1(_(p,V(p)),l);if(p.operation==="revise"){let d=p.name??p.wref;return D$1(_(p,d?Y(p,d):"thing"),l)}return D$1({operation:"retract",kind:p.kind,name:p.name},l)});for(let p of o)e.push({code:p.code,operationIndex:p.operationIndex,message:p.message});let s=this.ops.flatMap((p,l)=>{if(p.operation==="retract"||p.operation==="reaffirm")return [];if(p.operation==="add")return [{op:_(p,V(p)),operationIndex:l}];let d=p.name??p.wref;return [{op:_(p,d?Y(p,d):"thing"),operationIndex:l}]}),u=E$1(s.map(({op:p})=>p),{checkAddAdd:false,sourceOperationIndexes:s.map(({operationIndex:p})=>p)});for(let p of u)e.push({code:p.code,operationIndex:p.operationIndex,message:p.message});return this.ops.length===0&&e.push({code:"EMPTY_COMMIT",operationIndex:-1,message:"OperationBuilder has no operations"}),{valid:e.length===0,errors:e,warnings:t}}async commit(e){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight");let t=this.validate();if(!t.valid){let n=t.errors.map(i=>i.message).join("; ");throw new Error(`OperationBuilder validation failed: ${n}`)}this.inFlight=true;try{let n=this.ops.map(o=>Yt(o)),i=await q(e.client,{orgName:e.orgName,repoName:e.repoName,committer:e.committer,message:e.message,chunkSize:e.chunkSize,streamId:e.streamId,submissionId:e.submissionId,returnRepoSeq:e.returnRepoSeq,retry:e.retry,operations:n});return this.submitted=!0,i}catch(n){throw n instanceof k&&(this.submitted=true),n}finally{this.inFlight=false;}}assertNotSubmitted(){if(this.submitted)throw new Error("OperationBuilder: already submitted, cannot modify")}assertCanModify(){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight, cannot modify")}};function Ho(r){return r.replace(/@(?:v\d+|HEAD|ALL)$/i,"")}var Dn={apiUrl:true,fetch:true,accessToken:true,auth:true,functionLogs:true,client:true,clientFlags:true,decorateResponses:true},dr=Object.keys(Dn),Mn=new Set(dr),qn=new Set(["token","apiKey","bearer"]);function Bn(r){if(r)for(let e of Object.keys(r)){if(Mn.has(e))continue;let t=qn.has(e)?'; did you mean "accessToken"?':`. Valid options are: ${dr.join(", ")}.`;throw new TypeError(`Unknown WarmHubClient option "${e}"${t}`)}}function Un(r){if(!r||r.length===0)return [];for(let e of r)if(!c$1(e))throw new TypeError(`Invalid client flag "${e}": expected lowercase tokens matching [a-z0-9-]+.`);return [...new Set(r)].sort()}var Je="https://api.warmhub.ai",Vn=new Set(["commit.validate","repo.shapeInstanceCounts","thing.getMany","thing.headVersions"]),er=500,tr=500,rr=1,nr=8;function be(r){return {...r,actionContainer:void 0,actionContainerConfig:void 0}}function Hn(r){return r.map(e=>be(e))}function mr(r,e,t){if(e===r||t.has(e))throw new f("VALIDATION_ERROR","Paginated result cursor did not advance")}function ir(r){if(r===void 0)throw new f("VALIDATION_ERROR","sinceRepoSeq is required for an incremental read")}async function*gr(r,e){let t=e,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(yield i,!i.nextCursor)return;mr(t,i.nextCursor,n),t=i.nextCursor;}}async function*w(r,e,t){for await(let n of gr(r,t))yield*e(n);}async function O(r,e,t,n){if(t!==void 0&&(!Number.isFinite(t)||Math.trunc(t)!==t||t<0))throw new f("VALIDATION_ERROR","max must be a nonnegative integer");let i=[];for await(let o of gr(r,n)){let s=e(o);if(t!==void 0&&i.length+s.length>t)throw new f("VALIDATION_ERROR",`Paginated result exceeded max=${t}`);i.push(...s);}return i}function or(r){if(r?.slugs!==void 0)throw new f("VALIDATION_ERROR","repo.explore pagination helpers do not support slugs mode")}async function sr(r){let e=[],t,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(e.push(...i.items),!i.nextCursor){if(i.repoSeq===void 0)throw new f("VALIDATION_ERROR","Incremental read completed without repoSeq");return {items:e,repoSeq:i.repoSeq}}mr(t,i.nextCursor,n),t=i.nextCursor;}}function ye(r,e,t){return Number.isFinite(r)?Math.max(1,Math.min(t,Math.trunc(r))):e}function ar(r,e){let t=[];for(let n=0;n<r.length;n+=e)t.push(r.slice(n,n+e));return t}function Re(r){return r!==void 0&&k$1.includes(r)?r:void 0}function J(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,name:n}:e}function Fn(r){let[e,t]=r;return typeof e=="string"?{orgName:e,repoName:t}:e}function Wn(r){let[e,t,n,i]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n,credentialSetName:i}:e}function $n(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n}:e}function Gn(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function Kn(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function Ce(r){return !!r&&(!!r.shape||!!r.kind||!!r.about||!!r.match||!!r.componentRef||r.excludeComponents===true||(r.where?.length??0)>0)}function Se(r){return !!r&&(!!r.shape||!!r.about||!!r.match||!!r.componentRef||(r.where?.length??0)>0)}function hr(r){let e=r.members;return Array.isArray(e)&&e.length>0}function zn(r){let t=r.replace(/^wh:[^/]+\/[^/]+\//,"").replace(/@(?:HEAD|ALL|v\d+)$/,"").split("/")[0]?.toLowerCase();return t==="arc"||t==="bond"||t==="pair"||t==="set"||t==="list"?t:void 0}function jn(r,e){if(Ce(e.query)&&!Se(e.query))throw new f("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(e.sourceRepo&&!Se(e.query))throw new f("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(e.sourceRepo&&hr(e))throw new f("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(Ce(e.query)&&r!=="set")throw new f("VALIDATION_ERROR","Selector-backed collection sources are only supported for set collections")}function Fo(r){return r??"off"}function Yn(r){switch(r){case "BAD_REQUEST":case "PARSE_ERROR":case "PAYLOAD_TOO_LARGE":case "UNPROCESSABLE_CONTENT":case "UNSUPPORTED_MEDIA_TYPE":return "VALIDATION_ERROR";case "METHOD_NOT_SUPPORTED":return "NOT_FOUND";case "UNAUTHORIZED":return "UNAUTHENTICATED";case "FORBIDDEN":return "FORBIDDEN";case "NOT_FOUND":return "NOT_FOUND";case "CONFLICT":return "CONFLICT";case "PRECONDITION_FAILED":return "PRECONDITION_FAILED";case "TOO_MANY_REQUESTS":return "RATE_LIMITED";default:return}}function Jn(r){if(r===void 0||r===408)return;if(r===405)return "NOT_FOUND";if(r===412)return "PRECONDITION_FAILED";if(r===422)return "VALIDATION_ERROR";let e=yr(r);return e!=="BACKEND"?e:r>=400&&r<500?"VALIDATION_ERROR":e}var Qn=[/\bselect\b.+?\bfrom\b/i,/\binsert\b.+?\binto\b/i,/\bupdate\b.+?\bset\b/i,/\bdelete\b.+?\bfrom\b/i,/\bparams:\s/i,/\.ts\(\d+,\d+\)/,/at\s+\S+\s+\(.*:\d+:\d+\)/,/node_modules\//,/drizzle/i];function Qe(r){for(let e of Qn)if(e.test(r))return "An internal error occurred. Please try again or contact support.";return r}var f=class extends Error{code;status;hint;retryAfter;errorCode;backendCode;details;constructor(e,t,n,i,o,s,u){super(t),this.name="WarmHubError",this.code=e,this.status=n,this.hint=i,this.retryAfter=o,this.errorCode=s,this.backendCode=s,this.details=u;}get kind(){return this.code}};function cr(r,e){if(typeof e!="string")return;let t=z$2(r,e);if(t)throw new f("VALIDATION_ERROR",t)}function c(r){if(r instanceof f)return r;if(r instanceof TRPCClientError){if(r.cause instanceof f)return r.cause;let e=r.data,t=e?.warmhub?.code,n=typeof e?.code=="string"?Yn(e.code):void 0,i=Jn(e?.httpStatus),o=e?.warmhub?.message??Qe(r.message);return new f(t??n??i??"BACKEND",o,e?.warmhub?.status??e?.httpStatus,e?.warmhub?.hint,e?.warmhub?.retryAfter??e?.retryAfter,t,e?.warmhub?.details)}if(r instanceof Error){let e=r;return r.name==="WarmHubError"&&typeof e.code=="string"?new f(e.code,Qe(r.message),typeof e.status=="number"?e.status:void 0,typeof e.hint=="string"?e.hint:void 0,typeof e.retryAfter=="number"?e.retryAfter:void 0,typeof e.errorCode=="string"?e.errorCode:typeof e.backendCode=="string"?e.backendCode:void 0,e.details):r.name==="AbortError"?new f("CANCELLED",r.message):r instanceof TypeError&&/fetch/i.test(r.message)?new f("NETWORK",r.message):new f("BACKEND",Qe(r.message))}return new f("BACKEND","Unknown SDK error")}function Xn(r){return r instanceof f}function Wo(r){if(r instanceof T)return false;let e=c(r);return e.kind==="NETWORK"||e.kind==="CANCELLED"||e.kind==="BACKEND"||e.kind==="RATE_LIMITED"}var Zn=new Set(["ConnectionRefused","ECONNREFUSED","ENOTFOUND","ETIMEDOUT","EAI_AGAIN"]);function ei(r){if(r instanceof TypeError&&/fetch/i.test(r.message))return true;if(r&&typeof r=="object"){let e=r.code;if(typeof e=="string"&&Zn.has(e))return true}return false}function ti(r){return `Unable to connect to ${r}. Is the computer able to access the url?`}function $o(r,e){if(B(r))return false;let t=u(r),n=u(e);return !t||!n?false:v(t,n)<0}function fr(r,e){return new f("CLIENT_INCOMPATIBLE",r,412,e)}function ri(r,e){let t=$t(r,e);if(t)throw fr(t.message,t.hint)}var ur=class r{apiUrl;fetchImpl;accessToken;clientIdentity;clientFlags;decorateResponses;functionLogMode;getToken;compatibilityCheck;overrideNoticePrinted=false;noteCompatibilityOverride(){this.overrideNoticePrinted||(this.overrideNoticePrinted=true,console.error(`warmhub: compatibility checks overridden by client flag ${b}; the server remains authoritative.`));}assertWriteCompatible(){return this.clientFlags.includes(b)?(this.noteCompatibilityOverride(),Promise.resolve()):B(this.clientIdentity.version)&&Ge(this.apiUrl,Je)?Promise.reject(fr(`Development client ${this.clientIdentity.name}/${this.clientIdentity.version} cannot write to production.`,"Install a released WarmHub client artifact before writing to api.warmhub.ai.")):B(this.clientIdentity.version)&&!Ge(this.apiUrl,Je)?Promise.resolve():this.diagnostics.assertCompatible()}createCompatibilityLink(){return ()=>({op:e,next:t})=>e.type!=="mutation"||e.path==="commit.validate"?t(e):observable(n=>{let i=false,o;return this.assertWriteCompatible().then(()=>{i||(o=t(e).subscribe(n));}).catch(s=>{i||n.error(TRPCClientError.from(s));}),()=>{i=true,o?.unsubscribe();}})}auth={getClientId:async()=>{try{return await this.trpc.auth.getClientId.query()}catch(e){throw c(e)}},sync:async()=>{try{return await this.trpc.auth.sync.mutate()}catch(e){throw c(e)}},currentUser:async()=>{try{return await this.trpc.auth.currentUser.query()}catch(e){throw c(e)}},whoami:async()=>{try{return await this.trpc.auth.whoami.query()}catch(e){throw c(e)}}};homepage={featuredLists:async()=>{try{return await this.trpc.homepage.featuredLists.query()}catch(e){throw c(e)}}};access={resolve:async e=>{try{return await this.trpc.access.resolve.query(e)}catch(t){throw c(t)}}};diagnostics={ping:async()=>{let e=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/health`);if(!e.ok)throw new f("BACKEND",`Health request failed with status ${e.status}`,e.status);return await e.json()},capabilities:async()=>{try{return await this.trpc.diagnostics.capabilities.query()}catch(e){throw c(e)}},assertCompatible:()=>{if(this.compatibilityCheck)return this.compatibilityCheck;let e=(async()=>{let t=await this.diagnostics.capabilities();ri(t,this.clientIdentity);})();return this.compatibilityCheck=e,e.catch(t=>{Xn(t)&&t.code==="CLIENT_INCOMPATIBLE"||this.compatibilityCheck===e&&(this.compatibilityCheck=void 0);}),e}};component={list:async(e,t,n)=>{try{return await this.trpc.component.list.query({orgName:e,repoName:t,limit:n?.limit,cursor:n?.cursor})}catch(i){throw c(i)}},listIter:(e,t,n)=>w(i=>this.component.list(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),listAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await O(s=>this.component.list(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},search:async(e,t)=>{try{return await this.trpc.component.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw c(n)}},searchIter:(e,t)=>w(n=>this.component.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await O(o=>this.component.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},get:async(e,t,n)=>{try{return await this.trpc.component.get.query({orgName:e,repoName:t,componentRef:n})}catch(i){throw c(i)}},history:async(e,t,n)=>{try{return await this.trpc.component.history.query({orgName:e,repoName:t,componentRef:n?.componentRef,limit:n?.limit})}catch(i){throw c(i)}},install:async(e,t,n,i)=>{try{return await this.trpc.component.install.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw c(o)}},uninstall:async(e,t,n,i)=>{try{return await this.trpc.component.uninstall.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw c(o)}},registry:{register:async(e,t,n)=>{try{return await this.trpc.component.registry.register.mutate({orgName:e,componentName:t,...n})}catch(i){throw c(i)}},unregister:async(e,t)=>{try{return await this.trpc.component.registry.unregister.mutate({orgName:e,componentName:t})}catch(n){throw c(n)}},list:async e=>{try{return await this.trpc.component.registry.list.query({orgName:e})}catch(t){throw c(t)}},view:async(e,t)=>{try{return await this.trpc.component.registry.view.query({orgName:e,componentName:t})}catch(n){throw c(n)}},update:async(e,t,n)=>{try{return await this.trpc.component.registry.update.mutate({orgName:e,componentName:t,...n})}catch(i){throw c(i)}},resolve:async(e,t,n)=>await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({installRepo:n})}),setupCall:async(e,t,n)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/setup-call`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n)}))},cli:{call:async(e,t,n,i)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/cli/${encodeURIComponent(n)}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(i)}))}};commit={validate:async(e,t,n,i)=>{try{return await this.trpc.commit.validate.mutate({orgName:e,repoName:t,committer:i?.committer,message:i?.message,componentRef:i?.componentRef,operations:xe(n,i?.skipExisting),includeWouldBeBody:i?.includeWouldBeBody},{signal:i?.signal})}catch(o){throw c(o)}},apply:async(e,t,n,i,o)=>{try{return await q(this,{orgName:e,repoName:t,committer:o?.committer,message:n,componentRef:o?.componentRef,chunkSize:o?.chunkSize,skipExisting:o?.skipExisting,streamId:o?.streamId,submissionId:o?.submissionId,returnRepoSeq:o?.returnRepoSeq,retry:o?.retry,operations:i})}catch(s){throw s instanceof k||s instanceof E?s:c(s)}},applyStreaming:(e,t,n,i,o)=>Ft({orgName:e,repoName:t,message:n,operations:i,options:o},{prepare:async s=>await this.prepareStreamingSubmissionRequest(s),localError:(s,u)=>new f(s,u),normalizeLocalError:c}),getReceipt:async(e,t,n)=>{try{return await this.trpc.commit.getReceipt.query({orgName:e,repoName:t,eventRequestId:n})}catch(i){throw c(i)}}};org={get:async e=>{try{return await this.trpc.org.get.query({orgName:e})}catch(t){throw c(t)}},getCallerRole:async e=>{try{return await this.trpc.org.getCallerRole.query({orgName:e})}catch(t){throw c(t)}},list:async e=>{try{return {items:await this.trpc.org.list.query({includeArchived:e?.includeArchived})}}catch(t){throw c(t)}},create:async(e,t,n)=>{try{return await this.trpc.org.create.mutate({name:e,displayName:t,description:n})}catch(i){throw c(i)}},setDescription:async(e,t)=>{try{return await this.trpc.org.setDescription.mutate({orgName:e,description:t})}catch(n){throw c(n)}},setDisplayName:async(e,t)=>{try{return await this.trpc.org.setDisplayName.mutate({orgName:e,displayName:t})}catch(n){throw c(n)}},rename:async(e,t)=>{try{return await this.trpc.org.rename.mutate({orgName:e,newName:t})}catch(n){throw c(n)}},update:async e=>{try{return await this.trpc.org.update.mutate(e)}catch(t){throw c(t)}},addMember:async(e,t,n="editor")=>{try{return await this.trpc.org.addMember.mutate({orgName:e,email:t,role:n})}catch(i){throw c(i)}},removeMember:async(e,t)=>{try{await this.trpc.org.removeMember.mutate({orgName:e,email:t});}catch(n){throw c(n)}},leave:async e=>{try{await this.trpc.org.leave.mutate({orgName:e});}catch(t){throw c(t)}},changeMemberRole:async(e,t,n)=>{try{return await this.trpc.org.changeMemberRole.mutate({orgName:e,email:t,role:n})}catch(i){throw c(i)}},setMemberScopes:async(e,t,n)=>{try{await this.trpc.org.setMemberScopes.mutate({orgName:e,email:t,scopes:n});}catch(i){throw c(i)}},clearMemberScopes:async(e,t)=>{try{await this.trpc.org.clearMemberScopes.mutate({orgName:e,email:t});}catch(n){throw c(n)}},listMembers:async(e,t)=>{try{return await this.trpc.org.listMembers.query({orgName:e,pending:t?.pending})}catch(n){throw c(n)}},archive:async e=>{try{return await this.trpc.org.archive.mutate({orgName:e})}catch(t){throw c(t)}},unarchive:async e=>{try{return await this.trpc.org.unarchive.mutate({orgName:e})}catch(t){throw c(t)}}};repo={checkpoint:wt(()=>this.trpc,c),get:async(e,t)=>{try{return await this.trpc.repo.get.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getStats:async(e,t)=>{try{return await this.trpc.repo.stats.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getStatsBatch:async(e,t)=>{try{return await this.trpc.repo.statsBatch.query({orgName:e,repoNames:t})}catch(n){throw c(n)}},getConfigureStats:async(e,t)=>{try{return await this.trpc.repo.configureStats.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getShapeInstanceCounts:async(e,t)=>{try{return await this.trpc.repo.shapeInstanceCounts.query({orgName:e,repoName:t})}catch(n){throw c(n)}},list:async(e,t)=>{try{return await this.trpc.repo.list.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw c(n)}},listIter:(e,t)=>w(n=>this.repo.list(e,{...t,cursor:n}),n=>n.items,t?.cursor),listAll:async(e,t)=>{let{max:n,...i}=t??{};return await O(o=>this.repo.list(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},search:async(e,t)=>{try{return await this.trpc.repo.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw c(n)}},searchIter:(e,t)=>w(n=>this.repo.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await O(o=>this.repo.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},create:async(e,t,n,i,o)=>{try{return await this.trpc.repo.create.mutate({orgName:e,repoName:t,description:n,visibility:i,displayName:o})}catch(s){throw c(s)}},setDescription:async(e,t,n)=>{try{return await this.trpc.repo.setDescription.mutate({orgName:e,repoName:t,description:n})}catch(i){throw c(i)}},setDisplayName:async(e,t,n)=>{try{return await this.trpc.repo.setDisplayName.mutate({orgName:e,repoName:t,displayName:n})}catch(i){throw c(i)}},setVisibility:async(e,t,n)=>{try{return await this.trpc.repo.setVisibility.mutate({orgName:e,repoName:t,visibility:n})}catch(i){throw c(i)}},rename:async(e,t,n)=>{try{return await this.trpc.repo.rename.mutate({orgName:e,repoName:t,newName:n})}catch(i){throw c(i)}},update:async e=>{try{return await this.trpc.repo.update.mutate(e)}catch(t){throw c(t)}},archive:async(e,t)=>{try{return await this.trpc.repo.archive.mutate({orgName:e,repoName:t})}catch(n){throw c(n)}},unarchive:async(e,t)=>{try{return await this.trpc.repo.unarchive.mutate({orgName:e,repoName:t})}catch(n){throw c(n)}},delete:async(e,t)=>{try{let n=await this.trpc.repo.delete.mutate({orgName:e,repoName:t});return {graceExpiresAt:new Date(n.graceExpiresAt)}}catch(n){throw c(n)}},listPage:async(e,t)=>{try{return await this.trpc.repo.listPage.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw c(n)}},listPageIter:(e,t)=>w(n=>this.repo.listPage(e,{...t,cursor:n}),n=>n.items,t?.cursor),listPageAll:async(e,t)=>{let{max:n,...i}=t??{};return await O(o=>this.repo.listPage(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},listForCaller:async e=>{try{return await this.trpc.repo.listForCaller.query({limit:e?.limit,sort:e?.sort})}catch(t){throw c(t)}},explore:async e=>{try{return await this.trpc.repo.explore.query({search:e?.search,org:e?.org,activity:e?.activity,hasSubscriptions:e?.hasSubscriptions,minThings:e?.minThings,sort:e?.sort,limit:e?.limit,cursor:e?.cursor,slugs:e?.slugs})}catch(t){throw c(t)}},exploreIter:e=>(or(e),w(t=>this.repo.explore({...e,cursor:t}),t=>t.items,e?.cursor)),exploreAll:async e=>{or(e);let{max:t,...n}=e??{};return await O(i=>this.repo.explore({...n,cursor:i}),i=>i.items,t,n.cursor)},getReadme:async(e,t)=>{try{return await this.trpc.repo.getReadme.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getAgents:async(e,t)=>{try{return await this.trpc.repo.getAgents.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getLicense:async(e,t)=>{try{return await this.trpc.repo.getLicense.query({orgName:e,repoName:t})}catch(n){throw c(n)}},describe:async(e,t)=>{try{return await this.trpc.repo.describe.query({orgName:e,repoName:t})}catch(n){throw c(n)}},setReadme:async(e,t,n,i)=>{try{return cr("Content/Readme.content",n),await this.trpc.repo.setReadme.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw c(o)}},setAgents:async(e,t,n,i)=>{try{return cr("Content/Agents.content",n),await this.trpc.repo.setAgents.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw c(o)}},getLlmsTxt:async(e,t)=>{try{return await this.trpc.repo.getLlmsTxt.query({orgName:e,repoName:t})}catch(n){throw c(n)}},index:{describe:async(e,t)=>{try{return await this.trpc.repo.index.describe.query({orgName:e,repoName:t})}catch(n){throw c(n)}}}};shape={list:async(e,t,n)=>{try{return await this.trpc.shape.list.query({orgName:e,repoName:t,match:n?.match,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,includeRetracted:n?.includeRetracted})}catch(i){throw c(i)}},get:async(e,t,n,i)=>{try{return await this.trpc.shape.get.query({orgName:e,repoName:t,shapeName:n,includeRetracted:i?.includeRetracted})}catch(o){throw c(o)}},create:async(e,t,n,i,o)=>{let s=K(n,{fields:i,...o.description!==void 0?{description:o.description}:{}},"add");if(s)throw new f("VALIDATION_ERROR",s);try{return await this.trpc.shape.create.mutate({orgName:e,repoName:t,shapeName:n,fields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(u){throw c(u)}},revise:async(e,t,n,i,o)=>{let s=K(n,{fields:i,...o.description!==void 0?{description:o.description}:{}},"revise");if(s)throw new f("VALIDATION_ERROR",s);try{return await this.trpc.shape.revise.mutate({orgName:e,repoName:t,shapeName:n,newFields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(u){throw c(u)}},remove:async(e,t,n,i)=>{try{return await this.trpc.shape.remove.mutate({orgName:e,repoName:t,shapeName:n,eventRequestId:i.eventRequestId})}catch(o){throw c(o)}},rename:async(e,t,n,i,o)=>{try{return await this.trpc.shape.rename.mutate({orgName:e,repoName:t,oldName:n,newName:i,eventRequestId:o.eventRequestId})}catch(s){throw c(s)}},history:async(e,t,n,i={})=>{try{return await this.trpc.shape.history.query({orgName:e,repoName:t,name:n,includeRetracted:i.includeRetracted,limit:i.limit,cursor:i.cursor})}catch(o){throw c(o)}},historyIter:(e,t,n,i={})=>w(o=>this.shape.history(e,t,n,{...i,cursor:o}),o=>o.versions,i.cursor),historyAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await O(u=>this.shape.history(e,t,n,{...s,cursor:u}),u=>u.versions,o,s.cursor)}};subscription={create:async e=>{try{let t=await this.trpc.subscription.create.mutate(Gn(e));return be(t)}catch(t){throw c(t)}},get:async(...e)=>{try{let t=await this.trpc.subscription.get.query(J(e));return be(t)}catch(t){throw c(t)}},reveal:async(...e)=>{try{return await this.trpc.subscription.reveal.query(J(e))}catch(t){throw c(t)}},list:async(...e)=>{try{let t=await this.trpc.subscription.list.query(Fn(e));return Hn(t)}catch(t){throw c(t)}},update:async e=>{try{let t=await this.trpc.subscription.update.mutate(Kn(e));return be(t)}catch(t){throw c(t)}},pause:async(...e)=>{try{return await this.trpc.subscription.pause.mutate(J(e))}catch(t){throw c(t)}},resume:async(...e)=>{try{return await this.trpc.subscription.resume.mutate(J(e))}catch(t){throw c(t)}},remove:async(...e)=>{try{return await this.trpc.subscription.remove.mutate(J(e))}catch(t){throw c(t)}},bindCredentials:async(...e)=>{try{return await this.trpc.subscription.bindCredentials.mutate(Wn(e))}catch(t){throw c(t)}},unbindCredentials:async(...e)=>{try{return await this.trpc.subscription.unbindCredentials.mutate($n(e))}catch(t){throw c(t)}}};action={acquireLease:async(e,t,n,i,o,s)=>{try{return await this.trpc.action.acquireLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,holderType:o,graceMs:s?.graceMs,ttlMs:s?.ttlMs})}catch(u){throw c(u)}},heartbeatLease:async(e,t,n,i,o)=>{try{return await this.trpc.action.heartbeatLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,ttlMs:o})}catch(s){throw c(s)}},releaseLease:async(e,t,n,i)=>{try{return await this.trpc.action.releaseLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i})}catch(o){throw c(o)}},claimDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.claimDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw c(s)}},completeDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.completeDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw c(s)}},liveFeed:async(e,t,n,i)=>{try{return await this.trpc.action.liveFeed.query({orgName:e,repoName:t,subscriptionName:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},liveFeedIter:(e,t,n,i)=>w(o=>this.action.liveFeed(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),liveFeedAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await O(u=>this.action.liveFeed(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)},listRuns:async(e,t,n)=>{try{return await this.trpc.action.listRuns.query({orgName:e,repoName:t,runId:n?.runId,subscriptionName:n?.subscriptionName,status:n?.status,outcome:n?.outcome,since:n?.since,cursor:n?.cursor,limit:n?.limit})}catch(i){throw c(i)}},listRunsIter:(e,t,n)=>w(i=>this.action.listRuns(e,t,{...n,since:i===void 0?n?.since:void 0,cursor:i}),i=>i.items,n?.cursor),listRunsAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await O(s=>this.action.listRuns(e,t,{...o,since:s===void 0?o.since:void 0,cursor:s}),s=>s.items,i,o.cursor)},latestRuns:async(e,t)=>{try{return await this.trpc.action.latestRuns.query({orgName:e,repoName:t})}catch(n){throw c(n)}},runStats:async(e,t,n)=>{try{return await this.trpc.action.runStats.query({orgName:e,repoName:t,subscriptionName:n?.subscriptionName,since:n?.since})}catch(i){throw c(i)}},getRunAttempts:async(e,t,n)=>{try{return await this.trpc.action.getRunAttempts.query({orgName:e,repoName:t,runId:n})}catch(i){throw c(i)}},listNotifications:async(e,t,n)=>{try{return await this.trpc.action.listNotifications.query({orgName:e,repoName:t,since:n?.since,limit:n?.limit})}catch(i){throw c(i)}}};collection={create:async(e,t,n)=>{try{return jn(n.type,n),await this.trpc.collection.create.mutate({orgName:e,repoName:t,eventRequestId:n.eventRequestId,type:n.type,name:n.name,members:n.members,from:n.from,add:n.add,remove:n.remove,replaceMembers:n.replaceMembers,query:n.query,sourceOrgName:n.sourceRepo?.orgName,sourceRepoName:n.sourceRepo?.repoName,skipExisting:n.skipExisting,message:n.message,committer:n.committer})}catch(i){throw c(i)}},members:async(e,t,n,i)=>{try{return await this.trpc.collection.members.query({orgName:e,repoName:t,wref:n,version:i?.version,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},membersIter:(e,t,n,i)=>{let o=i?.version;return w(async s=>{let u=await this.collection.members(e,t,n,{...i,version:o,cursor:s});return o??=u.version,u},s=>s.items,i?.cursor)},membersAll:async(e,t,n,i)=>{let{max:o,...s}=i??{},u=s.version;return await O(async p=>{let l=await this.collection.members(e,t,n,{...s,version:u,cursor:p});return u??=l.version,l},p=>p.items,o,s.cursor)},contains:async(e,t,n,i,o)=>{try{return await this.trpc.collection.contains.query({orgName:e,repoName:t,wref:n,version:o?.version,members:i,position:o?.position})}catch(s){throw c(s)}},diff:async(e,t,n,i,o)=>{try{return await this.trpc.collection.diff.query({orgName:e,repoName:t,leftWref:n,rightWref:i,leftVersion:o?.leftVersion,rightVersion:o?.rightVersion,mode:o?.mode})}catch(s){throw c(s)}},revise:async(e,t,n,i)=>{try{let o=zn(n);if(Ce(i.query)&&!Se(i.query))throw new f("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(i.sourceRepo&&!Se(i.query))throw new f("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(i.sourceRepo&&hr(i))throw new f("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(Ce(i.query)&&o&&o!=="set")throw new f("VALIDATION_ERROR","Selector-backed revise requires a Set/<name> target wref");return await this.trpc.collection.revise.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,wref:n,members:i.members,add:i.add,remove:i.remove,query:i.query,sourceOrgName:i.sourceRepo?.orgName,sourceRepoName:i.sourceRepo?.repoName,message:i.message,committer:i.committer})}catch(o){throw c(o)}},stats:async(e,t,n,i)=>{try{return await this.trpc.collection.stats.query({orgName:e,repoName:t,wref:n,version:i?.version})}catch(o){throw c(o)}}};view={evaluate:async(e,t,n,i)=>{try{return await this.trpc.view.evaluate.query({orgName:e,repoName:t,wref:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},evaluateIter:(e,t,n,i)=>w(o=>this.view.evaluate(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),evaluateAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await O(u=>this.view.evaluate(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)}};grant=Ct(()=>this.trpc,c);thing={head:async(e,t,n)=>{try{return await this.trpc.thing.head.query({orgName:e,repoName:t,shape:n?.shape,kind:Re(n?.kind),match:n?.match,dataMode:n?.dataMode,includeRetracted:n?.includeRetracted,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},headIter:(e,t,n)=>w(i=>this.thing.head(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),headAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await O(s=>this.thing.head(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},headChanges:async(e,t,n)=>(ir(n?.sinceRepoSeq),await sr(i=>this.thing.head(e,t,{...n,includeRetracted:true,cursor:i}))),get:async(e,t,n,i,o)=>{try{return await this.trpc.thing.get.query({orgName:e,repoName:t,wref:n,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode})}catch(s){throw c(s)}},getWithLease:async(e,t,n,i)=>{try{return await this.trpc.thing.getWithLease.mutate({orgName:e,repoName:t,wref:n,ttlMs:i?.ttlMs})}catch(o){throw c(o)}},releaseLease:async(e,t,n,i)=>{try{await this.trpc.thing.releaseLease.mutate({orgName:e,repoName:t,wref:n,leaseId:i});}catch(o){throw c(o)}},graph:async(e,t,n,i)=>{try{return await this.trpc.thing.graph.query({orgName:e,repoName:t,wref:n,version:i?.version,depth:i?.depth,limit:i?.limit})}catch(o){throw c(o)}},getMany:async(e,t,n,i,o)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let s=ye(o?.chunkSize,er,tr),u=ye(o?.chunkConcurrency,rr,nr),p=async m=>await this.trpc.thing.getMany.query({orgName:e,repoName:t,wrefs:m,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode});if(n.length<=s)return await p(n);let l=ar(n,s),d=[];for(let m=0;m<l.length;m+=u){let g=l.slice(m,m+u),y=await Promise.all(g.map(p));d.push(...y);}return {requested:n.length,items:d.flatMap(m=>m.items),missing:d.flatMap(m=>m.missing)}}catch(s){throw c(s)}},headVersions:async(e,t,n,i)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let o=ye(i?.chunkSize,er,tr),s=ye(i?.chunkConcurrency,rr,nr),u=async d=>await this.trpc.thing.headVersions.query({orgName:e,repoName:t,wrefs:d});if(n.length<=o)return await u(n);let p=ar(n,o),l=[];for(let d=0;d<p.length;d+=s){let m=p.slice(d,d+s),g=await Promise.all(m.map(u));l.push(...g);}return {requested:n.length,items:l.flatMap(d=>d.items),missing:l.flatMap(d=>d.missing)}}catch(o){throw c(o)}},history:async(e,t,n)=>{try{return await this.trpc.thing.history.query({orgName:e,repoName:t,wref:n.wref,shape:n.shape,about:n.about,includeRetracted:n.includeRetracted,resolveCollections:n.resolveCollections,match:n.match,limit:n.limit,cursor:n.cursor})}catch(i){throw c(i)}},historyIter:(e,t,n)=>w(i=>this.thing.history(e,t,{...n,cursor:i}),i=>i.versions,n.cursor),historyAll:async(e,t,n)=>{let{max:i,...o}=n;return await O(s=>this.thing.history(e,t,{...o,cursor:s}),s=>s.versions,i,o.cursor)},rename:async(e,t,n,i,o,s)=>{try{return await this.trpc.thing.rename.mutate({orgName:e,repoName:t,shapeName:n,oldName:i,newName:o,eventRequestId:s.eventRequestId})}catch(u){throw c(u)}},resolve:async(e,t,n)=>{try{return await this.trpc.thing.resolve.query({orgName:e,repoName:t,wref:n})}catch(i){throw c(i)}},about:async(e,t,n,i)=>{try{return await this.trpc.thing.about.query({orgName:e,repoName:t,wref:n,shape:i?.shape,match:i?.match,includeRetracted:i?.includeRetracted,depth:i?.depth,resolveCollections:i?.resolveCollections,role:i?.role,limit:i?.limit,cursor:i?.cursor,where:i?.where})}catch(o){throw c(o)}},aboutIter:(e,t,n,i)=>w(o=>this.thing.about(e,t,n,{...i,cursor:o}),o=>o.assertions,i?.cursor),aboutAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await O(u=>this.thing.about(e,t,n,{...s,cursor:u}),u=>u.assertions,o,s.cursor)},query:async(e,t,n)=>{try{return await this.trpc.thing.query.query({orgName:e,repoName:t,shape:n?.shape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:Re(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,role:n?.role,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},queryIter:(e,t,n)=>w(i=>this.thing.query(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),queryAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await O(s=>this.thing.query(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},queryChanges:async(e,t,n)=>(ir(n?.sinceRepoSeq),await sr(i=>this.thing.query(e,t,{...n,includeRetracted:true,cursor:i}))),search:async(e,t,n,i)=>{try{return await this.trpc.thing.search.query({orgName:e,repoName:t,query:n,shape:i?.shape,about:i?.about,affirmedAbout:i?.affirmedAbout,kind:Re(i?.kind),match:i?.match,includeRetracted:i?.includeRetracted,resolveCollections:i?.resolveCollections,limit:i?.limit,cursor:i?.cursor,componentRef:i?.componentRef,excludeComponents:i?.excludeComponents,excludeInfraShapes:i?.excludeInfraShapes,mode:i?.mode,nameMatch:i?.nameMatch})}catch(o){throw c(o)}},searchIter:(e,t,n,i)=>w(o=>this.thing.search(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),searchAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await O(u=>this.thing.search(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)},count:async(e,t,n)=>{try{return await this.trpc.thing.count.query({orgName:e,repoName:t,shape:n?.shape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:Re(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},refs:async(e,t,n,i)=>{try{return await this.trpc.thing.refs.query({orgName:e,repoName:t,wref:n,direction:i?.direction,fieldPath:i?.fieldPath,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},refsIter:(e,t,n,i)=>w(o=>this.thing.refs(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),refsAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await O(u=>this.thing.refs(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)}};live={thingHead:async(e,t,n,i)=>this.watchRepoQuery(e,t,n?.signal,()=>this.thing.head(e,t,{shape:n?.shape,kind:n?.kind,match:n?.match,dataMode:n?.dataMode,limit:n?.limit,cursor:n?.cursor,includeRetracted:n?.includeRetracted,where:n?.where}),i),thingHistory:async(e,t,n,i)=>this.watchRepoQuery(e,t,n.signal,()=>this.thing.history(e,t,{wref:n.wref,limit:n.limit,cursor:n.cursor,includeRetracted:n.includeRetracted}),i),subscriptionLog:async(e,t,n,i,o)=>this.watchRepoQuery(e,t,i?.signal,()=>this.action.liveFeed(e,t,n,{limit:i?.limit,cursor:i?.cursor}),o),subscribe:async(e,t,n,i)=>{let o=new AbortController,s=pr(n?.signal,o),u=0,p=(async()=>{let l=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),d=await this.openSse(l.ticket,s,async m=>{if(m.type!=="invalidate")return;let g=m.data;u++,await i({topic:g.topic,affectedShapes:g.affectedShapes,affectedThings:g.affectedThings,affectedTargets:g.affectedTargets,hasNewCommit:g.hasNewCommit});});return await d.ready,s.aborted?{updates:u}:(await d.closed,{updates:u})})();return {close(){o.abort();},closed:p}}};token={create:async e=>{try{return await this.trpc.token.create.mutate(e)}catch(t){throw c(t)}},list:async e=>{try{return await this.trpc.token.list.query(e?.includeInactive?{includeInactive:!0}:void 0)}catch(t){throw c(t)}},get:async e=>{try{return await this.trpc.token.get.query({name:e})}catch(t){throw c(t)}},revoke:async e=>{try{return await this.trpc.token.revoke.mutate({name:e})}catch(t){throw c(t)}}};stream={append:async e=>{try{return await this.trpc.stream.append.mutate(e)}catch(t){throw c(t)}}};credential={createSet:async(e,t,n,i)=>{try{return await this.trpc.credential.createSet.mutate({orgName:e,repoName:t,name:n,scope:i?.scope??"repo",description:i?.description})}catch(o){throw c(o)}},listSets:async(e,t)=>{try{return await this.trpc.credential.listSets.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getSet:async(e,t,n)=>{try{return await this.trpc.credential.getSet.query({orgName:e,repoName:t,name:n})}catch(i){throw c(i)}},setKey:async(e,t,n,i,o)=>{try{return await this.trpc.credential.setKey.mutate({orgName:e,repoName:t,setName:n,keyName:i,value:o})}catch(s){throw c(s)}},setKeys:async(e,t,n,i)=>{try{return await this.trpc.credential.setKeys.mutate({orgName:e,repoName:t,setName:n,secrets:i})}catch(o){throw c(o)}},unsetKey:async(e,t,n,i)=>{try{return await this.trpc.credential.unsetKey.mutate({orgName:e,repoName:t,setName:n,keyName:i})}catch(o){throw c(o)}},deleteSet:async(e,t,n)=>{try{return await this.trpc.credential.deleteSet.mutate({orgName:e,repoName:t,setName:n})}catch(i){throw c(i)}},listAuditLog:async(e,t,n,i)=>{try{return await this.trpc.credential.listAuditLog.query({orgName:e,repoName:t,setName:n,limit:i?.limit})}catch(o){throw c(o)}},revokeSet:async(e,t,n,i)=>{try{return await this.trpc.credential.revokeSet.mutate({orgName:e,repoName:t,setName:n,reason:i?.reason})}catch(o){throw c(o)}}};credentials=this.credential;constructor(e,t){let n=typeof e=="string"?t:e;Bn(n);let i=typeof e=="string"?e:e?.apiUrl??Je;if(this.apiUrl=i,this.fetchImpl=n?.fetch,this.accessToken=n?.accessToken??n?.auth?.getToken,this.functionLogMode=n?.functionLogs??"off",this.clientIdentity={name:n?.client?.name??f$1,version:n?.client?.version??$e},this.clientFlags=Un(n?.clientFlags),this.decorateResponses=n?.decorateResponses??false,typeof this.accessToken=="function"){let u=this.accessToken;this.getToken=async()=>await u();}else if(this.accessToken){let u=this.accessToken;this.getToken=async()=>u;}let o=`${i.replace(/\/$/,"")}/trpc`,s=((u,p)=>this.fetchWithAuth(u,p));Object.defineProperty(this,"trpc",{value:createTRPCProxyClient({links:[this.createCompatibilityLink(),bt({enabled:this.decorateResponses,getClient:()=>this}),splitLink({condition:u=>Vn.has(u.path),true:httpLink({url:o,fetch:s,methodOverride:"POST"}),false:httpBatchLink({url:o,fetch:s,methodOverride:"POST"})})]}),enumerable:false,writable:false,configurable:true});}withAccessToken(e){return new r({apiUrl:this.apiUrl,fetch:this.fetchImpl,accessToken:e,client:this.clientIdentity,clientFlags:this.clientFlags,decorateResponses:this.decorateResponses})}actions=this.action;async openSse(e,t,n){let i=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/sse?ticket=${encodeURIComponent(e)}`,{headers:{accept:"text/event-stream"},signal:t});if(!i.ok)throw new f("BACKEND",`SSE request failed with status ${i.status}`,i.status);let o=i.body?.getReader();if(!o)throw new f("BACKEND","SSE response body is missing");let s=()=>{},u=new Promise(l=>{s=l;}),p=(async()=>{let l=new TextDecoder,d="";try{for(;;){let{done:m,value:g}=await o.read();if(m)break;for(d+=l.decode(g,{stream:!0}).replaceAll(`\r
|
|
4
|
-
`,`
|
|
5
|
-
`);;){let y=d.indexOf(`
|
|
6
|
-
|
|
7
|
-
`);if(y===-1)break;let S=d.slice(0,y);d=d.slice(y+2);let h=ni(S);if(h){if(h.type==="ready"){s();continue}await n(h);}}}}catch(m){if(ii(m)||t.aborted)return;throw m}finally{s(),o.releaseLock();}})();return {ready:u,closed:p}}applyClientHeader(e$1){e$1.has(e)||e$1.set(e,i(this.clientIdentity.name,this.clientIdentity.version)),this.clientFlags.length>0&&!e$1.has(a)&&e$1.set(a,d(this.clientFlags));}async fetchWithAuth(e,t){let n=this.fetchImpl??globalThis.fetch,i=new Headers(t?.headers),o=await Xe(this.accessToken);o&&i.set("authorization",`Bearer ${o}`),this.applyClientHeader(i);let s=async p=>{try{return await n(e,p)}catch(l){throw ei(l)?new f("NETWORK",ti(this.apiUrl)):l}},u=await s({...t,headers:i});if(u.status===401&&typeof this.accessToken=="function"){let p=await Xe(this.accessToken);if(p&&p!==o){let l=new Headers(t?.headers);return l.set("authorization",`Bearer ${p}`),this.applyClientHeader(l),s({...t,headers:l})}}return u}async requestResponse(e,t){let n=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}${e}`,t);if(!n.ok)throw await this.httpResponseError(n);return n}async prepareStreamingSubmissionRequest(e){let t=this.fetchImpl??globalThis.fetch,n=new Headers({accept:"application/x-ndjson","content-type":"application/x-ndjson"}),i=await Xe(this.accessToken);i&&n.set("authorization",`Bearer ${i}`),this.applyClientHeader(n);let o=`${this.apiUrl.replace(/\/$/,"")}${e}`;return {dispatch:async(s,u)=>await t(o,{method:"POST",headers:n,body:s,signal:u,duplex:"half"}),httpError:async s=>await this.httpResponseError(s)}}async httpResponseError(e){let t=`Request failed with status ${e.status}`,n=yr(e.status),i,o,s;try{let u=await e.json();typeof u.error?.message=="string"&&(t=u.error.message),typeof u.error?.code=="string"&&(n=u.error.code,i=u.error.code),typeof u.error?.hint=="string"&&(o=u.error.hint),typeof u.error?.retryAfter=="number"&&(s=u.error.retryAfter);}catch{}return new f(n,t,e.status,o,s,i)}async requestJson(e,t){return await(await this.requestResponse(e,t)).json()}async watchRepoQuery(e,t,n,i,o){let s=new AbortController,u=pr(n,s),p=0,l=(async()=>{let d=async()=>{let y=await i();p+=1,await o(y);},m=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),g=await this.openSse(m.ticket,u,async y=>{y.type==="invalidate"&&await d();});return await g.ready,u.aborted?{updates:p}:(await d(),await g.closed,{updates:p})})();return {close(){s.abort();},closed:l}}};function yr(r){switch(r){case 400:return "VALIDATION_ERROR";case 401:return "UNAUTHENTICATED";case 403:return "FORBIDDEN";case 404:return "NOT_FOUND";case 409:return "CONFLICT";case 429:return "RATE_LIMITED";default:return "BACKEND"}}async function Xe(r){if(r)return typeof r=="string"?r:r()}function pr(r,e){return r?r.aborted?(e.abort(),e.signal):(r.addEventListener("abort",()=>e.abort(),{once:true}),e.signal):e.signal}function ni(r){let e="message",t=[];for(let i of r.split(`
|
|
8
|
-
`))if(!(!i||i.startsWith(":"))){if(i.startsWith("event:")){e=i.slice(6).trim();continue}i.startsWith("data:")&&t.push(i.slice(5).trim());}if(t.length===0)return null;let n=t.join(`
|
|
9
|
-
`);return {type:e,data:JSON.parse(n)}}function ii(r){return r instanceof Error&&r.name==="AbortError"}export{Fo as A,Qe as B,f as C,c as D,Xn as E,Wo as F,ei as G,ti as H,$o as I,ur as J,Or as a,Ir as b,Ar as c,dt as d,kr as e,oe as f,qr as g,D as h,M as i,Gr as j,Pe as k,ae as l,ce as m,k as n,E as o,Le as p,kt as q,z as r,q as s,T as t,$e as u,A as v,An as w,fe as x,Ho as y,Je as z};//# sourceMappingURL=chunk-2UVRVJFH.js.map
|
|
10
|
-
//# sourceMappingURL=chunk-2UVRVJFH.js.map
|