tabulark 0.0.4 → 0.2.1

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.
Files changed (68) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +316 -128
  3. package/THIRD_PARTY_NOTICES.md +37 -0
  4. package/dist/adapters.d.ts +62 -0
  5. package/dist/arrow.d.ts +3 -0
  6. package/dist/arrow.js +2 -0
  7. package/dist/arrow.js.map +7 -0
  8. package/dist/client.d.ts +145 -0
  9. package/dist/errors.d.ts +25 -0
  10. package/dist/excel.d.ts +3 -0
  11. package/dist/excel.js +2 -0
  12. package/dist/excel.js.map +7 -0
  13. package/dist/experimental.d.ts +13 -0
  14. package/dist/experimental.js +2 -0
  15. package/dist/experimental.js.map +7 -0
  16. package/dist/http.d.ts +65 -0
  17. package/dist/http.js +2 -0
  18. package/dist/http.js.map +7 -0
  19. package/dist/index.d.ts +11 -0
  20. package/dist/index.js +3 -0
  21. package/dist/index.js.map +7 -0
  22. package/dist/model.d.ts +392 -0
  23. package/dist/official-adapter-manifest.d.ts +31 -0
  24. package/dist/parquet.d.ts +3 -0
  25. package/dist/parquet.js +2 -0
  26. package/dist/parquet.js.map +7 -0
  27. package/dist/protocol.d.ts +54 -0
  28. package/dist/range-cache.d.ts +47 -0
  29. package/dist/range-source.d.ts +64 -0
  30. package/dist/rpc-client.d.ts +31 -0
  31. package/dist/source.d.ts +13 -0
  32. package/dist/view/accessible-grid.d.ts +36 -0
  33. package/dist/view/canvas-painter.d.ts +91 -0
  34. package/dist/view/canvas-table-view-public.d.ts +64 -0
  35. package/dist/view/canvas-table-view.d.ts +40 -0
  36. package/dist/view/controller.d.ts +34 -0
  37. package/dist/view/layout.d.ts +34 -0
  38. package/dist/view/selection.d.ts +7 -0
  39. package/dist/view/types.d.ts +184 -0
  40. package/dist/wasm/arrow/tabulark_arrow.d.ts +153 -0
  41. package/dist/wasm/arrow/tabulark_arrow.js +883 -0
  42. package/dist/wasm/arrow/tabulark_arrow_bg.wasm +0 -0
  43. package/dist/wasm/arrow/tabulark_arrow_bg.wasm.d.ts +30 -0
  44. package/dist/wasm/delimited/tabulark_delimited.d.ts +157 -0
  45. package/dist/wasm/delimited/tabulark_delimited.js +952 -0
  46. package/dist/wasm/delimited/tabulark_delimited_bg.wasm +0 -0
  47. package/dist/wasm/delimited/tabulark_delimited_bg.wasm.d.ts +31 -0
  48. package/dist/wasm/excel/tabulark_excel.d.ts +146 -0
  49. package/dist/wasm/excel/tabulark_excel.js +876 -0
  50. package/dist/wasm/excel/tabulark_excel_bg.wasm +0 -0
  51. package/dist/wasm/excel/tabulark_excel_bg.wasm.d.ts +30 -0
  52. package/dist/wasm/parquet/tabulark_parquet.d.ts +146 -0
  53. package/dist/wasm/parquet/tabulark_parquet.js +872 -0
  54. package/dist/wasm/parquet/tabulark_parquet_bg.wasm +0 -0
  55. package/dist/wasm/parquet/tabulark_parquet_bg.wasm.d.ts +30 -0
  56. package/dist/worker/blob-source-accessor.d.ts +10 -0
  57. package/dist/worker/source-accessor.d.ts +76 -0
  58. package/dist/worker/wasm-adapter.d.ts +58 -0
  59. package/dist/worker/worker-errors.d.ts +9 -0
  60. package/dist/worker-range-source.d.ts +1 -0
  61. package/dist/worker-range-source.js +2 -0
  62. package/dist/worker-range-source.js.map +7 -0
  63. package/dist/worker.d.ts +1 -0
  64. package/dist/worker.js +2 -0
  65. package/dist/worker.js.map +7 -0
  66. package/package.json +62 -12
  67. package/js/index.d.ts +0 -18
  68. package/js/index.js +0 -26
