@oddington/sdk 0.1.29 → 0.1.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -20
- package/dist/browser.js +152 -197
- package/dist/index.js +3 -62
- package/dist/types/packages/sdk/src/public.d.ts +10 -15
- package/dist/types/shared/files-contract.d.ts +6 -36
- package/dist/types/shared/inbox-contract.d.ts +0 -13
- package/dist/types/shared/inbox-files.d.ts +5 -10
- package/dist/types/shared/routine-deployment-contract.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __create=Object.create;var __getProtoOf=Object.getPrototypeOf;var __defProp=Object.defineProperty;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node;var __toESMCache_esm;var __toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap;var cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};const to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:true}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:true});if(canCache)cache.set(mod,to);return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true,configurable:true,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);var __require=((x)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(x,{get:(a,b)=>(typeof require!=="undefined"?require:a)[b]}):x)(function(x){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});function parseFileDescriptor(value){const invalid=()=>{throw new FileOperationError("unavailable",503,true)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const f=value;if(Object.keys(f).sort().join(",")!=="details,enrichments,id,mediaType,name,path,sha256,size"||typeof f.id!=="string"||!FILE_ID_PATTERN.test(f.id)||!safeFileName(f.name)||!safeFilePath(f.path)||!Number.isSafeInteger(f.size)||f.size<0||f.size>FILE_ORIGINAL_MAX_BYTES||typeof f.sha256!=="string"||!/^[0-9a-f]{64}$/.test(f.sha256)||!f.enrichments||typeof f.enrichments!=="object"||Array.isArray(f.enrichments)||!f.details||typeof f.details!=="object"||Array.isArray(f.details))return invalid();const d=f.details;if(d.kind==="other"){if(Object.keys(d).length!==1||!["application/octet-stream","text/plain","text/markdown","application/json","image/png","image/jpeg"].includes(f.mediaType))return invalid()}else if(d.kind==="csv"){if(Object.keys(d).sort().join(",")!=="dataRows,delimiter,encoding,headerRow,kind"||f.mediaType!=="text/csv"||!["utf-8","windows-1252"].includes(d.encoding)||![",",";","\t"].includes(d.delimiter)||!Number.isSafeInteger(d.headerRow)||d.headerRow<1||!Number.isSafeInteger(d.dataRows)||d.dataRows<0)return invalid()}else if(d.kind==="pdf"){if(f.mediaType!=="application/pdf"||Object.keys(d).some((key)=>!["kind","pages"].includes(key))||"pages"in d&&(!Number.isSafeInteger(d.pages)||d.pages<1))return invalid()}else return invalid();for(const[name,descriptor]of Object.entries(f.enrichments)){if(!safeEnrichmentName(name))return invalid();parseEnrichmentDescriptor(descriptor)}if(new TextEncoder().encode(JSON.stringify(f)).byteLength>16*1024)return invalid();return f}function parseEnrichmentDescriptor(value){const invalid=()=>{throw new FileOperationError("unavailable",503,true)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const d=value;if(Object.keys(d).sort().join(",")!=="mediaType,sha256,size"||!["application/octet-stream","text/plain","text/markdown","application/json"].includes(d.mediaType)||!Number.isSafeInteger(d.size)||d.size<0||d.size>16*1024*1024||typeof d.sha256!=="string"||!/^[0-9a-f]{64}$/.test(d.sha256))return invalid();return d}function safeEnrichmentName(value){return safeFileName(value)&&!/^original(?:\.|$)/i.test(value)}function parseFileEnrichMetadata(value,maxBytes){const invalid=()=>{throw new FileOperationError("invalid_input",400)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const d=value;if(Object.keys(d).some((key)=>!["name","size","mediaType","replace"].includes(key))||!safeEnrichmentName(d.name)||!Number.isSafeInteger(d.size)||d.size<0||d.mediaType!==undefined&&(typeof d.mediaType!=="string"||d.mediaType.length>255||/[\u0000-\u001f\u007f]/.test(d.mediaType))||d.replace!==undefined&&(typeof d.replace!=="string"||!/^[0-9a-f]{64}$/.test(d.replace)))return invalid();if(d.size>maxBytes)throw new FileOperationError("request_too_large",413);return d}function safeFileName(value){return typeof value==="string"&&value.length>0&&value.length<=255&&value===value.trim()&&value!=="."&&value!==".."&&!/[\u0000-\u001f\u007f-\u009f/\\:*?"<>|]/u.test(value)&&!/[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/.test(value)&&!/[. ]$/.test(value)&&!/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(value)}function safeFilePath(value){return typeof value==="string"&&value.length<=1024&&value.split("/").every(safeFileName)}function safeManagedFilePath(value){return safeFilePath(value)&&value.split("/")[0].toLowerCase()!==".os"}function declaredOriginalMediaType(value){const normalized=value.split(";",1)[0].trim().toLowerCase();return ORIGINAL_MEDIA_TYPES.includes(normalized)?normalized:undefined}function parseFileCreateMetadata(value,maxBytes){const invalid=()=>{throw new FileOperationError("invalid_input",400)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const input=value;if(Object.keys(input).some((key)=>!["name","path","storage","csv","inputMediaType","size","requestKey"].includes(key)))return invalid();const path=input.path===undefined?"Files":input.path;if(!safeFileName(input.name)||!safeManagedFilePath(path))return invalid();if(input.storage!==undefined&&input.storage!=="remote"&&input.storage!=="local")return invalid();if(input.inputMediaType!==undefined&&(typeof input.inputMediaType!=="string"||!ORIGINAL_MEDIA_TYPES.includes(input.inputMediaType)))return invalid();if(!Number.isSafeInteger(input.size)||input.size<0)return invalid();if(input.size>maxBytes)throw new FileOperationError("request_too_large",413);if(typeof input.requestKey!=="string"||input.requestKey.length<1||input.requestKey.length>256||input.requestKey!==input.requestKey.trim()||/[\u0000-\u001f\u007f]/.test(input.requestKey))return invalid();let csv;if(input.csv!==undefined){if(!input.csv||typeof input.csv!=="object"||Array.isArray(input.csv))return invalid();const hints=input.csv;if(Object.keys(hints).some((key)=>!["encoding","delimiter","headerRow"].includes(key)))return invalid();const encoding=hints.encoding===undefined?"utf-8":hints.encoding;const delimiter=hints.delimiter===undefined?",":hints.delimiter;const headerRow=hints.headerRow===undefined?1:hints.headerRow;if(encoding!=="utf-8"&&encoding!=="windows-1252"||![",",";","\t"].includes(delimiter)||!Number.isSafeInteger(headerRow)||headerRow<1||headerRow>1e5)return invalid();csv={encoding,delimiter,headerRow}}return{name:input.name,path,...input.storage?{storage:input.storage}:{},...input.inputMediaType===undefined?{}:{inputMediaType:input.inputMediaType},...csv?{csv}:{},size:input.size,requestKey:input.requestKey}}var FileOperationError,FILE_ID_PATTERN,FILE_ORIGINAL_MAX_BYTES,ORIGINAL_MEDIA_TYPES;var init_files_contract=__esm(()=>{FileOperationError=class FileOperationError extends Error{code;status;retryable;constructor(code,status,retryable=false){super(code);this.code=code;this.status=status;this.retryable=retryable}};FILE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;FILE_ORIGINAL_MAX_BYTES=5*1024**3;ORIGINAL_MEDIA_TYPES=["application/pdf","text/plain","text/markdown","application/json","image/png","image/jpeg"]});function fail(message){throw new InboxContractError(message)}function object(value,label){if(!value||typeof value!=="object"||Array.isArray(value)||![Object.prototype,null].includes(Object.getPrototypeOf(value)))fail(`${label} must be a plain object`);return value}function keys(value,allowed,label){for(const key of Reflect.ownKeys(value)){if(typeof key!=="string"||!allowed.includes(key))fail(`${label} does not support ${String(key)}`);const descriptor=Object.getOwnPropertyDescriptor(value,key);if(!descriptor.enumerable||!("value"in descriptor))fail(`${label} must contain only JSON data`)}}function text(value,label){if(typeof value!=="string"||!value.trim())fail(`${label} must be nonempty text`);return value}function id(value,label){const result=text(value,label);if(result!==result.trim())fail(`${label} cannot have surrounding whitespace`);return result}function array(value,label){if(!Array.isArray(value)||Object.getPrototypeOf(value)!==Array.prototype||Reflect.ownKeys(value).length!==value.length+1)fail(`${label} must be a dense array`);for(let index=0;index<value.length;index+=1){const descriptor=Object.getOwnPropertyDescriptor(value,String(index));if(!descriptor?.enumerable||!("value"in descriptor))fail(`${label} must contain only JSON data`)}return value}function distinctIds(value,label,nonempty=true){const result=array(value,label).map((entry)=>id(entry,label));if(nonempty&&!result.length)fail(`${label} must not be empty`);if(new Set(result).size!==result.length)fail(`${label} contains duplicate IDs`);return result}function personReference(value,label){const result=id(value,label);return memberEmail.test(result)?result.toLowerCase():result}function distinctPeople(value,label,nonempty=true){const result=array(value,label).map((entry)=>personReference(entry,label));if(nonempty&&!result.length)fail(`${label} must not be empty`);if(new Set(result).size!==result.length)fail(`${label} contains duplicate IDs`);return result}function serializable(value,ancestors=new Set){if(value===null||typeof value==="boolean"||typeof value==="string")return value;if(typeof value==="number"&&Number.isFinite(value))return value;if(!value||typeof value!=="object")fail("Input must be losslessly serializable JSON");if(ancestors.has(value))fail("Input cannot contain cycles");ancestors.add(value);try{if(Array.isArray(value)){array(value,"JSON array");return value.map((entry)=>serializable(entry,ancestors))}const source=object(value,"JSON input");keys(source,Object.keys(source),"JSON input");return Object.fromEntries(Object.entries(source).map(([key,entry])=>[key,serializable(entry,ancestors)]))}finally{ancestors.delete(value)}}function natural(value,label,minimum=0){if(!Number.isSafeInteger(value)||value<minimum)fail(`${label} must be an integer >= ${minimum}`);return value}function validateInboxFile(value){const v=object(serializable(value),"Inbox file");keys(v,["id","name","mediaType","size","sha256","details"],"Inbox file");const fileId=id(v.id,"Inbox file ID"),name=id(v.name,"filename"),mediaType=id(v.mediaType,"media type");if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(fileId)||/[\x00-\x1f\x7f/\\]/.test(name)||!/^[a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+$/.test(mediaType)||typeof v.sha256!=="string"||!/^[0-9a-f]{64}$/.test(v.sha256))fail("Invalid Inbox file identity or metadata");const size=natural(v.size,"file size");if(size>FILE_ORIGINAL_MAX_BYTES)fail("File exceeds supported size");const d=object(v.details,"file details");let details;switch(d.kind){case"csv":keys(d,["kind","encoding","delimiter","headerRow","dataRows"],"CSV details");if(mediaType!=="text/csv"||!["utf-8","windows-1252"].includes(d.encoding)||![",",";","\t"].includes(d.delimiter))fail("Invalid CSV details");details={kind:"csv",encoding:d.encoding,delimiter:d.delimiter,headerRow:natural(d.headerRow,"header row"),dataRows:natural(d.dataRows,"data rows")};break;case"pdf":keys(d,["kind","pages"],"PDF details");if(mediaType!=="application/pdf")fail("Invalid PDF media type");details={kind:"pdf",...d.pages===undefined?{}:{pages:natural(d.pages,"PDF pages",1)}};break;case"other":keys(d,["kind"],"other file details");if(["text/csv","application/pdf"].includes(mediaType))fail("File type and details differ");details={kind:"other"};break;default:return fail("Unknown file details kind")}return{id:fileId,name,mediaType,size,sha256:v.sha256,details}}function fields(value){const result=array(value,"selected fields").map((entry)=>{const field=object(entry,"field");keys(field,["label","value"],"field");return{label:text(field.label,"field label"),value:text(field.value,"field value")}});if(new Set(result.map((field)=>field.label)).size!==result.length)fail("Duplicate field label");return result}function validateBlock(value){const b=object(serializable(value),"Block");if(b.kind==="rich-text"){keys(b,["kind","markdown"],"Rich text Block");return{kind:"rich-text",markdown:text(b.markdown,"Markdown")}}if(b.kind==="asks"){keys(b,["kind","problem","asks"],"Asks Block");const asks=distinctIds(b.asks,"Ask IDs");if(asks.some((ask)=>!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(ask)))fail("Invalid Ask ID");return{kind:"asks",problem:text(b.problem,"problem"),asks}}if(!["record","records","files"].includes(b.kind))fail("Unknown Block kind");keys(b,["kind","label","initiallyExpanded",...b.kind==="record"?["record","view"]:b.kind==="records"?["records","view"]:["files"]],"Block");const label=text(b.label,"Block label");if(b.initiallyExpanded!==undefined&&typeof b.initiallyExpanded!=="boolean")fail("Invalid initiallyExpanded");const expanded=b.initiallyExpanded===undefined?{}:{initiallyExpanded:b.initiallyExpanded};const target=b.view===undefined?{}:{view:id(b.view,"View target")};if(b.kind==="record"){const r=object(b.record,"presented record");keys(r,["ref","title","fields"],"presented record");return{kind:"record",label,...target,...expanded,record:{ref:id(r.ref,"record reference"),title:text(r.title,"record title"),fields:fields(r.fields)}}}if(b.kind==="records"){const records=array(b.records,"records").map((entry)=>{const r=object(entry,"record summary");keys(r,["ref","title","description","facts","view"],"record summary");return{ref:id(r.ref,"record reference"),title:text(r.title,"record title"),...r.description===undefined?{}:{description:text(r.description,"record description")},...r.facts===undefined?{}:{facts:fields(r.facts)},...r.view===undefined?{}:{view:id(r.view,"row View target")}}});if(!records.length||new Set(records.map((r)=>r.ref)).size!==records.length)fail("Empty or duplicate records");return{kind:"records",label,records,...target,...expanded}}const files=array(b.files,"files").map(validateInboxFile);if(!files.length||new Set(files.map((file)=>file.id)).size!==files.length)fail("Empty or duplicate files");return{kind:"files",label,files,...expanded}}function richTextBlock(value){return validateBlock({...value,kind:"rich-text"})}function recordBlock(value){return validateBlock({...value,kind:"record"})}function recordsBlock(value){return validateBlock({...value,kind:"records"})}function fileBlock(value){const input=object(serializable(value),"Files Block");const files=array(input.files,"files").map((entry)=>{const descriptor=object(entry,"File");if(!(("path"in descriptor)||("enrichments"in descriptor)))return validateInboxFile(descriptor);let file;try{file=parseFileDescriptor(descriptor)}catch{return fail("Invalid shared File descriptor")}const{id:id2,name,mediaType,size,sha256,details}=file;return{id:id2,name,mediaType,size,sha256,details}});return validateBlock({...input,kind:"files",files})}function asksBlock(value){return validateBlock({...value,kind:"asks"})}function selection(value){const input=object(value,"selection");keys(input,["source"],"selection");return validateResponseDefinition({type:"selection",source:input.source})}function validateAuthoredSource(value){const source=object(value,"response definition");keys(source,["type","options","suggestions","search"],"response definition");if(source.type!=="authored")fail("Expected authored options");const options=array(source.options,"options").map((entry)=>{const option=object(entry,"choice");keys(option,["value","label","description","note"],"choice");let note;if(option.note!==undefined){const declaration=object(option.note,"choice note");keys(declaration,["placeholder"],"choice note");note={placeholder:text(declaration.placeholder,"note placeholder")}}return{value:id(option.value,"choice value"),label:text(option.label,"choice label"),...option.description===undefined?{}:{description:text(option.description,"choice description")},...note?{note}:{}}});if(!options.length)fail("Choices require at least one option");if(new Set(options.map((option)=>option.value)).size!==options.length)fail("Duplicate choice value");if(Object.hasOwn(source,"search")||Object.hasOwn(source,"suggestions")){const labels=object(source.search,"choice search");keys(labels,["triggerLabel","placeholder","emptyLabel"],"choice search");const search={triggerLabel:text(labels.triggerLabel,"search trigger label"),placeholder:text(labels.placeholder,"search placeholder"),emptyLabel:text(labels.emptyLabel,"search empty label")};const suggestions=array(source.suggestions,"suggestions").map((value2)=>id(value2,"suggestion value"));if(suggestions.length>8||new Set(suggestions).size!==suggestions.length||suggestions.some((value2)=>!options.some((option)=>option.value===value2)))fail("Search permits at most eight unique published suggestions");return{type:"authored",options,suggestions,search}}if(options.length>9)fail("Choices require one to nine options");return{type:"authored",options}}function validateRecordReference(value){const row=object(value,"Record reference");keys(row,["repository","ref"],"Record reference");const repository=id(row.repository,"repository"),ref=id(row.ref,"Record reference");if(!/^[a-z0-9][a-z0-9._/-]{0,127}$/.test(repository)||/\.\.|\/\//.test(repository)||ref.length>512||!/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)+$/.test(ref))fail("Invalid Record identity");return{repository,ref}}function validateRecordSource(value){const source=object(value,"Record selection");keys(source,["type","collection","refPrefix","where","display","suggestions"],"Record selection");if(source.type!=="records")fail("Expected Record options");const collection=object(source.collection,"collection");keys(collection,["repository","name"],"collection");const repository=validateRecordReference({repository:collection.repository,ref:"records/example"}).repository;const name=id(collection.name,"collection name");if(!/^[a-zA-Z0-9_-]+(?:\/[a-zA-Z0-9_-]+)*$/.test(name))fail("Invalid collection name");const refPrefix=source.refPrefix===undefined?undefined:id(source.refPrefix,"Record reference prefix");if(refPrefix!==undefined&&(!refPrefix.endsWith("/")||refPrefix.length>512||!/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)*\/$/.test(refPrefix)))fail("Invalid Record reference prefix");const where=object(source.where??{},"Record filter");const fieldName=(name2)=>/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name2)&&!["constructor","prototype"].includes(name2);for(const[name2,value2]of Object.entries(where)){if(!fieldName(name2)||!(value2===null||["string","number","boolean"].includes(typeof value2))||typeof value2==="number"&&!Number.isFinite(value2))fail("Record filters require scalar equality")}const display=object(source.display,"Record display");keys(display,["labelFields"],"Record display");const labelFields=distinctIds(display.labelFields,"label fields");if(labelFields.length>2||labelFields.some((name2)=>!fieldName(name2)))fail("Select one or two scalar label fields");const suggestions=array(source.suggestions??[],"suggestions").map((value2)=>{const entry=object(value2,"suggestion");keys(entry,["record","reason"],"suggestion");const record=validateRecordReference(entry.record);if(record.repository!==repository)fail("Suggestion belongs to another repository");return{record,...entry.reason===undefined?{}:{reason:text(entry.reason,"suggestion reason")}}});if(suggestions.length>8||new Set(suggestions.map((entry)=>entry.record.ref)).size!==suggestions.length)fail("Record selection permits at most eight unique suggestions");return{type:"records",collection:{repository,name},...refPrefix?{refPrefix}:{},where:{...where},display:{labelFields},suggestions}}function validateResponseDefinition(value){const definition=object(value,"response definition");keys(definition,["type","source"],"response definition");if(definition.type!=="selection")fail("Expected a selection definition");const source=object(definition.source,"option source");switch(source.type){case"authored":return{type:"selection",source:validateAuthoredSource(source)};case"records":return{type:"selection",source:validateRecordSource(source)};default:return fail("Unsupported option source")}}function handlerReference(value){const source=object(value,"handler reference");keys(source,["id","input"],"handler reference");return{id:id(source.id,"handler ID"),input:serializable(source.input)}}function defineHandler(value){const source=object(value,"handler");keys(source,["id","results","run"],"handler");const stable=(value2)=>typeof value2==="string"&&/^[a-zA-Z0-9][a-zA-Z0-9_./-]{0,127}$/.test(value2);if(!stable(source.id))fail("Handler ID must be stable");const results=source.results===undefined?undefined:distinctIds(source.results,"handler results",false);if(results&&(results.length>64||results.some((result)=>!stable(result))))fail("Handler results must be stable IDs");if(typeof source.run!=="function")fail("Handler requires a run function");return Object.freeze({id:value.id,...results===undefined?{}:{results:Object.freeze(results.sort())},run:value.run})}function respond(handler,input){defineHandler(handler);return handlerReference({id:handler.id,input})}function question(value){const source=object(value,"question");keys(source,["id","to","allowedResponders","prompt","instructions","response","handler"],"question");const to=personReference(source.to,"question assignee");const allowedResponders=source.allowedResponders===undefined?[to]:distinctPeople(source.allowedResponders,"allowed responders");if(!allowedResponders.includes(to))fail("Allowed responders must include the assignee");return{id:id(source.id,"question ID"),to,allowedResponders,prompt:text(source.prompt,"question prompt"),...source.instructions===undefined?{}:{instructions:text(source.instructions,"instructions")},response:validateResponseDefinition(source.response),...Object.hasOwn(source,"handler")?{handler:handlerReference(source.handler)}:{}}}function presentation(source){const views=source.views===undefined?[]:array(source.views,"views").map((entry)=>{const view=object(entry,"view");keys(view,["id","view","input"],"view");return{id:id(view.id,"view ID"),view:id(view.view,"view name"),input:serializable(view.input)}});if(new Set(views.map((view)=>view.id)).size!==views.length)fail("Duplicate view ID");const body=source.body===undefined?[]:array(source.body,"body").map(validateBlock);for(const block of body){const targets=block.kind==="record"?[block.view]:block.kind==="records"?[block.view,...block.records.map((record)=>record.view)]:[];for(const target of targets)if(target!==undefined&&!views.some((view)=>view.id===target))fail(`Unknown Block View target: ${target}`)}return{title:text(source.title,"title"),description:text(source.description,"description"),views,body}}function validatePublication(value){const source=object(value,"publication");if(source.kind!=="ask"&&source.kind!=="digest")fail("Publication requires an explicit kind");keys(source,["kind","title","description","recipients","views","body","notifyImmediately",...source.kind==="ask"?["questions","tags","recordRefs"]:[]],"publication");if(source.notifyImmediately!==undefined&&typeof source.notifyImmediately!=="boolean")fail("notifyImmediately must be a boolean");const itemPresentation={...presentation(source),...source.notifyImmediately===undefined?{}:{notifyImmediately:source.notifyImmediately}};const linkedAsks=(itemPresentation.body??[]).flatMap((block)=>block.kind==="asks"?block.asks:[]);if(new Set(linkedAsks).size!==linkedAsks.length)fail("Ask belongs to more than one problem");if(source.kind==="digest")return{kind:"digest",...itemPresentation,recipients:distinctPeople(source.recipients,"digest recipients")};if(itemPresentation.body?.some((block)=>block.kind==="asks"))fail("Asks Blocks belong to Digests");const questions=array(source.questions===undefined?[]:source.questions,"questions").map((value2)=>question(value2));if(new Set(questions.map((entry)=>entry.id)).size!==questions.length)fail("Duplicate question ID");const extra=source.recipients===undefined?[]:distinctPeople(source.recipients,"recipients",false);if(!questions.length&&!extra.length)fail("Ask requires at least one recipient");const tags=array(source.tags===undefined?[]:source.tags,"Ask tags").map((value2)=>{const tag=text(value2,"Ask tag");if(new TextEncoder().encode(tag).byteLength>64)fail("Ask tag exceeds 64 UTF-8 bytes");return tag});if(tags.length>32||new Set(tags).size!==tags.length)fail("Ask tags exceed bounds or contain duplicates");const recordRefs=array(source.recordRefs===undefined?[]:source.recordRefs,"Ask Record references").map((value2)=>{const row=object(value2,"Ask Record reference");keys(row,["repository","id"],"Ask Record reference");const{repository,ref}=validateRecordReference({repository:row.repository,ref:row.id});return{repository,id:ref}});if(new Set(recordRefs.map((ref)=>JSON.stringify([ref.repository,ref.id]))).size!==recordRefs.length)fail("Ask Record references contain duplicates");return{kind:"ask",...itemPresentation,questions,tags,recordRefs,recipients:[...new Set([...extra,...questions.flatMap((entry)=>[entry.to,...entry.allowedResponders])])]}}function continueAsk(value){const source=object(value,"continueAsk");keys(source,[],"continueAsk");return{type:"continue"}}function resolution(value){const source=object(value,"resolution");keys(source,["outcome","evidence"],"resolution");return{outcome:text(source.outcome,"outcome"),...source.evidence===undefined?{}:{evidence:array(source.evidence,"evidence").map((entry)=>serializable(entry))}}}function resolveAsk(value){return{type:"resolve",...resolution(value)}}function validateResolution(value){const source=object(value,"published resolution");keys(source,["expectedRevision","outcome","evidence"],"published resolution");if(!Number.isSafeInteger(source.expectedRevision)||source.expectedRevision<1)fail("Expected revision must be a positive integer");return{expectedRevision:source.expectedRevision,...resolution({outcome:source.outcome,...source.evidence===undefined?{}:{evidence:source.evidence}})}}function publicationRequestKey(value){const options=object(value,"publication options");keys(options,["requestKey"],"publication options");return id(options.requestKey,"publication request key")}function createInboxPublisher(transport){return{async publishAsk(value,options){const source=object(value,"ask");keys(source,["title","description","recipients","views","body","questions","notifyImmediately","tags","recordRefs"],"ask");const result=await transport.publish({requestKey:publicationRequestKey(options),item:validatePublication({...source,kind:"ask"})});id(result.id,"published ask ID");if(!("revision"in result)||!Number.isSafeInteger(result.revision)||result.revision!==1)fail("Initial ask publication must return revision 1");return{id:result.id,revision:result.revision}},async publishDigest(value,options){const source=object(value,"digest");keys(source,["title","description","recipients","views","body","notifyImmediately"],"digest");const result=await transport.publish({requestKey:publicationRequestKey(options),item:validatePublication({...source,kind:"digest"})});return{id:id(result.id,"published digest ID")}},async publishResolution(askId,value){await transport.resolve({askId:id(askId,"ask ID"),resolution:validateResolution(value)})}}}var InboxContractError,memberEmail;var init_inbox_contract=__esm(()=>{init_files_contract();InboxContractError=class InboxContractError extends Error{constructor(message){super(message);this.name="InboxContractError"}};memberEmail=/^[^\s@]+@[^\s@]+\.[^\s@]+$/});function __rest(s,e){var t={};for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t[p]=s[p];if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++){if(e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i]))t[p[i]]=s[p[i]]}return t}var init_tslib_es6=()=>{};var version="2.116.0";var AUTO_REFRESH_TICK_DURATION_MS,AUTO_REFRESH_TICK_THRESHOLD=3,EXPIRY_MARGIN_MS,REFRESH_FAILURE_COOLDOWN_MS,GOTRUE_URL="http://localhost:9999",STORAGE_KEY="supabase.auth.token",DEFAULT_HEADERS,API_VERSION_HEADER_NAME="X-Supabase-Api-Version",API_VERSIONS,BASE64URL_REGEX,PKCE_FLOW_ID_PARAM="sb_flow_id",PKCE_MAX_CONCURRENT_FLOWS=5,JWKS_TTL;var init_constants=__esm(()=>{AUTO_REFRESH_TICK_DURATION_MS=30*1000;EXPIRY_MARGIN_MS=AUTO_REFRESH_TICK_THRESHOLD*AUTO_REFRESH_TICK_DURATION_MS;REFRESH_FAILURE_COOLDOWN_MS=2*AUTO_REFRESH_TICK_DURATION_MS;DEFAULT_HEADERS={"X-Client-Info":`gotrue-js/${version}`};API_VERSIONS={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}};BASE64URL_REGEX=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i;JWKS_TTL=10*60*1000});function isAuthError(error){return typeof error==="object"&&error!==null&&"__isAuthError"in error}function isAuthApiError(error){return isAuthError(error)&&error.name==="AuthApiError"}function isAuthSessionMissingError(error){return isAuthError(error)&&error.name==="AuthSessionMissingError"}function isAuthImplicitGrantRedirectError(error){return isAuthError(error)&&error.name==="AuthImplicitGrantRedirectError"}function isAuthRetryableFetchError(error){return isAuthError(error)&&error.name==="AuthRetryableFetchError"}function isAuthRefreshDiscardedError(error){return isAuthError(error)&&error.name==="AuthRefreshDiscardedError"}var AuthError,AuthApiError,AuthUnknownError,CustomAuthError,AuthSessionMissingError,AuthInvalidTokenResponseError,AuthInvalidCredentialsError,AuthImplicitGrantRedirectError,AuthPKCEGrantCodeExchangeError,AuthPKCECodeVerifierMissingError,AuthRetryableFetchError,AuthRefreshDiscardedError,AuthWeakPasswordError,AuthInvalidJwtError;var init_errors=__esm(()=>{AuthError=class AuthError extends Error{constructor(message,status,code){super(message);this.__isAuthError=true;this.name="AuthError";this.status=status;this.code=code}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}};AuthApiError=class AuthApiError extends AuthError{constructor(message,status,code){super(message,status,code);this.name="AuthApiError";this.status=status;this.code=code}};AuthUnknownError=class AuthUnknownError extends AuthError{constructor(message,originalError){super(message);this.name="AuthUnknownError";this.originalError=originalError}};CustomAuthError=class CustomAuthError extends AuthError{constructor(message,name,status,code){super(message,status,code);this.name=name;this.status=status}};AuthSessionMissingError=class AuthSessionMissingError extends CustomAuthError{constructor(){super("Auth session missing!","AuthSessionMissingError",400,undefined)}};AuthInvalidTokenResponseError=class AuthInvalidTokenResponseError extends CustomAuthError{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,undefined)}};AuthInvalidCredentialsError=class AuthInvalidCredentialsError extends CustomAuthError{constructor(message){super(message,"AuthInvalidCredentialsError",400,undefined)}};AuthImplicitGrantRedirectError=class AuthImplicitGrantRedirectError extends CustomAuthError{constructor(message,details=null){super(message,"AuthImplicitGrantRedirectError",500,undefined);this.details=null;this.details=details}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}};AuthPKCEGrantCodeExchangeError=class AuthPKCEGrantCodeExchangeError extends CustomAuthError{constructor(message,details=null){super(message,"AuthPKCEGrantCodeExchangeError",500,undefined);this.details=null;this.details=details}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}};AuthPKCECodeVerifierMissingError=class AuthPKCECodeVerifierMissingError extends CustomAuthError{constructor(){super("PKCE code verifier not found in storage. "+"This can happen if the auth flow was initiated in a different browser or device, "+"or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), "+"use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}};AuthRetryableFetchError=class AuthRetryableFetchError extends CustomAuthError{constructor(message,status){super(message,"AuthRetryableFetchError",status,undefined)}};AuthRefreshDiscardedError=class AuthRefreshDiscardedError extends CustomAuthError{constructor(message="Refresh result discarded: session state changed mid-flight (e.g., concurrent signOut)"){super(message,"AuthRefreshDiscardedError",409,undefined)}};AuthWeakPasswordError=class AuthWeakPasswordError extends CustomAuthError{constructor(message,status,reasons){super(message,"AuthWeakPasswordError",status,"weak_password");this.reasons=reasons}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}};AuthInvalidJwtError=class AuthInvalidJwtError extends CustomAuthError{constructor(message){super(message,"AuthInvalidJwtError",400,"invalid_jwt")}}});function byteToBase64URL(byte,state,emit){if(byte!==null){state.queue=state.queue<<8|byte;state.queuedBits+=8;while(state.queuedBits>=6){const pos=state.queue>>state.queuedBits-6&63;emit(TO_BASE64URL[pos]);state.queuedBits-=6}}else if(state.queuedBits>0){state.queue=state.queue<<6-state.queuedBits;state.queuedBits=6;while(state.queuedBits>=6){const pos=state.queue>>state.queuedBits-6&63;emit(TO_BASE64URL[pos]);state.queuedBits-=6}}}function byteFromBase64URL(charCode,state,emit){const bits=FROM_BASE64URL[charCode];if(bits>-1){state.queue=state.queue<<6|bits;state.queuedBits+=6;while(state.queuedBits>=8){emit(state.queue>>state.queuedBits-8&255);state.queuedBits-=8}}else if(bits===-2){return}else{throw new Error(`Invalid Base64-URL character "${String.fromCharCode(charCode)}"`)}}function stringFromBase64URL(str){const conv=[];const utf8Emit=(codepoint)=>{conv.push(String.fromCodePoint(codepoint))};const utf8State={utf8seq:0,codepoint:0};const b64State={queue:0,queuedBits:0};const byteEmit=(byte)=>{stringFromUTF8(byte,utf8State,utf8Emit)};for(let i=0;i<str.length;i+=1){byteFromBase64URL(str.charCodeAt(i),b64State,byteEmit)}return conv.join("")}function codepointToUTF8(codepoint,emit){if(codepoint<=127){emit(codepoint);return}else if(codepoint<=2047){emit(192|codepoint>>6);emit(128|codepoint&63);return}else if(codepoint<=65535){emit(224|codepoint>>12);emit(128|codepoint>>6&63);emit(128|codepoint&63);return}else if(codepoint<=1114111){emit(240|codepoint>>18);emit(128|codepoint>>12&63);emit(128|codepoint>>6&63);emit(128|codepoint&63);return}throw new Error(`Unrecognized Unicode codepoint: ${codepoint.toString(16)}`)}function stringToUTF8(str,emit){for(let i=0;i<str.length;i+=1){let codepoint=str.charCodeAt(i);if(codepoint>55295&&codepoint<=56319){const highSurrogate=(codepoint-55296)*1024&65535;const lowSurrogate=str.charCodeAt(i+1)-56320&65535;codepoint=(lowSurrogate|highSurrogate)+65536;i+=1}codepointToUTF8(codepoint,emit)}}function stringFromUTF8(byte,state,emit){if(state.utf8seq===0){if(byte<=127){emit(byte);return}for(let leadingBit=1;leadingBit<6;leadingBit+=1){if((byte>>7-leadingBit&1)===0){state.utf8seq=leadingBit;break}}if(state.utf8seq===2){state.codepoint=byte&31}else if(state.utf8seq===3){state.codepoint=byte&15}else if(state.utf8seq===4){state.codepoint=byte&7}else{throw new Error("Invalid UTF-8 sequence")}state.utf8seq-=1}else if(state.utf8seq>0){if(byte<=127){throw new Error("Invalid UTF-8 sequence")}state.codepoint=state.codepoint<<6|byte&63;state.utf8seq-=1;if(state.utf8seq===0){emit(state.codepoint)}}}function base64UrlToUint8Array(str){const result2=[];const state={queue:0,queuedBits:0};const onByte=(byte)=>{result2.push(byte)};for(let i=0;i<str.length;i+=1){byteFromBase64URL(str.charCodeAt(i),state,onByte)}return new Uint8Array(result2)}function stringToUint8Array(str){const result2=[];stringToUTF8(str,(byte)=>result2.push(byte));return new Uint8Array(result2)}function bytesToBase64URL(bytes){const result2=[];const state={queue:0,queuedBits:0};const onChar=(char)=>{result2.push(char)};bytes.forEach((byte)=>byteToBase64URL(byte,state,onChar));byteToBase64URL(null,state,onChar);return result2.join("")}var TO_BASE64URL,IGNORE_BASE64URL,FROM_BASE64URL;var init_base64url=__esm(()=>{TO_BASE64URL="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split("");IGNORE_BASE64URL=`
|
|
1
|
+
var __defProp=Object.defineProperty;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true,configurable:true,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);var __require=((x)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(x,{get:(a,b)=>(typeof require!=="undefined"?require:a)[b]}):x)(function(x){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});function parseFileDescriptor(value){const invalid=()=>{throw new FileOperationError("unavailable",503,true)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const f=value;if(Object.keys(f).sort().join(",")!=="enrichments,id,mediaType,name,path,sha256,size"||typeof f.id!=="string"||!FILE_ID_PATTERN.test(f.id)||!safeFileName(f.name)||!safeFilePath(f.path)||!Number.isSafeInteger(f.size)||f.size<0||f.size>FILE_ORIGINAL_MAX_BYTES||typeof f.sha256!=="string"||!/^[0-9a-f]{64}$/.test(f.sha256)||!f.enrichments||typeof f.enrichments!=="object"||Array.isArray(f.enrichments)||!isCanonicalOriginalMediaType(f.mediaType))return invalid();for(const[name,descriptor]of Object.entries(f.enrichments)){if(!safeEnrichmentName(name))return invalid();parseEnrichmentDescriptor(descriptor)}if(new TextEncoder().encode(JSON.stringify(f)).byteLength>16*1024)return invalid();return f}function parseEnrichmentDescriptor(value){const invalid=()=>{throw new FileOperationError("unavailable",503,true)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const d=value;if(Object.keys(d).sort().join(",")!=="mediaType,sha256,size"||!["application/octet-stream","text/plain","text/markdown","application/json"].includes(d.mediaType)||!Number.isSafeInteger(d.size)||d.size<0||d.size>16*1024*1024||typeof d.sha256!=="string"||!/^[0-9a-f]{64}$/.test(d.sha256))return invalid();return d}function safeEnrichmentName(value){return safeFileName(value)&&!/^original(?:\.|$)/i.test(value)}function parseFileEnrichMetadata(value,maxBytes){const invalid=()=>{throw new FileOperationError("invalid_input",400)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const d=value;if(Object.keys(d).some((key)=>!["name","size","mediaType","replace"].includes(key))||!safeEnrichmentName(d.name)||!Number.isSafeInteger(d.size)||d.size<0||d.mediaType!==undefined&&(typeof d.mediaType!=="string"||d.mediaType.length>255||/[\u0000-\u001f\u007f]/.test(d.mediaType))||d.replace!==undefined&&(typeof d.replace!=="string"||!/^[0-9a-f]{64}$/.test(d.replace)))return invalid();if(d.size>maxBytes)throw new FileOperationError("request_too_large",413);return d}function safeFileName(value){return typeof value==="string"&&value.length>0&&value.length<=255&&value===value.trim()&&value!=="."&&value!==".."&&!/[\u0000-\u001f\u007f-\u009f/\\:*?"<>|]/u.test(value)&&!/[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/.test(value)&&!/[. ]$/.test(value)&&!/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(value)}function safeFilePath(value){return typeof value==="string"&&value.length<=1024&&value.split("/").every(safeFileName)}function safeManagedFilePath(value){return safeFilePath(value)&&value.split("/")[0].toLowerCase()!==".os"}function declaredOriginalMediaType(value){if(typeof value!=="string"||value.length>255||/[\u0000-\u001f\u007f-\u009f]/.test(value))throw new FileOperationError("invalid_input",400);const normalized=value.split(";",1)[0].trim().toLowerCase();const token="[a-z0-9!#$%&'+.^_`|~-]+";if(!new RegExp(`^${token}/${token}$`).test(normalized))throw new FileOperationError("invalid_input",400);return normalized}function isCanonicalOriginalMediaType(value){try{return declaredOriginalMediaType(value)===value}catch{return false}}function parseFileCreateMetadata(value,maxBytes){const invalid=()=>{throw new FileOperationError("invalid_input",400)};if(!value||typeof value!=="object"||Array.isArray(value))return invalid();const input=value;if(Object.keys(input).some((key)=>!["name","path","storage","mediaType","size","requestKey"].includes(key)))return invalid();const path=input.path===undefined?"Files":input.path;if(!safeFileName(input.name)||!safeManagedFilePath(path))return invalid();if(input.storage!==undefined&&input.storage!=="remote"&&input.storage!=="local")return invalid();const mediaType=input.mediaType===undefined?"application/octet-stream":declaredOriginalMediaType(input.mediaType);if(!Number.isSafeInteger(input.size)||input.size<0)return invalid();if(input.size>maxBytes)throw new FileOperationError("request_too_large",413);if(typeof input.requestKey!=="string"||input.requestKey.length<1||input.requestKey.length>256||input.requestKey!==input.requestKey.trim()||/[\u0000-\u001f\u007f]/.test(input.requestKey))return invalid();return{name:input.name,path,...input.storage?{storage:input.storage}:{},mediaType,size:input.size,requestKey:input.requestKey}}var FileOperationError,FILE_ID_PATTERN,FILE_ORIGINAL_MAX_BYTES;var init_files_contract=__esm(()=>{FileOperationError=class FileOperationError extends Error{code;status;retryable;constructor(code,status,retryable=false){super(code);this.code=code;this.status=status;this.retryable=retryable}};FILE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;FILE_ORIGINAL_MAX_BYTES=5*1024**3});function fail(message){throw new InboxContractError(message)}function object(value,label){if(!value||typeof value!=="object"||Array.isArray(value)||![Object.prototype,null].includes(Object.getPrototypeOf(value)))fail(`${label} must be a plain object`);return value}function keys(value,allowed,label){for(const key of Reflect.ownKeys(value)){if(typeof key!=="string"||!allowed.includes(key))fail(`${label} does not support ${String(key)}`);const descriptor=Object.getOwnPropertyDescriptor(value,key);if(!descriptor.enumerable||!("value"in descriptor))fail(`${label} must contain only JSON data`)}}function text(value,label){if(typeof value!=="string"||!value.trim())fail(`${label} must be nonempty text`);return value}function id(value,label){const result=text(value,label);if(result!==result.trim())fail(`${label} cannot have surrounding whitespace`);return result}function array(value,label){if(!Array.isArray(value)||Object.getPrototypeOf(value)!==Array.prototype||Reflect.ownKeys(value).length!==value.length+1)fail(`${label} must be a dense array`);for(let index=0;index<value.length;index+=1){const descriptor=Object.getOwnPropertyDescriptor(value,String(index));if(!descriptor?.enumerable||!("value"in descriptor))fail(`${label} must contain only JSON data`)}return value}function distinctIds(value,label,nonempty=true){const result=array(value,label).map((entry)=>id(entry,label));if(nonempty&&!result.length)fail(`${label} must not be empty`);if(new Set(result).size!==result.length)fail(`${label} contains duplicate IDs`);return result}function personReference(value,label){const result=id(value,label);return memberEmail.test(result)?result.toLowerCase():result}function distinctPeople(value,label,nonempty=true){const result=array(value,label).map((entry)=>personReference(entry,label));if(nonempty&&!result.length)fail(`${label} must not be empty`);if(new Set(result).size!==result.length)fail(`${label} contains duplicate IDs`);return result}function serializable(value,ancestors=new Set){if(value===null||typeof value==="boolean"||typeof value==="string")return value;if(typeof value==="number"&&Number.isFinite(value))return value;if(!value||typeof value!=="object")fail("Input must be losslessly serializable JSON");if(ancestors.has(value))fail("Input cannot contain cycles");ancestors.add(value);try{if(Array.isArray(value)){array(value,"JSON array");return value.map((entry)=>serializable(entry,ancestors))}const source=object(value,"JSON input");keys(source,Object.keys(source),"JSON input");return Object.fromEntries(Object.entries(source).map(([key,entry])=>[key,serializable(entry,ancestors)]))}finally{ancestors.delete(value)}}function natural(value,label,minimum=0){if(!Number.isSafeInteger(value)||value<minimum)fail(`${label} must be an integer >= ${minimum}`);return value}function validateInboxFile(value){const v=object(serializable(value),"Inbox file");keys(v,["id","name","mediaType","size","sha256"],"Inbox file");const fileId=id(v.id,"Inbox file ID"),name=id(v.name,"filename"),mediaType=id(v.mediaType,"media type");if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(fileId)||/[\x00-\x1f\x7f/\\]/.test(name)||!isCanonicalOriginalMediaType(mediaType)||typeof v.sha256!=="string"||!/^[0-9a-f]{64}$/.test(v.sha256))fail("Invalid Inbox file identity or metadata");const size=natural(v.size,"file size");if(size>FILE_ORIGINAL_MAX_BYTES)fail("File exceeds supported size");return{id:fileId,name,mediaType,size,sha256:v.sha256}}function fields(value){const result=array(value,"selected fields").map((entry)=>{const field=object(entry,"field");keys(field,["label","value"],"field");return{label:text(field.label,"field label"),value:text(field.value,"field value")}});if(new Set(result.map((field)=>field.label)).size!==result.length)fail("Duplicate field label");return result}function validateBlock(value){const b=object(serializable(value),"Block");if(b.kind==="rich-text"){keys(b,["kind","markdown"],"Rich text Block");return{kind:"rich-text",markdown:text(b.markdown,"Markdown")}}if(b.kind==="asks"){keys(b,["kind","problem","asks"],"Asks Block");const asks=distinctIds(b.asks,"Ask IDs");if(asks.some((ask)=>!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(ask)))fail("Invalid Ask ID");return{kind:"asks",problem:text(b.problem,"problem"),asks}}if(!["record","records","files"].includes(b.kind))fail("Unknown Block kind");keys(b,["kind","label","initiallyExpanded",...b.kind==="record"?["record","view"]:b.kind==="records"?["records","view"]:["files"]],"Block");const label=text(b.label,"Block label");if(b.initiallyExpanded!==undefined&&typeof b.initiallyExpanded!=="boolean")fail("Invalid initiallyExpanded");const expanded=b.initiallyExpanded===undefined?{}:{initiallyExpanded:b.initiallyExpanded};const target=b.view===undefined?{}:{view:id(b.view,"View target")};if(b.kind==="record"){const r=object(b.record,"presented record");keys(r,["ref","title","fields"],"presented record");return{kind:"record",label,...target,...expanded,record:{ref:id(r.ref,"record reference"),title:text(r.title,"record title"),fields:fields(r.fields)}}}if(b.kind==="records"){const records=array(b.records,"records").map((entry)=>{const r=object(entry,"record summary");keys(r,["ref","title","description","facts","view"],"record summary");return{ref:id(r.ref,"record reference"),title:text(r.title,"record title"),...r.description===undefined?{}:{description:text(r.description,"record description")},...r.facts===undefined?{}:{facts:fields(r.facts)},...r.view===undefined?{}:{view:id(r.view,"row View target")}}});if(!records.length||new Set(records.map((r)=>r.ref)).size!==records.length)fail("Empty or duplicate records");return{kind:"records",label,records,...target,...expanded}}const files=array(b.files,"files").map(validateInboxFile);if(!files.length||new Set(files.map((file)=>file.id)).size!==files.length)fail("Empty or duplicate files");return{kind:"files",label,files,...expanded}}function richTextBlock(value){return validateBlock({...value,kind:"rich-text"})}function recordBlock(value){return validateBlock({...value,kind:"record"})}function recordsBlock(value){return validateBlock({...value,kind:"records"})}function fileBlock(value){const input=object(serializable(value),"Files Block");const files=array(input.files,"files").map((entry)=>{const descriptor=object(entry,"File");if(!(("path"in descriptor)||("enrichments"in descriptor)))return validateInboxFile(descriptor);let file;try{file=parseFileDescriptor(descriptor)}catch{return fail("Invalid shared File descriptor")}const{id:id2,name,mediaType,size,sha256}=file;return{id:id2,name,mediaType,size,sha256}});return validateBlock({...input,kind:"files",files})}function asksBlock(value){return validateBlock({...value,kind:"asks"})}function selection(value){const input=object(value,"selection");keys(input,["source"],"selection");return validateResponseDefinition({type:"selection",source:input.source})}function validateAuthoredSource(value){const source=object(value,"response definition");keys(source,["type","options","suggestions","search"],"response definition");if(source.type!=="authored")fail("Expected authored options");const options=array(source.options,"options").map((entry)=>{const option=object(entry,"choice");keys(option,["value","label","description","note"],"choice");let note;if(option.note!==undefined){const declaration=object(option.note,"choice note");keys(declaration,["placeholder"],"choice note");note={placeholder:text(declaration.placeholder,"note placeholder")}}return{value:id(option.value,"choice value"),label:text(option.label,"choice label"),...option.description===undefined?{}:{description:text(option.description,"choice description")},...note?{note}:{}}});if(!options.length)fail("Choices require at least one option");if(new Set(options.map((option)=>option.value)).size!==options.length)fail("Duplicate choice value");if(Object.hasOwn(source,"search")||Object.hasOwn(source,"suggestions")){const labels=object(source.search,"choice search");keys(labels,["triggerLabel","placeholder","emptyLabel"],"choice search");const search={triggerLabel:text(labels.triggerLabel,"search trigger label"),placeholder:text(labels.placeholder,"search placeholder"),emptyLabel:text(labels.emptyLabel,"search empty label")};const suggestions=array(source.suggestions,"suggestions").map((value2)=>id(value2,"suggestion value"));if(suggestions.length>8||new Set(suggestions).size!==suggestions.length||suggestions.some((value2)=>!options.some((option)=>option.value===value2)))fail("Search permits at most eight unique published suggestions");return{type:"authored",options,suggestions,search}}if(options.length>9)fail("Choices require one to nine options");return{type:"authored",options}}function validateRecordReference(value){const row=object(value,"Record reference");keys(row,["repository","ref"],"Record reference");const repository=id(row.repository,"repository"),ref=id(row.ref,"Record reference");if(!/^[a-z0-9][a-z0-9._/-]{0,127}$/.test(repository)||/\.\.|\/\//.test(repository)||ref.length>512||!/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)+$/.test(ref))fail("Invalid Record identity");return{repository,ref}}function validateRecordSource(value){const source=object(value,"Record selection");keys(source,["type","collection","refPrefix","where","display","suggestions"],"Record selection");if(source.type!=="records")fail("Expected Record options");const collection=object(source.collection,"collection");keys(collection,["repository","name"],"collection");const repository=validateRecordReference({repository:collection.repository,ref:"records/example"}).repository;const name=id(collection.name,"collection name");if(!/^[a-zA-Z0-9_-]+(?:\/[a-zA-Z0-9_-]+)*$/.test(name))fail("Invalid collection name");const refPrefix=source.refPrefix===undefined?undefined:id(source.refPrefix,"Record reference prefix");if(refPrefix!==undefined&&(!refPrefix.endsWith("/")||refPrefix.length>512||!/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)*\/$/.test(refPrefix)))fail("Invalid Record reference prefix");const where=object(source.where??{},"Record filter");const fieldName=(name2)=>/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name2)&&!["constructor","prototype"].includes(name2);for(const[name2,value2]of Object.entries(where)){if(!fieldName(name2)||!(value2===null||["string","number","boolean"].includes(typeof value2))||typeof value2==="number"&&!Number.isFinite(value2))fail("Record filters require scalar equality")}const display=object(source.display,"Record display");keys(display,["labelFields"],"Record display");const labelFields=distinctIds(display.labelFields,"label fields");if(labelFields.length>2||labelFields.some((name2)=>!fieldName(name2)))fail("Select one or two scalar label fields");const suggestions=array(source.suggestions??[],"suggestions").map((value2)=>{const entry=object(value2,"suggestion");keys(entry,["record","reason"],"suggestion");const record=validateRecordReference(entry.record);if(record.repository!==repository)fail("Suggestion belongs to another repository");return{record,...entry.reason===undefined?{}:{reason:text(entry.reason,"suggestion reason")}}});if(suggestions.length>8||new Set(suggestions.map((entry)=>entry.record.ref)).size!==suggestions.length)fail("Record selection permits at most eight unique suggestions");return{type:"records",collection:{repository,name},...refPrefix?{refPrefix}:{},where:{...where},display:{labelFields},suggestions}}function validateResponseDefinition(value){const definition=object(value,"response definition");keys(definition,["type","source"],"response definition");if(definition.type!=="selection")fail("Expected a selection definition");const source=object(definition.source,"option source");switch(source.type){case"authored":return{type:"selection",source:validateAuthoredSource(source)};case"records":return{type:"selection",source:validateRecordSource(source)};default:return fail("Unsupported option source")}}function handlerReference(value){const source=object(value,"handler reference");keys(source,["id","input"],"handler reference");return{id:id(source.id,"handler ID"),input:serializable(source.input)}}function defineHandler(value){const source=object(value,"handler");keys(source,["id","results","run"],"handler");const stable=(value2)=>typeof value2==="string"&&/^[a-zA-Z0-9][a-zA-Z0-9_./-]{0,127}$/.test(value2);if(!stable(source.id))fail("Handler ID must be stable");const results=source.results===undefined?undefined:distinctIds(source.results,"handler results",false);if(results&&(results.length>64||results.some((result)=>!stable(result))))fail("Handler results must be stable IDs");if(typeof source.run!=="function")fail("Handler requires a run function");return Object.freeze({id:value.id,...results===undefined?{}:{results:Object.freeze(results.sort())},run:value.run})}function respond(handler,input){defineHandler(handler);return handlerReference({id:handler.id,input})}function question(value){const source=object(value,"question");keys(source,["id","to","allowedResponders","prompt","instructions","response","handler"],"question");const to=personReference(source.to,"question assignee");const allowedResponders=source.allowedResponders===undefined?[to]:distinctPeople(source.allowedResponders,"allowed responders");if(!allowedResponders.includes(to))fail("Allowed responders must include the assignee");return{id:id(source.id,"question ID"),to,allowedResponders,prompt:text(source.prompt,"question prompt"),...source.instructions===undefined?{}:{instructions:text(source.instructions,"instructions")},response:validateResponseDefinition(source.response),...Object.hasOwn(source,"handler")?{handler:handlerReference(source.handler)}:{}}}function presentation(source){const views=source.views===undefined?[]:array(source.views,"views").map((entry)=>{const view=object(entry,"view");keys(view,["id","view","input"],"view");return{id:id(view.id,"view ID"),view:id(view.view,"view name"),input:serializable(view.input)}});if(new Set(views.map((view)=>view.id)).size!==views.length)fail("Duplicate view ID");const body=source.body===undefined?[]:array(source.body,"body").map(validateBlock);for(const block of body){const targets=block.kind==="record"?[block.view]:block.kind==="records"?[block.view,...block.records.map((record)=>record.view)]:[];for(const target of targets)if(target!==undefined&&!views.some((view)=>view.id===target))fail(`Unknown Block View target: ${target}`)}return{title:text(source.title,"title"),description:text(source.description,"description"),views,body}}function validatePublication(value){const source=object(value,"publication");if(source.kind!=="ask"&&source.kind!=="digest")fail("Publication requires an explicit kind");keys(source,["kind","title","description","recipients","views","body","notifyImmediately",...source.kind==="ask"?["questions","tags","recordRefs"]:[]],"publication");if(source.notifyImmediately!==undefined&&typeof source.notifyImmediately!=="boolean")fail("notifyImmediately must be a boolean");const itemPresentation={...presentation(source),...source.notifyImmediately===undefined?{}:{notifyImmediately:source.notifyImmediately}};const linkedAsks=(itemPresentation.body??[]).flatMap((block)=>block.kind==="asks"?block.asks:[]);if(new Set(linkedAsks).size!==linkedAsks.length)fail("Ask belongs to more than one problem");if(source.kind==="digest")return{kind:"digest",...itemPresentation,recipients:distinctPeople(source.recipients,"digest recipients")};if(itemPresentation.body?.some((block)=>block.kind==="asks"))fail("Asks Blocks belong to Digests");const questions=array(source.questions===undefined?[]:source.questions,"questions").map((value2)=>question(value2));if(new Set(questions.map((entry)=>entry.id)).size!==questions.length)fail("Duplicate question ID");const extra=source.recipients===undefined?[]:distinctPeople(source.recipients,"recipients",false);if(!questions.length&&!extra.length)fail("Ask requires at least one recipient");const tags=array(source.tags===undefined?[]:source.tags,"Ask tags").map((value2)=>{const tag=text(value2,"Ask tag");if(new TextEncoder().encode(tag).byteLength>64)fail("Ask tag exceeds 64 UTF-8 bytes");return tag});if(tags.length>32||new Set(tags).size!==tags.length)fail("Ask tags exceed bounds or contain duplicates");const recordRefs=array(source.recordRefs===undefined?[]:source.recordRefs,"Ask Record references").map((value2)=>{const row=object(value2,"Ask Record reference");keys(row,["repository","id"],"Ask Record reference");const{repository,ref}=validateRecordReference({repository:row.repository,ref:row.id});return{repository,id:ref}});if(new Set(recordRefs.map((ref)=>JSON.stringify([ref.repository,ref.id]))).size!==recordRefs.length)fail("Ask Record references contain duplicates");return{kind:"ask",...itemPresentation,questions,tags,recordRefs,recipients:[...new Set([...extra,...questions.flatMap((entry)=>[entry.to,...entry.allowedResponders])])]}}function continueAsk(value){const source=object(value,"continueAsk");keys(source,[],"continueAsk");return{type:"continue"}}function resolution(value){const source=object(value,"resolution");keys(source,["outcome","evidence"],"resolution");return{outcome:text(source.outcome,"outcome"),...source.evidence===undefined?{}:{evidence:array(source.evidence,"evidence").map((entry)=>serializable(entry))}}}function resolveAsk(value){return{type:"resolve",...resolution(value)}}function validateResolution(value){const source=object(value,"published resolution");keys(source,["expectedRevision","outcome","evidence"],"published resolution");if(!Number.isSafeInteger(source.expectedRevision)||source.expectedRevision<1)fail("Expected revision must be a positive integer");return{expectedRevision:source.expectedRevision,...resolution({outcome:source.outcome,...source.evidence===undefined?{}:{evidence:source.evidence}})}}function publicationRequestKey(value){const options=object(value,"publication options");keys(options,["requestKey"],"publication options");return id(options.requestKey,"publication request key")}function createInboxPublisher(transport){return{async publishAsk(value,options){const source=object(value,"ask");keys(source,["title","description","recipients","views","body","questions","notifyImmediately","tags","recordRefs"],"ask");const result=await transport.publish({requestKey:publicationRequestKey(options),item:validatePublication({...source,kind:"ask"})});id(result.id,"published ask ID");if(!("revision"in result)||!Number.isSafeInteger(result.revision)||result.revision!==1)fail("Initial ask publication must return revision 1");return{id:result.id,revision:result.revision}},async publishDigest(value,options){const source=object(value,"digest");keys(source,["title","description","recipients","views","body","notifyImmediately"],"digest");const result=await transport.publish({requestKey:publicationRequestKey(options),item:validatePublication({...source,kind:"digest"})});return{id:id(result.id,"published digest ID")}},async publishResolution(askId,value){await transport.resolve({askId:id(askId,"ask ID"),resolution:validateResolution(value)})}}}var InboxContractError,memberEmail;var init_inbox_contract=__esm(()=>{init_files_contract();InboxContractError=class InboxContractError extends Error{constructor(message){super(message);this.name="InboxContractError"}};memberEmail=/^[^\s@]+@[^\s@]+\.[^\s@]+$/});function __rest(s,e){var t={};for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t[p]=s[p];if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++){if(e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i]))t[p[i]]=s[p[i]]}return t}var init_tslib_es6=()=>{};var version="2.116.0";var AUTO_REFRESH_TICK_DURATION_MS,AUTO_REFRESH_TICK_THRESHOLD=3,EXPIRY_MARGIN_MS,REFRESH_FAILURE_COOLDOWN_MS,GOTRUE_URL="http://localhost:9999",STORAGE_KEY="supabase.auth.token",DEFAULT_HEADERS,API_VERSION_HEADER_NAME="X-Supabase-Api-Version",API_VERSIONS,BASE64URL_REGEX,PKCE_FLOW_ID_PARAM="sb_flow_id",PKCE_MAX_CONCURRENT_FLOWS=5,JWKS_TTL;var init_constants=__esm(()=>{AUTO_REFRESH_TICK_DURATION_MS=30*1000;EXPIRY_MARGIN_MS=AUTO_REFRESH_TICK_THRESHOLD*AUTO_REFRESH_TICK_DURATION_MS;REFRESH_FAILURE_COOLDOWN_MS=2*AUTO_REFRESH_TICK_DURATION_MS;DEFAULT_HEADERS={"X-Client-Info":`gotrue-js/${version}`};API_VERSIONS={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}};BASE64URL_REGEX=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i;JWKS_TTL=10*60*1000});function isAuthError(error){return typeof error==="object"&&error!==null&&"__isAuthError"in error}function isAuthApiError(error){return isAuthError(error)&&error.name==="AuthApiError"}function isAuthSessionMissingError(error){return isAuthError(error)&&error.name==="AuthSessionMissingError"}function isAuthImplicitGrantRedirectError(error){return isAuthError(error)&&error.name==="AuthImplicitGrantRedirectError"}function isAuthRetryableFetchError(error){return isAuthError(error)&&error.name==="AuthRetryableFetchError"}function isAuthRefreshDiscardedError(error){return isAuthError(error)&&error.name==="AuthRefreshDiscardedError"}var AuthError,AuthApiError,AuthUnknownError,CustomAuthError,AuthSessionMissingError,AuthInvalidTokenResponseError,AuthInvalidCredentialsError,AuthImplicitGrantRedirectError,AuthPKCEGrantCodeExchangeError,AuthPKCECodeVerifierMissingError,AuthRetryableFetchError,AuthRefreshDiscardedError,AuthWeakPasswordError,AuthInvalidJwtError;var init_errors=__esm(()=>{AuthError=class AuthError extends Error{constructor(message,status,code){super(message);this.__isAuthError=true;this.name="AuthError";this.status=status;this.code=code}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}};AuthApiError=class AuthApiError extends AuthError{constructor(message,status,code){super(message,status,code);this.name="AuthApiError";this.status=status;this.code=code}};AuthUnknownError=class AuthUnknownError extends AuthError{constructor(message,originalError){super(message);this.name="AuthUnknownError";this.originalError=originalError}};CustomAuthError=class CustomAuthError extends AuthError{constructor(message,name,status,code){super(message,status,code);this.name=name;this.status=status}};AuthSessionMissingError=class AuthSessionMissingError extends CustomAuthError{constructor(){super("Auth session missing!","AuthSessionMissingError",400,undefined)}};AuthInvalidTokenResponseError=class AuthInvalidTokenResponseError extends CustomAuthError{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,undefined)}};AuthInvalidCredentialsError=class AuthInvalidCredentialsError extends CustomAuthError{constructor(message){super(message,"AuthInvalidCredentialsError",400,undefined)}};AuthImplicitGrantRedirectError=class AuthImplicitGrantRedirectError extends CustomAuthError{constructor(message,details=null){super(message,"AuthImplicitGrantRedirectError",500,undefined);this.details=null;this.details=details}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}};AuthPKCEGrantCodeExchangeError=class AuthPKCEGrantCodeExchangeError extends CustomAuthError{constructor(message,details=null){super(message,"AuthPKCEGrantCodeExchangeError",500,undefined);this.details=null;this.details=details}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}};AuthPKCECodeVerifierMissingError=class AuthPKCECodeVerifierMissingError extends CustomAuthError{constructor(){super("PKCE code verifier not found in storage. "+"This can happen if the auth flow was initiated in a different browser or device, "+"or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), "+"use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}};AuthRetryableFetchError=class AuthRetryableFetchError extends CustomAuthError{constructor(message,status){super(message,"AuthRetryableFetchError",status,undefined)}};AuthRefreshDiscardedError=class AuthRefreshDiscardedError extends CustomAuthError{constructor(message="Refresh result discarded: session state changed mid-flight (e.g., concurrent signOut)"){super(message,"AuthRefreshDiscardedError",409,undefined)}};AuthWeakPasswordError=class AuthWeakPasswordError extends CustomAuthError{constructor(message,status,reasons){super(message,"AuthWeakPasswordError",status,"weak_password");this.reasons=reasons}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}};AuthInvalidJwtError=class AuthInvalidJwtError extends CustomAuthError{constructor(message){super(message,"AuthInvalidJwtError",400,"invalid_jwt")}}});function byteToBase64URL(byte,state,emit){if(byte!==null){state.queue=state.queue<<8|byte;state.queuedBits+=8;while(state.queuedBits>=6){const pos=state.queue>>state.queuedBits-6&63;emit(TO_BASE64URL[pos]);state.queuedBits-=6}}else if(state.queuedBits>0){state.queue=state.queue<<6-state.queuedBits;state.queuedBits=6;while(state.queuedBits>=6){const pos=state.queue>>state.queuedBits-6&63;emit(TO_BASE64URL[pos]);state.queuedBits-=6}}}function byteFromBase64URL(charCode,state,emit){const bits=FROM_BASE64URL[charCode];if(bits>-1){state.queue=state.queue<<6|bits;state.queuedBits+=6;while(state.queuedBits>=8){emit(state.queue>>state.queuedBits-8&255);state.queuedBits-=8}}else if(bits===-2){return}else{throw new Error(`Invalid Base64-URL character "${String.fromCharCode(charCode)}"`)}}function stringFromBase64URL(str){const conv=[];const utf8Emit=(codepoint)=>{conv.push(String.fromCodePoint(codepoint))};const utf8State={utf8seq:0,codepoint:0};const b64State={queue:0,queuedBits:0};const byteEmit=(byte)=>{stringFromUTF8(byte,utf8State,utf8Emit)};for(let i=0;i<str.length;i+=1){byteFromBase64URL(str.charCodeAt(i),b64State,byteEmit)}return conv.join("")}function codepointToUTF8(codepoint,emit){if(codepoint<=127){emit(codepoint);return}else if(codepoint<=2047){emit(192|codepoint>>6);emit(128|codepoint&63);return}else if(codepoint<=65535){emit(224|codepoint>>12);emit(128|codepoint>>6&63);emit(128|codepoint&63);return}else if(codepoint<=1114111){emit(240|codepoint>>18);emit(128|codepoint>>12&63);emit(128|codepoint>>6&63);emit(128|codepoint&63);return}throw new Error(`Unrecognized Unicode codepoint: ${codepoint.toString(16)}`)}function stringToUTF8(str,emit){for(let i=0;i<str.length;i+=1){let codepoint=str.charCodeAt(i);if(codepoint>55295&&codepoint<=56319){const highSurrogate=(codepoint-55296)*1024&65535;const lowSurrogate=str.charCodeAt(i+1)-56320&65535;codepoint=(lowSurrogate|highSurrogate)+65536;i+=1}codepointToUTF8(codepoint,emit)}}function stringFromUTF8(byte,state,emit){if(state.utf8seq===0){if(byte<=127){emit(byte);return}for(let leadingBit=1;leadingBit<6;leadingBit+=1){if((byte>>7-leadingBit&1)===0){state.utf8seq=leadingBit;break}}if(state.utf8seq===2){state.codepoint=byte&31}else if(state.utf8seq===3){state.codepoint=byte&15}else if(state.utf8seq===4){state.codepoint=byte&7}else{throw new Error("Invalid UTF-8 sequence")}state.utf8seq-=1}else if(state.utf8seq>0){if(byte<=127){throw new Error("Invalid UTF-8 sequence")}state.codepoint=state.codepoint<<6|byte&63;state.utf8seq-=1;if(state.utf8seq===0){emit(state.codepoint)}}}function base64UrlToUint8Array(str){const result2=[];const state={queue:0,queuedBits:0};const onByte=(byte)=>{result2.push(byte)};for(let i=0;i<str.length;i+=1){byteFromBase64URL(str.charCodeAt(i),state,onByte)}return new Uint8Array(result2)}function stringToUint8Array(str){const result2=[];stringToUTF8(str,(byte)=>result2.push(byte));return new Uint8Array(result2)}function bytesToBase64URL(bytes){const result2=[];const state={queue:0,queuedBits:0};const onChar=(char)=>{result2.push(char)};bytes.forEach((byte)=>byteToBase64URL(byte,state,onChar));byteToBase64URL(null,state,onChar);return result2.join("")}var TO_BASE64URL,IGNORE_BASE64URL,FROM_BASE64URL;var init_base64url=__esm(()=>{TO_BASE64URL="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split("");IGNORE_BASE64URL=`
|
|
2
2
|
\r=`.split("");FROM_BASE64URL=(()=>{const charMap=new Array(128);for(let i=0;i<charMap.length;i+=1){charMap[i]=-1}for(let i=0;i<IGNORE_BASE64URL.length;i+=1){charMap[IGNORE_BASE64URL[i].charCodeAt(0)]=-2}for(let i=0;i<TO_BASE64URL.length;i+=1){charMap[TO_BASE64URL[i].charCodeAt(0)]=i}return charMap})()});function expiresAt(expiresIn){const timeNow=Math.round(Date.now()/1000);return timeNow+expiresIn}function generateCallbackId(){return Symbol("auth-callback")}function parseParametersFromURL(href){const result2={};const url=new URL(href);if(url.hash&&url.hash[0]==="#"){try{const hashSearchParams=new URLSearchParams(url.hash.substring(1));hashSearchParams.forEach((value,key)=>{result2[key]=value})}catch(_e){}}url.searchParams.forEach((value,key)=>{result2[key]=value});return result2}class Deferred{constructor(){this.promise=new Deferred.promiseConstructor((res,rej)=>{this.resolve=res;this.reject=rej})}}function decodeJWT(token){const parts=token.split(".");if(parts.length!==3){throw new AuthInvalidJwtError("Invalid JWT structure")}for(let i=0;i<parts.length;i++){if(!BASE64URL_REGEX.test(parts[i])){throw new AuthInvalidJwtError("JWT not in base64url format")}}const data2={header:JSON.parse(stringFromBase64URL(parts[0])),payload:JSON.parse(stringFromBase64URL(parts[1])),signature:base64UrlToUint8Array(parts[2]),raw:{header:parts[0],payload:parts[1]}};return data2}async function sleep(time){return await new Promise((accept)=>{setTimeout(()=>accept(null),time)})}function retryable(fn,isRetryable){const promise=new Promise((accept,reject)=>{(async()=>{for(let attempt=0;attempt<Infinity;attempt++){try{const result2=await fn(attempt);if(!isRetryable(attempt,null,result2)){accept(result2);return}}catch(e){if(!isRetryable(attempt,e)){reject(e);return}}}})()});return promise}function dec2hex(dec){return("0"+dec.toString(16)).substr(-2)}function generatePKCEVerifier(){const verifierLength=56;const array3=new Uint32Array(verifierLength);if(typeof crypto==="undefined"){const charSet="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";const charSetLen=charSet.length;let verifier="";for(let i=0;i<verifierLength;i++){verifier+=charSet.charAt(Math.floor(Math.random()*charSetLen))}return verifier}crypto.getRandomValues(array3);return Array.from(array3,dec2hex).join("")}async function sha256(randomString){const encoder=new TextEncoder;const encodedData=encoder.encode(randomString);const hash=await crypto.subtle.digest("SHA-256",encodedData);const bytes=new Uint8Array(hash);return Array.from(bytes).map((c)=>String.fromCharCode(c)).join("")}async function generatePKCEChallenge(verifier){const hasCryptoSupport=typeof crypto!=="undefined"&&typeof crypto.subtle!=="undefined"&&typeof TextEncoder!=="undefined";if(!hasCryptoSupport){console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.");return verifier}const hashed=await sha256(verifier);return btoa(hashed).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function validatePKCEFlowId(flowId){return typeof flowId==="string"&&PKCE_FLOW_ID_PATTERN.test(flowId)?flowId:null}function generatePKCEFlowId(){if(typeof crypto!=="undefined"&&typeof crypto.getRandomValues==="function"){const bytes=new Uint8Array(16);crypto.getRandomValues(bytes);return Array.from(bytes,dec2hex).join("")}let flowId="";for(let i=0;i<32;i++){flowId+=Math.floor(Math.random()*16).toString(16)}return flowId}async function getPKCEFlowIndex(storage,storageKey){const index=await getItemAsync(storage,pkceFlowIndexKey(storageKey));return Array.isArray(index)?index.filter((id3)=>validatePKCEFlowId(id3)!==null):[]}async function storePKCEVerifier(storage,storageKey,flowId,verifier,onEvictFlow){await setItemAsync(storage,pkceVerifierSlotKey(storageKey,flowId),verifier);const index=(await getPKCEFlowIndex(storage,storageKey)).filter((id3)=>id3!==flowId);index.push(flowId);while(index.length>PKCE_MAX_CONCURRENT_FLOWS){const evicted=index.shift();await removeItemAsync(storage,pkceVerifierSlotKey(storageKey,evicted));onEvictFlow===null||onEvictFlow===undefined||onEvictFlow(evicted)}await setItemAsync(storage,pkceFlowIndexKey(storageKey),index);await setItemAsync(storage,`${storageKey}-code-verifier`,verifier)}async function retrievePKCEVerifier(storage,storageKey,flowId){if(flowId){const verifier2=await getItemAsync(storage,pkceVerifierSlotKey(storageKey,flowId));return{verifier:typeof verifier2==="string"?verifier2:null,flowId}}const verifier=await getItemAsync(storage,`${storageKey}-code-verifier`);return{verifier:typeof verifier==="string"?verifier:null,flowId:null}}async function removePKCEVerifier(storage,storageKey,flowId){const legacyKey=`${storageKey}-code-verifier`;if(!flowId){await removeItemAsync(storage,legacyKey);return}const slotKey=pkceVerifierSlotKey(storageKey,flowId);const slotValue=await getItemAsync(storage,slotKey);await removeItemAsync(storage,slotKey);const index=await getPKCEFlowIndex(storage,storageKey);const remaining=index.filter((id3)=>id3!==flowId);if(remaining.length!==index.length){if(remaining.length>0){await setItemAsync(storage,pkceFlowIndexKey(storageKey),remaining)}else{await removeItemAsync(storage,pkceFlowIndexKey(storageKey))}}if(slotValue!=null&&slotValue===await getItemAsync(storage,legacyKey)){await removeItemAsync(storage,legacyKey)}}async function removeAllPKCEVerifiers(storage,storageKey){const index=await getPKCEFlowIndex(storage,storageKey);for(const flowId of index){await removeItemAsync(storage,pkceVerifierSlotKey(storageKey,flowId))}await removeItemAsync(storage,pkceFlowIndexKey(storageKey));await removeItemAsync(storage,`${storageKey}-code-verifier`)}function appendFlowIdToRedirectTo(redirectTo,flowId){const hashIndex=redirectTo.indexOf("#");let base=hashIndex===-1?redirectTo:redirectTo.slice(0,hashIndex);const fragment=hashIndex===-1?"":redirectTo.slice(hashIndex);const queryIndex=base.indexOf("?");if(queryIndex!==-1){const path=base.slice(0,queryIndex);const remaining=base.slice(queryIndex+1).split("&").filter((pair)=>pair!==""&&pair!==PKCE_FLOW_ID_PARAM&&!pair.startsWith(`${PKCE_FLOW_ID_PARAM}=`));base=remaining.length>0?`${path}?${remaining.join("&")}`:path}const separator=base.includes("?")?"&":"?";return`${base}${separator}${PKCE_FLOW_ID_PARAM}=${encodeURIComponent(flowId)}${fragment}`}async function getCodeChallengeAndMethod(storage,storageKey,isPasswordRecovery=false,onEvictFlow){const codeVerifier=generatePKCEVerifier();let storedCodeVerifier=codeVerifier;if(isPasswordRecovery){storedCodeVerifier+="/recovery"}const flowId=generatePKCEFlowId();await storePKCEVerifier(storage,storageKey,flowId,storedCodeVerifier,onEvictFlow);const codeChallenge=await generatePKCEChallenge(codeVerifier);const codeChallengeMethod=codeVerifier===codeChallenge?"plain":"s256";return[codeChallenge,codeChallengeMethod,flowId]}function parseResponseAPIVersion(response2){const apiVersion=response2.headers.get(API_VERSION_HEADER_NAME);if(!apiVersion){return null}if(!apiVersion.match(API_VERSION_REGEX)){return null}try{const date2=new Date(`${apiVersion}T00:00:00.0Z`);return date2}catch(_e){return null}}function validateExp(exp){if(!exp){throw new Error("Missing exp claim")}const timeNow=Math.floor(Date.now()/1000);if(exp<=timeNow){throw new Error("JWT has expired")}}function getAlgorithm(alg){switch(alg){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}function validateUUID(str){if(!UUID_REGEX.test(str)){throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}}function assertPasskeyExperimentalEnabled(experimental){if(!experimental.passkey){throw new Error("@supabase/auth-js: the passkey API is experimental and disabled by default. Enable it by passing `auth: { experimental: { passkey: true } }` to createClient (or to the GoTrueClient constructor).")}}function assertRecoveryCodesExperimentalEnabled(experimental){if(!experimental.recoveryCodes){throw new Error("@supabase/auth-js: the MFA recovery codes API is experimental and disabled by default. Enable it by passing `auth: { experimental: { recoveryCodes: true } }` to createClient (or to the GoTrueClient constructor).")}}function userNotAvailableProxy(){const proxyTarget={};return new Proxy(proxyTarget,{get:(target,prop)=>{if(prop==="__isUserNotAvailableProxy"){return true}if(typeof prop==="symbol"){const sProp=prop.toString();if(sProp==="Symbol(Symbol.toPrimitive)"||sProp==="Symbol(Symbol.toStringTag)"||sProp==="Symbol(util.inspect.custom)"){return}}throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${prop}" property of the session object is not supported. Please use getUser() instead.`)},set:(_target,prop)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${prop}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(_target,prop)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${prop}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function insecureUserWarningProxy(user,suppressWarningRef){return new Proxy(user,{get:(target,prop,receiver)=>{if(prop==="__isInsecureUserWarningProxy"){return true}if(typeof prop==="symbol"){const sProp=prop.toString();if(sProp==="Symbol(Symbol.toPrimitive)"||sProp==="Symbol(Symbol.toStringTag)"||sProp==="Symbol(util.inspect.custom)"||sProp==="Symbol(nodejs.util.inspect.custom)"){return Reflect.get(target,prop,receiver)}}if(!suppressWarningRef.value&&typeof prop==="string"){console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.");suppressWarningRef.value=true}return Reflect.get(target,prop,receiver)}})}function deepClone(obj){return JSON.parse(JSON.stringify(obj))}var isBrowser=()=>typeof window!=="undefined"&&typeof document!=="undefined",localStorageWriteTests,supportsLocalStorage=()=>{if(!isBrowser()){return false}try{if(typeof globalThis.localStorage!=="object"){return false}}catch(e){return false}if(localStorageWriteTests.tested){return localStorageWriteTests.writable}const randomKey=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(randomKey,randomKey);globalThis.localStorage.removeItem(randomKey);localStorageWriteTests.tested=true;localStorageWriteTests.writable=true}catch(e){localStorageWriteTests.tested=true;localStorageWriteTests.writable=false}return localStorageWriteTests.writable},resolveFetch=(customFetch)=>{if(customFetch){return(...args)=>customFetch(...args)}return(...args)=>fetch(...args)},looksLikeFetchResponse=(maybeResponse)=>{return typeof maybeResponse==="object"&&maybeResponse!==null&&"status"in maybeResponse&&"ok"in maybeResponse&&"json"in maybeResponse&&typeof maybeResponse.json==="function"},setItemAsync=async(storage,key,data2)=>{await storage.setItem(key,JSON.stringify(data2))},getItemAsync=async(storage,key)=>{const value=await storage.getItem(key);if(!value){return null}try{return JSON.parse(value)}catch(_a){return null}},removeItemAsync=async(storage,key)=>{await storage.removeItem(key)},PKCE_FLOW_ID_PATTERN,pkceVerifierSlotKey=(storageKey,flowId)=>`${storageKey}-flow-${flowId}-code-verifier`,pkceFlowIndexKey=(storageKey)=>`${storageKey}-flows-code-verifier`,API_VERSION_REGEX,UUID_REGEX;var init_helpers=__esm(()=>{init_constants();init_errors();init_base64url();localStorageWriteTests={tested:false,writable:false};Deferred.promiseConstructor=Promise;PKCE_FLOW_ID_PATTERN=/^[a-zA-Z0-9_-]{8,64}$/;API_VERSION_REGEX=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;UUID_REGEX=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i});async function handleError(error){var _a;if(!looksLikeFetchResponse(error)){throw new AuthRetryableFetchError(_getErrorMessage(error),0)}let data2;try{data2=await error.json()}catch(e){if(NETWORK_ERROR_CODES.includes(error.status)){throw new AuthRetryableFetchError(error.statusText||`HTTP ${error.status}`,error.status)}throw new AuthUnknownError(_getErrorMessage(e),e)}if(NETWORK_ERROR_CODES.includes(error.status)){throw new AuthRetryableFetchError(_getErrorMessage(data2),error.status)}let errorCode=undefined;const responseAPIVersion=parseResponseAPIVersion(error);if(responseAPIVersion&&responseAPIVersion.getTime()>=API_VERSIONS["2024-01-01"].timestamp&&typeof data2==="object"&&data2&&typeof data2.code==="string"){errorCode=data2.code}else if(typeof data2==="object"&&data2&&typeof data2.error_code==="string"){errorCode=data2.error_code}if(!errorCode){if(typeof data2==="object"&&data2&&typeof data2.weak_password==="object"&&data2.weak_password&&Array.isArray(data2.weak_password.reasons)&&data2.weak_password.reasons.length&&data2.weak_password.reasons.reduce((a,i)=>a&&typeof i==="string",true)){throw new AuthWeakPasswordError(_getErrorMessage(data2),error.status,data2.weak_password.reasons)}}else if(errorCode==="weak_password"){throw new AuthWeakPasswordError(_getErrorMessage(data2),error.status,((_a=data2.weak_password)===null||_a===undefined?undefined:_a.reasons)||[])}else if(errorCode==="session_not_found"){throw new AuthSessionMissingError}throw new AuthApiError(_getErrorMessage(data2),error.status||500,errorCode)}async function _request(fetcher,method,url,options){var _a;const headers=Object.assign({},options===null||options===undefined?undefined:options.headers);if(!headers[API_VERSION_HEADER_NAME]){headers[API_VERSION_HEADER_NAME]=API_VERSIONS["2024-01-01"].name}if(options===null||options===undefined?undefined:options.jwt){headers["Authorization"]=`Bearer ${options.jwt}`}const qs=(_a=options===null||options===undefined?undefined:options.query)!==null&&_a!==undefined?_a:{};if(options===null||options===undefined?undefined:options.redirectTo){qs["redirect_to"]=options.redirectTo}const queryString=Object.keys(qs).length?"?"+new URLSearchParams(qs).toString():"";const data2=await _handleRequest(fetcher,method,url+queryString,{headers,noResolveJson:options===null||options===undefined?undefined:options.noResolveJson},{},options===null||options===undefined?undefined:options.body);return(options===null||options===undefined?undefined:options.xform)?options===null||options===undefined?undefined:options.xform(data2):{data:Object.assign({},data2),error:null}}async function _handleRequest(fetcher,method,url,options,parameters,body){const requestParams=_getRequestParams(method,options,parameters,body);let result2;try{result2=await fetcher(url,Object.assign({},requestParams))}catch(e){throw new AuthRetryableFetchError(_getErrorMessage(e),0)}if(!result2.ok){await handleError(result2)}if(options===null||options===undefined?undefined:options.noResolveJson){return result2}try{return await result2.json()}catch(e){await handleError(e)}}function _sessionResponse(data2){var _a;let session=null;if(hasSession(data2)){session=Object.assign({},data2);if(!data2.expires_at){session.expires_at=expiresAt(data2.expires_in)}}const user=(_a=data2.user)!==null&&_a!==undefined?_a:typeof(data2===null||data2===undefined?undefined:data2.id)==="string"?data2:null;return{data:{session,user},error:null}}function _sessionResponsePassword(data2){const response2=_sessionResponse(data2);if(!response2.error&&data2.weak_password&&typeof data2.weak_password==="object"&&Array.isArray(data2.weak_password.reasons)&&data2.weak_password.reasons.length&&data2.weak_password.message&&typeof data2.weak_password.message==="string"&&data2.weak_password.reasons.reduce((a,i)=>a&&typeof i==="string",true)){response2.data.weak_password=data2.weak_password}return response2}function _userResponse(data2){var _a;const user=(_a=data2.user)!==null&&_a!==undefined?_a:data2;return{data:{user},error:null}}function _ssoResponse(data2){return{data:data2,error:null}}function _generateLinkResponse(data2){const{action_link,email_otp,hashed_token,redirect_to,verification_type}=data2,rest=__rest(data2,["action_link","email_otp","hashed_token","redirect_to","verification_type"]);const properties={action_link,email_otp,hashed_token,redirect_to,verification_type};const user=Object.assign({},rest);return{data:{properties,user},error:null}}function _noResolveJsonResponse(data2){return data2}function hasSession(data2){return!!data2.access_token&&!!data2.refresh_token&&!!data2.expires_in}var _getErrorMessage=(err)=>{if(typeof err==="object"&&err!==null){const e=err;if(typeof e.msg==="string")return e.msg;if(typeof e.message==="string")return e.message;if(typeof e.error_description==="string")return e.error_description;if(typeof e.error==="string")return e.error}return JSON.stringify(err)},NETWORK_ERROR_CODES,_getRequestParams=(method,options,parameters,body)=>{const params={method,headers:(options===null||options===undefined?undefined:options.headers)||{}};if(method==="GET"){return params}params.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},options===null||options===undefined?undefined:options.headers);params.body=JSON.stringify(body);return Object.assign(Object.assign({},params),parameters)};var init_fetch=__esm(()=>{init_tslib_es6();init_constants();init_helpers();init_errors();NETWORK_ERROR_CODES=[500,501,502,503,504,520,521,522,523,524,525,526,527,528,529,530]});var SIGN_OUT_SCOPES;var init_types=__esm(()=>{SIGN_OUT_SCOPES=["global","local","others"]});class GoTrueAdminApi{constructor({url="",headers={},fetch:fetch2,experimental}){this.url=url;this.headers=headers;this.fetch=resolveFetch(fetch2);this.experimental=experimental!==null&&experimental!==undefined?experimental:{};this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)};this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)};this.customProviders={listProviders:this._listCustomProviders.bind(this),createProvider:this._createCustomProvider.bind(this),getProvider:this._getCustomProvider.bind(this),updateProvider:this._updateCustomProvider.bind(this),deleteProvider:this._deleteCustomProvider.bind(this)};this.passkey={listPasskeys:this._adminListPasskeys.bind(this),deletePasskey:this._adminDeletePasskey.bind(this)}}async signOut(jwt,scope=SIGN_OUT_SCOPES[0]){if(SIGN_OUT_SCOPES.indexOf(scope)<0){throw new Error(`@supabase/auth-js: Parameter scope must be one of ${SIGN_OUT_SCOPES.join(", ")}`)}try{await _request(this.fetch,"POST",`${this.url}/logout?scope=${scope}`,{headers:this.headers,jwt,noResolveJson:true});return{data:null,error:null}}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async inviteUserByEmail(email,options={}){try{return await _request(this.fetch,"POST",`${this.url}/invite`,{body:{email,data:options.data},headers:this.headers,redirectTo:options.redirectTo,xform:_userResponse})}catch(error){if(isAuthError(error)){return{data:{user:null},error}}throw error}}async generateLink(params){try{const{options}=params,rest=__rest(params,["options"]);const body=Object.assign(Object.assign({},rest),options);if("newEmail"in rest){body.new_email=rest===null||rest===undefined?undefined:rest.newEmail;delete body["newEmail"]}return await _request(this.fetch,"POST",`${this.url}/admin/generate_link`,{body,headers:this.headers,xform:_generateLinkResponse,redirectTo:options===null||options===undefined?undefined:options.redirectTo})}catch(error){if(isAuthError(error)){return{data:{properties:null,user:null},error}}throw error}}async createUser(attributes){try{return await _request(this.fetch,"POST",`${this.url}/admin/users`,{body:attributes,headers:this.headers,xform:_userResponse})}catch(error){if(isAuthError(error)){return{data:{user:null},error}}throw error}}async listUsers(params){var _a,_b,_c,_d,_e,_f,_g;try{const pagination={nextPage:null,lastPage:0,total:0};const response2=await _request(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:true,query:{page:(_b=(_a=params===null||params===undefined?undefined:params.page)===null||_a===undefined?undefined:_a.toString())!==null&&_b!==undefined?_b:"",per_page:(_d=(_c=params===null||params===undefined?undefined:params.perPage)===null||_c===undefined?undefined:_c.toString())!==null&&_d!==undefined?_d:""},xform:_noResolveJsonResponse});if(response2.error)throw response2.error;const users=await response2.json();const total=(_e=response2.headers.get("x-total-count"))!==null&&_e!==undefined?_e:0;const links=(_g=(_f=response2.headers.get("link"))===null||_f===undefined?undefined:_f.split(","))!==null&&_g!==undefined?_g:[];if(links.length>0){links.forEach((link)=>{const page=parseInt(link.split(";")[0].split("=")[1].substring(0,1));const rel=JSON.parse(link.split(";")[1].split("=")[1]);pagination[`${rel}Page`]=page});pagination.total=parseInt(total)}return{data:Object.assign(Object.assign({},users),pagination),error:null}}catch(error){if(isAuthError(error)){return{data:{users:[]},error}}throw error}}async getUserById(uid){validateUUID(uid);try{return await _request(this.fetch,"GET",`${this.url}/admin/users/${uid}`,{headers:this.headers,xform:_userResponse})}catch(error){if(isAuthError(error)){return{data:{user:null},error}}throw error}}async updateUserById(uid,attributes){validateUUID(uid);try{return await _request(this.fetch,"PUT",`${this.url}/admin/users/${uid}`,{body:attributes,headers:this.headers,xform:_userResponse})}catch(error){if(isAuthError(error)){return{data:{user:null},error}}throw error}}async deleteUser(id3,shouldSoftDelete=false){validateUUID(id3);try{return await _request(this.fetch,"DELETE",`${this.url}/admin/users/${id3}`,{headers:this.headers,body:{should_soft_delete:shouldSoftDelete},xform:_userResponse})}catch(error){if(isAuthError(error)){return{data:{user:null},error}}throw error}}async _listFactors(params){validateUUID(params.userId);try{const{data:data2,error}=await _request(this.fetch,"GET",`${this.url}/admin/users/${params.userId}/factors`,{headers:this.headers,xform:(factors)=>{return{data:{factors},error:null}}});return{data:data2,error}}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _deleteFactor(params){validateUUID(params.userId);validateUUID(params.id);try{const data2=await _request(this.fetch,"DELETE",`${this.url}/admin/users/${params.userId}/factors/${params.id}`,{headers:this.headers});return{data:data2,error:null}}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _listOAuthClients(params){var _a,_b,_c,_d,_e,_f,_g;try{const pagination={nextPage:null,lastPage:0,total:0};const response2=await _request(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:true,query:{page:(_b=(_a=params===null||params===undefined?undefined:params.page)===null||_a===undefined?undefined:_a.toString())!==null&&_b!==undefined?_b:"",per_page:(_d=(_c=params===null||params===undefined?undefined:params.perPage)===null||_c===undefined?undefined:_c.toString())!==null&&_d!==undefined?_d:""},xform:_noResolveJsonResponse});if(response2.error)throw response2.error;const clients=await response2.json();const total=(_e=response2.headers.get("x-total-count"))!==null&&_e!==undefined?_e:0;const links=(_g=(_f=response2.headers.get("link"))===null||_f===undefined?undefined:_f.split(","))!==null&&_g!==undefined?_g:[];if(links.length>0){links.forEach((link)=>{const page=parseInt(link.split(";")[0].split("=")[1].substring(0,1));const rel=JSON.parse(link.split(";")[1].split("=")[1]);pagination[`${rel}Page`]=page});pagination.total=parseInt(total)}return{data:Object.assign(Object.assign({},clients),pagination),error:null}}catch(error){if(isAuthError(error)){return{data:{clients:[]},error}}throw error}}async _createOAuthClient(params){try{return await _request(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:params,headers:this.headers,xform:(client)=>{return{data:client,error:null}}})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _getOAuthClient(clientId){try{return await _request(this.fetch,"GET",`${this.url}/admin/oauth/clients/${clientId}`,{headers:this.headers,xform:(client)=>{return{data:client,error:null}}})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _updateOAuthClient(clientId,params){try{return await _request(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${clientId}`,{body:params,headers:this.headers,xform:(client)=>{return{data:client,error:null}}})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _deleteOAuthClient(clientId){try{await _request(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${clientId}`,{headers:this.headers,noResolveJson:true});return{data:null,error:null}}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _regenerateOAuthClientSecret(clientId){try{return await _request(this.fetch,"POST",`${this.url}/admin/oauth/clients/${clientId}/regenerate_secret`,{headers:this.headers,xform:(client)=>{return{data:client,error:null}}})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _listCustomProviders(params){try{const query={};if(params===null||params===undefined?undefined:params.type){query.type=params.type}return await _request(this.fetch,"GET",`${this.url}/admin/custom-providers`,{headers:this.headers,query,xform:(data2)=>{var _a;return{data:{providers:(_a=data2===null||data2===undefined?undefined:data2.providers)!==null&&_a!==undefined?_a:[]},error:null}}})}catch(error){if(isAuthError(error)){return{data:{providers:[]},error}}throw error}}async _createCustomProvider(params){try{return await _request(this.fetch,"POST",`${this.url}/admin/custom-providers`,{body:params,headers:this.headers,xform:(provider)=>{return{data:provider,error:null}}})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _getCustomProvider(identifier){try{return await _request(this.fetch,"GET",`${this.url}/admin/custom-providers/${identifier}`,{headers:this.headers,xform:(provider)=>{return{data:provider,error:null}}})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _updateCustomProvider(identifier,params){try{return await _request(this.fetch,"PUT",`${this.url}/admin/custom-providers/${identifier}`,{body:params,headers:this.headers,xform:(provider)=>{return{data:provider,error:null}}})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _deleteCustomProvider(identifier){try{await _request(this.fetch,"DELETE",`${this.url}/admin/custom-providers/${identifier}`,{headers:this.headers,noResolveJson:true});return{data:null,error:null}}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _adminListPasskeys(params){assertPasskeyExperimentalEnabled(this.experimental);validateUUID(params.userId);try{return await _request(this.fetch,"GET",`${this.url}/admin/users/${params.userId}/passkeys`,{headers:this.headers,xform:(data2)=>({data:data2,error:null})})}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}async _adminDeletePasskey(params){assertPasskeyExperimentalEnabled(this.experimental);validateUUID(params.userId);validateUUID(params.passkeyId);try{await _request(this.fetch,"DELETE",`${this.url}/admin/users/${params.userId}/passkeys/${params.passkeyId}`,{headers:this.headers,noResolveJson:true});return{data:null,error:null}}catch(error){if(isAuthError(error)){return{data:null,error}}throw error}}}var init_GoTrueAdminApi=__esm(()=>{init_tslib_es6();init_fetch();init_helpers();init_types();init_errors()});function memoryLocalStorageAdapter(store={}){return{getItem:(key)=>{return store[key]||null},setItem:(key,value)=>{store[key]=value},removeItem:(key)=>{delete store[key]}}}var internals,LockAcquireTimeoutError;var init_locks=__esm(()=>{init_helpers();internals={debug:!!(globalThis&&supportsLocalStorage()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};LockAcquireTimeoutError=class LockAcquireTimeoutError extends Error{constructor(message){super(message);this.isAcquireTimeout=true}}});function polyfillGlobalThis(){if(typeof globalThis==="object")return;try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:true});__magic__.globalThis=__magic__;delete Object.prototype.__magic__}catch(e){if(typeof self!=="undefined"){self.globalThis=self}}}function getAddress(address){if(!/^0x[a-fA-F0-9]{40}$/.test(address)){throw new Error(`@supabase/auth-js: Address "${address}" is invalid.`)}return address.toLowerCase()}function fromHex(hex){return parseInt(hex,16)}function toHex(value){const bytes=new TextEncoder().encode(value);const hex=Array.from(bytes,(byte)=>byte.toString(16).padStart(2,"0")).join("");return"0x"+hex}function createSiweMessage(parameters){var _a;const{chainId,domain,expirationTime,issuedAt=new Date,nonce,notBefore,requestId,resources,scheme,uri,version:version2}=parameters;{if(!Number.isInteger(chainId))throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${chainId}`);if(!domain)throw new Error(`@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.`);if(nonce&&nonce.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${nonce}`);if(!uri)throw new Error(`@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.`);if(version2!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${version2}`);if((_a=parameters.statement)===null||_a===undefined?undefined:_a.includes(`
|
|
3
3
|
`))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${parameters.statement}`)}const address=getAddress(parameters.address);const origin=scheme?`${scheme}://${domain}`:domain;const statement=parameters.statement?`${parameters.statement}
|
|
4
4
|
`:"";const prefix=`${origin} wants you to sign in with your Ethereum account:
|
|
@@ -15,65 +15,6 @@ Request ID: ${requestId}`;if(resources){let content=`
|
|
|
15
15
|
Resources:`;for(const resource of resources){if(!resource||typeof resource!=="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${resource}`);content+=`
|
|
16
16
|
- ${resource}`}suffix+=content}return`${prefix}
|
|
17
17
|
${suffix}`}function identifyRegistrationError({error,options}){var _a,_b,_c;const{publicKey}=options;if(!publicKey){throw Error("options was missing required publicKey property")}if(error.name==="AbortError"){if(options.signal instanceof AbortSignal){return new WebAuthnError({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:error})}}else if(error.name==="ConstraintError"){if(((_a=publicKey.authenticatorSelection)===null||_a===undefined?undefined:_a.requireResidentKey)===true){return new WebAuthnError({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:error})}else if(options.mediation==="conditional"&&((_b=publicKey.authenticatorSelection)===null||_b===undefined?undefined:_b.userVerification)==="required"){return new WebAuthnError({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:error})}else if(((_c=publicKey.authenticatorSelection)===null||_c===undefined?undefined:_c.userVerification)==="required"){return new WebAuthnError({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:error})}}else if(error.name==="InvalidStateError"){return new WebAuthnError({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:error})}else if(error.name==="NotAllowedError"){return new WebAuthnError({message:error.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:error})}else if(error.name==="NotSupportedError"){const validPubKeyCredParams=publicKey.pubKeyCredParams.filter((param)=>param.type==="public-key");if(validPubKeyCredParams.length===0){return new WebAuthnError({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:error})}return new WebAuthnError({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:error})}else if(error.name==="SecurityError"){const effectiveDomain=window.location.hostname;if(!isValidDomain(effectiveDomain)){return new WebAuthnError({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:error})}else if(publicKey.rp.id!==effectiveDomain){return new WebAuthnError({message:`The RP ID "${publicKey.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:error})}}else if(error.name==="TypeError"){if(publicKey.user.id.byteLength<1||publicKey.user.id.byteLength>64){return new WebAuthnError({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:error})}}else if(error.name==="UnknownError"){return new WebAuthnError({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:error})}return new WebAuthnError({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:error})}function identifyAuthenticationError({error,options}){const{publicKey}=options;if(!publicKey){throw Error("options was missing required publicKey property")}if(error.name==="AbortError"){if(options.signal instanceof AbortSignal){return new WebAuthnError({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:error})}}else if(error.name==="NotAllowedError"){return new WebAuthnError({message:error.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:error})}else if(error.name==="SecurityError"){const effectiveDomain=window.location.hostname;if(!isValidDomain(effectiveDomain)){return new WebAuthnError({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:error})}else if(publicKey.rpId!==effectiveDomain){return new WebAuthnError({message:`The RP ID "${publicKey.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:error})}}else if(error.name==="UnknownError"){return new WebAuthnError({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:error})}return new WebAuthnError({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:error})}var WebAuthnError,WebAuthnUnknownError;var init_webauthn_errors=__esm(()=>{init_webauthn();WebAuthnError=class WebAuthnError extends Error{constructor({message,code,cause,name}){var _a;super(message,{cause});this.__isWebAuthnError=true;this.name=(_a=name!==null&&name!==undefined?name:cause instanceof Error?cause.name:undefined)!==null&&_a!==undefined?_a:"Unknown Error";this.code=code}toJSON(){return{name:this.name,message:this.message,code:this.code}}};WebAuthnUnknownError=class WebAuthnUnknownError extends WebAuthnError{constructor(message,originalError){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:originalError,message});this.name="WebAuthnUnknownError";this.originalError=originalError}}});class WebAuthnAbortService{createNewAbortSignal(){if(this.controller){const abortError=new Error("Cancelling existing WebAuthn API call for new one");abortError.name="AbortError";this.controller.abort(abortError)}const newController=new AbortController;this.controller=newController;return newController.signal}cancelCeremony(){if(this.controller){const abortError=new Error("Manually cancelling existing WebAuthn API call");abortError.name="AbortError";this.controller.abort(abortError);this.controller=undefined}}}function deserializeCredentialCreationOptions(options){if(!options){throw new Error("Credential creation options are required")}if(typeof PublicKeyCredential!=="undefined"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON==="function"){return PublicKeyCredential.parseCreationOptionsFromJSON(options)}const{challenge:challengeStr,user:userOpts,excludeCredentials}=options,restOptions=__rest(options,["challenge","user","excludeCredentials"]);const challenge=base64UrlToUint8Array(challengeStr).buffer;const user=Object.assign(Object.assign({},userOpts),{id:base64UrlToUint8Array(userOpts.id).buffer});const result2=Object.assign(Object.assign({},restOptions),{challenge,user});if(excludeCredentials&&excludeCredentials.length>0){result2.excludeCredentials=new Array(excludeCredentials.length);for(let i=0;i<excludeCredentials.length;i++){const cred=excludeCredentials[i];result2.excludeCredentials[i]=Object.assign(Object.assign({},cred),{id:base64UrlToUint8Array(cred.id).buffer,type:cred.type||"public-key",transports:cred.transports})}}return result2}function deserializeCredentialRequestOptions(options){if(!options){throw new Error("Credential request options are required")}if(typeof PublicKeyCredential!=="undefined"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON==="function"){return PublicKeyCredential.parseRequestOptionsFromJSON(options)}const{challenge:challengeStr,allowCredentials}=options,restOptions=__rest(options,["challenge","allowCredentials"]);const challenge=base64UrlToUint8Array(challengeStr).buffer;const result2=Object.assign(Object.assign({},restOptions),{challenge});if(allowCredentials&&allowCredentials.length>0){result2.allowCredentials=new Array(allowCredentials.length);for(let i=0;i<allowCredentials.length;i++){const cred=allowCredentials[i];result2.allowCredentials[i]=Object.assign(Object.assign({},cred),{id:base64UrlToUint8Array(cred.id).buffer,type:cred.type||"public-key",transports:cred.transports})}}return result2}function serializeCredentialCreationResponse(credential){var _a;if("toJSON"in credential&&typeof credential.toJSON==="function"){return credential.toJSON()}const credentialWithAttachment=credential;return{id:credential.id,rawId:credential.id,response:{attestationObject:bytesToBase64URL(new Uint8Array(credential.response.attestationObject)),clientDataJSON:bytesToBase64URL(new Uint8Array(credential.response.clientDataJSON))},type:"public-key",clientExtensionResults:credential.getClientExtensionResults(),authenticatorAttachment:(_a=credentialWithAttachment.authenticatorAttachment)!==null&&_a!==undefined?_a:undefined}}function serializeCredentialRequestResponse(credential){var _a;if("toJSON"in credential&&typeof credential.toJSON==="function"){return credential.toJSON()}const credentialWithAttachment=credential;const clientExtensionResults=credential.getClientExtensionResults();const assertionResponse=credential.response;return{id:credential.id,rawId:credential.id,response:{authenticatorData:bytesToBase64URL(new Uint8Array(assertionResponse.authenticatorData)),clientDataJSON:bytesToBase64URL(new Uint8Array(assertionResponse.clientDataJSON)),signature:bytesToBase64URL(new Uint8Array(assertionResponse.signature)),userHandle:assertionResponse.userHandle?bytesToBase64URL(new Uint8Array(assertionResponse.userHandle)):undefined},type:"public-key",clientExtensionResults,authenticatorAttachment:(_a=credentialWithAttachment.authenticatorAttachment)!==null&&_a!==undefined?_a:undefined}}function isValidDomain(hostname){return hostname==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(hostname)}function browserSupportsWebAuthn(){var _a,_b;return!!(isBrowser()&&("PublicKeyCredential"in window)&&window.PublicKeyCredential&&("credentials"in navigator)&&typeof((_a=navigator===null||navigator===undefined?undefined:navigator.credentials)===null||_a===undefined?undefined:_a.create)==="function"&&typeof((_b=navigator===null||navigator===undefined?undefined:navigator.credentials)===null||_b===undefined?undefined:_b.get)==="function")}async function createCredential(options){try{const response2=await navigator.credentials.create(options);if(!response2){return{data:null,error:new WebAuthnUnknownError("Empty credential response",response2)}}if(!(response2 instanceof PublicKeyCredential)){return{data:null,error:new WebAuthnUnknownError("Browser returned unexpected credential type",response2)}}return{data:response2,error:null}}catch(err){return{data:null,error:identifyRegistrationError({error:err,options})}}}async function getCredential(options){try{const response2=await navigator.credentials.get(options);if(!response2){return{data:null,error:new WebAuthnUnknownError("Empty credential response",response2)}}if(!(response2 instanceof PublicKeyCredential)){return{data:null,error:new WebAuthnUnknownError("Browser returned unexpected credential type",response2)}}return{data:response2,error:null}}catch(err){return{data:null,error:identifyAuthenticationError({error:err,options})}}}function deepMerge(...sources2){const isObject=(val)=>val!==null&&typeof val==="object"&&!Array.isArray(val);const isArrayBufferLike=(val)=>val instanceof ArrayBuffer||ArrayBuffer.isView(val);const result2={};for(const source of sources2){if(!source)continue;for(const key in source){const value=source[key];if(value===undefined)continue;if(Array.isArray(value)){result2[key]=value}else if(isArrayBufferLike(value)){result2[key]=value}else if(isObject(value)){const existing=result2[key];if(isObject(existing)){result2[key]=deepMerge(existing,value)}else{result2[key]=deepMerge(value)}}else{result2[key]=value}}}return result2}function mergeCredentialCreationOptions(baseOptions,overrides){return deepMerge(DEFAULT_CREATION_OPTIONS,baseOptions,overrides||{})}function mergeCredentialRequestOptions(baseOptions,overrides){return deepMerge(DEFAULT_REQUEST_OPTIONS,baseOptions,overrides||{})}class WebAuthnApi{constructor(client){this.client=client;this.enroll=this._enroll.bind(this);this.challenge=this._challenge.bind(this);this.verify=this._verify.bind(this);this.authenticate=this._authenticate.bind(this);this.register=this._register.bind(this)}async _enroll(params){return this.client.mfa.enroll(Object.assign(Object.assign({},params),{factorType:"webauthn"}))}async _challenge({factorId,webauthn,friendlyName,signal},overrides){var _a;try{const{data:challengeResponse,error:challengeError}=await this.client.mfa.challenge({factorId,webauthn});if(!challengeResponse){return{data:null,error:challengeError}}const abortSignal=signal!==null&&signal!==undefined?signal:webAuthnAbortService.createNewAbortSignal();if(challengeResponse.webauthn.type==="create"){const{user}=challengeResponse.webauthn.credential_options.publicKey;if(!user.name){const nameToUse=friendlyName;if(!nameToUse){const currentUser=await this.client.getUser();const userData=currentUser.data.user;const fallbackName=((_a=userData===null||userData===undefined?undefined:userData.user_metadata)===null||_a===undefined?undefined:_a.name)||(userData===null||userData===undefined?undefined:userData.email)||(userData===null||userData===undefined?undefined:userData.id)||"User";user.name=`${user.id}:${fallbackName}`}else{user.name=`${user.id}:${nameToUse}`}}if(!user.displayName){user.displayName=user.name}}switch(challengeResponse.webauthn.type){case"create":{const options=mergeCredentialCreationOptions(challengeResponse.webauthn.credential_options.publicKey,overrides===null||overrides===undefined?undefined:overrides.create);const{data:data2,error}=await createCredential({publicKey:options,signal:abortSignal});if(data2){return{data:{factorId,challengeId:challengeResponse.id,webauthn:{type:challengeResponse.webauthn.type,credential_response:data2}},error:null}}return{data:null,error}}case"request":{const options=mergeCredentialRequestOptions(challengeResponse.webauthn.credential_options.publicKey,overrides===null||overrides===undefined?undefined:overrides.request);const{data:data2,error}=await getCredential(Object.assign(Object.assign({},challengeResponse.webauthn.credential_options),{publicKey:options,signal:abortSignal}));if(data2){return{data:{factorId,challengeId:challengeResponse.id,webauthn:{type:challengeResponse.webauthn.type,credential_response:data2}},error:null}}return{data:null,error}}}}catch(error){if(isAuthError(error)){return{data:null,error}}return{data:null,error:new AuthUnknownError("Unexpected error in challenge",error)}}}async _verify({challengeId,factorId,webauthn}){return this.client.mfa.verify({factorId,challengeId,webauthn})}async _authenticate({factorId,webauthn:{rpId=typeof window!=="undefined"?window.location.hostname:undefined,rpOrigins=typeof window!=="undefined"?[window.location.origin]:undefined,signal}={}},overrides){if(!rpId){return{data:null,error:new AuthError("rpId is required for WebAuthn authentication")}}try{if(!browserSupportsWebAuthn()){return{data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)}}const{data:challengeResponse,error:challengeError}=await this.challenge({factorId,webauthn:{rpId,rpOrigins},signal},{request:overrides});if(!challengeResponse){return{data:null,error:challengeError}}const{webauthn}=challengeResponse;return this._verify({factorId,challengeId:challengeResponse.challengeId,webauthn:{type:webauthn.type,rpId,rpOrigins,credential_response:webauthn.credential_response}})}catch(error){if(isAuthError(error)){return{data:null,error}}return{data:null,error:new AuthUnknownError("Unexpected error in authenticate",error)}}}async _register({friendlyName,webauthn:{rpId=typeof window!=="undefined"?window.location.hostname:undefined,rpOrigins=typeof window!=="undefined"?[window.location.origin]:undefined,signal}={}},overrides){if(!rpId){return{data:null,error:new AuthError("rpId is required for WebAuthn registration")}}try{if(!browserSupportsWebAuthn()){return{data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)}}const{data:factor,error:enrollError}=await this._enroll({friendlyName});if(!factor){await this.client.mfa.listFactors().then((factors)=>{var _a;return(_a=factors.data)===null||_a===undefined?undefined:_a.all.find((v)=>v.factor_type==="webauthn"&&v.friendly_name===friendlyName&&v.status==="unverified")}).then((factor2)=>factor2?this.client.mfa.unenroll({factorId:factor2===null||factor2===undefined?undefined:factor2.id}):undefined);return{data:null,error:enrollError}}const{data:challengeResponse,error:challengeError}=await this._challenge({factorId:factor.id,friendlyName:factor.friendly_name,webauthn:{rpId,rpOrigins},signal},{create:overrides});if(!challengeResponse){return{data:null,error:challengeError}}return this._verify({factorId:factor.id,challengeId:challengeResponse.challengeId,webauthn:{rpId,rpOrigins,type:challengeResponse.webauthn.type,credential_response:challengeResponse.webauthn.credential_response}})}catch(error){if(isAuthError(error)){return{data:null,error}}return{data:null,error:new AuthUnknownError("Unexpected error in register",error)}}}}var webAuthnAbortService,DEFAULT_CREATION_OPTIONS,DEFAULT_REQUEST_OPTIONS;var init_webauthn=__esm(()=>{init_tslib_es6();init_base64url();init_errors();init_helpers();init_webauthn_errors();webAuthnAbortService=new WebAuthnAbortService;DEFAULT_CREATION_OPTIONS={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:false,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"};DEFAULT_REQUEST_OPTIONS={userVerification:"preferred",hints:["security-key"],attestation:"direct"}});class GoTrueClient{get jwks(){var _a,_b;return(_b=(_a=GLOBAL_JWKS[this.storageKey])===null||_a===undefined?undefined:_a.jwks)!==null&&_b!==undefined?_b:{keys:[]}}set jwks(value){GLOBAL_JWKS[this.storageKey]=Object.assign(Object.assign({},GLOBAL_JWKS[this.storageKey]),{jwks:value})}get jwks_cached_at(){var _a,_b;return(_b=(_a=GLOBAL_JWKS[this.storageKey])===null||_a===undefined?undefined:_a.cachedAt)!==null&&_b!==undefined?_b:Number.MIN_SAFE_INTEGER}set jwks_cached_at(value){GLOBAL_JWKS[this.storageKey]=Object.assign(Object.assign({},GLOBAL_JWKS[this.storageKey]),{cachedAt:value})}constructor(options){var _a,_b,_c;this.userStorage=null;this.memoryStorage=null;this.stateChangeEmitters=new Map;this.autoRefreshTicker=null;this.autoRefreshTickTimeout=null;this.visibilityChangedCallback=null;this.refreshingDeferred=null;this.lastRefreshFailure=null;this._sessionRemovalEpoch=0;this.initializePromise=null;this._pendingInitNotifications=null;this.detectSessionInUrl=true;this.hasCustomAuthorizationHeader=false;this.suppressGetSessionWarning=false;this.lock=null;this.lockAcquired=false;this.pendingInLock=[];this.broadcastChannel=null;this.logger=console.log;const settings=Object.assign(Object.assign({},DEFAULT_OPTIONS),options);this.storageKey=settings.storageKey;this.instanceID=(_a=GoTrueClient.nextInstanceID[this.storageKey])!==null&&_a!==undefined?_a:0;GoTrueClient.nextInstanceID[this.storageKey]=this.instanceID+1;this.logDebugMessages=!!settings.debug;if(typeof settings.debug==="function"){this.logger=settings.debug}if(this.instanceID>0&&isBrowser()){const message=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(message);if(this.logDebugMessages){console.trace(message)}}this.persistSession=settings.persistSession;this.autoRefreshToken=settings.autoRefreshToken;this.experimental=(_b=settings.experimental)!==null&&_b!==undefined?_b:{};this.admin=new GoTrueAdminApi({url:settings.url,headers:settings.headers,fetch:settings.fetch,experimental:this.experimental});this.url=settings.url;this.headers=settings.headers;this.fetch=resolveFetch(settings.fetch);this.detectSessionInUrl=settings.detectSessionInUrl;this.flowType=settings.flowType;this.hasCustomAuthorizationHeader=settings.hasCustomAuthorizationHeader;this.throwOnError=settings.throwOnError;this.lockAcquireTimeout=settings.lockAcquireTimeout;if(settings.lock!=null){this.lock=settings.lock;if(!deprecatedLockWarned){deprecatedLockWarned=true;console.warn(`${this._logPrefix()} The "lock" option is deprecated and will be removed in v3. The client now coordinates session refreshes without a lock, so most apps can drop the option. See https://github.com/supabase/supabase-js/blob/master/packages/core/auth-js/migrations/lockless-coordination.md`)}}if(!this.jwks){this.jwks={keys:[]};this.jwks_cached_at=Number.MIN_SAFE_INTEGER}this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new WebAuthnApi(this),recoveryCodes:{getStatus:this._getRecoveryCodesStatus.bind(this),generate:this._generateRecoveryCodes.bind(this),verify:this._verifyRecoveryCode.bind(this),regenerate:this._regenerateRecoveryCodes.bind(this),unenroll:this._unenrollRecoveryCodes.bind(this)}};this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)};this.passkey={startRegistration:this._startPasskeyRegistration.bind(this),verifyRegistration:this._verifyPasskeyRegistration.bind(this),startAuthentication:this._startPasskeyAuthentication.bind(this),verifyAuthentication:this._verifyPasskeyAuthentication.bind(this),list:this._listPasskeys.bind(this),update:this._updatePasskey.bind(this),delete:this._deletePasskey.bind(this)};if(this.persistSession){if(settings.storage){this.storage=settings.storage}else{if(supportsLocalStorage()){this.storage=globalThis.localStorage}else{this.memoryStorage={};this.storage=memoryLocalStorageAdapter(this.memoryStorage)}}if(settings.userStorage){this.userStorage=settings.userStorage}}else{this.memoryStorage={};this.storage=memoryLocalStorageAdapter(this.memoryStorage)}if(isBrowser()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",e)}(_c=this.broadcastChannel)===null||_c===undefined||_c.addEventListener("message",async(event)=>{this._debug("received broadcast notification from other tab or client",event);if(event.data.event==="TOKEN_REFRESHED"||event.data.event==="SIGNED_IN"){this.lastRefreshFailure=null}try{await this._notifyAllSubscribers(event.data.event,event.data.session,false)}catch(error){this._debug("#broadcastChannel","error",error)}})}if(!settings.skipAutoInitialize){this.initialize().catch((error)=>{this._debug("#initialize()","error",error)})}}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(result2){if(this.throwOnError&&result2&&result2.error){throw result2.error}return result2}_logPrefix(){return"GoTrueClient@"+`${this.storageKey}:${this.instanceID} (${version}) ${new Date().toISOString()}`}_debug(...args){if(this.logDebugMessages){this.logger(this._logPrefix(),...args)}return this}async initialize(){var _a;if(this.initializePromise){return await this.initializePromise}this._pendingInitNotifications=[];this.initializePromise=(async()=>{if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._initialize()})}return await this._initialize()})();const result2=await this.initializePromise;const queue=(_a=this._pendingInitNotifications)!==null&&_a!==undefined?_a:[];this._pendingInitNotifications=null;for(const n of queue){await this._notifyAllSubscribers(n.event,n.session,n.broadcast)}return result2}async _initialize(){var _a;try{let params={};let callbackUrlType="none";if(isBrowser()){params=parseParametersFromURL(window.location.href);if(this._isImplicitGrantCallback(params)){callbackUrlType="implicit"}else if(await this._isPKCECallback(params)){callbackUrlType="pkce"}}if(isBrowser()&&this.detectSessionInUrl&&callbackUrlType!=="none"){const{data:data2,error}=await this._getSessionFromURL(params,callbackUrlType);if(error){this._debug("#_initialize()","error detecting session from URL",error);if(isAuthImplicitGrantRedirectError(error)){const errorCode=(_a=error.details)===null||_a===undefined?undefined:_a.code;if(errorCode==="identity_already_exists"||errorCode==="identity_not_found"||errorCode==="single_identity_not_deletable"){return{error}}}return{error}}const{session,redirectType}=data2;this._debug("#_initialize()","detected session in URL",session,"redirect type",redirectType);await this._saveSession(session);setTimeout(async()=>{if(redirectType==="recovery"){await this._notifyAllSubscribers("PASSWORD_RECOVERY",session)}else{await this._notifyAllSubscribers("SIGNED_IN",session)}},0);return{error:null}}await this._recoverAndRefresh();return{error:null}}catch(error){if(isAuthError(error)){return this._returnResult({error})}return this._returnResult({error:new AuthUnknownError("Unexpected error during initialization",error)})}finally{await this._handleVisibilityChange();this._debug("#_initialize()","end")}}async signInAnonymously(credentials){var _a,_b,_c;try{const res=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(_b=(_a=credentials===null||credentials===undefined?undefined:credentials.options)===null||_a===undefined?undefined:_a.data)!==null&&_b!==undefined?_b:{},gotrue_meta_security:{captcha_token:(_c=credentials===null||credentials===undefined?undefined:credentials.options)===null||_c===undefined?undefined:_c.captchaToken}},xform:_sessionResponse});const{data:data2,error}=res;if(error||!data2){return this._returnResult({data:{user:null,session:null},error})}const session=data2.session;const user=data2.user;if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",session)}return this._returnResult({data:{user,session},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signUp(credentials){var _a,_b,_c;let flowId=null;try{let res;if("email"in credentials){const{email,password,options}=credentials;let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}res=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(options===null||options===undefined?undefined:options.emailRedirectTo,flowId),body:{email,password,data:(_a=options===null||options===undefined?undefined:options.data)!==null&&_a!==undefined?_a:{},gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken},code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod},xform:_sessionResponse})}else if("phone"in credentials){const{phone,password,options}=credentials;res=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone,password,data:(_b=options===null||options===undefined?undefined:options.data)!==null&&_b!==undefined?_b:{},channel:(_c=options===null||options===undefined?undefined:options.channel)!==null&&_c!==undefined?_c:"sms",gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}},xform:_sessionResponse})}else{throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password")}const{data:data2,error}=res;if(error||!data2){await removePKCEVerifier(this.storage,this.storageKey,flowId);return this._returnResult({data:{user:null,session:null},error})}const session=data2.session;const user=data2.user;if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",session)}return this._returnResult({data:{user,session},error:null})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signInWithPassword(credentials){try{let res;if("email"in credentials){const{email,password,options}=credentials;res=await _request(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email,password,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}},xform:_sessionResponsePassword})}else if("phone"in credentials){const{phone,password,options}=credentials;res=await _request(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone,password,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}},xform:_sessionResponsePassword})}else{throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password")}const{data:data2,error}=res;if(error){return this._returnResult({data:{user:null,session:null},error})}else if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:Object.assign({user:data2.user,session:data2.session},data2.weak_password?{weakPassword:data2.weak_password}:null),error})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signInWithOAuth(credentials){var _a,_b,_c,_d;return await this._handleProviderSignIn(credentials.provider,{redirectTo:(_a=credentials.options)===null||_a===undefined?undefined:_a.redirectTo,scopes:(_b=credentials.options)===null||_b===undefined?undefined:_b.scopes,queryParams:(_c=credentials.options)===null||_c===undefined?undefined:_c.queryParams,skipBrowserRedirect:(_d=credentials.options)===null||_d===undefined?undefined:_d.skipBrowserRedirect})}async exchangeCodeForSession(authCode,options){await this.initializePromise;if(this.lock!=null){return this._acquireLock(this.lockAcquireTimeout,async()=>{return this._exchangeCodeForSession(authCode,options)})}return this._exchangeCodeForSession(authCode,options)}async signInWithWeb3(credentials){const{chain}=credentials;switch(chain){case"ethereum":return await this.signInWithEthereum(credentials);case"solana":return await this.signInWithSolana(credentials);default:throw new Error(`@supabase/auth-js: Unsupported chain "${chain}"`)}}async signInWithEthereum(credentials){var _a,_b,_c,_d,_f,_g,_h,_j,_k,_l,_m;let message;let signature;if("message"in credentials){message=credentials.message;signature=credentials.signature}else{const{chain,wallet,statement,options}=credentials;let resolvedWallet;if(!isBrowser()){if(typeof wallet!=="object"||!(options===null||options===undefined?undefined:options.url)){throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.")}resolvedWallet=wallet}else if(typeof wallet==="object"){resolvedWallet=wallet}else{const windowAny=window;if("ethereum"in windowAny&&typeof windowAny.ethereum==="object"&&"request"in windowAny.ethereum&&typeof windowAny.ethereum.request==="function"){resolvedWallet=windowAny.ethereum}else{throw new Error(`@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.`)}}const url=new URL((_a=options===null||options===undefined?undefined:options.url)!==null&&_a!==undefined?_a:window.location.href);const accounts=await resolvedWallet.request({method:"eth_requestAccounts"}).then((accs)=>accs).catch(()=>{throw new Error(`@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid`)});if(!accounts||accounts.length===0){throw new Error(`@supabase/auth-js: No accounts available. Please ensure the wallet is connected.`)}const address=getAddress(accounts[0]);let chainId=(_b=options===null||options===undefined?undefined:options.signInWithEthereum)===null||_b===undefined?undefined:_b.chainId;if(!chainId){const chainIdHex=await resolvedWallet.request({method:"eth_chainId"});chainId=fromHex(chainIdHex)}const siweMessage={domain:url.host,address,statement,uri:url.href,version:"1",chainId,nonce:(_c=options===null||options===undefined?undefined:options.signInWithEthereum)===null||_c===undefined?undefined:_c.nonce,issuedAt:(_f=(_d=options===null||options===undefined?undefined:options.signInWithEthereum)===null||_d===undefined?undefined:_d.issuedAt)!==null&&_f!==undefined?_f:new Date,expirationTime:(_g=options===null||options===undefined?undefined:options.signInWithEthereum)===null||_g===undefined?undefined:_g.expirationTime,notBefore:(_h=options===null||options===undefined?undefined:options.signInWithEthereum)===null||_h===undefined?undefined:_h.notBefore,requestId:(_j=options===null||options===undefined?undefined:options.signInWithEthereum)===null||_j===undefined?undefined:_j.requestId,resources:(_k=options===null||options===undefined?undefined:options.signInWithEthereum)===null||_k===undefined?undefined:_k.resources};message=createSiweMessage(siweMessage);signature=await resolvedWallet.request({method:"personal_sign",params:[toHex(message),address]})}try{const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message,signature},((_l=credentials.options)===null||_l===undefined?undefined:_l.captchaToken)?{gotrue_meta_security:{captcha_token:(_m=credentials.options)===null||_m===undefined?undefined:_m.captchaToken}}:null),xform:_sessionResponse});if(error){throw error}if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:Object.assign({},data2),error})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signInWithSolana(credentials){var _a,_b,_c,_d,_f,_g,_h,_j,_k,_l,_m,_o;let message;let signature;if("message"in credentials){message=credentials.message;signature=credentials.signature}else{const{chain,wallet,statement,options}=credentials;let resolvedWallet;if(!isBrowser()){if(typeof wallet!=="object"||!(options===null||options===undefined?undefined:options.url)){throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.")}resolvedWallet=wallet}else if(typeof wallet==="object"){resolvedWallet=wallet}else{const windowAny=window;if("solana"in windowAny&&typeof windowAny.solana==="object"&&(("signIn"in windowAny.solana)&&typeof windowAny.solana.signIn==="function"||("signMessage"in windowAny.solana)&&typeof windowAny.solana.signMessage==="function")){resolvedWallet=windowAny.solana}else{throw new Error(`@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.`)}}const url=new URL((_a=options===null||options===undefined?undefined:options.url)!==null&&_a!==undefined?_a:window.location.href);if("signIn"in resolvedWallet&&resolvedWallet.signIn){const output=await resolvedWallet.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},options===null||options===undefined?undefined:options.signInWithSolana),{version:"1",domain:url.host,uri:url.href}),statement?{statement}:null));let outputToProcess;if(Array.isArray(output)&&output[0]&&typeof output[0]==="object"){outputToProcess=output[0]}else if(output&&typeof output==="object"&&"signedMessage"in output&&"signature"in output){outputToProcess=output}else{throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value")}if("signedMessage"in outputToProcess&&"signature"in outputToProcess&&(typeof outputToProcess.signedMessage==="string"||outputToProcess.signedMessage instanceof Uint8Array)&&outputToProcess.signature instanceof Uint8Array){message=typeof outputToProcess.signedMessage==="string"?outputToProcess.signedMessage:new TextDecoder().decode(outputToProcess.signedMessage);signature=outputToProcess.signature}else{throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}}else{if(!("signMessage"in resolvedWallet)||typeof resolvedWallet.signMessage!=="function"||!("publicKey"in resolvedWallet)||typeof resolvedWallet!=="object"||!resolvedWallet.publicKey||!("toBase58"in resolvedWallet.publicKey)||typeof resolvedWallet.publicKey.toBase58!=="function"){throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API")}message=[`${url.host} wants you to sign in with your Solana account:`,resolvedWallet.publicKey.toBase58(),...statement?["",statement,""]:[""],"Version: 1",`URI: ${url.href}`,`Issued At: ${(_c=(_b=options===null||options===undefined?undefined:options.signInWithSolana)===null||_b===undefined?undefined:_b.issuedAt)!==null&&_c!==undefined?_c:new Date().toISOString()}`,...((_d=options===null||options===undefined?undefined:options.signInWithSolana)===null||_d===undefined?undefined:_d.notBefore)?[`Not Before: ${options.signInWithSolana.notBefore}`]:[],...((_f=options===null||options===undefined?undefined:options.signInWithSolana)===null||_f===undefined?undefined:_f.expirationTime)?[`Expiration Time: ${options.signInWithSolana.expirationTime}`]:[],...((_g=options===null||options===undefined?undefined:options.signInWithSolana)===null||_g===undefined?undefined:_g.chainId)?[`Chain ID: ${options.signInWithSolana.chainId}`]:[],...((_h=options===null||options===undefined?undefined:options.signInWithSolana)===null||_h===undefined?undefined:_h.nonce)?[`Nonce: ${options.signInWithSolana.nonce}`]:[],...((_j=options===null||options===undefined?undefined:options.signInWithSolana)===null||_j===undefined?undefined:_j.requestId)?[`Request ID: ${options.signInWithSolana.requestId}`]:[],...((_l=(_k=options===null||options===undefined?undefined:options.signInWithSolana)===null||_k===undefined?undefined:_k.resources)===null||_l===undefined?undefined:_l.length)?["Resources",...options.signInWithSolana.resources.map((resource)=>`- ${resource}`)]:[]].join(`
|
|
18
|
-
`);const maybeSignature=await resolvedWallet.signMessage(new TextEncoder().encode(message),"utf8");if(!maybeSignature||!(maybeSignature instanceof Uint8Array)){throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value")}signature=maybeSignature}}try{const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message,signature:bytesToBase64URL(signature)},((_m=credentials.options)===null||_m===undefined?undefined:_m.captchaToken)?{gotrue_meta_security:{captcha_token:(_o=credentials.options)===null||_o===undefined?undefined:_o.captchaToken}}:null),xform:_sessionResponse});if(error){throw error}if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:Object.assign({},data2),error})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async _exchangeCodeForSession(authCode,options){const hasExplicitFlowId=(options===null||options===undefined?undefined:options.flowId)!=null;const requestedFlowId=hasExplicitFlowId?validatePKCEFlowId(options===null||options===undefined?undefined:options.flowId):isBrowser()?validatePKCEFlowId(parseParametersFromURL(window.location.href)[PKCE_FLOW_ID_PARAM]):null;if(hasExplicitFlowId&&!requestedFlowId){this._debug("#_exchangeCodeForSession()","provided flowId is not a valid flow id",options===null||options===undefined?undefined:options.flowId)}const{verifier:storageItem,flowId}=hasExplicitFlowId&&!requestedFlowId?{verifier:null,flowId:null}:await retrievePKCEVerifier(this.storage,this.storageKey,requestedFlowId);const[codeVerifier,redirectType]=(storageItem!==null&&storageItem!==undefined?storageItem:"").split("/");try{if(!codeVerifier&&this.flowType==="pkce"){throw new AuthPKCECodeVerifierMissingError}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:authCode,code_verifier:codeVerifier},xform:_sessionResponse});await removePKCEVerifier(this.storage,this.storageKey,flowId);if(error){throw error}if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null,redirectType:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers(redirectType==="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",data2.session)}return this._returnResult({data:Object.assign(Object.assign({},data2),{redirectType:redirectType!==null&&redirectType!==undefined?redirectType:null}),error})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null,redirectType:null},error})}throw error}}async signInWithIdToken(credentials){try{const{options,provider,token,access_token,nonce}=credentials;const res=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider,id_token:token,access_token,nonce,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}},xform:_sessionResponse});const{data:data2,error}=res;if(error){return this._returnResult({data:{user:null,session:null},error})}else if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:data2,error})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signInWithOtp(credentials){var _a,_b,_c,_d,_f;let flowId=null;try{if("email"in credentials){const{email,options}=credentials;let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const{error}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email,data:(_a=options===null||options===undefined?undefined:options.data)!==null&&_a!==undefined?_a:{},create_user:(_b=options===null||options===undefined?undefined:options.shouldCreateUser)!==null&&_b!==undefined?_b:true,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken},code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod},redirectTo:this._maybeAppendFlowIdToRedirect(options===null||options===undefined?undefined:options.emailRedirectTo,flowId)});return this._returnResult({data:{user:null,session:null},error})}if("phone"in credentials){const{phone,options}=credentials;const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone,data:(_c=options===null||options===undefined?undefined:options.data)!==null&&_c!==undefined?_c:{},create_user:(_d=options===null||options===undefined?undefined:options.shouldCreateUser)!==null&&_d!==undefined?_d:true,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken},channel:(_f=options===null||options===undefined?undefined:options.channel)!==null&&_f!==undefined?_f:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:data2===null||data2===undefined?undefined:data2.message_id},error})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number.")}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async verifyOtp(params){var _a,_b;try{let redirectTo=undefined;let captchaToken=undefined;if("options"in params){redirectTo=(_a=params.options)===null||_a===undefined?undefined:_a.redirectTo;captchaToken=(_b=params.options)===null||_b===undefined?undefined:_b.captchaToken}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},params),{gotrue_meta_security:{captcha_token:captchaToken}}),redirectTo,xform:_sessionResponse});if(error){throw error}if(!data2){const tokenVerificationError=new Error("An error occurred on token verification.");throw tokenVerificationError}const session=data2.session;const user=data2.user;if(session===null||session===undefined?undefined:session.access_token){await this._saveSession(session);await this._notifyAllSubscribers(params.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",session)}return this._returnResult({data:{user,session},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signInWithSSO(params){var _a,_b,_c,_d;let flowId=null;try{let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const result2=await _request(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in params?{provider_id:params.providerId}:null),"domain"in params?{domain:params.domain}:null),{redirect_to:this._maybeAppendFlowIdToRedirect((_a=params.options)===null||_a===undefined?undefined:_a.redirectTo,flowId)}),((_b=params===null||params===undefined?undefined:params.options)===null||_b===undefined?undefined:_b.captchaToken)?{gotrue_meta_security:{captcha_token:params.options.captchaToken}}:null),{skip_http_redirect:true,code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod}),headers:this.headers,xform:_ssoResponse});if(((_c=result2.data)===null||_c===undefined?undefined:_c.url)&&isBrowser()&&!((_d=params.options)===null||_d===undefined?undefined:_d.skipBrowserRedirect)){window.location.assign(result2.data.url)}return this._returnResult(result2)}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async reauthenticate(){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._reauthenticate()})}return await this._reauthenticate()}async _reauthenticate(){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError)throw sessionError;if(!session)throw new AuthSessionMissingError;const{error}=await _request(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:session.access_token});return this._returnResult({data:{user:null,session:null},error})})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async resend(credentials){let flowId=null;try{const endpoint=`${this.url}/resend`;if("email"in credentials){const{email,type,options}=credentials;let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const{error}=await _request(this.fetch,"POST",endpoint,{headers:this.headers,body:{email,type,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken},code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod},redirectTo:this._maybeAppendFlowIdToRedirect(options===null||options===undefined?undefined:options.emailRedirectTo,flowId)});if(error){await removePKCEVerifier(this.storage,this.storageKey,flowId)}return this._returnResult({data:{user:null,session:null},error})}else if("phone"in credentials){const{phone,type,options}=credentials;const{data:data2,error}=await _request(this.fetch,"POST",endpoint,{headers:this.headers,body:{phone,type,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:data2===null||data2===undefined?undefined:data2.message_id},error})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a type")}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async getSession(){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return this._useSession(async(result2)=>{return result2})})}return await this._useSession(async(result2)=>{return result2})}async _acquireLock(acquireTimeout,fn){this._debug("#_acquireLock","begin",acquireTimeout);try{if(this.lockAcquired){const last=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve();const result2=(async()=>{await last;return await fn()})();this.pendingInLock.push((async()=>{try{await result2}catch(_e){}})());return result2}return await this.lock(`lock:${this.storageKey}`,acquireTimeout,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=true;const result2=fn();this.pendingInLock.push((async()=>{try{await result2}catch(e){}})());await result2;while(this.pendingInLock.length){const waitOn=[...this.pendingInLock];await Promise.all(waitOn);this.pendingInLock.splice(0,waitOn.length)}return await result2}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey);this.lockAcquired=false}})}finally{this._debug("#_acquireLock","end")}}async _useSession(fn){this._debug("#_useSession","begin");try{const result2=await this.__loadSession();return await fn(result2)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin");if(this.lock!=null&&!this.lockAcquired){this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack)}try{let currentSession=null;const maybeSession=await getItemAsync(this.storage,this.storageKey);this._debug("#getSession()","session from storage",maybeSession);if(maybeSession!==null){if(this._isValidSession(maybeSession)){currentSession=maybeSession}else{this._debug("#getSession()","session from storage is not valid");await this._removeSession()}}if(!currentSession){return{data:{session:null},error:null}}const hasExpired=currentSession.expires_at?currentSession.expires_at*1000-Date.now()<EXPIRY_MARGIN_MS:false;this._debug("#__loadSession()",`session has${hasExpired?"":" not"} expired`,"expires_at",currentSession.expires_at);if(!hasExpired){if(this.userStorage){const maybeUser=await getItemAsync(this.userStorage,this.storageKey+"-user");if(maybeUser===null||maybeUser===undefined?undefined:maybeUser.user){currentSession.user=maybeUser.user}else{currentSession.user=userNotAvailableProxy()}}if(this.storage.isServer&¤tSession.user&&!currentSession.user.__isUserNotAvailableProxy){const suppressWarningRef={value:this.suppressGetSessionWarning};currentSession.user=insecureUserWarningProxy(currentSession.user,suppressWarningRef);if(suppressWarningRef.value){this.suppressGetSessionWarning=true}}return{data:{session:currentSession},error:null}}const{data:session,error}=await this._callRefreshToken(currentSession.refresh_token);if(error){const accessTokenStillValid=!!(currentSession.expires_at&¤tSession.expires_at*1000>Date.now());if(accessTokenStillValid){const stillStored=await getItemAsync(this.storage,this.storageKey);if(stillStored&&stillStored.refresh_token===currentSession.refresh_token){return this._returnResult({data:{session:currentSession},error:null})}}return this._returnResult({data:{session:null},error})}return this._returnResult({data:{session},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(jwt){if(jwt){return await this._getUser(jwt)}await this.initializePromise;let result2;if(this.lock!=null){result2=await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._getUser()})}else{result2=await this._getUser()}if(result2.data.user){this.suppressGetSessionWarning=true}return result2}async _getUser(jwt){try{if(jwt){return await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt,xform:_userResponse})}return await this._useSession(async(result2)=>{var _a,_b,_c;const{data:data2,error}=result2;if(error){throw error}if(!((_a=data2.session)===null||_a===undefined?undefined:_a.access_token)&&!this.hasCustomAuthorizationHeader){return{data:{user:null},error:new AuthSessionMissingError}}return await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(_c=(_b=data2.session)===null||_b===undefined?undefined:_b.access_token)!==null&&_c!==undefined?_c:undefined,xform:_userResponse})})}catch(error){if(isAuthError(error)){if(isAuthSessionMissingError(error)){await this._removeSession()}return this._returnResult({data:{user:null},error})}throw error}}async updateUser(attributes,options={}){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._updateUser(attributes,options)})}return await this._updateUser(attributes,options)}async _updateUser(attributes,options={}){let flowId=null;try{return await this._useSession(async(result2)=>{const{data:sessionData,error:sessionError}=result2;if(sessionError){throw sessionError}if(!sessionData.session){throw new AuthSessionMissingError}const session=sessionData.session;let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"&&attributes.email!=null){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const{data:data2,error:userError}=await _request(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(options===null||options===undefined?undefined:options.emailRedirectTo,flowId),body:Object.assign(Object.assign({},attributes),{code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod}),jwt:session.access_token,xform:_userResponse});if(userError){throw userError}session.user=data2.user;await this._saveSession(session);await this._notifyAllSubscribers("USER_UPDATED",session);return this._returnResult({data:{user:session.user},error:null})})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null},error})}throw error}}async setSession(currentSession){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._setSession(currentSession)})}return await this._setSession(currentSession)}async _setSession(currentSession){try{if(!currentSession.access_token||!currentSession.refresh_token){throw new AuthSessionMissingError}const timeNow=Date.now()/1000;let expiresAt2=timeNow;let hasExpired=true;let session=null;const{payload}=decodeJWT(currentSession.access_token);if(payload.exp){expiresAt2=payload.exp;hasExpired=expiresAt2<=timeNow}if(hasExpired){const{data:refreshedSession,error}=await this._callRefreshToken(currentSession.refresh_token);if(error){return this._returnResult({data:{user:null,session:null},error})}if(!refreshedSession){return{data:{user:null,session:null},error:null}}session=refreshedSession}else{const{data:data2,error}=await this._getUser(currentSession.access_token);if(error){return this._returnResult({data:{user:null,session:null},error})}session={access_token:currentSession.access_token,refresh_token:currentSession.refresh_token,user:data2.user,token_type:"bearer",expires_in:expiresAt2-timeNow,expires_at:expiresAt2};await this._saveSession(session);await this._notifyAllSubscribers("SIGNED_IN",session)}return this._returnResult({data:{user:session.user,session},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{session:null,user:null},error})}throw error}}async refreshSession(currentSession){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._refreshSession(currentSession)})}return await this._refreshSession(currentSession)}async _refreshSession(currentSession){try{return await this._useSession(async(result2)=>{var _a;if(!currentSession){const{data:data2,error:error2}=result2;if(error2){throw error2}currentSession=(_a=data2.session)!==null&&_a!==undefined?_a:undefined}if(!(currentSession===null||currentSession===undefined?undefined:currentSession.refresh_token)){throw new AuthSessionMissingError}const{data:session,error}=await this._callRefreshToken(currentSession.refresh_token);if(error){return this._returnResult({data:{user:null,session:null},error})}if(!session){return this._returnResult({data:{user:null,session:null},error:null})}return this._returnResult({data:{user:session.user,session},error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async _getSessionFromURL(params,callbackUrlType){var _a;try{if(!isBrowser())throw new AuthImplicitGrantRedirectError("No browser detected.");if(params.error||params.error_description||params.error_code){throw new AuthImplicitGrantRedirectError(params.error_description||"Error in URL with unspecified error_description",{error:params.error||"unspecified_error",code:params.error_code||"unspecified_code"})}switch(callbackUrlType){case"implicit":if(this.flowType==="pkce"){throw new AuthPKCEGrantCodeExchangeError("Not a valid PKCE flow url.")}break;case"pkce":if(this.flowType==="implicit"){throw new AuthImplicitGrantRedirectError("Not a valid implicit grant flow url.")}break;default:}if(callbackUrlType==="pkce"){this._debug("#_initialize()","begin","is PKCE flow",true);if(!params.code)throw new AuthPKCEGrantCodeExchangeError("No code detected.");const{data:data3,error:error2}=await this._exchangeCodeForSession(params.code,{flowId:params[PKCE_FLOW_ID_PARAM]});if(error2)throw error2;const url=new URL(window.location.href);url.searchParams.delete("code");url.searchParams.delete(PKCE_FLOW_ID_PARAM);window.history.replaceState(window.history.state,"",url.toString());return{data:{session:data3.session,redirectType:(_a=data3.redirectType)!==null&&_a!==undefined?_a:null},error:null}}const{provider_token,provider_refresh_token,access_token,refresh_token,expires_in,expires_at,token_type}=params;if(!access_token||!expires_in||!refresh_token||!token_type){throw new AuthImplicitGrantRedirectError("No session defined in URL")}const timeNow=Math.round(Date.now()/1000);const expiresIn=parseInt(expires_in);let expiresAt2=timeNow+expiresIn;if(expires_at){expiresAt2=parseInt(expires_at)}const actuallyExpiresIn=expiresAt2-timeNow;if(actuallyExpiresIn*1000<=AUTO_REFRESH_TICK_DURATION_MS){console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`)}const issuedAt=expiresAt2-expiresIn;if(timeNow-issuedAt>=120){console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",issuedAt,expiresAt2,timeNow)}else if(timeNow-issuedAt<0){console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",issuedAt,expiresAt2,timeNow)}const{data:data2,error}=await this._getUser(access_token);if(error)throw error;const session={provider_token,provider_refresh_token,access_token,expires_in:expiresIn,expires_at:expiresAt2,refresh_token,token_type,user:data2.user};window.location.hash="";this._debug("#_getSessionFromURL()","clearing window.location.hash");return this._returnResult({data:{session,redirectType:params.type},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{session:null,redirectType:null},error})}throw error}}_isImplicitGrantCallback(params){if(typeof this.detectSessionInUrl==="function"){return this.detectSessionInUrl(new URL(window.location.href),params)}return Boolean(params.access_token||params.error||params.error_description||params.error_code)}async _isPKCECallback(params){if(!params.code){return false}const flowId=validatePKCEFlowId(params[PKCE_FLOW_ID_PARAM]);if(flowId&&await getItemAsync(this.storage,pkceVerifierSlotKey(this.storageKey,flowId))){return true}const currentStorageContent=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`);return!!currentStorageContent}async signOut(options={scope:"global"}){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._signOut(options)})}return await this._signOut(options)}async _signOut({scope}={scope:"global"}){return await this._useSession(async(result2)=>{var _a;const removeCurrentSession=async()=>{await this._removeSession()};const{data:data2,error:sessionError}=result2;if(sessionError&&!isAuthSessionMissingError(sessionError)){return this._returnResult({error:sessionError})}const accessToken=(_a=data2.session)===null||_a===undefined?undefined:_a.access_token;if(accessToken){const{error}=await this.admin.signOut(accessToken,scope);if(error){if(!(isAuthApiError(error)&&(error.status===404||error.status===401||error.status===403)||isAuthSessionMissingError(error))){if(scope!=="others"){await removeCurrentSession()}return this._returnResult({error})}}}if(scope!=="others"){await removeCurrentSession()}return this._returnResult({error:null})})}onAuthStateChange(callback){const id3=generateCallbackId();const subscription={id:id3,callback,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",id3);this.stateChangeEmitters.delete(id3)}};this._debug("#onAuthStateChange()","registered callback with id",id3);this.stateChangeEmitters.set(id3,subscription);(async()=>{await this.initializePromise;if(this.lock!=null){await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(id3)})}else{await this._emitInitialSession(id3)}})();return{data:{subscription}}}async _emitInitialSession(id3){return await this._useSession(async(result2)=>{var _a,_b;try{const{data:{session},error}=result2;if(error)throw error;await((_a=this.stateChangeEmitters.get(id3))===null||_a===undefined?undefined:_a.callback("INITIAL_SESSION",session));this._debug("INITIAL_SESSION","callback id",id3,"session",session)}catch(err){await((_b=this.stateChangeEmitters.get(id3))===null||_b===undefined?undefined:_b.callback("INITIAL_SESSION",null));this._debug("INITIAL_SESSION","callback id",id3,"error",err);if(isAuthRefreshDiscardedError(err)){return}if(isAuthSessionMissingError(err)||isAuthRetryableFetchError(err)||isAuthApiError(err)&&(err.code==="refresh_token_not_found"||err.code==="refresh_token_already_used"||err.code==="session_expired")){console.warn(err)}else{console.error(err)}}})}async resetPasswordForEmail(email,options={}){let codeChallenge=null;let codeChallengeMethod=null;let flowId=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod(true)}try{return await _request(this.fetch,"POST",`${this.url}/recover`,{body:{email,code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod,gotrue_meta_security:{captcha_token:options.captchaToken}},headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(options.redirectTo,flowId)})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async getUserIdentities(){var _a;try{const{data:data2,error}=await this.getUser();if(error)throw error;return this._returnResult({data:{identities:(_a=data2.user.identities)!==null&&_a!==undefined?_a:[]},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async linkIdentity(credentials){if("token"in credentials){return this.linkIdentityIdToken(credentials)}return this.linkIdentityOAuth(credentials)}async linkIdentityOAuth(credentials){var _a;let flowId=null;try{const{data:data2,error}=await this._useSession(async(result2)=>{var _a2,_b,_c,_d,_f;const{data:data3,error:error2}=result2;if(error2)throw error2;const{url,flowId:urlFlowId}=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,credentials.provider,{redirectTo:(_a2=credentials.options)===null||_a2===undefined?undefined:_a2.redirectTo,scopes:(_b=credentials.options)===null||_b===undefined?undefined:_b.scopes,queryParams:(_c=credentials.options)===null||_c===undefined?undefined:_c.queryParams,skipBrowserRedirect:true});flowId=urlFlowId;return await _request(this.fetch,"GET",url,{headers:this.headers,jwt:(_f=(_d=data3.session)===null||_d===undefined?undefined:_d.access_token)!==null&&_f!==undefined?_f:undefined})});if(error)throw error;if(isBrowser()&&!((_a=credentials.options)===null||_a===undefined?undefined:_a.skipBrowserRedirect)){window.location.assign(data2===null||data2===undefined?undefined:data2.url)}return this._returnResult({data:{provider:credentials.provider,url:data2===null||data2===undefined?undefined:data2.url,flowId},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{provider:credentials.provider,url:null,flowId},error})}throw error}}async linkIdentityIdToken(credentials){return await this._useSession(async(result2)=>{var _a;try{const{error:sessionError,data:{session}}=result2;if(sessionError)throw sessionError;const{options,provider,token,access_token,nonce}=credentials;const res=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(_a=session===null||session===undefined?undefined:session.access_token)!==null&&_a!==undefined?_a:undefined,body:{provider,id_token:token,access_token,nonce,link_identity:true,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}},xform:_sessionResponse});const{data:data2,error}=res;if(error){return this._returnResult({data:{user:null,session:null},error})}else if(!data2||!data2.session||!data2.user){return this._returnResult({data:{user:null,session:null},error:new AuthInvalidTokenResponseError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("USER_UPDATED",data2.session)}return this._returnResult({data:data2,error})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,null);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}})}async unlinkIdentity(identity){try{return await this._useSession(async(result2)=>{var _a,_b;const{data:data2,error}=result2;if(error){throw error}return await _request(this.fetch,"DELETE",`${this.url}/user/identities/${identity.identity_id}`,{headers:this.headers,jwt:(_b=(_a=data2.session)===null||_a===undefined?undefined:_a.access_token)!==null&&_b!==undefined?_b:undefined})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _refreshAccessToken(refreshToken){const debugName=`#_refreshAccessToken()`;this._debug(debugName,"begin");try{const startedAt=Date.now();return await retryable(async(attempt)=>{if(attempt>0){await sleep(200*Math.pow(2,attempt-1))}this._debug(debugName,"refreshing attempt",attempt);return await _request(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:refreshToken},headers:this.headers,xform:_sessionResponse})},(attempt,error)=>{const nextBackOffInterval=200*Math.pow(2,attempt);return error&&isAuthRetryableFetchError(error)&&Date.now()+nextBackOffInterval-startedAt<AUTO_REFRESH_TICK_DURATION_MS})}catch(error){this._debug(debugName,"error",error);if(isAuthError(error)){return this._returnResult({data:{session:null,user:null},error})}throw error}finally{this._debug(debugName,"end")}}_isValidSession(maybeSession){const isValidSession=typeof maybeSession==="object"&&maybeSession!==null&&"access_token"in maybeSession&&"refresh_token"in maybeSession&&"expires_at"in maybeSession;return isValidSession}async _handleProviderSignIn(provider,options){const{url,flowId}=await this._getUrlForProvider(`${this.url}/authorize`,provider,{redirectTo:options.redirectTo,scopes:options.scopes,queryParams:options.queryParams});this._debug("#_handleProviderSignIn()","provider",provider,"options",options,"url",url);if(isBrowser()&&!options.skipBrowserRedirect){window.location.assign(url)}return{data:{provider,url,flowId},error:null}}async _recoverAndRefresh(){var _a,_b;const debugName="#_recoverAndRefresh()";this._debug(debugName,"begin");try{const currentSession=await getItemAsync(this.storage,this.storageKey);if(currentSession&&this.userStorage){let maybeUser=await getItemAsync(this.userStorage,this.storageKey+"-user");if(!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!maybeUser){maybeUser={user:currentSession.user};await setItemAsync(this.userStorage,this.storageKey+"-user",maybeUser)}currentSession.user=(_a=maybeUser===null||maybeUser===undefined?undefined:maybeUser.user)!==null&&_a!==undefined?_a:userNotAvailableProxy()}else if(currentSession&&!currentSession.user){if(!currentSession.user){const separateUser=await getItemAsync(this.storage,this.storageKey+"-user");if(separateUser&&(separateUser===null||separateUser===undefined?undefined:separateUser.user)){currentSession.user=separateUser.user;await removeItemAsync(this.storage,this.storageKey+"-user");await setItemAsync(this.storage,this.storageKey,currentSession)}else{currentSession.user=userNotAvailableProxy()}}}this._debug(debugName,"session from storage",currentSession);if(!this._isValidSession(currentSession)){this._debug(debugName,"session is not valid");if(currentSession!==null){await this._removeSession()}return}const expiresWithMargin=((_b=currentSession.expires_at)!==null&&_b!==undefined?_b:Infinity)*1000-Date.now()<EXPIRY_MARGIN_MS;this._debug(debugName,`session has${expiresWithMargin?"":" not"} expired with margin of ${EXPIRY_MARGIN_MS}s`);if(expiresWithMargin){if(this.autoRefreshToken&¤tSession.refresh_token){const{error}=await this._callRefreshToken(currentSession.refresh_token);if(error){if(isAuthRefreshDiscardedError(error)){this._debug(debugName,"refresh discarded by commit guard",error)}else{this._debug(debugName,"refresh failed",error)}}}}else if(currentSession.user&¤tSession.user.__isUserNotAvailableProxy===true){try{const{data:data2,error:userError}=await this._getUser(currentSession.access_token);if(!userError&&(data2===null||data2===undefined?undefined:data2.user)){currentSession.user=data2.user;await this._saveSession(currentSession);await this._notifyAllSubscribers("SIGNED_IN",currentSession)}else{this._debug(debugName,"could not get user data, skipping SIGNED_IN notification")}}catch(getUserError){console.error("Error getting user data:",getUserError);this._debug(debugName,"error getting user data, skipping SIGNED_IN notification",getUserError)}}else{await this._notifyAllSubscribers("SIGNED_IN",currentSession)}}catch(err){this._debug(debugName,"error",err);if(isAuthRetryableFetchError(err)){console.warn(err)}else{console.error(err)}return}finally{this._debug(debugName,"end")}}async _callRefreshToken(refreshToken){var _a,_b;if(!refreshToken){throw new AuthSessionMissingError}if(this.refreshingDeferred){return this.refreshingDeferred.promise}if(this.lastRefreshFailure&&this.lastRefreshFailure.refreshToken===refreshToken&&Date.now()<this.lastRefreshFailure.expiresAt){this._debug("#_callRefreshToken()","returning cached failure (cooldown active)");return this.lastRefreshFailure.result}const debugName=`#_callRefreshToken()`;this._debug(debugName,"begin");try{this.refreshingDeferred=new Deferred;this.refreshingDeferred.promise.then(undefined,()=>{});const storedAtStart=await getItemAsync(this.storage,this.storageKey);const{data:data2,error}=await this._refreshAccessToken(refreshToken);if(error)throw error;if(!data2.session)throw new AuthSessionMissingError;const storedAfter=await getItemAsync(this.storage,this.storageKey);const storageChangedUnderUs=storedAtStart!==null&&(storedAfter===null||storedAfter.refresh_token!==storedAtStart.refresh_token);if(storageChangedUnderUs){this._debug(debugName,"commit guard: storage changed since refresh started, discarding rotated tokens",{startedWith:"present",nowHolds:storedAfter?"replaced":"cleared"});const discarded={data:null,error:new AuthRefreshDiscardedError};this.refreshingDeferred.resolve(discarded);return discarded}const epochBeforeSave=this._sessionRemovalEpoch;await this._saveSession(data2.session);if(this._sessionRemovalEpoch!==epochBeforeSave){this._debug(debugName,"commit guard (post-save): _removeSession ran during _saveSession, undoing write");await removeItemAsync(this.storage,this.storageKey);if(this.userStorage){await removeItemAsync(this.userStorage,this.storageKey+"-user")}const discarded={data:null,error:new AuthRefreshDiscardedError};this.refreshingDeferred.resolve(discarded);return discarded}await this._notifyAllSubscribers("TOKEN_REFRESHED",data2.session);const result2={data:data2.session,error:null};this.lastRefreshFailure=null;this.refreshingDeferred.resolve(result2);return result2}catch(error){this._debug(debugName,"error",error);if(isAuthError(error)){const result2={data:null,error};if(!isAuthRetryableFetchError(error)){const storedNow=await getItemAsync(this.storage,this.storageKey);const accessTokenStillValid=!!((storedNow===null||storedNow===undefined?undefined:storedNow.expires_at)&&storedNow.expires_at*1000>Date.now());if(accessTokenStillValid){this._debug(debugName,"proactive refresh failed, access token still valid — preserving session")}else{await this._removeSession()}}this.lastRefreshFailure={refreshToken,result:result2,expiresAt:Date.now()+REFRESH_FAILURE_COOLDOWN_MS};(_a=this.refreshingDeferred)===null||_a===undefined||_a.resolve(result2);return result2}(_b=this.refreshingDeferred)===null||_b===undefined||_b.reject(error);throw error}finally{this.refreshingDeferred=null;this._debug(debugName,"end")}}async _notifyAllSubscribers(event,session,broadcast=true){if(this._pendingInitNotifications!==null&&broadcast){this._pendingInitNotifications.push({event,session,broadcast});return}const debugName=`#_notifyAllSubscribers(${event})`;this._debug(debugName,"begin",session,`broadcast = ${broadcast}`);try{if(this.broadcastChannel&&broadcast){this.broadcastChannel.postMessage({event,session})}const errors=[];const promises=Array.from(this.stateChangeEmitters.values()).map(async(x)=>{try{await x.callback(event,session)}catch(e){errors.push(e)}});await Promise.all(promises);if(errors.length>0){for(let i=0;i<errors.length;i+=1){console.error(errors[i])}throw errors[0]}}finally{this._debug(debugName,"end")}}async _saveSession(session){this._debug("#_saveSession()",session);this.suppressGetSessionWarning=true;const sessionToProcess=Object.assign({},session);const userIsProxy=sessionToProcess.user&&sessionToProcess.user.__isUserNotAvailableProxy===true;if(this.userStorage){if(!userIsProxy&&sessionToProcess.user){await setItemAsync(this.userStorage,this.storageKey+"-user",{user:sessionToProcess.user})}else if(userIsProxy){}const mainSessionData=Object.assign({},sessionToProcess);delete mainSessionData.user;const clonedMainSessionData=deepClone(mainSessionData);await setItemAsync(this.storage,this.storageKey,clonedMainSessionData)}else{const clonedSession=deepClone(sessionToProcess);await setItemAsync(this.storage,this.storageKey,clonedSession)}}async _removeSession(){this._sessionRemovalEpoch+=1;this._debug("#_removeSession()");this.lastRefreshFailure=null;this.suppressGetSessionWarning=false;await removeItemAsync(this.storage,this.storageKey);await removeAllPKCEVerifiers(this.storage,this.storageKey);await removeItemAsync(this.storage,this.storageKey+"-user");if(this.userStorage){await removeItemAsync(this.userStorage,this.storageKey+"-user")}await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const callback=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{if(callback&&isBrowser()&&(window===null||window===undefined?undefined:window.removeEventListener)){window.removeEventListener("visibilitychange",callback)}}catch(e){console.error("removing visibilitychange callback failed",e)}}async _startAutoRefresh(){await this._stopAutoRefresh();this._debug("#_startAutoRefresh()");const ticker=setInterval(()=>this._autoRefreshTokenTick(),AUTO_REFRESH_TICK_DURATION_MS);this.autoRefreshTicker=ticker;if(ticker&&typeof ticker==="object"&&typeof ticker.unref==="function"){ticker.unref()}else if(typeof Deno!=="undefined"&&typeof Deno.unrefTimer==="function"){Deno.unrefTimer(ticker)}const timeout=setTimeout(async()=>{await this.initializePromise;await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=timeout;if(timeout&&typeof timeout==="object"&&typeof timeout.unref==="function"){timeout.unref()}else if(typeof Deno!=="undefined"&&typeof Deno.unrefTimer==="function"){Deno.unrefTimer(timeout)}}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const ticker=this.autoRefreshTicker;this.autoRefreshTicker=null;if(ticker){clearInterval(ticker)}const timeout=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null;if(timeout){clearTimeout(timeout)}}async startAutoRefresh(){this._removeVisibilityChangedCallback();await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback();await this._stopAutoRefresh()}async dispose(){var _a;this._removeVisibilityChangedCallback();await this._stopAutoRefresh();(_a=this.broadcastChannel)===null||_a===undefined||_a.close();this.broadcastChannel=null;this.stateChangeEmitters.clear()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");if(this.lock!=null){try{await this._acquireLock(0,async()=>{try{const now=Date.now();try{return await this._useSession(async(result2)=>{const{data:{session}}=result2;if(!session||!session.refresh_token||!session.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const expiresInTicks=Math.floor((session.expires_at*1000-now)/AUTO_REFRESH_TICK_DURATION_MS);this._debug("#_autoRefreshTokenTick()",`access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);if(expiresInTicks<=AUTO_REFRESH_TICK_THRESHOLD){await this._callRefreshToken(session.refresh_token)}})}catch(e){console.error("Auto refresh tick failed with error. This is likely a transient error.",e)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(e){if(e instanceof LockAcquireTimeoutError){this._debug("auto refresh token tick lock not available")}else{throw e}}return}if(this.refreshingDeferred!==null){this._debug("#_autoRefreshTokenTick()","refresh already in flight, skipping");return}try{const now=Date.now();try{await this._useSession(async(result2)=>{const{data:{session}}=result2;if(!session||!session.refresh_token||!session.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const expiresInTicks=Math.floor((session.expires_at*1000-now)/AUTO_REFRESH_TICK_DURATION_MS);this._debug("#_autoRefreshTokenTick()",`access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);if(expiresInTicks<=AUTO_REFRESH_TICK_THRESHOLD){await this._callRefreshToken(session.refresh_token)}})}catch(e){console.error("Auto refresh tick failed with error. This is likely a transient error.",e)}}finally{this._debug("#_autoRefreshTokenTick()","end")}}async _handleVisibilityChange(){this._debug("#_handleVisibilityChange()");if(!isBrowser()||!(window===null||window===undefined?undefined:window.addEventListener)){if(this.autoRefreshToken){this.startAutoRefresh()}return false}try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(false)}catch(error){this._debug("#visibilityChangedCallback","error",error)}};window===null||window===undefined||window.addEventListener("visibilitychange",this.visibilityChangedCallback);await this._onVisibilityChanged(true)}catch(error){console.error("_handleVisibilityChange",error)}}async _onVisibilityChanged(calledFromInitialize){const methodName=`#_onVisibilityChanged(${calledFromInitialize})`;this._debug(methodName,"visibilityState",document.visibilityState);if(document.visibilityState==="visible"){if(this.autoRefreshToken){this._startAutoRefresh()}if(!calledFromInitialize){await this.initializePromise;if(this.lock!=null){await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!=="visible"){this._debug(methodName,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()})}else{if(document.visibilityState!=="visible"){this._debug(methodName,"visibilityState is no longer visible, skipping recovery");return}await this._recoverAndRefresh()}}}else if(document.visibilityState==="hidden"){if(this.autoRefreshToken){this._stopAutoRefresh()}}}async _getUrlForProvider(url,provider,options){let redirectTo=options===null||options===undefined?undefined:options.redirectTo;let codeChallenge=null;let codeChallengeMethod=null;let flowId=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod();redirectTo=this._maybeAppendFlowIdToRedirect(redirectTo,flowId)}const urlParams=[`provider=${encodeURIComponent(provider)}`];if(redirectTo){urlParams.push(`redirect_to=${encodeURIComponent(redirectTo)}`)}if(options===null||options===undefined?undefined:options.scopes){urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`)}if(codeChallenge!=null&&codeChallengeMethod!=null){const flowParams=new URLSearchParams({code_challenge:`${encodeURIComponent(codeChallenge)}`,code_challenge_method:`${encodeURIComponent(codeChallengeMethod)}`});urlParams.push(flowParams.toString())}if(options===null||options===undefined?undefined:options.queryParams){const query=new URLSearchParams(options.queryParams);urlParams.push(query.toString())}if(options===null||options===undefined?undefined:options.skipBrowserRedirect){urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`)}return{url:`${url}?${urlParams.join("&")}`,flowId}}_maybeAppendFlowIdToRedirect(redirectTo,flowId){if(!redirectTo||!flowId||!this.experimental.appendPkceFlowIdToRedirects){return redirectTo!==null&&redirectTo!==undefined?redirectTo:undefined}return appendFlowIdToRedirectTo(redirectTo,flowId)}async _getCodeChallengeAndMethod(isPasswordRecovery=false){return getCodeChallengeAndMethod(this.storage,this.storageKey,isPasswordRecovery,(evictedFlowId)=>this._debug("#_getCodeChallengeAndMethod()","evicted oldest pending PKCE verifier slot",evictedFlowId))}async _unenroll(params){try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}return await _request(this.fetch,"DELETE",`${this.url}/factors/${params.factorId}`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _enroll(params){try{return await this._useSession(async(result2)=>{var _a,_b;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const body=Object.assign({friendly_name:params.friendlyName,factor_type:params.factorType},params.factorType==="phone"?{phone:params.phone}:params.factorType==="totp"?{issuer:params.issuer}:{});const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors`,{body,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}if(params.factorType==="totp"&&data2.type==="totp"&&((_b=data2===null||data2===undefined?undefined:data2.totp)===null||_b===undefined?undefined:_b.qr_code)){data2.totp.qr_code=`data:image/svg+xml;utf-8,${data2.totp.qr_code}`}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verify(params){const run=async()=>{try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const body=Object.assign({challenge_id:params.challengeId},"webauthn"in params?{webauthn:Object.assign(Object.assign({},params.webauthn),{credential_response:params.webauthn.type==="create"?serializeCredentialCreationResponse(params.webauthn.credential_response):serializeCredentialRequestResponse(params.webauthn.credential_response)})}:{code:params.code});const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/${params.factorId}/verify`,{body,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1000)+data2.expires_in},data2));await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",data2);return this._returnResult({data:data2,error})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}};if(this.lock!=null){return this._acquireLock(this.lockAcquireTimeout,run)}return run()}async _challenge(params){const run=async()=>{try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const response2=await _request(this.fetch,"POST",`${this.url}/factors/${params.factorId}/challenge`,{body:params,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(response2.error){return response2}const{data:data2}=response2;if(data2.type!=="webauthn"){return{data:data2,error:null}}switch(data2.webauthn.type){case"create":return{data:Object.assign(Object.assign({},data2),{webauthn:Object.assign(Object.assign({},data2.webauthn),{credential_options:Object.assign(Object.assign({},data2.webauthn.credential_options),{publicKey:deserializeCredentialCreationOptions(data2.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},data2),{webauthn:Object.assign(Object.assign({},data2.webauthn),{credential_options:Object.assign(Object.assign({},data2.webauthn.credential_options),{publicKey:deserializeCredentialRequestOptions(data2.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}};if(this.lock!=null){return this._acquireLock(this.lockAcquireTimeout,run)}return run()}async _challengeAndVerify(params){const{data:challengeData,error:challengeError}=await this._challenge({factorId:params.factorId});if(challengeError){return this._returnResult({data:null,error:challengeError})}return await this._verify({factorId:params.factorId,challengeId:challengeData.id,code:params.code})}async _listFactors(){var _a;const{data:{user},error:userError}=await this.getUser();if(userError){return{data:null,error:userError}}const data2={all:[],phone:[],totp:[],webauthn:[],recovery_code:[]};for(const factor of(_a=user===null||user===undefined?undefined:user.factors)!==null&&_a!==undefined?_a:[]){data2.all.push(factor);if(factor.status==="verified"&&factor.factor_type in data2&&Array.isArray(data2[factor.factor_type])){data2[factor.factor_type].push(factor)}}return{data:data2,error:null}}async _getAuthenticatorAssuranceLevel(jwt){var _a,_b,_c,_d;if(jwt){try{const{payload:payload2}=decodeJWT(jwt);let currentLevel2=null;if(payload2.aal){currentLevel2=payload2.aal}let nextLevel2=currentLevel2;const{data:{user},error:userError}=await this.getUser(jwt);if(userError){return this._returnResult({data:null,error:userError})}const verifiedFactors2=(_b=(_a=user===null||user===undefined?undefined:user.factors)===null||_a===undefined?undefined:_a.filter((factor)=>factor.status==="verified"))!==null&&_b!==undefined?_b:[];if(verifiedFactors2.length>0){nextLevel2="aal2"}const currentAuthenticationMethods2=payload2.amr||[];return{data:{currentLevel:currentLevel2,nextLevel:nextLevel2,currentAuthenticationMethods:currentAuthenticationMethods2},error:null}}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}const{data:{session},error:sessionError}=await this.getSession();if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null}}const{payload}=decodeJWT(session.access_token);let currentLevel=null;if(payload.aal){currentLevel=payload.aal}let nextLevel=currentLevel;const verifiedFactors=(_d=(_c=session.user.factors)===null||_c===undefined?undefined:_c.filter((factor)=>factor.status==="verified"))!==null&&_d!==undefined?_d:[];if(verifiedFactors.length>0){nextLevel="aal2"}const currentAuthenticationMethods=payload.amr||[];return{data:{currentLevel,nextLevel,currentAuthenticationMethods},error:null}}async _getRecoveryCodesStatus(){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"GET",`${this.url}/factors/recovery-codes`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _generateRecoveryCodes(params){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/recovery-codes`,{body:(params===null||params===undefined?undefined:params.friendlyName)?{friendly_name:params.friendlyName}:undefined,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verifyRecoveryCode(params){assertRecoveryCodesExperimentalEnabled(this.experimental);const run=async()=>{try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/recovery-codes/verify`,{body:{code:params.code},headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}const session=Object.assign({expires_at:expiresAt(data2.expires_in)},data2);await this._saveSession(session);await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",session);return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}};if(this.lock!=null){return this._acquireLock(this.lockAcquireTimeout,run)}return run()}async _regenerateRecoveryCodes(){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/recovery-codes/regenerate`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _unenrollRecoveryCodes(){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"DELETE",`${this.url}/factors/recovery-codes`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _getAuthorizationDetails(authorizationId){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}return await _request(this.fetch,"GET",`${this.url}/oauth/authorizations/${authorizationId}`,{headers:this.headers,jwt:session.access_token,xform:(data2)=>({data:data2,error:null})})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _approveAuthorization(authorizationId,options){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const response2=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${authorizationId}/consent`,{headers:this.headers,jwt:session.access_token,body:{action:"approve"},xform:(data2)=>({data:data2,error:null})});if(response2.data&&response2.data.redirect_url){if(isBrowser()&&!(options===null||options===undefined?undefined:options.skipBrowserRedirect)){window.location.assign(response2.data.redirect_url)}}return response2})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _denyAuthorization(authorizationId,options){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const response2=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${authorizationId}/consent`,{headers:this.headers,jwt:session.access_token,body:{action:"deny"},xform:(data2)=>({data:data2,error:null})});if(response2.data&&response2.data.redirect_url){if(isBrowser()&&!(options===null||options===undefined?undefined:options.skipBrowserRedirect)){window.location.assign(response2.data.redirect_url)}}return response2})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _listOAuthGrants(){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}return await _request(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:session.access_token,xform:(data2)=>({data:data2,error:null})})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _revokeOAuthGrant(options){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}await _request(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:session.access_token,query:{client_id:options.clientId},noResolveJson:true});return{data:{},error:null}})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async fetchJwk(kid,jwks={keys:[]}){let jwk=jwks.keys.find((key)=>key.kid===kid);if(jwk){return jwk}const now=Date.now();jwk=this.jwks.keys.find((key)=>key.kid===kid);if(jwk&&this.jwks_cached_at+JWKS_TTL>now){return jwk}const{data:data2,error}=await _request(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(error){throw error}if(!data2.keys||data2.keys.length===0){return null}this.jwks=data2;this.jwks_cached_at=now;jwk=data2.keys.find((key)=>key.kid===kid);if(!jwk){return null}return jwk}async getClaims(jwt,options={}){try{let token=jwt;if(!token){const{data:data2,error}=await this.getSession();if(error||!data2.session){return this._returnResult({data:null,error})}token=data2.session.access_token}const{header,payload,signature,raw:{header:rawHeader,payload:rawPayload}}=decodeJWT(token);if(!(options===null||options===undefined?undefined:options.allowExpired)){try{validateExp(payload.exp)}catch(e){throw new AuthInvalidJwtError(e instanceof Error?e.message:"JWT validation failed")}}const signingKey=!header.alg||header.alg.startsWith("HS")||!header.kid||!(("crypto"in globalThis)&&("subtle"in globalThis.crypto))?null:await this.fetchJwk(header.kid,(options===null||options===undefined?undefined:options.keys)?{keys:options.keys}:options===null||options===undefined?undefined:options.jwks);if(!signingKey){const{error}=await this.getUser(token);if(error){throw error}return{data:{claims:payload,header,signature},error:null}}const algorithm=getAlgorithm(header.alg);const publicKey=await crypto.subtle.importKey("jwk",signingKey,algorithm,true,["verify"]);const isValid=await crypto.subtle.verify(algorithm,publicKey,signature,stringToUint8Array(`${rawHeader}.${rawPayload}`));if(!isValid){throw new AuthInvalidJwtError("Invalid JWT signature")}return{data:{claims:payload,header,signature},error:null}}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async signInWithPasskey(credentials){var _a,_b,_c;assertPasskeyExperimentalEnabled(this.experimental);try{if(!browserSupportsWebAuthn()){return this._returnResult({data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)})}const{data:options,error:optionsError}=await this._startPasskeyAuthentication({options:{captchaToken:(_a=credentials===null||credentials===undefined?undefined:credentials.options)===null||_a===undefined?undefined:_a.captchaToken}});if(optionsError||!options){return this._returnResult({data:null,error:optionsError})}const publicKeyOptions=deserializeCredentialRequestOptions(options.options);const signal=(_c=(_b=credentials===null||credentials===undefined?undefined:credentials.options)===null||_b===undefined?undefined:_b.signal)!==null&&_c!==undefined?_c:webAuthnAbortService.createNewAbortSignal();const{data:credential,error:credentialError}=await getCredential({publicKey:publicKeyOptions,signal});if(credentialError||!credential){return this._returnResult({data:null,error:credentialError!==null&&credentialError!==undefined?credentialError:new AuthUnknownError("WebAuthn ceremony failed",null)})}const serialized=serializeCredentialRequestResponse(credential);return this._verifyPasskeyAuthentication({challengeId:options.challenge_id,credential:serialized})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async registerPasskey(credentials){var _a,_b;assertPasskeyExperimentalEnabled(this.experimental);try{if(!browserSupportsWebAuthn()){return this._returnResult({data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)})}const{data:options,error:optionsError}=await this._startPasskeyRegistration();if(optionsError||!options){return this._returnResult({data:null,error:optionsError})}const publicKeyOptions=deserializeCredentialCreationOptions(options.options);const signal=(_b=(_a=credentials===null||credentials===undefined?undefined:credentials.options)===null||_a===undefined?undefined:_a.signal)!==null&&_b!==undefined?_b:webAuthnAbortService.createNewAbortSignal();const{data:credential,error:credentialError}=await createCredential({publicKey:publicKeyOptions,signal});if(credentialError||!credential){return this._returnResult({data:null,error:credentialError!==null&&credentialError!==undefined?credentialError:new AuthUnknownError("WebAuthn ceremony failed",null)})}const serialized=serializeCredentialCreationResponse(credential);return this._verifyPasskeyRegistration({challengeId:options.challenge_id,credential:serialized})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _startPasskeyRegistration(){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/registration/options`,{headers:this.headers,jwt:session.access_token,body:{}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verifyPasskeyRegistration(params){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/registration/verify`,{headers:this.headers,jwt:session.access_token,body:{challenge_id:params.challengeId,credential:params.credential}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _startPasskeyAuthentication(params){var _a;assertPasskeyExperimentalEnabled(this.experimental);try{const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/authentication/options`,{headers:this.headers,body:{gotrue_meta_security:{captcha_token:(_a=params===null||params===undefined?undefined:params.options)===null||_a===undefined?undefined:_a.captchaToken}}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verifyPasskeyAuthentication(params){assertPasskeyExperimentalEnabled(this.experimental);try{const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/authentication/verify`,{headers:this.headers,body:{challenge_id:params.challengeId,credential:params.credential},xform:_sessionResponse});if(error){return this._returnResult({data:null,error})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:data2,error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _listPasskeys(){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"GET",`${this.url}/passkeys`,{headers:this.headers,jwt:session.access_token,xform:(data3)=>({data:data3,error:null})});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _updatePasskey(params){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"PATCH",`${this.url}/passkeys/${params.passkeyId}`,{headers:this.headers,jwt:session.access_token,body:{friendly_name:params.friendlyName}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _deletePasskey(params){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{error}=await _request(this.fetch,"DELETE",`${this.url}/passkeys/${params.passkeyId}`,{headers:this.headers,jwt:session.access_token,noResolveJson:true});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:null,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}}var DEFAULT_OPTIONS,GLOBAL_JWKS,deprecatedLockWarned=false,GoTrueClient_default;var init_GoTrueClient=__esm(()=>{init_GoTrueAdminApi();init_constants();init_errors();init_fetch();init_helpers();init_locks();init_base64url();init_webauthn();polyfillGlobalThis();DEFAULT_OPTIONS={url:GOTRUE_URL,storageKey:STORAGE_KEY,autoRefreshToken:true,persistSession:true,detectSessionInUrl:true,headers:DEFAULT_HEADERS,flowType:"implicit",debug:false,hasCustomAuthorizationHeader:false,throwOnError:false,lockAcquireTimeout:5000,skipAutoInitialize:false,experimental:{}};GLOBAL_JWKS={};GoTrueClient.nextInstanceID={};GoTrueClient_default=GoTrueClient});var init_AuthAdminApi=__esm(()=>{init_GoTrueAdminApi()});var AuthClient,AuthClient_default;var init_AuthClient=__esm(()=>{init_GoTrueClient();AuthClient=GoTrueClient_default;AuthClient_default=AuthClient});var init_module=__esm(()=>{init_GoTrueAdminApi();init_GoTrueClient();init_AuthAdminApi();init_AuthClient();init_locks();init_types();init_errors()});var exports_auth_provider={};__export(exports_auth_provider,{AuthClient:()=>AuthClient_default});var init_auth_provider=__esm(()=>{init_module()});function delimiterFor(value){const counts=new Map([[",",0],[";",0],["\t",0]]);let quoted=false;for(let index=0;index<value.length;index+=1){const character=value[index];if(character==='"'){if(quoted&&value[index+1]==='"')index+=1;else quoted=!quoted}else if(!quoted&&character===`
|
|
19
|
-
`){break}else if(!quoted&&counts.has(character)){counts.set(character,(counts.get(character)??0)+1)}}return[...counts].sort((left,right)=>right[1]-left[1])[0]?.[0]??","}function parseDelimitedText(value,declaredDelimiter){if(declaredDelimiter)return parseDeclaredDelimitedText(value,declaredDelimiter);const delimiter=delimiterFor(value);const rows=[];let row=[];let field="";let quoted=false;for(let index=0;index<value.length;index+=1){const character=value[index];if(character==='"'){if(quoted&&value[index+1]==='"'){field+='"';index+=1}else{quoted=!quoted}continue}if(!quoted&&character===delimiter){row.push(field);field="";continue}if(!quoted&&(character===`
|
|
20
|
-
`||character==="\r")){if(character==="\r"&&value[index+1]===`
|
|
21
|
-
`)index+=1;row.push(field);if(row.some((cell)=>cell.length>0))rows.push(row);row=[];field="";continue}field+=character}if(field.length||row.length){row.push(field);if(row.some((cell)=>cell.length>0))rows.push(row)}return rows}function delimitedDataRowCount(rows,headerRow=0){return Math.max(0,rows.length-headerRow-1)}function parseDeclaredDelimitedText(value,delimiter){const rows=[];let row=[],field="",state="start";for(let index=0;index<value.length;index+=1){const character=value[index];if(state==="quoted"){if(character==='"'){if(value[index+1]==='"'){field+='"';index+=1}else state="ended"}else field+=character}else if(character===delimiter){row.push(field);field="";state="start"}else if(character==="\r"||character===`
|
|
22
|
-
`){if(character==="\r"&&value[index+1]===`
|
|
23
|
-
`)index+=1;if(row.length||field.length||state!=="start")rows.push([...row,field]);row=[];field="";state="start"}else if(character==='"'&&state==="start")state="quoted";else{if(state==="ended"||character==='"')throw new Error("Malformed CSV quoted field");field+=character;state="unquoted"}}if(state==="quoted")throw new Error("Unterminated CSV quoted field");if(row.length||field.length||state!=="start")rows.push([...row,field]);return rows}function __extends(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}function __rest2(s,e){var t={};for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t[p]=s[p];if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++){if(e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i]))t[p[i]]=s[p[i]]}return t}function __awaiter(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result2){result2.done?resolve(result2.value):adopt(result2.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})}function __generator(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:undefined,done:true}}}function __spreadArrays(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;for(var r=Array(s),k=0,i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r}var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d2,b2){d2.__proto__=b2}||function(d2,b2){for(var p in b2)if(b2.hasOwnProperty(p))d2[p]=b2[p]};return extendStatics(d,b)},__assign=function(){__assign=Object.assign||function __assign2(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var init_tslib_es62=__esm(()=>{/*! *****************************************************************************
|
|
24
|
-
Copyright (c) Microsoft Corporation.
|
|
25
|
-
|
|
26
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
27
|
-
purpose with or without fee is hereby granted.
|
|
28
|
-
|
|
29
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
30
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
31
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
32
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
33
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
34
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
35
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
36
|
-
***************************************************************************** */});var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lookup,i,encodeToBase64=function(bytes){var base64="";var len=bytes.length;for(var i2=0;i2<len;i2+=3){base64+=chars[bytes[i2]>>2];base64+=chars[(bytes[i2]&3)<<4|bytes[i2+1]>>4];base64+=chars[(bytes[i2+1]&15)<<2|bytes[i2+2]>>6];base64+=chars[bytes[i2+2]&63]}if(len%3===2){base64=base64.substring(0,base64.length-1)+"="}else if(len%3===1){base64=base64.substring(0,base64.length-2)+"=="}return base64},decodeFromBase64=function(base64){var bufferLength=base64.length*0.75;var len=base64.length;var i2;var p=0;var encoded1;var encoded2;var encoded3;var encoded4;if(base64[base64.length-1]==="="){bufferLength--;if(base64[base64.length-2]==="="){bufferLength--}}var bytes=new Uint8Array(bufferLength);for(i2=0;i2<len;i2+=4){encoded1=lookup[base64.charCodeAt(i2)];encoded2=lookup[base64.charCodeAt(i2+1)];encoded3=lookup[base64.charCodeAt(i2+2)];encoded4=lookup[base64.charCodeAt(i2+3)];bytes[p++]=encoded1<<2|encoded2>>4;bytes[p++]=(encoded2&15)<<4|encoded3>>2;bytes[p++]=(encoded3&3)<<6|encoded4&63}return bytes},DATA_URI_PREFIX_REGEX,decodeFromBase64DataUri=function(dataUri){var trimmedUri=dataUri.trim();var prefix=trimmedUri.substring(0,100);var res=prefix.match(DATA_URI_PREFIX_REGEX);if(!res)return decodeFromBase64(trimmedUri);var fullMatch=res[0];var data2=trimmedUri.substring(fullMatch.length);return decodeFromBase64(data2)};var init_base64=__esm(()=>{lookup=new Uint8Array(256);for(i=0;i<chars.length;i++){lookup[chars.charCodeAt(i)]=i}DATA_URI_PREFIX_REGEX=/^(data)?:?([\w\/\+]+)?;?(charset=[\w-]+|base64)?.*,/i});var toCharCode=function(character){return character.charCodeAt(0)},toCodePoint=function(character){return character.codePointAt(0)},toHexStringOfMinLength=function(num,minLength){return padStart(num.toString(16),minLength,"0").toUpperCase()},toHexString=function(num){return toHexStringOfMinLength(num,2)},charFromCode=function(code){return String.fromCharCode(code)},charFromHexCode=function(hex){return charFromCode(parseInt(hex,16))},padStart=function(value,length,padChar){var padding="";for(var idx=0,len=length-value.length;idx<len;idx++){padding+=padChar}return padding+value},copyStringIntoBuffer=function(str,buffer,offset){var length=str.length;for(var idx=0;idx<length;idx++){buffer[offset++]=str.charCodeAt(idx)}return length},addRandomSuffix=function(prefix,suffixLength){if(suffixLength===undefined){suffixLength=4}return prefix+"-"+Math.floor(Math.random()*Math.pow(10,suffixLength))},escapeRegExp=function(str){return str.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},cleanText=function(text5){return text5.replace(/\t|\u0085|\u2028|\u2029/g," ").replace(/[\b\v]/g,"")},escapedNewlineChars,newlineChars,isNewlineChar=function(text5){return/^[\n\f\r\u000B]$/.test(text5)},lineSplit=function(text5){return text5.split(/[\n\f\r\u000B]/)},mergeLines=function(text5){return text5.replace(/[\n\f\r\u000B]/g," ")},charAtIndex=function(text5,index){var cuFirst=text5.charCodeAt(index);var cuSecond;var nextIndex=index+1;var length=1;if(cuFirst>=55296&&cuFirst<=56319&&text5.length>nextIndex){cuSecond=text5.charCodeAt(nextIndex);if(cuSecond>=56320&&cuSecond<=57343)length=2}return[text5.slice(index,index+length),length]},charSplit=function(text5){var chars2=[];for(var idx=0,len=text5.length;idx<len;){var _a=charAtIndex(text5,idx),c=_a[0],cLen=_a[1];chars2.push(c);idx+=cLen}return chars2},buildWordBreakRegex=function(wordBreaks){var newlineCharUnion=escapedNewlineChars.join("|");var escapedRules=["$"];for(var idx=0,len=wordBreaks.length;idx<len;idx++){var wordBreak=wordBreaks[idx];if(isNewlineChar(wordBreak)){throw new TypeError("`wordBreak` must not include "+newlineCharUnion)}escapedRules.push(wordBreak===""?".":escapeRegExp(wordBreak))}var breakRules=escapedRules.join("|");return new RegExp("("+newlineCharUnion+")|((.*?)("+breakRules+"))","gm")},breakTextIntoLines=function(text5,wordBreaks,maxWidth,computeWidthOfText){var regex=buildWordBreakRegex(wordBreaks);var words=cleanText(text5).match(regex);var currLine="";var currWidth=0;var lines=[];var pushCurrLine=function(){if(currLine!=="")lines.push(currLine);currLine="";currWidth=0};for(var idx=0,len=words.length;idx<len;idx++){var word=words[idx];if(isNewlineChar(word)){pushCurrLine()}else{var width=computeWidthOfText(word);if(currWidth+width>maxWidth)pushCurrLine();currLine+=word;currWidth+=width}}pushCurrLine();return lines},dateRegex,parseDate=function(dateStr){var match=dateStr.match(dateRegex);if(!match)return;var year=match[1],_a=match[2],month=_a===undefined?"01":_a,_b=match[3],day=_b===undefined?"01":_b,_c=match[4],hours=_c===undefined?"00":_c,_d=match[5],mins=_d===undefined?"00":_d,_e=match[6],secs=_e===undefined?"00":_e,_f=match[7],offsetSign=_f===undefined?"Z":_f,_g=match[8],offsetHours=_g===undefined?"00":_g,_h=match[9],offsetMins=_h===undefined?"00":_h;var tzOffset=offsetSign==="Z"?"Z":""+offsetSign+offsetHours+":"+offsetMins;var date2=new Date(year+"-"+month+"-"+day+"T"+hours+":"+mins+":"+secs+tzOffset);return date2},findLastMatch=function(value,regex){var _a;var position=0;var lastMatch;while(position<value.length){var match=value.substring(position).match(regex);if(!match)return{match:lastMatch,pos:position};lastMatch=match;position+=((_a=match.index)!==null&&_a!==undefined?_a:0)+match[0].length}return{match:lastMatch,pos:position}};var init_strings=__esm(()=>{escapedNewlineChars=["\\n","\\f","\\r","\\u000B"];newlineChars=[`
|
|
37
|
-
`,"\f","\r","\v"];dateRegex=/^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/});var last=function(array3){return array3[array3.length-1]},typedArrayFor=function(value){if(value instanceof Uint8Array)return value;var length=value.length;var typedArray=new Uint8Array(length);for(var idx=0;idx<length;idx++){typedArray[idx]=value.charCodeAt(idx)}return typedArray},mergeIntoTypedArray=function(){var arrays=[];for(var _i=0;_i<arguments.length;_i++){arrays[_i]=arguments[_i]}var arrayCount=arrays.length;var typedArrays=[];for(var idx=0;idx<arrayCount;idx++){var element=arrays[idx];typedArrays[idx]=element instanceof Uint8Array?element:typedArrayFor(element)}var totalSize=0;for(var idx=0;idx<arrayCount;idx++){totalSize+=arrays[idx].length}var merged=new Uint8Array(totalSize);var offset=0;for(var arrIdx=0;arrIdx<arrayCount;arrIdx++){var arr=typedArrays[arrIdx];for(var byteIdx=0,arrLen=arr.length;byteIdx<arrLen;byteIdx++){merged[offset++]=arr[byteIdx]}}return merged},mergeUint8Arrays=function(arrays){var totalSize=0;for(var idx=0,len=arrays.length;idx<len;idx++){totalSize+=arrays[idx].length}var mergedBuffer=new Uint8Array(totalSize);var offset=0;for(var idx=0,len=arrays.length;idx<len;idx++){var array3=arrays[idx];mergedBuffer.set(array3,offset);offset+=array3.length}return mergedBuffer},arrayAsString=function(array3){var str="";for(var idx=0,len=array3.length;idx<len;idx++){str+=charFromCode(array3[idx])}return str},byAscendingId=function(a,b){return a.id-b.id},sortedUniq=function(array3,indexer){var uniq=[];for(var idx=0,len=array3.length;idx<len;idx++){var curr=array3[idx];var prev=array3[idx-1];if(idx===0||indexer(curr)!==indexer(prev)){uniq.push(curr)}}return uniq},reverseArray=function(array3){var arrayLen=array3.length;for(var idx=0,len=Math.floor(arrayLen/2);idx<len;idx++){var leftIdx=idx;var rightIdx=arrayLen-idx-1;var temp=array3[idx];array3[leftIdx]=array3[rightIdx];array3[rightIdx]=temp}return array3},sum=function(array3){var total=0;for(var idx=0,len=array3.length;idx<len;idx++){total+=array3[idx]}return total},range=function(start,end){var arr=new Array(end-start);for(var idx=0,len=arr.length;idx<len;idx++){arr[idx]=start+idx}return arr},pluckIndices=function(arr,indices){var plucked=new Array(indices.length);for(var idx=0,len=indices.length;idx<len;idx++){plucked[idx]=arr[indices[idx]]}return plucked},canBeConvertedToUint8Array=function(input){return input instanceof Uint8Array||input instanceof ArrayBuffer||typeof input==="string"},toUint8Array=function(input){if(typeof input==="string"){return decodeFromBase64DataUri(input)}else if(input instanceof ArrayBuffer){return new Uint8Array(input)}else if(input instanceof Uint8Array){return input}else{throw new TypeError("`input` must be one of `string | ArrayBuffer | Uint8Array`")}};var init_arrays=__esm(()=>{init_base64();init_strings()});var waitForTick=function(){return new Promise(function(resolve){setTimeout(function(){return resolve()},0)})};var utf8Encode=function(input,byteOrderMark){if(byteOrderMark===undefined){byteOrderMark=true}var encoded=[];if(byteOrderMark)encoded.push(239,187,191);for(var idx=0,len=input.length;idx<len;){var codePoint=input.codePointAt(idx);if(codePoint<128){var byte1=codePoint&127;encoded.push(byte1);idx+=1}else if(codePoint<2048){var byte1=codePoint>>6&31|192;var byte2=codePoint&63|128;encoded.push(byte1,byte2);idx+=1}else if(codePoint<65536){var byte1=codePoint>>12&15|224;var byte2=codePoint>>6&63|128;var byte3=codePoint&63|128;encoded.push(byte1,byte2,byte3);idx+=1}else if(codePoint<1114112){var byte1=codePoint>>18&7|240;var byte2=codePoint>>12&63|128;var byte3=codePoint>>6&63|128;var byte4=codePoint>>0&63|128;encoded.push(byte1,byte2,byte3,byte4);idx+=2}else throw new Error("Invalid code point: 0x"+toHexString(codePoint))}return new Uint8Array(encoded)},utf16Encode=function(input,byteOrderMark){if(byteOrderMark===undefined){byteOrderMark=true}var encoded=[];if(byteOrderMark)encoded.push(65279);for(var idx=0,len=input.length;idx<len;){var codePoint=input.codePointAt(idx);if(codePoint<65536){encoded.push(codePoint);idx+=1}else if(codePoint<1114112){encoded.push(highSurrogate(codePoint),lowSurrogate(codePoint));idx+=2}else throw new Error("Invalid code point: 0x"+toHexString(codePoint))}return new Uint16Array(encoded)},isWithinBMP=function(codePoint){return codePoint>=0&&codePoint<=65535},hasSurrogates=function(codePoint){return codePoint>=65536&&codePoint<=1114111},highSurrogate=function(codePoint){return Math.floor((codePoint-65536)/1024)+55296},lowSurrogate=function(codePoint){return(codePoint-65536)%1024+56320},ByteOrder,REPLACEMENT,utf16Decode=function(input,byteOrderMark){if(byteOrderMark===undefined){byteOrderMark=true}if(input.length<=1)return String.fromCodePoint(REPLACEMENT);var byteOrder=byteOrderMark?readBOM(input):ByteOrder.BigEndian;var idx=byteOrderMark?2:0;var codePoints=[];while(input.length-idx>=2){var first=decodeValues(input[idx++],input[idx++],byteOrder);if(isHighSurrogate(first)){if(input.length-idx<2){codePoints.push(REPLACEMENT)}else{var second=decodeValues(input[idx++],input[idx++],byteOrder);if(isLowSurrogate(second)){codePoints.push(first,second)}else{codePoints.push(REPLACEMENT)}}}else if(isLowSurrogate(first)){idx+=2;codePoints.push(REPLACEMENT)}else{codePoints.push(first)}}if(idx<input.length)codePoints.push(REPLACEMENT);return String.fromCodePoint.apply(String,codePoints)},isHighSurrogate=function(codePoint){return codePoint>=55296&&codePoint<=56319},isLowSurrogate=function(codePoint){return codePoint>=56320&&codePoint<=57343},decodeValues=function(first,second,byteOrder){if(byteOrder===ByteOrder.LittleEndian)return second<<8|first;if(byteOrder===ByteOrder.BigEndian)return first<<8|second;throw new Error("Invalid byteOrder: "+byteOrder)},readBOM=function(bytes){return hasUtf16BigEndianBOM(bytes)?ByteOrder.BigEndian:hasUtf16LittleEndianBOM(bytes)?ByteOrder.LittleEndian:ByteOrder.BigEndian},hasUtf16BigEndianBOM=function(bytes){return bytes[0]===254&&bytes[1]===255},hasUtf16LittleEndianBOM=function(bytes){return bytes[0]===255&&bytes[1]===254},hasUtf16BOM=function(bytes){return hasUtf16BigEndianBOM(bytes)||hasUtf16LittleEndianBOM(bytes)};var init_unicode=__esm(()=>{init_strings();(function(ByteOrder2){ByteOrder2["BigEndian"]="BigEndian";ByteOrder2["LittleEndian"]="LittleEndian"})(ByteOrder||(ByteOrder={}));REPLACEMENT="�".codePointAt(0)});var numberToString=function(num){var numStr=String(num);if(Math.abs(num)<1){var e=parseInt(num.toString().split("e-")[1]);if(e){var negative=num<0;if(negative)num*=-1;num*=Math.pow(10,e-1);numStr="0."+new Array(e).join("0")+num.toString().substring(2);if(negative)numStr="-"+numStr}}else{var e=parseInt(num.toString().split("+")[1]);if(e>20){e-=20;num/=Math.pow(10,e);numStr=num.toString()+new Array(e+1).join("0")}}return numStr},sizeInBytes=function(n){return Math.ceil(n.toString(2).length/8)},bytesFor=function(n){var bytes=new Uint8Array(sizeInBytes(n));for(var i2=1;i2<=bytes.length;i2++){bytes[i2-1]=n>>(bytes.length-i2)*8}return bytes};var error=function(msg){throw new Error(msg)};var require_common=__commonJS((exports)=>{var TYPED_OK=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";function _has(obj,key){return Object.prototype.hasOwnProperty.call(obj,key)}exports.assign=function(obj){var sources2=Array.prototype.slice.call(arguments,1);while(sources2.length){var source=sources2.shift();if(!source){continue}if(typeof source!=="object"){throw new TypeError(source+"must be non-object")}for(var p in source){if(_has(source,p)){obj[p]=source[p]}}}return obj};exports.shrinkBuf=function(buf,size){if(buf.length===size){return buf}if(buf.subarray){return buf.subarray(0,size)}buf.length=size;return buf};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return}for(var i2=0;i2<len;i2++){dest[dest_offs+i2]=src[src_offs+i2]}},flattenChunks:function(chunks){var i2,l,len,pos,chunk,result2;len=0;for(i2=0,l=chunks.length;i2<l;i2++){len+=chunks[i2].length}result2=new Uint8Array(len);pos=0;for(i2=0,l=chunks.length;i2<l;i2++){chunk=chunks[i2];result2.set(chunk,pos);pos+=chunk.length}return result2}};var fnUntyped={arraySet:function(dest,src,src_offs,len,dest_offs){for(var i2=0;i2<len;i2++){dest[dest_offs+i2]=src[src_offs+i2]}},flattenChunks:function(chunks){return[].concat.apply([],chunks)}};exports.setTyped=function(on){if(on){exports.Buf8=Uint8Array;exports.Buf16=Uint16Array;exports.Buf32=Int32Array;exports.assign(exports,fnTyped)}else{exports.Buf8=Array;exports.Buf16=Array;exports.Buf32=Array;exports.assign(exports,fnUntyped)}};exports.setTyped(TYPED_OK)});var require_trees=__commonJS((exports)=>{var utils=require_common();var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);function StaticTreeDesc(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length}var static_l_desc;var static_d_desc;var static_bl_desc;function TreeDesc(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc}function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<<s.bi_valid&65535;put_short(s,s.bi_buf);s.bi_buf=value>>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<<s.bi_valid&65535;s.bi_valid+=length}}function send_code(s,c,tree){send_bits(s,tree[c*2],tree[c*2+1])}function bi_reverse(code,len){var res=0;do{res|=code&1;code>>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;h<HEAP_SIZE;h++){n=s.heap[h];bits=tree[tree[n*2+1]*2+1]+1;if(bits>max_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){bits--}s.bl_count[bits]--;s.bl_count[bits+1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code<LENGTH_CODES-1;code++){base_length[code]=length;for(n=0;n<1<<extra_lbits[code];n++){_length_code[length++]=code}}_length_code[length-1]=code;dist=0;for(code=0;code<16;code++){base_dist[code]=dist;for(n=0;n<1<<extra_dbits[code];n++){_dist_code[dist++]=code}}dist>>=7;for(;code<D_CODES;code++){base_dist[code]=dist<<7;for(n=0;n<1<<extra_dbits[code]-7;n++){_dist_code[256+dist++]=code}}for(bits=0;bits<=MAX_BITS;bits++){bl_count[bits]=0}n=0;while(n<=143){static_ltree[n*2+1]=8;n++;bl_count[8]++}while(n<=255){static_ltree[n*2+1]=9;n++;bl_count[9]++}while(n<=279){static_ltree[n*2+1]=7;n++;bl_count[7]++}while(n<=287){static_ltree[n*2+1]=8;n++;bl_count[8]++}gen_codes(static_ltree,L_CODES+1,bl_count);for(n=0;n<D_CODES;n++){static_dtree[n*2+1]=5;static_dtree[n*2]=bi_reverse(n,5)}static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS+1,L_CODES,MAX_BITS);static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES,MAX_BITS);static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES,MAX_BL_BITS)}function init_block(s){var n;for(n=0;n<L_CODES;n++){s.dyn_ltree[n*2]=0}for(n=0;n<D_CODES;n++){s.dyn_dtree[n*2]=0}for(n=0;n<BL_CODES;n++){s.bl_tree[n*2]=0}s.dyn_ltree[END_BLOCK*2]=1;s.opt_len=s.static_len=0;s.last_lit=s.matches=0}function bi_windup(s){if(s.bi_valid>8){put_short(s,s.bi_buf)}else if(s.bi_valid>0){s.pending_buf[s.pending++]=s.bi_buf}s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]<tree[_m2]||tree[_n2]===tree[_m2]&&depth[n]<=depth[m]}function pqdownheap(s,tree,k){var v=s.heap[k];var j=k<<1;while(j<=s.heap_len){if(j<s.heap_len&&smaller(tree,s.heap[j+1],s.heap[j],s.depth)){j++}if(smaller(tree,v,s.heap[j],s.depth)){break}s.heap[k]=s.heap[j];k=j;j<<=1}s.heap[k]=v}function compress_block(s,ltree,dtree){var dist;var lc;var lx=0;var code;var extra;if(s.last_lit!==0){do{dist=s.pending_buf[s.d_buf+lx*2]<<8|s.pending_buf[s.d_buf+lx*2+1];lc=s.pending_buf[s.l_buf+lx];lx++;if(dist===0){send_code(s,lc,ltree)}else{code=_length_code[lc];send_code(s,code+LITERALS+1,ltree);extra=extra_lbits[code];if(extra!==0){lc-=base_length[code];send_bits(s,lc,extra)}dist--;code=d_code(dist);send_code(s,code,dtree);extra=extra_dbits[code];if(extra!==0){dist-=base_dist[code];send_bits(s,dist,extra)}}}while(lx<s.last_lit)}send_code(s,END_BLOCK,ltree)}function build_tree(s,desc){var tree=desc.dyn_tree;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var elems=desc.stat_desc.elems;var n,m;var max_code=-1;var node;s.heap_len=0;s.heap_max=HEAP_SIZE;for(n=0;n<elems;n++){if(tree[n*2]!==0){s.heap[++s.heap_len]=max_code=n;s.depth[n]=0}else{tree[n*2+1]=0}}while(s.heap_len<2){node=s.heap[++s.heap_len]=max_code<2?++max_code:0;tree[node*2]=1;s.depth[node]=0;s.opt_len--;if(has_stree){s.static_len-=stree[node*2+1]}}desc.max_code=max_code;for(n=s.heap_len>>1;n>=1;n--){pqdownheap(s,tree,n)}node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s,desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count<max_count&&curlen===nextlen){continue}else if(count<min_count){s.bl_tree[curlen*2]+=count}else if(curlen!==0){if(curlen!==prevlen){s.bl_tree[curlen*2]++}s.bl_tree[REP_3_6*2]++}else if(count<=10){s.bl_tree[REPZ_3_10*2]++}else{s.bl_tree[REPZ_11_138*2]++}count=0;prevlen=curlen;if(nextlen===0){max_count=138;min_count=3}else if(curlen===nextlen){max_count=6;min_count=3}else{max_count=7;min_count=4}}}function send_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count<max_count&&curlen===nextlen){continue}else if(count<min_count){do{send_code(s,curlen,s.bl_tree)}while(--count!==0)}else if(curlen!==0){if(curlen!==prevlen){send_code(s,curlen,s.bl_tree);count--}send_code(s,REP_3_6,s.bl_tree);send_bits(s,count-3,2)}else if(count<=10){send_code(s,REPZ_3_10,s.bl_tree);send_bits(s,count-3,3)}else{send_code(s,REPZ_11_138,s.bl_tree);send_bits(s,count-11,7)}count=0;prevlen=curlen;if(nextlen===0){max_count=138;min_count=3}else if(curlen===nextlen){max_count=6;min_count=3}else{max_count=7;min_count=4}}}function build_bl_tree(s){var max_blindex;scan_tree(s,s.dyn_ltree,s.l_desc.max_code);scan_tree(s,s.dyn_dtree,s.d_desc.max_code);build_tree(s,s.bl_desc);for(max_blindex=BL_CODES-1;max_blindex>=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank<blcodes;rank++){send_bits(s,s.bl_tree[bl_order[rank]*2+1],3)}send_tree(s,s.dyn_ltree,lcodes-1);send_tree(s,s.dyn_dtree,dcodes-1)}function detect_data_type(s){var black_mask=4093624447;var n;for(n=0;n<=31;n++,black_mask>>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n<LITERALS;n++){if(s.dyn_ltree[n*2]!==0){return Z_TEXT}}return Z_BINARY}var static_init_done=false;function _tr_init(s){if(!static_init_done){tr_static_init();static_init_done=true}s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc);s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc);s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc);s.bi_buf=0;s.bi_valid=0;init_block(s)}function _tr_stored_block(s,buf,stored_len,last2){send_bits(s,(STORED_BLOCK<<1)+(last2?1:0),3);copy_block(s,buf,stored_len,true)}function _tr_align(s){send_bits(s,STATIC_TREES<<1,3);send_code(s,END_BLOCK,static_ltree);bi_flush(s)}function _tr_flush_block(s,buf,stored_len,last2){var opt_lenb,static_lenb;var max_blindex=0;if(s.level>0){if(s.strm.data_type===Z_UNKNOWN){s.strm.data_type=detect_data_type(s)}build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last2)}else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last2?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last2?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last2){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1}exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align});var require_adler32=__commonJS((exports,module)=>{function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){n=len>2000?2000:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0}while(--n);s1%=65521;s2%=65521}return s1|s2<<16|0}module.exports=adler32});var require_crc32=__commonJS((exports,module)=>{function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc^=-1;for(var i2=pos;i2<end;i2++){crc=crc>>>8^t[(crc^buf[i2])&255]}return crc^-1}module.exports=crc32});var require_messages=__commonJS((exports,module)=>{module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var require_deflate=__commonJS((exports)=>{var utils=require_common();var trees=require_trees();var adler32=require_adler32();var crc32=require_crc32();var msg=require_messages();var Z_NO_FLUSH=0;var Z_PARTIAL_FLUSH=1;var Z_FULL_FLUSH=3;var Z_FINISH=4;var Z_BLOCK=5;var Z_OK=0;var Z_STREAM_END=1;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_BUF_ERROR=-5;var Z_DEFAULT_COMPRESSION=-1;var Z_FILTERED=1;var Z_HUFFMAN_ONLY=2;var Z_RLE=3;var Z_FIXED=4;var Z_DEFAULT_STRATEGY=0;var Z_UNKNOWN=2;var Z_DEFLATED=8;var MAX_MEM_LEVEL=9;var MAX_WBITS=15;var DEF_MEM_LEVEL=8;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=32;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;var BS_BLOCK_DONE=2;var BS_FINISH_STARTED=3;var BS_FINISH_DONE=4;var OS_CODE=3;function err(strm,errorCode){strm.msg=msg[errorCode];return errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}function flush_pending(strm){var s=strm.state;var len=s.pending;if(len>strm.avail_out){len=strm.avail_out}if(len===0){return}utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out);strm.next_out+=len;s.pending_out+=len;strm.total_out+=len;strm.avail_out-=len;s.pending-=len;if(s.pending===0){s.pending_out=0}}function flush_block_only(s,last2){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last2);s.block_start=s.strstart;flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255;s.pending_buf[s.pending++]=b&255}function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size){len=size}if(len===0){return 0}strm.avail_in-=len;utils.arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1){strm.adler=adler32(strm.adler,buf,len,start)}else if(strm.state.wrap===2){strm.adler=crc32(strm.adler,buf,len,start)}strm.next_in+=len;strm.total_in+=len;return len}function longest_match(s,cur_match){var chain_length=s.max_chain_length;var scan=s.strstart;var match;var len;var best_len=s.prev_length;var nice_match=s.nice_match;var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0;var _win=s.window;var wmask=s.w_mask;var prev=s.prev;var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+best_len];if(s.prev_length>=s.good_match){chain_length>>=2}if(nice_match>s.lookahead){nice_match=s.lookahead}do{match=cur_match;if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1]){continue}scan+=2;match++;do{}while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&scan<strend);len=MAX_MATCH-(strend-scan);scan=strend-MAX_MATCH;if(len>best_len){s.match_start=cur_match;best_len=len;if(len>=nice_match){break}scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead){return best_len}return s.lookahead}function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;do{more=s.window_size-s.lookahead-s.strstart;if(s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0);s.match_start-=_w_size;s.strstart-=_w_size;s.block_start-=_w_size;n=s.hash_size;p=n;do{m=s.head[--p];s.head[p]=m>=_w_size?m-_w_size:0}while(--n);n=_w_size;p=n;do{m=s.prev[--p];s.prev[p]=m>=_w_size?m-_w_size:0}while(--n);more+=_w_size}if(s.strm.avail_in===0){break}n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+1])&s.hash_mask;while(s.insert){s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+MIN_MATCH-1])&s.hash_mask;s.prev[str&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=str;str++;s.insert--;if(s.lookahead+s.insert<MIN_MATCH){break}}}}while(s.lookahead<MIN_LOOKAHEAD&&s.strm.avail_in!==0)}function deflate_stored(s,flush){var max_block_size=65535;if(max_block_size>s.pending_buf_size-5){max_block_size=s.pending_buf_size-5}for(;;){if(s.lookahead<=1){fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.strstart+=s.lookahead;s.lookahead=0;var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){s.lookahead=s.strstart-max_start;s.strstart=max_start;flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.strstart>s.block_start){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_NEED_MORE}function deflate_fast(s,flush){var hash_head;var bflush;for(;;){if(s.lookahead<MIN_LOOKAHEAD){fill_window(s);if(s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}hash_head=0;if(s.lookahead>=MIN_MATCH){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}if(hash_head!==0&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD){s.match_length=longest_match(s,hash_head)}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;if(s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do{s.strstart++;s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}while(--s.match_length!==0);s.strstart++}else{s.strstart+=s.match_length;s.match_length=0;s.ins_h=s.window[s.strstart];s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+1])&s.hash_mask}}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_slow(s,flush){var hash_head;var bflush;var max_insert;for(;;){if(s.lookahead<MIN_LOOKAHEAD){fill_window(s);if(s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}hash_head=0;if(s.lookahead>=MIN_MATCH){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}s.prev_length=s.match_length;s.prev_match=s.match_start;s.match_length=MIN_MATCH-1;if(hash_head!==0&&s.prev_length<s.max_lazy_match&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD){s.match_length=longest_match(s,hash_head);if(s.match_length<=5&&(s.strategy===Z_FILTERED||s.match_length===MIN_MATCH&&s.strstart-s.match_start>4096)){s.match_length=MIN_MATCH-1}}if(s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH;bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH);s.lookahead-=s.prev_length-1;s.prev_length-=2;do{if(++s.strstart<=max_insert){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}}while(--s.prev_length!==0);s.match_available=0;s.match_length=MIN_MATCH-1;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}else if(s.match_available){bflush=trees._tr_tally(s,0,s.window[s.strstart-1]);if(bflush){flush_block_only(s,false)}s.strstart++;s.lookahead--;if(s.strm.avail_out===0){return BS_NEED_MORE}}else{s.match_available=1;s.strstart++;s.lookahead--}}if(s.match_available){bflush=trees._tr_tally(s,0,s.window[s.strstart-1]);s.match_available=0}s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_rle(s,flush){var bflush;var prev;var scan,strend;var _win=s.window;for(;;){if(s.lookahead<=MAX_MATCH){fill_window(s);if(s.lookahead<=MAX_MATCH&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.match_length=0;if(s.lookahead>=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do{}while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&scan<strend);s.match_length=MAX_MATCH-(strend-scan);if(s.match_length>s.lookahead){s.match_length=s.lookahead}}}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;s.strstart+=s.match_length;s.match_length=0}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_huff(s,flush){var bflush;for(;;){if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH){return BS_NEED_MORE}break}}s.match_length=0;bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function Config(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length;this.max_lazy=max_lazy;this.nice_length=nice_length;this.max_chain=max_chain;this.func=func}var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(s){s.window_size=2*s.w_size;zero(s.head);s.max_lazy_match=configuration_table[s.level].max_lazy;s.good_match=configuration_table[s.level].good_length;s.nice_match=configuration_table[s.level].nice_length;s.max_chain_length=configuration_table[s.level].max_chain;s.strstart=0;s.block_start=0;s.lookahead=0;s.insert=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;s.ins_h=0}function DeflateState(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=Z_DEFLATED;this.last_flush=-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new utils.Buf16(HEAP_SIZE*2);this.dyn_dtree=new utils.Buf16((2*D_CODES+1)*2);this.bl_tree=new utils.Buf16((2*BL_CODES+1)*2);zero(this.dyn_ltree);zero(this.dyn_dtree);zero(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new utils.Buf16(MAX_BITS+1);this.heap=new utils.Buf16(2*L_CODES+1);zero(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new utils.Buf16(2*L_CODES+1);zero(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0;this.bi_buf=0;this.bi_valid=0}function deflateResetKeep(strm){var s;if(!strm||!strm.state){return err(strm,Z_STREAM_ERROR)}strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0){s.wrap=-s.wrap}s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0:1;s.last_flush=Z_NO_FLUSH;trees._tr_init(s);return Z_OK}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK){lm_init(strm.state)}return ret}function deflateSetHeader(strm,head){if(!strm||!strm.state){return Z_STREAM_ERROR}if(strm.state.wrap!==2){return Z_STREAM_ERROR}strm.state.gzhead=head;return Z_OK}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm){return Z_STREAM_ERROR}var wrap=1;if(level===Z_DEFAULT_COMPRESSION){level=6}if(windowBits<0){wrap=0;windowBits=-windowBits}else if(windowBits>15){wrap=2;windowBits-=16}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED){return err(strm,Z_STREAM_ERROR)}if(windowBits===8){windowBits=9}var s=new DeflateState;strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<<s.w_bits;s.w_mask=s.w_size-1;s.hash_bits=memLevel+7;s.hash_size=1<<s.hash_bits;s.hash_mask=s.hash_size-1;s.hash_shift=~~((s.hash_bits+MIN_MATCH-1)/MIN_MATCH);s.window=new utils.Buf8(s.w_size*2);s.head=new utils.Buf16(s.hash_size);s.prev=new utils.Buf16(s.w_size);s.lit_bufsize=1<<memLevel+6;s.pending_buf_size=s.lit_bufsize*4;s.pending_buf=new utils.Buf8(s.pending_buf_size);s.d_buf=1*s.lit_bufsize;s.l_buf=(1+2)*s.lit_bufsize;s.level=level;s.strategy=strategy;s.method=method;return deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s;var beg,val;if(!strm||!strm.state||flush>Z_BLOCK||flush<0){return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR}s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH){return err(strm,strm.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR)}s.strm=strm;old_flush=s.last_flush;s.last_flush=flush;if(s.status===INIT_STATE){if(s.wrap===2){strm.adler=0;put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE}else{put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment?0:16));put_byte(s,s.gzhead.time&255);put_byte(s,s.gzhead.time>>8&255);put_byte(s,s.gzhead.time>>16&255);put_byte(s,s.gzhead.time>>24&255);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,s.gzhead.os&255);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&255);put_byte(s,s.gzhead.extra.length>>8&255)}if(s.gzhead.hcrc){strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)}s.gzindex=0;s.status=EXTRA_STATE}}else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2){level_flags=0}else if(s.level<6){level_flags=1}else if(s.level===6){level_flags=2}else{level_flags=3}header|=level_flags<<6;if(s.strstart!==0){header|=PRESET_DICT}header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}strm.adler=1}}if(s.status===EXTRA_STATE){if(s.gzhead.extra){beg=s.pending;while(s.gzindex<(s.gzhead.extra.length&65535)){if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){break}}put_byte(s,s.gzhead.extra[s.gzindex]&255);s.gzindex++}if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE}}else{s.status=NAME_STATE}}if(s.status===NAME_STATE){if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindex<s.gzhead.name.length){val=s.gzhead.name.charCodeAt(s.gzindex++)&255}else{val=0}put_byte(s,val)}while(val!==0);if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.gzindex=0;s.status=COMMENT_STATE}}else{s.status=COMMENT_STATE}}if(s.status===COMMENT_STATE){if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindex<s.gzhead.comment.length){val=s.gzhead.comment.charCodeAt(s.gzindex++)&255}else{val=0}put_byte(s,val)}while(val!==0);if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.status=HCRC_STATE}}else{s.status=HCRC_STATE}}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size){flush_pending(strm)}if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);strm.adler=0;s.status=BUSY_STATE}}else{s.status=BUSY_STATE}}if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH){return err(strm,Z_BUF_ERROR)}if(s.status===FINISH_STATE&&strm.avail_in!==0){return err(strm,Z_BUF_ERROR)}if(strm.avail_in!==0||s.lookahead!==0||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if(bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE){s.status=FINISH_STATE}if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0){s.last_flush=-1}return Z_OK}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH){trees._tr_align(s)}else if(flush!==Z_BLOCK){trees._tr_stored_block(s,0,0,false);if(flush===Z_FULL_FLUSH){zero(s.head);if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}}if(flush!==Z_FINISH){return Z_OK}if(s.wrap<=0){return Z_STREAM_END}if(s.wrap===2){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);put_byte(s,strm.adler>>16&255);put_byte(s,strm.adler>>24&255);put_byte(s,strm.total_in&255);put_byte(s,strm.total_in>>8&255);put_byte(s,strm.total_in>>16&255);put_byte(s,strm.total_in>>24&255)}else{putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}flush_pending(strm);if(s.wrap>0){s.wrap=-s.wrap}return s.pending!==0?Z_OK:Z_STREAM_END}function deflateEnd(strm){var status;if(!strm||!strm.state){return Z_STREAM_ERROR}status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE){return err(strm,Z_STREAM_ERROR)}strm.state=null;return status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK}function deflateSetDictionary(strm,dictionary){var dictLength=dictionary.length;var s;var str,n;var wrap;var avail;var next;var input;var tmpDict;if(!strm||!strm.state){return Z_STREAM_ERROR}s=strm.state;wrap=s.wrap;if(wrap===2||wrap===1&&s.status!==INIT_STATE||s.lookahead){return Z_STREAM_ERROR}if(wrap===1){strm.adler=adler32(strm.adler,dictionary,dictLength,0)}s.wrap=0;if(dictLength>=s.w_size){if(wrap===0){zero(s.head);s.strstart=0;s.block_start=0;s.insert=0}tmpDict=new utils.Buf8(s.w_size);utils.arraySet(tmpDict,dictionary,dictLength-s.w_size,s.w_size,0);dictionary=tmpDict;dictLength=s.w_size}avail=strm.avail_in;next=strm.next_in;input=strm.input;strm.avail_in=dictLength;strm.next_in=0;strm.input=dictionary;fill_window(s);while(s.lookahead>=MIN_MATCH){str=s.strstart;n=s.lookahead-(MIN_MATCH-1);do{s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+MIN_MATCH-1])&s.hash_mask;s.prev[str&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=str;str++}while(--n);s.strstart=str;s.lookahead=MIN_MATCH-1;fill_window(s)}s.strstart+=s.lookahead;s.block_start=s.strstart;s.insert=s.lookahead;s.lookahead=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;strm.next_in=next;strm.input=input;strm.avail_in=avail;s.wrap=wrap;return Z_OK}exports.deflateInit=deflateInit;exports.deflateInit2=deflateInit2;exports.deflateReset=deflateReset;exports.deflateResetKeep=deflateResetKeep;exports.deflateSetHeader=deflateSetHeader;exports.deflate=deflate;exports.deflateEnd=deflateEnd;exports.deflateSetDictionary=deflateSetDictionary;exports.deflateInfo="pako deflate (from Nodeca project)"});var require_strings=__commonJS((exports)=>{var utils=require_common();var STR_APPLY_OK=true;var STR_APPLY_UIA_OK=true;try{String.fromCharCode.apply(null,[0])}catch(__){STR_APPLY_OK=false}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(__){STR_APPLY_UIA_OK=false}var _utf8len=new utils.Buf8(256);for(q=0;q<256;q++){_utf8len[q]=q>=252?6:q>=248?5:q>=240?4:q>=224?3:q>=192?2:1}var q;_utf8len[254]=_utf8len[254]=1;exports.string2buf=function(str){var buf,c,c2,m_pos,i2,str_len=str.length,buf_len=0;for(m_pos=0;m_pos<str_len;m_pos++){c=str.charCodeAt(m_pos);if((c&64512)===55296&&m_pos+1<str_len){c2=str.charCodeAt(m_pos+1);if((c2&64512)===56320){c=65536+(c-55296<<10)+(c2-56320);m_pos++}}buf_len+=c<128?1:c<2048?2:c<65536?3:4}buf=new utils.Buf8(buf_len);for(i2=0,m_pos=0;i2<buf_len;m_pos++){c=str.charCodeAt(m_pos);if((c&64512)===55296&&m_pos+1<str_len){c2=str.charCodeAt(m_pos+1);if((c2&64512)===56320){c=65536+(c-55296<<10)+(c2-56320);m_pos++}}if(c<128){buf[i2++]=c}else if(c<2048){buf[i2++]=192|c>>>6;buf[i2++]=128|c&63}else if(c<65536){buf[i2++]=224|c>>>12;buf[i2++]=128|c>>>6&63;buf[i2++]=128|c&63}else{buf[i2++]=240|c>>>18;buf[i2++]=128|c>>>12&63;buf[i2++]=128|c>>>6&63;buf[i2++]=128|c&63}}return buf};function buf2binstring(buf,len){if(len<65534){if(buf.subarray&&STR_APPLY_UIA_OK||!buf.subarray&&STR_APPLY_OK){return String.fromCharCode.apply(null,utils.shrinkBuf(buf,len))}}var result2="";for(var i2=0;i2<len;i2++){result2+=String.fromCharCode(buf[i2])}return result2}exports.buf2binstring=function(buf){return buf2binstring(buf,buf.length)};exports.binstring2buf=function(str){var buf=new utils.Buf8(str.length);for(var i2=0,len=buf.length;i2<len;i2++){buf[i2]=str.charCodeAt(i2)}return buf};exports.buf2string=function(buf,max){var i2,out,c,c_len;var len=max||buf.length;var utf16buf=new Array(len*2);for(out=0,i2=0;i2<len;){c=buf[i2++];if(c<128){utf16buf[out++]=c;continue}c_len=_utf8len[c];if(c_len>4){utf16buf[out++]=65533;i2+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i2<len){c=c<<6|buf[i2++]&63;c_len--}if(c_len>1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}return buf2binstring(utf16buf,out)};exports.utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max}});var require_zstream=__commonJS((exports,module)=>{function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream});var require_deflate2=__commonJS((exports)=>{var zlib_deflate=require_deflate();var utils=require_common();var strings=require_strings();var msg=require_messages();var ZStream=require_zstream();var toString=Object.prototype.toString;var Z_NO_FLUSH=0;var Z_FINISH=4;var Z_OK=0;var Z_STREAM_END=1;var Z_SYNC_FLUSH=2;var Z_DEFAULT_COMPRESSION=-1;var Z_DEFAULT_STRATEGY=0;var Z_DEFLATED=8;function Deflate(options){if(!(this instanceof Deflate))return new Deflate(options);this.options=utils.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>0){opt.windowBits=-opt.windowBits}else if(opt.gzip&&opt.windowBits>0&&opt.windowBits<16){opt.windowBits+=16}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new ZStream;this.strm.avail_out=0;var status=zlib_deflate.deflateInit2(this.strm,opt.level,opt.method,opt.windowBits,opt.memLevel,opt.strategy);if(status!==Z_OK){throw new Error(msg[status])}if(opt.header){zlib_deflate.deflateSetHeader(this.strm,opt.header)}if(opt.dictionary){var dict;if(typeof opt.dictionary==="string"){dict=strings.string2buf(opt.dictionary)}else if(toString.call(opt.dictionary)==="[object ArrayBuffer]"){dict=new Uint8Array(opt.dictionary)}else{dict=opt.dictionary}status=zlib_deflate.deflateSetDictionary(this.strm,dict);if(status!==Z_OK){throw new Error(msg[status])}this._dict_set=true}}Deflate.prototype.push=function(data2,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?Z_FINISH:Z_NO_FLUSH;if(typeof data2==="string"){strm.input=strings.string2buf(data2)}else if(toString.call(data2)==="[object ArrayBuffer]"){strm.input=new Uint8Array(data2)}else{strm.input=data2}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_deflate.deflate(strm,_mode);if(status!==Z_STREAM_END&&status!==Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.avail_out===0||strm.avail_in===0&&(_mode===Z_FINISH||_mode===Z_SYNC_FLUSH)){if(this.options.to==="string"){this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output,strm.next_out)))}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}while((strm.avail_in>0||strm.avail_out===0)&&status!==Z_STREAM_END);if(_mode===Z_FINISH){status=zlib_deflate.deflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===Z_OK}if(_mode===Z_SYNC_FLUSH){this.onEnd(Z_OK);strm.avail_out=0;return true}return true};Deflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Deflate.prototype.onEnd=function(status){if(status===Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function deflate(input,options){var deflator=new Deflate(options);deflator.push(input,true);if(deflator.err){throw deflator.msg||msg[deflator.err]}return deflator.result}function deflateRaw(input,options){options=options||{};options.raw=true;return deflate(input,options)}function gzip(input,options){options=options||{};options.gzip=true;return deflate(input,options)}exports.Deflate=Deflate;exports.deflate=deflate;exports.deflateRaw=deflateRaw;exports.gzip=gzip});var require_inffast=__commonJS((exports,module)=>{var BAD=30;var TYPE=12;module.exports=function inflate_fast(strm,start){var state;var _in;var last2;var _out;var beg;var end;var dmax;var wsize;var whave;var wnext;var s_window;var hold;var bits;var lcode;var dcode;var lmask;var dmask;var here;var op;var len;var dist;var from;var from_source;var input,output;state=strm.state;_in=strm.next_in;input=strm.input;last2=_in+(strm.avail_in-5);_out=strm.next_out;output=strm.output;beg=_out-(start-strm.avail_out);end=_out+(strm.avail_out-257);dmax=state.dmax;wsize=state.wsize;whave=state.whave;wnext=state.wnext;s_window=state.window;hold=state.hold;bits=state.bits;lcode=state.lencode;dcode=state.distcode;lmask=(1<<state.lenbits)-1;dmask=(1<<state.distbits)-1;top:do{if(bits<15){hold+=input[_in++]<<bits;bits+=8;hold+=input[_in++]<<bits;bits+=8}here=lcode[hold&lmask];dolen:for(;;){op=here>>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op===0){output[_out++]=here&65535}else if(op&16){len=here&65535;op&=15;if(op){if(bits<op){hold+=input[_in++]<<bits;bits+=8}len+=hold&(1<<op)-1;hold>>>=op;bits-=op}if(bits<15){hold+=input[_in++]<<bits;bits+=8;hold+=input[_in++]<<bits;bits+=8}here=dcode[hold&dmask];dodist:for(;;){op=here>>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bits<op){hold+=input[_in++]<<bits;bits+=8;if(bits<op){hold+=input[_in++]<<bits;bits+=8}}dist+=hold&(1<<op)-1;if(dist>dmax){strm.msg="invalid distance too far back";state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}}from=0;from_source=s_window;if(wnext===0){from+=wsize-op;if(op<len){len-=op;do{output[_out++]=s_window[from++]}while(--op);from=_out-dist;from_source=output}}else if(wnext<op){from+=wsize+wnext-op;op-=wnext;if(op<len){len-=op;do{output[_out++]=s_window[from++]}while(--op);from=0;if(wnext<len){op=wnext;len-=op;do{output[_out++]=s_window[from++]}while(--op);from=_out-dist;from_source=output}}}else{from+=wnext-op;if(op<len){len-=op;do{output[_out++]=s_window[from++]}while(--op);from=_out-dist;from_source=output}}while(len>2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1){output[_out++]=from_source[from++]}}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++];len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1){output[_out++]=output[from++]}}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<<op)-1)];continue dodist}else{strm.msg="invalid distance code";state.mode=BAD;break top}break}}else if((op&64)===0){here=lcode[(here&65535)+(hold&(1<<op)-1)];continue dolen}else if(op&32){state.mode=TYPE;break top}else{strm.msg="invalid literal/length code";state.mode=BAD;break top}break}}while(_in<last2&&_out<end);len=bits>>3;_in-=len;bits-=len<<3;hold&=(1<<bits)-1;strm.next_in=_in;strm.next_out=_out;strm.avail_in=_in<last2?5+(last2-_in):5-(_in-last2);strm.avail_out=_out<end?257+(end-_out):257-(_out-end);state.hold=hold;state.bits=bits;return}});var require_inftrees=__commonJS((exports,module)=>{var utils=require_common();var MAXBITS=15;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var CODES=0;var LENS=1;var DISTS=2;var lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0];var lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78];var dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0];var dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];module.exports=function inflate_table(type,lens,lens_index,codes,table,table_index,work,opts){var bits=opts.bits;var len=0;var sym=0;var min=0,max=0;var root=0;var curr=0;var drop=0;var left=0;var used=0;var huff=0;var incr;var fill;var low;var mask;var next;var base=null;var base_index=0;var end;var count=new utils.Buf16(MAXBITS+1);var offs=new utils.Buf16(MAXBITS+1);var extra=null;var extra_index=0;var here_bits,here_op,here_val;for(len=0;len<=MAXBITS;len++){count[len]=0}for(sym=0;sym<codes;sym++){count[lens[lens_index+sym]]++}root=bits;for(max=MAXBITS;max>=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min<max;min++){if(count[min]!==0){break}}if(root<min){root=min}left=1;for(len=1;len<=MAXBITS;len++){left<<=1;left-=count[len];if(left<0){return-1}}if(left>0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;len<MAXBITS;len++){offs[len+1]=offs[len]+count[len]}for(sym=0;sym<codes;sym++){if(lens[lens_index+sym]!==0){work[offs[lens[lens_index+sym]]++]=sym}}if(type===CODES){base=extra=work;end=19}else if(type===LENS){base=lbase;base_index-=257;extra=lext;extra_index-=257;end=256}else{base=dbase;extra=dext;end=-1}huff=0;sym=0;len=min;next=table_index;curr=root;drop=0;low=-1;used=1<<root;mask=used-1;if(type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}for(;;){here_bits=len-drop;if(work[sym]<end){here_op=0;here_val=work[sym]}else if(work[sym]>end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<<len-drop;fill=1<<curr;min=fill;do{fill-=incr;table[next+(huff>>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<<len-1;while(huff&incr){incr>>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<<curr;while(curr+drop<max){left-=count[curr+drop];if(left<=0){break}curr++;left<<=1}used+=1<<curr;if(type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}});var require_inflate=__commonJS((exports)=>{var utils=require_common();var adler32=require_adler32();var crc32=require_crc32();var inflate_fast=require_inffast();var inflate_table=require_inftrees();var CODES=0;var LENS=1;var DISTS=2;var Z_FINISH=4;var Z_BLOCK=5;var Z_TREES=6;var Z_OK=0;var Z_STREAM_END=1;var Z_NEED_DICT=2;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_MEM_ERROR=-4;var Z_BUF_ERROR=-5;var Z_DEFLATED=8;var HEAD=1;var FLAGS=2;var TIME=3;var OS=4;var EXLEN=5;var EXTRA=6;var NAME=7;var COMMENT=8;var HCRC=9;var DICTID=10;var DICT=11;var TYPE=12;var TYPEDO=13;var STORED=14;var COPY_=15;var COPY=16;var TABLE=17;var LENLENS=18;var CODELENS=19;var LEN_=20;var LEN=21;var LENEXT=22;var DIST=23;var DISTEXT=24;var MATCH=25;var LIT=26;var CHECK=27;var LENGTH=28;var DONE=29;var BAD=30;var MEM=31;var SYNC=32;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var MAX_WBITS=15;var DEF_WBITS=MAX_WBITS;function zswap32(q){return(q>>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new utils.Buf16(320);this.work=new utils.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function inflateResetKeep(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap){strm.adler=state.wrap&1}state.mode=HEAD;state.last=0;state.havedict=0;state.dmax=32768;state.head=null;state.hold=0;state.bits=0;state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if(windowBits<0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48){windowBits&=15}}if(windowBits&&(windowBits<8||windowBits>15)){return Z_STREAM_ERROR}if(state.window!==null&&state.wbits!==windowBits){state.window=null}state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm){return Z_STREAM_ERROR}state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK){strm.state=null}return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix;var distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144){state.lens[sym++]=8}while(sym<256){state.lens[sym++]=9}while(sym<280){state.lens[sym++]=7}while(sym<288){state.lens[sym++]=8}inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32){state.lens[sym++]=5}inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<<state.wbits;state.wnext=0;state.whave=0;state.window=new utils.Buf8(state.wsize)}if(copy>=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy){dist=copy}utils.arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize){state.wnext=0}if(state.whave<state.wsize){state.whave+=dist}}}return 0}function inflate(strm,flush){var state;var input,output;var next;var put;var have,left;var hold;var bits;var _in,_out;var copy;var from;var from_source;var here=0;var here_bits,here_op,here_val;var last_bits,last_op,last_val;var len;var ret;var hbuf=new utils.Buf8(4);var opts;var n;var order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!strm||!strm.state||!strm.output||!strm.input&&strm.avail_in!==0){return Z_STREAM_ERROR}state=strm.state;if(state.mode===TYPE){state.mode=TYPEDO}put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;_in=have;_out=left;ret=Z_OK;inf_leave:for(;;){switch(state.mode){case HEAD:if(state.wrap===0){state.mode=TYPEDO;break}while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.wrap&2&&hold===35615){state.check=0;hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head){state.head.done=false}if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}hold>>>=4;bits-=4;len=(hold&15)+8;if(state.wbits===0){state.wbits=len}else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<<len;strm.adler=state.check=1;state.mode=hold&512?DICTID:TYPE;hold=0;bits=0;break;case FLAGS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.flags=hold;if((state.flags&255)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}if(state.flags&57344){strm.msg="unknown header flags set";state.mode=BAD;break}if(state.head){state.head.text=hold>>8&1}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.head){state.head.time=hold}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;hbuf[2]=hold>>>16&255;hbuf[3]=hold>>>24&255;state.check=crc32(state.check,hbuf,4,0)}hold=0;bits=0;state.mode=OS;case OS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.head){state.head.xflags=hold&255;state.head.os=hold>>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.length=hold;if(state.head){state.head.extra_len=hold}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0}else if(state.head){state.head.extra=null}state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have){copy=have}if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra){state.head.extra=new Array(state.head.extra_len)}utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;state.length-=copy}if(state.length){break inf_leave}}state.length=0;state.mode=NAME;case NAME:if(state.flags&2048){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.name+=String.fromCharCode(len)}}while(len&©<have);if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;if(len){break inf_leave}}else if(state.head){state.head.name=null}state.length=0;state.mode=COMMENT;case COMMENT:if(state.flags&4096){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.comment+=String.fromCharCode(len)}}while(len&©<have);if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;if(len){break inf_leave}}else if(state.head){state.head.comment=null}state.mode=HCRC;case HCRC:if(state.flags&512){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(hold!==(state.check&65535)){strm.msg="header crc mismatch";state.mode=BAD;break}hold=0;bits=0}if(state.head){state.head.hcrc=state.flags>>9&1;state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}strm.adler=state.check=zswap32(hold);hold=0;bits=0;state.mode=DICT;case DICT:if(state.havedict===0){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;return Z_NEED_DICT}strm.adler=state.check=1;state.mode=TYPE;case TYPE:if(flush===Z_BLOCK||flush===Z_TREES){break inf_leave}case TYPEDO:if(state.last){hold>>>=bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.last=hold&1;hold>>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(flush===Z_TREES){hold>>>=2;bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type";state.mode=BAD}hold>>>=2;bits-=2;break;case STORED:hold>>>=bits&7;bits-=bits&7;while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if((hold&65535)!==(hold>>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES){break inf_leave}case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have){copy=have}if(copy>left){copy=left}if(copy===0){break inf_leave}utils.arraySet(output,input,next,copy,put);have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy;break}state.mode=TYPE;break;case TABLE:while(bits<14){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.nlen=(hold&31)+257;hold>>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols";state.mode=BAD;break}state.have=0;state.mode=LENLENS;case LENLENS:while(state.have<state.ncode){while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.lens[order[state.have++]]=hold&7;hold>>>=3;bits-=3}while(state.have<19){state.lens[order[state.have++]]=0}state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have<state.nlen+state.ndist){for(;;){here=state.lencode[hold&(1<<state.lenbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(here_val<16){hold>>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold&3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--){state.lens[state.have++]=len}}}if(state.mode===BAD){break}if(state.lens[256]===0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}state.distbits=6;state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts);state.distbits=opts.bits;if(ret){strm.msg="invalid distances set";state.mode=BAD;break}state.mode=LEN_;if(flush===Z_TREES){break inf_leave}case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;inflate_fast(strm,_out);put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;if(state.mode===TYPE){state.back=-1}break}state.back=0;for(;;){here=state.lencode[hold&(1<<state.lenbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(here_op&&(here_op&240)===0){last_bits=here_bits;last_op=here_op;last_val=here_val;for(;;){here=state.lencode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.length+=hold&(1<<state.extra)-1;hold>>>=state.extra;bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<<state.distbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if((here_op&240)===0){last_bits=here_bits;last_op=here_op;last_val=here_val;for(;;){here=state.distcode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.offset+=hold&(1<<state.extra)-1;hold>>>=state.extra;bits-=state.extra;state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back";state.mode=BAD;break}state.mode=MATCH;case MATCH:if(left===0){break inf_leave}copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy}else{from=state.wnext-copy}if(copy>state.length){copy=state.length}from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left){copy=left}left-=copy;state.length-=copy;do{output[put++]=from_source[from++]}while(--copy);if(state.length===0){state.mode=LEN}break;case LIT:if(left===0){break inf_leave}output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0){break inf_leave}have--;hold|=input[next++]<<bits;bits+=8}_out-=left;strm.total_out+=_out;state.total+=_out;if(_out){strm.adler=state.check=state.flags?crc32(state.check,output,_out,put-_out):adler32(state.check,output,_out,put-_out)}_out=left;if((state.flags?hold:zswap32(hold))!==state.check){strm.msg="incorrect data check";state.mode=BAD;break}hold=0;bits=0}state.mode=LENGTH;case LENGTH:if(state.wrap&&state.flags){while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(hold!==(state.total&4294967295)){strm.msg="incorrect length check";state.mode=BAD;break}hold=0;bits=0}state.mode=DONE;case DONE:ret=Z_STREAM_END;break inf_leave;case BAD:ret=Z_DATA_ERROR;break inf_leave;case MEM:return Z_MEM_ERROR;case SYNC:default:return Z_STREAM_ERROR}}strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;if(state.wsize||_out!==strm.avail_out&&state.mode<BAD&&(state.mode<CHECK||flush!==Z_FINISH)){if(updatewindow(strm,strm.output,strm.next_out,_out-strm.avail_out)){state.mode=MEM;return Z_MEM_ERROR}}_in-=strm.avail_in;_out-=strm.avail_out;strm.total_in+=_in;strm.total_out+=_out;state.total+=_out;if(state.wrap&&_out){strm.adler=state.check=state.flags?crc32(state.check,output,_out,strm.next_out-_out):adler32(state.check,output,_out,strm.next_out-_out)}strm.data_type=state.bits+(state.last?64:0)+(state.mode===TYPE?128:0)+(state.mode===LEN_||state.mode===COPY_?256:0);if((_in===0&&_out===0||flush===Z_FINISH)&&ret===Z_OK){ret=Z_BUF_ERROR}return ret}function inflateEnd(strm){if(!strm||!strm.state){return Z_STREAM_ERROR}var state=strm.state;if(state.window){state.window=null}strm.state=null;return Z_OK}function inflateGetHeader(strm,head){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if((state.wrap&2)===0){return Z_STREAM_ERROR}state.head=head;head.done=false;return Z_OK}function inflateSetDictionary(strm,dictionary){var dictLength=dictionary.length;var state;var dictid;var ret;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if(state.wrap!==0&&state.mode!==DICT){return Z_STREAM_ERROR}if(state.mode===DICT){dictid=1;dictid=adler32(dictid,dictionary,dictLength,0);if(dictid!==state.check){return Z_DATA_ERROR}}ret=updatewindow(strm,dictionary,dictLength,dictLength);if(ret){state.mode=MEM;return Z_MEM_ERROR}state.havedict=1;return Z_OK}exports.inflateReset=inflateReset;exports.inflateReset2=inflateReset2;exports.inflateResetKeep=inflateResetKeep;exports.inflateInit=inflateInit;exports.inflateInit2=inflateInit2;exports.inflate=inflate;exports.inflateEnd=inflateEnd;exports.inflateGetHeader=inflateGetHeader;exports.inflateSetDictionary=inflateSetDictionary;exports.inflateInfo="pako inflate (from Nodeca project)"});var require_constants=__commonJS((exports,module)=>{module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var require_gzheader=__commonJS((exports,module)=>{function GZheader(){this.text=0;this.time=0;this.xflags=0;this.os=0;this.extra=null;this.extra_len=0;this.name="";this.comment="";this.hcrc=0;this.done=false}module.exports=GZheader});var require_inflate2=__commonJS((exports)=>{var zlib_inflate=require_inflate();var utils=require_common();var strings=require_strings();var c=require_constants();var msg=require_messages();var ZStream=require_zstream();var GZheader=require_gzheader();var toString=Object.prototype.toString;function Inflate(options){if(!(this instanceof Inflate))return new Inflate(options);this.options=utils.assign({chunkSize:16384,windowBits:0,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>=0&&opt.windowBits<16){opt.windowBits=-opt.windowBits;if(opt.windowBits===0){opt.windowBits=-15}}if(opt.windowBits>=0&&opt.windowBits<16&&!(options&&options.windowBits)){opt.windowBits+=32}if(opt.windowBits>15&&opt.windowBits<48){if((opt.windowBits&15)===0){opt.windowBits|=15}}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new ZStream;this.strm.avail_out=0;var status=zlib_inflate.inflateInit2(this.strm,opt.windowBits);if(status!==c.Z_OK){throw new Error(msg[status])}this.header=new GZheader;zlib_inflate.inflateGetHeader(this.strm,this.header);if(opt.dictionary){if(typeof opt.dictionary==="string"){opt.dictionary=strings.string2buf(opt.dictionary)}else if(toString.call(opt.dictionary)==="[object ArrayBuffer]"){opt.dictionary=new Uint8Array(opt.dictionary)}if(opt.raw){status=zlib_inflate.inflateSetDictionary(this.strm,opt.dictionary);if(status!==c.Z_OK){throw new Error(msg[status])}}}}Inflate.prototype.push=function(data2,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var dictionary=this.options.dictionary;var status,_mode;var next_out_utf8,tail,utf8str;var allowBufError=false;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?c.Z_FINISH:c.Z_NO_FLUSH;if(typeof data2==="string"){strm.input=strings.binstring2buf(data2)}else if(toString.call(data2)==="[object ArrayBuffer]"){strm.input=new Uint8Array(data2)}else{strm.input=data2}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_inflate.inflate(strm,c.Z_NO_FLUSH);if(status===c.Z_NEED_DICT&&dictionary){status=zlib_inflate.inflateSetDictionary(this.strm,dictionary)}if(status===c.Z_BUF_ERROR&&allowBufError===true){status=c.Z_OK;allowBufError=false}if(status!==c.Z_STREAM_END&&status!==c.Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.next_out){if(strm.avail_out===0||status===c.Z_STREAM_END||strm.avail_in===0&&(_mode===c.Z_FINISH||_mode===c.Z_SYNC_FLUSH)){if(this.options.to==="string"){next_out_utf8=strings.utf8border(strm.output,strm.next_out);tail=strm.next_out-next_out_utf8;utf8str=strings.buf2string(strm.output,next_out_utf8);strm.next_out=tail;strm.avail_out=chunkSize-tail;if(tail){utils.arraySet(strm.output,strm.output,next_out_utf8,tail,0)}this.onData(utf8str)}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}if(strm.avail_in===0&&strm.avail_out===0){allowBufError=true}}while((strm.avail_in>0||strm.avail_out===0)&&status!==c.Z_STREAM_END);if(status===c.Z_STREAM_END){_mode=c.Z_FINISH}if(_mode===c.Z_FINISH){status=zlib_inflate.inflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===c.Z_OK}if(_mode===c.Z_SYNC_FLUSH){this.onEnd(c.Z_OK);strm.avail_out=0;return true}return true};Inflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Inflate.prototype.onEnd=function(status){if(status===c.Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function inflate(input,options){var inflator=new Inflate(options);inflator.push(input,true);if(inflator.err){throw inflator.msg||msg[inflator.err]}return inflator.result}function inflateRaw(input,options){options=options||{};options.raw=true;return inflate(input,options)}exports.Inflate=Inflate;exports.inflate=inflate;exports.inflateRaw=inflateRaw;exports.ungzip=inflate});var require_pako=__commonJS((exports,module)=>{var assign=require_common().assign;var deflate=require_deflate2();var inflate=require_inflate2();var constants=require_constants();var pako={};assign(pako,deflate,inflate,constants);module.exports=pako});var import_pako,chars2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lookup2,i2,decodeFromBase642=function(base64){var bufferLength=base64.length*0.75;var len=base64.length;var i3;var p=0;var encoded1;var encoded2;var encoded3;var encoded4;if(base64[base64.length-1]==="="){bufferLength--;if(base64[base64.length-2]==="="){bufferLength--}}var bytes=new Uint8Array(bufferLength);for(i3=0;i3<len;i3+=4){encoded1=lookup2[base64.charCodeAt(i3)];encoded2=lookup2[base64.charCodeAt(i3+1)];encoded3=lookup2[base64.charCodeAt(i3+2)];encoded4=lookup2[base64.charCodeAt(i3+3)];bytes[p++]=encoded1<<2|encoded2>>4;bytes[p++]=(encoded2&15)<<4|encoded3>>2;bytes[p++]=(encoded3&3)<<6|encoded4&63}return bytes},arrayToString=function(array3){var str="";for(var i3=0;i3<array3.length;i3++){str+=String.fromCharCode(array3[i3])}return str},decompressJson=function(compressedJson){return arrayToString(import_pako.default.inflate(decodeFromBase642(compressedJson)))},padStart2=function(value,length,padChar){var padding="";for(var idx=0,len=length-value.length;idx<len;idx++){padding+=padChar}return padding+value};var init_utils=__esm(()=>{import_pako=__toESM(require_pako(),1);lookup2=new Uint8Array(256);for(i2=0;i2<chars2.length;i2++){lookup2[chars2.charCodeAt(i2)]=i2}});var Courier_Bold_compressed_default="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";var init_Courier_Bold_compressed=()=>{};var Courier_BoldOblique_compressed_default="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";var init_Courier_BoldOblique_compressed=()=>{};var Courier_Oblique_compressed_default="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";var init_Courier_Oblique_compressed=()=>{};var Courier_compressed_default="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";var init_Courier_compressed=()=>{};var Helvetica_Bold_compressed_default="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";var init_Helvetica_Bold_compressed=()=>{};var Helvetica_BoldOblique_compressed_default="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";var init_Helvetica_BoldOblique_compressed=()=>{};var Helvetica_Oblique_compressed_default="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";var init_Helvetica_Oblique_compressed=()=>{};var Helvetica_compressed_default="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";var init_Helvetica_compressed=()=>{};var Times_Bold_compressed_default="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";var init_Times_Bold_compressed=()=>{};var Times_BoldItalic_compressed_default="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";var init_Times_BoldItalic_compressed=()=>{};var Times_Italic_compressed_default="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";var init_Times_Italic_compressed=()=>{};var Times_Roman_compressed_default="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";var init_Times_Roman_compressed=()=>{};var Symbol_compressed_default="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";var init_Symbol_compressed=()=>{};var ZapfDingbats_compressed_default="eJxtmNtu20YQhl+F4FULyMGeD7pz3AY1ChtG7NpFA18w1NomIlECSRcxgrx7SVk7+wOdG8H5OJydf2Z2d5gf9cV+t0v9VK/r+6vXsXlOlbHe28paq229qj/t++m62aXZ4J/m8PRb1z9/baZxefK63Z6eXN5dVMvTCh83u277xr/6kLrnl2XNq7TpXnczuZyabdee98/b2VzM/x4/dd/T5qab2pd6PQ2vaVVfvDRD005puE3Lu7eH1HbN9hTjx4/77/X6y5lcnUmjVzHIVVDicVX/1W/SsO36dLMfu6nb9/X6TAoBD+5euvZbn8axXtuZ36dhPJrVQqgPQoh5hev91LWLkIv94W1Ygq9+aX+tZAx2tfz64284/sblN/rqfLP/mqrbt3FKu7G67Nv9cNgPzZQ2H6rz7bb6vLgZq89pTMO/M/xfEqturJpqSM/d7GJIm2oamk3aNcO3av80O5xh3yyKmm1193ZIT02bqovTKjP+MAf++7zsZvZ3276kYyWWXB0z99S18/PbafPHQ71W4fjn/fxnFO+ZvkrT0LVzTr78qB/+nk38bHM9exgP8zr1z9U7jt6840YW5uSJKcZOCaBBnKgm5mU8MVNYyMwWFvO7Ukagkmgg6sDWQ5yFFqjzUrLEaQ3BEmiwNsMSaZS0vgWfOkPHWQowNeTUc0kumnxZvsgPxlGai6VTGUqAVCTQ6QkWnc77DKEiLktSUBJKqHIQZ86d8gCpHYoiEzMsb1ubYy8vW50DChB5ZhGqrijD0EqUIeiaEHIfCg5Kpuu0ApiToaGPSY0uaQsyr65L2oKi1yFt1PLaQ3lzfXTgXodGoJYzglndSLDMPg1sTPJpQJHJigw0QrGERqD9YhyTOgONQDUyuF1zaxuokc/BW2ztXCMrGZ9WMW1oQZHIXWNBkSCfRZEL5BMUiZw6CzVSFCfUSGZFNjIldoKDkonTKQiJIGzWmFd3BizJJ9SINoLDriOfUCOZS+zg+KGD1qGiLNMLxtJD1/ns00ON6EzyUCM6vbxhoBKaqbG3DFQCNiL1iHccBPV0DHhQH/JW8EW90dkyFKGywCJU0WkVSvSGeiSUODWFFD0HYdPQVoiRgfPMA+/nnRgiAyNYSjpWNQcNSMrtFCUH4ZIRpSCWocFCSuhCEY6hoUClc0WC52BJlCYYLQdhN+hygRRRlo5BKRRLS6oihSqh+ZzzRGG1Mo4Iz1LoP0qsxDGFzk0JE42ji0jCPejomJKCuwil4m5CiRMEUMVSzVLDUstSx1Juc0oVWMpqY295qVltmtWmWW2a1aZZbZrVplltmtWmWW2G1WZYbYbVZlhthtVmWG2G1WZYbYbVZlhtltVmWW2W1WZZbZbVZlltltVmWW2W1QYjQCh7E2aAQHeGhCFgPoNoy8KNb2wxBhmGKBxoUZXlLGsLI6AsftEDHV0wIURVbANLcTKlGGBIKPOAxCmhePCKUwFzAmpDFRQvjA9R06Hq8TONvshgKDCuRAZTXigUxjxNFfKRo3CLhnIJBMFRvMZpqpNBMlQJzGT5WFQMVQI/AikPMIhEU1aDjqJvQwmjSHB05cC9jbYwc5UtAHNLhDw41ha+lEqF4JaH3gmB61SYcqInxTDmQK8v08vjqv4zDf1N0w3Lf4A8/vwPpfK11w==";var init_ZapfDingbats_compressed=()=>{};var compressedJsonForFontName,FontNames,fontCache,Font;var init_Font=__esm(()=>{init_utils();init_Courier_Bold_compressed();init_Courier_BoldOblique_compressed();init_Courier_Oblique_compressed();init_Courier_compressed();init_Helvetica_Bold_compressed();init_Helvetica_BoldOblique_compressed();init_Helvetica_Oblique_compressed();init_Helvetica_compressed();init_Times_Bold_compressed();init_Times_BoldItalic_compressed();init_Times_Italic_compressed();init_Times_Roman_compressed();init_Symbol_compressed();init_ZapfDingbats_compressed();compressedJsonForFontName={Courier:Courier_compressed_default,"Courier-Bold":Courier_Bold_compressed_default,"Courier-Oblique":Courier_Oblique_compressed_default,"Courier-BoldOblique":Courier_BoldOblique_compressed_default,Helvetica:Helvetica_compressed_default,"Helvetica-Bold":Helvetica_Bold_compressed_default,"Helvetica-Oblique":Helvetica_Oblique_compressed_default,"Helvetica-BoldOblique":Helvetica_BoldOblique_compressed_default,"Times-Roman":Times_Roman_compressed_default,"Times-Bold":Times_Bold_compressed_default,"Times-Italic":Times_Italic_compressed_default,"Times-BoldItalic":Times_BoldItalic_compressed_default,Symbol:Symbol_compressed_default,ZapfDingbats:ZapfDingbats_compressed_default};(function(FontNames2){FontNames2["Courier"]="Courier";FontNames2["CourierBold"]="Courier-Bold";FontNames2["CourierOblique"]="Courier-Oblique";FontNames2["CourierBoldOblique"]="Courier-BoldOblique";FontNames2["Helvetica"]="Helvetica";FontNames2["HelveticaBold"]="Helvetica-Bold";FontNames2["HelveticaOblique"]="Helvetica-Oblique";FontNames2["HelveticaBoldOblique"]="Helvetica-BoldOblique";FontNames2["TimesRoman"]="Times-Roman";FontNames2["TimesRomanBold"]="Times-Bold";FontNames2["TimesRomanItalic"]="Times-Italic";FontNames2["TimesRomanBoldItalic"]="Times-BoldItalic";FontNames2["Symbol"]="Symbol";FontNames2["ZapfDingbats"]="ZapfDingbats"})(FontNames||(FontNames={}));fontCache={};Font=function(){function Font2(){var _this=this;this.getWidthOfGlyph=function(glyphName){return _this.CharWidths[glyphName]};this.getXAxisKerningForPair=function(leftGlyphName,rightGlyphName){return(_this.KernPairXAmounts[leftGlyphName]||{})[rightGlyphName]}}Font2.load=function(fontName){var cachedFont=fontCache[fontName];if(cachedFont)return cachedFont;var json2=decompressJson(compressedJsonForFontName[fontName]);var font=Object.assign(new Font2,JSON.parse(json2));font.CharWidths=font.CharMetrics.reduce(function(acc,metric){acc[metric.N]=metric.WX;return acc},{});font.KernPairXAmounts=font.KernPairs.reduce(function(acc,_a){var name1=_a[0],name2=_a[1],width=_a[2];if(!acc[name1])acc[name1]={};acc[name1][name2]=width;return acc},{});fontCache[fontName]=font;return font};return Font2}()});var all_encodings_compressed_default="eJztWsuy48iN/Ret74KZfHtX47meqfGjPHaXx4/wgpJ4JbooUU1JVXXb0f9u4JwESF13R7TD29koIpFi8gCJBHDA/Pvm+nraTuPmZ3/f5HHzs7/k8WlzvXS7fvPXp02eqyR/2vRfd2N3gqhUUfm0Od9P236+DoczxLWK66fNpZ93/fkGWaOy5mnTnUR67c57lRaZSItM/tnN/XnsX/DfIqg0JOk8HI4UK4BCAFzG+xWCQgXF02Y3nU4dJJVKKrx5mPgKBVMImOvYXY+QKJRCoHzXzxMErQrap810hqaloioF1e0L5kvFUwqe23Hu+Q+1TinWeZnuMwSKrRRsL8Nn/kOxlYLtOnzFWE1Viqmu/eceVioVaylYe1OwVKilQD0PCYgiLRtVcJz4kEItW13mNLi0UsCVAB77KyxTKeJKEPff3rsREkVcCeLD3He3HqArBV0J6G/v/fU2cK1WH23l0e3c7T71N9uUVv/c5i73bWlVs1Y0u5/3srO7aQb2EPUB+eUTva0TYgG5mGbbzZSUkJTpn75ygF4PThhq1SMGMds4HYZdN54n/rdWc8rv02bfH9I2hbqGsKbPnIYzHSc0qmTIxI6nuwpiAIQmU8F4Gy7jK8RwntAI1v3wedj39FmFECp508s4zUOyGmwpKrwbL8eOIlVU//Yf/S1J9C212Pa/uuSwbVDYlWzxf/aj/UtfWgm258t1GG1X1BVawfdnX0xdoRbjPCdBVGs1svo3R/tPVD1r2YL3k0kUfC04f9ldLkmk0NVwv+pO232SKXa126/vHAO5wPxNGivsRsZ/HDhWzLVg/iBuOSfMUTGrTX+b/qSIG0H8u+NEl1J4jcD7/XBI9kDcUYN/0/FNCDuNAP64skYOeLrykUsjElWC9+cmAEAB9NtrEijCplaE/YHvKuC5Iup8zxBAWtFrayakC2QC8uCbhggSskx9zXYNQSRkeuZWQBFKQowabNIfS/qeqOgSOFTINcC4DKcnE70H2zqElJAJ3k++dwgrIRPA47J5iCwr724RWELINFBTAAWiCL7SOogrIQj6abWBOH8hCPoL/4a4EoJgn9MWIq40lcY52cJAGbCHMgkpA3g9t7e0sRWgB1HnvjJYRez6yrSTlYJvRZmdCQhe80Pa24roNYL75uLo10WyKYHVeFLjYnImilM0qPDOJOKWNGlFCJsIrw/qsNv7OPY3SnNYSQ9DP46DLHylvGCcEFU08Nz6JIVx9Chd+93ENNhEWroSuC8SAi0WNznNpqH9+c5k1RQ0nIbi9/LnTzdmoKZAaAwaib/0g0Ti29wxG8gUgLey/O8eHmmqt4eiKTNYo416LPrLkcIWa2u06eZ5+mLBXCaoTp4m7pckBm41P8Qe0mUG6DUCYWY/fTmnCQbwkCa2043vrhA2gqakncwM3aGfe9GAj1Vw9qiuzPW2o4Or4PcxhmUu4atwAGKMy8wCscJhiDFfJh1lhY2K6mo250DrTJXOC82EUgVIkTMmOd0moqC5Dd24H15e0hRKJS0Cvg7Xm9RKgz9ErdWrTpfb6zV5Wx2ytwlDZLplUQ/8Ye72Qyq5RI5kqY4t6fe0iHOItdCYbo8zKOi0vLjvjrdjZ2IYRAPUZZ72910SI7vEiL9LaHSvrZFkipKOf02y8gc9vEbmKHQjRP95uH6ShZI9c9pao41otTPLICMETXSC5jLNupbP8bxo2Dy/DOfh9prk8BKNk935MPIo1jiKUSNQqiVSVSozBWYan5nmNMGz1+r6AleO8KJJwXdk2H8XwgVVP31AticBhdvqIZPwNPcvqWhqah74iIB6GsYuvbdGeYFS93yY775hPNh6giUlzNNXr/eaJmNYKrnLKznOt4ZsEQ6f5ZCfWVvJFK2Xs5BcP8ND23r5uJqDyaPmM90Oscl9a87aIC3HLCxz+uOzNFgOhA+P4XRq8hPTjP3Xhzn4oiYIm1svybSpOX03zDuJX4kqyAx3rrKZdZ3XNMggGh9lsUt/Fm+7m+1bGCxqOttPN/fOFiExKh+xnb1d0gz8qiiXmS0r5YxLaaULN/TaOsu4WEgTS3Fd1TCvlsvj9F1/PvQpPzHAZqiN9yZEntcyaDfet0mGOKLl5LGX6EMhU5ZGkf3QnVIWqvJA5FoG7KbLK1BcBcyLTfNYZGr7g8ar+WEWm63VgmSefX/q5k+r6Rplrdo/Heb+q00gKzcWUiVy3pY5RkGL7kept7/zSRS8Uc+Kw+nOV5ukqeu1KqtZ2Ds2a6yrWZghX/NS7q3OwQZ5WM0tgGCBPK7muPM6B2fP8wditayKMKG5YzW7rIvzkJcPs8vKOBGaRJxo+boMocrFfe407G0SJlJS7pO+KOrwqKkAcw4lp28Xi28vU7AM2Lfz9gUITKM8fJlcnoRtlJIvkwsSRtD2kXkuC8M2ytbX08vSME4ZHqd9cTQgojL5hXr60uhDxDJfTy7WQ3kXy2I9q+t+L7V+d3nZD+fDtrtdf7iZ8gPUNhVNSLOdFKmrqgg5UGR5ktUWkERW4ETnYSnQpK5PsqU2k3I5yZbCTGhJki0lmbJ2ypxOd8rYKXM23Slnp6yxclZkVZK1li1EVlMWmY0yyJokC5bIRdYm6sDCW/9X54knZEYnurpKJCEzNtHVdYqTmdGJrm6SiJRMsdWJmTS1MYWuSZwAHg3D5dSJO6tnpqPiNXIHapSQHkL9WNCyDwEZymTtQzyGcfx/rQVukWUP4RgGS29oG5RieEMSVKm67GISoHZUs0g6TKImlZMdbde2cDMFUCZBSBWevKlNIlRrBNQkEVpt0CXUSYTWGvzG1q5TldeFIklgFfiMvQ6tNXgMtk5IM+qSAjbJSpOh4wdUtYnQYgOqxkRosgFVayK02SJsYCJ02tRw9HkVodUG00UTodcG4+UmQrdN0dPhVYR2m8KPBhX1t/bkumgaofzWplwXDT2Oo9K2Lhp6dogUvT+HBpGC98fQxlDs/lSVCr/OVGZ7CGY3lXEIKyD3fylyrQS63P4VjTl0uRkGJxB+l5th2CBS5LkZhg0iRZ6bYdgPUqC5aYMEh8CSmzrsCinU3PRBKkNYyQ0qTgSiSmFQcSAQVAqDimSFmFIYVPaKFGphUNktUqiFQUVaUvLVFbaHSEZK47vC0LNfpOgLQ8+OkaIvDD2SjZbOXWHokWBQgJeGHkmlwaEz9EglKHFKQ48og8qmNPQgJEp0u9LQg4mAjJeGnm0rRV8aeratFH1p6EE8tBnQlYYebSutwLrS0KNrhRZYZegRbpV3dpWhR8tKSU9XGXr2rJTsdJXBTz0ruLjhT00rVaAyBVLTSjWoTIPUs1IVKlOBbSulAV1lOrBzpZS2q0wJNq8yhH7TovIOb1cb5tSXUny14Ut9KUYQUyS1phRgbaDZmEIiFrKThCnpIMMYGrZh0JBo7M01e+H65sZeUpPp6ZsbX4+dcH1xa1YgxYsIAWYF9rXBI1p/L9tiiL6ZmYGtrYpZybaz8caUCA1iA4iIPcEN0ZAQIuq70g2ZPCOQ7R+yE5riIjTojfMRESbsge1zHMhgsSlk5PR4u0WnQDraMOdEE7JTj7dbhAqpw4K3W4wKGZv3eHtempBkA+nHQldgrwXHM1jwCgj0pB7BwlcIbI7BnhbAAmsvHNJgISyw+MIxDRbEAqsvHNRgYSyw/GqZSE0j1l84rMFCWWABhuMaLJgFVmA4sMHCWUi8CRpZQAvkSzizwUJaIE/CoQ0W1ALpEU5tsLDGDzqg6yI0jaKzfxGaRuRBOLjBglsgAcpYHZhG5D04usECXCDdQd0WLMQFshwc6GBBLqQOETSyMBdIa3DMgwW6QD6Dcx4s1AXyDpSRYmoTsrpmzWKQyDJw0GWjTci2GCBZIAtkFDj+wSJZIJPA+Q8WygIJRCQkw8meFCJAsGAWCu8BiNAsjzTAXkKwEBfYg2IQqM3y7EFFauT/ZAcUGlk0DAU7nyzETPeSHBIa1aZmSe4IjWpTsyRphEa1qVmSTFMjU7Mki4ZGreEsSZ+hUWO6s7+bc4/8cdJlaNSYQdjTRbEbM3+c5BgaWTgOSA7stkSLiqFiCwbgLUiHinQX4C1Kh4pEl+BN94oEl+DNdBWJLcH74yS0AG8RPeCjRmRZ3JiR0ZWKrItbW7MmZWVlbG+vSVWxHY2tyW+lJTUy0yEVgdTKmmYlNplKagSDCMFlTIaH8GmVMWkpIj6sMsQv+Ae3UmUIX3AP6q0yRC94x/IOBC84B4+VyhC7yHTIELQRhGgM32hchmAM14hMRCpEMIZrNC6DJvAMWkxl0ASOQYOpDJqACrX+EmgCX9EQ8f3T5stwlggXf/otCfss8O19uvX7LfqmP3Z1AiRPP2JPY2pA/vTbFIhHqhFedB2s0/2v3bIAG1z14yH8CVcvwJFFoePr5cgbDv9/G+Pfvo2BUIP6ix0r8EO9ZYARuKFeMMAIvFA/gWMESqifiTACG9QrBTpCBFGK9wuMQKz0UgJGoH+C7L8xAvPTL40Y4au7gPkfjEAB9SYBRmB/eokAIxA/vT6AETifXh7ACHRPrwroqAFX0i/5GIEmCZb/xQj8Tu8LYARqp5cFMAKr03sCGIHQ6SUBjMDlBMsfMLIP//+HERicXlzACORNsPxJR2iW4I4FRj92EQa8TTuGInY3/vHrMSBwuoPX3TDot4c7osKPXJtBm0XLvsPc0XfRZkHNhxE4nLZsMQJ902/jDOQIkriXkAL7JhEyNh1ZemtZ98IxCZvebeCYZE3AHjkmUdMPGRyTpAm6v3FMgqY3EjgmOdPPZhyTmOlFBIwZxHEPgWNeJ9BbBxyz+af9c45J2PRMcEyyph8EOSZP03PMMTmaXjLgmN0+vWLAMfBpFfeZY7838AVjNilxLYJj4NOy7ZVjUju9zcHxv3/FiVcKULCpf9yGcb9qEOPL/6pp7GyO2cU+S7N2AaOzDMHKBXxO4/goyYBiZ3S7+yxxf0fNKud0r31a0gnddp4+9WfTpHJOt/r4yfIlfVDq5z7dgWABg8amf4SBnLxZQ9A0718keFqMZSGDNurhPoxjf5r84LGeQY/77d0vb3QvyYc1DTrd9nWo56movd196uyqy792faz2prfkJHyAHPiBONTe+kZ2ephrlhb4Ll0HSRfRNOLxqk5onB1LWu4kCPAGRmicIDOZ6j67Ro0T5V2/F6t1lDpTlkz6iMTpspj/JI53H83+jZNmt/+ybY2TZ1lRctmcUldonEDLxLEbGV5aZ9AwRnqAJmydSFu6c2dunU6/8yDIL5Og0+8W67VOp98xsL6kr1H8FglO/W45Uq1z6ncPXto6rX432zlpnVW/e6bAGfXPV0aOmXPqZwcbM+fUzw42Zs6pnx/BxsyJ9fMaV8ycW79fre3c+v1qbefW79+u7QT7/ePazrGf+UE7Zk6wf+Mmi8EJ9ocFQnCC/WGBEJxgf3gDgddNNIp/WC3Mb12i24cHXIEfkcs3FzGDM/UPnnJjcKb+cQXOmfrHFThn6h/fgItO1z8+4IjO2P+0LBOdsX9znHgBKUYn7Id+Pkklvh3TCgtpX9DFhbSvll1I+1t0C3NfTBcX5v4IeSHv5sYxX7g7H86dt+/Wbpw7c+8XsLkz934Bmztz79+AzZ2+9w+4cmfww2ptZ/DDam1n8MPbtZ3GDw9rs9ui3KZPblw4tz8vJiuc208LhMK5/bRAKJzbT28gFE7wp9XCTvCnR1zO8ZeLw7Fwjj8tTlw4x78v0Ern+PcFWukc//4GWulE//6AonSu/7paxrn+zZ2YnRclRK/rBXJsCAjxh2cKEAWVJ02ku/wOoFv2+12XkmnODwHgW4uQGVbZ0uM7mAJ1b/68/JlpUMnWdy5MF6/Vd5eL19YYSPd6FqPwBkNQo/h2NQxdQQ3bn/dpCxrGrqCW7U8rKZl/mfi0Xytk3Am66ZhYbg4y+KAVslDwbXdNL2d5qU5hnYBlTZaa6hs2t1qWdaeeTptcLco+hl5R7w4H5uOGcQbtEkpT18GusOI2xT9dYcVJf7zCSjmbD+Iud2s1NPRb9E+0UICmizb8ZK/+5JOLOulSqwaw5VJr2vB8dSFn89fvv/8H0oq1dA==";var init_all_encodings_compressed=()=>{};var decompressedEncodings,allUnicodeMappings,Encoding,Encodings;var init_Encoding=__esm(()=>{init_utils();init_all_encodings_compressed();decompressedEncodings=decompressJson(all_encodings_compressed_default);allUnicodeMappings=JSON.parse(decompressedEncodings);Encoding=function(){function Encoding2(name2,unicodeMappings){var _this=this;this.canEncodeUnicodeCodePoint=function(codePoint){return codePoint in _this.unicodeMappings};this.encodeUnicodeCodePoint=function(codePoint){var mapped=_this.unicodeMappings[codePoint];if(!mapped){var str=String.fromCharCode(codePoint);var hexCode="0x"+padStart2(codePoint.toString(16),4,"0");var msg=_this.name+' cannot encode "'+str+'" ('+hexCode+")";throw new Error(msg)}return{code:mapped[0],name:mapped[1]}};this.name=name2;this.supportedCodePoints=Object.keys(unicodeMappings).map(Number).sort(function(a,b){return a-b});this.unicodeMappings=unicodeMappings}return Encoding2}();Encodings={Symbol:new Encoding("Symbol",allUnicodeMappings.symbol),ZapfDingbats:new Encoding("ZapfDingbats",allUnicodeMappings.zapfdingbats),WinAnsi:new Encoding("WinAnsi",allUnicodeMappings.win1252)}});var init_es=__esm(()=>{init_Font();init_Encoding()});var values=function(obj){return Object.keys(obj).map(function(k){return obj[k]})},StandardFontValues,isStandardFont=function(input){return StandardFontValues.includes(input)},rectanglesAreEqual=function(a,b){return a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height};var init_objects=__esm(()=>{init_es();StandardFontValues=values(FontNames)});var backtick=function(val){return"`"+val+"`"},singleQuote=function(val){return"'"+val+"'"},formatValue=function(value){var type=typeof value;if(type==="string")return singleQuote(value);else if(type==="undefined")return backtick(value);else return value},createValueErrorMsg=function(value,valueName,values2){var allowedValues=new Array(values2.length);for(var idx=0,len=values2.length;idx<len;idx++){var v=values2[idx];allowedValues[idx]=formatValue(v)}var joinedValues=allowedValues.join(" or ");return backtick(valueName)+" must be one of "+joinedValues+", but was actually "+formatValue(value)},assertIsOneOf=function(value,valueName,allowedValues){if(!Array.isArray(allowedValues)){allowedValues=values(allowedValues)}for(var idx=0,len=allowedValues.length;idx<len;idx++){if(value===allowedValues[idx])return}throw new TypeError(createValueErrorMsg(value,valueName,allowedValues))},assertIsOneOfOrUndefined=function(value,valueName,allowedValues){if(!Array.isArray(allowedValues)){allowedValues=values(allowedValues)}assertIsOneOf(value,valueName,allowedValues.concat(undefined))},assertIsSubset=function(values2,valueName,allowedValues){if(!Array.isArray(allowedValues)){allowedValues=values(allowedValues)}for(var idx=0,len=values2.length;idx<len;idx++){assertIsOneOf(values2[idx],valueName,allowedValues)}},getType=function(val){if(val===null)return"null";if(val===undefined)return"undefined";if(typeof val==="string")return"string";if(isNaN(val))return"NaN";if(typeof val==="number")return"number";if(typeof val==="boolean")return"boolean";if(typeof val==="symbol")return"symbol";if(typeof val==="bigint")return"bigint";if(val.constructor&&val.constructor.name)return val.constructor.name;if(val.name)return val.name;if(val.constructor)return String(val.constructor);return String(val)},isType=function(value,type){if(type==="null")return value===null;if(type==="undefined")return value===undefined;if(type==="string")return typeof value==="string";if(type==="number")return typeof value==="number"&&!isNaN(value);if(type==="boolean")return typeof value==="boolean";if(type==="symbol")return typeof value==="symbol";if(type==="bigint")return typeof value==="bigint";if(type===Date)return value instanceof Date;if(type===Array)return value instanceof Array;if(type===Uint8Array)return value instanceof Uint8Array;if(type===ArrayBuffer)return value instanceof ArrayBuffer;if(type===Function)return value instanceof Function;return value instanceof type[0]},createTypeErrorMsg=function(value,valueName,types2){var allowedTypes=new Array(types2.length);for(var idx=0,len=types2.length;idx<len;idx++){var type=types2[idx];if(type==="null")allowedTypes[idx]=backtick("null");if(type==="undefined")allowedTypes[idx]=backtick("undefined");if(type==="string")allowedTypes[idx]=backtick("string");else if(type==="number")allowedTypes[idx]=backtick("number");else if(type==="boolean")allowedTypes[idx]=backtick("boolean");else if(type==="symbol")allowedTypes[idx]=backtick("symbol");else if(type==="bigint")allowedTypes[idx]=backtick("bigint");else if(type===Array)allowedTypes[idx]=backtick("Array");else if(type===Uint8Array)allowedTypes[idx]=backtick("Uint8Array");else if(type===ArrayBuffer)allowedTypes[idx]=backtick("ArrayBuffer");else allowedTypes[idx]=backtick(type[1])}var joinedTypes=allowedTypes.join(" or ");return backtick(valueName)+" must be of type "+joinedTypes+", but was actually of type "+backtick(getType(value))},assertIs=function(value,valueName,types2){for(var idx=0,len=types2.length;idx<len;idx++){if(isType(value,types2[idx]))return}throw new TypeError(createTypeErrorMsg(value,valueName,types2))},assertOrUndefined=function(value,valueName,types2){assertIs(value,valueName,types2.concat("undefined"))},assertEachIs=function(values2,valueName,types2){for(var idx=0,len=values2.length;idx<len;idx++){assertIs(values2[idx],valueName,types2)}},assertRange=function(value,valueName,min,max){assertIs(value,valueName,["number"]);assertIs(min,"min",["number"]);assertIs(max,"max",["number"]);max=Math.max(min,max);if(value<min||value>max){throw new Error(backtick(valueName)+" must be at least "+min+" and at most "+max+", but was actually "+value)}},assertRangeOrUndefined=function(value,valueName,min,max){assertIs(value,valueName,["number","undefined"]);if(typeof value==="number")assertRange(value,valueName,min,max)},assertMultiple=function(value,valueName,multiplier){assertIs(value,valueName,["number"]);if(value%multiplier!==0){throw new Error(backtick(valueName)+" must be a multiple of "+multiplier+", but was actually "+value)}},assertInteger=function(value,valueName){if(!Number.isInteger(value)){throw new Error(backtick(valueName)+" must be an integer, but was actually "+value)}},assertPositive=function(value,valueName){if(![1,0].includes(Math.sign(value))){throw new Error(backtick(valueName)+" must be a positive number or 0, but was actually "+value)}};var init_validators=__esm(()=>{init_objects()});var pdfDocEncodingToUnicode,idx,pdfDocEncodingDecode=function(bytes){var codePoints=new Array(bytes.length);for(var idx2=0,len=bytes.length;idx2<len;idx2++){codePoints[idx2]=pdfDocEncodingToUnicode[bytes[idx2]]}return String.fromCodePoint.apply(String,codePoints)};var init_pdfDocEncoding=__esm(()=>{init_strings();pdfDocEncodingToUnicode=new Uint16Array(256);for(idx=0;idx<256;idx++){pdfDocEncodingToUnicode[idx]=idx}pdfDocEncodingToUnicode[22]=toCharCode("\x17");pdfDocEncodingToUnicode[24]=toCharCode("˘");pdfDocEncodingToUnicode[25]=toCharCode("ˇ");pdfDocEncodingToUnicode[26]=toCharCode("ˆ");pdfDocEncodingToUnicode[27]=toCharCode("˙");pdfDocEncodingToUnicode[28]=toCharCode("˝");pdfDocEncodingToUnicode[29]=toCharCode("˛");pdfDocEncodingToUnicode[30]=toCharCode("˚");pdfDocEncodingToUnicode[31]=toCharCode("˜");pdfDocEncodingToUnicode[127]=toCharCode("�");pdfDocEncodingToUnicode[128]=toCharCode("•");pdfDocEncodingToUnicode[129]=toCharCode("†");pdfDocEncodingToUnicode[130]=toCharCode("‡");pdfDocEncodingToUnicode[131]=toCharCode("…");pdfDocEncodingToUnicode[132]=toCharCode("—");pdfDocEncodingToUnicode[133]=toCharCode("–");pdfDocEncodingToUnicode[134]=toCharCode("ƒ");pdfDocEncodingToUnicode[135]=toCharCode("⁄");pdfDocEncodingToUnicode[136]=toCharCode("‹");pdfDocEncodingToUnicode[137]=toCharCode("›");pdfDocEncodingToUnicode[138]=toCharCode("−");pdfDocEncodingToUnicode[139]=toCharCode("‰");pdfDocEncodingToUnicode[140]=toCharCode("„");pdfDocEncodingToUnicode[141]=toCharCode("“");pdfDocEncodingToUnicode[142]=toCharCode("”");pdfDocEncodingToUnicode[143]=toCharCode("‘");pdfDocEncodingToUnicode[144]=toCharCode("’");pdfDocEncodingToUnicode[145]=toCharCode("‚");pdfDocEncodingToUnicode[146]=toCharCode("™");pdfDocEncodingToUnicode[147]=toCharCode("fi");pdfDocEncodingToUnicode[148]=toCharCode("fl");pdfDocEncodingToUnicode[149]=toCharCode("Ł");pdfDocEncodingToUnicode[150]=toCharCode("Œ");pdfDocEncodingToUnicode[151]=toCharCode("Š");pdfDocEncodingToUnicode[152]=toCharCode("Ÿ");pdfDocEncodingToUnicode[153]=toCharCode("Ž");pdfDocEncodingToUnicode[154]=toCharCode("ı");pdfDocEncodingToUnicode[155]=toCharCode("ł");pdfDocEncodingToUnicode[156]=toCharCode("œ");pdfDocEncodingToUnicode[157]=toCharCode("š");pdfDocEncodingToUnicode[158]=toCharCode("ž");pdfDocEncodingToUnicode[159]=toCharCode("�");pdfDocEncodingToUnicode[160]=toCharCode("€");pdfDocEncodingToUnicode[173]=toCharCode("�")});var Cache,Cache_default;var init_Cache=__esm(()=>{Cache=function(){function Cache2(populate){this.populate=populate;this.value=undefined}Cache2.prototype.getValue=function(){return this.value};Cache2.prototype.access=function(){if(!this.value)this.value=this.populate();return this.value};Cache2.prototype.invalidate=function(){this.value=undefined};Cache2.populatedBy=function(populate){return new Cache2(populate)};return Cache2}();Cache_default=Cache});var init_utils2=__esm(()=>{init_Cache();init_arrays();init_strings();init_unicode();init_base64();init_objects();init_validators();init_pdfDocEncoding()});var MethodNotImplementedError,PrivateConstructorError,UnexpectedObjectTypeError,UnsupportedEncodingError,ReparseError,MissingCatalogError,MissingPageContentsEmbeddingError,UnrecognizedStreamTypeError,PageEmbeddingMismatchedContextError,PDFArrayIsNotRectangleError,InvalidPDFDateStringError,InvalidTargetIndexError,CorruptPageTreeError,IndexOutOfBoundsError,InvalidAcroFieldValueError,MultiSelectValueError,MissingDAEntryError,MissingTfOperatorError,NumberParsingError,PDFParsingError,NextByteAssertionError,PDFObjectParsingError,PDFInvalidObjectParsingError,PDFStreamParsingError,UnbalancedParenthesisError,StalledParserError,MissingPDFHeaderError,MissingKeywordError;var init_errors2=__esm(()=>{init_tslib_es62();init_utils2();MethodNotImplementedError=function(_super){__extends(MethodNotImplementedError2,_super);function MethodNotImplementedError2(className,methodName){var _this=this;var msg="Method "+className+"."+methodName+"() not implemented";_this=_super.call(this,msg)||this;return _this}return MethodNotImplementedError2}(Error);PrivateConstructorError=function(_super){__extends(PrivateConstructorError2,_super);function PrivateConstructorError2(className){var _this=this;var msg="Cannot construct "+className+" - it has a private constructor";_this=_super.call(this,msg)||this;return _this}return PrivateConstructorError2}(Error);UnexpectedObjectTypeError=function(_super){__extends(UnexpectedObjectTypeError2,_super);function UnexpectedObjectTypeError2(expected,actual){var _this=this;var name2=function(t){var _a,_b;return(_a=t===null||t===undefined?undefined:t.name)!==null&&_a!==undefined?_a:(_b=t===null||t===undefined?undefined:t.constructor)===null||_b===undefined?undefined:_b.name};var expectedTypes=Array.isArray(expected)?expected.map(name2):[name2(expected)];var msg="Expected instance of "+expectedTypes.join(" or ")+", "+("but got instance of "+(actual?name2(actual):actual));_this=_super.call(this,msg)||this;return _this}return UnexpectedObjectTypeError2}(Error);UnsupportedEncodingError=function(_super){__extends(UnsupportedEncodingError2,_super);function UnsupportedEncodingError2(encoding){var _this=this;var msg=encoding+" stream encoding not supported";_this=_super.call(this,msg)||this;return _this}return UnsupportedEncodingError2}(Error);ReparseError=function(_super){__extends(ReparseError2,_super);function ReparseError2(className,methodName){var _this=this;var msg="Cannot call "+className+"."+methodName+"() more than once";_this=_super.call(this,msg)||this;return _this}return ReparseError2}(Error);MissingCatalogError=function(_super){__extends(MissingCatalogError2,_super);function MissingCatalogError2(ref){var _this=this;var msg="Missing catalog (ref="+ref+")";_this=_super.call(this,msg)||this;return _this}return MissingCatalogError2}(Error);MissingPageContentsEmbeddingError=function(_super){__extends(MissingPageContentsEmbeddingError2,_super);function MissingPageContentsEmbeddingError2(){var _this=this;var msg="Can't embed page with missing Contents";_this=_super.call(this,msg)||this;return _this}return MissingPageContentsEmbeddingError2}(Error);UnrecognizedStreamTypeError=function(_super){__extends(UnrecognizedStreamTypeError2,_super);function UnrecognizedStreamTypeError2(stream){var _a,_b,_c;var _this=this;var streamType=(_c=(_b=(_a=stream===null||stream===undefined?undefined:stream.contructor)===null||_a===undefined?undefined:_a.name)!==null&&_b!==undefined?_b:stream===null||stream===undefined?undefined:stream.name)!==null&&_c!==undefined?_c:stream;var msg="Unrecognized stream type: "+streamType;_this=_super.call(this,msg)||this;return _this}return UnrecognizedStreamTypeError2}(Error);PageEmbeddingMismatchedContextError=function(_super){__extends(PageEmbeddingMismatchedContextError2,_super);function PageEmbeddingMismatchedContextError2(){var _this=this;var msg="Found mismatched contexts while embedding pages. All pages in the array passed to `PDFDocument.embedPages()` must be from the same document.";_this=_super.call(this,msg)||this;return _this}return PageEmbeddingMismatchedContextError2}(Error);PDFArrayIsNotRectangleError=function(_super){__extends(PDFArrayIsNotRectangleError2,_super);function PDFArrayIsNotRectangleError2(size){var _this=this;var msg="Attempted to convert PDFArray with "+size+" elements to rectangle, but must have exactly 4 elements.";_this=_super.call(this,msg)||this;return _this}return PDFArrayIsNotRectangleError2}(Error);InvalidPDFDateStringError=function(_super){__extends(InvalidPDFDateStringError2,_super);function InvalidPDFDateStringError2(value){var _this=this;var msg='Attempted to convert "'+value+'" to a date, but it does not match the PDF date string format.';_this=_super.call(this,msg)||this;return _this}return InvalidPDFDateStringError2}(Error);InvalidTargetIndexError=function(_super){__extends(InvalidTargetIndexError2,_super);function InvalidTargetIndexError2(targetIndex,Count){var _this=this;var msg="Invalid targetIndex specified: targetIndex="+targetIndex+" must be less than Count="+Count;_this=_super.call(this,msg)||this;return _this}return InvalidTargetIndexError2}(Error);CorruptPageTreeError=function(_super){__extends(CorruptPageTreeError2,_super);function CorruptPageTreeError2(targetIndex,operation2){var _this=this;var msg="Failed to "+operation2+" at targetIndex="+targetIndex+" due to corrupt page tree: It is likely that one or more 'Count' entries are invalid";_this=_super.call(this,msg)||this;return _this}return CorruptPageTreeError2}(Error);IndexOutOfBoundsError=function(_super){__extends(IndexOutOfBoundsError2,_super);function IndexOutOfBoundsError2(index,min,max){var _this=this;var msg="index should be at least "+min+" and at most "+max+", but was actually "+index;_this=_super.call(this,msg)||this;return _this}return IndexOutOfBoundsError2}(Error);InvalidAcroFieldValueError=function(_super){__extends(InvalidAcroFieldValueError2,_super);function InvalidAcroFieldValueError2(){var _this=this;var msg="Attempted to set invalid field value";_this=_super.call(this,msg)||this;return _this}return InvalidAcroFieldValueError2}(Error);MultiSelectValueError=function(_super){__extends(MultiSelectValueError2,_super);function MultiSelectValueError2(){var _this=this;var msg="Attempted to select multiple values for single-select field";_this=_super.call(this,msg)||this;return _this}return MultiSelectValueError2}(Error);MissingDAEntryError=function(_super){__extends(MissingDAEntryError2,_super);function MissingDAEntryError2(fieldName){var _this=this;var msg="No /DA (default appearance) entry found for field: "+fieldName;_this=_super.call(this,msg)||this;return _this}return MissingDAEntryError2}(Error);MissingTfOperatorError=function(_super){__extends(MissingTfOperatorError2,_super);function MissingTfOperatorError2(fieldName){var _this=this;var msg="No Tf operator found for DA of field: "+fieldName;_this=_super.call(this,msg)||this;return _this}return MissingTfOperatorError2}(Error);NumberParsingError=function(_super){__extends(NumberParsingError2,_super);function NumberParsingError2(pos,value){var _this=this;var msg="Failed to parse number "+("(line:"+pos.line+" col:"+pos.column+" offset="+pos.offset+'): "'+value+'"');_this=_super.call(this,msg)||this;return _this}return NumberParsingError2}(Error);PDFParsingError=function(_super){__extends(PDFParsingError2,_super);function PDFParsingError2(pos,details){var _this=this;var msg="Failed to parse PDF document "+("(line:"+pos.line+" col:"+pos.column+" offset="+pos.offset+"): "+details);_this=_super.call(this,msg)||this;return _this}return PDFParsingError2}(Error);NextByteAssertionError=function(_super){__extends(NextByteAssertionError2,_super);function NextByteAssertionError2(pos,expectedByte,actualByte){var _this=this;var msg="Expected next byte to be "+expectedByte+" but it was actually "+actualByte;_this=_super.call(this,pos,msg)||this;return _this}return NextByteAssertionError2}(PDFParsingError);PDFObjectParsingError=function(_super){__extends(PDFObjectParsingError2,_super);function PDFObjectParsingError2(pos,byte){var _this=this;var msg="Failed to parse PDF object starting with the following byte: "+byte;_this=_super.call(this,pos,msg)||this;return _this}return PDFObjectParsingError2}(PDFParsingError);PDFInvalidObjectParsingError=function(_super){__extends(PDFInvalidObjectParsingError2,_super);function PDFInvalidObjectParsingError2(pos){var _this=this;var msg="Failed to parse invalid PDF object";_this=_super.call(this,pos,msg)||this;return _this}return PDFInvalidObjectParsingError2}(PDFParsingError);PDFStreamParsingError=function(_super){__extends(PDFStreamParsingError2,_super);function PDFStreamParsingError2(pos){var _this=this;var msg="Failed to parse PDF stream";_this=_super.call(this,pos,msg)||this;return _this}return PDFStreamParsingError2}(PDFParsingError);UnbalancedParenthesisError=function(_super){__extends(UnbalancedParenthesisError2,_super);function UnbalancedParenthesisError2(pos){var _this=this;var msg="Failed to parse PDF literal string due to unbalanced parenthesis";_this=_super.call(this,pos,msg)||this;return _this}return UnbalancedParenthesisError2}(PDFParsingError);StalledParserError=function(_super){__extends(StalledParserError2,_super);function StalledParserError2(pos){var _this=this;var msg="Parser stalled";_this=_super.call(this,pos,msg)||this;return _this}return StalledParserError2}(PDFParsingError);MissingPDFHeaderError=function(_super){__extends(MissingPDFHeaderError2,_super);function MissingPDFHeaderError2(pos){var _this=this;var msg="No PDF header found";_this=_super.call(this,pos,msg)||this;return _this}return MissingPDFHeaderError2}(PDFParsingError);MissingKeywordError=function(_super){__extends(MissingKeywordError2,_super);function MissingKeywordError2(pos,keyword){var _this=this;var msg="Did not find expected keyword '"+arrayAsString(keyword)+"'";_this=_super.call(this,pos,msg)||this;return _this}return MissingKeywordError2}(PDFParsingError)});var CharCodes,CharCodes_default;var init_CharCodes=__esm(()=>{(function(CharCodes2){CharCodes2[CharCodes2["Null"]=0]="Null";CharCodes2[CharCodes2["Backspace"]=8]="Backspace";CharCodes2[CharCodes2["Tab"]=9]="Tab";CharCodes2[CharCodes2["Newline"]=10]="Newline";CharCodes2[CharCodes2["FormFeed"]=12]="FormFeed";CharCodes2[CharCodes2["CarriageReturn"]=13]="CarriageReturn";CharCodes2[CharCodes2["Space"]=32]="Space";CharCodes2[CharCodes2["ExclamationPoint"]=33]="ExclamationPoint";CharCodes2[CharCodes2["Hash"]=35]="Hash";CharCodes2[CharCodes2["Percent"]=37]="Percent";CharCodes2[CharCodes2["LeftParen"]=40]="LeftParen";CharCodes2[CharCodes2["RightParen"]=41]="RightParen";CharCodes2[CharCodes2["Plus"]=43]="Plus";CharCodes2[CharCodes2["Minus"]=45]="Minus";CharCodes2[CharCodes2["Dash"]=45]="Dash";CharCodes2[CharCodes2["Period"]=46]="Period";CharCodes2[CharCodes2["ForwardSlash"]=47]="ForwardSlash";CharCodes2[CharCodes2["Zero"]=48]="Zero";CharCodes2[CharCodes2["One"]=49]="One";CharCodes2[CharCodes2["Two"]=50]="Two";CharCodes2[CharCodes2["Three"]=51]="Three";CharCodes2[CharCodes2["Four"]=52]="Four";CharCodes2[CharCodes2["Five"]=53]="Five";CharCodes2[CharCodes2["Six"]=54]="Six";CharCodes2[CharCodes2["Seven"]=55]="Seven";CharCodes2[CharCodes2["Eight"]=56]="Eight";CharCodes2[CharCodes2["Nine"]=57]="Nine";CharCodes2[CharCodes2["LessThan"]=60]="LessThan";CharCodes2[CharCodes2["GreaterThan"]=62]="GreaterThan";CharCodes2[CharCodes2["A"]=65]="A";CharCodes2[CharCodes2["D"]=68]="D";CharCodes2[CharCodes2["E"]=69]="E";CharCodes2[CharCodes2["F"]=70]="F";CharCodes2[CharCodes2["O"]=79]="O";CharCodes2[CharCodes2["P"]=80]="P";CharCodes2[CharCodes2["R"]=82]="R";CharCodes2[CharCodes2["LeftSquareBracket"]=91]="LeftSquareBracket";CharCodes2[CharCodes2["BackSlash"]=92]="BackSlash";CharCodes2[CharCodes2["RightSquareBracket"]=93]="RightSquareBracket";CharCodes2[CharCodes2["a"]=97]="a";CharCodes2[CharCodes2["b"]=98]="b";CharCodes2[CharCodes2["d"]=100]="d";CharCodes2[CharCodes2["e"]=101]="e";CharCodes2[CharCodes2["f"]=102]="f";CharCodes2[CharCodes2["i"]=105]="i";CharCodes2[CharCodes2["j"]=106]="j";CharCodes2[CharCodes2["l"]=108]="l";CharCodes2[CharCodes2["m"]=109]="m";CharCodes2[CharCodes2["n"]=110]="n";CharCodes2[CharCodes2["o"]=111]="o";CharCodes2[CharCodes2["r"]=114]="r";CharCodes2[CharCodes2["s"]=115]="s";CharCodes2[CharCodes2["t"]=116]="t";CharCodes2[CharCodes2["u"]=117]="u";CharCodes2[CharCodes2["x"]=120]="x";CharCodes2[CharCodes2["LeftCurly"]=123]="LeftCurly";CharCodes2[CharCodes2["RightCurly"]=125]="RightCurly";CharCodes2[CharCodes2["Tilde"]=126]="Tilde"})(CharCodes||(CharCodes={}));CharCodes_default=CharCodes});var PDFHeader,PDFHeader_default;var init_PDFHeader=__esm(()=>{init_CharCodes();init_utils2();PDFHeader=function(){function PDFHeader2(major,minor){this.major=String(major);this.minor=String(minor)}PDFHeader2.prototype.toString=function(){var bc=charFromCode(129);return"%PDF-"+this.major+"."+this.minor+`
|
|
38
|
-
%`+bc+bc+bc+bc};PDFHeader2.prototype.sizeInBytes=function(){return 12+this.major.length+this.minor.length};PDFHeader2.prototype.copyBytesInto=function(buffer,offset){var initialOffset=offset;buffer[offset++]=CharCodes_default.Percent;buffer[offset++]=CharCodes_default.P;buffer[offset++]=CharCodes_default.D;buffer[offset++]=CharCodes_default.F;buffer[offset++]=CharCodes_default.Dash;offset+=copyStringIntoBuffer(this.major,buffer,offset);buffer[offset++]=CharCodes_default.Period;offset+=copyStringIntoBuffer(this.minor,buffer,offset);buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.Percent;buffer[offset++]=129;buffer[offset++]=129;buffer[offset++]=129;buffer[offset++]=129;return offset-initialOffset};PDFHeader2.forVersion=function(major,minor){return new PDFHeader2(major,minor)};return PDFHeader2}();PDFHeader_default=PDFHeader});var PDFObject,PDFObject_default;var init_PDFObject=__esm(()=>{init_errors2();PDFObject=function(){function PDFObject2(){}PDFObject2.prototype.clone=function(_context){throw new MethodNotImplementedError(this.constructor.name,"clone")};PDFObject2.prototype.toString=function(){throw new MethodNotImplementedError(this.constructor.name,"toString")};PDFObject2.prototype.sizeInBytes=function(){throw new MethodNotImplementedError(this.constructor.name,"sizeInBytes")};PDFObject2.prototype.copyBytesInto=function(_buffer,_offset){throw new MethodNotImplementedError(this.constructor.name,"copyBytesInto")};return PDFObject2}();PDFObject_default=PDFObject});var PDFNumber,PDFNumber_default;var init_PDFNumber=__esm(()=>{init_tslib_es62();init_utils2();init_PDFObject();PDFNumber=function(_super){__extends(PDFNumber2,_super);function PDFNumber2(value){var _this=_super.call(this)||this;_this.numberValue=value;_this.stringValue=numberToString(value);return _this}PDFNumber2.prototype.asNumber=function(){return this.numberValue};PDFNumber2.prototype.value=function(){return this.numberValue};PDFNumber2.prototype.clone=function(){return PDFNumber2.of(this.numberValue)};PDFNumber2.prototype.toString=function(){return this.stringValue};PDFNumber2.prototype.sizeInBytes=function(){return this.stringValue.length};PDFNumber2.prototype.copyBytesInto=function(buffer,offset){offset+=copyStringIntoBuffer(this.stringValue,buffer,offset);return this.stringValue.length};PDFNumber2.of=function(value){return new PDFNumber2(value)};return PDFNumber2}(PDFObject_default);PDFNumber_default=PDFNumber});var PDFArray,PDFArray_default;var init_PDFArray=__esm(()=>{init_tslib_es62();init_PDFNumber();init_PDFObject();init_CharCodes();init_errors2();PDFArray=function(_super){__extends(PDFArray2,_super);function PDFArray2(context2){var _this=_super.call(this)||this;_this.array=[];_this.context=context2;return _this}PDFArray2.prototype.size=function(){return this.array.length};PDFArray2.prototype.push=function(object5){this.array.push(object5)};PDFArray2.prototype.insert=function(index,object5){this.array.splice(index,0,object5)};PDFArray2.prototype.indexOf=function(object5){var index=this.array.indexOf(object5);return index===-1?undefined:index};PDFArray2.prototype.remove=function(index){this.array.splice(index,1)};PDFArray2.prototype.set=function(idx2,object5){this.array[idx2]=object5};PDFArray2.prototype.get=function(index){return this.array[index]};PDFArray2.prototype.lookupMaybe=function(index){var _a;var types2=[];for(var _i=1;_i<arguments.length;_i++){types2[_i-1]=arguments[_i]}return(_a=this.context).lookupMaybe.apply(_a,__spreadArrays([this.get(index)],types2))};PDFArray2.prototype.lookup=function(index){var _a;var types2=[];for(var _i=1;_i<arguments.length;_i++){types2[_i-1]=arguments[_i]}return(_a=this.context).lookup.apply(_a,__spreadArrays([this.get(index)],types2))};PDFArray2.prototype.asRectangle=function(){if(this.size()!==4)throw new PDFArrayIsNotRectangleError(this.size());var lowerLeftX=this.lookup(0,PDFNumber_default).asNumber();var lowerLeftY=this.lookup(1,PDFNumber_default).asNumber();var upperRightX=this.lookup(2,PDFNumber_default).asNumber();var upperRightY=this.lookup(3,PDFNumber_default).asNumber();var x=lowerLeftX;var y=lowerLeftY;var width=upperRightX-lowerLeftX;var height=upperRightY-lowerLeftY;return{x,y,width,height}};PDFArray2.prototype.asArray=function(){return this.array.slice()};PDFArray2.prototype.clone=function(context2){var clone=PDFArray2.withContext(context2||this.context);for(var idx2=0,len=this.size();idx2<len;idx2++){clone.push(this.array[idx2])}return clone};PDFArray2.prototype.toString=function(){var arrayString="[ ";for(var idx2=0,len=this.size();idx2<len;idx2++){arrayString+=this.get(idx2).toString();arrayString+=" "}arrayString+="]";return arrayString};PDFArray2.prototype.sizeInBytes=function(){var size=3;for(var idx2=0,len=this.size();idx2<len;idx2++){size+=this.get(idx2).sizeInBytes()+1}return size};PDFArray2.prototype.copyBytesInto=function(buffer,offset){var initialOffset=offset;buffer[offset++]=CharCodes_default.LeftSquareBracket;buffer[offset++]=CharCodes_default.Space;for(var idx2=0,len=this.size();idx2<len;idx2++){offset+=this.get(idx2).copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Space}buffer[offset++]=CharCodes_default.RightSquareBracket;return offset-initialOffset};PDFArray2.prototype.scalePDFNumbers=function(x,y){for(var idx2=0,len=this.size();idx2<len;idx2++){var el=this.lookup(idx2);if(el instanceof PDFNumber_default){var factor=idx2%2===0?x:y;this.set(idx2,PDFNumber_default.of(el.asNumber()*factor))}}};PDFArray2.withContext=function(context2){return new PDFArray2(context2)};return PDFArray2}(PDFObject_default);PDFArray_default=PDFArray});var ENFORCER,PDFBool,PDFBool_default;var init_PDFBool=__esm(()=>{init_tslib_es62();init_errors2();init_PDFObject();init_CharCodes();ENFORCER={};PDFBool=function(_super){__extends(PDFBool2,_super);function PDFBool2(enforcer,value){var _this=this;if(enforcer!==ENFORCER)throw new PrivateConstructorError("PDFBool");_this=_super.call(this)||this;_this.value=value;return _this}PDFBool2.prototype.asBoolean=function(){return this.value};PDFBool2.prototype.clone=function(){return this};PDFBool2.prototype.toString=function(){return String(this.value)};PDFBool2.prototype.sizeInBytes=function(){return this.value?4:5};PDFBool2.prototype.copyBytesInto=function(buffer,offset){if(this.value){buffer[offset++]=CharCodes_default.t;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.u;buffer[offset++]=CharCodes_default.e;return 4}else{buffer[offset++]=CharCodes_default.f;buffer[offset++]=CharCodes_default.a;buffer[offset++]=CharCodes_default.l;buffer[offset++]=CharCodes_default.s;buffer[offset++]=CharCodes_default.e;return 5}};PDFBool2.True=new PDFBool2(ENFORCER,true);PDFBool2.False=new PDFBool2(ENFORCER,false);return PDFBool2}(PDFObject_default);PDFBool_default=PDFBool});var IsDelimiter;var init_Delimiters=__esm(()=>{init_CharCodes();IsDelimiter=new Uint8Array(256);IsDelimiter[CharCodes_default.LeftParen]=1;IsDelimiter[CharCodes_default.RightParen]=1;IsDelimiter[CharCodes_default.LessThan]=1;IsDelimiter[CharCodes_default.GreaterThan]=1;IsDelimiter[CharCodes_default.LeftSquareBracket]=1;IsDelimiter[CharCodes_default.RightSquareBracket]=1;IsDelimiter[CharCodes_default.LeftCurly]=1;IsDelimiter[CharCodes_default.RightCurly]=1;IsDelimiter[CharCodes_default.ForwardSlash]=1;IsDelimiter[CharCodes_default.Percent]=1});var IsWhitespace;var init_Whitespace=__esm(()=>{init_CharCodes();IsWhitespace=new Uint8Array(256);IsWhitespace[CharCodes_default.Null]=1;IsWhitespace[CharCodes_default.Tab]=1;IsWhitespace[CharCodes_default.Newline]=1;IsWhitespace[CharCodes_default.FormFeed]=1;IsWhitespace[CharCodes_default.CarriageReturn]=1;IsWhitespace[CharCodes_default.Space]=1});var IsIrregular,idx2,len;var init_Irregular=__esm(()=>{init_CharCodes();init_Delimiters();init_Whitespace();IsIrregular=new Uint8Array(256);for(idx2=0,len=256;idx2<len;idx2++){IsIrregular[idx2]=IsWhitespace[idx2]||IsDelimiter[idx2]?1:0}IsIrregular[CharCodes_default.Hash]=1});var decodeName=function(name2){return name2.replace(/#([\dABCDEF]{2})/g,function(_,hex){return charFromHexCode(hex)})},isRegularChar=function(charCode){return charCode>=CharCodes_default.ExclamationPoint&&charCode<=CharCodes_default.Tilde&&!IsIrregular[charCode]},ENFORCER2,pool,PDFName,PDFName_default;var init_PDFName=__esm(()=>{init_tslib_es62();init_errors2();init_PDFObject();init_CharCodes();init_Irregular();init_utils2();ENFORCER2={};pool=new Map;PDFName=function(_super){__extends(PDFName2,_super);function PDFName2(enforcer,name2){var _this=this;if(enforcer!==ENFORCER2)throw new PrivateConstructorError("PDFName");_this=_super.call(this)||this;var encodedName="/";for(var idx3=0,len2=name2.length;idx3<len2;idx3++){var character=name2[idx3];var code=toCharCode(character);encodedName+=isRegularChar(code)?character:"#"+toHexString(code)}_this.encodedName=encodedName;return _this}PDFName2.prototype.asBytes=function(){var bytes=[];var hex="";var escaped=false;var pushByte=function(byte2){if(byte2!==undefined)bytes.push(byte2);escaped=false};for(var idx3=1,len2=this.encodedName.length;idx3<len2;idx3++){var char=this.encodedName[idx3];var byte=toCharCode(char);var nextChar=this.encodedName[idx3+1];if(!escaped){if(byte===CharCodes_default.Hash)escaped=true;else pushByte(byte)}else{if(byte>=CharCodes_default.Zero&&byte<=CharCodes_default.Nine||byte>=CharCodes_default.a&&byte<=CharCodes_default.f||byte>=CharCodes_default.A&&byte<=CharCodes_default.F){hex+=char;if(hex.length===2||!(nextChar>="0"&&nextChar<="9"||nextChar>="a"&&nextChar<="f"||nextChar>="A"&&nextChar<="F")){pushByte(parseInt(hex,16));hex=""}}else{pushByte(byte)}}}return new Uint8Array(bytes)};PDFName2.prototype.decodeText=function(){var bytes=this.asBytes();return String.fromCharCode.apply(String,Array.from(bytes))};PDFName2.prototype.asString=function(){return this.encodedName};PDFName2.prototype.value=function(){return this.encodedName};PDFName2.prototype.clone=function(){return this};PDFName2.prototype.toString=function(){return this.encodedName};PDFName2.prototype.sizeInBytes=function(){return this.encodedName.length};PDFName2.prototype.copyBytesInto=function(buffer,offset){offset+=copyStringIntoBuffer(this.encodedName,buffer,offset);return this.encodedName.length};PDFName2.of=function(name2){var decodedValue=decodeName(name2);var instance=pool.get(decodedValue);if(!instance){instance=new PDFName2(ENFORCER2,decodedValue);pool.set(decodedValue,instance)}return instance};PDFName2.Length=PDFName2.of("Length");PDFName2.FlateDecode=PDFName2.of("FlateDecode");PDFName2.Resources=PDFName2.of("Resources");PDFName2.Font=PDFName2.of("Font");PDFName2.XObject=PDFName2.of("XObject");PDFName2.ExtGState=PDFName2.of("ExtGState");PDFName2.Contents=PDFName2.of("Contents");PDFName2.Type=PDFName2.of("Type");PDFName2.Parent=PDFName2.of("Parent");PDFName2.MediaBox=PDFName2.of("MediaBox");PDFName2.Page=PDFName2.of("Page");PDFName2.Annots=PDFName2.of("Annots");PDFName2.TrimBox=PDFName2.of("TrimBox");PDFName2.ArtBox=PDFName2.of("ArtBox");PDFName2.BleedBox=PDFName2.of("BleedBox");PDFName2.CropBox=PDFName2.of("CropBox");PDFName2.Rotate=PDFName2.of("Rotate");PDFName2.Title=PDFName2.of("Title");PDFName2.Author=PDFName2.of("Author");PDFName2.Subject=PDFName2.of("Subject");PDFName2.Creator=PDFName2.of("Creator");PDFName2.Keywords=PDFName2.of("Keywords");PDFName2.Producer=PDFName2.of("Producer");PDFName2.CreationDate=PDFName2.of("CreationDate");PDFName2.ModDate=PDFName2.of("ModDate");return PDFName2}(PDFObject_default);PDFName_default=PDFName});var PDFNull,PDFNull_default;var init_PDFNull=__esm(()=>{init_tslib_es62();init_PDFObject();init_CharCodes();PDFNull=function(_super){__extends(PDFNull2,_super);function PDFNull2(){return _super!==null&&_super.apply(this,arguments)||this}PDFNull2.prototype.asNull=function(){return null};PDFNull2.prototype.clone=function(){return this};PDFNull2.prototype.toString=function(){return"null"};PDFNull2.prototype.sizeInBytes=function(){return 4};PDFNull2.prototype.copyBytesInto=function(buffer,offset){buffer[offset++]=CharCodes_default.n;buffer[offset++]=CharCodes_default.u;buffer[offset++]=CharCodes_default.l;buffer[offset++]=CharCodes_default.l;return 4};return PDFNull2}(PDFObject_default);PDFNull_default=new PDFNull});var PDFDict,PDFDict_default;var init_PDFDict=__esm(()=>{init_tslib_es62();init_PDFName();init_PDFNull();init_PDFObject();init_CharCodes();PDFDict=function(_super){__extends(PDFDict2,_super);function PDFDict2(map,context2){var _this=_super.call(this)||this;_this.dict=map;_this.context=context2;return _this}PDFDict2.prototype.keys=function(){return Array.from(this.dict.keys())};PDFDict2.prototype.values=function(){return Array.from(this.dict.values())};PDFDict2.prototype.entries=function(){return Array.from(this.dict.entries())};PDFDict2.prototype.set=function(key,value){this.dict.set(key,value)};PDFDict2.prototype.get=function(key,preservePDFNull){if(preservePDFNull===undefined){preservePDFNull=false}var value=this.dict.get(key);if(value===PDFNull_default&&!preservePDFNull)return;return value};PDFDict2.prototype.has=function(key){var value=this.dict.get(key);return value!==undefined&&value!==PDFNull_default};PDFDict2.prototype.lookupMaybe=function(key){var _a;var types2=[];for(var _i=1;_i<arguments.length;_i++){types2[_i-1]=arguments[_i]}var preservePDFNull=types2.includes(PDFNull_default);var value=(_a=this.context).lookupMaybe.apply(_a,__spreadArrays([this.get(key,preservePDFNull)],types2));if(value===PDFNull_default&&!preservePDFNull)return;return value};PDFDict2.prototype.lookup=function(key){var _a;var types2=[];for(var _i=1;_i<arguments.length;_i++){types2[_i-1]=arguments[_i]}var preservePDFNull=types2.includes(PDFNull_default);var value=(_a=this.context).lookup.apply(_a,__spreadArrays([this.get(key,preservePDFNull)],types2));if(value===PDFNull_default&&!preservePDFNull)return;return value};PDFDict2.prototype.delete=function(key){return this.dict.delete(key)};PDFDict2.prototype.asMap=function(){return new Map(this.dict)};PDFDict2.prototype.uniqueKey=function(tag){if(tag===undefined){tag=""}var existingKeys=this.keys();var key=PDFName_default.of(this.context.addRandomSuffix(tag,10));while(existingKeys.includes(key)){key=PDFName_default.of(this.context.addRandomSuffix(tag,10))}return key};PDFDict2.prototype.clone=function(context2){var clone=PDFDict2.withContext(context2||this.context);var entries=this.entries();for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],key=_a[0],value=_a[1];clone.set(key,value)}return clone};PDFDict2.prototype.toString=function(){var dictString=`<<
|
|
39
|
-
`;var entries=this.entries();for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],key=_a[0],value=_a[1];dictString+=key.toString()+" "+value.toString()+`
|
|
40
|
-
`}dictString+=">>";return dictString};PDFDict2.prototype.sizeInBytes=function(){var size=5;var entries=this.entries();for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],key=_a[0],value=_a[1];size+=key.sizeInBytes()+value.sizeInBytes()+2}return size};PDFDict2.prototype.copyBytesInto=function(buffer,offset){var initialOffset=offset;buffer[offset++]=CharCodes_default.LessThan;buffer[offset++]=CharCodes_default.LessThan;buffer[offset++]=CharCodes_default.Newline;var entries=this.entries();for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],key=_a[0],value=_a[1];offset+=key.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Space;offset+=value.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline}buffer[offset++]=CharCodes_default.GreaterThan;buffer[offset++]=CharCodes_default.GreaterThan;return offset-initialOffset};PDFDict2.withContext=function(context2){return new PDFDict2(new Map,context2)};PDFDict2.fromMapWithContext=function(map,context2){return new PDFDict2(map,context2)};return PDFDict2}(PDFObject_default);PDFDict_default=PDFDict});var PDFStream,PDFStream_default;var init_PDFStream=__esm(()=>{init_tslib_es62();init_errors2();init_PDFName();init_PDFNumber();init_PDFObject();init_CharCodes();PDFStream=function(_super){__extends(PDFStream2,_super);function PDFStream2(dict){var _this=_super.call(this)||this;_this.dict=dict;return _this}PDFStream2.prototype.clone=function(_context){throw new MethodNotImplementedError(this.constructor.name,"clone")};PDFStream2.prototype.getContentsString=function(){throw new MethodNotImplementedError(this.constructor.name,"getContentsString")};PDFStream2.prototype.getContents=function(){throw new MethodNotImplementedError(this.constructor.name,"getContents")};PDFStream2.prototype.getContentsSize=function(){throw new MethodNotImplementedError(this.constructor.name,"getContentsSize")};PDFStream2.prototype.updateDict=function(){var contentsSize=this.getContentsSize();this.dict.set(PDFName_default.Length,PDFNumber_default.of(contentsSize))};PDFStream2.prototype.sizeInBytes=function(){this.updateDict();return this.dict.sizeInBytes()+this.getContentsSize()+18};PDFStream2.prototype.toString=function(){this.updateDict();var streamString=this.dict.toString();streamString+=`
|
|
41
|
-
stream
|
|
42
|
-
`;streamString+=this.getContentsString();streamString+=`
|
|
43
|
-
endstream`;return streamString};PDFStream2.prototype.copyBytesInto=function(buffer,offset){this.updateDict();var initialOffset=offset;offset+=this.dict.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.s;buffer[offset++]=CharCodes_default.t;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.e;buffer[offset++]=CharCodes_default.a;buffer[offset++]=CharCodes_default.m;buffer[offset++]=CharCodes_default.Newline;var contents=this.getContents();for(var idx3=0,len2=contents.length;idx3<len2;idx3++){buffer[offset++]=contents[idx3]}buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.e;buffer[offset++]=CharCodes_default.n;buffer[offset++]=CharCodes_default.d;buffer[offset++]=CharCodes_default.s;buffer[offset++]=CharCodes_default.t;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.e;buffer[offset++]=CharCodes_default.a;buffer[offset++]=CharCodes_default.m;return offset-initialOffset};return PDFStream2}(PDFObject_default);PDFStream_default=PDFStream});var PDFRawStream,PDFRawStream_default;var init_PDFRawStream=__esm(()=>{init_tslib_es62();init_PDFStream();init_utils2();PDFRawStream=function(_super){__extends(PDFRawStream2,_super);function PDFRawStream2(dict,contents){var _this=_super.call(this,dict)||this;_this.contents=contents;return _this}PDFRawStream2.prototype.asUint8Array=function(){return this.contents.slice()};PDFRawStream2.prototype.clone=function(context2){return PDFRawStream2.of(this.dict.clone(context2),this.contents.slice())};PDFRawStream2.prototype.getContentsString=function(){return arrayAsString(this.contents)};PDFRawStream2.prototype.getContents=function(){return this.contents};PDFRawStream2.prototype.getContentsSize=function(){return this.contents.length};PDFRawStream2.of=function(dict,contents){return new PDFRawStream2(dict,contents)};return PDFRawStream2}(PDFStream_default);PDFRawStream_default=PDFRawStream});var ENFORCER3,pool2,PDFRef,PDFRef_default;var init_PDFRef=__esm(()=>{init_tslib_es62();init_errors2();init_PDFObject();init_utils2();ENFORCER3={};pool2=new Map;PDFRef=function(_super){__extends(PDFRef2,_super);function PDFRef2(enforcer,objectNumber,generationNumber){var _this=this;if(enforcer!==ENFORCER3)throw new PrivateConstructorError("PDFRef");_this=_super.call(this)||this;_this.objectNumber=objectNumber;_this.generationNumber=generationNumber;_this.tag=objectNumber+" "+generationNumber+" R";return _this}PDFRef2.prototype.clone=function(){return this};PDFRef2.prototype.toString=function(){return this.tag};PDFRef2.prototype.sizeInBytes=function(){return this.tag.length};PDFRef2.prototype.copyBytesInto=function(buffer,offset){offset+=copyStringIntoBuffer(this.tag,buffer,offset);return this.tag.length};PDFRef2.of=function(objectNumber,generationNumber){if(generationNumber===undefined){generationNumber=0}var tag=objectNumber+" "+generationNumber+" R";var instance=pool2.get(tag);if(!instance){instance=new PDFRef2(ENFORCER3,objectNumber,generationNumber);pool2.set(tag,instance)}return instance};return PDFRef2}(PDFObject_default);PDFRef_default=PDFRef});var PDFOperator,PDFOperator_default;var init_PDFOperator=__esm(()=>{init_PDFObject();init_CharCodes();init_utils2();PDFOperator=function(){function PDFOperator2(name2,args){this.name=name2;this.args=args||[]}PDFOperator2.prototype.clone=function(context2){var args=new Array(this.args.length);for(var idx3=0,len2=args.length;idx3<len2;idx3++){var arg=this.args[idx3];args[idx3]=arg instanceof PDFObject_default?arg.clone(context2):arg}return PDFOperator2.of(this.name,args)};PDFOperator2.prototype.toString=function(){var value="";for(var idx3=0,len2=this.args.length;idx3<len2;idx3++){value+=String(this.args[idx3])+" "}value+=this.name;return value};PDFOperator2.prototype.sizeInBytes=function(){var size=0;for(var idx3=0,len2=this.args.length;idx3<len2;idx3++){var arg=this.args[idx3];size+=(arg instanceof PDFObject_default?arg.sizeInBytes():arg.length)+1}size+=this.name.length;return size};PDFOperator2.prototype.copyBytesInto=function(buffer,offset){var initialOffset=offset;for(var idx3=0,len2=this.args.length;idx3<len2;idx3++){var arg=this.args[idx3];if(arg instanceof PDFObject_default){offset+=arg.copyBytesInto(buffer,offset)}else{offset+=copyStringIntoBuffer(arg,buffer,offset)}buffer[offset++]=CharCodes_default.Space}offset+=copyStringIntoBuffer(this.name,buffer,offset);return offset-initialOffset};PDFOperator2.of=function(name2,args){return new PDFOperator2(name2,args)};return PDFOperator2}();PDFOperator_default=PDFOperator});var PDFOperatorNames,PDFOperatorNames_default;var init_PDFOperatorNames=__esm(()=>{(function(PDFOperatorNames2){PDFOperatorNames2["NonStrokingColor"]="sc";PDFOperatorNames2["NonStrokingColorN"]="scn";PDFOperatorNames2["NonStrokingColorRgb"]="rg";PDFOperatorNames2["NonStrokingColorGray"]="g";PDFOperatorNames2["NonStrokingColorCmyk"]="k";PDFOperatorNames2["NonStrokingColorspace"]="cs";PDFOperatorNames2["StrokingColor"]="SC";PDFOperatorNames2["StrokingColorN"]="SCN";PDFOperatorNames2["StrokingColorRgb"]="RG";PDFOperatorNames2["StrokingColorGray"]="G";PDFOperatorNames2["StrokingColorCmyk"]="K";PDFOperatorNames2["StrokingColorspace"]="CS";PDFOperatorNames2["BeginMarkedContentSequence"]="BDC";PDFOperatorNames2["BeginMarkedContent"]="BMC";PDFOperatorNames2["EndMarkedContent"]="EMC";PDFOperatorNames2["MarkedContentPointWithProps"]="DP";PDFOperatorNames2["MarkedContentPoint"]="MP";PDFOperatorNames2["DrawObject"]="Do";PDFOperatorNames2["ConcatTransformationMatrix"]="cm";PDFOperatorNames2["PopGraphicsState"]="Q";PDFOperatorNames2["PushGraphicsState"]="q";PDFOperatorNames2["SetFlatness"]="i";PDFOperatorNames2["SetGraphicsStateParams"]="gs";PDFOperatorNames2["SetLineCapStyle"]="J";PDFOperatorNames2["SetLineDashPattern"]="d";PDFOperatorNames2["SetLineJoinStyle"]="j";PDFOperatorNames2["SetLineMiterLimit"]="M";PDFOperatorNames2["SetLineWidth"]="w";PDFOperatorNames2["SetTextMatrix"]="Tm";PDFOperatorNames2["SetRenderingIntent"]="ri";PDFOperatorNames2["AppendRectangle"]="re";PDFOperatorNames2["BeginInlineImage"]="BI";PDFOperatorNames2["BeginInlineImageData"]="ID";PDFOperatorNames2["EndInlineImage"]="EI";PDFOperatorNames2["ClipEvenOdd"]="W*";PDFOperatorNames2["ClipNonZero"]="W";PDFOperatorNames2["CloseAndStroke"]="s";PDFOperatorNames2["CloseFillEvenOddAndStroke"]="b*";PDFOperatorNames2["CloseFillNonZeroAndStroke"]="b";PDFOperatorNames2["ClosePath"]="h";PDFOperatorNames2["AppendBezierCurve"]="c";PDFOperatorNames2["CurveToReplicateFinalPoint"]="y";PDFOperatorNames2["CurveToReplicateInitialPoint"]="v";PDFOperatorNames2["EndPath"]="n";PDFOperatorNames2["FillEvenOddAndStroke"]="B*";PDFOperatorNames2["FillEvenOdd"]="f*";PDFOperatorNames2["FillNonZeroAndStroke"]="B";PDFOperatorNames2["FillNonZero"]="f";PDFOperatorNames2["LegacyFillNonZero"]="F";PDFOperatorNames2["LineTo"]="l";PDFOperatorNames2["MoveTo"]="m";PDFOperatorNames2["ShadingFill"]="sh";PDFOperatorNames2["StrokePath"]="S";PDFOperatorNames2["BeginText"]="BT";PDFOperatorNames2["EndText"]="ET";PDFOperatorNames2["MoveText"]="Td";PDFOperatorNames2["MoveTextSetLeading"]="TD";PDFOperatorNames2["NextLine"]="T*";PDFOperatorNames2["SetCharacterSpacing"]="Tc";PDFOperatorNames2["SetFontAndSize"]="Tf";PDFOperatorNames2["SetTextHorizontalScaling"]="Tz";PDFOperatorNames2["SetTextLineHeight"]="TL";PDFOperatorNames2["SetTextRenderingMode"]="Tr";PDFOperatorNames2["SetTextRise"]="Ts";PDFOperatorNames2["SetWordSpacing"]="Tw";PDFOperatorNames2["ShowText"]="Tj";PDFOperatorNames2["ShowTextAdjusted"]="TJ";PDFOperatorNames2["ShowTextLine"]="'";PDFOperatorNames2["ShowTextLineAndSpace"]='"';PDFOperatorNames2["Type3D0"]="d0";PDFOperatorNames2["Type3D1"]="d1";PDFOperatorNames2["BeginCompatibilitySection"]="BX";PDFOperatorNames2["EndCompatibilitySection"]="EX"})(PDFOperatorNames||(PDFOperatorNames={}));PDFOperatorNames_default=PDFOperatorNames});var import_pako2,PDFFlateStream,PDFFlateStream_default;var init_PDFFlateStream=__esm(()=>{init_tslib_es62();init_errors2();init_PDFName();init_PDFStream();init_utils2();import_pako2=__toESM(require_pako(),1);PDFFlateStream=function(_super){__extends(PDFFlateStream2,_super);function PDFFlateStream2(dict,encode){var _this=_super.call(this,dict)||this;_this.computeContents=function(){var unencodedContents=_this.getUnencodedContents();return _this.encode?import_pako2.default.deflate(unencodedContents):unencodedContents};_this.encode=encode;if(encode)dict.set(PDFName_default.of("Filter"),PDFName_default.of("FlateDecode"));_this.contentsCache=Cache_default.populatedBy(_this.computeContents);return _this}PDFFlateStream2.prototype.getContents=function(){return this.contentsCache.access()};PDFFlateStream2.prototype.getContentsSize=function(){return this.contentsCache.access().length};PDFFlateStream2.prototype.getUnencodedContents=function(){throw new MethodNotImplementedError(this.constructor.name,"getUnencodedContents")};return PDFFlateStream2}(PDFStream_default);PDFFlateStream_default=PDFFlateStream});var PDFContentStream,PDFContentStream_default;var init_PDFContentStream=__esm(()=>{init_tslib_es62();init_PDFFlateStream();init_CharCodes();PDFContentStream=function(_super){__extends(PDFContentStream2,_super);function PDFContentStream2(dict,operators,encode){if(encode===undefined){encode=true}var _this=_super.call(this,dict,encode)||this;_this.operators=operators;return _this}PDFContentStream2.prototype.push=function(){var _a;var operators=[];for(var _i=0;_i<arguments.length;_i++){operators[_i]=arguments[_i]}(_a=this.operators).push.apply(_a,operators)};PDFContentStream2.prototype.clone=function(context2){var operators=new Array(this.operators.length);for(var idx3=0,len2=this.operators.length;idx3<len2;idx3++){operators[idx3]=this.operators[idx3].clone(context2)}var _a=this,dict=_a.dict,encode=_a.encode;return PDFContentStream2.of(dict.clone(context2),operators,encode)};PDFContentStream2.prototype.getContentsString=function(){var value="";for(var idx3=0,len2=this.operators.length;idx3<len2;idx3++){value+=this.operators[idx3]+`
|
|
44
|
-
`}return value};PDFContentStream2.prototype.getUnencodedContents=function(){var buffer=new Uint8Array(this.getUnencodedContentsSize());var offset=0;for(var idx3=0,len2=this.operators.length;idx3<len2;idx3++){offset+=this.operators[idx3].copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline}return buffer};PDFContentStream2.prototype.getUnencodedContentsSize=function(){var size=0;for(var idx3=0,len2=this.operators.length;idx3<len2;idx3++){size+=this.operators[idx3].sizeInBytes()+1}return size};PDFContentStream2.of=function(dict,operators,encode){if(encode===undefined){encode=true}return new PDFContentStream2(dict,operators,encode)};return PDFContentStream2}(PDFFlateStream_default);PDFContentStream_default=PDFContentStream});var SimpleRNG;var init_rng=__esm(()=>{SimpleRNG=function(){function SimpleRNG2(seed){this.seed=seed}SimpleRNG2.prototype.nextInt=function(){var x=Math.sin(this.seed++)*1e4;return x-Math.floor(x)};SimpleRNG2.withSeed=function(seed){return new SimpleRNG2(seed)};return SimpleRNG2}()});var import_pako3,byAscendingObjectNumber=function(_a,_b){var a=_a[0];var b=_b[0];return a.objectNumber-b.objectNumber},PDFContext,PDFContext_default;var init_PDFContext=__esm(()=>{init_tslib_es62();init_PDFHeader();init_errors2();init_PDFArray();init_PDFBool();init_PDFDict();init_PDFName();init_PDFNull();init_PDFNumber();init_PDFObject();init_PDFRawStream();init_PDFRef();init_PDFOperator();init_PDFOperatorNames();init_PDFContentStream();init_utils2();init_rng();import_pako3=__toESM(require_pako(),1);PDFContext=function(){function PDFContext2(){this.largestObjectNumber=0;this.header=PDFHeader_default.forVersion(1,7);this.trailerInfo={};this.indirectObjects=new Map;this.rng=SimpleRNG.withSeed(1)}PDFContext2.prototype.assign=function(ref,object5){this.indirectObjects.set(ref,object5);if(ref.objectNumber>this.largestObjectNumber){this.largestObjectNumber=ref.objectNumber}};PDFContext2.prototype.nextRef=function(){this.largestObjectNumber+=1;return PDFRef_default.of(this.largestObjectNumber)};PDFContext2.prototype.register=function(object5){var ref=this.nextRef();this.assign(ref,object5);return ref};PDFContext2.prototype.delete=function(ref){return this.indirectObjects.delete(ref)};PDFContext2.prototype.lookupMaybe=function(ref){var types2=[];for(var _i=1;_i<arguments.length;_i++){types2[_i-1]=arguments[_i]}var preservePDFNull=types2.includes(PDFNull_default);var result2=ref instanceof PDFRef_default?this.indirectObjects.get(ref):ref;if(!result2||result2===PDFNull_default&&!preservePDFNull)return;for(var idx3=0,len2=types2.length;idx3<len2;idx3++){var type=types2[idx3];if(type===PDFNull_default){if(result2===PDFNull_default)return result2}else{if(result2 instanceof type)return result2}}throw new UnexpectedObjectTypeError(types2,result2)};PDFContext2.prototype.lookup=function(ref){var types2=[];for(var _i=1;_i<arguments.length;_i++){types2[_i-1]=arguments[_i]}var result2=ref instanceof PDFRef_default?this.indirectObjects.get(ref):ref;if(types2.length===0)return result2;for(var idx3=0,len2=types2.length;idx3<len2;idx3++){var type=types2[idx3];if(type===PDFNull_default){if(result2===PDFNull_default)return result2}else{if(result2 instanceof type)return result2}}throw new UnexpectedObjectTypeError(types2,result2)};PDFContext2.prototype.getObjectRef=function(pdfObject){var entries=Array.from(this.indirectObjects.entries());for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],ref=_a[0],object5=_a[1];if(object5===pdfObject){return ref}}return};PDFContext2.prototype.enumerateIndirectObjects=function(){return Array.from(this.indirectObjects.entries()).sort(byAscendingObjectNumber)};PDFContext2.prototype.obj=function(literal){if(literal instanceof PDFObject_default){return literal}else if(literal===null||literal===undefined){return PDFNull_default}else if(typeof literal==="string"){return PDFName_default.of(literal)}else if(typeof literal==="number"){return PDFNumber_default.of(literal)}else if(typeof literal==="boolean"){return literal?PDFBool_default.True:PDFBool_default.False}else if(Array.isArray(literal)){var array3=PDFArray_default.withContext(this);for(var idx3=0,len2=literal.length;idx3<len2;idx3++){array3.push(this.obj(literal[idx3]))}return array3}else{var dict=PDFDict_default.withContext(this);var keys4=Object.keys(literal);for(var idx3=0,len2=keys4.length;idx3<len2;idx3++){var key=keys4[idx3];var value=literal[key];if(value!==undefined)dict.set(PDFName_default.of(key),this.obj(value))}return dict}};PDFContext2.prototype.stream=function(contents,dict){if(dict===undefined){dict={}}return PDFRawStream_default.of(this.obj(dict),typedArrayFor(contents))};PDFContext2.prototype.flateStream=function(contents,dict){if(dict===undefined){dict={}}return this.stream(import_pako3.default.deflate(typedArrayFor(contents)),__assign(__assign({},dict),{Filter:"FlateDecode"}))};PDFContext2.prototype.contentStream=function(operators,dict){if(dict===undefined){dict={}}return PDFContentStream_default.of(this.obj(dict),operators)};PDFContext2.prototype.formXObject=function(operators,dict){if(dict===undefined){dict={}}return this.contentStream(operators,__assign(__assign({BBox:this.obj([0,0,0,0]),Matrix:this.obj([1,0,0,1,0,0])},dict),{Type:"XObject",Subtype:"Form"}))};PDFContext2.prototype.getPushGraphicsStateContentStream=function(){if(this.pushGraphicsStateContentStreamRef){return this.pushGraphicsStateContentStreamRef}var dict=this.obj({});var op=PDFOperator_default.of(PDFOperatorNames_default.PushGraphicsState);var stream=PDFContentStream_default.of(dict,[op]);this.pushGraphicsStateContentStreamRef=this.register(stream);return this.pushGraphicsStateContentStreamRef};PDFContext2.prototype.getPopGraphicsStateContentStream=function(){if(this.popGraphicsStateContentStreamRef){return this.popGraphicsStateContentStreamRef}var dict=this.obj({});var op=PDFOperator_default.of(PDFOperatorNames_default.PopGraphicsState);var stream=PDFContentStream_default.of(dict,[op]);this.popGraphicsStateContentStreamRef=this.register(stream);return this.popGraphicsStateContentStreamRef};PDFContext2.prototype.addRandomSuffix=function(prefix,suffixLength){if(suffixLength===undefined){suffixLength=4}return prefix+"-"+Math.floor(this.rng.nextInt()*Math.pow(10,suffixLength))};PDFContext2.create=function(){return new PDFContext2};return PDFContext2}();PDFContext_default=PDFContext});var PDFPageLeaf,PDFPageLeaf_default;var init_PDFPageLeaf=__esm(()=>{init_tslib_es62();init_PDFArray();init_PDFDict();init_PDFName();init_PDFNumber();init_PDFStream();PDFPageLeaf=function(_super){__extends(PDFPageLeaf2,_super);function PDFPageLeaf2(map,context2,autoNormalizeCTM){if(autoNormalizeCTM===undefined){autoNormalizeCTM=true}var _this=_super.call(this,map,context2)||this;_this.normalized=false;_this.autoNormalizeCTM=autoNormalizeCTM;return _this}PDFPageLeaf2.prototype.clone=function(context2){var clone=PDFPageLeaf2.fromMapWithContext(new Map,context2||this.context,this.autoNormalizeCTM);var entries=this.entries();for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],key=_a[0],value=_a[1];clone.set(key,value)}return clone};PDFPageLeaf2.prototype.Parent=function(){return this.lookupMaybe(PDFName_default.Parent,PDFDict_default)};PDFPageLeaf2.prototype.Contents=function(){return this.lookup(PDFName_default.of("Contents"))};PDFPageLeaf2.prototype.Annots=function(){return this.lookupMaybe(PDFName_default.Annots,PDFArray_default)};PDFPageLeaf2.prototype.BleedBox=function(){return this.lookupMaybe(PDFName_default.BleedBox,PDFArray_default)};PDFPageLeaf2.prototype.TrimBox=function(){return this.lookupMaybe(PDFName_default.TrimBox,PDFArray_default)};PDFPageLeaf2.prototype.ArtBox=function(){return this.lookupMaybe(PDFName_default.ArtBox,PDFArray_default)};PDFPageLeaf2.prototype.Resources=function(){var dictOrRef=this.getInheritableAttribute(PDFName_default.Resources);return this.context.lookupMaybe(dictOrRef,PDFDict_default)};PDFPageLeaf2.prototype.MediaBox=function(){var arrayOrRef=this.getInheritableAttribute(PDFName_default.MediaBox);return this.context.lookup(arrayOrRef,PDFArray_default)};PDFPageLeaf2.prototype.CropBox=function(){var arrayOrRef=this.getInheritableAttribute(PDFName_default.CropBox);return this.context.lookupMaybe(arrayOrRef,PDFArray_default)};PDFPageLeaf2.prototype.Rotate=function(){var numberOrRef=this.getInheritableAttribute(PDFName_default.Rotate);return this.context.lookupMaybe(numberOrRef,PDFNumber_default)};PDFPageLeaf2.prototype.getInheritableAttribute=function(name2){var attribute;this.ascend(function(node){if(!attribute)attribute=node.get(name2)});return attribute};PDFPageLeaf2.prototype.setParent=function(parentRef){this.set(PDFName_default.Parent,parentRef)};PDFPageLeaf2.prototype.addContentStream=function(contentStreamRef){var Contents=this.normalizedEntries().Contents||this.context.obj([]);this.set(PDFName_default.Contents,Contents);Contents.push(contentStreamRef)};PDFPageLeaf2.prototype.wrapContentStreams=function(startStream,endStream){var Contents=this.Contents();if(Contents instanceof PDFArray_default){Contents.insert(0,startStream);Contents.push(endStream);return true}return false};PDFPageLeaf2.prototype.addAnnot=function(annotRef){var Annots=this.normalizedEntries().Annots;Annots.push(annotRef)};PDFPageLeaf2.prototype.removeAnnot=function(annotRef){var Annots=this.normalizedEntries().Annots;var index=Annots.indexOf(annotRef);if(index!==undefined){Annots.remove(index)}};PDFPageLeaf2.prototype.setFontDictionary=function(name2,fontDictRef){var Font3=this.normalizedEntries().Font;Font3.set(name2,fontDictRef)};PDFPageLeaf2.prototype.newFontDictionaryKey=function(tag){var Font3=this.normalizedEntries().Font;return Font3.uniqueKey(tag)};PDFPageLeaf2.prototype.newFontDictionary=function(tag,fontDictRef){var key=this.newFontDictionaryKey(tag);this.setFontDictionary(key,fontDictRef);return key};PDFPageLeaf2.prototype.setXObject=function(name2,xObjectRef){var XObject=this.normalizedEntries().XObject;XObject.set(name2,xObjectRef)};PDFPageLeaf2.prototype.newXObjectKey=function(tag){var XObject=this.normalizedEntries().XObject;return XObject.uniqueKey(tag)};PDFPageLeaf2.prototype.newXObject=function(tag,xObjectRef){var key=this.newXObjectKey(tag);this.setXObject(key,xObjectRef);return key};PDFPageLeaf2.prototype.setExtGState=function(name2,extGStateRef){var ExtGState=this.normalizedEntries().ExtGState;ExtGState.set(name2,extGStateRef)};PDFPageLeaf2.prototype.newExtGStateKey=function(tag){var ExtGState=this.normalizedEntries().ExtGState;return ExtGState.uniqueKey(tag)};PDFPageLeaf2.prototype.newExtGState=function(tag,extGStateRef){var key=this.newExtGStateKey(tag);this.setExtGState(key,extGStateRef);return key};PDFPageLeaf2.prototype.ascend=function(visitor){visitor(this);var Parent=this.Parent();if(Parent)Parent.ascend(visitor)};PDFPageLeaf2.prototype.normalize=function(){if(this.normalized)return;var context2=this.context;var contentsRef=this.get(PDFName_default.Contents);var contents=this.context.lookup(contentsRef);if(contents instanceof PDFStream_default){this.set(PDFName_default.Contents,context2.obj([contentsRef]))}if(this.autoNormalizeCTM){this.wrapContentStreams(this.context.getPushGraphicsStateContentStream(),this.context.getPopGraphicsStateContentStream())}var dictOrRef=this.getInheritableAttribute(PDFName_default.Resources);var Resources=context2.lookupMaybe(dictOrRef,PDFDict_default)||context2.obj({});this.set(PDFName_default.Resources,Resources);var Font3=Resources.lookupMaybe(PDFName_default.Font,PDFDict_default)||context2.obj({});Resources.set(PDFName_default.Font,Font3);var XObject=Resources.lookupMaybe(PDFName_default.XObject,PDFDict_default)||context2.obj({});Resources.set(PDFName_default.XObject,XObject);var ExtGState=Resources.lookupMaybe(PDFName_default.ExtGState,PDFDict_default)||context2.obj({});Resources.set(PDFName_default.ExtGState,ExtGState);var Annots=this.Annots()||context2.obj([]);this.set(PDFName_default.Annots,Annots);this.normalized=true};PDFPageLeaf2.prototype.normalizedEntries=function(){this.normalize();var Annots=this.Annots();var Resources=this.Resources();var Contents=this.Contents();return{Annots,Resources,Contents,Font:Resources.lookup(PDFName_default.Font,PDFDict_default),XObject:Resources.lookup(PDFName_default.XObject,PDFDict_default),ExtGState:Resources.lookup(PDFName_default.ExtGState,PDFDict_default)}};PDFPageLeaf2.InheritableEntries=["Resources","MediaBox","CropBox","Rotate"];PDFPageLeaf2.withContextAndParent=function(context2,parent){var dict=new Map;dict.set(PDFName_default.Type,PDFName_default.Page);dict.set(PDFName_default.Parent,parent);dict.set(PDFName_default.Resources,context2.obj({}));dict.set(PDFName_default.MediaBox,context2.obj([0,0,612,792]));return new PDFPageLeaf2(dict,context2,false)};PDFPageLeaf2.fromMapWithContext=function(map,context2,autoNormalizeCTM){if(autoNormalizeCTM===undefined){autoNormalizeCTM=true}return new PDFPageLeaf2(map,context2,autoNormalizeCTM)};return PDFPageLeaf2}(PDFDict_default);PDFPageLeaf_default=PDFPageLeaf});var PDFObjectCopier,PDFObjectCopier_default;var init_PDFObjectCopier=__esm(()=>{init_PDFArray();init_PDFDict();init_PDFName();init_PDFRef();init_PDFStream();init_PDFPageLeaf();PDFObjectCopier=function(){function PDFObjectCopier2(src,dest){var _this=this;this.traversedObjects=new Map;this.copy=function(object5){return object5 instanceof PDFPageLeaf_default?_this.copyPDFPage(object5):object5 instanceof PDFDict_default?_this.copyPDFDict(object5):object5 instanceof PDFArray_default?_this.copyPDFArray(object5):object5 instanceof PDFStream_default?_this.copyPDFStream(object5):object5 instanceof PDFRef_default?_this.copyPDFIndirectObject(object5):object5.clone()};this.copyPDFPage=function(originalPage){var clonedPage=originalPage.clone();var InheritableEntries=PDFPageLeaf_default.InheritableEntries;for(var idx3=0,len2=InheritableEntries.length;idx3<len2;idx3++){var key=PDFName_default.of(InheritableEntries[idx3]);var value=clonedPage.getInheritableAttribute(key);if(!clonedPage.get(key)&&value)clonedPage.set(key,value)}clonedPage.delete(PDFName_default.of("Parent"));return _this.copyPDFDict(clonedPage)};this.copyPDFDict=function(originalDict){if(_this.traversedObjects.has(originalDict)){return _this.traversedObjects.get(originalDict)}var clonedDict=originalDict.clone(_this.dest);_this.traversedObjects.set(originalDict,clonedDict);var entries=originalDict.entries();for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],key=_a[0],value=_a[1];clonedDict.set(key,_this.copy(value))}return clonedDict};this.copyPDFArray=function(originalArray){if(_this.traversedObjects.has(originalArray)){return _this.traversedObjects.get(originalArray)}var clonedArray=originalArray.clone(_this.dest);_this.traversedObjects.set(originalArray,clonedArray);for(var idx3=0,len2=originalArray.size();idx3<len2;idx3++){var value=originalArray.get(idx3);clonedArray.set(idx3,_this.copy(value))}return clonedArray};this.copyPDFStream=function(originalStream){if(_this.traversedObjects.has(originalStream)){return _this.traversedObjects.get(originalStream)}var clonedStream=originalStream.clone(_this.dest);_this.traversedObjects.set(originalStream,clonedStream);var entries=originalStream.dict.entries();for(var idx3=0,len2=entries.length;idx3<len2;idx3++){var _a=entries[idx3],key=_a[0],value=_a[1];clonedStream.dict.set(key,_this.copy(value))}return clonedStream};this.copyPDFIndirectObject=function(ref){var alreadyMapped=_this.traversedObjects.has(ref);if(!alreadyMapped){var newRef=_this.dest.nextRef();_this.traversedObjects.set(ref,newRef);var dereferencedValue=_this.src.lookup(ref);if(dereferencedValue){var cloned=_this.copy(dereferencedValue);_this.dest.assign(newRef,cloned)}}return _this.traversedObjects.get(ref)};this.src=src;this.dest=dest}PDFObjectCopier2.for=function(src,dest){return new PDFObjectCopier2(src,dest)};return PDFObjectCopier2}();PDFObjectCopier_default=PDFObjectCopier});var PDFCrossRefSection,PDFCrossRefSection_default;var init_PDFCrossRefSection=__esm(()=>{init_PDFRef();init_CharCodes();init_utils2();PDFCrossRefSection=function(){function PDFCrossRefSection2(firstEntry){this.subsections=firstEntry?[[firstEntry]]:[];this.chunkIdx=0;this.chunkLength=firstEntry?1:0}PDFCrossRefSection2.prototype.addEntry=function(ref,offset){this.append({ref,offset,deleted:false})};PDFCrossRefSection2.prototype.addDeletedEntry=function(ref,nextFreeObjectNumber){this.append({ref,offset:nextFreeObjectNumber,deleted:true})};PDFCrossRefSection2.prototype.toString=function(){var section=`xref
|
|
45
|
-
`;for(var rangeIdx=0,rangeLen=this.subsections.length;rangeIdx<rangeLen;rangeIdx++){var range2=this.subsections[rangeIdx];section+=range2[0].ref.objectNumber+" "+range2.length+`
|
|
46
|
-
`;for(var entryIdx=0,entryLen=range2.length;entryIdx<entryLen;entryIdx++){var entry=range2[entryIdx];section+=padStart(String(entry.offset),10,"0");section+=" ";section+=padStart(String(entry.ref.generationNumber),5,"0");section+=" ";section+=entry.deleted?"f":"n";section+=`
|
|
47
|
-
`}}return section};PDFCrossRefSection2.prototype.sizeInBytes=function(){var size=5;for(var idx3=0,len2=this.subsections.length;idx3<len2;idx3++){var subsection=this.subsections[idx3];var subsectionLength=subsection.length;var firstEntry=subsection[0];size+=2;size+=String(firstEntry.ref.objectNumber).length;size+=String(subsectionLength).length;size+=20*subsectionLength}return size};PDFCrossRefSection2.prototype.copyBytesInto=function(buffer,offset){var initialOffset=offset;buffer[offset++]=CharCodes_default.x;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.e;buffer[offset++]=CharCodes_default.f;buffer[offset++]=CharCodes_default.Newline;offset+=this.copySubsectionsIntoBuffer(this.subsections,buffer,offset);return offset-initialOffset};PDFCrossRefSection2.prototype.copySubsectionsIntoBuffer=function(subsections,buffer,offset){var initialOffset=offset;var length=subsections.length;for(var idx3=0;idx3<length;idx3++){var subsection=this.subsections[idx3];var firstObjectNumber=String(subsection[0].ref.objectNumber);offset+=copyStringIntoBuffer(firstObjectNumber,buffer,offset);buffer[offset++]=CharCodes_default.Space;var rangeLength=String(subsection.length);offset+=copyStringIntoBuffer(rangeLength,buffer,offset);buffer[offset++]=CharCodes_default.Newline;offset+=this.copyEntriesIntoBuffer(subsection,buffer,offset)}return offset-initialOffset};PDFCrossRefSection2.prototype.copyEntriesIntoBuffer=function(entries,buffer,offset){var length=entries.length;for(var idx3=0;idx3<length;idx3++){var entry=entries[idx3];var entryOffset=padStart(String(entry.offset),10,"0");offset+=copyStringIntoBuffer(entryOffset,buffer,offset);buffer[offset++]=CharCodes_default.Space;var entryGen=padStart(String(entry.ref.generationNumber),5,"0");offset+=copyStringIntoBuffer(entryGen,buffer,offset);buffer[offset++]=CharCodes_default.Space;buffer[offset++]=entry.deleted?CharCodes_default.f:CharCodes_default.n;buffer[offset++]=CharCodes_default.Space;buffer[offset++]=CharCodes_default.Newline}return 20*length};PDFCrossRefSection2.prototype.append=function(currEntry){if(this.chunkLength===0){this.subsections.push([currEntry]);this.chunkIdx=0;this.chunkLength=1;return}var chunk=this.subsections[this.chunkIdx];var prevEntry=chunk[this.chunkLength-1];if(currEntry.ref.objectNumber-prevEntry.ref.objectNumber>1){this.subsections.push([currEntry]);this.chunkIdx+=1;this.chunkLength=1}else{chunk.push(currEntry);this.chunkLength+=1}};PDFCrossRefSection2.create=function(){return new PDFCrossRefSection2({ref:PDFRef_default.of(0,65535),offset:0,deleted:true})};PDFCrossRefSection2.createEmpty=function(){return new PDFCrossRefSection2};return PDFCrossRefSection2}();PDFCrossRefSection_default=PDFCrossRefSection});var PDFTrailer,PDFTrailer_default;var init_PDFTrailer=__esm(()=>{init_CharCodes();init_utils2();PDFTrailer=function(){function PDFTrailer2(lastXRefOffset){this.lastXRefOffset=String(lastXRefOffset)}PDFTrailer2.prototype.toString=function(){return`startxref
|
|
48
|
-
`+this.lastXRefOffset+`
|
|
49
|
-
%%EOF`};PDFTrailer2.prototype.sizeInBytes=function(){return 16+this.lastXRefOffset.length};PDFTrailer2.prototype.copyBytesInto=function(buffer,offset){var initialOffset=offset;buffer[offset++]=CharCodes_default.s;buffer[offset++]=CharCodes_default.t;buffer[offset++]=CharCodes_default.a;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.t;buffer[offset++]=CharCodes_default.x;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.e;buffer[offset++]=CharCodes_default.f;buffer[offset++]=CharCodes_default.Newline;offset+=copyStringIntoBuffer(this.lastXRefOffset,buffer,offset);buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.Percent;buffer[offset++]=CharCodes_default.Percent;buffer[offset++]=CharCodes_default.E;buffer[offset++]=CharCodes_default.O;buffer[offset++]=CharCodes_default.F;return offset-initialOffset};PDFTrailer2.forLastCrossRefSectionOffset=function(offset){return new PDFTrailer2(offset)};return PDFTrailer2}();PDFTrailer_default=PDFTrailer});var PDFTrailerDict,PDFTrailerDict_default;var init_PDFTrailerDict=__esm(()=>{init_CharCodes();PDFTrailerDict=function(){function PDFTrailerDict2(dict){this.dict=dict}PDFTrailerDict2.prototype.toString=function(){return`trailer
|
|
50
|
-
`+this.dict.toString()};PDFTrailerDict2.prototype.sizeInBytes=function(){return 8+this.dict.sizeInBytes()};PDFTrailerDict2.prototype.copyBytesInto=function(buffer,offset){var initialOffset=offset;buffer[offset++]=CharCodes_default.t;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.a;buffer[offset++]=CharCodes_default.i;buffer[offset++]=CharCodes_default.l;buffer[offset++]=CharCodes_default.e;buffer[offset++]=CharCodes_default.r;buffer[offset++]=CharCodes_default.Newline;offset+=this.dict.copyBytesInto(buffer,offset);return offset-initialOffset};PDFTrailerDict2.of=function(dict){return new PDFTrailerDict2(dict)};return PDFTrailerDict2}();PDFTrailerDict_default=PDFTrailerDict});var PDFObjectStream,PDFObjectStream_default;var init_PDFObjectStream=__esm(()=>{init_tslib_es62();init_PDFName();init_PDFNumber();init_PDFFlateStream();init_CharCodes();init_utils2();PDFObjectStream=function(_super){__extends(PDFObjectStream2,_super);function PDFObjectStream2(context2,objects2,encode){if(encode===undefined){encode=true}var _this=_super.call(this,context2.obj({}),encode)||this;_this.objects=objects2;_this.offsets=_this.computeObjectOffsets();_this.offsetsString=_this.computeOffsetsString();_this.dict.set(PDFName_default.of("Type"),PDFName_default.of("ObjStm"));_this.dict.set(PDFName_default.of("N"),PDFNumber_default.of(_this.objects.length));_this.dict.set(PDFName_default.of("First"),PDFNumber_default.of(_this.offsetsString.length));return _this}PDFObjectStream2.prototype.getObjectsCount=function(){return this.objects.length};PDFObjectStream2.prototype.clone=function(context2){return PDFObjectStream2.withContextAndObjects(context2||this.dict.context,this.objects.slice(),this.encode)};PDFObjectStream2.prototype.getContentsString=function(){var value=this.offsetsString;for(var idx3=0,len2=this.objects.length;idx3<len2;idx3++){var _a=this.objects[idx3],object5=_a[1];value+=object5+`
|
|
51
|
-
`}return value};PDFObjectStream2.prototype.getUnencodedContents=function(){var buffer=new Uint8Array(this.getUnencodedContentsSize());var offset=copyStringIntoBuffer(this.offsetsString,buffer,0);for(var idx3=0,len2=this.objects.length;idx3<len2;idx3++){var _a=this.objects[idx3],object5=_a[1];offset+=object5.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline}return buffer};PDFObjectStream2.prototype.getUnencodedContentsSize=function(){return this.offsetsString.length+last(this.offsets)[1]+last(this.objects)[1].sizeInBytes()+1};PDFObjectStream2.prototype.computeOffsetsString=function(){var offsetsString="";for(var idx3=0,len2=this.offsets.length;idx3<len2;idx3++){var _a=this.offsets[idx3],objectNumber=_a[0],offset=_a[1];offsetsString+=objectNumber+" "+offset+" "}return offsetsString};PDFObjectStream2.prototype.computeObjectOffsets=function(){var offset=0;var offsets=new Array(this.objects.length);for(var idx3=0,len2=this.objects.length;idx3<len2;idx3++){var _a=this.objects[idx3],ref=_a[0],object5=_a[1];offsets[idx3]=[ref.objectNumber,offset];offset+=object5.sizeInBytes()+1}return offsets};PDFObjectStream2.withContextAndObjects=function(context2,objects2,encode){if(encode===undefined){encode=true}return new PDFObjectStream2(context2,objects2,encode)};return PDFObjectStream2}(PDFFlateStream_default);PDFObjectStream_default=PDFObjectStream});var PDFWriter,PDFWriter_default;var init_PDFWriter=__esm(()=>{init_tslib_es62();init_PDFCrossRefSection();init_PDFHeader();init_PDFTrailer();init_PDFTrailerDict();init_PDFObjectStream();init_CharCodes();init_utils2();PDFWriter=function(){function PDFWriter2(context2,objectsPerTick){var _this=this;this.parsedObjects=0;this.shouldWaitForTick=function(n){_this.parsedObjects+=n;return _this.parsedObjects%_this.objectsPerTick===0};this.context=context2;this.objectsPerTick=objectsPerTick}PDFWriter2.prototype.serializeToBuffer=function(){return __awaiter(this,undefined,undefined,function(){var _a,size,header,indirectObjects,xref,trailerDict,trailer,offset,buffer,idx3,len2,_b,ref,object5,objectNumber,generationNumber,n;return __generator(this,function(_c){switch(_c.label){case 0:return[4,this.computeBufferSize()];case 1:_a=_c.sent(),size=_a.size,header=_a.header,indirectObjects=_a.indirectObjects,xref=_a.xref,trailerDict=_a.trailerDict,trailer=_a.trailer;offset=0;buffer=new Uint8Array(size);offset+=header.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.Newline;idx3=0,len2=indirectObjects.length;_c.label=2;case 2:if(!(idx3<len2))return[3,5];_b=indirectObjects[idx3],ref=_b[0],object5=_b[1];objectNumber=String(ref.objectNumber);offset+=copyStringIntoBuffer(objectNumber,buffer,offset);buffer[offset++]=CharCodes_default.Space;generationNumber=String(ref.generationNumber);offset+=copyStringIntoBuffer(generationNumber,buffer,offset);buffer[offset++]=CharCodes_default.Space;buffer[offset++]=CharCodes_default.o;buffer[offset++]=CharCodes_default.b;buffer[offset++]=CharCodes_default.j;buffer[offset++]=CharCodes_default.Newline;offset+=object5.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.e;buffer[offset++]=CharCodes_default.n;buffer[offset++]=CharCodes_default.d;buffer[offset++]=CharCodes_default.o;buffer[offset++]=CharCodes_default.b;buffer[offset++]=CharCodes_default.j;buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.Newline;n=object5 instanceof PDFObjectStream_default?object5.getObjectsCount():1;if(!this.shouldWaitForTick(n))return[3,4];return[4,waitForTick()];case 3:_c.sent();_c.label=4;case 4:idx3++;return[3,2];case 5:if(xref){offset+=xref.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline}if(trailerDict){offset+=trailerDict.copyBytesInto(buffer,offset);buffer[offset++]=CharCodes_default.Newline;buffer[offset++]=CharCodes_default.Newline}offset+=trailer.copyBytesInto(buffer,offset);return[2,buffer]}})})};PDFWriter2.prototype.computeIndirectObjectSize=function(_a){var ref=_a[0],object5=_a[1];var refSize=ref.sizeInBytes()+3;var objectSize=object5.sizeInBytes()+9;return refSize+objectSize};PDFWriter2.prototype.createTrailerDict=function(){return this.context.obj({Size:this.context.largestObjectNumber+1,Root:this.context.trailerInfo.Root,Encrypt:this.context.trailerInfo.Encrypt,Info:this.context.trailerInfo.Info,ID:this.context.trailerInfo.ID})};PDFWriter2.prototype.computeBufferSize=function(){return __awaiter(this,undefined,undefined,function(){var header,size,xref,indirectObjects,idx3,len2,indirectObject,ref,xrefOffset,trailerDict,trailer;return __generator(this,function(_a){switch(_a.label){case 0:header=PDFHeader_default.forVersion(1,7);size=header.sizeInBytes()+2;xref=PDFCrossRefSection_default.create();indirectObjects=this.context.enumerateIndirectObjects();idx3=0,len2=indirectObjects.length;_a.label=1;case 1:if(!(idx3<len2))return[3,4];indirectObject=indirectObjects[idx3];ref=indirectObject[0];xref.addEntry(ref,size);size+=this.computeIndirectObjectSize(indirectObject);if(!this.shouldWaitForTick(1))return[3,3];return[4,waitForTick()];case 2:_a.sent();_a.label=3;case 3:idx3++;return[3,1];case 4:xrefOffset=size;size+=xref.sizeInBytes()+1;trailerDict=PDFTrailerDict_default.of(this.createTrailerDict());size+=trailerDict.sizeInBytes()+2;trailer=PDFTrailer_default.forLastCrossRefSectionOffset(xrefOffset);size+=trailer.sizeInBytes();return[2,{size,header,indirectObjects,xref,trailerDict,trailer}]}})})};PDFWriter2.forContext=function(context2,objectsPerTick){return new PDFWriter2(context2,objectsPerTick)};return PDFWriter2}();PDFWriter_default=PDFWriter});var PDFInvalidObject,PDFInvalidObject_default;var init_PDFInvalidObject=__esm(()=>{init_tslib_es62();init_PDFObject();PDFInvalidObject=function(_super){__extends(PDFInvalidObject2,_super);function PDFInvalidObject2(data2){var _this=_super.call(this)||this;_this.data=data2;return _this}PDFInvalidObject2.prototype.clone=function(){return PDFInvalidObject2.of(this.data.slice())};PDFInvalidObject2.prototype.toString=function(){return"PDFInvalidObject("+this.data.length+" bytes)"};PDFInvalidObject2.prototype.sizeInBytes=function(){return this.data.length};PDFInvalidObject2.prototype.copyBytesInto=function(buffer,offset){var length=this.data.length;for(var idx3=0;idx3<length;idx3++){buffer[offset++]=this.data[idx3]}return length};PDFInvalidObject2.of=function(data2){return new PDFInvalidObject2(data2)};return PDFInvalidObject2}(PDFObject_default);PDFInvalidObject_default=PDFInvalidObject});var EntryType,PDFCrossRefStream,PDFCrossRefStream_default;var init_PDFCrossRefStream=__esm(()=>{init_tslib_es62();init_PDFName();init_PDFRef();init_PDFFlateStream();init_utils2();(function(EntryType2){EntryType2[EntryType2["Deleted"]=0]="Deleted";EntryType2[EntryType2["Uncompressed"]=1]="Uncompressed";EntryType2[EntryType2["Compressed"]=2]="Compressed"})(EntryType||(EntryType={}));PDFCrossRefStream=function(_super){__extends(PDFCrossRefStream2,_super);function PDFCrossRefStream2(dict,entries,encode){if(encode===undefined){encode=true}var _this=_super.call(this,dict,encode)||this;_this.computeIndex=function(){var subsections=[];var subsectionLength=0;for(var idx3=0,len2=_this.entries.length;idx3<len2;idx3++){var currEntry=_this.entries[idx3];var prevEntry=_this.entries[idx3-1];if(idx3===0){subsections.push(currEntry.ref.objectNumber)}else if(currEntry.ref.objectNumber-prevEntry.ref.objectNumber>1){subsections.push(subsectionLength);subsections.push(currEntry.ref.objectNumber);subsectionLength=0}subsectionLength+=1}subsections.push(subsectionLength);return subsections};_this.computeEntryTuples=function(){var entryTuples=new Array(_this.entries.length);for(var idx3=0,len2=_this.entries.length;idx3<len2;idx3++){var entry=_this.entries[idx3];if(entry.type===EntryType.Deleted){var{type,nextFreeObjectNumber,ref}=entry;entryTuples[idx3]=[type,nextFreeObjectNumber,ref.generationNumber]}if(entry.type===EntryType.Uncompressed){var{type,offset,ref}=entry;entryTuples[idx3]=[type,offset,ref.generationNumber]}if(entry.type===EntryType.Compressed){var{type,objectStreamRef,index}=entry;entryTuples[idx3]=[type,objectStreamRef.objectNumber,index]}}return entryTuples};_this.computeMaxEntryByteWidths=function(){var entryTuples=_this.entryTuplesCache.access();var widths=[0,0,0];for(var idx3=0,len2=entryTuples.length;idx3<len2;idx3++){var _a=entryTuples[idx3],first=_a[0],second=_a[1],third=_a[2];var firstSize=sizeInBytes(first);var secondSize=sizeInBytes(second);var thirdSize=sizeInBytes(third);if(firstSize>widths[0])widths[0]=firstSize;if(secondSize>widths[1])widths[1]=secondSize;if(thirdSize>widths[2])widths[2]=thirdSize}return widths};_this.entries=entries||[];_this.entryTuplesCache=Cache_default.populatedBy(_this.computeEntryTuples);_this.maxByteWidthsCache=Cache_default.populatedBy(_this.computeMaxEntryByteWidths);_this.indexCache=Cache_default.populatedBy(_this.computeIndex);dict.set(PDFName_default.of("Type"),PDFName_default.of("XRef"));return _this}PDFCrossRefStream2.prototype.addDeletedEntry=function(ref,nextFreeObjectNumber){var type=EntryType.Deleted;this.entries.push({type,ref,nextFreeObjectNumber});this.entryTuplesCache.invalidate();this.maxByteWidthsCache.invalidate();this.indexCache.invalidate();this.contentsCache.invalidate()};PDFCrossRefStream2.prototype.addUncompressedEntry=function(ref,offset){var type=EntryType.Uncompressed;this.entries.push({type,ref,offset});this.entryTuplesCache.invalidate();this.maxByteWidthsCache.invalidate();this.indexCache.invalidate();this.contentsCache.invalidate()};PDFCrossRefStream2.prototype.addCompressedEntry=function(ref,objectStreamRef,index){var type=EntryType.Compressed;this.entries.push({type,ref,objectStreamRef,index});this.entryTuplesCache.invalidate();this.maxByteWidthsCache.invalidate();this.indexCache.invalidate();this.contentsCache.invalidate()};PDFCrossRefStream2.prototype.clone=function(context2){var _a=this,dict=_a.dict,entries=_a.entries,encode=_a.encode;return PDFCrossRefStream2.of(dict.clone(context2),entries.slice(),encode)};PDFCrossRefStream2.prototype.getContentsString=function(){var entryTuples=this.entryTuplesCache.access();var byteWidths=this.maxByteWidthsCache.access();var value="";for(var entryIdx=0,entriesLen=entryTuples.length;entryIdx<entriesLen;entryIdx++){var _a=entryTuples[entryIdx],first=_a[0],second=_a[1],third=_a[2];var firstBytes=reverseArray(bytesFor(first));var secondBytes=reverseArray(bytesFor(second));var thirdBytes=reverseArray(bytesFor(third));for(var idx3=byteWidths[0]-1;idx3>=0;idx3--){value+=(firstBytes[idx3]||0).toString(2)}for(var idx3=byteWidths[1]-1;idx3>=0;idx3--){value+=(secondBytes[idx3]||0).toString(2)}for(var idx3=byteWidths[2]-1;idx3>=0;idx3--){value+=(thirdBytes[idx3]||0).toString(2)}}return value};PDFCrossRefStream2.prototype.getUnencodedContents=function(){var entryTuples=this.entryTuplesCache.access();var byteWidths=this.maxByteWidthsCache.access();var buffer=new Uint8Array(this.getUnencodedContentsSize());var offset=0;for(var entryIdx=0,entriesLen=entryTuples.length;entryIdx<entriesLen;entryIdx++){var _a=entryTuples[entryIdx],first=_a[0],second=_a[1],third=_a[2];var firstBytes=reverseArray(bytesFor(first));var secondBytes=reverseArray(bytesFor(second));var thirdBytes=reverseArray(bytesFor(third));for(var idx3=byteWidths[0]-1;idx3>=0;idx3--){buffer[offset++]=firstBytes[idx3]||0}for(var idx3=byteWidths[1]-1;idx3>=0;idx3--){buffer[offset++]=secondBytes[idx3]||0}for(var idx3=byteWidths[2]-1;idx3>=0;idx3--){buffer[offset++]=thirdBytes[idx3]||0}}return buffer};PDFCrossRefStream2.prototype.getUnencodedContentsSize=function(){var byteWidths=this.maxByteWidthsCache.access();var entryWidth=sum(byteWidths);return entryWidth*this.entries.length};PDFCrossRefStream2.prototype.updateDict=function(){_super.prototype.updateDict.call(this);var byteWidths=this.maxByteWidthsCache.access();var index=this.indexCache.access();var context2=this.dict.context;this.dict.set(PDFName_default.of("W"),context2.obj(byteWidths));this.dict.set(PDFName_default.of("Index"),context2.obj(index))};PDFCrossRefStream2.create=function(dict,encode){if(encode===undefined){encode=true}var stream=new PDFCrossRefStream2(dict,[],encode);stream.addDeletedEntry(PDFRef_default.of(0,65535),0);return stream};PDFCrossRefStream2.of=function(dict,entries,encode){if(encode===undefined){encode=true}return new PDFCrossRefStream2(dict,entries,encode)};return PDFCrossRefStream2}(PDFFlateStream_default);PDFCrossRefStream_default=PDFCrossRefStream});var PDFStreamWriter,PDFStreamWriter_default;var init_PDFStreamWriter=__esm(()=>{init_tslib_es62();init_PDFHeader();init_PDFTrailer();init_PDFInvalidObject();init_PDFName();init_PDFNumber();init_PDFRef();init_PDFStream();init_PDFCrossRefStream();init_PDFObjectStream();init_PDFWriter();init_utils2();PDFStreamWriter=function(_super){__extends(PDFStreamWriter2,_super);function PDFStreamWriter2(context2,objectsPerTick,encodeStreams,objectsPerStream){var _this=_super.call(this,context2,objectsPerTick)||this;_this.encodeStreams=encodeStreams;_this.objectsPerStream=objectsPerStream;return _this}PDFStreamWriter2.prototype.computeBufferSize=function(){return __awaiter(this,undefined,undefined,function(){var objectNumber,header,size,xrefStream,uncompressedObjects,compressedObjects,objectStreamRefs,indirectObjects,idx3,len2,indirectObject,ref,object5,shouldNotCompress,chunk,objectStreamRef,idx3,len2,chunk,ref,objectStream,xrefStreamRef,xrefOffset,trailer;return __generator(this,function(_a){switch(_a.label){case 0:objectNumber=this.context.largestObjectNumber+1;header=PDFHeader_default.forVersion(1,7);size=header.sizeInBytes()+2;xrefStream=PDFCrossRefStream_default.create(this.createTrailerDict(),this.encodeStreams);uncompressedObjects=[];compressedObjects=[];objectStreamRefs=[];indirectObjects=this.context.enumerateIndirectObjects();idx3=0,len2=indirectObjects.length;_a.label=1;case 1:if(!(idx3<len2))return[3,6];indirectObject=indirectObjects[idx3];ref=indirectObject[0],object5=indirectObject[1];shouldNotCompress=ref===this.context.trailerInfo.Encrypt||object5 instanceof PDFStream_default||object5 instanceof PDFInvalidObject_default||ref.generationNumber!==0;if(!shouldNotCompress)return[3,4];uncompressedObjects.push(indirectObject);xrefStream.addUncompressedEntry(ref,size);size+=this.computeIndirectObjectSize(indirectObject);if(!this.shouldWaitForTick(1))return[3,3];return[4,waitForTick()];case 2:_a.sent();_a.label=3;case 3:return[3,5];case 4:chunk=last(compressedObjects);objectStreamRef=last(objectStreamRefs);if(!chunk||chunk.length%this.objectsPerStream===0){chunk=[];compressedObjects.push(chunk);objectStreamRef=PDFRef_default.of(objectNumber++);objectStreamRefs.push(objectStreamRef)}xrefStream.addCompressedEntry(ref,objectStreamRef,chunk.length);chunk.push(indirectObject);_a.label=5;case 5:idx3++;return[3,1];case 6:idx3=0,len2=compressedObjects.length;_a.label=7;case 7:if(!(idx3<len2))return[3,10];chunk=compressedObjects[idx3];ref=objectStreamRefs[idx3];objectStream=PDFObjectStream_default.withContextAndObjects(this.context,chunk,this.encodeStreams);xrefStream.addUncompressedEntry(ref,size);size+=this.computeIndirectObjectSize([ref,objectStream]);uncompressedObjects.push([ref,objectStream]);if(!this.shouldWaitForTick(chunk.length))return[3,9];return[4,waitForTick()];case 8:_a.sent();_a.label=9;case 9:idx3++;return[3,7];case 10:xrefStreamRef=PDFRef_default.of(objectNumber++);xrefStream.dict.set(PDFName_default.of("Size"),PDFNumber_default.of(objectNumber));xrefStream.addUncompressedEntry(xrefStreamRef,size);xrefOffset=size;size+=this.computeIndirectObjectSize([xrefStreamRef,xrefStream]);uncompressedObjects.push([xrefStreamRef,xrefStream]);trailer=PDFTrailer_default.forLastCrossRefSectionOffset(xrefOffset);size+=trailer.sizeInBytes();return[2,{size,header,indirectObjects:uncompressedObjects,trailer}]}})})};PDFStreamWriter2.forContext=function(context2,objectsPerTick,encodeStreams,objectsPerStream){if(encodeStreams===undefined){encodeStreams=true}if(objectsPerStream===undefined){objectsPerStream=50}return new PDFStreamWriter2(context2,objectsPerTick,encodeStreams,objectsPerStream)};return PDFStreamWriter2}(PDFWriter_default);PDFStreamWriter_default=PDFStreamWriter});var PDFHexString,PDFHexString_default;var init_PDFHexString=__esm(()=>{init_tslib_es62();init_PDFObject();init_CharCodes();init_utils2();init_errors2();PDFHexString=function(_super){__extends(PDFHexString2,_super);function PDFHexString2(value){var _this=_super.call(this)||this;_this.value=value;return _this}PDFHexString2.prototype.asBytes=function(){var hex=this.value+(this.value.length%2===1?"0":"");var hexLength=hex.length;var bytes=new Uint8Array(hex.length/2);var hexOffset=0;var bytesOffset=0;while(hexOffset<hexLength){var byte=parseInt(hex.substring(hexOffset,hexOffset+2),16);bytes[bytesOffset]=byte;hexOffset+=2;bytesOffset+=1}return bytes};PDFHexString2.prototype.decodeText=function(){var bytes=this.asBytes();if(hasUtf16BOM(bytes))return utf16Decode(bytes);return pdfDocEncodingDecode(bytes)};PDFHexString2.prototype.decodeDate=function(){var text5=this.decodeText();var date2=parseDate(text5);if(!date2)throw new InvalidPDFDateStringError(text5);return date2};PDFHexString2.prototype.asString=function(){return this.value};PDFHexString2.prototype.clone=function(){return PDFHexString2.of(this.value)};PDFHexString2.prototype.toString=function(){return"<"+this.value+">"};PDFHexString2.prototype.sizeInBytes=function(){return this.value.length+2};PDFHexString2.prototype.copyBytesInto=function(buffer,offset){buffer[offset++]=CharCodes_default.LessThan;offset+=copyStringIntoBuffer(this.value,buffer,offset);buffer[offset++]=CharCodes_default.GreaterThan;return this.value.length+2};PDFHexString2.of=function(value){return new PDFHexString2(value)};PDFHexString2.fromText=function(value){var encoded=utf16Encode(value);var hex="";for(var idx3=0,len2=encoded.length;idx3<len2;idx3++){hex+=toHexStringOfMinLength(encoded[idx3],4)}return new PDFHexString2(hex)};return PDFHexString2}(PDFObject_default);PDFHexString_default=PDFHexString});var StandardFontEmbedder,StandardFontEmbedder_default;var init_StandardFontEmbedder=__esm(()=>{init_es();init_PDFHexString();init_utils2();StandardFontEmbedder=function(){function StandardFontEmbedder2(fontName,customName){this.encoding=fontName===FontNames.ZapfDingbats?Encodings.ZapfDingbats:fontName===FontNames.Symbol?Encodings.Symbol:Encodings.WinAnsi;this.font=Font.load(fontName);this.fontName=this.font.FontName;this.customName=customName}StandardFontEmbedder2.prototype.encodeText=function(text5){var glyphs=this.encodeTextAsGlyphs(text5);var hexCodes=new Array(glyphs.length);for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){hexCodes[idx3]=toHexString(glyphs[idx3].code)}return PDFHexString_default.of(hexCodes.join(""))};StandardFontEmbedder2.prototype.widthOfTextAtSize=function(text5,size){var glyphs=this.encodeTextAsGlyphs(text5);var totalWidth=0;for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){var left=glyphs[idx3].name;var right=(glyphs[idx3+1]||{}).name;var kernAmount=this.font.getXAxisKerningForPair(left,right)||0;totalWidth+=this.widthOfGlyph(left)+kernAmount}var scale=size/1000;return totalWidth*scale};StandardFontEmbedder2.prototype.heightOfFontAtSize=function(size,options){if(options===undefined){options={}}var _a=options.descender,descender=_a===undefined?true:_a;var _b=this.font,Ascender=_b.Ascender,Descender=_b.Descender,FontBBox=_b.FontBBox;var yTop=Ascender||FontBBox[3];var yBottom=Descender||FontBBox[1];var height=yTop-yBottom;if(!descender)height+=Descender||0;return height/1000*size};StandardFontEmbedder2.prototype.sizeOfFontAtHeight=function(height){var _a=this.font,Ascender=_a.Ascender,Descender=_a.Descender,FontBBox=_a.FontBBox;var yTop=Ascender||FontBBox[3];var yBottom=Descender||FontBBox[1];return 1000*height/(yTop-yBottom)};StandardFontEmbedder2.prototype.embedIntoContext=function(context2,ref){var fontDict=context2.obj({Type:"Font",Subtype:"Type1",BaseFont:this.customName||this.fontName,Encoding:this.encoding===Encodings.WinAnsi?"WinAnsiEncoding":undefined});if(ref){context2.assign(ref,fontDict);return ref}else{return context2.register(fontDict)}};StandardFontEmbedder2.prototype.widthOfGlyph=function(glyphName){return this.font.getWidthOfGlyph(glyphName)||250};StandardFontEmbedder2.prototype.encodeTextAsGlyphs=function(text5){var codePoints=Array.from(text5);var glyphs=new Array(codePoints.length);for(var idx3=0,len2=codePoints.length;idx3<len2;idx3++){var codePoint=toCodePoint(codePoints[idx3]);glyphs[idx3]=this.encoding.encodeUnicodeCodePoint(codePoint)}return glyphs};StandardFontEmbedder2.for=function(fontName,customName){return new StandardFontEmbedder2(fontName,customName)};return StandardFontEmbedder2}();StandardFontEmbedder_default=StandardFontEmbedder});var createCmap=function(glyphs,glyphId){var bfChars=new Array(glyphs.length);for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){var glyph=glyphs[idx3];var id3=cmapHexFormat(cmapHexString(glyphId(glyph)));var unicode2=cmapHexFormat.apply(undefined,glyph.codePoints.map(cmapCodePointFormat));bfChars[idx3]=[id3,unicode2]}return fillCmapTemplate(bfChars)},fillCmapTemplate=function(bfChars){return`/CIDInit /ProcSet findresource begin
|
|
52
|
-
12 dict begin
|
|
53
|
-
begincmap
|
|
54
|
-
/CIDSystemInfo <<
|
|
55
|
-
/Registry (Adobe)
|
|
56
|
-
/Ordering (UCS)
|
|
57
|
-
/Supplement 0
|
|
58
|
-
>> def
|
|
59
|
-
/CMapName /Adobe-Identity-UCS def
|
|
60
|
-
/CMapType 2 def
|
|
61
|
-
1 begincodespacerange
|
|
62
|
-
<0000><ffff>
|
|
63
|
-
endcodespacerange
|
|
64
|
-
`+bfChars.length+` beginbfchar
|
|
65
|
-
`+bfChars.map(function(_a){var glyphId=_a[0],codePoint=_a[1];return glyphId+" "+codePoint}).join(`
|
|
66
|
-
`)+`
|
|
67
|
-
endbfchar
|
|
68
|
-
endcmap
|
|
69
|
-
CMapName currentdict /CMap defineresource pop
|
|
70
|
-
end
|
|
71
|
-
end`},cmapHexFormat=function(){var values2=[];for(var _i=0;_i<arguments.length;_i++){values2[_i]=arguments[_i]}return"<"+values2.join("")+">"},cmapHexString=function(value){return toHexStringOfMinLength(value,4)},cmapCodePointFormat=function(codePoint){if(isWithinBMP(codePoint))return cmapHexString(codePoint);if(hasSurrogates(codePoint)){var hs=highSurrogate(codePoint);var ls=lowSurrogate(codePoint);return""+cmapHexString(hs)+cmapHexString(ls)}var hex=toHexString(codePoint);var msg="0x"+hex+" is not a valid UTF-8 or UTF-16 codepoint.";throw new Error(msg)};var init_CMap=__esm(()=>{init_utils2();init_unicode()});var makeFontFlags=function(options){var flags=0;var flipBit=function(bit){flags|=1<<bit-1};if(options.fixedPitch)flipBit(1);if(options.serif)flipBit(2);if(options.symbolic)flipBit(3);if(options.script)flipBit(4);if(options.nonsymbolic)flipBit(6);if(options.italic)flipBit(7);if(options.allCap)flipBit(17);if(options.smallCap)flipBit(18);if(options.forceBold)flipBit(19);return flags},deriveFontFlags=function(font){var familyClass=font["OS/2"]?font["OS/2"].sFamilyClass:0;var flags=makeFontFlags({fixedPitch:font.post.isFixedPitch,serif:1<=familyClass&&familyClass<=7,symbolic:true,script:familyClass===10,italic:font.head.macStyle.italic});return flags};var PDFString,PDFString_default;var init_PDFString=__esm(()=>{init_tslib_es62();init_PDFObject();init_CharCodes();init_utils2();init_errors2();PDFString=function(_super){__extends(PDFString2,_super);function PDFString2(value){var _this=_super.call(this)||this;_this.value=value;return _this}PDFString2.prototype.asBytes=function(){var bytes=[];var octal="";var escaped=false;var pushByte=function(byte2){if(byte2!==undefined)bytes.push(byte2);escaped=false};for(var idx3=0,len2=this.value.length;idx3<len2;idx3++){var char=this.value[idx3];var byte=toCharCode(char);var nextChar=this.value[idx3+1];if(!escaped){if(byte===CharCodes_default.BackSlash)escaped=true;else pushByte(byte)}else{if(byte===CharCodes_default.Newline)pushByte();else if(byte===CharCodes_default.CarriageReturn)pushByte();else if(byte===CharCodes_default.n)pushByte(CharCodes_default.Newline);else if(byte===CharCodes_default.r)pushByte(CharCodes_default.CarriageReturn);else if(byte===CharCodes_default.t)pushByte(CharCodes_default.Tab);else if(byte===CharCodes_default.b)pushByte(CharCodes_default.Backspace);else if(byte===CharCodes_default.f)pushByte(CharCodes_default.FormFeed);else if(byte===CharCodes_default.LeftParen)pushByte(CharCodes_default.LeftParen);else if(byte===CharCodes_default.RightParen)pushByte(CharCodes_default.RightParen);else if(byte===CharCodes_default.Backspace)pushByte(CharCodes_default.BackSlash);else if(byte>=CharCodes_default.Zero&&byte<=CharCodes_default.Seven){octal+=char;if(octal.length===3||!(nextChar>="0"&&nextChar<="7")){pushByte(parseInt(octal,8));octal=""}}else{pushByte(byte)}}}return new Uint8Array(bytes)};PDFString2.prototype.decodeText=function(){var bytes=this.asBytes();if(hasUtf16BOM(bytes))return utf16Decode(bytes);return pdfDocEncodingDecode(bytes)};PDFString2.prototype.decodeDate=function(){var text5=this.decodeText();var date2=parseDate(text5);if(!date2)throw new InvalidPDFDateStringError(text5);return date2};PDFString2.prototype.asString=function(){return this.value};PDFString2.prototype.clone=function(){return PDFString2.of(this.value)};PDFString2.prototype.toString=function(){return"("+this.value+")"};PDFString2.prototype.sizeInBytes=function(){return this.value.length+2};PDFString2.prototype.copyBytesInto=function(buffer,offset){buffer[offset++]=CharCodes_default.LeftParen;offset+=copyStringIntoBuffer(this.value,buffer,offset);buffer[offset++]=CharCodes_default.RightParen;return this.value.length+2};PDFString2.of=function(value){return new PDFString2(value)};PDFString2.fromDate=function(date2){var year=padStart(String(date2.getUTCFullYear()),4,"0");var month=padStart(String(date2.getUTCMonth()+1),2,"0");var day=padStart(String(date2.getUTCDate()),2,"0");var hours=padStart(String(date2.getUTCHours()),2,"0");var mins=padStart(String(date2.getUTCMinutes()),2,"0");var secs=padStart(String(date2.getUTCSeconds()),2,"0");return new PDFString2("D:"+year+month+day+hours+mins+secs+"Z")};return PDFString2}(PDFObject_default);PDFString_default=PDFString});var CustomFontEmbedder,CustomFontEmbedder_default;var init_CustomFontEmbedder=__esm(()=>{init_tslib_es62();init_CMap();init_PDFHexString();init_PDFString();init_utils2();CustomFontEmbedder=function(){function CustomFontEmbedder2(font,fontData,customName,fontFeatures){var _this=this;this.allGlyphsInFontSortedById=function(){var glyphs=new Array(_this.font.characterSet.length);for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){var codePoint=_this.font.characterSet[idx3];glyphs[idx3]=_this.font.glyphForCodePoint(codePoint)}return sortedUniq(glyphs.sort(byAscendingId),function(g){return g.id})};this.font=font;this.scale=1000/this.font.unitsPerEm;this.fontData=fontData;this.fontName=this.font.postscriptName||"Font";this.customName=customName;this.fontFeatures=fontFeatures;this.baseFontName="";this.glyphCache=Cache_default.populatedBy(this.allGlyphsInFontSortedById)}CustomFontEmbedder2.for=function(fontkit,fontData,customName,fontFeatures){return __awaiter(this,undefined,undefined,function(){var font;return __generator(this,function(_a){switch(_a.label){case 0:return[4,fontkit.create(fontData)];case 1:font=_a.sent();return[2,new CustomFontEmbedder2(font,fontData,customName,fontFeatures)]}})})};CustomFontEmbedder2.prototype.encodeText=function(text5){var glyphs=this.font.layout(text5,this.fontFeatures).glyphs;var hexCodes=new Array(glyphs.length);for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){hexCodes[idx3]=toHexStringOfMinLength(glyphs[idx3].id,4)}return PDFHexString_default.of(hexCodes.join(""))};CustomFontEmbedder2.prototype.widthOfTextAtSize=function(text5,size){var glyphs=this.font.layout(text5,this.fontFeatures).glyphs;var totalWidth=0;for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){totalWidth+=glyphs[idx3].advanceWidth*this.scale}var scale=size/1000;return totalWidth*scale};CustomFontEmbedder2.prototype.heightOfFontAtSize=function(size,options){if(options===undefined){options={}}var _a=options.descender,descender=_a===undefined?true:_a;var _b=this.font,ascent=_b.ascent,descent=_b.descent,bbox=_b.bbox;var yTop=(ascent||bbox.maxY)*this.scale;var yBottom=(descent||bbox.minY)*this.scale;var height=yTop-yBottom;if(!descender)height-=Math.abs(descent)||0;return height/1000*size};CustomFontEmbedder2.prototype.sizeOfFontAtHeight=function(height){var _a=this.font,ascent=_a.ascent,descent=_a.descent,bbox=_a.bbox;var yTop=(ascent||bbox.maxY)*this.scale;var yBottom=(descent||bbox.minY)*this.scale;return 1000*height/(yTop-yBottom)};CustomFontEmbedder2.prototype.embedIntoContext=function(context2,ref){this.baseFontName=this.customName||context2.addRandomSuffix(this.fontName);return this.embedFontDict(context2,ref)};CustomFontEmbedder2.prototype.embedFontDict=function(context2,ref){return __awaiter(this,undefined,undefined,function(){var cidFontDictRef,unicodeCMapRef,fontDict;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.embedCIDFontDict(context2)];case 1:cidFontDictRef=_a.sent();unicodeCMapRef=this.embedUnicodeCmap(context2);fontDict=context2.obj({Type:"Font",Subtype:"Type0",BaseFont:this.baseFontName,Encoding:"Identity-H",DescendantFonts:[cidFontDictRef],ToUnicode:unicodeCMapRef});if(ref){context2.assign(ref,fontDict);return[2,ref]}else{return[2,context2.register(fontDict)]}return[2]}})})};CustomFontEmbedder2.prototype.isCFF=function(){return this.font.cff};CustomFontEmbedder2.prototype.embedCIDFontDict=function(context2){return __awaiter(this,undefined,undefined,function(){var fontDescriptorRef,cidFontDict;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.embedFontDescriptor(context2)];case 1:fontDescriptorRef=_a.sent();cidFontDict=context2.obj({Type:"Font",Subtype:this.isCFF()?"CIDFontType0":"CIDFontType2",CIDToGIDMap:"Identity",BaseFont:this.baseFontName,CIDSystemInfo:{Registry:PDFString_default.of("Adobe"),Ordering:PDFString_default.of("Identity"),Supplement:0},FontDescriptor:fontDescriptorRef,W:this.computeWidths()});return[2,context2.register(cidFontDict)]}})})};CustomFontEmbedder2.prototype.embedFontDescriptor=function(context2){return __awaiter(this,undefined,undefined,function(){var fontStreamRef,scale,_a,italicAngle,ascent,descent,capHeight,xHeight,_b,minX,minY,maxX,maxY,fontDescriptor;var _c;return __generator(this,function(_d){switch(_d.label){case 0:return[4,this.embedFontStream(context2)];case 1:fontStreamRef=_d.sent();scale=this.scale;_a=this.font,italicAngle=_a.italicAngle,ascent=_a.ascent,descent=_a.descent,capHeight=_a.capHeight,xHeight=_a.xHeight;_b=this.font.bbox,minX=_b.minX,minY=_b.minY,maxX=_b.maxX,maxY=_b.maxY;fontDescriptor=context2.obj((_c={Type:"FontDescriptor",FontName:this.baseFontName,Flags:deriveFontFlags(this.font),FontBBox:[minX*scale,minY*scale,maxX*scale,maxY*scale],ItalicAngle:italicAngle,Ascent:ascent*scale,Descent:descent*scale,CapHeight:(capHeight||ascent)*scale,XHeight:(xHeight||0)*scale,StemV:0},_c[this.isCFF()?"FontFile3":"FontFile2"]=fontStreamRef,_c));return[2,context2.register(fontDescriptor)]}})})};CustomFontEmbedder2.prototype.serializeFont=function(){return __awaiter(this,undefined,undefined,function(){return __generator(this,function(_a){return[2,this.fontData]})})};CustomFontEmbedder2.prototype.embedFontStream=function(context2){return __awaiter(this,undefined,undefined,function(){var fontStream,_a,_b;return __generator(this,function(_c){switch(_c.label){case 0:_b=(_a=context2).flateStream;return[4,this.serializeFont()];case 1:fontStream=_b.apply(_a,[_c.sent(),{Subtype:this.isCFF()?"CIDFontType0C":undefined}]);return[2,context2.register(fontStream)]}})})};CustomFontEmbedder2.prototype.embedUnicodeCmap=function(context2){var cmap=createCmap(this.glyphCache.access(),this.glyphId.bind(this));var cmapStream=context2.flateStream(cmap);return context2.register(cmapStream)};CustomFontEmbedder2.prototype.glyphId=function(glyph){return glyph?glyph.id:-1};CustomFontEmbedder2.prototype.computeWidths=function(){var glyphs=this.glyphCache.access();var widths=[];var currSection=[];for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){var currGlyph=glyphs[idx3];var prevGlyph=glyphs[idx3-1];var currGlyphId=this.glyphId(currGlyph);var prevGlyphId=this.glyphId(prevGlyph);if(idx3===0){widths.push(currGlyphId)}else if(currGlyphId-prevGlyphId!==1){widths.push(currSection);widths.push(currGlyphId);currSection=[]}currSection.push(currGlyph.advanceWidth*this.scale)}widths.push(currSection);return widths};return CustomFontEmbedder2}();CustomFontEmbedder_default=CustomFontEmbedder});var CustomFontSubsetEmbedder,CustomFontSubsetEmbedder_default;var init_CustomFontSubsetEmbedder=__esm(()=>{init_tslib_es62();init_CustomFontEmbedder();init_PDFHexString();init_utils2();CustomFontSubsetEmbedder=function(_super){__extends(CustomFontSubsetEmbedder2,_super);function CustomFontSubsetEmbedder2(font,fontData,customFontName,fontFeatures){var _this=_super.call(this,font,fontData,customFontName,fontFeatures)||this;_this.subset=_this.font.createSubset();_this.glyphs=[];_this.glyphCache=Cache_default.populatedBy(function(){return _this.glyphs});_this.glyphIdMap=new Map;return _this}CustomFontSubsetEmbedder2.for=function(fontkit,fontData,customFontName,fontFeatures){return __awaiter(this,undefined,undefined,function(){var font;return __generator(this,function(_a){switch(_a.label){case 0:return[4,fontkit.create(fontData)];case 1:font=_a.sent();return[2,new CustomFontSubsetEmbedder2(font,fontData,customFontName,fontFeatures)]}})})};CustomFontSubsetEmbedder2.prototype.encodeText=function(text5){var glyphs=this.font.layout(text5,this.fontFeatures).glyphs;var hexCodes=new Array(glyphs.length);for(var idx3=0,len2=glyphs.length;idx3<len2;idx3++){var glyph=glyphs[idx3];var subsetGlyphId=this.subset.includeGlyph(glyph);this.glyphs[subsetGlyphId-1]=glyph;this.glyphIdMap.set(glyph.id,subsetGlyphId);hexCodes[idx3]=toHexStringOfMinLength(subsetGlyphId,4)}this.glyphCache.invalidate();return PDFHexString_default.of(hexCodes.join(""))};CustomFontSubsetEmbedder2.prototype.isCFF=function(){return this.subset.cff};CustomFontSubsetEmbedder2.prototype.glyphId=function(glyph){return glyph?this.glyphIdMap.get(glyph.id):-1};CustomFontSubsetEmbedder2.prototype.serializeFont=function(){var _this=this;return new Promise(function(resolve,reject){var parts=[];_this.subset.encodeStream().on("data",function(bytes){return parts.push(bytes)}).on("end",function(){return resolve(mergeUint8Arrays(parts))}).on("error",function(err){return reject(err)})})};return CustomFontSubsetEmbedder2}(CustomFontEmbedder_default);CustomFontSubsetEmbedder_default=CustomFontSubsetEmbedder});var AFRelationship,FileEmbedder,FileEmbedder_default;var init_FileEmbedder=__esm(()=>{init_tslib_es62();init_PDFString();init_PDFHexString();(function(AFRelationship2){AFRelationship2["Source"]="Source";AFRelationship2["Data"]="Data";AFRelationship2["Alternative"]="Alternative";AFRelationship2["Supplement"]="Supplement";AFRelationship2["EncryptedPayload"]="EncryptedPayload";AFRelationship2["FormData"]="EncryptedPayload";AFRelationship2["Schema"]="Schema";AFRelationship2["Unspecified"]="Unspecified"})(AFRelationship||(AFRelationship={}));FileEmbedder=function(){function FileEmbedder2(fileData,fileName,options){if(options===undefined){options={}}this.fileData=fileData;this.fileName=fileName;this.options=options}FileEmbedder2.for=function(bytes,fileName,options){if(options===undefined){options={}}return new FileEmbedder2(bytes,fileName,options)};FileEmbedder2.prototype.embedIntoContext=function(context2,ref){return __awaiter(this,undefined,undefined,function(){var _a,mimeType,description,creationDate,modificationDate,afRelationship,embeddedFileStream,embeddedFileStreamRef,fileSpecDict;return __generator(this,function(_b){_a=this.options,mimeType=_a.mimeType,description=_a.description,creationDate=_a.creationDate,modificationDate=_a.modificationDate,afRelationship=_a.afRelationship;embeddedFileStream=context2.flateStream(this.fileData,{Type:"EmbeddedFile",Subtype:mimeType!==null&&mimeType!==undefined?mimeType:undefined,Params:{Size:this.fileData.length,CreationDate:creationDate?PDFString_default.fromDate(creationDate):undefined,ModDate:modificationDate?PDFString_default.fromDate(modificationDate):undefined}});embeddedFileStreamRef=context2.register(embeddedFileStream);fileSpecDict=context2.obj({Type:"Filespec",F:PDFString_default.of(this.fileName),UF:PDFHexString_default.fromText(this.fileName),EF:{F:embeddedFileStreamRef},Desc:description?PDFHexString_default.fromText(description):undefined,AFRelationship:afRelationship!==null&&afRelationship!==undefined?afRelationship:undefined});if(ref){context2.assign(ref,fileSpecDict);return[2,ref]}else{return[2,context2.register(fileSpecDict)]}return[2]})})};return FileEmbedder2}();FileEmbedder_default=FileEmbedder});var MARKERS,ColorSpace,ChannelToColorSpace,JpegEmbedder,JpegEmbedder_default;var init_JpegEmbedder=__esm(()=>{init_tslib_es62();MARKERS=[65472,65473,65474,65475,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487];(function(ColorSpace2){ColorSpace2["DeviceGray"]="DeviceGray";ColorSpace2["DeviceRGB"]="DeviceRGB";ColorSpace2["DeviceCMYK"]="DeviceCMYK"})(ColorSpace||(ColorSpace={}));ChannelToColorSpace={1:ColorSpace.DeviceGray,3:ColorSpace.DeviceRGB,4:ColorSpace.DeviceCMYK};JpegEmbedder=function(){function JpegEmbedder2(imageData,bitsPerComponent,width,height,colorSpace){this.imageData=imageData;this.bitsPerComponent=bitsPerComponent;this.width=width;this.height=height;this.colorSpace=colorSpace}JpegEmbedder2.for=function(imageData){return __awaiter(this,undefined,undefined,function(){var dataView,soi,pos,marker,bitsPerComponent,height,width,channelByte,channelName,colorSpace;return __generator(this,function(_a){dataView=new DataView(imageData.buffer);soi=dataView.getUint16(0);if(soi!==65496)throw new Error("SOI not found in JPEG");pos=2;while(pos<dataView.byteLength){marker=dataView.getUint16(pos);pos+=2;if(MARKERS.includes(marker))break;pos+=dataView.getUint16(pos)}if(!MARKERS.includes(marker))throw new Error("Invalid JPEG");pos+=2;bitsPerComponent=dataView.getUint8(pos++);height=dataView.getUint16(pos);pos+=2;width=dataView.getUint16(pos);pos+=2;channelByte=dataView.getUint8(pos++);channelName=ChannelToColorSpace[channelByte];if(!channelName)throw new Error("Unknown JPEG channel.");colorSpace=channelName;return[2,new JpegEmbedder2(imageData,bitsPerComponent,width,height,colorSpace)]})})};JpegEmbedder2.prototype.embedIntoContext=function(context2,ref){return __awaiter(this,undefined,undefined,function(){var xObject;return __generator(this,function(_a){xObject=context2.stream(this.imageData,{Type:"XObject",Subtype:"Image",BitsPerComponent:this.bitsPerComponent,Width:this.width,Height:this.height,ColorSpace:this.colorSpace,Filter:"DCTDecode",Decode:this.colorSpace===ColorSpace.DeviceCMYK?[1,0,1,0,1,0,1,0]:undefined});if(ref){context2.assign(ref,xObject);return[2,ref]}else{return[2,context2.register(xObject)]}return[2]})})};return JpegEmbedder2}();JpegEmbedder_default=JpegEmbedder});var import_pako4,UPNG,UPNG_default;var init_UPNG=__esm(()=>{import_pako4=__toESM(require_pako(),1);UPNG={};UPNG.toRGBA8=function(out){var{width:w,height:h}=out;if(out.tabs.acTL==null)return[UPNG.toRGBA8.decodeImage(out.data,w,h,out).buffer];var frms=[];if(out.frames[0].data==null)out.frames[0].data=out.data;var len2=w*h*4,img=new Uint8Array(len2),empty2=new Uint8Array(len2),prev=new Uint8Array(len2);for(var i3=0;i3<out.frames.length;i3++){var frm=out.frames[i3];var fx=frm.rect.x,fy=frm.rect.y,fw=frm.rect.width,fh=frm.rect.height;var fdata=UPNG.toRGBA8.decodeImage(frm.data,fw,fh,out);if(i3!=0)for(var j=0;j<len2;j++)prev[j]=img[j];if(frm.blend==0)UPNG._copyTile(fdata,fw,fh,img,w,h,fx,fy,0);else if(frm.blend==1)UPNG._copyTile(fdata,fw,fh,img,w,h,fx,fy,1);frms.push(img.buffer.slice(0));if(frm.dispose==0){}else if(frm.dispose==1)UPNG._copyTile(empty2,fw,fh,img,w,h,fx,fy,0);else if(frm.dispose==2)for(var j=0;j<len2;j++)img[j]=prev[j]}return frms};UPNG.toRGBA8.decodeImage=function(data2,w,h,out){var area=w*h,bpp=UPNG.decode._getBPP(out);var bpl=Math.ceil(w*bpp/8);var bf=new Uint8Array(area*4),bf32=new Uint32Array(bf.buffer);var{ctype,depth}=out;var rs=UPNG._bin.readUshort;var time2=Date.now();if(ctype==6){var qarea=area<<2;if(depth==8)for(var i3=0;i3<qarea;i3+=4){bf[i3]=data2[i3];bf[i3+1]=data2[i3+1];bf[i3+2]=data2[i3+2];bf[i3+3]=data2[i3+3]}if(depth==16)for(var i3=0;i3<qarea;i3++){bf[i3]=data2[i3<<1]}}else if(ctype==2){var ts=out.tabs["tRNS"];if(ts==null){if(depth==8)for(var i3=0;i3<area;i3++){var ti=i3*3;bf32[i3]=255<<24|data2[ti+2]<<16|data2[ti+1]<<8|data2[ti]}if(depth==16)for(var i3=0;i3<area;i3++){var ti=i3*6;bf32[i3]=255<<24|data2[ti+4]<<16|data2[ti+2]<<8|data2[ti]}}else{var tr=ts[0],tg=ts[1],tb=ts[2];if(depth==8)for(var i3=0;i3<area;i3++){var qi=i3<<2,ti=i3*3;bf32[i3]=255<<24|data2[ti+2]<<16|data2[ti+1]<<8|data2[ti];if(data2[ti]==tr&&data2[ti+1]==tg&&data2[ti+2]==tb)bf[qi+3]=0}if(depth==16)for(var i3=0;i3<area;i3++){var qi=i3<<2,ti=i3*6;bf32[i3]=255<<24|data2[ti+4]<<16|data2[ti+2]<<8|data2[ti];if(rs(data2,ti)==tr&&rs(data2,ti+2)==tg&&rs(data2,ti+4)==tb)bf[qi+3]=0}}}else if(ctype==3){var p=out.tabs["PLTE"],ap=out.tabs["tRNS"],tl=ap?ap.length:0;if(depth==1)for(var y=0;y<h;y++){var s0=y*bpl,t0=y*w;for(var i3=0;i3<w;i3++){var qi=t0+i3<<2,j=data2[s0+(i3>>3)]>>7-((i3&7)<<0)&1,cj=3*j;bf[qi]=p[cj];bf[qi+1]=p[cj+1];bf[qi+2]=p[cj+2];bf[qi+3]=j<tl?ap[j]:255}}if(depth==2)for(var y=0;y<h;y++){var s0=y*bpl,t0=y*w;for(var i3=0;i3<w;i3++){var qi=t0+i3<<2,j=data2[s0+(i3>>2)]>>6-((i3&3)<<1)&3,cj=3*j;bf[qi]=p[cj];bf[qi+1]=p[cj+1];bf[qi+2]=p[cj+2];bf[qi+3]=j<tl?ap[j]:255}}if(depth==4)for(var y=0;y<h;y++){var s0=y*bpl,t0=y*w;for(var i3=0;i3<w;i3++){var qi=t0+i3<<2,j=data2[s0+(i3>>1)]>>4-((i3&1)<<2)&15,cj=3*j;bf[qi]=p[cj];bf[qi+1]=p[cj+1];bf[qi+2]=p[cj+2];bf[qi+3]=j<tl?ap[j]:255}}if(depth==8)for(var i3=0;i3<area;i3++){var qi=i3<<2,j=data2[i3],cj=3*j;bf[qi]=p[cj];bf[qi+1]=p[cj+1];bf[qi+2]=p[cj+2];bf[qi+3]=j<tl?ap[j]:255}}else if(ctype==4){if(depth==8)for(var i3=0;i3<area;i3++){var qi=i3<<2,di=i3<<1,gr=data2[di];bf[qi]=gr;bf[qi+1]=gr;bf[qi+2]=gr;bf[qi+3]=data2[di+1]}if(depth==16)for(var i3=0;i3<area;i3++){var qi=i3<<2,di=i3<<2,gr=data2[di];bf[qi]=gr;bf[qi+1]=gr;bf[qi+2]=gr;bf[qi+3]=data2[di+2]}}else if(ctype==0){var tr=out.tabs["tRNS"]?out.tabs["tRNS"]:-1;for(var y=0;y<h;y++){var off=y*bpl,to=y*w;if(depth==1)for(var x=0;x<w;x++){var gr=255*(data2[off+(x>>>3)]>>>7-(x&7)&1),al=gr==tr*255?0:255;bf32[to+x]=al<<24|gr<<16|gr<<8|gr}else if(depth==2)for(var x=0;x<w;x++){var gr=85*(data2[off+(x>>>2)]>>>6-((x&3)<<1)&3),al=gr==tr*85?0:255;bf32[to+x]=al<<24|gr<<16|gr<<8|gr}else if(depth==4)for(var x=0;x<w;x++){var gr=17*(data2[off+(x>>>1)]>>>4-((x&1)<<2)&15),al=gr==tr*17?0:255;bf32[to+x]=al<<24|gr<<16|gr<<8|gr}else if(depth==8)for(var x=0;x<w;x++){var gr=data2[off+x],al=gr==tr?0:255;bf32[to+x]=al<<24|gr<<16|gr<<8|gr}else if(depth==16)for(var x=0;x<w;x++){var gr=data2[off+(x<<1)],al=rs(data2,off+(x<<i3))==tr?0:255;bf32[to+x]=al<<24|gr<<16|gr<<8|gr}}}return bf};UPNG.decode=function(buff){var data2=new Uint8Array(buff),offset=8,bin=UPNG._bin,rUs=bin.readUshort,rUi=bin.readUint;var out={tabs:{},frames:[]};var dd=new Uint8Array(data2.length),doff=0;var fd,foff=0;var mgck=[137,80,78,71,13,10,26,10];for(var i3=0;i3<8;i3++)if(data2[i3]!=mgck[i3])throw"The input is not a PNG file!";while(offset<data2.length){var len2=bin.readUint(data2,offset);offset+=4;var type=bin.readASCII(data2,offset,4);offset+=4;if(type=="IHDR"){UPNG.decode._IHDR(data2,offset,out)}else if(type=="IDAT"){for(var i3=0;i3<len2;i3++)dd[doff+i3]=data2[offset+i3];doff+=len2}else if(type=="acTL"){out.tabs[type]={num_frames:rUi(data2,offset),num_plays:rUi(data2,offset+4)};fd=new Uint8Array(data2.length)}else if(type=="fcTL"){if(foff!=0){var fr=out.frames[out.frames.length-1];fr.data=UPNG.decode._decompress(out,fd.slice(0,foff),fr.rect.width,fr.rect.height);foff=0}var rct={x:rUi(data2,offset+12),y:rUi(data2,offset+16),width:rUi(data2,offset+4),height:rUi(data2,offset+8)};var del=rUs(data2,offset+22);del=rUs(data2,offset+20)/(del==0?100:del);var frm={rect:rct,delay:Math.round(del*1000),dispose:data2[offset+24],blend:data2[offset+25]};out.frames.push(frm)}else if(type=="fdAT"){for(var i3=0;i3<len2-4;i3++)fd[foff+i3]=data2[offset+i3+4];foff+=len2-4}else if(type=="pHYs"){out.tabs[type]=[bin.readUint(data2,offset),bin.readUint(data2,offset+4),data2[offset+8]]}else if(type=="cHRM"){out.tabs[type]=[];for(var i3=0;i3<8;i3++)out.tabs[type].push(bin.readUint(data2,offset+i3*4))}else if(type=="tEXt"){if(out.tabs[type]==null)out.tabs[type]={};var nz=bin.nextZero(data2,offset);var keyw=bin.readASCII(data2,offset,nz-offset);var text5=bin.readASCII(data2,nz+1,offset+len2-nz-1);out.tabs[type][keyw]=text5}else if(type=="iTXt"){if(out.tabs[type]==null)out.tabs[type]={};var nz=0,off=offset;nz=bin.nextZero(data2,off);var keyw=bin.readASCII(data2,off,nz-off);off=nz+1;var cflag=data2[off],cmeth=data2[off+1];off+=2;nz=bin.nextZero(data2,off);var ltag=bin.readASCII(data2,off,nz-off);off=nz+1;nz=bin.nextZero(data2,off);var tkeyw=bin.readUTF8(data2,off,nz-off);off=nz+1;var text5=bin.readUTF8(data2,off,len2-(off-offset));out.tabs[type][keyw]=text5}else if(type=="PLTE"){out.tabs[type]=bin.readBytes(data2,offset,len2)}else if(type=="hIST"){var pl=out.tabs["PLTE"].length/3;out.tabs[type]=[];for(var i3=0;i3<pl;i3++)out.tabs[type].push(rUs(data2,offset+i3*2))}else if(type=="tRNS"){if(out.ctype==3)out.tabs[type]=bin.readBytes(data2,offset,len2);else if(out.ctype==0)out.tabs[type]=rUs(data2,offset);else if(out.ctype==2)out.tabs[type]=[rUs(data2,offset),rUs(data2,offset+2),rUs(data2,offset+4)]}else if(type=="gAMA")out.tabs[type]=bin.readUint(data2,offset)/1e5;else if(type=="sRGB")out.tabs[type]=data2[offset];else if(type=="bKGD"){if(out.ctype==0||out.ctype==4)out.tabs[type]=[rUs(data2,offset)];else if(out.ctype==2||out.ctype==6)out.tabs[type]=[rUs(data2,offset),rUs(data2,offset+2),rUs(data2,offset+4)];else if(out.ctype==3)out.tabs[type]=data2[offset]}else if(type=="IEND"){break}offset+=len2;var crc=bin.readUint(data2,offset);offset+=4}if(foff!=0){var fr=out.frames[out.frames.length-1];fr.data=UPNG.decode._decompress(out,fd.slice(0,foff),fr.rect.width,fr.rect.height);foff=0}out.data=UPNG.decode._decompress(out,dd,out.width,out.height);delete out.compress;delete out.interlace;delete out.filter;return out};UPNG.decode._decompress=function(out,dd,w,h){var time2=Date.now();var bpp=UPNG.decode._getBPP(out),bpl=Math.ceil(w*bpp/8),buff=new Uint8Array((bpl+1+out.interlace)*h);dd=UPNG.decode._inflate(dd,buff);var time2=Date.now();if(out.interlace==0)dd=UPNG.decode._filterZero(dd,out,0,w,h);else if(out.interlace==1)dd=UPNG.decode._readInterlace(dd,out);return dd};UPNG.decode._inflate=function(data2,buff){var out=UPNG["inflateRaw"](new Uint8Array(data2.buffer,2,data2.length-6),buff);return out};UPNG.inflateRaw=function(){var H={};H.H={};H.H.N=function(N,W){var R=Uint8Array,i3=0,m=0,J=0,h=0,Q=0,X=0,u=0,w=0,d=0,v,C;if(N[0]==3&&N[1]==0)return W?W:new R(0);var V=H.H,n=V.b,A=V.e,l=V.R,M=V.n,I=V.A,e=V.Z,b=V.m,Z=W==null;if(Z)W=new R(N.length>>>2<<3);while(i3==0){i3=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7);var D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3;w+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1}if(m==2){J=A(N,d,5)+257;h=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0;c<Q;c++){var K=A(N,d+c*3,3);b.Q[(b.X[c]<<1)+1]=K;if(K>j)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d;d=l(b.u,(1<<j)-1,J+h,N,d,b.v);var r=V.V(b.v,0,J,b.C);X=(1<<r)-1;var S=V.V(b.v,J,h,b.D);u=(1<<S)-1;M(b.C,r);I(b.C,r,v);M(b.D,S);I(b.D,S,C)}while(true){var T=v[e(N,d)&X];d+=T&15;var p=T>>>4;if(p>>>8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254;if(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15);d+=Y&15;while(w<z){W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a]}w=z}}}return W.length==w?W:W.slice(0,w)};H.H.W=function(N,W){var R=N.length;if(W<=R)return N;var V=new Uint8Array(R<<1);V.set(N,0);return V};H.H.R=function(N,W,R,V,n,A){var l=H.H.e,M=H.H.Z,I=0;while(I<R){var e=N[M(V,n)&W];n+=e&15;var b=e>>>4;if(b<=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3);n+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I<J){A[I]=Z;I++}}}return n};H.H.V=function(N,W,R,V){var n=0,A=0,l=V.length>>>1;while(A<R){var M=N[A+W];V[A<<1]=0;V[(A<<1)+1]=M;if(M>n)n=M;A++}while(A<l){V[A<<1]=0;V[(A<<1)+1]=0;A++}return n};H.H.n=function(N,W){var R=H.H.m,V=N.length,n,A,l,M,I,e=R.j;for(var M=0;M<=W;M++)e[M]=0;for(M=1;M<V;M+=2)e[N[M]]++;var b=R.K;n=0;e[0]=0;for(A=1;A<=W;A++){n=n+e[A-1]<<1;b[A]=n}for(l=0;l<V;l+=2){I=N[l+1];if(I!=0){N[l]=b[I];b[I]++}}};H.H.A=function(N,W,R){var V=N.length,n=H.H.m,A=n.r;for(var l=0;l<V;l+=2)if(N[l+1]!=0){var M=l>>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<<b,m=Z+(1<<b);while(Z!=m){var J=A[Z]>>>15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n<N.length;n+=2){var A=N[n]<<W-N[n+1];N[n]=R[A]>>>V}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8};H.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16};H.H.e=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<<R)-1};H.H.b=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<<R)-1};H.H.Z=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)};H.H.i=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array;return{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15000),k:new N(1<<16),g:new N(1<<15)}}();(function(){var N=H.H.m,W=1<<15;for(var R=0;R<W;R++){var V=R;V=(V&2863311530)>>>1|(V&1431655765)<<1;V=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8;N.r[R]=(V>>>16|V<<16)>>>17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R];N.c[R]=N.p[R]<<4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9);H.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0);n(N.D,30,0);n(N.v,320,0)})();return H.H.N}();UPNG.decode._readInterlace=function(data2,out){var{width:w,height:h}=out;var bpp=UPNG.decode._getBPP(out),cbpp=bpp>>3,bpl=Math.ceil(w*bpp/8);var img=new Uint8Array(h*bpl);var di=0;var starting_row=[0,0,4,0,2,0,1];var starting_col=[0,4,0,2,0,1,0];var row_increment=[8,8,8,4,4,2,2];var col_increment=[8,8,4,4,2,2,1];var pass=0;while(pass<7){var ri=row_increment[pass],ci=col_increment[pass];var sw=0,sh=0;var cr=starting_row[pass];while(cr<h){cr+=ri;sh++}var cc=starting_col[pass];while(cc<w){cc+=ci;sw++}var bpll=Math.ceil(sw*bpp/8);UPNG.decode._filterZero(data2,out,di,sw,sh);var y=0,row=starting_row[pass];while(row<h){var col=starting_col[pass];var cdi=di+y*bpll<<3;while(col<w){if(bpp==1){var val=data2[cdi>>3];val=val>>7-(cdi&7)&1;img[row*bpl+(col>>3)]|=val<<7-((col&7)<<0)}if(bpp==2){var val=data2[cdi>>3];val=val>>6-(cdi&7)&3;img[row*bpl+(col>>2)]|=val<<6-((col&3)<<1)}if(bpp==4){var val=data2[cdi>>3];val=val>>4-(cdi&7)&15;img[row*bpl+(col>>1)]|=val<<4-((col&1)<<2)}if(bpp>=8){var ii=row*bpl+col*cbpp;for(var j=0;j<cbpp;j++)img[ii+j]=data2[(cdi>>3)+j]}cdi+=bpp;col+=ci}y++;row+=ri}if(sw*sh!=0)di+=sh*(1+bpll);pass=pass+1}return img};UPNG.decode._getBPP=function(out){var noc=[1,null,3,1,2,null,4][out.ctype];return noc*out.depth};UPNG.decode._filterZero=function(data2,out,off,w,h){var bpp=UPNG.decode._getBPP(out),bpl=Math.ceil(w*bpp/8),paeth=UPNG.decode._paeth;bpp=Math.ceil(bpp/8);var i3=0,di=1,type=data2[off],x=0;if(type>1)data2[off]=[0,0,1][type-2];if(type==3)for(x=bpp;x<bpl;x++)data2[x+1]=data2[x+1]+(data2[x+1-bpp]>>>1)&255;for(var y=0;y<h;y++){i3=off+y*bpl;di=i3+y+1;type=data2[di-1];x=0;if(type==0)for(;x<bpl;x++)data2[i3+x]=data2[di+x];else if(type==1){for(;x<bpp;x++)data2[i3+x]=data2[di+x];for(;x<bpl;x++)data2[i3+x]=data2[di+x]+data2[i3+x-bpp]}else if(type==2){for(;x<bpl;x++)data2[i3+x]=data2[di+x]+data2[i3+x-bpl]}else if(type==3){for(;x<bpp;x++)data2[i3+x]=data2[di+x]+(data2[i3+x-bpl]>>>1);for(;x<bpl;x++)data2[i3+x]=data2[di+x]+(data2[i3+x-bpl]+data2[i3+x-bpp]>>>1)}else{for(;x<bpp;x++)data2[i3+x]=data2[di+x]+paeth(0,data2[i3+x-bpl],0);for(;x<bpl;x++)data2[i3+x]=data2[di+x]+paeth(data2[i3+x-bpp],data2[i3+x-bpl],data2[i3+x-bpp-bpl])}}return data2};UPNG.decode._paeth=function(a,b,c){var p=a+b-c,pa=p-a,pb=p-b,pc=p-c;if(pa*pa<=pb*pb&&pa*pa<=pc*pc)return a;else if(pb*pb<=pc*pc)return b;return c};UPNG.decode._IHDR=function(data2,offset,out){var bin=UPNG._bin;out.width=bin.readUint(data2,offset);offset+=4;out.height=bin.readUint(data2,offset);offset+=4;out.depth=data2[offset];offset++;out.ctype=data2[offset];offset++;out.compress=data2[offset];offset++;out.filter=data2[offset];offset++;out.interlace=data2[offset];offset++};UPNG._bin={nextZero:function(data2,p){while(data2[p]!=0)p++;return p},readUshort:function(buff,p){return buff[p]<<8|buff[p+1]},writeUshort:function(buff,p,n){buff[p]=n>>8&255;buff[p+1]=n&255},readUint:function(buff,p){return buff[p]*(256*256*256)+(buff[p+1]<<16|buff[p+2]<<8|buff[p+3])},writeUint:function(buff,p,n){buff[p]=n>>24&255;buff[p+1]=n>>16&255;buff[p+2]=n>>8&255;buff[p+3]=n&255},readASCII:function(buff,p,l){var s="";for(var i3=0;i3<l;i3++)s+=String.fromCharCode(buff[p+i3]);return s},writeASCII:function(data2,p,s){for(var i3=0;i3<s.length;i3++)data2[p+i3]=s.charCodeAt(i3)},readBytes:function(buff,p,l){var arr=[];for(var i3=0;i3<l;i3++)arr.push(buff[p+i3]);return arr},pad:function(n){return n.length<2?"0"+n:n},readUTF8:function(buff,p,l){var s="",ns;for(var i3=0;i3<l;i3++)s+="%"+UPNG._bin.pad(buff[p+i3].toString(16));try{ns=decodeURIComponent(s)}catch(e){return UPNG._bin.readASCII(buff,p,l)}return ns}};UPNG._copyTile=function(sb,sw,sh,tb,tw,th,xoff,yoff,mode){var w=Math.min(sw,tw),h=Math.min(sh,th);var si=0,ti=0;for(var y=0;y<h;y++)for(var x=0;x<w;x++){if(xoff>=0&&yoff>=0){si=y*sw+x<<2;ti=(yoff+y)*tw+xoff+x<<2}else{si=(-yoff+y)*sw-xoff+x<<2;ti=y*tw+x<<2}if(mode==0){tb[ti]=sb[si];tb[ti+1]=sb[si+1];tb[ti+2]=sb[si+2];tb[ti+3]=sb[si+3]}else if(mode==1){var fa=sb[si+3]*(1/255),fr=sb[si]*fa,fg=sb[si+1]*fa,fb=sb[si+2]*fa;var ba=tb[ti+3]*(1/255),br=tb[ti]*ba,bg=tb[ti+1]*ba,bb=tb[ti+2]*ba;var ifa=1-fa,oa=fa+ba*ifa,ioa=oa==0?0:1/oa;tb[ti+3]=255*oa;tb[ti+0]=(fr+br*ifa)*ioa;tb[ti+1]=(fg+bg*ifa)*ioa;tb[ti+2]=(fb+bb*ifa)*ioa}else if(mode==2){var fa=sb[si+3],fr=sb[si],fg=sb[si+1],fb=sb[si+2];var ba=tb[ti+3],br=tb[ti],bg=tb[ti+1],bb=tb[ti+2];if(fa==ba&&fr==br&&fg==bg&&fb==bb){tb[ti]=0;tb[ti+1]=0;tb[ti+2]=0;tb[ti+3]=0}else{tb[ti]=fr;tb[ti+1]=fg;tb[ti+2]=fb;tb[ti+3]=fa}}else if(mode==3){var fa=sb[si+3],fr=sb[si],fg=sb[si+1],fb=sb[si+2];var ba=tb[ti+3],br=tb[ti],bg=tb[ti+1],bb=tb[ti+2];if(fa==ba&&fr==br&&fg==bg&&fb==bb)continue;if(fa<220&&ba>20)return false}}return true};UPNG.encode=function(bufs,w,h,ps,dels,tabs,forbidPlte){if(ps==null)ps=0;if(forbidPlte==null)forbidPlte=false;var nimg=UPNG.encode.compress(bufs,w,h,ps,[false,false,false,0,forbidPlte]);UPNG.encode.compressPNG(nimg,-1);return UPNG.encode._main(nimg,w,h,dels,tabs)};UPNG.encodeLL=function(bufs,w,h,cc,ac,depth,dels,tabs){var nimg={ctype:0+(cc==1?0:2)+(ac==0?0:4),depth,frames:[]};var time2=Date.now();var bipp=(cc+ac)*depth,bipl=bipp*w;for(var i3=0;i3<bufs.length;i3++)nimg.frames.push({rect:{x:0,y:0,width:w,height:h},img:new Uint8Array(bufs[i3]),blend:0,dispose:1,bpp:Math.ceil(bipp/8),bpl:Math.ceil(bipl/8)});UPNG.encode.compressPNG(nimg,0,true);var out=UPNG.encode._main(nimg,w,h,dels,tabs);return out};UPNG.encode._main=function(nimg,w,h,dels,tabs){if(tabs==null)tabs={};var crc=UPNG.crc.crc,wUi=UPNG._bin.writeUint,wUs=UPNG._bin.writeUshort,wAs=UPNG._bin.writeASCII;var offset=8,anim=nimg.frames.length>1,pltAlpha=false;var leng=8+(16+5+4)+(anim?20:0);if(tabs["sRGB"]!=null)leng+=8+1+4;if(tabs["pHYs"]!=null)leng+=8+9+4;if(nimg.ctype==3){var dl=nimg.plte.length;for(var i3=0;i3<dl;i3++)if(nimg.plte[i3]>>>24!=255)pltAlpha=true;leng+=8+dl*3+4+(pltAlpha?8+dl*1+4:0)}for(var j=0;j<nimg.frames.length;j++){var fr=nimg.frames[j];if(anim)leng+=38;leng+=fr.cimg.length+12;if(j!=0)leng+=4}leng+=12;var data2=new Uint8Array(leng);var wr=[137,80,78,71,13,10,26,10];for(var i3=0;i3<8;i3++)data2[i3]=wr[i3];wUi(data2,offset,13);offset+=4;wAs(data2,offset,"IHDR");offset+=4;wUi(data2,offset,w);offset+=4;wUi(data2,offset,h);offset+=4;data2[offset]=nimg.depth;offset++;data2[offset]=nimg.ctype;offset++;data2[offset]=0;offset++;data2[offset]=0;offset++;data2[offset]=0;offset++;wUi(data2,offset,crc(data2,offset-17,17));offset+=4;if(tabs["sRGB"]!=null){wUi(data2,offset,1);offset+=4;wAs(data2,offset,"sRGB");offset+=4;data2[offset]=tabs["sRGB"];offset++;wUi(data2,offset,crc(data2,offset-5,5));offset+=4}if(tabs["pHYs"]!=null){wUi(data2,offset,9);offset+=4;wAs(data2,offset,"pHYs");offset+=4;wUi(data2,offset,tabs["pHYs"][0]);offset+=4;wUi(data2,offset,tabs["pHYs"][1]);offset+=4;data2[offset]=tabs["pHYs"][2];offset++;wUi(data2,offset,crc(data2,offset-13,13));offset+=4}if(anim){wUi(data2,offset,8);offset+=4;wAs(data2,offset,"acTL");offset+=4;wUi(data2,offset,nimg.frames.length);offset+=4;wUi(data2,offset,tabs["loop"]!=null?tabs["loop"]:0);offset+=4;wUi(data2,offset,crc(data2,offset-12,12));offset+=4}if(nimg.ctype==3){var dl=nimg.plte.length;wUi(data2,offset,dl*3);offset+=4;wAs(data2,offset,"PLTE");offset+=4;for(var i3=0;i3<dl;i3++){var ti=i3*3,c=nimg.plte[i3],r=c&255,g=c>>>8&255,b=c>>>16&255;data2[offset+ti+0]=r;data2[offset+ti+1]=g;data2[offset+ti+2]=b}offset+=dl*3;wUi(data2,offset,crc(data2,offset-dl*3-4,dl*3+4));offset+=4;if(pltAlpha){wUi(data2,offset,dl);offset+=4;wAs(data2,offset,"tRNS");offset+=4;for(var i3=0;i3<dl;i3++)data2[offset+i3]=nimg.plte[i3]>>>24&255;offset+=dl;wUi(data2,offset,crc(data2,offset-dl-4,dl+4));offset+=4}}var fi=0;for(var j=0;j<nimg.frames.length;j++){var fr=nimg.frames[j];if(anim){wUi(data2,offset,26);offset+=4;wAs(data2,offset,"fcTL");offset+=4;wUi(data2,offset,fi++);offset+=4;wUi(data2,offset,fr.rect.width);offset+=4;wUi(data2,offset,fr.rect.height);offset+=4;wUi(data2,offset,fr.rect.x);offset+=4;wUi(data2,offset,fr.rect.y);offset+=4;wUs(data2,offset,dels[j]);offset+=2;wUs(data2,offset,1000);offset+=2;data2[offset]=fr.dispose;offset++;data2[offset]=fr.blend;offset++;wUi(data2,offset,crc(data2,offset-30,30));offset+=4}var imgd=fr.cimg,dl=imgd.length;wUi(data2,offset,dl+(j==0?0:4));offset+=4;var ioff=offset;wAs(data2,offset,j==0?"IDAT":"fdAT");offset+=4;if(j!=0){wUi(data2,offset,fi++);offset+=4}data2.set(imgd,offset);offset+=dl;wUi(data2,offset,crc(data2,ioff,offset-ioff));offset+=4}wUi(data2,offset,0);offset+=4;wAs(data2,offset,"IEND");offset+=4;wUi(data2,offset,crc(data2,offset-4,4));offset+=4;return data2.buffer};UPNG.encode.compressPNG=function(out,filter,levelZero){for(var i3=0;i3<out.frames.length;i3++){var frm=out.frames[i3],nw=frm.rect.width,nh=frm.rect.height;var fdata=new Uint8Array(nh*frm.bpl+nh);frm.cimg=UPNG.encode._filterZero(frm.img,nh,frm.bpp,frm.bpl,fdata,filter,levelZero)}};UPNG.encode.compress=function(bufs,w,h,ps,prms){var onlyBlend=prms[0],evenCrd=prms[1],forbidPrev=prms[2],minBits=prms[3],forbidPlte=prms[4];var ctype=6,depth=8,alphaAnd=255;for(var j=0;j<bufs.length;j++){var img=new Uint8Array(bufs[j]),ilen=img.length;for(var i3=0;i3<ilen;i3+=4)alphaAnd&=img[i3+3]}var gotAlpha=alphaAnd!=255;var frms=UPNG.encode.framize(bufs,w,h,onlyBlend,evenCrd,forbidPrev);var cmap={},plte=[],inds=[];if(ps!=0){var nbufs=[];for(var i3=0;i3<frms.length;i3++)nbufs.push(frms[i3].img.buffer);var abuf=UPNG.encode.concatRGBA(nbufs),qres=UPNG.quantize(abuf,ps);var cof=0,bb=new Uint8Array(qres.abuf);for(var i3=0;i3<frms.length;i3++){var ti=frms[i3].img,bln=ti.length;inds.push(new Uint8Array(qres.inds.buffer,cof>>2,bln>>2));for(var j=0;j<bln;j+=4){ti[j]=bb[cof+j];ti[j+1]=bb[cof+j+1];ti[j+2]=bb[cof+j+2];ti[j+3]=bb[cof+j+3]}cof+=bln}for(var i3=0;i3<qres.plte.length;i3++)plte.push(qres.plte[i3].est.rgba)}else{for(var j=0;j<frms.length;j++){var frm=frms[j],img32=new Uint32Array(frm.img.buffer),nw=frm.rect.width,ilen=img32.length;var ind=new Uint8Array(ilen);inds.push(ind);for(var i3=0;i3<ilen;i3++){var c=img32[i3];if(i3!=0&&c==img32[i3-1])ind[i3]=ind[i3-1];else if(i3>nw&&c==img32[i3-nw])ind[i3]=ind[i3-nw];else{var cmc=cmap[c];if(cmc==null){cmap[c]=cmc=plte.length;plte.push(c);if(plte.length>=300)break}ind[i3]=cmc}}}}var cc=plte.length;if(cc<=256&&forbidPlte==false){if(cc<=2)depth=1;else if(cc<=4)depth=2;else if(cc<=16)depth=4;else depth=8;depth=Math.max(depth,minBits)}for(var j=0;j<frms.length;j++){var frm=frms[j],nx=frm.rect.x,ny=frm.rect.y,nw=frm.rect.width,nh=frm.rect.height;var cimg=frm.img,cimg32=new Uint32Array(cimg.buffer);var bpl=4*nw,bpp=4;if(cc<=256&&forbidPlte==false){bpl=Math.ceil(depth*nw/8);var nimg=new Uint8Array(bpl*nh);var inj=inds[j];for(var y=0;y<nh;y++){var i3=y*bpl,ii=y*nw;if(depth==8)for(var x=0;x<nw;x++)nimg[i3+x]=inj[ii+x];else if(depth==4)for(var x=0;x<nw;x++)nimg[i3+(x>>1)]|=inj[ii+x]<<4-(x&1)*4;else if(depth==2)for(var x=0;x<nw;x++)nimg[i3+(x>>2)]|=inj[ii+x]<<6-(x&3)*2;else if(depth==1)for(var x=0;x<nw;x++)nimg[i3+(x>>3)]|=inj[ii+x]<<7-(x&7)*1}cimg=nimg;ctype=3;bpp=1}else if(gotAlpha==false&&frms.length==1){var nimg=new Uint8Array(nw*nh*3),area=nw*nh;for(var i3=0;i3<area;i3++){var ti=i3*3,qi=i3*4;nimg[ti]=cimg[qi];nimg[ti+1]=cimg[qi+1];nimg[ti+2]=cimg[qi+2]}cimg=nimg;ctype=2;bpp=3;bpl=3*nw}frm.img=cimg;frm.bpl=bpl;frm.bpp=bpp}return{ctype,depth,plte,frames:frms}};UPNG.encode.framize=function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev){var frms=[];for(var j=0;j<bufs.length;j++){var cimg=new Uint8Array(bufs[j]),cimg32=new Uint32Array(cimg.buffer);var nimg;var nx=0,ny=0,nw=w,nh=h,blend=alwaysBlend?1:0;if(j!=0){var tlim=forbidPrev||alwaysBlend||j==1||frms[j-2].dispose!=0?1:2,tstp=0,tarea=1e9;for(var it=0;it<tlim;it++){var pimg=new Uint8Array(bufs[j-1-it]),p32=new Uint32Array(bufs[j-1-it]);var mix=w,miy=h,max=-1,may=-1;for(var y=0;y<h;y++)for(var x=0;x<w;x++){var i3=y*w+x;if(cimg32[i3]!=p32[i3]){if(x<mix)mix=x;if(x>max)max=x;if(y<miy)miy=y;if(y>may)may=y}}if(max==-1)mix=miy=max=may=0;if(evenCrd){if((mix&1)==1)mix--;if((miy&1)==1)miy--}var sarea=(max-mix+1)*(may-miy+1);if(sarea<tarea){tarea=sarea;tstp=it;nx=mix;ny=miy;nw=max-mix+1;nh=may-miy+1}}var pimg=new Uint8Array(bufs[j-1-tstp]);if(tstp==1)frms[j-1].dispose=2;nimg=new Uint8Array(nw*nh*4);UPNG._copyTile(pimg,w,h,nimg,nw,nh,-nx,-ny,0);blend=UPNG._copyTile(cimg,w,h,nimg,nw,nh,-nx,-ny,3)?1:0;if(blend==1)UPNG.encode._prepareDiff(cimg,w,h,nimg,{x:nx,y:ny,width:nw,height:nh});else UPNG._copyTile(cimg,w,h,nimg,nw,nh,-nx,-ny,0)}else nimg=cimg.slice(0);frms.push({rect:{x:nx,y:ny,width:nw,height:nh},img:nimg,blend,dispose:0})}if(alwaysBlend)for(var j=0;j<frms.length;j++){var frm=frms[j];if(frm.blend==1)continue;var r0=frm.rect,r1=frms[j-1].rect;var miX=Math.min(r0.x,r1.x),miY=Math.min(r0.y,r1.y);var maX=Math.max(r0.x+r0.width,r1.x+r1.width),maY=Math.max(r0.y+r0.height,r1.y+r1.height);var r={x:miX,y:miY,width:maX-miX,height:maY-miY};frms[j-1].dispose=1;if(j-1!=0)UPNG.encode._updateFrame(bufs,w,h,frms,j-1,r,evenCrd);UPNG.encode._updateFrame(bufs,w,h,frms,j,r,evenCrd)}var area=0;if(bufs.length!=1)for(var i3=0;i3<frms.length;i3++){var frm=frms[i3];area+=frm.rect.width*frm.rect.height}return frms};UPNG.encode._updateFrame=function(bufs,w,h,frms,i3,r,evenCrd){var U8=Uint8Array,U32=Uint32Array;var pimg=new U8(bufs[i3-1]),pimg32=new U32(bufs[i3-1]),nimg=i3+1<bufs.length?new U8(bufs[i3+1]):null;var cimg=new U8(bufs[i3]),cimg32=new U32(cimg.buffer);var mix=w,miy=h,max=-1,may=-1;for(var y=0;y<r.height;y++)for(var x=0;x<r.width;x++){var cx=r.x+x,cy=r.y+y;var j=cy*w+cx,cc=cimg32[j];if(cc==0||frms[i3-1].dispose==0&&pimg32[j]==cc&&(nimg==null||nimg[j*4+3]!=0)){}else{if(cx<mix)mix=cx;if(cx>max)max=cx;if(cy<miy)miy=cy;if(cy>may)may=cy}}if(max==-1)mix=miy=max=may=0;if(evenCrd){if((mix&1)==1)mix--;if((miy&1)==1)miy--}r={x:mix,y:miy,width:max-mix+1,height:may-miy+1};var fr=frms[i3];fr.rect=r;fr.blend=1;fr.img=new Uint8Array(r.width*r.height*4);if(frms[i3-1].dispose==0){UPNG._copyTile(pimg,w,h,fr.img,r.width,r.height,-r.x,-r.y,0);UPNG.encode._prepareDiff(cimg,w,h,fr.img,r)}else UPNG._copyTile(cimg,w,h,fr.img,r.width,r.height,-r.x,-r.y,0)};UPNG.encode._prepareDiff=function(cimg,w,h,nimg,rec){UPNG._copyTile(cimg,w,h,nimg,rec.width,rec.height,-rec.x,-rec.y,2)};UPNG.encode._filterZero=function(img,h,bpp,bpl,data2,filter,levelZero){var fls=[],ftry=[0,1,2,3,4];if(filter!=-1)ftry=[filter];else if(h*bpl>500000||bpp==1)ftry=[0];var opts;if(levelZero)opts={level:0};var CMPR=levelZero&&UZIP!=null?UZIP:import_pako4.default;for(var i3=0;i3<ftry.length;i3++){for(var y=0;y<h;y++)UPNG.encode._filterLine(data2,img,y,bpl,bpp,ftry[i3]);fls.push(CMPR["deflate"](data2,opts))}var ti,tsize=1e9;for(var i3=0;i3<fls.length;i3++)if(fls[i3].length<tsize){ti=i3;tsize=fls[i3].length}return fls[ti]};UPNG.encode._filterLine=function(data2,img,y,bpl,bpp,type){var i3=y*bpl,di=i3+y,paeth=UPNG.decode._paeth;data2[di]=type;di++;if(type==0){if(bpl<500)for(var x=0;x<bpl;x++)data2[di+x]=img[i3+x];else data2.set(new Uint8Array(img.buffer,i3,bpl),di)}else if(type==1){for(var x=0;x<bpp;x++)data2[di+x]=img[i3+x];for(var x=bpp;x<bpl;x++)data2[di+x]=img[i3+x]-img[i3+x-bpp]+256&255}else if(y==0){for(var x=0;x<bpp;x++)data2[di+x]=img[i3+x];if(type==2)for(var x=bpp;x<bpl;x++)data2[di+x]=img[i3+x];if(type==3)for(var x=bpp;x<bpl;x++)data2[di+x]=img[i3+x]-(img[i3+x-bpp]>>1)+256&255;if(type==4)for(var x=bpp;x<bpl;x++)data2[di+x]=img[i3+x]-paeth(img[i3+x-bpp],0,0)+256&255}else{if(type==2){for(var x=0;x<bpl;x++)data2[di+x]=img[i3+x]+256-img[i3+x-bpl]&255}if(type==3){for(var x=0;x<bpp;x++)data2[di+x]=img[i3+x]+256-(img[i3+x-bpl]>>1)&255;for(var x=bpp;x<bpl;x++)data2[di+x]=img[i3+x]+256-(img[i3+x-bpl]+img[i3+x-bpp]>>1)&255}if(type==4){for(var x=0;x<bpp;x++)data2[di+x]=img[i3+x]+256-paeth(0,img[i3+x-bpl],0)&255;for(var x=bpp;x<bpl;x++)data2[di+x]=img[i3+x]+256-paeth(img[i3+x-bpp],img[i3+x-bpl],img[i3+x-bpp-bpl])&255}}};UPNG.crc={table:function(){var tab=new Uint32Array(256);for(var n=0;n<256;n++){var c=n;for(var k=0;k<8;k++){if(c&1)c=3988292384^c>>>1;else c=c>>>1}tab[n]=c}return tab}(),update:function(c,buf,off,len2){for(var i3=0;i3<len2;i3++)c=UPNG.crc.table[(c^buf[off+i3])&255]^c>>>8;return c},crc:function(b,o,l){return UPNG.crc.update(4294967295,b,o,l)^4294967295}};UPNG.quantize=function(abuf,ps){var oimg=new Uint8Array(abuf),nimg=oimg.slice(0),nimg32=new Uint32Array(nimg.buffer);var KD=UPNG.quantize.getKDtree(nimg,ps);var root=KD[0],leafs=KD[1];var planeDst=UPNG.quantize.planeDst;var sb=oimg,tb=nimg32,len2=sb.length;var inds=new Uint8Array(oimg.length>>2);for(var i3=0;i3<len2;i3+=4){var r=sb[i3]*(1/255),g=sb[i3+1]*(1/255),b=sb[i3+2]*(1/255),a=sb[i3+3]*(1/255);var nd=UPNG.quantize.getNearest(root,r,g,b,a);inds[i3>>2]=nd.ind;tb[i3>>2]=nd.est.rgba}return{abuf:nimg.buffer,inds,plte:leafs}};UPNG.quantize.getKDtree=function(nimg,ps,err){if(err==null)err=0.0001;var nimg32=new Uint32Array(nimg.buffer);var root={i0:0,i1:nimg.length,bst:null,est:null,tdst:0,left:null,right:null};root.bst=UPNG.quantize.stats(nimg,root.i0,root.i1);root.est=UPNG.quantize.estats(root.bst);var leafs=[root];while(leafs.length<ps){var maxL=0,mi=0;for(var i3=0;i3<leafs.length;i3++)if(leafs[i3].est.L>maxL){maxL=leafs[i3].est.L;mi=i3}if(maxL<err)break;var node=leafs[mi];var s0=UPNG.quantize.splitPixels(nimg,nimg32,node.i0,node.i1,node.est.e,node.est.eMq255);var s0wrong=node.i0>=s0||node.i1<=s0;if(s0wrong){node.est.L=0;continue}var ln={i0:node.i0,i1:s0,bst:null,est:null,tdst:0,left:null,right:null};ln.bst=UPNG.quantize.stats(nimg,ln.i0,ln.i1);ln.est=UPNG.quantize.estats(ln.bst);var rn={i0:s0,i1:node.i1,bst:null,est:null,tdst:0,left:null,right:null};rn.bst={R:[],m:[],N:node.bst.N-ln.bst.N};for(var i3=0;i3<16;i3++)rn.bst.R[i3]=node.bst.R[i3]-ln.bst.R[i3];for(var i3=0;i3<4;i3++)rn.bst.m[i3]=node.bst.m[i3]-ln.bst.m[i3];rn.est=UPNG.quantize.estats(rn.bst);node.left=ln;node.right=rn;leafs[mi]=ln;leafs.push(rn)}leafs.sort(function(a,b){return b.bst.N-a.bst.N});for(var i3=0;i3<leafs.length;i3++)leafs[i3].ind=i3;return[root,leafs]};UPNG.quantize.getNearest=function(nd,r,g,b,a){if(nd.left==null){nd.tdst=UPNG.quantize.dist(nd.est.q,r,g,b,a);return nd}var planeDst=UPNG.quantize.planeDst(nd.est,r,g,b,a);var{left:node0,right:node1}=nd;if(planeDst>0){node0=nd.right;node1=nd.left}var ln=UPNG.quantize.getNearest(node0,r,g,b,a);if(ln.tdst<=planeDst*planeDst)return ln;var rn=UPNG.quantize.getNearest(node1,r,g,b,a);return rn.tdst<ln.tdst?rn:ln};UPNG.quantize.planeDst=function(est,r,g,b,a){var e=est.e;return e[0]*r+e[1]*g+e[2]*b+e[3]*a-est.eMq};UPNG.quantize.dist=function(q,r,g,b,a){var d0=r-q[0],d1=g-q[1],d2=b-q[2],d3=a-q[3];return d0*d0+d1*d1+d2*d2+d3*d3};UPNG.quantize.splitPixels=function(nimg,nimg32,i0,i1,e,eMq){var vecDot=UPNG.quantize.vecDot;i1-=4;var shfs=0;while(i0<i1){while(vecDot(nimg,i0,e)<=eMq)i0+=4;while(vecDot(nimg,i1,e)>eMq)i1-=4;if(i0>=i1)break;var t=nimg32[i0>>2];nimg32[i0>>2]=nimg32[i1>>2];nimg32[i1>>2]=t;i0+=4;i1-=4}while(vecDot(nimg,i0,e)>eMq)i0-=4;return i0+4};UPNG.quantize.vecDot=function(nimg,i3,e){return nimg[i3]*e[0]+nimg[i3+1]*e[1]+nimg[i3+2]*e[2]+nimg[i3+3]*e[3]};UPNG.quantize.stats=function(nimg,i0,i1){var R=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var m=[0,0,0,0];var N=i1-i0>>2;for(var i3=i0;i3<i1;i3+=4){var r=nimg[i3]*(1/255),g=nimg[i3+1]*(1/255),b=nimg[i3+2]*(1/255),a=nimg[i3+3]*(1/255);m[0]+=r;m[1]+=g;m[2]+=b;m[3]+=a;R[0]+=r*r;R[1]+=r*g;R[2]+=r*b;R[3]+=r*a;R[5]+=g*g;R[6]+=g*b;R[7]+=g*a;R[10]+=b*b;R[11]+=b*a;R[15]+=a*a}R[4]=R[1];R[8]=R[2];R[9]=R[6];R[12]=R[3];R[13]=R[7];R[14]=R[11];return{R,m,N}};UPNG.quantize.estats=function(stats){var{R,m,N}=stats;var m0=m[0],m1=m[1],m2=m[2],m3=m[3],iN=N==0?0:1/N;var Rj=[R[0]-m0*m0*iN,R[1]-m0*m1*iN,R[2]-m0*m2*iN,R[3]-m0*m3*iN,R[4]-m1*m0*iN,R[5]-m1*m1*iN,R[6]-m1*m2*iN,R[7]-m1*m3*iN,R[8]-m2*m0*iN,R[9]-m2*m1*iN,R[10]-m2*m2*iN,R[11]-m2*m3*iN,R[12]-m3*m0*iN,R[13]-m3*m1*iN,R[14]-m3*m2*iN,R[15]-m3*m3*iN];var A=Rj,M=UPNG.M4;var b=[0.5,0.5,0.5,0.5],mi=0,tmi=0;if(N!=0)for(var i3=0;i3<10;i3++){b=M.multVec(A,b);tmi=Math.sqrt(M.dot(b,b));b=M.sml(1/tmi,b);if(Math.abs(tmi-mi)<0.000000001)break;mi=tmi}var q=[m0*iN,m1*iN,m2*iN,m3*iN];var eMq255=M.dot(M.sml(255,q),b);return{Cov:Rj,q,e:b,L:mi,eMq255,eMq:M.dot(b,q),rgba:(Math.round(255*q[3])<<24|Math.round(255*q[2])<<16|Math.round(255*q[1])<<8|Math.round(255*q[0])<<0)>>>0}};UPNG.M4={multVec:function(m,v){return[m[0]*v[0]+m[1]*v[1]+m[2]*v[2]+m[3]*v[3],m[4]*v[0]+m[5]*v[1]+m[6]*v[2]+m[7]*v[3],m[8]*v[0]+m[9]*v[1]+m[10]*v[2]+m[11]*v[3],m[12]*v[0]+m[13]*v[1]+m[14]*v[2]+m[15]*v[3]]},dot:function(x,y){return x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3]},sml:function(a,y){return[a*y[0],a*y[1],a*y[2],a*y[3]]}};UPNG.encode.concatRGBA=function(bufs){var tlen=0;for(var i3=0;i3<bufs.length;i3++)tlen+=bufs[i3].byteLength;var nimg=new Uint8Array(tlen),noff=0;for(var i3=0;i3<bufs.length;i3++){var img=new Uint8Array(bufs[i3]),il=img.length;for(var j=0;j<il;j+=4){var r=img[j],g=img[j+1],b=img[j+2],a=img[j+3];if(a==0)r=g=b=0;nimg[noff+j]=r;nimg[noff+j+1]=g;nimg[noff+j+2]=b;nimg[noff+j+3]=a}noff+=il}return nimg.buffer};UPNG_default=UPNG});var getImageType=function(ctype){if(ctype===0)return PngType.Greyscale;if(ctype===2)return PngType.Truecolour;if(ctype===3)return PngType.IndexedColour;if(ctype===4)return PngType.GreyscaleWithAlpha;if(ctype===6)return PngType.TruecolourWithAlpha;throw new Error("Unknown color type: "+ctype)},splitAlphaChannel=function(rgbaChannel){var pixelCount=Math.floor(rgbaChannel.length/4);var rgbChannel=new Uint8Array(pixelCount*3);var alphaChannel=new Uint8Array(pixelCount*1);var rgbaOffset=0;var rgbOffset=0;var alphaOffset=0;while(rgbaOffset<rgbaChannel.length){rgbChannel[rgbOffset++]=rgbaChannel[rgbaOffset++];rgbChannel[rgbOffset++]=rgbaChannel[rgbaOffset++];rgbChannel[rgbOffset++]=rgbaChannel[rgbaOffset++];alphaChannel[alphaOffset++]=rgbaChannel[rgbaOffset++]}return{rgbChannel,alphaChannel}},PngType,PNG;var init_png=__esm(()=>{init_UPNG();(function(PngType2){PngType2["Greyscale"]="Greyscale";PngType2["Truecolour"]="Truecolour";PngType2["IndexedColour"]="IndexedColour";PngType2["GreyscaleWithAlpha"]="GreyscaleWithAlpha";PngType2["TruecolourWithAlpha"]="TruecolourWithAlpha"})(PngType||(PngType={}));PNG=function(){function PNG2(pngData){var upng=UPNG_default.decode(pngData);var frames=UPNG_default.toRGBA8(upng);if(frames.length>1)throw new Error("Animated PNGs are not supported");var frame=new Uint8Array(frames[0]);var _a=splitAlphaChannel(frame),rgbChannel=_a.rgbChannel,alphaChannel=_a.alphaChannel;this.rgbChannel=rgbChannel;var hasAlphaValues=alphaChannel.some(function(a){return a<255});if(hasAlphaValues)this.alphaChannel=alphaChannel;this.type=getImageType(upng.ctype);this.width=upng.width;this.height=upng.height;this.bitsPerComponent=8}PNG2.load=function(pngData){return new PNG2(pngData)};return PNG2}()});var PngEmbedder,PngEmbedder_default;var init_PngEmbedder=__esm(()=>{init_tslib_es62();init_png();PngEmbedder=function(){function PngEmbedder2(png){this.image=png;this.bitsPerComponent=png.bitsPerComponent;this.width=png.width;this.height=png.height;this.colorSpace="DeviceRGB"}PngEmbedder2.for=function(imageData){return __awaiter(this,undefined,undefined,function(){var png;return __generator(this,function(_a){png=PNG.load(imageData);return[2,new PngEmbedder2(png)]})})};PngEmbedder2.prototype.embedIntoContext=function(context2,ref){return __awaiter(this,undefined,undefined,function(){var SMask,xObject;return __generator(this,function(_a){SMask=this.embedAlphaChannel(context2);xObject=context2.flateStream(this.image.rgbChannel,{Type:"XObject",Subtype:"Image",BitsPerComponent:this.image.bitsPerComponent,Width:this.image.width,Height:this.image.height,ColorSpace:this.colorSpace,SMask});if(ref){context2.assign(ref,xObject);return[2,ref]}else{return[2,context2.register(xObject)]}return[2]})})};PngEmbedder2.prototype.embedAlphaChannel=function(context2){if(!this.image.alphaChannel)return;var xObject=context2.flateStream(this.image.alphaChannel,{Type:"XObject",Subtype:"Image",Height:this.image.height,Width:this.image.width,BitsPerComponent:this.image.bitsPerComponent,ColorSpace:"DeviceGray",Decode:[0,1]});return context2.register(xObject)};return PngEmbedder2}();PngEmbedder_default=PngEmbedder});var Stream,Stream_default;var init_Stream=__esm(()=>{Stream=function(){function Stream2(buffer,start,length){this.bytes=buffer;this.start=start||0;this.pos=this.start;this.end=!!start&&!!length?start+length:this.bytes.length}Object.defineProperty(Stream2.prototype,"length",{get:function(){return this.end-this.start},enumerable:false,configurable:true});Object.defineProperty(Stream2.prototype,"isEmpty",{get:function(){return this.length===0},enumerable:false,configurable:true});Stream2.prototype.getByte=function(){if(this.pos>=this.end){return-1}return this.bytes[this.pos++]};Stream2.prototype.getUint16=function(){var b0=this.getByte();var b1=this.getByte();if(b0===-1||b1===-1){return-1}return(b0<<8)+b1};Stream2.prototype.getInt32=function(){var b0=this.getByte();var b1=this.getByte();var b2=this.getByte();var b3=this.getByte();return(b0<<24)+(b1<<16)+(b2<<8)+b3};Stream2.prototype.getBytes=function(length,forceClamped){if(forceClamped===undefined){forceClamped=false}var bytes=this.bytes;var pos=this.pos;var strEnd=this.end;if(!length){var subarray=bytes.subarray(pos,strEnd);return forceClamped?new Uint8ClampedArray(subarray):subarray}else{var end=pos+length;if(end>strEnd){end=strEnd}this.pos=end;var subarray=bytes.subarray(pos,end);return forceClamped?new Uint8ClampedArray(subarray):subarray}};Stream2.prototype.peekByte=function(){var peekedByte=this.getByte();this.pos--;return peekedByte};Stream2.prototype.peekBytes=function(length,forceClamped){if(forceClamped===undefined){forceClamped=false}var bytes=this.getBytes(length,forceClamped);this.pos-=bytes.length;return bytes};Stream2.prototype.skip=function(n){if(!n){n=1}this.pos+=n};Stream2.prototype.reset=function(){this.pos=this.start};Stream2.prototype.moveStart=function(){this.start=this.pos};Stream2.prototype.makeSubStream=function(start,length){return new Stream2(this.bytes,start,length)};Stream2.prototype.decode=function(){return this.bytes};return Stream2}();Stream_default=Stream});var emptyBuffer,DecodeStream,DecodeStream_default;var init_DecodeStream=__esm(()=>{init_errors2();init_Stream();emptyBuffer=new Uint8Array(0);DecodeStream=function(){function DecodeStream2(maybeMinBufferLength){this.pos=0;this.bufferLength=0;this.eof=false;this.buffer=emptyBuffer;this.minBufferLength=512;if(maybeMinBufferLength){while(this.minBufferLength<maybeMinBufferLength){this.minBufferLength*=2}}}Object.defineProperty(DecodeStream2.prototype,"isEmpty",{get:function(){while(!this.eof&&this.bufferLength===0){this.readBlock()}return this.bufferLength===0},enumerable:false,configurable:true});DecodeStream2.prototype.getByte=function(){var pos=this.pos;while(this.bufferLength<=pos){if(this.eof){return-1}this.readBlock()}return this.buffer[this.pos++]};DecodeStream2.prototype.getUint16=function(){var b0=this.getByte();var b1=this.getByte();if(b0===-1||b1===-1){return-1}return(b0<<8)+b1};DecodeStream2.prototype.getInt32=function(){var b0=this.getByte();var b1=this.getByte();var b2=this.getByte();var b3=this.getByte();return(b0<<24)+(b1<<16)+(b2<<8)+b3};DecodeStream2.prototype.getBytes=function(length,forceClamped){if(forceClamped===undefined){forceClamped=false}var end;var pos=this.pos;if(length){this.ensureBuffer(pos+length);end=pos+length;while(!this.eof&&this.bufferLength<end){this.readBlock()}var bufEnd=this.bufferLength;if(end>bufEnd){end=bufEnd}}else{while(!this.eof){this.readBlock()}end=this.bufferLength}this.pos=end;var subarray=this.buffer.subarray(pos,end);return forceClamped&&!(subarray instanceof Uint8ClampedArray)?new Uint8ClampedArray(subarray):subarray};DecodeStream2.prototype.peekByte=function(){var peekedByte=this.getByte();this.pos--;return peekedByte};DecodeStream2.prototype.peekBytes=function(length,forceClamped){if(forceClamped===undefined){forceClamped=false}var bytes=this.getBytes(length,forceClamped);this.pos-=bytes.length;return bytes};DecodeStream2.prototype.skip=function(n){if(!n){n=1}this.pos+=n};DecodeStream2.prototype.reset=function(){this.pos=0};DecodeStream2.prototype.makeSubStream=function(start,length){var end=start+length;while(this.bufferLength<=end&&!this.eof){this.readBlock()}return new Stream_default(this.buffer,start,length)};DecodeStream2.prototype.decode=function(){while(!this.eof)this.readBlock();return this.buffer.subarray(0,this.bufferLength)};DecodeStream2.prototype.readBlock=function(){throw new MethodNotImplementedError(this.constructor.name,"readBlock")};DecodeStream2.prototype.ensureBuffer=function(requested){var buffer=this.buffer;if(requested<=buffer.byteLength){return buffer}var size=this.minBufferLength;while(size<requested){size*=2}var buffer2=new Uint8Array(size);buffer2.set(buffer);return this.buffer=buffer2};return DecodeStream2}();DecodeStream_default=DecodeStream});var isSpace=function(ch){return ch===32||ch===9||ch===13||ch===10},Ascii85Stream,Ascii85Stream_default;var init_Ascii85Stream=__esm(()=>{init_tslib_es62();init_DecodeStream();Ascii85Stream=function(_super){__extends(Ascii85Stream2,_super);function Ascii85Stream2(stream,maybeLength){var _this=_super.call(this,maybeLength)||this;_this.stream=stream;_this.input=new Uint8Array(5);if(maybeLength){maybeLength=0.8*maybeLength}return _this}Ascii85Stream2.prototype.readBlock=function(){var TILDA_CHAR=126;var Z_LOWER_CHAR=122;var EOF=-1;var stream=this.stream;var c=stream.getByte();while(isSpace(c)){c=stream.getByte()}if(c===EOF||c===TILDA_CHAR){this.eof=true;return}var bufferLength=this.bufferLength;var buffer;var i3;if(c===Z_LOWER_CHAR){buffer=this.ensureBuffer(bufferLength+4);for(i3=0;i3<4;++i3){buffer[bufferLength+i3]=0}this.bufferLength+=4}else{var input=this.input;input[0]=c;for(i3=1;i3<5;++i3){c=stream.getByte();while(isSpace(c)){c=stream.getByte()}input[i3]=c;if(c===EOF||c===TILDA_CHAR){break}}buffer=this.ensureBuffer(bufferLength+i3-1);this.bufferLength+=i3-1;if(i3<5){for(;i3<5;++i3){input[i3]=33+84}this.eof=true}var t=0;for(i3=0;i3<5;++i3){t=t*85+(input[i3]-33)}for(i3=3;i3>=0;--i3){buffer[bufferLength+i3]=t&255;t>>=8}}};return Ascii85Stream2}(DecodeStream_default);Ascii85Stream_default=Ascii85Stream});var AsciiHexStream,AsciiHexStream_default;var init_AsciiHexStream=__esm(()=>{init_tslib_es62();init_DecodeStream();AsciiHexStream=function(_super){__extends(AsciiHexStream2,_super);function AsciiHexStream2(stream,maybeLength){var _this=_super.call(this,maybeLength)||this;_this.stream=stream;_this.firstDigit=-1;if(maybeLength){maybeLength=0.5*maybeLength}return _this}AsciiHexStream2.prototype.readBlock=function(){var UPSTREAM_BLOCK_SIZE=8000;var bytes=this.stream.getBytes(UPSTREAM_BLOCK_SIZE);if(!bytes.length){this.eof=true;return}var maxDecodeLength=bytes.length+1>>1;var buffer=this.ensureBuffer(this.bufferLength+maxDecodeLength);var bufferLength=this.bufferLength;var firstDigit=this.firstDigit;for(var i3=0,ii=bytes.length;i3<ii;i3++){var ch=bytes[i3];var digit=undefined;if(ch>=48&&ch<=57){digit=ch&15}else if(ch>=65&&ch<=70||ch>=97&&ch<=102){digit=(ch&15)+9}else if(ch===62){this.eof=true;break}else{continue}if(firstDigit<0){firstDigit=digit}else{buffer[bufferLength++]=firstDigit<<4|digit;firstDigit=-1}}if(firstDigit>=0&&this.eof){buffer[bufferLength++]=firstDigit<<4;firstDigit=-1}this.firstDigit=firstDigit;this.bufferLength=bufferLength};return AsciiHexStream2}(DecodeStream_default);AsciiHexStream_default=AsciiHexStream});var codeLenCodeMap,lengthDecode,distDecode,fixedLitCodeTab,fixedDistCodeTab,FlateStream,FlateStream_default;var init_FlateStream=__esm(()=>{init_tslib_es62();init_DecodeStream();codeLenCodeMap=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);lengthDecode=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]);distDecode=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]);fixedLitCodeTab=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,590000,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9];fixedDistCodeTab=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];FlateStream=function(_super){__extends(FlateStream2,_super);function FlateStream2(stream,maybeLength){var _this=_super.call(this,maybeLength)||this;_this.stream=stream;var cmf=stream.getByte();var flg=stream.getByte();if(cmf===-1||flg===-1){throw new Error("Invalid header in flate stream: "+cmf+", "+flg)}if((cmf&15)!==8){throw new Error("Unknown compression method in flate stream: "+cmf+", "+flg)}if(((cmf<<8)+flg)%31!==0){throw new Error("Bad FCHECK in flate stream: "+cmf+", "+flg)}if(flg&32){throw new Error("FDICT bit set in flate stream: "+cmf+", "+flg)}_this.codeSize=0;_this.codeBuf=0;return _this}FlateStream2.prototype.readBlock=function(){var buffer;var len2;var str=this.stream;var hdr=this.getBits(3);if(hdr&1){this.eof=true}hdr>>=1;if(hdr===0){var b=undefined;if((b=str.getByte())===-1){throw new Error("Bad block header in flate stream")}var blockLen=b;if((b=str.getByte())===-1){throw new Error("Bad block header in flate stream")}blockLen|=b<<8;if((b=str.getByte())===-1){throw new Error("Bad block header in flate stream")}var check=b;if((b=str.getByte())===-1){throw new Error("Bad block header in flate stream")}check|=b<<8;if(check!==(~blockLen&65535)&&(blockLen!==0||check!==0)){throw new Error("Bad uncompressed block length in flate stream")}this.codeBuf=0;this.codeSize=0;var bufferLength=this.bufferLength;buffer=this.ensureBuffer(bufferLength+blockLen);var end=bufferLength+blockLen;this.bufferLength=end;if(blockLen===0){if(str.peekByte()===-1){this.eof=true}}else{for(var n=bufferLength;n<end;++n){if((b=str.getByte())===-1){this.eof=true;break}buffer[n]=b}}return}var litCodeTable;var distCodeTable;if(hdr===1){litCodeTable=fixedLitCodeTab;distCodeTable=fixedDistCodeTab}else if(hdr===2){var numLitCodes=this.getBits(5)+257;var numDistCodes=this.getBits(5)+1;var numCodeLenCodes=this.getBits(4)+4;var codeLenCodeLengths=new Uint8Array(codeLenCodeMap.length);var i3=undefined;for(i3=0;i3<numCodeLenCodes;++i3){codeLenCodeLengths[codeLenCodeMap[i3]]=this.getBits(3)}var codeLenCodeTab=this.generateHuffmanTable(codeLenCodeLengths);len2=0;i3=0;var codes=numLitCodes+numDistCodes;var codeLengths=new Uint8Array(codes);var bitsLength=undefined;var bitsOffset=undefined;var what=undefined;while(i3<codes){var code=this.getCode(codeLenCodeTab);if(code===16){bitsLength=2;bitsOffset=3;what=len2}else if(code===17){bitsLength=3;bitsOffset=3;what=len2=0}else if(code===18){bitsLength=7;bitsOffset=11;what=len2=0}else{codeLengths[i3++]=len2=code;continue}var repeatLength=this.getBits(bitsLength)+bitsOffset;while(repeatLength-- >0){codeLengths[i3++]=what}}litCodeTable=this.generateHuffmanTable(codeLengths.subarray(0,numLitCodes));distCodeTable=this.generateHuffmanTable(codeLengths.subarray(numLitCodes,codes))}else{throw new Error("Unknown block type in flate stream")}buffer=this.buffer;var limit=buffer?buffer.length:0;var pos=this.bufferLength;while(true){var code1=this.getCode(litCodeTable);if(code1<256){if(pos+1>=limit){buffer=this.ensureBuffer(pos+1);limit=buffer.length}buffer[pos++]=code1;continue}if(code1===256){this.bufferLength=pos;return}code1-=257;code1=lengthDecode[code1];var code2=code1>>16;if(code2>0){code2=this.getBits(code2)}len2=(code1&65535)+code2;code1=this.getCode(distCodeTable);code1=distDecode[code1];code2=code1>>16;if(code2>0){code2=this.getBits(code2)}var dist=(code1&65535)+code2;if(pos+len2>=limit){buffer=this.ensureBuffer(pos+len2);limit=buffer.length}for(var k=0;k<len2;++k,++pos){buffer[pos]=buffer[pos-dist]}}};FlateStream2.prototype.getBits=function(bits){var str=this.stream;var codeSize=this.codeSize;var codeBuf=this.codeBuf;var b;while(codeSize<bits){if((b=str.getByte())===-1){throw new Error("Bad encoding in flate stream")}codeBuf|=b<<codeSize;codeSize+=8}b=codeBuf&(1<<bits)-1;this.codeBuf=codeBuf>>bits;this.codeSize=codeSize-=bits;return b};FlateStream2.prototype.getCode=function(table){var str=this.stream;var codes=table[0];var maxLen=table[1];var codeSize=this.codeSize;var codeBuf=this.codeBuf;var b;while(codeSize<maxLen){if((b=str.getByte())===-1){break}codeBuf|=b<<codeSize;codeSize+=8}var code=codes[codeBuf&(1<<maxLen)-1];if(typeof codes==="number"){console.log("FLATE:",code)}var codeLen=code>>16;var codeVal=code&65535;if(codeLen<1||codeSize<codeLen){throw new Error("Bad encoding in flate stream")}this.codeBuf=codeBuf>>codeLen;this.codeSize=codeSize-codeLen;return codeVal};FlateStream2.prototype.generateHuffmanTable=function(lengths){var n=lengths.length;var maxLen=0;var i3;for(i3=0;i3<n;++i3){if(lengths[i3]>maxLen){maxLen=lengths[i3]}}var size=1<<maxLen;var codes=new Int32Array(size);for(var len2=1,code=0,skip=2;len2<=maxLen;++len2,code<<=1,skip<<=1){for(var val=0;val<n;++val){if(lengths[val]===len2){var code2=0;var t=code;for(i3=0;i3<len2;++i3){code2=code2<<1|t&1;t>>=1}for(i3=code2;i3<size;i3+=skip){codes[i3]=len2<<16|val}++code}}}return[codes,maxLen]};return FlateStream2}(DecodeStream_default);FlateStream_default=FlateStream});var LZWStream,LZWStream_default;var init_LZWStream=__esm(()=>{init_tslib_es62();init_DecodeStream();LZWStream=function(_super){__extends(LZWStream2,_super);function LZWStream2(stream,maybeLength,earlyChange){var _this=_super.call(this,maybeLength)||this;_this.stream=stream;_this.cachedData=0;_this.bitsCached=0;var maxLzwDictionarySize=4096;var lzwState={earlyChange,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(maxLzwDictionarySize),dictionaryLengths:new Uint16Array(maxLzwDictionarySize),dictionaryPrevCodes:new Uint16Array(maxLzwDictionarySize),currentSequence:new Uint8Array(maxLzwDictionarySize),currentSequenceLength:0};for(var i3=0;i3<256;++i3){lzwState.dictionaryValues[i3]=i3;lzwState.dictionaryLengths[i3]=1}_this.lzwState=lzwState;return _this}LZWStream2.prototype.readBlock=function(){var blockSize=512;var estimatedDecodedSize=blockSize*2;var decodedSizeDelta=blockSize;var i3;var j;var q;var lzwState=this.lzwState;if(!lzwState){return}var earlyChange=lzwState.earlyChange;var nextCode=lzwState.nextCode;var dictionaryValues=lzwState.dictionaryValues;var dictionaryLengths=lzwState.dictionaryLengths;var dictionaryPrevCodes=lzwState.dictionaryPrevCodes;var codeLength=lzwState.codeLength;var prevCode=lzwState.prevCode;var currentSequence=lzwState.currentSequence;var currentSequenceLength=lzwState.currentSequenceLength;var decodedLength=0;var currentBufferLength=this.bufferLength;var buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize);for(i3=0;i3<blockSize;i3++){var code=this.readBits(codeLength);var hasPrev=currentSequenceLength>0;if(!code||code<256){currentSequence[0]=code;currentSequenceLength=1}else if(code>=258){if(code<nextCode){currentSequenceLength=dictionaryLengths[code];for(j=currentSequenceLength-1,q=code;j>=0;j--){currentSequence[j]=dictionaryValues[q];q=dictionaryPrevCodes[q]}}else{currentSequence[currentSequenceLength++]=currentSequence[0]}}else if(code===256){codeLength=9;nextCode=258;currentSequenceLength=0;continue}else{this.eof=true;delete this.lzwState;break}if(hasPrev){dictionaryPrevCodes[nextCode]=prevCode;dictionaryLengths[nextCode]=dictionaryLengths[prevCode]+1;dictionaryValues[nextCode]=currentSequence[0];nextCode++;codeLength=nextCode+earlyChange&nextCode+earlyChange-1?codeLength:Math.min(Math.log(nextCode+earlyChange)/0.6931471805599453+1,12)|0}prevCode=code;decodedLength+=currentSequenceLength;if(estimatedDecodedSize<decodedLength){do{estimatedDecodedSize+=decodedSizeDelta}while(estimatedDecodedSize<decodedLength);buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize)}for(j=0;j<currentSequenceLength;j++){buffer[currentBufferLength++]=currentSequence[j]}}lzwState.nextCode=nextCode;lzwState.codeLength=codeLength;lzwState.prevCode=prevCode;lzwState.currentSequenceLength=currentSequenceLength;this.bufferLength=currentBufferLength};LZWStream2.prototype.readBits=function(n){var bitsCached=this.bitsCached;var cachedData=this.cachedData;while(bitsCached<n){var c=this.stream.getByte();if(c===-1){this.eof=true;return null}cachedData=cachedData<<8|c;bitsCached+=8}this.bitsCached=bitsCached-=n;this.cachedData=cachedData;return cachedData>>>bitsCached&(1<<n)-1};return LZWStream2}(DecodeStream_default);LZWStream_default=LZWStream});var RunLengthStream,RunLengthStream_default;var init_RunLengthStream=__esm(()=>{init_tslib_es62();init_DecodeStream();RunLengthStream=function(_super){__extends(RunLengthStream2,_super);function RunLengthStream2(stream,maybeLength){var _this=_super.call(this,maybeLength)||this;_this.stream=stream;return _this}RunLengthStream2.prototype.readBlock=function(){var repeatHeader=this.stream.getBytes(2);if(!repeatHeader||repeatHeader.length<2||repeatHeader[0]===128){this.eof=true;return}var buffer;var bufferLength=this.bufferLength;var n=repeatHeader[0];if(n<128){buffer=this.ensureBuffer(bufferLength+n+1);buffer[bufferLength++]=repeatHeader[1];if(n>0){var source=this.stream.getBytes(n);buffer.set(source,bufferLength);bufferLength+=n}}else{n=257-n;var b=repeatHeader[1];buffer=this.ensureBuffer(bufferLength+n+1);for(var i3=0;i3<n;i3++){buffer[bufferLength++]=b}}this.bufferLength=bufferLength};return RunLengthStream2}(DecodeStream_default);RunLengthStream_default=RunLengthStream});var decodeStream=function(stream,encoding,params){if(encoding===PDFName_default.of("FlateDecode")){return new FlateStream_default(stream)}if(encoding===PDFName_default.of("LZWDecode")){var earlyChange=1;if(params instanceof PDFDict_default){var EarlyChange=params.lookup(PDFName_default.of("EarlyChange"));if(EarlyChange instanceof PDFNumber_default){earlyChange=EarlyChange.asNumber()}}return new LZWStream_default(stream,undefined,earlyChange)}if(encoding===PDFName_default.of("ASCII85Decode")){return new Ascii85Stream_default(stream)}if(encoding===PDFName_default.of("ASCIIHexDecode")){return new AsciiHexStream_default(stream)}if(encoding===PDFName_default.of("RunLengthDecode")){return new RunLengthStream_default(stream)}throw new UnsupportedEncodingError(encoding.asString())},decodePDFRawStream=function(_a){var{dict,contents}=_a;var stream=new Stream_default(contents);var Filter=dict.lookup(PDFName_default.of("Filter"));var DecodeParms=dict.lookup(PDFName_default.of("DecodeParms"));if(Filter instanceof PDFName_default){stream=decodeStream(stream,Filter,DecodeParms)}else if(Filter instanceof PDFArray_default){for(var idx3=0,len2=Filter.size();idx3<len2;idx3++){stream=decodeStream(stream,Filter.lookup(idx3,PDFName_default),DecodeParms&&DecodeParms.lookupMaybe(idx3,PDFDict_default))}}else if(!!Filter){throw new UnexpectedObjectTypeError([PDFName_default,PDFArray_default],Filter)}return stream};var init_decode=__esm(()=>{init_errors2();init_PDFArray();init_PDFDict();init_PDFName();init_PDFNumber();init_Ascii85Stream();init_AsciiHexStream();init_FlateStream();init_LZWStream();init_RunLengthStream();init_Stream()});var fullPageBoundingBox=function(page){var mediaBox=page.MediaBox();var width=mediaBox.lookup(2,PDFNumber_default).asNumber()-mediaBox.lookup(0,PDFNumber_default).asNumber();var height=mediaBox.lookup(3,PDFNumber_default).asNumber()-mediaBox.lookup(1,PDFNumber_default).asNumber();return{left:0,bottom:0,right:width,top:height}},boundingBoxAdjustedMatrix=function(bb){return[1,0,0,1,-bb.left,-bb.bottom]},PDFPageEmbedder,PDFPageEmbedder_default;var init_PDFPageEmbedder=__esm(()=>{init_tslib_es62();init_errors2();init_PDFNumber();init_PDFRawStream();init_PDFStream();init_decode();init_PDFContentStream();init_CharCodes();init_utils2();PDFPageEmbedder=function(){function PDFPageEmbedder2(page,boundingBox,transformationMatrix){this.page=page;var bb=boundingBox!==null&&boundingBox!==undefined?boundingBox:fullPageBoundingBox(page);this.width=bb.right-bb.left;this.height=bb.top-bb.bottom;this.boundingBox=bb;this.transformationMatrix=transformationMatrix!==null&&transformationMatrix!==undefined?transformationMatrix:boundingBoxAdjustedMatrix(bb)}PDFPageEmbedder2.for=function(page,boundingBox,transformationMatrix){return __awaiter(this,undefined,undefined,function(){return __generator(this,function(_a){return[2,new PDFPageEmbedder2(page,boundingBox,transformationMatrix)]})})};PDFPageEmbedder2.prototype.embedIntoContext=function(context2,ref){return __awaiter(this,undefined,undefined,function(){var _a,Contents,Resources,decodedContents,_b,left,bottom,right,top,xObject;return __generator(this,function(_c){_a=this.page.normalizedEntries(),Contents=_a.Contents,Resources=_a.Resources;if(!Contents)throw new MissingPageContentsEmbeddingError;decodedContents=this.decodeContents(Contents);_b=this.boundingBox,left=_b.left,bottom=_b.bottom,right=_b.right,top=_b.top;xObject=context2.flateStream(decodedContents,{Type:"XObject",Subtype:"Form",FormType:1,BBox:[left,bottom,right,top],Matrix:this.transformationMatrix,Resources});if(ref){context2.assign(ref,xObject);return[2,ref]}else{return[2,context2.register(xObject)]}return[2]})})};PDFPageEmbedder2.prototype.decodeContents=function(contents){var newline=Uint8Array.of(CharCodes_default.Newline);var decodedContents=[];for(var idx3=0,len2=contents.size();idx3<len2;idx3++){var stream=contents.lookup(idx3,PDFStream_default);var content=undefined;if(stream instanceof PDFRawStream_default){content=decodePDFRawStream(stream).decode()}else if(stream instanceof PDFContentStream_default){content=stream.getUnencodedContents()}else{throw new UnrecognizedStreamTypeError(stream)}decodedContents.push(content,newline)}return mergeIntoTypedArray.apply(undefined,decodedContents)};return PDFPageEmbedder2}();PDFPageEmbedder_default=PDFPageEmbedder});var asEnum=function(rawValue,enumType){if(rawValue===undefined)return;return enumType[rawValue]},NonFullScreenPageMode,ReadingDirection,PrintScaling,Duplex,ViewerPreferences,ViewerPreferences_default;var init_ViewerPreferences=__esm(()=>{init_PDFArray();init_PDFBool();init_PDFName();init_PDFNumber();init_utils2();(function(NonFullScreenPageMode2){NonFullScreenPageMode2["UseNone"]="UseNone";NonFullScreenPageMode2["UseOutlines"]="UseOutlines";NonFullScreenPageMode2["UseThumbs"]="UseThumbs";NonFullScreenPageMode2["UseOC"]="UseOC"})(NonFullScreenPageMode||(NonFullScreenPageMode={}));(function(ReadingDirection2){ReadingDirection2["L2R"]="L2R";ReadingDirection2["R2L"]="R2L"})(ReadingDirection||(ReadingDirection={}));(function(PrintScaling2){PrintScaling2["None"]="None";PrintScaling2["AppDefault"]="AppDefault"})(PrintScaling||(PrintScaling={}));(function(Duplex2){Duplex2["Simplex"]="Simplex";Duplex2["DuplexFlipShortEdge"]="DuplexFlipShortEdge";Duplex2["DuplexFlipLongEdge"]="DuplexFlipLongEdge"})(Duplex||(Duplex={}));ViewerPreferences=function(){function ViewerPreferences2(dict){this.dict=dict}ViewerPreferences2.prototype.lookupBool=function(key){var returnObj=this.dict.lookup(PDFName_default.of(key));if(returnObj instanceof PDFBool_default)return returnObj;return};ViewerPreferences2.prototype.lookupName=function(key){var returnObj=this.dict.lookup(PDFName_default.of(key));if(returnObj instanceof PDFName_default)return returnObj;return};ViewerPreferences2.prototype.HideToolbar=function(){return this.lookupBool("HideToolbar")};ViewerPreferences2.prototype.HideMenubar=function(){return this.lookupBool("HideMenubar")};ViewerPreferences2.prototype.HideWindowUI=function(){return this.lookupBool("HideWindowUI")};ViewerPreferences2.prototype.FitWindow=function(){return this.lookupBool("FitWindow")};ViewerPreferences2.prototype.CenterWindow=function(){return this.lookupBool("CenterWindow")};ViewerPreferences2.prototype.DisplayDocTitle=function(){return this.lookupBool("DisplayDocTitle")};ViewerPreferences2.prototype.NonFullScreenPageMode=function(){return this.lookupName("NonFullScreenPageMode")};ViewerPreferences2.prototype.Direction=function(){return this.lookupName("Direction")};ViewerPreferences2.prototype.PrintScaling=function(){return this.lookupName("PrintScaling")};ViewerPreferences2.prototype.Duplex=function(){return this.lookupName("Duplex")};ViewerPreferences2.prototype.PickTrayByPDFSize=function(){return this.lookupBool("PickTrayByPDFSize")};ViewerPreferences2.prototype.PrintPageRange=function(){var PrintPageRange=this.dict.lookup(PDFName_default.of("PrintPageRange"));if(PrintPageRange instanceof PDFArray_default)return PrintPageRange;return};ViewerPreferences2.prototype.NumCopies=function(){var NumCopies=this.dict.lookup(PDFName_default.of("NumCopies"));if(NumCopies instanceof PDFNumber_default)return NumCopies;return};ViewerPreferences2.prototype.getHideToolbar=function(){var _a,_b;return(_b=(_a=this.HideToolbar())===null||_a===undefined?undefined:_a.asBoolean())!==null&&_b!==undefined?_b:false};ViewerPreferences2.prototype.getHideMenubar=function(){var _a,_b;return(_b=(_a=this.HideMenubar())===null||_a===undefined?undefined:_a.asBoolean())!==null&&_b!==undefined?_b:false};ViewerPreferences2.prototype.getHideWindowUI=function(){var _a,_b;return(_b=(_a=this.HideWindowUI())===null||_a===undefined?undefined:_a.asBoolean())!==null&&_b!==undefined?_b:false};ViewerPreferences2.prototype.getFitWindow=function(){var _a,_b;return(_b=(_a=this.FitWindow())===null||_a===undefined?undefined:_a.asBoolean())!==null&&_b!==undefined?_b:false};ViewerPreferences2.prototype.getCenterWindow=function(){var _a,_b;return(_b=(_a=this.CenterWindow())===null||_a===undefined?undefined:_a.asBoolean())!==null&&_b!==undefined?_b:false};ViewerPreferences2.prototype.getDisplayDocTitle=function(){var _a,_b;return(_b=(_a=this.DisplayDocTitle())===null||_a===undefined?undefined:_a.asBoolean())!==null&&_b!==undefined?_b:false};ViewerPreferences2.prototype.getNonFullScreenPageMode=function(){var _a,_b;var mode=(_a=this.NonFullScreenPageMode())===null||_a===undefined?undefined:_a.decodeText();return(_b=asEnum(mode,NonFullScreenPageMode))!==null&&_b!==undefined?_b:NonFullScreenPageMode.UseNone};ViewerPreferences2.prototype.getReadingDirection=function(){var _a,_b;var direction=(_a=this.Direction())===null||_a===undefined?undefined:_a.decodeText();return(_b=asEnum(direction,ReadingDirection))!==null&&_b!==undefined?_b:ReadingDirection.L2R};ViewerPreferences2.prototype.getPrintScaling=function(){var _a,_b;var scaling=(_a=this.PrintScaling())===null||_a===undefined?undefined:_a.decodeText();return(_b=asEnum(scaling,PrintScaling))!==null&&_b!==undefined?_b:PrintScaling.AppDefault};ViewerPreferences2.prototype.getDuplex=function(){var _a;var duplex=(_a=this.Duplex())===null||_a===undefined?undefined:_a.decodeText();return asEnum(duplex,Duplex)};ViewerPreferences2.prototype.getPickTrayByPDFSize=function(){var _a;return(_a=this.PickTrayByPDFSize())===null||_a===undefined?undefined:_a.asBoolean()};ViewerPreferences2.prototype.getPrintPageRange=function(){var rng=this.PrintPageRange();if(!rng)return[];var pageRanges=[];for(var i3=0;i3<rng.size();i3+=2){var start=rng.lookup(i3,PDFNumber_default).asNumber();var end=rng.lookup(i3+1,PDFNumber_default).asNumber();pageRanges.push({start,end})}return pageRanges};ViewerPreferences2.prototype.getNumCopies=function(){var _a,_b;return(_b=(_a=this.NumCopies())===null||_a===undefined?undefined:_a.asNumber())!==null&&_b!==undefined?_b:1};ViewerPreferences2.prototype.setHideToolbar=function(hideToolbar){var HideToolbar=this.dict.context.obj(hideToolbar);this.dict.set(PDFName_default.of("HideToolbar"),HideToolbar)};ViewerPreferences2.prototype.setHideMenubar=function(hideMenubar){var HideMenubar=this.dict.context.obj(hideMenubar);this.dict.set(PDFName_default.of("HideMenubar"),HideMenubar)};ViewerPreferences2.prototype.setHideWindowUI=function(hideWindowUI){var HideWindowUI=this.dict.context.obj(hideWindowUI);this.dict.set(PDFName_default.of("HideWindowUI"),HideWindowUI)};ViewerPreferences2.prototype.setFitWindow=function(fitWindow){var FitWindow=this.dict.context.obj(fitWindow);this.dict.set(PDFName_default.of("FitWindow"),FitWindow)};ViewerPreferences2.prototype.setCenterWindow=function(centerWindow){var CenterWindow=this.dict.context.obj(centerWindow);this.dict.set(PDFName_default.of("CenterWindow"),CenterWindow)};ViewerPreferences2.prototype.setDisplayDocTitle=function(displayTitle){var DisplayDocTitle=this.dict.context.obj(displayTitle);this.dict.set(PDFName_default.of("DisplayDocTitle"),DisplayDocTitle)};ViewerPreferences2.prototype.setNonFullScreenPageMode=function(nonFullScreenPageMode){assertIsOneOf(nonFullScreenPageMode,"nonFullScreenPageMode",NonFullScreenPageMode);var mode=PDFName_default.of(nonFullScreenPageMode);this.dict.set(PDFName_default.of("NonFullScreenPageMode"),mode)};ViewerPreferences2.prototype.setReadingDirection=function(readingDirection){assertIsOneOf(readingDirection,"readingDirection",ReadingDirection);var direction=PDFName_default.of(readingDirection);this.dict.set(PDFName_default.of("Direction"),direction)};ViewerPreferences2.prototype.setPrintScaling=function(printScaling){assertIsOneOf(printScaling,"printScaling",PrintScaling);var scaling=PDFName_default.of(printScaling);this.dict.set(PDFName_default.of("PrintScaling"),scaling)};ViewerPreferences2.prototype.setDuplex=function(duplex){assertIsOneOf(duplex,"duplex",Duplex);var dup=PDFName_default.of(duplex);this.dict.set(PDFName_default.of("Duplex"),dup)};ViewerPreferences2.prototype.setPickTrayByPDFSize=function(pickTrayByPDFSize){var PickTrayByPDFSize=this.dict.context.obj(pickTrayByPDFSize);this.dict.set(PDFName_default.of("PickTrayByPDFSize"),PickTrayByPDFSize)};ViewerPreferences2.prototype.setPrintPageRange=function(printPageRange){if(!Array.isArray(printPageRange))printPageRange=[printPageRange];var flatRange=[];for(var idx3=0,len2=printPageRange.length;idx3<len2;idx3++){flatRange.push(printPageRange[idx3].start);flatRange.push(printPageRange[idx3].end)}assertEachIs(flatRange,"printPageRange",["number"]);var pageRanges=this.dict.context.obj(flatRange);this.dict.set(PDFName_default.of("PrintPageRange"),pageRanges)};ViewerPreferences2.prototype.setNumCopies=function(numCopies){assertRange(numCopies,"numCopies",1,Number.MAX_VALUE);assertInteger(numCopies,"numCopies");var NumCopies=this.dict.context.obj(numCopies);this.dict.set(PDFName_default.of("NumCopies"),NumCopies)};ViewerPreferences2.fromDict=function(dict){return new ViewerPreferences2(dict)};ViewerPreferences2.create=function(context2){var dict=context2.obj({});return new ViewerPreferences2(dict)};return ViewerPreferences2}();ViewerPreferences_default=ViewerPreferences});var tfRegex,PDFAcroField,PDFAcroField_default;var init_PDFAcroField=__esm(()=>{init_PDFDict();init_PDFString();init_PDFHexString();init_PDFName();init_PDFNumber();init_PDFArray();init_PDFRef();init_utils2();init_errors2();tfRegex=/\/([^\0\t\n\f\r\ ]+)[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]+Tf/;PDFAcroField=function(){function PDFAcroField2(dict,ref){this.dict=dict;this.ref=ref}PDFAcroField2.prototype.T=function(){return this.dict.lookupMaybe(PDFName_default.of("T"),PDFString_default,PDFHexString_default)};PDFAcroField2.prototype.Ff=function(){var numberOrRef=this.getInheritableAttribute(PDFName_default.of("Ff"));return this.dict.context.lookupMaybe(numberOrRef,PDFNumber_default)};PDFAcroField2.prototype.V=function(){var valueOrRef=this.getInheritableAttribute(PDFName_default.of("V"));return this.dict.context.lookup(valueOrRef)};PDFAcroField2.prototype.Kids=function(){return this.dict.lookupMaybe(PDFName_default.of("Kids"),PDFArray_default)};PDFAcroField2.prototype.DA=function(){var da=this.dict.lookup(PDFName_default.of("DA"));if(da instanceof PDFString_default||da instanceof PDFHexString_default)return da;return};PDFAcroField2.prototype.setKids=function(kids){this.dict.set(PDFName_default.of("Kids"),this.dict.context.obj(kids))};PDFAcroField2.prototype.getParent=function(){var parentRef=this.dict.get(PDFName_default.of("Parent"));if(parentRef instanceof PDFRef_default){var parent_1=this.dict.lookup(PDFName_default.of("Parent"),PDFDict_default);return new PDFAcroField2(parent_1,parentRef)}return};PDFAcroField2.prototype.setParent=function(parent){if(!parent)this.dict.delete(PDFName_default.of("Parent"));else this.dict.set(PDFName_default.of("Parent"),parent)};PDFAcroField2.prototype.getFullyQualifiedName=function(){var parent=this.getParent();if(!parent)return this.getPartialName();return parent.getFullyQualifiedName()+"."+this.getPartialName()};PDFAcroField2.prototype.getPartialName=function(){var _a;return(_a=this.T())===null||_a===undefined?undefined:_a.decodeText()};PDFAcroField2.prototype.setPartialName=function(partialName){if(!partialName)this.dict.delete(PDFName_default.of("T"));else this.dict.set(PDFName_default.of("T"),PDFHexString_default.fromText(partialName))};PDFAcroField2.prototype.setDefaultAppearance=function(appearance){this.dict.set(PDFName_default.of("DA"),PDFString_default.of(appearance))};PDFAcroField2.prototype.getDefaultAppearance=function(){var DA=this.DA();if(DA instanceof PDFHexString_default){return DA.decodeText()}return DA===null||DA===undefined?undefined:DA.asString()};PDFAcroField2.prototype.setFontSize=function(fontSize){var _a;var name2=(_a=this.getFullyQualifiedName())!==null&&_a!==undefined?_a:"";var da=this.getDefaultAppearance();if(!da)throw new MissingDAEntryError(name2);var daMatch=findLastMatch(da,tfRegex);if(!daMatch.match)throw new MissingTfOperatorError(name2);var daStart=da.slice(0,daMatch.pos-daMatch.match[0].length);var daEnd=daMatch.pos<=da.length?da.slice(daMatch.pos):"";var fontName=daMatch.match[1];var modifiedDa=daStart+" /"+fontName+" "+fontSize+" Tf "+daEnd;this.setDefaultAppearance(modifiedDa)};PDFAcroField2.prototype.getFlags=function(){var _a,_b;return(_b=(_a=this.Ff())===null||_a===undefined?undefined:_a.asNumber())!==null&&_b!==undefined?_b:0};PDFAcroField2.prototype.setFlags=function(flags){this.dict.set(PDFName_default.of("Ff"),PDFNumber_default.of(flags))};PDFAcroField2.prototype.hasFlag=function(flag){var flags=this.getFlags();return(flags&flag)!==0};PDFAcroField2.prototype.setFlag=function(flag){var flags=this.getFlags();this.setFlags(flags|flag)};PDFAcroField2.prototype.clearFlag=function(flag){var flags=this.getFlags();this.setFlags(flags&~flag)};PDFAcroField2.prototype.setFlagTo=function(flag,enable){if(enable)this.setFlag(flag);else this.clearFlag(flag)};PDFAcroField2.prototype.getInheritableAttribute=function(name2){var attribute;this.ascend(function(node){if(!attribute)attribute=node.dict.get(name2)});return attribute};PDFAcroField2.prototype.ascend=function(visitor){visitor(this);var parent=this.getParent();if(parent)parent.ascend(visitor)};return PDFAcroField2}();PDFAcroField_default=PDFAcroField});var BorderStyle,BorderStyle_default;var init_BorderStyle=__esm(()=>{init_PDFName();init_PDFNumber();BorderStyle=function(){function BorderStyle2(dict){this.dict=dict}BorderStyle2.prototype.W=function(){var W=this.dict.lookup(PDFName_default.of("W"));if(W instanceof PDFNumber_default)return W;return};BorderStyle2.prototype.getWidth=function(){var _a,_b;return(_b=(_a=this.W())===null||_a===undefined?undefined:_a.asNumber())!==null&&_b!==undefined?_b:1};BorderStyle2.prototype.setWidth=function(width){var W=this.dict.context.obj(width);this.dict.set(PDFName_default.of("W"),W)};BorderStyle2.fromDict=function(dict){return new BorderStyle2(dict)};return BorderStyle2}();BorderStyle_default=BorderStyle});var PDFAnnotation,PDFAnnotation_default;var init_PDFAnnotation=__esm(()=>{init_PDFDict();init_PDFName();init_PDFStream();init_PDFArray();init_PDFRef();init_PDFNumber();PDFAnnotation=function(){function PDFAnnotation2(dict){this.dict=dict}PDFAnnotation2.prototype.Rect=function(){return this.dict.lookup(PDFName_default.of("Rect"),PDFArray_default)};PDFAnnotation2.prototype.AP=function(){return this.dict.lookupMaybe(PDFName_default.of("AP"),PDFDict_default)};PDFAnnotation2.prototype.F=function(){var numberOrRef=this.dict.lookup(PDFName_default.of("F"));return this.dict.context.lookupMaybe(numberOrRef,PDFNumber_default)};PDFAnnotation2.prototype.getRectangle=function(){var _a;var Rect=this.Rect();return(_a=Rect===null||Rect===undefined?undefined:Rect.asRectangle())!==null&&_a!==undefined?_a:{x:0,y:0,width:0,height:0}};PDFAnnotation2.prototype.setRectangle=function(rect){var{x,y,width,height}=rect;var Rect=this.dict.context.obj([x,y,x+width,y+height]);this.dict.set(PDFName_default.of("Rect"),Rect)};PDFAnnotation2.prototype.getAppearanceState=function(){var AS=this.dict.lookup(PDFName_default.of("AS"));if(AS instanceof PDFName_default)return AS;return};PDFAnnotation2.prototype.setAppearanceState=function(state){this.dict.set(PDFName_default.of("AS"),state)};PDFAnnotation2.prototype.setAppearances=function(appearances){this.dict.set(PDFName_default.of("AP"),appearances)};PDFAnnotation2.prototype.ensureAP=function(){var AP=this.AP();if(!AP){AP=this.dict.context.obj({});this.dict.set(PDFName_default.of("AP"),AP)}return AP};PDFAnnotation2.prototype.getNormalAppearance=function(){var AP=this.ensureAP();var N=AP.get(PDFName_default.of("N"));if(N instanceof PDFRef_default||N instanceof PDFDict_default)return N;throw new Error("Unexpected N type: "+(N===null||N===undefined?undefined:N.constructor.name))};PDFAnnotation2.prototype.setNormalAppearance=function(appearance){var AP=this.ensureAP();AP.set(PDFName_default.of("N"),appearance)};PDFAnnotation2.prototype.setRolloverAppearance=function(appearance){var AP=this.ensureAP();AP.set(PDFName_default.of("R"),appearance)};PDFAnnotation2.prototype.setDownAppearance=function(appearance){var AP=this.ensureAP();AP.set(PDFName_default.of("D"),appearance)};PDFAnnotation2.prototype.removeRolloverAppearance=function(){var AP=this.AP();AP===null||AP===undefined||AP.delete(PDFName_default.of("R"))};PDFAnnotation2.prototype.removeDownAppearance=function(){var AP=this.AP();AP===null||AP===undefined||AP.delete(PDFName_default.of("D"))};PDFAnnotation2.prototype.getAppearances=function(){var AP=this.AP();if(!AP)return;var N=AP.lookup(PDFName_default.of("N"),PDFDict_default,PDFStream_default);var R=AP.lookupMaybe(PDFName_default.of("R"),PDFDict_default,PDFStream_default);var D=AP.lookupMaybe(PDFName_default.of("D"),PDFDict_default,PDFStream_default);return{normal:N,rollover:R,down:D}};PDFAnnotation2.prototype.getFlags=function(){var _a,_b;return(_b=(_a=this.F())===null||_a===undefined?undefined:_a.asNumber())!==null&&_b!==undefined?_b:0};PDFAnnotation2.prototype.setFlags=function(flags){this.dict.set(PDFName_default.of("F"),PDFNumber_default.of(flags))};PDFAnnotation2.prototype.hasFlag=function(flag){var flags=this.getFlags();return(flags&flag)!==0};PDFAnnotation2.prototype.setFlag=function(flag){var flags=this.getFlags();this.setFlags(flags|flag)};PDFAnnotation2.prototype.clearFlag=function(flag){var flags=this.getFlags();this.setFlags(flags&~flag)};PDFAnnotation2.prototype.setFlagTo=function(flag,enable){if(enable)this.setFlag(flag);else this.clearFlag(flag)};PDFAnnotation2.fromDict=function(dict){return new PDFAnnotation2(dict)};return PDFAnnotation2}();PDFAnnotation_default=PDFAnnotation});var AppearanceCharacteristics,AppearanceCharacteristics_default;var init_AppearanceCharacteristics=__esm(()=>{init_PDFName();init_PDFNumber();init_PDFArray();init_PDFHexString();init_PDFString();AppearanceCharacteristics=function(){function AppearanceCharacteristics2(dict){this.dict=dict}AppearanceCharacteristics2.prototype.R=function(){var R=this.dict.lookup(PDFName_default.of("R"));if(R instanceof PDFNumber_default)return R;return};AppearanceCharacteristics2.prototype.BC=function(){var BC=this.dict.lookup(PDFName_default.of("BC"));if(BC instanceof PDFArray_default)return BC;return};AppearanceCharacteristics2.prototype.BG=function(){var BG=this.dict.lookup(PDFName_default.of("BG"));if(BG instanceof PDFArray_default)return BG;return};AppearanceCharacteristics2.prototype.CA=function(){var CA=this.dict.lookup(PDFName_default.of("CA"));if(CA instanceof PDFHexString_default||CA instanceof PDFString_default)return CA;return};AppearanceCharacteristics2.prototype.RC=function(){var RC=this.dict.lookup(PDFName_default.of("RC"));if(RC instanceof PDFHexString_default||RC instanceof PDFString_default)return RC;return};AppearanceCharacteristics2.prototype.AC=function(){var AC=this.dict.lookup(PDFName_default.of("AC"));if(AC instanceof PDFHexString_default||AC instanceof PDFString_default)return AC;return};AppearanceCharacteristics2.prototype.getRotation=function(){var _a;return(_a=this.R())===null||_a===undefined?undefined:_a.asNumber()};AppearanceCharacteristics2.prototype.getBorderColor=function(){var BC=this.BC();if(!BC)return;var components=[];for(var idx3=0,len2=BC===null||BC===undefined?undefined:BC.size();idx3<len2;idx3++){var component=BC.get(idx3);if(component instanceof PDFNumber_default)components.push(component.asNumber())}return components};AppearanceCharacteristics2.prototype.getBackgroundColor=function(){var BG=this.BG();if(!BG)return;var components=[];for(var idx3=0,len2=BG===null||BG===undefined?undefined:BG.size();idx3<len2;idx3++){var component=BG.get(idx3);if(component instanceof PDFNumber_default)components.push(component.asNumber())}return components};AppearanceCharacteristics2.prototype.getCaptions=function(){var CA=this.CA();var RC=this.RC();var AC=this.AC();return{normal:CA===null||CA===undefined?undefined:CA.decodeText(),rollover:RC===null||RC===undefined?undefined:RC.decodeText(),down:AC===null||AC===undefined?undefined:AC.decodeText()}};AppearanceCharacteristics2.prototype.setRotation=function(rotation){var R=this.dict.context.obj(rotation);this.dict.set(PDFName_default.of("R"),R)};AppearanceCharacteristics2.prototype.setBorderColor=function(color){var BC=this.dict.context.obj(color);this.dict.set(PDFName_default.of("BC"),BC)};AppearanceCharacteristics2.prototype.setBackgroundColor=function(color){var BG=this.dict.context.obj(color);this.dict.set(PDFName_default.of("BG"),BG)};AppearanceCharacteristics2.prototype.setCaptions=function(captions){var CA=PDFHexString_default.fromText(captions.normal);this.dict.set(PDFName_default.of("CA"),CA);if(captions.rollover){var RC=PDFHexString_default.fromText(captions.rollover);this.dict.set(PDFName_default.of("RC"),RC)}else{this.dict.delete(PDFName_default.of("RC"))}if(captions.down){var AC=PDFHexString_default.fromText(captions.down);this.dict.set(PDFName_default.of("AC"),AC)}else{this.dict.delete(PDFName_default.of("AC"))}};AppearanceCharacteristics2.fromDict=function(dict){return new AppearanceCharacteristics2(dict)};return AppearanceCharacteristics2}();AppearanceCharacteristics_default=AppearanceCharacteristics});var PDFWidgetAnnotation,PDFWidgetAnnotation_default;var init_PDFWidgetAnnotation=__esm(()=>{init_tslib_es62();init_PDFDict();init_PDFName();init_PDFRef();init_PDFString();init_PDFHexString();init_BorderStyle();init_PDFAnnotation();init_AppearanceCharacteristics();PDFWidgetAnnotation=function(_super){__extends(PDFWidgetAnnotation2,_super);function PDFWidgetAnnotation2(){return _super!==null&&_super.apply(this,arguments)||this}PDFWidgetAnnotation2.prototype.MK=function(){var MK=this.dict.lookup(PDFName_default.of("MK"));if(MK instanceof PDFDict_default)return MK;return};PDFWidgetAnnotation2.prototype.BS=function(){var BS=this.dict.lookup(PDFName_default.of("BS"));if(BS instanceof PDFDict_default)return BS;return};PDFWidgetAnnotation2.prototype.DA=function(){var da=this.dict.lookup(PDFName_default.of("DA"));if(da instanceof PDFString_default||da instanceof PDFHexString_default)return da;return};PDFWidgetAnnotation2.prototype.P=function(){var P=this.dict.get(PDFName_default.of("P"));if(P instanceof PDFRef_default)return P;return};PDFWidgetAnnotation2.prototype.setP=function(page){this.dict.set(PDFName_default.of("P"),page)};PDFWidgetAnnotation2.prototype.setDefaultAppearance=function(appearance){this.dict.set(PDFName_default.of("DA"),PDFString_default.of(appearance))};PDFWidgetAnnotation2.prototype.getDefaultAppearance=function(){var DA=this.DA();if(DA instanceof PDFHexString_default){return DA.decodeText()}return DA===null||DA===undefined?undefined:DA.asString()};PDFWidgetAnnotation2.prototype.getAppearanceCharacteristics=function(){var MK=this.MK();if(MK)return AppearanceCharacteristics_default.fromDict(MK);return};PDFWidgetAnnotation2.prototype.getOrCreateAppearanceCharacteristics=function(){var MK=this.MK();if(MK)return AppearanceCharacteristics_default.fromDict(MK);var ac=AppearanceCharacteristics_default.fromDict(this.dict.context.obj({}));this.dict.set(PDFName_default.of("MK"),ac.dict);return ac};PDFWidgetAnnotation2.prototype.getBorderStyle=function(){var BS=this.BS();if(BS)return BorderStyle_default.fromDict(BS);return};PDFWidgetAnnotation2.prototype.getOrCreateBorderStyle=function(){var BS=this.BS();if(BS)return BorderStyle_default.fromDict(BS);var bs=BorderStyle_default.fromDict(this.dict.context.obj({}));this.dict.set(PDFName_default.of("BS"),bs.dict);return bs};PDFWidgetAnnotation2.prototype.getOnValue=function(){var _a;var normal=(_a=this.getAppearances())===null||_a===undefined?undefined:_a.normal;if(normal instanceof PDFDict_default){var keys4=normal.keys();for(var idx3=0,len2=keys4.length;idx3<len2;idx3++){var key=keys4[idx3];if(key!==PDFName_default.of("Off"))return key}}return};PDFWidgetAnnotation2.fromDict=function(dict){return new PDFWidgetAnnotation2(dict)};PDFWidgetAnnotation2.create=function(context2,parent){var dict=context2.obj({Type:"Annot",Subtype:"Widget",Rect:[0,0,0,0],Parent:parent});return new PDFWidgetAnnotation2(dict)};return PDFWidgetAnnotation2}(PDFAnnotation_default);PDFWidgetAnnotation_default=PDFWidgetAnnotation});var PDFAcroTerminal,PDFAcroTerminal_default;var init_PDFAcroTerminal=__esm(()=>{init_tslib_es62();init_PDFDict();init_PDFName();init_PDFAcroField();init_PDFWidgetAnnotation();init_errors2();PDFAcroTerminal=function(_super){__extends(PDFAcroTerminal2,_super);function PDFAcroTerminal2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroTerminal2.prototype.FT=function(){var nameOrRef=this.getInheritableAttribute(PDFName_default.of("FT"));return this.dict.context.lookup(nameOrRef,PDFName_default)};PDFAcroTerminal2.prototype.getWidgets=function(){var kidDicts=this.Kids();if(!kidDicts)return[PDFWidgetAnnotation_default.fromDict(this.dict)];var widgets=new Array(kidDicts.size());for(var idx3=0,len2=kidDicts.size();idx3<len2;idx3++){var dict=kidDicts.lookup(idx3,PDFDict_default);widgets[idx3]=PDFWidgetAnnotation_default.fromDict(dict)}return widgets};PDFAcroTerminal2.prototype.addWidget=function(ref){var Kids=this.normalizedEntries().Kids;Kids.push(ref)};PDFAcroTerminal2.prototype.removeWidget=function(idx3){var kidDicts=this.Kids();if(!kidDicts){if(idx3!==0)throw new IndexOutOfBoundsError(idx3,0,0);this.setKids([])}else{if(idx3<0||idx3>kidDicts.size()){throw new IndexOutOfBoundsError(idx3,0,kidDicts.size())}kidDicts.remove(idx3)}};PDFAcroTerminal2.prototype.normalizedEntries=function(){var Kids=this.Kids();if(!Kids){Kids=this.dict.context.obj([this.ref]);this.dict.set(PDFName_default.of("Kids"),Kids)}return{Kids}};PDFAcroTerminal2.fromDict=function(dict,ref){return new PDFAcroTerminal2(dict,ref)};return PDFAcroTerminal2}(PDFAcroField_default);PDFAcroTerminal_default=PDFAcroTerminal});var PDFAcroButton,PDFAcroButton_default;var init_PDFAcroButton=__esm(()=>{init_tslib_es62();init_PDFString();init_PDFHexString();init_PDFArray();init_PDFName();init_PDFAcroTerminal();init_errors2();PDFAcroButton=function(_super){__extends(PDFAcroButton2,_super);function PDFAcroButton2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroButton2.prototype.Opt=function(){return this.dict.lookupMaybe(PDFName_default.of("Opt"),PDFString_default,PDFHexString_default,PDFArray_default)};PDFAcroButton2.prototype.setOpt=function(opt){this.dict.set(PDFName_default.of("Opt"),this.dict.context.obj(opt))};PDFAcroButton2.prototype.getExportValues=function(){var opt=this.Opt();if(!opt)return;if(opt instanceof PDFString_default||opt instanceof PDFHexString_default){return[opt]}var values2=[];for(var idx3=0,len2=opt.size();idx3<len2;idx3++){var value=opt.lookup(idx3);if(value instanceof PDFString_default||value instanceof PDFHexString_default){values2.push(value)}}return values2};PDFAcroButton2.prototype.removeExportValue=function(idx3){var opt=this.Opt();if(!opt)return;if(opt instanceof PDFString_default||opt instanceof PDFHexString_default){if(idx3!==0)throw new IndexOutOfBoundsError(idx3,0,0);this.setOpt([])}else{if(idx3<0||idx3>opt.size()){throw new IndexOutOfBoundsError(idx3,0,opt.size())}opt.remove(idx3)}};PDFAcroButton2.prototype.normalizeExportValues=function(){var _a,_b,_c,_d;var exportValues=(_a=this.getExportValues())!==null&&_a!==undefined?_a:[];var Opt=[];var widgets=this.getWidgets();for(var idx3=0,len2=widgets.length;idx3<len2;idx3++){var widget=widgets[idx3];var exportVal=(_b=exportValues[idx3])!==null&&_b!==undefined?_b:PDFHexString_default.fromText((_d=(_c=widget.getOnValue())===null||_c===undefined?undefined:_c.decodeText())!==null&&_d!==undefined?_d:"");Opt.push(exportVal)}this.setOpt(Opt)};PDFAcroButton2.prototype.addOpt=function(opt,useExistingOptIdx){var _a;this.normalizeExportValues();var optText=opt.decodeText();var existingIdx;if(useExistingOptIdx){var exportValues=(_a=this.getExportValues())!==null&&_a!==undefined?_a:[];for(var idx3=0,len2=exportValues.length;idx3<len2;idx3++){var exportVal=exportValues[idx3];if(exportVal.decodeText()===optText)existingIdx=idx3}}var Opt=this.Opt();Opt.push(opt);return existingIdx!==null&&existingIdx!==undefined?existingIdx:Opt.size()-1};PDFAcroButton2.prototype.addWidgetWithOpt=function(widget,opt,useExistingOptIdx){var optIdx=this.addOpt(opt,useExistingOptIdx);var apStateValue=PDFName_default.of(String(optIdx));this.addWidget(widget);return apStateValue};return PDFAcroButton2}(PDFAcroTerminal_default);PDFAcroButton_default=PDFAcroButton});var PDFAcroCheckBox,PDFAcroCheckBox_default;var init_PDFAcroCheckBox=__esm(()=>{init_tslib_es62();init_PDFName();init_PDFAcroButton();init_errors2();PDFAcroCheckBox=function(_super){__extends(PDFAcroCheckBox2,_super);function PDFAcroCheckBox2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroCheckBox2.prototype.setValue=function(value){var _a;var onValue=(_a=this.getOnValue())!==null&&_a!==undefined?_a:PDFName_default.of("Yes");if(value!==onValue&&value!==PDFName_default.of("Off")){throw new InvalidAcroFieldValueError}this.dict.set(PDFName_default.of("V"),value);var widgets=this.getWidgets();for(var idx3=0,len2=widgets.length;idx3<len2;idx3++){var widget=widgets[idx3];var state=widget.getOnValue()===value?value:PDFName_default.of("Off");widget.setAppearanceState(state)}};PDFAcroCheckBox2.prototype.getValue=function(){var v=this.V();if(v instanceof PDFName_default)return v;return PDFName_default.of("Off")};PDFAcroCheckBox2.prototype.getOnValue=function(){var widget=this.getWidgets()[0];return widget===null||widget===undefined?undefined:widget.getOnValue()};PDFAcroCheckBox2.fromDict=function(dict,ref){return new PDFAcroCheckBox2(dict,ref)};PDFAcroCheckBox2.create=function(context2){var dict=context2.obj({FT:"Btn",Kids:[]});var ref=context2.register(dict);return new PDFAcroCheckBox2(dict,ref)};return PDFAcroCheckBox2}(PDFAcroButton_default);PDFAcroCheckBox_default=PDFAcroCheckBox});var flag=function(bitIndex){return 1<<bitIndex},AcroFieldFlags,AcroButtonFlags,AcroTextFlags,AcroChoiceFlags;var init_flags=__esm(()=>{(function(AcroFieldFlags2){AcroFieldFlags2[AcroFieldFlags2["ReadOnly"]=flag(1-1)]="ReadOnly";AcroFieldFlags2[AcroFieldFlags2["Required"]=flag(2-1)]="Required";AcroFieldFlags2[AcroFieldFlags2["NoExport"]=flag(3-1)]="NoExport"})(AcroFieldFlags||(AcroFieldFlags={}));(function(AcroButtonFlags2){AcroButtonFlags2[AcroButtonFlags2["NoToggleToOff"]=flag(15-1)]="NoToggleToOff";AcroButtonFlags2[AcroButtonFlags2["Radio"]=flag(16-1)]="Radio";AcroButtonFlags2[AcroButtonFlags2["PushButton"]=flag(17-1)]="PushButton";AcroButtonFlags2[AcroButtonFlags2["RadiosInUnison"]=flag(26-1)]="RadiosInUnison"})(AcroButtonFlags||(AcroButtonFlags={}));(function(AcroTextFlags2){AcroTextFlags2[AcroTextFlags2["Multiline"]=flag(13-1)]="Multiline";AcroTextFlags2[AcroTextFlags2["Password"]=flag(14-1)]="Password";AcroTextFlags2[AcroTextFlags2["FileSelect"]=flag(21-1)]="FileSelect";AcroTextFlags2[AcroTextFlags2["DoNotSpellCheck"]=flag(23-1)]="DoNotSpellCheck";AcroTextFlags2[AcroTextFlags2["DoNotScroll"]=flag(24-1)]="DoNotScroll";AcroTextFlags2[AcroTextFlags2["Comb"]=flag(25-1)]="Comb";AcroTextFlags2[AcroTextFlags2["RichText"]=flag(26-1)]="RichText"})(AcroTextFlags||(AcroTextFlags={}));(function(AcroChoiceFlags2){AcroChoiceFlags2[AcroChoiceFlags2["Combo"]=flag(18-1)]="Combo";AcroChoiceFlags2[AcroChoiceFlags2["Edit"]=flag(19-1)]="Edit";AcroChoiceFlags2[AcroChoiceFlags2["Sort"]=flag(20-1)]="Sort";AcroChoiceFlags2[AcroChoiceFlags2["MultiSelect"]=flag(22-1)]="MultiSelect";AcroChoiceFlags2[AcroChoiceFlags2["DoNotSpellCheck"]=flag(23-1)]="DoNotSpellCheck";AcroChoiceFlags2[AcroChoiceFlags2["CommitOnSelChange"]=flag(27-1)]="CommitOnSelChange"})(AcroChoiceFlags||(AcroChoiceFlags={}))});var PDFAcroChoice,PDFAcroChoice_default;var init_PDFAcroChoice=__esm(()=>{init_tslib_es62();init_PDFAcroTerminal();init_PDFHexString();init_PDFString();init_PDFArray();init_PDFName();init_flags();init_errors2();PDFAcroChoice=function(_super){__extends(PDFAcroChoice2,_super);function PDFAcroChoice2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroChoice2.prototype.setValues=function(values2){if(this.hasFlag(AcroChoiceFlags.Combo)&&!this.hasFlag(AcroChoiceFlags.Edit)&&!this.valuesAreValid(values2)){throw new InvalidAcroFieldValueError}if(values2.length===0){this.dict.delete(PDFName_default.of("V"))}if(values2.length===1){this.dict.set(PDFName_default.of("V"),values2[0])}if(values2.length>1){if(!this.hasFlag(AcroChoiceFlags.MultiSelect)){throw new MultiSelectValueError}this.dict.set(PDFName_default.of("V"),this.dict.context.obj(values2))}this.updateSelectedIndices(values2)};PDFAcroChoice2.prototype.valuesAreValid=function(values2){var options=this.getOptions();var _loop_1=function(idx4,len3){var val=values2[idx4].decodeText();if(!options.find(function(o){return val===(o.display||o.value).decodeText()})){return{value:false}}};for(var idx3=0,len2=values2.length;idx3<len2;idx3++){var state_1=_loop_1(idx3,len2);if(typeof state_1==="object")return state_1.value}return true};PDFAcroChoice2.prototype.updateSelectedIndices=function(values2){if(values2.length>1){var indices=new Array(values2.length);var options=this.getOptions();var _loop_2=function(idx4,len3){var val=values2[idx4].decodeText();indices[idx4]=options.findIndex(function(o){return val===(o.display||o.value).decodeText()})};for(var idx3=0,len2=values2.length;idx3<len2;idx3++){_loop_2(idx3,len2)}this.dict.set(PDFName_default.of("I"),this.dict.context.obj(indices.sort()))}else{this.dict.delete(PDFName_default.of("I"))}};PDFAcroChoice2.prototype.getValues=function(){var v=this.V();if(v instanceof PDFString_default||v instanceof PDFHexString_default)return[v];if(v instanceof PDFArray_default){var values2=[];for(var idx3=0,len2=v.size();idx3<len2;idx3++){var value=v.lookup(idx3);if(value instanceof PDFString_default||value instanceof PDFHexString_default){values2.push(value)}}return values2}return[]};PDFAcroChoice2.prototype.Opt=function(){return this.dict.lookupMaybe(PDFName_default.of("Opt"),PDFString_default,PDFHexString_default,PDFArray_default)};PDFAcroChoice2.prototype.setOptions=function(options){var newOpt=new Array(options.length);for(var idx3=0,len2=options.length;idx3<len2;idx3++){var _a=options[idx3],value=_a.value,display=_a.display;newOpt[idx3]=this.dict.context.obj([value,display||value])}this.dict.set(PDFName_default.of("Opt"),this.dict.context.obj(newOpt))};PDFAcroChoice2.prototype.getOptions=function(){var Opt=this.Opt();if(Opt instanceof PDFString_default||Opt instanceof PDFHexString_default){return[{value:Opt,display:Opt}]}if(Opt instanceof PDFArray_default){var res=[];for(var idx3=0,len2=Opt.size();idx3<len2;idx3++){var item=Opt.lookup(idx3);if(item instanceof PDFString_default||item instanceof PDFHexString_default){res.push({value:item,display:item})}if(item instanceof PDFArray_default){if(item.size()>0){var first=item.lookup(0,PDFString_default,PDFHexString_default);var second=item.lookupMaybe(1,PDFString_default,PDFHexString_default);res.push({value:first,display:second||first})}}}return res}return[]};return PDFAcroChoice2}(PDFAcroTerminal_default);PDFAcroChoice_default=PDFAcroChoice});var PDFAcroComboBox,PDFAcroComboBox_default;var init_PDFAcroComboBox=__esm(()=>{init_tslib_es62();init_PDFAcroChoice();init_flags();PDFAcroComboBox=function(_super){__extends(PDFAcroComboBox2,_super);function PDFAcroComboBox2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroComboBox2.fromDict=function(dict,ref){return new PDFAcroComboBox2(dict,ref)};PDFAcroComboBox2.create=function(context2){var dict=context2.obj({FT:"Ch",Ff:AcroChoiceFlags.Combo,Kids:[]});var ref=context2.register(dict);return new PDFAcroComboBox2(dict,ref)};return PDFAcroComboBox2}(PDFAcroChoice_default);PDFAcroComboBox_default=PDFAcroComboBox});var PDFAcroNonTerminal,PDFAcroNonTerminal_default;var init_PDFAcroNonTerminal=__esm(()=>{init_tslib_es62();init_PDFName();init_PDFAcroField();PDFAcroNonTerminal=function(_super){__extends(PDFAcroNonTerminal2,_super);function PDFAcroNonTerminal2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroNonTerminal2.prototype.addField=function(field){var Kids=this.normalizedEntries().Kids;Kids===null||Kids===undefined||Kids.push(field)};PDFAcroNonTerminal2.prototype.normalizedEntries=function(){var Kids=this.Kids();if(!Kids){Kids=this.dict.context.obj([]);this.dict.set(PDFName_default.of("Kids"),Kids)}return{Kids}};PDFAcroNonTerminal2.fromDict=function(dict,ref){return new PDFAcroNonTerminal2(dict,ref)};PDFAcroNonTerminal2.create=function(context2){var dict=context2.obj({});var ref=context2.register(dict);return new PDFAcroNonTerminal2(dict,ref)};return PDFAcroNonTerminal2}(PDFAcroField_default);PDFAcroNonTerminal_default=PDFAcroNonTerminal});var PDFAcroSignature,PDFAcroSignature_default;var init_PDFAcroSignature=__esm(()=>{init_tslib_es62();init_PDFAcroTerminal();PDFAcroSignature=function(_super){__extends(PDFAcroSignature2,_super);function PDFAcroSignature2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroSignature2.fromDict=function(dict,ref){return new PDFAcroSignature2(dict,ref)};return PDFAcroSignature2}(PDFAcroTerminal_default);PDFAcroSignature_default=PDFAcroSignature});var PDFAcroText,PDFAcroText_default;var init_PDFAcroText=__esm(()=>{init_tslib_es62();init_PDFNumber();init_PDFString();init_PDFHexString();init_PDFName();init_PDFAcroTerminal();PDFAcroText=function(_super){__extends(PDFAcroText2,_super);function PDFAcroText2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroText2.prototype.MaxLen=function(){var maxLen=this.dict.lookup(PDFName_default.of("MaxLen"));if(maxLen instanceof PDFNumber_default)return maxLen;return};PDFAcroText2.prototype.Q=function(){var q=this.dict.lookup(PDFName_default.of("Q"));if(q instanceof PDFNumber_default)return q;return};PDFAcroText2.prototype.setMaxLength=function(maxLength){this.dict.set(PDFName_default.of("MaxLen"),PDFNumber_default.of(maxLength))};PDFAcroText2.prototype.removeMaxLength=function(){this.dict.delete(PDFName_default.of("MaxLen"))};PDFAcroText2.prototype.getMaxLength=function(){var _a;return(_a=this.MaxLen())===null||_a===undefined?undefined:_a.asNumber()};PDFAcroText2.prototype.setQuadding=function(quadding){this.dict.set(PDFName_default.of("Q"),PDFNumber_default.of(quadding))};PDFAcroText2.prototype.getQuadding=function(){var _a;return(_a=this.Q())===null||_a===undefined?undefined:_a.asNumber()};PDFAcroText2.prototype.setValue=function(value){this.dict.set(PDFName_default.of("V"),value)};PDFAcroText2.prototype.removeValue=function(){this.dict.delete(PDFName_default.of("V"))};PDFAcroText2.prototype.getValue=function(){var v=this.V();if(v instanceof PDFString_default||v instanceof PDFHexString_default)return v;return};PDFAcroText2.fromDict=function(dict,ref){return new PDFAcroText2(dict,ref)};PDFAcroText2.create=function(context2){var dict=context2.obj({FT:"Tx",Kids:[]});var ref=context2.register(dict);return new PDFAcroText2(dict,ref)};return PDFAcroText2}(PDFAcroTerminal_default);PDFAcroText_default=PDFAcroText});var PDFAcroPushButton,PDFAcroPushButton_default;var init_PDFAcroPushButton=__esm(()=>{init_tslib_es62();init_PDFAcroButton();init_flags();PDFAcroPushButton=function(_super){__extends(PDFAcroPushButton2,_super);function PDFAcroPushButton2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroPushButton2.fromDict=function(dict,ref){return new PDFAcroPushButton2(dict,ref)};PDFAcroPushButton2.create=function(context2){var dict=context2.obj({FT:"Btn",Ff:AcroButtonFlags.PushButton,Kids:[]});var ref=context2.register(dict);return new PDFAcroPushButton2(dict,ref)};return PDFAcroPushButton2}(PDFAcroButton_default);PDFAcroPushButton_default=PDFAcroPushButton});var PDFAcroRadioButton,PDFAcroRadioButton_default;var init_PDFAcroRadioButton=__esm(()=>{init_tslib_es62();init_PDFName();init_PDFAcroButton();init_flags();init_errors2();PDFAcroRadioButton=function(_super){__extends(PDFAcroRadioButton2,_super);function PDFAcroRadioButton2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroRadioButton2.prototype.setValue=function(value){var onValues=this.getOnValues();if(!onValues.includes(value)&&value!==PDFName_default.of("Off")){throw new InvalidAcroFieldValueError}this.dict.set(PDFName_default.of("V"),value);var widgets=this.getWidgets();for(var idx3=0,len2=widgets.length;idx3<len2;idx3++){var widget=widgets[idx3];var state=widget.getOnValue()===value?value:PDFName_default.of("Off");widget.setAppearanceState(state)}};PDFAcroRadioButton2.prototype.getValue=function(){var v=this.V();if(v instanceof PDFName_default)return v;return PDFName_default.of("Off")};PDFAcroRadioButton2.prototype.getOnValues=function(){var widgets=this.getWidgets();var onValues=[];for(var idx3=0,len2=widgets.length;idx3<len2;idx3++){var onValue=widgets[idx3].getOnValue();if(onValue)onValues.push(onValue)}return onValues};PDFAcroRadioButton2.fromDict=function(dict,ref){return new PDFAcroRadioButton2(dict,ref)};PDFAcroRadioButton2.create=function(context2){var dict=context2.obj({FT:"Btn",Ff:AcroButtonFlags.Radio,Kids:[]});var ref=context2.register(dict);return new PDFAcroRadioButton2(dict,ref)};return PDFAcroRadioButton2}(PDFAcroButton_default);PDFAcroRadioButton_default=PDFAcroRadioButton});var PDFAcroListBox,PDFAcroListBox_default;var init_PDFAcroListBox=__esm(()=>{init_tslib_es62();init_PDFAcroChoice();PDFAcroListBox=function(_super){__extends(PDFAcroListBox2,_super);function PDFAcroListBox2(){return _super!==null&&_super.apply(this,arguments)||this}PDFAcroListBox2.fromDict=function(dict,ref){return new PDFAcroListBox2(dict,ref)};PDFAcroListBox2.create=function(context2){var dict=context2.obj({FT:"Ch",Kids:[]});var ref=context2.register(dict);return new PDFAcroListBox2(dict,ref)};return PDFAcroListBox2}(PDFAcroChoice_default);PDFAcroListBox_default=PDFAcroListBox});var createPDFAcroFields=function(kidDicts){if(!kidDicts)return[];var kids=[];for(var idx3=0,len2=kidDicts.size();idx3<len2;idx3++){var ref=kidDicts.get(idx3);var dict=kidDicts.lookup(idx3);if(ref instanceof PDFRef_default&&dict instanceof PDFDict_default){kids.push([createPDFAcroField(dict,ref),ref])}}return kids},createPDFAcroField=function(dict,ref){var isNonTerminal=isNonTerminalAcroField(dict);if(isNonTerminal)return PDFAcroNonTerminal_default.fromDict(dict,ref);return createPDFAcroTerminal(dict,ref)},isNonTerminalAcroField=function(dict){var kids=dict.lookup(PDFName_default.of("Kids"));if(kids instanceof PDFArray_default){for(var idx3=0,len2=kids.size();idx3<len2;idx3++){var kid=kids.lookup(idx3);var kidIsField=kid instanceof PDFDict_default&&kid.has(PDFName_default.of("T"));if(kidIsField)return true}}return false},createPDFAcroTerminal=function(dict,ref){var ftNameOrRef=getInheritableAttribute(dict,PDFName_default.of("FT"));var type=dict.context.lookup(ftNameOrRef,PDFName_default);if(type===PDFName_default.of("Btn"))return createPDFAcroButton(dict,ref);if(type===PDFName_default.of("Ch"))return createPDFAcroChoice(dict,ref);if(type===PDFName_default.of("Tx"))return PDFAcroText_default.fromDict(dict,ref);if(type===PDFName_default.of("Sig"))return PDFAcroSignature_default.fromDict(dict,ref);return PDFAcroTerminal_default.fromDict(dict,ref)},createPDFAcroButton=function(dict,ref){var _a;var ffNumberOrRef=getInheritableAttribute(dict,PDFName_default.of("Ff"));var ffNumber=dict.context.lookupMaybe(ffNumberOrRef,PDFNumber_default);var flags=(_a=ffNumber===null||ffNumber===undefined?undefined:ffNumber.asNumber())!==null&&_a!==undefined?_a:0;if(flagIsSet(flags,AcroButtonFlags.PushButton)){return PDFAcroPushButton_default.fromDict(dict,ref)}else if(flagIsSet(flags,AcroButtonFlags.Radio)){return PDFAcroRadioButton_default.fromDict(dict,ref)}else{return PDFAcroCheckBox_default.fromDict(dict,ref)}},createPDFAcroChoice=function(dict,ref){var _a;var ffNumberOrRef=getInheritableAttribute(dict,PDFName_default.of("Ff"));var ffNumber=dict.context.lookupMaybe(ffNumberOrRef,PDFNumber_default);var flags=(_a=ffNumber===null||ffNumber===undefined?undefined:ffNumber.asNumber())!==null&&_a!==undefined?_a:0;if(flagIsSet(flags,AcroChoiceFlags.Combo)){return PDFAcroComboBox_default.fromDict(dict,ref)}else{return PDFAcroListBox_default.fromDict(dict,ref)}},flagIsSet=function(flags,flag2){return(flags&flag2)!==0},getInheritableAttribute=function(startNode,name2){var attribute;ascend(startNode,function(node){if(!attribute)attribute=node.get(name2)});return attribute},ascend=function(startNode,visitor){visitor(startNode);var Parent=startNode.lookupMaybe(PDFName_default.of("Parent"),PDFDict_default);if(Parent)ascend(Parent,visitor)};var init_utils3=__esm(()=>{init_PDFNumber();init_PDFDict();init_PDFName();init_PDFArray();init_PDFRef();init_PDFAcroTerminal();init_PDFAcroNonTerminal();init_PDFAcroSignature();init_PDFAcroText();init_PDFAcroPushButton();init_PDFAcroRadioButton();init_PDFAcroCheckBox();init_PDFAcroComboBox();init_PDFAcroListBox();init_flags()});var PDFAcroForm,PDFAcroForm_default;var init_PDFAcroForm=__esm(()=>{init_PDFDict();init_PDFArray();init_PDFName();init_PDFAcroNonTerminal();init_utils3();PDFAcroForm=function(){function PDFAcroForm2(dict){this.dict=dict}PDFAcroForm2.prototype.Fields=function(){var fields5=this.dict.lookup(PDFName_default.of("Fields"));if(fields5 instanceof PDFArray_default)return fields5;return};PDFAcroForm2.prototype.getFields=function(){var Fields=this.normalizedEntries().Fields;var fields5=new Array(Fields.size());for(var idx3=0,len2=Fields.size();idx3<len2;idx3++){var ref=Fields.get(idx3);var dict=Fields.lookup(idx3,PDFDict_default);fields5[idx3]=[createPDFAcroField(dict,ref),ref]}return fields5};PDFAcroForm2.prototype.getAllFields=function(){var allFields=[];var pushFields=function(fields5){if(!fields5)return;for(var idx3=0,len2=fields5.length;idx3<len2;idx3++){var field=fields5[idx3];allFields.push(field);var fieldModel=field[0];if(fieldModel instanceof PDFAcroNonTerminal_default){pushFields(createPDFAcroFields(fieldModel.Kids()))}}};pushFields(this.getFields());return allFields};PDFAcroForm2.prototype.addField=function(field){var Fields=this.normalizedEntries().Fields;Fields===null||Fields===undefined||Fields.push(field)};PDFAcroForm2.prototype.removeField=function(field){var parent=field.getParent();var fields5=parent===undefined?this.normalizedEntries().Fields:parent.Kids();var index=fields5===null||fields5===undefined?undefined:fields5.indexOf(field.ref);if(fields5===undefined||index===undefined){throw new Error("Tried to remove inexistent field "+field.getFullyQualifiedName())}fields5.remove(index);if(parent!==undefined&&fields5.size()===0){this.removeField(parent)}};PDFAcroForm2.prototype.normalizedEntries=function(){var Fields=this.Fields();if(!Fields){Fields=this.dict.context.obj([]);this.dict.set(PDFName_default.of("Fields"),Fields)}return{Fields}};PDFAcroForm2.fromDict=function(dict){return new PDFAcroForm2(dict)};PDFAcroForm2.create=function(context2){var dict=context2.obj({Fields:[]});return new PDFAcroForm2(dict)};return PDFAcroForm2}();PDFAcroForm_default=PDFAcroForm});var init_acroform=__esm(()=>{init_PDFAcroButton();init_PDFAcroCheckBox();init_PDFAcroChoice();init_PDFAcroComboBox();init_PDFAcroField();init_PDFAcroForm();init_PDFAcroListBox();init_PDFAcroNonTerminal();init_PDFAcroPushButton();init_PDFAcroRadioButton();init_PDFAcroSignature();init_PDFAcroTerminal();init_PDFAcroText();init_flags();init_utils3()});var PDFCatalog,PDFCatalog_default;var init_PDFCatalog=__esm(()=>{init_tslib_es62();init_PDFDict();init_PDFName();init_acroform();init_ViewerPreferences();PDFCatalog=function(_super){__extends(PDFCatalog2,_super);function PDFCatalog2(){return _super!==null&&_super.apply(this,arguments)||this}PDFCatalog2.prototype.Pages=function(){return this.lookup(PDFName_default.of("Pages"),PDFDict_default)};PDFCatalog2.prototype.AcroForm=function(){return this.lookupMaybe(PDFName_default.of("AcroForm"),PDFDict_default)};PDFCatalog2.prototype.getAcroForm=function(){var dict=this.AcroForm();if(!dict)return;return PDFAcroForm_default.fromDict(dict)};PDFCatalog2.prototype.getOrCreateAcroForm=function(){var acroForm=this.getAcroForm();if(!acroForm){acroForm=PDFAcroForm_default.create(this.context);var acroFormRef=this.context.register(acroForm.dict);this.set(PDFName_default.of("AcroForm"),acroFormRef)}return acroForm};PDFCatalog2.prototype.ViewerPreferences=function(){return this.lookupMaybe(PDFName_default.of("ViewerPreferences"),PDFDict_default)};PDFCatalog2.prototype.getViewerPreferences=function(){var dict=this.ViewerPreferences();if(!dict)return;return ViewerPreferences_default.fromDict(dict)};PDFCatalog2.prototype.getOrCreateViewerPreferences=function(){var viewerPrefs=this.getViewerPreferences();if(!viewerPrefs){viewerPrefs=ViewerPreferences_default.create(this.context);var viewerPrefsRef=this.context.register(viewerPrefs.dict);this.set(PDFName_default.of("ViewerPreferences"),viewerPrefsRef)}return viewerPrefs};PDFCatalog2.prototype.insertLeafNode=function(leafRef,index){var pagesRef=this.get(PDFName_default.of("Pages"));var maybeParentRef=this.Pages().insertLeafNode(leafRef,index);return maybeParentRef||pagesRef};PDFCatalog2.prototype.removeLeafNode=function(index){this.Pages().removeLeafNode(index)};PDFCatalog2.withContextAndPages=function(context2,pages){var dict=new Map;dict.set(PDFName_default.of("Type"),PDFName_default.of("Catalog"));dict.set(PDFName_default.of("Pages"),pages);return new PDFCatalog2(dict,context2)};PDFCatalog2.fromMapWithContext=function(map,context2){return new PDFCatalog2(map,context2)};return PDFCatalog2}(PDFDict_default);PDFCatalog_default=PDFCatalog});var PDFPageTree,PDFPageTree_default;var init_PDFPageTree=__esm(()=>{init_tslib_es62();init_PDFArray();init_PDFDict();init_PDFName();init_PDFNumber();init_PDFPageLeaf();init_errors2();PDFPageTree=function(_super){__extends(PDFPageTree2,_super);function PDFPageTree2(){return _super!==null&&_super.apply(this,arguments)||this}PDFPageTree2.prototype.Parent=function(){return this.lookup(PDFName_default.of("Parent"))};PDFPageTree2.prototype.Kids=function(){return this.lookup(PDFName_default.of("Kids"),PDFArray_default)};PDFPageTree2.prototype.Count=function(){return this.lookup(PDFName_default.of("Count"),PDFNumber_default)};PDFPageTree2.prototype.pushTreeNode=function(treeRef){var Kids=this.Kids();Kids.push(treeRef)};PDFPageTree2.prototype.pushLeafNode=function(leafRef){var Kids=this.Kids();this.insertLeafKid(Kids.size(),leafRef)};PDFPageTree2.prototype.insertLeafNode=function(leafRef,targetIndex){var Kids=this.Kids();var Count=this.Count().asNumber();if(targetIndex>Count){throw new InvalidTargetIndexError(targetIndex,Count)}var leafsRemainingUntilTarget=targetIndex;for(var idx3=0,len2=Kids.size();idx3<len2;idx3++){if(leafsRemainingUntilTarget===0){this.insertLeafKid(idx3,leafRef);return}var kidRef=Kids.get(idx3);var kid=this.context.lookup(kidRef);if(kid instanceof PDFPageTree2){if(kid.Count().asNumber()>leafsRemainingUntilTarget){return kid.insertLeafNode(leafRef,leafsRemainingUntilTarget)||kidRef}else{leafsRemainingUntilTarget-=kid.Count().asNumber()}}if(kid instanceof PDFPageLeaf_default){leafsRemainingUntilTarget-=1}}if(leafsRemainingUntilTarget===0){this.insertLeafKid(Kids.size(),leafRef);return}throw new CorruptPageTreeError(targetIndex,"insertLeafNode")};PDFPageTree2.prototype.removeLeafNode=function(targetIndex,prune){if(prune===undefined){prune=true}var Kids=this.Kids();var Count=this.Count().asNumber();if(targetIndex>=Count){throw new InvalidTargetIndexError(targetIndex,Count)}var leafsRemainingUntilTarget=targetIndex;for(var idx3=0,len2=Kids.size();idx3<len2;idx3++){var kidRef=Kids.get(idx3);var kid=this.context.lookup(kidRef);if(kid instanceof PDFPageTree2){if(kid.Count().asNumber()>leafsRemainingUntilTarget){kid.removeLeafNode(leafsRemainingUntilTarget,prune);if(prune&&kid.Kids().size()===0)Kids.remove(idx3);return}else{leafsRemainingUntilTarget-=kid.Count().asNumber()}}if(kid instanceof PDFPageLeaf_default){if(leafsRemainingUntilTarget===0){this.removeKid(idx3);return}else{leafsRemainingUntilTarget-=1}}}throw new CorruptPageTreeError(targetIndex,"removeLeafNode")};PDFPageTree2.prototype.ascend=function(visitor){visitor(this);var Parent=this.Parent();if(Parent)Parent.ascend(visitor)};PDFPageTree2.prototype.traverse=function(visitor){var Kids=this.Kids();for(var idx3=0,len2=Kids.size();idx3<len2;idx3++){var kidRef=Kids.get(idx3);var kid=this.context.lookup(kidRef);if(kid instanceof PDFPageTree2)kid.traverse(visitor);visitor(kid,kidRef)}};PDFPageTree2.prototype.insertLeafKid=function(kidIdx,leafRef){var Kids=this.Kids();this.ascend(function(node){var newCount=node.Count().asNumber()+1;node.set(PDFName_default.of("Count"),PDFNumber_default.of(newCount))});Kids.insert(kidIdx,leafRef)};PDFPageTree2.prototype.removeKid=function(kidIdx){var Kids=this.Kids();var kid=Kids.lookup(kidIdx);if(kid instanceof PDFPageLeaf_default){this.ascend(function(node){var newCount=node.Count().asNumber()-1;node.set(PDFName_default.of("Count"),PDFNumber_default.of(newCount))})}Kids.remove(kidIdx)};PDFPageTree2.withContext=function(context2,parent){var dict=new Map;dict.set(PDFName_default.of("Type"),PDFName_default.of("Pages"));dict.set(PDFName_default.of("Kids"),context2.obj([]));dict.set(PDFName_default.of("Count"),context2.obj(0));if(parent)dict.set(PDFName_default.of("Parent"),parent);return new PDFPageTree2(dict,context2)};PDFPageTree2.fromMapWithContext=function(map,context2){return new PDFPageTree2(map,context2)};return PDFPageTree2}(PDFDict_default);PDFPageTree_default=PDFPageTree});var IsDigit,IsNumericPrefix,IsNumeric,idx3,len2;var init_Numeric=__esm(()=>{init_CharCodes();IsDigit=new Uint8Array(256);IsDigit[CharCodes_default.Zero]=1;IsDigit[CharCodes_default.One]=1;IsDigit[CharCodes_default.Two]=1;IsDigit[CharCodes_default.Three]=1;IsDigit[CharCodes_default.Four]=1;IsDigit[CharCodes_default.Five]=1;IsDigit[CharCodes_default.Six]=1;IsDigit[CharCodes_default.Seven]=1;IsDigit[CharCodes_default.Eight]=1;IsDigit[CharCodes_default.Nine]=1;IsNumericPrefix=new Uint8Array(256);IsNumericPrefix[CharCodes_default.Period]=1;IsNumericPrefix[CharCodes_default.Plus]=1;IsNumericPrefix[CharCodes_default.Minus]=1;IsNumeric=new Uint8Array(256);for(idx3=0,len2=256;idx3<len2;idx3++){IsNumeric[idx3]=IsDigit[idx3]||IsNumericPrefix[idx3]?1:0}});var Newline,CarriageReturn,BaseParser,BaseParser_default;var init_BaseParser=__esm(()=>{init_errors2();init_CharCodes();init_Numeric();init_Whitespace();init_utils2();Newline=CharCodes_default.Newline;CarriageReturn=CharCodes_default.CarriageReturn;BaseParser=function(){function BaseParser2(bytes,capNumbers){if(capNumbers===undefined){capNumbers=false}this.bytes=bytes;this.capNumbers=capNumbers}BaseParser2.prototype.parseRawInt=function(){var value="";while(!this.bytes.done()){var byte=this.bytes.peek();if(!IsDigit[byte])break;value+=charFromCode(this.bytes.next())}var numberValue=Number(value);if(!value||!isFinite(numberValue)){throw new NumberParsingError(this.bytes.position(),value)}return numberValue};BaseParser2.prototype.parseRawNumber=function(){var value="";while(!this.bytes.done()){var byte=this.bytes.peek();if(!IsNumeric[byte])break;value+=charFromCode(this.bytes.next());if(byte===CharCodes_default.Period)break}while(!this.bytes.done()){var byte=this.bytes.peek();if(!IsDigit[byte])break;value+=charFromCode(this.bytes.next())}var numberValue=Number(value);if(!value||!isFinite(numberValue)){throw new NumberParsingError(this.bytes.position(),value)}if(numberValue>Number.MAX_SAFE_INTEGER){if(this.capNumbers){var msg="Parsed number that is too large for some PDF readers: "+value+", using Number.MAX_SAFE_INTEGER instead.";console.warn(msg);return Number.MAX_SAFE_INTEGER}else{var msg="Parsed number that is too large for some PDF readers: "+value+", not capping.";console.warn(msg)}}return numberValue};BaseParser2.prototype.skipWhitespace=function(){while(!this.bytes.done()&&IsWhitespace[this.bytes.peek()]){this.bytes.next()}};BaseParser2.prototype.skipLine=function(){while(!this.bytes.done()){var byte=this.bytes.peek();if(byte===Newline||byte===CarriageReturn)return;this.bytes.next()}};BaseParser2.prototype.skipComment=function(){if(this.bytes.peek()!==CharCodes_default.Percent)return false;while(!this.bytes.done()){var byte=this.bytes.peek();if(byte===Newline||byte===CarriageReturn)return true;this.bytes.next()}return true};BaseParser2.prototype.skipWhitespaceAndComments=function(){this.skipWhitespace();while(this.skipComment())this.skipWhitespace()};BaseParser2.prototype.matchKeyword=function(keyword){var initialOffset=this.bytes.offset();for(var idx4=0,len3=keyword.length;idx4<len3;idx4++){if(this.bytes.done()||this.bytes.next()!==keyword[idx4]){this.bytes.moveTo(initialOffset);return false}}return true};return BaseParser2}();BaseParser_default=BaseParser});var ByteStream,ByteStream_default;var init_ByteStream=__esm(()=>{init_errors2();init_decode();init_CharCodes();ByteStream=function(){function ByteStream2(bytes){this.idx=0;this.line=0;this.column=0;this.bytes=bytes;this.length=this.bytes.length}ByteStream2.prototype.moveTo=function(offset){this.idx=offset};ByteStream2.prototype.next=function(){var byte=this.bytes[this.idx++];if(byte===CharCodes_default.Newline){this.line+=1;this.column=0}else{this.column+=1}return byte};ByteStream2.prototype.assertNext=function(expected){if(this.peek()!==expected){throw new NextByteAssertionError(this.position(),expected,this.peek())}return this.next()};ByteStream2.prototype.peek=function(){return this.bytes[this.idx]};ByteStream2.prototype.peekAhead=function(steps){return this.bytes[this.idx+steps]};ByteStream2.prototype.peekAt=function(offset){return this.bytes[offset]};ByteStream2.prototype.done=function(){return this.idx>=this.length};ByteStream2.prototype.offset=function(){return this.idx};ByteStream2.prototype.slice=function(start,end){return this.bytes.slice(start,end)};ByteStream2.prototype.position=function(){return{line:this.line,column:this.column,offset:this.idx}};ByteStream2.of=function(bytes){return new ByteStream2(bytes)};ByteStream2.fromPDFRawStream=function(rawStream){return ByteStream2.of(decodePDFRawStream(rawStream).decode())};return ByteStream2}();ByteStream_default=ByteStream});var Space,CarriageReturn2,Newline2,stream,endstream,Keywords;var init_Keywords=__esm(()=>{init_tslib_es62();init_CharCodes();Space=CharCodes_default.Space;CarriageReturn2=CharCodes_default.CarriageReturn;Newline2=CharCodes_default.Newline;stream=[CharCodes_default.s,CharCodes_default.t,CharCodes_default.r,CharCodes_default.e,CharCodes_default.a,CharCodes_default.m];endstream=[CharCodes_default.e,CharCodes_default.n,CharCodes_default.d,CharCodes_default.s,CharCodes_default.t,CharCodes_default.r,CharCodes_default.e,CharCodes_default.a,CharCodes_default.m];Keywords={header:[CharCodes_default.Percent,CharCodes_default.P,CharCodes_default.D,CharCodes_default.F,CharCodes_default.Dash],eof:[CharCodes_default.Percent,CharCodes_default.Percent,CharCodes_default.E,CharCodes_default.O,CharCodes_default.F],obj:[CharCodes_default.o,CharCodes_default.b,CharCodes_default.j],endobj:[CharCodes_default.e,CharCodes_default.n,CharCodes_default.d,CharCodes_default.o,CharCodes_default.b,CharCodes_default.j],xref:[CharCodes_default.x,CharCodes_default.r,CharCodes_default.e,CharCodes_default.f],trailer:[CharCodes_default.t,CharCodes_default.r,CharCodes_default.a,CharCodes_default.i,CharCodes_default.l,CharCodes_default.e,CharCodes_default.r],startxref:[CharCodes_default.s,CharCodes_default.t,CharCodes_default.a,CharCodes_default.r,CharCodes_default.t,CharCodes_default.x,CharCodes_default.r,CharCodes_default.e,CharCodes_default.f],true:[CharCodes_default.t,CharCodes_default.r,CharCodes_default.u,CharCodes_default.e],false:[CharCodes_default.f,CharCodes_default.a,CharCodes_default.l,CharCodes_default.s,CharCodes_default.e],null:[CharCodes_default.n,CharCodes_default.u,CharCodes_default.l,CharCodes_default.l],stream,streamEOF1:__spreadArrays(stream,[Space,CarriageReturn2,Newline2]),streamEOF2:__spreadArrays(stream,[CarriageReturn2,Newline2]),streamEOF3:__spreadArrays(stream,[CarriageReturn2]),streamEOF4:__spreadArrays(stream,[Newline2]),endstream,EOF1endstream:__spreadArrays([CarriageReturn2,Newline2],endstream),EOF2endstream:__spreadArrays([CarriageReturn2],endstream),EOF3endstream:__spreadArrays([Newline2],endstream)}});var PDFObjectParser,PDFObjectParser_default;var init_PDFObjectParser=__esm(()=>{init_tslib_es62();init_errors2();init_PDFArray();init_PDFBool();init_PDFDict();init_PDFHexString();init_PDFName();init_PDFNull();init_PDFNumber();init_PDFRawStream();init_PDFRef();init_PDFString();init_BaseParser();init_ByteStream();init_PDFCatalog();init_PDFPageLeaf();init_PDFPageTree();init_CharCodes();init_Delimiters();init_Keywords();init_Numeric();init_Whitespace();init_utils2();PDFObjectParser=function(_super){__extends(PDFObjectParser2,_super);function PDFObjectParser2(byteStream,context2,capNumbers){if(capNumbers===undefined){capNumbers=false}var _this=_super.call(this,byteStream,capNumbers)||this;_this.context=context2;return _this}PDFObjectParser2.prototype.parseObject=function(){this.skipWhitespaceAndComments();if(this.matchKeyword(Keywords.true))return PDFBool_default.True;if(this.matchKeyword(Keywords.false))return PDFBool_default.False;if(this.matchKeyword(Keywords.null))return PDFNull_default;var byte=this.bytes.peek();if(byte===CharCodes_default.LessThan&&this.bytes.peekAhead(1)===CharCodes_default.LessThan){return this.parseDictOrStream()}if(byte===CharCodes_default.LessThan)return this.parseHexString();if(byte===CharCodes_default.LeftParen)return this.parseString();if(byte===CharCodes_default.ForwardSlash)return this.parseName();if(byte===CharCodes_default.LeftSquareBracket)return this.parseArray();if(IsNumeric[byte])return this.parseNumberOrRef();throw new PDFObjectParsingError(this.bytes.position(),byte)};PDFObjectParser2.prototype.parseNumberOrRef=function(){var firstNum=this.parseRawNumber();this.skipWhitespaceAndComments();var lookaheadStart=this.bytes.offset();if(IsDigit[this.bytes.peek()]){var secondNum=this.parseRawNumber();this.skipWhitespaceAndComments();if(this.bytes.peek()===CharCodes_default.R){this.bytes.assertNext(CharCodes_default.R);return PDFRef_default.of(firstNum,secondNum)}}this.bytes.moveTo(lookaheadStart);return PDFNumber_default.of(firstNum)};PDFObjectParser2.prototype.parseHexString=function(){var value="";this.bytes.assertNext(CharCodes_default.LessThan);while(!this.bytes.done()&&this.bytes.peek()!==CharCodes_default.GreaterThan){value+=charFromCode(this.bytes.next())}this.bytes.assertNext(CharCodes_default.GreaterThan);return PDFHexString_default.of(value)};PDFObjectParser2.prototype.parseString=function(){var nestingLvl=0;var isEscaped=false;var value="";while(!this.bytes.done()){var byte=this.bytes.next();value+=charFromCode(byte);if(!isEscaped){if(byte===CharCodes_default.LeftParen)nestingLvl+=1;if(byte===CharCodes_default.RightParen)nestingLvl-=1}if(byte===CharCodes_default.BackSlash){isEscaped=!isEscaped}else if(isEscaped){isEscaped=false}if(nestingLvl===0){return PDFString_default.of(value.substring(1,value.length-1))}}throw new UnbalancedParenthesisError(this.bytes.position())};PDFObjectParser2.prototype.parseName=function(){this.bytes.assertNext(CharCodes_default.ForwardSlash);var name2="";while(!this.bytes.done()){var byte=this.bytes.peek();if(IsWhitespace[byte]||IsDelimiter[byte])break;name2+=charFromCode(byte);this.bytes.next()}return PDFName_default.of(name2)};PDFObjectParser2.prototype.parseArray=function(){this.bytes.assertNext(CharCodes_default.LeftSquareBracket);this.skipWhitespaceAndComments();var pdfArray=PDFArray_default.withContext(this.context);while(this.bytes.peek()!==CharCodes_default.RightSquareBracket){var element=this.parseObject();pdfArray.push(element);this.skipWhitespaceAndComments()}this.bytes.assertNext(CharCodes_default.RightSquareBracket);return pdfArray};PDFObjectParser2.prototype.parseDict=function(){this.bytes.assertNext(CharCodes_default.LessThan);this.bytes.assertNext(CharCodes_default.LessThan);this.skipWhitespaceAndComments();var dict=new Map;while(!this.bytes.done()&&this.bytes.peek()!==CharCodes_default.GreaterThan&&this.bytes.peekAhead(1)!==CharCodes_default.GreaterThan){var key=this.parseName();var value=this.parseObject();dict.set(key,value);this.skipWhitespaceAndComments()}this.skipWhitespaceAndComments();this.bytes.assertNext(CharCodes_default.GreaterThan);this.bytes.assertNext(CharCodes_default.GreaterThan);var Type=dict.get(PDFName_default.of("Type"));if(Type===PDFName_default.of("Catalog")){return PDFCatalog_default.fromMapWithContext(dict,this.context)}else if(Type===PDFName_default.of("Pages")){return PDFPageTree_default.fromMapWithContext(dict,this.context)}else if(Type===PDFName_default.of("Page")){return PDFPageLeaf_default.fromMapWithContext(dict,this.context)}else{return PDFDict_default.fromMapWithContext(dict,this.context)}};PDFObjectParser2.prototype.parseDictOrStream=function(){var startPos=this.bytes.position();var dict=this.parseDict();this.skipWhitespaceAndComments();if(!this.matchKeyword(Keywords.streamEOF1)&&!this.matchKeyword(Keywords.streamEOF2)&&!this.matchKeyword(Keywords.streamEOF3)&&!this.matchKeyword(Keywords.streamEOF4)&&!this.matchKeyword(Keywords.stream)){return dict}var start=this.bytes.offset();var end;var Length=dict.get(PDFName_default.of("Length"));if(Length instanceof PDFNumber_default){end=start+Length.asNumber();this.bytes.moveTo(end);this.skipWhitespaceAndComments();if(!this.matchKeyword(Keywords.endstream)){this.bytes.moveTo(start);end=this.findEndOfStreamFallback(startPos)}}else{end=this.findEndOfStreamFallback(startPos)}var contents=this.bytes.slice(start,end);return PDFRawStream_default.of(dict,contents)};PDFObjectParser2.prototype.findEndOfStreamFallback=function(startPos){var nestingLvl=1;var end=this.bytes.offset();while(!this.bytes.done()){end=this.bytes.offset();if(this.matchKeyword(Keywords.stream)){nestingLvl+=1}else if(this.matchKeyword(Keywords.EOF1endstream)||this.matchKeyword(Keywords.EOF2endstream)||this.matchKeyword(Keywords.EOF3endstream)||this.matchKeyword(Keywords.endstream)){nestingLvl-=1}else{this.bytes.next()}if(nestingLvl===0)break}if(nestingLvl!==0)throw new PDFStreamParsingError(startPos);return end};PDFObjectParser2.forBytes=function(bytes,context2,capNumbers){return new PDFObjectParser2(ByteStream_default.of(bytes),context2,capNumbers)};PDFObjectParser2.forByteStream=function(byteStream,context2,capNumbers){if(capNumbers===undefined){capNumbers=false}return new PDFObjectParser2(byteStream,context2,capNumbers)};return PDFObjectParser2}(BaseParser_default);PDFObjectParser_default=PDFObjectParser});var PDFObjectStreamParser,PDFObjectStreamParser_default;var init_PDFObjectStreamParser=__esm(()=>{init_tslib_es62();init_errors2();init_PDFName();init_PDFNumber();init_PDFRef();init_ByteStream();init_PDFObjectParser();init_utils2();PDFObjectStreamParser=function(_super){__extends(PDFObjectStreamParser2,_super);function PDFObjectStreamParser2(rawStream,shouldWaitForTick){var _this=_super.call(this,ByteStream_default.fromPDFRawStream(rawStream),rawStream.dict.context)||this;var dict=rawStream.dict;_this.alreadyParsed=false;_this.shouldWaitForTick=shouldWaitForTick||function(){return false};_this.firstOffset=dict.lookup(PDFName_default.of("First"),PDFNumber_default).asNumber();_this.objectCount=dict.lookup(PDFName_default.of("N"),PDFNumber_default).asNumber();return _this}PDFObjectStreamParser2.prototype.parseIntoContext=function(){return __awaiter(this,undefined,undefined,function(){var offsetsAndObjectNumbers,idx4,len3,_a,objectNumber,offset,object5,ref;return __generator(this,function(_b){switch(_b.label){case 0:if(this.alreadyParsed){throw new ReparseError("PDFObjectStreamParser","parseIntoContext")}this.alreadyParsed=true;offsetsAndObjectNumbers=this.parseOffsetsAndObjectNumbers();idx4=0,len3=offsetsAndObjectNumbers.length;_b.label=1;case 1:if(!(idx4<len3))return[3,4];_a=offsetsAndObjectNumbers[idx4],objectNumber=_a.objectNumber,offset=_a.offset;this.bytes.moveTo(this.firstOffset+offset);object5=this.parseObject();ref=PDFRef_default.of(objectNumber,0);this.context.assign(ref,object5);if(!this.shouldWaitForTick())return[3,3];return[4,waitForTick()];case 2:_b.sent();_b.label=3;case 3:idx4++;return[3,1];case 4:return[2]}})})};PDFObjectStreamParser2.prototype.parseOffsetsAndObjectNumbers=function(){var offsetsAndObjectNumbers=[];for(var idx4=0,len3=this.objectCount;idx4<len3;idx4++){this.skipWhitespaceAndComments();var objectNumber=this.parseRawInt();this.skipWhitespaceAndComments();var offset=this.parseRawInt();offsetsAndObjectNumbers.push({objectNumber,offset})}return offsetsAndObjectNumbers};PDFObjectStreamParser2.forStream=function(rawStream,shouldWaitForTick){return new PDFObjectStreamParser2(rawStream,shouldWaitForTick)};return PDFObjectStreamParser2}(PDFObjectParser_default);PDFObjectStreamParser_default=PDFObjectStreamParser});var PDFXRefStreamParser,PDFXRefStreamParser_default;var init_PDFXRefStreamParser=__esm(()=>{init_errors2();init_PDFArray();init_PDFName();init_PDFNumber();init_PDFRef();init_ByteStream();PDFXRefStreamParser=function(){function PDFXRefStreamParser2(rawStream){this.alreadyParsed=false;this.dict=rawStream.dict;this.bytes=ByteStream_default.fromPDFRawStream(rawStream);this.context=this.dict.context;var Size=this.dict.lookup(PDFName_default.of("Size"),PDFNumber_default);var Index=this.dict.lookup(PDFName_default.of("Index"));if(Index instanceof PDFArray_default){this.subsections=[];for(var idx4=0,len3=Index.size();idx4<len3;idx4+=2){var firstObjectNumber=Index.lookup(idx4+0,PDFNumber_default).asNumber();var length_1=Index.lookup(idx4+1,PDFNumber_default).asNumber();this.subsections.push({firstObjectNumber,length:length_1})}}else{this.subsections=[{firstObjectNumber:0,length:Size.asNumber()}]}var W=this.dict.lookup(PDFName_default.of("W"),PDFArray_default);this.byteWidths=[-1,-1,-1];for(var idx4=0,len3=W.size();idx4<len3;idx4++){this.byteWidths[idx4]=W.lookup(idx4,PDFNumber_default).asNumber()}}PDFXRefStreamParser2.prototype.parseIntoContext=function(){if(this.alreadyParsed){throw new ReparseError("PDFXRefStreamParser","parseIntoContext")}this.alreadyParsed=true;this.context.trailerInfo={Root:this.dict.get(PDFName_default.of("Root")),Encrypt:this.dict.get(PDFName_default.of("Encrypt")),Info:this.dict.get(PDFName_default.of("Info")),ID:this.dict.get(PDFName_default.of("ID"))};var entries=this.parseEntries();return entries};PDFXRefStreamParser2.prototype.parseEntries=function(){var entries=[];var _a=this.byteWidths,typeFieldWidth=_a[0],offsetFieldWidth=_a[1],genFieldWidth=_a[2];for(var subsectionIdx=0,subsectionLen=this.subsections.length;subsectionIdx<subsectionLen;subsectionIdx++){var _b=this.subsections[subsectionIdx],firstObjectNumber=_b.firstObjectNumber,length_2=_b.length;for(var objIdx=0;objIdx<length_2;objIdx++){var type=0;for(var idx4=0,len3=typeFieldWidth;idx4<len3;idx4++){type=type<<8|this.bytes.next()}var offset=0;for(var idx4=0,len3=offsetFieldWidth;idx4<len3;idx4++){offset=offset<<8|this.bytes.next()}var generationNumber=0;for(var idx4=0,len3=genFieldWidth;idx4<len3;idx4++){generationNumber=generationNumber<<8|this.bytes.next()}if(typeFieldWidth===0)type=1;var objectNumber=firstObjectNumber+objIdx;var entry={ref:PDFRef_default.of(objectNumber,generationNumber),offset,deleted:type===0,inObjectStream:type===2};entries.push(entry)}}return entries};PDFXRefStreamParser2.forStream=function(rawStream){return new PDFXRefStreamParser2(rawStream)};return PDFXRefStreamParser2}();PDFXRefStreamParser_default=PDFXRefStreamParser});var PDFParser,PDFParser_default;var init_PDFParser=__esm(()=>{init_tslib_es62();init_PDFCrossRefSection();init_PDFHeader();init_PDFTrailer();init_errors2();init_PDFDict();init_PDFInvalidObject();init_PDFName();init_PDFRawStream();init_PDFRef();init_ByteStream();init_PDFObjectParser();init_PDFObjectStreamParser();init_PDFXRefStreamParser();init_PDFContext();init_CharCodes();init_Keywords();init_Numeric();init_utils2();PDFParser=function(_super){__extends(PDFParser2,_super);function PDFParser2(pdfBytes,objectsPerTick,throwOnInvalidObject,capNumbers){if(objectsPerTick===undefined){objectsPerTick=Infinity}if(throwOnInvalidObject===undefined){throwOnInvalidObject=false}if(capNumbers===undefined){capNumbers=false}var _this=_super.call(this,ByteStream_default.of(pdfBytes),PDFContext_default.create(),capNumbers)||this;_this.alreadyParsed=false;_this.parsedObjects=0;_this.shouldWaitForTick=function(){_this.parsedObjects+=1;return _this.parsedObjects%_this.objectsPerTick===0};_this.objectsPerTick=objectsPerTick;_this.throwOnInvalidObject=throwOnInvalidObject;return _this}PDFParser2.prototype.parseDocument=function(){return __awaiter(this,undefined,undefined,function(){var prevOffset,offset;return __generator(this,function(_a){switch(_a.label){case 0:if(this.alreadyParsed){throw new ReparseError("PDFParser","parseDocument")}this.alreadyParsed=true;this.context.header=this.parseHeader();_a.label=1;case 1:if(!!this.bytes.done())return[3,3];return[4,this.parseDocumentSection()];case 2:_a.sent();offset=this.bytes.offset();if(offset===prevOffset){throw new StalledParserError(this.bytes.position())}prevOffset=offset;return[3,1];case 3:this.maybeRecoverRoot();if(this.context.lookup(PDFRef_default.of(0))){console.warn("Removing parsed object: 0 0 R");this.context.delete(PDFRef_default.of(0))}return[2,this.context]}})})};PDFParser2.prototype.maybeRecoverRoot=function(){var isValidCatalog=function(obj){return obj instanceof PDFDict_default&&obj.lookup(PDFName_default.of("Type"))===PDFName_default.of("Catalog")};var catalog=this.context.lookup(this.context.trailerInfo.Root);if(!isValidCatalog(catalog)){var indirectObjects=this.context.enumerateIndirectObjects();for(var idx4=0,len3=indirectObjects.length;idx4<len3;idx4++){var _a=indirectObjects[idx4],ref=_a[0],object5=_a[1];if(isValidCatalog(object5)){this.context.trailerInfo.Root=ref}}}};PDFParser2.prototype.parseHeader=function(){while(!this.bytes.done()){if(this.matchKeyword(Keywords.header)){var major=this.parseRawInt();this.bytes.assertNext(CharCodes_default.Period);var minor=this.parseRawInt();var header=PDFHeader_default.forVersion(major,minor);this.skipBinaryHeaderComment();return header}this.bytes.next()}throw new MissingPDFHeaderError(this.bytes.position())};PDFParser2.prototype.parseIndirectObjectHeader=function(){this.skipWhitespaceAndComments();var objectNumber=this.parseRawInt();this.skipWhitespaceAndComments();var generationNumber=this.parseRawInt();this.skipWhitespaceAndComments();if(!this.matchKeyword(Keywords.obj)){throw new MissingKeywordError(this.bytes.position(),Keywords.obj)}return PDFRef_default.of(objectNumber,generationNumber)};PDFParser2.prototype.matchIndirectObjectHeader=function(){var initialOffset=this.bytes.offset();try{this.parseIndirectObjectHeader();return true}catch(e){this.bytes.moveTo(initialOffset);return false}};PDFParser2.prototype.parseIndirectObject=function(){return __awaiter(this,undefined,undefined,function(){var ref,object5;return __generator(this,function(_a){switch(_a.label){case 0:ref=this.parseIndirectObjectHeader();this.skipWhitespaceAndComments();object5=this.parseObject();this.skipWhitespaceAndComments();this.matchKeyword(Keywords.endobj);if(!(object5 instanceof PDFRawStream_default&&object5.dict.lookup(PDFName_default.of("Type"))===PDFName_default.of("ObjStm")))return[3,2];return[4,PDFObjectStreamParser_default.forStream(object5,this.shouldWaitForTick).parseIntoContext()];case 1:_a.sent();return[3,3];case 2:if(object5 instanceof PDFRawStream_default&&object5.dict.lookup(PDFName_default.of("Type"))===PDFName_default.of("XRef")){PDFXRefStreamParser_default.forStream(object5).parseIntoContext()}else{this.context.assign(ref,object5)}_a.label=3;case 3:return[2,ref]}})})};PDFParser2.prototype.tryToParseInvalidIndirectObject=function(){var startPos=this.bytes.position();var msg="Trying to parse invalid object: "+JSON.stringify(startPos)+")";if(this.throwOnInvalidObject)throw new Error(msg);console.warn(msg);var ref=this.parseIndirectObjectHeader();console.warn("Invalid object ref: "+ref);this.skipWhitespaceAndComments();var start=this.bytes.offset();var failed=true;while(!this.bytes.done()){if(this.matchKeyword(Keywords.endobj)){failed=false}if(!failed)break;this.bytes.next()}if(failed)throw new PDFInvalidObjectParsingError(startPos);var end=this.bytes.offset()-Keywords.endobj.length;var object5=PDFInvalidObject_default.of(this.bytes.slice(start,end));this.context.assign(ref,object5);return ref};PDFParser2.prototype.parseIndirectObjects=function(){return __awaiter(this,undefined,undefined,function(){var initialOffset,e_1;return __generator(this,function(_a){switch(_a.label){case 0:this.skipWhitespaceAndComments();_a.label=1;case 1:if(!(!this.bytes.done()&&IsDigit[this.bytes.peek()]))return[3,8];initialOffset=this.bytes.offset();_a.label=2;case 2:_a.trys.push([2,4,,5]);return[4,this.parseIndirectObject()];case 3:_a.sent();return[3,5];case 4:e_1=_a.sent();this.bytes.moveTo(initialOffset);this.tryToParseInvalidIndirectObject();return[3,5];case 5:this.skipWhitespaceAndComments();this.skipJibberish();if(!this.shouldWaitForTick())return[3,7];return[4,waitForTick()];case 6:_a.sent();_a.label=7;case 7:return[3,1];case 8:return[2]}})})};PDFParser2.prototype.maybeParseCrossRefSection=function(){this.skipWhitespaceAndComments();if(!this.matchKeyword(Keywords.xref))return;this.skipWhitespaceAndComments();var objectNumber=-1;var xref=PDFCrossRefSection_default.createEmpty();while(!this.bytes.done()&&IsDigit[this.bytes.peek()]){var firstInt=this.parseRawInt();this.skipWhitespaceAndComments();var secondInt=this.parseRawInt();this.skipWhitespaceAndComments();var byte=this.bytes.peek();if(byte===CharCodes_default.n||byte===CharCodes_default.f){var ref=PDFRef_default.of(objectNumber,secondInt);if(this.bytes.next()===CharCodes_default.n){xref.addEntry(ref,firstInt)}else{xref.addDeletedEntry(ref,firstInt)}objectNumber+=1}else{objectNumber=firstInt}this.skipWhitespaceAndComments()}return xref};PDFParser2.prototype.maybeParseTrailerDict=function(){this.skipWhitespaceAndComments();if(!this.matchKeyword(Keywords.trailer))return;this.skipWhitespaceAndComments();var dict=this.parseDict();var context2=this.context;context2.trailerInfo={Root:dict.get(PDFName_default.of("Root"))||context2.trailerInfo.Root,Encrypt:dict.get(PDFName_default.of("Encrypt"))||context2.trailerInfo.Encrypt,Info:dict.get(PDFName_default.of("Info"))||context2.trailerInfo.Info,ID:dict.get(PDFName_default.of("ID"))||context2.trailerInfo.ID}};PDFParser2.prototype.maybeParseTrailer=function(){this.skipWhitespaceAndComments();if(!this.matchKeyword(Keywords.startxref))return;this.skipWhitespaceAndComments();var offset=this.parseRawInt();this.skipWhitespace();this.matchKeyword(Keywords.eof);this.skipWhitespaceAndComments();this.matchKeyword(Keywords.eof);this.skipWhitespaceAndComments();return PDFTrailer_default.forLastCrossRefSectionOffset(offset)};PDFParser2.prototype.parseDocumentSection=function(){return __awaiter(this,undefined,undefined,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.parseIndirectObjects()];case 1:_a.sent();this.maybeParseCrossRefSection();this.maybeParseTrailerDict();this.maybeParseTrailer();this.skipJibberish();return[2]}})})};PDFParser2.prototype.skipJibberish=function(){this.skipWhitespaceAndComments();while(!this.bytes.done()){var initialOffset=this.bytes.offset();var byte=this.bytes.peek();var isAlphaNumeric=byte>=CharCodes_default.Space&&byte<=CharCodes_default.Tilde;if(isAlphaNumeric){if(this.matchKeyword(Keywords.xref)||this.matchKeyword(Keywords.trailer)||this.matchKeyword(Keywords.startxref)||this.matchIndirectObjectHeader()){this.bytes.moveTo(initialOffset);break}}this.bytes.next()}};PDFParser2.prototype.skipBinaryHeaderComment=function(){this.skipWhitespaceAndComments();try{var initialOffset=this.bytes.offset();this.parseIndirectObjectHeader();this.bytes.moveTo(initialOffset)}catch(e){this.bytes.next();this.skipWhitespaceAndComments()}};PDFParser2.forBytesWithOptions=function(pdfBytes,objectsPerTick,throwOnInvalidObject,capNumbers){return new PDFParser2(pdfBytes,objectsPerTick,throwOnInvalidObject,capNumbers)};return PDFParser2}(PDFObjectParser_default);PDFParser_default=PDFParser});var flag2=function(bitIndex){return 1<<bitIndex},AnnotationFlags;var init_flags2=__esm(()=>{(function(AnnotationFlags2){AnnotationFlags2[AnnotationFlags2["Invisible"]=flag2(1-1)]="Invisible";AnnotationFlags2[AnnotationFlags2["Hidden"]=flag2(2-1)]="Hidden";AnnotationFlags2[AnnotationFlags2["Print"]=flag2(3-1)]="Print";AnnotationFlags2[AnnotationFlags2["NoZoom"]=flag2(4-1)]="NoZoom";AnnotationFlags2[AnnotationFlags2["NoRotate"]=flag2(5-1)]="NoRotate";AnnotationFlags2[AnnotationFlags2["NoView"]=flag2(6-1)]="NoView";AnnotationFlags2[AnnotationFlags2["ReadOnly"]=flag2(7-1)]="ReadOnly";AnnotationFlags2[AnnotationFlags2["Locked"]=flag2(8-1)]="Locked";AnnotationFlags2[AnnotationFlags2["ToggleNoView"]=flag2(9-1)]="ToggleNoView";AnnotationFlags2[AnnotationFlags2["LockedContents"]=flag2(10-1)]="LockedContents"})(AnnotationFlags||(AnnotationFlags={}))});var init_annotation=__esm(()=>{init_PDFAnnotation();init_PDFWidgetAnnotation();init_AppearanceCharacteristics();init_flags2()});var init_core=__esm(()=>{init_CharCodes();init_PDFContext();init_PDFObjectCopier();init_PDFWriter();init_PDFStreamWriter();init_PDFHeader();init_PDFTrailer();init_PDFTrailerDict();init_PDFCrossRefSection();init_StandardFontEmbedder();init_CustomFontEmbedder();init_CustomFontSubsetEmbedder();init_FileEmbedder();init_JpegEmbedder();init_PngEmbedder();init_PDFPageEmbedder();init_ViewerPreferences();init_PDFObject();init_PDFBool();init_PDFNumber();init_PDFString();init_PDFHexString();init_PDFName();init_PDFNull();init_PDFArray();init_PDFDict();init_PDFRef();init_PDFInvalidObject();init_PDFStream();init_PDFRawStream();init_PDFCatalog();init_PDFContentStream();init_PDFCrossRefStream();init_PDFObjectStream();init_PDFPageTree();init_PDFPageLeaf();init_PDFFlateStream();init_PDFOperator();init_PDFOperatorNames();init_PDFObjectParser();init_PDFObjectStreamParser();init_PDFParser();init_PDFXRefStreamParser();init_decode();init_errors2();init_annotation();init_acroform()});var asPDFName=function(name2){return name2 instanceof PDFName_default?name2:PDFName_default.of(name2)},asPDFNumber=function(num){return num instanceof PDFNumber_default?num:PDFNumber_default.of(num)},asNumber=function(num){return num instanceof PDFNumber_default?num.asNumber():num};var init_objects2=__esm(()=>{init_core()});var RotationTypes,radians=function(radianAngle){assertIs(radianAngle,"radianAngle",["number"]);return{type:RotationTypes.Radians,angle:radianAngle}},degrees=function(degreeAngle){assertIs(degreeAngle,"degreeAngle",["number"]);return{type:RotationTypes.Degrees,angle:degreeAngle}},Radians,Degrees,degreesToRadians=function(degree){return degree*Math.PI/180},radiansToDegrees=function(radian){return radian*180/Math.PI},toRadians=function(rotation){return rotation.type===Radians?rotation.angle:rotation.type===Degrees?degreesToRadians(rotation.angle):error("Invalid rotation: "+JSON.stringify(rotation))},toDegrees=function(rotation){return rotation.type===Radians?radiansToDegrees(rotation.angle):rotation.type===Degrees?rotation.angle:error("Invalid rotation: "+JSON.stringify(rotation))},reduceRotation=function(degreeAngle){if(degreeAngle===undefined){degreeAngle=0}var quadrants=degreeAngle/90%4;if(quadrants===0)return 0;if(quadrants===1)return 90;if(quadrants===2)return 180;if(quadrants===3)return 270;return 0},adjustDimsForRotation=function(dims,degreeAngle){if(degreeAngle===undefined){degreeAngle=0}var rotation=reduceRotation(degreeAngle);return rotation===90||rotation===270?{width:dims.height,height:dims.width}:{width:dims.width,height:dims.height}},rotateRectangle=function(rectangle,borderWidth,degreeAngle){if(borderWidth===undefined){borderWidth=0}if(degreeAngle===undefined){degreeAngle=0}var{x,y,width:w,height:h}=rectangle;var r=reduceRotation(degreeAngle);var b=borderWidth/2;if(r===0)return{x:x-b,y:y-b,width:w,height:h};else if(r===90)return{x:x-h+b,y:y-b,width:h,height:w};else if(r===180)return{x:x-w+b,y:y-h+b,width:w,height:h};else if(r===270)return{x:x-b,y:y-w+b,width:h,height:w};else return{x:x-b,y:y-b,width:w,height:h}};var init_rotations=__esm(()=>{init_utils2();(function(RotationTypes2){RotationTypes2["Degrees"]="degrees";RotationTypes2["Radians"]="radians"})(RotationTypes||(RotationTypes={}));Radians=RotationTypes.Radians;Degrees=RotationTypes.Degrees});var clip=function(){return PDFOperator_default.of(PDFOperatorNames_default.ClipNonZero)},clipEvenOdd=function(){return PDFOperator_default.of(PDFOperatorNames_default.ClipEvenOdd)},cos,sin,tan,concatTransformationMatrix=function(a,b,c,d,e,f){return PDFOperator_default.of(PDFOperatorNames_default.ConcatTransformationMatrix,[asPDFNumber(a),asPDFNumber(b),asPDFNumber(c),asPDFNumber(d),asPDFNumber(e),asPDFNumber(f)])},translate=function(xPos,yPos){return concatTransformationMatrix(1,0,0,1,xPos,yPos)},scale=function(xPos,yPos){return concatTransformationMatrix(xPos,0,0,yPos,0,0)},rotateRadians=function(angle){return concatTransformationMatrix(cos(asNumber(angle)),sin(asNumber(angle)),-sin(asNumber(angle)),cos(asNumber(angle)),0,0)},rotateDegrees=function(angle){return rotateRadians(degreesToRadians(asNumber(angle)))},skewRadians=function(xSkewAngle,ySkewAngle){return concatTransformationMatrix(1,tan(asNumber(xSkewAngle)),tan(asNumber(ySkewAngle)),1,0,0)},skewDegrees=function(xSkewAngle,ySkewAngle){return skewRadians(degreesToRadians(asNumber(xSkewAngle)),degreesToRadians(asNumber(ySkewAngle)))},setDashPattern=function(dashArray,dashPhase){return PDFOperator_default.of(PDFOperatorNames_default.SetLineDashPattern,["["+dashArray.map(asPDFNumber).join(" ")+"]",asPDFNumber(dashPhase)])},restoreDashPattern=function(){return setDashPattern([],0)},LineCapStyle,setLineCap=function(style){return PDFOperator_default.of(PDFOperatorNames_default.SetLineCapStyle,[asPDFNumber(style)])},LineJoinStyle,setLineJoin=function(style){return PDFOperator_default.of(PDFOperatorNames_default.SetLineJoinStyle,[asPDFNumber(style)])},setGraphicsState=function(state){return PDFOperator_default.of(PDFOperatorNames_default.SetGraphicsStateParams,[asPDFName(state)])},pushGraphicsState=function(){return PDFOperator_default.of(PDFOperatorNames_default.PushGraphicsState)},popGraphicsState=function(){return PDFOperator_default.of(PDFOperatorNames_default.PopGraphicsState)},setLineWidth=function(width){return PDFOperator_default.of(PDFOperatorNames_default.SetLineWidth,[asPDFNumber(width)])},appendBezierCurve=function(x1,y1,x2,y2,x3,y3){return PDFOperator_default.of(PDFOperatorNames_default.AppendBezierCurve,[asPDFNumber(x1),asPDFNumber(y1),asPDFNumber(x2),asPDFNumber(y2),asPDFNumber(x3),asPDFNumber(y3)])},appendQuadraticCurve=function(x1,y1,x2,y2){return PDFOperator_default.of(PDFOperatorNames_default.CurveToReplicateInitialPoint,[asPDFNumber(x1),asPDFNumber(y1),asPDFNumber(x2),asPDFNumber(y2)])},closePath=function(){return PDFOperator_default.of(PDFOperatorNames_default.ClosePath)},moveTo=function(xPos,yPos){return PDFOperator_default.of(PDFOperatorNames_default.MoveTo,[asPDFNumber(xPos),asPDFNumber(yPos)])},lineTo=function(xPos,yPos){return PDFOperator_default.of(PDFOperatorNames_default.LineTo,[asPDFNumber(xPos),asPDFNumber(yPos)])},rectangle=function(xPos,yPos,width,height){return PDFOperator_default.of(PDFOperatorNames_default.AppendRectangle,[asPDFNumber(xPos),asPDFNumber(yPos),asPDFNumber(width),asPDFNumber(height)])},square=function(xPos,yPos,size){return rectangle(xPos,yPos,size,size)},stroke=function(){return PDFOperator_default.of(PDFOperatorNames_default.StrokePath)},fill=function(){return PDFOperator_default.of(PDFOperatorNames_default.FillNonZero)},fillAndStroke=function(){return PDFOperator_default.of(PDFOperatorNames_default.FillNonZeroAndStroke)},endPath=function(){return PDFOperator_default.of(PDFOperatorNames_default.EndPath)},nextLine=function(){return PDFOperator_default.of(PDFOperatorNames_default.NextLine)},moveText=function(x,y){return PDFOperator_default.of(PDFOperatorNames_default.MoveText,[asPDFNumber(x),asPDFNumber(y)])},showText=function(text5){return PDFOperator_default.of(PDFOperatorNames_default.ShowText,[text5])},beginText=function(){return PDFOperator_default.of(PDFOperatorNames_default.BeginText)},endText=function(){return PDFOperator_default.of(PDFOperatorNames_default.EndText)},setFontAndSize=function(name2,size){return PDFOperator_default.of(PDFOperatorNames_default.SetFontAndSize,[asPDFName(name2),asPDFNumber(size)])},setCharacterSpacing=function(spacing){return PDFOperator_default.of(PDFOperatorNames_default.SetCharacterSpacing,[asPDFNumber(spacing)])},setWordSpacing=function(spacing){return PDFOperator_default.of(PDFOperatorNames_default.SetWordSpacing,[asPDFNumber(spacing)])},setCharacterSqueeze=function(squeeze){return PDFOperator_default.of(PDFOperatorNames_default.SetTextHorizontalScaling,[asPDFNumber(squeeze)])},setLineHeight=function(lineHeight){return PDFOperator_default.of(PDFOperatorNames_default.SetTextLineHeight,[asPDFNumber(lineHeight)])},setTextRise=function(rise){return PDFOperator_default.of(PDFOperatorNames_default.SetTextRise,[asPDFNumber(rise)])},TextRenderingMode,setTextRenderingMode=function(mode){return PDFOperator_default.of(PDFOperatorNames_default.SetTextRenderingMode,[asPDFNumber(mode)])},setTextMatrix=function(a,b,c,d,e,f){return PDFOperator_default.of(PDFOperatorNames_default.SetTextMatrix,[asPDFNumber(a),asPDFNumber(b),asPDFNumber(c),asPDFNumber(d),asPDFNumber(e),asPDFNumber(f)])},rotateAndSkewTextRadiansAndTranslate=function(rotationAngle,xSkewAngle,ySkewAngle,x,y){return setTextMatrix(cos(asNumber(rotationAngle)),sin(asNumber(rotationAngle))+tan(asNumber(xSkewAngle)),-sin(asNumber(rotationAngle))+tan(asNumber(ySkewAngle)),cos(asNumber(rotationAngle)),x,y)},rotateAndSkewTextDegreesAndTranslate=function(rotationAngle,xSkewAngle,ySkewAngle,x,y){return rotateAndSkewTextRadiansAndTranslate(degreesToRadians(asNumber(rotationAngle)),degreesToRadians(asNumber(xSkewAngle)),degreesToRadians(asNumber(ySkewAngle)),x,y)},drawObject=function(name2){return PDFOperator_default.of(PDFOperatorNames_default.DrawObject,[asPDFName(name2)])},setFillingGrayscaleColor=function(gray){return PDFOperator_default.of(PDFOperatorNames_default.NonStrokingColorGray,[asPDFNumber(gray)])},setStrokingGrayscaleColor=function(gray){return PDFOperator_default.of(PDFOperatorNames_default.StrokingColorGray,[asPDFNumber(gray)])},setFillingRgbColor=function(red,green,blue){return PDFOperator_default.of(PDFOperatorNames_default.NonStrokingColorRgb,[asPDFNumber(red),asPDFNumber(green),asPDFNumber(blue)])},setStrokingRgbColor=function(red,green,blue){return PDFOperator_default.of(PDFOperatorNames_default.StrokingColorRgb,[asPDFNumber(red),asPDFNumber(green),asPDFNumber(blue)])},setFillingCmykColor=function(cyan,magenta,yellow,key){return PDFOperator_default.of(PDFOperatorNames_default.NonStrokingColorCmyk,[asPDFNumber(cyan),asPDFNumber(magenta),asPDFNumber(yellow),asPDFNumber(key)])},setStrokingCmykColor=function(cyan,magenta,yellow,key){return PDFOperator_default.of(PDFOperatorNames_default.StrokingColorCmyk,[asPDFNumber(cyan),asPDFNumber(magenta),asPDFNumber(yellow),asPDFNumber(key)])},beginMarkedContent=function(tag){return PDFOperator_default.of(PDFOperatorNames_default.BeginMarkedContent,[asPDFName(tag)])},endMarkedContent=function(){return PDFOperator_default.of(PDFOperatorNames_default.EndMarkedContent)};var init_operators=__esm(()=>{init_objects2();init_rotations();init_core();cos=Math.cos;sin=Math.sin;tan=Math.tan;(function(LineCapStyle2){LineCapStyle2[LineCapStyle2["Butt"]=0]="Butt";LineCapStyle2[LineCapStyle2["Round"]=1]="Round";LineCapStyle2[LineCapStyle2["Projecting"]=2]="Projecting"})(LineCapStyle||(LineCapStyle={}));(function(LineJoinStyle2){LineJoinStyle2[LineJoinStyle2["Miter"]=0]="Miter";LineJoinStyle2[LineJoinStyle2["Round"]=1]="Round";LineJoinStyle2[LineJoinStyle2["Bevel"]=2]="Bevel"})(LineJoinStyle||(LineJoinStyle={}));(function(TextRenderingMode2){TextRenderingMode2[TextRenderingMode2["Fill"]=0]="Fill";TextRenderingMode2[TextRenderingMode2["Outline"]=1]="Outline";TextRenderingMode2[TextRenderingMode2["FillAndOutline"]=2]="FillAndOutline";TextRenderingMode2[TextRenderingMode2["Invisible"]=3]="Invisible";TextRenderingMode2[TextRenderingMode2["FillAndClip"]=4]="FillAndClip";TextRenderingMode2[TextRenderingMode2["OutlineAndClip"]=5]="OutlineAndClip";TextRenderingMode2[TextRenderingMode2["FillAndOutlineAndClip"]=6]="FillAndOutlineAndClip";TextRenderingMode2[TextRenderingMode2["Clip"]=7]="Clip"})(TextRenderingMode||(TextRenderingMode={}))});var ColorTypes,grayscale=function(gray){assertRange(gray,"gray",0,1);return{type:ColorTypes.Grayscale,gray}},rgb=function(red,green,blue){assertRange(red,"red",0,1);assertRange(green,"green",0,1);assertRange(blue,"blue",0,1);return{type:ColorTypes.RGB,red,green,blue}},cmyk=function(cyan,magenta,yellow,key){assertRange(cyan,"cyan",0,1);assertRange(magenta,"magenta",0,1);assertRange(yellow,"yellow",0,1);assertRange(key,"key",0,1);return{type:ColorTypes.CMYK,cyan,magenta,yellow,key}},Grayscale,RGB,CMYK,setFillingColor=function(color){return color.type===Grayscale?setFillingGrayscaleColor(color.gray):color.type===RGB?setFillingRgbColor(color.red,color.green,color.blue):color.type===CMYK?setFillingCmykColor(color.cyan,color.magenta,color.yellow,color.key):error("Invalid color: "+JSON.stringify(color))},setStrokingColor=function(color){return color.type===Grayscale?setStrokingGrayscaleColor(color.gray):color.type===RGB?setStrokingRgbColor(color.red,color.green,color.blue):color.type===CMYK?setStrokingCmykColor(color.cyan,color.magenta,color.yellow,color.key):error("Invalid color: "+JSON.stringify(color))},componentsToColor=function(comps,scale2){if(scale2===undefined){scale2=1}return(comps===null||comps===undefined?undefined:comps.length)===1?grayscale(comps[0]*scale2):(comps===null||comps===undefined?undefined:comps.length)===3?rgb(comps[0]*scale2,comps[1]*scale2,comps[2]*scale2):(comps===null||comps===undefined?undefined:comps.length)===4?cmyk(comps[0]*scale2,comps[1]*scale2,comps[2]*scale2,comps[3]*scale2):undefined},colorToComponents=function(color){return color.type===Grayscale?[color.gray]:color.type===RGB?[color.red,color.green,color.blue]:color.type===CMYK?[color.cyan,color.magenta,color.yellow,color.key]:error("Invalid color: "+JSON.stringify(color))};var init_colors=__esm(()=>{init_operators();init_utils2();(function(ColorTypes2){ColorTypes2["Grayscale"]="Grayscale";ColorTypes2["RGB"]="RGB";ColorTypes2["CMYK"]="CMYK"})(ColorTypes||(ColorTypes={}));Grayscale=ColorTypes.Grayscale;RGB=ColorTypes.RGB;CMYK=ColorTypes.CMYK});var cx=0,cy=0,px=0,py=0,sx=0,sy=0,parameters,parse=function(path){var cmd;var ret=[];var args=[];var curArg="";var foundDecimal=false;var params=0;for(var _i=0,path_1=path;_i<path_1.length;_i++){var c=path_1[_i];if(parameters.has(c)){params=parameters.get(c);if(cmd){if(curArg.length>0){args[args.length]=+curArg}ret[ret.length]={cmd,args};args=[];curArg="";foundDecimal=false}cmd=c}else if([" ",","].includes(c)||c==="-"&&curArg.length>0&&curArg[curArg.length-1]!=="e"||c==="."&&foundDecimal){if(curArg.length===0){continue}if(args.length===params){ret[ret.length]={cmd,args};args=[+curArg];if(cmd==="M"){cmd="L"}if(cmd==="m"){cmd="l"}}else{args[args.length]=+curArg}foundDecimal=c===".";curArg=["-","."].includes(c)?c:""}else{curArg+=c;if(c==="."){foundDecimal=true}}}if(curArg.length>0){if(args.length===params){ret[ret.length]={cmd,args};args=[+curArg];if(cmd==="M"){cmd="L"}if(cmd==="m"){cmd="l"}}else{args[args.length]=+curArg}}ret[ret.length]={cmd,args};return ret},apply=function(commands){cx=cy=px=py=sx=sy=0;var cmds=[];for(var i3=0;i3<commands.length;i3++){var c=commands[i3];if(c.cmd&&typeof runners[c.cmd]==="function"){var cmd=runners[c.cmd](c.args);if(Array.isArray(cmd)){cmds=cmds.concat(cmd)}else{cmds.push(cmd)}}}return cmds},runners,solveArc=function(x,y,coords){var rx=coords[0],ry=coords[1],rot=coords[2],large=coords[3],sweep=coords[4],ex=coords[5],ey=coords[6];var segs=arcToSegments(ex,ey,rx,ry,large,sweep,rot,x,y);var cmds=[];for(var _i=0,segs_1=segs;_i<segs_1.length;_i++){var seg=segs_1[_i];var bez=segmentToBezier.apply(undefined,seg);cmds.push(appendBezierCurve.apply(undefined,bez))}return cmds},arcToSegments=function(x,y,rx,ry,large,sweep,rotateX,ox,oy){var th=rotateX*(Math.PI/180);var sinTh=Math.sin(th);var cosTh=Math.cos(th);rx=Math.abs(rx);ry=Math.abs(ry);px=cosTh*(ox-x)*0.5+sinTh*(oy-y)*0.5;py=cosTh*(oy-y)*0.5-sinTh*(ox-x)*0.5;var pl=px*px/(rx*rx)+py*py/(ry*ry);if(pl>1){pl=Math.sqrt(pl);rx*=pl;ry*=pl}var a00=cosTh/rx;var a01=sinTh/rx;var a10=-sinTh/ry;var a11=cosTh/ry;var x0=a00*ox+a01*oy;var y0=a10*ox+a11*oy;var x1=a00*x+a01*y;var y1=a10*x+a11*y;var d=(x1-x0)*(x1-x0)+(y1-y0)*(y1-y0);var sfactorSq=1/d-0.25;if(sfactorSq<0){sfactorSq=0}var sfactor=Math.sqrt(sfactorSq);if(sweep===large){sfactor=-sfactor}var xc=0.5*(x0+x1)-sfactor*(y1-y0);var yc=0.5*(y0+y1)+sfactor*(x1-x0);var th0=Math.atan2(y0-yc,x0-xc);var th1=Math.atan2(y1-yc,x1-xc);var thArc=th1-th0;if(thArc<0&&sweep===1){thArc+=2*Math.PI}else if(thArc>0&&sweep===0){thArc-=2*Math.PI}var segments=Math.ceil(Math.abs(thArc/(Math.PI*0.5+0.001)));var result2=[];for(var i3=0;i3<segments;i3++){var th2=th0+i3*thArc/segments;var th3=th0+(i3+1)*thArc/segments;result2[i3]=[xc,yc,th2,th3,rx,ry,sinTh,cosTh]}return result2},segmentToBezier=function(cx1,cy1,th0,th1,rx,ry,sinTh,cosTh){var a00=cosTh*rx;var a01=-sinTh*ry;var a10=sinTh*rx;var a11=cosTh*ry;var thHalf=0.5*(th1-th0);var t=8/3*Math.sin(thHalf*0.5)*Math.sin(thHalf*0.5)/Math.sin(thHalf);var x1=cx1+Math.cos(th0)-t*Math.sin(th0);var y1=cy1+Math.sin(th0)+t*Math.cos(th0);var x3=cx1+Math.cos(th1);var y3=cy1+Math.sin(th1);var x2=x3+t*Math.sin(th1);var y2=y3-t*Math.cos(th1);var result2=[a00*x1+a01*y1,a10*x1+a11*y1,a00*x2+a01*y2,a10*x2+a11*y2,a00*x3+a01*y3,a10*x3+a11*y3];return result2},svgPathToOperators=function(path){return apply(parse(path))};var init_svgPath=__esm(()=>{init_operators();parameters=new Map([["A",7],["a",7],["C",6],["c",6],["H",1],["h",1],["L",2],["l",2],["M",2],["m",2],["Q",4],["q",4],["S",4],["s",4],["T",2],["t",2],["V",1],["v",1],["Z",0],["z",0]]);runners={M:function(a){cx=a[0];cy=a[1];px=py=null;sx=cx;sy=cy;return moveTo(cx,cy)},m:function(a){cx+=a[0];cy+=a[1];px=py=null;sx=cx;sy=cy;return moveTo(cx,cy)},C:function(a){cx=a[4];cy=a[5];px=a[2];py=a[3];return appendBezierCurve(a[0],a[1],a[2],a[3],a[4],a[5])},c:function(a){var cmd=appendBezierCurve(a[0]+cx,a[1]+cy,a[2]+cx,a[3]+cy,a[4]+cx,a[5]+cy);px=cx+a[2];py=cy+a[3];cx+=a[4];cy+=a[5];return cmd},S:function(a){if(px===null||py===null){px=cx;py=cy}var cmd=appendBezierCurve(cx-(px-cx),cy-(py-cy),a[0],a[1],a[2],a[3]);px=a[0];py=a[1];cx=a[2];cy=a[3];return cmd},s:function(a){if(px===null||py===null){px=cx;py=cy}var cmd=appendBezierCurve(cx-(px-cx),cy-(py-cy),cx+a[0],cy+a[1],cx+a[2],cy+a[3]);px=cx+a[0];py=cy+a[1];cx+=a[2];cy+=a[3];return cmd},Q:function(a){px=a[0];py=a[1];cx=a[2];cy=a[3];return appendQuadraticCurve(a[0],a[1],cx,cy)},q:function(a){var cmd=appendQuadraticCurve(a[0]+cx,a[1]+cy,a[2]+cx,a[3]+cy);px=cx+a[0];py=cy+a[1];cx+=a[2];cy+=a[3];return cmd},T:function(a){if(px===null||py===null){px=cx;py=cy}else{px=cx-(px-cx);py=cy-(py-cy)}var cmd=appendQuadraticCurve(px,py,a[0],a[1]);px=cx-(px-cx);py=cy-(py-cy);cx=a[0];cy=a[1];return cmd},t:function(a){if(px===null||py===null){px=cx;py=cy}else{px=cx-(px-cx);py=cy-(py-cy)}var cmd=appendQuadraticCurve(px,py,cx+a[0],cy+a[1]);cx+=a[0];cy+=a[1];return cmd},A:function(a){var cmds=solveArc(cx,cy,a);cx=a[5];cy=a[6];return cmds},a:function(a){a[5]+=cx;a[6]+=cy;var cmds=solveArc(cx,cy,a);cx=a[5];cy=a[6];return cmds},L:function(a){cx=a[0];cy=a[1];px=py=null;return lineTo(cx,cy)},l:function(a){cx+=a[0];cy+=a[1];px=py=null;return lineTo(cx,cy)},H:function(a){cx=a[0];px=py=null;return lineTo(cx,cy)},h:function(a){cx+=a[0];px=py=null;return lineTo(cx,cy)},V:function(a){cy=a[0];px=py=null;return lineTo(cx,cy)},v:function(a){cy+=a[0];px=py=null;return lineTo(cx,cy)},Z:function(){var cmd=closePath();cx=sx;cy=sy;return cmd},z:function(){var cmd=closePath();cx=sx;cy=sy;return cmd}}});var drawText=function(line,options){return[pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),beginText(),setFillingColor(options.color),setFontAndSize(options.font,options.size),rotateAndSkewTextRadiansAndTranslate(toRadians(options.rotate),toRadians(options.xSkew),toRadians(options.ySkew),options.x,options.y),showText(line),endText(),popGraphicsState()].filter(Boolean)},drawLinesOfText=function(lines,options){var operators=[pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),beginText(),setFillingColor(options.color),setFontAndSize(options.font,options.size),setLineHeight(options.lineHeight),rotateAndSkewTextRadiansAndTranslate(toRadians(options.rotate),toRadians(options.xSkew),toRadians(options.ySkew),options.x,options.y)].filter(Boolean);for(var idx4=0,len3=lines.length;idx4<len3;idx4++){operators.push(showText(lines[idx4]),nextLine())}operators.push(endText(),popGraphicsState());return operators},drawImage=function(name2,options){return[pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),translate(options.x,options.y),rotateRadians(toRadians(options.rotate)),scale(options.width,options.height),skewRadians(toRadians(options.xSkew),toRadians(options.ySkew)),drawObject(name2),popGraphicsState()].filter(Boolean)},drawPage=function(name2,options){return[pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),translate(options.x,options.y),rotateRadians(toRadians(options.rotate)),scale(options.xScale,options.yScale),skewRadians(toRadians(options.xSkew),toRadians(options.ySkew)),drawObject(name2),popGraphicsState()].filter(Boolean)},drawLine=function(options){var _a,_b;return[pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),options.color&&setStrokingColor(options.color),setLineWidth(options.thickness),setDashPattern((_a=options.dashArray)!==null&&_a!==undefined?_a:[],(_b=options.dashPhase)!==null&&_b!==undefined?_b:0),moveTo(options.start.x,options.start.y),options.lineCap&&setLineCap(options.lineCap),moveTo(options.start.x,options.start.y),lineTo(options.end.x,options.end.y),stroke(),popGraphicsState()].filter(Boolean)},drawRectangle=function(options){var _a,_b;return[pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),options.color&&setFillingColor(options.color),options.borderColor&&setStrokingColor(options.borderColor),setLineWidth(options.borderWidth),options.borderLineCap&&setLineCap(options.borderLineCap),setDashPattern((_a=options.borderDashArray)!==null&&_a!==undefined?_a:[],(_b=options.borderDashPhase)!==null&&_b!==undefined?_b:0),translate(options.x,options.y),rotateRadians(toRadians(options.rotate)),skewRadians(toRadians(options.xSkew),toRadians(options.ySkew)),moveTo(0,0),lineTo(0,options.height),lineTo(options.width,options.height),lineTo(options.width,0),closePath(),options.color&&options.borderWidth?fillAndStroke():options.color?fill():options.borderColor?stroke():closePath(),popGraphicsState()].filter(Boolean)},KAPPA,drawEllipsePath=function(config){var x=asNumber(config.x);var y=asNumber(config.y);var xScale=asNumber(config.xScale);var yScale=asNumber(config.yScale);x-=xScale;y-=yScale;var ox=xScale*KAPPA;var oy=yScale*KAPPA;var xe=x+xScale*2;var ye=y+yScale*2;var xm=x+xScale;var ym=y+yScale;return[pushGraphicsState(),moveTo(x,ym),appendBezierCurve(x,ym-oy,xm-ox,y,xm,y),appendBezierCurve(xm+ox,y,xe,ym-oy,xe,ym),appendBezierCurve(xe,ym+oy,xm+ox,ye,xm,ye),appendBezierCurve(xm-ox,ye,x,ym+oy,x,ym),popGraphicsState()]},drawEllipseCurves=function(config){var centerX=asNumber(config.x);var centerY=asNumber(config.y);var xScale=asNumber(config.xScale);var yScale=asNumber(config.yScale);var x=-xScale;var y=-yScale;var ox=xScale*KAPPA;var oy=yScale*KAPPA;var xe=x+xScale*2;var ye=y+yScale*2;var xm=x+xScale;var ym=y+yScale;return[translate(centerX,centerY),rotateRadians(toRadians(config.rotate)),moveTo(x,ym),appendBezierCurve(x,ym-oy,xm-ox,y,xm,y),appendBezierCurve(xm+ox,y,xe,ym-oy,xe,ym),appendBezierCurve(xe,ym+oy,xm+ox,ye,xm,ye),appendBezierCurve(xm-ox,ye,x,ym+oy,x,ym)]},drawEllipse=function(options){var _a,_b,_c;return __spreadArrays([pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),options.color&&setFillingColor(options.color),options.borderColor&&setStrokingColor(options.borderColor),setLineWidth(options.borderWidth),options.borderLineCap&&setLineCap(options.borderLineCap),setDashPattern((_a=options.borderDashArray)!==null&&_a!==undefined?_a:[],(_b=options.borderDashPhase)!==null&&_b!==undefined?_b:0)],options.rotate===undefined?drawEllipsePath({x:options.x,y:options.y,xScale:options.xScale,yScale:options.yScale}):drawEllipseCurves({x:options.x,y:options.y,xScale:options.xScale,yScale:options.yScale,rotate:(_c=options.rotate)!==null&&_c!==undefined?_c:degrees(0)}),[options.color&&options.borderWidth?fillAndStroke():options.color?fill():options.borderColor?stroke():closePath(),popGraphicsState()]).filter(Boolean)},drawSvgPath=function(path,options){var _a,_b,_c;return __spreadArrays([pushGraphicsState(),options.graphicsState&&setGraphicsState(options.graphicsState),translate(options.x,options.y),rotateRadians(toRadians((_a=options.rotate)!==null&&_a!==undefined?_a:degrees(0))),options.scale?scale(options.scale,-options.scale):scale(1,-1),options.color&&setFillingColor(options.color),options.borderColor&&setStrokingColor(options.borderColor),options.borderWidth&&setLineWidth(options.borderWidth),options.borderLineCap&&setLineCap(options.borderLineCap),setDashPattern((_b=options.borderDashArray)!==null&&_b!==undefined?_b:[],(_c=options.borderDashPhase)!==null&&_c!==undefined?_c:0)],svgPathToOperators(path),[options.color&&options.borderWidth?fillAndStroke():options.color?fill():options.borderColor?stroke():closePath(),popGraphicsState()]).filter(Boolean)},drawCheckMark=function(options){var size=asNumber(options.size);var p2x=-1+0.75;var p2y=-1+0.51;var p3y=1-0.525;var p3x=1-0.31;var p1x=-1+0.325;var p1y=-((p1x-p2x)*(p3x-p2x))/(p3y-p2y)+p2y;return[pushGraphicsState(),options.color&&setStrokingColor(options.color),setLineWidth(options.thickness),translate(options.x,options.y),moveTo(p1x*size,p1y*size),lineTo(p2x*size,p2y*size),lineTo(p3x*size,p3y*size),stroke(),popGraphicsState()].filter(Boolean)},rotateInPlace=function(options){return options.rotation===0?[translate(0,0),rotateDegrees(0)]:options.rotation===90?[translate(options.width,0),rotateDegrees(90)]:options.rotation===180?[translate(options.width,options.height),rotateDegrees(180)]:options.rotation===270?[translate(0,options.height),rotateDegrees(270)]:[]},drawCheckBox=function(options){var outline=drawRectangle({x:options.x,y:options.y,width:options.width,height:options.height,borderWidth:options.borderWidth,color:options.color,borderColor:options.borderColor,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)});if(!options.filled)return outline;var width=asNumber(options.width);var height=asNumber(options.height);var checkMarkSize=Math.min(width,height)/2;var checkMark=drawCheckMark({x:width/2,y:height/2,size:checkMarkSize,thickness:options.thickness,color:options.markColor});return __spreadArrays([pushGraphicsState()],outline,checkMark,[popGraphicsState()])},drawRadioButton=function(options){var width=asNumber(options.width);var height=asNumber(options.height);var outlineScale=Math.min(width,height)/2;var outline=drawEllipse({x:options.x,y:options.y,xScale:outlineScale,yScale:outlineScale,color:options.color,borderColor:options.borderColor,borderWidth:options.borderWidth});if(!options.filled)return outline;var dot=drawEllipse({x:options.x,y:options.y,xScale:outlineScale*0.45,yScale:outlineScale*0.45,color:options.dotColor,borderColor:undefined,borderWidth:0});return __spreadArrays([pushGraphicsState()],outline,dot,[popGraphicsState()])},drawButton=function(options){var x=asNumber(options.x);var y=asNumber(options.y);var width=asNumber(options.width);var height=asNumber(options.height);var background=drawRectangle({x,y,width,height,borderWidth:options.borderWidth,color:options.color,borderColor:options.borderColor,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)});var lines=drawTextLines(options.textLines,{color:options.textColor,font:options.font,size:options.fontSize,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)});return __spreadArrays([pushGraphicsState()],background,lines,[popGraphicsState()])},drawTextLines=function(lines,options){var operators=[beginText(),setFillingColor(options.color),setFontAndSize(options.font,options.size)];for(var idx4=0,len3=lines.length;idx4<len3;idx4++){var _a=lines[idx4],encoded=_a.encoded,x=_a.x,y=_a.y;operators.push(rotateAndSkewTextRadiansAndTranslate(toRadians(options.rotate),toRadians(options.xSkew),toRadians(options.ySkew),x,y),showText(encoded))}operators.push(endText());return operators},drawTextField=function(options){var x=asNumber(options.x);var y=asNumber(options.y);var width=asNumber(options.width);var height=asNumber(options.height);var borderWidth=asNumber(options.borderWidth);var padding=asNumber(options.padding);var clipX=x+borderWidth/2+padding;var clipY=y+borderWidth/2+padding;var clipWidth=width-(borderWidth/2+padding)*2;var clipHeight=height-(borderWidth/2+padding)*2;var clippingArea=[moveTo(clipX,clipY),lineTo(clipX,clipY+clipHeight),lineTo(clipX+clipWidth,clipY+clipHeight),lineTo(clipX+clipWidth,clipY),closePath(),clip(),endPath()];var background=drawRectangle({x,y,width,height,borderWidth:options.borderWidth,color:options.color,borderColor:options.borderColor,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)});var lines=drawTextLines(options.textLines,{color:options.textColor,font:options.font,size:options.fontSize,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)});var markedContent=__spreadArrays([beginMarkedContent("Tx"),pushGraphicsState()],lines,[popGraphicsState(),endMarkedContent()]);return __spreadArrays([pushGraphicsState()],background,clippingArea,markedContent,[popGraphicsState()])},drawOptionList=function(options){var x=asNumber(options.x);var y=asNumber(options.y);var width=asNumber(options.width);var height=asNumber(options.height);var lineHeight=asNumber(options.lineHeight);var borderWidth=asNumber(options.borderWidth);var padding=asNumber(options.padding);var clipX=x+borderWidth/2+padding;var clipY=y+borderWidth/2+padding;var clipWidth=width-(borderWidth/2+padding)*2;var clipHeight=height-(borderWidth/2+padding)*2;var clippingArea=[moveTo(clipX,clipY),lineTo(clipX,clipY+clipHeight),lineTo(clipX+clipWidth,clipY+clipHeight),lineTo(clipX+clipWidth,clipY),closePath(),clip(),endPath()];var background=drawRectangle({x,y,width,height,borderWidth:options.borderWidth,color:options.color,borderColor:options.borderColor,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)});var highlights=[];for(var idx4=0,len3=options.selectedLines.length;idx4<len3;idx4++){var line=options.textLines[options.selectedLines[idx4]];highlights.push.apply(highlights,drawRectangle({x:line.x-padding,y:line.y-(lineHeight-line.height)/2,width:width-borderWidth,height:line.height+(lineHeight-line.height)/2,borderWidth:0,color:options.selectedColor,borderColor:undefined,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)}))}var lines=drawTextLines(options.textLines,{color:options.textColor,font:options.font,size:options.fontSize,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)});var markedContent=__spreadArrays([beginMarkedContent("Tx"),pushGraphicsState()],lines,[popGraphicsState(),endMarkedContent()]);return __spreadArrays([pushGraphicsState()],background,highlights,clippingArea,markedContent,[popGraphicsState()])};var init_operations=__esm(()=>{init_tslib_es62();init_colors();init_operators();init_rotations();init_svgPath();init_objects2();KAPPA=4*((Math.sqrt(2)-1)/3)});var EncryptedPDFError,FontkitNotRegisteredError,ForeignPageError,RemovePageFromEmptyDocumentError,NoSuchFieldError,UnexpectedFieldTypeError,MissingOnValueCheckError,FieldAlreadyExistsError,InvalidFieldNamePartError,FieldExistsAsNonTerminalError,RichTextFieldReadError,CombedTextLayoutError,ExceededMaxLengthError,InvalidMaxLengthError;var init_errors3=__esm(()=>{init_tslib_es62();EncryptedPDFError=function(_super){__extends(EncryptedPDFError2,_super);function EncryptedPDFError2(){var _this=this;var msg="Input document to `PDFDocument.load` is encrypted. You can use `PDFDocument.load(..., { ignoreEncryption: true })` if you wish to load the document anyways.";_this=_super.call(this,msg)||this;return _this}return EncryptedPDFError2}(Error);FontkitNotRegisteredError=function(_super){__extends(FontkitNotRegisteredError2,_super);function FontkitNotRegisteredError2(){var _this=this;var msg="Input to `PDFDocument.embedFont` was a custom font, but no `fontkit` instance was found. You must register a `fontkit` instance with `PDFDocument.registerFontkit(...)` before embedding custom fonts.";_this=_super.call(this,msg)||this;return _this}return FontkitNotRegisteredError2}(Error);ForeignPageError=function(_super){__extends(ForeignPageError2,_super);function ForeignPageError2(){var _this=this;var msg="A `page` passed to `PDFDocument.addPage` or `PDFDocument.insertPage` was from a different (foreign) PDF document. If you want to copy pages from one PDFDocument to another, you must use `PDFDocument.copyPages(...)` to copy the pages before adding or inserting them.";_this=_super.call(this,msg)||this;return _this}return ForeignPageError2}(Error);RemovePageFromEmptyDocumentError=function(_super){__extends(RemovePageFromEmptyDocumentError2,_super);function RemovePageFromEmptyDocumentError2(){var _this=this;var msg="PDFDocument has no pages so `PDFDocument.removePage` cannot be called";_this=_super.call(this,msg)||this;return _this}return RemovePageFromEmptyDocumentError2}(Error);NoSuchFieldError=function(_super){__extends(NoSuchFieldError2,_super);function NoSuchFieldError2(name2){var _this=this;var msg='PDFDocument has no form field with the name "'+name2+'"';_this=_super.call(this,msg)||this;return _this}return NoSuchFieldError2}(Error);UnexpectedFieldTypeError=function(_super){__extends(UnexpectedFieldTypeError2,_super);function UnexpectedFieldTypeError2(name2,expected,actual){var _a,_b;var _this=this;var expectedType=expected===null||expected===undefined?undefined:expected.name;var actualType=(_b=(_a=actual===null||actual===undefined?undefined:actual.constructor)===null||_a===undefined?undefined:_a.name)!==null&&_b!==undefined?_b:actual;var msg='Expected field "'+name2+'" to be of type '+expectedType+", "+("but it is actually of type "+actualType);_this=_super.call(this,msg)||this;return _this}return UnexpectedFieldTypeError2}(Error);MissingOnValueCheckError=function(_super){__extends(MissingOnValueCheckError2,_super);function MissingOnValueCheckError2(onValue){var _this=this;var msg='Failed to select check box due to missing onValue: "'+onValue+'"';_this=_super.call(this,msg)||this;return _this}return MissingOnValueCheckError2}(Error);FieldAlreadyExistsError=function(_super){__extends(FieldAlreadyExistsError2,_super);function FieldAlreadyExistsError2(name2){var _this=this;var msg='A field already exists with the specified name: "'+name2+'"';_this=_super.call(this,msg)||this;return _this}return FieldAlreadyExistsError2}(Error);InvalidFieldNamePartError=function(_super){__extends(InvalidFieldNamePartError2,_super);function InvalidFieldNamePartError2(namePart){var _this=this;var msg='Field name contains invalid component: "'+namePart+'"';_this=_super.call(this,msg)||this;return _this}return InvalidFieldNamePartError2}(Error);FieldExistsAsNonTerminalError=function(_super){__extends(FieldExistsAsNonTerminalError2,_super);function FieldExistsAsNonTerminalError2(name2){var _this=this;var msg='A non-terminal field already exists with the specified name: "'+name2+'"';_this=_super.call(this,msg)||this;return _this}return FieldExistsAsNonTerminalError2}(Error);RichTextFieldReadError=function(_super){__extends(RichTextFieldReadError2,_super);function RichTextFieldReadError2(fieldName){var _this=this;var msg="Reading rich text fields is not supported: Attempted to read rich text field: "+fieldName;_this=_super.call(this,msg)||this;return _this}return RichTextFieldReadError2}(Error);CombedTextLayoutError=function(_super){__extends(CombedTextLayoutError2,_super);function CombedTextLayoutError2(lineLength,cellCount){var _this=this;var msg="Failed to layout combed text as lineLength="+lineLength+" is greater than cellCount="+cellCount;_this=_super.call(this,msg)||this;return _this}return CombedTextLayoutError2}(Error);ExceededMaxLengthError=function(_super){__extends(ExceededMaxLengthError2,_super);function ExceededMaxLengthError2(textLength,maxLength,name2){var _this=this;var msg="Attempted to set text with length="+textLength+" for TextField with maxLength="+maxLength+" and name="+name2;_this=_super.call(this,msg)||this;return _this}return ExceededMaxLengthError2}(Error);InvalidMaxLengthError=function(_super){__extends(InvalidMaxLengthError2,_super);function InvalidMaxLengthError2(textLength,maxLength,name2){var _this=this;var msg="Attempted to set maxLength="+maxLength+", which is less than "+textLength+", the length of this field's current value (name="+name2+")";_this=_super.call(this,msg)||this;return _this}return InvalidMaxLengthError2}(Error)});var TextAlignment;var init_alignment=__esm(()=>{(function(TextAlignment2){TextAlignment2[TextAlignment2["Left"]=0]="Left";TextAlignment2[TextAlignment2["Center"]=1]="Center";TextAlignment2[TextAlignment2["Right"]=2]="Right"})(TextAlignment||(TextAlignment={}))});var MIN_FONT_SIZE=4,MAX_FONT_SIZE=500,computeFontSize=function(lines,font,bounds,multiline){if(multiline===undefined){multiline=false}var fontSize=MIN_FONT_SIZE;while(fontSize<MAX_FONT_SIZE){var linesUsed=0;for(var lineIdx=0,lineLen=lines.length;lineIdx<lineLen;lineIdx++){linesUsed+=1;var line=lines[lineIdx];var words=line.split(" ");var spaceInLineRemaining=bounds.width;for(var idx4=0,len3=words.length;idx4<len3;idx4++){var isLastWord=idx4===len3-1;var word=isLastWord?words[idx4]:words[idx4]+" ";var widthOfWord=font.widthOfTextAtSize(word,fontSize);spaceInLineRemaining-=widthOfWord;if(spaceInLineRemaining<=0){linesUsed+=1;spaceInLineRemaining=bounds.width-widthOfWord}}}if(!multiline&&linesUsed>lines.length)return fontSize-1;var height=font.heightAtSize(fontSize);var lineHeight=height+height*0.2;var totalHeight=lineHeight*linesUsed;if(totalHeight>Math.abs(bounds.height))return fontSize-1;fontSize+=1}return fontSize},computeCombedFontSize=function(line,font,bounds,cellCount){var cellWidth=bounds.width/cellCount;var cellHeight=bounds.height;var fontSize=MIN_FONT_SIZE;var chars3=charSplit(line);while(fontSize<MAX_FONT_SIZE){for(var idx4=0,len3=chars3.length;idx4<len3;idx4++){var c=chars3[idx4];var tooLong=font.widthOfTextAtSize(c,fontSize)>cellWidth*0.75;if(tooLong)return fontSize-1}var height=font.heightAtSize(fontSize,{descender:false});if(height>cellHeight)return fontSize-1;fontSize+=1}return fontSize},lastIndexOfWhitespace=function(line){for(var idx4=line.length;idx4>0;idx4--){if(/\s/.test(line[idx4]))return idx4}return},splitOutLines=function(input,maxWidth,font,fontSize){var _a;var lastWhitespaceIdx=input.length;while(lastWhitespaceIdx>0){var line=input.substring(0,lastWhitespaceIdx);var encoded=font.encodeText(line);var width=font.widthOfTextAtSize(line,fontSize);if(width<maxWidth){var remainder=input.substring(lastWhitespaceIdx)||undefined;return{line,encoded,width,remainder}}lastWhitespaceIdx=(_a=lastIndexOfWhitespace(line))!==null&&_a!==undefined?_a:0}return{line:input,encoded:font.encodeText(input),width:font.widthOfTextAtSize(input,fontSize),remainder:undefined}},layoutMultilineText=function(text5,_a){var{alignment,fontSize,font,bounds}=_a;var lines=lineSplit(cleanText(text5));if(fontSize===undefined||fontSize===0){fontSize=computeFontSize(lines,font,bounds,true)}var height=font.heightAtSize(fontSize);var lineHeight=height+height*0.2;var textLines=[];var minX=bounds.x;var minY=bounds.y;var maxX=bounds.x+bounds.width;var maxY=bounds.y+bounds.height;var y=bounds.y+bounds.height;for(var idx4=0,len3=lines.length;idx4<len3;idx4++){var prevRemainder=lines[idx4];while(prevRemainder!==undefined){var _b=splitOutLines(prevRemainder,bounds.width,font,fontSize),line=_b.line,encoded=_b.encoded,width=_b.width,remainder=_b.remainder;var x=alignment===TextAlignment.Left?bounds.x:alignment===TextAlignment.Center?bounds.x+bounds.width/2-width/2:alignment===TextAlignment.Right?bounds.x+bounds.width-width:bounds.x;y-=lineHeight;if(x<minX)minX=x;if(y<minY)minY=y;if(x+width>maxX)maxX=x+width;if(y+height>maxY)maxY=y+height;textLines.push({text:line,encoded,width,height,x,y});prevRemainder=remainder===null||remainder===undefined?undefined:remainder.trim()}}return{fontSize,lineHeight,lines:textLines,bounds:{x:minX,y:minY,width:maxX-minX,height:maxY-minY}}},layoutCombedText=function(text5,_a){var{fontSize,font,bounds,cellCount}=_a;var line=mergeLines(cleanText(text5));if(line.length>cellCount){throw new CombedTextLayoutError(line.length,cellCount)}if(fontSize===undefined||fontSize===0){fontSize=computeCombedFontSize(line,font,bounds,cellCount)}var cellWidth=bounds.width/cellCount;var height=font.heightAtSize(fontSize,{descender:false});var y=bounds.y+(bounds.height/2-height/2);var cells=[];var minX=bounds.x;var minY=bounds.y;var maxX=bounds.x+bounds.width;var maxY=bounds.y+bounds.height;var cellOffset=0;var charOffset=0;while(cellOffset<cellCount){var _b=charAtIndex(line,charOffset),char=_b[0],charLength=_b[1];var encoded=font.encodeText(char);var width=font.widthOfTextAtSize(char,fontSize);var cellCenter=bounds.x+(cellWidth*cellOffset+cellWidth/2);var x=cellCenter-width/2;if(x<minX)minX=x;if(y<minY)minY=y;if(x+width>maxX)maxX=x+width;if(y+height>maxY)maxY=y+height;cells.push({text:line,encoded,width,height,x,y});cellOffset+=1;charOffset+=charLength}return{fontSize,cells,bounds:{x:minX,y:minY,width:maxX-minX,height:maxY-minY}}},layoutSinglelineText=function(text5,_a){var{alignment,fontSize,font,bounds}=_a;var line=mergeLines(cleanText(text5));if(fontSize===undefined||fontSize===0){fontSize=computeFontSize([line],font,bounds)}var encoded=font.encodeText(line);var width=font.widthOfTextAtSize(line,fontSize);var height=font.heightAtSize(fontSize,{descender:false});var x=alignment===TextAlignment.Left?bounds.x:alignment===TextAlignment.Center?bounds.x+bounds.width/2-width/2:alignment===TextAlignment.Right?bounds.x+bounds.width-width:bounds.x;var y=bounds.y+(bounds.height/2-height/2);return{fontSize,line:{text:line,encoded,width,height,x,y},bounds:{x,y,width,height}}};var init_layout=__esm(()=>{init_errors3();init_alignment();init_utils2()});var normalizeAppearance=function(appearance){if("normal"in appearance)return appearance;return{normal:appearance}},tfRegex2,getDefaultFontSize=function(field){var _a,_b;var da=(_a=field.getDefaultAppearance())!==null&&_a!==undefined?_a:"";var daMatch=(_b=findLastMatch(da,tfRegex2).match)!==null&&_b!==undefined?_b:[];var defaultFontSize=Number(daMatch[2]);return isFinite(defaultFontSize)?defaultFontSize:undefined},colorRegex,getDefaultColor=function(field){var _a;var da=(_a=field.getDefaultAppearance())!==null&&_a!==undefined?_a:"";var daMatch=findLastMatch(da,colorRegex).match;var _b=daMatch!==null&&daMatch!==undefined?daMatch:[],c1=_b[1],c2=_b[2],c3=_b[3],c4=_b[4],colorSpace=_b[5];if(colorSpace==="g"&&c1){return grayscale(Number(c1))}if(colorSpace==="rg"&&c1&&c2&&c3){return rgb(Number(c1),Number(c2),Number(c3))}if(colorSpace==="k"&&c1&&c2&&c3&&c4){return cmyk(Number(c1),Number(c2),Number(c3),Number(c4))}return},updateDefaultAppearance=function(field,color,font,fontSize){var _a;if(fontSize===undefined){fontSize=0}var da=[setFillingColor(color).toString(),setFontAndSize((_a=font===null||font===undefined?undefined:font.name)!==null&&_a!==undefined?_a:"dummy__noop",fontSize).toString()].join(`
|
|
72
|
-
`);field.setDefaultAppearance(da)},defaultCheckBoxAppearanceProvider=function(checkBox,widget){var _a,_b,_c;var widgetColor=getDefaultColor(widget);var fieldColor=getDefaultColor(checkBox.acroField);var rectangle2=widget.getRectangle();var ap=widget.getAppearanceCharacteristics();var bs=widget.getBorderStyle();var borderWidth=(_a=bs===null||bs===undefined?undefined:bs.getWidth())!==null&&_a!==undefined?_a:0;var rotation=reduceRotation(ap===null||ap===undefined?undefined:ap.getRotation());var _d=adjustDimsForRotation(rectangle2,rotation),width=_d.width,height=_d.height;var rotate=rotateInPlace(__assign(__assign({},rectangle2),{rotation}));var black=rgb(0,0,0);var borderColor=(_b=componentsToColor(ap===null||ap===undefined?undefined:ap.getBorderColor()))!==null&&_b!==undefined?_b:black;var normalBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor());var downBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor(),0.8);var textColor=(_c=widgetColor!==null&&widgetColor!==undefined?widgetColor:fieldColor)!==null&&_c!==undefined?_c:black;if(widgetColor){updateDefaultAppearance(widget,textColor)}else{updateDefaultAppearance(checkBox.acroField,textColor)}var options={x:0+borderWidth/2,y:0+borderWidth/2,width:width-borderWidth,height:height-borderWidth,thickness:1.5,borderWidth,borderColor,markColor:textColor};return{normal:{on:__spreadArrays(rotate,drawCheckBox(__assign(__assign({},options),{color:normalBackgroundColor,filled:true}))),off:__spreadArrays(rotate,drawCheckBox(__assign(__assign({},options),{color:normalBackgroundColor,filled:false})))},down:{on:__spreadArrays(rotate,drawCheckBox(__assign(__assign({},options),{color:downBackgroundColor,filled:true}))),off:__spreadArrays(rotate,drawCheckBox(__assign(__assign({},options),{color:downBackgroundColor,filled:false})))}}},defaultRadioGroupAppearanceProvider=function(radioGroup,widget){var _a,_b,_c;var widgetColor=getDefaultColor(widget);var fieldColor=getDefaultColor(radioGroup.acroField);var rectangle2=widget.getRectangle();var ap=widget.getAppearanceCharacteristics();var bs=widget.getBorderStyle();var borderWidth=(_a=bs===null||bs===undefined?undefined:bs.getWidth())!==null&&_a!==undefined?_a:0;var rotation=reduceRotation(ap===null||ap===undefined?undefined:ap.getRotation());var _d=adjustDimsForRotation(rectangle2,rotation),width=_d.width,height=_d.height;var rotate=rotateInPlace(__assign(__assign({},rectangle2),{rotation}));var black=rgb(0,0,0);var borderColor=(_b=componentsToColor(ap===null||ap===undefined?undefined:ap.getBorderColor()))!==null&&_b!==undefined?_b:black;var normalBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor());var downBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor(),0.8);var textColor=(_c=widgetColor!==null&&widgetColor!==undefined?widgetColor:fieldColor)!==null&&_c!==undefined?_c:black;if(widgetColor){updateDefaultAppearance(widget,textColor)}else{updateDefaultAppearance(radioGroup.acroField,textColor)}var options={x:width/2,y:height/2,width:width-borderWidth,height:height-borderWidth,borderWidth,borderColor,dotColor:textColor};return{normal:{on:__spreadArrays(rotate,drawRadioButton(__assign(__assign({},options),{color:normalBackgroundColor,filled:true}))),off:__spreadArrays(rotate,drawRadioButton(__assign(__assign({},options),{color:normalBackgroundColor,filled:false})))},down:{on:__spreadArrays(rotate,drawRadioButton(__assign(__assign({},options),{color:downBackgroundColor,filled:true}))),off:__spreadArrays(rotate,drawRadioButton(__assign(__assign({},options),{color:downBackgroundColor,filled:false})))}}},defaultButtonAppearanceProvider=function(button,widget,font){var _a,_b,_c,_d,_e;var widgetColor=getDefaultColor(widget);var fieldColor=getDefaultColor(button.acroField);var widgetFontSize=getDefaultFontSize(widget);var fieldFontSize=getDefaultFontSize(button.acroField);var rectangle2=widget.getRectangle();var ap=widget.getAppearanceCharacteristics();var bs=widget.getBorderStyle();var captions=ap===null||ap===undefined?undefined:ap.getCaptions();var normalText=(_a=captions===null||captions===undefined?undefined:captions.normal)!==null&&_a!==undefined?_a:"";var downText=(_c=(_b=captions===null||captions===undefined?undefined:captions.down)!==null&&_b!==undefined?_b:normalText)!==null&&_c!==undefined?_c:"";var borderWidth=(_d=bs===null||bs===undefined?undefined:bs.getWidth())!==null&&_d!==undefined?_d:0;var rotation=reduceRotation(ap===null||ap===undefined?undefined:ap.getRotation());var _f=adjustDimsForRotation(rectangle2,rotation),width=_f.width,height=_f.height;var rotate=rotateInPlace(__assign(__assign({},rectangle2),{rotation}));var black=rgb(0,0,0);var borderColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBorderColor());var normalBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor());var downBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor(),0.8);var bounds={x:borderWidth,y:borderWidth,width:width-borderWidth*2,height:height-borderWidth*2};var normalLayout=layoutSinglelineText(normalText,{alignment:TextAlignment.Center,fontSize:widgetFontSize!==null&&widgetFontSize!==undefined?widgetFontSize:fieldFontSize,font,bounds});var downLayout=layoutSinglelineText(downText,{alignment:TextAlignment.Center,fontSize:widgetFontSize!==null&&widgetFontSize!==undefined?widgetFontSize:fieldFontSize,font,bounds});var fontSize=Math.min(normalLayout.fontSize,downLayout.fontSize);var textColor=(_e=widgetColor!==null&&widgetColor!==undefined?widgetColor:fieldColor)!==null&&_e!==undefined?_e:black;if(widgetColor||widgetFontSize!==undefined){updateDefaultAppearance(widget,textColor,font,fontSize)}else{updateDefaultAppearance(button.acroField,textColor,font,fontSize)}var options={x:0+borderWidth/2,y:0+borderWidth/2,width:width-borderWidth,height:height-borderWidth,borderWidth,borderColor,textColor,font:font.name,fontSize};return{normal:__spreadArrays(rotate,drawButton(__assign(__assign({},options),{color:normalBackgroundColor,textLines:[normalLayout.line]}))),down:__spreadArrays(rotate,drawButton(__assign(__assign({},options),{color:downBackgroundColor,textLines:[downLayout.line]})))}},defaultTextFieldAppearanceProvider=function(textField,widget,font){var _a,_b,_c,_d;var widgetColor=getDefaultColor(widget);var fieldColor=getDefaultColor(textField.acroField);var widgetFontSize=getDefaultFontSize(widget);var fieldFontSize=getDefaultFontSize(textField.acroField);var rectangle2=widget.getRectangle();var ap=widget.getAppearanceCharacteristics();var bs=widget.getBorderStyle();var text5=(_a=textField.getText())!==null&&_a!==undefined?_a:"";var borderWidth=(_b=bs===null||bs===undefined?undefined:bs.getWidth())!==null&&_b!==undefined?_b:0;var rotation=reduceRotation(ap===null||ap===undefined?undefined:ap.getRotation());var _e=adjustDimsForRotation(rectangle2,rotation),width=_e.width,height=_e.height;var rotate=rotateInPlace(__assign(__assign({},rectangle2),{rotation}));var black=rgb(0,0,0);var borderColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBorderColor());var normalBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor());var textLines;var fontSize;var padding=textField.isCombed()?0:1;var bounds={x:borderWidth+padding,y:borderWidth+padding,width:width-(borderWidth+padding)*2,height:height-(borderWidth+padding)*2};if(textField.isMultiline()){var layout=layoutMultilineText(text5,{alignment:textField.getAlignment(),fontSize:widgetFontSize!==null&&widgetFontSize!==undefined?widgetFontSize:fieldFontSize,font,bounds});textLines=layout.lines;fontSize=layout.fontSize}else if(textField.isCombed()){var layout=layoutCombedText(text5,{fontSize:widgetFontSize!==null&&widgetFontSize!==undefined?widgetFontSize:fieldFontSize,font,bounds,cellCount:(_c=textField.getMaxLength())!==null&&_c!==undefined?_c:0});textLines=layout.cells;fontSize=layout.fontSize}else{var layout=layoutSinglelineText(text5,{alignment:textField.getAlignment(),fontSize:widgetFontSize!==null&&widgetFontSize!==undefined?widgetFontSize:fieldFontSize,font,bounds});textLines=[layout.line];fontSize=layout.fontSize}var textColor=(_d=widgetColor!==null&&widgetColor!==undefined?widgetColor:fieldColor)!==null&&_d!==undefined?_d:black;if(widgetColor||widgetFontSize!==undefined){updateDefaultAppearance(widget,textColor,font,fontSize)}else{updateDefaultAppearance(textField.acroField,textColor,font,fontSize)}var options={x:0+borderWidth/2,y:0+borderWidth/2,width:width-borderWidth,height:height-borderWidth,borderWidth:borderWidth!==null&&borderWidth!==undefined?borderWidth:0,borderColor,textColor,font:font.name,fontSize,color:normalBackgroundColor,textLines,padding};return __spreadArrays(rotate,drawTextField(options))},defaultDropdownAppearanceProvider=function(dropdown,widget,font){var _a,_b,_c;var widgetColor=getDefaultColor(widget);var fieldColor=getDefaultColor(dropdown.acroField);var widgetFontSize=getDefaultFontSize(widget);var fieldFontSize=getDefaultFontSize(dropdown.acroField);var rectangle2=widget.getRectangle();var ap=widget.getAppearanceCharacteristics();var bs=widget.getBorderStyle();var text5=(_a=dropdown.getSelected()[0])!==null&&_a!==undefined?_a:"";var borderWidth=(_b=bs===null||bs===undefined?undefined:bs.getWidth())!==null&&_b!==undefined?_b:0;var rotation=reduceRotation(ap===null||ap===undefined?undefined:ap.getRotation());var _d=adjustDimsForRotation(rectangle2,rotation),width=_d.width,height=_d.height;var rotate=rotateInPlace(__assign(__assign({},rectangle2),{rotation}));var black=rgb(0,0,0);var borderColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBorderColor());var normalBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor());var padding=1;var bounds={x:borderWidth+padding,y:borderWidth+padding,width:width-(borderWidth+padding)*2,height:height-(borderWidth+padding)*2};var _e=layoutSinglelineText(text5,{alignment:TextAlignment.Left,fontSize:widgetFontSize!==null&&widgetFontSize!==undefined?widgetFontSize:fieldFontSize,font,bounds}),line=_e.line,fontSize=_e.fontSize;var textColor=(_c=widgetColor!==null&&widgetColor!==undefined?widgetColor:fieldColor)!==null&&_c!==undefined?_c:black;if(widgetColor||widgetFontSize!==undefined){updateDefaultAppearance(widget,textColor,font,fontSize)}else{updateDefaultAppearance(dropdown.acroField,textColor,font,fontSize)}var options={x:0+borderWidth/2,y:0+borderWidth/2,width:width-borderWidth,height:height-borderWidth,borderWidth:borderWidth!==null&&borderWidth!==undefined?borderWidth:0,borderColor,textColor,font:font.name,fontSize,color:normalBackgroundColor,textLines:[line],padding};return __spreadArrays(rotate,drawTextField(options))},defaultOptionListAppearanceProvider=function(optionList,widget,font){var _a,_b;var widgetColor=getDefaultColor(widget);var fieldColor=getDefaultColor(optionList.acroField);var widgetFontSize=getDefaultFontSize(widget);var fieldFontSize=getDefaultFontSize(optionList.acroField);var rectangle2=widget.getRectangle();var ap=widget.getAppearanceCharacteristics();var bs=widget.getBorderStyle();var borderWidth=(_a=bs===null||bs===undefined?undefined:bs.getWidth())!==null&&_a!==undefined?_a:0;var rotation=reduceRotation(ap===null||ap===undefined?undefined:ap.getRotation());var _c=adjustDimsForRotation(rectangle2,rotation),width=_c.width,height=_c.height;var rotate=rotateInPlace(__assign(__assign({},rectangle2),{rotation}));var black=rgb(0,0,0);var borderColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBorderColor());var normalBackgroundColor=componentsToColor(ap===null||ap===undefined?undefined:ap.getBackgroundColor());var options=optionList.getOptions();var selected=optionList.getSelected();if(optionList.isSorted())options.sort();var text5="";for(var idx4=0,len3=options.length;idx4<len3;idx4++){text5+=options[idx4];if(idx4<len3-1)text5+=`
|
|
73
|
-
`}var padding=1;var bounds={x:borderWidth+padding,y:borderWidth+padding,width:width-(borderWidth+padding)*2,height:height-(borderWidth+padding)*2};var _d=layoutMultilineText(text5,{alignment:TextAlignment.Left,fontSize:widgetFontSize!==null&&widgetFontSize!==undefined?widgetFontSize:fieldFontSize,font,bounds}),lines=_d.lines,fontSize=_d.fontSize,lineHeight=_d.lineHeight;var selectedLines=[];for(var idx4=0,len3=lines.length;idx4<len3;idx4++){var line=lines[idx4];if(selected.includes(line.text))selectedLines.push(idx4)}var blue=rgb(153/255,193/255,218/255);var textColor=(_b=widgetColor!==null&&widgetColor!==undefined?widgetColor:fieldColor)!==null&&_b!==undefined?_b:black;if(widgetColor||widgetFontSize!==undefined){updateDefaultAppearance(widget,textColor,font,fontSize)}else{updateDefaultAppearance(optionList.acroField,textColor,font,fontSize)}return __spreadArrays(rotate,drawOptionList({x:0+borderWidth/2,y:0+borderWidth/2,width:width-borderWidth,height:height-borderWidth,borderWidth:borderWidth!==null&&borderWidth!==undefined?borderWidth:0,borderColor,textColor,font:font.name,fontSize,color:normalBackgroundColor,textLines:lines,lineHeight,selectedColor:blue,selectedLines,padding}))};var init_appearances=__esm(()=>{init_tslib_es62();init_operations();init_colors();init_rotations();init_layout();init_alignment();init_operators();init_utils2();tfRegex2=/\/([^\0\t\n\f\r\ ]+)[\0\t\n\f\r\ ]+(\d*\.\d+|\d+)[\0\t\n\f\r\ ]+Tf/;colorRegex=/(\d*\.\d+|\d+)[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]+(g|rg|k)/});var PDFEmbeddedPage,PDFEmbeddedPage_default;var init_PDFEmbeddedPage=__esm(()=>{init_tslib_es62();init_PDFDocument();init_core();init_utils2();PDFEmbeddedPage=function(){function PDFEmbeddedPage2(ref,doc,embedder){this.alreadyEmbedded=false;assertIs(ref,"ref",[[PDFRef_default,"PDFRef"]]);assertIs(doc,"doc",[[PDFDocument_default,"PDFDocument"]]);assertIs(embedder,"embedder",[[PDFPageEmbedder_default,"PDFPageEmbedder"]]);this.ref=ref;this.doc=doc;this.width=embedder.width;this.height=embedder.height;this.embedder=embedder}PDFEmbeddedPage2.prototype.scale=function(factor){assertIs(factor,"factor",["number"]);return{width:this.width*factor,height:this.height*factor}};PDFEmbeddedPage2.prototype.size=function(){return this.scale(1)};PDFEmbeddedPage2.prototype.embed=function(){return __awaiter(this,undefined,undefined,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!!this.alreadyEmbedded)return[3,2];return[4,this.embedder.embedIntoContext(this.doc.context,this.ref)];case 1:_a.sent();this.alreadyEmbedded=true;_a.label=2;case 2:return[2]}})})};PDFEmbeddedPage2.of=function(ref,doc,embedder){return new PDFEmbeddedPage2(ref,doc,embedder)};return PDFEmbeddedPage2}();PDFEmbeddedPage_default=PDFEmbeddedPage});var PDFFont,PDFFont_default;var init_PDFFont=__esm(()=>{init_tslib_es62();init_PDFDocument();init_core();init_utils2();PDFFont=function(){function PDFFont2(ref,doc,embedder){this.modified=true;assertIs(ref,"ref",[[PDFRef_default,"PDFRef"]]);assertIs(doc,"doc",[[PDFDocument_default,"PDFDocument"]]);assertIs(embedder,"embedder",[[CustomFontEmbedder_default,"CustomFontEmbedder"],[StandardFontEmbedder_default,"StandardFontEmbedder"]]);this.ref=ref;this.doc=doc;this.name=embedder.fontName;this.embedder=embedder}PDFFont2.prototype.encodeText=function(text5){assertIs(text5,"text",["string"]);this.modified=true;return this.embedder.encodeText(text5)};PDFFont2.prototype.widthOfTextAtSize=function(text5,size){assertIs(text5,"text",["string"]);assertIs(size,"size",["number"]);return this.embedder.widthOfTextAtSize(text5,size)};PDFFont2.prototype.heightAtSize=function(size,options){var _a;assertIs(size,"size",["number"]);assertOrUndefined(options===null||options===undefined?undefined:options.descender,"options.descender",["boolean"]);return this.embedder.heightOfFontAtSize(size,{descender:(_a=options===null||options===undefined?undefined:options.descender)!==null&&_a!==undefined?_a:true})};PDFFont2.prototype.sizeAtHeight=function(height){assertIs(height,"height",["number"]);return this.embedder.sizeOfFontAtHeight(height)};PDFFont2.prototype.getCharacterSet=function(){if(this.embedder instanceof StandardFontEmbedder_default){return this.embedder.encoding.supportedCodePoints}else{return this.embedder.font.characterSet}};PDFFont2.prototype.embed=function(){return __awaiter(this,undefined,undefined,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!this.modified)return[3,2];return[4,this.embedder.embedIntoContext(this.doc.context,this.ref)];case 1:_a.sent();this.modified=false;_a.label=2;case 2:return[2]}})})};PDFFont2.of=function(ref,doc,embedder){return new PDFFont2(ref,doc,embedder)};return PDFFont2}();PDFFont_default=PDFFont});var PDFImage,PDFImage_default;var init_PDFImage=__esm(()=>{init_tslib_es62();init_PDFDocument();init_core();init_utils2();PDFImage=function(){function PDFImage2(ref,doc,embedder){assertIs(ref,"ref",[[PDFRef_default,"PDFRef"]]);assertIs(doc,"doc",[[PDFDocument_default,"PDFDocument"]]);assertIs(embedder,"embedder",[[JpegEmbedder_default,"JpegEmbedder"],[PngEmbedder_default,"PngEmbedder"]]);this.ref=ref;this.doc=doc;this.width=embedder.width;this.height=embedder.height;this.embedder=embedder}PDFImage2.prototype.scale=function(factor){assertIs(factor,"factor",["number"]);return{width:this.width*factor,height:this.height*factor}};PDFImage2.prototype.scaleToFit=function(width,height){assertIs(width,"width",["number"]);assertIs(height,"height",["number"]);var imgWidthScale=width/this.width;var imgHeightScale=height/this.height;var scale2=Math.min(imgWidthScale,imgHeightScale);return this.scale(scale2)};PDFImage2.prototype.size=function(){return this.scale(1)};PDFImage2.prototype.embed=function(){return __awaiter(this,undefined,undefined,function(){var _a,doc,ref;return __generator(this,function(_b){switch(_b.label){case 0:if(!this.embedder)return[2];if(!this.embedTask){_a=this,doc=_a.doc,ref=_a.ref;this.embedTask=this.embedder.embedIntoContext(doc.context,ref)}return[4,this.embedTask];case 1:_b.sent();this.embedder=undefined;return[2]}})})};PDFImage2.of=function(ref,doc,embedder){return new PDFImage2(ref,doc,embedder)};return PDFImage2}();PDFImage_default=PDFImage});var ImageAlignment;var init_alignment2=__esm(()=>{(function(ImageAlignment2){ImageAlignment2[ImageAlignment2["Left"]=0]="Left";ImageAlignment2[ImageAlignment2["Center"]=1]="Center";ImageAlignment2[ImageAlignment2["Right"]=2]="Right"})(ImageAlignment||(ImageAlignment={}))});var init_image=__esm(()=>{init_alignment2()});var assertFieldAppearanceOptions=function(options){assertOrUndefined(options===null||options===undefined?undefined:options.x,"options.x",["number"]);assertOrUndefined(options===null||options===undefined?undefined:options.y,"options.y",["number"]);assertOrUndefined(options===null||options===undefined?undefined:options.width,"options.width",["number"]);assertOrUndefined(options===null||options===undefined?undefined:options.height,"options.height",["number"]);assertOrUndefined(options===null||options===undefined?undefined:options.textColor,"options.textColor",[[Object,"Color"]]);assertOrUndefined(options===null||options===undefined?undefined:options.backgroundColor,"options.backgroundColor",[[Object,"Color"]]);assertOrUndefined(options===null||options===undefined?undefined:options.borderColor,"options.borderColor",[[Object,"Color"]]);assertOrUndefined(options===null||options===undefined?undefined:options.borderWidth,"options.borderWidth",["number"]);assertOrUndefined(options===null||options===undefined?undefined:options.rotate,"options.rotate",[[Object,"Rotation"]])},PDFField,PDFField_default;var init_PDFField=__esm(()=>{init_tslib_es62();init_PDFDocument();init_colors();init_rotations();init_core();init_utils2();init_image();init_operations();PDFField=function(){function PDFField2(acroField,ref,doc){assertIs(acroField,"acroField",[[PDFAcroTerminal_default,"PDFAcroTerminal"]]);assertIs(ref,"ref",[[PDFRef_default,"PDFRef"]]);assertIs(doc,"doc",[[PDFDocument_default,"PDFDocument"]]);this.acroField=acroField;this.ref=ref;this.doc=doc}PDFField2.prototype.getName=function(){var _a;return(_a=this.acroField.getFullyQualifiedName())!==null&&_a!==undefined?_a:""};PDFField2.prototype.isReadOnly=function(){return this.acroField.hasFlag(AcroFieldFlags.ReadOnly)};PDFField2.prototype.enableReadOnly=function(){this.acroField.setFlagTo(AcroFieldFlags.ReadOnly,true)};PDFField2.prototype.disableReadOnly=function(){this.acroField.setFlagTo(AcroFieldFlags.ReadOnly,false)};PDFField2.prototype.isRequired=function(){return this.acroField.hasFlag(AcroFieldFlags.Required)};PDFField2.prototype.enableRequired=function(){this.acroField.setFlagTo(AcroFieldFlags.Required,true)};PDFField2.prototype.disableRequired=function(){this.acroField.setFlagTo(AcroFieldFlags.Required,false)};PDFField2.prototype.isExported=function(){return!this.acroField.hasFlag(AcroFieldFlags.NoExport)};PDFField2.prototype.enableExporting=function(){this.acroField.setFlagTo(AcroFieldFlags.NoExport,false)};PDFField2.prototype.disableExporting=function(){this.acroField.setFlagTo(AcroFieldFlags.NoExport,true)};PDFField2.prototype.needsAppearancesUpdate=function(){throw new MethodNotImplementedError(this.constructor.name,"needsAppearancesUpdate")};PDFField2.prototype.defaultUpdateAppearances=function(_font){throw new MethodNotImplementedError(this.constructor.name,"defaultUpdateAppearances")};PDFField2.prototype.markAsDirty=function(){this.doc.getForm().markFieldAsDirty(this.ref)};PDFField2.prototype.markAsClean=function(){this.doc.getForm().markFieldAsClean(this.ref)};PDFField2.prototype.isDirty=function(){return this.doc.getForm().fieldIsDirty(this.ref)};PDFField2.prototype.createWidget=function(options){var _a;var textColor=options.textColor;var backgroundColor=options.backgroundColor;var borderColor=options.borderColor;var borderWidth=options.borderWidth;var degreesAngle=toDegrees(options.rotate);var caption=options.caption;var x=options.x;var y=options.y;var width=options.width+borderWidth;var height=options.height+borderWidth;var hidden=Boolean(options.hidden);var pageRef=options.page;assertMultiple(degreesAngle,"degreesAngle",90);var widget=PDFWidgetAnnotation_default.create(this.doc.context,this.ref);var rect=rotateRectangle({x,y,width,height},borderWidth,degreesAngle);widget.setRectangle(rect);if(pageRef)widget.setP(pageRef);var ac=widget.getOrCreateAppearanceCharacteristics();if(backgroundColor){ac.setBackgroundColor(colorToComponents(backgroundColor))}ac.setRotation(degreesAngle);if(caption)ac.setCaptions({normal:caption});if(borderColor)ac.setBorderColor(colorToComponents(borderColor));var bs=widget.getOrCreateBorderStyle();if(borderWidth!==undefined)bs.setWidth(borderWidth);widget.setFlagTo(AnnotationFlags.Print,true);widget.setFlagTo(AnnotationFlags.Hidden,hidden);widget.setFlagTo(AnnotationFlags.Invisible,false);if(textColor){var da=(_a=this.acroField.getDefaultAppearance())!==null&&_a!==undefined?_a:"";var newDa=da+`
|
|
74
|
-
`+setFillingColor(textColor).toString();this.acroField.setDefaultAppearance(newDa)}return widget};PDFField2.prototype.updateWidgetAppearanceWithFont=function(widget,font,_a){var{normal,rollover,down}=_a;this.updateWidgetAppearances(widget,{normal:this.createAppearanceStream(widget,normal,font),rollover:rollover&&this.createAppearanceStream(widget,rollover,font),down:down&&this.createAppearanceStream(widget,down,font)})};PDFField2.prototype.updateOnOffWidgetAppearance=function(widget,onValue,_a){var{normal,rollover,down}=_a;this.updateWidgetAppearances(widget,{normal:this.createAppearanceDict(widget,normal,onValue),rollover:rollover&&this.createAppearanceDict(widget,rollover,onValue),down:down&&this.createAppearanceDict(widget,down,onValue)})};PDFField2.prototype.updateWidgetAppearances=function(widget,_a){var{normal,rollover,down}=_a;widget.setNormalAppearance(normal);if(rollover){widget.setRolloverAppearance(rollover)}else{widget.removeRolloverAppearance()}if(down){widget.setDownAppearance(down)}else{widget.removeDownAppearance()}};PDFField2.prototype.createAppearanceStream=function(widget,appearance,font){var _a;var context2=this.acroField.dict.context;var _b=widget.getRectangle(),width=_b.width,height=_b.height;var Resources=font&&{Font:(_a={},_a[font.name]=font.ref,_a)};var stream2=context2.formXObject(appearance,{Resources,BBox:context2.obj([0,0,width,height]),Matrix:context2.obj([1,0,0,1,0,0])});var streamRef=context2.register(stream2);return streamRef};PDFField2.prototype.createImageAppearanceStream=function(widget,image,alignment2){var _a;var _b;var context2=this.acroField.dict.context;var rectangle2=widget.getRectangle();var ap=widget.getAppearanceCharacteristics();var bs=widget.getBorderStyle();var borderWidth=(_b=bs===null||bs===undefined?undefined:bs.getWidth())!==null&&_b!==undefined?_b:0;var rotation=reduceRotation(ap===null||ap===undefined?undefined:ap.getRotation());var rotate=rotateInPlace(__assign(__assign({},rectangle2),{rotation}));var adj=adjustDimsForRotation(rectangle2,rotation);var imageDims=image.scaleToFit(adj.width-borderWidth*2,adj.height-borderWidth*2);var options={x:borderWidth,y:borderWidth,width:imageDims.width,height:imageDims.height,rotate:degrees(0),xSkew:degrees(0),ySkew:degrees(0)};if(alignment2===ImageAlignment.Center){options.x+=(adj.width-borderWidth*2)/2-imageDims.width/2;options.y+=(adj.height-borderWidth*2)/2-imageDims.height/2}else if(alignment2===ImageAlignment.Right){options.x=adj.width-borderWidth-imageDims.width;options.y=adj.height-borderWidth-imageDims.height}var imageName=this.doc.context.addRandomSuffix("Image",10);var appearance=__spreadArrays(rotate,drawImage(imageName,options));var Resources={XObject:(_a={},_a[imageName]=image.ref,_a)};var stream2=context2.formXObject(appearance,{Resources,BBox:context2.obj([0,0,rectangle2.width,rectangle2.height]),Matrix:context2.obj([1,0,0,1,0,0])});return context2.register(stream2)};PDFField2.prototype.createAppearanceDict=function(widget,appearance,onValue){var context2=this.acroField.dict.context;var onStreamRef=this.createAppearanceStream(widget,appearance.on);var offStreamRef=this.createAppearanceStream(widget,appearance.off);var appearanceDict=context2.obj({});appearanceDict.set(onValue,onStreamRef);appearanceDict.set(PDFName_default.of("Off"),offStreamRef);return appearanceDict};return PDFField2}();PDFField_default=PDFField});var PDFCheckBox,PDFCheckBox_default;var init_PDFCheckBox=__esm(()=>{init_tslib_es62();init_PDFPage();init_appearances();init_colors();init_rotations();init_PDFField();init_core();init_utils2();PDFCheckBox=function(_super){__extends(PDFCheckBox2,_super);function PDFCheckBox2(acroCheckBox,ref,doc){var _this=_super.call(this,acroCheckBox,ref,doc)||this;assertIs(acroCheckBox,"acroCheckBox",[[PDFAcroCheckBox_default,"PDFAcroCheckBox"]]);_this.acroField=acroCheckBox;return _this}PDFCheckBox2.prototype.check=function(){var _a;var onValue=(_a=this.acroField.getOnValue())!==null&&_a!==undefined?_a:PDFName_default.of("Yes");this.markAsDirty();this.acroField.setValue(onValue)};PDFCheckBox2.prototype.uncheck=function(){this.markAsDirty();this.acroField.setValue(PDFName_default.of("Off"))};PDFCheckBox2.prototype.isChecked=function(){var onValue=this.acroField.getOnValue();return!!onValue&&onValue===this.acroField.getValue()};PDFCheckBox2.prototype.addToPage=function(page,options){var _a,_b,_c,_d,_e,_f;assertIs(page,"page",[[PDFPage_default,"PDFPage"]]);assertFieldAppearanceOptions(options);if(!options)options={};if(!("textColor"in options))options.textColor=rgb(0,0,0);if(!("backgroundColor"in options))options.backgroundColor=rgb(1,1,1);if(!("borderColor"in options))options.borderColor=rgb(0,0,0);if(!("borderWidth"in options))options.borderWidth=1;var widget=this.createWidget({x:(_a=options.x)!==null&&_a!==undefined?_a:0,y:(_b=options.y)!==null&&_b!==undefined?_b:0,width:(_c=options.width)!==null&&_c!==undefined?_c:50,height:(_d=options.height)!==null&&_d!==undefined?_d:50,textColor:options.textColor,backgroundColor:options.backgroundColor,borderColor:options.borderColor,borderWidth:(_e=options.borderWidth)!==null&&_e!==undefined?_e:0,rotate:(_f=options.rotate)!==null&&_f!==undefined?_f:degrees(0),hidden:options.hidden,page:page.ref});var widgetRef=this.doc.context.register(widget.dict);this.acroField.addWidget(widgetRef);widget.setAppearanceState(PDFName_default.of("Off"));this.updateWidgetAppearance(widget,PDFName_default.of("Yes"));page.node.addAnnot(widgetRef)};PDFCheckBox2.prototype.needsAppearancesUpdate=function(){var _a;var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var state=widget.getAppearanceState();var normal=(_a=widget.getAppearances())===null||_a===undefined?undefined:_a.normal;if(!(normal instanceof PDFDict_default))return true;if(state&&!normal.has(state))return true}return false};PDFCheckBox2.prototype.defaultUpdateAppearances=function(){this.updateAppearances()};PDFCheckBox2.prototype.updateAppearances=function(provider2){var _a;assertOrUndefined(provider2,"provider",[Function]);var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var onValue=(_a=widget.getOnValue())!==null&&_a!==undefined?_a:PDFName_default.of("Yes");if(!onValue)continue;this.updateWidgetAppearance(widget,onValue,provider2)}this.markAsClean()};PDFCheckBox2.prototype.updateWidgetAppearance=function(widget,onValue,provider2){var apProvider=provider2!==null&&provider2!==undefined?provider2:defaultCheckBoxAppearanceProvider;var appearances=normalizeAppearance(apProvider(this,widget));this.updateOnOffWidgetAppearance(widget,onValue,appearances)};PDFCheckBox2.of=function(acroCheckBox,ref,doc){return new PDFCheckBox2(acroCheckBox,ref,doc)};return PDFCheckBox2}(PDFField_default);PDFCheckBox_default=PDFCheckBox});var PDFDropdown,PDFDropdown_default;var init_PDFDropdown=__esm(()=>{init_tslib_es62();init_PDFPage();init_PDFFont();init_PDFField();init_appearances();init_colors();init_rotations();init_core();init_utils2();PDFDropdown=function(_super){__extends(PDFDropdown2,_super);function PDFDropdown2(acroComboBox,ref,doc){var _this=_super.call(this,acroComboBox,ref,doc)||this;assertIs(acroComboBox,"acroComboBox",[[PDFAcroComboBox_default,"PDFAcroComboBox"]]);_this.acroField=acroComboBox;return _this}PDFDropdown2.prototype.getOptions=function(){var rawOptions=this.acroField.getOptions();var options=new Array(rawOptions.length);for(var idx4=0,len3=options.length;idx4<len3;idx4++){var _a=rawOptions[idx4],display=_a.display,value=_a.value;options[idx4]=(display!==null&&display!==undefined?display:value).decodeText()}return options};PDFDropdown2.prototype.getSelected=function(){var values2=this.acroField.getValues();var selected=new Array(values2.length);for(var idx4=0,len3=values2.length;idx4<len3;idx4++){selected[idx4]=values2[idx4].decodeText()}return selected};PDFDropdown2.prototype.setOptions=function(options){assertIs(options,"options",[Array]);var optionObjects=new Array(options.length);for(var idx4=0,len3=options.length;idx4<len3;idx4++){optionObjects[idx4]={value:PDFHexString_default.fromText(options[idx4])}}this.acroField.setOptions(optionObjects)};PDFDropdown2.prototype.addOptions=function(options){assertIs(options,"options",["string",Array]);var optionsArr=Array.isArray(options)?options:[options];var existingOptions=this.acroField.getOptions();var newOptions=new Array(optionsArr.length);for(var idx4=0,len3=optionsArr.length;idx4<len3;idx4++){newOptions[idx4]={value:PDFHexString_default.fromText(optionsArr[idx4])}}this.acroField.setOptions(existingOptions.concat(newOptions))};PDFDropdown2.prototype.select=function(options,merge){if(merge===undefined){merge=false}assertIs(options,"options",["string",Array]);assertIs(merge,"merge",["boolean"]);var optionsArr=Array.isArray(options)?options:[options];var validOptions=this.getOptions();var hasCustomOption=optionsArr.find(function(option){return!validOptions.includes(option)});if(hasCustomOption)this.enableEditing();this.markAsDirty();if(optionsArr.length>1||optionsArr.length===1&&merge){this.enableMultiselect()}var values2=new Array(optionsArr.length);for(var idx4=0,len3=optionsArr.length;idx4<len3;idx4++){values2[idx4]=PDFHexString_default.fromText(optionsArr[idx4])}if(merge){var existingValues=this.acroField.getValues();this.acroField.setValues(existingValues.concat(values2))}else{this.acroField.setValues(values2)}};PDFDropdown2.prototype.clear=function(){this.markAsDirty();this.acroField.setValues([])};PDFDropdown2.prototype.setFontSize=function(fontSize){assertPositive(fontSize,"fontSize");this.acroField.setFontSize(fontSize);this.markAsDirty()};PDFDropdown2.prototype.isEditable=function(){return this.acroField.hasFlag(AcroChoiceFlags.Edit)};PDFDropdown2.prototype.enableEditing=function(){this.acroField.setFlagTo(AcroChoiceFlags.Edit,true)};PDFDropdown2.prototype.disableEditing=function(){this.acroField.setFlagTo(AcroChoiceFlags.Edit,false)};PDFDropdown2.prototype.isSorted=function(){return this.acroField.hasFlag(AcroChoiceFlags.Sort)};PDFDropdown2.prototype.enableSorting=function(){this.acroField.setFlagTo(AcroChoiceFlags.Sort,true)};PDFDropdown2.prototype.disableSorting=function(){this.acroField.setFlagTo(AcroChoiceFlags.Sort,false)};PDFDropdown2.prototype.isMultiselect=function(){return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect)};PDFDropdown2.prototype.enableMultiselect=function(){this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect,true)};PDFDropdown2.prototype.disableMultiselect=function(){this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect,false)};PDFDropdown2.prototype.isSpellChecked=function(){return!this.acroField.hasFlag(AcroChoiceFlags.DoNotSpellCheck)};PDFDropdown2.prototype.enableSpellChecking=function(){this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck,false)};PDFDropdown2.prototype.disableSpellChecking=function(){this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck,true)};PDFDropdown2.prototype.isSelectOnClick=function(){return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange)};PDFDropdown2.prototype.enableSelectOnClick=function(){this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange,true)};PDFDropdown2.prototype.disableSelectOnClick=function(){this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange,false)};PDFDropdown2.prototype.addToPage=function(page,options){var _a,_b,_c,_d,_e,_f,_g;assertIs(page,"page",[[PDFPage_default,"PDFPage"]]);assertFieldAppearanceOptions(options);if(!options)options={};if(!("textColor"in options))options.textColor=rgb(0,0,0);if(!("backgroundColor"in options))options.backgroundColor=rgb(1,1,1);if(!("borderColor"in options))options.borderColor=rgb(0,0,0);if(!("borderWidth"in options))options.borderWidth=1;var widget=this.createWidget({x:(_a=options.x)!==null&&_a!==undefined?_a:0,y:(_b=options.y)!==null&&_b!==undefined?_b:0,width:(_c=options.width)!==null&&_c!==undefined?_c:200,height:(_d=options.height)!==null&&_d!==undefined?_d:50,textColor:options.textColor,backgroundColor:options.backgroundColor,borderColor:options.borderColor,borderWidth:(_e=options.borderWidth)!==null&&_e!==undefined?_e:0,rotate:(_f=options.rotate)!==null&&_f!==undefined?_f:degrees(0),hidden:options.hidden,page:page.ref});var widgetRef=this.doc.context.register(widget.dict);this.acroField.addWidget(widgetRef);var font=(_g=options.font)!==null&&_g!==undefined?_g:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(widget,font);page.node.addAnnot(widgetRef)};PDFDropdown2.prototype.needsAppearancesUpdate=function(){var _a;if(this.isDirty())return true;var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var hasAppearances=((_a=widget.getAppearances())===null||_a===undefined?undefined:_a.normal)instanceof PDFStream_default;if(!hasAppearances)return true}return false};PDFDropdown2.prototype.defaultUpdateAppearances=function(font){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);this.updateAppearances(font)};PDFDropdown2.prototype.updateAppearances=function(font,provider2){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);assertOrUndefined(provider2,"provider",[Function]);var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];this.updateWidgetAppearance(widget,font,provider2)}this.markAsClean()};PDFDropdown2.prototype.updateWidgetAppearance=function(widget,font,provider2){var apProvider=provider2!==null&&provider2!==undefined?provider2:defaultDropdownAppearanceProvider;var appearances=normalizeAppearance(apProvider(this,widget,font));this.updateWidgetAppearanceWithFont(widget,font,appearances)};PDFDropdown2.of=function(acroComboBox,ref,doc){return new PDFDropdown2(acroComboBox,ref,doc)};return PDFDropdown2}(PDFField_default);PDFDropdown_default=PDFDropdown});var PDFOptionList,PDFOptionList_default;var init_PDFOptionList=__esm(()=>{init_tslib_es62();init_PDFPage();init_PDFFont();init_PDFField();init_appearances();init_colors();init_rotations();init_core();init_utils2();PDFOptionList=function(_super){__extends(PDFOptionList2,_super);function PDFOptionList2(acroListBox,ref,doc){var _this=_super.call(this,acroListBox,ref,doc)||this;assertIs(acroListBox,"acroListBox",[[PDFAcroListBox_default,"PDFAcroListBox"]]);_this.acroField=acroListBox;return _this}PDFOptionList2.prototype.getOptions=function(){var rawOptions=this.acroField.getOptions();var options=new Array(rawOptions.length);for(var idx4=0,len3=options.length;idx4<len3;idx4++){var _a=rawOptions[idx4],display=_a.display,value=_a.value;options[idx4]=(display!==null&&display!==undefined?display:value).decodeText()}return options};PDFOptionList2.prototype.getSelected=function(){var values2=this.acroField.getValues();var selected=new Array(values2.length);for(var idx4=0,len3=values2.length;idx4<len3;idx4++){selected[idx4]=values2[idx4].decodeText()}return selected};PDFOptionList2.prototype.setOptions=function(options){assertIs(options,"options",[Array]);this.markAsDirty();var optionObjects=new Array(options.length);for(var idx4=0,len3=options.length;idx4<len3;idx4++){optionObjects[idx4]={value:PDFHexString_default.fromText(options[idx4])}}this.acroField.setOptions(optionObjects)};PDFOptionList2.prototype.addOptions=function(options){assertIs(options,"options",["string",Array]);this.markAsDirty();var optionsArr=Array.isArray(options)?options:[options];var existingOptions=this.acroField.getOptions();var newOptions=new Array(optionsArr.length);for(var idx4=0,len3=optionsArr.length;idx4<len3;idx4++){newOptions[idx4]={value:PDFHexString_default.fromText(optionsArr[idx4])}}this.acroField.setOptions(existingOptions.concat(newOptions))};PDFOptionList2.prototype.select=function(options,merge){if(merge===undefined){merge=false}assertIs(options,"options",["string",Array]);assertIs(merge,"merge",["boolean"]);var optionsArr=Array.isArray(options)?options:[options];var validOptions=this.getOptions();assertIsSubset(optionsArr,"option",validOptions);this.markAsDirty();if(optionsArr.length>1||optionsArr.length===1&&merge){this.enableMultiselect()}var values2=new Array(optionsArr.length);for(var idx4=0,len3=optionsArr.length;idx4<len3;idx4++){values2[idx4]=PDFHexString_default.fromText(optionsArr[idx4])}if(merge){var existingValues=this.acroField.getValues();this.acroField.setValues(existingValues.concat(values2))}else{this.acroField.setValues(values2)}};PDFOptionList2.prototype.clear=function(){this.markAsDirty();this.acroField.setValues([])};PDFOptionList2.prototype.setFontSize=function(fontSize){assertPositive(fontSize,"fontSize");this.acroField.setFontSize(fontSize);this.markAsDirty()};PDFOptionList2.prototype.isSorted=function(){return this.acroField.hasFlag(AcroChoiceFlags.Sort)};PDFOptionList2.prototype.enableSorting=function(){this.acroField.setFlagTo(AcroChoiceFlags.Sort,true)};PDFOptionList2.prototype.disableSorting=function(){this.acroField.setFlagTo(AcroChoiceFlags.Sort,false)};PDFOptionList2.prototype.isMultiselect=function(){return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect)};PDFOptionList2.prototype.enableMultiselect=function(){this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect,true)};PDFOptionList2.prototype.disableMultiselect=function(){this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect,false)};PDFOptionList2.prototype.isSelectOnClick=function(){return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange)};PDFOptionList2.prototype.enableSelectOnClick=function(){this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange,true)};PDFOptionList2.prototype.disableSelectOnClick=function(){this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange,false)};PDFOptionList2.prototype.addToPage=function(page,options){var _a,_b,_c,_d,_e,_f,_g;assertIs(page,"page",[[PDFPage_default,"PDFPage"]]);assertFieldAppearanceOptions(options);if(!options)options={};if(!("textColor"in options))options.textColor=rgb(0,0,0);if(!("backgroundColor"in options))options.backgroundColor=rgb(1,1,1);if(!("borderColor"in options))options.borderColor=rgb(0,0,0);if(!("borderWidth"in options))options.borderWidth=1;var widget=this.createWidget({x:(_a=options.x)!==null&&_a!==undefined?_a:0,y:(_b=options.y)!==null&&_b!==undefined?_b:0,width:(_c=options.width)!==null&&_c!==undefined?_c:200,height:(_d=options.height)!==null&&_d!==undefined?_d:100,textColor:options.textColor,backgroundColor:options.backgroundColor,borderColor:options.borderColor,borderWidth:(_e=options.borderWidth)!==null&&_e!==undefined?_e:0,rotate:(_f=options.rotate)!==null&&_f!==undefined?_f:degrees(0),hidden:options.hidden,page:page.ref});var widgetRef=this.doc.context.register(widget.dict);this.acroField.addWidget(widgetRef);var font=(_g=options.font)!==null&&_g!==undefined?_g:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(widget,font);page.node.addAnnot(widgetRef)};PDFOptionList2.prototype.needsAppearancesUpdate=function(){var _a;if(this.isDirty())return true;var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var hasAppearances=((_a=widget.getAppearances())===null||_a===undefined?undefined:_a.normal)instanceof PDFStream_default;if(!hasAppearances)return true}return false};PDFOptionList2.prototype.defaultUpdateAppearances=function(font){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);this.updateAppearances(font)};PDFOptionList2.prototype.updateAppearances=function(font,provider2){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);assertOrUndefined(provider2,"provider",[Function]);var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];this.updateWidgetAppearance(widget,font,provider2)}this.markAsClean()};PDFOptionList2.prototype.updateWidgetAppearance=function(widget,font,provider2){var apProvider=provider2!==null&&provider2!==undefined?provider2:defaultOptionListAppearanceProvider;var appearances=normalizeAppearance(apProvider(this,widget,font));this.updateWidgetAppearanceWithFont(widget,font,appearances)};PDFOptionList2.of=function(acroListBox,ref,doc){return new PDFOptionList2(acroListBox,ref,doc)};return PDFOptionList2}(PDFField_default);PDFOptionList_default=PDFOptionList});var PDFRadioGroup,PDFRadioGroup_default;var init_PDFRadioGroup=__esm(()=>{init_tslib_es62();init_PDFPage();init_PDFField();init_appearances();init_colors();init_rotations();init_core();init_utils2();PDFRadioGroup=function(_super){__extends(PDFRadioGroup2,_super);function PDFRadioGroup2(acroRadioButton,ref,doc){var _this=_super.call(this,acroRadioButton,ref,doc)||this;assertIs(acroRadioButton,"acroRadioButton",[[PDFAcroRadioButton_default,"PDFAcroRadioButton"]]);_this.acroField=acroRadioButton;return _this}PDFRadioGroup2.prototype.getOptions=function(){var exportValues=this.acroField.getExportValues();if(exportValues){var exportOptions=new Array(exportValues.length);for(var idx4=0,len3=exportValues.length;idx4<len3;idx4++){exportOptions[idx4]=exportValues[idx4].decodeText()}return exportOptions}var onValues=this.acroField.getOnValues();var onOptions=new Array(onValues.length);for(var idx4=0,len3=onOptions.length;idx4<len3;idx4++){onOptions[idx4]=onValues[idx4].decodeText()}return onOptions};PDFRadioGroup2.prototype.getSelected=function(){var value=this.acroField.getValue();if(value===PDFName_default.of("Off"))return;var exportValues=this.acroField.getExportValues();if(exportValues){var onValues=this.acroField.getOnValues();for(var idx4=0,len3=onValues.length;idx4<len3;idx4++){if(onValues[idx4]===value)return exportValues[idx4].decodeText()}}return value.decodeText()};PDFRadioGroup2.prototype.select=function(option){assertIs(option,"option",["string"]);var validOptions=this.getOptions();assertIsOneOf(option,"option",validOptions);this.markAsDirty();var onValues=this.acroField.getOnValues();var exportValues=this.acroField.getExportValues();if(exportValues){for(var idx4=0,len3=exportValues.length;idx4<len3;idx4++){if(exportValues[idx4].decodeText()===option){this.acroField.setValue(onValues[idx4])}}}else{for(var idx4=0,len3=onValues.length;idx4<len3;idx4++){var value=onValues[idx4];if(value.decodeText()===option)this.acroField.setValue(value)}}};PDFRadioGroup2.prototype.clear=function(){this.markAsDirty();this.acroField.setValue(PDFName_default.of("Off"))};PDFRadioGroup2.prototype.isOffToggleable=function(){return!this.acroField.hasFlag(AcroButtonFlags.NoToggleToOff)};PDFRadioGroup2.prototype.enableOffToggling=function(){this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff,false)};PDFRadioGroup2.prototype.disableOffToggling=function(){this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff,true)};PDFRadioGroup2.prototype.isMutuallyExclusive=function(){return!this.acroField.hasFlag(AcroButtonFlags.RadiosInUnison)};PDFRadioGroup2.prototype.enableMutualExclusion=function(){this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison,false)};PDFRadioGroup2.prototype.disableMutualExclusion=function(){this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison,true)};PDFRadioGroup2.prototype.addOptionToPage=function(option,page,options){var _a,_b,_c,_d,_e,_f,_g,_h,_j;assertIs(option,"option",["string"]);assertIs(page,"page",[[PDFPage_default,"PDFPage"]]);assertFieldAppearanceOptions(options);var widget=this.createWidget({x:(_a=options===null||options===undefined?undefined:options.x)!==null&&_a!==undefined?_a:0,y:(_b=options===null||options===undefined?undefined:options.y)!==null&&_b!==undefined?_b:0,width:(_c=options===null||options===undefined?undefined:options.width)!==null&&_c!==undefined?_c:50,height:(_d=options===null||options===undefined?undefined:options.height)!==null&&_d!==undefined?_d:50,textColor:(_e=options===null||options===undefined?undefined:options.textColor)!==null&&_e!==undefined?_e:rgb(0,0,0),backgroundColor:(_f=options===null||options===undefined?undefined:options.backgroundColor)!==null&&_f!==undefined?_f:rgb(1,1,1),borderColor:(_g=options===null||options===undefined?undefined:options.borderColor)!==null&&_g!==undefined?_g:rgb(0,0,0),borderWidth:(_h=options===null||options===undefined?undefined:options.borderWidth)!==null&&_h!==undefined?_h:1,rotate:(_j=options===null||options===undefined?undefined:options.rotate)!==null&&_j!==undefined?_j:degrees(0),hidden:options===null||options===undefined?undefined:options.hidden,page:page.ref});var widgetRef=this.doc.context.register(widget.dict);var apStateValue=this.acroField.addWidgetWithOpt(widgetRef,PDFHexString_default.fromText(option),!this.isMutuallyExclusive());widget.setAppearanceState(PDFName_default.of("Off"));this.updateWidgetAppearance(widget,apStateValue);page.node.addAnnot(widgetRef)};PDFRadioGroup2.prototype.needsAppearancesUpdate=function(){var _a;var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var state=widget.getAppearanceState();var normal=(_a=widget.getAppearances())===null||_a===undefined?undefined:_a.normal;if(!(normal instanceof PDFDict_default))return true;if(state&&!normal.has(state))return true}return false};PDFRadioGroup2.prototype.defaultUpdateAppearances=function(){this.updateAppearances()};PDFRadioGroup2.prototype.updateAppearances=function(provider2){assertOrUndefined(provider2,"provider",[Function]);var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var onValue=widget.getOnValue();if(!onValue)continue;this.updateWidgetAppearance(widget,onValue,provider2)}};PDFRadioGroup2.prototype.updateWidgetAppearance=function(widget,onValue,provider2){var apProvider=provider2!==null&&provider2!==undefined?provider2:defaultRadioGroupAppearanceProvider;var appearances=normalizeAppearance(apProvider(this,widget));this.updateOnOffWidgetAppearance(widget,onValue,appearances)};PDFRadioGroup2.of=function(acroRadioButton,ref,doc){return new PDFRadioGroup2(acroRadioButton,ref,doc)};return PDFRadioGroup2}(PDFField_default);PDFRadioGroup_default=PDFRadioGroup});var PDFSignature,PDFSignature_default;var init_PDFSignature=__esm(()=>{init_tslib_es62();init_PDFField();init_core();init_utils2();PDFSignature=function(_super){__extends(PDFSignature2,_super);function PDFSignature2(acroSignature,ref,doc){var _this=_super.call(this,acroSignature,ref,doc)||this;assertIs(acroSignature,"acroSignature",[[PDFAcroSignature_default,"PDFAcroSignature"]]);_this.acroField=acroSignature;return _this}PDFSignature2.prototype.needsAppearancesUpdate=function(){return false};PDFSignature2.of=function(acroSignature,ref,doc){return new PDFSignature2(acroSignature,ref,doc)};return PDFSignature2}(PDFField_default);PDFSignature_default=PDFSignature});var PDFTextField,PDFTextField_default;var init_PDFTextField=__esm(()=>{init_tslib_es62();init_PDFPage();init_PDFFont();init_PDFField();init_appearances();init_colors();init_rotations();init_errors3();init_alignment2();init_alignment();init_core();init_utils2();PDFTextField=function(_super){__extends(PDFTextField2,_super);function PDFTextField2(acroText,ref,doc){var _this=_super.call(this,acroText,ref,doc)||this;assertIs(acroText,"acroText",[[PDFAcroText_default,"PDFAcroText"]]);_this.acroField=acroText;return _this}PDFTextField2.prototype.getText=function(){var value=this.acroField.getValue();if(!value&&this.isRichFormatted()){throw new RichTextFieldReadError(this.getName())}return value===null||value===undefined?undefined:value.decodeText()};PDFTextField2.prototype.setText=function(text5){assertOrUndefined(text5,"text",["string"]);var maxLength=this.getMaxLength();if(maxLength!==undefined&&text5&&text5.length>maxLength){throw new ExceededMaxLengthError(text5.length,maxLength,this.getName())}this.markAsDirty();this.disableRichFormatting();if(text5){this.acroField.setValue(PDFHexString_default.fromText(text5))}else{this.acroField.removeValue()}};PDFTextField2.prototype.getAlignment=function(){var quadding=this.acroField.getQuadding();return quadding===0?TextAlignment.Left:quadding===1?TextAlignment.Center:quadding===2?TextAlignment.Right:TextAlignment.Left};PDFTextField2.prototype.setAlignment=function(alignment2){assertIsOneOf(alignment2,"alignment",TextAlignment);this.markAsDirty();this.acroField.setQuadding(alignment2)};PDFTextField2.prototype.getMaxLength=function(){return this.acroField.getMaxLength()};PDFTextField2.prototype.setMaxLength=function(maxLength){assertRangeOrUndefined(maxLength,"maxLength",0,Number.MAX_SAFE_INTEGER);this.markAsDirty();if(maxLength===undefined){this.acroField.removeMaxLength()}else{var text5=this.getText();if(text5&&text5.length>maxLength){throw new InvalidMaxLengthError(text5.length,maxLength,this.getName())}this.acroField.setMaxLength(maxLength)}};PDFTextField2.prototype.removeMaxLength=function(){this.markAsDirty();this.acroField.removeMaxLength()};PDFTextField2.prototype.setImage=function(image){var fieldAlignment=this.getAlignment();var alignment2=fieldAlignment===TextAlignment.Center?ImageAlignment.Center:fieldAlignment===TextAlignment.Right?ImageAlignment.Right:ImageAlignment.Left;var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var streamRef=this.createImageAppearanceStream(widget,image,alignment2);this.updateWidgetAppearances(widget,{normal:streamRef})}this.markAsClean()};PDFTextField2.prototype.setFontSize=function(fontSize){assertPositive(fontSize,"fontSize");this.acroField.setFontSize(fontSize);this.markAsDirty()};PDFTextField2.prototype.isMultiline=function(){return this.acroField.hasFlag(AcroTextFlags.Multiline)};PDFTextField2.prototype.enableMultiline=function(){this.markAsDirty();this.acroField.setFlagTo(AcroTextFlags.Multiline,true)};PDFTextField2.prototype.disableMultiline=function(){this.markAsDirty();this.acroField.setFlagTo(AcroTextFlags.Multiline,false)};PDFTextField2.prototype.isPassword=function(){return this.acroField.hasFlag(AcroTextFlags.Password)};PDFTextField2.prototype.enablePassword=function(){this.acroField.setFlagTo(AcroTextFlags.Password,true)};PDFTextField2.prototype.disablePassword=function(){this.acroField.setFlagTo(AcroTextFlags.Password,false)};PDFTextField2.prototype.isFileSelector=function(){return this.acroField.hasFlag(AcroTextFlags.FileSelect)};PDFTextField2.prototype.enableFileSelection=function(){this.acroField.setFlagTo(AcroTextFlags.FileSelect,true)};PDFTextField2.prototype.disableFileSelection=function(){this.acroField.setFlagTo(AcroTextFlags.FileSelect,false)};PDFTextField2.prototype.isSpellChecked=function(){return!this.acroField.hasFlag(AcroTextFlags.DoNotSpellCheck)};PDFTextField2.prototype.enableSpellChecking=function(){this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck,false)};PDFTextField2.prototype.disableSpellChecking=function(){this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck,true)};PDFTextField2.prototype.isScrollable=function(){return!this.acroField.hasFlag(AcroTextFlags.DoNotScroll)};PDFTextField2.prototype.enableScrolling=function(){this.acroField.setFlagTo(AcroTextFlags.DoNotScroll,false)};PDFTextField2.prototype.disableScrolling=function(){this.acroField.setFlagTo(AcroTextFlags.DoNotScroll,true)};PDFTextField2.prototype.isCombed=function(){return this.acroField.hasFlag(AcroTextFlags.Comb)&&!this.isMultiline()&&!this.isPassword()&&!this.isFileSelector()&&this.getMaxLength()!==undefined};PDFTextField2.prototype.enableCombing=function(){if(this.getMaxLength()===undefined){var msg="PDFTextFields must have a max length in order to be combed";console.warn(msg)}this.markAsDirty();this.disableMultiline();this.disablePassword();this.disableFileSelection();this.acroField.setFlagTo(AcroTextFlags.Comb,true)};PDFTextField2.prototype.disableCombing=function(){this.markAsDirty();this.acroField.setFlagTo(AcroTextFlags.Comb,false)};PDFTextField2.prototype.isRichFormatted=function(){return this.acroField.hasFlag(AcroTextFlags.RichText)};PDFTextField2.prototype.enableRichFormatting=function(){this.acroField.setFlagTo(AcroTextFlags.RichText,true)};PDFTextField2.prototype.disableRichFormatting=function(){this.acroField.setFlagTo(AcroTextFlags.RichText,false)};PDFTextField2.prototype.addToPage=function(page,options){var _a,_b,_c,_d,_e,_f,_g;assertIs(page,"page",[[PDFPage_default,"PDFPage"]]);assertFieldAppearanceOptions(options);if(!options)options={};if(!("textColor"in options))options.textColor=rgb(0,0,0);if(!("backgroundColor"in options))options.backgroundColor=rgb(1,1,1);if(!("borderColor"in options))options.borderColor=rgb(0,0,0);if(!("borderWidth"in options))options.borderWidth=1;var widget=this.createWidget({x:(_a=options.x)!==null&&_a!==undefined?_a:0,y:(_b=options.y)!==null&&_b!==undefined?_b:0,width:(_c=options.width)!==null&&_c!==undefined?_c:200,height:(_d=options.height)!==null&&_d!==undefined?_d:50,textColor:options.textColor,backgroundColor:options.backgroundColor,borderColor:options.borderColor,borderWidth:(_e=options.borderWidth)!==null&&_e!==undefined?_e:0,rotate:(_f=options.rotate)!==null&&_f!==undefined?_f:degrees(0),hidden:options.hidden,page:page.ref});var widgetRef=this.doc.context.register(widget.dict);this.acroField.addWidget(widgetRef);var font=(_g=options.font)!==null&&_g!==undefined?_g:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(widget,font);page.node.addAnnot(widgetRef)};PDFTextField2.prototype.needsAppearancesUpdate=function(){var _a;if(this.isDirty())return true;var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var hasAppearances=((_a=widget.getAppearances())===null||_a===undefined?undefined:_a.normal)instanceof PDFStream_default;if(!hasAppearances)return true}return false};PDFTextField2.prototype.defaultUpdateAppearances=function(font){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);this.updateAppearances(font)};PDFTextField2.prototype.updateAppearances=function(font,provider2){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);assertOrUndefined(provider2,"provider",[Function]);var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];this.updateWidgetAppearance(widget,font,provider2)}this.markAsClean()};PDFTextField2.prototype.updateWidgetAppearance=function(widget,font,provider2){var apProvider=provider2!==null&&provider2!==undefined?provider2:defaultTextFieldAppearanceProvider;var appearances=normalizeAppearance(apProvider(this,widget,font));this.updateWidgetAppearanceWithFont(widget,font,appearances)};PDFTextField2.of=function(acroText,ref,doc){return new PDFTextField2(acroText,ref,doc)};return PDFTextField2}(PDFField_default);PDFTextField_default=PDFTextField});var StandardFonts;var init_StandardFonts=__esm(()=>{(function(StandardFonts2){StandardFonts2["Courier"]="Courier";StandardFonts2["CourierBold"]="Courier-Bold";StandardFonts2["CourierOblique"]="Courier-Oblique";StandardFonts2["CourierBoldOblique"]="Courier-BoldOblique";StandardFonts2["Helvetica"]="Helvetica";StandardFonts2["HelveticaBold"]="Helvetica-Bold";StandardFonts2["HelveticaOblique"]="Helvetica-Oblique";StandardFonts2["HelveticaBoldOblique"]="Helvetica-BoldOblique";StandardFonts2["TimesRoman"]="Times-Roman";StandardFonts2["TimesRomanBold"]="Times-Bold";StandardFonts2["TimesRomanItalic"]="Times-Italic";StandardFonts2["TimesRomanBoldItalic"]="Times-BoldItalic";StandardFonts2["Symbol"]="Symbol";StandardFonts2["ZapfDingbats"]="ZapfDingbats"})(StandardFonts||(StandardFonts={}))});var PDFForm,PDFForm_default,convertToPDFField=function(field,ref,doc){if(field instanceof PDFAcroPushButton_default)return PDFButton_default.of(field,ref,doc);if(field instanceof PDFAcroCheckBox_default)return PDFCheckBox_default.of(field,ref,doc);if(field instanceof PDFAcroComboBox_default)return PDFDropdown_default.of(field,ref,doc);if(field instanceof PDFAcroListBox_default)return PDFOptionList_default.of(field,ref,doc);if(field instanceof PDFAcroText_default)return PDFTextField_default.of(field,ref,doc);if(field instanceof PDFAcroRadioButton_default){return PDFRadioGroup_default.of(field,ref,doc)}if(field instanceof PDFAcroSignature_default){return PDFSignature_default.of(field,ref,doc)}return},splitFieldName=function(fullyQualifiedName){if(fullyQualifiedName.length===0){throw new Error("PDF field names must not be empty strings")}var parts=fullyQualifiedName.split(".");for(var idx4=0,len3=parts.length;idx4<len3;idx4++){if(parts[idx4]===""){throw new Error('Periods in PDF field names must be separated by at least one character: "'+fullyQualifiedName+'"')}}if(parts.length===1)return{nonTerminal:[],terminal:parts[0]};return{nonTerminal:parts.slice(0,parts.length-1),terminal:parts[parts.length-1]}},addFieldToParent=function(_a,_b,partialName){var parent=_a[0],parentRef=_a[1];var field=_b[0],fieldRef=_b[1];var entries=parent.normalizedEntries();var fields5=createPDFAcroFields("Kids"in entries?entries.Kids:entries.Fields);for(var idx4=0,len3=fields5.length;idx4<len3;idx4++){if(fields5[idx4][0].getPartialName()===partialName){throw new FieldAlreadyExistsError(partialName)}}parent.addField(fieldRef);field.setParent(parentRef)};var init_PDFForm=__esm(()=>{init_tslib_es62();init_PDFDocument();init_PDFButton();init_PDFCheckBox();init_PDFDropdown();init_PDFOptionList();init_PDFRadioGroup();init_PDFSignature();init_PDFTextField();init_errors3();init_PDFFont();init_StandardFonts();init_operations();init_operators();init_core();init_utils2();PDFForm=function(){function PDFForm2(acroForm,doc){var _this=this;this.embedDefaultFont=function(){return _this.doc.embedStandardFont(StandardFonts.Helvetica)};assertIs(acroForm,"acroForm",[[PDFAcroForm_default,"PDFAcroForm"]]);assertIs(doc,"doc",[[PDFDocument_default,"PDFDocument"]]);this.acroForm=acroForm;this.doc=doc;this.dirtyFields=new Set;this.defaultFontCache=Cache_default.populatedBy(this.embedDefaultFont)}PDFForm2.prototype.hasXFA=function(){return this.acroForm.dict.has(PDFName_default.of("XFA"))};PDFForm2.prototype.deleteXFA=function(){this.acroForm.dict.delete(PDFName_default.of("XFA"))};PDFForm2.prototype.getFields=function(){var allFields=this.acroForm.getAllFields();var fields5=[];for(var idx4=0,len3=allFields.length;idx4<len3;idx4++){var _a=allFields[idx4],acroField=_a[0],ref=_a[1];var field=convertToPDFField(acroField,ref,this.doc);if(field)fields5.push(field)}return fields5};PDFForm2.prototype.getFieldMaybe=function(name2){assertIs(name2,"name",["string"]);var fields5=this.getFields();for(var idx4=0,len3=fields5.length;idx4<len3;idx4++){var field=fields5[idx4];if(field.getName()===name2)return field}return};PDFForm2.prototype.getField=function(name2){assertIs(name2,"name",["string"]);var field=this.getFieldMaybe(name2);if(field)return field;throw new NoSuchFieldError(name2)};PDFForm2.prototype.getButton=function(name2){assertIs(name2,"name",["string"]);var field=this.getField(name2);if(field instanceof PDFButton_default)return field;throw new UnexpectedFieldTypeError(name2,PDFButton_default,field)};PDFForm2.prototype.getCheckBox=function(name2){assertIs(name2,"name",["string"]);var field=this.getField(name2);if(field instanceof PDFCheckBox_default)return field;throw new UnexpectedFieldTypeError(name2,PDFCheckBox_default,field)};PDFForm2.prototype.getDropdown=function(name2){assertIs(name2,"name",["string"]);var field=this.getField(name2);if(field instanceof PDFDropdown_default)return field;throw new UnexpectedFieldTypeError(name2,PDFDropdown_default,field)};PDFForm2.prototype.getOptionList=function(name2){assertIs(name2,"name",["string"]);var field=this.getField(name2);if(field instanceof PDFOptionList_default)return field;throw new UnexpectedFieldTypeError(name2,PDFOptionList_default,field)};PDFForm2.prototype.getRadioGroup=function(name2){assertIs(name2,"name",["string"]);var field=this.getField(name2);if(field instanceof PDFRadioGroup_default)return field;throw new UnexpectedFieldTypeError(name2,PDFRadioGroup_default,field)};PDFForm2.prototype.getSignature=function(name2){assertIs(name2,"name",["string"]);var field=this.getField(name2);if(field instanceof PDFSignature_default)return field;throw new UnexpectedFieldTypeError(name2,PDFSignature_default,field)};PDFForm2.prototype.getTextField=function(name2){assertIs(name2,"name",["string"]);var field=this.getField(name2);if(field instanceof PDFTextField_default)return field;throw new UnexpectedFieldTypeError(name2,PDFTextField_default,field)};PDFForm2.prototype.createButton=function(name2){assertIs(name2,"name",["string"]);var nameParts=splitFieldName(name2);var parent=this.findOrCreateNonTerminals(nameParts.nonTerminal);var button=PDFAcroPushButton_default.create(this.doc.context);button.setPartialName(nameParts.terminal);addFieldToParent(parent,[button,button.ref],nameParts.terminal);return PDFButton_default.of(button,button.ref,this.doc)};PDFForm2.prototype.createCheckBox=function(name2){assertIs(name2,"name",["string"]);var nameParts=splitFieldName(name2);var parent=this.findOrCreateNonTerminals(nameParts.nonTerminal);var checkBox=PDFAcroCheckBox_default.create(this.doc.context);checkBox.setPartialName(nameParts.terminal);addFieldToParent(parent,[checkBox,checkBox.ref],nameParts.terminal);return PDFCheckBox_default.of(checkBox,checkBox.ref,this.doc)};PDFForm2.prototype.createDropdown=function(name2){assertIs(name2,"name",["string"]);var nameParts=splitFieldName(name2);var parent=this.findOrCreateNonTerminals(nameParts.nonTerminal);var comboBox=PDFAcroComboBox_default.create(this.doc.context);comboBox.setPartialName(nameParts.terminal);addFieldToParent(parent,[comboBox,comboBox.ref],nameParts.terminal);return PDFDropdown_default.of(comboBox,comboBox.ref,this.doc)};PDFForm2.prototype.createOptionList=function(name2){assertIs(name2,"name",["string"]);var nameParts=splitFieldName(name2);var parent=this.findOrCreateNonTerminals(nameParts.nonTerminal);var listBox=PDFAcroListBox_default.create(this.doc.context);listBox.setPartialName(nameParts.terminal);addFieldToParent(parent,[listBox,listBox.ref],nameParts.terminal);return PDFOptionList_default.of(listBox,listBox.ref,this.doc)};PDFForm2.prototype.createRadioGroup=function(name2){assertIs(name2,"name",["string"]);var nameParts=splitFieldName(name2);var parent=this.findOrCreateNonTerminals(nameParts.nonTerminal);var radioButton=PDFAcroRadioButton_default.create(this.doc.context);radioButton.setPartialName(nameParts.terminal);addFieldToParent(parent,[radioButton,radioButton.ref],nameParts.terminal);return PDFRadioGroup_default.of(radioButton,radioButton.ref,this.doc)};PDFForm2.prototype.createTextField=function(name2){assertIs(name2,"name",["string"]);var nameParts=splitFieldName(name2);var parent=this.findOrCreateNonTerminals(nameParts.nonTerminal);var text5=PDFAcroText_default.create(this.doc.context);text5.setPartialName(nameParts.terminal);addFieldToParent(parent,[text5,text5.ref],nameParts.terminal);return PDFTextField_default.of(text5,text5.ref,this.doc)};PDFForm2.prototype.flatten=function(options){if(options===undefined){options={updateFieldAppearances:true}}if(options.updateFieldAppearances){this.updateFieldAppearances()}var fields5=this.getFields();for(var i3=0,lenFields=fields5.length;i3<lenFields;i3++){var field=fields5[i3];var widgets=field.acroField.getWidgets();for(var j=0,lenWidgets=widgets.length;j<lenWidgets;j++){var widget=widgets[j];var page=this.findWidgetPage(widget);var widgetRef=this.findWidgetAppearanceRef(field,widget);var xObjectKey=page.node.newXObject("FlatWidget",widgetRef);var rectangle2=widget.getRectangle();var operators=__spreadArrays([pushGraphicsState(),translate(rectangle2.x,rectangle2.y)],rotateInPlace(__assign(__assign({},rectangle2),{rotation:0})),[drawObject(xObjectKey),popGraphicsState()]).filter(Boolean);page.pushOperators.apply(page,operators)}this.removeField(field)}};PDFForm2.prototype.removeField=function(field){var widgets=field.acroField.getWidgets();var pages=new Set;for(var i3=0,len3=widgets.length;i3<len3;i3++){var widget=widgets[i3];var widgetRef=this.findWidgetAppearanceRef(field,widget);var page=this.findWidgetPage(widget);pages.add(page);page.node.removeAnnot(widgetRef)}pages.forEach(function(page2){return page2.node.removeAnnot(field.ref)});this.acroForm.removeField(field.acroField);var fieldKids=field.acroField.normalizedEntries().Kids;var kidsCount=fieldKids.size();for(var childIndex=0;childIndex<kidsCount;childIndex++){var child=fieldKids.get(childIndex);if(child instanceof PDFRef_default){this.doc.context.delete(child)}}this.doc.context.delete(field.ref)};PDFForm2.prototype.updateFieldAppearances=function(font){assertOrUndefined(font,"font",[[PDFFont_default,"PDFFont"]]);font=font!==null&&font!==undefined?font:this.getDefaultFont();var fields5=this.getFields();for(var idx4=0,len3=fields5.length;idx4<len3;idx4++){var field=fields5[idx4];if(field.needsAppearancesUpdate()){field.defaultUpdateAppearances(font)}}};PDFForm2.prototype.markFieldAsDirty=function(fieldRef){assertOrUndefined(fieldRef,"fieldRef",[[PDFRef_default,"PDFRef"]]);this.dirtyFields.add(fieldRef)};PDFForm2.prototype.markFieldAsClean=function(fieldRef){assertOrUndefined(fieldRef,"fieldRef",[[PDFRef_default,"PDFRef"]]);this.dirtyFields.delete(fieldRef)};PDFForm2.prototype.fieldIsDirty=function(fieldRef){assertOrUndefined(fieldRef,"fieldRef",[[PDFRef_default,"PDFRef"]]);return this.dirtyFields.has(fieldRef)};PDFForm2.prototype.getDefaultFont=function(){return this.defaultFontCache.access()};PDFForm2.prototype.findWidgetPage=function(widget){var pageRef=widget.P();var page=this.doc.getPages().find(function(x){return x.ref===pageRef});if(page===undefined){var widgetRef=this.doc.context.getObjectRef(widget.dict);if(widgetRef===undefined){throw new Error("Could not find PDFRef for PDFObject")}page=this.doc.findPageForAnnotationRef(widgetRef);if(page===undefined){throw new Error("Could not find page for PDFRef "+widgetRef)}}return page};PDFForm2.prototype.findWidgetAppearanceRef=function(field,widget){var _a;var refOrDict=widget.getNormalAppearance();if(refOrDict instanceof PDFDict_default&&(field instanceof PDFCheckBox_default||field instanceof PDFRadioGroup_default)){var value=field.acroField.getValue();var ref=(_a=refOrDict.get(value))!==null&&_a!==undefined?_a:refOrDict.get(PDFName_default.of("Off"));if(ref instanceof PDFRef_default){refOrDict=ref}}if(!(refOrDict instanceof PDFRef_default)){var name_1=field.getName();throw new Error("Failed to extract appearance ref for: "+name_1)}return refOrDict};PDFForm2.prototype.findOrCreateNonTerminals=function(partialNames){var nonTerminal=[this.acroForm];for(var idx4=0,len3=partialNames.length;idx4<len3;idx4++){var namePart=partialNames[idx4];if(!namePart)throw new InvalidFieldNamePartError(namePart);var parent_1=nonTerminal[0],parentRef=nonTerminal[1];var res=this.findNonTerminal(namePart,parent_1);if(res){nonTerminal=res}else{var node=PDFAcroNonTerminal_default.create(this.doc.context);node.setPartialName(namePart);node.setParent(parentRef);var nodeRef=this.doc.context.register(node.dict);parent_1.addField(nodeRef);nonTerminal=[node,nodeRef]}}return nonTerminal};PDFForm2.prototype.findNonTerminal=function(partialName,parent){var fields5=parent instanceof PDFAcroForm_default?this.acroForm.getFields():createPDFAcroFields(parent.Kids());for(var idx4=0,len3=fields5.length;idx4<len3;idx4++){var _a=fields5[idx4],field=_a[0],ref=_a[1];if(field.getPartialName()===partialName){if(field instanceof PDFAcroNonTerminal_default)return[field,ref];throw new FieldAlreadyExistsError(partialName)}}return};PDFForm2.of=function(acroForm,doc){return new PDFForm2(acroForm,doc)};return PDFForm2}();PDFForm_default=PDFForm});var PageSizes;var init_sizes=__esm(()=>{PageSizes={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],Executive:[521.86,756],Folio:[612,936],Legal:[612,1008],Letter:[612,792],Tabloid:[792,1224]}});var ParseSpeeds;var init_PDFDocumentOptions=__esm(()=>{(function(ParseSpeeds2){ParseSpeeds2[ParseSpeeds2["Fastest"]=Infinity]="Fastest";ParseSpeeds2[ParseSpeeds2["Fast"]=1500]="Fast";ParseSpeeds2[ParseSpeeds2["Medium"]=500]="Medium";ParseSpeeds2[ParseSpeeds2["Slow"]=100]="Slow"})(ParseSpeeds||(ParseSpeeds={}))});var PDFEmbeddedFile,PDFEmbeddedFile_default;var init_PDFEmbeddedFile=__esm(()=>{init_tslib_es62();init_core();PDFEmbeddedFile=function(){function PDFEmbeddedFile2(ref,doc,embedder){this.alreadyEmbedded=false;this.ref=ref;this.doc=doc;this.embedder=embedder}PDFEmbeddedFile2.prototype.embed=function(){return __awaiter(this,undefined,undefined,function(){var ref,Names,EmbeddedFiles,EFNames,AF;return __generator(this,function(_a){switch(_a.label){case 0:if(!!this.alreadyEmbedded)return[3,2];return[4,this.embedder.embedIntoContext(this.doc.context,this.ref)];case 1:ref=_a.sent();if(!this.doc.catalog.has(PDFName_default.of("Names"))){this.doc.catalog.set(PDFName_default.of("Names"),this.doc.context.obj({}))}Names=this.doc.catalog.lookup(PDFName_default.of("Names"),PDFDict_default);if(!Names.has(PDFName_default.of("EmbeddedFiles"))){Names.set(PDFName_default.of("EmbeddedFiles"),this.doc.context.obj({}))}EmbeddedFiles=Names.lookup(PDFName_default.of("EmbeddedFiles"),PDFDict_default);if(!EmbeddedFiles.has(PDFName_default.of("Names"))){EmbeddedFiles.set(PDFName_default.of("Names"),this.doc.context.obj([]))}EFNames=EmbeddedFiles.lookup(PDFName_default.of("Names"),PDFArray_default);EFNames.push(PDFHexString_default.fromText(this.embedder.fileName));EFNames.push(ref);if(!this.doc.catalog.has(PDFName_default.of("AF"))){this.doc.catalog.set(PDFName_default.of("AF"),this.doc.context.obj([]))}AF=this.doc.catalog.lookup(PDFName_default.of("AF"),PDFArray_default);AF.push(ref);this.alreadyEmbedded=true;_a.label=2;case 2:return[2]}})})};PDFEmbeddedFile2.of=function(ref,doc,embedder){return new PDFEmbeddedFile2(ref,doc,embedder)};return PDFEmbeddedFile2}();PDFEmbeddedFile_default=PDFEmbeddedFile});var PDFJavaScript,PDFJavaScript_default;var init_PDFJavaScript=__esm(()=>{init_tslib_es62();init_core();PDFJavaScript=function(){function PDFJavaScript2(ref,doc,embedder){this.alreadyEmbedded=false;this.ref=ref;this.doc=doc;this.embedder=embedder}PDFJavaScript2.prototype.embed=function(){return __awaiter(this,undefined,undefined,function(){var _a,catalog,context2,ref,Names,Javascript,JSNames;return __generator(this,function(_b){switch(_b.label){case 0:if(!!this.alreadyEmbedded)return[3,2];_a=this.doc,catalog=_a.catalog,context2=_a.context;return[4,this.embedder.embedIntoContext(this.doc.context,this.ref)];case 1:ref=_b.sent();if(!catalog.has(PDFName_default.of("Names"))){catalog.set(PDFName_default.of("Names"),context2.obj({}))}Names=catalog.lookup(PDFName_default.of("Names"),PDFDict_default);if(!Names.has(PDFName_default.of("JavaScript"))){Names.set(PDFName_default.of("JavaScript"),context2.obj({}))}Javascript=Names.lookup(PDFName_default.of("JavaScript"),PDFDict_default);if(!Javascript.has(PDFName_default.of("Names"))){Javascript.set(PDFName_default.of("Names"),context2.obj([]))}JSNames=Javascript.lookup(PDFName_default.of("Names"),PDFArray_default);JSNames.push(PDFHexString_default.fromText(this.embedder.scriptName));JSNames.push(ref);this.alreadyEmbedded=true;_b.label=2;case 2:return[2]}})})};PDFJavaScript2.of=function(ref,doc,embedder){return new PDFJavaScript2(ref,doc,embedder)};return PDFJavaScript2}();PDFJavaScript_default=PDFJavaScript});var JavaScriptEmbedder,JavaScriptEmbedder_default;var init_JavaScriptEmbedder=__esm(()=>{init_tslib_es62();init_PDFHexString();JavaScriptEmbedder=function(){function JavaScriptEmbedder2(script,scriptName){this.script=script;this.scriptName=scriptName}JavaScriptEmbedder2.for=function(script,scriptName){return new JavaScriptEmbedder2(script,scriptName)};JavaScriptEmbedder2.prototype.embedIntoContext=function(context2,ref){return __awaiter(this,undefined,undefined,function(){var jsActionDict;return __generator(this,function(_a){jsActionDict=context2.obj({Type:"Action",S:"JavaScript",JS:PDFHexString_default.fromText(this.script)});if(ref){context2.assign(ref,jsActionDict);return[2,ref]}else{return[2,context2.register(jsActionDict)]}return[2]})})};return JavaScriptEmbedder2}();JavaScriptEmbedder_default=JavaScriptEmbedder});function assertIsLiteralOrHexString(pdfObject){if(!(pdfObject instanceof PDFHexString_default)&&!(pdfObject instanceof PDFString_default)){throw new UnexpectedObjectTypeError([PDFHexString_default,PDFString_default],pdfObject)}}var PDFDocument,PDFDocument_default;var init_PDFDocument=__esm(()=>{init_tslib_es62();init_errors3();init_PDFEmbeddedPage();init_PDFFont();init_PDFImage();init_PDFPage();init_PDFForm();init_sizes();init_core();init_PDFDocumentOptions();init_utils2();init_FileEmbedder();init_PDFEmbeddedFile();init_PDFJavaScript();init_JavaScriptEmbedder();PDFDocument=function(){function PDFDocument2(context2,ignoreEncryption,updateMetadata){var _this=this;this.defaultWordBreaks=[" "];this.computePages=function(){var pages=[];_this.catalog.Pages().traverse(function(node,ref){if(node instanceof PDFPageLeaf_default){var page=_this.pageMap.get(node);if(!page){page=PDFPage_default.of(node,ref,_this);_this.pageMap.set(node,page)}pages.push(page)}});return pages};this.getOrCreateForm=function(){var acroForm=_this.catalog.getOrCreateAcroForm();return PDFForm_default.of(acroForm,_this)};assertIs(context2,"context",[[PDFContext_default,"PDFContext"]]);assertIs(ignoreEncryption,"ignoreEncryption",["boolean"]);this.context=context2;this.catalog=context2.lookup(context2.trailerInfo.Root);this.isEncrypted=!!context2.lookup(context2.trailerInfo.Encrypt);this.pageCache=Cache_default.populatedBy(this.computePages);this.pageMap=new Map;this.formCache=Cache_default.populatedBy(this.getOrCreateForm);this.fonts=[];this.images=[];this.embeddedPages=[];this.embeddedFiles=[];this.javaScripts=[];if(!ignoreEncryption&&this.isEncrypted)throw new EncryptedPDFError;if(updateMetadata)this.updateInfoDict()}PDFDocument2.load=function(pdf,options){if(options===undefined){options={}}return __awaiter(this,undefined,undefined,function(){var _a,ignoreEncryption,_b,parseSpeed,_c,throwOnInvalidObject,_d,updateMetadata,_e,capNumbers,bytes,context2;return __generator(this,function(_f){switch(_f.label){case 0:_a=options.ignoreEncryption,ignoreEncryption=_a===undefined?false:_a,_b=options.parseSpeed,parseSpeed=_b===undefined?ParseSpeeds.Slow:_b,_c=options.throwOnInvalidObject,throwOnInvalidObject=_c===undefined?false:_c,_d=options.updateMetadata,updateMetadata=_d===undefined?true:_d,_e=options.capNumbers,capNumbers=_e===undefined?false:_e;assertIs(pdf,"pdf",["string",Uint8Array,ArrayBuffer]);assertIs(ignoreEncryption,"ignoreEncryption",["boolean"]);assertIs(parseSpeed,"parseSpeed",["number"]);assertIs(throwOnInvalidObject,"throwOnInvalidObject",["boolean"]);bytes=toUint8Array(pdf);return[4,PDFParser_default.forBytesWithOptions(bytes,parseSpeed,throwOnInvalidObject,capNumbers).parseDocument()];case 1:context2=_f.sent();return[2,new PDFDocument2(context2,ignoreEncryption,updateMetadata)]}})})};PDFDocument2.create=function(options){if(options===undefined){options={}}return __awaiter(this,undefined,undefined,function(){var _a,updateMetadata,context2,pageTree,pageTreeRef,catalog;return __generator(this,function(_b){_a=options.updateMetadata,updateMetadata=_a===undefined?true:_a;context2=PDFContext_default.create();pageTree=PDFPageTree_default.withContext(context2);pageTreeRef=context2.register(pageTree);catalog=PDFCatalog_default.withContextAndPages(context2,pageTreeRef);context2.trailerInfo.Root=context2.register(catalog);return[2,new PDFDocument2(context2,false,updateMetadata)]})})};PDFDocument2.prototype.registerFontkit=function(fontkit){this.fontkit=fontkit};PDFDocument2.prototype.getForm=function(){var form=this.formCache.access();if(form.hasXFA()){console.warn("Removing XFA form data as pdf-lib does not support reading or writing XFA");form.deleteXFA()}return form};PDFDocument2.prototype.getTitle=function(){var title=this.getInfoDict().lookup(PDFName_default.Title);if(!title)return;assertIsLiteralOrHexString(title);return title.decodeText()};PDFDocument2.prototype.getAuthor=function(){var author=this.getInfoDict().lookup(PDFName_default.Author);if(!author)return;assertIsLiteralOrHexString(author);return author.decodeText()};PDFDocument2.prototype.getSubject=function(){var subject=this.getInfoDict().lookup(PDFName_default.Subject);if(!subject)return;assertIsLiteralOrHexString(subject);return subject.decodeText()};PDFDocument2.prototype.getKeywords=function(){var keywords=this.getInfoDict().lookup(PDFName_default.Keywords);if(!keywords)return;assertIsLiteralOrHexString(keywords);return keywords.decodeText()};PDFDocument2.prototype.getCreator=function(){var creator=this.getInfoDict().lookup(PDFName_default.Creator);if(!creator)return;assertIsLiteralOrHexString(creator);return creator.decodeText()};PDFDocument2.prototype.getProducer=function(){var producer=this.getInfoDict().lookup(PDFName_default.Producer);if(!producer)return;assertIsLiteralOrHexString(producer);return producer.decodeText()};PDFDocument2.prototype.getCreationDate=function(){var creationDate=this.getInfoDict().lookup(PDFName_default.CreationDate);if(!creationDate)return;assertIsLiteralOrHexString(creationDate);return creationDate.decodeDate()};PDFDocument2.prototype.getModificationDate=function(){var modificationDate=this.getInfoDict().lookup(PDFName_default.ModDate);if(!modificationDate)return;assertIsLiteralOrHexString(modificationDate);return modificationDate.decodeDate()};PDFDocument2.prototype.setTitle=function(title,options){assertIs(title,"title",["string"]);var key=PDFName_default.of("Title");this.getInfoDict().set(key,PDFHexString_default.fromText(title));if(options===null||options===undefined?undefined:options.showInWindowTitleBar){var prefs=this.catalog.getOrCreateViewerPreferences();prefs.setDisplayDocTitle(true)}};PDFDocument2.prototype.setAuthor=function(author){assertIs(author,"author",["string"]);var key=PDFName_default.of("Author");this.getInfoDict().set(key,PDFHexString_default.fromText(author))};PDFDocument2.prototype.setSubject=function(subject){assertIs(subject,"author",["string"]);var key=PDFName_default.of("Subject");this.getInfoDict().set(key,PDFHexString_default.fromText(subject))};PDFDocument2.prototype.setKeywords=function(keywords){assertIs(keywords,"keywords",[Array]);var key=PDFName_default.of("Keywords");this.getInfoDict().set(key,PDFHexString_default.fromText(keywords.join(" ")))};PDFDocument2.prototype.setCreator=function(creator){assertIs(creator,"creator",["string"]);var key=PDFName_default.of("Creator");this.getInfoDict().set(key,PDFHexString_default.fromText(creator))};PDFDocument2.prototype.setProducer=function(producer){assertIs(producer,"creator",["string"]);var key=PDFName_default.of("Producer");this.getInfoDict().set(key,PDFHexString_default.fromText(producer))};PDFDocument2.prototype.setLanguage=function(language){assertIs(language,"language",["string"]);var key=PDFName_default.of("Lang");this.catalog.set(key,PDFString_default.of(language))};PDFDocument2.prototype.setCreationDate=function(creationDate){assertIs(creationDate,"creationDate",[[Date,"Date"]]);var key=PDFName_default.of("CreationDate");this.getInfoDict().set(key,PDFString_default.fromDate(creationDate))};PDFDocument2.prototype.setModificationDate=function(modificationDate){assertIs(modificationDate,"modificationDate",[[Date,"Date"]]);var key=PDFName_default.of("ModDate");this.getInfoDict().set(key,PDFString_default.fromDate(modificationDate))};PDFDocument2.prototype.getPageCount=function(){if(this.pageCount===undefined)this.pageCount=this.getPages().length;return this.pageCount};PDFDocument2.prototype.getPages=function(){return this.pageCache.access()};PDFDocument2.prototype.getPage=function(index){var pages=this.getPages();assertRange(index,"index",0,pages.length-1);return pages[index]};PDFDocument2.prototype.getPageIndices=function(){return range(0,this.getPageCount())};PDFDocument2.prototype.removePage=function(index){var pageCount=this.getPageCount();if(this.pageCount===0)throw new RemovePageFromEmptyDocumentError;assertRange(index,"index",0,pageCount-1);this.catalog.removeLeafNode(index);this.pageCount=pageCount-1};PDFDocument2.prototype.addPage=function(page){assertIs(page,"page",["undefined",[PDFPage_default,"PDFPage"],Array]);return this.insertPage(this.getPageCount(),page)};PDFDocument2.prototype.insertPage=function(index,page){var pageCount=this.getPageCount();assertRange(index,"index",0,pageCount);assertIs(page,"page",["undefined",[PDFPage_default,"PDFPage"],Array]);if(!page||Array.isArray(page)){var dims=Array.isArray(page)?page:PageSizes.A4;page=PDFPage_default.create(this);page.setSize.apply(page,dims)}else if(page.doc!==this){throw new ForeignPageError}var parentRef=this.catalog.insertLeafNode(page.ref,index);page.node.setParent(parentRef);this.pageMap.set(page.node,page);this.pageCache.invalidate();this.pageCount=pageCount+1;return page};PDFDocument2.prototype.copyPages=function(srcDoc,indices){return __awaiter(this,undefined,undefined,function(){var copier,srcPages,copiedPages,idx4,len3,srcPage,copiedPage,ref;return __generator(this,function(_a){switch(_a.label){case 0:assertIs(srcDoc,"srcDoc",[[PDFDocument2,"PDFDocument"]]);assertIs(indices,"indices",[Array]);return[4,srcDoc.flush()];case 1:_a.sent();copier=PDFObjectCopier_default.for(srcDoc.context,this.context);srcPages=srcDoc.getPages();copiedPages=new Array(indices.length);for(idx4=0,len3=indices.length;idx4<len3;idx4++){srcPage=srcPages[indices[idx4]];copiedPage=copier.copy(srcPage.node);ref=this.context.register(copiedPage);copiedPages[idx4]=PDFPage_default.of(copiedPage,ref,this)}return[2,copiedPages]}})})};PDFDocument2.prototype.copy=function(){return __awaiter(this,undefined,undefined,function(){var pdfCopy,contentPages,idx4,len3;return __generator(this,function(_a){switch(_a.label){case 0:return[4,PDFDocument2.create()];case 1:pdfCopy=_a.sent();return[4,pdfCopy.copyPages(this,this.getPageIndices())];case 2:contentPages=_a.sent();for(idx4=0,len3=contentPages.length;idx4<len3;idx4++){pdfCopy.addPage(contentPages[idx4])}if(this.getAuthor()!==undefined){pdfCopy.setAuthor(this.getAuthor())}if(this.getCreationDate()!==undefined){pdfCopy.setCreationDate(this.getCreationDate())}if(this.getCreator()!==undefined){pdfCopy.setCreator(this.getCreator())}if(this.getModificationDate()!==undefined){pdfCopy.setModificationDate(this.getModificationDate())}if(this.getProducer()!==undefined){pdfCopy.setProducer(this.getProducer())}if(this.getSubject()!==undefined){pdfCopy.setSubject(this.getSubject())}if(this.getTitle()!==undefined){pdfCopy.setTitle(this.getTitle())}pdfCopy.defaultWordBreaks=this.defaultWordBreaks;return[2,pdfCopy]}})})};PDFDocument2.prototype.addJavaScript=function(name2,script){assertIs(name2,"name",["string"]);assertIs(script,"script",["string"]);var embedder=JavaScriptEmbedder_default.for(script,name2);var ref=this.context.nextRef();var javaScript=PDFJavaScript_default.of(ref,this,embedder);this.javaScripts.push(javaScript)};PDFDocument2.prototype.attach=function(attachment,name2,options){if(options===undefined){options={}}return __awaiter(this,undefined,undefined,function(){var bytes,embedder,ref,embeddedFile;return __generator(this,function(_a){assertIs(attachment,"attachment",["string",Uint8Array,ArrayBuffer]);assertIs(name2,"name",["string"]);assertOrUndefined(options.mimeType,"mimeType",["string"]);assertOrUndefined(options.description,"description",["string"]);assertOrUndefined(options.creationDate,"options.creationDate",[Date]);assertOrUndefined(options.modificationDate,"options.modificationDate",[Date]);assertIsOneOfOrUndefined(options.afRelationship,"options.afRelationship",AFRelationship);bytes=toUint8Array(attachment);embedder=FileEmbedder_default.for(bytes,name2,options);ref=this.context.nextRef();embeddedFile=PDFEmbeddedFile_default.of(ref,this,embedder);this.embeddedFiles.push(embeddedFile);return[2]})})};PDFDocument2.prototype.embedFont=function(font,options){if(options===undefined){options={}}return __awaiter(this,undefined,undefined,function(){var _a,subset,customName,features,embedder,bytes,fontkit,_b,ref,pdfFont;return __generator(this,function(_c){switch(_c.label){case 0:_a=options.subset,subset=_a===undefined?false:_a,customName=options.customName,features=options.features;assertIs(font,"font",["string",Uint8Array,ArrayBuffer]);assertIs(subset,"subset",["boolean"]);if(!isStandardFont(font))return[3,1];embedder=StandardFontEmbedder_default.for(font,customName);return[3,7];case 1:if(!canBeConvertedToUint8Array(font))return[3,6];bytes=toUint8Array(font);fontkit=this.assertFontkit();if(!subset)return[3,3];return[4,CustomFontSubsetEmbedder_default.for(fontkit,bytes,customName,features)];case 2:_b=_c.sent();return[3,5];case 3:return[4,CustomFontEmbedder_default.for(fontkit,bytes,customName,features)];case 4:_b=_c.sent();_c.label=5;case 5:embedder=_b;return[3,7];case 6:throw new TypeError("`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`");case 7:ref=this.context.nextRef();pdfFont=PDFFont_default.of(ref,this,embedder);this.fonts.push(pdfFont);return[2,pdfFont]}})})};PDFDocument2.prototype.embedStandardFont=function(font,customName){assertIs(font,"font",["string"]);if(!isStandardFont(font)){throw new TypeError("`font` must be one of type `StandardFonts`")}var embedder=StandardFontEmbedder_default.for(font,customName);var ref=this.context.nextRef();var pdfFont=PDFFont_default.of(ref,this,embedder);this.fonts.push(pdfFont);return pdfFont};PDFDocument2.prototype.embedJpg=function(jpg){return __awaiter(this,undefined,undefined,function(){var bytes,embedder,ref,pdfImage;return __generator(this,function(_a){switch(_a.label){case 0:assertIs(jpg,"jpg",["string",Uint8Array,ArrayBuffer]);bytes=toUint8Array(jpg);return[4,JpegEmbedder_default.for(bytes)];case 1:embedder=_a.sent();ref=this.context.nextRef();pdfImage=PDFImage_default.of(ref,this,embedder);this.images.push(pdfImage);return[2,pdfImage]}})})};PDFDocument2.prototype.embedPng=function(png){return __awaiter(this,undefined,undefined,function(){var bytes,embedder,ref,pdfImage;return __generator(this,function(_a){switch(_a.label){case 0:assertIs(png,"png",["string",Uint8Array,ArrayBuffer]);bytes=toUint8Array(png);return[4,PngEmbedder_default.for(bytes)];case 1:embedder=_a.sent();ref=this.context.nextRef();pdfImage=PDFImage_default.of(ref,this,embedder);this.images.push(pdfImage);return[2,pdfImage]}})})};PDFDocument2.prototype.embedPdf=function(pdf,indices){if(indices===undefined){indices=[0]}return __awaiter(this,undefined,undefined,function(){var srcDoc,_a,srcPages;return __generator(this,function(_b){switch(_b.label){case 0:assertIs(pdf,"pdf",["string",Uint8Array,ArrayBuffer,[PDFDocument2,"PDFDocument"]]);assertIs(indices,"indices",[Array]);if(!(pdf instanceof PDFDocument2))return[3,1];_a=pdf;return[3,3];case 1:return[4,PDFDocument2.load(pdf)];case 2:_a=_b.sent();_b.label=3;case 3:srcDoc=_a;srcPages=pluckIndices(srcDoc.getPages(),indices);return[2,this.embedPages(srcPages)]}})})};PDFDocument2.prototype.embedPage=function(page,boundingBox,transformationMatrix){return __awaiter(this,undefined,undefined,function(){var embeddedPage;return __generator(this,function(_a){switch(_a.label){case 0:assertIs(page,"page",[[PDFPage_default,"PDFPage"]]);return[4,this.embedPages([page],[boundingBox],[transformationMatrix])];case 1:embeddedPage=_a.sent()[0];return[2,embeddedPage]}})})};PDFDocument2.prototype.embedPages=function(pages,boundingBoxes,transformationMatrices){if(boundingBoxes===undefined){boundingBoxes=[]}if(transformationMatrices===undefined){transformationMatrices=[]}return __awaiter(this,undefined,undefined,function(){var idx4,len3,currPage,nextPage,context2,maybeCopyPage,embeddedPages,idx4,len3,page,box,matrix,embedder,ref;var _a;return __generator(this,function(_b){switch(_b.label){case 0:if(pages.length===0)return[2,[]];for(idx4=0,len3=pages.length-1;idx4<len3;idx4++){currPage=pages[idx4];nextPage=pages[idx4+1];if(currPage.node.context!==nextPage.node.context){throw new PageEmbeddingMismatchedContextError}}context2=pages[0].node.context;maybeCopyPage=context2===this.context?function(p){return p}:PDFObjectCopier_default.for(context2,this.context).copy;embeddedPages=new Array(pages.length);idx4=0,len3=pages.length;_b.label=1;case 1:if(!(idx4<len3))return[3,4];page=maybeCopyPage(pages[idx4].node);box=boundingBoxes[idx4];matrix=transformationMatrices[idx4];return[4,PDFPageEmbedder_default.for(page,box,matrix)];case 2:embedder=_b.sent();ref=this.context.nextRef();embeddedPages[idx4]=PDFEmbeddedPage_default.of(ref,this,embedder);_b.label=3;case 3:idx4++;return[3,1];case 4:(_a=this.embeddedPages).push.apply(_a,embeddedPages);return[2,embeddedPages]}})})};PDFDocument2.prototype.flush=function(){return __awaiter(this,undefined,undefined,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.embedAll(this.fonts)];case 1:_a.sent();return[4,this.embedAll(this.images)];case 2:_a.sent();return[4,this.embedAll(this.embeddedPages)];case 3:_a.sent();return[4,this.embedAll(this.embeddedFiles)];case 4:_a.sent();return[4,this.embedAll(this.javaScripts)];case 5:_a.sent();return[2]}})})};PDFDocument2.prototype.save=function(options){if(options===undefined){options={}}return __awaiter(this,undefined,undefined,function(){var _a,useObjectStreams,_b,addDefaultPage,_c,objectsPerTick,_d,updateFieldAppearances,form,Writer;return __generator(this,function(_e){switch(_e.label){case 0:_a=options.useObjectStreams,useObjectStreams=_a===undefined?true:_a,_b=options.addDefaultPage,addDefaultPage=_b===undefined?true:_b,_c=options.objectsPerTick,objectsPerTick=_c===undefined?50:_c,_d=options.updateFieldAppearances,updateFieldAppearances=_d===undefined?true:_d;assertIs(useObjectStreams,"useObjectStreams",["boolean"]);assertIs(addDefaultPage,"addDefaultPage",["boolean"]);assertIs(objectsPerTick,"objectsPerTick",["number"]);assertIs(updateFieldAppearances,"updateFieldAppearances",["boolean"]);if(addDefaultPage&&this.getPageCount()===0)this.addPage();if(updateFieldAppearances){form=this.formCache.getValue();if(form)form.updateFieldAppearances()}return[4,this.flush()];case 1:_e.sent();Writer=useObjectStreams?PDFStreamWriter_default:PDFWriter_default;return[2,Writer.forContext(this.context,objectsPerTick).serializeToBuffer()]}})})};PDFDocument2.prototype.saveAsBase64=function(options){if(options===undefined){options={}}return __awaiter(this,undefined,undefined,function(){var _a,dataUri,otherOptions,bytes,base642;return __generator(this,function(_b){switch(_b.label){case 0:_a=options.dataUri,dataUri=_a===undefined?false:_a,otherOptions=__rest2(options,["dataUri"]);assertIs(dataUri,"dataUri",["boolean"]);return[4,this.save(otherOptions)];case 1:bytes=_b.sent();base642=encodeToBase64(bytes);return[2,dataUri?"data:application/pdf;base64,"+base642:base642]}})})};PDFDocument2.prototype.findPageForAnnotationRef=function(ref){var pages=this.getPages();for(var idx4=0,len3=pages.length;idx4<len3;idx4++){var page=pages[idx4];var annotations=page.node.Annots();if((annotations===null||annotations===undefined?undefined:annotations.indexOf(ref))!==undefined){return page}}return};PDFDocument2.prototype.embedAll=function(embeddables){return __awaiter(this,undefined,undefined,function(){var idx4,len3;return __generator(this,function(_a){switch(_a.label){case 0:idx4=0,len3=embeddables.length;_a.label=1;case 1:if(!(idx4<len3))return[3,4];return[4,embeddables[idx4].embed()];case 2:_a.sent();_a.label=3;case 3:idx4++;return[3,1];case 4:return[2]}})})};PDFDocument2.prototype.updateInfoDict=function(){var pdfLib="pdf-lib (https://github.com/Hopding/pdf-lib)";var now=new Date;var info=this.getInfoDict();this.setProducer(pdfLib);this.setModificationDate(now);if(!info.get(PDFName_default.of("Creator")))this.setCreator(pdfLib);if(!info.get(PDFName_default.of("CreationDate")))this.setCreationDate(now)};PDFDocument2.prototype.getInfoDict=function(){var existingInfo=this.context.lookup(this.context.trailerInfo.Info);if(existingInfo instanceof PDFDict_default)return existingInfo;var newInfo=this.context.obj({});this.context.trailerInfo.Info=this.context.register(newInfo);return newInfo};PDFDocument2.prototype.assertFontkit=function(){if(!this.fontkit)throw new FontkitNotRegisteredError;return this.fontkit};return PDFDocument2}();PDFDocument_default=PDFDocument});var BlendMode;var init_PDFPageOptions=__esm(()=>{(function(BlendMode2){BlendMode2["Normal"]="Normal";BlendMode2["Multiply"]="Multiply";BlendMode2["Screen"]="Screen";BlendMode2["Overlay"]="Overlay";BlendMode2["Darken"]="Darken";BlendMode2["Lighten"]="Lighten";BlendMode2["ColorDodge"]="ColorDodge";BlendMode2["ColorBurn"]="ColorBurn";BlendMode2["HardLight"]="HardLight";BlendMode2["SoftLight"]="SoftLight";BlendMode2["Difference"]="Difference";BlendMode2["Exclusion"]="Exclusion"})(BlendMode||(BlendMode={}))});var PDFPage,PDFPage_default;var init_PDFPage=__esm(()=>{init_tslib_es62();init_colors();init_operations();init_operators();init_PDFDocument();init_PDFEmbeddedPage();init_PDFFont();init_PDFImage();init_PDFPageOptions();init_rotations();init_StandardFonts();init_core();init_utils2();PDFPage=function(){function PDFPage2(leafNode,ref,doc){this.fontSize=24;this.fontColor=rgb(0,0,0);this.lineHeight=24;this.x=0;this.y=0;assertIs(leafNode,"leafNode",[[PDFPageLeaf_default,"PDFPageLeaf"]]);assertIs(ref,"ref",[[PDFRef_default,"PDFRef"]]);assertIs(doc,"doc",[[PDFDocument_default,"PDFDocument"]]);this.node=leafNode;this.ref=ref;this.doc=doc}PDFPage2.prototype.setRotation=function(angle){var degreesAngle=toDegrees(angle);assertMultiple(degreesAngle,"degreesAngle",90);this.node.set(PDFName_default.of("Rotate"),this.doc.context.obj(degreesAngle))};PDFPage2.prototype.getRotation=function(){var Rotate=this.node.Rotate();return degrees(Rotate?Rotate.asNumber():0)};PDFPage2.prototype.setSize=function(width,height){assertIs(width,"width",["number"]);assertIs(height,"height",["number"]);var mediaBox=this.getMediaBox();this.setMediaBox(mediaBox.x,mediaBox.y,width,height);var cropBox=this.getCropBox();var bleedBox=this.getBleedBox();var trimBox=this.getTrimBox();var artBox=this.getArtBox();var hasCropBox=this.node.CropBox();var hasBleedBox=this.node.BleedBox();var hasTrimBox=this.node.TrimBox();var hasArtBox=this.node.ArtBox();if(hasCropBox&&rectanglesAreEqual(cropBox,mediaBox)){this.setCropBox(mediaBox.x,mediaBox.y,width,height)}if(hasBleedBox&&rectanglesAreEqual(bleedBox,mediaBox)){this.setBleedBox(mediaBox.x,mediaBox.y,width,height)}if(hasTrimBox&&rectanglesAreEqual(trimBox,mediaBox)){this.setTrimBox(mediaBox.x,mediaBox.y,width,height)}if(hasArtBox&&rectanglesAreEqual(artBox,mediaBox)){this.setArtBox(mediaBox.x,mediaBox.y,width,height)}};PDFPage2.prototype.setWidth=function(width){assertIs(width,"width",["number"]);this.setSize(width,this.getSize().height)};PDFPage2.prototype.setHeight=function(height){assertIs(height,"height",["number"]);this.setSize(this.getSize().width,height)};PDFPage2.prototype.setMediaBox=function(x,y,width,height){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);assertIs(width,"width",["number"]);assertIs(height,"height",["number"]);var mediaBox=this.doc.context.obj([x,y,x+width,y+height]);this.node.set(PDFName_default.MediaBox,mediaBox)};PDFPage2.prototype.setCropBox=function(x,y,width,height){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);assertIs(width,"width",["number"]);assertIs(height,"height",["number"]);var cropBox=this.doc.context.obj([x,y,x+width,y+height]);this.node.set(PDFName_default.CropBox,cropBox)};PDFPage2.prototype.setBleedBox=function(x,y,width,height){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);assertIs(width,"width",["number"]);assertIs(height,"height",["number"]);var bleedBox=this.doc.context.obj([x,y,x+width,y+height]);this.node.set(PDFName_default.BleedBox,bleedBox)};PDFPage2.prototype.setTrimBox=function(x,y,width,height){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);assertIs(width,"width",["number"]);assertIs(height,"height",["number"]);var trimBox=this.doc.context.obj([x,y,x+width,y+height]);this.node.set(PDFName_default.TrimBox,trimBox)};PDFPage2.prototype.setArtBox=function(x,y,width,height){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);assertIs(width,"width",["number"]);assertIs(height,"height",["number"]);var artBox=this.doc.context.obj([x,y,x+width,y+height]);this.node.set(PDFName_default.ArtBox,artBox)};PDFPage2.prototype.getSize=function(){var _a=this.getMediaBox(),width=_a.width,height=_a.height;return{width,height}};PDFPage2.prototype.getWidth=function(){return this.getSize().width};PDFPage2.prototype.getHeight=function(){return this.getSize().height};PDFPage2.prototype.getMediaBox=function(){var mediaBox=this.node.MediaBox();return mediaBox.asRectangle()};PDFPage2.prototype.getCropBox=function(){var _a;var cropBox=this.node.CropBox();return(_a=cropBox===null||cropBox===undefined?undefined:cropBox.asRectangle())!==null&&_a!==undefined?_a:this.getMediaBox()};PDFPage2.prototype.getBleedBox=function(){var _a;var bleedBox=this.node.BleedBox();return(_a=bleedBox===null||bleedBox===undefined?undefined:bleedBox.asRectangle())!==null&&_a!==undefined?_a:this.getCropBox()};PDFPage2.prototype.getTrimBox=function(){var _a;var trimBox=this.node.TrimBox();return(_a=trimBox===null||trimBox===undefined?undefined:trimBox.asRectangle())!==null&&_a!==undefined?_a:this.getCropBox()};PDFPage2.prototype.getArtBox=function(){var _a;var artBox=this.node.ArtBox();return(_a=artBox===null||artBox===undefined?undefined:artBox.asRectangle())!==null&&_a!==undefined?_a:this.getCropBox()};PDFPage2.prototype.translateContent=function(x,y){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);this.node.normalize();this.getContentStream();var start=this.createContentStream(pushGraphicsState(),translate(x,y));var startRef=this.doc.context.register(start);var end=this.createContentStream(popGraphicsState());var endRef=this.doc.context.register(end);this.node.wrapContentStreams(startRef,endRef)};PDFPage2.prototype.scale=function(x,y){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);this.setSize(this.getWidth()*x,this.getHeight()*y);this.scaleContent(x,y);this.scaleAnnotations(x,y)};PDFPage2.prototype.scaleContent=function(x,y){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);this.node.normalize();this.getContentStream();var start=this.createContentStream(pushGraphicsState(),scale(x,y));var startRef=this.doc.context.register(start);var end=this.createContentStream(popGraphicsState());var endRef=this.doc.context.register(end);this.node.wrapContentStreams(startRef,endRef)};PDFPage2.prototype.scaleAnnotations=function(x,y){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);var annots=this.node.Annots();if(!annots)return;for(var idx4=0;idx4<annots.size();idx4++){var annot=annots.lookup(idx4);if(annot instanceof PDFDict_default)this.scaleAnnot(annot,x,y)}};PDFPage2.prototype.resetPosition=function(){this.getContentStream(false);this.x=0;this.y=0};PDFPage2.prototype.setFont=function(font){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);this.font=font;this.fontKey=this.node.newFontDictionary(this.font.name,this.font.ref)};PDFPage2.prototype.setFontSize=function(fontSize){assertIs(fontSize,"fontSize",["number"]);this.fontSize=fontSize};PDFPage2.prototype.setFontColor=function(fontColor){assertIs(fontColor,"fontColor",[[Object,"Color"]]);this.fontColor=fontColor};PDFPage2.prototype.setLineHeight=function(lineHeight){assertIs(lineHeight,"lineHeight",["number"]);this.lineHeight=lineHeight};PDFPage2.prototype.getPosition=function(){return{x:this.x,y:this.y}};PDFPage2.prototype.getX=function(){return this.x};PDFPage2.prototype.getY=function(){return this.y};PDFPage2.prototype.moveTo=function(x,y){assertIs(x,"x",["number"]);assertIs(y,"y",["number"]);this.x=x;this.y=y};PDFPage2.prototype.moveDown=function(yDecrease){assertIs(yDecrease,"yDecrease",["number"]);this.y-=yDecrease};PDFPage2.prototype.moveUp=function(yIncrease){assertIs(yIncrease,"yIncrease",["number"]);this.y+=yIncrease};PDFPage2.prototype.moveLeft=function(xDecrease){assertIs(xDecrease,"xDecrease",["number"]);this.x-=xDecrease};PDFPage2.prototype.moveRight=function(xIncrease){assertIs(xIncrease,"xIncrease",["number"]);this.x+=xIncrease};PDFPage2.prototype.pushOperators=function(){var operator=[];for(var _i=0;_i<arguments.length;_i++){operator[_i]=arguments[_i]}assertEachIs(operator,"operator",[[PDFOperator_default,"PDFOperator"]]);var contentStream=this.getContentStream();contentStream.push.apply(contentStream,operator)};PDFPage2.prototype.drawText=function(text5,options){var _a,_b,_c,_d,_e,_f,_g;if(options===undefined){options={}}assertIs(text5,"text",["string"]);assertOrUndefined(options.color,"options.color",[[Object,"Color"]]);assertRangeOrUndefined(options.opacity,"opacity.opacity",0,1);assertOrUndefined(options.font,"options.font",[[PDFFont_default,"PDFFont"]]);assertOrUndefined(options.size,"options.size",["number"]);assertOrUndefined(options.rotate,"options.rotate",[[Object,"Rotation"]]);assertOrUndefined(options.xSkew,"options.xSkew",[[Object,"Rotation"]]);assertOrUndefined(options.ySkew,"options.ySkew",[[Object,"Rotation"]]);assertOrUndefined(options.x,"options.x",["number"]);assertOrUndefined(options.y,"options.y",["number"]);assertOrUndefined(options.lineHeight,"options.lineHeight",["number"]);assertOrUndefined(options.maxWidth,"options.maxWidth",["number"]);assertOrUndefined(options.wordBreaks,"options.wordBreaks",[Array]);assertIsOneOfOrUndefined(options.blendMode,"options.blendMode",BlendMode);var _h=this.setOrEmbedFont(options.font),oldFont=_h.oldFont,newFont=_h.newFont,newFontKey=_h.newFontKey;var fontSize=options.size||this.fontSize;var wordBreaks=options.wordBreaks||this.doc.defaultWordBreaks;var textWidth=function(t){return newFont.widthOfTextAtSize(t,fontSize)};var lines=options.maxWidth===undefined?lineSplit(cleanText(text5)):breakTextIntoLines(text5,wordBreaks,options.maxWidth,textWidth);var encodedLines=new Array(lines.length);for(var idx4=0,len3=lines.length;idx4<len3;idx4++){encodedLines[idx4]=newFont.encodeText(lines[idx4])}var graphicsStateKey=this.maybeEmbedGraphicsState({opacity:options.opacity,blendMode:options.blendMode});var contentStream=this.getContentStream();contentStream.push.apply(contentStream,drawLinesOfText(encodedLines,{color:(_a=options.color)!==null&&_a!==undefined?_a:this.fontColor,font:newFontKey,size:fontSize,rotate:(_b=options.rotate)!==null&&_b!==undefined?_b:degrees(0),xSkew:(_c=options.xSkew)!==null&&_c!==undefined?_c:degrees(0),ySkew:(_d=options.ySkew)!==null&&_d!==undefined?_d:degrees(0),x:(_e=options.x)!==null&&_e!==undefined?_e:this.x,y:(_f=options.y)!==null&&_f!==undefined?_f:this.y,lineHeight:(_g=options.lineHeight)!==null&&_g!==undefined?_g:this.lineHeight,graphicsState:graphicsStateKey}));if(options.font){if(oldFont)this.setFont(oldFont);else this.resetFont()}};PDFPage2.prototype.drawImage=function(image,options){var _a,_b,_c,_d,_e,_f,_g;if(options===undefined){options={}}assertIs(image,"image",[[PDFImage_default,"PDFImage"]]);assertOrUndefined(options.x,"options.x",["number"]);assertOrUndefined(options.y,"options.y",["number"]);assertOrUndefined(options.width,"options.width",["number"]);assertOrUndefined(options.height,"options.height",["number"]);assertOrUndefined(options.rotate,"options.rotate",[[Object,"Rotation"]]);assertOrUndefined(options.xSkew,"options.xSkew",[[Object,"Rotation"]]);assertOrUndefined(options.ySkew,"options.ySkew",[[Object,"Rotation"]]);assertRangeOrUndefined(options.opacity,"opacity.opacity",0,1);assertIsOneOfOrUndefined(options.blendMode,"options.blendMode",BlendMode);var xObjectKey=this.node.newXObject("Image",image.ref);var graphicsStateKey=this.maybeEmbedGraphicsState({opacity:options.opacity,blendMode:options.blendMode});var contentStream=this.getContentStream();contentStream.push.apply(contentStream,drawImage(xObjectKey,{x:(_a=options.x)!==null&&_a!==undefined?_a:this.x,y:(_b=options.y)!==null&&_b!==undefined?_b:this.y,width:(_c=options.width)!==null&&_c!==undefined?_c:image.size().width,height:(_d=options.height)!==null&&_d!==undefined?_d:image.size().height,rotate:(_e=options.rotate)!==null&&_e!==undefined?_e:degrees(0),xSkew:(_f=options.xSkew)!==null&&_f!==undefined?_f:degrees(0),ySkew:(_g=options.ySkew)!==null&&_g!==undefined?_g:degrees(0),graphicsState:graphicsStateKey}))};PDFPage2.prototype.drawPage=function(embeddedPage,options){var _a,_b,_c,_d,_e;if(options===undefined){options={}}assertIs(embeddedPage,"embeddedPage",[[PDFEmbeddedPage_default,"PDFEmbeddedPage"]]);assertOrUndefined(options.x,"options.x",["number"]);assertOrUndefined(options.y,"options.y",["number"]);assertOrUndefined(options.xScale,"options.xScale",["number"]);assertOrUndefined(options.yScale,"options.yScale",["number"]);assertOrUndefined(options.width,"options.width",["number"]);assertOrUndefined(options.height,"options.height",["number"]);assertOrUndefined(options.rotate,"options.rotate",[[Object,"Rotation"]]);assertOrUndefined(options.xSkew,"options.xSkew",[[Object,"Rotation"]]);assertOrUndefined(options.ySkew,"options.ySkew",[[Object,"Rotation"]]);assertRangeOrUndefined(options.opacity,"opacity.opacity",0,1);assertIsOneOfOrUndefined(options.blendMode,"options.blendMode",BlendMode);var xObjectKey=this.node.newXObject("EmbeddedPdfPage",embeddedPage.ref);var graphicsStateKey=this.maybeEmbedGraphicsState({opacity:options.opacity,blendMode:options.blendMode});var xScale=options.width!==undefined?options.width/embeddedPage.width:options.xScale!==undefined?options.xScale:1;var yScale=options.height!==undefined?options.height/embeddedPage.height:options.yScale!==undefined?options.yScale:1;var contentStream=this.getContentStream();contentStream.push.apply(contentStream,drawPage(xObjectKey,{x:(_a=options.x)!==null&&_a!==undefined?_a:this.x,y:(_b=options.y)!==null&&_b!==undefined?_b:this.y,xScale,yScale,rotate:(_c=options.rotate)!==null&&_c!==undefined?_c:degrees(0),xSkew:(_d=options.xSkew)!==null&&_d!==undefined?_d:degrees(0),ySkew:(_e=options.ySkew)!==null&&_e!==undefined?_e:degrees(0),graphicsState:graphicsStateKey}))};PDFPage2.prototype.drawSvgPath=function(path,options){var _a,_b,_c,_d,_e,_f,_g,_h,_j;if(options===undefined){options={}}assertIs(path,"path",["string"]);assertOrUndefined(options.x,"options.x",["number"]);assertOrUndefined(options.y,"options.y",["number"]);assertOrUndefined(options.scale,"options.scale",["number"]);assertOrUndefined(options.rotate,"options.rotate",[[Object,"Rotation"]]);assertOrUndefined(options.borderWidth,"options.borderWidth",["number"]);assertOrUndefined(options.color,"options.color",[[Object,"Color"]]);assertRangeOrUndefined(options.opacity,"opacity.opacity",0,1);assertOrUndefined(options.borderColor,"options.borderColor",[[Object,"Color"]]);assertOrUndefined(options.borderDashArray,"options.borderDashArray",[Array]);assertOrUndefined(options.borderDashPhase,"options.borderDashPhase",["number"]);assertIsOneOfOrUndefined(options.borderLineCap,"options.borderLineCap",LineCapStyle);assertRangeOrUndefined(options.borderOpacity,"options.borderOpacity",0,1);assertIsOneOfOrUndefined(options.blendMode,"options.blendMode",BlendMode);var graphicsStateKey=this.maybeEmbedGraphicsState({opacity:options.opacity,borderOpacity:options.borderOpacity,blendMode:options.blendMode});if(!("color"in options)&&!("borderColor"in options)){options.borderColor=rgb(0,0,0)}var contentStream=this.getContentStream();contentStream.push.apply(contentStream,drawSvgPath(path,{x:(_a=options.x)!==null&&_a!==undefined?_a:this.x,y:(_b=options.y)!==null&&_b!==undefined?_b:this.y,scale:options.scale,rotate:(_c=options.rotate)!==null&&_c!==undefined?_c:degrees(0),color:(_d=options.color)!==null&&_d!==undefined?_d:undefined,borderColor:(_e=options.borderColor)!==null&&_e!==undefined?_e:undefined,borderWidth:(_f=options.borderWidth)!==null&&_f!==undefined?_f:0,borderDashArray:(_g=options.borderDashArray)!==null&&_g!==undefined?_g:undefined,borderDashPhase:(_h=options.borderDashPhase)!==null&&_h!==undefined?_h:undefined,borderLineCap:(_j=options.borderLineCap)!==null&&_j!==undefined?_j:undefined,graphicsState:graphicsStateKey}))};PDFPage2.prototype.drawLine=function(options){var _a,_b,_c,_d,_e;assertIs(options.start,"options.start",[[Object,"{ x: number, y: number }"]]);assertIs(options.end,"options.end",[[Object,"{ x: number, y: number }"]]);assertIs(options.start.x,"options.start.x",["number"]);assertIs(options.start.y,"options.start.y",["number"]);assertIs(options.end.x,"options.end.x",["number"]);assertIs(options.end.y,"options.end.y",["number"]);assertOrUndefined(options.thickness,"options.thickness",["number"]);assertOrUndefined(options.color,"options.color",[[Object,"Color"]]);assertOrUndefined(options.dashArray,"options.dashArray",[Array]);assertOrUndefined(options.dashPhase,"options.dashPhase",["number"]);assertIsOneOfOrUndefined(options.lineCap,"options.lineCap",LineCapStyle);assertRangeOrUndefined(options.opacity,"opacity.opacity",0,1);assertIsOneOfOrUndefined(options.blendMode,"options.blendMode",BlendMode);var graphicsStateKey=this.maybeEmbedGraphicsState({borderOpacity:options.opacity,blendMode:options.blendMode});if(!("color"in options)){options.color=rgb(0,0,0)}var contentStream=this.getContentStream();contentStream.push.apply(contentStream,drawLine({start:options.start,end:options.end,thickness:(_a=options.thickness)!==null&&_a!==undefined?_a:1,color:(_b=options.color)!==null&&_b!==undefined?_b:undefined,dashArray:(_c=options.dashArray)!==null&&_c!==undefined?_c:undefined,dashPhase:(_d=options.dashPhase)!==null&&_d!==undefined?_d:undefined,lineCap:(_e=options.lineCap)!==null&&_e!==undefined?_e:undefined,graphicsState:graphicsStateKey}))};PDFPage2.prototype.drawRectangle=function(options){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m,_o;if(options===undefined){options={}}assertOrUndefined(options.x,"options.x",["number"]);assertOrUndefined(options.y,"options.y",["number"]);assertOrUndefined(options.width,"options.width",["number"]);assertOrUndefined(options.height,"options.height",["number"]);assertOrUndefined(options.rotate,"options.rotate",[[Object,"Rotation"]]);assertOrUndefined(options.xSkew,"options.xSkew",[[Object,"Rotation"]]);assertOrUndefined(options.ySkew,"options.ySkew",[[Object,"Rotation"]]);assertOrUndefined(options.borderWidth,"options.borderWidth",["number"]);assertOrUndefined(options.color,"options.color",[[Object,"Color"]]);assertRangeOrUndefined(options.opacity,"opacity.opacity",0,1);assertOrUndefined(options.borderColor,"options.borderColor",[[Object,"Color"]]);assertOrUndefined(options.borderDashArray,"options.borderDashArray",[Array]);assertOrUndefined(options.borderDashPhase,"options.borderDashPhase",["number"]);assertIsOneOfOrUndefined(options.borderLineCap,"options.borderLineCap",LineCapStyle);assertRangeOrUndefined(options.borderOpacity,"options.borderOpacity",0,1);assertIsOneOfOrUndefined(options.blendMode,"options.blendMode",BlendMode);var graphicsStateKey=this.maybeEmbedGraphicsState({opacity:options.opacity,borderOpacity:options.borderOpacity,blendMode:options.blendMode});if(!("color"in options)&&!("borderColor"in options)){options.color=rgb(0,0,0)}var contentStream=this.getContentStream();contentStream.push.apply(contentStream,drawRectangle({x:(_a=options.x)!==null&&_a!==undefined?_a:this.x,y:(_b=options.y)!==null&&_b!==undefined?_b:this.y,width:(_c=options.width)!==null&&_c!==undefined?_c:150,height:(_d=options.height)!==null&&_d!==undefined?_d:100,rotate:(_e=options.rotate)!==null&&_e!==undefined?_e:degrees(0),xSkew:(_f=options.xSkew)!==null&&_f!==undefined?_f:degrees(0),ySkew:(_g=options.ySkew)!==null&&_g!==undefined?_g:degrees(0),borderWidth:(_h=options.borderWidth)!==null&&_h!==undefined?_h:0,color:(_j=options.color)!==null&&_j!==undefined?_j:undefined,borderColor:(_k=options.borderColor)!==null&&_k!==undefined?_k:undefined,borderDashArray:(_l=options.borderDashArray)!==null&&_l!==undefined?_l:undefined,borderDashPhase:(_m=options.borderDashPhase)!==null&&_m!==undefined?_m:undefined,graphicsState:graphicsStateKey,borderLineCap:(_o=options.borderLineCap)!==null&&_o!==undefined?_o:undefined}))};PDFPage2.prototype.drawSquare=function(options){if(options===undefined){options={}}var size=options.size;assertOrUndefined(size,"size",["number"]);this.drawRectangle(__assign(__assign({},options),{width:size,height:size}))};PDFPage2.prototype.drawEllipse=function(options){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l;if(options===undefined){options={}}assertOrUndefined(options.x,"options.x",["number"]);assertOrUndefined(options.y,"options.y",["number"]);assertOrUndefined(options.xScale,"options.xScale",["number"]);assertOrUndefined(options.yScale,"options.yScale",["number"]);assertOrUndefined(options.rotate,"options.rotate",[[Object,"Rotation"]]);assertOrUndefined(options.color,"options.color",[[Object,"Color"]]);assertRangeOrUndefined(options.opacity,"opacity.opacity",0,1);assertOrUndefined(options.borderColor,"options.borderColor",[[Object,"Color"]]);assertRangeOrUndefined(options.borderOpacity,"options.borderOpacity",0,1);assertOrUndefined(options.borderWidth,"options.borderWidth",["number"]);assertOrUndefined(options.borderDashArray,"options.borderDashArray",[Array]);assertOrUndefined(options.borderDashPhase,"options.borderDashPhase",["number"]);assertIsOneOfOrUndefined(options.borderLineCap,"options.borderLineCap",LineCapStyle);assertIsOneOfOrUndefined(options.blendMode,"options.blendMode",BlendMode);var graphicsStateKey=this.maybeEmbedGraphicsState({opacity:options.opacity,borderOpacity:options.borderOpacity,blendMode:options.blendMode});if(!("color"in options)&&!("borderColor"in options)){options.color=rgb(0,0,0)}var contentStream=this.getContentStream();contentStream.push.apply(contentStream,drawEllipse({x:(_a=options.x)!==null&&_a!==undefined?_a:this.x,y:(_b=options.y)!==null&&_b!==undefined?_b:this.y,xScale:(_c=options.xScale)!==null&&_c!==undefined?_c:100,yScale:(_d=options.yScale)!==null&&_d!==undefined?_d:100,rotate:(_e=options.rotate)!==null&&_e!==undefined?_e:undefined,color:(_f=options.color)!==null&&_f!==undefined?_f:undefined,borderColor:(_g=options.borderColor)!==null&&_g!==undefined?_g:undefined,borderWidth:(_h=options.borderWidth)!==null&&_h!==undefined?_h:0,borderDashArray:(_j=options.borderDashArray)!==null&&_j!==undefined?_j:undefined,borderDashPhase:(_k=options.borderDashPhase)!==null&&_k!==undefined?_k:undefined,borderLineCap:(_l=options.borderLineCap)!==null&&_l!==undefined?_l:undefined,graphicsState:graphicsStateKey}))};PDFPage2.prototype.drawCircle=function(options){if(options===undefined){options={}}var _a=options.size,size=_a===undefined?100:_a;assertOrUndefined(size,"size",["number"]);this.drawEllipse(__assign(__assign({},options),{xScale:size,yScale:size}))};PDFPage2.prototype.setOrEmbedFont=function(font){var oldFont=this.font;var oldFontKey=this.fontKey;if(font)this.setFont(font);else this.getFont();var newFont=this.font;var newFontKey=this.fontKey;return{oldFont,oldFontKey,newFont,newFontKey}};PDFPage2.prototype.getFont=function(){if(!this.font||!this.fontKey){var font=this.doc.embedStandardFont(StandardFonts.Helvetica);this.setFont(font)}return[this.font,this.fontKey]};PDFPage2.prototype.resetFont=function(){this.font=undefined;this.fontKey=undefined};PDFPage2.prototype.getContentStream=function(useExisting){if(useExisting===undefined){useExisting=true}if(useExisting&&this.contentStream)return this.contentStream;this.contentStream=this.createContentStream();this.contentStreamRef=this.doc.context.register(this.contentStream);this.node.addContentStream(this.contentStreamRef);return this.contentStream};PDFPage2.prototype.createContentStream=function(){var operators=[];for(var _i=0;_i<arguments.length;_i++){operators[_i]=arguments[_i]}var dict=this.doc.context.obj({});var contentStream=PDFContentStream_default.of(dict,operators);return contentStream};PDFPage2.prototype.maybeEmbedGraphicsState=function(options){var{opacity,borderOpacity,blendMode}=options;if(opacity===undefined&&borderOpacity===undefined&&blendMode===undefined){return}var graphicsState=this.doc.context.obj({Type:"ExtGState",ca:opacity,CA:borderOpacity,BM:blendMode});var key=this.node.newExtGState("GS",graphicsState);return key};PDFPage2.prototype.scaleAnnot=function(annot,x,y){var selectors=["RD","CL","Vertices","QuadPoints","L","Rect"];for(var idx4=0,len3=selectors.length;idx4<len3;idx4++){var list2=annot.lookup(PDFName_default.of(selectors[idx4]));if(list2 instanceof PDFArray_default)list2.scalePDFNumbers(x,y)}var inkLists=annot.lookup(PDFName_default.of("InkList"));if(inkLists instanceof PDFArray_default){for(var idx4=0,len3=inkLists.size();idx4<len3;idx4++){var arr=inkLists.lookup(idx4);if(arr instanceof PDFArray_default)arr.scalePDFNumbers(x,y)}}};PDFPage2.of=function(leafNode,ref,doc){return new PDFPage2(leafNode,ref,doc)};PDFPage2.create=function(doc){assertIs(doc,"doc",[[PDFDocument_default,"PDFDocument"]]);var dummyRef=PDFRef_default.of(-1);var pageLeaf=PDFPageLeaf_default.withContextAndParent(doc.context,dummyRef);var pageRef=doc.context.register(pageLeaf);return new PDFPage2(pageLeaf,pageRef,doc)};return PDFPage2}();PDFPage_default=PDFPage});var PDFButton,PDFButton_default;var init_PDFButton=__esm(()=>{init_tslib_es62();init_PDFPage();init_PDFFont();init_alignment2();init_appearances();init_PDFField();init_colors();init_rotations();init_core();init_utils2();PDFButton=function(_super){__extends(PDFButton2,_super);function PDFButton2(acroPushButton,ref,doc){var _this=_super.call(this,acroPushButton,ref,doc)||this;assertIs(acroPushButton,"acroButton",[[PDFAcroPushButton_default,"PDFAcroPushButton"]]);_this.acroField=acroPushButton;return _this}PDFButton2.prototype.setImage=function(image,alignment2){if(alignment2===undefined){alignment2=ImageAlignment.Center}var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var streamRef=this.createImageAppearanceStream(widget,image,alignment2);this.updateWidgetAppearances(widget,{normal:streamRef})}this.markAsClean()};PDFButton2.prototype.setFontSize=function(fontSize){assertPositive(fontSize,"fontSize");this.acroField.setFontSize(fontSize);this.markAsDirty()};PDFButton2.prototype.addToPage=function(text5,page,options){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l;assertOrUndefined(text5,"text",["string"]);assertOrUndefined(page,"page",[[PDFPage_default,"PDFPage"]]);assertFieldAppearanceOptions(options);var widget=this.createWidget({x:((_a=options===null||options===undefined?undefined:options.x)!==null&&_a!==undefined?_a:0)-((_b=options===null||options===undefined?undefined:options.borderWidth)!==null&&_b!==undefined?_b:0)/2,y:((_c=options===null||options===undefined?undefined:options.y)!==null&&_c!==undefined?_c:0)-((_d=options===null||options===undefined?undefined:options.borderWidth)!==null&&_d!==undefined?_d:0)/2,width:(_e=options===null||options===undefined?undefined:options.width)!==null&&_e!==undefined?_e:100,height:(_f=options===null||options===undefined?undefined:options.height)!==null&&_f!==undefined?_f:50,textColor:(_g=options===null||options===undefined?undefined:options.textColor)!==null&&_g!==undefined?_g:rgb(0,0,0),backgroundColor:(_h=options===null||options===undefined?undefined:options.backgroundColor)!==null&&_h!==undefined?_h:rgb(0.75,0.75,0.75),borderColor:options===null||options===undefined?undefined:options.borderColor,borderWidth:(_j=options===null||options===undefined?undefined:options.borderWidth)!==null&&_j!==undefined?_j:0,rotate:(_k=options===null||options===undefined?undefined:options.rotate)!==null&&_k!==undefined?_k:degrees(0),caption:text5,hidden:options===null||options===undefined?undefined:options.hidden,page:page.ref});var widgetRef=this.doc.context.register(widget.dict);this.acroField.addWidget(widgetRef);var font=(_l=options===null||options===undefined?undefined:options.font)!==null&&_l!==undefined?_l:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(widget,font);page.node.addAnnot(widgetRef)};PDFButton2.prototype.needsAppearancesUpdate=function(){var _a;if(this.isDirty())return true;var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];var hasAppearances=((_a=widget.getAppearances())===null||_a===undefined?undefined:_a.normal)instanceof PDFStream_default;if(!hasAppearances)return true}return false};PDFButton2.prototype.defaultUpdateAppearances=function(font){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);this.updateAppearances(font)};PDFButton2.prototype.updateAppearances=function(font,provider2){assertIs(font,"font",[[PDFFont_default,"PDFFont"]]);assertOrUndefined(provider2,"provider",[Function]);var widgets=this.acroField.getWidgets();for(var idx4=0,len3=widgets.length;idx4<len3;idx4++){var widget=widgets[idx4];this.updateWidgetAppearance(widget,font,provider2)}};PDFButton2.prototype.updateWidgetAppearance=function(widget,font,provider2){var apProvider=provider2!==null&&provider2!==undefined?provider2:defaultButtonAppearanceProvider;var appearances=normalizeAppearance(apProvider(this,widget,font));this.updateWidgetAppearanceWithFont(widget,font,appearances)};PDFButton2.of=function(acroPushButton,ref,doc){return new PDFButton2(acroPushButton,ref,doc)};return PDFButton2}(PDFField_default);PDFButton_default=PDFButton});var init_form=__esm(()=>{init_PDFButton();init_PDFCheckBox();init_PDFDropdown();init_PDFField();init_PDFForm();init_PDFOptionList();init_PDFRadioGroup();init_PDFSignature();init_PDFTextField();init_appearances()});var init_text=__esm(()=>{init_alignment();init_layout()});var init_api=__esm(()=>{init_PDFDocument();init_PDFFont();init_PDFImage();init_PDFPage();init_PDFEmbeddedPage();init_PDFJavaScript();init_form();init_text();init_colors();init_errors3();init_image();init_objects2();init_operations();init_operators();init_rotations();init_sizes();init_PDFPageOptions();init_PDFDocumentOptions();init_StandardFonts()});var exports_es={};__export(exports_es,{waitForTick:()=>waitForTick,values:()=>values,utf8Encode:()=>utf8Encode,utf16Encode:()=>utf16Encode,utf16Decode:()=>utf16Decode,typedArrayFor:()=>typedArrayFor,translate:()=>translate,toUint8Array:()=>toUint8Array,toRadians:()=>toRadians,toHexStringOfMinLength:()=>toHexStringOfMinLength,toHexString:()=>toHexString,toDegrees:()=>toDegrees,toCodePoint:()=>toCodePoint,toCharCode:()=>toCharCode,sum:()=>sum,stroke:()=>stroke,square:()=>square,sortedUniq:()=>sortedUniq,skewRadians:()=>skewRadians,skewDegrees:()=>skewDegrees,sizeInBytes:()=>sizeInBytes,singleQuote:()=>singleQuote,showText:()=>showText,setWordSpacing:()=>setWordSpacing,setTextRise:()=>setTextRise,setTextRenderingMode:()=>setTextRenderingMode,setTextMatrix:()=>setTextMatrix,setStrokingRgbColor:()=>setStrokingRgbColor,setStrokingGrayscaleColor:()=>setStrokingGrayscaleColor,setStrokingColor:()=>setStrokingColor,setStrokingCmykColor:()=>setStrokingCmykColor,setLineWidth:()=>setLineWidth,setLineJoin:()=>setLineJoin,setLineHeight:()=>setLineHeight,setLineCap:()=>setLineCap,setGraphicsState:()=>setGraphicsState,setFontAndSize:()=>setFontAndSize,setFillingRgbColor:()=>setFillingRgbColor,setFillingGrayscaleColor:()=>setFillingGrayscaleColor,setFillingColor:()=>setFillingColor,setFillingCmykColor:()=>setFillingCmykColor,setDashPattern:()=>setDashPattern,setCharacterSqueeze:()=>setCharacterSqueeze,setCharacterSpacing:()=>setCharacterSpacing,scale:()=>scale,rotateRectangle:()=>rotateRectangle,rotateRadians:()=>rotateRadians,rotateInPlace:()=>rotateInPlace,rotateDegrees:()=>rotateDegrees,rotateAndSkewTextRadiansAndTranslate:()=>rotateAndSkewTextRadiansAndTranslate,rotateAndSkewTextDegreesAndTranslate:()=>rotateAndSkewTextDegreesAndTranslate,rgb:()=>rgb,reverseArray:()=>reverseArray,restoreDashPattern:()=>restoreDashPattern,reduceRotation:()=>reduceRotation,rectanglesAreEqual:()=>rectanglesAreEqual,rectangle:()=>rectangle,range:()=>range,radiansToDegrees:()=>radiansToDegrees,radians:()=>radians,pushGraphicsState:()=>pushGraphicsState,popGraphicsState:()=>popGraphicsState,pluckIndices:()=>pluckIndices,pdfDocEncodingDecode:()=>pdfDocEncodingDecode,parseDate:()=>parseDate,padStart:()=>padStart,numberToString:()=>numberToString,normalizeAppearance:()=>normalizeAppearance,nextLine:()=>nextLine,newlineChars:()=>newlineChars,moveTo:()=>moveTo,moveText:()=>moveText,mergeUint8Arrays:()=>mergeUint8Arrays,mergeLines:()=>mergeLines,mergeIntoTypedArray:()=>mergeIntoTypedArray,lowSurrogate:()=>lowSurrogate,lineTo:()=>lineTo,lineSplit:()=>lineSplit,layoutSinglelineText:()=>layoutSinglelineText,layoutMultilineText:()=>layoutMultilineText,layoutCombedText:()=>layoutCombedText,last:()=>last,isWithinBMP:()=>isWithinBMP,isType:()=>isType,isStandardFont:()=>isStandardFont,isNewlineChar:()=>isNewlineChar,highSurrogate:()=>highSurrogate,hasUtf16BOM:()=>hasUtf16BOM,hasSurrogates:()=>hasSurrogates,grayscale:()=>grayscale,getType:()=>getType,findLastMatch:()=>findLastMatch,fillAndStroke:()=>fillAndStroke,fill:()=>fill,escapedNewlineChars:()=>escapedNewlineChars,escapeRegExp:()=>escapeRegExp,error:()=>error,endText:()=>endText,endPath:()=>endPath,endMarkedContent:()=>endMarkedContent,encodeToBase64:()=>encodeToBase64,drawTextLines:()=>drawTextLines,drawTextField:()=>drawTextField,drawText:()=>drawText,drawSvgPath:()=>drawSvgPath,drawRectangle:()=>drawRectangle,drawRadioButton:()=>drawRadioButton,drawPage:()=>drawPage,drawOptionList:()=>drawOptionList,drawObject:()=>drawObject,drawLinesOfText:()=>drawLinesOfText,drawLine:()=>drawLine,drawImage:()=>drawImage,drawEllipsePath:()=>drawEllipsePath,drawEllipse:()=>drawEllipse,drawCheckMark:()=>drawCheckMark,drawCheckBox:()=>drawCheckBox,drawButton:()=>drawButton,degreesToRadians:()=>degreesToRadians,degrees:()=>degrees,defaultTextFieldAppearanceProvider:()=>defaultTextFieldAppearanceProvider,defaultRadioGroupAppearanceProvider:()=>defaultRadioGroupAppearanceProvider,defaultOptionListAppearanceProvider:()=>defaultOptionListAppearanceProvider,defaultDropdownAppearanceProvider:()=>defaultDropdownAppearanceProvider,defaultCheckBoxAppearanceProvider:()=>defaultCheckBoxAppearanceProvider,defaultButtonAppearanceProvider:()=>defaultButtonAppearanceProvider,decodePDFRawStream:()=>decodePDFRawStream,decodeFromBase64DataUri:()=>decodeFromBase64DataUri,decodeFromBase64:()=>decodeFromBase64,createValueErrorMsg:()=>createValueErrorMsg,createTypeErrorMsg:()=>createTypeErrorMsg,createPDFAcroFields:()=>createPDFAcroFields,createPDFAcroField:()=>createPDFAcroField,copyStringIntoBuffer:()=>copyStringIntoBuffer,concatTransformationMatrix:()=>concatTransformationMatrix,componentsToColor:()=>componentsToColor,colorToComponents:()=>colorToComponents,cmyk:()=>cmyk,closePath:()=>closePath,clipEvenOdd:()=>clipEvenOdd,clip:()=>clip,cleanText:()=>cleanText,charSplit:()=>charSplit,charFromHexCode:()=>charFromHexCode,charFromCode:()=>charFromCode,charAtIndex:()=>charAtIndex,canBeConvertedToUint8Array:()=>canBeConvertedToUint8Array,bytesFor:()=>bytesFor,byAscendingId:()=>byAscendingId,breakTextIntoLines:()=>breakTextIntoLines,beginText:()=>beginText,beginMarkedContent:()=>beginMarkedContent,backtick:()=>backtick,assertRangeOrUndefined:()=>assertRangeOrUndefined,assertRange:()=>assertRange,assertPositive:()=>assertPositive,assertOrUndefined:()=>assertOrUndefined,assertMultiple:()=>assertMultiple,assertIsSubset:()=>assertIsSubset,assertIsOneOfOrUndefined:()=>assertIsOneOfOrUndefined,assertIsOneOf:()=>assertIsOneOf,assertIs:()=>assertIs,assertInteger:()=>assertInteger,assertEachIs:()=>assertEachIs,asPDFNumber:()=>asPDFNumber,asPDFName:()=>asPDFName,asNumber:()=>asNumber,arrayAsString:()=>arrayAsString,appendQuadraticCurve:()=>appendQuadraticCurve,appendBezierCurve:()=>appendBezierCurve,adjustDimsForRotation:()=>adjustDimsForRotation,addRandomSuffix:()=>addRandomSuffix,ViewerPreferences:()=>ViewerPreferences_default,UnsupportedEncodingError:()=>UnsupportedEncodingError,UnrecognizedStreamTypeError:()=>UnrecognizedStreamTypeError,UnexpectedObjectTypeError:()=>UnexpectedObjectTypeError,UnexpectedFieldTypeError:()=>UnexpectedFieldTypeError,UnbalancedParenthesisError:()=>UnbalancedParenthesisError,TextRenderingMode:()=>TextRenderingMode,TextAlignment:()=>TextAlignment,StandardFonts:()=>StandardFonts,StandardFontValues:()=>StandardFontValues,StandardFontEmbedder:()=>StandardFontEmbedder_default,StalledParserError:()=>StalledParserError,RotationTypes:()=>RotationTypes,RichTextFieldReadError:()=>RichTextFieldReadError,ReparseError:()=>ReparseError,RemovePageFromEmptyDocumentError:()=>RemovePageFromEmptyDocumentError,ReadingDirection:()=>ReadingDirection,PrivateConstructorError:()=>PrivateConstructorError,PrintScaling:()=>PrintScaling,PngEmbedder:()=>PngEmbedder_default,ParseSpeeds:()=>ParseSpeeds,PageSizes:()=>PageSizes,PageEmbeddingMismatchedContextError:()=>PageEmbeddingMismatchedContextError,PDFXRefStreamParser:()=>PDFXRefStreamParser_default,PDFWriter:()=>PDFWriter_default,PDFWidgetAnnotation:()=>PDFWidgetAnnotation_default,PDFTrailerDict:()=>PDFTrailerDict_default,PDFTrailer:()=>PDFTrailer_default,PDFTextField:()=>PDFTextField_default,PDFString:()=>PDFString_default,PDFStreamWriter:()=>PDFStreamWriter_default,PDFStreamParsingError:()=>PDFStreamParsingError,PDFStream:()=>PDFStream_default,PDFSignature:()=>PDFSignature_default,PDFRef:()=>PDFRef_default,PDFRawStream:()=>PDFRawStream_default,PDFRadioGroup:()=>PDFRadioGroup_default,PDFParsingError:()=>PDFParsingError,PDFParser:()=>PDFParser_default,PDFPageTree:()=>PDFPageTree_default,PDFPageLeaf:()=>PDFPageLeaf_default,PDFPageEmbedder:()=>PDFPageEmbedder_default,PDFPage:()=>PDFPage_default,PDFOptionList:()=>PDFOptionList_default,PDFOperatorNames:()=>PDFOperatorNames_default,PDFOperator:()=>PDFOperator_default,PDFObjectStreamParser:()=>PDFObjectStreamParser_default,PDFObjectStream:()=>PDFObjectStream_default,PDFObjectParsingError:()=>PDFObjectParsingError,PDFObjectParser:()=>PDFObjectParser_default,PDFObjectCopier:()=>PDFObjectCopier_default,PDFObject:()=>PDFObject_default,PDFNumber:()=>PDFNumber_default,PDFNull:()=>PDFNull_default,PDFName:()=>PDFName_default,PDFJavaScript:()=>PDFJavaScript_default,PDFInvalidObjectParsingError:()=>PDFInvalidObjectParsingError,PDFInvalidObject:()=>PDFInvalidObject_default,PDFImage:()=>PDFImage_default,PDFHexString:()=>PDFHexString_default,PDFHeader:()=>PDFHeader_default,PDFForm:()=>PDFForm_default,PDFFont:()=>PDFFont_default,PDFFlateStream:()=>PDFFlateStream_default,PDFField:()=>PDFField_default,PDFEmbeddedPage:()=>PDFEmbeddedPage_default,PDFDropdown:()=>PDFDropdown_default,PDFDocument:()=>PDFDocument_default,PDFDict:()=>PDFDict_default,PDFCrossRefStream:()=>PDFCrossRefStream_default,PDFCrossRefSection:()=>PDFCrossRefSection_default,PDFContext:()=>PDFContext_default,PDFContentStream:()=>PDFContentStream_default,PDFCheckBox:()=>PDFCheckBox_default,PDFCatalog:()=>PDFCatalog_default,PDFButton:()=>PDFButton_default,PDFBool:()=>PDFBool_default,PDFArrayIsNotRectangleError:()=>PDFArrayIsNotRectangleError,PDFArray:()=>PDFArray_default,PDFAnnotation:()=>PDFAnnotation_default,PDFAcroText:()=>PDFAcroText_default,PDFAcroTerminal:()=>PDFAcroTerminal_default,PDFAcroSignature:()=>PDFAcroSignature_default,PDFAcroRadioButton:()=>PDFAcroRadioButton_default,PDFAcroPushButton:()=>PDFAcroPushButton_default,PDFAcroNonTerminal:()=>PDFAcroNonTerminal_default,PDFAcroListBox:()=>PDFAcroListBox_default,PDFAcroForm:()=>PDFAcroForm_default,PDFAcroField:()=>PDFAcroField_default,PDFAcroComboBox:()=>PDFAcroComboBox_default,PDFAcroChoice:()=>PDFAcroChoice_default,PDFAcroCheckBox:()=>PDFAcroCheckBox_default,PDFAcroButton:()=>PDFAcroButton_default,NumberParsingError:()=>NumberParsingError,NonFullScreenPageMode:()=>NonFullScreenPageMode,NoSuchFieldError:()=>NoSuchFieldError,NextByteAssertionError:()=>NextByteAssertionError,MultiSelectValueError:()=>MultiSelectValueError,MissingTfOperatorError:()=>MissingTfOperatorError,MissingPageContentsEmbeddingError:()=>MissingPageContentsEmbeddingError,MissingPDFHeaderError:()=>MissingPDFHeaderError,MissingOnValueCheckError:()=>MissingOnValueCheckError,MissingKeywordError:()=>MissingKeywordError,MissingDAEntryError:()=>MissingDAEntryError,MissingCatalogError:()=>MissingCatalogError,MethodNotImplementedError:()=>MethodNotImplementedError,LineJoinStyle:()=>LineJoinStyle,LineCapStyle:()=>LineCapStyle,JpegEmbedder:()=>JpegEmbedder_default,InvalidTargetIndexError:()=>InvalidTargetIndexError,InvalidPDFDateStringError:()=>InvalidPDFDateStringError,InvalidMaxLengthError:()=>InvalidMaxLengthError,InvalidFieldNamePartError:()=>InvalidFieldNamePartError,InvalidAcroFieldValueError:()=>InvalidAcroFieldValueError,IndexOutOfBoundsError:()=>IndexOutOfBoundsError,ImageAlignment:()=>ImageAlignment,ForeignPageError:()=>ForeignPageError,FontkitNotRegisteredError:()=>FontkitNotRegisteredError,FileEmbedder:()=>FileEmbedder_default,FieldExistsAsNonTerminalError:()=>FieldExistsAsNonTerminalError,FieldAlreadyExistsError:()=>FieldAlreadyExistsError,ExceededMaxLengthError:()=>ExceededMaxLengthError,EncryptedPDFError:()=>EncryptedPDFError,Duplex:()=>Duplex,CustomFontSubsetEmbedder:()=>CustomFontSubsetEmbedder_default,CustomFontEmbedder:()=>CustomFontEmbedder_default,CorruptPageTreeError:()=>CorruptPageTreeError,CombedTextLayoutError:()=>CombedTextLayoutError,ColorTypes:()=>ColorTypes,CharCodes:()=>CharCodes_default,Cache:()=>Cache_default,BlendMode:()=>BlendMode,AppearanceCharacteristics:()=>AppearanceCharacteristics_default,AnnotationFlags:()=>AnnotationFlags,AcroTextFlags:()=>AcroTextFlags,AcroFieldFlags:()=>AcroFieldFlags,AcroChoiceFlags:()=>AcroChoiceFlags,AcroButtonFlags:()=>AcroButtonFlags,AFRelationship:()=>AFRelationship});var init_es2=__esm(()=>{init_api();init_core();init_utils2()});function validateFileAddOptions(value){const v=serializable(value);if(!v||typeof v!=="object"||Array.isArray(v)||Object.keys(v).some((k)=>!["path","name","csv"].includes(k))||typeof v.path!=="string"||!v.path||v.path!==v.path.trim()||/[\\\x00-\x1f]/.test(v.path)||v.path.split("/").some((part)=>!part||part==="."||part==="..")||/^[A-Za-z]:/.test(v.path))throw new InboxContractError("File path must be relative to the configured working root");if(v.name!==undefined&&(typeof v.name!=="string"||!v.name||v.name!==v.name.trim()||v.name.length>255||/[\x00-\x1f\x7f/\\]/.test(v.name)))throw new InboxContractError("File name must be a safe filename");if(v.csv!==undefined)validateCsvHints(v.csv);return v}function validateCsvHints(value){const v=serializable(value);if(!v||typeof v!=="object"||Array.isArray(v)||Object.keys(v).some((k)=>!["encoding","delimiter","headerRow"].includes(k))||v.encoding!==undefined&&!["utf-8","windows-1252"].includes(v.encoding)||v.delimiter!==undefined&&![",",";","\t"].includes(v.delimiter)||v.headerRow!==undefined&&(!Number.isSafeInteger(v.headerRow)||v.headerRow<0))throw new InboxContractError("Invalid CSV parsing hints");return v}function csvRows(bytes,details){let decoded;try{decoded=new TextDecoder(details.encoding,{fatal:true}).decode(bytes)}catch{throw new InboxContractError("CSV does not match its encoding")}if(/[\x00-\x08\x0b\x0c\x0e-\x1f]/.test(decoded))throw new InboxContractError("CSV contains binary bytes");let rows;try{rows=parseDelimitedText(decoded,details.delimiter)}catch{throw new InboxContractError("CSV contains malformed quoted fields")}if(details.headerRow>=rows.length||rows[details.headerRow].every((cell)=>!cell.trim())||delimitedDataRowCount(rows,details.headerRow)!==details.dataRows||rows.slice(details.headerRow+1).some((row)=>row.length!==rows[details.headerRow].length))throw new InboxContractError("CSV header, column shape or row count differs from bytes");return rows}async function pdfDetails(bytes){if(!/^%PDF-(1\.[0-7]|2\.0)[\r\n]/.test(new TextDecoder().decode(bytes.slice(0,16)))||!/%%EOF\s*$/.test(new TextDecoder().decode(bytes.slice(-1024))))throw new InboxContractError("PDF signature or end marker is missing");try{const{PDFDocument:PDFDocument2}=await Promise.resolve().then(() => (init_es2(),exports_es));const pdf=await PDFDocument2.load(bytes,{updateMetadata:false,throwOnInvalidObject:true});const pages=pdf.getPages();if(!pages.length||pages.some((page)=>!Number.isFinite(page.getWidth())||!Number.isFinite(page.getHeight())||page.getWidth()<=0||page.getHeight()<=0))throw new Error("Invalid page tree");return{kind:"pdf",pages:pages.length}}catch{throw new InboxContractError("PDF bytes could not be verified")}}async function deriveInboxFile(bytes,name2,csv){if(bytes.length>26214400)throw new InboxContractError("File exceeds supported size");let details={kind:"other"},mediaType="application/octet-stream";const isPdf=new TextDecoder().decode(bytes.slice(0,5))==="%PDF-";if(isPdf){if(csv)throw new InboxContractError("CSV hints do not match PDF bytes");try{details=await pdfDetails(bytes);mediaType="application/pdf"}catch{}}else if(csv||/\.csv$/i.test(name2)){const hints=csv===undefined?{}:validateCsvHints(csv);let encoding=hints.encoding;if(!encoding){try{new TextDecoder("utf-8",{fatal:true}).decode(bytes);encoding="utf-8"}catch{encoding="windows-1252"}}const decoded=new TextDecoder(encoding,{fatal:true}).decode(bytes),headerRow=hints.headerRow??0;const delimiters=hints.delimiter?[hints.delimiter]:[",",";","\t"];const candidates=delimiters.flatMap((delimiter)=>{try{const rows=parseDelimitedText(decoded,delimiter);const d={kind:"csv",encoding,delimiter,headerRow,dataRows:delimitedDataRowCount(rows,headerRow)};csvRows(bytes,d);return[{details:d,width:rows[headerRow].length}]}catch{return[]}}).sort((a,b)=>b.width-a.width);if(!candidates.length||!csv&&candidates[0].width<2){if(csv)throw new InboxContractError("CSV hints do not match file bytes")}else{details=candidates[0].details;mediaType="text/csv"}}const sha2562=[...new Uint8Array(await crypto.subtle.digest("SHA-256",Uint8Array.from(bytes)))].map((n)=>n.toString(16).padStart(2,"0")).join("");const{id:_id,...file2}=validateInboxFile({id:crypto.randomUUID(),name:name2,mediaType,size:bytes.length,sha256:sha2562,details});return file2}async function verifyInboxFile(bytes,value){const file2=validateInboxFile(value);const derived=await deriveInboxFile(bytes,file2.name,file2.details.kind==="csv"?{encoding:file2.details.encoding,delimiter:file2.details.delimiter,headerRow:file2.details.headerRow}:undefined);const expectedDetails=file2.details.kind==="pdf"&&file2.details.pages===undefined&&derived.details.kind==="pdf"?{kind:"pdf"}:derived.details;if(file2.sha256!==derived.sha256||file2.size!==derived.size||file2.mediaType!==derived.mediaType||JSON.stringify(file2.details)!==JSON.stringify(expectedDetails))throw new InboxContractError("Retained file integrity or type metadata changed");return file2}var init_inbox_files=__esm(()=>{init_inbox_contract()});var exports_inbox_publication_file={};__export(exports_inbox_publication_file,{readInboxPublicationFile:()=>readInboxPublicationFile});async function readInboxPublicationFile(checkout,options){const{readFile,realpath}=await import("node:fs/promises");const{isAbsolute,relative,resolve,sep}=await import("node:path");const{path}=validateFileAddOptions(options);const root=await realpath(checkout),file2=await realpath(resolve(root,path));const rel=relative(root,file2);if(rel===".."||rel.startsWith(`..${sep}`)||isAbsolute(rel))throw new Error("Inbox file escapes working root");return new Uint8Array(await readFile(file2))}var init_inbox_publication_file=__esm(()=>{init_inbox_files()});init_inbox_contract();var REPOSITORY=/^[a-z0-9][a-z0-9._/-]{0,127}$/;function validRepositoryAlias(value){return typeof value==="string"&&REPOSITORY.test(value)&&!value.includes("//")&&!value.includes("..")}var RECORD_READ_INPUT_LIMIT=1024*1024;var RECORD_CAPTURE_OUTPUT_LIMIT=25*1024*1024;function validRecordRef(value){return typeof value==="string"&&value.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)+$/.test(value)}function validateRecordRead(value){if(!value||typeof value!=="object"||Array.isArray(value))throw new InboxContractError("Invalid selected-record read");const input=value;if(Object.keys(input).some((key)=>!["repository","refs","atCommit"].includes(key))||!validRepositoryAlias(input.repository)||!Array.isArray(input.refs)||!input.refs.length||input.refs.length>1e4||input.refs.some((ref)=>!validRecordRef(ref))||new Set(input.refs).size!==input.refs.length||input.atCommit!==undefined&&(typeof input.atCommit!=="string"||!/^[0-9a-f]{40}$/.test(input.atCommit)))throw new InboxContractError("Invalid selected-record read");return{repository:input.repository,refs:[...input.refs],...input.atCommit===undefined?{}:{atCommit:input.atCommit}}}init_files_contract();class AppRoutineContractError extends Error{code;constructor(code){super(code);this.code=code}}var propertyName=/^[a-z][A-Za-z0-9]*(?![\s\S])/;var stepId=/^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/;var routineName=/^[a-z0-9][a-z0-9-]{0,62}(?![\s\S])/;function isAppRoutineName(value){return typeof value==="string"&&routineName.test(value)}var owns=(value,key)=>Object.hasOwn(value,key);var invalidContract=()=>{throw new AppRoutineContractError("invalid_contract")};var invalidValue=()=>{throw new AppRoutineContractError("invalid_value")};function record(value){return value!==null&&typeof value==="object"&&!Array.isArray(value)&&(Object.getPrototypeOf(value)===Object.prototype||Object.getPrototypeOf(value)===null)}function fields2(value,required,optional=[]){return required.every((key)=>owns(value,key))&&Object.keys(value).every((key)=>required.includes(key)||optional.includes(key))}function denseArray(value){return Array.isArray(value)&&Object.keys(value).length===value.length&&Array.from({length:value.length},(_,index)=>owns(value,String(index))).every(Boolean)}function parseAppRoutineContract(value){let properties=0;function schema(value2,depth=1){if(depth>8||!record(value2))return invalidContract();switch(value2.type){case"object":{if(!fields2(value2,["type","properties","additionalProperties"],["required"])||value2.additionalProperties!==false||!record(value2.properties))return invalidContract();const entries=Object.entries(value2.properties);properties+=entries.length;if(properties>64||entries.some(([key])=>!propertyName.test(key)))return invalidContract();let required;if(owns(value2,"required")){if(!denseArray(value2.required)||value2.required.some((key)=>typeof key!=="string"||!owns(value2.properties,key))||new Set(value2.required).size!==value2.required.length)return invalidContract();required=[...value2.required]}return{type:"object",properties:Object.fromEntries(entries.map(([key,child])=>[key,schema(child,depth+1)])),...required===undefined?{}:{required},additionalProperties:false}}case"array":if(!fields2(value2,["type","items","maxItems"])||!Number.isSafeInteger(value2.maxItems)||value2.maxItems<1||value2.maxItems>64)return invalidContract();return{type:"array",items:schema(value2.items,depth+1),maxItems:value2.maxItems};case"boolean":if(!fields2(value2,["type"]))return invalidContract();return{type:value2.type};case"file":if(!fields2(value2,["type"],["storage","path"])||owns(value2,"storage")&&value2.storage!=="local"&&value2.storage!=="remote"||owns(value2,"path")&&!safeManagedFilePath(value2.path))return invalidContract();return{type:"file",...owns(value2,"storage")?{storage:value2.storage}:{},...owns(value2,"path")?{path:value2.path}:{}};case"string":if(!fields2(value2,["type"],["maxLength"])||owns(value2,"maxLength")&&(!Number.isSafeInteger(value2.maxLength)||value2.maxLength<0||value2.maxLength>4096))return invalidContract();return{type:"string",...owns(value2,"maxLength")?{maxLength:value2.maxLength}:{}};case"integer":case"number":{const validNumber=value2.type==="integer"?Number.isSafeInteger:Number.isFinite;if(!fields2(value2,["type"],["minimum","maximum"])||owns(value2,"minimum")&&!validNumber(value2.minimum)||owns(value2,"maximum")&&!validNumber(value2.maximum)||owns(value2,"minimum")&&owns(value2,"maximum")&&value2.minimum>value2.maximum)return invalidContract();return{type:value2.type,...owns(value2,"minimum")?{minimum:value2.minimum}:{},...owns(value2,"maximum")?{maximum:value2.maximum}:{}}}default:return invalidContract()}}if(!record(value)||!fields2(value,["routine","input","steps"],["result"])||!isAppRoutineName(value.routine)||!denseArray(value.steps)||value.steps.length<1||value.steps.length>64)return invalidContract();const input=schema(value.input);const result=owns(value,"result")?schema(value.result):undefined;const ids=new Set;const steps=value.steps.map((step)=>{if(!record(step)||!fields2(step,["id"],["summary"])||typeof step.id!=="string"||!stepId.test(step.id)||ids.has(step.id))return invalidContract();ids.add(step.id);return{id:step.id,...owns(step,"summary")?{summary:schema(step.summary)}:{}}});return{routine:value.routine,input,steps,...result===undefined?{}:{result}}}function jsonData(value,ancestors=new Set){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return;if(!record(value)&&!denseArray(value))return invalidValue();if(ancestors.has(value))return invalidValue();ancestors.add(value);for(const child of Object.values(value))jsonData(child,ancestors);ancestors.delete(value)}function validateRoutineSchemaValue(schema,value){switch(schema.type){case"object":if(!record(value)||(schema.required??[]).some((key)=>!owns(value,key))||Object.keys(value).some((key)=>!owns(schema.properties,key)))return invalidValue();for(const[key,child]of Object.entries(value))validateRoutineSchemaValue(schema.properties[key],child);return;case"array":if(!denseArray(value)||value.length>schema.maxItems)return invalidValue();for(const child of value)validateRoutineSchemaValue(schema.items,child);return;case"boolean":if(typeof value!=="boolean")return invalidValue();return;case"string":if(typeof value!=="string"||Array.from(value).length>(schema.maxLength??4096))return invalidValue();return;case"integer":case"number":if(typeof value!=="number"||!(schema.type==="integer"?Number.isSafeInteger(value):Number.isFinite(value))||schema.minimum!==undefined&&value<schema.minimum||schema.maximum!==undefined&&value>schema.maximum)return invalidValue();return;case"file":try{jsonData(value);const file=parseFileDescriptor(value);if(schema.path!==undefined&&file.path!==schema.path)return invalidValue()}catch{return invalidValue()}}}function boundedValue(schema,value){validateRoutineSchemaValue(schema,value);if(new TextEncoder().encode(JSON.stringify(value)).byteLength>16*1024)return invalidValue()}function validateAppRoutineInput(contract,value){boundedValue(contract.input,value)}function validateAppRoutineResult(contract,value){if(contract.result===undefined){if(value!==undefined)return invalidValue()}else boundedValue(contract.result,value)}function validateAppRoutineStep(contract,id2,summary){const step=contract.steps.find((step2)=>step2.id===id2);if(!step)return invalidValue();if(step.summary===undefined){if(summary!==undefined)return invalidValue()}else validateRoutineSchemaValue(step.summary,summary)}init_inbox_contract();var ROUTINE_DECLARATION_SCHEMA="https://schemas.oddington.ai/routine/v1.json";var ROUTINE_SOURCE_LIMITS={files:20000,bytes:256*1024*1024,declarationBytes:64*1024};var invalid=(field)=>{throw new Error(`Invalid routine declaration: ${field}`)};var object2=(value,fields3,field)=>{if(!value||typeof value!=="object"||Array.isArray(value)||Object.getPrototypeOf(value)!==Object.prototype&&Object.getPrototypeOf(value)!==null||Reflect.ownKeys(value).some((key)=>typeof key!=="string"||!fields3.includes(key)||!Object.getOwnPropertyDescriptor(value,key).enumerable||!Object.hasOwn(Object.getOwnPropertyDescriptor(value,key),"value")))invalid(field);return value};var routineAlias=(value)=>typeof value==="string"&&/^[a-z][a-z0-9-]{0,62}$/.test(value);var list=(value,field,allowed,qualified=false)=>{if(value===undefined)return[];if(!Array.isArray(value)||value.length>64||value.some((item)=>!(routineAlias(item)||qualified&&typeof item==="string"&&item.split("/").length===2&&item.split("/").every(routineAlias))||allowed&&!allowed.includes(item))||new Set(value).size!==value.length)invalid(field);return[...value].sort()};function routineAssetPattern(value){return typeof value==="string"&&value.length<=512&&!value.startsWith("/")&&!value.includes("\\")&&!value.includes(":")&&value.split("/").every((part)=>!!part&&part!=="."&&part!==".."&&/^[a-zA-Z0-9_.*-]+$/.test(part))}function parseRoutineDeclaration(value){const v=object2(value,["$schema","access","runtime","retry","assets"],"fields");if(v.$schema!==ROUTINE_DECLARATION_SCHEMA)invalid("$schema");const access=object2(v.access===undefined?{}:v.access,["repositories","connections","ai","files","publish"],"access");if(Object.hasOwn(access,"ai")&&access.ai!==true)invalid("access.ai");const rawRepositories=access.repositories===undefined?{}:access.repositories;const repositories=object2(rawRepositories,rawRepositories&&typeof rawRepositories==="object"?Object.keys(rawRepositories):[],"access.repositories");if(Object.keys(repositories).length>64)invalid("access.repositories");const grants={};for(const key of Object.keys(repositories).sort()){if(!routineAlias(key)||!["read","write"].includes(repositories[key]))invalid(`access.repositories.${key}`);grants[key]=repositories[key]}if(access.files!==undefined&&!["read","read-write"].includes(access.files))invalid("access.files");const runtime=object2(v.runtime===undefined?{}:v.runtime,["features","resources","maxDuration"],"runtime");if(runtime.resources!==undefined&&!["standard","large"].includes(runtime.resources))invalid("runtime.resources");const duration=runtime.maxDuration===undefined?"15m":runtime.maxDuration;if(typeof duration!=="string"||!/^(?:[1-5][0-9]|60)m$/.test(duration)||Number(duration.slice(0,-1))<15)invalid("runtime.maxDuration");const retry=object2(v.retry===undefined?{}:v.retry,["maxAttempts"],"retry");const maxAttempts=retry.maxAttempts===undefined?1:retry.maxAttempts;if(!Number.isInteger(maxAttempts)||maxAttempts<1||maxAttempts>3)invalid("retry.maxAttempts");const assets=v.assets===undefined?[]:v.assets;if(!Array.isArray(assets)||assets.length>64||assets.some((item)=>!routineAssetPattern(item))||new Set(assets).size!==assets.length)invalid("assets");return{$schema:ROUTINE_DECLARATION_SCHEMA,access:{repositories:grants,connections:list(access.connections,"access.connections",undefined,true),...access.ai===true?{ai:true}:{},...access.files===undefined?{}:{files:access.files},publish:list(access.publish,"access.publish",["asks","digests"])},runtime:{features:list(runtime.features,"runtime.features",["python","documents","browser"]),resources:runtime.resources??"standard",maxDuration:duration},retry:{maxAttempts},assets:[...assets].sort()}}var invalid2=()=>{throw new AppRoutineContractError("invalid_value")};var invalidContract2=()=>{throw new AppRoutineContractError("invalid_contract")};var routineTitle=(value)=>typeof value==="string"&&value.trim().length>0&&value.length<=256;function freezeRoutineMetadata(value){if(value!==null&&typeof value==="object"){for(const child of Object.values(value))freezeRoutineMetadata(child);Object.freeze(value)}return value}function assertRoutineJson(value,ancestors=new Set){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return;if(!value||typeof value!=="object"||ancestors.has(value))return invalid2();const array2=Array.isArray(value);if(!array2&&Object.getPrototypeOf(value)!==Object.prototype&&Object.getPrototypeOf(value)!==null)return invalid2();const keys2=Reflect.ownKeys(value);if(array2&&(keys2.length!==value.length+1||!Array.from({length:value.length},(_,index)=>Object.hasOwn(value,index)).every(Boolean)))return invalid2();ancestors.add(value);for(const key of keys2){if(array2&&key==="length")continue;if(typeof key!=="string")return invalid2();const descriptor=Object.getOwnPropertyDescriptor(value,key);if(!descriptor.enumerable||!Object.hasOwn(descriptor,"value"))return invalid2();assertRoutineJson(descriptor.value,ancestors)}ancestors.delete(value)}function assertRoutineFields(value,allowed){if(!value||typeof value!=="object"||Object.getPrototypeOf(value)!==Object.prototype||Reflect.ownKeys(value).some((key)=>typeof key!=="string"||allowed&&!allowed.includes(key)||!Object.getOwnPropertyDescriptor(value,key).enumerable||!Object.hasOwn(Object.getOwnPropertyDescriptor(value,key),"value")))return invalidContract2()}function parseRoutineAccess(value){try{if(value!==undefined)assertRoutineJson(value);assertRoutineFields(value??{},["repositories","connections","ai","files","publish"]);const access=value;const names=access?.connections??[];if(!Array.isArray(names)||names.length>64||new Set(names).size!==names.length||names.some((name)=>typeof name!=="string"||name.split("/").length!==2||name.split("/").some((part)=>!isAppRoutineName(part))))return invalidContract2();const parsed=parseRoutineDeclaration({$schema:ROUTINE_DECLARATION_SCHEMA,access:{...access,connections:[]}}).access;return freezeRoutineMetadata({...parsed,connections:[...names]})}catch{return invalidContract2()}}init_files_contract();var ROUTINE_AI_VALUE_BYTES=256*1024;var ROUTINE_AI_EVIDENCE_BYTES=4*1024;var ROUTINE_AI_ERROR_CODES=["access_denied","capability_unavailable","invalid_input","unsupported_file","file_unavailable","input_too_large","output_too_large","provider_failure","invalid_output","cancelled"];class RoutineAIError extends Error{code;constructor(code){super(code);this.code=code;this.name="RoutineAIError"}}function parseRoutineAIError(value){try{assertRoutineJson(value);assertRoutineFields(value,["code"]);if(!ROUTINE_AI_ERROR_CODES.includes(value.code))throw new Error;return new RoutineAIError(value.code)}catch{throw new RoutineAIError("invalid_output")}}function capture(value,invalid3,oversized){try{assertRoutineJson(value);const encoded=JSON.stringify(value);if(new TextEncoder().encode(encoded).byteLength>ROUTINE_AI_VALUE_BYTES)throw new RoutineAIError(oversized);return freezeRoutineMetadata(JSON.parse(encoded))}catch(error){if(error instanceof RoutineAIError)throw error;throw new RoutineAIError(invalid3)}}function parseRoutineAIRequest(value){const v=capture(value,"invalid_input","input_too_large");try{assertRoutineFields(v,v.kind==="generateObject"?["kind","instructions","input","schema"]:["kind","instructions","input"]);if(!["generateText","generateObject"].includes(v.kind)||typeof v.instructions!=="string"||!v.instructions.trim())throw new Error;const input=typeof v.input==="string"?v.input:parseFileDescriptor(v.input);if(v.kind==="generateText")return freezeRoutineMetadata({kind:v.kind,instructions:v.instructions,input});const schema=parseAppRoutineContract({routine:"ai",input:v.schema,steps:[{id:"generate"}]}).input;return freezeRoutineMetadata({kind:v.kind,instructions:v.instructions,input,schema})}catch{throw new RoutineAIError("invalid_input")}}function parseRoutineAIResult(request,value){const v=capture(value,"invalid_output","output_too_large");try{if(request.kind==="generateText"){assertRoutineFields(v,["text"]);if(typeof v.text!=="string"||!v.text.trim())throw new Error;return freezeRoutineMetadata({text:v.text})}else{assertRoutineFields(v,["object"]);if(!Object.hasOwn(v,"object"))throw new Error;validateRoutineSchemaValue(request.schema,v.object);return freezeRoutineMetadata({object:v.object})}}catch{throw new RoutineAIError("invalid_output")}}var LIMIT=256*1024;var invalid3=()=>{throw new AppRoutineContractError("invalid_value")};var invalidContract3=()=>{throw new AppRoutineContractError("invalid_contract")};var empty={type:"object",properties:{},required:[],additionalProperties:false};function captureJson(value){assertRoutineJson(value);const encoded=JSON.stringify(value);if(new TextEncoder().encode(encoded).byteLength>LIMIT)return invalid3();return freezeRoutineMetadata(JSON.parse(encoded))}function capture2(schema,value){const captured=captureJson(value);validateRoutineSchemaValue(schema,captured);return captured}var schemas=new WeakMap;function nestedSchema(value){const metadata=schemaMetadata(value);if(Object.hasOwn(metadata,"default"))return invalidContract3();return metadata.schema}function schemaMetadata(value){if(!value||typeof value!=="object")return invalidContract3();const registered=schemas.get(value);if(registered)return registered;try{assertRoutineJson(value)}catch{return invalidContract3()}return{schema:parseAppRoutineContract({routine:"definition",input:value,steps:[{id:"inspect"}]}).input}}function declaration(value,defaults){try{assertRoutineJson(value)}catch{return invalidContract3()}const parsed=freezeRoutineMetadata(parseAppRoutineContract({routine:"definition",input:value,steps:[{id:"inspect"}]}).input);const captured=defaults?capture2(parsed,defaults.value):undefined;const builder=Object.defineProperty({...parsed},"default",{value:(value2)=>declaration(parsed,{value:value2})});schemas.set(builder,{schema:parsed,...defaults?{default:captured}:{}});return Object.freeze(builder)}var schema={object(properties){return declaration({type:"object",properties:Object.fromEntries(Object.entries(properties).map(([key,value])=>[key,nestedSchema(value)])),required:Object.keys(properties),additionalProperties:false})},array(items,options){return declaration({type:"array",items:nestedSchema(items),maxItems:options.maxItems})},string(options={}){return declaration({type:"string",...options})},integer(options={}){return declaration({type:"integer",...options})},number(options={}){return declaration({type:"number",...options})},boolean(){return declaration({type:"boolean"})}};var file=(options={})=>{assertRoutineFields(options,["storage","path"]);return declaration({type:"file",...options})};var definitions=new WeakMap;var defineRoutine=(definition)=>{assertRoutineFields(definition,["id","title","input","steps","result","access","responses","run"]);if(!isAppRoutineName(definition.id)||definition.title!==undefined&&!routineTitle(definition.title)||typeof definition.run!=="function")return invalidContract3();const input=definition.input===undefined?{schema:empty,default:{}}:schemaMetadata(definition.input);const result=definition.result===undefined?undefined:schemaMetadata(definition.result).schema;const access=parseRoutineAccess(definition.access);assertRoutineFields(definition.steps??{});const executable=Object.fromEntries(Object.entries(definition.steps??{}).map(([id2,step])=>{assertRoutineFields(step,["title","run"]);if(!routineTitle(step.title)||typeof step.run!=="function")return invalidContract3();return[id2,Object.freeze({title:step.title,run:step.run})]}));const steps=Object.entries(executable).map(([id2,step])=>({id:id2,title:step.title}));parseAppRoutineContract({routine:definition.id,input:input.schema,steps:steps.length?steps.map(({id:id2})=>({id:id2})):[{id:"inspect"}],...result?{result}:{}});const responses=[];const ids=new Set;if(definition.responses!==undefined){if(!Array.isArray(definition.responses)||definition.responses.length>64||Reflect.ownKeys(definition.responses).length!==definition.responses.length+1)return invalidContract3();for(let index=0;index<definition.responses.length;index++){const descriptor=Object.getOwnPropertyDescriptor(definition.responses,String(index));if(!descriptor||!Object.hasOwn(descriptor,"value"))return invalidContract3();const response=descriptor.value;assertRoutineFields(response,["id","results","run"]);if(!isAppRoutineName(response.id)||ids.has(response.id))return invalidContract3();ids.add(response.id);if(response.results!==undefined){try{assertRoutineJson(response.results)}catch{return invalidContract3()}}try{responses.push(defineHandler(response))}catch{return invalidContract3()}}}const contract=freezeRoutineMetadata({id:definition.id,...definition.title===undefined?{}:{title:definition.title},input:input.schema,...Object.hasOwn(input,"default")?{inputDefault:input.default}:{},access,responses:responses.map(({id:id2})=>({id:id2})),steps,...result?{result}:{}});const captured=Object.freeze({...definition,access,steps:Object.freeze(executable),responses:Object.freeze(responses),...definition.input===undefined?{}:{input:declaration(input.schema,Object.hasOwn(input,"default")?{value:input.default}:undefined)},...result===undefined?{}:{result:declaration(result)},run:(input2,os)=>executeRoutineDefinition(captured,input2,os)});definitions.set(captured,{contract,steps:executable,run:definition.run});return captured};function inspectRoutineDefinition(definition){if(!definition||typeof definition!=="object")return invalidContract3();const registered=definitions.get(definition);if(!registered)return invalidContract3();return registered.contract}function captureRoutineInput(definition,input){const contract=inspectRoutineDefinition(definition);return capture2(contract.input,input===undefined&&Object.hasOwn(contract,"inputDefault")?contract.inputDefault:input)}async function executeRoutineDefinition(definition,input,runtime){const captured=captureRoutineInput(definition,input);const{contract,steps,run}=definitions.get(definition);let active=true,accepting=true,broken=false;let work=Promise.resolve();let aiFailure;const aiWork=new Set;const generate=(kind,value)=>{const operation=(async()=>{if(!active||broken||contract.access.ai!==true)throw new RoutineAIError("access_denied");if(!runtime.ai)throw new RoutineAIError("capability_unavailable");let request;try{assertRoutineFields(value,kind==="generateObject"?["instructions","input","schema"]:["instructions","input"]);request=parseRoutineAIRequest({kind,instructions:value.instructions,input:value.input,...kind==="generateObject"?{schema:schemaMetadata(value.schema).schema}:{}})}catch(error){if(error instanceof RoutineAIError)throw error;throw new RoutineAIError("invalid_input")}const result2=await runtime.ai[kind](request);if(!active||broken)throw new RoutineAIError("access_denied");return parseRoutineAIResult(request,result2)})();aiWork.add(operation);operation.then(()=>aiWork.delete(operation),(error)=>{aiFailure??=error;broken=true;aiWork.delete(operation)});return operation};const called=new Set;const reached=new Set;const guarded=(value,receiver)=>typeof value==="function"?(...args)=>{if(!active||broken)throw new Error("Run authority ended");return guarded(Reflect.apply(value,receiver,args))}:value&&typeof value==="object"&&!(value instanceof Promise)?new Proxy({...value},{get(_target,key){return guarded(Reflect.get(value,key,value),value)}}):value;const validateHandlers=(value)=>{for(const question2 of value.questions??[])if(question2.handler&&!contract.responses.some((handler)=>handler.id===question2.handler.id))return invalid3();return value};const os=Object.freeze({...guarded({...runtime,run:freezeRoutineMetadata({...runtime.run}),ai:{generateText:(value)=>generate("generateText",value),generateObject:(value)=>generate("generateObject",value)},connections:{...runtime.connections,get:async(identity)=>{if(!active||broken||!contract.access.connections?.includes(identity))throw new Error("Connection unavailable");const value=await runtime.connections.get(identity);if(!active||broken)throw new Error("Run authority ended");return value}},inbox:{...runtime.inbox,publishAsk:(value,options)=>runtime.inbox.publishAsk(validateHandlers(value),options)}}),step(id2,...input2){let saved;try{if(!active||!accepting||broken||!Object.hasOwn(steps,id2)||called.has(id2)||input2.length>1)return invalid3();if(input2.length)saved=captureJson(input2[0]);called.add(id2)}catch(error){broken=true;return Promise.reject(error)}const next=work.then(async()=>{if(broken)return invalid3();reached.add(id2);try{await runtime.step(id2,{status:"running"});const output=await steps[id2].run(saved,os);assertRoutineFields(output,["summary","data"]);if(!Object.hasOwn(output,"summary")||!Object.hasOwn(output,"data"))return invalid3();const summary=captureJson(output.summary),data=captureJson(output.data);await runtime.step(id2,{status:"completed",summary,data});return freezeRoutineMetadata({summary,data})}catch(error){broken=true;await runtime.step(id2,{status:"failed"});throw error}});work=next.then(()=>{},()=>{broken=true});return next}});let result,failure;try{result=await run(captured,os)}catch(error){failure=error;broken=true}accepting=false;await work;while(aiWork.size)await Promise.allSettled([...aiWork]);active=false;for(const step of contract.steps)if(!reached.has(step.id))await runtime.step(step.id,{status:"skipped"});if(broken)throw failure??aiFailure??new AppRoutineContractError("invalid_value");if(contract.result!==undefined)return capture2(contract.result,result);if(result!==undefined)return invalid3();return}class DataOperationError extends Error{code;retryable;effect;component;constructor(code,retryable=false,effect,component){super(`Data operation failed: ${code}`);this.code=code;this.retryable=retryable;this.effect=effect;this.component=component;this.name="DataOperationError"}}var invalid4=()=>{throw new DataOperationError("invalid_query")};var historyText=(value)=>typeof value==="string"&&!/[\u0000\uD800-\uDFFF]/u.test(value);function historyVersion(value){return historyText(value)&&value.length>0&&new TextEncoder().encode(value).length<=1024&&!/[\u0000-\u001f\u007f-\u009f]/.test(value)&&!/^[0-9a-f]{40}$/i.test(value)}function historyProperties(value){if(!value||typeof value!=="object"||Array.isArray(value)||![Object.prototype,null].includes(Object.getPrototypeOf(value)))return invalid4();const descriptors=Object.getOwnPropertyDescriptors(value);if(Reflect.ownKeys(value).some((key)=>typeof key!=="string"||!descriptors[key]?.enumerable||!Object.hasOwn(descriptors[key],"value")))return invalid4();return descriptors}var historyCollection=(value)=>typeof value==="string"&&value.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(value);var historyCursor=(value)=>typeof value==="string"&&value.length<=128*1024&&/^history-cursor-v1\.[A-Za-z0-9_-]{1,64}\.[A-Za-z0-9_-]{16}\.[A-Za-z0-9_-]+$/.test(value);function historyArray(value){if(!Array.isArray(value)||Object.getPrototypeOf(value)!==Array.prototype)return invalid4();const descriptors=Object.getOwnPropertyDescriptors(value);if(Reflect.ownKeys(value).length!==value.length+1)return invalid4();const result=[];for(let i=0;i<value.length;i++){const descriptor=descriptors[i];if(!descriptor?.enumerable||!Object.hasOwn(descriptor,"value"))return invalid4();result.push(descriptor.value)}return result}function captureOptions(value,changes){if(value===undefined)return{};const descriptors=historyProperties(value),result={};const allowed=changes?["collections","refs","from","through","limit","after"]:["limit","before"];if(Object.keys(descriptors).some((key)=>!allowed.includes(key)))return invalid4();for(const key of allowed){if(!Object.hasOwn(descriptors,key))continue;const scalar=descriptors[key].value;if(key==="collections"||key==="refs"){const values=historyArray(scalar);if(!values.length||values.length>(key==="collections"?16:100)||!values.every(key==="collections"?historyCollection:validRecordRef)||new Set(values).size!==values.length)return invalid4();result[key]=values}else if(key==="limit"){if(!Number.isInteger(scalar)||scalar<1||scalar>(changes?500:100))return invalid4();result.limit=scalar}else{if(!(key==="after"?historyCursor(scalar):historyVersion(scalar)))return invalid4();result[key]=scalar}}return result}var captureHistoryListOptions=(value)=>captureOptions(value,false);var captureHistoryChangesOptions=(value)=>captureOptions(value,true);function captureHistoryInstant(value){if(!historyText(value)||value.length>1024)return invalid4();const match=/^(\d{4})-(\d{2})-(\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?([Zz]|([+-])(\d{2}):(\d{2}))$/.exec(value);if(!match)return invalid4();const[year,month,day,hour,minute,second]=match.slice(1,7).map(Number);const days=new Date(Date.UTC(year,month,0));days.setUTCFullYear(year);if(year<1||month<1||month>12||day<1||day>days.getUTCDate()||hour>23||minute>59||second>59||Number(match[9]??0)>23||Number(match[10]??0)>59)return invalid4();return value}var invalid5=()=>{throw new DataOperationError("invalid_query")};function captureRecordsSearchInput(query,options){if(!historyText(query))return invalid5();const length=[...query.trim()].length;if(length<1||length>256)return invalid5();if(options===undefined)return{query};const descriptors=historyProperties(options);if(Object.keys(descriptors).some((key)=>!["collections","limit"].includes(key)))return invalid5();const captured={};if(Object.hasOwn(descriptors,"collections")){const supplied=descriptors.collections.value;if(!Array.isArray(supplied)||supplied.length<1||supplied.length>16||Reflect.ownKeys(supplied).length!==supplied.length+1)return invalid5();const collections=[];for(let index=0;index<supplied.length;index++){const descriptor=Object.getOwnPropertyDescriptor(supplied,String(index));if(!descriptor?.enumerable||!Object.hasOwn(descriptor,"value")||!historyText(descriptor.value))return invalid5();collections.push(descriptor.value)}if(new Set(collections).size!==collections.length)return invalid5();captured.collections=collections}if(Object.hasOwn(descriptors,"limit")){const supplied=descriptors.limit.value;if(!Number.isInteger(supplied)||supplied<1||supplied>100)return invalid5();captured.limit=supplied}return{query,options:captured}}function captureRecordsReadRefs(value){if(!Array.isArray(value)||value.length<1||value.length>100)throw new DataOperationError("invalid_query");const refs=historyArray(value);if(!refs.every((ref)=>validRecordRef(ref)&&!/[\r\n]/.test(ref))||new Set(refs).size!==refs.length)throw new DataOperationError("invalid_query");return refs}var DATA_REQUEST_LIMIT=256*1024;var invalidChange=()=>{throw new DataOperationError("invalid_change",false,"unapplied")};function mapping(value){try{historyProperties(value);return value}catch{return invalidChange()}}function captureValue(value,ancestors=new Set,depth=0){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return value;if(!value||typeof value!=="object"||ancestors.has(value)||depth>32)return invalidChange();ancestors.add(value);try{if(Array.isArray(value)){if(value.length>1e5||Object.keys(value).length!==value.length||Object.getOwnPropertySymbols(value).length)return invalidChange();return Array.from(value,(item)=>captureValue(item,ancestors,depth+1))}return Object.fromEntries(Object.entries(mapping(value)).map(([key,item])=>{if(["__proto__","constructor","prototype"].includes(key))return invalidChange();return[key,captureValue(item,ancestors,depth+1)]}))}finally{ancestors.delete(value)}}function captureDataDelete(record2){const identity=mapping(record2);if(!validRecordRef(identity.$ref)||typeof identity.$version!=="string"||!identity.$version.length||identity.$version.length>512)return invalidChange();return{ref:identity.$ref,expectedVersion:identity.$version}}function captureDataUpdate(record2,set){const identity=captureDataDelete(record2),fields3=mapping(set);if(!Object.keys(fields3).length||Object.keys(fields3).some((key)=>key.startsWith("$")||["id","type"].includes(key)))return invalidChange();return{...identity,set:captureValue(fields3)}}function captureIdentities(value,update,allowEmpty=true){if(!Array.isArray(value)||!allowEmpty&&!value.length||value.length>1e4)return invalidChange();const captured=value.map((item)=>{const row=mapping(item);if(Object.keys(row).sort().join(",")!==(update?"expectedVersion,ref,set":"expectedVersion,ref"))return invalidChange();const identity={$ref:row.ref,$version:row.expectedVersion};return update?captureDataUpdate(identity,row.set):captureDataDelete(identity)});if(new Set(captured.map((item)=>item.ref)).size!==captured.length)return invalidChange();return captured}function captureDataUpdates(value,allowEmpty=false){return captureIdentities(value,true,allowEmpty)}function captureDataCreate(value){const row=mapping(value);if(!validRecordRef(row.$ref)||Object.keys(row).some((key)=>key.startsWith("$")&&!["$ref","$filing"].includes(key)))return invalidChange();const{$ref:ref,$filing,...fields3}=row;let filing;if($filing!==undefined){const components=mapping($filing);if(Object.entries(components).some(([name,value2])=>!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name)||["constructor","prototype"].includes(name)||typeof value2!=="string"||!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(value2)))return invalidChange();filing={...components}}return{ref,fields:captureValue(fields3),...filing?{filing}:{}}}function captureDataChanges(updatesValue,createsValue=[],deletesValue=[]){const updates=captureDataUpdates(updatesValue,true);if(!Array.isArray(createsValue)||createsValue.length>1e4)return invalidChange();const creates=createsValue.map((item)=>{const row=mapping(item);if(Object.keys(row).some((key)=>!["ref","fields","filing"].includes(key))||!Object.hasOwn(row,"ref")||!Object.hasOwn(row,"fields"))return invalidChange();const fields3=mapping(row.fields);if(Object.keys(fields3).some((key)=>key.startsWith("$")))return invalidChange();return captureDataCreate({...fields3,$ref:row.ref,...Object.hasOwn(row,"filing")?{$filing:row.filing}:{}})});const deletes=captureIdentities(deletesValue,false);const refs=[...updates,...creates,...deletes].map((item)=>item.ref);if(!refs.length||refs.length>1e4||new Set(refs).size!==refs.length)return invalidChange();return{updates,creates,deletes}}function checkDataRequestSize(input){if(new TextEncoder().encode(JSON.stringify(input)).byteLength>DATA_REQUEST_LIMIT)throw new DataOperationError("request_too_large",false,"unapplied")}function dataTransportError(status,value){const failures={400:["invalid_query","invalid_change"],401:["unauthenticated"],403:["access_denied"],409:["conflict","publication_pending"],413:["request_too_large"],429:["capacity"],503:["unavailable","publication_pending"]};const error=value&&typeof value==="object"&&"error"in value?value.error:undefined;const row=error&&typeof error==="object"?error:undefined;const code=failures[status]?.find((allowed)=>allowed===row?.code)??"unavailable";const effect=["unapplied","uncertain","applied"].includes(String(row?.effect))?row.effect:undefined;return new DataOperationError(code,["capacity","unavailable","publication_pending"].includes(code),code==="conflict"?"unapplied":effect,code==="invalid_change"&&typeof row?.component==="string"&&/^[a-zA-Z][a-zA-Z0-9_-]{0,127}$/.test(row.component)?row.component:undefined)}init_files_contract();var AUTH_ORIGIN="https://auth.oddington.ai";function oddingtonOrigin(environment=process.env){const value=environment.OS_ORIGIN??AUTH_ORIGIN;const url=new URL(value);if(url.protocol!=="https:"&&url.hostname!=="127.0.0.1")throw new Error("OS_ORIGIN must use HTTPS");return url.origin}init_files_contract();var nodeRequest;var nodeReadable;if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){({request:nodeRequest}=await import("node:http"));({Readable:nodeReadable}=await import("node:stream"))}function privateRoutineRequest(environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env){if(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__)return;const prepared=["OS_ROUTINE_LOCAL","OS_ROUTINE_LOCAL_SOCKET","OS_ROUTINE_LOCAL_TOKEN"].some((key)=>environment[key]!==undefined);const managed=["OS_FILES_SOCKET","OS_FILES_TOKEN"].some((key)=>environment[key]!==undefined);if(!prepared&&!managed)return;const socket=prepared?environment.OS_ROUTINE_LOCAL_SOCKET:environment.OS_FILES_SOCKET;const token=prepared?environment.OS_ROUTINE_LOCAL_TOKEN:environment.OS_FILES_TOKEN;const request=localRoutineRequest(prepared?environment:{OS_ROUTINE_LOCAL:"1",OS_ROUTINE_LOCAL_SOCKET:socket,OS_ROUTINE_LOCAL_TOKEN:token});const isCurrent=()=>prepared?environment.OS_ROUTINE_LOCAL==="1"&&environment.OS_ROUTINE_LOCAL_SOCKET===socket&&environment.OS_ROUTINE_LOCAL_TOKEN===token:environment.OS_FILES_SOCKET===socket&&environment.OS_FILES_TOKEN===token;if(!nodeRequest||!nodeReadable)throw new Error("Files transport unavailable");const httpRequest=nodeRequest,Readable=nodeReadable;const files=async(suffix,init,signal)=>{if(!isCurrent())throw new FileOperationError("unsupported_context",400);const tcp=/^tcp:\/\/127\.0\.0\.1:([1-9][0-9]{0,4})$/.exec(socket);const endpoint=tcp?{hostname:"127.0.0.1",port:Number(tcp[1])}:{socketPath:socket};const id2=crypto.randomUUID();if(init.body instanceof ReadableStream||suffix===""&&init.method==="POST"){await new Promise((resolve,reject)=>{const admission=httpRequest({...endpoint,path:"/files/admit",method:"POST",timeout:30000,signal,agent:false,headers:{...Object.fromEntries(new Headers(init.headers)),authorization:`Bearer ${token}`,"x-os-files-suffix":encodeURIComponent(suffix),"x-os-files-method":init.method??"GET"}},(response)=>{const bytes=Buffer.alloc(16384);let size=0;response.on("data",(chunk)=>{size+=chunk.length;if(size>16384)response.destroy(new Error("Files admission result exceeds supported size"));else bytes.set(chunk,size-chunk.length)});response.once("error",reject);response.once("end",()=>{if(response.statusCode===204){resolve();return}try{const value=JSON.parse(bytes.subarray(0,size).toString());const code=value?.error?.code;const status=response.statusCode??503;if(["invalid_input","request_too_large","unsupported_context","access_denied","capacity","unavailable"].includes(code))reject(new FileOperationError(code,status,code==="capacity"||code==="unavailable"));else reject(new FileOperationError("unavailable",503,true))}catch{reject(new FileOperationError("unavailable",503,true))}})});admission.once("error",()=>reject(new FileOperationError("unavailable",503,true)));admission.once("timeout",()=>admission.destroy(new Error("Files admission stalled")));admission.end()});if(!isCurrent())throw new FileOperationError("unsupported_context",400)}let cancellation;const cancelCall=()=>cancellation??=new Promise((resolve,reject)=>{const cancel=httpRequest({...endpoint,path:"/files/cancel",method:"POST",timeout:30000,headers:{authorization:`Bearer ${token}`,"x-os-files-call":id2}},(response)=>{response.resume();response.once("end",resolve);response.once("error",reject)});cancel.once("error",reject);cancel.once("timeout",()=>cancel.destroy(new Error("Files cancellation stalled")));cancel.end()});let pumping=Promise.resolve();let sourceReader;const result=new Promise((resolve,reject)=>{const call=httpRequest({...endpoint,path:"/files/stream",method:"POST",headers:{...Object.fromEntries(new Headers(init.headers)),authorization:`Bearer ${token}`,"x-os-files-call":id2,"x-os-files-suffix":encodeURIComponent(suffix),"x-os-files-method":init.method??"GET"},signal,timeout:30000,agent:false},async(response)=>{try{call.setTimeout(0);if((response.statusCode??503)>=400){await sourceReader?.cancel().catch(()=>{});call.end()}await pumping;if(!isCurrent()){response.destroy();reject(new FileOperationError("unsupported_context",400));return}const headers=new Headers;for(const[key,value]of Object.entries(response.headers))if(value!==undefined)headers.set(key,Array.isArray(value)?value.join(", "):value);const source=Readable.toWeb(response,{strategy:{highWaterMark:65536,size:(chunk)=>chunk.byteLength}});const reader=source.getReader();if(response.statusCode===204){const timer=setTimeout(()=>response.destroy(new Error("Files completion stalled")),30000);try{if(!(await reader.read()).done)throw new FileOperationError("unavailable",503,true);if(!isCurrent())throw new FileOperationError("unsupported_context",400);resolve(new Response(null,{status:204,headers}))}finally{clearTimeout(timer);reader.releaseLock()}return}let closed=false;const body=new ReadableStream({async pull(controller){let timer;try{if(!isCurrent())throw new FileOperationError("unsupported_context",400);timer=setTimeout(()=>response.destroy(new Error("Files delivery stalled")),30000);const next=await reader.read();if(closed)return;if(next.done){closed=true;reader.releaseLock();controller.close()}else controller.enqueue(next.value)}catch(error){closed=true;controller.error(error);await cancelCall().catch(()=>{});response.socket?.destroy();response.destroy();await reader.cancel(error).catch(()=>{});reader.releaseLock()}finally{clearTimeout(timer)}},async cancel(reason){closed=true;await cancelCall().catch(()=>{});response.socket?.destroy();response.destroy();call.destroy();await reader.cancel(reason).catch(()=>{});reader.releaseLock()}},{highWaterMark:0});resolve(new Response(body,{status:response.statusCode??503,headers}))}catch(error){response.destroy();reject(error instanceof FileOperationError?error:new FileOperationError("unavailable",503,true))}});call.on("error",(error)=>{cancelCall().catch(()=>{});reject(error instanceof FileOperationError?error:new FileOperationError("unavailable",503,true))});call.on("timeout",()=>call.destroy(new Error("Files I/O stalled")));call.on("information",()=>call.setTimeout(30000));if(init.body instanceof ReadableStream){call.flushHeaders();const reader=sourceReader=init.body.getReader();const abort=()=>{reader.cancel(signal.reason).catch(()=>{})};signal.addEventListener("abort",abort,{once:true});call.once("close",abort);pumping=(async()=>{try{for(;;){const next=await reader.read();if(next.done)break;if(!(next.value instanceof Uint8Array))throw new FileOperationError("invalid_input",400);if(!isCurrent())throw new FileOperationError("unsupported_context",400);for(let offset=0;offset<next.value.byteLength;offset+=262144){if(call.destroyed)throw new Error("Files parent disconnected");await new Promise((done,fail2)=>{const closed=()=>fail2(new Error("Files parent disconnected"));call.once("close",closed);call.write(next.value.subarray(offset,offset+262144),(error)=>{call.removeListener("close",closed);error?fail2(error):done()})})}}call.end()}catch(error){call.destroy(error instanceof Error?error:new Error("Files transport failed"))}finally{await reader.cancel().catch(()=>{});signal.removeEventListener("abort",abort);call.removeListener("close",abort);reader.releaseLock()}})()}else call.end(init.body===undefined?undefined:Buffer.from(init.body))});try{return await result}finally{await pumping}};return{request,files,isCurrent,identity:`private:${socket}`}}function localRoutineRequest(environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env){if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const{OS_ROUTINE_LOCAL:mode,OS_ROUTINE_LOCAL_SOCKET:socket,OS_ROUTINE_LOCAL_TOKEN:token}=environment;if(mode===undefined&&socket===undefined&&token===undefined)return;if(mode!=="1"||!socket||!token||!/^[0-9a-f]{64}$/.test(token))throw new Error("Preparation transport unavailable; nothing can publish");const tcp=/^tcp:\/\/127\.0\.0\.1:([1-9][0-9]{0,4})$/.exec(socket);const endpoint=tcp&&tcp[0]===socket&&Number(tcp[1])<=65535?{hostname:"127.0.0.1",port:Number(tcp[1])}:socket.startsWith("/")&&!socket.startsWith("//")&&!socket.includes("\x00")?{socketPath:socket}:undefined;if(!endpoint)throw new Error("Preparation transport unavailable; nothing can publish");return async(operation,input)=>{const{request}=await import("node:http");return await new Promise((resolve,reject)=>{const call=request({...endpoint,path:`/${operation}`,method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${token}`},timeout:operation==="ai/generate"?125000:120000},(response)=>{const limit=operation==="ai/generate"?ROUTINE_AI_VALUE_BYTES:33554432;const bytes=Buffer.alloc(limit);let size=0;response.on("data",(chunk)=>{size+=chunk.length;if(size>limit){response.destroy();reject(operation==="ai/generate"?new RoutineAIError("output_too_large"):new Error("Local result exceeds supported size"))}else bytes.set(chunk,size-chunk.length)});response.on("error",(error)=>reject(operation==="ai/generate"?new RoutineAIError("capability_unavailable"):error));response.on("end",()=>{try{const result=JSON.parse(bytes.subarray(0,size).toString());if(response.statusCode!==200){if(operation==="ai/generate")throw parseRoutineAIError(result.error);if(operation==="files/request"){const error=result.error;const status=response.statusCode??503;const codes=["invalid_input","unsupported_context","unauthenticated","access_denied","request_too_large","conflict","local_only","integrity","unavailable","capacity","method_not_allowed"];if(error?.code&&codes.includes(error.code))throw new FileOperationError(error.code,status,error.code==="capacity"||error.code==="unavailable");throw new FileOperationError("unavailable",503,true)}if(operation==="data/query"){throw dataTransportError(response.statusCode??0,result)}throw new Error(typeof result.error==="string"?result.error:"Preparation failed")}resolve(result)}catch(error){reject(operation==="ai/generate"&&!(error instanceof RoutineAIError)?new RoutineAIError("invalid_output"):error)}})});call.on("error",()=>reject(operation==="ai/generate"?new RoutineAIError("capability_unavailable"):operation==="data/query"?dataTransportError(503,{error:{code:"unavailable"}}):new Error("Preparation transport unavailable; nothing was published")));call.on("timeout",()=>call.destroy(new Error("Preparation timed out")));call.end(JSON.stringify(input))})}}}var installed;var ended=false;function routineTransport(){if(ended||installed&&!installed.isCurrent())throw new Error("Routine authority ended");return installed}var memberContext;var retainedContext;function installMemberContext(resolve,retained=resolve){memberContext=resolve;retainedContext=retained;return()=>{if(memberContext===resolve){memberContext=undefined;retainedContext=undefined}}}async function resolveAppContext(retained=false){const host=memberContext;if(!host)throw new Error("App context unavailable.");const context=await(retained?retainedContext:host)();if(host!==memberContext||!context.isCurrent()||context.expiresAt<=Date.now()||context.kind!=="local"&&(typeof context.accessToken!=="string"||!/^[^\s]{1,8192}$/.test(context.accessToken))){throw new Error("App context unavailable.")}return context}async function resolveDataContext(){try{if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const installed2=routineTransport();if(installed2)return{local:installed2.request};const local=localRoutineRequest();if(local)return{local};const managed=privateRoutineRequest();if(managed)return{local:managed.request}}const host=memberContext;if(host!==undefined){const context=await host();if(host!==memberContext||!context.isCurrent()||context.expiresAt<=Date.now())throw new Error;if(context.kind==="local")return{local:context.requestData};if(!context||!Number.isFinite(context.expiresAt)||context.expiresAt<=Date.now()||typeof context.accessToken!=="string"||!/^[^\s]{1,8192}$/.test(context.accessToken))throw new Error;return checked(context.workspace,context.endpoint,{authorization:`Bearer ${context.accessToken}`})}if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const environment=typeof process==="undefined"?undefined:process.env;if(!environment||!/^[0-9a-f]{64}$/.test(environment.OS_ROUTINE_RUN??""))throw new Error;return checked(environment.OS_ROUTINE_WORKSPACE,oddingtonOrigin(environment),{"x-os-run":environment.OS_ROUTINE_RUN})}throw new Error}catch{throw new DataOperationError("context_unavailable")}}async function resolveFilesContext(){try{const environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env;if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const installed2=routineTransport();if(installed2)return{url:"private:installed",headers:{},isCurrent:installed2.isCurrent,local:installed2.request,localFiles:installed2.files,signal:undefined};const local=privateRoutineRequest(environment);if(local)return{url:local.identity,headers:{},isCurrent:local.isCurrent,local:local.request,localFiles:local.files,signal:undefined}}const host=memberContext;if(host){const context=await host();if(host!==memberContext||!context.isCurrent()||context.expiresAt<=Date.now())throw new Error;if(context.kind==="local")return{url:`private:app:${context.workspace}/${context.memberId}`,headers:{},isCurrent:context.isCurrent,signal:context.signal,local:undefined,localFiles:context.requestFiles};if(!Number.isFinite(context.expiresAt)||context.expiresAt<=Date.now()||typeof context.accessToken!=="string"||!/^[^\s]{1,8192}$/.test(context.accessToken))throw new Error;return{...filesContext(context.workspace,context.endpoint,{authorization:`Bearer ${context.accessToken}`}),isCurrent:context.isCurrent,local:undefined,localFiles:undefined,signal:undefined}}if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){if(!/^[0-9a-f]{64}$/.test(environment.OS_ROUTINE_RUN??""))throw new Error;const workspace=environment.OS_ROUTINE_WORKSPACE;return{...filesContext(workspace,`https://${workspace}.oddington.ai`,{"x-os-run":environment.OS_ROUTINE_RUN}),local:undefined,localFiles:undefined,signal:undefined}}throw new Error}catch{throw new FileOperationError("unsupported_context",400)}}function filesContext(workspace,endpoint,headers){if(!workspace||!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(workspace)||workspace.length>63||["auth","www","api","os"].includes(workspace)||endpoint!==`https://${workspace}.oddington.ai`)throw new Error;return{url:`${endpoint}/api/files`,headers:{...headers,"x-os-workspace":workspace},isCurrent:()=>true}}function checked(workspace,endpoint,headers){if(!workspace||!/^[a-z0-9][a-z0-9-]{0,127}$/.test(workspace))throw new Error;const origin=new URL(endpoint);if(origin.protocol!=="https:"||origin.username||origin.password||origin.search||origin.hash||origin.pathname!=="/")throw new Error;return{url:`${origin.origin}/api/data`,headers:{...headers,"x-os-workspace":workspace}}}var invalid6=()=>{throw new DataOperationError("invalid_query")};var unavailable=()=>{throw new DataOperationError("unavailable")};var text2=(value)=>typeof value==="string"&&value.length>0;function capture3(value,ancestors=new Set,depth=0){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return value;if(!value||typeof value!=="object"||ancestors.has(value)||depth>32)return invalid6();ancestors.add(value);try{if(Array.isArray(value))return historyArray(value).map((item)=>capture3(item,ancestors,depth+1));return Object.fromEntries(Object.entries(historyProperties(value)).map(([key,descriptor])=>[key,capture3(descriptor.value,ancestors,depth+1)]))}finally{ancestors.delete(value)}}function recordPagination(select){function pages(query){const captured=capture3(query);const names=Object.keys(historyProperties(captured));for(const name of names){const selection2=historyProperties(captured[name]);if(Object.hasOwn(selection2,"$")){const options=historyProperties(selection2.$.value);if(Object.hasOwn(options,"after"))return invalid6()}}return iterate();async function*iterate(){const state=new Map(names.map((name)=>[name,{seen:new Set,total:0,count:undefined,next:undefined}]));let active=names,version;do{const request=Object.fromEntries(active.map((name)=>{const selection2=captured[name];const next=state.get(name).next;return[name,next===undefined?selection2:{...selection2,$:{...selection2.$,after:next}}]}));const response=await select(request);let page;try{page=capture3(response);const keys2=Object.keys(historyProperties(page));if(keys2.length!==active.length+1||keys2.some((key)=>key!=="$meta"&&!active.includes(key)))unavailable();const meta=page.$meta;if(Object.keys(historyProperties(meta)).sort().join(",")!=="collections,version"||!text2(meta.version)||version!==undefined&&version!==meta.version)unavailable();version=meta.version;const collectionKeys=Object.keys(historyProperties(meta.collections));if(collectionKeys.some((key)=>!active.includes(key)))unavailable();for(const name of active){const records=historyArray(page[name]);const metadata=Object.hasOwn(meta.collections,name)?meta.collections[name]:{};if(Object.keys(historyProperties(metadata)).some((key)=>key!=="count"&&key!=="next")||Object.hasOwn(metadata,"next")&&!text2(metadata.next))unavailable();for(const record2 of records){historyProperties(record2);const row=record2;if(!validRecordRef(row.$ref)||!text2(row.$version))unavailable()}const current=state.get(name);if(captured[name].$?.count===true){if(!Number.isSafeInteger(metadata.count)||metadata.count<0||current.count!==undefined&¤t.count!==metadata.count)unavailable();current.count=metadata.count}else if(Object.hasOwn(metadata,"count"))unavailable();current.total+=records.length;if(!Number.isSafeInteger(current.total)||current.count!==undefined&&(current.total>current.count||metadata.next===undefined&¤t.total!==current.count))unavailable();if(metadata.next!==undefined){if(current.seen.has(metadata.next))unavailable();current.seen.add(metadata.next)}current.next=metadata.next}}catch{return unavailable()}const collections=Object.fromEntries(names.map((name)=>{const current=state.get(name);return[name,{...current.count===undefined?{}:{count:current.count},...current.next===undefined?{}:{next:current.next}}]}));const output=Object.fromEntries(names.map((name)=>[name,active.includes(name)?page[name]:[]]));active=active.filter((name)=>state.get(name).next!==undefined);yield{...output,$meta:{version,collections}}}while(active.length)}}async function all(query,options){const properties=historyProperties(options);const maxRecords=properties.maxRecords?.value;if(Object.keys(properties).join(",")!=="maxRecords"||!Number.isSafeInteger(maxRecords)||maxRecords<1)invalid6();let result,total=0;for await(const page of pages(query)){const names=Object.keys(page.$meta.collections);const size=names.reduce((sum,name)=>sum+page[name].length,0);if(size>maxRecords-total)throw new DataOperationError("capacity");total+=size;result??={...Object.fromEntries(names.map((name)=>[name,[]])),$meta:page.$meta};for(const name of names){const target=result[name];for(const record2 of page[name])target.push(record2)}result.$meta=page.$meta}return result}return{pages,all}}var genericData={repository(repository){async function send(input){const context=await resolveDataContext();const envelope={repository,...input};checkDataRequestSize(envelope);if("local"in context)return await context.local("data/query",envelope);try{const response=await fetch(context.url,{method:"POST",redirect:"error",cache:"no-store",headers:{"content-type":"application/json",...context.headers},body:JSON.stringify(envelope)});const result=await response.json();if(!response.ok){throw dataTransportError(response.status,result)}return result}catch(error){if(error instanceof DataOperationError)throw error;throw new DataOperationError("unavailable",true)}}async function read(input){const refs=captureRecordsReadRefs(typeof input==="string"?[input]:input);const result=await send({operation:"records.read",refs});return typeof input==="string"?result.records[0]:result}const select=(query)=>send({operation:"records.select",query});return{collections:{list:()=>send({operation:"collections.list"}),schema:(name)=>send({operation:"collections.schema",name})},records:{read,select,...recordPagination(select),search:async(query,options)=>send({operation:"records.search",...captureRecordsSearchInput(query,options)})},history:{list:async(options)=>send({operation:"history.list",options:captureHistoryListOptions(options)}),at:async(instant)=>send({operation:"history.at",instant:captureHistoryInstant(instant)}),changes:async(options)=>send({operation:"history.changes",options:captureHistoryChangesOptions(options)})},changes(){let updates=[],creates=[],deletes=[],publicationId;let pending,confirmed;const assertMutable=()=>{if(publicationId)throw new DataOperationError("invalid_change",false,"unapplied")};const snapshot=(nextUpdates=updates,nextCreates=creates,nextDeletes=deletes)=>{const{updates:updates2,creates:creates2,deletes:deletes2}=captureDataChanges(nextUpdates,nextCreates,nextDeletes);const input={updates:updates2,...creates2.length?{creates:creates2}:{},...deletes2.length?{deletes:deletes2}:{}};checkDataRequestSize({repository,operation:"changes.publish",...input,publicationId:publicationId??"00000000-0000-4000-8000-000000000000"});return input};return{create(record2){assertMutable();const next=[...creates,captureDataCreate(record2)];snapshot(updates,next,deletes);creates=next},update(record2,set){assertMutable();const next=[...updates,captureDataUpdate(record2,set)];snapshot(next,creates,deletes);updates=next},delete(record2){assertMutable();const next=[...deletes,captureDataDelete(record2)];snapshot(updates,creates,next);deletes=next},async validate(){await send({operation:"changes.validate",...snapshot()})},publish(){if(confirmed)return Promise.resolve(structuredClone(confirmed));if(!pending){let captured;try{captured=snapshot()}catch(error){return Promise.reject(error)}publicationId??=routineTransport()?.key("data")??crypto.randomUUID();pending=send({operation:"changes.publish",...captured,publicationId}).then((result)=>{confirmed=structuredClone(result);return result}).catch((error)=>{if(error instanceof DataOperationError)throw new DataOperationError(error.code,error.retryable,error.effect??(["unavailable","publication_pending"].includes(error.code)?"uncertain":"unapplied"),error.component);throw new DataOperationError("unavailable",true,"uncertain")}).finally(()=>{pending=undefined})}return pending.then((result)=>structuredClone(result))}}}}}};var data=genericData;init_files_contract();init_files_contract();async function hostedContent(url,init,parent,upstream=fetch,check=async()=>{},failure){const delivery=new AbortController;const abort=()=>delivery.abort(parent.reason);parent.addEventListener("abort",abort,{once:true});if(parent.aborted)abort();const detach=()=>parent.removeEventListener("abort",abort);try{const response=await upstream(url,{...init,signal:delivery.signal});try{await check();if(delivery.signal.aborted)throw failure?.()??new FileOperationError("unavailable",503,true)}catch(error){response.body?.cancel().catch(()=>{});throw error}if(!response.body){detach();return response}const source=response.body;let reader;let settled=false;let output;const cancel=async(reason)=>{if(settled)return;settled=true;detach();delivery.signal.removeEventListener("abort",stop);delivery.abort(reason);try{await(reader?reader.cancel(reason):source.cancel(reason))}catch(error){if(error!==delivery.signal.reason&&!(error instanceof Error&&error.name==="AbortError"))throw error}finally{reader?.releaseLock()}};const stop=()=>{if(settled)return;const error=failure?.()??delivery.signal.reason;cancel(error).catch(()=>{});output.error(error)};const body=new ReadableStream({start(controller){output=controller;delivery.signal.addEventListener("abort",stop,{once:true});if(delivery.signal.aborted)stop()},async pull(controller){try{await check();if(settled)return;reader??=source.getReader();const{done,value}=await reader.read();await check();if(settled)return;if(done){settled=true;detach();delivery.signal.removeEventListener("abort",stop);reader.releaseLock();controller.close()}else controller.enqueue(value)}catch(error){if(settled)return;controller.error(failure?.()??error);await cancel(error).catch(()=>{})}},cancel},{highWaterMark:0});const wrapped=new Response(body,{status:response.status,statusText:response.statusText,headers:response.headers});for(const key of["url","redirected","type"])Object.defineProperty(wrapped,key,{value:response[key]});return wrapped}catch(error){detach();delivery.abort(error);throw error}}init_files_contract();var MAX_BYTES=16*1024*1024;var PART_BYTES=8*1024*1024;var METADATA_BYTES=4096;var RESULT_BYTES=16*1024;var CONTROL_RESULT_BYTES=128*1024;var TIMEOUT_MS=30000;var MAX_ACTIVE=4;var ATTEMPTS=2;var active=0;var invalid7=()=>new FileOperationError("invalid_input",400);var unavailable2=()=>new FileOperationError("unavailable",503,true);var failures={400:["invalid_input","unsupported_context"],401:["unauthenticated"],403:["access_denied"],405:["method_not_allowed"],409:["conflict","local_only"],413:["request_too_large"],429:["capacity"],503:["integrity","unavailable"]};async function boundedBytes(stream,limit,signal){if(!stream)return new Uint8Array;const reader=stream.getReader();const bytes=new Uint8Array(limit);let size=0;const cancel=()=>{reader.cancel().catch(()=>{})};signal?.addEventListener("abort",cancel,{once:true});if(signal?.aborted)cancel();try{for(;;){const{done,value}=await reader.read();if(signal?.aborted)throw unavailable2();if(done)break;if(!(value instanceof Uint8Array))throw invalid7();size+=value.byteLength;if(size>limit)throw new FileOperationError("request_too_large",413);bytes.set(value,size-value.byteLength)}}catch(error){cancel();throw error}finally{signal?.removeEventListener("abort",cancel);reader.releaseLock()}return bytes.slice(0,size)}async function timed(work,parent,timeout=TIMEOUT_MS){const controller=new AbortController;let timer;let abort;const expiry=new Promise((_,reject)=>{abort=()=>{controller.abort();reject(unavailable2())};timer=setTimeout(abort,timeout);parent?.addEventListener("abort",abort,{once:true});if(parent?.aborted)abort()});try{return await Promise.race([work(controller.signal),expiry])}finally{clearTimeout(timer);parent?.removeEventListener("abort",abort)}}async function result(response,maximum=RESULT_BYTES){try{const bytes=await boundedBytes(response.body,maximum);return JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(bytes))}catch{throw unavailable2()}}async function send(suffix,init,descriptor,initial,parent){const original=initial;const checkCurrent=(context=original)=>{if(parent?.aborted)throw unavailable2();if(!original.isCurrent()||context.url!==original.url)throw new FileOperationError("unsupported_context",400)};for(let attempt=0;attempt<ATTEMPTS;attempt++){checkCurrent();const context=await resolveFilesContext();checkCurrent(context);try{const response=context.localFiles?await context.localFiles(suffix,init,parent):await(async()=>{const url=`${context.url}${suffix}`;const request={...init,signal:parent,headers:{...context.headers,...init.headers},redirect:"error",cache:"no-store"};return descriptor?fetch(url,request):hostedContent(url,request,parent)})();if(!response.ok){const value2=await result(response);const error=value2&&typeof value2==="object"&&"error"in value2?value2.error:undefined;const received=error&&typeof error==="object"&&"code"in error?error.code:undefined;const code=failures[response.status]?.find((code2)=>code2===received);throw code?new FileOperationError(code,response.status,code==="capacity"||code==="unavailable"):unavailable2()}if(response.status!==(descriptor===204?204:200)||descriptor===204&&response.body!==null){response.body?.cancel().catch(()=>{});throw unavailable2()}try{checkCurrent()}catch(error){response.body?.cancel().catch(()=>{});throw error}if(descriptor===204)return;if(!descriptor)return response;const value=await result(response,descriptor==="control"?CONTROL_RESULT_BYTES:RESULT_BYTES);if(descriptor==="control"){checkCurrent();return value}let parsed;if(descriptor==="enrichment"){if(!value||typeof value!=="object"||Array.isArray(value))throw unavailable2();const{name,...metadata}=value;if(!safeEnrichmentName(name))throw unavailable2();parsed={name,...parseEnrichmentDescriptor(metadata)}}else parsed=parseFileDescriptor(value);checkCurrent();return parsed}catch(error){const failure=error instanceof FileOperationError?error:unavailable2();if(init.body instanceof ReadableStream||!failure.retryable||attempt+1===ATTEMPTS)throw failure}}throw unavailable2()}function idPath(id2){if(typeof id2!=="string"||!FILE_ID_PATTERN.test(id2))throw invalid7();return`/${id2}`}async function multipartCreate(input,metadata,exchange,release=()=>{active--},upload){const route=upload?`${idPath(upload.file.id)}/upload/multipart`:"/multipart";let ticket;let reader;let chunk,offset=0;const receipts=[];const pending=new Set;const request=(work,timeout=TIMEOUT_MS)=>timed((signal)=>{const task=work(signal);pending.add(task);task.then(()=>pending.delete(task),()=>pending.delete(task));return task},undefined,timeout);const control=(body)=>({method:"POST",headers:{"content-type":"application/json",...ticket?{"x-os-transfer":ticket}:{}},body:JSON.stringify(body)});try{const start=await request((signal)=>exchange(`${route}/start`,control(upload?.file??metadata),"control",signal));if(!start||typeof start!=="object"||Array.isArray(start))throw unavailable2();const session=start;if(Object.keys(session).sort().join(",")!=="partBytes,ticket"||session.partBytes!==PART_BYTES||typeof session.ticket!=="string"||!session.ticket||session.ticket.length>64*1024)throw unavailable2();ticket=session.ticket;if(input.file instanceof ReadableStream)reader=input.file.getReader();let lastProgress=Date.now();const next=async()=>{try{if(Date.now()-lastProgress>=TIMEOUT_MS)throw unavailable2();const value=await request(()=>reader.read(),Math.max(1,TIMEOUT_MS-(Date.now()-lastProgress)));if(value.value?.byteLength)lastProgress=Date.now();return value}catch(error){await reader.cancel(error).catch(()=>{});throw error}};for(let sent=0,partNumber=1;sent<metadata.size||metadata.size===0&&partNumber===1;partNumber++){const length=Math.min(PART_BYTES,metadata.size-sent);let part;if(input.file instanceof Uint8Array)part=input.file.subarray(sent,sent+length).slice();else if(input.file instanceof Blob){const slice=input.file.slice(sent,sent+length);part=new Uint8Array(await request(()=>slice.arrayBuffer()))}else{part=new Uint8Array(length);let filled=0;while(filled<length){if(!chunk||offset===chunk.byteLength){chunk=undefined;offset=0;const value2=await next();if(value2.done)throw invalid7();if(!(value2.value instanceof Uint8Array))throw invalid7();chunk=value2.value;if(chunk.byteLength>metadata.size-sent-filled)throw invalid7()}const take=Math.min(length-filled,chunk.byteLength-offset);part.set(chunk.subarray(offset,offset+take),filled);filled+=take;offset+=take;if(offset===chunk.byteLength){chunk=undefined;offset=0}}}if(part.byteLength!==length)throw invalid7();if(reader&&sent+length===metadata.size){lastProgress=Date.now();for(;;){const value2=await next();if(value2.done)break;if(!(value2.value instanceof Uint8Array)||value2.value.byteLength)throw invalid7()}}const value=await request((signal)=>exchange(`${route}/part`,{method:"POST",headers:{"content-type":"application/octet-stream","x-os-transfer":ticket,"x-os-part":String(partNumber)},body:part.buffer},"control",signal));part=undefined;const receipt=value;if(!receipt||typeof receipt!=="object"||Object.keys(receipt).sort().join(",")!=="etag,partNumber"||receipt.partNumber!==partNumber||typeof receipt.etag!=="string"||!receipt.etag||receipt.etag.length>256||/[\u0000-\u001f\u007f]/.test(receipt.etag))throw unavailable2();receipts.push({partNumber,etag:receipt.etag});sent+=length;lastProgress=Date.now()}if(upload)for(const name of Object.keys(upload.file.enrichments)){const bytes=await request(()=>upload.enrichment(name));if(bytes.byteLength!==upload.file.enrichments[name].size||bytes.byteLength>MAX_BYTES)throw invalid7();await request((signal)=>exchange(`${route}/enrichments/${encodeURIComponent(name)}`,{method:"POST",headers:{"content-type":"application/octet-stream","x-os-transfer":ticket},body:bytes.buffer.slice(bytes.byteOffset,bytes.byteOffset+bytes.byteLength)},"control",signal))}await upload?.beforeComplete();const completion=control({parts:receipts});if(new TextEncoder().encode(completion.body).byteLength>128*1024)throw unavailable2();return parseFileDescriptor(await request((signal)=>exchange(`${route}/complete`,completion,true,signal),TIMEOUT_MS+Math.ceil(metadata.size/(1024*1024))*1000))}catch(error){if(reader)await reader.cancel(error).catch(()=>{});if(ticket)await request((signal)=>exchange(`${route}/abort`,control({}),"control",signal)).catch(()=>{});throw error instanceof FileOperationError?error:unavailable2()}finally{chunk=undefined;reader?.releaseLock();if(pending.size)Promise.allSettled([...pending]).then(release);else release()}}async function operation(work,initial,parent){const context=initial??await resolveFilesContext();if(active>=MAX_ACTIVE)throw new FileOperationError("capacity",429,true);active++;const execute=async(signal2)=>{try{return await work(context,signal2)}finally{active--}};const signal=context.signal&&parent?AbortSignal.any([context.signal,parent]):context.signal??parent;if(context.localFiles)return execute(signal??new AbortController().signal);return timed(execute,signal).catch((error)=>{throw error instanceof FileOperationError?error:unavailable2()})}function contentPath(id2,name){const path=idPath(id2);if(name===undefined)return`${path}/content`;if(!safeEnrichmentName(name))throw invalid7();return`${path}/enrichments/${encodeURIComponent(name)}/content`}async function read(id2,names){const context=await resolveFilesContext();idPath(id2);if(names===undefined||typeof names==="string"){const path=contentPath(id2,names);return operation((context2,signal)=>send(path,{method:"GET"},false,context2,signal),context)}if(!Array.isArray(names))throw invalid7();const distinct=[];const seen=new Set;for(const name of names){if(typeof name!=="string"||!safeEnrichmentName(name))throw invalid7();if(seen.has(name))continue;if(seen.size===16)throw invalid7();seen.add(name);distinct.push(name)}const paths=distinct.map((name)=>contentPath(id2,name));return timed(async(parent)=>{const responses={};try{for(let i=0;i<paths.length;i++){const response=await operation((context2,signal)=>send(paths[i],{method:"GET"},false,context2,signal),context,parent);Object.defineProperty(responses,distinct[i],{value:response,enumerable:true})}if(!context.isCurrent())throw new FileOperationError("unsupported_context",400);return responses}catch(error){for(const response of Object.values(responses))response.body?.cancel().catch(()=>{});throw error}})}var files={delete(id2){return operation((context,signal)=>send(idPath(id2),{method:"DELETE"},204,context,signal))},async upload(id2){return operation(async(context,signal)=>{const file2=await send(`${idPath(id2)}/upload`,{method:"POST"},true,context,signal);if(file2.id!==id2)throw unavailable2();return file2})},async create(input,options){const context=await resolveFilesContext();if(!input||typeof input!=="object"||Array.isArray(input)||Object.keys(input).some((key)=>!["file","size","path","name","storage","csv"].includes(key))||options!==undefined&&(!options||typeof options!=="object"||Array.isArray(options)||Object.keys(options).some((key)=>key!=="requestKey")))throw invalid7();const blob=input.file instanceof Blob;const array2=input.file instanceof Uint8Array;const stream=input.file instanceof ReadableStream;if(!blob&&!array2&&!stream)throw invalid7();const intrinsic=blob?input.file.size:array2?input.file.byteLength:undefined;if(intrinsic!==undefined&&input.size!==undefined&&input.size!==intrinsic)throw invalid7();let name=input.name;if(name===undefined&&blob&&"name"in input.file&&typeof input.file.name==="string"){name=typeof globalThis.File!=="undefined"&&input.file instanceof globalThis.File?input.file.name:input.file.name.split(/[\\/]/).at(-1)}const inputMediaType=blob?declaredOriginalMediaType(input.file.type):undefined;const metadata=parseFileCreateMetadata({name,size:intrinsic??input.size,path:input.path,storage:input.storage,csv:input.csv,...inputMediaType===undefined?{}:{inputMediaType},requestKey:options?.requestKey===undefined?routineTransport()?.key("files")??crypto.randomUUID():options.requestKey},FILE_ORIGINAL_MAX_BYTES);if(!context.local&&!context.localFiles&&metadata.storage==="local")throw new FileOperationError("unsupported_context",400);const header=encodeURIComponent(JSON.stringify(metadata));if(new TextEncoder().encode(header).byteLength>METADATA_BYTES)throw invalid7();if(active>=MAX_ACTIVE)throw new FileOperationError("capacity",429,true);active++;if(context.localFiles&&!routineTransport()&&metadata.size>MAX_BYTES){const signal=context.signal??new AbortController().signal;const file2=input.file;let offset=0;const body=file2 instanceof Blob?context.signal?file2:file2.stream():file2 instanceof ReadableStream?file2:new ReadableStream({pull(controller){if(offset===file2.byteLength){controller.close();return}const end=Math.min(offset+256*1024,file2.byteLength);controller.enqueue(file2.subarray(offset,end));offset=end}},{highWaterMark:0});try{return await send("",{method:"POST",headers:{"content-type":"application/octet-stream","x-os-file":header},body},true,context,signal)}finally{active--}}if(metadata.size>MAX_BYTES)return multipartCreate(input,metadata,(suffix,init,kind,signal)=>kind===true?send(suffix,init,true,context,signal):send(suffix,init,"control",context,signal));return timed(async(signal)=>{try{const bytes=array2?input.file.slice():await boundedBytes(blob?input.file.stream():input.file,metadata.size,signal);if(bytes.byteLength!==metadata.size)throw invalid7();if(signal.aborted)throw unavailable2();return await send("",{method:"POST",headers:{"content-type":"application/octet-stream","x-os-file":header},body:bytes.buffer},true,context,signal)}finally{active--}},context.signal).catch((error)=>{throw error instanceof FileOperationError?error:unavailable2()})},async enrich(input){const context=await resolveFilesContext();if(!input||typeof input!=="object"||Array.isArray(input)||Object.keys(input).some((key)=>!["file","name","content","mediaType","replace"].includes(key))||typeof input.content!=="string"&&!(input.content instanceof Uint8Array))throw invalid7();const path=`${idPath(input.file)}/enrichments`;if(typeof input.content==="string"?input.content.length>MAX_BYTES:input.content.byteLength>MAX_BYTES)throw new FileOperationError("request_too_large",413);return operation(async(context2,signal)=>{let bytes;if(typeof input.content==="string"){const buffer=new Uint8Array(Math.min(MAX_BYTES,input.content.length*3));const encoded=new TextEncoder().encodeInto(input.content,buffer);if(encoded.read!==input.content.length)throw new FileOperationError("request_too_large",413);bytes=buffer.slice(0,encoded.written)}else bytes=input.content.slice();const metadata=parseFileEnrichMetadata({name:input.name,size:bytes.byteLength,...input.mediaType===undefined?{}:{mediaType:input.mediaType},...input.replace===undefined?{}:{replace:input.replace}},MAX_BYTES);const header=encodeURIComponent(JSON.stringify(metadata));if(new TextEncoder().encode(header).byteLength>METADATA_BYTES)throw invalid7();const result2=await send(path,{method:"POST",headers:{"content-type":"application/octet-stream","x-os-enrichment":header},body:bytes.buffer},"enrichment",context2,signal);if(result2.name!==metadata.name)throw unavailable2();return result2},context)},async get(id2){return operation((context,signal)=>send(idPath(id2),{method:"GET"},true,context,signal))},read};function validDropboxRootPath(value){return typeof value==="string"&&value.length<=2048&&value.startsWith("/")&&!/[\\\x00-\x1f\x7f]/.test(value)&&value.slice(1).split("/").every((segment)=>segment.length>0&&segment.trim()===segment&&segment!=="."&&segment!=="..")}function validGoogleScopes(value){return Array.isArray(value)&&value.length>0&&value.length<=32&&value.every((scope)=>typeof scope==="string"&&scope.length<=256&&/^(https:\/\/www\.googleapis\.com\/auth\/[A-Za-z0-9._-]+|https:\/\/mail\.google\.com\/|openid|email|profile)$/.test(scope))&&new Set(value).size===value.length}var DROPBOX_FILE_SCOPES=["account_info.read","files.metadata.read","files.content.read","files.content.write"];function validDropboxFileScopes(value){return Array.isArray(value)&&value.length===DROPBOX_FILE_SCOPES.length&&new Set(value).size===value.length&&DROPBOX_FILE_SCOPES.every((scope)=>value.includes(scope))}var ROUTINE_CONNECTION_CREDENTIALS_ENV="OS_ROUTINE_CONNECTION_CREDENTIALS";function parseRoutineConnectionNames(value){if(!Array.isArray(value)||value.some((name)=>typeof name!=="string"||!/^(gmail|airtable|dropbox)\/[a-z0-9][a-z0-9-]{0,62}$/.test(name))||new Set(value).size!==value.length)throw new Error("Invalid routine connections");return value}var connectionUuid=(v)=>typeof v==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(v);function runtimeConnection(lease){switch(lease.provider){case"gmail":return{id:`gmail/${lease.name}`,provider:lease.provider,name:lease.name,accountEmail:lease.accountEmail,scopes:[...lease.scopes],accessToken:lease.accessToken,expiresAt:lease.expiresAt};case"airtable":return{id:`airtable/${lease.name}`,provider:lease.provider,name:lease.name,baseId:lease.baseId,accessToken:lease.accessToken,runExpiresAt:lease.runExpiresAt};case"dropbox":return{id:`dropbox/${lease.name}`,provider:lease.provider,name:lease.name,accountId:lease.accountId,access:lease.access,rootPath:lease.rootPath,scopes:[...lease.scopes],accessToken:lease.accessToken,expiresAt:lease.expiresAt}}}function parseConnectionLease(raw,now=Date.now()){const v=raw;if(!v||typeof v!=="object"||Array.isArray(v)||!connectionUuid(v.connectionId)||!connectionUuid(v.runId)||typeof v.name!=="string"||!/^[a-z0-9][a-z0-9-]{0,62}$/.test(v.name)||typeof v.accessToken!=="string"||!/^[A-Za-z0-9._~+/-]{1,8192}={0,2}$/.test(v.accessToken))throw new Error("Invalid connection credential");if(v.provider==="gmail"){if(Object.keys(v).sort().join(",")!=="accessToken,accountEmail,connectionId,expiresAt,name,provider,runId,scopes"||typeof v.accountEmail!=="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v.accountEmail)||!validGoogleScopes(v.scopes)||typeof v.expiresAt!=="string"||!Number.isFinite(Date.parse(v.expiresAt))||Date.parse(v.expiresAt)<=now+60000||Date.parse(v.expiresAt)>now+3600000)throw new Error("Invalid connection credential");return v}if(v.provider==="airtable"&&Object.keys(v).sort().join(",")==="accessToken,baseId,connectionId,name,provider,runExpiresAt,runId"&&typeof v.baseId==="string"&&/^app[A-Za-z0-9]+$/.test(v.baseId)&&typeof v.runExpiresAt==="string"&&Number.isFinite(Date.parse(v.runExpiresAt))&&Date.parse(v.runExpiresAt)>now+60000&&Date.parse(v.runExpiresAt)<=now+15*60000)return v;if(v.provider==="dropbox"&&Object.keys(v).sort().join(",")==="access,accessToken,accountId,connectionId,expiresAt,name,provider,rootPath,runId,scopes"&&typeof v.accountId==="string"&&/^dbid:[A-Za-z0-9_-]{1,128}$/.test(v.accountId)&&v.access==="full_dropbox"&&validDropboxRootPath(v.rootPath)&&validDropboxFileScopes(v.scopes)&&typeof v.expiresAt==="string"&&Number.isFinite(Date.parse(v.expiresAt))&&Date.parse(v.expiresAt)>now+60000&&Date.parse(v.expiresAt)<=now+14400000)return v;throw new Error("Invalid connection credential")}init_inbox_contract();class AirtableOperationError extends Error{effect;receipts;constructor(message,effect="unapplied",receipts=[]){super(message);this.effect=effect;this.receipts=receipts;this.name="AirtableOperationError"}}var recordId=(v)=>typeof v==="string"&&/^rec[A-Za-z0-9]+$/.test(v);var tableId=(v)=>typeof v==="string"&&/^tbl[A-Za-z0-9]+$/.test(v);function fail2(message){throw new AirtableOperationError(message)}function object3(v){if(!v||typeof v!=="object"||Array.isArray(v)||![null,Object.prototype].includes(Object.getPrototypeOf(v)))fail2("Invalid Airtable data");return v}function keys2(v,allowed,required=allowed){if(Object.keys(v).some((k)=>!allowed.includes(k))||required.some((k)=>!Object.hasOwn(v,k)))fail2("Invalid Airtable input")}function text3(v){return typeof v==="string"&&v.length>0&&v.length<=1024}function fields3(v,nonempty=false){const result2=object3(v);if(nonempty&&!Object.keys(result2).length||Object.keys(result2).some((k)=>!text3(k)))fail2("Invalid Airtable fields");try{return serializable(result2)}catch{return fail2("Invalid Airtable fields")}}function record2(v){const r=object3(v);if(!recordId(r.id)||r.createdTime!==undefined&&(typeof r.createdTime!=="string"||!Number.isFinite(Date.parse(r.createdTime))))fail2("Malformed Airtable record");return{id:r.id,...r.createdTime===undefined?{}:{createdTime:r.createdTime},fields:fields3(r.fields)}}function equal(a,b){if(a===b)return true;if(!a||!b||typeof a!=="object"||typeof b!=="object"||Array.isArray(a)!==Array.isArray(b))return false;const left=Object.keys(a),right=Object.keys(b);return left.length===right.length&&left.every((k)=>Object.hasOwn(b,k)&&equal(a[k],b[k]))}function createConnections(transport){return{async get(){throw new Error("Connection unavailable")},airtable(name){if(typeof name!=="string"||!/^[a-z0-9][a-z0-9-]{0,62}$/.test(name))fail2("Invalid Airtable connection name");const call=(operation2,input)=>transport(name,operation2,input);return{tables:{list:async()=>await call("tables.list",{})},records:{list:async(input)=>await call("records.list",input),get:async(input)=>await call("records.get",input),create:async(input)=>await call("records.create",input),update:async(input)=>await call("records.update",input),delete:async(input)=>await call("records.delete",input)}}}}}async function executeAirtableOperation(authority,operation2,raw,options={}){const{name,baseId,accessToken}=authority;if(!/^[a-z0-9][a-z0-9-]{0,62}$/.test(name)||!/^app[A-Za-z0-9]+$/.test(baseId)||!/^[A-Za-z0-9._~+/-]{1,8192}={0,2}$/.test(accessToken))fail2("Airtable connection unavailable");let input;try{input=object3(serializable(raw))}catch{return fail2("Invalid Airtable input")}const mutation=["records.create","records.update","records.delete"].includes(operation2);const receipt=(ids2)=>({provider:"airtable",connection:`airtable/${name}`,baseId,table:input.table,operation:operation2.slice(8),records:ids2.map((id2)=>({id:id2}))});async function request(path2,init={},write=false){let response;try{response=await(options.fetch??fetch)(`https://api.airtable.com/v0/${path2}`,{...init,headers:{authorization:`Bearer ${accessToken}`,"content-type":"application/json"},redirect:"manual",signal:options.signal?AbortSignal.any([options.signal,AbortSignal.timeout(15000)]):AbortSignal.timeout(15000)})}catch{throw new AirtableOperationError("Airtable request acknowledgment unavailable",write?"uncertain":"unapplied")}if(!response.ok){await response.body?.cancel().catch(()=>{});throw new AirtableOperationError("Airtable request rejected",write&&(response.status>=500||response.status===408||response.status<400)?"uncertain":"unapplied")}try{if(!response.headers.get("content-type")?.toLowerCase().includes("application/json"))throw new Error;const value=object3(await response.json());const safe=serializable(value);if(Object.hasOwn(value,"error")||JSON.stringify(safe).includes(accessToken))throw new Error;return value}catch{throw new AirtableOperationError("Malformed Airtable acknowledgment",write?"uncertain":"unapplied")}}if(operation2==="tables.list"){keys2(input,[]);const tables=[],seen=new Set;let offset;do{const query2=new URLSearchParams(offset?{offset}:{});const page=await request(`meta/bases/${baseId}/tables?${query2}`);if(!Array.isArray(page.tables))fail2("Malformed Airtable tables");for(const value of page.tables){const t=object3(value);if(!tableId(t.id)||!text3(t.name)||!text3(t.primaryFieldId)||!Array.isArray(t.fields)||tables.some((existing)=>existing.id===t.id))fail2("Malformed Airtable table");const metadata=t.fields.map((value2)=>{const f=object3(value2);if(typeof f.id!=="string"||!/^fld[A-Za-z0-9]+$/.test(f.id)||!text3(f.name)||!text3(f.type))fail2("Malformed Airtable field");return{id:f.id,name:f.name,type:f.type,...f.options===undefined?{}:{options:serializable(f.options)}}});if(!metadata.some((f)=>f.id===t.primaryFieldId)||new Set(metadata.map((f)=>f.id)).size!==metadata.length)fail2("Malformed Airtable fields");tables.push({id:t.id,name:t.name,primaryFieldId:t.primaryFieldId,fields:metadata})}offset=nextOffset(page.offset,seen)}while(offset);return tables}if(!text3(input.table)||input.table==="."||input.table==="..")fail2("Invalid Airtable table");if(mutation&&!tableId(input.table))fail2("Airtable writes require a stable table ID");const path=`${baseId}/${encodeURIComponent(input.table)}`;if(operation2==="records.get"){keys2(input,["table","id"]);if(!recordId(input.id))fail2("Invalid Airtable record ID");const result3=record2(await request(`${path}/${input.id}`));if(result3.id!==input.id)fail2("Malformed Airtable record");return result3}if(operation2==="records.list"){keys2(input,["table","fields"],["table"]);if(input.fields!==undefined&&(!Array.isArray(input.fields)||!input.fields.length||input.fields.some((f)=>!text3(f))||new Set(input.fields).size!==input.fields.length))fail2("Invalid Airtable field selection");const records2=[],ids2=new Set,seen=new Set;let offset;do{const query2=new URLSearchParams;for(const field of input.fields??[])query2.append("fields[]",field);if(offset)query2.set("offset",offset);const page=await request(`${path}?${query2}`);if(!Array.isArray(page.records))fail2("Malformed Airtable records");for(const value of page.records){const r=record2(value);if(ids2.has(r.id))fail2("Malformed Airtable pagination");ids2.add(r.id);records2.push(r)}offset=nextOffset(page.offset,seen)}while(offset);return records2}if(!mutation)fail2("Unsupported Airtable operation");keys2(input,["table","records"]);if(!Array.isArray(input.records)||!input.records.length||input.records.length>10)fail2("Invalid Airtable batch");const kind=operation2.slice(8),ids=new Set;const records=input.records.map((value)=>{const r=object3(value);keys2(r,kind==="create"?["fields"]:kind==="update"?["id","expected","set"]:["id","expected"]);if(kind==="create")return{fields:fields3(r.fields,true)};if(!recordId(r.id)||ids.has(r.id))fail2("Invalid Airtable batch record ID");ids.add(r.id);const set=kind==="update"?fields3(r.set,true):undefined;if(set&&Object.values(set).some((value2)=>value2===null))fail2("Airtable guard null cannot be an update value");return{id:r.id,expected:fields3(r.expected),...set?{set}:{}}});for(const r of records){if(!("id"in r))continue;const current=record2(await request(`${path}/${r.id}`));if(current.id!==r.id)fail2("Malformed Airtable record");for(const[key,value]of Object.entries(r.expected)){if(value===null?Object.hasOwn(current.fields,key):!Object.hasOwn(current.fields,key)||!equal(current.fields[key],value))fail2("Airtable reviewed values are stale")}}await options.beforeMutation?.();const query=new URLSearchParams;if(kind==="delete")for(const id2 of ids)query.append("records[]",id2);const result2=await request(`${path}${kind==="delete"?`?${query}`:""}`,{method:kind==="create"?"POST":kind==="update"?"PATCH":"DELETE",...kind==="delete"?{}:{body:JSON.stringify({records:records.map((r)=>("id"in r)?{id:r.id,fields:r.set}:r)})}},true);const acknowledged=[],returned=[];try{if(!Array.isArray(result2.records))throw new Error;for(const value of result2.records){const r=object3(value);if(!recordId(r.id)||acknowledged.includes(r.id)||kind!=="create"&&!ids.has(r.id)||kind==="delete"&&r.deleted!==true)throw new Error;acknowledged.push(r.id);if(kind!=="delete")returned.push(record2(r))}if(acknowledged.length!==records.length)throw new Error}catch{throw new AirtableOperationError("Incomplete Airtable mutation acknowledgment",acknowledged.length?"partial":"uncertain",acknowledged.length?[receipt(acknowledged)]:[])}return{receipt:receipt(acknowledged),...kind==="delete"?{}:{records:returned}}}function nextOffset(value,seen){if(value===undefined)return;if(!text3(value)||seen.has(value))fail2("Malformed Airtable pagination");seen.add(value);return value}init_inbox_contract();var MANAGED_CONNECTION_CAPABILITY_ENV="OS_MANAGED_CONNECTION_CAPABILITY";function managedConnections(capability){const endpoint=new URL(capability.endpoint);if(endpoint.protocol!=="http:"||endpoint.hostname!=="127.0.0.1"||!endpoint.port||endpoint.pathname!=="/"||endpoint.search||endpoint.hash||endpoint.username||endpoint.password||!/^[0-9a-f-]{36}$/.test(capability.token))throw new AirtableOperationError("Airtable capability unavailable");const transport=async(name,operation2,input)=>{let safeInput;try{safeInput=serializable(input)}catch{safeInput=null}try{const response=await fetch(new URL("airtable",endpoint),{method:"POST",redirect:"error",headers:{authorization:`Bearer ${capability.token}`,"content-type":"application/json"},body:JSON.stringify({name,operation:operation2,input:safeInput}),signal:AbortSignal.timeout(125000)});const value=await response.json();if(!response.ok)throw new AirtableOperationError("Airtable operation failed; the execution retains its evidence",value.effect==="partial"||value.effect==="uncertain"?value.effect:"unapplied",value.receipts??[]);return value}catch(error){if(error instanceof AirtableOperationError)throw error;throw new AirtableOperationError("Airtable parent acknowledgment unavailable",["records.create","records.update","records.delete"].includes(operation2)?"uncertain":"unapplied")}};return createConnections(transport)}var observer;function observeLocalRoutineEffects(value){observer=value}async function reportLocalRoutineEffect(value){await observer?.(value)}init_inbox_contract();var local;function installLocalRoutineConnections(runId,declared,raw,recheck){if(local||!Array.isArray(raw))throw new Error("Connection unavailable");const names=parseRoutineConnectionNames([...declared]);const leases=raw.map((value)=>parseConnectionLease(value));if(leases.length!==names.length||new Set(leases.map((lease)=>`${lease.provider}/${lease.name}`)).size!==leases.length||leases.some((lease)=>lease.runId!==runId||!names.includes(`${lease.provider}/${lease.name}`)))throw new Error("Connection unavailable");const current={runId,declared:names,leases,recheck};local=current;return()=>{if(local===current)local=undefined;current.leases.length=0}}var airtable=createConnections(async(name,operation2,input)=>{if(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__)throw new AirtableOperationError("Airtable connection unavailable");try{const installed2=routineTransport();if(installed2)return await installed2.request("airtable",{name,operation:operation2,input:serializable(input)});const managed=process.env[MANAGED_CONNECTION_CAPABILITY_ENV];if(managed){const client=managedConnections(JSON.parse(managed)).airtable(name);if(operation2==="tables.list")return await client.tables.list();return await client.records[operation2.slice(8)](input)}const raw=local?.leases??JSON.parse(process.env[ROUTINE_CONNECTION_CREDENTIALS_ENV]??"[]");if(!Array.isArray(raw))throw new Error;const leases=raw.map((value)=>parseConnectionLease(value));if(new Set(leases.map((lease2)=>`${lease2.provider}/${lease2.name}`)).size!==leases.length)throw new Error;const lease=leases.find((lease2)=>lease2.provider==="airtable"&&lease2.name===name);if(!lease||lease.provider!=="airtable")throw new Error;const writing=["records.create","records.update","records.delete"].includes(operation2);const captured=serializable(input);let result2;try{result2=await executeAirtableOperation(lease,operation2,captured)}catch(error){if(writing&&error instanceof AirtableOperationError)await reportLocalRoutineEffect({type:"effect",connection:`airtable/${name}`,operation:operation2,input:captured,effect:error.effect,receipts:error.receipts});throw error}if(writing)await reportLocalRoutineEffect({type:"effect",connection:`airtable/${name}`,operation:operation2,input:captured,effect:"confirmed",receipts:[result2.receipt]});return result2}catch(error){if(error instanceof AirtableOperationError)throw error;throw new AirtableOperationError("Airtable connection unavailable")}});function runtimeConnections(){return{...airtable,async get(identity){if(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__)throw new Error("Connection unavailable");try{parseRoutineConnectionNames([identity]);const installed2=routineTransport();if(installed2)return await installed2.request("connections/get",{identity});const managed=process.env[MANAGED_CONNECTION_CAPABILITY_ENV];if(managed){const capability=JSON.parse(managed);const response=await fetch(new URL("connections/get",capability.endpoint),{method:"POST",redirect:"error",headers:{authorization:`Bearer ${capability.token}`,"content-type":"application/json"},body:JSON.stringify({identity})});if(!response.ok)throw new Error;return await response.json()}const current=local;if(!current||!current.declared.includes(identity))throw new Error;await current.recheck(identity);if(local!==current)throw new Error;const lease=current.leases.find((lease2)=>`${lease2.provider}/${lease2.name}`===identity);if(!lease||lease.runId!==current.runId)throw new Error;return runtimeConnection(parseConnectionLease(lease))}catch{throw new Error("Connection unavailable")}}}}var connections=runtimeConnections();init_files_contract();var LOCAL_ROUTINE_VALUE_BYTES=256*1024;if((typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__)&&typeof process!=="undefined"&&process.env.OS_LOCAL_ROUTINE_HOST==="1"){Object.defineProperty(globalThis,Symbol.for("oddington.private.local-routine-host"),{value:async()=>{const{readSync,closeSync}=await import("node:fs");const{Socket}=await import("node:net");const{pathToFileURL}=await import("node:url");const chunks=[];let size=0;for(;;){const chunk=Buffer.alloc(4096),count=readSync(4,chunk,0,chunk.length,null);if(!count)break;if((size+=count)>524288)throw new Error("Invalid routine bootstrap");chunks.push(chunk.subarray(0,count))}closeSync(4);const bootstrap=JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(Buffer.concat(chunks)));const channel=new Socket({fd:3,readable:true,writable:true});let sequence=0,broken=false,settled=false;let pending;let buffer="";const fail3=()=>{broken=true;pending?.reject();pending=undefined;channel.destroy();if(!settled){if(process.platform!=="win32"){try{process.kill(-process.pid,"SIGKILL")}catch{}}process.exit(1)}};channel.on("error",fail3);channel.on("end",fail3);channel.on("close",fail3);channel.on("data",(bytes)=>{buffer+=bytes.toString("utf8");if(Buffer.byteLength(buffer)>1024)return fail3();const end=buffer.indexOf(`
|
|
18
|
+
`);const maybeSignature=await resolvedWallet.signMessage(new TextEncoder().encode(message),"utf8");if(!maybeSignature||!(maybeSignature instanceof Uint8Array)){throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value")}signature=maybeSignature}}try{const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message,signature:bytesToBase64URL(signature)},((_m=credentials.options)===null||_m===undefined?undefined:_m.captchaToken)?{gotrue_meta_security:{captcha_token:(_o=credentials.options)===null||_o===undefined?undefined:_o.captchaToken}}:null),xform:_sessionResponse});if(error){throw error}if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:Object.assign({},data2),error})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async _exchangeCodeForSession(authCode,options){const hasExplicitFlowId=(options===null||options===undefined?undefined:options.flowId)!=null;const requestedFlowId=hasExplicitFlowId?validatePKCEFlowId(options===null||options===undefined?undefined:options.flowId):isBrowser()?validatePKCEFlowId(parseParametersFromURL(window.location.href)[PKCE_FLOW_ID_PARAM]):null;if(hasExplicitFlowId&&!requestedFlowId){this._debug("#_exchangeCodeForSession()","provided flowId is not a valid flow id",options===null||options===undefined?undefined:options.flowId)}const{verifier:storageItem,flowId}=hasExplicitFlowId&&!requestedFlowId?{verifier:null,flowId:null}:await retrievePKCEVerifier(this.storage,this.storageKey,requestedFlowId);const[codeVerifier,redirectType]=(storageItem!==null&&storageItem!==undefined?storageItem:"").split("/");try{if(!codeVerifier&&this.flowType==="pkce"){throw new AuthPKCECodeVerifierMissingError}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:authCode,code_verifier:codeVerifier},xform:_sessionResponse});await removePKCEVerifier(this.storage,this.storageKey,flowId);if(error){throw error}if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null,redirectType:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers(redirectType==="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",data2.session)}return this._returnResult({data:Object.assign(Object.assign({},data2),{redirectType:redirectType!==null&&redirectType!==undefined?redirectType:null}),error})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null,redirectType:null},error})}throw error}}async signInWithIdToken(credentials){try{const{options,provider,token,access_token,nonce}=credentials;const res=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider,id_token:token,access_token,nonce,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}},xform:_sessionResponse});const{data:data2,error}=res;if(error){return this._returnResult({data:{user:null,session:null},error})}else if(!data2||!data2.session||!data2.user){const invalidTokenError=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:invalidTokenError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:data2,error})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signInWithOtp(credentials){var _a,_b,_c,_d,_f;let flowId=null;try{if("email"in credentials){const{email,options}=credentials;let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const{error}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email,data:(_a=options===null||options===undefined?undefined:options.data)!==null&&_a!==undefined?_a:{},create_user:(_b=options===null||options===undefined?undefined:options.shouldCreateUser)!==null&&_b!==undefined?_b:true,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken},code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod},redirectTo:this._maybeAppendFlowIdToRedirect(options===null||options===undefined?undefined:options.emailRedirectTo,flowId)});return this._returnResult({data:{user:null,session:null},error})}if("phone"in credentials){const{phone,options}=credentials;const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone,data:(_c=options===null||options===undefined?undefined:options.data)!==null&&_c!==undefined?_c:{},create_user:(_d=options===null||options===undefined?undefined:options.shouldCreateUser)!==null&&_d!==undefined?_d:true,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken},channel:(_f=options===null||options===undefined?undefined:options.channel)!==null&&_f!==undefined?_f:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:data2===null||data2===undefined?undefined:data2.message_id},error})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number.")}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async verifyOtp(params){var _a,_b;try{let redirectTo=undefined;let captchaToken=undefined;if("options"in params){redirectTo=(_a=params.options)===null||_a===undefined?undefined:_a.redirectTo;captchaToken=(_b=params.options)===null||_b===undefined?undefined:_b.captchaToken}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},params),{gotrue_meta_security:{captcha_token:captchaToken}}),redirectTo,xform:_sessionResponse});if(error){throw error}if(!data2){const tokenVerificationError=new Error("An error occurred on token verification.");throw tokenVerificationError}const session=data2.session;const user=data2.user;if(session===null||session===undefined?undefined:session.access_token){await this._saveSession(session);await this._notifyAllSubscribers(params.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",session)}return this._returnResult({data:{user,session},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async signInWithSSO(params){var _a,_b,_c,_d;let flowId=null;try{let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const result2=await _request(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in params?{provider_id:params.providerId}:null),"domain"in params?{domain:params.domain}:null),{redirect_to:this._maybeAppendFlowIdToRedirect((_a=params.options)===null||_a===undefined?undefined:_a.redirectTo,flowId)}),((_b=params===null||params===undefined?undefined:params.options)===null||_b===undefined?undefined:_b.captchaToken)?{gotrue_meta_security:{captcha_token:params.options.captchaToken}}:null),{skip_http_redirect:true,code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod}),headers:this.headers,xform:_ssoResponse});if(((_c=result2.data)===null||_c===undefined?undefined:_c.url)&&isBrowser()&&!((_d=params.options)===null||_d===undefined?undefined:_d.skipBrowserRedirect)){window.location.assign(result2.data.url)}return this._returnResult(result2)}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async reauthenticate(){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._reauthenticate()})}return await this._reauthenticate()}async _reauthenticate(){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError)throw sessionError;if(!session)throw new AuthSessionMissingError;const{error}=await _request(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:session.access_token});return this._returnResult({data:{user:null,session:null},error})})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async resend(credentials){let flowId=null;try{const endpoint=`${this.url}/resend`;if("email"in credentials){const{email,type,options}=credentials;let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const{error}=await _request(this.fetch,"POST",endpoint,{headers:this.headers,body:{email,type,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken},code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod},redirectTo:this._maybeAppendFlowIdToRedirect(options===null||options===undefined?undefined:options.emailRedirectTo,flowId)});if(error){await removePKCEVerifier(this.storage,this.storageKey,flowId)}return this._returnResult({data:{user:null,session:null},error})}else if("phone"in credentials){const{phone,type,options}=credentials;const{data:data2,error}=await _request(this.fetch,"POST",endpoint,{headers:this.headers,body:{phone,type,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:data2===null||data2===undefined?undefined:data2.message_id},error})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a type")}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async getSession(){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return this._useSession(async(result2)=>{return result2})})}return await this._useSession(async(result2)=>{return result2})}async _acquireLock(acquireTimeout,fn){this._debug("#_acquireLock","begin",acquireTimeout);try{if(this.lockAcquired){const last=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve();const result2=(async()=>{await last;return await fn()})();this.pendingInLock.push((async()=>{try{await result2}catch(_e){}})());return result2}return await this.lock(`lock:${this.storageKey}`,acquireTimeout,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=true;const result2=fn();this.pendingInLock.push((async()=>{try{await result2}catch(e){}})());await result2;while(this.pendingInLock.length){const waitOn=[...this.pendingInLock];await Promise.all(waitOn);this.pendingInLock.splice(0,waitOn.length)}return await result2}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey);this.lockAcquired=false}})}finally{this._debug("#_acquireLock","end")}}async _useSession(fn){this._debug("#_useSession","begin");try{const result2=await this.__loadSession();return await fn(result2)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin");if(this.lock!=null&&!this.lockAcquired){this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack)}try{let currentSession=null;const maybeSession=await getItemAsync(this.storage,this.storageKey);this._debug("#getSession()","session from storage",maybeSession);if(maybeSession!==null){if(this._isValidSession(maybeSession)){currentSession=maybeSession}else{this._debug("#getSession()","session from storage is not valid");await this._removeSession()}}if(!currentSession){return{data:{session:null},error:null}}const hasExpired=currentSession.expires_at?currentSession.expires_at*1000-Date.now()<EXPIRY_MARGIN_MS:false;this._debug("#__loadSession()",`session has${hasExpired?"":" not"} expired`,"expires_at",currentSession.expires_at);if(!hasExpired){if(this.userStorage){const maybeUser=await getItemAsync(this.userStorage,this.storageKey+"-user");if(maybeUser===null||maybeUser===undefined?undefined:maybeUser.user){currentSession.user=maybeUser.user}else{currentSession.user=userNotAvailableProxy()}}if(this.storage.isServer&¤tSession.user&&!currentSession.user.__isUserNotAvailableProxy){const suppressWarningRef={value:this.suppressGetSessionWarning};currentSession.user=insecureUserWarningProxy(currentSession.user,suppressWarningRef);if(suppressWarningRef.value){this.suppressGetSessionWarning=true}}return{data:{session:currentSession},error:null}}const{data:session,error}=await this._callRefreshToken(currentSession.refresh_token);if(error){const accessTokenStillValid=!!(currentSession.expires_at&¤tSession.expires_at*1000>Date.now());if(accessTokenStillValid){const stillStored=await getItemAsync(this.storage,this.storageKey);if(stillStored&&stillStored.refresh_token===currentSession.refresh_token){return this._returnResult({data:{session:currentSession},error:null})}}return this._returnResult({data:{session:null},error})}return this._returnResult({data:{session},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(jwt){if(jwt){return await this._getUser(jwt)}await this.initializePromise;let result2;if(this.lock!=null){result2=await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._getUser()})}else{result2=await this._getUser()}if(result2.data.user){this.suppressGetSessionWarning=true}return result2}async _getUser(jwt){try{if(jwt){return await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt,xform:_userResponse})}return await this._useSession(async(result2)=>{var _a,_b,_c;const{data:data2,error}=result2;if(error){throw error}if(!((_a=data2.session)===null||_a===undefined?undefined:_a.access_token)&&!this.hasCustomAuthorizationHeader){return{data:{user:null},error:new AuthSessionMissingError}}return await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(_c=(_b=data2.session)===null||_b===undefined?undefined:_b.access_token)!==null&&_c!==undefined?_c:undefined,xform:_userResponse})})}catch(error){if(isAuthError(error)){if(isAuthSessionMissingError(error)){await this._removeSession()}return this._returnResult({data:{user:null},error})}throw error}}async updateUser(attributes,options={}){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._updateUser(attributes,options)})}return await this._updateUser(attributes,options)}async _updateUser(attributes,options={}){let flowId=null;try{return await this._useSession(async(result2)=>{const{data:sessionData,error:sessionError}=result2;if(sessionError){throw sessionError}if(!sessionData.session){throw new AuthSessionMissingError}const session=sessionData.session;let codeChallenge=null;let codeChallengeMethod=null;if(this.flowType==="pkce"&&attributes.email!=null){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod()}const{data:data2,error:userError}=await _request(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(options===null||options===undefined?undefined:options.emailRedirectTo,flowId),body:Object.assign(Object.assign({},attributes),{code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod}),jwt:session.access_token,xform:_userResponse});if(userError){throw userError}session.user=data2.user;await this._saveSession(session);await this._notifyAllSubscribers("USER_UPDATED",session);return this._returnResult({data:{user:session.user},error:null})})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:{user:null},error})}throw error}}async setSession(currentSession){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._setSession(currentSession)})}return await this._setSession(currentSession)}async _setSession(currentSession){try{if(!currentSession.access_token||!currentSession.refresh_token){throw new AuthSessionMissingError}const timeNow=Date.now()/1000;let expiresAt2=timeNow;let hasExpired=true;let session=null;const{payload}=decodeJWT(currentSession.access_token);if(payload.exp){expiresAt2=payload.exp;hasExpired=expiresAt2<=timeNow}if(hasExpired){const{data:refreshedSession,error}=await this._callRefreshToken(currentSession.refresh_token);if(error){return this._returnResult({data:{user:null,session:null},error})}if(!refreshedSession){return{data:{user:null,session:null},error:null}}session=refreshedSession}else{const{data:data2,error}=await this._getUser(currentSession.access_token);if(error){return this._returnResult({data:{user:null,session:null},error})}session={access_token:currentSession.access_token,refresh_token:currentSession.refresh_token,user:data2.user,token_type:"bearer",expires_in:expiresAt2-timeNow,expires_at:expiresAt2};await this._saveSession(session);await this._notifyAllSubscribers("SIGNED_IN",session)}return this._returnResult({data:{user:session.user,session},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{session:null,user:null},error})}throw error}}async refreshSession(currentSession){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._refreshSession(currentSession)})}return await this._refreshSession(currentSession)}async _refreshSession(currentSession){try{return await this._useSession(async(result2)=>{var _a;if(!currentSession){const{data:data2,error:error2}=result2;if(error2){throw error2}currentSession=(_a=data2.session)!==null&&_a!==undefined?_a:undefined}if(!(currentSession===null||currentSession===undefined?undefined:currentSession.refresh_token)){throw new AuthSessionMissingError}const{data:session,error}=await this._callRefreshToken(currentSession.refresh_token);if(error){return this._returnResult({data:{user:null,session:null},error})}if(!session){return this._returnResult({data:{user:null,session:null},error:null})}return this._returnResult({data:{user:session.user,session},error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}}async _getSessionFromURL(params,callbackUrlType){var _a;try{if(!isBrowser())throw new AuthImplicitGrantRedirectError("No browser detected.");if(params.error||params.error_description||params.error_code){throw new AuthImplicitGrantRedirectError(params.error_description||"Error in URL with unspecified error_description",{error:params.error||"unspecified_error",code:params.error_code||"unspecified_code"})}switch(callbackUrlType){case"implicit":if(this.flowType==="pkce"){throw new AuthPKCEGrantCodeExchangeError("Not a valid PKCE flow url.")}break;case"pkce":if(this.flowType==="implicit"){throw new AuthImplicitGrantRedirectError("Not a valid implicit grant flow url.")}break;default:}if(callbackUrlType==="pkce"){this._debug("#_initialize()","begin","is PKCE flow",true);if(!params.code)throw new AuthPKCEGrantCodeExchangeError("No code detected.");const{data:data3,error:error2}=await this._exchangeCodeForSession(params.code,{flowId:params[PKCE_FLOW_ID_PARAM]});if(error2)throw error2;const url=new URL(window.location.href);url.searchParams.delete("code");url.searchParams.delete(PKCE_FLOW_ID_PARAM);window.history.replaceState(window.history.state,"",url.toString());return{data:{session:data3.session,redirectType:(_a=data3.redirectType)!==null&&_a!==undefined?_a:null},error:null}}const{provider_token,provider_refresh_token,access_token,refresh_token,expires_in,expires_at,token_type}=params;if(!access_token||!expires_in||!refresh_token||!token_type){throw new AuthImplicitGrantRedirectError("No session defined in URL")}const timeNow=Math.round(Date.now()/1000);const expiresIn=parseInt(expires_in);let expiresAt2=timeNow+expiresIn;if(expires_at){expiresAt2=parseInt(expires_at)}const actuallyExpiresIn=expiresAt2-timeNow;if(actuallyExpiresIn*1000<=AUTO_REFRESH_TICK_DURATION_MS){console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`)}const issuedAt=expiresAt2-expiresIn;if(timeNow-issuedAt>=120){console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",issuedAt,expiresAt2,timeNow)}else if(timeNow-issuedAt<0){console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",issuedAt,expiresAt2,timeNow)}const{data:data2,error}=await this._getUser(access_token);if(error)throw error;const session={provider_token,provider_refresh_token,access_token,expires_in:expiresIn,expires_at:expiresAt2,refresh_token,token_type,user:data2.user};window.location.hash="";this._debug("#_getSessionFromURL()","clearing window.location.hash");return this._returnResult({data:{session,redirectType:params.type},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{session:null,redirectType:null},error})}throw error}}_isImplicitGrantCallback(params){if(typeof this.detectSessionInUrl==="function"){return this.detectSessionInUrl(new URL(window.location.href),params)}return Boolean(params.access_token||params.error||params.error_description||params.error_code)}async _isPKCECallback(params){if(!params.code){return false}const flowId=validatePKCEFlowId(params[PKCE_FLOW_ID_PARAM]);if(flowId&&await getItemAsync(this.storage,pkceVerifierSlotKey(this.storageKey,flowId))){return true}const currentStorageContent=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`);return!!currentStorageContent}async signOut(options={scope:"global"}){await this.initializePromise;if(this.lock!=null){return await this._acquireLock(this.lockAcquireTimeout,async()=>{return await this._signOut(options)})}return await this._signOut(options)}async _signOut({scope}={scope:"global"}){return await this._useSession(async(result2)=>{var _a;const removeCurrentSession=async()=>{await this._removeSession()};const{data:data2,error:sessionError}=result2;if(sessionError&&!isAuthSessionMissingError(sessionError)){return this._returnResult({error:sessionError})}const accessToken=(_a=data2.session)===null||_a===undefined?undefined:_a.access_token;if(accessToken){const{error}=await this.admin.signOut(accessToken,scope);if(error){if(!(isAuthApiError(error)&&(error.status===404||error.status===401||error.status===403)||isAuthSessionMissingError(error))){if(scope!=="others"){await removeCurrentSession()}return this._returnResult({error})}}}if(scope!=="others"){await removeCurrentSession()}return this._returnResult({error:null})})}onAuthStateChange(callback){const id3=generateCallbackId();const subscription={id:id3,callback,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",id3);this.stateChangeEmitters.delete(id3)}};this._debug("#onAuthStateChange()","registered callback with id",id3);this.stateChangeEmitters.set(id3,subscription);(async()=>{await this.initializePromise;if(this.lock!=null){await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(id3)})}else{await this._emitInitialSession(id3)}})();return{data:{subscription}}}async _emitInitialSession(id3){return await this._useSession(async(result2)=>{var _a,_b;try{const{data:{session},error}=result2;if(error)throw error;await((_a=this.stateChangeEmitters.get(id3))===null||_a===undefined?undefined:_a.callback("INITIAL_SESSION",session));this._debug("INITIAL_SESSION","callback id",id3,"session",session)}catch(err){await((_b=this.stateChangeEmitters.get(id3))===null||_b===undefined?undefined:_b.callback("INITIAL_SESSION",null));this._debug("INITIAL_SESSION","callback id",id3,"error",err);if(isAuthRefreshDiscardedError(err)){return}if(isAuthSessionMissingError(err)||isAuthRetryableFetchError(err)||isAuthApiError(err)&&(err.code==="refresh_token_not_found"||err.code==="refresh_token_already_used"||err.code==="session_expired")){console.warn(err)}else{console.error(err)}}})}async resetPasswordForEmail(email,options={}){let codeChallenge=null;let codeChallengeMethod=null;let flowId=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod(true)}try{return await _request(this.fetch,"POST",`${this.url}/recover`,{body:{email,code_challenge:codeChallenge,code_challenge_method:codeChallengeMethod,gotrue_meta_security:{captcha_token:options.captchaToken}},headers:this.headers,redirectTo:this._maybeAppendFlowIdToRedirect(options.redirectTo,flowId)})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,flowId);if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async getUserIdentities(){var _a;try{const{data:data2,error}=await this.getUser();if(error)throw error;return this._returnResult({data:{identities:(_a=data2.user.identities)!==null&&_a!==undefined?_a:[]},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async linkIdentity(credentials){if("token"in credentials){return this.linkIdentityIdToken(credentials)}return this.linkIdentityOAuth(credentials)}async linkIdentityOAuth(credentials){var _a;let flowId=null;try{const{data:data2,error}=await this._useSession(async(result2)=>{var _a2,_b,_c,_d,_f;const{data:data3,error:error2}=result2;if(error2)throw error2;const{url,flowId:urlFlowId}=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,credentials.provider,{redirectTo:(_a2=credentials.options)===null||_a2===undefined?undefined:_a2.redirectTo,scopes:(_b=credentials.options)===null||_b===undefined?undefined:_b.scopes,queryParams:(_c=credentials.options)===null||_c===undefined?undefined:_c.queryParams,skipBrowserRedirect:true});flowId=urlFlowId;return await _request(this.fetch,"GET",url,{headers:this.headers,jwt:(_f=(_d=data3.session)===null||_d===undefined?undefined:_d.access_token)!==null&&_f!==undefined?_f:undefined})});if(error)throw error;if(isBrowser()&&!((_a=credentials.options)===null||_a===undefined?undefined:_a.skipBrowserRedirect)){window.location.assign(data2===null||data2===undefined?undefined:data2.url)}return this._returnResult({data:{provider:credentials.provider,url:data2===null||data2===undefined?undefined:data2.url,flowId},error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:{provider:credentials.provider,url:null,flowId},error})}throw error}}async linkIdentityIdToken(credentials){return await this._useSession(async(result2)=>{var _a;try{const{error:sessionError,data:{session}}=result2;if(sessionError)throw sessionError;const{options,provider,token,access_token,nonce}=credentials;const res=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(_a=session===null||session===undefined?undefined:session.access_token)!==null&&_a!==undefined?_a:undefined,body:{provider,id_token:token,access_token,nonce,link_identity:true,gotrue_meta_security:{captcha_token:options===null||options===undefined?undefined:options.captchaToken}},xform:_sessionResponse});const{data:data2,error}=res;if(error){return this._returnResult({data:{user:null,session:null},error})}else if(!data2||!data2.session||!data2.user){return this._returnResult({data:{user:null,session:null},error:new AuthInvalidTokenResponseError})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("USER_UPDATED",data2.session)}return this._returnResult({data:data2,error})}catch(error){await removePKCEVerifier(this.storage,this.storageKey,null);if(isAuthError(error)){return this._returnResult({data:{user:null,session:null},error})}throw error}})}async unlinkIdentity(identity){try{return await this._useSession(async(result2)=>{var _a,_b;const{data:data2,error}=result2;if(error){throw error}return await _request(this.fetch,"DELETE",`${this.url}/user/identities/${identity.identity_id}`,{headers:this.headers,jwt:(_b=(_a=data2.session)===null||_a===undefined?undefined:_a.access_token)!==null&&_b!==undefined?_b:undefined})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _refreshAccessToken(refreshToken){const debugName=`#_refreshAccessToken()`;this._debug(debugName,"begin");try{const startedAt=Date.now();return await retryable(async(attempt)=>{if(attempt>0){await sleep(200*Math.pow(2,attempt-1))}this._debug(debugName,"refreshing attempt",attempt);return await _request(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:refreshToken},headers:this.headers,xform:_sessionResponse})},(attempt,error)=>{const nextBackOffInterval=200*Math.pow(2,attempt);return error&&isAuthRetryableFetchError(error)&&Date.now()+nextBackOffInterval-startedAt<AUTO_REFRESH_TICK_DURATION_MS})}catch(error){this._debug(debugName,"error",error);if(isAuthError(error)){return this._returnResult({data:{session:null,user:null},error})}throw error}finally{this._debug(debugName,"end")}}_isValidSession(maybeSession){const isValidSession=typeof maybeSession==="object"&&maybeSession!==null&&"access_token"in maybeSession&&"refresh_token"in maybeSession&&"expires_at"in maybeSession;return isValidSession}async _handleProviderSignIn(provider,options){const{url,flowId}=await this._getUrlForProvider(`${this.url}/authorize`,provider,{redirectTo:options.redirectTo,scopes:options.scopes,queryParams:options.queryParams});this._debug("#_handleProviderSignIn()","provider",provider,"options",options,"url",url);if(isBrowser()&&!options.skipBrowserRedirect){window.location.assign(url)}return{data:{provider,url,flowId},error:null}}async _recoverAndRefresh(){var _a,_b;const debugName="#_recoverAndRefresh()";this._debug(debugName,"begin");try{const currentSession=await getItemAsync(this.storage,this.storageKey);if(currentSession&&this.userStorage){let maybeUser=await getItemAsync(this.userStorage,this.storageKey+"-user");if(!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!maybeUser){maybeUser={user:currentSession.user};await setItemAsync(this.userStorage,this.storageKey+"-user",maybeUser)}currentSession.user=(_a=maybeUser===null||maybeUser===undefined?undefined:maybeUser.user)!==null&&_a!==undefined?_a:userNotAvailableProxy()}else if(currentSession&&!currentSession.user){if(!currentSession.user){const separateUser=await getItemAsync(this.storage,this.storageKey+"-user");if(separateUser&&(separateUser===null||separateUser===undefined?undefined:separateUser.user)){currentSession.user=separateUser.user;await removeItemAsync(this.storage,this.storageKey+"-user");await setItemAsync(this.storage,this.storageKey,currentSession)}else{currentSession.user=userNotAvailableProxy()}}}this._debug(debugName,"session from storage",currentSession);if(!this._isValidSession(currentSession)){this._debug(debugName,"session is not valid");if(currentSession!==null){await this._removeSession()}return}const expiresWithMargin=((_b=currentSession.expires_at)!==null&&_b!==undefined?_b:Infinity)*1000-Date.now()<EXPIRY_MARGIN_MS;this._debug(debugName,`session has${expiresWithMargin?"":" not"} expired with margin of ${EXPIRY_MARGIN_MS}s`);if(expiresWithMargin){if(this.autoRefreshToken&¤tSession.refresh_token){const{error}=await this._callRefreshToken(currentSession.refresh_token);if(error){if(isAuthRefreshDiscardedError(error)){this._debug(debugName,"refresh discarded by commit guard",error)}else{this._debug(debugName,"refresh failed",error)}}}}else if(currentSession.user&¤tSession.user.__isUserNotAvailableProxy===true){try{const{data:data2,error:userError}=await this._getUser(currentSession.access_token);if(!userError&&(data2===null||data2===undefined?undefined:data2.user)){currentSession.user=data2.user;await this._saveSession(currentSession);await this._notifyAllSubscribers("SIGNED_IN",currentSession)}else{this._debug(debugName,"could not get user data, skipping SIGNED_IN notification")}}catch(getUserError){console.error("Error getting user data:",getUserError);this._debug(debugName,"error getting user data, skipping SIGNED_IN notification",getUserError)}}else{await this._notifyAllSubscribers("SIGNED_IN",currentSession)}}catch(err){this._debug(debugName,"error",err);if(isAuthRetryableFetchError(err)){console.warn(err)}else{console.error(err)}return}finally{this._debug(debugName,"end")}}async _callRefreshToken(refreshToken){var _a,_b;if(!refreshToken){throw new AuthSessionMissingError}if(this.refreshingDeferred){return this.refreshingDeferred.promise}if(this.lastRefreshFailure&&this.lastRefreshFailure.refreshToken===refreshToken&&Date.now()<this.lastRefreshFailure.expiresAt){this._debug("#_callRefreshToken()","returning cached failure (cooldown active)");return this.lastRefreshFailure.result}const debugName=`#_callRefreshToken()`;this._debug(debugName,"begin");try{this.refreshingDeferred=new Deferred;this.refreshingDeferred.promise.then(undefined,()=>{});const storedAtStart=await getItemAsync(this.storage,this.storageKey);const{data:data2,error}=await this._refreshAccessToken(refreshToken);if(error)throw error;if(!data2.session)throw new AuthSessionMissingError;const storedAfter=await getItemAsync(this.storage,this.storageKey);const storageChangedUnderUs=storedAtStart!==null&&(storedAfter===null||storedAfter.refresh_token!==storedAtStart.refresh_token);if(storageChangedUnderUs){this._debug(debugName,"commit guard: storage changed since refresh started, discarding rotated tokens",{startedWith:"present",nowHolds:storedAfter?"replaced":"cleared"});const discarded={data:null,error:new AuthRefreshDiscardedError};this.refreshingDeferred.resolve(discarded);return discarded}const epochBeforeSave=this._sessionRemovalEpoch;await this._saveSession(data2.session);if(this._sessionRemovalEpoch!==epochBeforeSave){this._debug(debugName,"commit guard (post-save): _removeSession ran during _saveSession, undoing write");await removeItemAsync(this.storage,this.storageKey);if(this.userStorage){await removeItemAsync(this.userStorage,this.storageKey+"-user")}const discarded={data:null,error:new AuthRefreshDiscardedError};this.refreshingDeferred.resolve(discarded);return discarded}await this._notifyAllSubscribers("TOKEN_REFRESHED",data2.session);const result2={data:data2.session,error:null};this.lastRefreshFailure=null;this.refreshingDeferred.resolve(result2);return result2}catch(error){this._debug(debugName,"error",error);if(isAuthError(error)){const result2={data:null,error};if(!isAuthRetryableFetchError(error)){const storedNow=await getItemAsync(this.storage,this.storageKey);const accessTokenStillValid=!!((storedNow===null||storedNow===undefined?undefined:storedNow.expires_at)&&storedNow.expires_at*1000>Date.now());if(accessTokenStillValid){this._debug(debugName,"proactive refresh failed, access token still valid — preserving session")}else{await this._removeSession()}}this.lastRefreshFailure={refreshToken,result:result2,expiresAt:Date.now()+REFRESH_FAILURE_COOLDOWN_MS};(_a=this.refreshingDeferred)===null||_a===undefined||_a.resolve(result2);return result2}(_b=this.refreshingDeferred)===null||_b===undefined||_b.reject(error);throw error}finally{this.refreshingDeferred=null;this._debug(debugName,"end")}}async _notifyAllSubscribers(event,session,broadcast=true){if(this._pendingInitNotifications!==null&&broadcast){this._pendingInitNotifications.push({event,session,broadcast});return}const debugName=`#_notifyAllSubscribers(${event})`;this._debug(debugName,"begin",session,`broadcast = ${broadcast}`);try{if(this.broadcastChannel&&broadcast){this.broadcastChannel.postMessage({event,session})}const errors=[];const promises=Array.from(this.stateChangeEmitters.values()).map(async(x)=>{try{await x.callback(event,session)}catch(e){errors.push(e)}});await Promise.all(promises);if(errors.length>0){for(let i=0;i<errors.length;i+=1){console.error(errors[i])}throw errors[0]}}finally{this._debug(debugName,"end")}}async _saveSession(session){this._debug("#_saveSession()",session);this.suppressGetSessionWarning=true;const sessionToProcess=Object.assign({},session);const userIsProxy=sessionToProcess.user&&sessionToProcess.user.__isUserNotAvailableProxy===true;if(this.userStorage){if(!userIsProxy&&sessionToProcess.user){await setItemAsync(this.userStorage,this.storageKey+"-user",{user:sessionToProcess.user})}else if(userIsProxy){}const mainSessionData=Object.assign({},sessionToProcess);delete mainSessionData.user;const clonedMainSessionData=deepClone(mainSessionData);await setItemAsync(this.storage,this.storageKey,clonedMainSessionData)}else{const clonedSession=deepClone(sessionToProcess);await setItemAsync(this.storage,this.storageKey,clonedSession)}}async _removeSession(){this._sessionRemovalEpoch+=1;this._debug("#_removeSession()");this.lastRefreshFailure=null;this.suppressGetSessionWarning=false;await removeItemAsync(this.storage,this.storageKey);await removeAllPKCEVerifiers(this.storage,this.storageKey);await removeItemAsync(this.storage,this.storageKey+"-user");if(this.userStorage){await removeItemAsync(this.userStorage,this.storageKey+"-user")}await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const callback=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{if(callback&&isBrowser()&&(window===null||window===undefined?undefined:window.removeEventListener)){window.removeEventListener("visibilitychange",callback)}}catch(e){console.error("removing visibilitychange callback failed",e)}}async _startAutoRefresh(){await this._stopAutoRefresh();this._debug("#_startAutoRefresh()");const ticker=setInterval(()=>this._autoRefreshTokenTick(),AUTO_REFRESH_TICK_DURATION_MS);this.autoRefreshTicker=ticker;if(ticker&&typeof ticker==="object"&&typeof ticker.unref==="function"){ticker.unref()}else if(typeof Deno!=="undefined"&&typeof Deno.unrefTimer==="function"){Deno.unrefTimer(ticker)}const timeout=setTimeout(async()=>{await this.initializePromise;await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=timeout;if(timeout&&typeof timeout==="object"&&typeof timeout.unref==="function"){timeout.unref()}else if(typeof Deno!=="undefined"&&typeof Deno.unrefTimer==="function"){Deno.unrefTimer(timeout)}}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const ticker=this.autoRefreshTicker;this.autoRefreshTicker=null;if(ticker){clearInterval(ticker)}const timeout=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null;if(timeout){clearTimeout(timeout)}}async startAutoRefresh(){this._removeVisibilityChangedCallback();await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback();await this._stopAutoRefresh()}async dispose(){var _a;this._removeVisibilityChangedCallback();await this._stopAutoRefresh();(_a=this.broadcastChannel)===null||_a===undefined||_a.close();this.broadcastChannel=null;this.stateChangeEmitters.clear()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");if(this.lock!=null){try{await this._acquireLock(0,async()=>{try{const now=Date.now();try{return await this._useSession(async(result2)=>{const{data:{session}}=result2;if(!session||!session.refresh_token||!session.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const expiresInTicks=Math.floor((session.expires_at*1000-now)/AUTO_REFRESH_TICK_DURATION_MS);this._debug("#_autoRefreshTokenTick()",`access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);if(expiresInTicks<=AUTO_REFRESH_TICK_THRESHOLD){await this._callRefreshToken(session.refresh_token)}})}catch(e){console.error("Auto refresh tick failed with error. This is likely a transient error.",e)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(e){if(e instanceof LockAcquireTimeoutError){this._debug("auto refresh token tick lock not available")}else{throw e}}return}if(this.refreshingDeferred!==null){this._debug("#_autoRefreshTokenTick()","refresh already in flight, skipping");return}try{const now=Date.now();try{await this._useSession(async(result2)=>{const{data:{session}}=result2;if(!session||!session.refresh_token||!session.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const expiresInTicks=Math.floor((session.expires_at*1000-now)/AUTO_REFRESH_TICK_DURATION_MS);this._debug("#_autoRefreshTokenTick()",`access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);if(expiresInTicks<=AUTO_REFRESH_TICK_THRESHOLD){await this._callRefreshToken(session.refresh_token)}})}catch(e){console.error("Auto refresh tick failed with error. This is likely a transient error.",e)}}finally{this._debug("#_autoRefreshTokenTick()","end")}}async _handleVisibilityChange(){this._debug("#_handleVisibilityChange()");if(!isBrowser()||!(window===null||window===undefined?undefined:window.addEventListener)){if(this.autoRefreshToken){this.startAutoRefresh()}return false}try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(false)}catch(error){this._debug("#visibilityChangedCallback","error",error)}};window===null||window===undefined||window.addEventListener("visibilitychange",this.visibilityChangedCallback);await this._onVisibilityChanged(true)}catch(error){console.error("_handleVisibilityChange",error)}}async _onVisibilityChanged(calledFromInitialize){const methodName=`#_onVisibilityChanged(${calledFromInitialize})`;this._debug(methodName,"visibilityState",document.visibilityState);if(document.visibilityState==="visible"){if(this.autoRefreshToken){this._startAutoRefresh()}if(!calledFromInitialize){await this.initializePromise;if(this.lock!=null){await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!=="visible"){this._debug(methodName,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()})}else{if(document.visibilityState!=="visible"){this._debug(methodName,"visibilityState is no longer visible, skipping recovery");return}await this._recoverAndRefresh()}}}else if(document.visibilityState==="hidden"){if(this.autoRefreshToken){this._stopAutoRefresh()}}}async _getUrlForProvider(url,provider,options){let redirectTo=options===null||options===undefined?undefined:options.redirectTo;let codeChallenge=null;let codeChallengeMethod=null;let flowId=null;if(this.flowType==="pkce"){[codeChallenge,codeChallengeMethod,flowId]=await this._getCodeChallengeAndMethod();redirectTo=this._maybeAppendFlowIdToRedirect(redirectTo,flowId)}const urlParams=[`provider=${encodeURIComponent(provider)}`];if(redirectTo){urlParams.push(`redirect_to=${encodeURIComponent(redirectTo)}`)}if(options===null||options===undefined?undefined:options.scopes){urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`)}if(codeChallenge!=null&&codeChallengeMethod!=null){const flowParams=new URLSearchParams({code_challenge:`${encodeURIComponent(codeChallenge)}`,code_challenge_method:`${encodeURIComponent(codeChallengeMethod)}`});urlParams.push(flowParams.toString())}if(options===null||options===undefined?undefined:options.queryParams){const query=new URLSearchParams(options.queryParams);urlParams.push(query.toString())}if(options===null||options===undefined?undefined:options.skipBrowserRedirect){urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`)}return{url:`${url}?${urlParams.join("&")}`,flowId}}_maybeAppendFlowIdToRedirect(redirectTo,flowId){if(!redirectTo||!flowId||!this.experimental.appendPkceFlowIdToRedirects){return redirectTo!==null&&redirectTo!==undefined?redirectTo:undefined}return appendFlowIdToRedirectTo(redirectTo,flowId)}async _getCodeChallengeAndMethod(isPasswordRecovery=false){return getCodeChallengeAndMethod(this.storage,this.storageKey,isPasswordRecovery,(evictedFlowId)=>this._debug("#_getCodeChallengeAndMethod()","evicted oldest pending PKCE verifier slot",evictedFlowId))}async _unenroll(params){try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}return await _request(this.fetch,"DELETE",`${this.url}/factors/${params.factorId}`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _enroll(params){try{return await this._useSession(async(result2)=>{var _a,_b;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const body=Object.assign({friendly_name:params.friendlyName,factor_type:params.factorType},params.factorType==="phone"?{phone:params.phone}:params.factorType==="totp"?{issuer:params.issuer}:{});const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors`,{body,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}if(params.factorType==="totp"&&data2.type==="totp"&&((_b=data2===null||data2===undefined?undefined:data2.totp)===null||_b===undefined?undefined:_b.qr_code)){data2.totp.qr_code=`data:image/svg+xml;utf-8,${data2.totp.qr_code}`}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verify(params){const run=async()=>{try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const body=Object.assign({challenge_id:params.challengeId},"webauthn"in params?{webauthn:Object.assign(Object.assign({},params.webauthn),{credential_response:params.webauthn.type==="create"?serializeCredentialCreationResponse(params.webauthn.credential_response):serializeCredentialRequestResponse(params.webauthn.credential_response)})}:{code:params.code});const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/${params.factorId}/verify`,{body,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1000)+data2.expires_in},data2));await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",data2);return this._returnResult({data:data2,error})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}};if(this.lock!=null){return this._acquireLock(this.lockAcquireTimeout,run)}return run()}async _challenge(params){const run=async()=>{try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const response2=await _request(this.fetch,"POST",`${this.url}/factors/${params.factorId}/challenge`,{body:params,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(response2.error){return response2}const{data:data2}=response2;if(data2.type!=="webauthn"){return{data:data2,error:null}}switch(data2.webauthn.type){case"create":return{data:Object.assign(Object.assign({},data2),{webauthn:Object.assign(Object.assign({},data2.webauthn),{credential_options:Object.assign(Object.assign({},data2.webauthn.credential_options),{publicKey:deserializeCredentialCreationOptions(data2.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},data2),{webauthn:Object.assign(Object.assign({},data2.webauthn),{credential_options:Object.assign(Object.assign({},data2.webauthn.credential_options),{publicKey:deserializeCredentialRequestOptions(data2.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}};if(this.lock!=null){return this._acquireLock(this.lockAcquireTimeout,run)}return run()}async _challengeAndVerify(params){const{data:challengeData,error:challengeError}=await this._challenge({factorId:params.factorId});if(challengeError){return this._returnResult({data:null,error:challengeError})}return await this._verify({factorId:params.factorId,challengeId:challengeData.id,code:params.code})}async _listFactors(){var _a;const{data:{user},error:userError}=await this.getUser();if(userError){return{data:null,error:userError}}const data2={all:[],phone:[],totp:[],webauthn:[],recovery_code:[]};for(const factor of(_a=user===null||user===undefined?undefined:user.factors)!==null&&_a!==undefined?_a:[]){data2.all.push(factor);if(factor.status==="verified"&&factor.factor_type in data2&&Array.isArray(data2[factor.factor_type])){data2[factor.factor_type].push(factor)}}return{data:data2,error:null}}async _getAuthenticatorAssuranceLevel(jwt){var _a,_b,_c,_d;if(jwt){try{const{payload:payload2}=decodeJWT(jwt);let currentLevel2=null;if(payload2.aal){currentLevel2=payload2.aal}let nextLevel2=currentLevel2;const{data:{user},error:userError}=await this.getUser(jwt);if(userError){return this._returnResult({data:null,error:userError})}const verifiedFactors2=(_b=(_a=user===null||user===undefined?undefined:user.factors)===null||_a===undefined?undefined:_a.filter((factor)=>factor.status==="verified"))!==null&&_b!==undefined?_b:[];if(verifiedFactors2.length>0){nextLevel2="aal2"}const currentAuthenticationMethods2=payload2.amr||[];return{data:{currentLevel:currentLevel2,nextLevel:nextLevel2,currentAuthenticationMethods:currentAuthenticationMethods2},error:null}}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}const{data:{session},error:sessionError}=await this.getSession();if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null}}const{payload}=decodeJWT(session.access_token);let currentLevel=null;if(payload.aal){currentLevel=payload.aal}let nextLevel=currentLevel;const verifiedFactors=(_d=(_c=session.user.factors)===null||_c===undefined?undefined:_c.filter((factor)=>factor.status==="verified"))!==null&&_d!==undefined?_d:[];if(verifiedFactors.length>0){nextLevel="aal2"}const currentAuthenticationMethods=payload.amr||[];return{data:{currentLevel,nextLevel,currentAuthenticationMethods},error:null}}async _getRecoveryCodesStatus(){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"GET",`${this.url}/factors/recovery-codes`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _generateRecoveryCodes(params){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/recovery-codes`,{body:(params===null||params===undefined?undefined:params.friendlyName)?{friendly_name:params.friendlyName}:undefined,headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verifyRecoveryCode(params){assertRecoveryCodesExperimentalEnabled(this.experimental);const run=async()=>{try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/recovery-codes/verify`,{body:{code:params.code},headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}const session=Object.assign({expires_at:expiresAt(data2.expires_in)},data2);await this._saveSession(session);await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",session);return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}};if(this.lock!=null){return this._acquireLock(this.lockAcquireTimeout,run)}return run()}async _regenerateRecoveryCodes(){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/factors/recovery-codes/regenerate`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _unenrollRecoveryCodes(){assertRecoveryCodesExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{var _a;const{data:sessionData,error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}const{data:data2,error}=await _request(this.fetch,"DELETE",`${this.url}/factors/recovery-codes`,{headers:this.headers,jwt:(_a=sessionData===null||sessionData===undefined?undefined:sessionData.session)===null||_a===undefined?undefined:_a.access_token});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _getAuthorizationDetails(authorizationId){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}return await _request(this.fetch,"GET",`${this.url}/oauth/authorizations/${authorizationId}`,{headers:this.headers,jwt:session.access_token,xform:(data2)=>({data:data2,error:null})})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _approveAuthorization(authorizationId,options){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const response2=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${authorizationId}/consent`,{headers:this.headers,jwt:session.access_token,body:{action:"approve"},xform:(data2)=>({data:data2,error:null})});if(response2.data&&response2.data.redirect_url){if(isBrowser()&&!(options===null||options===undefined?undefined:options.skipBrowserRedirect)){window.location.assign(response2.data.redirect_url)}}return response2})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _denyAuthorization(authorizationId,options){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const response2=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${authorizationId}/consent`,{headers:this.headers,jwt:session.access_token,body:{action:"deny"},xform:(data2)=>({data:data2,error:null})});if(response2.data&&response2.data.redirect_url){if(isBrowser()&&!(options===null||options===undefined?undefined:options.skipBrowserRedirect)){window.location.assign(response2.data.redirect_url)}}return response2})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _listOAuthGrants(){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}return await _request(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:session.access_token,xform:(data2)=>({data:data2,error:null})})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _revokeOAuthGrant(options){try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}await _request(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:session.access_token,query:{client_id:options.clientId},noResolveJson:true});return{data:{},error:null}})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async fetchJwk(kid,jwks={keys:[]}){let jwk=jwks.keys.find((key)=>key.kid===kid);if(jwk){return jwk}const now=Date.now();jwk=this.jwks.keys.find((key)=>key.kid===kid);if(jwk&&this.jwks_cached_at+JWKS_TTL>now){return jwk}const{data:data2,error}=await _request(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(error){throw error}if(!data2.keys||data2.keys.length===0){return null}this.jwks=data2;this.jwks_cached_at=now;jwk=data2.keys.find((key)=>key.kid===kid);if(!jwk){return null}return jwk}async getClaims(jwt,options={}){try{let token=jwt;if(!token){const{data:data2,error}=await this.getSession();if(error||!data2.session){return this._returnResult({data:null,error})}token=data2.session.access_token}const{header,payload,signature,raw:{header:rawHeader,payload:rawPayload}}=decodeJWT(token);if(!(options===null||options===undefined?undefined:options.allowExpired)){try{validateExp(payload.exp)}catch(e){throw new AuthInvalidJwtError(e instanceof Error?e.message:"JWT validation failed")}}const signingKey=!header.alg||header.alg.startsWith("HS")||!header.kid||!(("crypto"in globalThis)&&("subtle"in globalThis.crypto))?null:await this.fetchJwk(header.kid,(options===null||options===undefined?undefined:options.keys)?{keys:options.keys}:options===null||options===undefined?undefined:options.jwks);if(!signingKey){const{error}=await this.getUser(token);if(error){throw error}return{data:{claims:payload,header,signature},error:null}}const algorithm=getAlgorithm(header.alg);const publicKey=await crypto.subtle.importKey("jwk",signingKey,algorithm,true,["verify"]);const isValid=await crypto.subtle.verify(algorithm,publicKey,signature,stringToUint8Array(`${rawHeader}.${rawPayload}`));if(!isValid){throw new AuthInvalidJwtError("Invalid JWT signature")}return{data:{claims:payload,header,signature},error:null}}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async signInWithPasskey(credentials){var _a,_b,_c;assertPasskeyExperimentalEnabled(this.experimental);try{if(!browserSupportsWebAuthn()){return this._returnResult({data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)})}const{data:options,error:optionsError}=await this._startPasskeyAuthentication({options:{captchaToken:(_a=credentials===null||credentials===undefined?undefined:credentials.options)===null||_a===undefined?undefined:_a.captchaToken}});if(optionsError||!options){return this._returnResult({data:null,error:optionsError})}const publicKeyOptions=deserializeCredentialRequestOptions(options.options);const signal=(_c=(_b=credentials===null||credentials===undefined?undefined:credentials.options)===null||_b===undefined?undefined:_b.signal)!==null&&_c!==undefined?_c:webAuthnAbortService.createNewAbortSignal();const{data:credential,error:credentialError}=await getCredential({publicKey:publicKeyOptions,signal});if(credentialError||!credential){return this._returnResult({data:null,error:credentialError!==null&&credentialError!==undefined?credentialError:new AuthUnknownError("WebAuthn ceremony failed",null)})}const serialized=serializeCredentialRequestResponse(credential);return this._verifyPasskeyAuthentication({challengeId:options.challenge_id,credential:serialized})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async registerPasskey(credentials){var _a,_b;assertPasskeyExperimentalEnabled(this.experimental);try{if(!browserSupportsWebAuthn()){return this._returnResult({data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)})}const{data:options,error:optionsError}=await this._startPasskeyRegistration();if(optionsError||!options){return this._returnResult({data:null,error:optionsError})}const publicKeyOptions=deserializeCredentialCreationOptions(options.options);const signal=(_b=(_a=credentials===null||credentials===undefined?undefined:credentials.options)===null||_a===undefined?undefined:_a.signal)!==null&&_b!==undefined?_b:webAuthnAbortService.createNewAbortSignal();const{data:credential,error:credentialError}=await createCredential({publicKey:publicKeyOptions,signal});if(credentialError||!credential){return this._returnResult({data:null,error:credentialError!==null&&credentialError!==undefined?credentialError:new AuthUnknownError("WebAuthn ceremony failed",null)})}const serialized=serializeCredentialCreationResponse(credential);return this._verifyPasskeyRegistration({challengeId:options.challenge_id,credential:serialized})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _startPasskeyRegistration(){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/registration/options`,{headers:this.headers,jwt:session.access_token,body:{}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verifyPasskeyRegistration(params){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/registration/verify`,{headers:this.headers,jwt:session.access_token,body:{challenge_id:params.challengeId,credential:params.credential}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _startPasskeyAuthentication(params){var _a;assertPasskeyExperimentalEnabled(this.experimental);try{const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/authentication/options`,{headers:this.headers,body:{gotrue_meta_security:{captcha_token:(_a=params===null||params===undefined?undefined:params.options)===null||_a===undefined?undefined:_a.captchaToken}}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _verifyPasskeyAuthentication(params){assertPasskeyExperimentalEnabled(this.experimental);try{const{data:data2,error}=await _request(this.fetch,"POST",`${this.url}/passkeys/authentication/verify`,{headers:this.headers,body:{challenge_id:params.challengeId,credential:params.credential},xform:_sessionResponse});if(error){return this._returnResult({data:null,error})}if(data2.session){await this._saveSession(data2.session);await this._notifyAllSubscribers("SIGNED_IN",data2.session)}return this._returnResult({data:data2,error:null})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _listPasskeys(){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"GET",`${this.url}/passkeys`,{headers:this.headers,jwt:session.access_token,xform:(data3)=>({data:data3,error:null})});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _updatePasskey(params){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{data:data2,error}=await _request(this.fetch,"PATCH",`${this.url}/passkeys/${params.passkeyId}`,{headers:this.headers,jwt:session.access_token,body:{friendly_name:params.friendlyName}});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:data2,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}async _deletePasskey(params){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async(result2)=>{const{data:{session},error:sessionError}=result2;if(sessionError){return this._returnResult({data:null,error:sessionError})}if(!session){return this._returnResult({data:null,error:new AuthSessionMissingError})}const{error}=await _request(this.fetch,"DELETE",`${this.url}/passkeys/${params.passkeyId}`,{headers:this.headers,jwt:session.access_token,noResolveJson:true});if(error){return this._returnResult({data:null,error})}return this._returnResult({data:null,error:null})})}catch(error){if(isAuthError(error)){return this._returnResult({data:null,error})}throw error}}}var DEFAULT_OPTIONS,GLOBAL_JWKS,deprecatedLockWarned=false,GoTrueClient_default;var init_GoTrueClient=__esm(()=>{init_GoTrueAdminApi();init_constants();init_errors();init_fetch();init_helpers();init_locks();init_base64url();init_webauthn();polyfillGlobalThis();DEFAULT_OPTIONS={url:GOTRUE_URL,storageKey:STORAGE_KEY,autoRefreshToken:true,persistSession:true,detectSessionInUrl:true,headers:DEFAULT_HEADERS,flowType:"implicit",debug:false,hasCustomAuthorizationHeader:false,throwOnError:false,lockAcquireTimeout:5000,skipAutoInitialize:false,experimental:{}};GLOBAL_JWKS={};GoTrueClient.nextInstanceID={};GoTrueClient_default=GoTrueClient});var init_AuthAdminApi=__esm(()=>{init_GoTrueAdminApi()});var AuthClient,AuthClient_default;var init_AuthClient=__esm(()=>{init_GoTrueClient();AuthClient=GoTrueClient_default;AuthClient_default=AuthClient});var init_module=__esm(()=>{init_GoTrueAdminApi();init_GoTrueClient();init_AuthAdminApi();init_AuthClient();init_locks();init_types();init_errors()});var exports_auth_provider={};__export(exports_auth_provider,{AuthClient:()=>AuthClient_default});var init_auth_provider=__esm(()=>{init_module()});function validateFileAddOptions(value){const v=serializable(value);if(!v||typeof v!=="object"||Array.isArray(v)||Object.keys(v).some((k)=>!["path","name"].includes(k))||typeof v.path!=="string"||!v.path||v.path!==v.path.trim()||/[\\\x00-\x1f]/.test(v.path)||v.path.split("/").some((part)=>!part||part==="."||part==="..")||/^[A-Za-z]:/.test(v.path))throw new InboxContractError("File path must be relative to the configured working root");if(v.name!==undefined&&(typeof v.name!=="string"||!v.name||v.name!==v.name.trim()||v.name.length>255||/[\x00-\x1f\x7f/\\]/.test(v.name)))throw new InboxContractError("File name must be a safe filename");return v}async function verifyInboxFile(bytes,value){const file2=validateInboxFile(value);const sha2562=[...new Uint8Array(await crypto.subtle.digest("SHA-256",Uint8Array.from(bytes)))].map((n)=>n.toString(16).padStart(2,"0")).join("");if(file2.sha256!==sha2562||file2.size!==bytes.length)throw new InboxContractError("Retained file integrity changed");return file2}var init_inbox_files=__esm(()=>{init_inbox_contract()});var exports_inbox_publication_file={};__export(exports_inbox_publication_file,{readInboxPublicationFile:()=>readInboxPublicationFile});async function readInboxPublicationFile(checkout,options){const{readFile,realpath}=await import("node:fs/promises");const{isAbsolute,relative,resolve,sep}=await import("node:path");const{path}=validateFileAddOptions(options);const root=await realpath(checkout),file2=await realpath(resolve(root,path));const rel=relative(root,file2);if(rel===".."||rel.startsWith(`..${sep}`)||isAbsolute(rel))throw new Error("Inbox file escapes working root");return new Uint8Array(await readFile(file2))}var init_inbox_publication_file=__esm(()=>{init_inbox_files()});init_inbox_contract();var REPOSITORY=/^[a-z0-9][a-z0-9._/-]{0,127}$/;function validRepositoryAlias(value){return typeof value==="string"&&REPOSITORY.test(value)&&!value.includes("//")&&!value.includes("..")}var RECORD_READ_INPUT_LIMIT=1024*1024;var RECORD_CAPTURE_OUTPUT_LIMIT=25*1024*1024;function validRecordRef(value){return typeof value==="string"&&value.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)+$/.test(value)}function validateRecordRead(value){if(!value||typeof value!=="object"||Array.isArray(value))throw new InboxContractError("Invalid selected-record read");const input=value;if(Object.keys(input).some((key)=>!["repository","refs","atCommit"].includes(key))||!validRepositoryAlias(input.repository)||!Array.isArray(input.refs)||!input.refs.length||input.refs.length>1e4||input.refs.some((ref)=>!validRecordRef(ref))||new Set(input.refs).size!==input.refs.length||input.atCommit!==undefined&&(typeof input.atCommit!=="string"||!/^[0-9a-f]{40}$/.test(input.atCommit)))throw new InboxContractError("Invalid selected-record read");return{repository:input.repository,refs:[...input.refs],...input.atCommit===undefined?{}:{atCommit:input.atCommit}}}init_files_contract();class AppRoutineContractError extends Error{code;constructor(code){super(code);this.code=code}}var propertyName=/^[a-z][A-Za-z0-9]*(?![\s\S])/;var stepId=/^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/;var routineName=/^[a-z0-9][a-z0-9-]{0,62}(?![\s\S])/;function isAppRoutineName(value){return typeof value==="string"&&routineName.test(value)}var owns=(value,key)=>Object.hasOwn(value,key);var invalidContract=()=>{throw new AppRoutineContractError("invalid_contract")};var invalidValue=()=>{throw new AppRoutineContractError("invalid_value")};function record(value){return value!==null&&typeof value==="object"&&!Array.isArray(value)&&(Object.getPrototypeOf(value)===Object.prototype||Object.getPrototypeOf(value)===null)}function fields2(value,required,optional=[]){return required.every((key)=>owns(value,key))&&Object.keys(value).every((key)=>required.includes(key)||optional.includes(key))}function denseArray(value){return Array.isArray(value)&&Object.keys(value).length===value.length&&Array.from({length:value.length},(_,index)=>owns(value,String(index))).every(Boolean)}function parseAppRoutineContract(value){let properties=0;function schema(value2,depth=1){if(depth>8||!record(value2))return invalidContract();switch(value2.type){case"object":{if(!fields2(value2,["type","properties","additionalProperties"],["required"])||value2.additionalProperties!==false||!record(value2.properties))return invalidContract();const entries=Object.entries(value2.properties);properties+=entries.length;if(properties>64||entries.some(([key])=>!propertyName.test(key)))return invalidContract();let required;if(owns(value2,"required")){if(!denseArray(value2.required)||value2.required.some((key)=>typeof key!=="string"||!owns(value2.properties,key))||new Set(value2.required).size!==value2.required.length)return invalidContract();required=[...value2.required]}return{type:"object",properties:Object.fromEntries(entries.map(([key,child])=>[key,schema(child,depth+1)])),...required===undefined?{}:{required},additionalProperties:false}}case"array":if(!fields2(value2,["type","items","maxItems"])||!Number.isSafeInteger(value2.maxItems)||value2.maxItems<1||value2.maxItems>64)return invalidContract();return{type:"array",items:schema(value2.items,depth+1),maxItems:value2.maxItems};case"boolean":if(!fields2(value2,["type"]))return invalidContract();return{type:value2.type};case"file":if(!fields2(value2,["type"],["storage","path"])||owns(value2,"storage")&&value2.storage!=="local"&&value2.storage!=="remote"||owns(value2,"path")&&!safeManagedFilePath(value2.path))return invalidContract();return{type:"file",...owns(value2,"storage")?{storage:value2.storage}:{},...owns(value2,"path")?{path:value2.path}:{}};case"string":if(!fields2(value2,["type"],["maxLength"])||owns(value2,"maxLength")&&(!Number.isSafeInteger(value2.maxLength)||value2.maxLength<0||value2.maxLength>4096))return invalidContract();return{type:"string",...owns(value2,"maxLength")?{maxLength:value2.maxLength}:{}};case"integer":case"number":{const validNumber=value2.type==="integer"?Number.isSafeInteger:Number.isFinite;if(!fields2(value2,["type"],["minimum","maximum"])||owns(value2,"minimum")&&!validNumber(value2.minimum)||owns(value2,"maximum")&&!validNumber(value2.maximum)||owns(value2,"minimum")&&owns(value2,"maximum")&&value2.minimum>value2.maximum)return invalidContract();return{type:value2.type,...owns(value2,"minimum")?{minimum:value2.minimum}:{},...owns(value2,"maximum")?{maximum:value2.maximum}:{}}}default:return invalidContract()}}if(!record(value)||!fields2(value,["routine","input","steps"],["result"])||!isAppRoutineName(value.routine)||!denseArray(value.steps)||value.steps.length<1||value.steps.length>64)return invalidContract();const input=schema(value.input);const result=owns(value,"result")?schema(value.result):undefined;const ids=new Set;const steps=value.steps.map((step)=>{if(!record(step)||!fields2(step,["id"],["summary"])||typeof step.id!=="string"||!stepId.test(step.id)||ids.has(step.id))return invalidContract();ids.add(step.id);return{id:step.id,...owns(step,"summary")?{summary:schema(step.summary)}:{}}});return{routine:value.routine,input,steps,...result===undefined?{}:{result}}}function jsonData(value,ancestors=new Set){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return;if(!record(value)&&!denseArray(value))return invalidValue();if(ancestors.has(value))return invalidValue();ancestors.add(value);for(const child of Object.values(value))jsonData(child,ancestors);ancestors.delete(value)}function validateRoutineSchemaValue(schema,value){switch(schema.type){case"object":if(!record(value)||(schema.required??[]).some((key)=>!owns(value,key))||Object.keys(value).some((key)=>!owns(schema.properties,key)))return invalidValue();for(const[key,child]of Object.entries(value))validateRoutineSchemaValue(schema.properties[key],child);return;case"array":if(!denseArray(value)||value.length>schema.maxItems)return invalidValue();for(const child of value)validateRoutineSchemaValue(schema.items,child);return;case"boolean":if(typeof value!=="boolean")return invalidValue();return;case"string":if(typeof value!=="string"||Array.from(value).length>(schema.maxLength??4096))return invalidValue();return;case"integer":case"number":if(typeof value!=="number"||!(schema.type==="integer"?Number.isSafeInteger(value):Number.isFinite(value))||schema.minimum!==undefined&&value<schema.minimum||schema.maximum!==undefined&&value>schema.maximum)return invalidValue();return;case"file":try{jsonData(value);const file=parseFileDescriptor(value);if(schema.path!==undefined&&file.path!==schema.path)return invalidValue()}catch{return invalidValue()}}}init_inbox_contract();var ROUTINE_DECLARATION_SCHEMA="https://schemas.oddington.ai/routine/v1.json";var ROUTINE_SOURCE_LIMITS={files:20000,bytes:256*1024*1024,declarationBytes:64*1024};var invalid=(field)=>{throw new Error(`Invalid routine declaration: ${field}`)};var object2=(value,fields3,field)=>{if(!value||typeof value!=="object"||Array.isArray(value)||Object.getPrototypeOf(value)!==Object.prototype&&Object.getPrototypeOf(value)!==null||Reflect.ownKeys(value).some((key)=>typeof key!=="string"||!fields3.includes(key)||!Object.getOwnPropertyDescriptor(value,key).enumerable||!Object.hasOwn(Object.getOwnPropertyDescriptor(value,key),"value")))invalid(field);return value};var routineAlias=(value)=>typeof value==="string"&&/^[a-z][a-z0-9-]{0,62}$/.test(value);var list=(value,field,allowed,qualified=false)=>{if(value===undefined)return[];if(!Array.isArray(value)||value.length>64||value.some((item)=>!(routineAlias(item)||qualified&&typeof item==="string"&&item.split("/").length===2&&item.split("/").every(routineAlias))||allowed&&!allowed.includes(item))||new Set(value).size!==value.length)invalid(field);return[...value].sort()};function routineAssetPattern(value){return typeof value==="string"&&value.length<=512&&!value.startsWith("/")&&!value.includes("\\")&&!value.includes(":")&&value.split("/").every((part)=>!!part&&part!=="."&&part!==".."&&/^[a-zA-Z0-9_.*-]+$/.test(part))}function parseRoutineDeclaration(value){const v=object2(value,["$schema","access","runtime","retry","assets"],"fields");if(v.$schema!==ROUTINE_DECLARATION_SCHEMA)invalid("$schema");const access=object2(v.access===undefined?{}:v.access,["repositories","connections","ai","files","publish"],"access");if(Object.hasOwn(access,"ai")&&access.ai!==true)invalid("access.ai");const rawRepositories=access.repositories===undefined?{}:access.repositories;const repositories=object2(rawRepositories,rawRepositories&&typeof rawRepositories==="object"?Object.keys(rawRepositories):[],"access.repositories");if(Object.keys(repositories).length>64)invalid("access.repositories");const grants={};for(const key of Object.keys(repositories).sort()){if(!routineAlias(key)||!["read","write"].includes(repositories[key]))invalid(`access.repositories.${key}`);grants[key]=repositories[key]}if(access.files!==undefined&&!["read","read-write"].includes(access.files))invalid("access.files");const runtime=object2(v.runtime===undefined?{}:v.runtime,["features","resources","maxDuration"],"runtime");if(runtime.resources!==undefined&&!["standard","large"].includes(runtime.resources))invalid("runtime.resources");const duration=runtime.maxDuration===undefined?"15m":runtime.maxDuration;if(typeof duration!=="string"||!/^(?:[1-5][0-9]|60)m$/.test(duration)||Number(duration.slice(0,-1))<15)invalid("runtime.maxDuration");const retry=object2(v.retry===undefined?{}:v.retry,["maxAttempts"],"retry");const maxAttempts=retry.maxAttempts===undefined?1:retry.maxAttempts;if(!Number.isInteger(maxAttempts)||maxAttempts<1||maxAttempts>3)invalid("retry.maxAttempts");const assets=v.assets===undefined?[]:v.assets;if(!Array.isArray(assets)||assets.length>64||assets.some((item)=>!routineAssetPattern(item))||new Set(assets).size!==assets.length)invalid("assets");return{$schema:ROUTINE_DECLARATION_SCHEMA,access:{repositories:grants,connections:list(access.connections,"access.connections",undefined,true),...access.ai===true?{ai:true}:{},...access.files===undefined?{}:{files:access.files},publish:list(access.publish,"access.publish",["asks","digests"])},runtime:{features:list(runtime.features,"runtime.features",["python","documents","browser"]),resources:runtime.resources??"standard",maxDuration:duration},retry:{maxAttempts},assets:[...assets].sort()}}var invalid2=()=>{throw new AppRoutineContractError("invalid_value")};var invalidContract2=()=>{throw new AppRoutineContractError("invalid_contract")};var routineTitle=(value)=>typeof value==="string"&&value.trim().length>0&&value.length<=256;function freezeRoutineMetadata(value){if(value!==null&&typeof value==="object"){for(const child of Object.values(value))freezeRoutineMetadata(child);Object.freeze(value)}return value}function assertRoutineJson(value,ancestors=new Set){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return;if(!value||typeof value!=="object"||ancestors.has(value))return invalid2();const array2=Array.isArray(value);if(!array2&&Object.getPrototypeOf(value)!==Object.prototype&&Object.getPrototypeOf(value)!==null)return invalid2();const keys2=Reflect.ownKeys(value);if(array2&&(keys2.length!==value.length+1||!Array.from({length:value.length},(_,index)=>Object.hasOwn(value,index)).every(Boolean)))return invalid2();ancestors.add(value);for(const key of keys2){if(array2&&key==="length")continue;if(typeof key!=="string")return invalid2();const descriptor=Object.getOwnPropertyDescriptor(value,key);if(!descriptor.enumerable||!Object.hasOwn(descriptor,"value"))return invalid2();assertRoutineJson(descriptor.value,ancestors)}ancestors.delete(value)}function assertRoutineFields(value,allowed){if(!value||typeof value!=="object"||Object.getPrototypeOf(value)!==Object.prototype||Reflect.ownKeys(value).some((key)=>typeof key!=="string"||allowed&&!allowed.includes(key)||!Object.getOwnPropertyDescriptor(value,key).enumerable||!Object.hasOwn(Object.getOwnPropertyDescriptor(value,key),"value")))return invalidContract2()}function parseRoutineAccess(value){try{if(value!==undefined)assertRoutineJson(value);assertRoutineFields(value??{},["repositories","connections","ai","files","publish"]);const access=value;const names=access?.connections??[];if(!Array.isArray(names)||names.length>64||new Set(names).size!==names.length||names.some((name)=>typeof name!=="string"||name.split("/").length!==2||name.split("/").some((part)=>!isAppRoutineName(part))))return invalidContract2();const parsed=parseRoutineDeclaration({$schema:ROUTINE_DECLARATION_SCHEMA,access:{...access,connections:[]}}).access;return freezeRoutineMetadata({...parsed,connections:[...names]})}catch{return invalidContract2()}}init_files_contract();var ROUTINE_AI_VALUE_BYTES=256*1024;var ROUTINE_AI_EVIDENCE_BYTES=4*1024;var ROUTINE_AI_ERROR_CODES=["access_denied","capability_unavailable","invalid_input","unsupported_file","file_unavailable","input_too_large","output_too_large","provider_failure","invalid_output","cancelled"];class RoutineAIError extends Error{code;constructor(code){super(code);this.code=code;this.name="RoutineAIError"}}function parseRoutineAIError(value){try{assertRoutineJson(value);assertRoutineFields(value,["code"]);if(!ROUTINE_AI_ERROR_CODES.includes(value.code))throw new Error;return new RoutineAIError(value.code)}catch{throw new RoutineAIError("invalid_output")}}function capture(value,invalid3,oversized){try{assertRoutineJson(value);const encoded=JSON.stringify(value);if(new TextEncoder().encode(encoded).byteLength>ROUTINE_AI_VALUE_BYTES)throw new RoutineAIError(oversized);return freezeRoutineMetadata(JSON.parse(encoded))}catch(error){if(error instanceof RoutineAIError)throw error;throw new RoutineAIError(invalid3)}}function parseRoutineAIRequest(value){const v=capture(value,"invalid_input","input_too_large");try{assertRoutineFields(v,v.kind==="generateObject"?["kind","instructions","input","schema"]:["kind","instructions","input"]);if(!["generateText","generateObject"].includes(v.kind)||typeof v.instructions!=="string"||!v.instructions.trim())throw new Error;const input=typeof v.input==="string"?v.input:parseFileDescriptor(v.input);if(v.kind==="generateText")return freezeRoutineMetadata({kind:v.kind,instructions:v.instructions,input});const schema=parseAppRoutineContract({routine:"ai",input:v.schema,steps:[{id:"generate"}]}).input;return freezeRoutineMetadata({kind:v.kind,instructions:v.instructions,input,schema})}catch{throw new RoutineAIError("invalid_input")}}function parseRoutineAIResult(request,value){const v=capture(value,"invalid_output","output_too_large");try{if(request.kind==="generateText"){assertRoutineFields(v,["text"]);if(typeof v.text!=="string"||!v.text.trim())throw new Error;return freezeRoutineMetadata({text:v.text})}else{assertRoutineFields(v,["object"]);if(!Object.hasOwn(v,"object"))throw new Error;validateRoutineSchemaValue(request.schema,v.object);return freezeRoutineMetadata({object:v.object})}}catch{throw new RoutineAIError("invalid_output")}}var LIMIT=256*1024;var invalid3=()=>{throw new AppRoutineContractError("invalid_value")};var invalidContract3=()=>{throw new AppRoutineContractError("invalid_contract")};var empty={type:"object",properties:{},required:[],additionalProperties:false};function captureJson(value){assertRoutineJson(value);const encoded=JSON.stringify(value);if(new TextEncoder().encode(encoded).byteLength>LIMIT)return invalid3();return freezeRoutineMetadata(JSON.parse(encoded))}function capture2(schema,value){const captured=captureJson(value);validateRoutineSchemaValue(schema,captured);return captured}var schemas=new WeakMap;function nestedSchema(value){const metadata=schemaMetadata(value);if(Object.hasOwn(metadata,"default"))return invalidContract3();return metadata.schema}function schemaMetadata(value){if(!value||typeof value!=="object")return invalidContract3();const registered=schemas.get(value);if(registered)return registered;try{assertRoutineJson(value)}catch{return invalidContract3()}return{schema:parseAppRoutineContract({routine:"definition",input:value,steps:[{id:"inspect"}]}).input}}function declaration(value,defaults){try{assertRoutineJson(value)}catch{return invalidContract3()}const parsed=freezeRoutineMetadata(parseAppRoutineContract({routine:"definition",input:value,steps:[{id:"inspect"}]}).input);const captured=defaults?capture2(parsed,defaults.value):undefined;const builder=Object.defineProperty({...parsed},"default",{value:(value2)=>declaration(parsed,{value:value2})});schemas.set(builder,{schema:parsed,...defaults?{default:captured}:{}});return Object.freeze(builder)}var schema={object(properties){return declaration({type:"object",properties:Object.fromEntries(Object.entries(properties).map(([key,value])=>[key,nestedSchema(value)])),required:Object.keys(properties),additionalProperties:false})},array(items,options){return declaration({type:"array",items:nestedSchema(items),maxItems:options.maxItems})},string(options={}){return declaration({type:"string",...options})},integer(options={}){return declaration({type:"integer",...options})},number(options={}){return declaration({type:"number",...options})},boolean(){return declaration({type:"boolean"})}};var file=(options={})=>{assertRoutineFields(options,["storage","path"]);return declaration({type:"file",...options})};var definitions=new WeakMap;var defineRoutine=(definition)=>{assertRoutineFields(definition,["id","title","input","steps","result","access","responses","run"]);if(!isAppRoutineName(definition.id)||definition.title!==undefined&&!routineTitle(definition.title)||typeof definition.run!=="function")return invalidContract3();const input=definition.input===undefined?{schema:empty,default:{}}:schemaMetadata(definition.input);const result=definition.result===undefined?undefined:schemaMetadata(definition.result).schema;const access=parseRoutineAccess(definition.access);assertRoutineFields(definition.steps??{});const executable=Object.fromEntries(Object.entries(definition.steps??{}).map(([id2,step])=>{assertRoutineFields(step,["title","run"]);if(!routineTitle(step.title)||typeof step.run!=="function")return invalidContract3();return[id2,Object.freeze({title:step.title,run:step.run})]}));const steps=Object.entries(executable).map(([id2,step])=>({id:id2,title:step.title}));parseAppRoutineContract({routine:definition.id,input:input.schema,steps:steps.length?steps.map(({id:id2})=>({id:id2})):[{id:"inspect"}],...result?{result}:{}});const responses=[];const ids=new Set;if(definition.responses!==undefined){if(!Array.isArray(definition.responses)||definition.responses.length>64||Reflect.ownKeys(definition.responses).length!==definition.responses.length+1)return invalidContract3();for(let index=0;index<definition.responses.length;index++){const descriptor=Object.getOwnPropertyDescriptor(definition.responses,String(index));if(!descriptor||!Object.hasOwn(descriptor,"value"))return invalidContract3();const response=descriptor.value;assertRoutineFields(response,["id","results","run"]);if(!isAppRoutineName(response.id)||ids.has(response.id))return invalidContract3();ids.add(response.id);if(response.results!==undefined){try{assertRoutineJson(response.results)}catch{return invalidContract3()}}try{responses.push(defineHandler(response))}catch{return invalidContract3()}}}const contract=freezeRoutineMetadata({id:definition.id,...definition.title===undefined?{}:{title:definition.title},input:input.schema,...Object.hasOwn(input,"default")?{inputDefault:input.default}:{},access,responses:responses.map(({id:id2})=>({id:id2})),steps,...result?{result}:{}});const captured=Object.freeze({...definition,access,steps:Object.freeze(executable),responses:Object.freeze(responses),...definition.input===undefined?{}:{input:declaration(input.schema,Object.hasOwn(input,"default")?{value:input.default}:undefined)},...result===undefined?{}:{result:declaration(result)},run:(input2,os)=>executeRoutineDefinition(captured,input2,os)});definitions.set(captured,{contract,steps:executable,run:definition.run});return captured};function inspectRoutineDefinition(definition){if(!definition||typeof definition!=="object")return invalidContract3();const registered=definitions.get(definition);if(!registered)return invalidContract3();return registered.contract}function captureRoutineInput(definition,input){const contract=inspectRoutineDefinition(definition);return capture2(contract.input,input===undefined&&Object.hasOwn(contract,"inputDefault")?contract.inputDefault:input)}async function executeRoutineDefinition(definition,input,runtime){const captured=captureRoutineInput(definition,input);const{contract,steps,run}=definitions.get(definition);let active=true,accepting=true,broken=false;let work=Promise.resolve();let aiFailure;const aiWork=new Set;const generate=(kind,value)=>{const operation=(async()=>{if(!active||broken||contract.access.ai!==true)throw new RoutineAIError("access_denied");if(!runtime.ai)throw new RoutineAIError("capability_unavailable");let request;try{assertRoutineFields(value,kind==="generateObject"?["instructions","input","schema"]:["instructions","input"]);request=parseRoutineAIRequest({kind,instructions:value.instructions,input:value.input,...kind==="generateObject"?{schema:schemaMetadata(value.schema).schema}:{}})}catch(error){if(error instanceof RoutineAIError)throw error;throw new RoutineAIError("invalid_input")}const result2=await runtime.ai[kind](request);if(!active||broken)throw new RoutineAIError("access_denied");return parseRoutineAIResult(request,result2)})();aiWork.add(operation);operation.then(()=>aiWork.delete(operation),(error)=>{aiFailure??=error;broken=true;aiWork.delete(operation)});return operation};const called=new Set;const reached=new Set;const guarded=(value,receiver)=>typeof value==="function"?(...args)=>{if(!active||broken)throw new Error("Run authority ended");return guarded(Reflect.apply(value,receiver,args))}:value&&typeof value==="object"&&!(value instanceof Promise)?new Proxy({...value},{get(_target,key){return guarded(Reflect.get(value,key,value),value)}}):value;const validateHandlers=(value)=>{for(const question2 of value.questions??[])if(question2.handler&&!contract.responses.some((handler)=>handler.id===question2.handler.id))return invalid3();return value};const os=Object.freeze({...guarded({...runtime,run:freezeRoutineMetadata({...runtime.run}),ai:{generateText:(value)=>generate("generateText",value),generateObject:(value)=>generate("generateObject",value)},connections:{...runtime.connections,get:async(identity)=>{if(!active||broken||!contract.access.connections?.includes(identity))throw new Error("Connection unavailable");const value=await runtime.connections.get(identity);if(!active||broken)throw new Error("Run authority ended");return value}},inbox:{...runtime.inbox,publishAsk:(value,options)=>runtime.inbox.publishAsk(validateHandlers(value),options)}}),step(id2,...input2){let saved;try{if(!active||!accepting||broken||!Object.hasOwn(steps,id2)||called.has(id2)||input2.length>1)return invalid3();if(input2.length)saved=captureJson(input2[0]);called.add(id2)}catch(error){broken=true;return Promise.reject(error)}const next=work.then(async()=>{if(broken)return invalid3();reached.add(id2);try{await runtime.step(id2,{status:"running"});const output=await steps[id2].run(saved,os);assertRoutineFields(output,["summary","data"]);if(!Object.hasOwn(output,"summary")||!Object.hasOwn(output,"data"))return invalid3();const summary=captureJson(output.summary),data=captureJson(output.data);await runtime.step(id2,{status:"completed",summary,data});return freezeRoutineMetadata({summary,data})}catch(error){broken=true;await runtime.step(id2,{status:"failed"});throw error}});work=next.then(()=>{},()=>{broken=true});return next}});let result,failure;try{result=await run(captured,os)}catch(error){failure=error;broken=true}accepting=false;await work;while(aiWork.size)await Promise.allSettled([...aiWork]);active=false;for(const step of contract.steps)if(!reached.has(step.id))await runtime.step(step.id,{status:"skipped"});if(broken)throw failure??aiFailure??new AppRoutineContractError("invalid_value");if(contract.result!==undefined)return capture2(contract.result,result);if(result!==undefined)return invalid3();return}class DataOperationError extends Error{code;retryable;effect;component;constructor(code,retryable=false,effect,component){super(`Data operation failed: ${code}`);this.code=code;this.retryable=retryable;this.effect=effect;this.component=component;this.name="DataOperationError"}}var invalid4=()=>{throw new DataOperationError("invalid_query")};var historyText=(value)=>typeof value==="string"&&!/[\u0000\uD800-\uDFFF]/u.test(value);function historyVersion(value){return historyText(value)&&value.length>0&&new TextEncoder().encode(value).length<=1024&&!/[\u0000-\u001f\u007f-\u009f]/.test(value)&&!/^[0-9a-f]{40}$/i.test(value)}function historyProperties(value){if(!value||typeof value!=="object"||Array.isArray(value)||![Object.prototype,null].includes(Object.getPrototypeOf(value)))return invalid4();const descriptors=Object.getOwnPropertyDescriptors(value);if(Reflect.ownKeys(value).some((key)=>typeof key!=="string"||!descriptors[key]?.enumerable||!Object.hasOwn(descriptors[key],"value")))return invalid4();return descriptors}var historyCollection=(value)=>typeof value==="string"&&value.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(value);var historyCursor=(value)=>typeof value==="string"&&value.length<=128*1024&&/^history-cursor-v1\.[A-Za-z0-9_-]{1,64}\.[A-Za-z0-9_-]{16}\.[A-Za-z0-9_-]+$/.test(value);function historyArray(value){if(!Array.isArray(value)||Object.getPrototypeOf(value)!==Array.prototype)return invalid4();const descriptors=Object.getOwnPropertyDescriptors(value);if(Reflect.ownKeys(value).length!==value.length+1)return invalid4();const result=[];for(let i=0;i<value.length;i++){const descriptor=descriptors[i];if(!descriptor?.enumerable||!Object.hasOwn(descriptor,"value"))return invalid4();result.push(descriptor.value)}return result}function captureOptions(value,changes){if(value===undefined)return{};const descriptors=historyProperties(value),result={};const allowed=changes?["collections","refs","from","through","limit","after"]:["limit","before"];if(Object.keys(descriptors).some((key)=>!allowed.includes(key)))return invalid4();for(const key of allowed){if(!Object.hasOwn(descriptors,key))continue;const scalar=descriptors[key].value;if(key==="collections"||key==="refs"){const values=historyArray(scalar);if(!values.length||values.length>(key==="collections"?16:100)||!values.every(key==="collections"?historyCollection:validRecordRef)||new Set(values).size!==values.length)return invalid4();result[key]=values}else if(key==="limit"){if(!Number.isInteger(scalar)||scalar<1||scalar>(changes?500:100))return invalid4();result.limit=scalar}else{if(!(key==="after"?historyCursor(scalar):historyVersion(scalar)))return invalid4();result[key]=scalar}}return result}var captureHistoryListOptions=(value)=>captureOptions(value,false);var captureHistoryChangesOptions=(value)=>captureOptions(value,true);function captureHistoryInstant(value){if(!historyText(value)||value.length>1024)return invalid4();const match=/^(\d{4})-(\d{2})-(\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?([Zz]|([+-])(\d{2}):(\d{2}))$/.exec(value);if(!match)return invalid4();const[year,month,day,hour,minute,second]=match.slice(1,7).map(Number);const days=new Date(Date.UTC(year,month,0));days.setUTCFullYear(year);if(year<1||month<1||month>12||day<1||day>days.getUTCDate()||hour>23||minute>59||second>59||Number(match[9]??0)>23||Number(match[10]??0)>59)return invalid4();return value}var invalid5=()=>{throw new DataOperationError("invalid_query")};function captureRecordsSearchInput(query,options){if(!historyText(query))return invalid5();const length=[...query.trim()].length;if(length<1||length>256)return invalid5();if(options===undefined)return{query};const descriptors=historyProperties(options);if(Object.keys(descriptors).some((key)=>!["collections","limit"].includes(key)))return invalid5();const captured={};if(Object.hasOwn(descriptors,"collections")){const supplied=descriptors.collections.value;if(!Array.isArray(supplied)||supplied.length<1||supplied.length>16||Reflect.ownKeys(supplied).length!==supplied.length+1)return invalid5();const collections=[];for(let index=0;index<supplied.length;index++){const descriptor=Object.getOwnPropertyDescriptor(supplied,String(index));if(!descriptor?.enumerable||!Object.hasOwn(descriptor,"value")||!historyText(descriptor.value))return invalid5();collections.push(descriptor.value)}if(new Set(collections).size!==collections.length)return invalid5();captured.collections=collections}if(Object.hasOwn(descriptors,"limit")){const supplied=descriptors.limit.value;if(!Number.isInteger(supplied)||supplied<1||supplied>100)return invalid5();captured.limit=supplied}return{query,options:captured}}function captureRecordsReadRefs(value){if(!Array.isArray(value)||value.length<1||value.length>100)throw new DataOperationError("invalid_query");const refs=historyArray(value);if(!refs.every((ref)=>validRecordRef(ref)&&!/[\r\n]/.test(ref))||new Set(refs).size!==refs.length)throw new DataOperationError("invalid_query");return refs}var DATA_REQUEST_LIMIT=256*1024;var invalidChange=()=>{throw new DataOperationError("invalid_change",false,"unapplied")};function mapping(value){try{historyProperties(value);return value}catch{return invalidChange()}}function captureValue(value,ancestors=new Set,depth=0){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return value;if(!value||typeof value!=="object"||ancestors.has(value)||depth>32)return invalidChange();ancestors.add(value);try{if(Array.isArray(value)){if(value.length>1e5||Object.keys(value).length!==value.length||Object.getOwnPropertySymbols(value).length)return invalidChange();return Array.from(value,(item)=>captureValue(item,ancestors,depth+1))}return Object.fromEntries(Object.entries(mapping(value)).map(([key,item])=>{if(["__proto__","constructor","prototype"].includes(key))return invalidChange();return[key,captureValue(item,ancestors,depth+1)]}))}finally{ancestors.delete(value)}}function captureDataDelete(record2){const identity=mapping(record2);if(!validRecordRef(identity.$ref)||typeof identity.$version!=="string"||!identity.$version.length||identity.$version.length>512)return invalidChange();return{ref:identity.$ref,expectedVersion:identity.$version}}function captureDataUpdate(record2,set){const identity=captureDataDelete(record2),fields3=mapping(set);if(!Object.keys(fields3).length||Object.keys(fields3).some((key)=>key.startsWith("$")||["id","type"].includes(key)))return invalidChange();return{...identity,set:captureValue(fields3)}}function captureIdentities(value,update,allowEmpty=true){if(!Array.isArray(value)||!allowEmpty&&!value.length||value.length>1e4)return invalidChange();const captured=value.map((item)=>{const row=mapping(item);if(Object.keys(row).sort().join(",")!==(update?"expectedVersion,ref,set":"expectedVersion,ref"))return invalidChange();const identity={$ref:row.ref,$version:row.expectedVersion};return update?captureDataUpdate(identity,row.set):captureDataDelete(identity)});if(new Set(captured.map((item)=>item.ref)).size!==captured.length)return invalidChange();return captured}function captureDataUpdates(value,allowEmpty=false){return captureIdentities(value,true,allowEmpty)}function captureDataCreate(value){const row=mapping(value);if(!validRecordRef(row.$ref)||Object.keys(row).some((key)=>key.startsWith("$")&&!["$ref","$filing"].includes(key)))return invalidChange();const{$ref:ref,$filing,...fields3}=row;let filing;if($filing!==undefined){const components=mapping($filing);if(Object.entries(components).some(([name,value2])=>!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name)||["constructor","prototype"].includes(name)||typeof value2!=="string"||!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(value2)))return invalidChange();filing={...components}}return{ref,fields:captureValue(fields3),...filing?{filing}:{}}}function captureDataChanges(updatesValue,createsValue=[],deletesValue=[]){const updates=captureDataUpdates(updatesValue,true);if(!Array.isArray(createsValue)||createsValue.length>1e4)return invalidChange();const creates=createsValue.map((item)=>{const row=mapping(item);if(Object.keys(row).some((key)=>!["ref","fields","filing"].includes(key))||!Object.hasOwn(row,"ref")||!Object.hasOwn(row,"fields"))return invalidChange();const fields3=mapping(row.fields);if(Object.keys(fields3).some((key)=>key.startsWith("$")))return invalidChange();return captureDataCreate({...fields3,$ref:row.ref,...Object.hasOwn(row,"filing")?{$filing:row.filing}:{}})});const deletes=captureIdentities(deletesValue,false);const refs=[...updates,...creates,...deletes].map((item)=>item.ref);if(!refs.length||refs.length>1e4||new Set(refs).size!==refs.length)return invalidChange();return{updates,creates,deletes}}function checkDataRequestSize(input){if(new TextEncoder().encode(JSON.stringify(input)).byteLength>DATA_REQUEST_LIMIT)throw new DataOperationError("request_too_large",false,"unapplied")}function dataTransportError(status,value){const failures={400:["invalid_query","invalid_change"],401:["unauthenticated"],403:["access_denied"],409:["conflict","publication_pending"],413:["request_too_large"],429:["capacity"],503:["unavailable","publication_pending"]};const error=value&&typeof value==="object"&&"error"in value?value.error:undefined;const row=error&&typeof error==="object"?error:undefined;const code=failures[status]?.find((allowed)=>allowed===row?.code)??"unavailable";const effect=["unapplied","uncertain","applied"].includes(String(row?.effect))?row.effect:undefined;return new DataOperationError(code,["capacity","unavailable","publication_pending"].includes(code),code==="conflict"?"unapplied":effect,code==="invalid_change"&&typeof row?.component==="string"&&/^[a-zA-Z][a-zA-Z0-9_-]{0,127}$/.test(row.component)?row.component:undefined)}init_files_contract();var AUTH_ORIGIN="https://auth.oddington.ai";function oddingtonOrigin(environment=process.env){const value=environment.OS_ORIGIN??AUTH_ORIGIN;const url=new URL(value);if(url.protocol!=="https:"&&url.hostname!=="127.0.0.1")throw new Error("OS_ORIGIN must use HTTPS");return url.origin}init_files_contract();var nodeRequest;var nodeReadable;if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){({request:nodeRequest}=await import("node:http"));({Readable:nodeReadable}=await import("node:stream"))}function privateRoutineRequest(environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env){if(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__)return;const prepared=["OS_ROUTINE_LOCAL","OS_ROUTINE_LOCAL_SOCKET","OS_ROUTINE_LOCAL_TOKEN"].some((key)=>environment[key]!==undefined);const managed=["OS_FILES_SOCKET","OS_FILES_TOKEN"].some((key)=>environment[key]!==undefined);if(!prepared&&!managed)return;const socket=prepared?environment.OS_ROUTINE_LOCAL_SOCKET:environment.OS_FILES_SOCKET;const token=prepared?environment.OS_ROUTINE_LOCAL_TOKEN:environment.OS_FILES_TOKEN;const request=localRoutineRequest(prepared?environment:{OS_ROUTINE_LOCAL:"1",OS_ROUTINE_LOCAL_SOCKET:socket,OS_ROUTINE_LOCAL_TOKEN:token});const isCurrent=()=>prepared?environment.OS_ROUTINE_LOCAL==="1"&&environment.OS_ROUTINE_LOCAL_SOCKET===socket&&environment.OS_ROUTINE_LOCAL_TOKEN===token:environment.OS_FILES_SOCKET===socket&&environment.OS_FILES_TOKEN===token;if(!nodeRequest||!nodeReadable)throw new Error("Files transport unavailable");const httpRequest=nodeRequest,Readable=nodeReadable;const files=async(suffix,init,signal)=>{if(!isCurrent())throw new FileOperationError("unsupported_context",400);const tcp=/^tcp:\/\/127\.0\.0\.1:([1-9][0-9]{0,4})$/.exec(socket);const endpoint=tcp?{hostname:"127.0.0.1",port:Number(tcp[1])}:{socketPath:socket};const id2=crypto.randomUUID();if(init.body instanceof ReadableStream||suffix===""&&init.method==="POST"){await new Promise((resolve,reject)=>{const admission=httpRequest({...endpoint,path:"/files/admit",method:"POST",timeout:30000,signal,agent:false,headers:{...Object.fromEntries(new Headers(init.headers)),authorization:`Bearer ${token}`,"x-os-files-suffix":encodeURIComponent(suffix),"x-os-files-method":init.method??"GET"}},(response)=>{const bytes=Buffer.alloc(16384);let size=0;response.on("data",(chunk)=>{size+=chunk.length;if(size>16384)response.destroy(new Error("Files admission result exceeds supported size"));else bytes.set(chunk,size-chunk.length)});response.once("error",reject);response.once("end",()=>{if(response.statusCode===204){resolve();return}try{const value=JSON.parse(bytes.subarray(0,size).toString());const code=value?.error?.code;const status=response.statusCode??503;if(["invalid_input","request_too_large","unsupported_context","access_denied","capacity","unavailable"].includes(code))reject(new FileOperationError(code,status,code==="capacity"||code==="unavailable"));else reject(new FileOperationError("unavailable",503,true))}catch{reject(new FileOperationError("unavailable",503,true))}})});admission.once("error",()=>reject(new FileOperationError("unavailable",503,true)));admission.once("timeout",()=>admission.destroy(new Error("Files admission stalled")));admission.end()});if(!isCurrent())throw new FileOperationError("unsupported_context",400)}let cancellation;const cancelCall=()=>cancellation??=new Promise((resolve,reject)=>{const cancel=httpRequest({...endpoint,path:"/files/cancel",method:"POST",timeout:30000,headers:{authorization:`Bearer ${token}`,"x-os-files-call":id2}},(response)=>{response.resume();response.once("end",resolve);response.once("error",reject)});cancel.once("error",reject);cancel.once("timeout",()=>cancel.destroy(new Error("Files cancellation stalled")));cancel.end()});let pumping=Promise.resolve();let sourceReader;const result=new Promise((resolve,reject)=>{const call=httpRequest({...endpoint,path:"/files/stream",method:"POST",headers:{...Object.fromEntries(new Headers(init.headers)),authorization:`Bearer ${token}`,"x-os-files-call":id2,"x-os-files-suffix":encodeURIComponent(suffix),"x-os-files-method":init.method??"GET"},signal,timeout:30000,agent:false},async(response)=>{try{call.setTimeout(0);if((response.statusCode??503)>=400){await sourceReader?.cancel().catch(()=>{});call.end()}await pumping;if(!isCurrent()){response.destroy();reject(new FileOperationError("unsupported_context",400));return}const headers=new Headers;for(const[key,value]of Object.entries(response.headers))if(value!==undefined)headers.set(key,Array.isArray(value)?value.join(", "):value);const source=Readable.toWeb(response,{strategy:{highWaterMark:65536,size:(chunk)=>chunk.byteLength}});const reader=source.getReader();if(response.statusCode===204){const timer=setTimeout(()=>response.destroy(new Error("Files completion stalled")),30000);try{if(!(await reader.read()).done)throw new FileOperationError("unavailable",503,true);if(!isCurrent())throw new FileOperationError("unsupported_context",400);resolve(new Response(null,{status:204,headers}))}finally{clearTimeout(timer);reader.releaseLock()}return}let closed=false;const body=new ReadableStream({async pull(controller){let timer;try{if(!isCurrent())throw new FileOperationError("unsupported_context",400);timer=setTimeout(()=>response.destroy(new Error("Files delivery stalled")),30000);const next=await reader.read();if(closed)return;if(next.done){closed=true;reader.releaseLock();controller.close()}else controller.enqueue(next.value)}catch(error){closed=true;controller.error(error);await cancelCall().catch(()=>{});response.socket?.destroy();response.destroy();await reader.cancel(error).catch(()=>{});reader.releaseLock()}finally{clearTimeout(timer)}},async cancel(reason){closed=true;await cancelCall().catch(()=>{});response.socket?.destroy();response.destroy();call.destroy();await reader.cancel(reason).catch(()=>{});reader.releaseLock()}},{highWaterMark:0});resolve(new Response(body,{status:response.statusCode??503,headers}))}catch(error){response.destroy();reject(error instanceof FileOperationError?error:new FileOperationError("unavailable",503,true))}});call.on("error",(error)=>{cancelCall().catch(()=>{});reject(error instanceof FileOperationError?error:new FileOperationError("unavailable",503,true))});call.on("timeout",()=>call.destroy(new Error("Files I/O stalled")));call.on("information",()=>call.setTimeout(30000));if(init.body instanceof ReadableStream){call.flushHeaders();const reader=sourceReader=init.body.getReader();const abort=()=>{reader.cancel(signal.reason).catch(()=>{})};signal.addEventListener("abort",abort,{once:true});call.once("close",abort);pumping=(async()=>{try{for(;;){const next=await reader.read();if(next.done)break;if(!(next.value instanceof Uint8Array))throw new FileOperationError("invalid_input",400);if(!isCurrent())throw new FileOperationError("unsupported_context",400);for(let offset=0;offset<next.value.byteLength;offset+=262144){if(call.destroyed)throw new Error("Files parent disconnected");await new Promise((done,fail2)=>{const closed=()=>fail2(new Error("Files parent disconnected"));call.once("close",closed);call.write(next.value.subarray(offset,offset+262144),(error)=>{call.removeListener("close",closed);error?fail2(error):done()})})}}call.end()}catch(error){call.destroy(error instanceof Error?error:new Error("Files transport failed"))}finally{await reader.cancel().catch(()=>{});signal.removeEventListener("abort",abort);call.removeListener("close",abort);reader.releaseLock()}})()}else call.end(init.body===undefined?undefined:Buffer.from(init.body))});try{return await result}finally{await pumping}};return{request,files,isCurrent,identity:`private:${socket}`}}function localRoutineRequest(environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env){if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const{OS_ROUTINE_LOCAL:mode,OS_ROUTINE_LOCAL_SOCKET:socket,OS_ROUTINE_LOCAL_TOKEN:token}=environment;if(mode===undefined&&socket===undefined&&token===undefined)return;if(mode!=="1"||!socket||!token||!/^[0-9a-f]{64}$/.test(token))throw new Error("Preparation transport unavailable; nothing can publish");const tcp=/^tcp:\/\/127\.0\.0\.1:([1-9][0-9]{0,4})$/.exec(socket);const endpoint=tcp&&tcp[0]===socket&&Number(tcp[1])<=65535?{hostname:"127.0.0.1",port:Number(tcp[1])}:socket.startsWith("/")&&!socket.startsWith("//")&&!socket.includes("\x00")?{socketPath:socket}:undefined;if(!endpoint)throw new Error("Preparation transport unavailable; nothing can publish");return async(operation,input)=>{const{request}=await import("node:http");return await new Promise((resolve,reject)=>{const call=request({...endpoint,path:`/${operation}`,method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${token}`},timeout:operation==="ai/generate"?125000:120000},(response)=>{const limit=operation==="ai/generate"?ROUTINE_AI_VALUE_BYTES:33554432;const bytes=Buffer.alloc(limit);let size=0;response.on("data",(chunk)=>{size+=chunk.length;if(size>limit){response.destroy();reject(operation==="ai/generate"?new RoutineAIError("output_too_large"):new Error("Local result exceeds supported size"))}else bytes.set(chunk,size-chunk.length)});response.on("error",(error)=>reject(operation==="ai/generate"?new RoutineAIError("capability_unavailable"):error));response.on("end",()=>{try{const result=JSON.parse(bytes.subarray(0,size).toString());if(response.statusCode!==200){if(operation==="ai/generate")throw parseRoutineAIError(result.error);if(operation==="files/request"){const error=result.error;const status=response.statusCode??503;const codes=["invalid_input","unsupported_context","unauthenticated","access_denied","request_too_large","conflict","local_only","integrity","unavailable","capacity","method_not_allowed"];if(error?.code&&codes.includes(error.code))throw new FileOperationError(error.code,status,error.code==="capacity"||error.code==="unavailable");throw new FileOperationError("unavailable",503,true)}if(operation==="data/query"){throw dataTransportError(response.statusCode??0,result)}throw new Error(typeof result.error==="string"?result.error:"Preparation failed")}resolve(result)}catch(error){reject(operation==="ai/generate"&&!(error instanceof RoutineAIError)?new RoutineAIError("invalid_output"):error)}})});call.on("error",()=>reject(operation==="ai/generate"?new RoutineAIError("capability_unavailable"):operation==="data/query"?dataTransportError(503,{error:{code:"unavailable"}}):new Error("Preparation transport unavailable; nothing was published")));call.on("timeout",()=>call.destroy(new Error("Preparation timed out")));call.end(JSON.stringify(input))})}}}var installed;var ended=false;function routineTransport(){if(ended||installed&&!installed.isCurrent())throw new Error("Routine authority ended");return installed}var memberContext;var retainedContext;function installMemberContext(resolve,retained=resolve){memberContext=resolve;retainedContext=retained;return()=>{if(memberContext===resolve){memberContext=undefined;retainedContext=undefined}}}async function resolveAppContext(retained=false){const host=memberContext;if(!host)throw new Error("App context unavailable.");const context=await(retained?retainedContext:host)();if(host!==memberContext||!context.isCurrent()||context.expiresAt<=Date.now()||context.kind!=="local"&&(typeof context.accessToken!=="string"||!/^[^\s]{1,8192}$/.test(context.accessToken))){throw new Error("App context unavailable.")}return context}async function resolveDataContext(){try{if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const installed2=routineTransport();if(installed2)return{local:installed2.request};const local=localRoutineRequest();if(local)return{local};const managed=privateRoutineRequest();if(managed)return{local:managed.request}}const host=memberContext;if(host!==undefined){const context=await host();if(host!==memberContext||!context.isCurrent()||context.expiresAt<=Date.now())throw new Error;if(context.kind==="local")return{local:context.requestData};if(!context||!Number.isFinite(context.expiresAt)||context.expiresAt<=Date.now()||typeof context.accessToken!=="string"||!/^[^\s]{1,8192}$/.test(context.accessToken))throw new Error;return checked(context.workspace,context.endpoint,{authorization:`Bearer ${context.accessToken}`})}if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const environment=typeof process==="undefined"?undefined:process.env;if(!environment||!/^[0-9a-f]{64}$/.test(environment.OS_ROUTINE_RUN??""))throw new Error;return checked(environment.OS_ROUTINE_WORKSPACE,oddingtonOrigin(environment),{"x-os-run":environment.OS_ROUTINE_RUN})}throw new Error}catch{throw new DataOperationError("context_unavailable")}}async function resolveFilesContext(){try{const environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env;if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const installed2=routineTransport();if(installed2)return{url:"private:installed",headers:{},isCurrent:installed2.isCurrent,local:installed2.request,localFiles:installed2.files,signal:undefined};const local=privateRoutineRequest(environment);if(local)return{url:local.identity,headers:{},isCurrent:local.isCurrent,local:local.request,localFiles:local.files,signal:undefined}}const host=memberContext;if(host){const context=await host();if(host!==memberContext||!context.isCurrent()||context.expiresAt<=Date.now())throw new Error;if(context.kind==="local")return{url:`private:app:${context.workspace}/${context.memberId}`,headers:{},isCurrent:context.isCurrent,signal:context.signal,local:undefined,localFiles:context.requestFiles};if(!Number.isFinite(context.expiresAt)||context.expiresAt<=Date.now()||typeof context.accessToken!=="string"||!/^[^\s]{1,8192}$/.test(context.accessToken))throw new Error;return{...filesContext(context.workspace,context.endpoint,{authorization:`Bearer ${context.accessToken}`}),isCurrent:context.isCurrent,local:undefined,localFiles:undefined,signal:undefined}}if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){if(!/^[0-9a-f]{64}$/.test(environment.OS_ROUTINE_RUN??""))throw new Error;const workspace=environment.OS_ROUTINE_WORKSPACE;return{...filesContext(workspace,`https://${workspace}.oddington.ai`,{"x-os-run":environment.OS_ROUTINE_RUN}),local:undefined,localFiles:undefined,signal:undefined}}throw new Error}catch{throw new FileOperationError("unsupported_context",400)}}function filesContext(workspace,endpoint,headers){if(!workspace||!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(workspace)||workspace.length>63||["auth","www","api","os"].includes(workspace)||endpoint!==`https://${workspace}.oddington.ai`)throw new Error;return{url:`${endpoint}/api/files`,headers:{...headers,"x-os-workspace":workspace},isCurrent:()=>true}}function checked(workspace,endpoint,headers){if(!workspace||!/^[a-z0-9][a-z0-9-]{0,127}$/.test(workspace))throw new Error;const origin=new URL(endpoint);if(origin.protocol!=="https:"||origin.username||origin.password||origin.search||origin.hash||origin.pathname!=="/")throw new Error;return{url:`${origin.origin}/api/data`,headers:{...headers,"x-os-workspace":workspace}}}var invalid6=()=>{throw new DataOperationError("invalid_query")};var unavailable=()=>{throw new DataOperationError("unavailable")};var text2=(value)=>typeof value==="string"&&value.length>0;function capture3(value,ancestors=new Set,depth=0){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return value;if(!value||typeof value!=="object"||ancestors.has(value)||depth>32)return invalid6();ancestors.add(value);try{if(Array.isArray(value))return historyArray(value).map((item)=>capture3(item,ancestors,depth+1));return Object.fromEntries(Object.entries(historyProperties(value)).map(([key,descriptor])=>[key,capture3(descriptor.value,ancestors,depth+1)]))}finally{ancestors.delete(value)}}function recordPagination(select){function pages(query){const captured=capture3(query);const names=Object.keys(historyProperties(captured));for(const name of names){const selection2=historyProperties(captured[name]);if(Object.hasOwn(selection2,"$")){const options=historyProperties(selection2.$.value);if(Object.hasOwn(options,"after"))return invalid6()}}return iterate();async function*iterate(){const state=new Map(names.map((name)=>[name,{seen:new Set,total:0,count:undefined,next:undefined}]));let active=names,version;do{const request=Object.fromEntries(active.map((name)=>{const selection2=captured[name];const next=state.get(name).next;return[name,next===undefined?selection2:{...selection2,$:{...selection2.$,after:next}}]}));const response=await select(request);let page;try{page=capture3(response);const keys2=Object.keys(historyProperties(page));if(keys2.length!==active.length+1||keys2.some((key)=>key!=="$meta"&&!active.includes(key)))unavailable();const meta=page.$meta;if(Object.keys(historyProperties(meta)).sort().join(",")!=="collections,version"||!text2(meta.version)||version!==undefined&&version!==meta.version)unavailable();version=meta.version;const collectionKeys=Object.keys(historyProperties(meta.collections));if(collectionKeys.some((key)=>!active.includes(key)))unavailable();for(const name of active){const records=historyArray(page[name]);const metadata=Object.hasOwn(meta.collections,name)?meta.collections[name]:{};if(Object.keys(historyProperties(metadata)).some((key)=>key!=="count"&&key!=="next")||Object.hasOwn(metadata,"next")&&!text2(metadata.next))unavailable();for(const record2 of records){historyProperties(record2);const row=record2;if(!validRecordRef(row.$ref)||!text2(row.$version))unavailable()}const current=state.get(name);if(captured[name].$?.count===true){if(!Number.isSafeInteger(metadata.count)||metadata.count<0||current.count!==undefined&¤t.count!==metadata.count)unavailable();current.count=metadata.count}else if(Object.hasOwn(metadata,"count"))unavailable();current.total+=records.length;if(!Number.isSafeInteger(current.total)||current.count!==undefined&&(current.total>current.count||metadata.next===undefined&¤t.total!==current.count))unavailable();if(metadata.next!==undefined){if(current.seen.has(metadata.next))unavailable();current.seen.add(metadata.next)}current.next=metadata.next}}catch{return unavailable()}const collections=Object.fromEntries(names.map((name)=>{const current=state.get(name);return[name,{...current.count===undefined?{}:{count:current.count},...current.next===undefined?{}:{next:current.next}}]}));const output=Object.fromEntries(names.map((name)=>[name,active.includes(name)?page[name]:[]]));active=active.filter((name)=>state.get(name).next!==undefined);yield{...output,$meta:{version,collections}}}while(active.length)}}async function all(query,options){const properties=historyProperties(options);const maxRecords=properties.maxRecords?.value;if(Object.keys(properties).join(",")!=="maxRecords"||!Number.isSafeInteger(maxRecords)||maxRecords<1)invalid6();let result,total=0;for await(const page of pages(query)){const names=Object.keys(page.$meta.collections);const size=names.reduce((sum,name)=>sum+page[name].length,0);if(size>maxRecords-total)throw new DataOperationError("capacity");total+=size;result??={...Object.fromEntries(names.map((name)=>[name,[]])),$meta:page.$meta};for(const name of names){const target=result[name];for(const record2 of page[name])target.push(record2)}result.$meta=page.$meta}return result}return{pages,all}}var genericData={repository(repository){async function send(input){const context=await resolveDataContext();const envelope={repository,...input};checkDataRequestSize(envelope);if("local"in context)return await context.local("data/query",envelope);try{const response=await fetch(context.url,{method:"POST",redirect:"error",cache:"no-store",headers:{"content-type":"application/json",...context.headers},body:JSON.stringify(envelope)});const result=await response.json();if(!response.ok){throw dataTransportError(response.status,result)}return result}catch(error){if(error instanceof DataOperationError)throw error;throw new DataOperationError("unavailable",true)}}async function read(input){const refs=captureRecordsReadRefs(typeof input==="string"?[input]:input);const result=await send({operation:"records.read",refs});return typeof input==="string"?result.records[0]:result}const select=(query)=>send({operation:"records.select",query});return{collections:{list:()=>send({operation:"collections.list"}),schema:(name)=>send({operation:"collections.schema",name})},records:{read,select,...recordPagination(select),search:async(query,options)=>send({operation:"records.search",...captureRecordsSearchInput(query,options)})},history:{list:async(options)=>send({operation:"history.list",options:captureHistoryListOptions(options)}),at:async(instant)=>send({operation:"history.at",instant:captureHistoryInstant(instant)}),changes:async(options)=>send({operation:"history.changes",options:captureHistoryChangesOptions(options)})},changes(){let updates=[],creates=[],deletes=[],publicationId;let pending,confirmed;const assertMutable=()=>{if(publicationId)throw new DataOperationError("invalid_change",false,"unapplied")};const snapshot=(nextUpdates=updates,nextCreates=creates,nextDeletes=deletes)=>{const{updates:updates2,creates:creates2,deletes:deletes2}=captureDataChanges(nextUpdates,nextCreates,nextDeletes);const input={updates:updates2,...creates2.length?{creates:creates2}:{},...deletes2.length?{deletes:deletes2}:{}};checkDataRequestSize({repository,operation:"changes.publish",...input,publicationId:publicationId??"00000000-0000-4000-8000-000000000000"});return input};return{create(record2){assertMutable();const next=[...creates,captureDataCreate(record2)];snapshot(updates,next,deletes);creates=next},update(record2,set){assertMutable();const next=[...updates,captureDataUpdate(record2,set)];snapshot(next,creates,deletes);updates=next},delete(record2){assertMutable();const next=[...deletes,captureDataDelete(record2)];snapshot(updates,creates,next);deletes=next},async validate(){await send({operation:"changes.validate",...snapshot()})},publish(){if(confirmed)return Promise.resolve(structuredClone(confirmed));if(!pending){let captured;try{captured=snapshot()}catch(error){return Promise.reject(error)}publicationId??=routineTransport()?.key("data")??crypto.randomUUID();pending=send({operation:"changes.publish",...captured,publicationId}).then((result)=>{confirmed=structuredClone(result);return result}).catch((error)=>{if(error instanceof DataOperationError)throw new DataOperationError(error.code,error.retryable,error.effect??(["unavailable","publication_pending"].includes(error.code)?"uncertain":"unapplied"),error.component);throw new DataOperationError("unavailable",true,"uncertain")}).finally(()=>{pending=undefined})}return pending.then((result)=>structuredClone(result))}}}}}};var data=genericData;init_files_contract();init_files_contract();async function hostedContent(url,init,parent,upstream=fetch,check=async()=>{},failure){const delivery=new AbortController;const abort=()=>delivery.abort(parent.reason);parent.addEventListener("abort",abort,{once:true});if(parent.aborted)abort();const detach=()=>parent.removeEventListener("abort",abort);try{const response=await upstream(url,{...init,signal:delivery.signal});try{await check();if(delivery.signal.aborted)throw failure?.()??new FileOperationError("unavailable",503,true)}catch(error){response.body?.cancel().catch(()=>{});throw error}if(!response.body){detach();return response}const source=response.body;let reader;let settled=false;let output;const cancel=async(reason)=>{if(settled)return;settled=true;detach();delivery.signal.removeEventListener("abort",stop);delivery.abort(reason);try{await(reader?reader.cancel(reason):source.cancel(reason))}catch(error){if(error!==delivery.signal.reason&&!(error instanceof Error&&error.name==="AbortError"))throw error}finally{reader?.releaseLock()}};const stop=()=>{if(settled)return;const error=failure?.()??delivery.signal.reason;cancel(error).catch(()=>{});output.error(error)};const body=new ReadableStream({start(controller){output=controller;delivery.signal.addEventListener("abort",stop,{once:true});if(delivery.signal.aborted)stop()},async pull(controller){try{await check();if(settled)return;reader??=source.getReader();const{done,value}=await reader.read();await check();if(settled)return;if(done){settled=true;detach();delivery.signal.removeEventListener("abort",stop);reader.releaseLock();controller.close()}else controller.enqueue(value)}catch(error){if(settled)return;controller.error(failure?.()??error);await cancel(error).catch(()=>{})}},cancel},{highWaterMark:0});const wrapped=new Response(body,{status:response.status,statusText:response.statusText,headers:response.headers});for(const key of["url","redirected","type"])Object.defineProperty(wrapped,key,{value:response[key]});return wrapped}catch(error){detach();delivery.abort(error);throw error}}init_files_contract();var MAX_BYTES=16*1024*1024;var PART_BYTES=8*1024*1024;var METADATA_BYTES=4096;var RESULT_BYTES=16*1024;var CONTROL_RESULT_BYTES=128*1024;var TIMEOUT_MS=30000;var MAX_ACTIVE=4;var ATTEMPTS=2;var active=0;var invalid7=()=>new FileOperationError("invalid_input",400);var unavailable2=()=>new FileOperationError("unavailable",503,true);var failures={400:["invalid_input","unsupported_context"],401:["unauthenticated"],403:["access_denied"],405:["method_not_allowed"],409:["conflict","local_only"],413:["request_too_large"],429:["capacity"],503:["integrity","unavailable"]};async function boundedBytes(stream,limit,signal){if(!stream)return new Uint8Array;const reader=stream.getReader();const bytes=new Uint8Array(limit);let size=0;const cancel=()=>{reader.cancel().catch(()=>{})};signal?.addEventListener("abort",cancel,{once:true});if(signal?.aborted)cancel();try{for(;;){const{done,value}=await reader.read();if(signal?.aborted)throw unavailable2();if(done)break;if(!(value instanceof Uint8Array))throw invalid7();size+=value.byteLength;if(size>limit)throw new FileOperationError("request_too_large",413);bytes.set(value,size-value.byteLength)}}catch(error){cancel();throw error}finally{signal?.removeEventListener("abort",cancel);reader.releaseLock()}return bytes.slice(0,size)}async function timed(work,parent,timeout=TIMEOUT_MS){const controller=new AbortController;let timer;let abort;const expiry=new Promise((_,reject)=>{abort=()=>{controller.abort();reject(unavailable2())};timer=setTimeout(abort,timeout);parent?.addEventListener("abort",abort,{once:true});if(parent?.aborted)abort()});try{return await Promise.race([work(controller.signal),expiry])}finally{clearTimeout(timer);parent?.removeEventListener("abort",abort)}}async function result(response,maximum=RESULT_BYTES){try{const bytes=await boundedBytes(response.body,maximum);return JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(bytes))}catch{throw unavailable2()}}async function send(suffix,init,descriptor,initial,parent){const original=initial;const checkCurrent=(context=original)=>{if(parent?.aborted)throw unavailable2();if(!original.isCurrent()||context.url!==original.url)throw new FileOperationError("unsupported_context",400)};for(let attempt=0;attempt<ATTEMPTS;attempt++){checkCurrent();const context=await resolveFilesContext();checkCurrent(context);try{const response=context.localFiles?await context.localFiles(suffix,init,parent):await(async()=>{const url=`${context.url}${suffix}`;const request={...init,signal:parent,headers:{...context.headers,...init.headers},redirect:"error",cache:"no-store"};return descriptor?fetch(url,request):hostedContent(url,request,parent)})();if(!response.ok){const value2=await result(response);const error=value2&&typeof value2==="object"&&"error"in value2?value2.error:undefined;const received=error&&typeof error==="object"&&"code"in error?error.code:undefined;const code=failures[response.status]?.find((code2)=>code2===received);throw code?new FileOperationError(code,response.status,code==="capacity"||code==="unavailable"):unavailable2()}if(response.status!==(descriptor===204?204:200)||descriptor===204&&response.body!==null){response.body?.cancel().catch(()=>{});throw unavailable2()}try{checkCurrent()}catch(error){response.body?.cancel().catch(()=>{});throw error}if(descriptor===204)return;if(!descriptor)return response;const value=await result(response,descriptor==="control"?CONTROL_RESULT_BYTES:RESULT_BYTES);if(descriptor==="control"){checkCurrent();return value}let parsed;if(descriptor==="enrichment"){if(!value||typeof value!=="object"||Array.isArray(value))throw unavailable2();const{name,...metadata}=value;if(!safeEnrichmentName(name))throw unavailable2();parsed={name,...parseEnrichmentDescriptor(metadata)}}else parsed=parseFileDescriptor(value);checkCurrent();return parsed}catch(error){const failure=error instanceof FileOperationError?error:unavailable2();if(init.body instanceof ReadableStream||!failure.retryable||attempt+1===ATTEMPTS)throw failure}}throw unavailable2()}function idPath(id2){if(typeof id2!=="string"||!FILE_ID_PATTERN.test(id2))throw invalid7();return`/${id2}`}async function multipartCreate(input,metadata,exchange,release=()=>{active--},upload){const route=upload?`${idPath(upload.file.id)}/upload/multipart`:"/multipart";let ticket;let reader;let chunk,offset=0;const receipts=[];const pending=new Set;const request=(work,timeout=TIMEOUT_MS)=>timed((signal)=>{const task=work(signal);pending.add(task);task.then(()=>pending.delete(task),()=>pending.delete(task));return task},undefined,timeout);const control=(body)=>({method:"POST",headers:{"content-type":"application/json",...ticket?{"x-os-transfer":ticket}:{}},body:JSON.stringify(body)});try{const start=await request((signal)=>exchange(`${route}/start`,control(upload?.file??metadata),"control",signal));if(!start||typeof start!=="object"||Array.isArray(start))throw unavailable2();const session=start;if(Object.keys(session).sort().join(",")!=="partBytes,ticket"||session.partBytes!==PART_BYTES||typeof session.ticket!=="string"||!session.ticket||session.ticket.length>64*1024)throw unavailable2();ticket=session.ticket;if(input.file instanceof ReadableStream)reader=input.file.getReader();let lastProgress=Date.now();const next=async()=>{try{if(Date.now()-lastProgress>=TIMEOUT_MS)throw unavailable2();const value=await request(()=>reader.read(),Math.max(1,TIMEOUT_MS-(Date.now()-lastProgress)));if(value.value?.byteLength)lastProgress=Date.now();return value}catch(error){await reader.cancel(error).catch(()=>{});throw error}};for(let sent=0,partNumber=1;sent<metadata.size||metadata.size===0&&partNumber===1;partNumber++){const length=Math.min(PART_BYTES,metadata.size-sent);let part;if(input.file instanceof Uint8Array)part=input.file.subarray(sent,sent+length).slice();else if(input.file instanceof Blob){const slice=input.file.slice(sent,sent+length);part=new Uint8Array(await request(()=>slice.arrayBuffer()))}else{part=new Uint8Array(length);let filled=0;while(filled<length){if(!chunk||offset===chunk.byteLength){chunk=undefined;offset=0;const value2=await next();if(value2.done)throw invalid7();if(!(value2.value instanceof Uint8Array))throw invalid7();chunk=value2.value;if(chunk.byteLength>metadata.size-sent-filled)throw invalid7()}const take=Math.min(length-filled,chunk.byteLength-offset);part.set(chunk.subarray(offset,offset+take),filled);filled+=take;offset+=take;if(offset===chunk.byteLength){chunk=undefined;offset=0}}}if(part.byteLength!==length)throw invalid7();if(reader&&sent+length===metadata.size){lastProgress=Date.now();for(;;){const value2=await next();if(value2.done)break;if(!(value2.value instanceof Uint8Array)||value2.value.byteLength)throw invalid7()}}const value=await request((signal)=>exchange(`${route}/part`,{method:"POST",headers:{"content-type":"application/octet-stream","x-os-transfer":ticket,"x-os-part":String(partNumber)},body:part.buffer},"control",signal));part=undefined;const receipt=value;if(!receipt||typeof receipt!=="object"||Object.keys(receipt).sort().join(",")!=="etag,partNumber"||receipt.partNumber!==partNumber||typeof receipt.etag!=="string"||!receipt.etag||receipt.etag.length>256||/[\u0000-\u001f\u007f]/.test(receipt.etag))throw unavailable2();receipts.push({partNumber,etag:receipt.etag});sent+=length;lastProgress=Date.now()}if(upload)for(const name of Object.keys(upload.file.enrichments)){const bytes=await request(()=>upload.enrichment(name));if(bytes.byteLength!==upload.file.enrichments[name].size||bytes.byteLength>MAX_BYTES)throw invalid7();await request((signal)=>exchange(`${route}/enrichments/${encodeURIComponent(name)}`,{method:"POST",headers:{"content-type":"application/octet-stream","x-os-transfer":ticket},body:bytes.buffer.slice(bytes.byteOffset,bytes.byteOffset+bytes.byteLength)},"control",signal))}await upload?.beforeComplete();const completion=control({parts:receipts});if(new TextEncoder().encode(completion.body).byteLength>128*1024)throw unavailable2();return parseFileDescriptor(await request((signal)=>exchange(`${route}/complete`,completion,true,signal),TIMEOUT_MS+Math.ceil(metadata.size/(1024*1024))*1000))}catch(error){if(reader)await reader.cancel(error).catch(()=>{});if(ticket)await request((signal)=>exchange(`${route}/abort`,control({}),"control",signal)).catch(()=>{});throw error instanceof FileOperationError?error:unavailable2()}finally{chunk=undefined;reader?.releaseLock();if(pending.size)Promise.allSettled([...pending]).then(release);else release()}}async function operation(work,initial,parent){const context=initial??await resolveFilesContext();if(active>=MAX_ACTIVE)throw new FileOperationError("capacity",429,true);active++;const execute=async(signal2)=>{try{return await work(context,signal2)}finally{active--}};const signal=context.signal&&parent?AbortSignal.any([context.signal,parent]):context.signal??parent;if(context.localFiles)return execute(signal??new AbortController().signal);return timed(execute,signal).catch((error)=>{throw error instanceof FileOperationError?error:unavailable2()})}function contentPath(id2,name){const path=idPath(id2);if(name===undefined)return`${path}/content`;if(!safeEnrichmentName(name))throw invalid7();return`${path}/enrichments/${encodeURIComponent(name)}/content`}async function read(id2,names){const context=await resolveFilesContext();idPath(id2);if(names===undefined||typeof names==="string"){const path=contentPath(id2,names);return operation((context2,signal)=>send(path,{method:"GET"},false,context2,signal),context)}if(!Array.isArray(names))throw invalid7();const distinct=[];const seen=new Set;for(const name of names){if(typeof name!=="string"||!safeEnrichmentName(name))throw invalid7();if(seen.has(name))continue;if(seen.size===16)throw invalid7();seen.add(name);distinct.push(name)}const paths=distinct.map((name)=>contentPath(id2,name));return timed(async(parent)=>{const responses={};try{for(let i=0;i<paths.length;i++){const response=await operation((context2,signal)=>send(paths[i],{method:"GET"},false,context2,signal),context,parent);Object.defineProperty(responses,distinct[i],{value:response,enumerable:true})}if(!context.isCurrent())throw new FileOperationError("unsupported_context",400);return responses}catch(error){for(const response of Object.values(responses))response.body?.cancel().catch(()=>{});throw error}})}var files={delete(id2){return operation((context,signal)=>send(idPath(id2),{method:"DELETE"},204,context,signal))},async upload(id2){return operation(async(context,signal)=>{const file2=await send(`${idPath(id2)}/upload`,{method:"POST"},true,context,signal);if(file2.id!==id2)throw unavailable2();return file2})},async create(input,options){const context=await resolveFilesContext();if(!input||typeof input!=="object"||Array.isArray(input)||Object.keys(input).some((key)=>!["file","size","path","name","storage","mediaType"].includes(key))||options!==undefined&&(!options||typeof options!=="object"||Array.isArray(options)||Object.keys(options).some((key)=>key!=="requestKey")))throw invalid7();const blob=input.file instanceof Blob;const array2=input.file instanceof Uint8Array;const stream=input.file instanceof ReadableStream;if(!blob&&!array2&&!stream)throw invalid7();const intrinsic=blob?input.file.size:array2?input.file.byteLength:undefined;if(intrinsic!==undefined&&input.size!==undefined&&input.size!==intrinsic)throw invalid7();let name=input.name;if(name===undefined&&blob&&"name"in input.file&&typeof input.file.name==="string"){name=typeof globalThis.File!=="undefined"&&input.file instanceof globalThis.File?input.file.name:input.file.name.split(/[\\/]/).at(-1)}const mediaType=declaredOriginalMediaType(input.mediaType===undefined?blob&&input.file.type?input.file.type:"application/octet-stream":input.mediaType);const metadata=parseFileCreateMetadata({name,size:intrinsic??input.size,path:input.path,storage:input.storage,mediaType,requestKey:options?.requestKey===undefined?routineTransport()?.key("files")??crypto.randomUUID():options.requestKey},FILE_ORIGINAL_MAX_BYTES);if(!context.local&&!context.localFiles&&metadata.storage==="local")throw new FileOperationError("unsupported_context",400);const header=encodeURIComponent(JSON.stringify(metadata));if(new TextEncoder().encode(header).byteLength>METADATA_BYTES)throw invalid7();if(active>=MAX_ACTIVE)throw new FileOperationError("capacity",429,true);active++;if(context.localFiles&&!routineTransport()&&metadata.size>MAX_BYTES){const signal=context.signal??new AbortController().signal;const file2=input.file;let offset=0;const body=file2 instanceof Blob?context.signal?file2:file2.stream():file2 instanceof ReadableStream?file2:new ReadableStream({pull(controller){if(offset===file2.byteLength){controller.close();return}const end=Math.min(offset+256*1024,file2.byteLength);controller.enqueue(file2.subarray(offset,end));offset=end}},{highWaterMark:0});try{return await send("",{method:"POST",headers:{"content-type":"application/octet-stream","x-os-file":header},body},true,context,signal)}finally{active--}}if(metadata.size>MAX_BYTES)return multipartCreate(input,metadata,(suffix,init,kind,signal)=>kind===true?send(suffix,init,true,context,signal):send(suffix,init,"control",context,signal));return timed(async(signal)=>{try{const bytes=array2?input.file.slice():await boundedBytes(blob?input.file.stream():input.file,metadata.size,signal);if(bytes.byteLength!==metadata.size)throw invalid7();if(signal.aborted)throw unavailable2();return await send("",{method:"POST",headers:{"content-type":"application/octet-stream","x-os-file":header},body:bytes.buffer},true,context,signal)}finally{active--}},context.signal).catch((error)=>{throw error instanceof FileOperationError?error:unavailable2()})},async enrich(input){const context=await resolveFilesContext();if(!input||typeof input!=="object"||Array.isArray(input)||Object.keys(input).some((key)=>!["file","name","content","mediaType","replace"].includes(key))||typeof input.content!=="string"&&!(input.content instanceof Uint8Array))throw invalid7();const path=`${idPath(input.file)}/enrichments`;if(typeof input.content==="string"?input.content.length>MAX_BYTES:input.content.byteLength>MAX_BYTES)throw new FileOperationError("request_too_large",413);return operation(async(context2,signal)=>{let bytes;if(typeof input.content==="string"){const buffer=new Uint8Array(Math.min(MAX_BYTES,input.content.length*3));const encoded=new TextEncoder().encodeInto(input.content,buffer);if(encoded.read!==input.content.length)throw new FileOperationError("request_too_large",413);bytes=buffer.slice(0,encoded.written)}else bytes=input.content.slice();const metadata=parseFileEnrichMetadata({name:input.name,size:bytes.byteLength,...input.mediaType===undefined?{}:{mediaType:input.mediaType},...input.replace===undefined?{}:{replace:input.replace}},MAX_BYTES);const header=encodeURIComponent(JSON.stringify(metadata));if(new TextEncoder().encode(header).byteLength>METADATA_BYTES)throw invalid7();const result2=await send(path,{method:"POST",headers:{"content-type":"application/octet-stream","x-os-enrichment":header},body:bytes.buffer},"enrichment",context2,signal);if(result2.name!==metadata.name)throw unavailable2();return result2},context)},async get(id2){return operation((context,signal)=>send(idPath(id2),{method:"GET"},true,context,signal))},read};function validDropboxRootPath(value){return typeof value==="string"&&value.length<=2048&&value.startsWith("/")&&!/[\\\x00-\x1f\x7f]/.test(value)&&value.slice(1).split("/").every((segment)=>segment.length>0&&segment.trim()===segment&&segment!=="."&&segment!=="..")}function validGoogleScopes(value){return Array.isArray(value)&&value.length>0&&value.length<=32&&value.every((scope)=>typeof scope==="string"&&scope.length<=256&&/^(https:\/\/www\.googleapis\.com\/auth\/[A-Za-z0-9._-]+|https:\/\/mail\.google\.com\/|openid|email|profile)$/.test(scope))&&new Set(value).size===value.length}var DROPBOX_FILE_SCOPES=["account_info.read","files.metadata.read","files.content.read","files.content.write"];function validDropboxFileScopes(value){return Array.isArray(value)&&value.length===DROPBOX_FILE_SCOPES.length&&new Set(value).size===value.length&&DROPBOX_FILE_SCOPES.every((scope)=>value.includes(scope))}var ROUTINE_CONNECTION_CREDENTIALS_ENV="OS_ROUTINE_CONNECTION_CREDENTIALS";function parseRoutineConnectionNames(value){if(!Array.isArray(value)||value.some((name)=>typeof name!=="string"||!/^(gmail|airtable|dropbox)\/[a-z0-9][a-z0-9-]{0,62}$/.test(name))||new Set(value).size!==value.length)throw new Error("Invalid routine connections");return value}var connectionUuid=(v)=>typeof v==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(v);function runtimeConnection(lease){switch(lease.provider){case"gmail":return{id:`gmail/${lease.name}`,provider:lease.provider,name:lease.name,accountEmail:lease.accountEmail,scopes:[...lease.scopes],accessToken:lease.accessToken,expiresAt:lease.expiresAt};case"airtable":return{id:`airtable/${lease.name}`,provider:lease.provider,name:lease.name,baseId:lease.baseId,accessToken:lease.accessToken,runExpiresAt:lease.runExpiresAt};case"dropbox":return{id:`dropbox/${lease.name}`,provider:lease.provider,name:lease.name,accountId:lease.accountId,access:lease.access,rootPath:lease.rootPath,scopes:[...lease.scopes],accessToken:lease.accessToken,expiresAt:lease.expiresAt}}}function parseConnectionLease(raw,now=Date.now()){const v=raw;if(!v||typeof v!=="object"||Array.isArray(v)||!connectionUuid(v.connectionId)||!connectionUuid(v.runId)||typeof v.name!=="string"||!/^[a-z0-9][a-z0-9-]{0,62}$/.test(v.name)||typeof v.accessToken!=="string"||!/^[A-Za-z0-9._~+/-]{1,8192}={0,2}$/.test(v.accessToken))throw new Error("Invalid connection credential");if(v.provider==="gmail"){if(Object.keys(v).sort().join(",")!=="accessToken,accountEmail,connectionId,expiresAt,name,provider,runId,scopes"||typeof v.accountEmail!=="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v.accountEmail)||!validGoogleScopes(v.scopes)||typeof v.expiresAt!=="string"||!Number.isFinite(Date.parse(v.expiresAt))||Date.parse(v.expiresAt)<=now+60000||Date.parse(v.expiresAt)>now+3600000)throw new Error("Invalid connection credential");return v}if(v.provider==="airtable"&&Object.keys(v).sort().join(",")==="accessToken,baseId,connectionId,name,provider,runExpiresAt,runId"&&typeof v.baseId==="string"&&/^app[A-Za-z0-9]+$/.test(v.baseId)&&typeof v.runExpiresAt==="string"&&Number.isFinite(Date.parse(v.runExpiresAt))&&Date.parse(v.runExpiresAt)>now+60000&&Date.parse(v.runExpiresAt)<=now+15*60000)return v;if(v.provider==="dropbox"&&Object.keys(v).sort().join(",")==="access,accessToken,accountId,connectionId,expiresAt,name,provider,rootPath,runId,scopes"&&typeof v.accountId==="string"&&/^dbid:[A-Za-z0-9_-]{1,128}$/.test(v.accountId)&&v.access==="full_dropbox"&&validDropboxRootPath(v.rootPath)&&validDropboxFileScopes(v.scopes)&&typeof v.expiresAt==="string"&&Number.isFinite(Date.parse(v.expiresAt))&&Date.parse(v.expiresAt)>now+60000&&Date.parse(v.expiresAt)<=now+14400000)return v;throw new Error("Invalid connection credential")}init_inbox_contract();class AirtableOperationError extends Error{effect;receipts;constructor(message,effect="unapplied",receipts=[]){super(message);this.effect=effect;this.receipts=receipts;this.name="AirtableOperationError"}}var recordId=(v)=>typeof v==="string"&&/^rec[A-Za-z0-9]+$/.test(v);var tableId=(v)=>typeof v==="string"&&/^tbl[A-Za-z0-9]+$/.test(v);function fail2(message){throw new AirtableOperationError(message)}function object3(v){if(!v||typeof v!=="object"||Array.isArray(v)||![null,Object.prototype].includes(Object.getPrototypeOf(v)))fail2("Invalid Airtable data");return v}function keys2(v,allowed,required=allowed){if(Object.keys(v).some((k)=>!allowed.includes(k))||required.some((k)=>!Object.hasOwn(v,k)))fail2("Invalid Airtable input")}function text3(v){return typeof v==="string"&&v.length>0&&v.length<=1024}function fields3(v,nonempty=false){const result2=object3(v);if(nonempty&&!Object.keys(result2).length||Object.keys(result2).some((k)=>!text3(k)))fail2("Invalid Airtable fields");try{return serializable(result2)}catch{return fail2("Invalid Airtable fields")}}function record2(v){const r=object3(v);if(!recordId(r.id)||r.createdTime!==undefined&&(typeof r.createdTime!=="string"||!Number.isFinite(Date.parse(r.createdTime))))fail2("Malformed Airtable record");return{id:r.id,...r.createdTime===undefined?{}:{createdTime:r.createdTime},fields:fields3(r.fields)}}function equal(a,b){if(a===b)return true;if(!a||!b||typeof a!=="object"||typeof b!=="object"||Array.isArray(a)!==Array.isArray(b))return false;const left=Object.keys(a),right=Object.keys(b);return left.length===right.length&&left.every((k)=>Object.hasOwn(b,k)&&equal(a[k],b[k]))}function createConnections(transport){return{async get(){throw new Error("Connection unavailable")},airtable(name){if(typeof name!=="string"||!/^[a-z0-9][a-z0-9-]{0,62}$/.test(name))fail2("Invalid Airtable connection name");const call=(operation2,input)=>transport(name,operation2,input);return{tables:{list:async()=>await call("tables.list",{})},records:{list:async(input)=>await call("records.list",input),get:async(input)=>await call("records.get",input),create:async(input)=>await call("records.create",input),update:async(input)=>await call("records.update",input),delete:async(input)=>await call("records.delete",input)}}}}}async function executeAirtableOperation(authority,operation2,raw,options={}){const{name,baseId,accessToken}=authority;if(!/^[a-z0-9][a-z0-9-]{0,62}$/.test(name)||!/^app[A-Za-z0-9]+$/.test(baseId)||!/^[A-Za-z0-9._~+/-]{1,8192}={0,2}$/.test(accessToken))fail2("Airtable connection unavailable");let input;try{input=object3(serializable(raw))}catch{return fail2("Invalid Airtable input")}const mutation=["records.create","records.update","records.delete"].includes(operation2);const receipt=(ids2)=>({provider:"airtable",connection:`airtable/${name}`,baseId,table:input.table,operation:operation2.slice(8),records:ids2.map((id2)=>({id:id2}))});async function request(path2,init={},write=false){let response;try{response=await(options.fetch??fetch)(`https://api.airtable.com/v0/${path2}`,{...init,headers:{authorization:`Bearer ${accessToken}`,"content-type":"application/json"},redirect:"manual",signal:options.signal?AbortSignal.any([options.signal,AbortSignal.timeout(15000)]):AbortSignal.timeout(15000)})}catch{throw new AirtableOperationError("Airtable request acknowledgment unavailable",write?"uncertain":"unapplied")}if(!response.ok){await response.body?.cancel().catch(()=>{});throw new AirtableOperationError("Airtable request rejected",write&&(response.status>=500||response.status===408||response.status<400)?"uncertain":"unapplied")}try{if(!response.headers.get("content-type")?.toLowerCase().includes("application/json"))throw new Error;const value=object3(await response.json());const safe=serializable(value);if(Object.hasOwn(value,"error")||JSON.stringify(safe).includes(accessToken))throw new Error;return value}catch{throw new AirtableOperationError("Malformed Airtable acknowledgment",write?"uncertain":"unapplied")}}if(operation2==="tables.list"){keys2(input,[]);const tables=[],seen=new Set;let offset;do{const query2=new URLSearchParams(offset?{offset}:{});const page=await request(`meta/bases/${baseId}/tables?${query2}`);if(!Array.isArray(page.tables))fail2("Malformed Airtable tables");for(const value of page.tables){const t=object3(value);if(!tableId(t.id)||!text3(t.name)||!text3(t.primaryFieldId)||!Array.isArray(t.fields)||tables.some((existing)=>existing.id===t.id))fail2("Malformed Airtable table");const metadata=t.fields.map((value2)=>{const f=object3(value2);if(typeof f.id!=="string"||!/^fld[A-Za-z0-9]+$/.test(f.id)||!text3(f.name)||!text3(f.type))fail2("Malformed Airtable field");return{id:f.id,name:f.name,type:f.type,...f.options===undefined?{}:{options:serializable(f.options)}}});if(!metadata.some((f)=>f.id===t.primaryFieldId)||new Set(metadata.map((f)=>f.id)).size!==metadata.length)fail2("Malformed Airtable fields");tables.push({id:t.id,name:t.name,primaryFieldId:t.primaryFieldId,fields:metadata})}offset=nextOffset(page.offset,seen)}while(offset);return tables}if(!text3(input.table)||input.table==="."||input.table==="..")fail2("Invalid Airtable table");if(mutation&&!tableId(input.table))fail2("Airtable writes require a stable table ID");const path=`${baseId}/${encodeURIComponent(input.table)}`;if(operation2==="records.get"){keys2(input,["table","id"]);if(!recordId(input.id))fail2("Invalid Airtable record ID");const result3=record2(await request(`${path}/${input.id}`));if(result3.id!==input.id)fail2("Malformed Airtable record");return result3}if(operation2==="records.list"){keys2(input,["table","fields"],["table"]);if(input.fields!==undefined&&(!Array.isArray(input.fields)||!input.fields.length||input.fields.some((f)=>!text3(f))||new Set(input.fields).size!==input.fields.length))fail2("Invalid Airtable field selection");const records2=[],ids2=new Set,seen=new Set;let offset;do{const query2=new URLSearchParams;for(const field of input.fields??[])query2.append("fields[]",field);if(offset)query2.set("offset",offset);const page=await request(`${path}?${query2}`);if(!Array.isArray(page.records))fail2("Malformed Airtable records");for(const value of page.records){const r=record2(value);if(ids2.has(r.id))fail2("Malformed Airtable pagination");ids2.add(r.id);records2.push(r)}offset=nextOffset(page.offset,seen)}while(offset);return records2}if(!mutation)fail2("Unsupported Airtable operation");keys2(input,["table","records"]);if(!Array.isArray(input.records)||!input.records.length||input.records.length>10)fail2("Invalid Airtable batch");const kind=operation2.slice(8),ids=new Set;const records=input.records.map((value)=>{const r=object3(value);keys2(r,kind==="create"?["fields"]:kind==="update"?["id","expected","set"]:["id","expected"]);if(kind==="create")return{fields:fields3(r.fields,true)};if(!recordId(r.id)||ids.has(r.id))fail2("Invalid Airtable batch record ID");ids.add(r.id);const set=kind==="update"?fields3(r.set,true):undefined;if(set&&Object.values(set).some((value2)=>value2===null))fail2("Airtable guard null cannot be an update value");return{id:r.id,expected:fields3(r.expected),...set?{set}:{}}});for(const r of records){if(!("id"in r))continue;const current=record2(await request(`${path}/${r.id}`));if(current.id!==r.id)fail2("Malformed Airtable record");for(const[key,value]of Object.entries(r.expected)){if(value===null?Object.hasOwn(current.fields,key):!Object.hasOwn(current.fields,key)||!equal(current.fields[key],value))fail2("Airtable reviewed values are stale")}}await options.beforeMutation?.();const query=new URLSearchParams;if(kind==="delete")for(const id2 of ids)query.append("records[]",id2);const result2=await request(`${path}${kind==="delete"?`?${query}`:""}`,{method:kind==="create"?"POST":kind==="update"?"PATCH":"DELETE",...kind==="delete"?{}:{body:JSON.stringify({records:records.map((r)=>("id"in r)?{id:r.id,fields:r.set}:r)})}},true);const acknowledged=[],returned=[];try{if(!Array.isArray(result2.records))throw new Error;for(const value of result2.records){const r=object3(value);if(!recordId(r.id)||acknowledged.includes(r.id)||kind!=="create"&&!ids.has(r.id)||kind==="delete"&&r.deleted!==true)throw new Error;acknowledged.push(r.id);if(kind!=="delete")returned.push(record2(r))}if(acknowledged.length!==records.length)throw new Error}catch{throw new AirtableOperationError("Incomplete Airtable mutation acknowledgment",acknowledged.length?"partial":"uncertain",acknowledged.length?[receipt(acknowledged)]:[])}return{receipt:receipt(acknowledged),...kind==="delete"?{}:{records:returned}}}function nextOffset(value,seen){if(value===undefined)return;if(!text3(value)||seen.has(value))fail2("Malformed Airtable pagination");seen.add(value);return value}init_inbox_contract();var MANAGED_CONNECTION_CAPABILITY_ENV="OS_MANAGED_CONNECTION_CAPABILITY";function managedConnections(capability){const endpoint=new URL(capability.endpoint);if(endpoint.protocol!=="http:"||endpoint.hostname!=="127.0.0.1"||!endpoint.port||endpoint.pathname!=="/"||endpoint.search||endpoint.hash||endpoint.username||endpoint.password||!/^[0-9a-f-]{36}$/.test(capability.token))throw new AirtableOperationError("Airtable capability unavailable");const transport=async(name,operation2,input)=>{let safeInput;try{safeInput=serializable(input)}catch{safeInput=null}try{const response=await fetch(new URL("airtable",endpoint),{method:"POST",redirect:"error",headers:{authorization:`Bearer ${capability.token}`,"content-type":"application/json"},body:JSON.stringify({name,operation:operation2,input:safeInput}),signal:AbortSignal.timeout(125000)});const value=await response.json();if(!response.ok)throw new AirtableOperationError("Airtable operation failed; the execution retains its evidence",value.effect==="partial"||value.effect==="uncertain"?value.effect:"unapplied",value.receipts??[]);return value}catch(error){if(error instanceof AirtableOperationError)throw error;throw new AirtableOperationError("Airtable parent acknowledgment unavailable",["records.create","records.update","records.delete"].includes(operation2)?"uncertain":"unapplied")}};return createConnections(transport)}var observer;function observeLocalRoutineEffects(value){observer=value}async function reportLocalRoutineEffect(value){await observer?.(value)}init_inbox_contract();var local;function installLocalRoutineConnections(runId,declared,raw,recheck,acquire){if(local||!Array.isArray(raw))throw new Error("Connection unavailable");const names=parseRoutineConnectionNames([...declared]);const leases=raw.map((value)=>parseConnectionLease(value));if(!acquire&&leases.length!==names.length||new Set(leases.map((lease)=>`${lease.provider}/${lease.name}`)).size!==leases.length||leases.some((lease)=>lease.runId!==runId||!names.includes(`${lease.provider}/${lease.name}`)))throw new Error("Connection unavailable");const current={runId,declared:names,leases,recheck,acquire};local=current;return()=>{if(local===current)local=undefined;current.leases.length=0}}async function localLease(identity,reportUse=true){const current=local;if(!current||!current.declared.includes(identity))throw new Error("Connection unavailable");if(reportUse)await current.recheck(identity);const lease=current.acquire?parseConnectionLease(await current.acquire(identity)):current.leases.find((lease2)=>`${lease2.provider}/${lease2.name}`===identity);if(local!==current||!lease||lease.runId!==current.runId||`${lease.provider}/${lease.name}`!==identity)throw new Error("Connection unavailable");return parseConnectionLease(lease)}var airtable=createConnections(async(name,operation2,input)=>{if(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__)throw new AirtableOperationError("Airtable connection unavailable");try{const installed2=routineTransport();if(installed2)return await installed2.request("airtable",{name,operation:operation2,input:serializable(input)});const managed=process.env[MANAGED_CONNECTION_CAPABILITY_ENV];if(managed){const client=managedConnections(JSON.parse(managed)).airtable(name);if(operation2==="tables.list")return await client.tables.list();return await client.records[operation2.slice(8)](input)}const raw=local?[await localLease(`airtable/${name}`,false)]:JSON.parse(process.env[ROUTINE_CONNECTION_CREDENTIALS_ENV]??"[]");if(!Array.isArray(raw))throw new Error;const leases=raw.map((value)=>parseConnectionLease(value));if(new Set(leases.map((lease2)=>`${lease2.provider}/${lease2.name}`)).size!==leases.length)throw new Error;const lease=leases.find((lease2)=>lease2.provider==="airtable"&&lease2.name===name);if(!lease||lease.provider!=="airtable")throw new Error;const writing=["records.create","records.update","records.delete"].includes(operation2);const captured=serializable(input);let result2;try{result2=await executeAirtableOperation(lease,operation2,captured)}catch(error){if(writing&&error instanceof AirtableOperationError)await reportLocalRoutineEffect({type:"effect",connection:`airtable/${name}`,operation:operation2,input:captured,effect:error.effect,receipts:error.receipts});throw error}if(writing)await reportLocalRoutineEffect({type:"effect",connection:`airtable/${name}`,operation:operation2,input:captured,effect:"confirmed",receipts:[result2.receipt]});return result2}catch(error){if(error instanceof AirtableOperationError)throw error;throw new AirtableOperationError("Airtable connection unavailable")}});function runtimeConnections(){return{...airtable,async get(identity){if(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__)throw new Error("Connection unavailable");try{parseRoutineConnectionNames([identity]);const installed2=routineTransport();if(installed2)return await installed2.request("connections/get",{identity});const managed=process.env[MANAGED_CONNECTION_CAPABILITY_ENV];if(managed){const capability=JSON.parse(managed);const response=await fetch(new URL("connections/get",capability.endpoint),{method:"POST",redirect:"error",headers:{authorization:`Bearer ${capability.token}`,"content-type":"application/json"},body:JSON.stringify({identity})});if(!response.ok)throw new Error;return await response.json()}return runtimeConnection(await localLease(identity))}catch{throw new Error("Connection unavailable")}}}}var connections=runtimeConnections();init_files_contract();var LOCAL_ROUTINE_VALUE_BYTES=256*1024;if((typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__)&&typeof process!=="undefined"&&process.env.OS_LOCAL_ROUTINE_HOST==="1"){Object.defineProperty(globalThis,Symbol.for("oddington.private.local-routine-host"),{value:async()=>{const{readSync,closeSync}=await import("node:fs");const{Socket}=await import("node:net");const{pathToFileURL}=await import("node:url");const chunks=[];let size=0;for(;;){const chunk=Buffer.alloc(4096),count=readSync(4,chunk,0,chunk.length,null);if(!count)break;if((size+=count)>524288)throw new Error("Invalid routine bootstrap");chunks.push(chunk.subarray(0,count))}closeSync(4);const bootstrap=JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(Buffer.concat(chunks)));const channel=new Socket({fd:3,readable:true,writable:true});let sequence=0,broken=false,settled=false;let pending;let buffer="";const fail3=()=>{broken=true;pending?.reject();pending=undefined;channel.destroy();if(!settled){if(process.platform!=="win32"){try{process.kill(-process.pid,"SIGKILL")}catch{}}process.exit(1)}};channel.on("error",fail3);channel.on("end",fail3);channel.on("close",fail3);channel.on("data",(bytes)=>{buffer+=bytes.toString("utf8");if(Buffer.byteLength(buffer)>1024)return fail3();const end=buffer.indexOf(`
|
|
75
19
|
`);if(end<0)return;try{const ack=JSON.parse(buffer.slice(0,end));if(end!==buffer.length-1||!pending||Object.keys(ack).sort().join(",")!=="accepted,sequence"||ack.sequence!==pending.sequence||ack.accepted!==true)return fail3();buffer="";pending.resolve();pending=undefined}catch{fail3()}});const sendReport=async(value)=>{if(broken||pending)throw new Error("Routine reporting unavailable");const frame=JSON.stringify({...value,sequence:++sequence});if(Buffer.byteLength(frame)>LOCAL_ROUTINE_VALUE_BYTES+65536)throw new Error("Routine reporting unavailable");await new Promise((resolve,reject)=>{const timeout=setTimeout(fail3,30000);pending={sequence,resolve(){clearTimeout(timeout);resolve()},reject(){clearTimeout(timeout);reject(new Error("Routine reporting unavailable"))}};channel.write(`${frame}
|
|
76
|
-
`,(error)=>{if(error)fail3()})})};let reporting=Promise.resolve();const report=(value)=>{const captured=structuredClone(value);const next=reporting.then(()=>sendReport(captured));reporting=next;return next};const flush=(stream)=>new Promise((resolve)=>{let timer,settled2=false;const complete=()=>{if(settled2)return;settled2=true;if(timer)clearTimeout(timer);resolve()};timer=setTimeout(complete,1000);if(stream.destroyed||stream.writableEnded)complete();else stream.write("",complete)});let exitCode=0;let releaseConnections;try{const definition=(await import(pathToFileURL(bootstrap.entry).href)).default;const contract=inspectRoutineDefinition(definition);if(bootstrap.mode==="inspect")await report({type:"contract",contract});else if(bootstrap.mode==="execute"&&typeof bootstrap.runId==="string"){const input=captureRoutineInput(definition,bootstrap.input);if(JSON.stringify(contract)!==JSON.stringify(bootstrap.contract))throw new Error("Routine definition changed");releaseConnections=installLocalRoutineConnections(bootstrap.runId,contract.access.connections??[],bootstrap.connectionLeases,(identity)=>report({type:"connection",identity}));delete bootstrap.connectionLeases;observeLocalRoutineEffects(report);const privateRequest=localRoutineRequest();const generate=async(request)=>{if(!privateRequest)throw new RoutineAIError("capability_unavailable");return await privateRequest("ai/generate",request)};const result2=await executeRoutineDefinition(definition,input,{run:{id:bootstrap.runId},data,files,connections,ai:{generateText:generate,generateObject:generate},inbox:routinePublicationClient(),step:async(id2,fact)=>report({type:"step",id:id2,...fact})});await report({type:"finish",...result2===undefined?{}:{result:result2}})}else throw new Error("Invalid routine bootstrap")}catch{exitCode=1}finally{settled=true;observeLocalRoutineEffects(undefined);releaseConnections?.();if(exitCode===0)channel.end();else channel.destroy();await Promise.allSettled([flush(process.stdout),flush(process.stderr)]);process.exit(exitCode)}}})}init_inbox_contract();var RECORD_WRITE_INPUT_LIMIT=8*1024*1024;class RoutineRecordWriteError extends Error{effect;constructor(message,effect){super(message);this.effect=effect;this.name="RoutineRecordWriteError"}}function validateRecordWrite(value){const input=serializable(value);if(!input||Array.isArray(input)||typeof input!=="object"||Object.keys(input).sort().join(",")!=="records,repository"||!validRepositoryAlias(input.repository)||!Array.isArray(input.records)||!input.records.length||input.records.length>1e4||new Set(input.records.map((edit)=>edit?.ref)).size!==input.records.length)throw new InboxContractError("Invalid record update batch");for(const edit of input.records){if(!edit||Array.isArray(edit)||typeof edit!=="object"||!validRecordRef(edit.ref))throw new InboxContractError("Invalid record edit");if("expectedVersion"in edit){if(Object.keys(edit).sort().join(",")!=="expectedVersion,ref,set"||typeof edit.expectedVersion!=="string"||!/^record-v1:[0-9a-f]{64}$/.test(edit.expectedVersion)||!edit.set||Array.isArray(edit.set)||typeof edit.set!=="object"||!Object.keys(edit.set).length)throw new InboxContractError("Invalid record edit");continue}if(Object.keys(edit).sort().join(",")!=="fields,path,ref"||typeof edit.path!=="string"||!validCreatePath(edit.path)||!edit.fields||Array.isArray(edit.fields)||typeof edit.fields!=="object"||!Object.keys(edit.fields).length)throw new InboxContractError("Invalid record creation")}return structuredClone(input)}function validateRecordUpdate(value){const input=validateRecordWrite(value);if(input.records.some((record3)=>!("expectedVersion"in record3)))throw new InboxContractError("Record creation is unavailable for this operation");return input}function validateRecordDelete(value){const input=serializable(value);if(!input||Array.isArray(input)||typeof input!=="object"||Object.keys(input).sort().join(",")!=="records,repository"||!validRepositoryAlias(input.repository)||!Array.isArray(input.records)||!input.records.length||input.records.length>1e4||new Set(input.records.map((record3)=>record3?.ref)).size!==input.records.length)throw new InboxContractError("Invalid record deletion batch");for(const record3 of input.records){if(!record3||Array.isArray(record3)||typeof record3!=="object"||Object.keys(record3).sort().join(",")!=="expectedVersion,ref"||!validRecordRef(record3.ref)||typeof record3.expectedVersion!=="string"||!/^record-v1:[0-9a-f]{64}$/.test(record3.expectedVersion))throw new InboxContractError("Invalid record deletion")}return structuredClone(input)}function validateRecordChange(value){const input=serializable(value);if(!input||Array.isArray(input)||typeof input!=="object"||Object.keys(input).sort().join(",")!=="records,repository"||!validRepositoryAlias(input.repository)||!Array.isArray(input.records)||!input.records.length||input.records.length>1e4||new Set(input.records.map((record3)=>record3?.ref)).size!==input.records.length||new TextEncoder().encode(JSON.stringify(input)).byteLength>RECORD_WRITE_INPUT_LIMIT)throw new InboxContractError("Invalid record change batch");const writes=[],deletes=[];for(const record3 of input.records){if(!record3||typeof record3!=="object"||Array.isArray(record3))throw new InboxContractError("Invalid record change");if("set"in record3||"fields"in record3)writes.push(record3);else deletes.push(record3)}if(writes.length)validateRecordWrite({repository:input.repository,records:writes});if(deletes.length)validateRecordDelete({repository:input.repository,records:deletes});return structuredClone(input)}function validateRoutineRecordWrite(value){const body=serializable(value);if(!body||typeof body!=="object"||Array.isArray(body)||Object.keys(body).sort().join(",")!=="input,requestKey"||typeof body.requestKey!=="string"||!body.requestKey.trim()||body.requestKey!==body.requestKey.trim()||body.requestKey.length>512)throw new InboxContractError("A stable routine request key is required");return{input:validateRecordChange(body.input),requestKey:body.requestKey}}function validCreatePath(value){return value===value.trim()&&value.endsWith(".md")&&!value.startsWith("/")&&value.split("/").every((segment)=>!!segment&&![".",".."].includes(segment)&&/^[a-zA-Z0-9_.-]+$/.test(segment))}class InboxOperationError extends Error{status;reason;constructor(status,reason){super(reason==="conflict"?"This question already has an accepted answer":reason==="unavailable"?"Inbox request unavailable. Retry the same action.":reason==="invalid_input"?"Invalid Inbox request":"Inbox access unavailable");this.status=status;this.reason=reason}}var INBOX_RESULT_BYTES=8*1024*1024;var INBOX_INPUT_BYTES=8192;var INBOX_LOCAL_INPUT_BYTES=256*1024;var INBOX_UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function isAppQuestionOperation(operation2){return operation2==="questions.list"||operation2==="questions.answer"||operation2==="questions.searchRecords"}var operations={current:[],"items.list":[],"questions.list":[],"items.read":["itemId"],"items.see":["itemId"],"items.markDigestRead":["itemId"],"items.rename":["itemId","revision","title"],"items.setLifecycle":["itemId","revision","lifecycle"],"items.listRecipientCandidates":["itemId"],"items.addRecipient":["itemId","personId"],"questions.answer":["itemId","revision","questionId","response"],"questions.searchRecords":["itemId","revision","questionId","query"],"files.read":["itemId","fileId"]};function assert(value){if(!value)throw new Error("Invalid Inbox result")}function object4(value){assert(value&&typeof value==="object"&&!Array.isArray(value)&&[Object.prototype,null].includes(Object.getPrototypeOf(value))&&Reflect.ownKeys(value).every((key)=>{const descriptor=typeof key==="string"?Object.getOwnPropertyDescriptor(value,key):undefined;return!!descriptor?.enumerable&&"value"in descriptor}));return value}function keys3(value,allowed,required=allowed){assert(Object.keys(value).every((key)=>allowed.includes(key))&&required.every((key)=>Object.hasOwn(value,key)))}function text4(value,empty2=false){return typeof value==="string"&&(empty2||!!value.trim())}function id2(value){return typeof value==="string"&&INBOX_UUID.test(value)}function integer(value,minimum=1){return Number.isSafeInteger(value)&&Number(value)>=minimum}function date(value){return text4(value)&&Number.isFinite(Date.parse(value))}function optionalDate(value){return value===null||date(value)}function array2(value){assert(Array.isArray(value)&&Object.getPrototypeOf(value)===Array.prototype&&Reflect.ownKeys(value).length===value.length+1&&value.every((_entry,index)=>{const descriptor=Object.getOwnPropertyDescriptor(value,String(index));return!!descriptor?.enumerable&&"value"in descriptor}));return value}function json(value,ancestors=new Set){if(value===null||typeof value==="boolean"||typeof value==="string"||typeof value==="number"&&Number.isFinite(value))return value;assert(value&&typeof value==="object"&&!ancestors.has(value));ancestors.add(value);try{if(Array.isArray(value))return array2(value).map((entry)=>json(entry,ancestors));return Object.fromEntries(Object.entries(object4(value)).map(([key,entry])=>[key,json(entry,ancestors)]))}finally{ancestors.delete(value)}}function recordReference(value){const record3=object4(value);keys3(record3,["repository","ref"]);assert(text4(record3.repository)&&record3.repository===record3.repository.trim()&&/^[a-z0-9][a-z0-9._/-]{0,127}$/.test(record3.repository)&&!/\.\.|\/\//.test(record3.repository)&&text4(record3.ref)&&record3.ref===record3.ref.trim()&&record3.ref.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)+$/.test(record3.ref));return record3}function responseDefinition(value){const definition=object4(value);keys3(definition,["type","source"]);assert(definition.type==="selection");const source=object4(definition.source);if(source.type==="authored"){keys3(source,["type","options","suggestions","search"],["type","options"]);const options=array2(source.options);assert(options.length>0);const values=options.map((value2)=>{const option=object4(value2);keys3(option,["value","label","description","note"],["value","label"]);assert(text4(option.value)&&option.value===option.value.trim()&&text4(option.label));if("description"in option)assert(text4(option.description));if("note"in option){const note=object4(option.note);keys3(note,["placeholder"]);assert(text4(note.placeholder))}return option.value});assert(new Set(values).size===values.length);if("search"in source||"suggestions"in source){const search=object4(source.search);keys3(search,["triggerLabel","placeholder","emptyLabel"]);assert(text4(search.triggerLabel)&&text4(search.placeholder)&&text4(search.emptyLabel));const suggestions2=array2(source.suggestions);assert(suggestions2.length<=8&&suggestions2.every((value2)=>text4(value2)&&values.includes(value2))&&new Set(suggestions2).size===suggestions2.length)}else assert(options.length<=9);return}assert(source.type==="records");keys3(source,["type","collection","refPrefix","where","display","suggestions"],["type","collection","display"]);const collection=object4(source.collection);keys3(collection,["repository","name"]);recordReference({repository:collection.repository,ref:"records/example"});assert(text4(collection.name)&&/^[a-zA-Z0-9_-]+(?:\/[a-zA-Z0-9_-]+)*$/.test(collection.name));if("refPrefix"in source)assert(text4(source.refPrefix)&&source.refPrefix.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)*\/$/.test(source.refPrefix));const where=object4(source.where??{});assert(Object.entries(where).every(([name,value2])=>/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name)&&!["constructor","prototype"].includes(name)&&(value2===null||typeof value2==="string"||typeof value2==="boolean"||typeof value2==="number"&&Number.isFinite(value2))));const display=object4(source.display);keys3(display,["labelFields"]);const labels=array2(display.labelFields);assert(labels.length>0&&labels.length<=2&&new Set(labels).size===labels.length&&labels.every((value2)=>text4(value2)&&/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(value2)));const suggestions=array2(source.suggestions??[]);const refs=suggestions.map((value2)=>{const suggestion=object4(value2);keys3(suggestion,["record","reason"],["record"]);const record3=recordReference(suggestion.record);assert(record3.repository===collection.repository);if("reason"in suggestion)assert(text4(suggestion.reason));return record3.ref});assert(suggestions.length<=8&&new Set(refs).size===refs.length)}function inboxFile(value){const file2=object4(value);keys3(file2,["id","name","mediaType","size","sha256","details"]);assert(id2(file2.id)&&text4(file2.name)&&!/[\x00-\x1f\x7f/\\]/.test(file2.name)&&text4(file2.mediaType)&&/^[a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+$/.test(file2.mediaType)&&integer(file2.size,0)&&file2.size<=25*1024*1024&&typeof file2.sha256==="string"&&/^[0-9a-f]{64}$/.test(file2.sha256));const details=object4(file2.details);if(details.kind==="csv"){keys3(details,["kind","encoding","delimiter","headerRow","dataRows"]);assert(file2.mediaType==="text/csv"&&["utf-8","windows-1252"].includes(String(details.encoding))&&[",",";","\t"].includes(String(details.delimiter))&&integer(details.headerRow,0)&&integer(details.dataRows,0))}else if(details.kind==="pdf"){keys3(details,["kind","pages"],["kind"]);assert(file2.mediaType==="application/pdf"&&(!("pages"in details)||integer(details.pages)))}else{keys3(details,["kind"]);assert(details.kind==="other"&&!["text/csv","application/pdf"].includes(file2.mediaType))}}function fields4(value){const labels=array2(value).map((value2)=>{const field=object4(value2);keys3(field,["label","value"]);assert(text4(field.label)&&text4(field.value));return field.label});assert(new Set(labels).size===labels.length)}function block(value){const entry=object4(value);if(entry.kind==="rich-text"){keys3(entry,["kind","markdown"]);assert(text4(entry.markdown));return}if(entry.kind==="asks"){keys3(entry,["kind","problem","asks"]);const asks=array2(entry.asks);assert(text4(entry.problem)&&asks.length>0&&asks.every(id2)&&new Set(asks).size===asks.length);return}assert(["record","records","files"].includes(String(entry.kind)));keys3(entry,["kind","label","initiallyExpanded",...entry.kind==="record"?["record","view"]:entry.kind==="records"?["records","view"]:["files"]],["kind","label",entry.kind==="record"?"record":entry.kind==="records"?"records":"files"]);assert(text4(entry.label)&&(!("initiallyExpanded"in entry)||typeof entry.initiallyExpanded==="boolean")&&(!("view"in entry)||text4(entry.view)&&entry.view===entry.view.trim()));if(entry.kind==="record"){const record3=object4(entry.record);keys3(record3,["ref","title","fields"]);assert(text4(record3.ref)&&record3.ref===record3.ref.trim()&&text4(record3.title));fields4(record3.fields);return}if(entry.kind==="records"){const records=array2(entry.records);const refs=records.map((value2)=>{const record3=object4(value2);keys3(record3,["ref","title","description","facts","view"],["ref","title"]);assert(text4(record3.ref)&&record3.ref===record3.ref.trim()&&text4(record3.title));if("description"in record3)assert(text4(record3.description));if("facts"in record3)fields4(record3.facts);if("view"in record3)assert(text4(record3.view)&&record3.view===record3.view.trim());return record3.ref});assert(records.length>0&&new Set(refs).size===refs.length);return}const files2=array2(entry.files);files2.forEach(inboxFile);assert(files2.length>0&&new Set(files2.map((value2)=>object4(value2).id)).size===files2.length)}function response(value){const answer=object4(value);assert(Object.keys(answer).every((key)=>["selection","note"].includes(key)));if(typeof answer.selection==="string")assert(text4(answer.selection)&&answer.selection===answer.selection.trim());else recordReference(answer.selection);if(Object.hasOwn(answer,"note"))assert(text4(answer.note));return answer}function parseInboxRequest(value){try{const envelope=object4(value);assert(Object.keys(envelope).sort().join(",")==="input,operation");assert(typeof envelope.operation==="string"&&Object.hasOwn(operations,envelope.operation));const operation2=envelope.operation;const input={...object4(envelope.input)};const required=operations[operation2];assert(required.every((key)=>Object.hasOwn(input,key))&&Object.keys(input).every((key)=>required.includes(key)||operation2==="questions.searchRecords"&&key==="selected"||(operation2==="items.list"||operation2==="questions.list")&&key==="beforeNumber"||operation2==="questions.list"&&key==="routines"));if(operation2==="questions.list"){assert(Object.hasOwn(input,"routines"));assert(array2(input.routines).every(isAppRoutineName))}for(const key of["itemId","personId","fileId"])if(key in input)assert(id2(input[key]));if("revision"in input)assert(integer(input.revision));if("beforeNumber"in input)assert(integer(input.beforeNumber));if("questionId"in input)assert(text4(input.questionId)&&input.questionId===input.questionId.trim());if("title"in input)assert(text4(input.title));if("lifecycle"in input)assert(input.lifecycle==="open"||input.lifecycle==="closed");if("query"in input)assert(text4(input.query,true)&&input.query.length<=256);if("selected"in input)recordReference(input.selected);if("response"in input)response(input.response);assert(new TextEncoder().encode(JSON.stringify(envelope)).byteLength<=INBOX_INPUT_BYTES);if("routines"in input)input.routines=[...new Set(input.routines)];return{operation:operation2,input}}catch{throw new InboxOperationError(400,"invalid_input")}}function parseInboxCurrent(value){const current=object4(value),workspace=object4(current.workspace),viewer=object4(current.viewer);assert(id2(workspace.id)&&text4(workspace.slug)&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(workspace.slug)&&text4(workspace.name)&&text4(workspace.locale)&&text4(workspace.timezone));assert(id2(viewer.id)&&text4(viewer.name)&&text4(viewer.email));return{workspace:{id:workspace.id,slug:workspace.slug,name:workspace.name,locale:workspace.locale,timezone:workspace.timezone},viewer:{id:viewer.id,name:viewer.name,email:viewer.email}}}function parseInboxItem(value){const item=object4(json(value));assert(id2(item.id)&&id2(item.workspaceId)&&integer(item.number)&&integer(item.revision)&&integer(item.activityVersion,0)&&["ask","digest"].includes(String(item.kind))&&["open","closed"].includes(String(item.lifecycle))&&text4(item.title)&&text4(item.description,true)&&text4(item.author)&&date(item.publishedAt)&&optionalDate(item.seenAt)&&optionalDate(item.digestReadAt));if(item.outcome!==null)assert(text4(object4(item.outcome).outcome));if("canonicalRoutineId"in item)assert(item.canonicalRoutineId===null||isAppRoutineName(item.canonicalRoutineId));if(item.kind==="ask")askMetadata(item);else assert(!("tags"in item)&&!("recordRefs"in item));array2(item.body).forEach(block);array2(item.views).forEach((value2)=>{const view=object4(value2);assert(text4(view.id)&&text4(view.view)&&text4(view.implementation));json(view.input)});array2(item.people).forEach((value2)=>{const person=object4(value2);assert(id2(person.id)&&text4(person.name))});array2(item.questions).forEach((value2)=>{const question2=object4(value2);assert(text4(question2.id)&&id2(question2.to)&&text4(question2.prompt)&&(question2.instructions===null||text4(question2.instructions,true))&&typeof question2.available==="boolean");responseDefinition(question2.response);assert(array2(question2.allowedResponders).every(id2));if(question2.acceptedResponse!==null){const accepted=object4(question2.acceptedResponse);assert(id2(accepted.id)&&id2(accepted.userId)&&date(accepted.acceptedAt));response(accepted.response);if(accepted.label===null)delete accepted.label;else if("label"in accepted)assert(text4(accepted.label));if("acceptanceOrder"in accepted)assert(integer(accepted.acceptanceOrder))}if(question2.execution!==null){const execution=object4(question2.execution);assert(id2(execution.id)&&["pending","running","completed","failed"].includes(String(execution.state))&&integer(execution.attempt,0));if("consequence"in execution){const consequence=object4(execution.consequence);assert(["pending","running","applied","no-write","stopped","partial","uncertain"].includes(String(consequence.state))&&(consequence.phase===null||["loading","invoking","committing"].includes(String(consequence.phase)))&&date(consequence.updatedAt)&&typeof consequence.needsReconciliation==="boolean"&&(consequence.reason===null||text4(consequence.reason,true)));array2(consequence.evidence).forEach((value3)=>{const receipt=object4(value3);assert(text4(receipt.repository)&&text4(receipt.commit)&&text4(receipt.diff,true))})}}});array2(item.linkedAsks).forEach((value2)=>{const linked=object4(value2);assert(id2(linked.id));if(linked.state==="unavailable")assert(typeof linked.done==="boolean");else{assert(["yours","done","open","theirs"].includes(String(linked.state))&&text4(linked.title));if(linked.state==="theirs"){const assignee=object4(linked.assignee);assert(id2(assignee.id)&&text4(assignee.name))}}});array2(item.activity).forEach((value2)=>{const event=object4(value2);assert(integer(event.id)&&text4(event.type)&&(event.actorId===null||id2(event.actorId))&&(event.questionId===null||text4(event.questionId))&&integer(event.revision)&&date(event.createdAt));object4(event.data)});array2(item.work).forEach((value2)=>{const work=object4(value2);assert(id2(work.id)&&text4(work.questionId)&&text4(work.reason)&&optionalDate(work.settledAt))});return item}function parseAnswerableQuestion(value){const entry=object4(json(value));keys3(entry,["itemId","number","revision","title","inboxUrl","questionId","routine","prompt","response","answerable","tags","recordRefs","instructions"],["itemId","number","revision","title","inboxUrl","questionId","routine","prompt","response","answerable"]);assert(id2(entry.itemId)&&integer(entry.number)&&integer(entry.revision)&&text4(entry.title)&&text4(entry.inboxUrl));const link=new URL(entry.inboxUrl);const slug=link.hostname.slice(0,-".oddington.ai".length);assert(link.hostname.endsWith(".oddington.ai")&&slug.length<=63&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(slug)&&!["auth","www","api","os"].includes(slug)&&entry.inboxUrl===`https://${slug}.oddington.ai/inbox/${entry.itemId}`);assert(isAppRoutineName(entry.routine)&&text4(entry.questionId)&&entry.questionId===entry.questionId.trim()&&text4(entry.prompt)&&(!("instructions"in entry)||text4(entry.instructions,true))&&typeof entry.answerable==="boolean");responseDefinition(entry.response);askMetadata(entry);return entry}function askMetadata(entry){const tags=array2(entry.tags===undefined?[]:entry.tags);assert(tags.length<=32&&tags.every((tag)=>text4(tag)&&new TextEncoder().encode(tag).byteLength<=64));assert(new Set(tags).size===tags.length);const refs=array2(entry.recordRefs===undefined?[]:entry.recordRefs);refs.forEach((value)=>{const ref=object4(value);keys3(ref,["repository","id"]);recordReference({repository:ref.repository,ref:ref.id})});assert(new Set(refs.map((value)=>{const ref=object4(value);return JSON.stringify([ref.repository,ref.id])})).size===refs.length);entry.tags=tags;entry.recordRefs=refs}function parseInboxAcceptance(value){const accepted=object4(value);assert(id2(accepted.responseId)&&date(accepted.acceptedAt));if("executionId"in accepted)assert(id2(accepted.executionId));if("acceptanceOrder"in accepted)assert(integer(accepted.acceptanceOrder));if("label"in accepted)assert(text4(accepted.label));return accepted}function parseInboxResult(operation2,value){if(operation2==="current")return parseInboxCurrent(value);if(operation2==="questions.list"){const page=object4(value);keys3(page,["questions","nextBeforeNumber"]);const questions=array2(page.questions).map(parseAnswerableQuestion);assert(page.nextBeforeNumber===null||integer(page.nextBeforeNumber));return{questions,nextBeforeNumber:page.nextBeforeNumber}}if(operation2==="items.read")return parseInboxItem(value);if(operation2==="items.list"){const page=object4(value);const items=array2(page.items).map(parseInboxItem);assert(items.length<=100&&(page.nextBeforeNumber===null||integer(page.nextBeforeNumber)));return{items,nextBeforeNumber:page.nextBeforeNumber}}if(operation2==="items.see"){assert(date(value));return}if(operation2==="items.markDigestRead"){const read2=object4(value);assert(integer(read2.activityId)&&date(read2.readAt));return read2}if(operation2==="items.rename"||operation2==="items.setLifecycle"){const update=object4(value);const item=parseInboxItem(update.item);assert((update.activityId===null||integer(update.activityId))&&optionalDate(update.changedAt));return{...update,item}}if(operation2==="items.listRecipientCandidates"){const candidates=array2(value);candidates.forEach((value2)=>{const person=object4(value2);assert(id2(person.id)&&text4(person.name)&&text4(person.email))});assert(new Set(candidates.map((value2)=>object4(value2).id)).size===candidates.length);return candidates}if(operation2==="items.addRecipient"){const addition=object4(value);const item=parseInboxItem(addition.item);assert(id2(addition.addedPersonId)&&item.people.some((person)=>person.id===addition.addedPersonId));return{...addition,item}}if(operation2==="questions.answer")return parseInboxAcceptance(value);if(operation2==="questions.searchRecords"){const result2=object4(value);assert(text4(result2.recordType)&&integer(result2.eligibleCount,0)&&integer(result2.matchCount,0)&&Number(result2.matchCount)<=Number(result2.eligibleCount));const labeled=(value2)=>{const record3=object4(value2);recordReference({repository:record3.repository,ref:record3.ref});assert(text4(record3.label));if("reason"in record3)assert(text4(record3.reason))};array2(result2.matches).forEach(labeled);array2(result2.suggestions).forEach(labeled);if("selected"in result2)labeled(result2.selected);return result2}throw new Error("File content is not a JSON result")}async function limitedBody(request,limit,timeoutMs){if(!request.body)return new Uint8Array;const reader=request.body.getReader();let expired=false;const timer=timeoutMs===undefined?undefined:setTimeout(()=>{expired=true;reader.cancel().catch(()=>{})},timeoutMs);const chunks=[];let length=0;try{while(true){const{done,value}=await reader.read();if(done)break;length+=value.byteLength;if(length>limit){await reader.cancel();return}chunks.push(value)}if(expired)return;const contents=new Uint8Array(length);let offset=0;for(const chunk of chunks){contents.set(chunk,offset);offset+=chunk.byteLength}return contents}finally{if(timer!==undefined)clearTimeout(timer)}}var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function parseInboxHostContext(value){if(!value||typeof value!=="object"||Array.isArray(value))throw new Error("Inbox context unavailable");const v=value;if(v.kind!=="inbox"&&v.kind!=="focused"||Object.keys(v).sort().join(",")!==(v.kind==="inbox"?"generation,kind,memberId,workspaceId":"appId,generation,kind,memberId,workspaceId")||typeof v.workspaceId!=="string"||!UUID.test(v.workspaceId)||typeof v.memberId!=="string"||!UUID.test(v.memberId)||typeof v.generation!=="string"||!UUID.test(v.generation)||v.kind==="focused"&&(typeof v.appId!=="string"||!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(v.appId)))throw new Error("Inbox context unavailable");const base={workspaceId:v.workspaceId,memberId:v.memberId,generation:v.generation};return Object.freeze(v.kind==="inbox"?{...base,kind:"inbox"}:{...base,kind:"focused",appId:v.appId})}class InboxContextError extends Error{status;constructor(status){super("Inbox context unavailable");this.status=status}}var contexts=new WeakMap;function resolveHostedInboxContext(host){if(!host.binding||!host.memberId)throw new Error("Inbox context unavailable");let resolve=contexts.get(host.binding);if(!resolve){resolve=hostedInboxContext();contexts.set(host.binding,resolve)}return resolve({...host,memberId:host.memberId})}function hostedInboxContext(){let installed2;let revision=0,issued=0,settled=0;return async(host)=>{const started=++issued;const check=()=>{if(!host.isCurrent()||host.expiresAt<=Date.now())throw new Error("Inbox context unavailable")};check();const response2=await fetch(`${host.endpoint}/api/inbox/context`,{method:"GET",headers:{authorization:`Bearer ${host.accessToken}`},credentials:"omit",redirect:"error",cache:"no-store",signal:AbortSignal.timeout(15000)});try{check();if(response2.status===401||response2.status===403){installed2=undefined;revision++;settled=Math.max(settled,started)}if(!response2.ok||response2.status!==200)throw new InboxContextError(response2.status);const bytes=await limitedBody(response2,4096);check();if(!bytes)throw new Error("Inbox context unavailable");const context=parseInboxHostContext(JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(bytes)));if(context.memberId!==host.memberId)throw new Error("Inbox context unavailable");if(JSON.stringify(installed2)!==JSON.stringify(context)){if(started<settled)throw new Error("Inbox context unavailable");installed2=context;revision++}settled=Math.max(settled,started);const current=revision;return Object.freeze({context,isCurrent:()=>host.isCurrent()&&host.expiresAt>Date.now()&¤t===revision})}finally{response2.body?.cancel().catch(()=>{})}}}init_files_contract();var sessionKey="_os.app.session";var responseChecks=new WeakMap;class AppResponseReadError extends Error{}class AppContextDenied extends Error{}class AppRenewalUnavailable extends Error{}async function untilAborted(work,signal){if(signal.aborted){work.catch(()=>{});throw new AppRenewalUnavailable}let abort;const cancelled=new Promise((_resolve,reject)=>{abort=()=>reject(new AppRenewalUnavailable);signal.addEventListener("abort",abort,{once:true})});try{return await Promise.race([work,cancelled])}finally{signal.removeEventListener("abort",abort)}}async function appResponse(response2,maximum,signal){if(signal.aborted||!response2.body||response2.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase()!=="application/json")throw new Error;const reader=response2.body.getReader();const abort=()=>{reader.cancel().catch(()=>{})};signal.addEventListener("abort",abort,{once:true});let bytes=0,text5="";const decoder=new TextDecoder("utf-8",{fatal:true});try{while(true){let chunk;try{chunk=await reader.read()}catch{throw new AppResponseReadError}if(signal.aborted)throw new Error;if(chunk.done){const value=JSON.parse(text5+decoder.decode());await responseChecks.get(response2)?.(value);if(signal.aborted)throw new Error;return value}bytes+=chunk.value.byteLength;if(bytes>maximum){abort();throw new Error}text5+=decoder.decode(chunk.value,{stream:true})}}finally{signal.removeEventListener("abort",abort);reader.releaseLock()}}function isAppOrigin(value){try{const url=new URL(value);return url.protocol==="http:"&&url.hostname==="127.0.0.1"&&Boolean(url.port)&&url.port!=="0"&&url.origin===value}catch{return false}}function appContext(origin,active2){let binding;let credential;let pair;let serialized;let denied=false;const controller=new AbortController;let access=new AbortController;let expiry;let startup;let renewalTimer;let renewal;let observation;let resolution2;let disposed=false;const stored=()=>globalThis.localStorage.getItem(sessionKey);const alive=()=>{try{return!denied&&!disposed&&active2()&&globalThis.location.origin===origin}catch{return false}};const cancel=()=>{controller.abort();access.abort();clearTimeout(expiry);clearTimeout(startup);clearTimeout(renewalTimer);clearInterval(monitor);globalThis.removeEventListener?.("storage",storageChanged);for(const event of["pageshow","focus","visibilitychange"])globalThis.removeEventListener?.(event,wake)};const invalidate=()=>{denied=true;cancel();try{if(!disposed&&active2()&&globalThis.location.origin===origin&&(!serialized||globalThis.localStorage.getItem(sessionKey)===serialized)){globalThis.localStorage.removeItem(sessionKey)}}catch{}};const current=()=>{try{return alive()&&!!binding&&binding.expiresAt>Date.now()&&stored()===serialized}catch{return false}};const sameSession=(value)=>!binding||["appId","memberId","workspace","sessionId"].every((key)=>value[key]===binding[key]);const bounded=(value)=>validBinding(value)&&value.expiresAt>Date.now()&&value.expiresAt<=Date.now()+600000&&sameSession(value);const readPair=(candidate)=>{const value=JSON.parse(candidate??"null");if(!validPair(value)||value.context.expiresAt>Date.now()+600000||!sameSession(value.context))throw new Error;return value};const expireAccess=()=>{if(binding&&binding.expiresAt<=Date.now())access.abort()};async function send2(path,candidate,signal,init={}){const url=`${origin}/_os/app/${path}`;let response2;try{response2=await fetch(url,{...init,credentials:"omit",redirect:"error",cache:"no-store",...init.body instanceof ReadableStream?{duplex:"half"}:{},referrerPolicy:"no-referrer",signal,headers:{...init.body===undefined?{}:{"content-type":"application/json"},...Object.fromEntries(new Headers(init.headers)),authorization:`Bearer ${candidate}`}})}catch{throw new AppRenewalUnavailable}if(response2.redirected||response2.url&&response2.url!==url)throw new Error;return response2}async function proof(candidate,signal=controller.signal){if(!alive()||!validProof(candidate))throw new Error;const response2=await send2("context",candidate,signal);if(response2.status===401||response2.status===403)throw new AppContextDenied;if(response2.status>=500)throw new AppRenewalUnavailable;if(!response2.ok)throw new Error;const value=await appResponse(response2,4096,signal);if(!alive()||!bounded(value))throw new Error;return value}function install(value,candidate,raw){expireAccess();if(access.signal.aborted)access=new AbortController;binding={...value};pair=candidate;credential=candidate.credential;serialized=raw;clearTimeout(expiry);clearTimeout(renewalTimer);const remaining=binding.expiresAt-Date.now();expiry=setTimeout(expireAccess,remaining);renewalTimer=setTimeout(()=>{renew().catch(()=>{})},remaining-Math.min(60000,remaining/5))}async function synchronize(signal=controller.signal){if(!alive())throw new Error;if(signal.aborted)throw new AppRenewalUnavailable;if(!credential)return;if(stored()===serialized)return;if(!binding)throw new Error;if(observation)return untilAborted(observation,signal);observation=(async()=>{while(alive()){const candidate=stored();if(!candidate)throw new Error;let value;let replacement;try{replacement=readPair(candidate);value=await proof(replacement.credential,signal)}catch(error){if(stored()!==candidate)continue;throw error}if(stored()!==candidate)continue;if(value.expiresAt!==replacement.context.expiresAt)throw new Error;install(value,replacement,candidate);return}throw new Error})();const observed=observation;try{await untilAborted(observed,signal)}catch(error){if(!(error instanceof AppRenewalUnavailable||error instanceof AppResponseReadError))invalidate();throw error}finally{if(observation===observed)observation=undefined}}async function renew(){if(renewal)return renewal;if(!binding||!pair||!alive())throw new Error;renewal=(async()=>{const requestController=new AbortController;const abort=()=>requestController.abort();controller.signal.addEventListener("abort",abort,{once:true});const timeout=setTimeout(abort,20000);const previous=serialized;try{await synchronize(requestController.signal);if(serialized!==previous)return;const response2=await send2("renew",pair.renewalCredential,requestController.signal,{method:"POST"});const value=await appResponse(response2,4096,requestController.signal);if(response2.status===503&&value&&typeof value==="object"&&!Array.isArray(value)&&Object.keys(value).join(",")==="error"&&"error"in value&&value.error==="renewal_unavailable")throw new AppRenewalUnavailable;if(response2.status===403&&value&&typeof value==="object"&&!Array.isArray(value)&&Object.keys(value).join(",")==="error"&&"error"in value&&value.error==="renewal_conflict"){while(alive()&&stored()===previous&&!requestController.signal.aborted){await new Promise((resolve2,reject)=>{const abortWait=()=>{clearTimeout(timer);reject(new Error)};const timer=setTimeout(()=>{requestController.signal.removeEventListener("abort",abortWait);resolve2()},100);requestController.signal.addEventListener("abort",abortWait,{once:true})})}if(requestController.signal.aborted)throw new Error;await synchronize(requestController.signal);return}if(!response2.ok)throw new Error;if(!alive()||!validPair(value)||!bounded(value.context)||new Set([value.credential,value.renewalCredential,pair.credential,pair.renewalCredential]).size!==4)throw new Error;if(stored()!==previous){await synchronize(requestController.signal);return}const raw=JSON.stringify(value);globalThis.localStorage.setItem(sessionKey,raw);install(value.context,value,raw)}catch(error){try{if(alive()&&stored()&&stored()!==previous){await synchronize(requestController.signal);return}}catch{}if((error instanceof AppRenewalUnavailable||error instanceof AppResponseReadError||requestController.signal.aborted)&&alive()){if(current())renewalTimer=setTimeout(()=>{renew().catch(()=>{})},Math.min(5000,(binding.expiresAt-Date.now())/5))}else invalidate();throw new AppRenewalUnavailable}finally{clearTimeout(timeout);controller.signal.removeEventListener("abort",abort)}})();try{await renewal}finally{renewal=undefined}}const storageChanged=()=>{if(!credential)return;if(!alive()){invalidate();return}expireAccess();synchronize().catch(()=>{})};const monitor=setInterval(()=>{storageChanged()},100);globalThis.addEventListener?.("storage",storageChanged);const wake=()=>{if(alive())resolve().catch(()=>{})};for(const event of["pageshow","focus","visibilitychange"])globalThis.addEventListener?.(event,wake);const dispose=()=>{disposed=true;cancel()};async function settledAccess(signal){await synchronize();while(alive()&&stored()!==serialized)await synchronize();if(signal.aborted||!current())throw new Error}async function requestData(operation2,input){try{if(operation2!=="data/query"||!current())throw new Error;const admitted=credential;const signal=access.signal;const response2=await send2("data",credential,signal,{method:"POST",body:JSON.stringify(input)});await settledAccess(signal);if(response2.status===401||response2.status===403){if(admitted===credential&¤t())invalidate();throw new DataOperationError("access_denied")}const result2=await appResponse(response2,Number.MAX_SAFE_INTEGER,signal);await settledAccess(signal);if(!response2.ok)throw dataTransportError(response2.status,result2);return result2}catch(error){if(error instanceof DataOperationError)throw error;if(!current()||controller.signal.aborted)throw new DataOperationError("context_unavailable");throw new DataOperationError("unavailable",true)}}async function requestInbox(operation2,input){if(!["questions.list","questions.answer","questions.searchRecords"].includes(operation2))throw new Error("Inbox operation unavailable");return requestChecked("inbox",{method:"POST",body:JSON.stringify({operation:operation2,input})},true)}async function requestRoutine(key,suffix,init={}){return requestChecked(`routines/${encodeURIComponent(key)}/${suffix}`,init)}async function requestRetainedRoutine(key,suffix){return requestChecked(`routines/${encodeURIComponent(key)}/${suffix}`,{},false,true)}async function requestFiles(suffix,init,parent){const unavailable3=()=>new FileOperationError("unsupported_context",400);if(!current()||!/^(?:|\/[0-9a-f-]{36}(?:\/(?:content|upload|enrichments(?:\/[^/?#]+\/content)?))?)$/i.test(suffix))throw unavailable3();const admitted=credential;const signal=parent?AbortSignal.any([access.signal,parent]):access.signal;const failure=()=>current()&&!signal.aborted?new FileOperationError("unavailable",503,true):unavailable3();try{return await hostedContent("",init,signal,(_url,request)=>untilAborted(send2(`files${suffix}`,admitted,signal,request).then((value)=>{if(signal.aborted){value.body?.cancel().catch(()=>{});throw unavailable3()}return value}),signal),()=>settledAccess(signal),failure)}catch{throw failure()}}async function requestChecked(path,init,inbox=false,retained2=false){if(!current())throw new Error("Local app context unavailable.");const admitted=credential;const signal=access.signal;const response2=await send2(path,credential,signal,init);const check=async()=>{if(retained2){if(signal.aborted||!current())throw new Error("Local app context unavailable.")}else await settledAccess(signal)};await check();if((response2.status===401||!inbox&&response2.status===403)&&admitted===credential&¤t())invalidate();responseChecks.set(response2,async(value)=>{await check();if(admitted===credential&¤t()&&value&&typeof value==="object"&&"error"in value&&value.error==="authority_unavailable")invalidate()});return response2}function context(){const issued=credential;const signal=access.signal;return{kind:"local",...binding,get expiresAt(){return binding.expiresAt},isCurrent:()=>!signal.aborted&¤t(),signal,invalidate:()=>{if(issued===credential&¤t())invalidate()},requestRoutine,requestRetainedRoutine,requestData,requestInbox,requestFiles,requestAvailability:(key)=>requestRoutine(key,"availability",{method:"GET"})}}const resolveOnce=async()=>{let attempted;try{if(!alive())throw new Error;if(!pair){const candidate2=stored();const retained3=readPair(candidate2);pair=retained3;binding={...retained3.context};credential=retained3.credential;serialized=candidate2}expireAccess();if(binding.expiresAt<=Date.now()){await renew();if(!current())throw new AppRenewalUnavailable;return context()}await synchronize();const candidate=stored();const retained2=readPair(candidate);attempted=candidate??undefined;if(!current())throw new AppRenewalUnavailable;const value=await proof(retained2.credential);if(stored()!==candidate||serialized!==candidate){await synchronize();return context()}if(!current())throw new Error;if(expiry&&binding&&value.expiresAt>binding.expiresAt)throw new Error;if(!expiry||value.expiresAt!==binding.expiresAt)install(value,retained2,candidate);return context()}catch(error){if(alive()&&error instanceof AppRenewalUnavailable)throw new Error;try{if(binding&¤t()&&attempted&&attempted!==serialized)return context();if(binding&&alive()&&stored()&&stored()!==serialized){await synchronize();return context()}}catch{}if(error instanceof AppContextDenied&&binding&&alive()&&renewal)throw new Error;if(alive()&&(error instanceof AppResponseReadError||pair&&stored()===serialized&&!current()))throw new Error;invalidate();throw new Error}};const resolve=()=>{if(resolution2)return resolution2;resolution2=resolveOnce().finally(()=>{resolution2=undefined});return resolution2};const start=()=>{startup=setTimeout(()=>{if(alive()&&!resolution2&&!binding)resolve().catch(()=>{})},0)};const retained=async()=>{if(!expiry&&alive()){if(binding?current()&&resolution2:readPair(stored()).context.expiresAt>Date.now())return resolve()}if(!expiry||!current())throw new Error("Local app context unavailable.");return context()};return{resolve,retained,start,invalidate,dispose}}function validProof(value){return typeof value==="string"&&/^[A-Za-z0-9_-]{43}$/.test(value)}function validBinding(value){if(!value||typeof value!=="object"||Array.isArray(value)||Object.keys(value).sort().join(",")!=="appId,expiresAt,memberId,sessionId,workspace")return false;const binding=value;return typeof binding.appId==="string"&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(binding.appId)&&typeof binding.workspace==="string"&&/^[a-z0-9][a-z0-9-]{0,62}$/.test(binding.workspace)&&typeof binding.memberId==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(binding.memberId)&&validProof(binding.sessionId)&&typeof binding.expiresAt==="number"&&Number.isFinite(binding.expiresAt)}function validPair(value){if(!value||typeof value!=="object"||Array.isArray(value)||Object.keys(value).sort().join(",")!=="context,credential,renewalCredential")return false;const pair=value;return validProof(pair.credential)&&validProof(pair.renewalCredential)&&pair.credential!==pair.renewalCredential&&validBinding(pair.context)}var unavailable3=()=>new InboxOperationError(503,"unavailable");var stale=()=>new InboxOperationError(401,"authority_unavailable");function hostFailure(error,context){if(!context.isCurrent()||context.expiresAt<=Date.now()||error instanceof InboxContextError&&error.status===401)return stale();return error instanceof InboxContextError&&error.status===403?new InboxOperationError(403,"access_denied"):unavailable3()}async function send2(operation2,input,admitted){const envelope=parseInboxRequest({operation:operation2,input});let context;try{context=admitted??await resolveAppContext()}catch{throw stale()}if(context.kind==="local"){if(!isAppQuestionOperation(operation2))throw new InboxOperationError(403,"access_denied");const check2=()=>{if(!context.isCurrent()||context.signal.aborted||context.expiresAt<=Date.now())throw stale()};try{const response2=await context.requestInbox(operation2,envelope.input);const value=await appResponse(response2,INBOX_RESULT_BYTES,context.signal);check2();if(!response2.ok)throw new InboxOperationError([400,401,403,409].includes(response2.status)?response2.status:503,response2.status===400?"invalid_input":response2.status===401?"authority_unavailable":response2.status===403?"access_denied":response2.status===409?"conflict":"unavailable");if(response2.status!==200)throw unavailable3();const parsed=parseInboxResult(operation2,value);check2();if(operation2==="questions.answer"&&typeof envelope.input.response.selection==="object"&&!parsed.label?.trim())throw unavailable3();return parsed}catch(error){check2();throw error instanceof InboxOperationError?error:unavailable3()}}if(context.endpoint!==`https://${context.workspace}.oddington.ai`||["auth","www","api","os"].includes(context.workspace))throw stale();let host;if(!isAppQuestionOperation(operation2)){try{host=await resolveHostedInboxContext(context)}catch(error){throw hostFailure(error,context)}if(!host)throw unavailable3()}const check=()=>{if(!context.isCurrent()||host&&!host.isCurrent()||!Number.isFinite(context.expiresAt)||context.expiresAt<=Date.now())throw stale()};check();if(host?.context.kind==="focused")throw new InboxOperationError(403,"access_denied");try{const response2=await fetch(`${context.endpoint}/api/inbox`,{method:"POST",headers:{authorization:`Bearer ${context.accessToken}`,"content-type":"application/json"},body:JSON.stringify(envelope),redirect:"error",cache:"no-store",signal:AbortSignal.timeout(30000)});try{check()}catch(error){response2.body?.cancel().catch(()=>{});throw error}if(!response2.ok){response2.body?.cancel().catch(()=>{});throw new InboxOperationError([400,401,403,409].includes(response2.status)?response2.status:503,response2.status===400?"invalid_input":response2.status===401?"authority_unavailable":response2.status===403?"access_denied":response2.status===409?"conflict":"unavailable")}if(response2.status!==200){response2.body?.cancel().catch(()=>{});throw unavailable3()}if(operation2==="files.read"){if(!response2.body)throw unavailable3();const source=response2.body;let reader;let size=0;const cancel=async(reason)=>{try{await(reader?reader.cancel(reason):source.cancel(reason))}finally{reader?.releaseLock()}};const body=new ReadableStream({async pull(controller){try{check();reader??=source.getReader();const next=await reader.read();check();if(next.done){reader.releaseLock();controller.close();return}size+=next.value.byteLength;if(size>25*1024*1024)throw unavailable3();controller.enqueue(next.value)}catch(error){controller.error(error);await cancel(error).catch(()=>{})}},cancel},{highWaterMark:0});return new Response(body,{status:response2.status,headers:response2.headers})}const bytes=await limitedBody(response2,INBOX_RESULT_BYTES);check();if(!bytes)throw unavailable3();const value=JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(bytes));const parsed=parseInboxResult(operation2,value);check();if(operation2==="current"&&parsed.workspace.slug!==context.workspace)throw unavailable3();if("itemId"in envelope.input){const item=operation2==="items.read"?parsed:operation2==="items.rename"||operation2==="items.setLifecycle"||operation2==="items.addRecipient"?parsed.item:undefined;if(item&&(item.id!==envelope.input.itemId||("revision"in envelope.input)&&item.revision!==envelope.input.revision))throw unavailable3();if(operation2==="items.addRecipient"&&parsed.addedPersonId!==envelope.input.personId)throw unavailable3();if(operation2==="questions.answer"&&typeof envelope.input.response.selection==="object"&&!parsed.label?.trim())throw unavailable3()}return parsed}catch(error){check();throw error instanceof InboxOperationError?error:unavailable3()}}var inbox={current:async()=>await send2("current",{}),items:{async list(){const items=[];let beforeNumber;let initial;try{initial=await resolveAppContext()}catch{throw stale()}let host;try{host=initial.kind!=="local"&&await resolveHostedInboxContext(initial)}catch(error){throw hostFailure(error,initial)}if(initial.kind==="local")throw new InboxOperationError(403,"access_denied");if(!host)throw unavailable3();const check=()=>{if(!initial.isCurrent()||!host.isCurrent()||initial.expiresAt<=Date.now())throw stale()};do{check();const page=await send2("items.list",beforeNumber===undefined?{}:{beforeNumber});check();if(beforeNumber!==undefined&&(page.items.some((item)=>item.number>=beforeNumber)||page.nextBeforeNumber!==null&&page.nextBeforeNumber>=beforeNumber))throw unavailable3();items.push(...page.items);if(page.nextBeforeNumber===null)return items;beforeNumber=page.nextBeforeNumber}while(true)},read:async(itemId)=>await send2("items.read",{itemId}),see:async(itemId)=>{await send2("items.see",{itemId})},markDigestRead:async(itemId)=>await send2("items.markDigestRead",{itemId}),rename:async(input)=>await send2("items.rename",input),setLifecycle:async(input)=>await send2("items.setLifecycle",input),listRecipientCandidates:async(itemId)=>await send2("items.listRecipientCandidates",{itemId}),addRecipient:async(input)=>await send2("items.addRecipient",input)},questions:{async list(input){const supplied=parseInboxRequest({operation:"questions.list",input}).input;if(Object.hasOwn(supplied,"beforeNumber"))throw new InboxOperationError(400,"invalid_input");const routines=Object.freeze(supplied.routines);const questions=[];let beforeNumber;let initial;try{initial=await resolveAppContext()}catch{throw stale()}const check=()=>{if(!initial.isCurrent()||initial.expiresAt<=Date.now())throw stale()};do{check();const page=await send2("questions.list",{routines,...beforeNumber===undefined?{}:{beforeNumber}},initial);check();if(page.questions.some((question2)=>question2.inboxUrl!==`https://${initial.workspace}.oddington.ai/inbox/${question2.itemId}`||!routines.includes(question2.routine))||beforeNumber!==undefined&&page.nextBeforeNumber!==null&&page.nextBeforeNumber>=beforeNumber)throw unavailable3();questions.push(...page.questions);if(page.nextBeforeNumber===null)return questions;beforeNumber=page.nextBeforeNumber}while(true)},answer:async(input)=>await send2("questions.answer",input),searchRecords:async(input)=>await send2("questions.searchRecords",input)},files:{read:async(input)=>await send2("files.read",input)}};var sources=new WeakMap;function registerBrowserAuth(handle,source){sources.set(handle,source)}function browserAuthSource(handle){return sources.get(handle)}var installedDispose;function init({auth:input}){installedDispose?.();const registered=browserAuthSource(input);const auth=registered??input;if(!registered&&input&&"getState"in input||typeof auth?.getSession!=="function"||typeof auth?.onAuthStateChange!=="function"){installedDispose=installMemberContext(async()=>{throw new Error("Hosted Data context unavailable.")});return}let endpoint;let workspace;let localOrigin;try{const url=new URL(globalThis.location.origin);if(isAppOrigin(globalThis.location.origin))localOrigin=url.origin;const slug=url.hostname.endsWith(".oddington.ai")?url.hostname.slice(0,-".oddington.ai".length):"";if(url.protocol==="https:"&&!url.port&&!url.username&&!url.password&&!url.search&&!url.hash&&url.pathname==="/"&&/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(slug)&&slug!=="auth"){endpoint=url.origin;workspace=slug}}catch{}let active2=true;let revision=0;let person;let token;const binding={};const local2=localOrigin?appContext(localOrigin,()=>active2):undefined;let subscription;let stopDisposal;const resolve=async()=>{if(local2)return local2.resolve();if(!active2||!endpoint||!workspace||globalThis.location.origin!==endpoint)throw new Error("Hosted Data context unavailable.");const started=revision;const{data:{session},error}=await auth.getSession();if(!active2||globalThis.location.origin!==endpoint||started!==revision||error||!session||person!==undefined&&person!==session.user.id){throw new Error("Hosted Data context unavailable.")}const expiresAt=(session.expires_at??0)*1000;if(!Number.isFinite(expiresAt)||expiresAt<=Date.now()||!session.user.id){throw new Error("Hosted Data context unavailable.")}person=session.user.id;const isCurrent=()=>active2&&globalThis.location.origin===endpoint&&revision===started&&person===session.user.id;return{workspace,endpoint,accessToken:session.access_token,expiresAt,isCurrent,memberId:session.user.id,binding}};const uninstall=installMemberContext(resolve,local2?local2.retained:resolve);const dispose=()=>{if(!active2)return;active2=false;local2?.dispose();revision++;subscription?.unsubscribe();stopDisposal?.();uninstall();if(installedDispose===dispose)installedDispose=undefined};installedDispose=dispose;stopDisposal=registered?.onDispose(dispose);if(!active2)return;subscription=auth.onAuthStateChange((event,session)=>{const next=session?.user.id??null;if(event==="SIGNED_OUT"||person!==undefined&&next!==person||person!==undefined&&event==="SIGNED_IN"&&token!==session?.access_token){revision++;local2?.invalidate()}person=next;token=session?.access_token}).data.subscription;local2?.start()}var os={init};var CLI_CALLBACK="http://127.0.0.1:53682/oauth/callback";function authorizationConfiguration(value){const setup=value;if(!setup||typeof setup.clientId!=="string"||!/^[A-Za-z0-9_-]{1,128}$/.test(setup.clientId)||setup.redirectUri!==CLI_CALLBACK||!Array.isArray(setup.scopes)||setup.scopes.length!==1||setup.scopes[0]!=="email")throw new Error("Unavailable");return{clientId:setup.clientId,redirectUri:CLI_CALLBACK,scopes:["email"]}}function authorizationDetails(value,id3,setup,userId,account){const details=value;if(!details||details.authorization_id!==id3||details.redirect_uri!==setup.redirectUri||details.client?.id!==setup.clientId||typeof details.client.name!=="string"||!details.client.name.trim()||details.client.name.length>128||/[\x00-\x1f\x7f]/.test(details.client.name)||details.user?.id!==userId||details.user.email!==account.email||typeof details.scope!=="string"||details.scope.trim()!=="email")return Object.freeze({status:"invalid"});return Object.freeze({status:"consent",clientName:details.client.name.trim(),account,scopes:Object.freeze([...setup.scopes]),callbackAddress:new URL(setup.redirectUri).host})}function authorizationReturn(value,decision){const returnUrl=value?.redirect_url;if(typeof returnUrl!=="string"||returnUrl.length>8192||!returnUrl.startsWith(`${CLI_CALLBACK}?`)||/[\x00-\x20\x7f]/.test(returnUrl))return Object.freeze({status:"invalid"});try{const url=new URL(returnUrl);if(url.origin+url.pathname!==CLI_CALLBACK||url.username||url.password||url.hash)return Object.freeze({status:"invalid"});const parameters=url.searchParams;const allowed=["code","state","error","error_description","error_uri"];for(const key of parameters.keys()){if(!allowed.includes(key)||parameters.getAll(key).length!==1)return Object.freeze({status:"invalid"})}const code=parameters.get("code");const error=parameters.get("error");if(!parameters.get("state")||Boolean(code)===Boolean(error)||decision==="deny"&&!error||decision==="approve"&&!code||parameters.has("code")&&!code||parameters.has("error")&&!error||code&&(parameters.has("error_description")||parameters.has("error_uri")))return Object.freeze({status:"invalid"});return Object.freeze({status:"return",returnUrl})}catch{return Object.freeze({status:"invalid"})}}function authorizationFailure(error){const status=error?.status;return Object.freeze({status:status===404||status===410||status===400?"expired":status===401?"signed_out":status===403||status===422?"invalid":"unavailable"})}function createBrowserAuth(runtime){const coordinators=new Map;function publish(c,state){c.state=Object.freeze(state);for(const listener of c.listeners){try{listener(c.state)}catch{}}}function notify(c,event){for(const listener of c.sessions){try{listener(event,event==="SIGNED_OUT"?null:c.session)}catch{}}}function expire(c){if(!c.active||!c.session&&c.state.status==="expired")return;c.revision++;if(c.timer)clearTimeout(c.timer);c.session=null;publish(c,{status:"expired"});notify(c,"SIGNED_OUT")}function accept(c,event,session){if(!c.active)return;if(event==="INITIAL_SESSION"&&c.state.status!=="initializing")return;if(event==="TOKEN_REFRESHED"&&!c.session&&c.state.status!=="initializing")return;const replaced=c.session?.user?.id!==session?.user?.id||event==="SIGNED_OUT"||!!(event==="SIGNED_IN"&&c.session&&session?.access_token!==c.session.access_token);if(replaced)c.revision++;if(c.timer)clearTimeout(c.timer);const pending=c.state.pending;if(!session){c.session=null;publish(c,{status:c.state.status==="expired"?"expired":"signed_out",...pending?{pending}:{}});notify(c,"SIGNED_OUT");return}if(!validSession(session)){c.session=session;expire(c);return}c.session=session;const email=typeof session.user.email==="string"?session.user.email.trim():"";const metadata=session.user.user_metadata;const displayName=["name","full_name","first_name"].map((key)=>metadata?.[key]).find((value)=>typeof value==="string"&&value.trim());const name=displayName?.trim()||email;const account=!replaced&&c.state.account?.email===email&&c.state.account.displayName===name?c.state.account:Object.freeze({email,displayName:name});notify(c,event);publish(c,{status:"signed_in",account,...pending?{pending}:{}});const checkExpiry=()=>{if(!c.active||!c.session)return;const remaining=c.session.expires_at*1000-Date.now();if(remaining<=0)expire(c);else c.timer=setTimeout(checkExpiry,Math.min(remaining,2147483647))};checkExpiry()}function validSession(session){return typeof session.access_token==="string"&&/^[^\s]{1,8192}$/.test(session.access_token)&&typeof session.user?.id==="string"&&!!session.user.id&&Number.isFinite(session.expires_at)&&session.expires_at*1000>Date.now()}function createCoordinator(origin){const c={state:Object.freeze({status:"initializing"}),session:null,revision:0,active:true,refs:0,listeners:new Set,sessions:new Set,ready:Promise.resolve()};c.ready=(async()=>{const revision=c.revision;try{if(!allowedOrigin(origin))throw runtime.failure("unavailable");const response2=await fetch(`${origin}/api/auth`,{method:"GET",credentials:"same-origin",redirect:"error",cache:"no-store"});if(!response2.ok)throw runtime.failure("unavailable");const configuration=validateConfiguration(await response2.json());if(configuration.authorization&&origin!=="https://auth.oddington.ai"&&origin!=="http://127.0.0.1:5176")throw runtime.failure("unavailable");c.authorization=configuration.authorization;if(!c.active||globalThis.location?.origin!==origin)return;c.provider=await runtime.provider(configuration,{revision:()=>c.revision,current:(revision2)=>current(c,origin,revision2),canPersistSession:()=>c.active&&(c.state.status==="initializing"||!!c.session||c.state.pending==="verify_code"),canAuthorize:(accessToken)=>current(c,origin,c.revision)&&!!c.session&&c.session.access_token===accessToken&&c.state.pending!=="sign_out"});if(!c.active||globalThis.location?.origin!==origin){c.provider.dispose();return}const subscription=c.provider.onAuthStateChange((event,session)=>{if(c.state.status==="initializing"&&c.state.pending==="sign_out")return;accept(c,event,session)}).data.subscription;c.unsubscribe=()=>subscription.unsubscribe();const started=c.revision;const{data:data2,error}=await c.provider.getSession();if(!current(c,origin,started))return;if(error){if(terminalSessionFailure(error))expire(c);else if(!c.session||!validSession(c.session))publish(c,{status:"unavailable",error:"unavailable"})}else if(c.state.pending!=="sign_out")accept(c,"INITIAL_SESSION",data2.session)}catch{if(current(c,origin,revision))publish(c,{status:"unavailable",error:"unavailable"})}})();return c}function current(c,origin,revision){if(c.session&&!validSession(c.session))expire(c);return c.active&&c.revision===revision&&globalThis.location?.origin===origin}return{create(){const origin=globalThis.location?.origin??"";let c=coordinators.get(origin);if(!c){c=createCoordinator(origin);coordinators.set(origin,c)}const coordinator=c;coordinator.refs++;let active2=true;let ownedAction;let authorizationId;let authorizationGeneration=0;let inspected;const observers=new Set;const sessionObservers=new Set;const disposalObservers=new Set;let lastState=coordinator.state;const observation=(state)=>{lastState=state;for(const listener of observers){try{listener(state)}catch{}}};coordinator.listeners.add(observation);const assertActive=()=>{if(!active2)throw runtime.failure("disposed")};async function action(kind,work){assertActive();if(coordinator.action&&kind!=="sign_out")throw runtime.failure("busy");if(kind==="sign_out"&&coordinator.state.pending==="sign_out")throw runtime.failure("busy");if(kind==="sign_out"){coordinator.revision++;notify(coordinator,"SIGNED_OUT")}const marker={};coordinator.action=marker;ownedAction=marker;const revision=coordinator.revision;publish(coordinator,{...coordinator.state,error:undefined,pending:kind});try{await coordinator.ready;assertActive();if(!coordinator.provider||!coordinator.active||globalThis.location?.origin!==origin)throw runtime.failure("unavailable");if(!current(coordinator,origin,revision))throw runtime.failure("stale");if(coordinator.action!==marker)throw runtime.failure("stale");await work(coordinator.provider);assertActive();if(coordinator.action!==marker)throw runtime.failure("stale");if(!current(coordinator,origin,revision)&&kind!=="verify_code"&&kind!=="sign_out")throw runtime.failure("stale")}catch(error){const reason=!active2?"disposed":!current(coordinator,origin,revision)?"stale":safeReason(error)??"unavailable";if(active2&¤t(coordinator,origin,revision))publish(coordinator,{...coordinator.state,error:reason});throw runtime.failure(reason)}finally{if(coordinator.action===marker){coordinator.action=undefined;if(coordinator.active){publish(coordinator,{...coordinator.state,pending:undefined});if(kind==="sign_out"&&coordinator.session)notify(coordinator,"TOKEN_REFRESHED")}}if(ownedAction===marker)ownedAction=undefined}}async function authorize(kind,id3){if(!active2)return Object.freeze({status:"disposed"});if(id3!==authorizationId){authorizationId=id3;authorizationGeneration++;inspected=undefined}if(!id3)return Object.freeze({status:"missing"});if(typeof id3!=="string"||!/^[A-Za-z0-9_-]{1,128}$/.test(id3))return Object.freeze({status:"invalid"});const generation=authorizationGeneration;await coordinator.ready;if(!active2)return Object.freeze({status:"disposed"});if(generation!==authorizationGeneration)return Object.freeze({status:"stale"});const revision=coordinator.revision;if(!current(coordinator,origin,revision))return Object.freeze({status:"stale"});if(!coordinator.session||coordinator.state.pending==="sign_out")return Object.freeze({status:coordinator.state.status==="expired"?"expired":coordinator.state.status==="unavailable"?"unavailable":"signed_out"});if(!coordinator.authorization||!coordinator.provider)return Object.freeze({status:"unavailable"});if(coordinator.action)return Object.freeze({status:"busy"});if(kind!=="get"&&(!inspected||inspected.id!==id3||inspected.revision!==revision))return Object.freeze({status:"stale"});if(kind!=="get"&&inspected?.result.status!=="consent")return inspected.result;const marker={};coordinator.action=marker;ownedAction=marker;const requestCurrent=()=>active2&&generation===authorizationGeneration&¤t(coordinator,origin,revision)&&coordinator.action===marker&&!!coordinator.session&&coordinator.state.pending!=="sign_out";const stale2=()=>Object.freeze({status:active2?"stale":"disposed"});try{const provider=coordinator.provider;const response2=await provider.authorization.get(id3,requestCurrent);if(!requestCurrent())return stale2();if(response2.error){inspected=undefined;const failure=authorizationFailure(response2.error);if(failure.status==="signed_out")expire(coordinator);return failure}const account=coordinator.state.account;const result2=response2.data&&typeof response2.data==="object"&&"redirect_url"in response2.data?authorizationReturn(response2.data):authorizationDetails(response2.data,id3,coordinator.authorization,coordinator.session.user.id,account);inspected={id:id3,revision,result:result2};if(kind==="get"||result2.status!=="consent")return result2;if(!requestCurrent())return stale2();const decision=await provider.authorization[kind](id3,requestCurrent);if(!requestCurrent())return stale2();const returned=decision.error?authorizationFailure(decision.error):authorizationReturn(decision.data,kind);if(returned.status==="signed_out")expire(coordinator);inspected={id:id3,revision,result:returned};return returned}catch(error){if(!requestCurrent())return stale2();inspected=undefined;if(safeReason(error)==="stale")return stale2();return Object.freeze({status:"unavailable"})}finally{if(coordinator.action===marker)coordinator.action=undefined;if(ownedAction===marker)ownedAction=undefined}}const handle=Object.freeze({authorization:Object.freeze({get:(id3)=>authorize("get",id3),approve:(id3)=>authorize("approve",id3),deny:(id3)=>authorize("deny",id3)}),getState(){if(active2&&coordinator.session&&!validSession(coordinator.session))expire(coordinator);return lastState},subscribe(listener){assertActive();observers.add(listener);return()=>{observers.delete(listener)}},async sendCode(email){assertActive();if(!validEmail(email))throw runtime.failure("invalid_input");await action("send_code",async(provider)=>{const{error}=await provider.signInWithOtp({email:email.trim(),options:{shouldCreateUser:false}});if(error&&!accountRefusal(error))throw runtime.failure("unavailable")})},async verifyCode(email,code){assertActive();if(!validEmail(email)||typeof code!=="string"||!/^\d{6}$/.test(code))throw runtime.failure("invalid_input");await action("verify_code",async(provider)=>{const revision=coordinator.revision;const{data:data2,error}=await provider.verifyOtp({email:email.trim(),token:code,type:"email"});if(error)throw runtime.failure(accountRefusal(error)?"invalid_code":"unavailable");if(!data2.session||!validSession(data2.session))throw runtime.failure("invalid_code");if(!current(coordinator,origin,revision)&&(coordinator.session?.access_token!==data2.session.access_token||coordinator.revision!==revision+1||coordinator.state.pending!=="verify_code"))throw runtime.failure("stale");accept(coordinator,"SIGNED_IN",data2.session)})},async signOut(){assertActive();await action("sign_out",async(provider)=>{const revision=coordinator.revision;const{error}=await provider.signOut({scope:"local"});if(error)throw runtime.failure("unavailable");if(!current(coordinator,origin,revision)&&coordinator.session)throw runtime.failure("stale");accept(coordinator,"SIGNED_OUT",null)})},dispose(){if(!active2)return;active2=false;authorizationGeneration++;inspected=undefined;if(ownedAction&&coordinator.action===ownedAction)coordinator.revision++;observers.clear();coordinator.listeners.delete(observation);for(const listener of disposalObservers){try{listener()}catch{}}disposalObservers.clear();for(const listener of sessionObservers)coordinator.sessions.delete(listener);sessionObservers.clear();if(--coordinator.refs===0){coordinator.active=false;coordinator.revision++;if(coordinator.timer)clearTimeout(coordinator.timer);coordinator.unsubscribe?.();coordinator.provider?.dispose();coordinator.provider=undefined;coordinator.session=null;coordinator.listeners.clear();coordinator.sessions.clear();coordinators.delete(origin)}}});registerBrowserAuth(handle,{onDispose(callback){if(!active2){callback();return()=>{}}disposalObservers.add(callback);return()=>{disposalObservers.delete(callback)}},async getSession(){assertActive();await coordinator.ready;assertActive();const revision=coordinator.revision;if(!current(coordinator,origin,revision)||!coordinator.provider||!coordinator.session||coordinator.state.pending==="sign_out")return{data:{session:null},error:null};let result2;try{result2=await coordinator.provider.getSession()}catch{result2={data:{session:null},error:runtime.failure("unavailable")}}if(!active2||!current(coordinator,origin,revision))return{data:{session:null},error:runtime.failure("stale")};if(result2.error){if(!terminalSessionFailure(result2.error)&&coordinator.session&&validSession(coordinator.session))return{data:{session:coordinator.session},error:null};expire(coordinator);return{data:{session:null},error:runtime.failure("unavailable")}}accept(coordinator,"TOKEN_REFRESHED",result2.data.session);return{data:{session:coordinator.session},error:null}},onAuthStateChange(callback){if(!active2){callback("SIGNED_OUT",null);return{data:{subscription:{unsubscribe(){}}}}}const listener=(event,session)=>callback(event,session);coordinator.sessions.add(listener);sessionObservers.add(listener);callback("INITIAL_SESSION",coordinator.session);return{data:{subscription:{unsubscribe(){coordinator.sessions.delete(listener);sessionObservers.delete(listener)}}}}}});return handle}}}function safeReason(error){const reason=error?.reason;return["invalid_input","invalid_code","unavailable","busy","stale","disposed"].includes(reason)?reason:undefined}function accountRefusal(error){return[400,401,403,404,422].includes(error?.status??0)}function terminalSessionFailure(error){return[400,401,403,404,422].includes(error?.status??0)}function validEmail(email){return typeof email==="string"&&email.length<=320&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email.trim())}function allowedOrigin(origin){if(origin==="http://127.0.0.1:5176"||origin==="https://auth.oddington.ai")return true;try{const url=new URL(origin);const slug=url.hostname.endsWith(".oddington.ai")?url.hostname.slice(0,-".oddington.ai".length):"";return slug.length<=63&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(slug)&&!["auth","api","os","www"].includes(slug)&&origin===`https://${slug}.oddington.ai`}catch{return false}}function validateConfiguration(value){const configuration=value;if(!configuration||typeof configuration.providerUrl!=="string"||typeof configuration.publishableKey!=="string")throw new Error("Unavailable");const url=new URL(configuration.providerUrl);if(url.origin!==configuration.providerUrl||url.protocol!=="https:"||url.username||url.password||url.port||!configuration.publishableKey)throw new Error("Unavailable");return{providerUrl:url.origin,publishableKey:configuration.publishableKey,...configuration.authorization===undefined?{}:{authorization:authorizationConfiguration(configuration.authorization)}}}class BrowserAuthError extends Error{reason;constructor(reason){super(`Browser authentication failed: ${reason}`);this.reason=reason;this.name="BrowserAuthError"}}async function provider(configuration,guard){const{AuthClient:AuthClient2}=await Promise.resolve().then(() => (init_auth_provider(),exports_auth_provider));if(!guard.current(guard.revision()))throw new BrowserAuthError("stale");const provenance=new Map;let removalRevision;let authorizationRequest;let authorizationQueue=Promise.resolve();const storage=globalThis.localStorage;const client=new AuthClient2({url:`${configuration.providerUrl}/auth/v1`,headers:{apikey:configuration.publishableKey,Authorization:`Bearer ${configuration.publishableKey}`},storageKey:`sb-${new URL(configuration.providerUrl).hostname.split(".")[0]}-auth-token`,persistSession:true,autoRefreshToken:true,detectSessionInUrl:false,storage:{getItem:(key)=>storage.getItem(key),removeItem(key){if(!guard.current(removalRevision??guard.revision()))throw new BrowserAuthError("stale");storage.removeItem(key)},setItem(key,value){const token=JSON.parse(value).access_token;const revision=token?provenance.get(token):undefined;if(!guard.current(revision??guard.revision())||token&&!guard.canPersistSession())throw new BrowserAuthError("stale");storage.setItem(key,value)}},fetch:Object.assign(async(input,init2)=>{const revision=guard.revision();const request=String(input).startsWith(`${configuration.providerUrl}/auth/v1/oauth/authorizations/`)?authorizationRequest:undefined;const rejectStale=()=>{if(request)request.rejected=true;throw new BrowserAuthError("stale")};if(request&&(!request.current()||!guard.canAuthorize(new Headers(init2?.headers).get("authorization")?.replace(/^Bearer /,"")??"")))rejectStale();const response2=await fetch(input,{...init2,redirect:"error"});const body=await response2.arrayBuffer();if(!guard.current(revision)||request&&!request.current())rejectStale();const result2=new Response([204,205,304].includes(response2.status)?null:body,{status:response2.status,statusText:response2.statusText,headers:response2.headers});const json2=result2.json.bind(result2);result2.json=async()=>{const value=await json2();if(!guard.current(revision)||request&&!request.current())rejectStale();if(value&&typeof value.access_token==="string")provenance.set(value.access_token,revision);return value};return result2},{preconnect:fetch.preconnect})});async function authorization(kind,id3,current){const previous=authorizationQueue;let release;authorizationQueue=new Promise((resolve)=>{release=resolve});await previous;const request={current,rejected:false};authorizationRequest=request;try{if(!current())throw new BrowserAuthError("stale");const result2=await(kind==="get"?client.oauth.getAuthorizationDetails(id3):kind==="approve"?client.oauth.approveAuthorization(id3,{skipBrowserRedirect:true}):client.oauth.denyAuthorization(id3,{skipBrowserRedirect:true}));if(request.rejected||!current())throw new BrowserAuthError("stale");return result2}catch(error){if(request.rejected||!current())throw new BrowserAuthError("stale");throw error}finally{authorizationRequest=undefined;release()}}return{authorization:{get:(id3,current)=>authorization("get",id3,current),approve:(id3,current)=>authorization("approve",id3,current),deny:(id3,current)=>authorization("deny",id3,current)},getSession:()=>client.getSession(),onAuthStateChange:(callback)=>client.onAuthStateChange((event,session)=>{const revision=session?provenance.get(session.access_token):undefined;if(revision!==undefined&&!guard.current(revision))return;callback(event,session);if(session)provenance.delete(session.access_token)}),signInWithOtp:(input)=>client.signInWithOtp(input),verifyOtp:(input)=>client.verifyOtp(input),async signOut(input){removalRevision=guard.revision();try{return await client.signOut(input)}finally{removalRevision=undefined}},dispose(){provenance.clear();client.dispose()}}}var auth=createBrowserAuth({provider,failure:(reason)=>new BrowserAuthError(reason)});function routineRunHandle(operations2){return Object.freeze({current:operations2.current,step:operations2.step,...operations2.publish?{publish:operations2.publish}:{},async*watch(){let previous;for(;;){const state=await operations2.current(),encoded=JSON.stringify(state);if(encoded!==previous){previous=encoded;yield state}if(state.status==="succeeded"||state.status==="failed")return;await(operations2.wait?.()??new Promise((resolve)=>setTimeout(resolve,100)))}}})}var name=/^[a-z0-9][a-z0-9-]{0,62}$/;var uuid=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;var invalid8=()=>{throw new Error("Run state unavailable")};var record3=(value)=>value&&typeof value==="object"&&!Array.isArray(value)?value:invalid8();function time(value){if(typeof value!=="string"||value.length>40||!Number.isFinite(Date.parse(value)))return invalid8();return value}function times(value){return{...value.startedAt===undefined?{}:{startedAt:time(value.startedAt)},...value.finishedAt===undefined?{}:{finishedAt:time(value.finishedAt)}}}function bounded(value){assertRoutineJson(value);if(new TextEncoder().encode(JSON.stringify(value)).byteLength>256*1024)return invalid8();return value}function parseRunStep(value,expected){const v=record3(value);if(typeof v.id!=="string"||!name.test(v.id)||expected!==undefined&&v.id!==expected||typeof v.title!=="string"||!v.title.trim()||v.title.length>256||!["pending","running","completed","failed","skipped"].includes(v.status))return invalid8();return{id:v.id,title:v.title,status:v.status,...times(v),...Object.hasOwn(v,"summary")?{summary:bounded(v.summary)}:{},...Object.hasOwn(v,"data")?{data:bounded(v.data)}:{}}}function parseRemoteRun(value,expected={}){const v=record3(value);if(typeof v.id!=="string"||!uuid.test(v.id)||expected.id!==undefined&&v.id!==expected.id||typeof v.routine!=="string"||!name.test(v.routine)||expected.routine!==undefined&&v.routine!==expected.routine||v.placement!=="remote"||!["queued","running","succeeded","failed"].includes(v.status)||!Array.isArray(v.steps)||v.steps.length>64)return invalid8();const steps=v.steps.map((value2)=>{const step=record3(value2);if(typeof step.detailAvailable!=="boolean"||Object.hasOwn(step,"data"))return invalid8();return{...parseRunStep(step),detailAvailable:step.detailAvailable}});if(new Set(steps.map((step)=>step.id)).size!==steps.length)return invalid8();let failure;if(v.failure!==undefined){const f=record3(v.failure);if(v.status!=="failed"||typeof f.message!=="string"||!f.message||f.message.length>512)return invalid8();failure={message:f.message}}if(Object.hasOwn(v,"result")&&v.status!=="succeeded")return invalid8();return{id:v.id,routine:v.routine,placement:"remote",status:v.status,createdAt:time(v.createdAt),...times(v),steps,...Object.hasOwn(v,"result")?{result:bounded(v.result)}:{},...failure?{failure}:{}}}var identifier=/^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/;var uuid2=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?![\s\S])/i;var SUMMARY_BYTES=17*1024*1024;class AppRoutineError extends Error{reason;constructor(reason){super(reason);this.reason=reason;this.name="AppRoutineError"}}var fail3=(reason)=>{throw new AppRoutineError(reason)};function current(context){if(!context.isCurrent()||context.kind==="local"&&context.signal.aborted)fail3("authority_unavailable")}function appDescriptors(){const value=globalThis[Symbol.for("oddington.app.descriptor")];return value?.routines??[]}async function authority(retained=false){const context=await resolveAppContext(retained).catch(()=>fail3("authority_unavailable"));current(context);if(context.kind!=="local"&&(!context.binding||!context.memberId||!identifier.test(context.workspace)||context.workspace.length>63||["auth","api","os","www"].includes(context.workspace)||context.endpoint!==`https://${context.workspace}.oddington.ai`))fail3("authority_unavailable");return context}async function live(context,read2){current(context);if(context.kind==="local")return context;const resolved=await authority(read2);current(context);if(resolved.kind==="local"||resolved.binding!==context.binding||resolved.memberId!==context.memberId||resolved.workspace!==context.workspace||resolved.endpoint!==context.endpoint)fail3("authority_unavailable");return resolved}async function request(key,suffix,init2,maximum=SUMMARY_BYTES,retained,read2=false){if(!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");const context=retained?await live(retained,read2):await authority(read2);current(context);const deadline=new AbortController;const timeout=context.kind==="local"?undefined:setTimeout(()=>deadline.abort(),20000);try{const response2=await(context.kind==="local"?read2?context.requestRetainedRoutine(key,suffix):context.requestRoutine(key,suffix,init2):fetch(`${context.endpoint}/api/routines/${key}/${suffix}`,{...init2,credentials:"omit",redirect:"error",signal:deadline.signal,headers:{authorization:`Bearer ${context.accessToken}`,...init2?.body?{"content-type":"application/json"}:{}}}));if(response2.redirected)fail3("execution_unavailable");const value=await appResponse(response2,maximum,context.kind==="local"?context.signal:deadline.signal);current(context);if(context.kind!=="local")await live(context,read2);if(!response2.ok){if(context.kind!=="local"){const code=value?.code;if(code==="authentication_required"||code==="access_denied")fail3("authority_unavailable");if(code==="input_invalid"||code==="file_not_remote")fail3("invalid_input");if(suffix==="describe"&&(code==="active_version_unavailable"||code==="capability_unavailable"))return unavailable4(key,code==="active_version_unavailable"?"not_deployed":"capability_unavailable");fail3("execution_unavailable")}const reason=value?.error;if(reason==="authority_unavailable"){if(context.kind==="local")context.invalidate();fail3(reason)}if(reason==="invalid_input"||reason==="execution_unavailable")fail3(reason);fail3("execution_unavailable")}return value}catch(error){current(context);if(error instanceof AppRoutineError)throw error;fail3("execution_unavailable")}finally{clearTimeout(timeout)}}function summary(value,key,context,id3){if(context.kind!=="local"){try{if(!only(value,"id,routine,placement,status,createdAt,startedAt,finishedAt,steps,result,failure")||!Array.isArray(value.steps)||value.steps.some((step)=>!only(step,"id,title,status,startedAt,finishedAt,summary,detailAvailable"))||value.failure!==undefined&&!only(value.failure,"message"))fail3("execution_unavailable");return parseRemoteRun(value,{routine:key,id:id3})}catch{return fail3("execution_unavailable")}}const run=value;if(!only(run,"id,routine,placement,status,createdAt,startedAt,finishedAt,steps,result,failure,publication")||typeof run.id!=="string"||!uuid2.test(run.id)||id3!==undefined&&run.id!==id3||run.routine!==key||run.placement!=="local"||!["queued","running","succeeded","failed"].includes(run.status)||!timestamp(run.createdAt)||!optionalTimes(run)||!Array.isArray(run.steps)||run.steps.length>64||run.steps.some((step)=>!only(step,"id,title,status,startedAt,finishedAt,summary,detailAvailable")||typeof step.detailAvailable!=="boolean"||!validStep(step))||new Set(run.steps.map((step)=>step.id)).size!==run.steps.length||Object.hasOwn(run,"result")&&(run.status!=="succeeded"||!bounded2(run.result))||run.failure!==undefined&&(run.status!=="failed"||!only(run.failure,"message")||!message(run.failure.message))||run.publication!==undefined&&(run.status!=="succeeded"||!validPublication(run.publication)))fail3("execution_unavailable");return run}function only(value,allowed){return!!value&&typeof value==="object"&&!Array.isArray(value)&&Object.keys(value).every((key)=>allowed.split(",").includes(key))}var timestamp=(value)=>typeof value==="string"&&value.length<=32&&Number.isFinite(Date.parse(value));var message=(value)=>typeof value==="string"&&value.length>0&&value.length<=512;var bounded2=(value)=>new TextEncoder().encode(JSON.stringify(value)).byteLength<=256*1024;function optionalTimes(value){return(value.startedAt===undefined||timestamp(value.startedAt))&&(value.finishedAt===undefined||timestamp(value.finishedAt))}function validStep(step){return typeof step.id==="string"&&identifier.test(step.id)&&typeof step.title==="string"&&step.title.length>0&&step.title.length<=256&&["pending","running","completed","failed","skipped"].includes(step.status)&&optionalTimes(step)&&(!Object.hasOwn(step,"summary")||bounded2(step.summary))&&(!Object.hasOwn(step,"data")||bounded2(step.data))}function validPublication(value){return value&&only(value,value.state==="failed"?"state,message":"state")&&(["not_needed","ready","published"].includes(value.state)||value.state==="failed"&&message(value.message))}function jsonInput(value,ancestors=new Set){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return;if(!value||typeof value!=="object"||ancestors.has(value))return fail3("invalid_input");const array3=Array.isArray(value),keys4=Reflect.ownKeys(value);if(!array3&&![Object.prototype,null].includes(Object.getPrototypeOf(value))||array3&&(keys4.length!==value.length+1||!Array.from({length:value.length},(_,index)=>Object.hasOwn(value,index)).every(Boolean)))return fail3("invalid_input");ancestors.add(value);for(const key of keys4){if(array3&&key==="length")continue;const descriptor=Object.getOwnPropertyDescriptor(value,key);if(typeof key!=="string"||!descriptor.enumerable||!Object.hasOwn(descriptor,"value"))return fail3("invalid_input");jsonInput(descriptor.value,ancestors)}ancestors.delete(value)}function structure(value){return JSON.stringify(value,(_key,item)=>item&&typeof item==="object"&&!Array.isArray(item)?Object.fromEntries(Object.keys(item).sort().map((key)=>[key,item[key]])):item)}function handle(key,id3,context){if(!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");if(typeof id3!=="string"||!uuid2.test(id3))fail3("invalid_input");const read2=async()=>summary(await request(key,`runs/${id3}`,undefined,SUMMARY_BYTES,context,true),key,context,id3);return routineRunHandle({async current(){current(context);return read2()},async step(step){if(typeof step!=="string"||!identifier.test(step))fail3("invalid_input");const value=await request(key,`runs/${id3}/steps/${step}`,undefined,514*1024,context,true);if(context.kind!=="local"){try{if(!only(value,"id,title,status,startedAt,finishedAt,summary,data"))fail3("execution_unavailable");return parseRunStep(value,step)}catch{return fail3("execution_unavailable")}}if(!only(value,"id,title,status,startedAt,finishedAt,summary,data")||value.id!==step||!validStep(value))fail3("execution_unavailable");return value},async publish(){if(context.kind!=="local")fail3("execution_unavailable");return summary(await request(key,`runs/${id3}/publish`,{method:"POST"},SUMMARY_BYTES,context),key,context,id3)}})}function unavailable4(key,reason){const descriptor=appDescriptors().find((item)=>item.id===key);return{...structuredClone(descriptor),connections:descriptor.connections.map((connection)=>({...connection,available:false})),readiness:{state:"unavailable",reason,message:reason==="not_deployed"?"Routine is not deployed.":"Routine capability unavailable."}}}function deployedDescription(value,key){if(!only(value,"id,title,input,connections,steps,readiness")||value.id!==key||value.title!==undefined&&(typeof value.title!=="string"||!value.title.trim()||value.title.length>256)||!only(value.input,"type,properties,required,additionalProperties,items,maxItems,maxLength,minimum,maximum,storage,path,default")||!Array.isArray(value.steps)||value.steps.length>64||value.steps.some((step)=>!only(step,"id,title")||typeof step.title!=="string"||!step.title.trim()||step.title.length>256)||!Array.isArray(value.connections)||value.connections.length>64||value.connections.some((item)=>!only(item,"id,provider,name,available")||typeof item.available!=="boolean"||typeof item.provider!=="string"||!identifier.test(item.provider)||typeof item.name!=="string"||!identifier.test(item.name)||item.id!==`${item.provider}/${item.name}`)||new Set(value.connections.map((item)=>item.id)).size!==value.connections.length)fail3("execution_unavailable");const{default:inputDefault,...input}=value.input;const contract=parseAppRoutineContract({routine:key,input,steps:value.steps.length?value.steps.map(({id:id3})=>({id:id3})):[{id:"inspect"}]});if(Object.hasOwn(value.input,"default"))validateRoutineSchemaValue(contract.input,inputDefault)}async function describeAppRoutine(key){const descriptor=appDescriptors().find((item)=>item.id===key);if(!descriptor)return fail3("authority_unavailable");try{const context=await authority();const value=await request(key,"describe",undefined,1024*1024,context);if(context.kind!=="local")deployedDescription(value,key);if(!only(value,"id,title,input,connections,steps,readiness")||!value.readiness||!Array.isArray(value.connections)||context.kind==="local"&&structure({...value,readiness:undefined,connections:value.connections.map(({available,...item})=>item)})!==structure(descriptor)||value.connections.some((item)=>typeof item.available!=="boolean")||!(value.readiness.state==="ready"&&only(value.readiness,"state,placement")&&value.readiness.placement===(context.kind==="local"?"local":"remote")||value.readiness.state==="unavailable"&&only(value.readiness,"state,reason,message")&&["not_deployed","definition_invalid","capability_unavailable"].includes(value.readiness.reason)&&message(value.readiness.message)))fail3("execution_unavailable");return value}catch{return unavailable4(key,"capability_unavailable")}}function appRoutineBinding(key){if(typeof key!=="string"||!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");return Object.freeze({describe:()=>describeAppRoutine(key),async run(...args){if(args.length>1)fail3("invalid_input");let encoded;try{if(args[0]===undefined)encoded="{}";else{jsonInput(args[0]);const input=JSON.stringify(args[0]);if(new TextEncoder().encode(input).byteLength>256*1024)fail3("invalid_input");encoded=`{"input":${input}}`}}catch{return fail3("invalid_input")}const context=await authority();if(context.kind!=="local")encoded=JSON.stringify({...JSON.parse(encoded),startKey:crypto.randomUUID()});const run=summary(await request(key,"runs",{method:"POST",body:encoded},SUMMARY_BYTES,context),key,context);return handle(key,run.id,context)},runs:Object.freeze({async list(){const context=await authority(true);const value=await request(key,"runs",undefined,20*SUMMARY_BYTES,context,true);if(!Array.isArray(value)||value.length>20)return fail3("execution_unavailable");const runs=value.map((run)=>summary(run,key,context));if(new Set(runs.map((run)=>run.id)).size!==runs.length)fail3("execution_unavailable");return runs},async get(id3){if(typeof id3!=="string"||!uuid2.test(id3))fail3("invalid_input");if(!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");return handle(key,id3,await authority(true))}})})}var app=Object.freeze({listRoutines:()=>Promise.all(appDescriptors().map(({id:id3})=>describeAppRoutine(id3))),routine:appRoutineBinding,routines:new Proxy(Object.create(null),{get(_target,key){if(typeof key!=="string"||!appDescriptors().some((item)=>item.id===key))return;return appRoutineBinding(key)},set:()=>false,defineProperty:()=>false,deleteProperty:()=>false})});var LIMIT2=16*1024;var context;var unavailable5=()=>new Error("App routine reporting unavailable");function freeze(value){if(value!==null&&typeof value==="object"){for(const child of Object.values(value))freeze(child);Object.freeze(value)}return value}if((typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__)&&typeof process!=="undefined"&&process.env.OS_APP_RUN!==undefined){let fail4=function(){broken=true;pending?.reject(unavailable5());pending=undefined;channel.destroy()},report=function(value){let frame;try{frame=JSON.stringify({...value,sequence:++sequence});if(Buffer.byteLength(frame)>LIMIT2)return rejected()}catch{return rejected()}const operation2=queue.then(async()=>{if(broken)throw unavailable5();await new Promise((resolve,reject)=>{const timeout=setTimeout(fail4,30000);pending={sequence:JSON.parse(frame).sequence,resolve(){clearTimeout(timeout);resolve()},reject(error){clearTimeout(timeout);reject(error)}};channel.ref();channel.write(`${frame}
|
|
77
|
-
`,(error)=>{if(error)fail4()})})});queue=operation2.catch(()=>{});return operation2},rejected=function(){if(!broken)channel.end(`{"type":"invalid"}
|
|
78
|
-
`);broken=true;pending?.reject(unavailable5());pending=undefined;return Promise.reject(unavailable5())};if(process.env.OS_APP_RUN!=="1")throw unavailable5();const{readSync,closeSync}=await import("node:fs");const{Socket}=await import("node:net");let bootstrap;try{const chunks=[];let size=0;for(;;){const bytes2=new Uint8Array(4096);const count=readSync(4,bytes2,0,bytes2.length,null);if(!count)break;size+=count;if(size>131072)throw unavailable5();chunks.push(bytes2.slice(0,count))}closeSync(4);const bytes=new Uint8Array(size);let offset=0;for(const chunk of chunks){bytes.set(chunk,offset);offset+=chunk.length}bootstrap=JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(bytes));if(!bootstrap||Object.keys(bootstrap).sort().join(",")!=="contract,input")throw unavailable5()}catch{throw unavailable5()}const contract=parseAppRoutineContract(bootstrap.contract);validateAppRoutineInput(contract,bootstrap.input);const input=freeze(bootstrap.input);const channel=new Socket({fd:3,readable:true,writable:true});channel.unref();let broken=false,finishing=false,sequence=0;let pending;let buffer="";channel.on("error",fail4);channel.on("close",fail4);channel.on("end",fail4);channel.on("data",(bytes)=>{buffer+=bytes.toString("utf8");if(Buffer.byteLength(buffer)>1024)return fail4();const end=buffer.indexOf(`
|
|
79
|
-
`);if(end<0)return;try{const ack=JSON.parse(buffer.slice(0,end));if(end!==buffer.length-1||!pending||!ack||Object.keys(ack).sort().join(",")!=="accepted,sequence"||ack.sequence!==pending.sequence||ack.accepted!==true)return fail4();buffer="";pending.resolve();pending=undefined;channel.unref()}catch{fail4()}});let queue=Promise.resolve();context={input,step(id3,...summary2){if(finishing||broken||summary2.length>1)return rejected();try{validateAppRoutineStep(contract,id3,summary2[0])}catch{return rejected()}return report({type:"step",id:id3,...summary2.length?{summary:summary2[0]}:{}})},finish(...result2){if(finishing||broken||result2.length>1)return rejected();finishing=true;try{validateAppRoutineResult(contract,result2[0])}catch{return rejected()}return report({type:"finish",...result2.length?{result:result2[0]}:{}})}};Object.freeze(context)}var appRun={current(){return context}};init_inbox_contract();init_inbox_contract();init_inbox_contract();init_inbox_files();init_inbox_contract();init_inbox_contract();init_files_contract();var PREPARED_RECORD_INPUT_LIMIT=64*1024*1024;function routineDataEnvelope(command){return"preflight"in command?{operation:"changes.validate",captured:command.preflight}:("apply"in command)?{operation:"changes.publish",captured:command.apply}:{operation:"changes.publish",request:command}}function routinePublicationClient(options={}){const environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env;const installed2=routineTransport();const local2=installed2?.request??localRoutineRequest(environment);const workspace=installed2?"installed":options.workspace??environment.OS_ROUTINE_WORKSPACE;const capability=options.capability??environment.OS_ROUTINE_RUN;if(!workspace||!/^[a-z0-9][a-z0-9-]*$/.test(workspace)||capability!==undefined&&!/^[0-9a-f]{64}$/.test(capability))throw new Error("A workspace and valid optional routine capability are required");const workingRoot=options.workingRoot??environment.OS_INBOX_WORKING_ROOT??(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?undefined:typeof process==="undefined"?undefined:process.cwd());const headers=capability?{"x-os-run":capability}:{};const request2=options.request??(capability?async(path,init2)=>{if(path==="/api/data")return fetch(`https://${workspace}.oddington.ai/api/data`,{...init2,redirect:"error"});const origin=`https://${workspace}.oddington.ai`;const target=new URL(path,`${origin}/`);if(workspace.length>63||["auth","www","api","os"].includes(workspace)||target.origin!==origin||target.search||target.hash||target.username||target.password||!/^\/api\/inbox\/(check|publish|resolve|files)$/.test(path)||init2?.method!=="POST")throw new Error("Invalid routine endpoint");return fetch(target,{...init2,redirect:"error"})}:async()=>{throw new Error("Member publication requires a host-supplied request")});async function send3(operation2,body){if(local2)return await local2(operation2,body);const writing=operation2==="records/update";const reading=operation2==="records/read";const response2=await request2(writing||reading?"/api/data":`/api/inbox/${operation2}`,{method:"POST",headers:{"content-type":"application/json",...headers,...writing||reading?{"x-os-workspace":workspace,"x-os-captured-records":"1"}:{}},body:JSON.stringify(writing?routineDataEnvelope(validateRoutineRecordWrite(body)):reading?{operation:"records.select",request:validateRecordRead(body)}:body)});const result2=await response2.json();if(!response2.ok&&operation2==="records/update")throw new RoutineRecordWriteError(result2.error??"Could not confirm routine preparation",result2.effect??"uncertain");if(!response2.ok)throw new Error(result2.error??"Could not confirm routine publication");return result2}const transport={async publish(body){return await send3("publish",body)},async resolve(body){await send3("resolve",body)}};async function readRecords(input){return await send3("records/read",validateRecordRead(input))}return{...createInboxPublisher(transport),readRecords,repository:{readRecords,async writeRecords(input,options2){if(!capability&&!installed2)throw new Error("A trusted routine launch is required");return await send3("records/update",validateRoutineRecordWrite({input,requestKey:options2?.requestKey}))},async updateRecords(input,options2){if(!capability&&!installed2)throw new Error("A trusted routine launch is required");return await send3("records/update",validateRoutineRecordWrite({input:validateRecordUpdate(input),requestKey:options2?.requestKey}))},async deleteRecords(input,options2){if(!capability&&!installed2)throw new Error("A trusted routine launch is required");return await send3("records/update",validateRoutineRecordWrite({input:validateRecordDelete(input),requestKey:options2?.requestKey}))}},files:{async add(value){const input=validateFileAddOptions(value);if(local2)return validateInboxFile(await local2("files/add",input));if(!workingRoot)throw new Error("Inbox file reads require a working root");if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const{readInboxPublicationFile:readInboxPublicationFile2}=await Promise.resolve().then(() => (init_inbox_publication_file(),exports_inbox_publication_file));const bytes=await readInboxPublicationFile2(workingRoot,input);const name2=input.name??input.path.split("/").at(-1);const response2=await request2("/api/inbox/files",{method:"POST",headers:{"content-type":"application/octet-stream",...headers,"x-os-file":JSON.stringify({name:name2,...input.csv?{csv:input.csv}:{}})},body:Uint8Array.from(bytes).buffer});const result2=await response2.json();if(!response2.ok)throw new Error(result2.error??"Could not retain file");return await verifyInboxFile(bytes,validateInboxFile(result2))}throw new Error("Inbox file reads require a Node working root")}},async check(body){await send3("check",{requestKey:body.requestKey,item:validatePublication(body.item)})}}}export{selection,schema,routinePublicationClient,richTextBlock,respond,resolveAsk,recordsBlock,recordBlock,question,os,inbox,files,fileBlock,file,defineRoutine,defineHandler,data,continueAsk,connections,auth,asksBlock,appRun,app,RoutineRecordWriteError,InboxOperationError,InboxContractError,FileOperationError,DataOperationError,BrowserAuthError,AppRoutineError,AirtableOperationError};
|
|
20
|
+
`,(error)=>{if(error)fail3()})})};let reporting=Promise.resolve();const report=(value)=>{const captured=structuredClone(value);const next=reporting.then(()=>sendReport(captured));reporting=next;return next};const flush=(stream)=>new Promise((resolve)=>{let timer,settled2=false;const complete=()=>{if(settled2)return;settled2=true;if(timer)clearTimeout(timer);resolve()};timer=setTimeout(complete,1000);if(stream.destroyed||stream.writableEnded)complete();else stream.write("",complete)});let exitCode=0;let releaseConnections;try{const definition=(await import(pathToFileURL(bootstrap.entry).href)).default;const contract=inspectRoutineDefinition(definition);if(bootstrap.mode==="inspect")await report({type:"contract",contract});else if(bootstrap.mode==="execute"&&typeof bootstrap.runId==="string"){const input=captureRoutineInput(definition,bootstrap.input);if(JSON.stringify(contract)!==JSON.stringify(bootstrap.contract))throw new Error("Routine definition changed");const privateRequest=localRoutineRequest();releaseConnections=installLocalRoutineConnections(bootstrap.runId,contract.access.connections??[],[],(identity)=>report({type:"connection",identity}),async(identity)=>{if(!privateRequest)throw new Error("Connection unavailable");return privateRequest("connections/get",{identity})});delete bootstrap.connectionLeases;observeLocalRoutineEffects(report);const generate=async(request)=>{if(!privateRequest)throw new RoutineAIError("capability_unavailable");return await privateRequest("ai/generate",request)};const result2=await executeRoutineDefinition(definition,input,{run:{id:bootstrap.runId},data,files,connections,ai:{generateText:generate,generateObject:generate},inbox:routinePublicationClient(),step:async(id2,fact)=>report({type:"step",id:id2,...fact})});await report({type:"finish",...result2===undefined?{}:{result:result2}})}else throw new Error("Invalid routine bootstrap")}catch{exitCode=1}finally{settled=true;observeLocalRoutineEffects(undefined);releaseConnections?.();if(exitCode===0)channel.end();else channel.destroy();await Promise.allSettled([flush(process.stdout),flush(process.stderr)]);process.exit(exitCode)}}})}init_inbox_contract();var RECORD_WRITE_INPUT_LIMIT=8*1024*1024;class RoutineRecordWriteError extends Error{effect;constructor(message,effect){super(message);this.effect=effect;this.name="RoutineRecordWriteError"}}function validateRecordWrite(value){const input=serializable(value);if(!input||Array.isArray(input)||typeof input!=="object"||Object.keys(input).sort().join(",")!=="records,repository"||!validRepositoryAlias(input.repository)||!Array.isArray(input.records)||!input.records.length||input.records.length>1e4||new Set(input.records.map((edit)=>edit?.ref)).size!==input.records.length)throw new InboxContractError("Invalid record update batch");for(const edit of input.records){if(!edit||Array.isArray(edit)||typeof edit!=="object"||!validRecordRef(edit.ref))throw new InboxContractError("Invalid record edit");if("expectedVersion"in edit){if(Object.keys(edit).sort().join(",")!=="expectedVersion,ref,set"||typeof edit.expectedVersion!=="string"||!/^record-v1:[0-9a-f]{64}$/.test(edit.expectedVersion)||!edit.set||Array.isArray(edit.set)||typeof edit.set!=="object"||!Object.keys(edit.set).length)throw new InboxContractError("Invalid record edit");continue}if(Object.keys(edit).sort().join(",")!=="fields,path,ref"||typeof edit.path!=="string"||!validCreatePath(edit.path)||!edit.fields||Array.isArray(edit.fields)||typeof edit.fields!=="object"||!Object.keys(edit.fields).length)throw new InboxContractError("Invalid record creation")}return structuredClone(input)}function validateRecordUpdate(value){const input=validateRecordWrite(value);if(input.records.some((record3)=>!("expectedVersion"in record3)))throw new InboxContractError("Record creation is unavailable for this operation");return input}function validateRecordDelete(value){const input=serializable(value);if(!input||Array.isArray(input)||typeof input!=="object"||Object.keys(input).sort().join(",")!=="records,repository"||!validRepositoryAlias(input.repository)||!Array.isArray(input.records)||!input.records.length||input.records.length>1e4||new Set(input.records.map((record3)=>record3?.ref)).size!==input.records.length)throw new InboxContractError("Invalid record deletion batch");for(const record3 of input.records){if(!record3||Array.isArray(record3)||typeof record3!=="object"||Object.keys(record3).sort().join(",")!=="expectedVersion,ref"||!validRecordRef(record3.ref)||typeof record3.expectedVersion!=="string"||!/^record-v1:[0-9a-f]{64}$/.test(record3.expectedVersion))throw new InboxContractError("Invalid record deletion")}return structuredClone(input)}function validateRecordChange(value){const input=serializable(value);if(!input||Array.isArray(input)||typeof input!=="object"||Object.keys(input).sort().join(",")!=="records,repository"||!validRepositoryAlias(input.repository)||!Array.isArray(input.records)||!input.records.length||input.records.length>1e4||new Set(input.records.map((record3)=>record3?.ref)).size!==input.records.length||new TextEncoder().encode(JSON.stringify(input)).byteLength>RECORD_WRITE_INPUT_LIMIT)throw new InboxContractError("Invalid record change batch");const writes=[],deletes=[];for(const record3 of input.records){if(!record3||typeof record3!=="object"||Array.isArray(record3))throw new InboxContractError("Invalid record change");if("set"in record3||"fields"in record3)writes.push(record3);else deletes.push(record3)}if(writes.length)validateRecordWrite({repository:input.repository,records:writes});if(deletes.length)validateRecordDelete({repository:input.repository,records:deletes});return structuredClone(input)}function validateRoutineRecordWrite(value){const body=serializable(value);if(!body||typeof body!=="object"||Array.isArray(body)||Object.keys(body).sort().join(",")!=="input,requestKey"||typeof body.requestKey!=="string"||!body.requestKey.trim()||body.requestKey!==body.requestKey.trim()||body.requestKey.length>512)throw new InboxContractError("A stable routine request key is required");return{input:validateRecordChange(body.input),requestKey:body.requestKey}}function validCreatePath(value){return value===value.trim()&&value.endsWith(".md")&&!value.startsWith("/")&&value.split("/").every((segment)=>!!segment&&![".",".."].includes(segment)&&/^[a-zA-Z0-9_.-]+$/.test(segment))}init_inbox_contract();class InboxOperationError extends Error{status;reason;constructor(status,reason){super(reason==="conflict"?"This question already has an accepted answer":reason==="unavailable"?"Inbox request unavailable. Retry the same action.":reason==="invalid_input"?"Invalid Inbox request":"Inbox access unavailable");this.status=status;this.reason=reason}}var INBOX_RESULT_BYTES=8*1024*1024;var INBOX_INPUT_BYTES=8192;var INBOX_LOCAL_INPUT_BYTES=256*1024;var INBOX_UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function isAppQuestionOperation(operation2){return operation2==="questions.list"||operation2==="questions.answer"||operation2==="questions.searchRecords"}var operations={current:[],"items.list":[],"questions.list":[],"items.read":["itemId"],"items.see":["itemId"],"items.markDigestRead":["itemId"],"items.rename":["itemId","revision","title"],"items.setLifecycle":["itemId","revision","lifecycle"],"items.listRecipientCandidates":["itemId"],"items.addRecipient":["itemId","personId"],"questions.answer":["itemId","revision","questionId","response"],"questions.searchRecords":["itemId","revision","questionId","query"],"files.read":["itemId","fileId"]};function assert(value){if(!value)throw new Error("Invalid Inbox result")}function object4(value){assert(value&&typeof value==="object"&&!Array.isArray(value)&&[Object.prototype,null].includes(Object.getPrototypeOf(value))&&Reflect.ownKeys(value).every((key)=>{const descriptor=typeof key==="string"?Object.getOwnPropertyDescriptor(value,key):undefined;return!!descriptor?.enumerable&&"value"in descriptor}));return value}function keys3(value,allowed,required=allowed){assert(Object.keys(value).every((key)=>allowed.includes(key))&&required.every((key)=>Object.hasOwn(value,key)))}function text4(value,empty2=false){return typeof value==="string"&&(empty2||!!value.trim())}function id2(value){return typeof value==="string"&&INBOX_UUID.test(value)}function integer(value,minimum=1){return Number.isSafeInteger(value)&&Number(value)>=minimum}function date(value){return text4(value)&&Number.isFinite(Date.parse(value))}function optionalDate(value){return value===null||date(value)}function array2(value){assert(Array.isArray(value)&&Object.getPrototypeOf(value)===Array.prototype&&Reflect.ownKeys(value).length===value.length+1&&value.every((_entry,index)=>{const descriptor=Object.getOwnPropertyDescriptor(value,String(index));return!!descriptor?.enumerable&&"value"in descriptor}));return value}function json(value,ancestors=new Set){if(value===null||typeof value==="boolean"||typeof value==="string"||typeof value==="number"&&Number.isFinite(value))return value;assert(value&&typeof value==="object"&&!ancestors.has(value));ancestors.add(value);try{if(Array.isArray(value))return array2(value).map((entry)=>json(entry,ancestors));return Object.fromEntries(Object.entries(object4(value)).map(([key,entry])=>[key,json(entry,ancestors)]))}finally{ancestors.delete(value)}}function recordReference(value){const record3=object4(value);keys3(record3,["repository","ref"]);assert(text4(record3.repository)&&record3.repository===record3.repository.trim()&&/^[a-z0-9][a-z0-9._/-]{0,127}$/.test(record3.repository)&&!/\.\.|\/\//.test(record3.repository)&&text4(record3.ref)&&record3.ref===record3.ref.trim()&&record3.ref.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)+$/.test(record3.ref));return record3}function responseDefinition(value){const definition=object4(value);keys3(definition,["type","source"]);assert(definition.type==="selection");const source=object4(definition.source);if(source.type==="authored"){keys3(source,["type","options","suggestions","search"],["type","options"]);const options=array2(source.options);assert(options.length>0);const values=options.map((value2)=>{const option=object4(value2);keys3(option,["value","label","description","note"],["value","label"]);assert(text4(option.value)&&option.value===option.value.trim()&&text4(option.label));if("description"in option)assert(text4(option.description));if("note"in option){const note=object4(option.note);keys3(note,["placeholder"]);assert(text4(note.placeholder))}return option.value});assert(new Set(values).size===values.length);if("search"in source||"suggestions"in source){const search=object4(source.search);keys3(search,["triggerLabel","placeholder","emptyLabel"]);assert(text4(search.triggerLabel)&&text4(search.placeholder)&&text4(search.emptyLabel));const suggestions2=array2(source.suggestions);assert(suggestions2.length<=8&&suggestions2.every((value2)=>text4(value2)&&values.includes(value2))&&new Set(suggestions2).size===suggestions2.length)}else assert(options.length<=9);return}assert(source.type==="records");keys3(source,["type","collection","refPrefix","where","display","suggestions"],["type","collection","display"]);const collection=object4(source.collection);keys3(collection,["repository","name"]);recordReference({repository:collection.repository,ref:"records/example"});assert(text4(collection.name)&&/^[a-zA-Z0-9_-]+(?:\/[a-zA-Z0-9_-]+)*$/.test(collection.name));if("refPrefix"in source)assert(text4(source.refPrefix)&&source.refPrefix.length<=512&&/^[_a-zA-Z0-9][a-zA-Z0-9_-]*(\/[_a-zA-Z0-9][a-zA-Z0-9_-]*)*\/$/.test(source.refPrefix));const where=object4(source.where??{});assert(Object.entries(where).every(([name,value2])=>/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name)&&!["constructor","prototype"].includes(name)&&(value2===null||typeof value2==="string"||typeof value2==="boolean"||typeof value2==="number"&&Number.isFinite(value2))));const display=object4(source.display);keys3(display,["labelFields"]);const labels=array2(display.labelFields);assert(labels.length>0&&labels.length<=2&&new Set(labels).size===labels.length&&labels.every((value2)=>text4(value2)&&/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(value2)));const suggestions=array2(source.suggestions??[]);const refs=suggestions.map((value2)=>{const suggestion=object4(value2);keys3(suggestion,["record","reason"],["record"]);const record3=recordReference(suggestion.record);assert(record3.repository===collection.repository);if("reason"in suggestion)assert(text4(suggestion.reason));return record3.ref});assert(suggestions.length<=8&&new Set(refs).size===refs.length)}function inboxFile(value){validateInboxFile(value)}function fields4(value){const labels=array2(value).map((value2)=>{const field=object4(value2);keys3(field,["label","value"]);assert(text4(field.label)&&text4(field.value));return field.label});assert(new Set(labels).size===labels.length)}function block(value){const entry=object4(value);if(entry.kind==="rich-text"){keys3(entry,["kind","markdown"]);assert(text4(entry.markdown));return}if(entry.kind==="asks"){keys3(entry,["kind","problem","asks"]);const asks=array2(entry.asks);assert(text4(entry.problem)&&asks.length>0&&asks.every(id2)&&new Set(asks).size===asks.length);return}assert(["record","records","files"].includes(String(entry.kind)));keys3(entry,["kind","label","initiallyExpanded",...entry.kind==="record"?["record","view"]:entry.kind==="records"?["records","view"]:["files"]],["kind","label",entry.kind==="record"?"record":entry.kind==="records"?"records":"files"]);assert(text4(entry.label)&&(!("initiallyExpanded"in entry)||typeof entry.initiallyExpanded==="boolean")&&(!("view"in entry)||text4(entry.view)&&entry.view===entry.view.trim()));if(entry.kind==="record"){const record3=object4(entry.record);keys3(record3,["ref","title","fields"]);assert(text4(record3.ref)&&record3.ref===record3.ref.trim()&&text4(record3.title));fields4(record3.fields);return}if(entry.kind==="records"){const records=array2(entry.records);const refs=records.map((value2)=>{const record3=object4(value2);keys3(record3,["ref","title","description","facts","view"],["ref","title"]);assert(text4(record3.ref)&&record3.ref===record3.ref.trim()&&text4(record3.title));if("description"in record3)assert(text4(record3.description));if("facts"in record3)fields4(record3.facts);if("view"in record3)assert(text4(record3.view)&&record3.view===record3.view.trim());return record3.ref});assert(records.length>0&&new Set(refs).size===refs.length);return}const files2=array2(entry.files);files2.forEach(inboxFile);assert(files2.length>0&&new Set(files2.map((value2)=>object4(value2).id)).size===files2.length)}function response(value){const answer=object4(value);assert(Object.keys(answer).every((key)=>["selection","note"].includes(key)));if(typeof answer.selection==="string")assert(text4(answer.selection)&&answer.selection===answer.selection.trim());else recordReference(answer.selection);if(Object.hasOwn(answer,"note"))assert(text4(answer.note));return answer}function parseInboxRequest(value){try{const envelope=object4(value);assert(Object.keys(envelope).sort().join(",")==="input,operation");assert(typeof envelope.operation==="string"&&Object.hasOwn(operations,envelope.operation));const operation2=envelope.operation;const input={...object4(envelope.input)};const required=operations[operation2];assert(required.every((key)=>Object.hasOwn(input,key))&&Object.keys(input).every((key)=>required.includes(key)||operation2==="questions.searchRecords"&&key==="selected"||(operation2==="items.list"||operation2==="questions.list")&&key==="beforeNumber"||operation2==="questions.list"&&key==="routines"));if(operation2==="questions.list"){assert(Object.hasOwn(input,"routines"));assert(array2(input.routines).every(isAppRoutineName))}for(const key of["itemId","personId","fileId"])if(key in input)assert(id2(input[key]));if("revision"in input)assert(integer(input.revision));if("beforeNumber"in input)assert(integer(input.beforeNumber));if("questionId"in input)assert(text4(input.questionId)&&input.questionId===input.questionId.trim());if("title"in input)assert(text4(input.title));if("lifecycle"in input)assert(input.lifecycle==="open"||input.lifecycle==="closed");if("query"in input)assert(text4(input.query,true)&&input.query.length<=256);if("selected"in input)recordReference(input.selected);if("response"in input)response(input.response);assert(new TextEncoder().encode(JSON.stringify(envelope)).byteLength<=INBOX_INPUT_BYTES);if("routines"in input)input.routines=[...new Set(input.routines)];return{operation:operation2,input}}catch{throw new InboxOperationError(400,"invalid_input")}}function parseInboxCurrent(value){const current=object4(value),workspace=object4(current.workspace),viewer=object4(current.viewer);assert(id2(workspace.id)&&text4(workspace.slug)&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(workspace.slug)&&text4(workspace.name)&&text4(workspace.locale)&&text4(workspace.timezone));assert(id2(viewer.id)&&text4(viewer.name)&&text4(viewer.email));return{workspace:{id:workspace.id,slug:workspace.slug,name:workspace.name,locale:workspace.locale,timezone:workspace.timezone},viewer:{id:viewer.id,name:viewer.name,email:viewer.email}}}function parseInboxItem(value){const item=object4(json(value));assert(id2(item.id)&&id2(item.workspaceId)&&integer(item.number)&&integer(item.revision)&&integer(item.activityVersion,0)&&["ask","digest"].includes(String(item.kind))&&["open","closed"].includes(String(item.lifecycle))&&text4(item.title)&&text4(item.description,true)&&text4(item.author)&&date(item.publishedAt)&&optionalDate(item.seenAt)&&optionalDate(item.digestReadAt));if(item.outcome!==null)assert(text4(object4(item.outcome).outcome));if("canonicalRoutineId"in item)assert(item.canonicalRoutineId===null||isAppRoutineName(item.canonicalRoutineId));if(item.kind==="ask")askMetadata(item);else assert(!("tags"in item)&&!("recordRefs"in item));array2(item.body).forEach(block);array2(item.views).forEach((value2)=>{const view=object4(value2);assert(text4(view.id)&&text4(view.view)&&text4(view.implementation));json(view.input)});array2(item.people).forEach((value2)=>{const person=object4(value2);assert(id2(person.id)&&text4(person.name))});array2(item.questions).forEach((value2)=>{const question2=object4(value2);assert(text4(question2.id)&&id2(question2.to)&&text4(question2.prompt)&&(question2.instructions===null||text4(question2.instructions,true))&&typeof question2.available==="boolean");responseDefinition(question2.response);assert(array2(question2.allowedResponders).every(id2));if(question2.acceptedResponse!==null){const accepted=object4(question2.acceptedResponse);assert(id2(accepted.id)&&id2(accepted.userId)&&date(accepted.acceptedAt));response(accepted.response);if(accepted.label===null)delete accepted.label;else if("label"in accepted)assert(text4(accepted.label));if("acceptanceOrder"in accepted)assert(integer(accepted.acceptanceOrder))}if(question2.execution!==null){const execution=object4(question2.execution);assert(id2(execution.id)&&["pending","running","completed","failed"].includes(String(execution.state))&&integer(execution.attempt,0));if("consequence"in execution){const consequence=object4(execution.consequence);assert(["pending","running","applied","no-write","stopped","partial","uncertain"].includes(String(consequence.state))&&(consequence.phase===null||["loading","invoking","committing"].includes(String(consequence.phase)))&&date(consequence.updatedAt)&&typeof consequence.needsReconciliation==="boolean"&&(consequence.reason===null||text4(consequence.reason,true)));array2(consequence.evidence).forEach((value3)=>{const receipt=object4(value3);assert(text4(receipt.repository)&&text4(receipt.commit)&&text4(receipt.diff,true))})}}});array2(item.linkedAsks).forEach((value2)=>{const linked=object4(value2);assert(id2(linked.id));if(linked.state==="unavailable")assert(typeof linked.done==="boolean");else{assert(["yours","done","open","theirs"].includes(String(linked.state))&&text4(linked.title));if(linked.state==="theirs"){const assignee=object4(linked.assignee);assert(id2(assignee.id)&&text4(assignee.name))}}});array2(item.activity).forEach((value2)=>{const event=object4(value2);assert(integer(event.id)&&text4(event.type)&&(event.actorId===null||id2(event.actorId))&&(event.questionId===null||text4(event.questionId))&&integer(event.revision)&&date(event.createdAt));object4(event.data)});array2(item.work).forEach((value2)=>{const work=object4(value2);assert(id2(work.id)&&text4(work.questionId)&&text4(work.reason)&&optionalDate(work.settledAt))});return item}function parseAnswerableQuestion(value){const entry=object4(json(value));keys3(entry,["itemId","number","revision","title","inboxUrl","questionId","routine","prompt","response","answerable","tags","recordRefs","instructions"],["itemId","number","revision","title","inboxUrl","questionId","routine","prompt","response","answerable"]);assert(id2(entry.itemId)&&integer(entry.number)&&integer(entry.revision)&&text4(entry.title)&&text4(entry.inboxUrl));const link=new URL(entry.inboxUrl);const slug=link.hostname.slice(0,-".oddington.ai".length);assert(link.hostname.endsWith(".oddington.ai")&&slug.length<=63&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(slug)&&!["auth","www","api","os"].includes(slug)&&entry.inboxUrl===`https://${slug}.oddington.ai/inbox/${entry.itemId}`);assert(isAppRoutineName(entry.routine)&&text4(entry.questionId)&&entry.questionId===entry.questionId.trim()&&text4(entry.prompt)&&(!("instructions"in entry)||text4(entry.instructions,true))&&typeof entry.answerable==="boolean");responseDefinition(entry.response);askMetadata(entry);return entry}function askMetadata(entry){const tags=array2(entry.tags===undefined?[]:entry.tags);assert(tags.length<=32&&tags.every((tag)=>text4(tag)&&new TextEncoder().encode(tag).byteLength<=64));assert(new Set(tags).size===tags.length);const refs=array2(entry.recordRefs===undefined?[]:entry.recordRefs);refs.forEach((value)=>{const ref=object4(value);keys3(ref,["repository","id"]);recordReference({repository:ref.repository,ref:ref.id})});assert(new Set(refs.map((value)=>{const ref=object4(value);return JSON.stringify([ref.repository,ref.id])})).size===refs.length);entry.tags=tags;entry.recordRefs=refs}function parseInboxAcceptance(value){const accepted=object4(value);assert(id2(accepted.responseId)&&date(accepted.acceptedAt));if("executionId"in accepted)assert(id2(accepted.executionId));if("acceptanceOrder"in accepted)assert(integer(accepted.acceptanceOrder));if("label"in accepted)assert(text4(accepted.label));return accepted}function parseInboxResult(operation2,value){if(operation2==="current")return parseInboxCurrent(value);if(operation2==="questions.list"){const page=object4(value);keys3(page,["questions","nextBeforeNumber"]);const questions=array2(page.questions).map(parseAnswerableQuestion);assert(page.nextBeforeNumber===null||integer(page.nextBeforeNumber));return{questions,nextBeforeNumber:page.nextBeforeNumber}}if(operation2==="items.read")return parseInboxItem(value);if(operation2==="items.list"){const page=object4(value);const items=array2(page.items).map(parseInboxItem);assert(items.length<=100&&(page.nextBeforeNumber===null||integer(page.nextBeforeNumber)));return{items,nextBeforeNumber:page.nextBeforeNumber}}if(operation2==="items.see"){assert(date(value));return}if(operation2==="items.markDigestRead"){const read2=object4(value);assert(integer(read2.activityId)&&date(read2.readAt));return read2}if(operation2==="items.rename"||operation2==="items.setLifecycle"){const update=object4(value);const item=parseInboxItem(update.item);assert((update.activityId===null||integer(update.activityId))&&optionalDate(update.changedAt));return{...update,item}}if(operation2==="items.listRecipientCandidates"){const candidates=array2(value);candidates.forEach((value2)=>{const person=object4(value2);assert(id2(person.id)&&text4(person.name)&&text4(person.email))});assert(new Set(candidates.map((value2)=>object4(value2).id)).size===candidates.length);return candidates}if(operation2==="items.addRecipient"){const addition=object4(value);const item=parseInboxItem(addition.item);assert(id2(addition.addedPersonId)&&item.people.some((person)=>person.id===addition.addedPersonId));return{...addition,item}}if(operation2==="questions.answer")return parseInboxAcceptance(value);if(operation2==="questions.searchRecords"){const result2=object4(value);assert(text4(result2.recordType)&&integer(result2.eligibleCount,0)&&integer(result2.matchCount,0)&&Number(result2.matchCount)<=Number(result2.eligibleCount));const labeled=(value2)=>{const record3=object4(value2);recordReference({repository:record3.repository,ref:record3.ref});assert(text4(record3.label));if("reason"in record3)assert(text4(record3.reason))};array2(result2.matches).forEach(labeled);array2(result2.suggestions).forEach(labeled);if("selected"in result2)labeled(result2.selected);return result2}throw new Error("File content is not a JSON result")}async function limitedBody(request,limit,timeoutMs){if(!request.body)return new Uint8Array;const reader=request.body.getReader();let expired=false;const timer=timeoutMs===undefined?undefined:setTimeout(()=>{expired=true;reader.cancel().catch(()=>{})},timeoutMs);const chunks=[];let length=0;try{while(true){const{done,value}=await reader.read();if(done)break;length+=value.byteLength;if(length>limit){await reader.cancel();return}chunks.push(value)}if(expired)return;const contents=new Uint8Array(length);let offset=0;for(const chunk of chunks){contents.set(chunk,offset);offset+=chunk.byteLength}return contents}finally{if(timer!==undefined)clearTimeout(timer)}}var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function parseInboxHostContext(value){if(!value||typeof value!=="object"||Array.isArray(value))throw new Error("Inbox context unavailable");const v=value;if(v.kind!=="inbox"&&v.kind!=="focused"||Object.keys(v).sort().join(",")!==(v.kind==="inbox"?"generation,kind,memberId,workspaceId":"appId,generation,kind,memberId,workspaceId")||typeof v.workspaceId!=="string"||!UUID.test(v.workspaceId)||typeof v.memberId!=="string"||!UUID.test(v.memberId)||typeof v.generation!=="string"||!UUID.test(v.generation)||v.kind==="focused"&&(typeof v.appId!=="string"||!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(v.appId)))throw new Error("Inbox context unavailable");const base={workspaceId:v.workspaceId,memberId:v.memberId,generation:v.generation};return Object.freeze(v.kind==="inbox"?{...base,kind:"inbox"}:{...base,kind:"focused",appId:v.appId})}class InboxContextError extends Error{status;constructor(status){super("Inbox context unavailable");this.status=status}}var contexts=new WeakMap;function resolveHostedInboxContext(host){if(!host.binding||!host.memberId)throw new Error("Inbox context unavailable");let resolve=contexts.get(host.binding);if(!resolve){resolve=hostedInboxContext();contexts.set(host.binding,resolve)}return resolve({...host,memberId:host.memberId})}function hostedInboxContext(){let installed2;let revision=0,issued=0,settled=0;return async(host)=>{const started=++issued;const check=()=>{if(!host.isCurrent()||host.expiresAt<=Date.now())throw new Error("Inbox context unavailable")};check();const response2=await fetch(`${host.endpoint}/api/inbox/context`,{method:"GET",headers:{authorization:`Bearer ${host.accessToken}`},credentials:"omit",redirect:"error",cache:"no-store",signal:AbortSignal.timeout(15000)});try{check();if(response2.status===401||response2.status===403){installed2=undefined;revision++;settled=Math.max(settled,started)}if(!response2.ok||response2.status!==200)throw new InboxContextError(response2.status);const bytes=await limitedBody(response2,4096);check();if(!bytes)throw new Error("Inbox context unavailable");const context=parseInboxHostContext(JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(bytes)));if(context.memberId!==host.memberId)throw new Error("Inbox context unavailable");if(JSON.stringify(installed2)!==JSON.stringify(context)){if(started<settled)throw new Error("Inbox context unavailable");installed2=context;revision++}settled=Math.max(settled,started);const current=revision;return Object.freeze({context,isCurrent:()=>host.isCurrent()&&host.expiresAt>Date.now()&¤t===revision})}finally{response2.body?.cancel().catch(()=>{})}}}init_files_contract();var sessionKey="_os.app.session";var responseChecks=new WeakMap;class AppResponseReadError extends Error{}class AppContextDenied extends Error{}class AppRenewalUnavailable extends Error{}async function untilAborted(work,signal){if(signal.aborted){work.catch(()=>{});throw new AppRenewalUnavailable}let abort;const cancelled=new Promise((_resolve,reject)=>{abort=()=>reject(new AppRenewalUnavailable);signal.addEventListener("abort",abort,{once:true})});try{return await Promise.race([work,cancelled])}finally{signal.removeEventListener("abort",abort)}}async function appResponse(response2,maximum,signal){if(signal.aborted||!response2.body||response2.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase()!=="application/json")throw new Error;const reader=response2.body.getReader();const abort=()=>{reader.cancel().catch(()=>{})};signal.addEventListener("abort",abort,{once:true});let bytes=0,text5="";const decoder=new TextDecoder("utf-8",{fatal:true});try{while(true){let chunk;try{chunk=await reader.read()}catch{throw new AppResponseReadError}if(signal.aborted)throw new Error;if(chunk.done){const value=JSON.parse(text5+decoder.decode());await responseChecks.get(response2)?.(value);if(signal.aborted)throw new Error;return value}bytes+=chunk.value.byteLength;if(bytes>maximum){abort();throw new Error}text5+=decoder.decode(chunk.value,{stream:true})}}finally{signal.removeEventListener("abort",abort);reader.releaseLock()}}function isAppOrigin(value){try{const url=new URL(value);return url.protocol==="http:"&&url.hostname==="127.0.0.1"&&Boolean(url.port)&&url.port!=="0"&&url.origin===value}catch{return false}}function appContext(origin,active2){let binding;let credential;let pair;let serialized;let denied=false;const controller=new AbortController;let access=new AbortController;let expiry;let startup;let renewalTimer;let renewal;let observation;let resolution2;let disposed=false;const stored=()=>globalThis.localStorage.getItem(sessionKey);const alive=()=>{try{return!denied&&!disposed&&active2()&&globalThis.location.origin===origin}catch{return false}};const cancel=()=>{controller.abort();access.abort();clearTimeout(expiry);clearTimeout(startup);clearTimeout(renewalTimer);clearInterval(monitor);globalThis.removeEventListener?.("storage",storageChanged);for(const event of["pageshow","focus","visibilitychange"])globalThis.removeEventListener?.(event,wake)};const invalidate=()=>{denied=true;cancel();try{if(!disposed&&active2()&&globalThis.location.origin===origin&&(!serialized||globalThis.localStorage.getItem(sessionKey)===serialized)){globalThis.localStorage.removeItem(sessionKey)}}catch{}};const current=()=>{try{return alive()&&!!binding&&binding.expiresAt>Date.now()&&stored()===serialized}catch{return false}};const sameSession=(value)=>!binding||["appId","memberId","workspace","sessionId"].every((key)=>value[key]===binding[key]);const bounded=(value)=>validBinding(value)&&value.expiresAt>Date.now()&&value.expiresAt<=Date.now()+600000&&sameSession(value);const readPair=(candidate)=>{const value=JSON.parse(candidate??"null");if(!validPair(value)||value.context.expiresAt>Date.now()+600000||!sameSession(value.context))throw new Error;return value};const expireAccess=()=>{if(binding&&binding.expiresAt<=Date.now())access.abort()};async function send2(path,candidate,signal,init={}){const url=`${origin}/_os/app/${path}`;let response2;try{response2=await fetch(url,{...init,credentials:"omit",redirect:"error",cache:"no-store",...init.body instanceof ReadableStream?{duplex:"half"}:{},referrerPolicy:"no-referrer",signal,headers:{...init.body===undefined?{}:{"content-type":"application/json"},...Object.fromEntries(new Headers(init.headers)),authorization:`Bearer ${candidate}`}})}catch{throw new AppRenewalUnavailable}if(response2.redirected||response2.url&&response2.url!==url)throw new Error;return response2}async function proof(candidate,signal=controller.signal){if(!alive()||!validProof(candidate))throw new Error;const response2=await send2("context",candidate,signal);if(response2.status===401||response2.status===403)throw new AppContextDenied;if(response2.status>=500)throw new AppRenewalUnavailable;if(!response2.ok)throw new Error;const value=await appResponse(response2,4096,signal);if(!alive()||!bounded(value))throw new Error;return value}function install(value,candidate,raw){expireAccess();if(access.signal.aborted)access=new AbortController;binding={...value};pair=candidate;credential=candidate.credential;serialized=raw;clearTimeout(expiry);clearTimeout(renewalTimer);const remaining=binding.expiresAt-Date.now();expiry=setTimeout(expireAccess,remaining);renewalTimer=setTimeout(()=>{renew().catch(()=>{})},remaining-Math.min(60000,remaining/5))}async function synchronize(signal=controller.signal){if(!alive())throw new Error;if(signal.aborted)throw new AppRenewalUnavailable;if(!credential)return;if(stored()===serialized)return;if(!binding)throw new Error;if(observation)return untilAborted(observation,signal);observation=(async()=>{while(alive()){const candidate=stored();if(!candidate)throw new Error;let value;let replacement;try{replacement=readPair(candidate);value=await proof(replacement.credential,signal)}catch(error){if(stored()!==candidate)continue;throw error}if(stored()!==candidate)continue;if(value.expiresAt!==replacement.context.expiresAt)throw new Error;install(value,replacement,candidate);return}throw new Error})();const observed=observation;try{await untilAborted(observed,signal)}catch(error){if(!(error instanceof AppRenewalUnavailable||error instanceof AppResponseReadError))invalidate();throw error}finally{if(observation===observed)observation=undefined}}async function renew(){if(renewal)return renewal;if(!binding||!pair||!alive())throw new Error;renewal=(async()=>{const requestController=new AbortController;const abort=()=>requestController.abort();controller.signal.addEventListener("abort",abort,{once:true});const timeout=setTimeout(abort,20000);const previous=serialized;try{await synchronize(requestController.signal);if(serialized!==previous)return;const response2=await send2("renew",pair.renewalCredential,requestController.signal,{method:"POST"});const value=await appResponse(response2,4096,requestController.signal);if(response2.status===503&&value&&typeof value==="object"&&!Array.isArray(value)&&Object.keys(value).join(",")==="error"&&"error"in value&&value.error==="renewal_unavailable")throw new AppRenewalUnavailable;if(response2.status===403&&value&&typeof value==="object"&&!Array.isArray(value)&&Object.keys(value).join(",")==="error"&&"error"in value&&value.error==="renewal_conflict"){while(alive()&&stored()===previous&&!requestController.signal.aborted){await new Promise((resolve2,reject)=>{const abortWait=()=>{clearTimeout(timer);reject(new Error)};const timer=setTimeout(()=>{requestController.signal.removeEventListener("abort",abortWait);resolve2()},100);requestController.signal.addEventListener("abort",abortWait,{once:true})})}if(requestController.signal.aborted)throw new Error;await synchronize(requestController.signal);return}if(!response2.ok)throw new Error;if(!alive()||!validPair(value)||!bounded(value.context)||new Set([value.credential,value.renewalCredential,pair.credential,pair.renewalCredential]).size!==4)throw new Error;if(stored()!==previous){await synchronize(requestController.signal);return}const raw=JSON.stringify(value);globalThis.localStorage.setItem(sessionKey,raw);install(value.context,value,raw)}catch(error){try{if(alive()&&stored()&&stored()!==previous){await synchronize(requestController.signal);return}}catch{}if((error instanceof AppRenewalUnavailable||error instanceof AppResponseReadError||requestController.signal.aborted)&&alive()){if(current())renewalTimer=setTimeout(()=>{renew().catch(()=>{})},Math.min(5000,(binding.expiresAt-Date.now())/5))}else invalidate();throw new AppRenewalUnavailable}finally{clearTimeout(timeout);controller.signal.removeEventListener("abort",abort)}})();try{await renewal}finally{renewal=undefined}}const storageChanged=()=>{if(!credential)return;if(!alive()){invalidate();return}expireAccess();synchronize().catch(()=>{})};const monitor=setInterval(()=>{storageChanged()},100);globalThis.addEventListener?.("storage",storageChanged);const wake=()=>{if(alive())resolve().catch(()=>{})};for(const event of["pageshow","focus","visibilitychange"])globalThis.addEventListener?.(event,wake);const dispose=()=>{disposed=true;cancel()};async function settledAccess(signal){await synchronize();while(alive()&&stored()!==serialized)await synchronize();if(signal.aborted||!current())throw new Error}async function requestData(operation2,input){try{if(operation2!=="data/query"||!current())throw new Error;const admitted=credential;const signal=access.signal;const response2=await send2("data",credential,signal,{method:"POST",body:JSON.stringify(input)});await settledAccess(signal);if(response2.status===401||response2.status===403){if(admitted===credential&¤t())invalidate();throw new DataOperationError("access_denied")}const result2=await appResponse(response2,Number.MAX_SAFE_INTEGER,signal);await settledAccess(signal);if(!response2.ok)throw dataTransportError(response2.status,result2);return result2}catch(error){if(error instanceof DataOperationError)throw error;if(!current()||controller.signal.aborted)throw new DataOperationError("context_unavailable");throw new DataOperationError("unavailable",true)}}async function requestInbox(operation2,input){if(!["questions.list","questions.answer","questions.searchRecords"].includes(operation2))throw new Error("Inbox operation unavailable");return requestChecked("inbox",{method:"POST",body:JSON.stringify({operation:operation2,input})},true)}async function requestRoutine(key,suffix,init={}){return requestChecked(`routines/${encodeURIComponent(key)}/${suffix}`,init)}async function requestRetainedRoutine(key,suffix){return requestChecked(`routines/${encodeURIComponent(key)}/${suffix}`,{},false,true)}async function requestFiles(suffix,init,parent){const unavailable3=()=>new FileOperationError("unsupported_context",400);if(!current()||!/^(?:|\/[0-9a-f-]{36}(?:\/(?:content|upload|enrichments(?:\/[^/?#]+\/content)?))?)$/i.test(suffix))throw unavailable3();const admitted=credential;const signal=parent?AbortSignal.any([access.signal,parent]):access.signal;const failure=()=>current()&&!signal.aborted?new FileOperationError("unavailable",503,true):unavailable3();try{return await hostedContent("",init,signal,(_url,request)=>untilAborted(send2(`files${suffix}`,admitted,signal,request).then((value)=>{if(signal.aborted){value.body?.cancel().catch(()=>{});throw unavailable3()}return value}),signal),()=>settledAccess(signal),failure)}catch{throw failure()}}async function requestChecked(path,init,inbox=false,retained2=false){if(!current())throw new Error("Local app context unavailable.");const admitted=credential;const signal=access.signal;const response2=await send2(path,credential,signal,init);const check=async()=>{if(retained2){if(signal.aborted||!current())throw new Error("Local app context unavailable.")}else await settledAccess(signal)};await check();if((response2.status===401||!inbox&&response2.status===403)&&admitted===credential&¤t())invalidate();responseChecks.set(response2,async(value)=>{await check();if(admitted===credential&¤t()&&value&&typeof value==="object"&&"error"in value&&value.error==="authority_unavailable")invalidate()});return response2}function context(){const issued=credential;const signal=access.signal;return{kind:"local",...binding,get expiresAt(){return binding.expiresAt},isCurrent:()=>!signal.aborted&¤t(),signal,invalidate:()=>{if(issued===credential&¤t())invalidate()},requestRoutine,requestRetainedRoutine,requestData,requestInbox,requestFiles,requestAvailability:(key)=>requestRoutine(key,"availability",{method:"GET"})}}const resolveOnce=async()=>{let attempted;try{if(!alive())throw new Error;if(!pair){const candidate2=stored();const retained3=readPair(candidate2);pair=retained3;binding={...retained3.context};credential=retained3.credential;serialized=candidate2}expireAccess();if(binding.expiresAt<=Date.now()){await renew();if(!current())throw new AppRenewalUnavailable;return context()}await synchronize();const candidate=stored();const retained2=readPair(candidate);attempted=candidate??undefined;if(!current())throw new AppRenewalUnavailable;const value=await proof(retained2.credential);if(stored()!==candidate||serialized!==candidate){await synchronize();return context()}if(!current())throw new Error;if(expiry&&binding&&value.expiresAt>binding.expiresAt)throw new Error;if(!expiry||value.expiresAt!==binding.expiresAt)install(value,retained2,candidate);return context()}catch(error){if(alive()&&error instanceof AppRenewalUnavailable)throw new Error;try{if(binding&¤t()&&attempted&&attempted!==serialized)return context();if(binding&&alive()&&stored()&&stored()!==serialized){await synchronize();return context()}}catch{}if(error instanceof AppContextDenied&&binding&&alive()&&renewal)throw new Error;if(alive()&&(error instanceof AppResponseReadError||pair&&stored()===serialized&&!current()))throw new Error;invalidate();throw new Error}};const resolve=()=>{if(resolution2)return resolution2;resolution2=resolveOnce().finally(()=>{resolution2=undefined});return resolution2};const start=()=>{startup=setTimeout(()=>{if(alive()&&!resolution2&&!binding)resolve().catch(()=>{})},0)};const retained=async()=>{if(!expiry&&alive()){if(binding?current()&&resolution2:readPair(stored()).context.expiresAt>Date.now())return resolve()}if(!expiry||!current())throw new Error("Local app context unavailable.");return context()};return{resolve,retained,start,invalidate,dispose}}function validProof(value){return typeof value==="string"&&/^[A-Za-z0-9_-]{43}$/.test(value)}function validBinding(value){if(!value||typeof value!=="object"||Array.isArray(value)||Object.keys(value).sort().join(",")!=="appId,expiresAt,memberId,sessionId,workspace")return false;const binding=value;return typeof binding.appId==="string"&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(binding.appId)&&typeof binding.workspace==="string"&&/^[a-z0-9][a-z0-9-]{0,62}$/.test(binding.workspace)&&typeof binding.memberId==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(binding.memberId)&&validProof(binding.sessionId)&&typeof binding.expiresAt==="number"&&Number.isFinite(binding.expiresAt)}function validPair(value){if(!value||typeof value!=="object"||Array.isArray(value)||Object.keys(value).sort().join(",")!=="context,credential,renewalCredential")return false;const pair=value;return validProof(pair.credential)&&validProof(pair.renewalCredential)&&pair.credential!==pair.renewalCredential&&validBinding(pair.context)}var unavailable3=()=>new InboxOperationError(503,"unavailable");var stale=()=>new InboxOperationError(401,"authority_unavailable");function hostFailure(error,context){if(!context.isCurrent()||context.expiresAt<=Date.now()||error instanceof InboxContextError&&error.status===401)return stale();return error instanceof InboxContextError&&error.status===403?new InboxOperationError(403,"access_denied"):unavailable3()}async function send2(operation2,input,admitted){const envelope=parseInboxRequest({operation:operation2,input});let context;try{context=admitted??await resolveAppContext()}catch{throw stale()}if(context.kind==="local"){if(!isAppQuestionOperation(operation2))throw new InboxOperationError(403,"access_denied");const check2=()=>{if(!context.isCurrent()||context.signal.aborted||context.expiresAt<=Date.now())throw stale()};try{const response2=await context.requestInbox(operation2,envelope.input);const value=await appResponse(response2,INBOX_RESULT_BYTES,context.signal);check2();if(!response2.ok)throw new InboxOperationError([400,401,403,409].includes(response2.status)?response2.status:503,response2.status===400?"invalid_input":response2.status===401?"authority_unavailable":response2.status===403?"access_denied":response2.status===409?"conflict":"unavailable");if(response2.status!==200)throw unavailable3();const parsed=parseInboxResult(operation2,value);check2();if(operation2==="questions.answer"&&typeof envelope.input.response.selection==="object"&&!parsed.label?.trim())throw unavailable3();return parsed}catch(error){check2();throw error instanceof InboxOperationError?error:unavailable3()}}if(context.endpoint!==`https://${context.workspace}.oddington.ai`||["auth","www","api","os"].includes(context.workspace))throw stale();let host;if(!isAppQuestionOperation(operation2)){try{host=await resolveHostedInboxContext(context)}catch(error){throw hostFailure(error,context)}if(!host)throw unavailable3()}const check=()=>{if(!context.isCurrent()||host&&!host.isCurrent()||!Number.isFinite(context.expiresAt)||context.expiresAt<=Date.now())throw stale()};check();if(host?.context.kind==="focused")throw new InboxOperationError(403,"access_denied");try{const response2=await fetch(`${context.endpoint}/api/inbox`,{method:"POST",headers:{authorization:`Bearer ${context.accessToken}`,"content-type":"application/json"},body:JSON.stringify(envelope),redirect:"error",cache:"no-store",signal:AbortSignal.timeout(30000)});try{check()}catch(error){response2.body?.cancel().catch(()=>{});throw error}if(!response2.ok){response2.body?.cancel().catch(()=>{});throw new InboxOperationError([400,401,403,409].includes(response2.status)?response2.status:503,response2.status===400?"invalid_input":response2.status===401?"authority_unavailable":response2.status===403?"access_denied":response2.status===409?"conflict":"unavailable")}if(response2.status!==200){response2.body?.cancel().catch(()=>{});throw unavailable3()}if(operation2==="files.read"){if(!response2.body)throw unavailable3();const source=response2.body;let reader;let size=0;const cancel=async(reason)=>{try{await(reader?reader.cancel(reason):source.cancel(reason))}finally{reader?.releaseLock()}};const body=new ReadableStream({async pull(controller){try{check();reader??=source.getReader();const next=await reader.read();check();if(next.done){reader.releaseLock();controller.close();return}size+=next.value.byteLength;if(size>25*1024*1024)throw unavailable3();controller.enqueue(next.value)}catch(error){controller.error(error);await cancel(error).catch(()=>{})}},cancel},{highWaterMark:0});return new Response(body,{status:response2.status,headers:response2.headers})}const bytes=await limitedBody(response2,INBOX_RESULT_BYTES);check();if(!bytes)throw unavailable3();const value=JSON.parse(new TextDecoder("utf-8",{fatal:true}).decode(bytes));const parsed=parseInboxResult(operation2,value);check();if(operation2==="current"&&parsed.workspace.slug!==context.workspace)throw unavailable3();if("itemId"in envelope.input){const item=operation2==="items.read"?parsed:operation2==="items.rename"||operation2==="items.setLifecycle"||operation2==="items.addRecipient"?parsed.item:undefined;if(item&&(item.id!==envelope.input.itemId||("revision"in envelope.input)&&item.revision!==envelope.input.revision))throw unavailable3();if(operation2==="items.addRecipient"&&parsed.addedPersonId!==envelope.input.personId)throw unavailable3();if(operation2==="questions.answer"&&typeof envelope.input.response.selection==="object"&&!parsed.label?.trim())throw unavailable3()}return parsed}catch(error){check();throw error instanceof InboxOperationError?error:unavailable3()}}var inbox={current:async()=>await send2("current",{}),items:{async list(){const items=[];let beforeNumber;let initial;try{initial=await resolveAppContext()}catch{throw stale()}let host;try{host=initial.kind!=="local"&&await resolveHostedInboxContext(initial)}catch(error){throw hostFailure(error,initial)}if(initial.kind==="local")throw new InboxOperationError(403,"access_denied");if(!host)throw unavailable3();const check=()=>{if(!initial.isCurrent()||!host.isCurrent()||initial.expiresAt<=Date.now())throw stale()};do{check();const page=await send2("items.list",beforeNumber===undefined?{}:{beforeNumber});check();if(beforeNumber!==undefined&&(page.items.some((item)=>item.number>=beforeNumber)||page.nextBeforeNumber!==null&&page.nextBeforeNumber>=beforeNumber))throw unavailable3();items.push(...page.items);if(page.nextBeforeNumber===null)return items;beforeNumber=page.nextBeforeNumber}while(true)},read:async(itemId)=>await send2("items.read",{itemId}),see:async(itemId)=>{await send2("items.see",{itemId})},markDigestRead:async(itemId)=>await send2("items.markDigestRead",{itemId}),rename:async(input)=>await send2("items.rename",input),setLifecycle:async(input)=>await send2("items.setLifecycle",input),listRecipientCandidates:async(itemId)=>await send2("items.listRecipientCandidates",{itemId}),addRecipient:async(input)=>await send2("items.addRecipient",input)},questions:{async list(input){const supplied=parseInboxRequest({operation:"questions.list",input}).input;if(Object.hasOwn(supplied,"beforeNumber"))throw new InboxOperationError(400,"invalid_input");const routines=Object.freeze(supplied.routines);const questions=[];let beforeNumber;let initial;try{initial=await resolveAppContext()}catch{throw stale()}const check=()=>{if(!initial.isCurrent()||initial.expiresAt<=Date.now())throw stale()};do{check();const page=await send2("questions.list",{routines,...beforeNumber===undefined?{}:{beforeNumber}},initial);check();if(page.questions.some((question2)=>question2.inboxUrl!==`https://${initial.workspace}.oddington.ai/inbox/${question2.itemId}`||!routines.includes(question2.routine))||beforeNumber!==undefined&&page.nextBeforeNumber!==null&&page.nextBeforeNumber>=beforeNumber)throw unavailable3();questions.push(...page.questions);if(page.nextBeforeNumber===null)return questions;beforeNumber=page.nextBeforeNumber}while(true)},answer:async(input)=>await send2("questions.answer",input),searchRecords:async(input)=>await send2("questions.searchRecords",input)},files:{read:async(input)=>await send2("files.read",input)}};var sources=new WeakMap;function registerBrowserAuth(handle,source){sources.set(handle,source)}function browserAuthSource(handle){return sources.get(handle)}var installedDispose;function init({auth:input}){installedDispose?.();const registered=browserAuthSource(input);const auth=registered??input;if(!registered&&input&&"getState"in input||typeof auth?.getSession!=="function"||typeof auth?.onAuthStateChange!=="function"){installedDispose=installMemberContext(async()=>{throw new Error("Hosted Data context unavailable.")});return}let endpoint;let workspace;let localOrigin;try{const url=new URL(globalThis.location.origin);if(isAppOrigin(globalThis.location.origin))localOrigin=url.origin;const slug=url.hostname.endsWith(".oddington.ai")?url.hostname.slice(0,-".oddington.ai".length):"";if(url.protocol==="https:"&&!url.port&&!url.username&&!url.password&&!url.search&&!url.hash&&url.pathname==="/"&&/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(slug)&&slug!=="auth"){endpoint=url.origin;workspace=slug}}catch{}let active2=true;let revision=0;let person;let token;const binding={};const local2=localOrigin?appContext(localOrigin,()=>active2):undefined;let subscription;let stopDisposal;const resolve=async()=>{if(local2)return local2.resolve();if(!active2||!endpoint||!workspace||globalThis.location.origin!==endpoint)throw new Error("Hosted Data context unavailable.");const started=revision;const{data:{session},error}=await auth.getSession();if(!active2||globalThis.location.origin!==endpoint||started!==revision||error||!session||person!==undefined&&person!==session.user.id){throw new Error("Hosted Data context unavailable.")}const expiresAt=(session.expires_at??0)*1000;if(!Number.isFinite(expiresAt)||expiresAt<=Date.now()||!session.user.id){throw new Error("Hosted Data context unavailable.")}person=session.user.id;const isCurrent=()=>active2&&globalThis.location.origin===endpoint&&revision===started&&person===session.user.id;return{workspace,endpoint,accessToken:session.access_token,expiresAt,isCurrent,memberId:session.user.id,binding}};const uninstall=installMemberContext(resolve,local2?local2.retained:resolve);const dispose=()=>{if(!active2)return;active2=false;local2?.dispose();revision++;subscription?.unsubscribe();stopDisposal?.();uninstall();if(installedDispose===dispose)installedDispose=undefined};installedDispose=dispose;stopDisposal=registered?.onDispose(dispose);if(!active2)return;subscription=auth.onAuthStateChange((event,session)=>{const next=session?.user.id??null;if(event==="SIGNED_OUT"||person!==undefined&&next!==person||person!==undefined&&event==="SIGNED_IN"&&token!==session?.access_token){revision++;local2?.invalidate()}person=next;token=session?.access_token}).data.subscription;local2?.start()}var os={init};var CLI_CALLBACK="http://127.0.0.1:53682/oauth/callback";function authorizationConfiguration(value){const setup=value;if(!setup||typeof setup.clientId!=="string"||!/^[A-Za-z0-9_-]{1,128}$/.test(setup.clientId)||setup.redirectUri!==CLI_CALLBACK||!Array.isArray(setup.scopes)||setup.scopes.length!==1||setup.scopes[0]!=="email")throw new Error("Unavailable");return{clientId:setup.clientId,redirectUri:CLI_CALLBACK,scopes:["email"]}}function authorizationDetails(value,id3,setup,userId,account){const details=value;if(!details||details.authorization_id!==id3||details.redirect_uri!==setup.redirectUri||details.client?.id!==setup.clientId||typeof details.client.name!=="string"||!details.client.name.trim()||details.client.name.length>128||/[\x00-\x1f\x7f]/.test(details.client.name)||details.user?.id!==userId||details.user.email!==account.email||typeof details.scope!=="string"||details.scope.trim()!=="email")return Object.freeze({status:"invalid"});return Object.freeze({status:"consent",clientName:details.client.name.trim(),account,scopes:Object.freeze([...setup.scopes]),callbackAddress:new URL(setup.redirectUri).host})}function authorizationReturn(value,decision){const returnUrl=value?.redirect_url;if(typeof returnUrl!=="string"||returnUrl.length>8192||!returnUrl.startsWith(`${CLI_CALLBACK}?`)||/[\x00-\x20\x7f]/.test(returnUrl))return Object.freeze({status:"invalid"});try{const url=new URL(returnUrl);if(url.origin+url.pathname!==CLI_CALLBACK||url.username||url.password||url.hash)return Object.freeze({status:"invalid"});const parameters=url.searchParams;const allowed=["code","state","error","error_description","error_uri"];for(const key of parameters.keys()){if(!allowed.includes(key)||parameters.getAll(key).length!==1)return Object.freeze({status:"invalid"})}const code=parameters.get("code");const error=parameters.get("error");if(!parameters.get("state")||Boolean(code)===Boolean(error)||decision==="deny"&&!error||decision==="approve"&&!code||parameters.has("code")&&!code||parameters.has("error")&&!error||code&&(parameters.has("error_description")||parameters.has("error_uri")))return Object.freeze({status:"invalid"});return Object.freeze({status:"return",returnUrl})}catch{return Object.freeze({status:"invalid"})}}function authorizationFailure(error){const status=error?.status;return Object.freeze({status:status===404||status===410||status===400?"expired":status===401?"signed_out":status===403||status===422?"invalid":"unavailable"})}function createBrowserAuth(runtime){const coordinators=new Map;function publish(c,state){c.state=Object.freeze(state);for(const listener of c.listeners){try{listener(c.state)}catch{}}}function notify(c,event){for(const listener of c.sessions){try{listener(event,event==="SIGNED_OUT"?null:c.session)}catch{}}}function expire(c){if(!c.active||!c.session&&c.state.status==="expired")return;c.revision++;if(c.timer)clearTimeout(c.timer);c.session=null;publish(c,{status:"expired"});notify(c,"SIGNED_OUT")}function accept(c,event,session){if(!c.active)return;if(event==="INITIAL_SESSION"&&c.state.status!=="initializing")return;if(event==="TOKEN_REFRESHED"&&!c.session&&c.state.status!=="initializing")return;const replaced=c.session?.user?.id!==session?.user?.id||event==="SIGNED_OUT"||!!(event==="SIGNED_IN"&&c.session&&session?.access_token!==c.session.access_token);if(replaced)c.revision++;if(c.timer)clearTimeout(c.timer);const pending=c.state.pending;if(!session){c.session=null;publish(c,{status:c.state.status==="expired"?"expired":"signed_out",...pending?{pending}:{}});notify(c,"SIGNED_OUT");return}if(!validSession(session)){c.session=session;expire(c);return}c.session=session;const email=typeof session.user.email==="string"?session.user.email.trim():"";const metadata=session.user.user_metadata;const displayName=["name","full_name","first_name"].map((key)=>metadata?.[key]).find((value)=>typeof value==="string"&&value.trim());const name=displayName?.trim()||email;const account=!replaced&&c.state.account?.email===email&&c.state.account.displayName===name?c.state.account:Object.freeze({email,displayName:name});notify(c,event);publish(c,{status:"signed_in",account,...pending?{pending}:{}});const checkExpiry=()=>{if(!c.active||!c.session)return;const remaining=c.session.expires_at*1000-Date.now();if(remaining<=0)expire(c);else c.timer=setTimeout(checkExpiry,Math.min(remaining,2147483647))};checkExpiry()}function validSession(session){return typeof session.access_token==="string"&&/^[^\s]{1,8192}$/.test(session.access_token)&&typeof session.user?.id==="string"&&!!session.user.id&&Number.isFinite(session.expires_at)&&session.expires_at*1000>Date.now()}function createCoordinator(origin){const c={state:Object.freeze({status:"initializing"}),session:null,revision:0,active:true,refs:0,listeners:new Set,sessions:new Set,ready:Promise.resolve()};c.ready=(async()=>{const revision=c.revision;try{if(!allowedOrigin(origin))throw runtime.failure("unavailable");const response2=await fetch(`${origin}/api/auth`,{method:"GET",credentials:"same-origin",redirect:"error",cache:"no-store"});if(!response2.ok)throw runtime.failure("unavailable");const configuration=validateConfiguration(await response2.json());if(configuration.authorization&&origin!=="https://auth.oddington.ai"&&origin!=="http://127.0.0.1:5176")throw runtime.failure("unavailable");c.authorization=configuration.authorization;if(!c.active||globalThis.location?.origin!==origin)return;c.provider=await runtime.provider(configuration,{revision:()=>c.revision,current:(revision2)=>current(c,origin,revision2),canPersistSession:()=>c.active&&(c.state.status==="initializing"||!!c.session||c.state.pending==="verify_code"),canAuthorize:(accessToken)=>current(c,origin,c.revision)&&!!c.session&&c.session.access_token===accessToken&&c.state.pending!=="sign_out"});if(!c.active||globalThis.location?.origin!==origin){c.provider.dispose();return}const subscription=c.provider.onAuthStateChange((event,session)=>{if(c.state.status==="initializing"&&c.state.pending==="sign_out")return;accept(c,event,session)}).data.subscription;c.unsubscribe=()=>subscription.unsubscribe();const started=c.revision;const{data:data2,error}=await c.provider.getSession();if(!current(c,origin,started))return;if(error){if(terminalSessionFailure(error))expire(c);else if(!c.session||!validSession(c.session))publish(c,{status:"unavailable",error:"unavailable"})}else if(c.state.pending!=="sign_out")accept(c,"INITIAL_SESSION",data2.session)}catch{if(current(c,origin,revision))publish(c,{status:"unavailable",error:"unavailable"})}})();return c}function current(c,origin,revision){if(c.session&&!validSession(c.session))expire(c);return c.active&&c.revision===revision&&globalThis.location?.origin===origin}return{create(){const origin=globalThis.location?.origin??"";let c=coordinators.get(origin);if(!c){c=createCoordinator(origin);coordinators.set(origin,c)}const coordinator=c;coordinator.refs++;let active2=true;let ownedAction;let authorizationId;let authorizationGeneration=0;let inspected;const observers=new Set;const sessionObservers=new Set;const disposalObservers=new Set;let lastState=coordinator.state;const observation=(state)=>{lastState=state;for(const listener of observers){try{listener(state)}catch{}}};coordinator.listeners.add(observation);const assertActive=()=>{if(!active2)throw runtime.failure("disposed")};async function action(kind,work){assertActive();if(coordinator.action&&kind!=="sign_out")throw runtime.failure("busy");if(kind==="sign_out"&&coordinator.state.pending==="sign_out")throw runtime.failure("busy");if(kind==="sign_out"){coordinator.revision++;notify(coordinator,"SIGNED_OUT")}const marker={};coordinator.action=marker;ownedAction=marker;const revision=coordinator.revision;publish(coordinator,{...coordinator.state,error:undefined,pending:kind});try{await coordinator.ready;assertActive();if(!coordinator.provider||!coordinator.active||globalThis.location?.origin!==origin)throw runtime.failure("unavailable");if(!current(coordinator,origin,revision))throw runtime.failure("stale");if(coordinator.action!==marker)throw runtime.failure("stale");await work(coordinator.provider);assertActive();if(coordinator.action!==marker)throw runtime.failure("stale");if(!current(coordinator,origin,revision)&&kind!=="verify_code"&&kind!=="sign_out")throw runtime.failure("stale")}catch(error){const reason=!active2?"disposed":!current(coordinator,origin,revision)?"stale":safeReason(error)??"unavailable";if(active2&¤t(coordinator,origin,revision))publish(coordinator,{...coordinator.state,error:reason});throw runtime.failure(reason)}finally{if(coordinator.action===marker){coordinator.action=undefined;if(coordinator.active){publish(coordinator,{...coordinator.state,pending:undefined});if(kind==="sign_out"&&coordinator.session)notify(coordinator,"TOKEN_REFRESHED")}}if(ownedAction===marker)ownedAction=undefined}}async function authorize(kind,id3){if(!active2)return Object.freeze({status:"disposed"});if(id3!==authorizationId){authorizationId=id3;authorizationGeneration++;inspected=undefined}if(!id3)return Object.freeze({status:"missing"});if(typeof id3!=="string"||!/^[A-Za-z0-9_-]{1,128}$/.test(id3))return Object.freeze({status:"invalid"});const generation=authorizationGeneration;await coordinator.ready;if(!active2)return Object.freeze({status:"disposed"});if(generation!==authorizationGeneration)return Object.freeze({status:"stale"});const revision=coordinator.revision;if(!current(coordinator,origin,revision))return Object.freeze({status:"stale"});if(!coordinator.session||coordinator.state.pending==="sign_out")return Object.freeze({status:coordinator.state.status==="expired"?"expired":coordinator.state.status==="unavailable"?"unavailable":"signed_out"});if(!coordinator.authorization||!coordinator.provider)return Object.freeze({status:"unavailable"});if(coordinator.action)return Object.freeze({status:"busy"});if(kind!=="get"&&(!inspected||inspected.id!==id3||inspected.revision!==revision))return Object.freeze({status:"stale"});if(kind!=="get"&&inspected?.result.status!=="consent")return inspected.result;const marker={};coordinator.action=marker;ownedAction=marker;const requestCurrent=()=>active2&&generation===authorizationGeneration&¤t(coordinator,origin,revision)&&coordinator.action===marker&&!!coordinator.session&&coordinator.state.pending!=="sign_out";const stale2=()=>Object.freeze({status:active2?"stale":"disposed"});try{const provider=coordinator.provider;const response2=await provider.authorization.get(id3,requestCurrent);if(!requestCurrent())return stale2();if(response2.error){inspected=undefined;const failure=authorizationFailure(response2.error);if(failure.status==="signed_out")expire(coordinator);return failure}const account=coordinator.state.account;const result2=response2.data&&typeof response2.data==="object"&&"redirect_url"in response2.data?authorizationReturn(response2.data):authorizationDetails(response2.data,id3,coordinator.authorization,coordinator.session.user.id,account);inspected={id:id3,revision,result:result2};if(kind==="get"||result2.status!=="consent")return result2;if(!requestCurrent())return stale2();const decision=await provider.authorization[kind](id3,requestCurrent);if(!requestCurrent())return stale2();const returned=decision.error?authorizationFailure(decision.error):authorizationReturn(decision.data,kind);if(returned.status==="signed_out")expire(coordinator);inspected={id:id3,revision,result:returned};return returned}catch(error){if(!requestCurrent())return stale2();inspected=undefined;if(safeReason(error)==="stale")return stale2();return Object.freeze({status:"unavailable"})}finally{if(coordinator.action===marker)coordinator.action=undefined;if(ownedAction===marker)ownedAction=undefined}}const handle=Object.freeze({authorization:Object.freeze({get:(id3)=>authorize("get",id3),approve:(id3)=>authorize("approve",id3),deny:(id3)=>authorize("deny",id3)}),getState(){if(active2&&coordinator.session&&!validSession(coordinator.session))expire(coordinator);return lastState},subscribe(listener){assertActive();observers.add(listener);return()=>{observers.delete(listener)}},async sendCode(email){assertActive();if(!validEmail(email))throw runtime.failure("invalid_input");await action("send_code",async(provider)=>{const{error}=await provider.signInWithOtp({email:email.trim(),options:{shouldCreateUser:false}});if(error&&!accountRefusal(error))throw runtime.failure("unavailable")})},async verifyCode(email,code){assertActive();if(!validEmail(email)||typeof code!=="string"||!/^\d{6}$/.test(code))throw runtime.failure("invalid_input");await action("verify_code",async(provider)=>{const revision=coordinator.revision;const{data:data2,error}=await provider.verifyOtp({email:email.trim(),token:code,type:"email"});if(error)throw runtime.failure(accountRefusal(error)?"invalid_code":"unavailable");if(!data2.session||!validSession(data2.session))throw runtime.failure("invalid_code");if(!current(coordinator,origin,revision)&&(coordinator.session?.access_token!==data2.session.access_token||coordinator.revision!==revision+1||coordinator.state.pending!=="verify_code"))throw runtime.failure("stale");accept(coordinator,"SIGNED_IN",data2.session)})},async signOut(){assertActive();await action("sign_out",async(provider)=>{const revision=coordinator.revision;const{error}=await provider.signOut({scope:"local"});if(error)throw runtime.failure("unavailable");if(!current(coordinator,origin,revision)&&coordinator.session)throw runtime.failure("stale");accept(coordinator,"SIGNED_OUT",null)})},dispose(){if(!active2)return;active2=false;authorizationGeneration++;inspected=undefined;if(ownedAction&&coordinator.action===ownedAction)coordinator.revision++;observers.clear();coordinator.listeners.delete(observation);for(const listener of disposalObservers){try{listener()}catch{}}disposalObservers.clear();for(const listener of sessionObservers)coordinator.sessions.delete(listener);sessionObservers.clear();if(--coordinator.refs===0){coordinator.active=false;coordinator.revision++;if(coordinator.timer)clearTimeout(coordinator.timer);coordinator.unsubscribe?.();coordinator.provider?.dispose();coordinator.provider=undefined;coordinator.session=null;coordinator.listeners.clear();coordinator.sessions.clear();coordinators.delete(origin)}}});registerBrowserAuth(handle,{onDispose(callback){if(!active2){callback();return()=>{}}disposalObservers.add(callback);return()=>{disposalObservers.delete(callback)}},async getSession(){assertActive();await coordinator.ready;assertActive();const revision=coordinator.revision;if(!current(coordinator,origin,revision)||!coordinator.provider||!coordinator.session||coordinator.state.pending==="sign_out")return{data:{session:null},error:null};let result2;try{result2=await coordinator.provider.getSession()}catch{result2={data:{session:null},error:runtime.failure("unavailable")}}if(!active2||!current(coordinator,origin,revision))return{data:{session:null},error:runtime.failure("stale")};if(result2.error){if(!terminalSessionFailure(result2.error)&&coordinator.session&&validSession(coordinator.session))return{data:{session:coordinator.session},error:null};expire(coordinator);return{data:{session:null},error:runtime.failure("unavailable")}}accept(coordinator,"TOKEN_REFRESHED",result2.data.session);return{data:{session:coordinator.session},error:null}},onAuthStateChange(callback){if(!active2){callback("SIGNED_OUT",null);return{data:{subscription:{unsubscribe(){}}}}}const listener=(event,session)=>callback(event,session);coordinator.sessions.add(listener);sessionObservers.add(listener);callback("INITIAL_SESSION",coordinator.session);return{data:{subscription:{unsubscribe(){coordinator.sessions.delete(listener);sessionObservers.delete(listener)}}}}}});return handle}}}function safeReason(error){const reason=error?.reason;return["invalid_input","invalid_code","unavailable","busy","stale","disposed"].includes(reason)?reason:undefined}function accountRefusal(error){return[400,401,403,404,422].includes(error?.status??0)}function terminalSessionFailure(error){return[400,401,403,404,422].includes(error?.status??0)}function validEmail(email){return typeof email==="string"&&email.length<=320&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email.trim())}function allowedOrigin(origin){if(origin==="http://127.0.0.1:5176"||origin==="https://auth.oddington.ai")return true;try{const url=new URL(origin);const slug=url.hostname.endsWith(".oddington.ai")?url.hostname.slice(0,-".oddington.ai".length):"";return slug.length<=63&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(slug)&&!["auth","api","os","www"].includes(slug)&&origin===`https://${slug}.oddington.ai`}catch{return false}}function validateConfiguration(value){const configuration=value;if(!configuration||typeof configuration.providerUrl!=="string"||typeof configuration.publishableKey!=="string")throw new Error("Unavailable");const url=new URL(configuration.providerUrl);if(url.origin!==configuration.providerUrl||url.protocol!=="https:"||url.username||url.password||url.port||!configuration.publishableKey)throw new Error("Unavailable");return{providerUrl:url.origin,publishableKey:configuration.publishableKey,...configuration.authorization===undefined?{}:{authorization:authorizationConfiguration(configuration.authorization)}}}class BrowserAuthError extends Error{reason;constructor(reason){super(`Browser authentication failed: ${reason}`);this.reason=reason;this.name="BrowserAuthError"}}async function provider(configuration,guard){const{AuthClient:AuthClient2}=await Promise.resolve().then(() => (init_auth_provider(),exports_auth_provider));if(!guard.current(guard.revision()))throw new BrowserAuthError("stale");const provenance=new Map;let removalRevision;let authorizationRequest;let authorizationQueue=Promise.resolve();const storage=globalThis.localStorage;const client=new AuthClient2({url:`${configuration.providerUrl}/auth/v1`,headers:{apikey:configuration.publishableKey,Authorization:`Bearer ${configuration.publishableKey}`},storageKey:`sb-${new URL(configuration.providerUrl).hostname.split(".")[0]}-auth-token`,persistSession:true,autoRefreshToken:true,detectSessionInUrl:false,storage:{getItem:(key)=>storage.getItem(key),removeItem(key){if(!guard.current(removalRevision??guard.revision()))throw new BrowserAuthError("stale");storage.removeItem(key)},setItem(key,value){const token=JSON.parse(value).access_token;const revision=token?provenance.get(token):undefined;if(!guard.current(revision??guard.revision())||token&&!guard.canPersistSession())throw new BrowserAuthError("stale");storage.setItem(key,value)}},fetch:Object.assign(async(input,init2)=>{const revision=guard.revision();const request=String(input).startsWith(`${configuration.providerUrl}/auth/v1/oauth/authorizations/`)?authorizationRequest:undefined;const rejectStale=()=>{if(request)request.rejected=true;throw new BrowserAuthError("stale")};if(request&&(!request.current()||!guard.canAuthorize(new Headers(init2?.headers).get("authorization")?.replace(/^Bearer /,"")??"")))rejectStale();const response2=await fetch(input,{...init2,redirect:"error"});const body=await response2.arrayBuffer();if(!guard.current(revision)||request&&!request.current())rejectStale();const result2=new Response([204,205,304].includes(response2.status)?null:body,{status:response2.status,statusText:response2.statusText,headers:response2.headers});const json2=result2.json.bind(result2);result2.json=async()=>{const value=await json2();if(!guard.current(revision)||request&&!request.current())rejectStale();if(value&&typeof value.access_token==="string")provenance.set(value.access_token,revision);return value};return result2},{preconnect:fetch.preconnect})});async function authorization(kind,id3,current){const previous=authorizationQueue;let release;authorizationQueue=new Promise((resolve)=>{release=resolve});await previous;const request={current,rejected:false};authorizationRequest=request;try{if(!current())throw new BrowserAuthError("stale");const result2=await(kind==="get"?client.oauth.getAuthorizationDetails(id3):kind==="approve"?client.oauth.approveAuthorization(id3,{skipBrowserRedirect:true}):client.oauth.denyAuthorization(id3,{skipBrowserRedirect:true}));if(request.rejected||!current())throw new BrowserAuthError("stale");return result2}catch(error){if(request.rejected||!current())throw new BrowserAuthError("stale");throw error}finally{authorizationRequest=undefined;release()}}return{authorization:{get:(id3,current)=>authorization("get",id3,current),approve:(id3,current)=>authorization("approve",id3,current),deny:(id3,current)=>authorization("deny",id3,current)},getSession:()=>client.getSession(),onAuthStateChange:(callback)=>client.onAuthStateChange((event,session)=>{const revision=session?provenance.get(session.access_token):undefined;if(revision!==undefined&&!guard.current(revision))return;callback(event,session);if(session)provenance.delete(session.access_token)}),signInWithOtp:(input)=>client.signInWithOtp(input),verifyOtp:(input)=>client.verifyOtp(input),async signOut(input){removalRevision=guard.revision();try{return await client.signOut(input)}finally{removalRevision=undefined}},dispose(){provenance.clear();client.dispose()}}}var auth=createBrowserAuth({provider,failure:(reason)=>new BrowserAuthError(reason)});function routineRunHandle(operations2){return Object.freeze({current:operations2.current,step:operations2.step,...operations2.publish?{publish:operations2.publish}:{},async*watch(){let previous;for(;;){const state=await operations2.current(),encoded=JSON.stringify(state);if(encoded!==previous){previous=encoded;yield state}if(state.status==="succeeded"||state.status==="failed")return;await(operations2.wait?.()??new Promise((resolve)=>setTimeout(resolve,100)))}}})}var name=/^[a-z0-9][a-z0-9-]{0,62}$/;var uuid=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;var invalid8=()=>{throw new Error("Run state unavailable")};var record3=(value)=>value&&typeof value==="object"&&!Array.isArray(value)?value:invalid8();function time(value){if(typeof value!=="string"||value.length>40||!Number.isFinite(Date.parse(value)))return invalid8();return value}function times(value){return{...value.startedAt===undefined?{}:{startedAt:time(value.startedAt)},...value.finishedAt===undefined?{}:{finishedAt:time(value.finishedAt)}}}function bounded(value){assertRoutineJson(value);if(new TextEncoder().encode(JSON.stringify(value)).byteLength>256*1024)return invalid8();return value}function parseRunStep(value,expected){const v=record3(value);if(typeof v.id!=="string"||!name.test(v.id)||expected!==undefined&&v.id!==expected||typeof v.title!=="string"||!v.title.trim()||v.title.length>256||!["pending","running","completed","failed","skipped"].includes(v.status))return invalid8();return{id:v.id,title:v.title,status:v.status,...times(v),...Object.hasOwn(v,"summary")?{summary:bounded(v.summary)}:{},...Object.hasOwn(v,"data")?{data:bounded(v.data)}:{}}}function parseRemoteRun(value,expected={}){const v=record3(value);if(typeof v.id!=="string"||!uuid.test(v.id)||expected.id!==undefined&&v.id!==expected.id||typeof v.routine!=="string"||!name.test(v.routine)||expected.routine!==undefined&&v.routine!==expected.routine||v.placement!=="remote"||!["queued","running","succeeded","failed"].includes(v.status)||!Array.isArray(v.steps)||v.steps.length>64)return invalid8();const steps=v.steps.map((value2)=>{const step=record3(value2);if(typeof step.detailAvailable!=="boolean"||Object.hasOwn(step,"data"))return invalid8();return{...parseRunStep(step),detailAvailable:step.detailAvailable}});if(new Set(steps.map((step)=>step.id)).size!==steps.length)return invalid8();let failure;if(v.failure!==undefined){const f=record3(v.failure);if(v.status!=="failed"||typeof f.message!=="string"||!f.message||f.message.length>512)return invalid8();failure={message:f.message}}if(Object.hasOwn(v,"result")&&v.status!=="succeeded")return invalid8();return{id:v.id,routine:v.routine,placement:"remote",status:v.status,createdAt:time(v.createdAt),...times(v),steps,...Object.hasOwn(v,"result")?{result:bounded(v.result)}:{},...failure?{failure}:{}}}var identifier=/^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/;var uuid2=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?![\s\S])/i;var SUMMARY_BYTES=17*1024*1024;class AppRoutineError extends Error{reason;constructor(reason){super(reason);this.reason=reason;this.name="AppRoutineError"}}var fail3=(reason)=>{throw new AppRoutineError(reason)};function current(context){if(!context.isCurrent()||context.kind==="local"&&context.signal.aborted)fail3("authority_unavailable")}function appDescriptors(){const value=globalThis[Symbol.for("oddington.app.descriptor")];return value?.routines??[]}async function authority(retained=false){const context=await resolveAppContext(retained).catch(()=>fail3("authority_unavailable"));current(context);if(context.kind!=="local"&&(!context.binding||!context.memberId||!identifier.test(context.workspace)||context.workspace.length>63||["auth","api","os","www"].includes(context.workspace)||context.endpoint!==`https://${context.workspace}.oddington.ai`))fail3("authority_unavailable");return context}async function live(context,read2){current(context);if(context.kind==="local")return context;const resolved=await authority(read2);current(context);if(resolved.kind==="local"||resolved.binding!==context.binding||resolved.memberId!==context.memberId||resolved.workspace!==context.workspace||resolved.endpoint!==context.endpoint)fail3("authority_unavailable");return resolved}async function request(key,suffix,init2,maximum=SUMMARY_BYTES,retained,read2=false){if(!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");const context=retained?await live(retained,read2):await authority(read2);current(context);const deadline=new AbortController;const timeout=context.kind==="local"?undefined:setTimeout(()=>deadline.abort(),20000);try{const response2=await(context.kind==="local"?read2?context.requestRetainedRoutine(key,suffix):context.requestRoutine(key,suffix,init2):fetch(`${context.endpoint}/api/routines/${key}/${suffix}`,{...init2,credentials:"omit",redirect:"error",signal:deadline.signal,headers:{authorization:`Bearer ${context.accessToken}`,...init2?.body?{"content-type":"application/json"}:{}}}));if(response2.redirected)fail3("execution_unavailable");const value=await appResponse(response2,maximum,context.kind==="local"?context.signal:deadline.signal);current(context);if(context.kind!=="local")await live(context,read2);if(!response2.ok){if(context.kind!=="local"){const code=value?.code;if(code==="authentication_required"||code==="access_denied")fail3("authority_unavailable");if(code==="input_invalid"||code==="file_not_remote")fail3("invalid_input");if(suffix==="describe"&&(code==="current_deployment_unavailable"||code==="capability_unavailable"))return unavailable4(key,code==="current_deployment_unavailable"?"not_deployed":"capability_unavailable");fail3("execution_unavailable")}const reason=value?.error;if(reason==="authority_unavailable"){if(context.kind==="local")context.invalidate();fail3(reason)}if(reason==="invalid_input"||reason==="execution_unavailable")fail3(reason);fail3("execution_unavailable")}return value}catch(error){current(context);if(error instanceof AppRoutineError)throw error;fail3("execution_unavailable")}finally{clearTimeout(timeout)}}function summary(value,key,context,id3){if(context.kind!=="local"){try{if(!only(value,"id,routine,placement,status,createdAt,startedAt,finishedAt,steps,result,failure")||!Array.isArray(value.steps)||value.steps.some((step)=>!only(step,"id,title,status,startedAt,finishedAt,summary,detailAvailable"))||value.failure!==undefined&&!only(value.failure,"message"))fail3("execution_unavailable");return parseRemoteRun(value,{routine:key,id:id3})}catch{return fail3("execution_unavailable")}}const run=value;if(!only(run,"id,routine,placement,status,createdAt,startedAt,finishedAt,steps,result,failure,publication")||typeof run.id!=="string"||!uuid2.test(run.id)||id3!==undefined&&run.id!==id3||run.routine!==key||run.placement!=="local"||!["queued","running","succeeded","failed"].includes(run.status)||!timestamp(run.createdAt)||!optionalTimes(run)||!Array.isArray(run.steps)||run.steps.length>64||run.steps.some((step)=>!only(step,"id,title,status,startedAt,finishedAt,summary,detailAvailable")||typeof step.detailAvailable!=="boolean"||!validStep(step))||new Set(run.steps.map((step)=>step.id)).size!==run.steps.length||Object.hasOwn(run,"result")&&(run.status!=="succeeded"||!bounded2(run.result))||run.failure!==undefined&&(run.status!=="failed"||!only(run.failure,"message")||!message(run.failure.message))||run.publication!==undefined&&(run.status!=="succeeded"||!validPublication(run.publication)))fail3("execution_unavailable");return run}function only(value,allowed){return!!value&&typeof value==="object"&&!Array.isArray(value)&&Object.keys(value).every((key)=>allowed.split(",").includes(key))}var timestamp=(value)=>typeof value==="string"&&value.length<=32&&Number.isFinite(Date.parse(value));var message=(value)=>typeof value==="string"&&value.length>0&&value.length<=512;var bounded2=(value)=>new TextEncoder().encode(JSON.stringify(value)).byteLength<=256*1024;function optionalTimes(value){return(value.startedAt===undefined||timestamp(value.startedAt))&&(value.finishedAt===undefined||timestamp(value.finishedAt))}function validStep(step){return typeof step.id==="string"&&identifier.test(step.id)&&typeof step.title==="string"&&step.title.length>0&&step.title.length<=256&&["pending","running","completed","failed","skipped"].includes(step.status)&&optionalTimes(step)&&(!Object.hasOwn(step,"summary")||bounded2(step.summary))&&(!Object.hasOwn(step,"data")||bounded2(step.data))}function validPublication(value){return value&&only(value,value.state==="failed"?"state,message":"state")&&(["not_needed","ready","published"].includes(value.state)||value.state==="failed"&&message(value.message))}function jsonInput(value,ancestors=new Set){if(value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"&&Number.isFinite(value))return;if(!value||typeof value!=="object"||ancestors.has(value))return fail3("invalid_input");const array3=Array.isArray(value),keys4=Reflect.ownKeys(value);if(!array3&&![Object.prototype,null].includes(Object.getPrototypeOf(value))||array3&&(keys4.length!==value.length+1||!Array.from({length:value.length},(_,index)=>Object.hasOwn(value,index)).every(Boolean)))return fail3("invalid_input");ancestors.add(value);for(const key of keys4){if(array3&&key==="length")continue;const descriptor=Object.getOwnPropertyDescriptor(value,key);if(typeof key!=="string"||!descriptor.enumerable||!Object.hasOwn(descriptor,"value"))return fail3("invalid_input");jsonInput(descriptor.value,ancestors)}ancestors.delete(value)}function structure(value){return JSON.stringify(value,(_key,item)=>item&&typeof item==="object"&&!Array.isArray(item)?Object.fromEntries(Object.keys(item).sort().map((key)=>[key,item[key]])):item)}function handle(key,id3,context){if(!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");if(typeof id3!=="string"||!uuid2.test(id3))fail3("invalid_input");const read2=async()=>summary(await request(key,`runs/${id3}`,undefined,SUMMARY_BYTES,context,true),key,context,id3);return routineRunHandle({async current(){current(context);return read2()},async step(step){if(typeof step!=="string"||!identifier.test(step))fail3("invalid_input");const value=await request(key,`runs/${id3}/steps/${step}`,undefined,514*1024,context,true);if(context.kind!=="local"){try{if(!only(value,"id,title,status,startedAt,finishedAt,summary,data"))fail3("execution_unavailable");return parseRunStep(value,step)}catch{return fail3("execution_unavailable")}}if(!only(value,"id,title,status,startedAt,finishedAt,summary,data")||value.id!==step||!validStep(value))fail3("execution_unavailable");return value},async publish(){if(context.kind!=="local")fail3("execution_unavailable");return summary(await request(key,`runs/${id3}/publish`,{method:"POST"},SUMMARY_BYTES,context),key,context,id3)}})}function unavailable4(key,reason){const descriptor=appDescriptors().find((item)=>item.id===key);return{...structuredClone(descriptor),connections:descriptor.connections.map((connection)=>({...connection,available:false})),readiness:{state:"unavailable",reason,message:reason==="not_deployed"?"Routine is not deployed.":"Routine capability unavailable."}}}function deployedDescription(value,key){if(!only(value,"id,title,input,connections,steps,readiness")||value.id!==key||value.title!==undefined&&(typeof value.title!=="string"||!value.title.trim()||value.title.length>256)||!only(value.input,"type,properties,required,additionalProperties,items,maxItems,maxLength,minimum,maximum,storage,path,default")||!Array.isArray(value.steps)||value.steps.length>64||value.steps.some((step)=>!only(step,"id,title")||typeof step.title!=="string"||!step.title.trim()||step.title.length>256)||!Array.isArray(value.connections)||value.connections.length>64||value.connections.some((item)=>!only(item,"id,provider,name,available")||typeof item.available!=="boolean"||typeof item.provider!=="string"||!identifier.test(item.provider)||typeof item.name!=="string"||!identifier.test(item.name)||item.id!==`${item.provider}/${item.name}`)||new Set(value.connections.map((item)=>item.id)).size!==value.connections.length)fail3("execution_unavailable");const{default:inputDefault,...input}=value.input;const contract=parseAppRoutineContract({routine:key,input,steps:value.steps.length?value.steps.map(({id:id3})=>({id:id3})):[{id:"inspect"}]});if(Object.hasOwn(value.input,"default"))validateRoutineSchemaValue(contract.input,inputDefault)}async function describeAppRoutine(key){const descriptor=appDescriptors().find((item)=>item.id===key);if(!descriptor)return fail3("authority_unavailable");try{const context=await authority();const value=await request(key,"describe",undefined,1024*1024,context);if(context.kind!=="local")deployedDescription(value,key);if(!only(value,"id,title,input,connections,steps,readiness")||!value.readiness||!Array.isArray(value.connections)||context.kind==="local"&&structure({...value,readiness:undefined,connections:value.connections.map(({available,...item})=>item)})!==structure(descriptor)||value.connections.some((item)=>typeof item.available!=="boolean")||!(value.readiness.state==="ready"&&only(value.readiness,"state,placement")&&value.readiness.placement===(context.kind==="local"?"local":"remote")||value.readiness.state==="unavailable"&&only(value.readiness,"state,reason,message")&&["not_deployed","definition_invalid","capability_unavailable"].includes(value.readiness.reason)&&message(value.readiness.message)))fail3("execution_unavailable");return value}catch{return unavailable4(key,"capability_unavailable")}}function appRoutineBinding(key){if(typeof key!=="string"||!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");return Object.freeze({describe:()=>describeAppRoutine(key),async run(...args){if(args.length>1)fail3("invalid_input");let encoded;try{if(args[0]===undefined)encoded="{}";else{jsonInput(args[0]);const input=JSON.stringify(args[0]);if(new TextEncoder().encode(input).byteLength>256*1024)fail3("invalid_input");encoded=`{"input":${input}}`}}catch{return fail3("invalid_input")}const context=await authority();if(context.kind!=="local")encoded=JSON.stringify({...JSON.parse(encoded),startKey:crypto.randomUUID()});const run=summary(await request(key,"runs",{method:"POST",body:encoded},SUMMARY_BYTES,context),key,context);return handle(key,run.id,context)},runs:Object.freeze({async list(){const context=await authority(true);const value=await request(key,"runs",undefined,20*SUMMARY_BYTES,context,true);if(!Array.isArray(value)||value.length>20)return fail3("execution_unavailable");const runs=value.map((run)=>summary(run,key,context));if(new Set(runs.map((run)=>run.id)).size!==runs.length)fail3("execution_unavailable");return runs},async get(id3){if(typeof id3!=="string"||!uuid2.test(id3))fail3("invalid_input");if(!identifier.test(key)||!appDescriptors().some((item)=>item.id===key))fail3("authority_unavailable");return handle(key,id3,await authority(true))}})})}var app=Object.freeze({listRoutines:()=>Promise.all(appDescriptors().map(({id:id3})=>describeAppRoutine(id3))),routine:appRoutineBinding,routines:new Proxy(Object.create(null),{get(_target,key){if(typeof key!=="string"||!appDescriptors().some((item)=>item.id===key))return;return appRoutineBinding(key)},set:()=>false,defineProperty:()=>false,deleteProperty:()=>false})});init_inbox_contract();init_inbox_contract();init_inbox_contract();init_inbox_files();init_inbox_contract();init_inbox_contract();init_files_contract();var PREPARED_RECORD_INPUT_LIMIT=64*1024*1024;function routineDataEnvelope(command){return"preflight"in command?{operation:"changes.validate",captured:command.preflight}:("apply"in command)?{operation:"changes.publish",captured:command.apply}:{operation:"changes.publish",request:command}}function routinePublicationClient(options={}){const environment=typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?{}:typeof process==="undefined"?{}:process.env;const installed2=routineTransport();const local2=installed2?.request??localRoutineRequest(environment);const workspace=installed2?"installed":options.workspace??environment.OS_ROUTINE_WORKSPACE;const capability=options.capability??environment.OS_ROUTINE_RUN;if(!workspace||!/^[a-z0-9][a-z0-9-]*$/.test(workspace)||capability!==undefined&&!/^[0-9a-f]{64}$/.test(capability))throw new Error("A workspace and valid optional routine capability are required");const workingRoot=options.workingRoot??environment.OS_INBOX_WORKING_ROOT??(typeof __OS_BROWSER__!=="undefined"&&__OS_BROWSER__?undefined:typeof process==="undefined"?undefined:process.cwd());const headers=capability?{"x-os-run":capability}:{};const request2=options.request??(capability?async(path,init2)=>{if(path==="/api/data")return fetch(`https://${workspace}.oddington.ai/api/data`,{...init2,redirect:"error"});const origin=`https://${workspace}.oddington.ai`;const target=new URL(path,`${origin}/`);if(workspace.length>63||["auth","www","api","os"].includes(workspace)||target.origin!==origin||target.search||target.hash||target.username||target.password||!/^\/api\/inbox\/(check|publish|resolve|files)$/.test(path)||init2?.method!=="POST")throw new Error("Invalid routine endpoint");return fetch(target,{...init2,redirect:"error"})}:async()=>{throw new Error("Member publication requires a host-supplied request")});async function send3(operation2,body){if(local2)return await local2(operation2,body);const writing=operation2==="records/update";const reading=operation2==="records/read";const response2=await request2(writing||reading?"/api/data":`/api/inbox/${operation2}`,{method:"POST",headers:{"content-type":"application/json",...headers,...writing||reading?{"x-os-workspace":workspace,"x-os-captured-records":"1"}:{}},body:JSON.stringify(writing?routineDataEnvelope(validateRoutineRecordWrite(body)):reading?{operation:"records.select",request:validateRecordRead(body)}:body)});const result2=await response2.json();if(!response2.ok&&operation2==="records/update")throw new RoutineRecordWriteError(result2.error??"Could not confirm routine preparation",result2.effect??"uncertain");if(!response2.ok)throw new Error(result2.error??"Could not confirm routine publication");return result2}const transport={async publish(body){return await send3("publish",body)},async resolve(body){await send3("resolve",body)}};async function readRecords(input){return await send3("records/read",validateRecordRead(input))}return{...createInboxPublisher(transport),readRecords,repository:{readRecords,async writeRecords(input,options2){if(!capability&&!installed2)throw new Error("A trusted routine launch is required");return await send3("records/update",validateRoutineRecordWrite({input,requestKey:options2?.requestKey}))},async updateRecords(input,options2){if(!capability&&!installed2)throw new Error("A trusted routine launch is required");return await send3("records/update",validateRoutineRecordWrite({input:validateRecordUpdate(input),requestKey:options2?.requestKey}))},async deleteRecords(input,options2){if(!capability&&!installed2)throw new Error("A trusted routine launch is required");return await send3("records/update",validateRoutineRecordWrite({input:validateRecordDelete(input),requestKey:options2?.requestKey}))}},files:{async add(value){const input=validateFileAddOptions(value);if(local2)return validateInboxFile(await local2("files/add",input));if(!workingRoot)throw new Error("Inbox file reads require a working root");if(typeof __OS_BROWSER__==="undefined"||!__OS_BROWSER__){const{readInboxPublicationFile:readInboxPublicationFile2}=await Promise.resolve().then(() => (init_inbox_publication_file(),exports_inbox_publication_file));const bytes=await readInboxPublicationFile2(workingRoot,input);const name2=input.name??input.path.split("/").at(-1);const response2=await request2("/api/inbox/files",{method:"POST",headers:{"content-type":"application/octet-stream",...headers,"x-os-file":JSON.stringify({name:name2})},body:Uint8Array.from(bytes).buffer});const result2=await response2.json();if(!response2.ok)throw new Error(result2.error??"Could not retain file");return await verifyInboxFile(bytes,validateInboxFile(result2))}throw new Error("Inbox file reads require a Node working root")}},async check(body){await send3("check",{requestKey:body.requestKey,item:validatePublication(body.item)})}}}export{selection,schema,routinePublicationClient,richTextBlock,respond,resolveAsk,recordsBlock,recordBlock,question,os,inbox,files,fileBlock,file,defineRoutine,defineHandler,data,continueAsk,connections,auth,asksBlock,app,RoutineRecordWriteError,InboxOperationError,InboxContractError,FileOperationError,DataOperationError,BrowserAuthError,AppRoutineError,AirtableOperationError};
|