package/dist/worker.js ADDED
@@ -0,0 +1,2 @@
1
+ function m(e){return typeof e=="object"&&e!==null}var j=class e extends Error{code;retryable;details;constructor(n,t,r={}){super(t,{cause:r.cause}),this.name="TabularkError",this.code=n,this.retryable=r.retryable??!1,this.details=n==="RESOURCE_LIMIT"?Se(r.details):r.details}static fromSerialized(n){return new e(n.code,n.message,{retryable:n.retryable,details:n.details})}};function Se(e){let n=ot(e)?e:{},t=typeof n.resource=="string"&&n.resource.length>0?n.resource:typeof n.resourceCategory=="string"&&n.resourceCategory.length>0?n.resourceCategory:at(n);if(de(n.requiredBytes)&&de(n.availableBytes))return Object.freeze({...n,resource:t});if(de(n.required)&&de(n.available))return Object.freeze({...n,resource:t});let r=Ee(n,["maxDecodedBytes","maxOutputBytes","maxMetadataBytes","maxBlockBytes","maxDisplayCellBytes","maxDisplayBytes","maxSourceBytes","maxFieldBytes","maxBatchBytes","maxOperationBytes","maxZipEntryBytes","maxZipUncompressedBytes","maxCfbStreamBytes"]);if(r!==void 0){let i=Ee(n,["decodedBytes","outputBytes","metadataBytes","blockBytes","displayCellBytes","displayBytes","sourceBytes","fieldBytes","batchBytes","operationBytes"])??r+1;return Object.freeze({...n,resource:t,requiredBytes:i,availableBytes:r})}let a=Ee(n,["limit","maxCells","maxRangeCells","maxSources","maxActiveRanges","maxRangeWaiters","maxColumns","maxFields","maxNestingDepth","maxWorksheetRows","maxWorksheetColumns","maxStyles","maxMergedRegions"])??0,o=Ee(n,["cells","cellCount","visibleCellCount","sources","activeRanges","rangeWaiters","columns","fields","nestingDepth","worksheetRows","worksheetColumns","styles","mergedRegions"])??a+1;return Object.freeze({...n,resource:t,required:o,available:a})}function at(e){let n=Object.keys(e).join(" ").toLowerCase();return n.includes("source")?n.includes("byte")?"source-staging":"source-slots":n.includes("metadata")?"metadata":n.includes("decoded")||n.includes("decompress")?"decompression":n.includes("display")?"display-values":n.includes("field")?"field":n.includes("batch")?"batch":n.includes("range")||n.includes("cell")?"range-cells":n.includes("column")?"columns":n.includes("nest")?"descriptor-nesting":n.includes("worksheet")?"worksheet-dimensions":"adapter-resource"}function Ee(e,n){for(let t of n)if(de(e[t]))return e[t]}function de(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0}function ot(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function f(e,n){return new j("INVALID_ARGUMENT",e,{details:n})}var Zr=256*1024*1024,it=128*1024*1024,P=25e4,st=1e4,K=64,lt=64*1024*1024,dt=96*1024*1024,ut=32*1024*1024,Bn=8*1024*1024,Be=new TextDecoder,kn=new WeakMap,ct=2,ae=2,pe=8;function Ln(e){pn(e,"memoryBudgetBytes");let n=Math.floor(e/8),t=Math.floor(e/32),r=Math.max(1,Math.floor(e/2)),a=Math.max(1,Math.floor(e/8)),o=Math.max(1,Math.floor(e*3/4)),i=Math.max(1,n),l=Math.max(1,e-o-i);return Object.freeze({memoryBudgetBytes:e,workerBudgetBytes:o,mainThreadSourceBytes:i,mainThreadRetainedBytes:l,sourceRangeCacheBytes:Math.max(1,Math.floor(o/8)),adapterRuntimePoolBytes:r,operationBudgetBytes:a,indexBudgetBytes:Math.min(lt,n),adapterTileCacheBudgetBytes:Math.min(dt,a),mainThreadRangeCacheBytes:Math.min(ut,n),maxFieldBytes:Math.min(Bn,t),maxBatchBytes:Math.min(Bn,t),maxArrayBufferBytes:Math.min(it,Math.floor(e/2)),maxSources:ct,maxActiveRanges:ae,maxRangeWaiters:pe})}var Pe=class{#e;#n=0;constructor(n){pn(n,"capacityBytes"),this.#e=n}get capacityBytes(){return this.#e}get usedBytes(){return this.#n}get availableBytes(){return this.#e-this.#n}reserve(n,t){if(!Number.isSafeInteger(t)||t<0)throw f("Reservation bytes must be a non-negative safe integer");let r=this.availableBytes;if(t>r)throw new j("RESOURCE_LIMIT",`Insufficient memory reservation capacity for ${n}`,{details:{resource:n,requiredBytes:t,availableBytes:r}});this.#n+=t;let a=!1;return Object.freeze({resource:n,bytes:t,release:()=>{a||(a=!0,this.#n-=t)}})}},Le=class{tableId;revision;schemaVersion;range;columns;complete;#e;#n;constructor(n){if(n.layoutVersion!==1)throw f(`Batch layout ${String(n.layoutVersion)} is incompatible with layout ${1}`);this.tableId=n.tableId,this.revision=n.revision,this.schemaVersion=n.schemaVersion,this.range=Object.freeze({...n.range}),this.#e=Object.freeze(n.buffers.map(vt)),this.#n=Object.freeze(n.columns.map(t=>Rt(t))),this.complete=n.complete,mt(this.range,this.#e,this.#n),this.columns=Object.freeze(this.#n.map((t,r)=>new un(t,this.#e,this.range.rowCount,this.range.columnStart+r)))}toRows(n={}){let t=Me(n.maxCells);_e(this.range.rowCount,this.columns.length,t);let r=Array.from({length:this.range.rowCount},()=>Array(this.columns.length));for(let a=0;a<this.columns.length;a+=1)for(let o=0;o<this.range.rowCount;o+=1)r[o][a]=this.columns[a].getValue(o);return r}toDisplayRows(n={}){let t=Me(n.maxCells);_e(this.range.rowCount,this.columns.length,t);let r=Array.from({length:this.range.rowCount},()=>Array(this.columns.length));for(let a=0;a<this.columns.length;a+=1)for(let o=0;o<this.range.rowCount;o+=1)r[o][a]=this.columns[a].getDisplayValue(o);return r}},un=class{columnId;columnIndex;rowCount;#e;#n;constructor(n,t,r,a){this.columnId=n.columnId,this.columnIndex=a,this.rowCount=r,this.#e=n,this.#n=t,Object.freeze(this)}getValue(n){return Cn(n,this.rowCount),Y(this.#e.native,n,this.#n,0)}getDisplayValue(n){return Cn(n,this.rowCount),ft(this.#e.display,n,this.#n,this.columnId)}toValues(n={}){let t=Me(n.maxCells);return _e(this.rowCount,1,t),Array.from({length:this.rowCount},(r,a)=>this.getValue(a))}toDisplayValues(n={}){let t=Me(n.maxCells);return _e(this.rowCount,1,t),Array.from({length:this.rowCount},(r,a)=>this.getDisplayValue(a))}};function Cn(e,n){if(!Number.isSafeInteger(e)||e<0||e>=n)throw f(`Batch row offset must be an integer from 0 through ${Math.max(0,n-1)}`)}function ft(e,n,t,r){let a=(e.offset??0)+n;if(!Dn(e.validity,a,t))return null;let o=z(e.offsets,t,"display offsets"),i=z(e.data,t,"display data"),l=ce(o,a,4),d=ce(o,a+1,4);if(d<l||d>i.byteLength)throw f(`Column ${r} has invalid display offsets`);return Be.decode(i.subarray(l,d))}function pt(e){for(let[t,r]of Object.entries(e))De(r,t);if(e.rowCount>Number.MAX_SAFE_INTEGER-e.rowStart||e.columnCount>Number.MAX_SAFE_INTEGER-e.columnStart)throw new j("INVALID_RANGE","Range end must be a safe integer");let n=e.rowCount*e.columnCount;if(e.rowCount>P||e.columnCount>P||!Number.isSafeInteger(n)||n>P){let t=Number.isSafeInteger(n)?Math.max(n,e.rowCount,e.columnCount):Number.MAX_SAFE_INTEGER;throw new j("RESOURCE_LIMIT",`A range may contain at most ${P} cells`,{details:{resource:"range-cells",required:t,available:P,cells:Number.isSafeInteger(n)?n:Number.MAX_SAFE_INTEGER,limit:P}})}return Object.freeze({...e})}function W(e,n=0){if(n>=K)throw f(`Arrow data type nesting may not exceed ${K}`);if(!re(e)||typeof e.type!="string")throw f("Column dataType must be a recursive Arrow data type descriptor");let t={"u-int8":"uint8","u-int16":"uint16","u-int32":"uint32","u-int64":"uint64"}[e.type]??e.type;if(new Set(["unknown","null","boolean","int8","int16","int32","int64","uint8","uint16","uint32","uint64","float16","float32","float64","date32","date64","binary","large-binary","binary-view","utf8","large-utf8","utf8-view"]).has(t))return Object.freeze({type:t});if(t==="timestamp")return Object.freeze({type:t,unit:Pn(e.unit),...typeof e.timezone=="string"?{timezone:e.timezone}:{}});if(t==="time32"||t==="time64"||t==="duration")return Object.freeze({type:t,unit:Pn(e.unit)});if(t==="interval")return Object.freeze({type:t,unit:It(e.unit)});if(t==="fixed-size-binary")return Object.freeze({type:t,byteWidth:dn(e.byteWidth??e.byte_width,"byteWidth")});if(t==="decimal32"||t==="decimal64"||t==="decimal128"||t==="decimal256")return Object.freeze({type:t,precision:dn(e.precision,"precision"),scale:cn(e.scale,"scale")});if(t==="list"||t==="large-list"||t==="list-view"||t==="large-list-view")return Object.freeze({type:t,field:X(e.field,n+1)});if(t==="fixed-size-list")return Object.freeze({type:t,field:X(e.field,n+1),listSize:dn(e.listSize??e.list_size,"listSize")});if(t==="struct"){if(!Array.isArray(e.fields))throw f("Struct fields must be an array");return Object.freeze({type:t,fields:Object.freeze(e.fields.map(a=>X(a,n+1)))})}if(t==="union"){if(!Array.isArray(e.fields)||e.mode!=="sparse"&&e.mode!=="dense")throw f("Union dataType requires a mode and fields");return Object.freeze({type:t,mode:e.mode,fields:Object.freeze(e.fields.map(a=>{if(!re(a))throw f("Union field entries must be objects");return Object.freeze({typeId:cn(a.typeId,"typeId"),field:X(a.field,n+1)})}))})}if(t==="dictionary")return Object.freeze({type:t,indexType:W(e.indexType,n+1),valueType:W(e.valueType,n+1),...e.ordered===!0?{ordered:!0}:{}});if(t==="map")return Object.freeze({type:t,entries:X(e.entries,n+1),keysSorted:e.keysSorted===!0||e.keys_sorted===!0});if(t==="run-end-encoded")return Object.freeze({type:t,runEnds:X(e.runEnds??e.run_ends,n+1),values:X(e.values,n+1)});if(t==="extension"){if(typeof e.name!="string"||e.name.length===0)throw f("Arrow extension name must be a non-empty string");return Object.freeze({type:t,name:e.name,...typeof e.metadata=="string"?{metadata:e.metadata}:{},storageType:W(e.storageType,n+1)})}throw f(`Unknown Arrow data type: ${t}`)}function X(e,n){if(!re(e))throw f("Arrow field must be an object");let t=re(e.metadata)?Object.freeze(Object.fromEntries(Object.entries(e.metadata).map(([r,a])=>[r,String(a)]))):void 0;return Object.freeze({name:typeof e.name=="string"?e.name:"",nullable:e.nullable!==!1,dataType:W(e.dataType,n),...t?{metadata:t}:{}})}function mt(e,n,t){if(pt(e),t.length!==e.columnCount)throw f(`Batch has ${t.length} columns; expected ${e.columnCount}`);for(let[r,a]of t.entries())if(yt(a.display,e.rowCount,n,a.columnId),ke(a.native,n,0,`columns[${r}].native`),a.native.length<e.rowCount)throw f(`Column ${a.columnId} is shorter than the returned range`)}function yt(e,n,t,r){let a=e.offset??0;De(a,"display offset");let o=z(e.offsets,t,"display offsets");if(o.byteLength<(a+n+1)*4)throw f(`Column ${r} has incomplete display offsets`);let i=z(e.data,t,"display data");if(e.validity&&z(e.validity,t,"display validity").byteLength<Math.ceil((a+n)/8))throw f(`Column ${r} has an incomplete display validity bitmap`);let l=0;for(let d=a;d<=a+n;d+=1){let u=ce(o,d,4);if(u<l||u>i.byteLength)throw f(`Column ${r} has invalid display offsets`);l=u}}function ke(e,n,t,r){if(t>=K)throw f(`Native column nesting may not exceed ${K}`);De(e.length,`${r}.length`),De(e.offset??0,`${r}.offset`),W(e.dataType,t);let a=[e.validity,e.values,e.offsets,e.sizes,e.data,e.typeIds,e.unionOffsets,...e.variadicBuffers??[]];for(let o of a)o&&z(o,n,r);for(let[o,i]of(e.children??[]).entries())ke(i,n,t+1,`${r}.children[${o}]`);e.dictionary&&ke(e.dictionary,n,t+1,`${r}.dictionary`),e.runEnds&&ke(e.runEnds,n,t+1,`${r}.runEnds`)}function Y(e,n,t,r){if(r>=K)throw f(`Native value nesting may not exceed ${K}`);if(n<0||n>=e.length)throw f("Native value index is outside its descriptor");let a=(e.offset??0)+n;if(!Dn(e.validity,a,t))return null;let o=fn(e.dataType);switch(o.type){case"null":return null;case"unknown":{let i=ln(e,t,a,4);return Be.decode(i)}case"boolean":{let i=N(e.values,t,"boolean values"),l=(e.values?.bitOffset??0)+a;return(i[l>>>3]&1<<(l&7))!==0}case"int8":return E(e,t,a,1,"signed");case"uint8":return E(e,t,a,1,"unsigned");case"int16":return E(e,t,a,2,"signed");case"uint16":return E(e,t,a,2,"unsigned");case"int32":return E(e,t,a,4,"signed");case"uint32":return E(e,t,a,4,"unsigned");case"int64":return $(e,t,a,!0);case"uint64":return $(e,t,a,!1);case"float16":return Tt(E(e,t,a,2,"unsigned"));case"float32":return xn(e,t,a,4);case"float64":return xn(e,t,a,8);case"utf8":case"large-utf8":{let i=ln(e,t,a,o.type==="large-utf8"?8:4);return Be.decode(i)}case"binary":case"large-binary":return ln(e,t,a,o.type==="large-binary"?8:4).slice();case"utf8-view":return Be.decode(Nn(e,t,a));case"binary-view":return Nn(e,t,a).slice();case"fixed-size-binary":{let i=N(e.data??e.values,t,"fixed-size binary data"),l=a*o.byteWidth;return fe(i,l,l+o.byteWidth,"fixed-size binary data").slice()}case"decimal32":case"decimal64":case"decimal128":case"decimal256":{let i={decimal32:4,decimal64:8,decimal128:16,decimal256:32}[o.type];return Object.freeze({kind:"decimal",unscaled:wt(N(e.values,t,"decimal values"),a*i,i),precision:o.precision,scale:o.scale})}case"date32":return Object.freeze({kind:"date32",value:E(e,t,a,4,"signed")});case"date64":return Object.freeze({kind:"date64",value:$(e,t,a,!0),unit:"millisecond"});case"time32":return Object.freeze({kind:"time32",value:E(e,t,a,4,"signed"),unit:o.unit});case"time64":return Object.freeze({kind:"time64",value:$(e,t,a,!0),unit:o.unit});case"timestamp":return Object.freeze({kind:"timestamp",value:$(e,t,a,!0),unit:o.unit,...o.timezone===void 0?{}:{timezone:o.timezone}});case"duration":return Object.freeze({kind:"duration",value:$(e,t,a,!0),unit:o.unit});case"interval":return gt(e,t,a,o.unit);case"list":case"large-list":case"list-view":case"large-list-view":case"map":return bt(e,t,a,o,r);case"fixed-size-list":{let i=Ne(e,0,"fixed-size list"),l=a*o.listSize;return Object.freeze(Array.from({length:o.listSize},(d,u)=>Y(i,l+u-(i.offset??0),t,r+1)))}case"struct":{let i={};for(let l=0;l<o.fields.length;l+=1){let d=Ne(e,l,"struct");i[o.fields[l].name]=Y(d,a-(d.offset??0),t,r+1)}return Object.freeze(i)}case"union":{let i=N(e.typeIds,t,"union type ids");if(a>=i.byteLength)throw f("Union type id is out of bounds");let l=J(i).getInt8(a),d=o.fields.findIndex(y=>y.typeId===l);if(d<0)throw f(`Union type id ${l} has no child`);let u=Ne(e,d,"union"),c=o.mode==="dense"?Ce(N(e.unionOffsets??e.offsets,t,"union offsets"),a,4):a;return Object.freeze({kind:"union",typeId:l,value:Y(u,c-(u.offset??0),t,r+1)})}case"dictionary":{let i=e.children?.[0]??e,l=e.dictionary??e.children?.[1];if(!l||!i)throw f("Dictionary descriptor has no dictionary values");let d=Mn(i,t,a,o.indexType);if(d<0||d>=l.length)throw f("Dictionary index is out of bounds");return Y(l,d,t,r+1)}case"run-end-encoded":{let i=e.runEnds??e.children?.[0],l=e.children?.[e.runEnds?0:1];if(!i||!l)throw f("Run-end encoded descriptor is incomplete");let d=a+1,u=0;for(;u<i.length&&ht(i,t,u)<d;)u+=1;if(u>=l.length)throw f("Run-end encoded value is out of bounds");return Y(l,u,t,r+1)}case"extension":throw f("Nested extension data type could not be unwrapped")}}function bt(e,n,t,r,a){let o=r.type==="large-list"||r.type==="large-list-view"?8:4,i=N(e.offsets,n,"list offsets"),l=Ce(i,t,o),d=r.type==="list-view"||r.type==="large-list-view"?l+Ce(N(e.sizes,n,"list sizes"),t,o):Ce(i,t+1,o);if(l<0||d<l)throw f("List offsets are invalid");let u=Ne(e,0,r.type),c=Object.freeze(Array.from({length:d-l},(y,p)=>Y(u,l+p-(u.offset??0),n,a+1)));return r.type!=="map"?c:Object.freeze(c.map(y=>{if(!re(y))throw f("Map entries must decode from a struct");let p=y,R=r.entries.dataType,h=R.type==="struct"?R.fields:[],I=h[0]?.name??"key",T=h[1]?.name??"value";return Object.freeze({key:p[I]??null,value:p[T]??null})}))}function gt(e,n,t,r){let a=N(e.values,n,"interval values"),o=J(a);if(r==="year-month")return F(o,t*4,4,"year-month interval"),Object.freeze({kind:"interval",unit:r,months:o.getInt32(t*4,!0)});if(r==="day-time"){let l=t*8;return F(o,l,8,"day-time interval"),Object.freeze({kind:"interval",unit:r,days:o.getInt32(l,!0),milliseconds:o.getInt32(l+4,!0)})}let i=t*16;return F(o,i,16,"month-day-nano interval"),Object.freeze({kind:"interval",unit:r,months:o.getInt32(i,!0),days:o.getInt32(i+4,!0),nanoseconds:o.getBigInt64(i+8,!0)})}function ln(e,n,t,r){let a=N(e.offsets,n,"variable offsets"),o=N(e.data??e.values,n,"variable data"),i=ce(a,t,r),l=ce(a,t+1,r);return fe(o,i,l,"variable data")}function Nn(e,n,t){let r=N(e.values,n,"view values"),a=J(r),o=t*16;F(a,o,16,"view value");let i=a.getInt32(o,!0);if(i<0)throw f("View length must be non-negative");if(i<=12)return fe(r,o+4,o+4+i,"inline view");let l=a.getInt32(o+8,!0),d=a.getInt32(o+12,!0),u=e.variadicBuffers?.[l];if(!u||d<0)throw f("View references an invalid variadic buffer");return fe(z(u,n,"view data"),d,d+i,"view data")}function E(e,n,t,r,a){let o=N(e.values,n,"numeric values"),i=J(o),l=t*r;return F(i,l,r,"numeric value"),r===1?a==="signed"?i.getInt8(l):i.getUint8(l):r===2?a==="signed"?i.getInt16(l,!0):i.getUint16(l,!0):a==="signed"?i.getInt32(l,!0):i.getUint32(l,!0)}function xn(e,n,t,r){let a=N(e.values,n,"floating-point values"),o=J(a),i=t*r;return F(o,i,r,"floating-point value"),r===4?o.getFloat32(i,!0):o.getFloat64(i,!0)}function $(e,n,t,r){let a=N(e.values,n,"64-bit values"),o=J(a),i=t*8;return F(o,i,8,"64-bit value"),r?o.getBigInt64(i,!0):o.getBigUint64(i,!0)}function Mn(e,n,t,r){let a=fn(r).type,o;if(a==="int8")o=E(e,n,t,1,"signed");else if(a==="uint8")o=E(e,n,t,1,"unsigned");else if(a==="int16")o=E(e,n,t,2,"signed");else if(a==="uint16")o=E(e,n,t,2,"unsigned");else if(a==="int32")o=E(e,n,t,4,"signed");else if(a==="uint32")o=E(e,n,t,4,"unsigned");else if(a==="int64")o=$(e,n,t,!0);else if(a==="uint64")o=$(e,n,t,!1);else throw f("Dictionary index type must be an integer");let i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i))throw f("Dictionary index exceeds the JavaScript safe integer range");return i}function ht(e,n,t){let r=fn(e.dataType);return Mn({...e,dataType:{type:"dictionary",indexType:r,valueType:{type:"null"}}},n,t,r)}function wt(e,n,t){let r=fe(e,n,n+t,"signed integer"),a=0n;for(let i=r.byteLength-1;i>=0;i-=1)a=a<<8n|BigInt(r[i]);let o=1n<<BigInt(t*8-1);return(a&o)===0n?a:a-(1n<<BigInt(t*8))}function ce(e,n,t){let r=_n(e,n,t,!1);if(r<0)throw f("Offset must be non-negative");return r}function Ce(e,n,t){return _n(e,n,t,!0)}function J(e){let n=e.buffer,t=kn.get(n);t===void 0&&(t=new Map,kn.set(n,t));let r=t.get(e.byteOffset);r===void 0&&(r=new Map,t.set(e.byteOffset,r));let a=r.get(e.byteLength);return a===void 0&&(a=new DataView(e.buffer,e.byteOffset,e.byteLength),r.set(e.byteLength,a)),a}function _n(e,n,t,r){let a=J(e),o=n*t;F(a,o,t,"offset");let i=t===4?r?a.getInt32(o,!0):a.getUint32(o,!0):r?a.getBigInt64(o,!0):a.getBigUint64(o,!0),l=typeof i=="bigint"?Number(i):i;if(!Number.isSafeInteger(l))throw f("Offset exceeds the JavaScript safe integer range");return l}function Dn(e,n,t){if(!e)return!0;let r=z(e,t,"validity bitmap"),a=(e.bitOffset??0)+n;if(a<0||a>>>3>=r.byteLength)throw f("Validity bitmap index is out of bounds");return(r[a>>>3]&1<<(a&7))!==0}function N(e,n,t){if(!e)throw f(`${t} are missing`);return z(e,n,t)}function z(e,n,t){if(!re(e)||!Number.isSafeInteger(e.buffer)||e.buffer<0)throw f(`${t} references an invalid buffer`);let r=n[e.buffer];if(!r)throw f(`${t} references a missing buffer`);let a=e.byteOffset??0,o=e.byteLength??r.byteLength-a;if(!Number.isSafeInteger(a)||a<0||!Number.isSafeInteger(o)||o<0||a+o>r.byteLength)throw f(`${t} region is outside its buffer`);return r.subarray(a,a+o)}function Ne(e,n,t){let r=e.children?.[n];if(!r)throw f(`${t} descriptor has no child ${n}`);return r}function fe(e,n,t,r){if(!Number.isSafeInteger(n)||!Number.isSafeInteger(t)||n<0||t<n||t>e.byteLength)throw f(`${r} slice is out of bounds`);return e.subarray(n,t)}function F(e,n,t,r){if(n<0||n+t>e.byteLength)throw f(`${r} is out of bounds`)}function fn(e){let n=e;for(let t=0;n.type==="extension";t+=1){if(t>=K)throw f("Extension nesting is too deep");n=n.storageType}return n}function Rt(e){return Object.freeze({columnId:e.columnId,native:xe(e.native),display:Object.freeze({...e.display,data:ue(e.display.data),offsets:ue(e.display.offsets),...e.display.validity?{validity:ue(e.display.validity)}:{}})})}function xe(e){let n=t=>t?ue(t):void 0;return Object.freeze({...e,dataType:At(e.dataType),...n(e.validity)?{validity:n(e.validity)}:{},...n(e.values)?{values:n(e.values)}:{},...n(e.offsets)?{offsets:n(e.offsets)}:{},...n(e.sizes)?{sizes:n(e.sizes)}:{},...n(e.data)?{data:n(e.data)}:{},...n(e.typeIds)?{typeIds:n(e.typeIds)}:{},...n(e.unionOffsets)?{unionOffsets:n(e.unionOffsets)}:{},...e.variadicBuffers?{variadicBuffers:Object.freeze(e.variadicBuffers.map(ue))}:{},...e.children?{children:Object.freeze(e.children.map(xe))}:{},...e.dictionary?{dictionary:xe(e.dictionary)}:{},...e.runEnds?{runEnds:xe(e.runEnds)}:{}})}function ue(e){return Object.freeze({...e})}function At(e){return Ot(e,0)}function Ot(e,n){return W(e,n)}function Pn(e){if(e==="second"||e==="millisecond"||e==="microsecond"||e==="nanosecond")return e;throw f("Arrow time unit is invalid")}function It(e){if(e==="year-month"||e==="day-time"||e==="month-day-nano")return e;throw f("Arrow interval unit is invalid")}function Tt(e){let n=(e&32768)===0?1:-1,t=e>>>10&31,r=e&1023;return t===0?n*2**-14*(r/1024):t===31?r===0?n*(1/0):Number.NaN:n*2**(t-15)*(1+r/1024)}function Me(e){let n=e??st;return pn(n,"maxCells"),n}function _e(e,n,t){let r=e*n;if(!Number.isSafeInteger(r)||r>t)throw new j("RESOURCE_LIMIT",`Decoding ${r} cells exceeds the toRows limit of ${t}`,{details:{resource:"row-materialization-cells",required:r,available:t,cellCount:r,maxCells:t}})}function cn(e,n){if(!Number.isSafeInteger(e))throw f(`${n} must be a safe integer`);return e}function dn(e,n){let t=cn(e,n);if(t<=0)throw f(`${n} must be positive`);return t}function vt(e){return e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function re(e){return typeof e=="object"&&e!==null}function De(e,n){if(!Number.isSafeInteger(e)||e<0)throw f(`${n} must be a non-negative safe integer`,{name:n,value:e})}function pn(e,n){if(!Number.isSafeInteger(e)||e<=0)throw f(`${n} must be a positive safe integer`,{name:n,value:e})}var me=class extends Error{constructor(t){super(`The permit queue already has ${t} waiters`);this.maxWaiters=t;this.name="PermitQueueFullError"}maxWaiters},ze=class{#e;#n;#o=[];#t=0;constructor(n,t){if(!Number.isSafeInteger(n)||n<=0)throw new RangeError("maxActive must be a positive safe integer");if(!Number.isSafeInteger(t)||t<0)throw new RangeError("maxWaiters must be a non-negative safe integer");this.#e=n,this.#n=t}acquire(n){return this.#t<this.#e?(this.#t+=1,Promise.resolve(this.#r())):this.#o.length>=this.#n?Promise.reject(new me(this.#n)):new Promise((t,r)=>{this.#o.push({key:n,resolve:t,reject:r})})}cancel(n,t){let r=this.#o.findIndex(o=>o.key===n);if(r<0)return!1;let[a]=this.#o.splice(r,1);return a.reject(t),this.#a(),!0}#r(){let n=!1;return()=>{n||(n=!0,this.#t-=1,this.#a())}}#a(){for(;this.#t<this.#e&&this.#o.length>0;){let n=this.#o.shift();this.#t+=1,n.resolve(this.#r())}}};var s=class extends Error{code;retryable;details;constructor(n,t,r=!1,a,o){super(t,{cause:o}),this.name="ProtocolFault",this.code=n,this.retryable=r,this.details=n==="RESOURCE_LIMIT"?Se(a):a}};function ye(e,n){return e instanceof s?e:m(e)?new s(typeof e.code=="string"?e.code:"RUNTIME_FAILURE",typeof e.message=="string"?e.message:n,e.retryable===!0,e.details,e):e instanceof Error?new s("RUNTIME_FAILURE",e.message||n,!1,void 0,e):new s("RUNTIME_FAILURE",n,!1,{value:String(e)})}function Ue(e,n){let t=ye(e,n),r=t.code==="RESOURCE_LIMIT"?Se(t.details):t.details;return{code:t.code,message:t.message,retryable:t.retryable,...r===void 0?{}:{details:Et(t.code,r)}}}function Et(e,n){if(e!=="RESOURCE_LIMIT"||!m(n))return n;let t=typeof n.resource=="string"?n.resource:typeof n.resourceCategory=="string"?n.resourceCategory:void 0;if(t===void 0||n.resource===t)return n;let{resourceCategory:r,...a}=n;return{...a,resource:t}}var Ve=class e{#e;#n=new Map;constructor(n){this.#e=n}static async load(n,t,r){let a;try{if(a=await import(n),typeof a.default!="function")throw new TypeError("The WebAssembly module does not export a default initializer");await a.default();let o=a.WasmRuntime;if(typeof o!="function")throw new s("PROTOCOL_INCOMPATIBLE",`The ${t} artifact does not export its official runtime class`);let i=new e(new o(r));try{i.#o(t)}catch(l){try{i.dispose()}catch{}throw l}return i}catch(o){throw o instanceof s?o:new s("RUNTIME_FAILURE","Failed to initialize the Tabulark WebAssembly runtime",!1,{moduleUrl:n},o)}}beginOpen(n,t){return this.#r("beginOpen",()=>this.#e.beginOpen(n,t),r=>this.#a(r,"open"))}beginOpenTable(n,t){return this.#r("beginOpenTable",()=>this.#e.beginOpenTable(n,t),r=>this.#a(r,"open-table"))}beginMetadata(n){return this.#r("beginMetadata",()=>this.#e.beginMetadata(n),t=>this.#a(t,"metadata"))}beginPresentation(n){return this.#r("beginPresentation",()=>this.#e.beginPresentation(n),t=>this.#a(t,"presentation"))}beginPresentationRange(n,t){return this.#r("beginPresentationRange",()=>this.#e.beginPresentationRange(n,t),r=>this.#a(r,"presentation-range"))}continueOperation(n,t,r){let a=this.#n.get(n);if(!a)throw new s("PROTOCOL_INCOMPATIBLE","Adapter operation handle is missing or closed");if(t!==a.revision)throw new s("PROTOCOL_INCOMPATIBLE",`Adapter operation revision ${t} is stale; expected ${a.revision}`);let o=Bt(r,a.actions);return this.#r("continueOperation",()=>this.#e.continueOperation(n,t,o),i=>this.#s(i,n,a.revision))}beginRead(n,t){return this.#r("beginRead",()=>this.#e.beginRead(n,t),r=>this.#a(r,"read"))}cancelOperation(n){this.#n.delete(n),this.#t("cancelOperation",()=>this.#e.cancelOperation(n))}closeTable(n){this.#t("closeTable",()=>this.#e.closeTable(n))}closeSource(n){this.#t("closeSource",()=>this.#e.closeSource(n))}shutdown(){this.#n.clear(),this.#t("shutdown",()=>this.#e.shutdown())}dispose(){try{this.shutdown()}catch{}this.#e.free?.()}#o(n){let t=this.#e,r=["protocolVersion","adapterApiVersion","batchLayoutVersion","adapterId","beginOpen","beginOpenTable","beginMetadata","beginPresentation","beginPresentationRange","continueOperation","beginRead","cancelOperation","closeTable","closeSource","shutdown"];for(let d of r)if(typeof t[d]!="function")throw new s("PROTOCOL_INCOMPATIBLE",`WebAssembly adapter does not export ${d}`);let a=this.#t("protocolVersion",()=>this.#e.protocolVersion()),o=this.#t("adapterApiVersion",()=>this.#e.adapterApiVersion()),i=this.#t("batchLayoutVersion",()=>this.#e.batchLayoutVersion()),l=this.#t("adapterId",()=>this.#e.adapterId());if(a!==4||o!==3||i!==1||l!==n)throw new s("PROTOCOL_INCOMPATIBLE",`Adapter ${l} protocol/ABI/layout ${a}/${o}/${i} is incompatible with ${n} ${4}/${3}/${1}`)}#t(n,t){try{return t()}catch(r){throw ye(r,`WebAssembly ${n} failed`)}}#r(n,t,r){let a;try{a=t()}catch(o){throw ye(o,`WebAssembly ${n} failed`)}return Nt(a)?Promise.resolve(a).then(r,o=>{throw ye(o,`WebAssembly ${n} failed`)}):r(a)}#a(n,t){let r=Un(n);if(r.operationRevision!==1)throw new s("PROTOCOL_INCOMPATIBLE",`Adapter ${t} operation must begin at revision 1`);if(this.#n.has(r.operationHandle))throw new s("PROTOCOL_INCOMPATIBLE","Adapter reused an active operation handle");return this.#i(r),r}#s(n,t,r){let a=Un(n);if(a.operationHandle!==t)throw new s("PROTOCOL_INCOMPATIBLE","Adapter changed its operation handle");if(a.operationRevision!==r+1)throw new s("PROTOCOL_INCOMPATIBLE","Adapter returned a missing, duplicate, or stale operation revision");return this.#i(a),a}#i(n){if(n.kind==="complete"){this.#n.delete(n.operationHandle);return}this.#n.set(n.operationHandle,Object.freeze({revision:n.operationRevision,actions:n.actions}))}},zn=32;function Un(e){if(!m(e))throw new s("PROTOCOL_INCOMPATIBLE","Adapter operation step must be an object");let n=e.kind;if(n!=="pending"&&n!=="progress"&&n!=="complete")throw new s("PROTOCOL_INCOMPATIBLE","Adapter operation step has an invalid kind");let t=kt(e.operationHandle,"operationHandle"),r=Ct(e.operationRevision,"operationRevision");if(!Array.isArray(e.actions)||e.actions.length>zn)throw new s("PROTOCOL_INCOMPATIBLE",`Adapter operation step may request at most ${zn} ranges`);let a=new Set,o=0,i=e.actions.map((d,u)=>{if(!m(d)||d.kind!=="read-bytes")throw new s("PROTOCOL_INCOMPATIBLE",`Adapter action ${u} is invalid`);let c=Q(d.actionIndex,`actions[${u}].actionIndex`);if(c>4294967295||a.has(c))throw new s("PROTOCOL_INCOMPATIBLE","Adapter action indexes must be unique u32 values");a.add(c);let y=Q(d.offset,`actions[${u}].offset`),p=Q(d.length,`actions[${u}].length`);if(o+=p,!Number.isSafeInteger(o))throw new s("PROTOCOL_INCOMPATIBLE","Adapter action bytes overflow safe integers");return Object.freeze({kind:"read-bytes",actionIndex:c,offset:y,length:p})}),l=e.cooperativeYield===!0;if(n==="complete"&&(i.length!==0||l))throw new s("PROTOCOL_INCOMPATIBLE","A complete adapter step requested more work");if(n!=="complete"&&i.length===0&&!l)throw new s("PROTOCOL_INCOMPATIBLE","A pending adapter step without ranges must request a cooperative yield");if(i.length!==0&&l)throw new s("PROTOCOL_INCOMPATIBLE","An adapter step cannot combine ranges with a cooperative yield");return Object.freeze({kind:n,operationHandle:t,operationRevision:r,actions:Object.freeze(i),cooperativeYield:l,...St(e)})}function St(e){if(e.payload!==void 0)return Object.freeze({payload:e.payload});let n=Object.fromEntries(Object.entries(e).filter(([t])=>t!=="kind"&&t!=="operationHandle"&&t!=="operationRevision"&&t!=="actions"&&t!=="cooperativeYield"));return Object.keys(n).length===0?Object.freeze({}):Object.freeze({payload:Object.freeze(n)})}function Bt(e,n){if(!Array.isArray(e)||e.length!==n.length)throw new s("PROTOCOL_INCOMPATIBLE","Adapter action results are missing or unexpected");let t=new Map(n.map(o=>[o.actionIndex,o])),r=new Set,a=e.map((o,i)=>{if(!m(o))throw new s("PROTOCOL_INCOMPATIBLE",`Adapter action result ${i} is invalid`);let l=Q(o.actionIndex,"result actionIndex"),d=t.get(l);if(!d||r.has(l))throw new s("PROTOCOL_INCOMPATIBLE","Adapter action result is duplicate or unexpected");r.add(l);let u=Q(o.offset,"result offset");if(u!==d.offset||!(o.bytes instanceof Uint8Array))throw new s("PROTOCOL_INCOMPATIBLE","Adapter action result does not match its range");if(o.bytes.byteLength!==d.length||typeof o.eof!="boolean")throw new s("PROTOCOL_INCOMPATIBLE","Adapter action result has an invalid length or EOF flag");return Object.freeze({actionIndex:l,offset:u,bytes:o.bytes,eof:o.eof})});return Object.freeze(a)}function kt(e,n){return typeof e=="string"&&e.length>0?e:Q(e,n)}function Ct(e,n){let t=Q(e,n);if(t===0)throw new s("PROTOCOL_INCOMPATIBLE",`${n} must be positive`);return t}function Q(e,n){if(!Number.isSafeInteger(e)||e<0)throw new s("PROTOCOL_INCOMPATIBLE",`${n} must be a non-negative safe integer`);return e}function Nt(e){return m(e)&&typeof e.then=="function"}var Hn={manifestVersion:1,adapters:[{id:"tabulark:delimited",entrypoint:".",exportName:"delimitedAdapter",wasm:{packageName:"tabulark-delimited-wasm",crateArtifact:"tabulark_delimited",outputName:"tabulark_delimited",outputDirectory:"dist/wasm/delimited",modulePath:"./wasm/delimited/tabulark_delimited.js",runtimeExport:"WasmRuntime"},options:{allowedKeys:["dialect","header","mode","delimiter","sourceName"]},resources:{sourceAccess:"streaming",supportsPresentation:!1,runtimeWeight:1}},{id:"tabulark:arrow-ipc",entrypoint:"./arrow",exportName:"arrowIpcAdapter",wasm:{packageName:"tabulark-arrow-wasm",crateArtifact:"tabulark_arrow",outputName:"tabulark_arrow",outputDirectory:"dist/wasm/arrow",modulePath:"./wasm/arrow/tabulark_arrow.js",runtimeExport:"WasmRuntime"},options:{allowedKeys:["container","sourceName"]},resources:{sourceAccess:"range",supportsPresentation:!1,runtimeWeight:1}},{id:"tabulark:parquet",entrypoint:"./parquet",exportName:"parquetAdapter",wasm:{packageName:"tabulark-parquet-wasm",crateArtifact:"tabulark_parquet",outputName:"tabulark_parquet",outputDirectory:"dist/wasm/parquet",modulePath:"./wasm/parquet/tabulark_parquet.js",runtimeExport:"WasmRuntime"},options:{allowedKeys:["sourceName"]},resources:{sourceAccess:"range",supportsPresentation:!1,runtimeWeight:2}},{id:"tabulark:excel",entrypoint:"./excel",exportName:"excelAdapter",wasm:{packageName:"tabulark-excel-wasm",crateArtifact:"tabulark_excel",outputName:"tabulark_excel",outputDirectory:"dist/wasm/excel",modulePath:"./wasm/excel/tabulark_excel.js",runtimeExport:"WasmRuntime"},options:{allowedKeys:["format","sourceName"]},resources:{sourceAccess:"range",supportsPresentation:!0,runtimeWeight:2}}]};var Vn=Lt(Hn),ua=Object.freeze(Vn.map(e=>e.id)),Pt=Object.freeze(Vn.map(e=>Object.freeze({...e,wasm:Object.freeze({...e.wasm}),options:Object.freeze({allowedKeys:Object.freeze([...e.options.allowedKeys])}),resources:Object.freeze({...e.resources})}))),jn=new Map(Pt.map(e=>[e.id,e]));function ge(e){return typeof e=="string"&&jn.has(e)}function je(e){let n=jn.get(e);if(!n)throw new TypeError(`Unknown official adapter: ${e}`);return n}function $n(e){return new URL(je(e).wasm.modulePath,import.meta.url).href}function Lt(e){if(!be(e)||e.manifestVersion!==1||!Array.isArray(e.adapters))throw new TypeError("The official adapter manifest has an unsupported shape or version");if(e.adapters.length===0)throw new TypeError("The official adapter manifest must contain at least one adapter");let n=new Set,t=new Set,r=new Set;return e.adapters.map((a,o)=>{if(!be(a))throw new TypeError(`Official adapter manifest entry ${o} must be an object`);let{id:i,entrypoint:l,exportName:d,wasm:u,options:c,resources:y}=a;if(!Mt(i)||n.has(i))throw new TypeError(`Official adapter manifest entry ${o} has an invalid or duplicate id`);if(l!=="."&&l!=="./arrow"&&l!=="./parquet"&&l!=="./excel"||t.has(l)||typeof d!="string"||d.length===0)throw new TypeError(`Official adapter manifest entry ${o} has an invalid entrypoint or export`);if(!be(u)||typeof u.packageName!="string"||typeof u.crateArtifact!="string"||typeof u.outputName!="string"||typeof u.outputDirectory!="string"||!u.outputDirectory.startsWith("dist/wasm/")||u.outputDirectory.includes("..")||r.has(u.outputDirectory)||typeof u.modulePath!="string"||!u.modulePath.startsWith("./wasm/")||u.modulePath.includes("..")||u.modulePath.includes("?")||u.modulePath.includes("#")||u.runtimeExport!=="WasmRuntime"||u.modulePath!==`./${u.outputDirectory.replace(/^dist\//u,"")}/${u.outputName}.js`)throw new TypeError(`Official adapter manifest entry ${o} has an invalid WASM artifact`);if(!be(c)||!Array.isArray(c.allowedKeys)||c.allowedKeys.some(p=>typeof p!="string")||new Set(c.allowedKeys).size!==c.allowedKeys.length)throw new TypeError(`Official adapter manifest entry ${o} has invalid option keys`);if(!be(y)||y.sourceAccess!=="streaming"&&y.sourceAccess!=="range"&&y.sourceAccess!=="staged"||typeof y.supportsPresentation!="boolean"||!Number.isSafeInteger(y.runtimeWeight)||y.runtimeWeight<=0)throw new TypeError(`Official adapter manifest entry ${o} has an invalid resource policy`);return n.add(i),t.add(l),r.add(u.outputDirectory),a})}function Mt(e){return e==="tabulark:delimited"||e==="tabulark:arrow-ipc"||e==="tabulark:parquet"||e==="tabulark:excel"}function be(e){return typeof e=="object"&&e!==null}var Z=2*1024*1024*1024;function Wn(e){return e==="auto"||e==="large"}var $e=class{kind="blob";size;#e;#n=!1;constructor(n){this.#e=n,this.size=n.size}async read(n,t,r={}){if(this.#n)throw r.onSettled?.(),new s("HANDLE_CLOSED","The source is closed");let a=Ut(n,t,this.size);if(a===void 0)throw r.onSettled?.(),new s("RANGE_UNSUPPORTED","The requested source range is outside the source");let o;try{if(o=this.#e.slice(n,a),!o||o.size!==void 0&&o.size!==t)throw new s("RUNTIME_FAILURE","Blob slice returned an invalid bounded length")}catch(d){throw r.onSettled?.(),d instanceof s?d:new s("SOURCE_UNAVAILABLE","The local source could not be sliced",!0,void 0,d)}let i=_t(o,t).finally(()=>r.onSettled?.()),l=r.cancellation===void 0?await i:await Ht(i,r.cancellation);return r.onProviderRead?.(l.byteLength),l}close(){this.#n=!0}};async function _t(e,n){try{let t=e.arrayBuffer,r=typeof t=="function"?await t.call(e):await Dt(e,n);return zt(r,n)}catch(t){throw t instanceof s?t:new s("SOURCE_UNAVAILABLE","The local source could not be read",!0,void 0,t)}}async function Dt(e,n){if(typeof e.stream!="function")throw new TypeError("Blob slices must provide stream() or arrayBuffer()");let t=new Uint8Array(n),r=e.stream().getReader(),a=0;try{for(;;){let o=await r.read();if(o.done)break;let i=o.value instanceof Uint8Array?o.value:new Uint8Array(o.value);if(i.byteLength>n-a)throw new s("RUNTIME_FAILURE","The source provider returned too many bytes");t.set(i,a),a+=i.byteLength}}finally{r.releaseLock()}if(a!==n)throw new s("RUNTIME_FAILURE","The source provider returned too few bytes");return t.buffer}function zt(e,n){if(e instanceof ArrayBuffer){if(e.byteLength!==n)throw new s("RUNTIME_FAILURE","The source provider returned an invalid byte length");return e}if(ArrayBuffer.isView(e)&&e.byteLength===n){let t=new Uint8Array(n);return t.set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),t.buffer}throw new s("RUNTIME_FAILURE","The source provider returned an invalid byte buffer")}function Ut(e,n,t){if(!(!Number.isSafeInteger(e)||!Number.isSafeInteger(n)||e<0||n<0||!Number.isSafeInteger(t)||t<0||e>t||n>t-e))return e+n}function Ht(e,n){return Promise.race([e,n.then(()=>{throw new s("CANCELLED","The source read was cancelled")})])}var Yn=1024*1024,Vt=4294967295,jt=Vt,$t=8*Yn,Wt=256,mn=ae+pe,Ft=8*1024*1024,se=globalThis,Xe,We,ie=!1,qt=1,Gt=1,he,yn,bn=0,gn=new Set,Fe=0,qe=0,q=new Map,Ge=new Map,Ye=new Map,we=new Map,B=new Map,te=new Map,O=new Map,Ke=new Map,Kn=new ze(ae,pe);se.addEventListener("message",e=>{Xe?.handle(e.data)||Kt(e.data)});function Xt(){if(We!==void 0)return We;let e=import("./worker-range-source.js").catch(n=>{throw We=void 0,new s("RUNTIME_FAILURE","Failed to initialize the range source runtime",!1,void 0,n)});return We=e,e}function Yt(e){return Xe??=new e.WorkerSourceBroker(se),Xe}async function Kt(e){if(!qr(e))return;let n=e;if(n.protocolVersion!==4){Gn(n.requestId,new s("PROTOCOL_INCOMPATIBLE",`Worker protocol ${4} cannot serve protocol ${String(n.protocolVersion)}`));return}let t=n.measure===!0?{bytesRead:0,peakReservationBytes:0,sourceReads:0,sourceCacheHitBytes:0}:void 0;t&&gn.add(t);try{let r=await Jt(n,t);try{Gr(n.requestId,r.kind,r.data,r.transfer,Xn(t))}finally{r.release?.()}n.op==="listTables"&&Er(n.payload),n.op==="shutdown"&&setTimeout(()=>se.close(),0)}catch(r){Gn(n.requestId,r,Xn(t))}finally{t&&gn.delete(t)}}async function Jt(e,n){switch(e.op){case"hello":return{kind:"hello",data:await Qt(e.payload)};case"openSource":return{kind:"dataset",data:await er(e.requestId,e.payload,n)};case"listTables":return{kind:"tables",data:tr(e.payload)};case"openTable":return{kind:"table",data:await rr(e.requestId,e.payload)};case"getMetadata":return{kind:"metadata",data:await ar(e.requestId,e.payload)};case"getPresentation":return{kind:"presentation",data:await or(e.requestId,e.payload)};case"readPresentationRange":return{kind:"presentationRange",data:await ir(e.requestId,e.payload)};case"readRange":return yr(e.requestId,e.payload,n);case"cancel":return br(e.payload),{kind:"acknowledged"};case"closeTable":return gr(e.payload),{kind:"acknowledged"};case"closeSource":return hr(e.payload),{kind:"acknowledged"};case"shutdown":return await wr(),{kind:"acknowledged"};default:throw new s("INVALID_ARGUMENT",`Unknown operation: ${String(e.op)}`)}}async function Qt(e){let n=w(e,"hello payload");if(!Number.isSafeInteger(n.memoryBudgetBytes)||n.memoryBudgetBytes<=0)throw new s("INVALID_ARGUMENT","memoryBudgetBytes must be a positive safe integer");if(!Array.isArray(n.adapters)||n.adapters.length===0)throw new s("INVALID_ARGUMENT","hello adapters must be a non-empty array");let t=new Map;for(let o of n.adapters){if(!m(o)||!ge(o.id)||Object.keys(o).some(i=>i!=="id"))throw new s("INVALID_ARGUMENT","hello contains an invalid official adapter");if(t.has(o.id))throw new s("INVALID_ARGUMENT",`Adapter ${o.id} is registered more than once`);t.set(o.id,Object.freeze({id:o.id,moduleUrl:_r(o.id)}))}if(he){let o=t.size===q.size&&[...t.keys()].every(i=>q.has(i));if(n.memoryBudgetBytes!==he.memoryBudgetBytes||!o)throw new s("INVALID_ARGUMENT","The Worker hello handshake cannot be reconfigured after initialization");return Fn()}let r=Ln(n.memoryBudgetBytes);q=t,he=r;let a=n.memoryBudgetBytes<Ft?n.memoryBudgetBytes:Math.max(1,r.workerBudgetBytes-r.sourceRangeCacheBytes);return yn=new Pe(a),bn=0,Fn()}function Fn(){return{protocolVersion:4,adapterApiVersion:3,batchLayoutVersion:1,adapters:Object.freeze([...q.keys()]),transferableBatches:!0}}function Zt(e){return{requestId:e,kind:"open",cancelled:!1,cancellation:On()}}function Je(e,n,t){return{requestId:e,kind:"async",datasetHandle:n,...t===void 0?{}:{tableHandle:t},cancelled:!1,cancellation:On()}}function On(){let e;return{promise:new Promise(t=>{e=t}),resolve:e}}async function er(e,n,t){let r=Zt(e);O.set(e,r);let a,o,i,l,d=!1;try{let u=on(),c=w(n,"openSource payload");if(!ge(c.adapterId))throw new s("INVALID_ARGUMENT","openSource adapterId is not registered");if(!q.has(c.adapterId))throw new s("INVALID_ARGUMENT",`Adapter ${c.adapterId} is not registered`);if(!m(c.options)||Array.isArray(c.options))throw new s("INVALID_ARGUMENT","openSource options must be an object");if(m(c.source)&&c.source.kind==="range"){if(c.sourceMode!==void 0||c.transferInput!==void 0)throw new s("INVALID_ARGUMENT","sourceMode and transferInput do not apply to range sources");let x=await Xt(),D=x.validateRangeDescriptor;D(c.source),i=new x.RangeSourceAccessor(c.source,Yt(x),Ar(u),u.mainThreadSourceBytes)}else{let x=c.sourceMode===void 0?"auto":c.sourceMode;if(!Wn(x))throw new s("INVALID_ARGUMENT","openSource sourceMode must be auto or large");let D;if(typeof Blob<"u"&&c.source instanceof Blob)D=c.source;else if(c.source instanceof ArrayBuffer){if(x==="large")throw new s("INVALID_ARGUMENT","sourceMode large requires a local Blob or File source");if(c.source.byteLength>u.maxArrayBufferBytes)throw new s("RESOURCE_LIMIT",`ArrayBuffer sources larger than ${u.maxArrayBufferBytes} bytes must be supplied as a Blob`,!1,{resource:"source-staging",requiredBytes:c.source.byteLength,availableBytes:u.maxArrayBufferBytes});D=new Blob([c.source])}else throw new s("INVALID_ARGUMENT","source must be a Blob, ArrayBuffer, or range source");Or(D,x),Ir(D,c.adapterId),i=new $e(D)}let p=i;if(!p)throw new s("INVALID_ARGUMENT","openSource source is invalid");if(l=Rr(),p.kind==="blob"&&c.sourceMode!=="large"&&c.adapterId==="tabulark:excel"&&p.size>Rn("tabulark:excel",u))throw new s("RESOURCE_LIMIT","Excel auto mode exceeds the source staging limit; use a local Blob with sourceMode: large",!1,{resource:"source-staging",requiredBytes:p.size,availableBytes:Rn("tabulark:excel",u)});let R=await ee(Dr(c.adapterId),r);r.adapter=R;let h=Promise.resolve().then(()=>R.beginOpen(nr(c,u),p.size));h.then(x=>{r.cancelled&&en(R,x,!0)},()=>{});let I=await ee(h,r),T=await Hr(R,p,I,r,c.adapterId,t),b=T.payload,C=T.step.kind==="progress";if(b.sourceHandle===void 0||b.sourceHandle===null)throw new s("RUNTIME_FAILURE","Adapter open did not return a sourceHandle");o=ne(b.sourceHandle,"sourceHandle"),k(r);let L=`d${qt++}`,g=rn(b.metadata,nt(b.table,0)),A=et(Array.isArray(b.tables)?b.tables:void 0,b.table,g),M={handle:L,openRequestId:e,source:p,adapterId:c.adapterId,adapter:R,sourceHandle:o,tables:A,metadata:g,scanOffset:C?0:p.size,scanDone:!C,closed:!1,eventsReady:!1,pendingWarnings:C?[]:Array.isArray(b.warnings)?[...b.warnings]:[],waiters:new Set,releaseSourceSlot:l};return a=M,B.set(L,M),l=void 0,r.datasetHandle=L,C&&(Jn(M,T.step,!1),await dr(M,r),k(r),delete r.operationHandle,M.scanDone?M.pendingProgress=Qn(M):M.scanPromise=ur(M)),Ke.set(e,L),d=!0,{datasetHandle:L}}finally{if(O.delete(e),!d){if(a&&!a.closed)G(a,!1);else if(!a&&o!==void 0)try{r.adapter?.closeSource(o)}catch{}a||i?.close()}l?.()}}function nr(e,n){let t=typeof e.options.sourceName=="string"&&e.options.sourceName.length>0?e.options.sourceName:void 0;if(e.adapterId==="tabulark:delimited"){let a=e.options.delimiter,o=e.options.header,i=e.options.mode;if(!Mr(a))throw new s("INVALID_ARGUMENT","Delimited adapter delimiter must be one non-NUL ASCII byte other than CR, LF, or quote");if(o!=="first-row"&&o!=="none")throw new s("INVALID_ARGUMENT","Delimited adapter header must be first-row or none");if(i!=="lenient"&&i!=="strict")throw new s("INVALID_ARGUMENT","Delimited adapter mode must be lenient or strict");return Object.freeze({delimiter:a,header:o==="first-row",mode:i,checkpointInterval:1024,tableName:t??"Table 1",limits:Object.freeze({maxFieldBytes:n.maxFieldBytes,maxColumns:16384,maxCellsPerRange:25e4,maxBatchBytes:n.maxBatchBytes,maxDiagnostics:1e3})})}if(e.adapterId==="tabulark:arrow-ipc"){let a=e.options.container;if(a!=="auto"&&a!=="file"&&a!=="stream")throw new s("INVALID_ARGUMENT","Arrow adapter container must be auto, file, or stream");return Object.freeze({container:a,tableName:t??"Arrow IPC",limits:Object.freeze({maxSourceBytes:jt,maxDecodedBytes:n.operationBudgetBytes,maxOutputBytes:n.maxBatchBytes,maxMetadataBytes:n.maxFieldBytes,maxBlockBytes:Math.min(64*1024*1024,Math.max(1,Math.floor(n.operationBudgetBytes/4))),streamChunkBytes:Math.min(32*1024,Math.max(1,Math.floor(n.operationBudgetBytes/16))),maxFields:16384,maxNestingDepth:64,maxRangeCells:25e4,maxDisplayCellBytes:Math.min(1024*1024,Math.max(1,Math.floor(n.operationBudgetBytes/16)))})})}if(e.adapterId==="tabulark:parquet")return Object.freeze({sourceName:t??"Parquet"});let r=e.options.format;if(r!=="auto"&&r!=="xls"&&r!=="xlsx")throw new s("INVALID_ARGUMENT","Excel adapter format must be auto, xls, or xlsx");return Object.freeze({format:r,...t===void 0?{}:{sourceName:t}})}function tr(e){let n=w(e,"listTables payload");return le(n.datasetHandle).tables}async function rr(e,n){let t=w(n,"openTable payload"),r=le(t.datasetHandle);if(typeof t.tableId!="string")throw new s("INVALID_ARGUMENT","tableId must be a string");if(!r.tables.some(c=>c.id===t.tableId))throw new s("INVALID_ARGUMENT",`Unknown table: ${t.tableId}`);let a=Je(e,r.handle);a.adapter=r.adapter,O.set(e,a);let o,i=!1,l=!1,d=[],u=c=>{if(!i){i=!0;try{r.adapter.closeTable(c)}catch{}}};try{let c=Promise.resolve().then(()=>r.adapter.beginOpenTable(r.sourceHandle,t.tableId));c.then(g=>{if(!a.cancelled&&!r.closed&&B.get(r.handle)===r&&!ie)return;en(r.adapter,g,!1);let A=vr(g);A!==void 0&&u(A)},()=>{});let y=await ee(c,a),p=await Oe(r.adapter,r.source,y,a,r.adapterId,"open-table");Ae(a,r);let R=p.table,h=m(R)?R:{};wn(d,p,h),o=ne(h.tableHandle??h.handle??R,"openTable tableHandle");let I=r.tables.find(g=>g.id===t.tableId)??{id:t.tableId,name:t.tableId},T=h.metadata;if(T===void 0){let g=await Ze(r.adapter,a,()=>r.adapter.beginMetadata(o)),A=await Oe(r.adapter,r.source,g,a,r.adapterId,"metadata");wn(d,A),T=A.metadata}Ae(a,r);let b=rn(T,I),C=`t${Gt++}`,L={handle:C,datasetHandle:r.handle,tableId:t.tableId,adapterTableHandle:o,metadata:b,closed:!1};return te.set(C,L),l=!0,nn(r,d,{tableHandle:C,tableId:t.tableId,revision:b.revision}),{id:t.tableId,name:r.tables.find(g=>g.id===t.tableId)?.name??t.tableId,tableHandle:C}}finally{O.delete(e),!l&&o!==void 0&&u(o)}}async function ar(e,n){let t=w(n,"getMetadata payload"),r=sn(t.tableHandle),a=le(r.datasetHandle),o=Je(e,a.handle,r.handle);o.adapter=a.adapter,O.set(e,o);try{let i=await Ze(a.adapter,o,()=>a.adapter.beginMetadata(r.adapterTableHandle)),l=await Oe(a.adapter,a.source,i,o,a.adapterId,"metadata");Ae(o,a,r);let d=rn(l.metadata,{id:r.tableId,name:r.metadata.name});return r.metadata=d,In(a,l,r),d}finally{O.delete(e)}}async function or(e,n){let t=w(n,"getPresentation payload"),r=sn(t.tableHandle),a=le(r.datasetHandle),o=Je(e,a.handle,r.handle);o.adapter=a.adapter,O.set(e,o);try{let i=await Ze(a.adapter,o,()=>a.adapter.beginPresentation(r.adapterTableHandle)),l=await Oe(a.adapter,a.source,i,o,a.adapterId,"presentation");Ae(o,a,r);let d=sr(l.presentation,r);return In(a,l,r),d}finally{O.delete(e)}}async function ir(e,n){let t=w(n,"readPresentationRange payload"),r=sn(t.tableHandle),a=le(r.datasetHandle),o=Tn(t.range),i=Je(e,a.handle,r.handle);i.adapter=a.adapter,O.set(e,i);try{let l=await Ze(a.adapter,i,()=>a.adapter.beginPresentationRange(r.adapterTableHandle,o)),d=await Oe(a.adapter,a.source,l,i,a.adapterId,"presentation-range");Ae(i,a,r);let u=lr(d.presentation,r,o);return In(a,d,r),u}finally{O.delete(e)}}function sr(e,n){if(e==null)return null;let t=w(e,"table presentation");if(t.kind!=="spreadsheet-v1")throw new s("PROTOCOL_INCOMPATIBLE","Adapter returned an unknown presentation kind");if(t.tableId!==void 0&&t.tableId!==n.tableId)throw new s("PROTOCOL_INCOMPATIBLE","Adapter presentation belongs to another table");return{...t,kind:"spreadsheet-v1",tableId:n.tableId,revision:v(t.revision,n.metadata.revision)}}function lr(e,n,t){if(e==null)return null;let r=w(e,"presentation range");if(r.kind!=="spreadsheet-v1")throw new s("PROTOCOL_INCOMPATIBLE","Adapter returned an unknown presentation range kind");if(r.tableId!==void 0&&r.tableId!==n.tableId)throw new s("PROTOCOL_INCOMPATIBLE","Adapter presentation range belongs to another table");let a=m(r.range)?Tn(r.range):t;if(a.rowStart!==t.rowStart||a.rowCount!==t.rowCount||a.columnStart!==t.columnStart||a.columnCount!==t.columnCount)throw new s("PROTOCOL_INCOMPATIBLE","Adapter presentation range is not aligned with the requested range");return{...r,kind:"spreadsheet-v1",tableId:n.tableId,revision:v(r.revision,n.metadata.revision),range:a}}function Jn(e,n,t){let r=ve(n,"adapter open progress");if(r.operationKind!=="open")throw new s("PROTOCOL_INCOMPATIBLE","Adapter changed the operation kind while scanning a source");if(ne(r.sourceHandle,"sourceHandle")!==e.sourceHandle)throw new s("PROTOCOL_INCOMPATIBLE","Adapter open changed its sourceHandle");let o=rn(r.metadata,e.tables[0]),i=r.progress===void 0&&n.kind==="complete"?Object.freeze({bytesScanned:e.source.size,rowsDiscovered:Re(o),done:!0}):cr(r.progress,e.source.size);if(i.bytesScanned<e.scanOffset)throw new s("PROTOCOL_INCOMPATIBLE","Adapter scan bytes regressed");let l=JSON.stringify(e.metadata),d=et(Array.isArray(r.tables)?r.tables:void 0,r.table,o);if(n.kind==="complete"!==i.done)throw new s("PROTOCOL_INCOMPATIBLE","Adapter completion and progress disagree");if(i.rowsDiscovered!==Re(o))throw new s("PROTOCOL_INCOMPATIBLE","Adapter progress and metadata row counts disagree");if(!i.done&&n.kind==="complete")throw new s("PROTOCOL_INCOMPATIBLE","Adapter scan completed before progress reached EOF");if(i.done&&n.kind!=="complete")throw new s("PROTOCOL_INCOMPATIBLE","Completed adapter scan returned another read action");e.metadata=o,e.tables=d,e.scanOffset=i.bytesScanned,e.scanDone=i.done,n.kind!=="complete"?(e.scanOperationHandle=n.operationHandle,e.scanStep=n):(delete e.scanOperationHandle,delete e.scanStep),t&&e.eventsReady&&JSON.stringify(o)!==l&&pr(e);let c=Array.isArray(r.warnings)?r.warnings:r.warning===void 0?[]:[r.warning];!t||!e.eventsReady?e.pendingWarnings.push(...c):nn(e,c),t&&fr(e),Qe(e)}async function dr(e,n){for(;!e.closed&&!e.scanDone&&e.scanOffset<Math.min(e.source.size,$t)&&Re(e.metadata)<Wt;)await hn(e,n,!1);if(!e.closed&&e.source.size===0&&!e.scanDone&&await hn(e,n,!1),k(n),e.closed)throw new s("HANDLE_CLOSED","The source was closed while opening")}async function ur(e){try{for(;!e.closed&&!e.scanDone;)await hn(e,void 0,!0)}catch(n){if(e.closed)return;let t=n instanceof s?n:En(n)??new s("RUNTIME_FAILURE","Background source scanning failed",!1,void 0,n);e.scanError=t,e.scanDone=!0,Qe(e);try{V({event:"runtimeError",datasetHandle:e.handle,tableId:e.metadata.tableId,revision:e.metadata.revision,payload:Ue(t,"Background source scanning failed")})}finally{G(e,!0,t)}}}async function hn(e,n,t){if(e.closed||e.scanDone)return;let r=e.scanStep;if(!r)throw new s("PROTOCOL_INCOMPATIBLE","Adapter scan has no pending read action");e.scanOperationHandle=r.operationHandle,n&&(n.operationHandle=r.operationHandle,n.operationRevision=r.operationRevision,k(n));let a=await Ie(e.adapter,e.source,r,n,e.adapterId);for(;!e.closed&&a.kind==="pending";)a=await Ie(e.adapter,e.source,a,n,e.adapterId);if(!e.closed){if(a.kind!=="progress"&&a.kind!=="complete")throw new s("PROTOCOL_INCOMPATIBLE","Adapter scan did not publish progress");Jn(e,a,t),n&&(n.operationHandle=e.scanOperationHandle,e.scanStep?n.operationRevision=e.scanStep.operationRevision:delete n.operationRevision)}}function cr(e,n){let t=w(e,"adapter scan progress"),r=oe(t.bytesScanned,"progress bytesScanned"),a=oe(t.rowsDiscovered,"progress rowsDiscovered");if(r>n||typeof t.done!="boolean")throw new s("PROTOCOL_INCOMPATIBLE","Delimited scan progress is invalid");return Object.freeze({bytesScanned:r,rowsDiscovered:a,done:t.done})}function Re(e){return e.extent.rows.kind==="unknown"?0:e.extent.rows.value}function Qn(e){return Object.freeze({bytesScanned:e.scanOffset,rowsDiscovered:Re(e.metadata),done:e.scanDone})}function fr(e){let n=Qn(e);if(!e.eventsReady){e.pendingProgress=n;return}V({event:"progress",datasetHandle:e.handle,tableId:e.metadata.tableId,revision:e.metadata.revision,payload:{sourceHandle:e.handle,tableId:e.metadata.tableId,revision:e.metadata.revision,...n}})}function pr(e){V({event:"metadata",datasetHandle:e.handle,tableId:e.metadata.tableId,revision:e.metadata.revision,payload:e.metadata});for(let n of te.values())n.datasetHandle===e.handle&&n.tableId===e.metadata.tableId&&!n.closed&&(n.metadata=e.metadata,V({event:"metadata",datasetHandle:e.handle,tableHandle:n.handle,tableId:n.tableId,revision:e.metadata.revision,payload:e.metadata}))}async function mr(e,n,t){if(n.rowCount!==0){for(;!e.scanDone&&Re(e.metadata)<=n.rowStart;)k(t),await new Promise(r=>e.waiters.add(r));if(k(t),e.scanError)throw e.scanError}}function Qe(e){let n=[...e.waiters];e.waiters.clear();for(let t of n)t()}async function yr(e,n,t){let r=w(n,"readRange payload"),a=sn(r.tableHandle),o=le(a.datasetHandle),i=o.adapter,l=Tn(r.range);if(qe>=mn)throw new s("RESOURCE_LIMIT",`The engine may have at most ${mn} in-flight range requests`,!1,{resource:"range-request-slots",required:qe+1,available:mn,maxActiveRanges:ae,maxRangeWaiters:pe});qe+=1;let d={requestId:e,kind:"range",datasetHandle:o.handle,tableHandle:a.handle,adapter:i,cancelled:!1,cancellation:On()};O.set(e,d);let u;try{await mr(o,l,d),k(d);try{u=await Kn.acquire(e)}catch(b){throw b instanceof me?new s("RESOURCE_LIMIT",`The range queue may contain at most ${b.maxWaiters} waiters`,!1,{resource:"range-waiter-slots",required:b.maxWaiters+1,available:b.maxWaiters,maxActiveRanges:ae,maxRangeWaiters:b.maxWaiters}):b}k(d);let c=Promise.resolve().then(()=>i.beginRead(a.adapterTableHandle,l));c.then(b=>{d.cancelled&&en(i,b,!1)},()=>{});let y=await ee(c,d),p=await Vr(i,o.source,y,d,o.adapterId,t);k(d);let R=kr(p),h=vn("batch",R),I;try{I=Br(p,a,o,l)}catch(b){throw h.release(),b}let T=Pr(I);return{kind:"batch",data:I,transfer:T,release:h.release}}finally{O.delete(e),u?.(),qe-=1}}function br(e){let n=w(e,"cancel payload");if(typeof n.targetRequestId!="string")throw new s("INVALID_ARGUMENT","cancel targetRequestId must be a string");let t=O.get(n.targetRequestId);if(t)return tn(t),{cancelled:!0};let r=Ke.get(n.targetRequestId);if(!r)return{cancelled:!1};let a=B.get(r);return!a||a.closed?(Ke.delete(n.targetRequestId),{cancelled:!1}):(G(a,!1),{cancelled:!0})}function gr(e){let n=w(e,"closeTable payload");if(typeof n.tableHandle!="string")throw new s("INVALID_ARGUMENT","tableHandle must be a string");let t=te.get(n.tableHandle);return!t||t.closed?{closed:!0}:(Zn(t,!0),{closed:!0})}function hr(e){let n=w(e,"closeSource payload");if(typeof n.datasetHandle!="string")throw new s("INVALID_ARGUMENT","datasetHandle must be a string");let t=B.get(n.datasetHandle);return!t||t.closed?{closed:!0}:(G(t,!0),{closed:!0})}async function wr(){if(ie)return{closed:!0};ie=!0;let e=new s("HANDLE_CLOSED","The Worker runtime is not available");for(let n of[...O.values()])tn(n,e);for(let n of[...B.values()])G(n,!1,e);Xe?.shutdown();for(let n of Ye.values())n.dispose?.();for(let n of we.values())n.release();return we.clear(),Ye.clear(),Ge.clear(),q.clear(),{closed:!0}}function Rr(){let e=on();if(Fe>=e.maxSources)throw new s("RESOURCE_LIMIT",`The engine may retain at most ${e.maxSources} sources or in-flight opens`,!1,{resource:"source-slots",required:Fe+1,available:e.maxSources,maxSources:e.maxSources});Fe+=1;let n=!1;return()=>{n||(n=!0,Fe-=1)}}function Ar(e){return Math.max(1,Math.floor(e.sourceRangeCacheBytes/Math.max(1,e.maxSources)))}function Or(e,n){let t=e.size;if(!Number.isSafeInteger(t)||t<0)throw new s("RESOURCE_LIMIT","The source size exceeds the JavaScript safe integer range",!1,{resource:"source-staging",requiredBytes:Number.isFinite(t)&&t>=0?Math.min(Math.floor(t),Number.MAX_SAFE_INTEGER):Number.MAX_SAFE_INTEGER,availableBytes:Number.MAX_SAFE_INTEGER});if(n==="large"&&t>Z)throw new s("RESOURCE_LIMIT",`Large source mode supports Blob inputs up to ${Z} bytes`,!1,{resource:"source-staging",requiredBytes:t,availableBytes:Z})}function Ir(e,n){if(!(n!=="tabulark:arrow-ipc"&&n!=="tabulark:excel")&&!(e.size<=Z))throw new s("RESOURCE_LIMIT",`Local ${n==="tabulark:excel"?"Excel":"Arrow IPC"} sources support at most ${Z} bytes`,!1,{resource:"source-staging",requiredBytes:e.size,availableBytes:Z})}function Tr(e,n,t){if(!(!Number.isSafeInteger(e)||!Number.isSafeInteger(n)||e<0||n<0||!Number.isSafeInteger(t)||t<0||e>t||n>t-e))return e+n}function ee(e,n){return Promise.race([e,n.cancellation.promise.then(()=>{throw new s("CANCELLED",n.kind==="open"?"The open request was cancelled":n.kind==="range"?"The range request was cancelled":"The asynchronous table request was cancelled")})])}function Ze(e,n,t){let r=Promise.resolve().then(t);return r.then(a=>{n.cancelled&&en(e,a,!1)},()=>{}),ee(r,n)}function Ae(e,n,t){if(k(e),ie||n.closed||B.get(n.handle)!==n||t!==void 0&&(t.closed||te.get(t.handle)!==t))throw new s("HANDLE_CLOSED","The table or dataset is closed")}function vr(e){let n=m(e)?e:{},t=m(n.payload)?n.payload:n,r=m(t.table)?t.table:t;try{return ne(r.tableHandle??r.handle??e,"openTable tableHandle")}catch{return}}function en(e,n,t){let r=m(n)?n:{},a=m(r.payload)?r.payload:r;if(r.operationHandle!==void 0&&r.operationHandle!==null)try{e.cancelOperation(ne(r.operationHandle,"operationHandle"))}catch{}if(t&&a.sourceHandle!==void 0&&a.sourceHandle!==null)try{e.closeSource(ne(a.sourceHandle,"sourceHandle"))}catch{}}function Er(e){let n=m(e)?e:{};if(typeof n.datasetHandle!="string")return;let t=B.get(n.datasetHandle);if(!(!t||t.closed||t.eventsReady)&&(t.eventsReady=!0,nn(t,t.pendingWarnings.splice(0)),t.pendingProgress)){let r=t.pendingProgress;delete t.pendingProgress,V({event:"progress",datasetHandle:t.handle,tableId:t.metadata.tableId,revision:t.metadata.revision,payload:{sourceHandle:t.handle,tableId:t.metadata.tableId,revision:t.metadata.revision,...r}})}}function wn(e,...n){let t=new Set(e);for(let r of n){if(!m(r))continue;let a=Array.isArray(r.warnings)?r.warnings:r.warning===void 0?[]:[r.warning];for(let o of a)t.has(o)||(t.add(o),e.push(o))}}function In(e,n,t){let r=[];wn(r,n),nn(e,r,{tableHandle:t.handle,tableId:t.tableId,revision:t.metadata.revision})}function nn(e,n,t={}){for(let r of n){let a=m(r)?r:void 0,o=typeof t.tableId=="string"&&e.tables.some(i=>i.id===t.tableId)?t.tableId:typeof a?.tableId=="string"&&e.tables.some(i=>i.id===a.tableId)?a.tableId:e.metadata.tableId;V({event:"warning",datasetHandle:e.handle,...t.tableHandle===void 0?{}:{tableHandle:t.tableHandle},tableId:o,...t.revision===void 0?{}:{revision:t.revision},payload:{...a??{kind:"warning",message:String(r)},handle:t.tableHandle??e.handle,tableId:o}})}}function tn(e,n){if(e.cancelled){e.kind!=="open"&&e.failure===void 0&&n!==void 0&&(e.failure=n);return}if(e.cancelled=!0,e.kind==="open"&&e.datasetHandle){let r=B.get(e.datasetHandle);r&&e.operationHandle!==void 0&&r.scanOperationHandle===e.operationHandle&&delete e.operationHandle}if(an(e),e.cancellation.resolve(),e.kind==="open"){if(e.datasetHandle){let r=B.get(e.datasetHandle);r&&!r.closed&&G(r,!1)}return}if(n!==void 0&&(e.failure=n),e.kind==="async")return;Kn.cancel(e.requestId,n??new s("CANCELLED","The range request was cancelled"));let t=B.get(e.datasetHandle);t&&Qe(t)}function k(e){if(e.cancelled)throw e.kind!=="open"&&e.failure!==void 0?e.failure:new s("CANCELLED",e.kind==="open"?"The open request was cancelled":e.kind==="range"?"The range request was cancelled":"The asynchronous table request was cancelled")}function Zn(e,n,t){e.closed=!0;for(let a of O.values())a.kind!=="open"&&a.tableHandle===e.handle&&tn(a,t);te.delete(e.handle);let r=B.get(e.datasetHandle);if(r)try{r.adapter.closeTable(e.adapterTableHandle)}catch{}n&&V({event:"closed",datasetHandle:e.datasetHandle,tableHandle:e.handle,tableId:e.tableId,revision:e.metadata.revision,payload:{handle:e.handle,kind:"table"}})}function G(e,n,t){if(e.closed=!0,e.pendingWarnings.length=0,delete e.pendingProgress,Ke.delete(e.openRequestId),Qe(e),e.scanOperationHandle!==void 0){let r=e.scanOperationHandle;delete e.scanOperationHandle,delete e.scanStep;for(let a of O.values())a.kind==="open"&&a.datasetHandle===e.handle&&a.operationHandle===r&&delete a.operationHandle;try{e.adapter.cancelOperation(r)}catch{}}for(let r of[...te.values()])r.datasetHandle===e.handle&&Zn(r,n,t);for(let r of O.values())r.datasetHandle===e.handle&&tn(r,t);B.delete(e.handle),e.releaseSourceSlot();try{e.adapter.closeSource(e.sourceHandle)}catch{}try{e.source.close()}catch{}n&&V({event:"closed",datasetHandle:e.handle,tableId:e.metadata.tableId,revision:e.metadata.revision,payload:{handle:e.handle,kind:"source"}})}function Sr(e,n){for(let t of[...B.values()])if(!(t.closed||t.source!==e)){try{V({event:"runtimeError",datasetHandle:t.handle,tableId:t.metadata.tableId,revision:t.metadata.revision,payload:Ue(n,"The source provider failed")})}catch{}G(t,!0,n)}}function Br(e,n,t,r){let a=w(e,"range batch");if(!Array.isArray(a.columns))throw new s("RUNTIME_FAILURE","Range batch columns must be an array");let o=m(a.range)?a.range:{},i={rowStart:v(o.rowStart,r.rowStart),rowCount:v(o.rowCount,0),columnStart:v(o.columnStart,r.columnStart),columnCount:v(o.columnCount,a.columns.length)};if(a.layoutVersion!==1)throw new s("PROTOCOL_INCOMPATIBLE",`Adapter returned batch layout ${String(a.layoutVersion)}; expected ${1}`);let l=Cr(a.buffers),d=a.columns.map((c,y)=>Nr(c,i.rowCount,y)),u={layoutVersion:1,tableId:typeof a.tableId=="string"?a.tableId:n.tableId,revision:v(a.revision,n.metadata.revision),schemaVersion:v(a.schemaVersion,n.metadata.schema.version),range:i,buffers:l,columns:d,complete:a.complete!==!1};return new Le(u),u}function kr(e){let n=w(e,"range batch");if(!Array.isArray(n.buffers))throw new s("RUNTIME_FAILURE","Layout-v1 batch buffers must be an array");let t=0;for(let[r,a]of n.buffers.entries()){let o=a instanceof ArrayBuffer||ArrayBuffer.isView(a)?a.byteLength:void 0;if(o===void 0)throw new s("RUNTIME_FAILURE",`batch buffer ${r} must be a Uint8Array`);if(t+=o,!Number.isSafeInteger(t))throw new s("RESOURCE_LIMIT","Batch buffers exceed the safe integer range",!1,{resource:"batch",requiredBytes:t,availableBytes:Number.MAX_SAFE_INTEGER})}return t}function Cr(e){if(!Array.isArray(e))throw new s("RUNTIME_FAILURE","Layout-v1 batch buffers must be an array");let n=new Set;return e.map((t,r)=>{let a=t instanceof ArrayBuffer?t:ArrayBuffer.isView(t)&&t.buffer instanceof ArrayBuffer&&t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:void 0;if(!a)throw new s("PROTOCOL_INCOMPATIBLE",`batch buffer ${r} must own a complete transferable ArrayBuffer`);if(n.has(a))throw new s("PROTOCOL_INCOMPATIBLE",`batch buffer ${r} aliases another pool entry`);return n.add(a),a})}function Nr(e,n,t){let r=w(e,"batch column");return Object.freeze({columnId:typeof r.columnId=="string"?r.columnId:`c${t}`,native:_(r.native,n,0),display:xr(r.display)})}function _(e,n,t){if(t>=64)throw new s("RESOURCE_LIMIT","Native descriptor nesting may not exceed 64",!1,{resource:"descriptor-nesting",required:t+1,available:64});let r=w(e,"native column descriptor"),a=typeof r.encoding=="string"?r.encoding:"",o={...a.length===0?{}:{encoding:a},dataType:r.dataType,length:v(r.length,n),...r.validity===void 0?{}:{validity:S(r.validity,"validity")}};switch(a){case"null":return Object.freeze(o);case"bitmap":return Object.freeze({...o,values:S(r.values,"bitmap values")});case"fixed-width":return Object.freeze({...o,values:S(r.values,"fixed-width values")});case"variable-width":return Object.freeze({...o,offsets:S(r.offsets,"variable-width offsets"),data:S(r.values,"variable-width values")});case"view":return Object.freeze({...o,values:S(r.views,"view records"),variadicBuffers:Object.freeze((Array.isArray(r.buffers)?r.buffers:[]).map(i=>S(i,"view buffer")))});case"list":return Object.freeze({...o,offsets:S(r.offsets,"list offsets"),children:Object.freeze([_(r.values,0,t+1)])});case"list-view":return Object.freeze({...o,offsets:S(r.offsets,"list-view offsets"),sizes:S(r.sizes,"list-view sizes"),children:Object.freeze([_(r.values,0,t+1)])});case"fixed-size-list":return Object.freeze({...o,children:Object.freeze([_(r.values,0,t+1)])});case"struct":return Object.freeze({...o,children:Object.freeze((Array.isArray(r.fields)?r.fields:[]).map(i=>_(i,0,t+1)))});case"union":{let i=Array.isArray(r.fields)?r.fields:[];return Object.freeze({...o,typeIds:S(r.typeIds??r.type_ids,"union type ids"),...r.offsets===void 0?{}:{unionOffsets:S(r.offsets,"union offsets")},children:Object.freeze(i.map(l=>{let d=w(l,"union child");return Object.freeze({..._(d.values,0,t+1),typeId:v(d.typeId,0)})}))})}case"dictionary":return Object.freeze({...o,children:Object.freeze([_(r.keys,o.length,t+1),_(r.values,0,t+1)]),dictionary:_(r.values,0,t+1)});case"run-end-encoded":return Object.freeze({...o,runEnds:_(r.runEnds??r.run_ends,0,t+1),children:Object.freeze([_(r.values,0,t+1)])});default:throw new s("PROTOCOL_INCOMPATIBLE",`Adapter returned an unknown native array encoding: ${a||"<missing>"}`)}}function xr(e){let n=w(e,"display column descriptor");if(n.encoding!=="variable-width")throw new s("PROTOCOL_INCOMPATIBLE","Adapter display columns must use the UTF-8 variable-width layout");return Object.freeze({encoding:"utf8",data:S(n.values,"display values"),offsets:S(n.offsets,"display offsets"),...n.validity===void 0?{}:{validity:S(n.validity,"display validity")}})}function S(e,n){let t=w(e,`${n} region`),r=m(t.buffer)?t.buffer:t;if(!Number.isSafeInteger(r.buffer)||r.buffer<0)throw new s("RUNTIME_FAILURE",`${n} region has an invalid buffer index`);return Object.freeze({buffer:r.buffer,...r.byteOffset===void 0?{}:{byteOffset:v(r.byteOffset,0)},...r.byteLength===void 0?{}:{byteLength:v(r.byteLength,0)},...t.bitOffset===void 0?{}:{bitOffset:v(t.bitOffset,0)}})}function Pr(e){let n=new Set;for(let t of e.buffers)n.add(t instanceof ArrayBuffer?t:t.buffer);return[...n]}function rn(e,n){let t=m(e)?e:{},r=m(t.extent)?t.extent:{},a=m(t.schema)?t.schema:{},o=Array.isArray(a.columns)?a.columns.map((i,l)=>Lr(i,l)):[];return{tableId:typeof t.tableId=="string"?t.tableId:n?.id??"table-0",name:typeof t.name=="string"?t.name:n?.name??"Table 1",revision:v(t.revision,0),extent:{rows:qn(r.rows,"at-least",0),columns:qn(r.columns,"exact",o.length)},schema:{version:v(a.version,0),columns:o},capabilities:m(t.capabilities)?{...t.capabilities,randomAccess:t.capabilities.randomAccess==="full"?"full":"indexed-prefix",typedValues:t.capabilities.typedValues===!0,search:t.capabilities.search===!0,sort:t.capabilities.sort===!0,filter:t.capabilities.filter===!0,multiTable:t.capabilities.multiTable===!0}:{randomAccess:"indexed-prefix",typedValues:!1,search:!1,sort:!1,filter:!1,multiTable:!1}}}function Lr(e,n){let t=m(e)?e:{};return{id:typeof t.id=="string"?t.id:`c${n}`,name:typeof t.name=="string"?t.name:`column_${n+1}`,index:v(t.index,n),dataType:W(t.dataType??{type:"unknown"}),nullable:t.nullable!==!1,...m(t.metadata)?{metadata:Object.freeze(Object.fromEntries(Object.entries(t.metadata).map(([r,a])=>[r,String(a)])))}:{}}}function qn(e,n,t){if(m(e)){if(e.kind==="unknown")return{kind:"unknown"};if((e.kind==="exact"||e.kind==="at-least")&&Number.isSafeInteger(e.value)&&e.value>=0)return{kind:e.kind,value:e.value}}return{kind:n,value:t}}function Mr(e){if(typeof e!="string"||e.length!==1)return!1;let n=e.charCodeAt(0);return n<=127&&n!==0&&n!==13&&n!==10&&n!==34}function et(e,n,t){let a=(Array.isArray(e)&&e.length>0?e:n===void 0?[]:[n]).map((o,i)=>nt(o,i));return a.length>0?a:[{id:t.tableId,name:t.name}]}function nt(e,n){let t=m(e)?e:{};return{id:typeof t.id=="string"?t.id:`table-${n}`,name:typeof t.name=="string"?t.name:`Table ${n+1}`}}function Tn(e){let n=w(e,"range request"),t={rowStart:n.rowStart,rowCount:n.rowCount,columnStart:n.columnStart,columnCount:n.columnCount};for(let[l,d]of Object.entries(t))if(!Number.isSafeInteger(d)||d<0)throw new s("INVALID_RANGE",`${l} must be a non-negative safe integer`);let r=t.rowStart,a=t.rowCount,o=t.columnStart,i=t.columnCount;if(a>Number.MAX_SAFE_INTEGER-r||i>Number.MAX_SAFE_INTEGER-o)throw new s("INVALID_RANGE","Range end exceeds the JavaScript safe integer range");if(a>P||i>P||a!==0&&i>Math.floor(P/a)){let l=a*i,d=Number.isSafeInteger(l)?Math.max(l,a,i):Number.MAX_SAFE_INTEGER;throw new s("RESOURCE_LIMIT",`A range may contain at most ${P} cells`,!1,{resource:"range-cells",required:d,available:P,cells:Number.isSafeInteger(l)?l:Number.MAX_SAFE_INTEGER,limit:P})}return t}function v(e,n){return Number.isSafeInteger(e)&&e>=0?e:n}function _r(e){let t=globalThis.__tabularkTestOnlyAdapterModuleUrls?.[e];return typeof t=="string"&&t.length>0?t:$n(e)}async function Dr(e){if(ie)throw new s("HANDLE_CLOSED","The Worker runtime is not available");let n=q.get(e);if(!n)throw new s("INVALID_ARGUMENT",`Adapter ${e} is not registered`);let t=Ge.get(e);if(t)return t;let r=on();if(!ge(e))throw new s("INVALID_ARGUMENT",`Adapter ${e} is not official`);let a=Rn(e,r),o=vn("adapter-runtime",a);we.set(e,o);let i=Ve.load(n.moduleUrl,n.id,{memoryBudgetBytes:a,indexBudgetBytes:Math.min(r.indexBudgetBytes,Math.floor(a/2)),tileCacheBudgetBytes:Math.min(r.adapterTileCacheBudgetBytes,Math.floor(a/2)),chunkBytes:Math.min(Yn,r.operationBudgetBytes),checkpointRows:1024,maxFieldBytes:r.maxFieldBytes,maxColumns:16384,maxRangeCells:25e4,maxBatchBytes:r.maxBatchBytes,maxSources:r.maxSources,maxActiveRanges:r.maxActiveRanges}).then(l=>{if(ie)throw l.dispose(),new s("HANDLE_CLOSED","The Worker runtime is not available");return Ye.set(e,l),l}).catch(l=>{throw Ge.delete(e),Ye.delete(e),we.get(e)?.release(),we.delete(e),l});return Ge.set(e,i),i}function Rn(e,n){let r=[...q.keys()].filter(ge).reduce((o,i)=>o+je(i).resources.runtimeWeight,0),a=je(e).resources.runtimeWeight;return Math.max(1,Math.floor(n.adapterRuntimePoolBytes*a/Math.max(1,r)))}function An(e){return e==="tabulark:parquet"?"compressed-page":"source-staging"}function zr(e,n){return n.operationBudgetBytes}function Ur(e,n){return vn(An(e),n)}function vn(e,n){let t=Fr(),r=t.reserve(e,n);bn=Math.max(bn,t.usedBytes);for(let a of gn)a.peakReservationBytes=Math.max(a.peakReservationBytes,t.usedBytes);return r}async function Hr(e,n,t,r,a,o){let i=Te(t,"adapter open result"),l=!1,d=!1;try{for(;;){if(k(r),r.operationHandle=i.operationHandle,r.operationRevision=i.operationRevision,i.kind==="progress"){let u=ve(i,"adapter open progress");if(u.operationKind!=="open")throw new s("PROTOCOL_INCOMPATIBLE","Adapter published progress for another operation");return d=!0,Object.freeze({step:i,payload:u})}if(i.kind==="complete"){l=!0,delete r.operationHandle,delete r.operationRevision;let u=ve(i,"adapter open completion");if(u.operationKind!=="open")throw new s("PROTOCOL_INCOMPATIBLE","Adapter completed another operation during open");return Object.freeze({step:i,payload:u})}i=await Ie(e,n,i,r,a,o)}}finally{!l&&!d&&r.operationHandle!==void 0&&an(r,e)}}async function Vr(e,n,t,r,a,o){let i=Te(t,"adapter range result"),l=!1;try{for(;;){if(k(r),r.operationHandle=i.operationHandle,r.operationRevision=i.operationRevision,i.kind==="complete"){l=!0,delete r.operationHandle,delete r.operationRevision;let d=ve(i,"adapter range completion");if(d.operationKind!=="read")throw new s("PROTOCOL_INCOMPATIBLE","Adapter completed another operation during read");return d.batch??d}i=await Ie(e,n,i,r,a,o)}}catch(d){throw tt(r,d),d}finally{!l&&r.operationHandle!==void 0&&an(r,e)}}async function Oe(e,n,t,r,a,o){let i=Te(t,`adapter ${o} result`),l=!1;try{for(;;){if(k(r),r.adapter=e,r.operationHandle=i.operationHandle,r.operationRevision=i.operationRevision,i.kind==="complete"){l=!0,delete r.operationHandle,delete r.operationRevision;let d=ve(i,`adapter ${o} completion`);if(d.operationKind!==o)throw new s("PROTOCOL_INCOMPATIBLE",`Adapter completed ${String(d.operationKind)} while ${o} was active`);return d}i=await Ie(e,n,i,r,a)}}catch(d){throw tt(r,d),d}finally{!l&&r.operationHandle!==void 0&&an(r,e)}}async function Ie(e,n,t,r,a,o){let i=Te(t,"adapter operation step");if(i.kind==="complete")throw new s("PROTOCOL_INCOMPATIBLE","A completed adapter operation was continued");r&&(r.operationHandle=i.operationHandle,r.operationRevision=i.operationRevision,k(r));let l=on(),d=zr(a,l),u=0,c=i.actions.map(h=>{let I=Tr(h.offset,h.length,n.size);if(u+=h.length,!Number.isSafeInteger(u)||I===void 0)throw new s("RESOURCE_LIMIT","Adapter source action exceeds the source or safe integer range",!1,{resource:An(a),requiredBytes:Number.isSafeInteger(u)?u:Number.MAX_SAFE_INTEGER,availableBytes:d,offset:h.offset,sourceLength:n.size});return Object.freeze({action:h,end:I})});if(u>d)throw new s("RESOURCE_LIMIT","Adapter operation actions exceed the operation memory budget",!1,{resource:An(a),requiredBytes:u,availableBytes:d,actionCount:c.length});let y=[],p=[],R=[];try{if(c.length===0){let b=new Promise(C=>globalThis.setTimeout(C,0));r?await ee(b,r):await b}else{try{for(let{action:g}of c)p.push(Ur(a,g.length))}catch(g){for(let A of p)A?.release();throw p.length=0,g}let b=r?.cancellation.promise,C={...b===void 0?{}:{cancellation:b},onProviderRead:g=>Xr(o,g),onCacheHit:g=>Yr(o,g)},L;try{L=n.kind==="range"&&n.readMany!==void 0?await n.readMany(c.map(({action:g,end:A})=>({offset:g.offset,end:A})),C):await jr(n,c,C,p)}catch(g){let A=En(g);throw A!==void 0&&A.code!=="CANCELLED"&&Sr(n,A),g}if(L.length!==c.length)throw new s("RUNTIME_FAILURE","The source accessor returned an invalid action count");for(let g=0;g<c.length;g+=1){let{action:A,end:M}=c[g],x=L[g];if(!(x instanceof ArrayBuffer)||x.byteLength!==A.length)throw new s("RUNTIME_FAILURE","The source accessor returned an invalid bounded length");let D=p[g];if(D===void 0)throw new s("CANCELLED","The source read was cancelled");let Sn=Object.freeze({buffer:x,release:D.release});y.push(Sn);let rt=new Uint8Array(Sn.buffer);R.push(Object.freeze({actionIndex:A.actionIndex,offset:A.offset,bytes:rt,eof:M===n.size})),r&&k(r)}p.length=0}let h=Promise.resolve().then(()=>e.continueOperation(i.operationHandle,i.operationRevision,R)),I=r?await ee(h,r):await h,T=Te(I,"adapter continuation result");if(T.operationHandle!==i.operationHandle||T.operationRevision!==i.operationRevision+1)throw new s("PROTOCOL_INCOMPATIBLE","Adapter continuation returned a missing, duplicate, or stale operation revision");return r&&(r.operationRevision=T.operationRevision),T}finally{for(let h of y)h.release();for(let h of p)h?.release()}}async function jr(e,n,t,r){let a=new Array(n.length),o=0,i=!1,l,d=n.map(()=>({settled:!1,detached:!1})),u=async()=>{for(;;){if(i)return;let c=o++;if(c>=n.length)return;let{action:y}=n[c],p=d[c],R=r[c],h={...t,onSettled:()=>{p.settled=!0,p.detached&&R?.release(),t.onSettled?.()}};try{a[c]=await e.read(y.offset,y.length,h)}catch(I){i||(i=!0,l=I);return}}};if(await Promise.all(Array.from({length:Math.min(4,n.length)},u)),i){for(let c=0;c<d.length;c+=1)d[c].settled||r[c]===void 0||(r[c]=void 0,d[c].detached=!0);throw l}return a}function Te(e,n){let t=w(e,n);if(t.kind!=="pending"&&t.kind!=="progress"&&t.kind!=="complete")throw new s("PROTOCOL_INCOMPATIBLE",`${n} has an invalid kind`);let r=ne(t.operationHandle,`${n} operationHandle`),a=oe(t.operationRevision,`${n} operationRevision`);if(a===0)throw new s("PROTOCOL_INCOMPATIBLE",`${n} operationRevision must be positive`);if(!Array.isArray(t.actions)||t.actions.length>32)throw new s("PROTOCOL_INCOMPATIBLE",`${n} may request at most 32 ranges`);let o=new Set,i=t.actions.map((d,u)=>{let c=w(d,`${n} action ${u}`);if(c.kind!=="read-bytes")throw new s("PROTOCOL_INCOMPATIBLE",`${n} requested an unsupported action`);let y=oe(c.actionIndex,`${n} actionIndex`);if(y>4294967295||o.has(y))throw new s("PROTOCOL_INCOMPATIBLE",`${n} action indexes must be unique u32 values`);o.add(y);let p=oe(c.offset,`${n} action offset`),R=oe(c.length,`${n} action length`);return Object.freeze({kind:"read-bytes",actionIndex:y,offset:p,length:R})}),l=t.cooperativeYield===!0;if(t.kind==="complete"&&(i.length!==0||l))throw new s("PROTOCOL_INCOMPATIBLE",`${n} completion requested more work`);if(t.kind!=="complete"&&i.length===0&&!l)throw new s("PROTOCOL_INCOMPATIBLE",`${n} omitted both actions and a yield`);if(i.length!==0&&l)throw new s("PROTOCOL_INCOMPATIBLE",`${n} combined actions and a yield`);return Object.freeze({kind:t.kind,operationHandle:r,operationRevision:a,actions:Object.freeze(i),cooperativeYield:l,...$r(t)})}function $r(e){if(e.payload!==void 0)return Object.freeze({payload:e.payload});let n=Object.fromEntries(Object.entries(e).filter(([t])=>t!=="kind"&&t!=="operationHandle"&&t!=="operationRevision"&&t!=="actions"&&t!=="cooperativeYield"));return Object.keys(n).length===0?Object.freeze({}):Object.freeze({payload:Object.freeze(n)})}function ve(e,n){return w(e.payload,`${n} payload`)}function an(e,n=e.adapter){let t=e.operationHandle;if(t!==void 0){delete e.operationHandle,delete e.operationRevision;try{n?.cancelOperation(t)}catch{}}}function tt(e,n){if(!("datasetHandle"in e)||e.datasetHandle===void 0||(m(n)&&typeof n.code=="string"?n.code:void 0)!=="SOURCE_CHANGED")return;let r=B.get(e.datasetHandle);r&&!r.closed&&G(r,!0,En(n))}function En(e){if(!m(e)||typeof e.code!="string")return;let n=e.code;if(!(n!=="SOURCE_CHANGED"&&n!=="SOURCE_UNAVAILABLE"&&n!=="RANGE_UNSUPPORTED"&&n!=="RUNTIME_FAILURE"&&n!=="RESOURCE_LIMIT"&&n!=="HANDLE_CLOSED"&&n!=="CANCELLED"&&n!=="PROTOCOL_INCOMPATIBLE"))return e instanceof s?e:new s(n,Wr(n),e.retryable===!0,n==="RESOURCE_LIMIT"?e.details:void 0)}function Wr(e){switch(e){case"SOURCE_CHANGED":return"The source changed while it was open";case"RANGE_UNSUPPORTED":return"The source range is unsupported";case"RUNTIME_FAILURE":return"The source provider returned invalid bytes";case"RESOURCE_LIMIT":return"The source exceeds its configured limit";case"HANDLE_CLOSED":return"The source is closed";case"CANCELLED":return"The source read was cancelled";case"PROTOCOL_INCOMPATIBLE":return"The source broker protocol is incompatible";default:return"The source provider is unavailable"}}function ne(e,n){if(typeof e=="string"&&e.length>0||Number.isSafeInteger(e)&&e>=0)return e;throw new s("PROTOCOL_INCOMPATIBLE",`${n} must be a handle`)}function oe(e,n){if(!Number.isSafeInteger(e)||e<0)throw new s("PROTOCOL_INCOMPATIBLE",`${n} must be a non-negative safe integer`);return e}function on(){if(!he)throw new s("HANDLE_CLOSED","The Worker runtime is not available");return he}function Fr(){if(!yn)throw new s("HANDLE_CLOSED","The Worker memory ledger is not available");return yn}function le(e){if(typeof e!="string")throw new s("INVALID_ARGUMENT","datasetHandle must be a string");let n=B.get(e);if(!n||n.closed)throw new s("HANDLE_CLOSED","The dataset is closed");return n}function sn(e){if(typeof e!="string")throw new s("INVALID_ARGUMENT","tableHandle must be a string");let n=te.get(e);if(!n||n.closed)throw new s("HANDLE_CLOSED","The table is closed");return n}function w(e,n){if(!m(e))throw new s("INVALID_ARGUMENT",`${n} must be an object`);return e}function qr(e){return m(e)&&typeof e.requestId=="string"&&typeof e.op=="string"&&"payload"in e}function Gr(e,n,t,r=[],a){let o={protocolVersion:4,requestId:e,status:"success",result:{...t===void 0?{kind:n}:{kind:n,data:t},...a===void 0?{}:{telemetry:a}}};se.postMessage(o,r)}function Gn(e,n,t){let r={protocolVersion:4,requestId:e,status:"failure",error:Ue(n,"Worker operation failed"),...t===void 0?{}:{telemetry:t}};se.postMessage(r)}function Xr(e,n){!e||!Number.isSafeInteger(n)||n<0||(e.bytesRead=Math.min(Number.MAX_SAFE_INTEGER,e.bytesRead+n),e.sourceReads=Math.min(Number.MAX_SAFE_INTEGER,e.sourceReads+1))}function Yr(e,n){!e||!Number.isSafeInteger(n)||n<0||(e.sourceCacheHitBytes=Math.min(Number.MAX_SAFE_INTEGER,e.sourceCacheHitBytes+n))}function Xn(e){if(e)return Object.freeze({bytesRead:e.bytesRead,peakReservationBytes:e.peakReservationBytes,sourceReads:e.sourceReads,sourceCacheHitBytes:e.sourceCacheHitBytes})}function V(e){se.postMessage({protocolVersion:4,...e})}
2
+ //# sourceMappingURL=worker.js.map