fimo 0.21.0-staging.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/bundle.json +2 -2
- package/dist/cli/index.js +13 -13
- package/dist/scripts/extract-translations.js +9 -3
- package/dist/scripts/lint-translation-keys.js +8 -2
- package/package.json +10 -19
- package/release.json +2 -2
- package/templates/astro/package.json +2 -2
- package/templates/nextjs/package.json +2 -2
- package/templates/react-router/package.json +3 -3
- package/templates/sveltekit/package.json +2 -2
- package/templates/vite/package.json +3 -3
package/dist/cli/index.js
CHANGED
|
@@ -39,7 +39,7 @@ Expecting one of '${allowedValues.join("', '")}'`);return this._lifeCycleHooks[e
|
|
|
39
39
|
`),this.outputHelp({error:!0}));let config=errorOptions||{},exitCode=config.exitCode||1,code2=config.code||"commander.error";this._exit(exitCode,code2,message)}_parseOptionsEnv(){this.options.forEach(option=>{if(option.envVar&&option.envVar in process8.env){let optionKey=option.attributeName();(this.getOptionValue(optionKey)===void 0||["default","config","env"].includes(this.getOptionValueSource(optionKey)))&&(option.required||option.optional?this.emit(`optionEnv:${option.name()}`,process8.env[option.envVar]):this.emit(`optionEnv:${option.name()}`))}})}_parseOptionsImplied(){let dualHelper=new DualOptions(this.options),hasCustomOptionValue=__name(optionKey=>this.getOptionValue(optionKey)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(optionKey)),"hasCustomOptionValue");this.options.filter(option=>option.implied!==void 0&&hasCustomOptionValue(option.attributeName())&&dualHelper.valueFromOption(this.getOptionValue(option.attributeName()),option)).forEach(option=>{Object.keys(option.implied).filter(impliedKey=>!hasCustomOptionValue(impliedKey)).forEach(impliedKey=>{this.setOptionValueWithSource(impliedKey,option.implied[impliedKey],"implied")})})}missingArgument(name){let message=`error: missing required argument '${name}'`;this.error(message,{code:"commander.missingArgument"})}optionMissingArgument(option){let message=`error: option '${option.flags}' argument missing`;this.error(message,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(option){let message=`error: required option '${option.flags}' not specified`;this.error(message,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(option,conflictingOption){let findBestOptionFromValue=__name(option2=>{let optionKey=option2.attributeName(),optionValue=this.getOptionValue(optionKey),negativeOption=this.options.find(target=>target.negate&&optionKey===target.attributeName()),positiveOption=this.options.find(target=>!target.negate&&optionKey===target.attributeName());return negativeOption&&(negativeOption.presetArg===void 0&&optionValue===!1||negativeOption.presetArg!==void 0&&optionValue===negativeOption.presetArg)?negativeOption:positiveOption||option2},"findBestOptionFromValue"),getErrorMessage=__name(option2=>{let bestOption=findBestOptionFromValue(option2),optionKey=bestOption.attributeName();return this.getOptionValueSource(optionKey)==="env"?`environment variable '${bestOption.envVar}'`:`option '${bestOption.flags}'`},"getErrorMessage"),message=`error: ${getErrorMessage(option)} cannot be used with ${getErrorMessage(conflictingOption)}`;this.error(message,{code:"commander.conflictingOption"})}unknownOption(flag2){if(this._allowUnknownOption)return;let suggestion="";if(flag2.startsWith("--")&&this._showSuggestionAfterError){let candidateFlags=[],command=this;do{let moreFlags=command.createHelp().visibleOptions(command).filter(option=>option.long).map(option=>option.long);candidateFlags=candidateFlags.concat(moreFlags),command=command.parent}while(command&&!command._enablePositionalOptions);suggestion=suggestSimilar(flag2,candidateFlags)}let message=`error: unknown option '${flag2}'${suggestion}`;this.error(message,{code:"commander.unknownOption"})}_excessArguments(receivedArgs){if(this._allowExcessArguments)return;let expected=this.registeredArguments.length,s=expected===1?"":"s",message=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${expected} argument${s} but got ${receivedArgs.length}.`;this.error(message,{code:"commander.excessArguments"})}unknownCommand(){let unknownName=this.args[0],suggestion="";if(this._showSuggestionAfterError){let candidateNames=[];this.createHelp().visibleCommands(this).forEach(command=>{candidateNames.push(command.name()),command.alias()&&candidateNames.push(command.alias())}),suggestion=suggestSimilar(unknownName,candidateNames)}let message=`error: unknown command '${unknownName}'${suggestion}`;this.error(message,{code:"commander.unknownCommand"})}version(str,flags,description){if(str===void 0)return this._version;this._version=str,flags=flags||"-V, --version",description=description||"output the version number";let versionOption=this.createOption(flags,description);return this._versionOptionName=versionOption.attributeName(),this._registerOption(versionOption),this.on("option:"+versionOption.name(),()=>{this._outputConfiguration.writeOut(`${str}
|
|
40
40
|
`),this._exit(0,"commander.version",str)}),this}description(str,argsDescription){return str===void 0&&argsDescription===void 0?this._description:(this._description=str,argsDescription&&(this._argsDescription=argsDescription),this)}summary(str){return str===void 0?this._summary:(this._summary=str,this)}alias(alias){if(alias===void 0)return this._aliases[0];let command=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(command=this.commands[this.commands.length-1]),alias===command._name)throw new Error("Command alias can't be the same as its name");let matchingCommand=this.parent?._findCommand(alias);if(matchingCommand){let existingCmd=[matchingCommand.name()].concat(matchingCommand.aliases()).join("|");throw new Error(`cannot add alias '${alias}' to command '${this.name()}' as already have command '${existingCmd}'`)}return command._aliases.push(alias),this}aliases(aliases2){return aliases2===void 0?this._aliases:(aliases2.forEach(alias=>this.alias(alias)),this)}usage(str){if(str===void 0){if(this._usage)return this._usage;let args=this.registeredArguments.map(arg=>humanReadableArgName(arg));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?args:[]).join(" ")}return this._usage=str,this}name(str){return str===void 0?this._name:(this._name=str,this)}nameFromFilename(filename){return this._name=path52.basename(filename,path52.extname(filename)),this}executableDir(path53){return path53===void 0?this._executableDir:(this._executableDir=path53,this)}helpInformation(contextOptions){let helper=this.createHelp(),context=this._getOutputContext(contextOptions);helper.prepareContext({error:context.error,helpWidth:context.helpWidth,outputHasColors:context.hasColors});let text3=helper.formatHelp(this,helper);return context.hasColors?text3:this._outputConfiguration.stripColor(text3)}_getOutputContext(contextOptions){contextOptions=contextOptions||{};let error=!!contextOptions.error,baseWrite,hasColors,helpWidth;return error?(baseWrite=__name(str=>this._outputConfiguration.writeErr(str),"baseWrite"),hasColors=this._outputConfiguration.getErrHasColors(),helpWidth=this._outputConfiguration.getErrHelpWidth()):(baseWrite=__name(str=>this._outputConfiguration.writeOut(str),"baseWrite"),hasColors=this._outputConfiguration.getOutHasColors(),helpWidth=this._outputConfiguration.getOutHelpWidth()),{error,write:__name(str=>(hasColors||(str=this._outputConfiguration.stripColor(str)),baseWrite(str)),"write"),hasColors,helpWidth}}outputHelp(contextOptions){let deprecatedCallback;typeof contextOptions=="function"&&(deprecatedCallback=contextOptions,contextOptions=void 0);let outputContext=this._getOutputContext(contextOptions),eventContext={error:outputContext.error,write:outputContext.write,command:this};this._getCommandAndAncestors().reverse().forEach(command=>command.emit("beforeAllHelp",eventContext)),this.emit("beforeHelp",eventContext);let helpInformation=this.helpInformation({error:outputContext.error});if(deprecatedCallback&&(helpInformation=deprecatedCallback(helpInformation),typeof helpInformation!="string"&&!Buffer.isBuffer(helpInformation)))throw new Error("outputHelp callback must return a string or a Buffer");outputContext.write(helpInformation),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",eventContext),this._getCommandAndAncestors().forEach(command=>command.emit("afterAllHelp",eventContext))}helpOption(flags,description){return typeof flags=="boolean"?(flags?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(flags=flags??"-h, --help",description=description??"display help for command",this._helpOption=this.createOption(flags,description),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(option){return this._helpOption=option,this}help(contextOptions){this.outputHelp(contextOptions);let exitCode=Number(process8.exitCode??0);exitCode===0&&contextOptions&&typeof contextOptions!="function"&&contextOptions.error&&(exitCode=1),this._exit(exitCode,"commander.help","(outputHelp)")}addHelpText(position,text3){let allowedValues=["beforeAll","before","after","afterAll"];if(!allowedValues.includes(position))throw new Error(`Unexpected value for position to addHelpText.
|
|
41
41
|
Expecting one of '${allowedValues.join("', '")}'`);let helpEvent=`${position}Help`;return this.on(helpEvent,context=>{let helpStr;typeof text3=="function"?helpStr=text3({error:context.error,command:context.command}):helpStr=text3,helpStr&&context.write(`${helpStr}
|
|
42
|
-
`)}),this}_outputHelpIfRequested(args){let helpOption=this._getHelpOption();helpOption&&args.find(arg=>helpOption.is(arg))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function incrementNodeInspectorPort(args){return args.map(arg=>{if(!arg.startsWith("--inspect"))return arg;let debugOption,debugHost="127.0.0.1",debugPort="9229",match;return(match=arg.match(/^(--inspect(-brk)?)$/))!==null?debugOption=match[1]:(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(debugOption=match[1],/^\d+$/.test(match[3])?debugPort=match[3]:debugHost=match[3]):(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(debugOption=match[1],debugHost=match[3],debugPort=match[4]),debugOption&&debugPort!=="0"?`${debugOption}=${debugHost}:${parseInt(debugPort)+1}`:arg})}__name(incrementNodeInspectorPort,"incrementNodeInspectorPort");function useColor(){if(process8.env.NO_COLOR||process8.env.FORCE_COLOR==="0"||process8.env.FORCE_COLOR==="false")return!1;if(process8.env.FORCE_COLOR||process8.env.CLICOLOR_FORCE!==void 0)return!0}__name(useColor,"useColor");exports2.Command=Command2;exports2.useColor=useColor}});var require_commander=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/index.js"(exports2){var{Argument:Argument2}=require_argument(),{Command:Command2}=require_command(),{CommanderError:CommanderError2,InvalidArgumentError:InvalidArgumentError2}=require_error(),{Help:Help2}=require_help(),{Option:Option2}=require_option();exports2.program=new Command2;exports2.createCommand=name=>new Command2(name);exports2.createOption=(flags,description)=>new Option2(flags,description);exports2.createArgument=(name,description)=>new Argument2(name,description);exports2.Command=Command2;exports2.Option=Option2;exports2.Argument=Argument2;exports2.Help=Help2;exports2.CommanderError=CommanderError2;exports2.InvalidArgumentError=InvalidArgumentError2;exports2.InvalidOptionArgumentError=InvalidArgumentError2}});import{z}from"zod";function filterUnknownProperties(data2,schema){if(data2==null)return data2;if(schema instanceof z.ZodOptional||schema instanceof z.ZodNullable||schema instanceof z.ZodDefault)return filterUnknownProperties(data2,schema.unwrap());if(schema instanceof z.ZodArray){if(!Array.isArray(data2))return data2;let itemSchema=schema.unwrap();return data2.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z.ZodDiscriminatedUnion){if(typeof data2!="object"||data2===null)return data2;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data2[discriminator],matchingSchema=unionSchema.options.find(option=>{let discriminatorField=option.shape[discriminator];return discriminatorField instanceof z.ZodLiteral?discriminatorField.def.values.includes(discriminatorValue):!1});return matchingSchema?filterUnknownProperties(data2,matchingSchema):data2}if(schema instanceof z.ZodObject){if(typeof data2!="object")return data2;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data2,key)){let fieldSchema=shape[key],fieldValue2=data2[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z.ZodUnknown)for(let[key,value]of Object.entries(data2))key in shape||(result[key]=value);return result}return data2}function createObjectDTO(schema){return{schema,from(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,schema);return schema.safeParse(filtered)},partial(){let partialSchema=schema.partial();return createObjectDTO(partialSchema)},pick(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),picked=schema.pick(mask);return createObjectDTO(picked)},omit(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),omitted=schema.omit(mask);return createObjectDTO(omitted)}}}function createDiscriminatedUnionDTO(schema){return{schema,from(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof z.ZodObject)return createObjectDTO(schema);if(schema instanceof z.ZodDiscriminatedUnion)return createDiscriminatedUnionDTO(schema);throw new Error(`Unsupported schema type: ${schema.constructor.name}. createDTO supports ZodObject and ZodDiscriminatedUnion.`)}var init_create_dto=__esm({"../../packages/api-contracts/dist/esm/utils/create-dto.js"(){"use strict";__name(filterUnknownProperties,"filterUnknownProperties");__name(createObjectDTO,"createObjectDTO");__name(createDiscriminatedUnionDTO,"createDiscriminatedUnionDTO");__name(createDTO,"createDTO")}});import{z as z2}from"zod";function createCursorPageDataSchema(dataSchema){return z2.object({items:z2.array(dataSchema),nextCursor:z2.string().nullable()})}function createCursorPaginatedResponseSchema(dataSchema){return z2.object({data:createCursorPageDataSchema(dataSchema)})}var createResponseSchema,init_response=__esm({"../../packages/api-contracts/dist/esm/utils/response.js"(){"use strict";createResponseSchema=__name(dataSchema=>z2.object({data:dataSchema}),"createResponseSchema");__name(createCursorPageDataSchema,"createCursorPageDataSchema");__name(createCursorPaginatedResponseSchema,"createCursorPaginatedResponseSchema")}});import{z as z3}from"zod";var PaginationQuerySchema,init_pagination=__esm({"../../packages/api-contracts/dist/esm/utils/pagination.js"(){"use strict";PaginationQuerySchema=z3.object({page:z3.coerce.number().int().positive().default(1),limit:z3.coerce.number().int().positive().max(100).default(20)})}});import{z as z4}from"zod";var CommonSchemas,BaseEntitySchema,ProjectRoleKeySchema,ProjectRoleKeyWithSystemSchema,ProjectPrincipalTypeSchema,ProjectStatusSchema,ProjectInviteStatusSchema,PublicationStatusSchema,OrganizationRoleSchema,AssetTypeSchema,TemplateCodeSchema,FieldTypeSchema,CONTENT_INTERNAL_FIELD_NAMES,contentInternalFieldNames,RESERVED_CONTENT_FIELD_NAMES,contentReviewHiddenFieldNames,CONTENT_TYPE_NAME_PATTERN,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION,CONTENT_FIELD_NAME_PATTERN,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION,init_common=__esm({"../../packages/api-contracts/dist/esm/types/common.js"(){"use strict";CommonSchemas={timestamp:z4.coerce.date(),positiveInt:z4.number().int().positive(),nonNegativeInt:z4.number().int().nonnegative()},BaseEntitySchema=z4.object({id:z4.uuid(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),ProjectRoleKeySchema=z4.enum(["full","edit","comment","view"]),ProjectRoleKeyWithSystemSchema=z4.enum(["full","edit","comment","view","agent","schedule"]),ProjectPrincipalTypeSchema=z4.enum(["user","org","orgRole","public","email"]),ProjectStatusSchema=z4.enum(["creating","forking","start_server","created","failed"]),ProjectInviteStatusSchema=z4.enum(["pending","accepted","revoked","expired"]),PublicationStatusSchema=z4.enum(["idle","publishing","published","failed","unpublished"]),OrganizationRoleSchema=z4.enum(["owner","admin","member"]),AssetTypeSchema=z4.enum(["file","folder"]),TemplateCodeSchema=z4.enum(["Free","Premium","Pro"]),FieldTypeSchema=z4.enum(["string","text","richtext","media","number","boolean","date","datetime","json","reference","blocks"]),CONTENT_INTERNAL_FIELD_NAMES=["id","entryId","documentId","locale","__fimo"],contentInternalFieldNames=new Set(CONTENT_INTERNAL_FIELD_NAMES),RESERVED_CONTENT_FIELD_NAMES=[...CONTENT_INTERNAL_FIELD_NAMES,"slug","createdAt","updatedAt"],contentReviewHiddenFieldNames=new Set(RESERVED_CONTENT_FIELD_NAMES),CONTENT_TYPE_NAME_PATTERN=/^[A-Za-z]\w*$/,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter",CONTENT_FIELD_NAME_PATTERN=/^[A-Za-z_]\w*$/,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter or underscore"}});import{z as z5}from"zod";var MB,MAX_DOCUMENT_SIZE_BYTES,MAX_AUDIO_SIZE_BYTES,MAX_IMAGE_SIZE_BYTES,MAX_VIDEO_SIZE_BYTES,MAX_ARCHIVE_SIZE_BYTES,MAX_MODEL_SIZE_BYTES,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES,MODEL_MEDIA_TYPE,AttachmentModelMediaTypeSchema,MODEL_MIME_TYPES,MODEL_RENDER_VIEW_ANGLES,AttachmentModelRenderRequestSchema,AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema,AttachmentModelRenderResponseSchema,AttachmentModelRenderMeterSchema,ATTACHMENT_TYPES,ATTACHMENT_MIME_TYPES,ATTACHMENT_IMAGE_MIME_TYPES,ATTACHMENT_DOCUMENT_MIME_TYPES,ATTACHMENT_ARCHIVE_MIME_TYPES,ATTACHMENT_AUDIO_MIME_TYPES,ATTACHMENT_VIDEO_MIME_TYPES,ATTACHMENT_ACCEPT_EXTENSIONS,ATTACHMENT_ACCEPT_STRING,ATTACHMENT_DROPZONE_ACCEPT,EXTENSION_MIME_TYPES,init_attachments=__esm({"../../packages/api-contracts/dist/esm/types/attachments.js"(){"use strict";MB=1024*1024,MAX_DOCUMENT_SIZE_BYTES=5*MB,MAX_AUDIO_SIZE_BYTES=10*MB,MAX_IMAGE_SIZE_BYTES=20*MB,MAX_VIDEO_SIZE_BYTES=20*MB,MAX_ARCHIVE_SIZE_BYTES=20*MB,MAX_MODEL_SIZE_BYTES=20*MB,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES=20*MB,MODEL_MEDIA_TYPE={GLB:"model/gltf-binary",GLTF:"model/gltf+json",FBX:"model/fbx",OBJ:"model/obj",STL:"model/stl",PLY:"model/ply"},AttachmentModelMediaTypeSchema=z5.enum(MODEL_MEDIA_TYPE),MODEL_MIME_TYPES=Object.values(MODEL_MEDIA_TYPE),MODEL_RENDER_VIEW_ANGLES=[35,125,215,305],AttachmentModelRenderRequestSchema=z5.object({renderId:z5.uuid(),filename:z5.string().min(1).max(255),mediaType:AttachmentModelMediaTypeSchema,modelUrl:z5.url()}),AttachmentModelRenderSuccessSchema=z5.object({status:z5.literal("succeeded"),views:z5.tuple([z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[0]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[1]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[2]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[3]),screenshotUrl:z5.url()})]),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative(),diagnostics:z5.unknown().optional()}),AttachmentModelRenderFailureSchema=z5.object({status:z5.literal("failed"),error:z5.literal("render_failed"),message:z5.string(),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative()}),AttachmentModelRenderResponseSchema=z5.discriminatedUnion("status",[AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema]),AttachmentModelRenderMeterSchema=z5.object({browserElapsedMs:z5.number().nonnegative()}),ATTACHMENT_TYPES=[{mime:"image/png",extensions:[".png"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/jpeg",extensions:[".jpg",".jpeg"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/webp",extensions:[".webp"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/avif",extensions:[".avif"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"application/pdf",extensions:[".pdf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/msword",extensions:[".doc"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extensions:[".docx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-excel",extensions:[".xls"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extensions:[".xlsx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-powerpoint",extensions:[".ppt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extensions:[".pptx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/epub+zip",extensions:[".epub"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.text",extensions:[".odt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.spreadsheet",extensions:[".ods"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.presentation",extensions:[".odp"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/rtf",extensions:[],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/rtf",extensions:[".rtf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/html",extensions:[".html",".htm"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/csv",extensions:[".csv"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/markdown",extensions:[".md",".markdown"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/json",extensions:[".json"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/plain",extensions:[".txt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/zip",extensions:[".zip"],category:"archive",maxSizeBytes:MAX_ARCHIVE_SIZE_BYTES},{mime:"audio/mpeg",extensions:[".mp3"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/wav",extensions:[".wav"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aiff",extensions:[".aiff",".aif"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aac",extensions:[".aac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/ogg",extensions:[".ogg"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/flac",extensions:[".flac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"video/mp4",extensions:[".mp4"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpeg",extensions:[".mpeg",".mpg"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpg",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/quicktime",extensions:[".mov"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mov",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/avi",extensions:[".avi"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/vnd.avi",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-msvideo",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-flv",extensions:[".flv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/webm",extensions:[".webm"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/wmv",extensions:[".wmv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-wmv",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-asf",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/3gpp",extensions:[".3gp"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLB,extensions:[".glb"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLTF,extensions:[".gltf"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.FBX,extensions:[".fbx"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.OBJ,extensions:[".obj"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.STL,extensions:[".stl"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.PLY,extensions:[".ply"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES}],ATTACHMENT_MIME_TYPES=ATTACHMENT_TYPES.map(t2=>t2.mime),ATTACHMENT_IMAGE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="image").map(t2=>t2.mime),ATTACHMENT_DOCUMENT_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="document").map(t2=>t2.mime),ATTACHMENT_ARCHIVE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="archive").map(t2=>t2.mime),ATTACHMENT_AUDIO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="audio").map(t2=>t2.mime),ATTACHMENT_VIDEO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="video").map(t2=>t2.mime),ATTACHMENT_ACCEPT_EXTENSIONS=ATTACHMENT_TYPES.flatMap(t2=>t2.extensions),ATTACHMENT_ACCEPT_STRING=[...ATTACHMENT_ACCEPT_EXTENSIONS,...ATTACHMENT_MIME_TYPES].join(","),ATTACHMENT_DROPZONE_ACCEPT=Object.fromEntries(ATTACHMENT_TYPES.map(t2=>[t2.mime,t2.extensions])),EXTENSION_MIME_TYPES=Object.fromEntries(ATTACHMENT_TYPES.flatMap(t2=>t2.extensions.map(extension=>[extension,t2.mime])))}});import{z as z6}from"zod";var AssetReadRequestSchema,AssetDerivedFileSchema,AssetReadBaseSchema,AssetReadPageSchema,AssetReadQuerySchema,AssetReadResultSchema,init_asset_reading=__esm({"../../packages/api-contracts/dist/esm/types/asset-reading.js"(){"use strict";AssetReadRequestSchema=z6.object({cursor:z6.string().optional(),query:z6.string().trim().min(1).max(500).optional()}).strict().refine(input=>input.cursor===void 0||input.query===void 0,{message:"Use either cursor or query, not both."}),AssetDerivedFileSchema=z6.object({url:z6.url(),mediaType:z6.string(),filename:z6.string()}),AssetReadBaseSchema=z6.object({assetId:z6.uuid(),filename:z6.string(),mediaType:z6.string(),representation:z6.enum(["text","table","document","archive","image","transcript","video","model"]),content:z6.string(),derivedFiles:z6.array(AssetDerivedFileSchema).optional()}),AssetReadPageSchema=AssetReadBaseSchema.extend({mode:z6.literal("page"),start:z6.number().int().nonnegative(),end:z6.number().int().nonnegative(),total:z6.number().int().nonnegative(),nextCursor:z6.string().nullable(),complete:z6.boolean()}),AssetReadQuerySchema=AssetReadBaseSchema.extend({mode:z6.literal("query"),query:z6.string(),source:z6.enum(["original-file","canonical-text","derived-files"]),truncated:z6.boolean()}),AssetReadResultSchema=z6.discriminatedUnion("mode",[AssetReadPageSchema,AssetReadQuerySchema])}});import{z as z7}from"zod";function isValidEnv(env){return typeof env!="string"||env.length===0||env.length>MAX_ENV_LENGTH||env.startsWith("-")||env.startsWith(".")||env.includes("//")||env.includes("--")||env.split("/").some(segment=>segment==="..")?!1:ENV_ID_REGEX.test(env)}function encodeEnvPathSegment(env){return env.replace(/\//g,"--")}function isProductionEnv(env){return env===PRODUCTION_ENV}function fnv1a8(s){let h=2166136261;for(let i=0;i<s.length;i++)h^=s.charCodeAt(i),h=Math.imul(h,16777619);return(h>>>0).toString(16).padStart(8,"0")}function envResourceKey(env){let base=env.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,15),hash=fnv1a8(env);return base?`${base}-${hash}`:hash}function buildTenantApiUrl(projectId,env,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId}-${envResourceKey(env)}.${url.hostname}`,url.toString().replace(/\/$/,"")}var FIMO_CONTENT_API_ENV_KEYS,FIMO_PREVIEW_SCRIPT_ENV_KEYS,FIMO_MANAGED_PROJECT_ENV_KEYS,ENV_ID_REGEX,MAX_ENV_LENGTH,EnvSchema,DEFAULT_ENV,PRODUCTION_ENV,init_env=__esm({"../../packages/api-contracts/dist/esm/types/env.js"(){"use strict";FIMO_CONTENT_API_ENV_KEYS=["FIMO_CONTENT_API_URL","VITE_API_URL","NEXT_PUBLIC_FIMO_API_URL","NUXT_PUBLIC_FIMO_API_URL","PUBLIC_FIMO_API_URL"],FIMO_PREVIEW_SCRIPT_ENV_KEYS=["VITE_PREVIEW_SCRIPT_URL","VITE_FIMO_PREVIEW_SCRIPT_URL","NEXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","NUXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","PUBLIC_FIMO_PREVIEW_SCRIPT_URL","FIMO_PREVIEW_SCRIPT_URL"],FIMO_MANAGED_PROJECT_ENV_KEYS=["FIMO_API_URL","FIMO_API_TOKEN","FIMO_PROJECT_ID","FIMO_ENV","NEXT_PUBLIC_FIMO_ENV","FIMO_AGENT_SESSION","FIMO_DATA_SOURCES",...FIMO_CONTENT_API_ENV_KEYS,...FIMO_PREVIEW_SCRIPT_ENV_KEYS,"VITE_ENABLE_ANALYTICS","VITE_FIMO_BRANCH","VITE_FIMO_IMAGE_HOSTS"],ENV_ID_REGEX=/^[a-zA-Z0-9._/-]+$/,MAX_ENV_LENGTH=255;__name(isValidEnv,"isValidEnv");__name(encodeEnvPathSegment,"encodeEnvPathSegment");EnvSchema=z7.string().min(1,"env must not be empty").max(MAX_ENV_LENGTH,`env must be at most ${MAX_ENV_LENGTH} characters`).refine(isValidEnv,{error:"env must match /^[a-zA-Z0-9._/-]+$/ and must not start with `-`"}),DEFAULT_ENV="main",PRODUCTION_ENV="prod";__name(isProductionEnv,"isProductionEnv");__name(fnv1a8,"fnv1a8");__name(envResourceKey,"envResourceKey");__name(buildTenantApiUrl,"buildTenantApiUrl")}});import{z as z8}from"zod";var PRODUCTION_ENVIRONMENT_KEY,PREVIEW_ENVIRONMENT_KEY,EnvironmentKeySchema,CustomEnvironmentSchema,ResolvedEnvironmentSchema,init_environment=__esm({"../../packages/api-contracts/dist/esm/types/environment.js"(){"use strict";init_env();PRODUCTION_ENVIRONMENT_KEY="production",PREVIEW_ENVIRONMENT_KEY="preview",EnvironmentKeySchema=z8.union([z8.literal(PRODUCTION_ENVIRONMENT_KEY),z8.literal(PREVIEW_ENVIRONMENT_KEY),z8.uuid()]),CustomEnvironmentSchema=z8.object({id:z8.uuid(),projectId:z8.uuid(),name:z8.string().trim().min(1).max(64),branchPatterns:z8.array(z8.string().min(1).max(255)).min(1),description:z8.string().max(255).nullable()}),ResolvedEnvironmentSchema=z8.object({branch:EnvSchema,environment:EnvironmentKeySchema})}});import{z as z9}from"zod";var NOTIFICATION_EVENTS,NotificationAudienceSchema,NotificationEventSchema,init_realtime=__esm({"../../packages/api-contracts/dist/esm/types/realtime.js"(){"use strict";init_env();NOTIFICATION_EVENTS={created:"notifications/created",stateChanged:"notifications/state-changed",unreadChanged:"notifications/unread-changed"},NotificationAudienceSchema=z9.object({projectId:z9.uuid(),userId:z9.string().min(1)}),NotificationEventSchema=z9.discriminatedUnion("type",[z9.object({type:z9.literal(NOTIFICATION_EVENTS.created),payload:NotificationAudienceSchema.extend({notificationId:z9.uuid()})}),z9.object({type:z9.literal(NOTIFICATION_EVENTS.stateChanged),payload:NotificationAudienceSchema.extend({notificationId:z9.uuid()})}),z9.object({type:z9.literal(NOTIFICATION_EVENTS.unreadChanged),payload:NotificationAudienceSchema})])}});import{z as z10}from"zod";function referenceDocumentId(value){if(typeof value=="string")return value;if(value&&typeof value=="object"){let reference=value,hasId=Object.prototype.hasOwnProperty.call(reference,"id"),hasDocumentId=Object.prototype.hasOwnProperty.call(reference,"documentId"),id=reference.id,documentId=reference.documentId;if(hasId&&typeof id!="string"||hasDocumentId&&typeof documentId!="string"||typeof id=="string"&&typeof documentId=="string"&&id!==documentId)return null;if(typeof id=="string")return id;if(typeof documentId=="string")return documentId}return null}function toReferenceValue(value){let documentId=referenceDocumentId(value);return documentId?{documentId}:null}function referenceContentType(value){if(value&&typeof value=="object"&&"contentType"in value){let contentType=value.contentType;return typeof contentType=="string"&&contentType.length>0?contentType:null}return null}function toPolymorphicReferenceValue(value){let documentId=referenceDocumentId(value),contentType=referenceContentType(value);return documentId&&contentType?{contentType,documentId}:null}var referenceValuePreprocess,ReferenceValueSchema,ReferenceInputValueSchema,polymorphicReferenceValuePreprocess,PolymorphicReferenceValueSchema,PolymorphicReferenceInputValueSchema,init_references=__esm({"../../packages/api-contracts/dist/esm/types/references.js"(){"use strict";__name(referenceDocumentId,"referenceDocumentId");__name(toReferenceValue,"toReferenceValue");referenceValuePreprocess=__name(value=>{let reference=toReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"referenceValuePreprocess"),ReferenceValueSchema=z10.preprocess(referenceValuePreprocess,z10.object({documentId:z10.uuid()})),ReferenceInputValueSchema=z10.preprocess(referenceValuePreprocess,z10.union([z10.object({documentId:z10.uuid()}),z10.object({slug:z10.string().min(1)})]));__name(referenceContentType,"referenceContentType");__name(toPolymorphicReferenceValue,"toPolymorphicReferenceValue");polymorphicReferenceValuePreprocess=__name(value=>{let reference=toPolymorphicReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"polymorphicReferenceValuePreprocess"),PolymorphicReferenceValueSchema=z10.preprocess(polymorphicReferenceValuePreprocess,z10.object({contentType:z10.string().min(1),documentId:z10.uuid()})),PolymorphicReferenceInputValueSchema=z10.preprocess(polymorphicReferenceValuePreprocess,z10.union([z10.object({contentType:z10.string().min(1),documentId:z10.uuid()}),z10.object({contentType:z10.string().min(1),slug:z10.string().min(1)})]))}});import{z as z11}from"zod";function isDatetimeInstant(value){return typeof value=="string"&&DATETIME_INSTANT_PATTERN.test(value)&&!Number.isNaN(Date.parse(value))}function rejectLegacyLocaleSettings(field,ctx){"localized"in field&&ctx.addIssue({code:"custom",path:["localized"],message:'Field-level locale settings use "i18n".'})}function rejectFieldI18n(field,ctx){"i18n"in field&&ctx.addIssue({code:"custom",path:["i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}function refineConditions(field,ctx){if(field.showIf!==void 0&&field.showIfAny!==void 0&&ctx.addIssue({code:"custom",path:["showIfAny"],message:'A field declares "showIf" or "showIfAny", never both.'}),Array.isArray(field.showIf)){let fields=field.showIf.map(clause=>clause.field);new Set(fields).size!==fields.length&&ctx.addIssue({code:"custom",path:["showIf"],message:'"showIf" clauses must each name a different field. Use "in" for several values of one field.'})}}function rejectUnsupportedUnique(field,ctx,type){"unique"in field&&!uniqueFieldTypes.has(type)&&ctx.addIssue({code:"custom",path:["unique"],message:UNSUPPORTED_UNIQUE_MESSAGE})}function getConditionDefinition(field){if(field.showIfAny!==void 0)return{key:"showIfAny",clauses:field.showIfAny};if(field.showIf!==void 0)return{key:"showIf",clauses:Array.isArray(field.showIf)?field.showIf:[field.showIf]}}function getConditionValues(clause){return"equals"in clause?[clause.equals]:clause.in}function collectClauseProblems(fieldName,condition,clause,fields,path52){let conditionPath=[...path52,fieldName,condition.key],trigger=fields[clause.field];if(trigger===void 0)return[{path:conditionPath,message:`"${condition.key}" references unknown field "${clause.field}".`}];if(trigger.showIf!==void 0||trigger.showIfAny!==void 0)return[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is conditional too. Conditions are one level deep.`}];if(trigger.type!=="boolean"&&trigger.type!=="number"&&trigger.type!=="string")return[{path:conditionPath,message:`"${condition.key}" can only reference boolean, number, and string fields. "${clause.field}" is a ${trigger.type} field.`}];let triggerOptions=trigger.type==="string"?trigger.options:void 0;if(trigger.type==="string"&&triggerOptions===void 0)return[{path:conditionPath,message:`"${condition.key}" can only reference a string field that declares "options". Add options to "${clause.field}".`}];let values=getConditionValues(clause);if(values.some(value=>typeof value!==trigger.type))return[{path:conditionPath,message:`"${condition.key}" on "${clause.field}" expects a ${trigger.type} value.`}];if(triggerOptions!==void 0){let invalidValues=values.filter(value=>!triggerOptions.includes(value));if(invalidValues.length>0)return invalidValues.map(value=>({path:conditionPath,message:`"${value}" is not one of the options declared by "${clause.field}".`}))}return trigger.editable===!1?[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is not editable.`}]:[]}function collectConditionProblems(fields){let problems=[],walk=__name((currentFields,path52)=>{for(let[fieldName,field]of Object.entries(currentFields)){let condition=getConditionDefinition(field);if(condition!==void 0)for(let clause of condition.clauses)problems.push(...collectClauseProblems(fieldName,condition,clause,currentFields,path52));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path52,fieldName,variant.uid]);else walk(field.schema.fields,[...path52,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path52,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path52,fieldName];visit2({field,path:fieldPath,structuredDepth,insideStructuredContent});let nextDepth=structuredDepth+1;if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...fieldPath,variant.uid],nextDepth,!0);else walk(field.schema.fields,fieldPath,nextDepth,!0)}},"walk");walk(fields,[],0,!1)}var UNIQUE_FIELD_TYPES,DATETIME_INSTANT_PATTERN,DATETIME_INSTANT_MESSAGE,utf8,MAX_STRUCTURED_CONTENT_DEPTH,MAX_BLOCK_VARIANTS,MAX_BLOCK_ITEMS,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES,showIfClauseSchema,commonFieldShape,FIELD_I18N_UNSUPPORTED_MESSAGE,uniqueFieldTypes,UNSUPPORTED_UNIQUE_MESSAGE,scalarFieldSchema,referenceFieldSchema,reservedStructuredContentNames,ContentFieldDefinitionSchema,blockFieldsSchema,blockVariantSchema,fixedBlocksSchema,blocksSchema,blocksFieldSchema,contentFieldDefinitionSchema,init_content_fields=__esm({"../../packages/api-contracts/dist/esm/types/content-fields.js"(){"use strict";init_common();UNIQUE_FIELD_TYPES=["string","text","number","boolean","date"],DATETIME_INSTANT_PATTERN=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d+)?)?([Zz]|[+-]\d{2}:\d{2})$/,DATETIME_INSTANT_MESSAGE="A datetime must be an ISO 8601 instant with a UTC offset, such as 2026-08-13T09:30:00Z.";__name(isDatetimeInstant,"isDatetimeInstant");utf8=new TextEncoder,MAX_STRUCTURED_CONTENT_DEPTH=7,MAX_BLOCK_VARIANTS=40,MAX_BLOCK_ITEMS=200,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES=["_key","_type"],showIfClauseSchema=z11.union([z11.object({field:z11.string().min(1),equals:z11.union([z11.string(),z11.number(),z11.boolean()])}).strict(),z11.object({field:z11.string().min(1),in:z11.array(z11.union([z11.string(),z11.number(),z11.boolean()])).min(1)}).strict()]),commonFieldShape={label:z11.string().min(1).optional(),description:z11.string().optional(),group:z11.union([z11.string().min(1),z11.array(z11.string().min(1)).min(1)]).optional(),editable:z11.boolean().optional(),required:z11.boolean().optional(),default:z11.unknown().optional(),showIf:z11.union([showIfClauseSchema,z11.array(showIfClauseSchema).min(1)]).optional(),showIfAny:z11.array(showIfClauseSchema).min(1).optional()},FIELD_I18N_UNSUPPORTED_MESSAGE='"i18n" is only supported on top-level scalar and reference fields.';__name(rejectLegacyLocaleSettings,"rejectLegacyLocaleSettings");__name(rejectFieldI18n,"rejectFieldI18n");__name(refineConditions,"refineConditions");uniqueFieldTypes=new Set(UNIQUE_FIELD_TYPES),UNSUPPORTED_UNIQUE_MESSAGE=`"unique" is only supported on ${UNIQUE_FIELD_TYPES.join(", ")} fields.`;__name(rejectUnsupportedUnique,"rejectUnsupportedUnique");scalarFieldSchema=z11.object({...commonFieldShape,type:z11.enum(["string","text","richtext","media","number","boolean","date","datetime","json"]),min:z11.number().optional(),max:z11.number().optional(),minLength:z11.number().int().nonnegative().optional(),maxLength:z11.number().int().nonnegative().optional(),regex:z11.string().optional(),multiple:z11.boolean().optional(),allowedMimeTypes:z11.array(z11.string()).optional(),options:z11.array(z11.string().min(1)).min(1).optional(),unique:z11.boolean().optional(),i18n:z11.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),rejectUnsupportedUnique(field,ctx,field.type);for(let key of["target","targets","many","repeatable","schema"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on ${field.type} fields.`});if(field.type!=="number")for(let key of["min","max"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on number fields.`});if(field.type!=="string"&&field.type!=="text")for(let key of["minLength","maxLength","regex"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on string and text fields.`});field.min!==void 0&&field.max!==void 0&&field.min>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to "min".'});let effectiveMinimumLength=Math.max(field.minLength??0,field.required?1:0);if(field.maxLength!==void 0&&effectiveMinimumLength>field.maxLength&&ctx.addIssue({code:"custom",path:["maxLength"],message:'"maxLength" must be greater than or equal to the minimum required length.'}),field.regex!==void 0)try{new RegExp(field.regex)}catch{ctx.addIssue({code:"custom",path:["regex"],message:'"regex" must be a valid regular expression.'})}if(field.type!=="media")for(let key of["multiple","allowedMimeTypes"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on media fields.`});if(field.type==="datetime"&&field.default!==void 0&&!isDatetimeInstant(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:DATETIME_INSTANT_MESSAGE}),field.type!=="string"&&"options"in field&&ctx.addIssue({code:"custom",path:["options"],message:'"options" is only supported on string fields.'}),field.options!==void 0){new Set(field.options).size!==field.options.length&&ctx.addIssue({code:"custom",path:["options"],message:"Options must be unique."});for(let key of["regex","minLength","maxLength"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported alongside "options".`});field.default!==void 0&&!field.options.includes(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:'"default" must be one of the declared options.'})}}),referenceFieldSchema=z11.object({...commonFieldShape,type:z11.literal("reference"),target:z11.string().regex(CONTENT_TYPE_NAME_PATTERN).optional(),targets:z11.array(z11.string().regex(CONTENT_TYPE_NAME_PATTERN)).min(1).optional(),many:z11.boolean().optional(),i18n:z11.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),!field.target&&!field.targets&&ctx.addIssue({code:"custom",path:["target"],message:'Reference fields must declare "target" or "targets".'}),field.target&&field.targets&&ctx.addIssue({code:"custom",path:["targets"],message:'A reference field declares "target" or "targets", never both.'}),field.targets&&new Set(field.targets).size!==field.targets.length&&ctx.addIssue({code:"custom",path:["targets"],message:"Reference targets must be unique."});for(let key of["repeatable","schema","min","max","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on reference fields.`})}),reservedStructuredContentNames=new Set(RESERVED_STRUCTURED_CONTENT_FIELD_NAMES),ContentFieldDefinitionSchema=z11.lazy(()=>contentFieldDefinitionSchema);__name(getConditionDefinition,"getConditionDefinition");__name(getConditionValues,"getConditionValues");__name(collectClauseProblems,"collectClauseProblems");__name(collectConditionProblems,"collectConditionProblems");blockFieldsSchema=z11.record(z11.string(),ContentFieldDefinitionSchema).superRefine((fields,ctx)=>{for(let fieldName of Object.keys(fields))CONTENT_FIELD_NAME_PATTERN.test(fieldName)||ctx.addIssue({code:"custom",path:[fieldName],message:`Field names must use ${CONTENT_FIELD_NAME_PATTERN_DESCRIPTION}.`}),reservedStructuredContentNames.has(fieldName)&&ctx.addIssue({code:"custom",path:[fieldName],message:`"${fieldName}" is reserved structured-content metadata.`}),"unique"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"unique"],message:'"unique" is only supported on top-level fields.'}),"i18n"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}),blockVariantSchema=z11.object({uid:z11.string().regex(CONTENT_TYPE_NAME_PATTERN),label:z11.string().min(1),description:z11.string().optional(),fields:blockFieldsSchema}).strict(),fixedBlocksSchema=z11.object({fields:blockFieldsSchema}).strict(),blocksSchema=z11.object({oneOf:z11.array(blockVariantSchema).min(1).max(MAX_BLOCK_VARIANTS)}).strict().superRefine((schema,ctx)=>{let seen=new Set;for(let[index2,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index2,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=z11.object({...commonFieldShape,type:z11.literal("blocks"),min:z11.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),max:z11.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),schema:z11.union([fixedBlocksSchema,blocksSchema])}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),rejectFieldI18n(field,ctx),refineConditions(field,ctx);let effectiveMinimum=Math.max(field.min??0,field.required?1:0);field.max!==void 0&&effectiveMinimum>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to the minimum number of blocks.'});for(let key of["target","targets","many","repeatable","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on blocks fields.`})}),contentFieldDefinitionSchema=z11.discriminatedUnion("type",[scalarFieldSchema,referenceFieldSchema,blocksFieldSchema]);__name(isBlocksUnion,"isBlocksUnion");__name(walkContentFields,"walkContentFields")}});import{z as z12}from"zod";var AUDIT_ACTIONS,AuditActionSchema,AUDIT_OUTCOMES,AuditOutcomeSchema,AUDIT_ACTOR_KINDS,AuditActorKindSchema,init_audit_log=__esm({"../../packages/api-contracts/dist/esm/types/audit-log.js"(){"use strict";AUDIT_ACTIONS=["env_create","env_delete","env_sync","capability_check","shell_exec","git_push","git_tag","git_merge","fimo_deploy","merge_decision","session_start","session_end","cost_breach","trigger_fire","schedule_notification_change","notification_preference_change","cutover_step","agent_delegate","version_restore","ops_access_change","ops_service_token_change","ops_project_search","ops_project_inspect","ops_project_chat_read","ops_recent_chat_read","ops_sentry_issue_change","ops_sentry_read","ops_logs_read","ops_trace_read","ops_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_agent_provider_errors_read","ops_project_snapshot","ops_project_file_read","ops_project_file_write","ops_support_thread_read","ops_support_report_read","ops_support_report_change","ops_billing_read","ops_billing_cache_invalidate","ops_billing_legacy_premium_enroll","ops_billing_plan_transition_notices","ops_customer_registry_change","ops_investigation_change","ops_known_issue_change","ops_validation_record","ops_notification_preview","ops_notification_approve","ops_notification_send","ops_project_operation","ops_project_publish","admin_resource_read","merge_force"],AuditActionSchema=z12.enum(AUDIT_ACTIONS),AUDIT_OUTCOMES=["success","denied","error"],AuditOutcomeSchema=z12.enum(AUDIT_OUTCOMES),AUDIT_ACTOR_KINDS=["user","agent","system"],AuditActorKindSchema=z12.enum(AUDIT_ACTOR_KINDS)}});import{z as z13}from"zod";var OPS_BACKEND_PROFILES,OpsBackendProfileSchema,OPS_PERMISSIONS,OpsPermissionSchema,OPS_PERMISSION_PRESETS,OPS_SERVICE_PERMISSION_PRESETS,OpsAccessGrantInputSchema,OpsServiceTokenInputSchema,OpsCustomerProjectInputSchema,OPS_INVESTIGATION_STATUSES,OpsInvestigationStatusSchema,OpsInvestigationCreateInputSchema,OpsInvestigationUpdateInputSchema,OPS_KNOWN_ISSUE_STATUSES,OpsKnownIssueStatusSchema,OpsKnownIssueCreateInputSchema,OpsKnownIssueUpdateInputSchema,OPS_VALIDATION_OUTCOMES,OpsValidationOutcomeSchema,OpsValidationRunInputSchema,OpsNotificationPreviewInputSchema,OpsPylonIssueIdSchema,OpsPylonReasonSchema,OpsPylonMessageSchema,OpsPylonMessageIdSchema,OpsPylonEmailListSchema,OpsPylonResolveInputSchema,OpsPylonNoteInputSchema,OpsPylonReplyPreviewInputSchema,OpsSentryIssueIdSchema,OpsSentryResolveInputSchema,OpsTraceIdSchema,OpsTraceReadInputSchema,OpsBraintrustSpanIdSchema,OpsAgentInvocationStatusSchema,OpsAgentTraceListInputSchema,OpsAgentTraceSpansInputSchema,OpsSpanBodyEdgeSchema,OpsAgentTraceSpanInputSchema,OpsAgentTraceMessagesInputSchema,OpsAgentHealthGroupBySchema,OpsAgentHealthInputSchema,OpsAgentTraceStatsGroupBySchema,OpsSpanTypeSchema,OpsAgentTraceStatsInputSchema,OpsAgentProviderErrorsInputSchema,OpsBillingCacheInvalidateInputSchema,OPS_PROJECT_OPERATIONS,OpsProjectOperationKindSchema,ExactVersionSchema,OpsProjectOperationPlanInputSchema,OPS_MIGRATIONS,OpsMigrationIdSchema,OPS_MIGRATION_PLAN_STATUSES,OpsMigrationPlanStatusSchema,OPS_MIGRATION_CHANGE_ACTIONS,OpsMigrationChangeActionSchema,OpsMigrationDryRunInputSchema,OpsProjectFilePathSchema,OpsProjectFileReasonSchema,OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES,OpsProjectPackageManagerInspectInputSchema,OpsProjectFileReadInputSchema,OpsProjectFileGlobInputSchema,OpsProjectFileGrepInputSchema,OpsProjectFileWritePlanInputSchema,OpsProjectFileWriteApplyInputSchema,OpsProjectOperationApplyInputSchema,OpsProjectPublishApplyInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z13.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:project:publish","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:known-issues:write","ops:validations:read","ops:validations:write","ops:audit:read","ops:notification:preview","ops:notification:approve","ops:notification:send"],OpsPermissionSchema=z13.enum(OPS_PERMISSIONS),OPS_PERMISSION_PRESETS={support:["ops:project:read","ops:project:chat:read","ops:support:read","ops:support:write","ops:customers:read","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:validations:read","ops:notification:preview"],engineer:["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:known-issues:write","ops:validations:read","ops:validations:write","ops:audit:read","ops:notification:preview"],full:[...OPS_PERMISSIONS]},OPS_SERVICE_PERMISSION_PRESETS={support:OPS_PERMISSION_PRESETS.support,engineer:OPS_PERMISSION_PRESETS.engineer,full:OPS_PERMISSION_PRESETS.full.filter(permission=>permission!=="ops:notification:approve")},OpsAccessGrantInputSchema=z13.object({permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),enabled:z13.boolean().default(!0)}),OpsServiceTokenInputSchema=z13.object({name:z13.string().trim().min(1).max(120),permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),expiresAt:z13.coerce.date()}).refine(input=>!input.permissions.includes("ops:notification:approve"),{path:["permissions"],message:"Service credentials cannot approve customer notifications"}).refine(input=>input.expiresAt.getTime()>Date.now(),{path:["expiresAt"],message:"Service credential expiry must be in the future"}),OpsCustomerProjectInputSchema=z13.object({importanceReason:z13.string().trim().min(1).max(1e3),ownerUserId:z13.string().trim().min(1).nullable().optional(),framework:z13.string().trim().max(120).nullable().optional(),packageManager:z13.enum(["npm","pnpm","yarn","bun"]).nullable().optional(),notes:z13.string().trim().max(5e3).nullable().optional()}),OPS_INVESTIGATION_STATUSES=["open","investigating","awaiting_approval","resolved","monitoring","closed"],OpsInvestigationStatusSchema=z13.enum(OPS_INVESTIGATION_STATUSES),OpsInvestigationCreateInputSchema=z13.object({projectId:z13.uuid(),title:z13.string().trim().min(1).max(240),userReport:z13.string().trim().max(1e4).nullable().optional()}),OpsInvestigationUpdateInputSchema=z13.object({status:OpsInvestigationStatusSchema.optional(),hypothesis:z13.string().trim().max(1e4).nullable().optional(),outcome:z13.string().trim().max(1e4).nullable().optional(),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).optional()}).refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_KNOWN_ISSUE_STATUSES=["open","monitoring","resolved"],OpsKnownIssueStatusSchema=z13.enum(OPS_KNOWN_ISSUE_STATUSES),OpsKnownIssueCreateInputSchema=z13.object({fingerprint:z13.string().trim().min(1).max(240),title:z13.string().trim().min(1).max(240),description:z13.string().trim().min(1).max(1e4),affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100).default([]),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50).default([]),fixedVersion:z13.string().trim().min(1).max(64).nullable().optional(),workaround:z13.string().trim().min(1).max(1e4).nullable().optional(),status:OpsKnownIssueStatusSchema.default("open")}),OpsKnownIssueUpdateInputSchema=OpsKnownIssueCreateInputSchema.omit({fingerprint:!0}).extend({affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50),status:OpsKnownIssueStatusSchema}).partial().refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_VALIDATION_OUTCOMES=["passed","failed","inconclusive"],OpsValidationOutcomeSchema=z13.enum(OPS_VALIDATION_OUTCOMES),OpsValidationRunInputSchema=z13.object({changeReference:z13.string().trim().min(1).max(500),outcome:OpsValidationOutcomeSchema,summary:z13.string().trim().min(1).max(1e4),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).default([])}),OpsNotificationPreviewInputSchema=z13.object({recipientEmail:z13.email().optional(),subject:z13.string().trim().min(1).max(200).default("An update from Fimo"),message:z13.string().trim().min(1).max(5e3),locale:z13.string().trim().min(2).max(20),reason:z13.string().trim().min(1).max(1e3),acknowledgePolicy:z13.literal(!0)}),OpsPylonIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsPylonReasonSchema=z13.string().trim().min(1).max(1e3),OpsPylonMessageSchema=z13.string().trim().min(1).max(5e3),OpsPylonMessageIdSchema=z13.string().trim().min(1).max(255),OpsPylonEmailListSchema=z13.array(z13.email()).max(50).default([]),OpsPylonResolveInputSchema=z13.object({reason:OpsPylonReasonSchema}),OpsPylonNoteInputSchema=z13.object({message:OpsPylonMessageSchema,reason:OpsPylonReasonSchema}),OpsPylonReplyPreviewInputSchema=z13.object({messageId:OpsPylonMessageIdSchema,message:OpsPylonMessageSchema,toEmails:OpsPylonEmailListSchema,ccEmails:OpsPylonEmailListSchema,bccEmails:OpsPylonEmailListSchema,reason:OpsPylonReasonSchema,acknowledgePolicy:z13.literal(!0)}).refine(input=>input.toEmails.length+input.ccEmails.length+input.bccEmails.length<=50,{message:"At most 50 email recipients are allowed",path:["toEmails"]}),OpsSentryIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsSentryResolveInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OpsTraceIdSchema=z13.string().trim().regex(/^[a-fA-F0-9]{32}$/).transform(value=>value.toLowerCase()),OpsTraceReadInputSchema=z13.object({projectId:z13.uuid(),from:z13.coerce.date(),to:z13.coerce.date(),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.from<=input.to,{path:["from"],message:"from must be before or equal to to"}).refine(input=>input.to.getTime()-input.from.getTime()<=10080*60*1e3,{path:["from"],message:"trace windows cannot exceed 7 days"}),OpsBraintrustSpanIdSchema=z13.string().trim().regex(/^[A-Za-z0-9_-]{1,200}$/),OpsAgentInvocationStatusSchema=z13.enum(["planned","running","finished","cancelled","errored","refused"]),OpsAgentTraceListInputSchema=z13.object({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),agentKey:z13.string().trim().min(1).max(120).optional(),threadId:z13.uuid().optional(),status:OpsAgentInvocationStatusSchema.optional(),since:z13.coerce.date().optional(),minCostUsd:z13.coerce.number().min(0).optional(),tracedOnly:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(100).default(25),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!!(input.projectId||input.organizationId||input.threadId),{path:["projectId"],message:"one of projectId, organizationId, or threadId is required"}),OpsAgentTraceSpansInputSchema=z13.object({limit:z13.coerce.number().int().min(1).max(500).default(200),reason:z13.string().trim().min(1).max(1e3)}),OpsSpanBodyEdgeSchema=z13.enum(["start","end"]).default("start"),OpsAgentTraceSpanInputSchema=z13.object({maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),edge:OpsSpanBodyEdgeSchema,reason:z13.string().trim().min(1).max(1e3)}),OpsAgentTraceMessagesInputSchema=z13.object({messageIndex:z13.coerce.number().int().min(0).optional(),maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),reason:z13.string().trim().min(1).max(1e3)}),OpsAgentHealthGroupBySchema=z13.enum(["agent","status","env","project","day"]),OpsAgentHealthInputSchema=z13.object({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),env:z13.string().trim().min(1).max(64).optional(),agentKey:z13.string().trim().min(1).max(120).optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsAgentTraceStatsGroupBySchema=z13.enum(["model","provider","span","type"]),OpsSpanTypeSchema=z13.enum(["llm","tool","function","task","score","eval"]),OpsAgentTraceStatsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThanSeconds:z13.coerce.number().min(0).optional(),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsAgentProviderErrorsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().optional(),model:z13.string().trim().min(1).max(120).optional(),provider:z13.string().trim().min(1).max(120).optional(),spanType:OpsSpanTypeSchema.optional(),before:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(500),sampleChars:z13.coerce.number().int().min(200).max(2e4).default(1200),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsBillingCacheInvalidateInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OPS_PROJECT_OPERATIONS=["runtime.bump","preview.restart","production.publish"],OpsProjectOperationKindSchema=z13.enum(OPS_PROJECT_OPERATIONS),ExactVersionSchema=z13.string().trim().regex(/^\d+\.\d+\.\d+$/,"Expected an exact version such as 0.11.0"),OpsProjectOperationPlanInputSchema=z13.discriminatedUnion("kind",[z13.object({kind:z13.literal("runtime.bump"),targetVersion:ExactVersionSchema}),z13.object({kind:z13.literal("preview.restart")})]),OPS_MIGRATIONS=["project.v3-to-v4"],OpsMigrationIdSchema=z13.enum(OPS_MIGRATIONS),OPS_MIGRATION_PLAN_STATUSES=["applicable","not_applicable","unknown"],OpsMigrationPlanStatusSchema=z13.enum(OPS_MIGRATION_PLAN_STATUSES),OPS_MIGRATION_CHANGE_ACTIONS=["create","rewrite","delete"],OpsMigrationChangeActionSchema=z13.enum(OPS_MIGRATION_CHANGE_ACTIONS),OpsMigrationDryRunInputSchema=z13.object({migrationId:OpsMigrationIdSchema,projectEnv:z13.string().trim().min(1).max(255).default("main"),reason:z13.string().trim().min(1).max(1e3)}),OpsProjectFilePathSchema=z13.string().trim().min(1).max(1024),OpsProjectFileReasonSchema=z13.string().trim().min(1).max(1e3),OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES=["pnpm-lock.yaml","bun.lockb","bun.lock","yarn.lock","package-lock.json"],OpsProjectPackageManagerInspectInputSchema=z13.object({reason:OpsProjectFileReasonSchema}),OpsProjectFileReadInputSchema=z13.object({path:OpsProjectFilePathSchema,reason:OpsProjectFileReasonSchema}),OpsProjectFileGlobInputSchema=z13.object({pattern:z13.string().min(1).max(300).optional(),limit:z13.coerce.number().int().min(1).max(2e3).default(2e3),reason:OpsProjectFileReasonSchema}),OpsProjectFileGrepInputSchema=z13.object({pattern:z13.string().min(1).max(200),include:z13.string().min(1).max(300).optional(),caseInsensitive:z13.boolean().default(!1),maxMatches:z13.coerce.number().int().min(1).max(200).default(100),reason:OpsProjectFileReasonSchema}),OpsProjectFileWritePlanInputSchema=z13.object({path:OpsProjectFilePathSchema,content:z13.string().max(256*1024),overwrite:z13.boolean().default(!1),reason:OpsProjectFileReasonSchema}),OpsProjectFileWriteApplyInputSchema=OpsProjectFileWritePlanInputSchema.extend({planHash:z13.string().trim().length(64),consentReference:z13.string().trim().min(1).max(200).optional()}),OpsProjectOperationApplyInputSchema=z13.intersection(OpsProjectOperationPlanInputSchema,z13.object({planHash:z13.string().trim().length(64),reason:z13.string().trim().min(1).max(1e3),consentReference:z13.string().trim().min(1).max(200).optional()})),OpsProjectPublishApplyInputSchema=z13.object({planHash:z13.string().trim().length(64),reason:z13.string().trim().min(1).max(1e3),consentReference:z13.string({error:"Publishing on a customer's behalf requires a recorded consent reference"}).trim().min(1).max(200)})}});import{z as z14}from"zod";function getChatFormOptionLabels(body){switch(body.type){case"choices":return body.actions.map(action=>action.label);case"cards":return body.items.map(item=>item.title);case"table":return body.rows.map(row2=>row2.cells[0]??"");case"assets":return body.items.map(item=>item.label??item.alt);case"capabilities":return body.items.map(item=>item.label);case"text":return[]}}var BlockSayActionSchema,BlockActionSchema,BlockAppActionSchema,BlockBaseSchema,ChoicesBlockSchema,TableRowTargetSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,ChatDisplayBlockSchema,TextBlockSchema,ChatFormStepIdSchema,CapabilityRequestSchema,CapabilitiesBlockSchema,ChatFormBodySchema,ChatFormStepSchema,FormBlockSchema,ChatBlockSchema,ChatBlockToolInputSchema,ChatFormAnswerItemSchema,ChatFormAnswerMetadataSchema,QUESTION_FORM_CONTRACT_VERSION,QuestionFormSnapshotSchema,QuestionFormAnswerSnapshotSchema,ChatFormResponseSchema,init_chat_block=__esm({"../../packages/api-contracts/dist/esm/types/chat-block.js"(){"use strict";BlockSayActionSchema=z14.object({kind:z14.literal("say"),label:z14.string().trim().min(1).max(40,"Button labels must be 40 characters or fewer."),description:z14.string().min(1).max(240).optional(),message:z14.string().trim().min(1,"Every say button needs the sentence the user is saying by clicking.").max(2e3),style:z14.enum(["primary","default","ghost"]).optional()}),BlockActionSchema=BlockSayActionSchema,BlockAppActionSchema=z14.discriminatedUnion("command",[z14.object({kind:z14.literal("app"),command:z14.literal("publish")}).strict(),z14.object({kind:z14.literal("app"),command:z14.literal("connect"),integrationKey:z14.string().trim().min(1).max(80)}).strict()]),BlockBaseSchema=z14.object({fallback:z14.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z14.string().min(1).max(80).optional()}),ChoicesBlockSchema=BlockBaseSchema.extend({type:z14.literal("choices"),text:z14.string().max(500).optional(),actions:z14.array(BlockActionSchema).min(2,"A choices block needs 2 to 4 buttons.").max(4,"A choices block needs 2 to 4 buttons.")}),TableRowTargetSchema=z14.discriminatedUnion("kind",[z14.object({kind:z14.literal("entry"),collection:z14.string().min(1).max(80),entryId:z14.string().min(1).max(120)}),z14.object({kind:z14.literal("asset"),assetId:z14.string().min(1).max(120)}),z14.object({kind:z14.literal("url"),url:z14.url({protocol:/^https$/}).max(2e3)})]),TableBlockSchema=BlockBaseSchema.extend({type:z14.literal("table"),columns:z14.array(z14.object({label:z14.string().min(1).max(24)})).min(2).max(4),rows:z14.array(z14.object({cells:z14.array(z14.string().max(80)).min(2).max(4),target:TableRowTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index2)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index2,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),CardsBlockSchema=BlockBaseSchema.extend({type:z14.literal("cards"),layout:z14.enum(["rail","stack"]).optional(),items:z14.array(z14.object({title:z14.string().min(1).max(60),subtitle:z14.string().min(1).max(120).optional(),imageUrl:z14.url({protocol:/^https$/}).max(2e3).optional(),action:BlockSayActionSchema.optional()})).min(2).max(6)}),EntryBlockSchema=BlockBaseSchema.extend({type:z14.literal("entry"),label:z14.string().min(1).max(80),collection:z14.string().min(1).max(80),entryId:z14.string().min(1).max(120),path:z14.string().min(1).max(120).optional()}),AssetsBlockSchema=BlockBaseSchema.extend({type:z14.literal("assets"),items:z14.array(z14.object({url:z14.url({protocol:/^https$/}).max(2e3),alt:z14.string().min(1).max(120),label:z14.string().min(1).max(60).optional()})).min(1).max(6)}),CalloutBlockSchema=BlockBaseSchema.extend({type:z14.literal("callout"),title:z14.string().min(1).max(80),text:z14.string().min(1).max(240),action:BlockAppActionSchema}).strict(),StatBlockSchema=BlockBaseSchema.extend({type:z14.literal("stat"),items:z14.array(z14.object({label:z14.string().min(1).max(24),value:z14.string().min(1).max(16),delta:z14.string().min(1).max(12).optional(),tone:z14.enum(["up","down","flat"]).optional()})).min(1).max(4)}),ChartBlockSchema=BlockBaseSchema.extend({type:z14.literal("chart"),unit:z14.string().min(1).max(12).optional(),points:z14.array(z14.object({label:z14.string().min(1).max(12),value:z14.number().finite().min(0).max(1e9)})).min(2).max(12)}),ChatDisplayBlockSchema=z14.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema]),TextBlockSchema=BlockBaseSchema.extend({type:z14.literal("text"),placeholder:z14.string().min(1).max(120).optional(),multiline:z14.boolean().optional()}).strict(),ChatFormStepIdSchema=z14.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"Step ids are lowercase letters, digits, hyphen, or underscore (max 40)."),CapabilityRequestSchema=z14.object({id:ChatFormStepIdSchema,token:z14.string().regex(/^[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?$/,"Capability tokens are verb:noun[:qualifier]."),label:z14.string().trim().min(1).max(60),reason:z14.string().trim().min(1).max(240)}).strict(),CapabilitiesBlockSchema=BlockBaseSchema.extend({type:z14.literal("capabilities"),items:z14.array(CapabilityRequestSchema).min(1).max(6)}).strict().superRefine((block,ctx)=>{let duplicate=__name(values=>new Set(values).size!==values.length,"duplicate");duplicate(block.items.map(item=>item.id))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs its own id."}),duplicate(block.items.map(item=>item.token))&&ctx.addIssue({code:"custom",path:["items"],message:"Ask for each capability token once."}),duplicate(block.items.map(item=>item.label))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs a distinct label."})}),ChatFormBodySchema=z14.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,AssetsBlockSchema,TextBlockSchema,CapabilitiesBlockSchema]);__name(getChatFormOptionLabels,"getChatFormOptionLabels");ChatFormStepSchema=z14.object({id:ChatFormStepIdSchema.optional(),question:z14.string().min(1).max(500),header:z14.string().min(1).max(25),body:ChatFormBodySchema,multiSelect:z14.boolean(),recommended:z14.string().min(1).max(80).optional()}).superRefine((step,ctx)=>{let labels2=getChatFormOptionLabels(step.body);labels2.some(label=>!label.trim())&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a visible label."}),new Set(labels2).size!==labels2.length&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a unique label."}),step.recommended&&!labels2.includes(step.recommended)&&ctx.addIssue({code:"custom",path:["recommended"],message:"The recommended option must match a visible option label."}),step.body.type==="capabilities"&&!step.multiSelect&&ctx.addIssue({code:"custom",path:["multiSelect"],message:"A capabilities step is always multi-select: selected is approved, unselected is denied."})}),FormBlockSchema=BlockBaseSchema.extend({type:z14.literal("form"),steps:z14.array(ChatFormStepSchema).min(1).max(4)}),ChatBlockSchema=z14.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,FormBlockSchema]),ChatBlockToolInputSchema=z14.object({block:ChatBlockSchema}),ChatFormAnswerItemSchema=z14.object({stepId:ChatFormStepIdSchema.optional(),header:z14.string().min(1).max(25),question:z14.string().min(1).max(500),answer:z14.string().min(1),selectedLabels:z14.array(z14.string().min(1).max(120)).max(8),freeText:z14.string(),skipped:z14.boolean()}),ChatFormAnswerMetadataSchema=z14.object({toolCallId:z14.string().max(255).optional(),shortTitle:z14.string().max(80).optional(),questions:z14.array(ChatFormAnswerItemSchema).max(4)}),QUESTION_FORM_CONTRACT_VERSION=1,QuestionFormSnapshotSchema=z14.object({version:z14.literal(QUESTION_FORM_CONTRACT_VERSION),block:FormBlockSchema}).strict(),QuestionFormAnswerSnapshotSchema=z14.object({version:z14.literal(QUESTION_FORM_CONTRACT_VERSION),answer:ChatFormAnswerMetadataSchema}).strict(),ChatFormResponseSchema=ChatFormAnswerMetadataSchema.extend({toolCallId:z14.string().min(1).max(255)})}});import{z as z15}from"zod";var FIMO_CONFIG_PATH,LEGACY_FIMO_CONFIG_PATHS,ALL_FIMO_CONFIG_PATHS,FimoFrameworkSchema,FimoRuntimeCommandsSchema,FimoRuntimeConfigSchema,FimoHostingConditionSchema,conditionFields,FimoHostingRewriteSchema,FimoHostingRedirectSchema,FimoHostingHeaderSchema,FimoHostingConfigSchema,FimoAppConfigSchema,init_fimo_config=__esm({"../../packages/api-contracts/dist/esm/types/fimo-config.js"(){"use strict";FIMO_CONFIG_PATH=".fimo/config.json",LEGACY_FIMO_CONFIG_PATHS=["fimo-config.json","fimo.config.json"],ALL_FIMO_CONFIG_PATHS=[FIMO_CONFIG_PATH,...LEGACY_FIMO_CONFIG_PATHS],FimoFrameworkSchema=z15.enum(["astro","nextjs","nuxtjs","react-router","remix","sveltekit","vite","vue"]),FimoRuntimeCommandsSchema=z15.object({dev:z15.string().trim().min(1).optional(),build:z15.string().trim().min(1).optional(),install:z15.string().trim().min(1).optional()}).strict(),FimoRuntimeConfigSchema=z15.object({framework:FimoFrameworkSchema.optional(),outputDirectory:z15.string().trim().min(1).optional(),commands:FimoRuntimeCommandsSchema.optional()}).strict(),FimoHostingConditionSchema=z15.object({type:z15.enum(["header","cookie","query","host"]),key:z15.string().min(1).optional(),value:z15.string().min(1).optional()}).strict().superRefine((condition,context)=>{if(condition.type==="host"){condition.key!==void 0&&context.addIssue({code:"custom",path:["key"],message:"A host condition takes no key."}),condition.value===void 0&&context.addIssue({code:"custom",path:["value"],message:"A host condition needs a value."});return}condition.key===void 0&&context.addIssue({code:"custom",path:["key"],message:`A ${condition.type} condition needs the key it matches on.`})}),conditionFields={has:z15.array(FimoHostingConditionSchema).min(1).optional(),missing:z15.array(FimoHostingConditionSchema).min(1).optional()},FimoHostingRewriteSchema=z15.object({source:z15.string().min(1),destination:z15.string().min(1),...conditionFields}),FimoHostingRedirectSchema=z15.object({source:z15.string().min(1),destination:z15.string().min(1),permanent:z15.boolean().optional(),statusCode:z15.union([z15.literal(301),z15.literal(302),z15.literal(307),z15.literal(308)]).optional(),...conditionFields}),FimoHostingHeaderSchema=z15.object({source:z15.string().min(1),headers:z15.array(z15.object({key:z15.string().min(1),value:z15.string()})).min(1),...conditionFields}),FimoHostingConfigSchema=z15.object({rewrites:z15.array(FimoHostingRewriteSchema).optional(),redirects:z15.array(FimoHostingRedirectSchema).optional(),headers:z15.array(FimoHostingHeaderSchema).optional(),cleanUrls:z15.boolean().optional(),trailingSlash:z15.boolean().optional()}).strict(),FimoAppConfigSchema=z15.object({runtime:FimoRuntimeConfigSchema.optional(),hosting:FimoHostingConfigSchema.optional()}).passthrough().superRefine((config,context)=>{Object.hasOwn(config,"framework")&&context.addIssue({code:"custom",path:["framework"],message:"Use runtime.framework instead of the top-level framework field."})})}});function pageRouteParamNames(path52){return[...path52.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path52){return pageRouteParamNames(path52).filter(param=>!LOCALE_PARAM_NAME.test(param))}function parsePageParamExpression(expression){let match=PARAM_EXPRESSION.exec(expression);return match?{param:match[1],field:match[2]}:null}function fieldValue(entry,fieldPath){let value=entry;for(let segment of fieldPath.split(".")){if(!value||typeof value!="object"||Array.isArray(value))return;value=value[segment]}return value}function queryValue(value){if(Array.isArray(value))return value.map(queryValue);if(value&&typeof value=="object"){let record=value;return typeof record.id=="string"?record.id:Object.fromEntries(Object.entries(record).map(([key,item])=>[key,queryValue(item)]))}return value===void 0?null:value}function resolveValue(value,params){if(typeof value=="string"&&value.startsWith("$params.")){let parsed=parsePageParamExpression(value);if(!parsed)return{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param:"",field:""}};let{param,field}=parsed,entry=params[param];if(!entry)return{ok:!1,error:{code:"PAGE_PARAM_NOT_SELECTED",expression:value,param,field}};let resolved=fieldValue(entry,field);return resolved==null||resolved===""?{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param,field}}:{ok:!0,value:queryValue(resolved)}}if(Array.isArray(value)){let resolved=[];for(let item of value){let result=resolveValue(item,params);if(!result.ok)return result;resolved.push(result.value)}return{ok:!0,value:resolved}}if(value&&typeof value=="object"){let resolved={};for(let[key,item]of Object.entries(value)){let result=resolveValue(item,params);if(!result.ok)return result;resolved[key]=result.value}return{ok:!0,value:resolved}}return{ok:!0,value}}function resolvePageSourceQuery(query={},params){let resolved=resolveValue(query,params);return resolved.ok?{ok:!0,query:resolved.value}:resolved}function pageSourceParamExpressions(value){return typeof value=="string"?value.startsWith("$params.")?[value]:[]:Array.isArray(value)?value.flatMap(pageSourceParamExpressions):value&&typeof value=="object"?Object.values(value).flatMap(pageSourceParamExpressions):[]}var LOCALE_PARAM_NAME,PARAM_EXPRESSION,init_page_sources=__esm({"../../packages/api-contracts/dist/esm/types/page-sources.js"(){"use strict";LOCALE_PARAM_NAME=/^(locale|lang|language)$/i;__name(pageRouteParamNames,"pageRouteParamNames");__name(pageContentParamNames,"pageContentParamNames");PARAM_EXPRESSION=/^\$params\.([A-Za-z_][\w-]*)\.([A-Za-z_][\w.-]*)$/;__name(parsePageParamExpression,"parsePageParamExpression");__name(fieldValue,"fieldValue");__name(queryValue,"queryValue");__name(resolveValue,"resolveValue");__name(resolvePageSourceQuery,"resolvePageSourceQuery");__name(pageSourceParamExpressions,"pageSourceParamExpressions")}});import{z as z16}from"zod";var PROJECT_CHAT_MANUAL_MODEL_IDS,ProjectChatManualModelIdSchema,ProjectDTOSchema,ProjectDTO,ProjectWithPlanDTOSchema,ProjectWithPlanDTO,ProjectSummaryDTOSchema,ProjectSummaryDTO,ProjectUserDTOSchema,ProjectUserDTO,ProjectFileDTOSchema,ProjectFileDTO,ProjectChatMessageRole,ProjectMessageBaseSchema,MessageUserMetadataSchema,ProjectMessagePublicDTOSchema,ProjectMessagePublicDTO,ProjectMessageDTOSchema,ProjectVersionDTOSchema,ProjectVersionDTO,ProjectHistoryUsageDTOSchema,ProjectVersionPageDTOSchema,ProjectVersionPageDTO,ProjectHistorySummaryDTOSchema,ProjectHistorySummaryDTO,ProjectDocumentContentDTOSchema,ProjectDocumentContentDTO,ProjectListResponseSchema,ProjectVersionResponseSchema,ProjectVersionPageResponseSchema,ProjectHistorySummaryResponseSchema,VersionMutationResponseSchema,ProjectPublicationStateDTOSchema,ProjectPublicationStateDTO,PublishProjectRequestSchema,PublicationMutationDTOSchema,PublicationMutationDTO,ProjectPublicationStateResponseSchema,PublicationMutationResponseSchema,ProjectResponseSchema,ProjectWithPlanResponseSchema,init_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project.dto.js"(){"use strict";init_chat_block();init_common();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","xai/grok-4.6","google/gemini-3.1-pro-preview","google/gemini-3.7-flash","google/gemini-3.6-flash","google/gemini-3.5-flash-lite","zai/glm-5.2","deepseek/deepseek-v4-pro","minimax/minimax-m3","moonshotai/kimi-k3"],ProjectChatManualModelIdSchema=z16.enum(PROJECT_CHAT_MANUAL_MODEL_IDS),ProjectDTOSchema=BaseEntitySchema.extend({name:z16.string(),displayName:z16.string().nullable(),subdomain:z16.string().nullable().optional(),subdomainUpdatedAt:z16.date().nullable().optional(),organizationId:z16.string().nullable(),createdBy:z16.string().nullable(),previewEnabled:z16.boolean().default(!0),enabledChatModels:z16.array(ProjectChatManualModelIdSchema).nullable().default(null),status:ProjectStatusSchema,creationStatus:z16.string(),thumbnailUrl:z16.string().nullable(),publishedThumbnailUrl:z16.string().nullable(),category:z16.string().nullable(),appUrl:z16.string().nullable(),lastPublishedAt:z16.coerce.date()}),ProjectDTO=createDTO(ProjectDTOSchema),ProjectWithPlanDTOSchema=ProjectDTOSchema.extend({planTier:z16.string().nullable()}),ProjectWithPlanDTO=createDTO(ProjectWithPlanDTOSchema),ProjectSummaryDTOSchema=z16.object({id:z16.uuid(),name:z16.string(),displayName:z16.string().nullable(),thumbnailUrl:z16.string().nullable(),category:z16.string().nullable()}),ProjectSummaryDTO=createDTO(ProjectSummaryDTOSchema),ProjectUserDTOSchema=z16.object({id:z16.string(),name:z16.string(),avatar:z16.string().nullable(),color:z16.object({bg:z16.string(),text:z16.string()})}),ProjectUserDTO=createDTO(ProjectUserDTOSchema),ProjectFileDTOSchema=z16.object({path:z16.string(),content:z16.string()}),ProjectFileDTO=createDTO(ProjectFileDTOSchema),ProjectChatMessageRole=z16.enum(["user","assistant","system"]),ProjectMessageBaseSchema=z16.object({id:z16.string(),messageId:z16.string(),versionId:z16.string().nullable(),role:ProjectChatMessageRole,parts:z16.array(z16.any()),createdAt:z16.coerce.date()}),MessageUserMetadataSchema=z16.object({id:z16.string(),name:z16.string().nullable().optional(),image:z16.string().nullable().optional()}).nullable().optional(),ProjectMessagePublicDTOSchema=ProjectMessageBaseSchema.extend({credits:z16.number(),metadata:z16.object({user:MessageUserMetadataSchema,changeManifest:z16.array(z16.any()).optional(),questionAnswer:ChatFormAnswerMetadataSchema.optional()}).nullable().optional()}),ProjectMessagePublicDTO=createDTO(ProjectMessagePublicDTOSchema),ProjectMessageDTOSchema=ProjectMessagePublicDTOSchema,ProjectVersionDTOSchema=z16.object({versionId:z16.uuid(),commitHash:z16.string(),name:z16.string(),description:z16.string().nullable(),kind:z16.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),createdAt:CommonSchemas.timestamp,expiresAt:CommonSchemas.timestamp}),ProjectVersionDTO=createDTO(ProjectVersionDTOSchema),ProjectHistoryUsageDTOSchema=z16.object({versionCount:z16.number().int().nonnegative(),snapshotBytes:z16.number().int().nonnegative()}),ProjectVersionPageDTOSchema=createCursorPageDataSchema(ProjectVersionDTOSchema),ProjectVersionPageDTO=createDTO(ProjectVersionPageDTOSchema),ProjectHistorySummaryDTOSchema=z16.object({usage:ProjectHistoryUsageDTOSchema,retentionDays:z16.number().int().positive()}),ProjectHistorySummaryDTO=createDTO(ProjectHistorySummaryDTOSchema),ProjectDocumentContentDTOSchema=z16.object({content:z16.string()}),ProjectDocumentContentDTO=createDTO(ProjectDocumentContentDTOSchema),ProjectListResponseSchema=createResponseSchema(z16.array(ProjectDTOSchema)),ProjectVersionResponseSchema=createResponseSchema(ProjectVersionDTOSchema),ProjectVersionPageResponseSchema=createCursorPaginatedResponseSchema(ProjectVersionDTOSchema),ProjectHistorySummaryResponseSchema=createResponseSchema(ProjectHistorySummaryDTOSchema),VersionMutationResponseSchema=createResponseSchema(z16.object({success:z16.boolean(),message:z16.string().optional(),warning:z16.string().optional(),durationMs:z16.number().int().nonnegative().optional()})),ProjectPublicationStateDTOSchema=z16.object({isPublished:z16.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z16.string().nullable()}),ProjectPublicationStateDTO=createDTO(ProjectPublicationStateDTOSchema),PublishProjectRequestSchema=z16.object({label:z16.string().trim().min(1).max(120).optional(),notes:z16.string().max(2e4).optional()}).strict(),PublicationMutationDTOSchema=z16.object({success:z16.boolean(),message:z16.string().optional(),publishedAt:CommonSchemas.timestamp.optional(),firstPublish:z16.boolean(),publicationId:z16.string().optional()}),PublicationMutationDTO=createDTO(PublicationMutationDTOSchema),ProjectPublicationStateResponseSchema=createResponseSchema(ProjectPublicationStateDTOSchema),PublicationMutationResponseSchema=createResponseSchema(PublicationMutationDTOSchema),ProjectResponseSchema=createResponseSchema(ProjectDTOSchema),ProjectWithPlanResponseSchema=createResponseSchema(ProjectWithPlanDTOSchema)}});import{z as z17}from"zod";var ProjectEnvStatusSchema,ProjectEnvKindSchema,ProjectEnvDTOSchema,ProjectEnvDTO,ResolvedBranchEnvironmentDTOSchema,ProjectEnvListItemDTOSchema,ProjectEnvListItemDTO,CreateProjectEnvRequestSchema,SyncProjectEnvRequestSchema,ProjectEnvResponseSchema,ProjectEnvsListResponseSchema,EnvSurfaceDiffSchema,EnvDiffResultSchema,EnvDiffResultDTO,init_project_env_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-env.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();ProjectEnvStatusSchema=z17.enum(["provisioning","active","deleted"]),ProjectEnvKindSchema=z17.enum(["user","agent-session"]),ProjectEnvDTOSchema=BaseEntitySchema.extend({projectId:z17.uuid(),env:EnvSchema,status:ProjectEnvStatusSchema,kind:ProjectEnvKindSchema,parentEnv:EnvSchema.nullable(),createdBy:z17.string().nullable(),deletedAt:z17.coerce.date().nullable()}),ProjectEnvDTO=createDTO(ProjectEnvDTOSchema),ResolvedBranchEnvironmentDTOSchema=z17.object({id:z17.union([z17.literal(PREVIEW_ENVIRONMENT_KEY),z17.uuid()]),name:z17.string()}),ProjectEnvListItemDTOSchema=ProjectEnvDTOSchema.extend({resolvedEnvironment:ResolvedBranchEnvironmentDTOSchema.nullable()}),ProjectEnvListItemDTO=createDTO(ProjectEnvListItemDTOSchema),CreateProjectEnvRequestSchema=z17.object({env:EnvSchema,parentEnv:EnvSchema.optional()}),SyncProjectEnvRequestSchema=z17.object({from:EnvSchema.optional()}),ProjectEnvResponseSchema=createResponseSchema(ProjectEnvDTOSchema),ProjectEnvsListResponseSchema=createResponseSchema(z17.array(ProjectEnvListItemDTOSchema)),EnvSurfaceDiffSchema=z17.object({surface:z17.enum(["code","schemas","content","translations","assets","forms"]),status:z17.enum(["unchanged","changed","conflicting","missing-on-target"]),changedCount:z17.number().int().nonnegative(),conflictCount:z17.number().int().nonnegative()}),EnvDiffResultSchema=z17.object({fromEnv:EnvSchema,toEnv:EnvSchema,generatedAt:z17.coerce.date(),surfaces:z17.array(EnvSurfaceDiffSchema)}),EnvDiffResultDTO=createDTO(EnvDiffResultSchema)}});import{z as z18}from"zod";var ProjectEnvironmentBaseSchema,ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema,ProjectEnvironmentDTOSchema,ProjectEnvironmentDTO,CreateProjectEnvironmentRequestSchema,ProjectEnvironmentsListResponseSchema,ProjectEnvironmentResponseSchema,DeleteProjectEnvironmentResultSchema,DeleteProjectEnvironmentResponseSchema,init_project_environment_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-environment.dto.js"(){"use strict";init_env();init_environment();init_create_dto();init_response();ProjectEnvironmentBaseSchema=z18.object({projectId:z18.uuid(),name:z18.string()}),ProductionEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z18.literal(PRODUCTION_ENVIRONMENT_KEY),kind:z18.literal("production"),sourceBranch:EnvSchema,isPublished:z18.boolean(),url:z18.string().nullable()}),PreviewEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z18.literal(PREVIEW_ENVIRONMENT_KEY),kind:z18.literal("preview"),matchedBranchCount:z18.number().int().nonnegative()}),CustomProjectEnvironmentDTOSchema=CustomEnvironmentSchema.extend({kind:z18.literal("custom"),matchedBranchCount:z18.number().int().nonnegative()}),ProjectEnvironmentDTOSchema=z18.discriminatedUnion("kind",[ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema]),ProjectEnvironmentDTO=createDTO(ProjectEnvironmentDTOSchema),CreateProjectEnvironmentRequestSchema=CustomEnvironmentSchema.pick({name:!0,branchPatterns:!0,description:!0}).extend({description:z18.string().trim().max(255).nullable().optional().default(null)}),ProjectEnvironmentsListResponseSchema=createResponseSchema(z18.array(ProjectEnvironmentDTOSchema)),ProjectEnvironmentResponseSchema=createResponseSchema(ProjectEnvironmentDTOSchema),DeleteProjectEnvironmentResultSchema=z18.object({deletedId:z18.uuid()}),DeleteProjectEnvironmentResponseSchema=createResponseSchema(DeleteProjectEnvironmentResultSchema)}});import{z as z19}from"zod";var ProjectSecretsListQuerySchema,ProjectSecretWriteRequestSchema,CreateProjectSecretRequestSchema,DeleteProjectSecretQuerySchema,ProjectSecretMetadataDTOSchema,ProjectSecretMetadataDTO,ProjectSecretsListResponseSchema,ProjectSecretResponseSchema,init_project_secret_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-secret.dto.js"(){"use strict";init_environment();init_create_dto();init_response();ProjectSecretsListQuerySchema=z19.object({kind:z19.enum(["variable","secret"]).optional(),environment:EnvironmentKeySchema}),ProjectSecretWriteRequestSchema=z19.object({kind:z19.enum(["variable","secret"]),value:z19.string(),environment:EnvironmentKeySchema}),CreateProjectSecretRequestSchema=ProjectSecretWriteRequestSchema.extend({key:z19.string().min(1).max(255)}),DeleteProjectSecretQuerySchema=z19.object({kind:z19.enum(["variable","secret"]),environment:EnvironmentKeySchema}),ProjectSecretMetadataDTOSchema=z19.object({id:z19.uuid(),projectId:z19.uuid(),key:z19.string(),kind:z19.literal("secret"),exposure:z19.literal("private"),environment:EnvironmentKeySchema,maskedValue:z19.string().optional(),createdAt:z19.date().transform(value=>value.toISOString()),updatedAt:z19.date().transform(value=>value.toISOString())}),ProjectSecretMetadataDTO=createDTO(ProjectSecretMetadataDTOSchema),ProjectSecretsListResponseSchema=createResponseSchema(z19.array(ProjectSecretMetadataDTOSchema)),ProjectSecretResponseSchema=createResponseSchema(ProjectSecretMetadataDTOSchema)}});import{z as z20}from"zod";var ExportProjectResponseDTOSchema,ExportProjectResponseDTO,ImportProjectResultDTOSchema,ImportProjectResultDTO,ImportPreviewCountsDTOSchema,ImportPreviewSurfaceDTOSchema,ImportPreviewDTOSchema,ImportPreviewDTO,ImportPreviewResponseDTOSchema,ImportPreviewResponseDTO,init_project_import_export_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-import-export.dto.js"(){"use strict";init_create_dto();ExportProjectResponseDTOSchema=z20.object({success:z20.literal(!0),downloadUrl:z20.string(),expiresAt:z20.string(),fileSize:z20.number(),duration:z20.number()}),ExportProjectResponseDTO=createDTO(ExportProjectResponseDTOSchema),ImportProjectResultDTOSchema=z20.object({success:z20.literal(!0),projectId:z20.string(),projectName:z20.string(),displayName:z20.string(),projectUrl:z20.string(),duration:z20.number()}),ImportProjectResultDTO=createDTO(ImportProjectResultDTOSchema),ImportPreviewCountsDTOSchema=z20.object({contentTypes:z20.number(),entries:z20.number(),assets:z20.number(),translations:z20.number(),forms:z20.number(),codeFiles:z20.number(),assetFiles:z20.number()}),ImportPreviewSurfaceDTOSchema=z20.object({name:z20.string(),included:z20.boolean(),count:z20.number().optional(),note:z20.string().optional()}),ImportPreviewDTOSchema=z20.object({projectName:z20.string(),displayName:z20.string().nullable(),category:z20.string().nullable(),exportedAt:z20.string(),version:z20.string(),envScope:z20.enum(["main","tree"]),counts:ImportPreviewCountsDTOSchema,surfaces:z20.array(ImportPreviewSurfaceDTOSchema),fileSize:z20.number(),fileName:z20.string()}),ImportPreviewDTO=createDTO(ImportPreviewDTOSchema),ImportPreviewResponseDTOSchema=z20.object({success:z20.literal(!0),preview:ImportPreviewDTOSchema}),ImportPreviewResponseDTO=createDTO(ImportPreviewResponseDTOSchema)}});import{z as z21}from"zod";var TriggerKindSchema,ManualTriggerSchema,ScheduleTriggerSchema,WebhookTriggerSchema,TriggerSchema,init_agent_trigger_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-trigger.dto.js"(){"use strict";TriggerKindSchema=z21.enum(["manual","schedule","webhook"]),ManualTriggerSchema=z21.object({type:z21.literal("manual")}),ScheduleTriggerSchema=z21.object({type:z21.literal("schedule"),cron:z21.string().min(1,"cron expression required").regex(/^\s*\S+\s+\S+\s+\S+\s+\S+\s+\S+\s*$/,"cron must be a 5-field expression"),tz:z21.string().optional()}),WebhookTriggerSchema=z21.object({type:z21.literal("webhook"),path:z21.string().min(1).max(120).regex(/^[a-z0-9][a-z0-9_/-]*$/i,"webhook path must be lowercase alphanumeric with optional / - _")}),TriggerSchema=z21.discriminatedUnion("type",[ManualTriggerSchema,ScheduleTriggerSchema,WebhookTriggerSchema])}});import{z as z22}from"zod";var CapabilityRiskTierSchema,CapabilitySummaryEntrySchema,AgentSubAgentSummarySchema,AgentInstallSummaryDTOSchema,AgentInstallSummaryDTO,AgentInstallSummaryResponseSchema,init_agent_install_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-install-summary.dto.js"(){"use strict";init_create_dto();init_response();CapabilityRiskTierSchema=z22.enum(["low","medium","high","critical"]),CapabilitySummaryEntrySchema=z22.object({token:z22.string().min(1),risk:CapabilityRiskTierSchema,description:z22.string()}),AgentSubAgentSummarySchema=z22.object({name:z22.string().min(1),grant:z22.enum(["inherit","explicit"]),effectiveCaps:z22.array(z22.string().min(1))}),AgentInstallSummaryDTOSchema=z22.object({agentName:z22.string().min(1),env:z22.string().min(1),declaredCapabilities:z22.array(CapabilitySummaryEntrySchema),transitiveCapabilities:z22.array(CapabilitySummaryEntrySchema),highRiskCapabilities:z22.array(CapabilitySummaryEntrySchema),criticalCapabilities:z22.array(CapabilitySummaryEntrySchema),subAgents:z22.array(AgentSubAgentSummarySchema),declaresDelegate:z22.boolean(),cycle:z22.array(z22.string()).nullable(),missingSubAgents:z22.array(z22.string()),warnings:z22.array(z22.string())}),AgentInstallSummaryDTO=createDTO(AgentInstallSummaryDTOSchema),AgentInstallSummaryResponseSchema=createResponseSchema(AgentInstallSummaryDTOSchema)}});import{z as z23}from"zod";var AgentListItemTriggerSchema,AgentListItemTriggerStateSchema,AgentListItemDTOSchema,AgentListItemDTO,AgentListResponseSchema,init_agent_list_item_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-list-item.dto.js"(){"use strict";init_create_dto();init_response();init_agent_install_summary_dto();init_agent_trigger_dto();AgentListItemTriggerSchema=z23.object({kind:TriggerKindSchema,summary:z23.string()}),AgentListItemTriggerStateSchema=z23.object({triggerIndex:z23.number().int().nonnegative(),triggerKind:TriggerKindSchema,enabled:z23.boolean(),wired:z23.boolean(),syncError:z23.string().nullable()}),AgentListItemDTOSchema=z23.object({name:z23.string().min(1),description:z23.string().nullable(),goalFirstLine:z23.string().nullable(),declaredCapabilities:z23.array(CapabilitySummaryEntrySchema),triggers:z23.array(AgentListItemTriggerSchema),triggerStates:z23.array(AgentListItemTriggerStateSchema)}),AgentListItemDTO=createDTO(AgentListItemDTOSchema),AgentListResponseSchema=createResponseSchema(z23.array(AgentListItemDTOSchema))}});import{z as z24}from"zod";var ManualRunRequestSchema,DispatchSkippedSchema,DispatchAcceptedSchema,ManualRunResponseSchema,init_agent_run_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-run.dto.js"(){"use strict";init_response();ManualRunRequestSchema=z24.object({args:z24.unknown().optional(),requestId:z24.string().min(1).max(128).optional()}),DispatchSkippedSchema=z24.object({skipped:z24.enum(["no-manual-trigger","trigger-not-wired","run-in-progress","task-env-budget"])}),DispatchAcceptedSchema=z24.object({sessionId:z24.string().min(1)}),ManualRunResponseSchema=createResponseSchema(z24.union([DispatchAcceptedSchema,DispatchSkippedSchema]))}});import{z as z25}from"zod";var SurfaceNameSchema,SURFACE_NAMES,SurfaceDeltaVerbSchema,SurfaceItemOriginSchema,SurfaceDeltaItemSchema,PerSurfaceDeltaSchema,CrossSurfaceFindingSchema,StatusReportSchema,StatusReportDTO,StatusReportResponseSchema,DiffReportSchema,DiffReportDTO,DiffReportResponseSchema,CodeFileDiffSchema,CodeFileDiffDTO,CodeFileDiffResponseSchema,CodeConflictBlobSchema,CodeConflictDetailSchema,CodeConflictDetailDTO,CodeConflictDetailResponseSchema,ContentEntrySnapshotSchema,ContentRowDiffSchema,ContentRowDiffDTO,ContentRowDiffResponseSchema,SchemaTypeSnapshotSchema,SchemaTypeDiffSchema,SchemaTypeDiffDTO,SchemaTypeDiffResponseSchema,AssetSnapshotSchema,AssetDiffSchema,AssetDiffDTO,AssetDiffResponseSchema,TranslationRowDiffSchema,TranslationRowDiffDTO,TranslationRowDiffResponseSchema,FormSchemaSnapshotSchema,FormSchemaDiffSchema,FormSchemaDiffDTO,FormSchemaDiffResponseSchema,CONFLICT_KINDS,ConflictKindSchema,ConflictSchema,FieldPickSchema,ConflictResolutionSchema,MergeResultSchema,MergeResultDTO,MergeResultResponseSchema,EngineStrategySchema,VendorStrategySchema,MergeStrategySchema,ResolvedStrategySchema,MergeRequestSchema,MergeInitiateResultSchema,MergeInitiateResultDTO,MergeInitiateResponseSchema,MergeConflictsHydrationSchema,MergeConflictsHydrationDTO,MergeConflictsHydrationResponseSchema,MergeResolveDraftRequestSchema,MergeResolveDraftResultSchema,MergeResolveDraftResultDTO,MergeResolveRequestSchema,MergeCancelRequestSchema,PublishReleaseRequestSchema,PublishReleaseResultSchema,PublishReleaseResultDTO,PublishReleaseResponseSchema,init_env_status_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-status.dto.js"(){"use strict";init_env();init_create_dto();init_response();SurfaceNameSchema=z25.enum(["code","schemas","content","translations","assets","forms"]),SURFACE_NAMES=["code","schemas","content","translations","assets","forms"],SurfaceDeltaVerbSchema=z25.enum(["added","removed","changed","conflict"]),SurfaceItemOriginSchema=z25.enum(["committed-ahead","local-uncommitted"]),SurfaceDeltaItemSchema=z25.object({verb:SurfaceDeltaVerbSchema,key:z25.string(),detail:z25.string().optional(),origin:SurfaceItemOriginSchema.optional(),meta:z25.record(z25.string(),z25.unknown()).optional()}),PerSurfaceDeltaSchema=z25.object({surface:SurfaceNameSchema,status:z25.enum(["ok","timed_out","failed","unchanged"]),durationMs:z25.number().int().nonnegative().optional(),changedCount:z25.number().int().nonnegative(),conflictCount:z25.number().int().nonnegative(),items:z25.array(SurfaceDeltaItemSchema).max(1e3).optional(),truncated:z25.boolean().optional(),error:z25.string().optional()}),CrossSurfaceFindingSchema=z25.object({id:z25.string(),kind:z25.string(),description:z25.string(),severity:z25.enum(["warning","error"]),source:z25.object({surface:SurfaceNameSchema,key:z25.string()}),target:z25.object({surface:SurfaceNameSchema,key:z25.string()}),actions:z25.array(z25.enum(["restore-target","fix-source","ignore"])).min(1)}),StatusReportSchema=z25.object({env:EnvSchema,vs:EnvSchema,syncState:z25.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:z25.coerce.date(),surfaces:z25.array(PerSurfaceDeltaSchema),agents:z25.array(z25.object({id:z25.string(),name:z25.string(),status:z25.enum(["active","paused","failed"]),lastRunAt:z25.coerce.date().nullable()})).optional(),crossSurface:z25.array(CrossSurfaceFindingSchema).optional()}),StatusReportDTO=createDTO(StatusReportSchema),StatusReportResponseSchema=createResponseSchema(StatusReportSchema),DiffReportSchema=z25.object({fromEnv:EnvSchema,toEnv:EnvSchema,generatedAt:z25.coerce.date(),surfaces:z25.array(PerSurfaceDeltaSchema),crossSurface:z25.array(CrossSurfaceFindingSchema).optional(),fingerprint:z25.string()}),DiffReportDTO=createDTO(DiffReportSchema),DiffReportResponseSchema=createResponseSchema(DiffReportSchema),CodeFileDiffSchema=z25.object({path:z25.string(),state:z25.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z25.string(),additions:z25.number().int().nonnegative(),deletions:z25.number().int().nonnegative()}),CodeFileDiffDTO=createDTO(CodeFileDiffSchema),CodeFileDiffResponseSchema=createResponseSchema(CodeFileDiffSchema),CodeConflictBlobSchema=z25.object({oid:z25.string().optional(),content:z25.string().optional(),truncated:z25.boolean(),binary:z25.boolean()}),CodeConflictDetailSchema=z25.object({path:z25.string(),base:CodeConflictBlobSchema,ours:CodeConflictBlobSchema,theirs:CodeConflictBlobSchema,result:CodeConflictBlobSchema,sourceTipSha:z25.string(),targetTipSha:z25.string(),mergeBaseSha:z25.string().optional()}),CodeConflictDetailDTO=createDTO(CodeConflictDetailSchema),CodeConflictDetailResponseSchema=createResponseSchema(CodeConflictDetailSchema),ContentEntrySnapshotSchema=z25.object({id:z25.string(),slug:z25.string(),contentType:z25.string(),data:z25.record(z25.string(),z25.unknown()),updatedAt:z25.coerce.date()}),ContentRowDiffSchema=z25.object({collection:z25.string(),rowId:z25.string(),parent:ContentEntrySnapshotSchema.nullable(),child:ContentEntrySnapshotSchema.nullable()}),ContentRowDiffDTO=createDTO(ContentRowDiffSchema),ContentRowDiffResponseSchema=createResponseSchema(ContentRowDiffSchema),SchemaTypeSnapshotSchema=z25.object({name:z25.string(),label:z25.string(),isSingleton:z25.boolean(),fields:z25.record(z25.string(),z25.unknown())}),SchemaTypeDiffSchema=z25.object({typeName:z25.string(),parent:SchemaTypeSnapshotSchema.nullable(),child:SchemaTypeSnapshotSchema.nullable()}),SchemaTypeDiffDTO=createDTO(SchemaTypeDiffSchema),SchemaTypeDiffResponseSchema=createResponseSchema(SchemaTypeDiffSchema),AssetSnapshotSchema=z25.object({id:z25.string(),name:z25.string(),type:z25.enum(["file","folder"]),mimeType:z25.string().nullable(),storageKey:z25.string().nullable(),url:z25.string().nullable(),fileSize:z25.number().nullable(),width:z25.number().nullable(),height:z25.number().nullable(),altText:z25.string().nullable(),caption:z25.string().nullable(),createdAt:z25.coerce.date(),updatedAt:z25.coerce.date()}),AssetDiffSchema=z25.object({assetId:z25.string(),parent:AssetSnapshotSchema.nullable(),child:AssetSnapshotSchema.nullable()}),AssetDiffDTO=createDTO(AssetDiffSchema),AssetDiffResponseSchema=createResponseSchema(AssetDiffSchema),TranslationRowDiffSchema=z25.object({locale:z25.string(),key:z25.string(),parent:z25.string().nullable(),child:z25.string().nullable()}),TranslationRowDiffDTO=createDTO(TranslationRowDiffSchema),TranslationRowDiffResponseSchema=createResponseSchema(TranslationRowDiffSchema),FormSchemaSnapshotSchema=z25.object({formName:z25.string(),label:z25.string().nullable(),schemaFingerprint:z25.string(),fields:z25.record(z25.string(),z25.unknown()),settings:z25.record(z25.string(),z25.unknown()).optional()}),FormSchemaDiffSchema=z25.object({formName:z25.string(),parent:FormSchemaSnapshotSchema.nullable(),child:FormSchemaSnapshotSchema.nullable()}),FormSchemaDiffDTO=createDTO(FormSchemaDiffSchema),FormSchemaDiffResponseSchema=createResponseSchema(FormSchemaDiffSchema),CONFLICT_KINDS=["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"],ConflictKindSchema=z25.enum(CONFLICT_KINDS),ConflictSchema=z25.object({surface:SurfaceNameSchema,key:z25.string(),kind:ConflictKindSchema.optional(),description:z25.string(),parentValue:z25.unknown().optional(),childValue:z25.unknown().optional(),conflictingFields:z25.array(z25.string()).optional(),code:z25.object({path:z25.string(),unresolvable:z25.boolean().optional(),reason:z25.string().optional()}).optional()}),FieldPickSchema=z25.object({field:z25.string(),choice:z25.enum(["parent","child","pick","ai-pick"]),pickedValue:z25.unknown().optional(),aiSessionId:z25.string().optional()}),ConflictResolutionSchema=z25.object({surface:SurfaceNameSchema,key:z25.string(),choice:z25.enum(["parent","child","pick"]),pickedValue:z25.unknown().optional(),fieldPicks:z25.array(FieldPickSchema).optional()}),MergeResultSchema=z25.object({ok:z25.boolean(),mergeId:z25.string().uuid(),fromEnv:EnvSchema,toEnv:EnvSchema,applied:z25.array(z25.object({surface:SurfaceNameSchema,count:z25.number().int().nonnegative()})),conflicts:z25.array(ConflictSchema).optional(),summary:z25.string().optional()}),MergeResultDTO=createDTO(MergeResultSchema),MergeResultResponseSchema=createResponseSchema(MergeResultSchema),EngineStrategySchema=z25.enum(["ff-only","auto","theirs","ours","manual"]),VendorStrategySchema=z25.enum(["ff_only","ff_prefer","merge"]),MergeStrategySchema=z25.object({engine:EngineStrategySchema.optional(),vendor:VendorStrategySchema.optional(),squash:z25.boolean().optional()}),ResolvedStrategySchema=z25.object({engine:EngineStrategySchema,vendor:VendorStrategySchema,squash:z25.boolean()}),MergeRequestSchema=z25.object({from:EnvSchema,allowDirectMerge:z25.boolean().optional(),strategy:MergeStrategySchema.optional()}),MergeInitiateResultSchema=z25.object({mergeId:z25.string().uuid(),streamUrl:z25.string(),strategy:ResolvedStrategySchema,acceptedAt:z25.coerce.date()}),MergeInitiateResultDTO=createDTO(MergeInitiateResultSchema),MergeInitiateResponseSchema=createResponseSchema(MergeInitiateResultSchema),MergeConflictsHydrationSchema=z25.object({mergeId:z25.string().uuid(),fromEnv:EnvSchema,toEnv:EnvSchema,status:z25.enum(["in_progress","complete","failed","rolled_back","conflicts"]),strategy:ResolvedStrategySchema,conflicts:z25.array(ConflictSchema),draftResolutions:z25.array(ConflictResolutionSchema),lastEditedBy:z25.string().nullable(),lastEditedAt:z25.coerce.date().nullable(),initiator:z25.object({userId:z25.string().nullable(),role:z25.string().nullable(),agentName:z25.string().nullable()})}),MergeConflictsHydrationDTO=createDTO(MergeConflictsHydrationSchema),MergeConflictsHydrationResponseSchema=createResponseSchema(MergeConflictsHydrationSchema),MergeResolveDraftRequestSchema=z25.object({resolutions:z25.array(ConflictResolutionSchema)}),MergeResolveDraftResultSchema=z25.object({mergeId:z25.string().uuid(),draftResolutions:z25.array(ConflictResolutionSchema),lastEditedAt:z25.coerce.date(),lastEditedBy:z25.string()}),MergeResolveDraftResultDTO=createDTO(MergeResolveDraftResultSchema),MergeResolveRequestSchema=z25.object({mergeId:z25.string().uuid(),resolutions:z25.array(ConflictResolutionSchema)}),MergeCancelRequestSchema=z25.object({mergeId:z25.string().uuid()}),PublishReleaseRequestSchema=z25.object({version:z25.string().regex(/^v?\d+\.\d+\.\d+(-[\w.]+)?$/,"Use semver (v1.4.2 / 1.4.2 / 1.4.2-rc.1)"),notes:z25.string().max(2e4).optional()}),PublishReleaseResultSchema=z25.object({releaseTag:z25.string(),sha:z25.string(),publishedAt:z25.coerce.date()}),PublishReleaseResultDTO=createDTO(PublishReleaseResultSchema),PublishReleaseResponseSchema=createResponseSchema(PublishReleaseResultSchema)}});import{z as z26}from"zod";var AgentSessionStatusSchema,SessionMetricsSchema,AgentSessionReviewPublicationSchema,AgentSessionReviewSummarySchema,AgentSessionReviewSummaryDTO,AgentSessionReviewPayloadSchema,AgentSessionReviewPayloadDTO,AgentSessionReviewPayloadResponseSchema,AgentSessionDTOSchema,AgentSessionDTO,AgentSessionCheckpointDTOSchema,AgentSessionCheckpointDTO,AgentSessionResponseSchema,AgentSessionsListResponseSchema,AgentSessionCheckpointsListResponseSchema,AgentSessionWithCheckpointsResponseSchema,SessionErrorCodeSchema,CancelSessionRequestSchema,init_agent_session_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-session.dto.js"(){"use strict";init_env();init_create_dto();init_response();init_agent_trigger_dto();init_env_status_dto();AgentSessionStatusSchema=z26.enum(["planned","running","finished","cancelled","errored"]),SessionMetricsSchema=z26.object({cpuMs:z26.number().nonnegative().default(0),netBytes:z26.number().nonnegative().default(0),walltimeMs:z26.number().nonnegative().default(0),llmTokensIn:z26.number().nonnegative().optional(),llmTokensOut:z26.number().nonnegative().optional(),stepCount:z26.number().int().nonnegative().optional(),toolCallCounts:z26.record(z26.string().min(1).max(120),z26.number().int().nonnegative()).optional(),finishAction:z26.enum(["merge","retain","discard"]).optional()}),AgentSessionReviewPublicationSchema=z26.enum(["pending","merged","conflict","not_published"]),AgentSessionReviewSummarySchema=z26.object({capturedAt:z26.coerce.date(),fingerprint:z26.string().min(1).max(256),counts:z26.object({code:z26.number().int().nonnegative(),content:z26.number().int().nonnegative(),schemas:z26.number().int().nonnegative(),labels:z26.number().int().nonnegative()}),publication:AgentSessionReviewPublicationSchema,mergeId:z26.uuid().nullable()}),AgentSessionReviewSummaryDTO=createDTO(AgentSessionReviewSummarySchema),AgentSessionReviewPayloadSchema=z26.object({diff:DiffReportSchema,code:z26.array(CodeFileDiffSchema.extend({raw:z26.string().max(24576)})).max(200),schemas:z26.array(SchemaTypeDiffSchema).max(200),content:z26.array(z26.object({key:z26.string().min(1).max(512),collection:z26.string().min(1).max(256),slug:z26.string().max(512).optional(),verb:z26.enum(["added","modified","deleted"]),fields:z26.array(z26.object({name:z26.string().min(1).max(256),before:z26.unknown().optional(),after:z26.unknown().optional()})).max(20)})).max(200),labels:z26.array(z26.object({key:z26.string().min(1).max(512),locale:z26.string().min(1).max(64).optional(),before:z26.unknown().nullable(),after:z26.unknown().nullable()})).max(200)}),AgentSessionReviewPayloadDTO=createDTO(AgentSessionReviewPayloadSchema),AgentSessionReviewPayloadResponseSchema=createResponseSchema(AgentSessionReviewPayloadSchema),AgentSessionDTOSchema=z26.object({id:z26.uuid(),projectId:z26.uuid(),env:EnvSchema,agentName:z26.string().min(1),triggerKind:TriggerKindSchema,triggerPayload:z26.unknown().optional(),capabilities:z26.array(z26.string()).optional(),dataSources:z26.array(z26.string()).optional(),status:AgentSessionStatusSchema,sandboxId:z26.string().nullable(),startedAt:z26.coerce.date().nullable(),finishedAt:z26.coerce.date().nullable(),cancelledAt:z26.coerce.date().nullable(),costUsd:z26.number().nonnegative(),costCeilingUsd:z26.number().positive(),metrics:SessionMetricsSchema.nullable(),longRunning:z26.boolean(),lastCheckpointId:z26.uuid().nullable(),branchEnvId:z26.uuid().nullable(),parentSessionId:z26.uuid().nullable(),terminalReason:z26.string().nullable(),errorMessage:z26.string().nullable(),report:z26.string().nullable(),reviewSummary:AgentSessionReviewSummarySchema.nullable(),reviewCaptureError:z26.string().nullable(),createdAt:z26.coerce.date(),updatedAt:z26.coerce.date()}),AgentSessionDTO=createDTO(AgentSessionDTOSchema),AgentSessionCheckpointDTOSchema=z26.object({id:z26.uuid(),sessionId:z26.uuid(),checkpointIdx:z26.number().int().nonnegative(),payloadRef:z26.string(),payloadSizeBytes:z26.number().int().nonnegative(),checksum:z26.string().length(64),createdAt:z26.coerce.date()}),AgentSessionCheckpointDTO=createDTO(AgentSessionCheckpointDTOSchema),AgentSessionResponseSchema=createResponseSchema(AgentSessionDTOSchema),AgentSessionsListResponseSchema=createResponseSchema(z26.array(AgentSessionDTOSchema)),AgentSessionCheckpointsListResponseSchema=createResponseSchema(z26.array(AgentSessionCheckpointDTOSchema)),AgentSessionWithCheckpointsResponseSchema=createResponseSchema(z26.object({session:AgentSessionDTOSchema,checkpoints:z26.array(AgentSessionCheckpointDTOSchema)})),SessionErrorCodeSchema=z26.enum(["invalid_session_transition","session_not_found","capability_snapshot_invalid","checkpoint_restore_failed","cost_ceiling_invalid","too_many_agent_envs","env_provisioning_failed","agent_run_in_progress","agent_runtime_allowance_exhausted"]),CancelSessionRequestSchema=z26.object({reason:z26.string().min(1).max(120).optional()})}});import{z as z27}from"zod";var AgentBranchClassificationSchema,AgentBranchDecidedPathSchema,AgentBranchProposalDTOSchema,AgentBranchProposalDTO,DecideProposalRequestSchema,AgentBranchProposalResponseSchema,AgentBranchProposalsListResponseSchema,DecideProposalConflictResponseSchema,init_agent_proposal_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-proposal.dto.js"(){"use strict";init_create_dto();init_response();AgentBranchClassificationSchema=z27.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z27.enum(["auto-merge","review-merged","review-discarded"]),AgentBranchProposalDTOSchema=z27.object({id:z27.uuid(),envId:z27.uuid(),sessionId:z27.uuid().nullable(),skillName:z27.string().min(1),classification:AgentBranchClassificationSchema,rationale:z27.string().nullable(),summary:z27.string().nullable(),surfaceDeltas:z27.record(z27.string(),z27.unknown()),createdAt:z27.coerce.date(),decidedAt:z27.coerce.date().nullable(),decidedPath:AgentBranchDecidedPathSchema.nullable(),decidedBy:z27.string().nullable()}),AgentBranchProposalDTO=createDTO(AgentBranchProposalDTOSchema),DecideProposalRequestSchema=z27.object({path:z27.enum(["review-merged","review-discarded"])}),AgentBranchProposalResponseSchema=createResponseSchema(AgentBranchProposalDTOSchema),AgentBranchProposalsListResponseSchema=createResponseSchema(z27.array(AgentBranchProposalDTOSchema)),DecideProposalConflictResponseSchema=z27.object({code:z27.literal("merge_conflict"),message:z27.string(),conflicts:z27.record(z27.string(),z27.number().int().nonnegative())})}});import{z as z28}from"zod";var AGENT_QUESTION_STATES,AgentQuestionStateSchema,AgentQuestionFormSchema,AgentQuestionAskSchema,AgentQuestionRequestSchema,AgentQuestionSchema,AgentQuestionResponseSchema,RunAgentQuestionResponseSchema,AgentQuestionAttentionSchema,OpenAgentQuestionsResponseSchema,AnswerAgentQuestionResultSchema,AnswerAgentQuestionResponseSchema,init_agent_question_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-question.dto.js"(){"use strict";init_chat_block();init_response();AGENT_QUESTION_STATES=["open","answered","expired","cancelled","superseded"],AgentQuestionStateSchema=z28.enum(AGENT_QUESTION_STATES),AgentQuestionFormSchema=FormBlockSchema.extend({title:z28.string().trim().min(1).max(80)}).superRefine((form,ctx)=>{(!form.steps.every(step=>step.id)||new Set(form.steps.map(step=>step.id)).size!==form.steps.length)&&ctx.addIssue({code:"custom",path:["steps"],message:"Every question step needs its own stable id."})}),AgentQuestionAskSchema=z28.object({description:z28.string().trim().min(1).max(240),block:AgentQuestionFormSchema}).strict(),AgentQuestionRequestSchema=AgentQuestionAskSchema.extend({version:z28.literal(QUESTION_FORM_CONTRACT_VERSION)}),AgentQuestionSchema=z28.object({id:z28.uuid(),projectId:z28.uuid(),threadId:z28.uuid(),invocationId:z28.uuid(),agentKey:z28.string().min(1).max(120),anchorEnv:z28.string().min(1).max(64),retainedEnv:z28.string().min(1).max(64),state:AgentQuestionStateSchema,request:AgentQuestionRequestSchema,answer:QuestionFormAnswerSnapshotSchema.nullable(),answeredByUserId:z28.string().min(1).nullable(),continuationInvocationId:z28.uuid().nullable(),askedAt:z28.coerce.date(),expiresAt:z28.coerce.date(),closedAt:z28.coerce.date().nullable()}),AgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema),RunAgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema.nullable()),AgentQuestionAttentionSchema=z28.object({questionId:z28.uuid(),invocationId:z28.uuid(),askedAt:z28.coerce.date()}),OpenAgentQuestionsResponseSchema=createResponseSchema(z28.array(AgentQuestionAttentionSchema)),AnswerAgentQuestionResultSchema=z28.object({question:AgentQuestionSchema,continuationInvocationId:z28.uuid(),deduped:z28.boolean()}),AnswerAgentQuestionResponseSchema=createResponseSchema(AnswerAgentQuestionResultSchema)}});import{z as z29}from"zod";var IntegrationAuthModeSchema,IntegrationAuthKindSchema,IntegrationCredentialInputSchema,IntegrationCredentialUsageSchema,IntegrationToolEffectSchema,ProjectIntegrationCredentialStatusSchema,IntegrationAuthModeDTOSchema,IntegrationCredentialDefinitionDTOSchema,IntegrationToolDefinitionDTOSchema,IntegrationRecipeDTOSchema,IntegrationInfoDTOSchema,IntegrationInfoDTO,ProjectIntegrationStatusDTOSchema,ProjectIntegrationStatusDTO,ProjectIntegrationInstallationDTOSchema,ProjectIntegrationInstallationDTO,EnableProjectIntegrationRequestSchema,SwitchProjectIntegrationAuthRequestSchema,SetProjectIntegrationCredentialRequestSchema,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,StartProjectIntegrationConnectResponseSchema,StartProjectIntegrationConnectResponseDTO,ProjectIntegrationConnectResponseSchema,BindProjectChannelRequestSchema,ListProjectChannelsQuerySchema,SearchProjectChannelsQuerySchema,ProjectChannelBindingDTOSchema,ProjectChannelBindingDTO,ProjectChannelCandidateAvailabilitySchema,ProjectChannelCandidateDTOSchema,ProjectChannelCandidateDTO,FirecrawlScrapeFormatsSchema,FirecrawlScrapeToolInputSchema,FirecrawlSearchToolInputSchema,FirecrawlDeveloperSearchToolInputSchema,FirecrawlResearchSearchToolInputSchema,FirecrawlResearchPaperToolInputSchema,FirecrawlResearchRelatedToolInputSchema,FirecrawlMapToolInputSchema,FirecrawlCrawlToolInputSchema,FirecrawlMonitorScheduleInputSchema,FirecrawlMonitorScrapeOptionsInputSchema,FirecrawlMonitorTargetInputSchema,FirecrawlMonitorCreateToolInputSchema,FirecrawlMonitorUpdateToolInputSchema,FirecrawlMonitorIdToolInputSchema,FirecrawlMonitorCheckToolInputSchema,RunProjectIntegrationToolRequestSchema,ProjectIntegrationToolRunUsageSchema,ProjectIntegrationToolRunBillingSchema,FirecrawlScrapeToolOutputSchema,FirecrawlSearchToolOutputSchema,FirecrawlResearchPaperSchema,FirecrawlResearchPassageSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlMonitorScheduleOutputSchema,FirecrawlMonitorTargetOutputSchema,FirecrawlMonitorOutputSchema,FirecrawlMonitorCheckOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema,FirecrawlToolKeySchema,FirecrawlToolOutputSchema,ProjectIntegrationToolRunBaseSchema,ProjectIntegrationToolRunDTOSchema,ProjectIntegrationToolRunDTO,IntegrationsListResponseSchema,IntegrationInfoResponseSchema,ProjectIntegrationStatusResponseSchema,ProjectIntegrationInstallationResponseSchema,ProjectIntegrationToolRunResponseSchema,StartProjectIntegrationConnectResponseResponseSchema,OrganizationIntegrationConnectionResponseSchema,ProjectIntegrationConnectionsResponseSchema,ProjectIntegrationConnectResponseResponseSchema,AddProjectMcpIntegrationResponseResponseSchema,ReusableMcpServersResponseSchema,ProjectChannelBindingResponseSchema,ProjectChannelBindingsResponseSchema,ProjectChannelCandidatesResponseSchema,init_integration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration.dto.js"(){"use strict";init_create_dto();init_response();IntegrationAuthModeSchema=z29.enum(["fimo","personal","oauth"]),IntegrationAuthKindSchema=z29.enum(["oauth","api_key","bot_token","basic"]),IntegrationCredentialInputSchema=z29.enum(["secret_text"]),IntegrationCredentialUsageSchema=z29.enum(["http_bearer","api_key"]),IntegrationToolEffectSchema=z29.enum(["read","write","delete","financial"]),ProjectIntegrationCredentialStatusSchema=z29.enum(["not_required","missing","configured"]),IntegrationAuthModeDTOSchema=z29.object({mode:IntegrationAuthModeSchema,label:z29.string().min(1),description:z29.string().min(1)}),IntegrationCredentialDefinitionDTOSchema=z29.object({id:z29.string().min(1),label:z29.string().min(1),input:IntegrationCredentialInputSchema,usage:IntegrationCredentialUsageSchema,required:z29.boolean()}),IntegrationToolDefinitionDTOSchema=z29.object({key:z29.string().min(1),name:z29.string().min(1),description:z29.string().min(1),effect:IntegrationToolEffectSchema}),IntegrationRecipeDTOSchema=z29.object({title:z29.string().min(1),description:z29.string().min(1),command:z29.string().min(1).optional()}),IntegrationInfoDTOSchema=z29.object({key:z29.string().min(1),name:z29.string().min(1),summary:z29.string().min(1),type:z29.enum(["native","mcp"]).optional(),url:z29.string().url().optional(),defaultAuthMode:IntegrationAuthModeSchema.nullable().optional(),authModes:z29.array(IntegrationAuthModeDTOSchema),credentials:z29.array(IntegrationCredentialDefinitionDTOSchema),tools:z29.array(IntegrationToolDefinitionDTOSchema),liveToolsStatus:z29.enum(["available","unavailable"]).optional(),recipes:z29.array(IntegrationRecipeDTOSchema)}),IntegrationInfoDTO=createDTO(IntegrationInfoDTOSchema),ProjectIntegrationStatusDTOSchema=z29.object({projectId:z29.uuid(),integrationKey:z29.string().min(1),name:z29.string().min(1),summary:z29.string().min(1),installed:z29.boolean(),enabled:z29.boolean(),setupState:z29.enum(["setup_required","ready","attention"]),authMode:IntegrationAuthModeSchema.nullable(),authModeLabel:z29.string().nullable(),connectionId:z29.uuid().nullable().optional(),connectionAlias:z29.string().min(1).nullable().optional(),connectionStatus:z29.enum(["active","revoked"]).nullable(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z29.array(z29.string()),installedAt:z29.coerce.date().nullable(),updatedAt:z29.coerce.date().nullable()}),ProjectIntegrationStatusDTO=createDTO(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationDTOSchema=z29.object({id:z29.uuid(),projectId:z29.uuid(),integrationKey:z29.string().min(1),enabled:z29.boolean(),authMode:IntegrationAuthModeSchema,authModeLabel:z29.string(),connectionId:z29.uuid().nullable().optional(),connectionAlias:z29.string().min(1).nullable().optional(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z29.array(z29.string()),createdAt:z29.coerce.date(),updatedAt:z29.coerce.date()}),ProjectIntegrationInstallationDTO=createDTO(ProjectIntegrationInstallationDTOSchema),EnableProjectIntegrationRequestSchema=z29.object({authMode:IntegrationAuthModeSchema.optional(),connectionAlias:z29.string().min(1).optional()}),SwitchProjectIntegrationAuthRequestSchema=z29.object({authMode:IntegrationAuthModeSchema}),SetProjectIntegrationCredentialRequestSchema=z29.object({value:z29.string().min(1)}),OrganizationIntegrationConnectionStatusSchema=z29.enum(["active","revoked"]),OrganizationIntegrationConnectionDTOSchema=z29.object({id:z29.uuid(),organizationId:z29.string().min(1),integrationKey:z29.string().min(1),alias:z29.string().min(1),authKind:IntegrationAuthKindSchema,externalAccountId:z29.string().min(1),externalAccountName:z29.string().nullable(),externalBotUserId:z29.string().nullable(),status:OrganizationIntegrationConnectionStatusSchema,scopes:z29.array(z29.string()),connectedAt:z29.coerce.date(),updatedAt:z29.coerce.date()}),OrganizationIntegrationConnectionDTO=createDTO(OrganizationIntegrationConnectionDTOSchema),McpHeaderNameSchema=z29.string().trim().min(1).max(120).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,"Header name is invalid."),McpHeaderDefinitionSchema=z29.object({name:McpHeaderNameSchema}),McpSecretMapSchema=z29.record(McpHeaderNameSchema,z29.string().min(1)),ConnectOrganizationIntegrationRequestSchema=z29.object({alias:z29.string().min(1).max(120).optional(),token:z29.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z29.boolean().optional()}).superRefine((value,ctx)=>{value.token&&value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),ProjectIntegrationReturnPathSchema=z29.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),ConnectProjectIntegrationRequestSchema=z29.discriminatedUnion("mode",[z29.object({mode:z29.literal("personal"),alias:z29.string().min(1).max(120),token:z29.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z29.boolean().optional()}),z29.object({mode:z29.literal("oauth"),returnTo:ProjectIntegrationReturnPathSchema.optional(),reconnect:z29.boolean().optional()})]).superRefine((value,ctx)=>{value.mode==="personal"&&!!value.token==!!value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),McpIntegrationAuthSchema=z29.enum(["none","bearer","header"]),McpIntegrationSetupAuthSchema=z29.union([z29.literal("auto"),McpIntegrationAuthSchema]),AddProjectMcpIntegrationRequestSchema=z29.object({type:z29.literal("mcp"),name:z29.string().trim().min(1).max(120),url:z29.string().url(),auth:McpIntegrationSetupAuthSchema.default("auto"),returnTo:ProjectIntegrationReturnPathSchema.optional(),headers:z29.array(McpHeaderDefinitionSchema).min(1).max(20).optional(),secrets:McpSecretMapSchema.optional(),headerName:McpHeaderNameSchema.optional(),token:z29.string().min(1).optional()}).superRefine((value,ctx)=>{let protocol;try{protocol=new URL(value.url).protocol}catch{return}protocol!=="https:"&&ctx.addIssue({code:"custom",path:["url"],message:"MCP servers must use HTTPS."});let hasSingleHeader=!!(value.headerName||value.token),hasHeaderBundle=!!(value.headers||value.secrets);if(value.auth==="auto"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Automatic authentication does not accept manual credentials."}),value.auth==="none"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Public MCP servers cannot define credentials."}),value.auth==="bearer"&&(value.token||ctx.addIssue({code:"custom",path:["token"],message:"Bearer authentication requires a token."}),(value.headerName||value.headers||value.secrets)&&ctx.addIssue({code:"custom",path:["headers"],message:"Custom headers only apply to header authentication."})),value.auth!=="header")return;if(hasSingleHeader&&hasHeaderBundle){ctx.addIssue({code:"custom",path:["headers"],message:"Use either the single-header fields or headers with a complete secret map."});return}if(hasSingleHeader){value.headerName||ctx.addIssue({code:"custom",path:["headerName"],message:"Custom header authentication needs a header name."}),value.token||ctx.addIssue({code:"custom",path:["token"],message:"Header authentication requires a complete header value."});return}if(!value.headers){ctx.addIssue({code:"custom",path:["headers"],message:"Header authentication needs at least one header."});return}let normalizedNames=value.headers.map(header=>header.name.toLowerCase());if(new Set(normalizedNames).size!==normalizedNames.length&&ctx.addIssue({code:"custom",path:["headers"],message:"MCP header names must be unique."}),!value.secrets){ctx.addIssue({code:"custom",path:["secrets"],message:"Header authentication needs a complete secret map."});return}let secretNames=Object.keys(value.secrets).map(name=>name.toLowerCase());if(new Set(secretNames).size!==secretNames.length){ctx.addIssue({code:"custom",path:["secrets"],message:"MCP secret names must be unique."});return}let expected=new Set(normalizedNames),actual=new Set(secretNames);(expected.size!==actual.size||[...expected].some(name=>!actual.has(name)))&&ctx.addIssue({code:"custom",path:["secrets"],message:"The MCP secret map must exactly cover the configured headers."})}),AddProjectMcpIntegrationResponseBaseSchema=z29.object({integrationKey:z29.string().min(1),status:ProjectIntegrationStatusDTOSchema,info:IntegrationInfoDTOSchema}),AddProjectMcpIntegrationResponseSchema=z29.discriminatedUnion("mode",[AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z29.literal("connected")}),AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z29.literal("oauth"),connectUrl:z29.string().url(),expiresAt:z29.coerce.date()})]),ReusableMcpServerAuthKindSchema=z29.enum(["none","bearer","header","oauth"]),ReusableMcpServerDTOSchema=z29.object({id:z29.uuid(),name:z29.string().min(1),host:z29.string().min(1),authKind:ReusableMcpServerAuthKindSchema,sourceProjectName:z29.string().min(1),availability:z29.enum(["available","unavailable"])}),ReusableMcpServerDTO=createDTO(ReusableMcpServerDTOSchema),SearchReusableMcpServersQuerySchema=z29.object({query:z29.string().trim().max(120).optional()}),ReuseProjectMcpIntegrationRequestSchema=z29.object({serverId:z29.uuid()}),StartProjectIntegrationConnectResponseSchema=z29.object({integrationKey:z29.string().min(1),connectUrl:z29.string().url(),expiresAt:z29.coerce.date()}),StartProjectIntegrationConnectResponseDTO=createDTO(StartProjectIntegrationConnectResponseSchema),ProjectIntegrationConnectResponseSchema=z29.discriminatedUnion("mode",[z29.object({mode:z29.literal("personal"),integrationKey:z29.string().min(1),connection:OrganizationIntegrationConnectionDTOSchema}),z29.object({mode:z29.literal("oauth"),integrationKey:z29.string().min(1),connectUrl:z29.string().url(),expiresAt:z29.coerce.date()})]),BindProjectChannelRequestSchema=z29.object({ref:z29.string().min(1),connectionAlias:z29.string().min(1).optional(),agentName:z29.string().min(1).max(160).nullable().optional(),force:z29.boolean().optional()}),ListProjectChannelsQuerySchema=z29.object({integrationKey:z29.string().min(1)}),SearchProjectChannelsQuerySchema=z29.object({integrationKey:z29.string().min(1),connectionAlias:z29.string().min(1),query:z29.string().max(160).optional()}),ProjectChannelBindingDTOSchema=z29.object({id:z29.uuid(),projectId:z29.uuid(),integrationKey:z29.string().min(1),connectionId:z29.uuid(),externalWorkspaceId:z29.string().min(1),externalChannelId:z29.string().min(1),externalChannelName:z29.string().nullable(),agentName:z29.string().nullable(),enabled:z29.boolean(),createdAt:z29.coerce.date(),updatedAt:z29.coerce.date()}),ProjectChannelBindingDTO=createDTO(ProjectChannelBindingDTOSchema),ProjectChannelCandidateAvailabilitySchema=z29.enum(["available","selected","used_by_project","unavailable"]),ProjectChannelCandidateDTOSchema=z29.object({id:z29.string().min(1),name:z29.string().min(1),visibility:z29.enum(["public","private"]),availability:ProjectChannelCandidateAvailabilitySchema,projectName:z29.string().min(1).nullable(),canMove:z29.boolean()}),ProjectChannelCandidateDTO=createDTO(ProjectChannelCandidateDTOSchema),FirecrawlScrapeFormatsSchema=z29.object({markdown:z29.boolean().optional(),summary:z29.boolean().optional(),links:z29.boolean().optional(),branding:z29.boolean().optional(),images:z29.boolean().optional(),html:z29.union([z29.literal("cleaned"),z29.literal("raw"),z29.boolean()]).optional(),json:z29.union([z29.boolean(),z29.object({prompt:z29.string().min(1).max(1e4),schema:z29.record(z29.string(),z29.unknown()).optional()})]).optional()}).default({markdown:!0}),FirecrawlScrapeToolInputSchema=z29.object({url:z29.string().url(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional(),waitForMs:z29.number().int().min(0).max(3e4).optional(),maxAgeMs:z29.number().int().min(0).optional(),minAgeMs:z29.number().int().min(0).optional(),storeInCache:z29.boolean().optional(),proxy:z29.enum(["basic","enhanced","auto"]).optional(),mobile:z29.boolean().optional(),location:z29.object({country:z29.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z29.array(z29.string().min(1).max(35)).min(1).max(10).optional()}).optional()}),FirecrawlSearchToolInputSchema=z29.object({query:z29.string().min(1),maxResults:z29.number().int().positive().max(20).optional(),sources:z29.array(z29.enum(["web","news","images"])).min(1).max(3).optional(),categories:z29.array(z29.enum(["github","research","pdf"])).min(1).max(3).optional(),includeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(100).optional(),excludeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(100).optional(),timeRange:z29.enum(["hour","day","week","month","year"]).optional(),location:z29.string().min(1).max(160).optional(),country:z29.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code.").optional(),highlights:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."}),FirecrawlDeveloperSearchToolInputSchema=z29.object({query:z29.string().min(1).max(500),maxResults:z29.number().int().min(1).max(100).optional(),types:z29.array(z29.enum(["doc","issue","pull_request","readme"])).min(1).max(4).optional(),repos:z29.array(z29.string().min(1).max(512)).min(1).max(20).optional(),sources:z29.array(z29.string().min(1).max(512)).min(1).max(20).optional(),passages:z29.number().int().min(1).max(5).optional(),skills:z29.literal("only").optional(),language:z29.string().min(1).optional(),topic:z29.string().min(1).optional(),license:z29.string().min(1).optional(),minStars:z29.number().int().min(0).optional(),maxStars:z29.number().int().min(0).optional(),archived:z29.boolean().optional(),fork:z29.boolean().optional()}).refine(value=>value.minStars===void 0||value.maxStars===void 0||value.minStars<=value.maxStars,{message:"minStars must not exceed maxStars."}),FirecrawlResearchSearchToolInputSchema=z29.object({query:z29.string().min(1).max(500),maxResults:z29.number().int().min(1).max(500).optional(),authors:z29.array(z29.string().min(1)).min(1).optional(),categories:z29.array(z29.string().min(1)).min(1).optional(),from:z29.iso.date().optional(),to:z29.iso.date().optional()}),FirecrawlResearchPaperToolInputSchema=z29.object({paperId:z29.string().min(1).max(512),query:z29.string().min(1).max(500).optional(),maxPassages:z29.number().int().min(1).max(50).optional()}).refine(value=>value.query!==void 0||value.maxPassages===void 0,{message:"maxPassages requires query."}),FirecrawlResearchRelatedToolInputSchema=z29.object({paperId:z29.string().min(1).max(512),intent:z29.string().min(1).max(500),mode:z29.enum(["similar","citers","references"]).optional(),maxResults:z29.number().int().min(1).max(500).optional(),rerank:z29.boolean().optional(),anchors:z29.array(z29.string().min(1).max(512)).min(1).optional()}),FirecrawlMapToolInputSchema=z29.object({url:z29.string().url(),search:z29.string().min(1).optional(),limit:z29.number().int().positive().max(200).optional(),includeSubdomains:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional()}),FirecrawlCrawlToolInputSchema=z29.object({url:z29.string().url(),limit:z29.number().int().positive().max(20).optional(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional()}),FirecrawlMonitorScheduleInputSchema=z29.object({text:z29.string().min(1).max(200).optional(),cron:z29.string().min(1).max(120).optional(),timezone:z29.string().min(1).max(80).optional()}).refine(value=>!!(value.text||value.cron),"Firecrawl monitor schedule needs text or cron."),FirecrawlMonitorScrapeOptionsInputSchema=z29.object({formats:FirecrawlScrapeFormatsSchema.optional(),onlyMainContent:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional(),waitForMs:z29.number().int().min(0).max(3e4).optional(),maxAgeMs:z29.number().int().min(0).optional(),minAgeMs:z29.number().int().min(0).optional(),storeInCache:z29.boolean().optional(),proxy:z29.enum(["basic","enhanced","auto"]).optional(),mobile:z29.boolean().optional(),location:z29.object({country:z29.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z29.array(z29.string().min(1).max(35)).min(1).max(10).optional()}).optional()}).optional(),FirecrawlMonitorTargetInputSchema=z29.union([z29.object({type:z29.enum(["scrape","crawl"]).default("scrape"),urls:z29.array(z29.string().url()).min(1).max(50),scrapeOptions:FirecrawlMonitorScrapeOptionsInputSchema}),z29.object({type:z29.literal("search"),queries:z29.array(z29.string().min(1).max(256)).min(1).max(12),searchWindow:z29.enum(["5m","15m","1h","6h","24h","7d"]).optional(),maxResults:z29.number().int().min(1).max(50).optional(),includeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(50).optional(),excludeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(50).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."})]),FirecrawlMonitorCreateToolInputSchema=z29.object({name:z29.string().min(1).max(256),schedule:FirecrawlMonitorScheduleInputSchema,targets:z29.array(FirecrawlMonitorTargetInputSchema).min(1).max(50),goal:z29.string().min(1).max(2e3).optional(),judgeEnabled:z29.boolean().optional(),retentionDays:z29.number().int().min(1).max(365).optional(),notification:z29.object({email:z29.object({enabled:z29.boolean().default(!0),recipients:z29.array(z29.string().email()).min(1).max(20),includeDiffs:z29.boolean().optional()}).optional()}).optional()}).refine(value=>!value.targets.some(target=>target.type==="search")||value.judgeEnabled===!1||!!value.goal,{message:"Search monitor targets require goal unless judgeEnabled is false."}),FirecrawlMonitorUpdateToolInputSchema=z29.object({monitorId:z29.string().uuid(),name:z29.string().min(1).max(256).optional(),schedule:FirecrawlMonitorScheduleInputSchema.optional(),targets:z29.array(FirecrawlMonitorTargetInputSchema).min(1).max(50).optional(),goal:z29.string().min(1).max(2e3).optional(),judgeEnabled:z29.boolean().optional(),retentionDays:z29.number().int().min(1).max(365).optional(),status:z29.enum(["active","paused"]).optional()}).refine(value=>Object.keys(value).some(key=>key!=="monitorId"),"Monitor update needs a changed field."),FirecrawlMonitorIdToolInputSchema=z29.object({monitorId:z29.string().uuid()}),FirecrawlMonitorCheckToolInputSchema=FirecrawlMonitorIdToolInputSchema.extend({checkId:z29.string().uuid()}),RunProjectIntegrationToolRequestSchema=z29.object({tool:z29.string().min(1),input:z29.record(z29.string(),z29.unknown()),connectionAlias:z29.string().min(1).optional()}),ProjectIntegrationToolRunUsageSchema=z29.object({provider:z29.string().min(1),providerCredits:z29.number().nonnegative().optional(),providerCostUsd:z29.number().nonnegative().optional(),requests:z29.number().int().nonnegative().optional()}),ProjectIntegrationToolRunBillingSchema=z29.object({credits:z29.number().int().nonnegative()}),FirecrawlScrapeToolOutputSchema=z29.object({url:z29.string(),provider:z29.literal("firecrawl"),title:z29.string().optional(),statusCode:z29.number().optional(),markdown:z29.string().optional(),summary:z29.string().optional(),links:z29.array(z29.string()).optional(),images:z29.array(z29.string()).optional(),html:z29.string().optional(),json:z29.unknown().optional(),branding:z29.record(z29.string(),z29.unknown()).optional(),warning:z29.string().optional()}),FirecrawlSearchToolOutputSchema=z29.object({query:z29.string(),provider:z29.literal("firecrawl"),warning:z29.string().optional(),results:z29.array(z29.object({title:z29.string(),url:z29.string(),snippet:z29.string().optional(),content:z29.string().optional(),score:z29.number().optional(),publishedAt:z29.string().optional()}))}),FirecrawlResearchPaperSchema=z29.object({paperId:z29.string(),primaryId:z29.string().optional(),ids:z29.record(z29.string(),z29.array(z29.string())).optional(),title:z29.string().optional(),abstract:z29.string().optional(),score:z29.number().optional()}).passthrough(),FirecrawlResearchPassageSchema=z29.object({text:z29.string(),score:z29.number().optional()}).passthrough(),FirecrawlDeveloperSearchToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),results:z29.array(z29.object({id:z29.string(),type:z29.string().min(1).optional(),url:z29.string(),title:z29.string().optional(),passages:z29.array(z29.object({text:z29.string()}).passthrough())}).passthrough()),coverage:z29.record(z29.string(),z29.string()).optional(),reranked:z29.boolean().optional(),repos:z29.array(z29.record(z29.string(),z29.unknown())).optional(),sources:z29.array(z29.record(z29.string(),z29.unknown())).optional()}),FirecrawlResearchSearchToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),results:z29.array(FirecrawlResearchPaperSchema)}),FirecrawlResearchPaperToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),paper:z29.record(z29.string(),z29.unknown()),paperId:z29.string().optional(),query:z29.string().optional(),passages:z29.array(FirecrawlResearchPassageSchema).optional()}),FirecrawlResearchRelatedToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),results:z29.array(FirecrawlResearchPaperSchema),poolSize:z29.number().int().nonnegative(),truncated:z29.boolean(),note:z29.string().nullable().optional()}),FirecrawlMapToolOutputSchema=z29.object({url:z29.string(),provider:z29.literal("firecrawl"),count:z29.number(),links:z29.array(z29.object({url:z29.string(),title:z29.string().optional(),description:z29.string().optional()}))}),FirecrawlCrawlToolOutputSchema=z29.object({url:z29.string(),provider:z29.literal("firecrawl"),total:z29.number(),pages:z29.array(z29.object({url:z29.string(),title:z29.string().optional(),statusCode:z29.number().optional(),markdown:z29.string().optional(),summary:z29.string().optional(),links:z29.array(z29.string()).optional(),images:z29.array(z29.string()).optional(),html:z29.string().optional(),warning:z29.string().optional()})),warning:z29.string().optional()}),FirecrawlMonitorScheduleOutputSchema=z29.object({cron:z29.string().optional(),text:z29.string().optional(),timezone:z29.string().optional()}).passthrough(),FirecrawlMonitorTargetOutputSchema=z29.object({id:z29.string().optional(),type:z29.enum(["scrape","crawl","search"]).optional(),urls:z29.array(z29.string()).optional(),queries:z29.array(z29.string()).optional(),searchWindow:z29.string().optional(),maxResults:z29.number().optional(),includeDomains:z29.array(z29.string()).optional(),excludeDomains:z29.array(z29.string()).optional(),scrapeOptions:z29.record(z29.string(),z29.unknown()).optional()}).passthrough(),FirecrawlMonitorOutputSchema=z29.object({id:z29.string(),name:z29.string(),status:z29.string().optional(),schedule:FirecrawlMonitorScheduleOutputSchema.optional(),nextRunAt:z29.string().nullable().optional(),lastRunAt:z29.string().nullable().optional(),currentCheckId:z29.string().nullable().optional(),targets:z29.array(FirecrawlMonitorTargetOutputSchema).optional(),goal:z29.string().nullable().optional(),judgeEnabled:z29.boolean().optional(),estimatedCreditsPerMonth:z29.number().optional(),createdAt:z29.string().optional(),updatedAt:z29.string().optional()}).passthrough(),FirecrawlMonitorCheckOutputSchema=z29.object({id:z29.string(),monitorId:z29.string(),scheduledFor:z29.string().nullable().optional(),startedAt:z29.string().nullable().optional(),finishedAt:z29.string().nullable().optional(),estimatedCredits:z29.number().optional(),reservedCredits:z29.number().optional(),actualCredits:z29.number().optional(),billingStatus:z29.string().nullable().optional(),summary:z29.object({totalPages:z29.number().optional(),same:z29.number().optional(),changed:z29.number().optional(),new:z29.number().optional(),removed:z29.number().optional(),error:z29.number().optional()}).passthrough().optional(),error:z29.string().nullable().optional(),createdAt:z29.string().optional(),updatedAt:z29.string().optional()}).passthrough(),FirecrawlMonitorListToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitors:z29.array(FirecrawlMonitorOutputSchema)}),FirecrawlMonitorDetailToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitor:FirecrawlMonitorOutputSchema}),FirecrawlMonitorDeleteToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitorId:z29.string(),deleted:z29.boolean()}),FirecrawlMonitorChecksToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitorId:z29.string(),checks:z29.array(FirecrawlMonitorCheckOutputSchema)}),FirecrawlMonitorCheckDetailToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitorId:z29.string(),check:FirecrawlMonitorCheckOutputSchema,next:z29.string().optional()}),FirecrawlToolKeySchema=z29.enum(["search","developer.search","research.search","research.paper","research.related","scrape","map","crawl","monitor.create","monitor.update","monitor.list","monitor.get","monitor.pause","monitor.resume","monitor.delete","monitor.run","monitor.checks","monitor.check"]),FirecrawlToolOutputSchema=z29.union([FirecrawlSearchToolOutputSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlScrapeToolOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema]),ProjectIntegrationToolRunBaseSchema=z29.object({projectId:z29.uuid(),integrationKey:z29.string().min(1),tool:z29.string().min(1),connectionAlias:z29.string().min(1).nullable().optional(),output:z29.record(z29.string(),z29.unknown()),executedAt:z29.coerce.date()}),ProjectIntegrationToolRunDTOSchema=z29.discriminatedUnion("authMode",[ProjectIntegrationToolRunBaseSchema.extend({authMode:z29.literal("fimo"),billing:ProjectIntegrationToolRunBillingSchema,usage:z29.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z29.literal("personal"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z29.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z29.literal("oauth"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z29.undefined().optional()})]),ProjectIntegrationToolRunDTO=createDTO(ProjectIntegrationToolRunDTOSchema),IntegrationsListResponseSchema=createResponseSchema(z29.array(ProjectIntegrationStatusDTOSchema)),IntegrationInfoResponseSchema=createResponseSchema(IntegrationInfoDTOSchema),ProjectIntegrationStatusResponseSchema=createResponseSchema(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationResponseSchema=createResponseSchema(ProjectIntegrationInstallationDTOSchema),ProjectIntegrationToolRunResponseSchema=createResponseSchema(ProjectIntegrationToolRunDTOSchema),StartProjectIntegrationConnectResponseResponseSchema=createResponseSchema(StartProjectIntegrationConnectResponseSchema),OrganizationIntegrationConnectionResponseSchema=createResponseSchema(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionsResponseSchema=createResponseSchema(z29.array(OrganizationIntegrationConnectionDTOSchema)),ProjectIntegrationConnectResponseResponseSchema=createResponseSchema(ProjectIntegrationConnectResponseSchema),AddProjectMcpIntegrationResponseResponseSchema=createResponseSchema(AddProjectMcpIntegrationResponseSchema),ReusableMcpServersResponseSchema=createResponseSchema(z29.array(ReusableMcpServerDTOSchema)),ProjectChannelBindingResponseSchema=createResponseSchema(ProjectChannelBindingDTOSchema),ProjectChannelBindingsResponseSchema=createResponseSchema(z29.array(ProjectChannelBindingDTOSchema)),ProjectChannelCandidatesResponseSchema=createResponseSchema(z29.array(ProjectChannelCandidateDTOSchema))}});import{z as z30}from"zod";var SCHEDULE_NOTIFICATION_TOPICS,ScheduleNotificationTopicSchema,USER_MANAGED_NOTIFICATION_TOPICS,UserManagedNotificationTopicSchema,MAX_SCHEDULE_SUBSCRIBERS,ScheduleSubscriberDeliveryStateSchema,ScheduleSubscriberCandidateSchema,ScheduleNotificationSettingsSchema,ScheduleNotificationSettingsResponseSchema,UpdateScheduleSubscribersRequestSchema,UserNotificationPreferenceSchema,UserNotificationPreferencesSchema,UserNotificationPreferencesResponseSchema,UpdateUserNotificationPreferenceRequestSchema,SCHEDULE_OPT_OUT_LINK_ACTIONS,ScheduleOptOutLinkActionSchema,SCHEDULE_OPT_OUT_ACTIONS,ScheduleOptOutActionSchema,ScheduleOptOutStateSchema,ScheduleOptOutResponseSchema,FollowedScheduleSchema,FollowedSchedulesSchema,FollowedSchedulesResponseSchema,init_schedule_notifications_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule-notifications.dto.js"(){"use strict";init_response();SCHEDULE_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance"],ScheduleNotificationTopicSchema=z30.enum(SCHEDULE_NOTIFICATION_TOPICS),USER_MANAGED_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance"],UserManagedNotificationTopicSchema=z30.enum(USER_MANAGED_NOTIFICATION_TOPICS),MAX_SCHEDULE_SUBSCRIBERS=5,ScheduleSubscriberDeliveryStateSchema=z30.enum(["deliverable","suppressed"]),ScheduleSubscriberCandidateSchema=z30.object({userId:z30.string().min(1),name:z30.string(),email:z30.string().min(1),subscribed:z30.boolean(),deliveryState:ScheduleSubscriberDeliveryStateSchema}),ScheduleNotificationSettingsSchema=z30.object({maxSubscribers:z30.number().int().positive(),subscriberCount:z30.number().int().nonnegative(),effectiveRecipientCount:z30.number().int().nonnegative(),currentUserSubscribed:z30.boolean(),candidates:z30.array(ScheduleSubscriberCandidateSchema).optional()}),ScheduleNotificationSettingsResponseSchema=createResponseSchema(ScheduleNotificationSettingsSchema),UpdateScheduleSubscribersRequestSchema=z30.object({userIds:z30.array(z30.string().min(1)).max(MAX_SCHEDULE_SUBSCRIBERS).refine(userIds=>new Set(userIds).size===userIds.length,"Follower ids must be unique.")}),UserNotificationPreferenceSchema=z30.object({topic:UserManagedNotificationTopicSchema,enabled:z30.boolean(),source:z30.enum(["default","explicit"])}),UserNotificationPreferencesSchema=z30.object({topics:z30.array(UserNotificationPreferenceSchema)}),UserNotificationPreferencesResponseSchema=createResponseSchema(UserNotificationPreferencesSchema),UpdateUserNotificationPreferenceRequestSchema=z30.object({enabled:z30.boolean()}),SCHEDULE_OPT_OUT_LINK_ACTIONS=["unfollow_schedule","disable_topic"],ScheduleOptOutLinkActionSchema=z30.enum(SCHEDULE_OPT_OUT_LINK_ACTIONS),SCHEDULE_OPT_OUT_ACTIONS=["unfollow_schedule","unfollow_all_schedules","disable_topic"],ScheduleOptOutActionSchema=z30.enum(SCHEDULE_OPT_OUT_ACTIONS),ScheduleOptOutStateSchema=z30.object({action:ScheduleOptOutActionSchema,topic:ScheduleNotificationTopicSchema,scheduleName:z30.string().nullable(),maskedEmail:z30.string().min(1),applied:z30.boolean(),expiresAt:z30.coerce.date()}),ScheduleOptOutResponseSchema=createResponseSchema(ScheduleOptOutStateSchema),FollowedScheduleSchema=z30.object({scheduleId:z30.string().min(1),scheduleName:z30.string(),projectId:z30.string().min(1),projectName:z30.string(),env:z30.string().min(1)}),FollowedSchedulesSchema=z30.object({schedules:z30.array(FollowedScheduleSchema)}),FollowedSchedulesResponseSchema=createResponseSchema(FollowedSchedulesSchema)}});import{z as z31}from"zod";var PROJECT_SECRET_KEY_PATTERN,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN,RESERVED_PROJECT_SECRET_KEYS,ProjectSecretKeySchema,ProjectScheduleStatusSchema,ProjectScheduleDTOSchema,ProjectScheduleDTO,CreateProjectScheduleRequestSchema,UpdateProjectScheduleRequestSchema,ProjectScheduleRunStatusSchema,ProjectScheduleRunTriggerSchema,ProjectScheduleRunSecretSnapshotStateSchema,ProjectScheduleRunSecretResolutionSchema,ProjectSchedulePolicySchema,SchedulePolicyStateSchema,ProjectSchedulePlanSnapshotSchema,ProjectScheduleUsageSchema,ProjectScheduleRunDTOSchema,ProjectScheduleRunDTO,ProjectScheduleRunSecretSnapshotSchema,ProjectScheduleRunDetailDTOSchema,ProjectScheduleRunDetailDTO,RunProjectScheduleRequestSchema,ProjectScheduleRunsQuerySchema,ProjectScheduleResponseSchema,ProjectSchedulesListDataSchema,ProjectSchedulesListResponseSchema,ProjectSchedulesOverviewResponseSchema,ProjectScheduleDetailDataSchema,ProjectScheduleDetailResponseSchema,ProjectScheduleRunsPageSchema,ProjectScheduleRunsResponseSchema,ProjectScheduleRunResponseSchema,ProjectScheduleRunDetailResponseSchema,init_schedule_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule.dto.js"(){"use strict";init_common();init_env();init_create_dto();init_response();init_schedule_notifications_dto();PROJECT_SECRET_KEY_PATTERN=/^[A-Z_][A-Z0-9_]*$/,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN=/^(PUBLIC_|VITE_|NEXT_PUBLIC_|NUXT_PUBLIC_)/,RESERVED_PROJECT_SECRET_KEYS=new Set([...FIMO_MANAGED_PROJECT_ENV_KEYS,"FIMO_SCHEDULE_ID","FIMO_SCHEDULE_RUN_ID","FIMO_SCHEDULE_NAME"]),ProjectSecretKeySchema=z31.string().min(1).max(255).superRefine((key,context)=>{PROJECT_SECRET_KEY_PATTERN.test(key)?RESERVED_PROJECT_SECRET_KEYS.has(key)?context.addIssue({code:"custom",message:`Secret key '${key}' is managed by Fimo and cannot be stored in project secrets.`}):PUBLIC_PROJECT_SECRET_PREFIX_PATTERN.test(key)&&context.addIssue({code:"custom",message:`Secret key '${key}' uses a public variable prefix. Store public values with fimo vars instead.`}):context.addIssue({code:"custom",message:`Secret key '${key}' must be UPPER_SNAKE_CASE.`})}),ProjectScheduleStatusSchema=z31.enum(["ok","failed"]),ProjectScheduleDTOSchema=BaseEntitySchema.extend({projectId:z31.uuid(),env:z31.string().min(1),name:z31.string().min(1),cron:z31.string().min(1),command:z31.string().min(1),secretKeys:z31.array(z31.string().min(1)),enabled:z31.boolean(),lastRunAt:z31.coerce.date().nullable(),lastStatus:ProjectScheduleStatusSchema.nullable(),lastError:z31.string().nullable(),overPolicyReasons:z31.array(z31.string()).optional()}),ProjectScheduleDTO=createDTO(ProjectScheduleDTOSchema),CreateProjectScheduleRequestSchema=z31.object({name:z31.string().min(1).max(120),cron:z31.string().min(1).max(120),command:z31.string().min(1).max(500),secretKeys:z31.array(ProjectSecretKeySchema).default([]),enabled:z31.boolean().optional()}),UpdateProjectScheduleRequestSchema=z31.object({name:z31.string().min(1).max(120).optional(),cron:z31.string().min(1).max(120).optional(),command:z31.string().min(1).max(500).optional(),secretKeys:z31.array(ProjectSecretKeySchema).optional()}).refine(request=>Object.keys(request).length>0,"Pass at least one schedule field to update."),ProjectScheduleRunStatusSchema=z31.enum(["queued","running","succeeded","failed","skipped"]),ProjectScheduleRunTriggerSchema=z31.enum(["cron","ui","cli"]),ProjectScheduleRunSecretSnapshotStateSchema=z31.enum(["pending","resolved","failed"]),ProjectScheduleRunSecretResolutionSchema=z31.enum(["resolved","missing","deleted","recreated","rotated"]),ProjectSchedulePolicySchema=z31.object({maxRuns:z31.number().int().positive(),retentionDays:z31.number().int().positive().nullable(),outputRetentionDays:z31.number().int().positive(),maxOutputBytes:z31.number().int().positive()}),SchedulePolicyStateSchema=z31.enum(["ok","near_limit","exhausted","over_policy"]),ProjectSchedulePlanSnapshotSchema=z31.object({code:z31.enum(["Free","Premium","Pro"]),source:z31.enum(["cached_subscription","free_fallback"]),activeSchedules:z31.object({used:z31.number().int().nonnegative(),limit:z31.number().int().positive()}),minCadenceMinutes:z31.number().int().positive(),maxRunMs:z31.number().int().positive(),concurrency:z31.object({used:z31.number().int().nonnegative(),limit:z31.number().int().positive()}),compute:z31.object({settledMs:z31.number().int().nonnegative(),reservedMs:z31.number().int().nonnegative(),includedMs:z31.number().int().positive(),remainingMs:z31.number().int().nonnegative(),resetsAt:z31.coerce.date()}),upgrade:z31.object({code:z31.literal("Pro"),activeSchedulesLimit:z31.number().int().positive(),minCadenceMinutes:z31.number().int().positive(),maxRunMs:z31.number().int().positive(),maxConcurrentRuns:z31.number().int().positive(),computeIncludedMs:z31.number().int().positive()}).optional(),state:SchedulePolicyStateSchema,overPolicyReasons:z31.array(z31.string())}),ProjectScheduleUsageSchema=z31.object({runCount:z31.number().int().nonnegative(),runsWithOutput:z31.number().int().nonnegative()}),ProjectScheduleRunDTOSchema=z31.object({id:z31.uuid(),scheduleId:z31.uuid(),projectId:z31.uuid(),env:z31.string().min(1),scheduleName:z31.string().min(1),command:z31.string().min(1),status:ProjectScheduleRunStatusSchema,trigger:ProjectScheduleRunTriggerSchema,triggeredBy:z31.object({id:z31.string().min(1),name:z31.string().min(1)}).nullable(),queuedAt:z31.coerce.date(),startedAt:z31.coerce.date().nullable(),finishedAt:z31.coerce.date().nullable(),exitCode:z31.number().int().nullable(),errorCode:z31.string().nullable(),error:z31.string().nullable(),outputBytes:z31.number().int().nonnegative(),outputTruncated:z31.boolean(),outputExpiresAt:z31.coerce.date().nullable(),metadataExpiresAt:z31.coerce.date().nullable()}),ProjectScheduleRunDTO=createDTO(ProjectScheduleRunDTOSchema),ProjectScheduleRunSecretSnapshotSchema=z31.object({state:ProjectScheduleRunSecretSnapshotStateSchema,capturedAt:z31.coerce.date().nullable(),items:z31.array(z31.object({key:z31.string().min(1),updatedAt:z31.coerce.date().nullable(),resolution:ProjectScheduleRunSecretResolutionSchema}))}),ProjectScheduleRunDetailDTOSchema=ProjectScheduleRunDTOSchema.extend({output:z31.string().nullable(),secretSnapshot:ProjectScheduleRunSecretSnapshotSchema}),ProjectScheduleRunDetailDTO=createDTO(ProjectScheduleRunDetailDTOSchema),RunProjectScheduleRequestSchema=z31.object({trigger:z31.enum(["ui","cli"])}),ProjectScheduleRunsQuerySchema=z31.object({limit:z31.coerce.number().int().min(1).max(100).default(25),cursor:z31.string().trim().min(1).optional(),status:ProjectScheduleRunStatusSchema.optional()}),ProjectScheduleResponseSchema=createResponseSchema(ProjectScheduleDTOSchema),ProjectSchedulesListDataSchema=z31.object({items:z31.array(ProjectScheduleDTOSchema),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectSchedulesListResponseSchema=createResponseSchema(z31.array(ProjectScheduleDTOSchema)),ProjectSchedulesOverviewResponseSchema=createResponseSchema(ProjectSchedulesListDataSchema),ProjectScheduleDetailDataSchema=z31.object({schedule:ProjectScheduleDTOSchema,usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema,notifications:ScheduleNotificationSettingsSchema.optional()}),ProjectScheduleDetailResponseSchema=createResponseSchema(ProjectScheduleDetailDataSchema),ProjectScheduleRunsPageSchema=z31.object({items:z31.array(ProjectScheduleRunDTOSchema),nextCursor:z31.string().nullable(),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectScheduleRunsResponseSchema=createResponseSchema(ProjectScheduleRunsPageSchema),ProjectScheduleRunResponseSchema=createResponseSchema(ProjectScheduleRunDTOSchema),ProjectScheduleRunDetailResponseSchema=createResponseSchema(ProjectScheduleRunDetailDTOSchema)}});import{z as z32}from"zod";var WORK_NOTIFICATION_TOPICS,WorkNotificationTopicSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationRecipientStateSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,WorkNotificationPreferencesSchema,WorkNotificationPreferencesResponseSchema,NotificationSubjectSchema,NotificationViewSchema,NotificationViewResponseSchema,NotificationListSchema,NotificationListResponseSchema,ListNotificationsQuerySchema,NotificationStateSchema,NotificationStateResponseSchema,UpdateNotificationStateRequestSchema,init_notification_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification.dto.js"(){"use strict";init_response();WORK_NOTIFICATION_TOPICS=["agent_question","agent_run_outcome","agent_retained_review","agent_conflict"],WorkNotificationTopicSchema=z32.enum(WORK_NOTIFICATION_TOPICS),NOTIFICATION_CHANNELS=["in_app","email"],NotificationChannelSchema=z32.enum(NOTIFICATION_CHANNELS),NOTIFICATION_ACTOR_KINDS=["user","agent","system"],NotificationActorKindSchema=z32.enum(NOTIFICATION_ACTOR_KINDS),NotificationActorSchema=z32.discriminatedUnion("kind",[z32.object({kind:z32.literal("user"),userId:z32.string().min(1)}).strict(),z32.object({kind:z32.literal("agent"),agentKey:z32.string().min(1).max(120),agentId:z32.uuid().optional()}).strict(),z32.object({kind:z32.literal("system")}).strict()]),NotificationSummarySchema=z32.string().trim().min(1).max(1200),NotificationRunOutcomeSchema=z32.enum(["completed","failed","cancelled"]),NotificationRetainedReasonSchema=z32.enum(["review","agent_requested","recovery"]),NotificationPayloadSchema=z32.discriminatedUnion("topic",[z32.object({topic:z32.literal("agent_question"),questionId:z32.uuid(),title:z32.string().trim().min(1).max(80),description:z32.string().trim().min(1).max(240)}).strict(),z32.object({topic:z32.literal("agent_run_outcome"),threadId:z32.uuid(),invocationId:z32.uuid(),outcome:NotificationRunOutcomeSchema,summary:NotificationSummarySchema}).strict(),z32.object({topic:z32.literal("agent_retained_review"),threadId:z32.uuid(),invocationId:z32.uuid().optional(),proposalId:z32.uuid().optional(),reason:NotificationRetainedReasonSchema,summary:NotificationSummarySchema}).strict(),z32.object({topic:z32.literal("agent_conflict"),mergeId:z32.uuid(),threadId:z32.uuid().optional(),summary:NotificationSummarySchema.optional()}).strict()]),NotificationEnvelopeSchema=z32.object({id:z32.uuid(),projectId:z32.uuid(),sourceKey:z32.string().min(1).max(255),actor:NotificationActorSchema,payloadVersion:z32.literal(1),payload:NotificationPayloadSchema,createdAt:z32.coerce.date()}),NotificationRecipientStateSchema=z32.object({id:z32.uuid(),notificationId:z32.uuid(),projectId:z32.uuid(),userId:z32.string().min(1),readAt:z32.coerce.date().nullable(),archivedAt:z32.coerce.date().nullable(),createdAt:z32.coerce.date(),updatedAt:z32.coerce.date()}),NotificationDeliveryStateSchema=z32.enum(["pending","sent","suppressed","failed"]),NotificationDeliverySchema=z32.object({id:z32.uuid(),notificationRecipientId:z32.uuid(),projectId:z32.uuid(),channel:NotificationChannelSchema,state:NotificationDeliveryStateSchema,attemptCount:z32.number().int().nonnegative(),nextAttemptAt:z32.coerce.date().nullable(),lastAttemptAt:z32.coerce.date().nullable(),sentAt:z32.coerce.date().nullable(),failureCode:z32.string().max(80).nullable(),createdAt:z32.coerce.date(),updatedAt:z32.coerce.date()}),NotificationPreferenceSchema=z32.object({topic:WorkNotificationTopicSchema,channel:z32.literal("email"),enabled:z32.boolean(),source:z32.enum(["default","explicit"])}),WorkNotificationPreferencesSchema=z32.object({topics:z32.array(NotificationPreferenceSchema)}),WorkNotificationPreferencesResponseSchema=createResponseSchema(WorkNotificationPreferencesSchema),NotificationSubjectSchema=z32.discriminatedUnion("kind",[z32.object({kind:z32.literal("question"),questionId:z32.uuid()}).strict(),z32.object({kind:z32.literal("run_outcome"),threadId:z32.uuid(),invocationId:z32.uuid(),outcome:NotificationRunOutcomeSchema}).strict(),z32.object({kind:z32.literal("retained_review"),threadId:z32.uuid(),invocationId:z32.uuid().nullable(),proposalId:z32.uuid().nullable(),reason:NotificationRetainedReasonSchema}).strict(),z32.object({kind:z32.literal("merge_conflict"),mergeId:z32.uuid(),threadId:z32.uuid().nullable()}).strict()]),NotificationViewSchema=z32.object({notification:NotificationEnvelopeSchema,recipient:NotificationRecipientStateSchema,subject:NotificationSubjectSchema}),NotificationViewResponseSchema=createResponseSchema(NotificationViewSchema),NotificationListSchema=z32.object({items:z32.array(NotificationViewSchema),nextCursor:z32.string().nullable(),unreadCount:z32.number().int().nonnegative()}),NotificationListResponseSchema=createResponseSchema(NotificationListSchema),ListNotificationsQuerySchema=z32.object({topic:WorkNotificationTopicSchema.optional(),actorKind:NotificationActorKindSchema.optional(),actorId:z32.string().min(1).max(120).optional(),sourceKey:z32.string().min(1).max(255).optional(),unread:z32.stringbool().optional(),archived:z32.stringbool().optional(),limit:z32.coerce.number().int().min(1).max(100).optional(),cursor:z32.string().min(1).optional()}).refine(query=>query.actorId===void 0||query.actorKind!==void 0&&query.actorKind!=="system","actorId requires actorKind to be user or agent."),NotificationStateSchema=z32.object({recipient:NotificationRecipientStateSchema,unreadCount:z32.number().int().nonnegative()}),NotificationStateResponseSchema=createResponseSchema(NotificationStateSchema),UpdateNotificationStateRequestSchema=z32.object({read:z32.boolean().optional(),archived:z32.boolean().optional()}).refine(body=>body.read!==void 0||body.archived!==void 0,"Provide at least one of read or archived.")}});import{z as z33}from"zod";var AuditLogRowDTOSchema,AuditLogRowDTO,AuditLogListResponseSchema,AuditLogQuerySchema,init_audit_log_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/audit-log.dto.js"(){"use strict";init_audit_log();init_create_dto();init_response();AuditLogRowDTOSchema=z33.object({id:z33.uuid(),occurredAt:z33.coerce.date(),projectId:z33.uuid().nullable(),env:z33.string().nullable(),actor:z33.string().nullable(),actorKind:AuditActorKindSchema.nullable().optional(),action:AuditActionSchema,resource:z33.string().nullable().optional(),outcome:AuditOutcomeSchema,metadata:z33.unknown().optional(),ipAddress:z33.string().nullable().optional(),userAgent:z33.string().nullable().optional(),error:z33.string().nullable().optional()}),AuditLogRowDTO=createDTO(AuditLogRowDTOSchema),AuditLogListResponseSchema=createResponseSchema(z33.object({rows:z33.array(AuditLogRowDTOSchema),nextCursor:z33.string().nullable()})),AuditLogQuerySchema=z33.object({env:z33.string().optional(),action:AuditActionSchema.optional(),actor:z33.string().optional(),from:z33.coerce.date().optional(),to:z33.coerce.date().optional(),limit:z33.coerce.number().int().min(1).max(200).optional(),cursor:z33.string().optional()})}});import{z as z34}from"zod";var DiffRefSchema,InlineSchema,SummaryBlockSchema,EnvDiffSummarySchema,EnvDiffSummaryResultSchema,EnvDiffSummaryResultDTO,EnvDiffSummaryResponseSchema,init_env_diff_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-diff-summary.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();DiffRefSchema=z34.object({surface:SurfaceNameSchema,key:z34.string(),label:z34.string()}),InlineSchema=z34.object({text:z34.string(),ref:DiffRefSchema.optional()}),SummaryBlockSchema=z34.discriminatedUnion("type",[z34.object({type:z34.literal("paragraph"),content:z34.array(InlineSchema).max(24)}),z34.object({type:z34.literal("preview"),ref:DiffRefSchema,caption:z34.string().optional()}),z34.object({type:z34.literal("code"),code:z34.string(),lang:z34.string().optional(),caption:z34.string().optional()}),z34.object({type:z34.literal("risk"),level:z34.enum(["warning","error"]),content:z34.array(InlineSchema).max(24)}),z34.object({type:z34.literal("list"),items:z34.array(z34.array(InlineSchema).max(24)).max(8)})]),EnvDiffSummarySchema=z34.object({headline:z34.string(),blocks:z34.array(SummaryBlockSchema).max(15)}),EnvDiffSummaryResultSchema=z34.object({summary:EnvDiffSummarySchema,fingerprint:z34.string(),generatedAt:z34.coerce.date(),cached:z34.boolean().optional(),credits:z34.number().int().nonnegative().optional()}),EnvDiffSummaryResultDTO=createDTO(EnvDiffSummaryResultSchema),EnvDiffSummaryResponseSchema=createResponseSchema(EnvDiffSummaryResultSchema)}});import{z as z35}from"zod";var PROJECT_ANALYTICS_PRESETS,PROJECT_ANALYTICS_GROUP_BY_OPTIONS,ProjectDailyVisitorsDTOSchema,ProjectAnalyticsBreakdownItemDTOSchema,ProjectAnalyticsPageBreakdownItemDTOSchema,ProjectAnalyticsRangeDTOSchema,ProjectAnalyticsAnnotationDTOSchema,ProjectPageviewAnalyticsDTOSchema,ProjectPageviewAnalyticsDTO,ProjectAnalyticsAnnotationDTO,init_project_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-analytics.dto.js"(){"use strict";init_create_dto();PROJECT_ANALYTICS_PRESETS=["today","yesterday","this_week","this_month","last_7_days","last_30_days","last_90_days","last_week","last_month","last_quarter","last_year","custom"],PROJECT_ANALYTICS_GROUP_BY_OPTIONS=["day","week","month","quarter"],ProjectDailyVisitorsDTOSchema=z35.object({date:z35.string(),visitors:z35.number().int().nonnegative()}),ProjectAnalyticsBreakdownItemDTOSchema=z35.object({key:z35.string(),visitors:z35.number().int().nonnegative(),pageviews:z35.number().int().nonnegative()}),ProjectAnalyticsPageBreakdownItemDTOSchema=z35.object({path:z35.string(),pageName:z35.string().nullable().optional(),visitors:z35.number().int().nonnegative(),pageviews:z35.number().int().nonnegative()}),ProjectAnalyticsRangeDTOSchema=z35.object({preset:z35.enum(PROJECT_ANALYTICS_PRESETS),requestedFrom:z35.string(),requestedTo:z35.string(),effectiveFrom:z35.string(),effectiveTo:z35.string(),isRetentionLimited:z35.boolean(),groupBy:z35.enum(PROJECT_ANALYTICS_GROUP_BY_OPTIONS)}),ProjectAnalyticsAnnotationDTOSchema=z35.object({date:z35.string(),content:z35.string(),updatedAt:z35.string(),updatedByUserId:z35.string()}),ProjectPageviewAnalyticsDTOSchema=z35.object({range:ProjectAnalyticsRangeDTOSchema,visitors:z35.number().int().nonnegative(),pageviews:z35.number().int().nonnegative(),bounceRate:z35.number().min(0).max(100),viewsPerVisit:z35.number().nonnegative(),averageVisitDurationSeconds:z35.number().nonnegative(),visitorsSeries:z35.array(ProjectDailyVisitorsDTOSchema),topPages:z35.array(ProjectAnalyticsPageBreakdownItemDTOSchema),topBrowsers:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),topDevices:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z35.array(ProjectAnalyticsAnnotationDTOSchema)}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsAnnotationDTO=createDTO(ProjectAnalyticsAnnotationDTOSchema)}});import{z as z36}from"zod";var ProjectInviteDTOSchema,ProjectInviteDTO,CreatedProjectInviteDTOSchema,CreatedProjectInviteDTO,AcceptedProjectInviteDTOSchema,AcceptedProjectInviteDTO,init_project_invite_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-invite.dto.js"(){"use strict";init_common();init_create_dto();ProjectInviteDTOSchema=z36.object({id:z36.string(),email:z36.email(),roleKey:ProjectRoleKeySchema,status:ProjectInviteStatusSchema,expiresAt:z36.coerce.date(),createdAt:z36.coerce.date(),inviterUserId:z36.string()}),ProjectInviteDTO=createDTO(ProjectInviteDTOSchema),CreatedProjectInviteDTOSchema=z36.object({id:z36.string(),token:z36.string()}),CreatedProjectInviteDTO=createDTO(CreatedProjectInviteDTOSchema),AcceptedProjectInviteDTOSchema=z36.object({success:z36.boolean(),projectId:z36.string().optional()}),AcceptedProjectInviteDTO=createDTO(AcceptedProjectInviteDTOSchema)}});import{z as z37}from"zod";var PublicUserDTOSchema,PublicUserDTO,ReferralCountCTOSchema,ReferralCountCTO,ReferralSummaryCTOSchema,ReferralSummaryCTO,AuthenticatedUserDTOSchema,AuthenticatedUserDTO,AuthenticatedUserResponseSchema,ReferralCountResponseSchema,ReferralSummaryResponseSchema,init_user_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/user.dto.js"(){"use strict";init_create_dto();init_response();PublicUserDTOSchema=z37.object({id:z37.string(),name:z37.string(),image:z37.string().nullable()}),PublicUserDTO=createDTO(PublicUserDTOSchema),ReferralCountCTOSchema=z37.object({count:z37.int()}),ReferralCountCTO=createDTO(ReferralCountCTOSchema),ReferralSummaryCTOSchema=z37.object({counts:z37.object({signed_up:z37.int(),activated:z37.int()}),credits:z37.object({total:z37.int()})}),ReferralSummaryCTO=createDTO(ReferralSummaryCTOSchema),AuthenticatedUserDTOSchema=PublicUserDTOSchema.extend({email:z37.email(),emailVerified:z37.boolean(),createdAt:z37.coerce.date(),updatedAt:z37.coerce.date()}),AuthenticatedUserDTO=createDTO(AuthenticatedUserDTOSchema),AuthenticatedUserResponseSchema=createResponseSchema(AuthenticatedUserDTOSchema),ReferralCountResponseSchema=createResponseSchema(ReferralCountCTOSchema),ReferralSummaryResponseSchema=createResponseSchema(ReferralSummaryCTOSchema)}});import{z as z38}from"zod";var ProjectAccessItemDTOSchema,ProjectAccessItemDTO,PROJECT_PERMISSION_KEYS,ProjectPermissionKeySchema,ProjectPermissionsDTOSchema,ProjectPermissionsDTO,ProjectAccessDTOSchema,ProjectAccessDTO,AccessMutationResponseSchema,InviteAcceptResponseSchema,init_project_access_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-access.dto.js"(){"use strict";init_common();init_create_dto();init_response();init_project_invite_dto();init_user_dto();ProjectAccessItemDTOSchema=z38.object({id:z38.string(),principalType:ProjectPrincipalTypeSchema,principalId:z38.string().nullable(),roleKey:ProjectRoleKeySchema,createdAt:z38.coerce.date(),expiresAt:z38.coerce.date().nullable(),user:PublicUserDTOSchema.nullable()}),ProjectAccessItemDTO=createDTO(ProjectAccessItemDTOSchema),PROJECT_PERMISSION_KEYS=["project:read","project:manage","project:publish","project:unpublish","project:duplicate","project:export","project:import","project:transfer","project:delete","acl:read","acl:grant","member:read","member:change-role","invite:read","invite:send","invite:revoke","asset:read","asset:upload","asset:manage","asset:delete","code:view","code:edit","content:view","content:edit","chat:read","chat:prompt","history:view","history:manage","comment:read","comment:create","comment:delete","integration:run","sync:github","webhook:read","webhook:manage","schedule:read","schedule:manage","preview:view","realtime:connect","analytics:view","logs:view","domain:manage","agent:run"],ProjectPermissionKeySchema=z38.enum(PROJECT_PERMISSION_KEYS),ProjectPermissionsDTOSchema=z38.object({role:ProjectRoleKeyWithSystemSchema.nullable(),permissions:z38.record(z38.string(),z38.boolean())}),ProjectPermissionsDTO=createDTO(ProjectPermissionsDTOSchema),ProjectAccessDTOSchema=z38.object({access:z38.array(ProjectAccessItemDTOSchema),invites:z38.array(ProjectInviteDTOSchema),organization:z38.object({name:z38.string().nullable(),logo:z38.string().nullable()}).nullable()}),ProjectAccessDTO=createDTO(ProjectAccessDTOSchema),AccessMutationResponseSchema=createResponseSchema(z38.object({success:z38.boolean()})),InviteAcceptResponseSchema=createResponseSchema(z38.object({success:z38.boolean(),projectId:z38.uuid()}))}});import{z as z39}from"zod";var PublicationStateDTOSchema,PublicationStateDTO,init_publication_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/publication.dto.js"(){"use strict";init_common();init_create_dto();PublicationStateDTOSchema=z39.object({publicationStatus:PublicationStatusSchema,appUrl:z39.string().nullable(),lastPublishedAt:z39.string().nullable()}),PublicationStateDTO=createDTO(PublicationStateDTOSchema)}});import{z as z40}from"zod";var SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();SandboxSessionDTOSchema=z40.object({url:z40.url(),expiresAt:z40.iso.datetime()}),SandboxSessionDTO=createDTO(SandboxSessionDTOSchema),SandboxSessionResponseSchema=createResponseSchema(SandboxSessionDTOSchema),PreviewInstallRepairSchema=z40.object({kind:z40.literal("dependency_build_scripts_blocked"),packageManager:z40.enum(["pnpm","yarn","bun"]),packages:z40.array(z40.string()),configFile:z40.string(),approvalKey:z40.string(),command:z40.string().optional()}),SandboxSessionInstallPolicyErrorSchema=z40.object({code:z40.literal("PREVIEW_INSTALL_POLICY_BLOCKED"),message:z40.string(),repair:PreviewInstallRepairSchema})}});import{z as z41}from"zod";var OrganizationDTOSchema,OrganizationDTO,MemberUserDTOSchema,OrganizationMemberDTOSchema,OrganizationMemberDTO,init_organization_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization.dto.js"(){"use strict";init_common();init_create_dto();OrganizationDTOSchema=BaseEntitySchema.extend({name:z41.string(),slug:z41.string().nullable(),logo:z41.string().nullable(),metadata:z41.record(z41.string(),z41.unknown()).nullable()}),OrganizationDTO=createDTO(OrganizationDTOSchema),MemberUserDTOSchema=z41.object({id:z41.string(),name:z41.string(),email:z41.email(),image:z41.string().nullable()}),OrganizationMemberDTOSchema=z41.object({id:z41.string(),userId:z41.string(),organizationId:z41.string(),role:OrganizationRoleSchema,user:MemberUserDTOSchema,createdAt:z41.coerce.date()}),OrganizationMemberDTO=createDTO(OrganizationMemberDTOSchema)}});import{z as z42}from"zod";var CancellationReasonCodeSchema,CancellationFeedbackDTOSchema,CancellationFeedbackDTO,PlanMigrationAcceptDTOSchema,PlanMigrationPreviewDTOSchema,PlanMigrationPreviewDTO,PlanMigrationStateSchema,PlanMigrationOfferDTOSchema,PlanMigrationOfferDTO,AiCreditsEntitlementSchema,EntitlementsDTOSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AgentRuntimeUsageStateSchema,AgentRuntimeUsageDTOSchema,AgentRuntimeUsageDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_common();init_create_dto();init_response();CancellationReasonCodeSchema=z42.enum(["just_testing","too_expensive","not_using_enough","missing_features","bug_or_technical_issue","switching_to_another_tool","closing_or_pausing_business","other"]),CancellationFeedbackDTOSchema=z42.object({reason:CancellationReasonCodeSchema,details:z42.string().trim().max(1e3).nullable().optional().transform(value=>value||null)}).superRefine((value,ctx)=>{value.reason==="other"&&!value.details&&ctx.addIssue({code:z42.ZodIssueCode.custom,message:"Details are required when selecting other.",path:["details"]})}),CancellationFeedbackDTO=createDTO(CancellationFeedbackDTOSchema),PlanMigrationAcceptDTOSchema=z42.object({offerVersion:z42.string().trim().min(1),unusedPremiumCreditAmount:z42.number().int().nonnegative(),amountDueNow:z42.number().int().nonnegative(),renewsOn:z42.string()}),PlanMigrationPreviewDTOSchema=z42.object({currency:z42.string().trim().min(1),unusedPremiumCreditAmount:z42.number().int().nonnegative(),amountDueNow:z42.number().int().nonnegative(),startsAt:z42.string(),renewsAt:z42.string(),nextRenewalAmount:z42.number().int().nonnegative()}),PlanMigrationPreviewDTO=createDTO(PlanMigrationPreviewDTOSchema),PlanMigrationStateSchema=z42.enum(["legacy_active","notified","accepting","accepted","declining","free","expired","canceled"]),PlanMigrationOfferDTOSchema=z42.object({id:z42.string(),organizationId:z42.string(),legacySubscriptionId:z42.string(),offeredPlanCode:z42.string(),offeredPlanName:z42.string(),offeredPriceAmount:z42.number(),offeredCurrency:z42.string(),offerVersion:z42.string(),state:PlanMigrationStateSchema,checkoutToken:z42.string().nullable(),deadlineAt:z42.string(),transitions:z42.array(z42.object({event:z42.string(),fromState:PlanMigrationStateSchema,toState:PlanMigrationStateSchema,createdAt:z42.string()}))}),PlanMigrationOfferDTO=createDTO(PlanMigrationOfferDTOSchema),AiCreditsEntitlementSchema=z42.object({included:z42.number().optional(),unitPrice:z42.number().optional(),dailyCap:z42.number().nullable().optional()}),EntitlementsDTOSchema=z42.object({ai_credits:AiCreditsEntitlementSchema.optional(),analytics:z42.object({retentionDays:z42.number().int().positive(),canUseExtendedDateRanges:z42.boolean()}).optional(),history:z42.object({retentionDays:z42.number().int().positive()}).optional(),members:z42.object({canInvite:z42.boolean(),maxMembers:z42.number().int().positive().nullable()}).optional(),domains:z42.object({canUseCustomDomains:z42.boolean(),maxDomains:z42.number().int().nonnegative().nullable()}).optional()}),SubscriptionDTOSchema=z42.object({id:z42.string(),external_id:z42.string(),customerId:z42.string(),planId:z42.string(),planCode:z42.union([TemplateCodeSchema,z42.literal("Unknown")]),currentPeriod:z42.object({start:z42.string(),end:z42.string().nullable()}),cancelAt:z42.string().nullable(),entitlements:EntitlementsDTOSchema,currency:z42.string(),nextPaymentAt:z42.string().nullable(),baseAmount:z42.number()}),SubscriptionDTO=createDTO(SubscriptionDTOSchema),DailyCreditsStatusSchema=z42.object({totalCap:z42.number(),dailyCap:z42.number(),usedTotal:z42.number()}),CreditBalanceDTOSchema=z42.object({total:z42.number(),base:z42.number(),dailyBase:z42.number(),purchases:z42.number(),awards:z42.number(),daily:DailyCreditsStatusSchema.optional()}),CreditBalanceDTO=createDTO(CreditBalanceDTOSchema),MinimalCreditBalanceDTOSchema=z42.object({total:z42.number(),nearLimit:z42.boolean(),canChat:z42.boolean(),daily:DailyCreditsStatusSchema.optional()}),MinimalCreditBalanceDTO=createDTO(MinimalCreditBalanceDTOSchema),ProjectCreditBucketsDTOSchema=z42.object({dailyFreeAvailable:z42.number(),monthlyAvailable:z42.number(),purchasedAvailable:z42.number(),awardedAvailable:z42.number()}),ProjectDailyCreditAllowanceDTOSchema=z42.object({periodCap:z42.number(),dailyGrant:z42.number(),usedThisPeriod:z42.number(),remainingThisPeriod:z42.number()}),ProjectCreditBalanceDTOSchema=z42.object({projectId:z42.uuid(),organizationId:z42.string(),balance:z42.object({totalAvailable:z42.number(),nearLimit:z42.boolean(),canUseAi:z42.boolean(),buckets:ProjectCreditBucketsDTOSchema}),allowances:z42.object({dailyCredits:ProjectDailyCreditAllowanceDTOSchema.nullable()})}),ProjectCreditBalanceDTO=createDTO(ProjectCreditBalanceDTOSchema),AgentRuntimeUsageStateSchema=z42.enum(["ok","near_limit","exhausted","unavailable"]),AgentRuntimeUsageDTOSchema=z42.object({planCode:z42.enum(["Free","Premium","Pro"]),state:AgentRuntimeUsageStateSchema,usage:z42.object({source:z42.enum(["cached_subscription","free_fallback"]),settledMs:z42.number().int().nonnegative(),reservedMs:z42.number().int().nonnegative(),includedMs:z42.number().int().positive(),remainingMs:z42.number().int().nonnegative(),resetsAt:z42.coerce.date()}).nullable()}),AgentRuntimeUsageDTO=createDTO(AgentRuntimeUsageDTOSchema),AutoRefillConfigDTOSchema=z42.discriminatedUnion("enabled",[z42.object({enabled:z42.literal(!0),thresholdUsd:z42.number().nonnegative(),refillAmountUsd:z42.number().nonnegative()}),z42.object({enabled:z42.literal(!1),thresholdUsd:z42.number().nonnegative().nullable(),refillAmountUsd:z42.null()})]),AutoRefillConfigDTO=createDTO(AutoRefillConfigDTOSchema),UpdateAutoRefillDTOSchema=z42.discriminatedUnion("enabled",[z42.object({enabled:z42.literal(!0),thresholdUsd:z42.number().min(.01).multipleOf(.01),refillAmountUsd:z42.number().min(.01).multipleOf(.01)}).strict(),z42.object({enabled:z42.literal(!1),thresholdUsd:z42.number().min(.01).multipleOf(.01)}).strict()]),SuccessfulPurchaseDTOSchema=z42.object({invoiceId:z42.string(),newBalance:z42.int(),creditCount:z42.int(),amountUsd:z42.number()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z42.object({url:z42.string()}),PortalDTO=createDTO(PortalDTOSchema),CreditBalanceResponseSchema=createResponseSchema(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema(AutoRefillConfigDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema(PortalDTOSchema)}});import{z as z43}from"zod";var PaymentMethodDTOSchema,PaymentMethodDTO,init_payment_method_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/payment-method.dto.js"(){"use strict";init_create_dto();PaymentMethodDTOSchema=z43.object({brand:z43.string(),last4:z43.string(),exp:z43.string(),isDefault:z43.boolean()}),PaymentMethodDTO=createDTO(PaymentMethodDTOSchema)}});import{z as z44}from"zod";var FieldDefinitionSchema,SchemaFieldPathSchema,SchemaMigrationOperationSchema,ContentTypeI18nSchema,ContentFieldGroupSchema,ContentTypeDTOSchema,ContentTypeDTO,SchemaDTOSchema,SchemaDTO,EntryDTOSchema,EntryDTO,PaginatedEntriesDTOSchema,PaginatedEntriesDTO,EntryCountDTOSchema,EntryCountDTO,EntryCountsDTOSchema,EntryCountsDTO,EntryTranslationGapDTOSchema,EntryTranslationGapDTO,EntryTranslationGapResponseSchema,ContentTypeResponseSchema,ContentTypeListResponseSchema,SchemaResponseSchema,EntryResponseSchema,EntryListResponseSchema,MAX_BULK_ENTRIES,entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema,EntryWhereSchema,EntryMutationBodySchema,entryIdsSchema,EntrySqlQueryRequestSchema,BulkCreateEntriesRequestSchema,BulkUpdateEntriesRequestSchema,BulkDeleteEntriesRequestSchema,EntrySqlQueryResponseSchema,EntrySqlQueryResponseDTO,BulkCreateEntriesResponseSchema,BulkCreateEntriesResponseDTO,BulkUpdateEntriesResponseSchema,BulkUpdateEntriesResponseDTO,BulkDeleteEntriesResponseSchema,BulkDeleteEntriesResponseDTO,init_content_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/content.dto.js"(){"use strict";init_common();init_content_fields();init_create_dto();init_response();FieldDefinitionSchema=ContentFieldDefinitionSchema,SchemaFieldPathSchema=z44.string().superRefine((path52,ctx)=>{let segments=path52.split(".");(segments.length===0||segments.some(segment=>!CONTENT_FIELD_NAME_PATTERN.test(segment)))&&ctx.addIssue({code:"custom",message:"Field paths must use dot-separated field or block variant names."})}),SchemaMigrationOperationSchema=z44.object({type:z44.literal("renameField"),contentType:z44.string().regex(CONTENT_TYPE_NAME_PATTERN),from:SchemaFieldPathSchema,to:SchemaFieldPathSchema}).strict(),ContentTypeI18nSchema=z44.object({enabled:z44.boolean()}).strict(),ContentFieldGroupSchema=z44.object({id:z44.string().regex(CONTENT_FIELD_NAME_PATTERN),label:z44.string().min(1).max(255),default:z44.boolean().optional()}).strict(),ContentTypeDTOSchema=z44.object({id:z44.string(),name:z44.string(),label:z44.string(),isSingleton:z44.boolean(),i18n:ContentTypeI18nSchema,groups:z44.array(ContentFieldGroupSchema).default([]),fields:z44.record(z44.string(),FieldDefinitionSchema),createdAt:z44.string(),updatedAt:z44.string()}),ContentTypeDTO=createDTO(ContentTypeDTOSchema),SchemaDTOSchema=z44.object({contentTypes:z44.array(ContentTypeDTOSchema)}),SchemaDTO=createDTO(SchemaDTOSchema),EntryDTOSchema=z44.object({id:z44.string(),entryId:z44.string(),documentId:z44.string(),slug:z44.string(),locale:z44.string().optional(),createdAt:z44.string(),updatedAt:z44.string(),__fimo:z44.object({contentType:z44.string()})}).passthrough(),EntryDTO=createDTO(EntryDTOSchema),PaginatedEntriesDTOSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({limit:z44.number(),offset:z44.number(),total:z44.number(),hasMore:z44.boolean()})}),PaginatedEntriesDTO=createDTO(PaginatedEntriesDTOSchema),EntryCountDTOSchema=z44.object({contentType:z44.string(),count:z44.number()}),EntryCountDTO=createDTO(EntryCountDTOSchema),EntryCountsDTOSchema=z44.object({counts:z44.array(EntryCountDTOSchema)}),EntryCountsDTO=createDTO(EntryCountsDTOSchema),EntryTranslationGapDTOSchema=z44.object({count:z44.number().int().nonnegative(),sourceLocale:z44.string(),targetLocale:z44.string()}),EntryTranslationGapDTO=createDTO(EntryTranslationGapDTOSchema),EntryTranslationGapResponseSchema=createResponseSchema(EntryTranslationGapDTOSchema),ContentTypeResponseSchema=createResponseSchema(ContentTypeDTOSchema),ContentTypeListResponseSchema=createResponseSchema(z44.array(ContentTypeDTOSchema)),SchemaResponseSchema=createResponseSchema(SchemaDTOSchema),EntryResponseSchema=createResponseSchema(EntryDTOSchema),EntryListResponseSchema=createResponseSchema(z44.array(EntryDTOSchema)),MAX_BULK_ENTRIES=1e3,entryWhereScalarSchema=z44.union([z44.string(),z44.number(),z44.boolean(),z44.null()]),entryWhereOperatorSchema=z44.object({$eq:entryWhereScalarSchema.optional(),$ne:entryWhereScalarSchema.optional(),$gt:entryWhereScalarSchema.optional(),$gte:entryWhereScalarSchema.optional(),$lt:entryWhereScalarSchema.optional(),$lte:entryWhereScalarSchema.optional(),$in:z44.array(entryWhereScalarSchema).optional(),$nin:z44.array(entryWhereScalarSchema).optional(),$contains:z44.string().optional(),$startsWith:z44.string().optional(),$null:z44.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema=z44.record(z44.string(),z44.union([entryWhereScalarSchema,entryWhereOperatorSchema])),EntryWhereSchema=z44.record(z44.string(),z44.union([entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema])),EntryMutationBodySchema=z44.object({data:z44.record(z44.string(),z44.unknown()),locale:z44.string().min(1).optional(),documentId:z44.uuid().optional()}),entryIdsSchema=z44.array(z44.uuid()).min(1).max(MAX_BULK_ENTRIES),EntrySqlQueryRequestSchema=z44.object({sql:z44.string().min(1)}),BulkCreateEntriesRequestSchema=z44.object({entries:z44.array(EntryMutationBodySchema).min(1).max(MAX_BULK_ENTRIES)}),BulkUpdateEntriesRequestSchema=z44.union([z44.object({ids:entryIdsSchema,body:EntryMutationBodySchema}),z44.object({where:EntryWhereSchema,body:EntryMutationBodySchema}),z44.object({updates:z44.array(z44.object({id:z44.uuid(),body:EntryMutationBodySchema})).min(1).max(MAX_BULK_ENTRIES)})]),BulkDeleteEntriesRequestSchema=z44.union([z44.object({ids:entryIdsSchema,locale:z44.string().min(1).optional()}),z44.object({where:EntryWhereSchema,locale:z44.string().min(1).optional()})]),EntrySqlQueryResponseSchema=z44.object({data:z44.array(z44.record(z44.string(),z44.unknown())),meta:z44.object({rowCount:z44.number().int().nonnegative(),truncated:z44.boolean()})}),EntrySqlQueryResponseDTO=createDTO(EntrySqlQueryResponseSchema),BulkCreateEntriesResponseSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({created:z44.number().int().nonnegative()})}),BulkCreateEntriesResponseDTO=createDTO(BulkCreateEntriesResponseSchema),BulkUpdateEntriesResponseSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({updated:z44.number().int().nonnegative(),missing:z44.array(z44.string())})}),BulkUpdateEntriesResponseDTO=createDTO(BulkUpdateEntriesResponseSchema),BulkDeleteEntriesResponseSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({deleted:z44.number().int().nonnegative(),missing:z44.array(z44.string())})}),BulkDeleteEntriesResponseDTO=createDTO(BulkDeleteEntriesResponseSchema)}});import{z as z45}from"zod";var UniqueConflictSchema,UniqueConflictErrorSchema,init_unique_conflict_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unique-conflict.dto.js"(){"use strict";UniqueConflictSchema=z45.object({index:z45.number().int().nonnegative(),contentType:z45.string(),field:z45.string(),value:z45.string(),against:z45.enum(["stored","batch"]),ownerDocumentId:z45.uuid().optional(),ownerIndex:z45.number().int().nonnegative().optional()}),UniqueConflictErrorSchema=z45.object({code:z45.literal("unique_conflict"),message:z45.string(),conflicts:z45.array(UniqueConflictSchema),truncated:z45.boolean().optional()})}});import{z as z46}from"zod";var UniqueConflictIssueSchema,SchemaTransitionIssueSchema,SchemaTransitionRejectedErrorSchema,init_schema_transition_rejected_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schema-transition-rejected.dto.js"(){"use strict";UniqueConflictIssueSchema=z46.object({kind:z46.literal("unique_conflict"),contentType:z46.string(),field:z46.string(),value:z46.string(),documentCount:z46.number().int().positive(),documentIds:z46.array(z46.uuid()),documentIdsTruncated:z46.boolean().optional()}),SchemaTransitionIssueSchema=UniqueConflictIssueSchema,SchemaTransitionRejectedErrorSchema=z46.object({code:z46.literal("schema_transition_rejected"),message:z46.string(),issues:z46.array(SchemaTransitionIssueSchema),truncated:z46.boolean().optional()})}});import{z as z47}from"zod";var CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH,CmsContentTypeNameSchema,CmsFieldNameSchema,CmsCollectionOrderSchema,CmsFieldOrderSchema,CmsListSortSchema,CmsDisplayDefaultsDTOSchema,CmsDisplayDefaultsDTO,CmsCollectionOrderRequestSchema,CmsFieldOrderRequestSchema,CmsDisplayDefaultsResponseSchema,init_cms_display_defaults_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/cms-display-defaults.dto.js"(){"use strict";init_common();init_create_dto();init_response();CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS=200,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH=255,CmsContentTypeNameSchema=z47.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_TYPE_NAME_PATTERN),CmsFieldNameSchema=z47.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_FIELD_NAME_PATTERN),CmsCollectionOrderSchema=z47.array(CmsContentTypeNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsFieldOrderSchema=z47.array(CmsFieldNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsListSortSchema=z47.object({field:CmsFieldNameSchema,direction:z47.enum(["asc","desc"])}),CmsDisplayDefaultsDTOSchema=z47.object({collectionOrder:CmsCollectionOrderSchema.nullable(),fieldOrders:z47.record(CmsContentTypeNameSchema,CmsFieldOrderSchema),listSorts:z47.record(CmsContentTypeNameSchema,CmsListSortSchema)}),CmsDisplayDefaultsDTO=createDTO(CmsDisplayDefaultsDTOSchema),CmsCollectionOrderRequestSchema=z47.object({order:CmsCollectionOrderSchema}),CmsFieldOrderRequestSchema=z47.object({order:CmsFieldOrderSchema}),CmsDisplayDefaultsResponseSchema=createResponseSchema(CmsDisplayDefaultsDTOSchema)}});import{z as z48}from"zod";var AssetPathItemSchema,AssetDTOSchema,AssetDTO,AssetTreeNodeDTOSchema,AssetTreeNodeDTO,AssetResponseSchema,AssetListResponseSchema,init_asset_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset.dto.js"(){"use strict";init_common();init_create_dto();init_response();AssetPathItemSchema=z48.object({id:z48.string(),name:z48.string()}),AssetDTOSchema=z48.object({id:z48.string(),name:z48.string(),type:AssetTypeSchema,originalFileName:z48.string().nullable(),parentId:z48.string().nullable(),mimeType:z48.string().nullable(),fileSize:z48.number().nullable(),url:z48.string().nullable(),storageKey:z48.string().nullable(),createdAt:z48.string(),updatedAt:z48.string(),altText:z48.string().nullable().optional(),caption:z48.string().nullable().optional(),aiCaption:z48.string().nullable().optional(),aiAltText:z48.string().nullable().optional(),aiTags:z48.array(z48.string()).nullable().optional(),aiPrimaryColor:z48.string().nullable().optional(),aiProcessingStatus:z48.string().nullable().optional(),width:z48.number().nullable().optional(),height:z48.number().nullable().optional(),path:z48.array(AssetPathItemSchema).optional(),hasChildren:z48.boolean().optional()}),AssetDTO=createDTO(AssetDTOSchema),AssetTreeNodeDTOSchema=AssetDTOSchema.extend({children:z48.lazy(()=>z48.array(AssetTreeNodeDTOSchema)).optional()}),AssetTreeNodeDTO=createDTO(AssetTreeNodeDTOSchema),AssetResponseSchema=createResponseSchema(AssetDTOSchema),AssetListResponseSchema=createResponseSchema(z48.array(AssetDTOSchema))}});import{z as z49}from"zod";var TranslationDTOSchema,TranslationDTO,init_translation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/translation.dto.js"(){"use strict";init_create_dto();TranslationDTOSchema=z49.object({key:z49.string(),value:z49.string().optional(),defaultValue:z49.string(),locale:z49.string()}),TranslationDTO=createDTO(TranslationDTOSchema)}});import{z as z50}from"zod";var DocumentNodeDTOSchema,DocumentTreeDTOSchema,DocumentPathDTOSchema,DocumentPathDTO,DocumentTreeResponseSchema,DocumentPathResponseSchema,init_document_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/document.dto.js"(){"use strict";init_create_dto();init_response();DocumentNodeDTOSchema=z50.object({id:z50.string(),name:z50.string(),type:z50.enum(["file","folder"]),path:z50.string(),children:z50.lazy(()=>z50.array(DocumentNodeDTOSchema)).optional()}),DocumentTreeDTOSchema=z50.array(DocumentNodeDTOSchema),DocumentPathDTOSchema=z50.object({path:z50.string(),exists:z50.boolean(),type:z50.enum(["file","folder"]).optional()}),DocumentPathDTO=createDTO(DocumentPathDTOSchema),DocumentTreeResponseSchema=createResponseSchema(DocumentTreeDTOSchema),DocumentPathResponseSchema=createResponseSchema(DocumentPathDTOSchema)}});import{z as z51}from"zod";var ChatMessageListDTOSchema,ChatMessagesPageDTOSchema,ChatLiveTurnDTOSchema,ChatLiveTurnStateDTOSchema,ChatLiveTurnStateDTO,ChatThreadMessageDTOSchema,ChatAttentionDTOSchema,ChatThreadMessagesPageDTOSchema,ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema,ChatNonStreamingOutcomeDTOSchema,ChatDeletionDTOSchema,ChatDeletionDTO,ChatMessageListResponseSchema,ChatMessagesPageResponseSchema,ChatDeletionResponseSchema,ChatClearErrorDTOSchema,init_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat.dto.js"(){"use strict";init_create_dto();init_response();init_project_dto();ChatMessageListDTOSchema=z51.array(ProjectMessageDTOSchema),ChatMessagesPageDTOSchema=z51.object({items:z51.array(ProjectMessagePublicDTOSchema),nextCursor:z51.string().nullable()}),ChatLiveTurnDTOSchema=z51.object({invocationId:z51.string(),step:z51.enum(["preparing","working","compacting","merging"]),startedAt:z51.string()}),ChatLiveTurnStateDTOSchema=z51.object({threadId:z51.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),ChatLiveTurnStateDTO=createDTO(ChatLiveTurnStateDTOSchema),ChatThreadMessageDTOSchema=z51.object({id:z51.string(),role:z51.enum(["user","assistant"]),parts:z51.array(z51.unknown()),metadata:z51.record(z51.string(),z51.unknown()).nullable(),versionId:z51.string().nullable().optional(),createdAt:z51.date().transform(value=>value.toISOString()),providerMessageId:z51.string().nullable().optional(),invocationId:z51.string().nullable().optional(),invocationStatus:z51.string().nullable().optional(),invocationTerminalReason:z51.string().nullable().optional()}),ChatAttentionDTOSchema=z51.object({type:z51.literal("merge_conflict"),merge:z51.object({mergeId:z51.string().uuid(),projectId:z51.string(),fromEnv:z51.string(),toEnv:z51.string()}),publishAfterMerge:z51.boolean()}),ChatThreadMessagesPageDTOSchema=z51.object({threadId:z51.string().nullable(),title:z51.string().nullable(),messages:z51.array(ChatThreadMessageDTOSchema),nextCursor:z51.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable().optional(),attention:ChatAttentionDTOSchema.nullable().optional()}),ChatReplayOutcomeDTOSchema=z51.object({kind:z51.literal("replay"),threadId:z51.string(),userMessageId:z51.string()}),ChatQueuedOutcomeDTOSchema=z51.object({kind:z51.literal("queued"),threadId:z51.string(),userMessageId:z51.string(),blockingRootId:z51.string()}),ChatBusyOutcomeDTOSchema=z51.object({kind:z51.literal("busy"),threadId:z51.string(),userMessageId:z51.string(),blockingRootId:z51.string().optional()}),ChatRefusedOutcomeDTOSchema=z51.object({kind:z51.literal("refused"),threadId:z51.string(),userMessageId:z51.string(),refusedInvocationId:z51.string(),terminalReason:z51.string()}),ChatNonStreamingOutcomeDTOSchema=z51.discriminatedUnion("kind",[ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema]),ChatDeletionDTOSchema=z51.object({success:z51.boolean(),deletedCount:z51.number()}),ChatDeletionDTO=createDTO(ChatDeletionDTOSchema),ChatMessageListResponseSchema=createResponseSchema(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema(ChatMessagesPageDTOSchema),ChatDeletionResponseSchema=createResponseSchema(ChatDeletionDTOSchema),ChatClearErrorDTOSchema=z51.object({code:z51.enum(["retained_conflict_busy","retained_conflict_cleanup_failed"]),message:z51.string()})}});import{z as z52}from"zod";var UploadResultDTOSchema,UploadResultDTO,UploadResultResponseSchema,init_upload_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/upload.dto.js"(){"use strict";init_common();init_create_dto();init_response();UploadResultDTOSchema=z52.object({url:z52.string().url(),key:z52.string(),size:z52.number(),contentType:z52.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema(UploadResultDTOSchema)}});import{z as z53}from"zod";var ServicePermissionsDTOSchema,ServicePermissionsDTO,ServicePermissionsResponseSchema,init_service_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/service.dto.js"(){"use strict";init_create_dto();init_response();ServicePermissionsDTOSchema=z53.object({canAccess:z53.boolean(),permissions:z53.record(z53.string(),z53.boolean()),role:z53.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema(ServicePermissionsDTOSchema)}});import{z as z54}from"zod";var OrganizationProjectsSearchQuerySchema,init_search_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/search.dto.js"(){"use strict";init_pagination();OrganizationProjectsSearchQuerySchema=PaginationQuerySchema.extend({q:z54.string().trim().default(""),sort:z54.enum(["recent","name","relevance"]).default("recent"),category:z54.string().optional()})}});import{z as z55}from"zod";var DomainStatusSchema,DomainSourceSchema,PaymentStatusSchema,DomainDTOSchema,DomainDTO,DomainSearchResultDTOSchema,DomainSearchResultDTO,DomainPricingDTOSchema,DomainPricingDTO,DomainContactSchema,DomainContactDTO,UpdateDomainContactsRequestSchema,SearchDomainsRequestSchema,CheckAvailabilityRequestSchema,DOMAIN_NAME_REGEX,DomainNameSchema,PurchaseDomainRequestSchema,UpdateDomainSettingsRequestSchema,RenewDomainRequestSchema,DomainResponseSchema,DomainListResponseSchema,DomainSearchResultListResponseSchema,DomainPricingResponseSchema,DomainContactResponseSchema,ContactVerificationStatusSchema,ContactVerificationStatusResponseSchema,init_registered_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/registered-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();DomainStatusSchema=z55.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z55.enum(["fimo","external"]),PaymentStatusSchema=z55.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z55.object({id:z55.string().uuid(),domain:z55.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z55.boolean(),price:z55.number().int().nullable(),renewalPrice:z55.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z55.string().nullable(),failureReason:z55.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z55.object({domain:z55.string(),available:z55.boolean(),premium:z55.boolean(),price:z55.number().nullable(),renewalPrice:z55.number().nullable(),purchaseType:z55.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z55.object({domain:z55.string(),price:z55.number().nullable(),renewalPrice:z55.number().nullable(),premium:z55.boolean(),allowedYears:z55.array(z55.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z55.object({firstName:z55.string().max(100),lastName:z55.string().max(100),companyName:z55.string().max(100).optional(),address1:z55.string().max(255),address2:z55.string().max(255).optional(),city:z55.string().max(100),state:z55.string().max(100),zip:z55.string().max(20),country:z55.string().max(2),phone:z55.string().max(30),email:z55.union([z55.string().email().max(255),z55.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z55.object({firstName:z55.string().min(1).max(100),lastName:z55.string().min(1).max(100),companyName:z55.string().max(100).optional(),address1:z55.string().min(1).max(255),address2:z55.string().max(255).optional(),city:z55.string().min(1).max(100),state:z55.string().min(1).max(100),zip:z55.string().min(1).max(20),country:z55.string().min(1).max(2),phone:z55.string().min(1).max(30),email:z55.string().email().max(255)}),SearchDomainsRequestSchema=z55.object({keyword:z55.string().min(1).max(100),tldFilter:z55.array(z55.string()).optional()}),CheckAvailabilityRequestSchema=z55.object({domains:z55.array(z55.string()).min(1).max(50)}),DOMAIN_NAME_REGEX=/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,DomainNameSchema=z55.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z55.object({domain:DomainNameSchema,years:z55.number().int().min(1).max(10).optional().default(3),autoRenew:z55.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z55.object({autoRenew:z55.boolean().optional()}),RenewDomainRequestSchema=z55.object({years:z55.number().int().min(1).max(10).optional().default(1),autoRenew:z55.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema(DomainDTOSchema),DomainListResponseSchema=createResponseSchema(z55.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema(z55.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z55.object({verified:z55.boolean(),email:z55.string().nullable(),verifyBy:z55.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema(ContactVerificationStatusSchema)}});import{z as z56}from"zod";var ProjectDomainStatusSchema,SSLStatusSchema,SSLValidationRecordSchema,SSLValidationErrorSchema,OwnershipVerificationSchema,ProjectDomainSSLDTOSchema,DomainProviderSchema,DomainTypeSchema,RedirectConfigSchema,ProjectDomainDTOSchema,ProjectDomainDTO,ProjectDomainListResponseSchema,ProjectDomainResponseSchema,AddProjectDomainRequestSchema,CheckProjectDomainHostnameReasonSchema,CheckProjectDomainHostnameResponseSchema,DeleteProjectDomainResponseSchema,init_project_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();ProjectDomainStatusSchema=z56.enum(["pending","active","pending_validation","active_redeploying","moved","deleted","pending_deletion","pending_migration","pending_provisioned","test_pending","test_active","test_active_apex","test_blocked","test_failed","provisioned","blocked"]),SSLStatusSchema=z56.enum(["initializing","pending_validation","pending_issuance","pending_deployment","pending_expiration","expired","active","deleted","pending_cleanup","staging_deployment","staging_active","deactivating","inactive","backup_issued","holding_deployment"]),SSLValidationRecordSchema=z56.object({txtName:z56.string().nullable().optional(),txtValue:z56.string().nullable().optional(),httpUrl:z56.string().nullable().optional(),httpBody:z56.string().nullable().optional(),cname:z56.string().nullable().optional(),cnameTarget:z56.string().nullable().optional()}),SSLValidationErrorSchema=z56.object({message:z56.string()}),OwnershipVerificationSchema=z56.object({type:z56.string(),name:z56.string(),value:z56.string()}),ProjectDomainSSLDTOSchema=z56.object({status:z56.string(),method:z56.string().nullable(),type:z56.string().nullable(),validationRecords:z56.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z56.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z56.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z56.enum(["subdomain","apex"]),RedirectConfigSchema=z56.object({type:z56.literal("apex_to_www"),linkedDomainId:z56.string()}).nullable().optional(),ProjectDomainDTOSchema=z56.object({id:z56.string(),hostname:z56.string(),status:z56.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z56.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z56.string(),scdCnameTarget:z56.string().optional(),apexTargets:z56.array(z56.string()),dnsAutoConfigured:z56.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z56.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema(z56.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z56.object({hostname:z56.hostname().regex(/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,{error:"Invalid hostname"}).refine(value=>!/\.fimo\.site$/i.test(value),{error:"This is a Fimo-owned domain. Edit your built-in URL instead."}),redirectToWww:z56.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z56.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema(z56.object({available:z56.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema(z56.object({success:z56.boolean(),hostname:z56.string()}))}});import{z as z57}from"zod";var SUBDOMAIN_REGEX,SubdomainCheckReasonSchema,CheckProjectSubdomainResponseSchema,UpdateProjectSubdomainRequestSchema,UpdateProjectSubdomainErrorReasonSchema,UpdateProjectSubdomainResponseSchema,SubdomainSuggestionsQuerySchema,SubdomainSuggestionsResponseSchema,init_project_subdomain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-subdomain.dto.js"(){"use strict";init_response();SUBDOMAIN_REGEX=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/,SubdomainCheckReasonSchema=z57.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema(z57.object({available:z57.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z57.object({slug:z57.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z57.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema(z57.object({subdomain:z57.string(),subdomainUpdatedAt:z57.coerce.date()})),SubdomainSuggestionsQuerySchema=z57.object({base:z57.string().max(100).optional(),max:z57.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema(z57.object({suggestions:z57.array(z57.string())}))}});import{z as z58}from"zod";var ProjectLocaleCoverageSchema,ProjectLocaleStatsItemSchema,ProjectLocaleStatsSchema,ProjectLocaleStatsDTO,ProjectLocaleStatsResponseSchema,AddProjectLocaleRequestSchema,RemoveProjectLocaleParamsSchema,ProjectLocaleMutationSchema,ProjectLocaleMutationDTO,ProjectLocaleMutationResponseSchema,RemoveProjectLocaleSchema,RemoveProjectLocaleDTO,RemoveProjectLocaleResponseSchema,init_project_locale_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-locale.dto.js"(){"use strict";init_create_dto();init_response();ProjectLocaleCoverageSchema=z58.object({translated:z58.number().int().nonnegative(),total:z58.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z58.object({locale:z58.string(),isDefault:z58.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z58.object({defaultLocale:z58.string(),locales:z58.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema=createResponseSchema(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z58.object({locale:z58.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z58.object({locale:z58.string().min(1).max(40)}),ProjectLocaleMutationSchema=z58.object({locale:z58.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema=createResponseSchema(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z58.object({locale:z58.string(),entriesDeleted:z58.number().int().nonnegative(),labelsDeleted:z58.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema=createResponseSchema(RemoveProjectLocaleSchema)}});import{z as z59}from"zod";function flag(key,description,options={}){return{name:key.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),key,description,type:options.type??"string",required:options.required??!1,...options.defaultValue!==void 0?{defaultValue:options.defaultValue}:{},...options.enumValues?{enumValues:[...options.enumValues]}:{},isArray:options.isArray??!1}}var GENERATION_QUALITIES,GENERATION_ASPECT_RATIOS,GENERATION_TASK_IDS,GenerationQualitySchema,GenerationTaskIdSchema,GENERATION_TASK_MANIFESTS,GenerationTaskEstimateDTOSchema,GenerationTaskEstimateDTO,init_generation_task_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation-task.dto.js"(){"use strict";init_create_dto();GENERATION_QUALITIES=["draft","standard","premium"],GENERATION_ASPECT_RATIOS=["1:1","16:9","9:16","4:3","3:4"],GENERATION_TASK_IDS=["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"],GenerationQualitySchema=z59.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z59.enum(GENERATION_TASK_IDS);__name(flag,"flag");GENERATION_TASK_MANIFESTS=[{id:"image.generate",modality:"image",operation:"generate",displayName:"Generate image",description:"Create an image from a prompt. Quality selects the appropriate generation route.",flags:[flag("prompt","Generation prompt",{required:!0}),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.edit",modality:"image",operation:"edit",displayName:"Edit image",description:"Transform up to five source images using a natural-language instruction.",flags:[flag("prompt","Editing instruction",{required:!0}),flag("images","Source asset id or absolute URL; repeatable up to five times",{required:!0,isArray:!0}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.remove-background",modality:"image",operation:"remove-background",displayName:"Remove image background",description:"Remove the background from one image and return a transparent cutout.",flags:[flag("image","Source asset id or absolute URL",{required:!0})]},{id:"image.upscale",modality:"image",operation:"upscale",displayName:"Upscale image",description:"Increase image resolution while preserving and optionally enhancing detail.",flags:[flag("image","Source asset id or absolute URL",{required:!0}),flag("targetMegapixels","Target resolution in megapixels",{type:"integer",defaultValue:4}),flag("outputFormat","Output image format",{type:"enum",defaultValue:"png",enumValues:["webp","jpg","png"]}),flag("enhanceDetails","Improve fine detail during upscaling",{type:"boolean",defaultValue:!0}),flag("enhanceRealism","Favor photorealistic detail reconstruction",{type:"boolean",defaultValue:!1})]},{id:"video.generate",modality:"video",operation:"generate",displayName:"Generate video",description:"Create a video from text or animate one source image. Loop closes the final frame back to the first.",flags:[flag("prompt","Generation and motion prompt",{required:!0}),flag("image","Optional source asset id or absolute URL"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"16:9",enumValues:GENERATION_ASPECT_RATIOS}),flag("duration","Duration in seconds; loops support 3 to 20 seconds",{type:"integer",defaultValue:5}),flag("includeAudio","Generate audio with the video",{type:"boolean",defaultValue:!1}),flag("loop","Make the final frame return to the source image",{type:"boolean",defaultValue:!1})]},{id:"video.animate",modality:"video",operation:"animate",displayName:"Animate image from video",description:"Apply the motion and camera movement from a source video to a reference image.",flags:[flag("video","Motion source asset id or absolute URL",{required:!0}),flag("image","Subject reference asset id or absolute URL",{required:!0}),flag("prompt","Optional instruction for the animation"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]},{id:"video.replace",modality:"video",operation:"replace",displayName:"Replace subjects in video",description:"Replace people in a source video with one to three reference identities while preserving motion.",flags:[flag("video","Source video asset id or absolute URL",{required:!0}),flag("images","Identity reference asset id or URL; repeatable up to three times",{required:!0,isArray:!0}),flag("prompt","Optional placement instruction"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]}],GenerationTaskEstimateDTOSchema=z59.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z59.number(),credits:z59.number().optional(),billingMode:z59.enum(["fimo-credits","provider-account"]).optional(),confidence:z59.enum(["exact","estimated","metered"]),basis:z59.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z60}from"zod";var GenerateRequestBaseSchema,GenerateRequestDTOSchema,GenerateRequestDTO,GenerateResponseDataSchema,GenerateResponseDTO,GenerateResponseSchema,GenerateErrorSchema,init_generation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation.dto.js"(){"use strict";init_create_dto();init_response();init_asset_dto();init_generation_task_dto();GenerateRequestBaseSchema=z60.object({options:z60.record(z60.string(),z60.unknown()),name:z60.string().optional(),parentId:z60.string().nullable().optional(),altText:z60.string().optional(),caption:z60.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z60.string().min(1).optional(),model:z60.string().min(1).optional()}).superRefine((value,context)=>{!!value.task==!!value.model&&context.addIssue({code:"custom",message:"Provide exactly one of task or model",path:["task"]})}),GenerateRequestDTO=createDTO(GenerateRequestDTOSchema),GenerateResponseDataSchema=z60.object({jobId:z60.string(),status:z60.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema.optional(),error:z60.string().nullable().optional(),credits:z60.number().optional(),costUsd:z60.number().optional(),billingMode:z60.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema=createResponseSchema(GenerateResponseDataSchema),GenerateErrorSchema=z60.object({error:z60.string(),code:z60.enum(["unknown-task","unknown-model","options-invalid","source-invalid","task-routing-failed","generation-failed","provider-error","cost-limit-exceeded","cost-estimate-unavailable","unsupported-modality"]),availableTasks:z60.array(GenerationTaskIdSchema).optional(),availableModels:z60.array(z60.string()).optional(),issues:z60.array(z60.unknown()).optional()})}});import{z as z61}from"zod";var FlagTypeSchema,FlagSpecSchema,AssetModelPriceSchema,AssetModelDTOSchema,AssetModelDTO,AssetModelEstimateDTOSchema,AssetModelEstimateDTO,init_asset_model_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset-model.dto.js"(){"use strict";init_create_dto();FlagTypeSchema=z61.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z61.object({name:z61.string(),key:z61.string(),description:z61.string(),type:FlagTypeSchema,required:z61.boolean(),defaultValue:z61.unknown().optional(),enumValues:z61.array(z61.string()).optional(),isArray:z61.boolean()}),AssetModelPriceSchema=z61.object({unitPrice:z61.number(),unit:z61.string(),confidence:z61.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z61.object({id:z61.string(),shortName:z61.string(),provider:z61.string(),source:z61.string(),modality:z61.enum(["image","video","audio"]),tags:z61.array(z61.string()),displayName:z61.string(),description:z61.string(),flags:z61.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z61.object({model:z61.string(),costUsd:z61.number(),credits:z61.number(),billingMode:z61.enum(["fimo-credits","provider-account"]),confidence:z61.enum(["exact","estimated","metered"]),basis:z61.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z62}from"zod";var UserTourDTOSchema,UserTourDTO,UserTourResponseSchema,UserTourListResponseSchema,init_tour_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/tour.dto.js"(){"use strict";init_create_dto();init_response();UserTourDTOSchema=z62.object({tourId:z62.string(),version:z62.string(),status:z62.string(),completedAt:z62.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema(z62.array(UserTourDTOSchema))}});import{z as z63}from"zod";var SUPPORT_REPORT_CATEGORIES,SupportReportCategorySchema,SUPPORT_REPORT_STATUSES,SupportReportStatusSchema,SupportReportSourceSchema,SupportReportDeliveryStatusSchema,SUPPORT_REPORT_LINK_KINDS,SupportReportLinkKindSchema,SupportReportEventKindSchema,SupportReportActorKindSchema,SupportReportTagSchema,SupportReportHttpUrlSchema,SupportReportContextInputSchema,CreateSupportReportInputSchema,SupportReportListQuerySchema,UpdateSupportReportInputSchema,CreateSupportReportMessageInputSchema,CreateSupportReportLinkInputSchema,SupportReportActorDTOSchema,SupportReportLinkDTOSchema,SupportReportLinkDTO,SupportReportEventDTOSchema,SupportReportEventDTO,SupportReportSummaryDTOSchema,SupportReportSummaryDTO,SupportReportDetailDTOSchema,SupportReportDetailDTO,SupportReportListDTOSchema,SupportReportListDTO,CreateSupportReportResultDTOSchema,CreateSupportReportResultDTO,init_support_report_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/support-report.dto.js"(){"use strict";init_create_dto();SUPPORT_REPORT_CATEGORIES=[{value:"account_billing",label:"Account & billing"},{value:"project_issues",label:"Project issues"},{value:"ai_prompt_output_quality",label:"AI prompt & output quality"},{value:"roles_access_collaboration",label:"Roles, access & collaboration"},{value:"code_technical_questions",label:"Code & technical questions"},{value:"others",label:"Other"}],SupportReportCategorySchema=z63.enum(SUPPORT_REPORT_CATEGORIES.map(category=>category.value)),SUPPORT_REPORT_STATUSES=["new","in_progress","waiting","resolved","duplicate","irrelevant","ignored"],SupportReportStatusSchema=z63.enum(SUPPORT_REPORT_STATUSES),SupportReportSourceSchema=z63.enum(["app","cli","agent"]),SupportReportDeliveryStatusSchema=z63.enum(["pending","delivered","failed"]),SUPPORT_REPORT_LINK_KINDS=["linear","pylon","project","sentry","grafana","other"],SupportReportLinkKindSchema=z63.enum(SUPPORT_REPORT_LINK_KINDS),SupportReportEventKindSchema=z63.enum(["report_created","report_updated","message","link_added","link_removed","delivery"]),SupportReportActorKindSchema=z63.enum(["user","agent","system"]),SupportReportTagSchema=z63.string().trim().min(1).max(50),SupportReportHttpUrlSchema=z63.url({protocol:/^https?$/}).max(2e3),SupportReportContextInputSchema=z63.object({organization:z63.object({id:z63.string().trim().min(1).max(255),name:z63.string().trim().max(240).optional()}),project:z63.object({id:z63.uuid(),name:z63.string().trim().max(240).optional(),createdAt:z63.coerce.date().optional()}).optional(),environment:z63.string().trim().max(255).optional(),clientVersion:z63.string().trim().max(64).optional()}),CreateSupportReportInputSchema=z63.object({message:z63.string().trim().min(1).max(2e4),category:SupportReportCategorySchema,source:SupportReportSourceSchema.default("app"),context:SupportReportContextInputSchema}),SupportReportListQuerySchema=z63.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:SupportReportTagSchema.optional(),query:z63.string().trim().max(200).optional(),limit:z63.coerce.number().int().min(1).max(100).default(50),offset:z63.coerce.number().int().min(0).default(0)}),UpdateSupportReportInputSchema=z63.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z63.array(SupportReportTagSchema).max(20).optional(),duplicateOfReportId:z63.uuid().nullable().optional(),note:z63.string().trim().min(1).max(2e4).optional()}).refine(input=>Object.values(input).some(value=>value!==void 0),{message:"At least one report change is required"}),CreateSupportReportMessageInputSchema=z63.object({message:z63.string().trim().min(1).max(2e4)}),CreateSupportReportLinkInputSchema=z63.object({kind:SupportReportLinkKindSchema,label:z63.string().trim().min(1).max(240),url:SupportReportHttpUrlSchema,externalId:z63.string().trim().max(240).optional()}),SupportReportActorDTOSchema=z63.object({kind:SupportReportActorKindSchema,id:z63.string().nullable(),name:z63.string().nullable()}),SupportReportLinkDTOSchema=z63.object({id:z63.uuid(),kind:SupportReportLinkKindSchema,label:z63.string(),url:SupportReportHttpUrlSchema,externalId:z63.string().nullable(),addedBy:SupportReportActorDTOSchema,createdAt:z63.coerce.date()}),SupportReportLinkDTO=createDTO(SupportReportLinkDTOSchema),SupportReportEventDTOSchema=z63.object({id:z63.uuid(),kind:SupportReportEventKindSchema,body:z63.string().nullable(),metadata:z63.record(z63.string(),z63.unknown()),actor:SupportReportActorDTOSchema,createdAt:z63.coerce.date()}),SupportReportEventDTO=createDTO(SupportReportEventDTOSchema),SupportReportSummaryDTOSchema=z63.object({id:z63.uuid(),status:SupportReportStatusSchema,category:SupportReportCategorySchema,tags:z63.array(z63.string()),source:SupportReportSourceSchema,message:z63.string(),reporter:z63.object({id:z63.string().nullable(),name:z63.string().nullable(),email:z63.string().nullable()}),organization:z63.object({id:z63.string().nullable(),name:z63.string()}),project:z63.object({id:z63.uuid().nullable(),name:z63.string()}).nullable(),assignee:SupportReportActorDTOSchema.nullable(),delivery:z63.object({status:SupportReportDeliveryStatusSchema,pylonIssueId:z63.string().nullable(),pylonIssueUrl:SupportReportHttpUrlSchema.nullable(),error:z63.string().nullable(),deliveredAt:z63.coerce.date().nullable()}).nullable(),duplicateOfReportId:z63.uuid().nullable(),resolvedAt:z63.coerce.date().nullable(),createdAt:z63.coerce.date(),updatedAt:z63.coerce.date()}),SupportReportSummaryDTO=createDTO(SupportReportSummaryDTOSchema),SupportReportDetailDTOSchema=SupportReportSummaryDTOSchema.extend({environment:z63.string().nullable(),clientVersion:z63.string().nullable(),links:z63.array(SupportReportLinkDTOSchema),events:z63.array(SupportReportEventDTOSchema)}),SupportReportDetailDTO=createDTO(SupportReportDetailDTOSchema),SupportReportListDTOSchema=z63.object({reports:z63.array(SupportReportSummaryDTOSchema),total:z63.number().int().nonnegative(),statusCounts:z63.object({new:z63.number().int().nonnegative(),in_progress:z63.number().int().nonnegative(),waiting:z63.number().int().nonnegative(),resolved:z63.number().int().nonnegative(),duplicate:z63.number().int().nonnegative(),irrelevant:z63.number().int().nonnegative(),ignored:z63.number().int().nonnegative()}),limit:z63.number().int().positive(),offset:z63.number().int().nonnegative()}),SupportReportListDTO=createDTO(SupportReportListDTOSchema),CreateSupportReportResultDTOSchema=z63.object({id:z63.uuid(),deliveryStatus:SupportReportDeliveryStatusSchema,message:z63.string()}),CreateSupportReportResultDTO=createDTO(CreateSupportReportResultDTOSchema)}});import{z as z64}from"zod";var OPS_RECENT_CHAT_MAX_WINDOW_MS,OpsChatTimestampInputSchema,OpsRecentChatInputSchema,OpsRecentChatMessageSchema,OpsRecentChatResponseSchema,OpsRecentChatResponseDTO,init_ops_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-chat.dto.js"(){"use strict";init_ops();init_create_dto();OPS_RECENT_CHAT_MAX_WINDOW_MS=10080*60*1e3,OpsChatTimestampInputSchema=z64.iso.datetime({offset:!0}).pipe(z64.coerce.date()),OpsRecentChatInputSchema=z64.object({from:OpsChatTimestampInputSchema,to:OpsChatTimestampInputSchema.optional(),projectEnv:z64.string().trim().min(1).max(255).optional(),limit:z64.coerce.number().int().min(1).max(200).default(100),cursor:z64.string().trim().min(1).max(2e3).optional(),slim:z64.boolean().default(!0),reason:z64.string().trim().min(1).max(1e3)}).refine(input=>input.from<=(input.to??new Date),{message:"from must be before or equal to to",path:["from"]}).refine(input=>(input.to??new Date).getTime()-input.from.getTime()<=OPS_RECENT_CHAT_MAX_WINDOW_MS,{message:"recent chat window cannot exceed 7 days",path:["from"]}).refine(input=>!input.cursor||!!input.to,{message:"to is required when continuing with a cursor",path:["to"]}),OpsRecentChatMessageSchema=z64.object({id:z64.string(),threadId:z64.string(),providerMessageId:z64.string().nullable(),invocationId:z64.string().nullable(),env:z64.string().nullable(),role:z64.string(),parts:z64.array(z64.record(z64.string(),z64.unknown())),metadata:z64.object({status:z64.string().optional(),traceUrl:z64.string().optional(),externalFileChanges:z64.array(z64.unknown()).optional()}),stats:z64.object({toolCount:z64.number().int().nonnegative(),failedToolCount:z64.number().int().nonnegative()}),createdAt:z64.iso.datetime({offset:!0}),project:z64.object({id:z64.string(),name:z64.string(),displayName:z64.string().nullable(),organizationId:z64.string().nullable()})}),OpsRecentChatResponseSchema=z64.object({target:z64.object({backendProfile:OpsBackendProfileSchema,projectEnv:z64.string().nullable()}),window:z64.object({from:z64.iso.datetime({offset:!0}),to:z64.iso.datetime({offset:!0})}),messages:z64.object({items:z64.array(OpsRecentChatMessageSchema),nextCursor:z64.string().nullable()})}),OpsRecentChatResponseDTO=createDTO(OpsRecentChatResponseSchema)}});import{z as z65}from"zod";var OpsSentryIssueResolutionResponseSchema,OpsSentryIssueResolutionResponseDTO,OpsSentryIssueResolutionErrorResponseSchema,OpsSentryIssueResolutionErrorResponseDTO,init_ops_sentry_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-sentry.dto.js"(){"use strict";init_ops();init_create_dto();OpsSentryIssueResolutionResponseSchema=z65.object({backendProfile:OpsBackendProfileSchema,provider:z65.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z65.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z65.object({backendProfile:OpsBackendProfileSchema,provider:z65.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z65.literal(!1),reason:z65.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z66}from"zod";var OpsProjectPackageManagerSummarySchema,OpsProjectPackageManagerSchema,OpsProjectPackageManagerDTO,init_ops_project_files_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-project-files.dto.js"(){"use strict";init_ops();init_create_dto();OpsProjectPackageManagerSummarySchema=z66.object({packageManager:z66.string().trim().min(1).max(200).nullable(),trackedLockfiles:z66.array(z66.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z66.string().trim().min(1)}),OpsProjectPackageManagerSchema=z66.object({target:z66.object({backendProfile:OpsBackendProfileSchema,projectId:z66.uuid(),projectEnv:z66.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z67}from"zod";function createAgentRunWebhookEventDataSchema(status){return z67.object({run:z67.object({id:z67.string(),agentName:z67.string(),trigger:z67.string(),status:z67.literal(status),startedAt:z67.string().nullable(),finishedAt:z67.string().nullable(),reason:z67.string().nullable()})})}var WEBHOOK_EVENT_TYPES,WebhookEventTypeSchema,WebhookEntryChangeActionSchema,WebhookEntryChangeReasonSchema,WebhookEnvironmentScopeSchema,WebhookEnvironmentSelectorSchema,WebhookEntryBatchWindowSecondsSchema,EntryChangedWebhookEventDataSchema,FormSubmittedWebhookEventDataSchema,PublishStartedWebhookEventDataSchema,PublishSucceededWebhookEventDataSchema,PublishFailedWebhookEventDataSchema,PublishUnpublishedWebhookEventDataSchema,AgentReviewRequestedWebhookEventDataSchema,AgentReviewResolvedWebhookEventDataSchema,AnalyticsReportReadyWebhookEventDataSchema,MediaAssetWebhookEventDataSchema,MediaUploadedWebhookEventDataSchema,MediaUpdatedWebhookEventDataSchema,MediaDeletedWebhookEventDataSchema,MediaGeneratedWebhookEventDataSchema,MediaProcessingFailedWebhookEventDataSchema,DomainCreatedWebhookEventDataSchema,DomainDeletedWebhookEventDataSchema,LabelChangedWebhookEventDataSchema,LocaleCreatedWebhookEventDataSchema,LocaleDefaultChangedWebhookEventDataSchema,LocaleDeletedWebhookEventDataSchema,EnvironmentCreatedWebhookEventDataSchema,EnvironmentDeletedWebhookEventDataSchema,EnvironmentMergedWebhookEventDataSchema,EnvironmentRestoredWebhookEventDataSchema,WEBHOOK_EVENT_DATA_SCHEMAS,WebhookEventFamilySchema,WebhookDestinationKindSchema,WebhookHeaderValueInputSchema,WebhookHeaderInputSchema,WebhookHeaderDTOSchema,WebhookFilterSchema,JsonValueSchema,CreateProjectWebhookRequestSchema,UpdateProjectWebhookRequestSchema,TestProjectWebhookRequestSchema,WebhookDeliveryStatusSchema,ProjectWebhookDTOSchema,ProjectWebhookDTO,WebhookDeliveryDTOSchema,WebhookDeliveryDTO,WebhookDeliveriesPageSchema,WebhookDeliveryAttemptDTOSchema,WebhookDeliveryAttemptDTO,ProjectWebhookResponseSchema,ProjectWebhooksListResponseSchema,WebhookDeliveriesListResponseSchema,WebhookDeliveryAttemptsListResponseSchema,init_webhook_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/webhook.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();init_env_status_dto();init_project_domain_dto();WEBHOOK_EVENT_TYPES=["entry.changed","form.submitted","publish.started","publish.succeeded","publish.failed","publish.unpublished","agent.run.started","agent.run.completed","agent.run.failed","agent.run.cancelled","agent.review.requested","agent.review.resolved","analytics.report_ready","media.uploaded","media.updated","media.deleted","media.generated","media.processing_failed","domain.created","domain.deleted","label.changed","locale.created","locale.default_changed","locale.deleted","environment.created","environment.deleted","environment.merged","environment.restored"],WebhookEventTypeSchema=z67.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z67.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z67.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z67.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z67.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),WebhookEntryBatchWindowSecondsSchema=z67.union([z67.literal(0),z67.literal(5),z67.literal(30),z67.literal(60)]),EntryChangedWebhookEventDataSchema=z67.object({reason:WebhookEntryChangeReasonSchema,operationId:z67.string().optional(),batch:z67.object({index:z67.number().int().positive(),total:z67.number().int().positive()}).optional(),changes:z67.array(z67.object({action:WebhookEntryChangeActionSchema,contentType:z67.string(),id:z67.string(),documentId:z67.string(),locale:z67.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z67.object({form:z67.object({id:z67.string(),label:z67.string()}),submission:z67.object({id:z67.string(),data:z67.record(z67.string(),z67.unknown()),submittedAt:z67.string()})}),PublishStartedWebhookEventDataSchema=z67.object({publication:z67.object({status:z67.literal("publishing"),startedAt:z67.string()})}),PublishSucceededWebhookEventDataSchema=z67.object({publication:z67.object({status:z67.literal("published"),url:z67.string(),publishedAt:z67.string(),firstPublish:z67.boolean()})}),PublishFailedWebhookEventDataSchema=z67.object({publication:z67.object({status:z67.literal("failed"),reason:z67.string()})}),PublishUnpublishedWebhookEventDataSchema=z67.object({publication:z67.object({previousUrl:z67.string(),unpublishedAt:z67.string()})});__name(createAgentRunWebhookEventDataSchema,"createAgentRunWebhookEventDataSchema");AgentReviewRequestedWebhookEventDataSchema=z67.object({review:z67.object({id:z67.string(),runId:z67.string(),agentName:z67.string(),classification:z67.string(),summary:z67.string(),reasons:z67.array(z67.string()).readonly()})}),AgentReviewResolvedWebhookEventDataSchema=z67.object({review:z67.object({id:z67.string(),runId:z67.string(),agentName:z67.string(),resolution:z67.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z67.object({report:z67.object({weekStart:z67.string(),weekEnd:z67.string(),pageviews:z67.number(),visitors:z67.number(),previousPageviews:z67.number(),previousVisitors:z67.number()})}),MediaAssetWebhookEventDataSchema=z67.object({id:z67.string().nullable(),name:z67.string().nullable(),type:z67.string(),mimeType:z67.string().nullable(),fileSize:z67.number().nullable()}),MediaUploadedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.enum(["updated","moved","analysis"]),analysis:z67.object({category:z67.string(),status:z67.literal("completed")}).optional()}),MediaDeletedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.literal("deleted")}),MediaGeneratedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.literal("generated"),generation:z67.object({model:z67.string(),mode:z67.string()})}),MediaProcessingFailedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.enum(["analysis","generation"]),failure:z67.object({code:z67.string()})}),DomainCreatedWebhookEventDataSchema=z67.object({domain:z67.object({id:z67.string(),hostname:z67.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z67.object({domain:z67.object({id:z67.string(),hostname:z67.string()})}),LabelChangedWebhookEventDataSchema=z67.object({changes:z67.array(z67.object({action:z67.enum(["created","updated","deleted"]),key:z67.string(),locale:z67.string(),value:z67.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z67.object({locale:z67.object({code:z67.string(),isDefault:z67.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z67.object({locale:z67.object({code:z67.string(),previousCode:z67.string()})}),LocaleDeletedWebhookEventDataSchema=z67.object({locale:z67.object({code:z67.string(),entriesDeleted:z67.number().int().nonnegative(),labelsDeleted:z67.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z67.object({environment:z67.object({name:EnvSchema,parent:EnvSchema})}),EnvironmentDeletedWebhookEventDataSchema=z67.object({environment:z67.object({name:EnvSchema})}),EnvironmentMergedWebhookEventDataSchema=z67.object({merge:z67.object({id:z67.string(),from:EnvSchema,to:EnvSchema,applied:z67.array(z67.object({surface:SurfaceNameSchema,count:z67.number().int().nonnegative()}))})}),EnvironmentRestoredWebhookEventDataSchema=z67.object({environment:z67.object({name:EnvSchema}),version:z67.object({versionId:z67.uuid(),name:z67.string()})}),WEBHOOK_EVENT_DATA_SCHEMAS={"entry.changed":EntryChangedWebhookEventDataSchema,"form.submitted":FormSubmittedWebhookEventDataSchema,"publish.started":PublishStartedWebhookEventDataSchema,"publish.succeeded":PublishSucceededWebhookEventDataSchema,"publish.failed":PublishFailedWebhookEventDataSchema,"publish.unpublished":PublishUnpublishedWebhookEventDataSchema,"agent.run.started":createAgentRunWebhookEventDataSchema("running"),"agent.run.completed":createAgentRunWebhookEventDataSchema("completed"),"agent.run.failed":createAgentRunWebhookEventDataSchema("failed"),"agent.run.cancelled":createAgentRunWebhookEventDataSchema("cancelled"),"agent.review.requested":AgentReviewRequestedWebhookEventDataSchema,"agent.review.resolved":AgentReviewResolvedWebhookEventDataSchema,"analytics.report_ready":AnalyticsReportReadyWebhookEventDataSchema,"media.uploaded":MediaUploadedWebhookEventDataSchema,"media.updated":MediaUpdatedWebhookEventDataSchema,"media.deleted":MediaDeletedWebhookEventDataSchema,"media.generated":MediaGeneratedWebhookEventDataSchema,"media.processing_failed":MediaProcessingFailedWebhookEventDataSchema,"domain.created":DomainCreatedWebhookEventDataSchema,"domain.deleted":DomainDeletedWebhookEventDataSchema,"label.changed":LabelChangedWebhookEventDataSchema,"locale.created":LocaleCreatedWebhookEventDataSchema,"locale.default_changed":LocaleDefaultChangedWebhookEventDataSchema,"locale.deleted":LocaleDeletedWebhookEventDataSchema,"environment.created":EnvironmentCreatedWebhookEventDataSchema,"environment.deleted":EnvironmentDeletedWebhookEventDataSchema,"environment.merged":EnvironmentMergedWebhookEventDataSchema,"environment.restored":EnvironmentRestoredWebhookEventDataSchema},WebhookEventFamilySchema=z67.enum(["entries","forms","publish","agents","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z67.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z67.discriminatedUnion("source",[z67.object({source:z67.literal("literal"),value:z67.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z67.object({source:z67.literal("secret"),key:z67.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z67.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z67.object({name:z67.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z67.object({name:z67.string(),source:z67.enum(["literal","secret"]),secretKey:z67.string().nullable(),secretPrefix:z67.string().nullable(),configured:z67.literal(!0)}),WebhookFilterSchema=z67.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z67.string().min(1).max(255).optional(),agentName:z67.string().min(1).max(120).optional(),mediaType:z67.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z67.string().min(1).max(255).optional(),locale:z67.string().min(1).max(120).optional()}),JsonValueSchema=z67.lazy(()=>z67.union([z67.string(),z67.number(),z67.boolean(),z67.null(),z67.array(JsonValueSchema),z67.record(z67.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z67.object({name:z67.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z67.url(),enabled:z67.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z67.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z67.boolean().optional().default(!0),entryBatchWindowSeconds:WebhookEntryBatchWindowSecondsSchema.optional().default(0)}),UpdateProjectWebhookRequestSchema=z67.object({name:z67.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z67.url().optional(),enabled:z67.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z67.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z67.boolean().optional(),entryBatchWindowSeconds:WebhookEntryBatchWindowSecondsSchema.optional()}),TestProjectWebhookRequestSchema=z67.object({eventType:WebhookEventTypeSchema.optional(),data:z67.record(z67.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z67.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z67.uuid(),name:z67.string(),eventType:WebhookEventTypeSchema,enabled:z67.boolean(),destination:z67.object({host:z67.string(),maskedUrl:z67.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z67.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z67.boolean(),entryBatchWindowSeconds:WebhookEntryBatchWindowSecondsSchema,lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z67.coerce.date().nullable(),deliveryStats24h:z67.object({succeeded:z67.number().int().nonnegative(),failed:z67.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z67.uuid(),projectId:z67.uuid(),env:EnvSchema,environment:EnvironmentKeySchema,branch:EnvSchema,eventId:z67.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z67.number().int().positive(),test:z67.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z67.number().int().nonnegative(),responseStatus:z67.number().int().nullable(),lastErrorCode:z67.string().nullable(),lastErrorMessage:z67.string().nullable(),payloadAvailable:z67.boolean(),destination:z67.object({host:z67.string(),maskedUrl:z67.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z67.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z67.string().nullable(),qstashMessageId:z67.string().nullable(),deliveredAt:z67.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z67.object({items:z67.array(WebhookDeliveryDTOSchema),pagination:z67.object({page:z67.number().int().positive(),limit:z67.number().int().positive(),total:z67.number().int().nonnegative(),totalPages:z67.number().int().positive(),hasMore:z67.boolean()}),stats:z67.object({total:z67.number().int().nonnegative(),succeeded:z67.number().int().nonnegative(),failed:z67.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z67.object({id:z67.uuid(),deliveryId:z67.uuid(),attempt:z67.number().int().positive(),status:z67.enum(["delivering","succeeded","failed"]),responseStatus:z67.number().int().nullable(),durationMs:z67.number().int().nonnegative(),responseExcerpt:z67.string().nullable(),errorCode:z67.string().nullable(),errorMessage:z67.string().nullable(),createdAt:z67.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema(z67.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema(z67.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z68}from"zod";var PreviewFeatureDTOSchema,PreviewFeatureDTO,init_preview_feature_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/preview-feature.dto.js"(){"use strict";init_create_dto();PreviewFeatureDTOSchema=z68.object({key:z68.literal("fimo-2"),enabled:z68.boolean(),dismissed:z68.boolean().default(!1),interacted:z68.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z69}from"zod";var SubscriptionStatusSchema,CreditBalanceBreakdownDTOSchema,CreditBalanceBreakdownDTO,SubscriptionPlanDTOSchema,SubscriptionPlanDTO,SubscriptionPaymentMethodDTOSchema,SubscriptionPaymentMethodDTO,SubscriptionPricingDTOSchema,SubscriptionPricingDTO,SubscriptionDetailsDTOSchema,SubscriptionDetailsDTO,CreditAlertDTOSchema,CreditAlertDTO,PlanAllocationDTOSchema,PlanAllocationDTO,LatestCancellationDTOSchema,LatestCancellationDTO,OrganizationSubscriptionDTOSchema,OrganizationSubscriptionDTO,BaseCreditTopupRequestSchema,FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema,CreditTopupRequestDTOSchema,CreditTopupRequestDTO,CreditTopupResponseDTOSchema,CreditTopupResponseDTO,init_subscription_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/subscription.dto.js"(){"use strict";init_common();init_create_dto();init_billing_dto();SubscriptionStatusSchema=z69.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z69.object({total:z69.number(),base:z69.number(),purchases:z69.number(),awards:z69.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z69.object({id:z69.string(),name:z69.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z69.object({type:z69.string(),brand:z69.string().nullable(),last4:z69.string().nullable(),expirationDate:z69.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z69.object({currency:z69.string(),nextPaymentAmount:z69.number().nullable(),nextPaymentAt:z69.string().nullable(),billingInterval:z69.string().nullable(),totalAmount:z69.number().nullable(),discountAmount:z69.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z69.object({id:z69.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z69.string().nullable(),currentPeriodEndsAt:z69.string().nullable(),renewsAt:z69.string().nullable(),cancelAt:z69.string().nullable(),renewAutomatically:z69.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z69.object({type:z69.enum(["low_balance","critical_balance","approaching_limit"]),message:z69.string(),estimatedPromptsRemaining:z69.number().nullable(),avgCostPerPrompt:z69.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z69.object({monthlyCredits:z69.number().nullable(),usedThisPeriod:z69.number(),remainingThisPeriod:z69.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z69.object({organizationId:z69.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z69.string().nullable(),tenureDays:z69.number().int().nonnegative(),capturedAt:z69.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z69.object({hasSubscription:z69.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z69.number().nullable(),alerts:z69.array(CreditAlertDTOSchema),portalUrl:z69.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z69.object({creditCount:z69.number().int().positive(),expiresAt:z69.string().datetime().nullable().optional(),message:z69.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z69.literal("free"),amountCents:z69.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z69.literal("purchase"),amountCents:z69.number().int().positive()}),CreditTopupRequestDTOSchema=z69.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z69.object({success:z69.boolean(),transactionId:z69.string().nullable(),newBalance:z69.number(),creditCount:z69.number(),type:z69.enum(["free","purchase"]),invoiceId:z69.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z70}from"zod";var UsageSummaryDTOSchema,UsageSummaryDTO,UsageByProjectDTOSchema,UsageByProjectDTO,UsageByUserDTOSchema,UsageByUserDTO,UsageTimelineItemDTOSchema,UsageTimelineItemDTO,UsageByUserForProjectDTOSchema,UsageByUserForProjectDTO,ProjectUsageDetailDTOSchema,ProjectUsageDetailDTO,OrganizationUsageDTOSchema,OrganizationUsageDTO,init_usage_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage.dto.js"(){"use strict";init_create_dto();UsageSummaryDTOSchema=z70.object({totalCredits:z70.number(),totalCostUsd:z70.number(),totalMessages:z70.number(),avgCostPerMessage:z70.number(),periodStart:z70.string().nullable(),periodEnd:z70.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z70.object({projectId:z70.string(),projectName:z70.string(),projectDisplayName:z70.string().nullable(),credits:z70.number(),costUsd:z70.number(),messages:z70.number(),percentage:z70.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z70.object({userId:z70.string(),userName:z70.string().nullable(),userEmail:z70.string().email().nullable(),credits:z70.number(),costUsd:z70.number(),messages:z70.number(),percentage:z70.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z70.object({date:z70.string(),credits:z70.number(),costUsd:z70.number(),messages:z70.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z70.object({userId:z70.string(),userName:z70.string().nullable(),userEmail:z70.string().email().nullable(),credits:z70.number(),costUsd:z70.number(),messages:z70.number(),percentage:z70.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z70.object({projectId:z70.string(),projectName:z70.string(),projectDisplayName:z70.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z70.array(UsageByUserForProjectDTOSchema),timeline:z70.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z70.object({summary:UsageSummaryDTOSchema,byProject:z70.array(UsageByProjectDTOSchema),byUser:z70.array(UsageByUserDTOSchema),timeline:z70.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z71}from"zod";var TimeRangePresetSchema,SortOrderSchema,UsageAnalyticsQuerySchema,UsageOverviewSummaryDTOSchema,UsageOverviewSummaryDTO,UsageTimelinePointDTOSchema,UsageTimelinePointDTO,OrganizationUsageRowDTOSchema,OrganizationUsageRowDTO,UserUsageRowDTOSchema,UserUsageRowDTO,ProjectUsageRowDTOSchema,ProjectUsageRowDTO,UsageDistributionItemDTOSchema,UsageDistributionItemDTO,UsageHeatmapPointDTOSchema,UsageHeatmapPointDTO,UsageOverviewResponseDTOSchema,UsageOverviewResponseDTO,UsagePaginationDTOSchema,UsagePaginationDTO,UsageByOrganizationResponseDTOSchema,UsageByOrganizationResponseDTO,ExtendedUserUsageRowDTOSchema,ExtendedUserUsageRowDTO,UsageByUserResponseDTOSchema,UsageByUserResponseDTO,ExtendedProjectUsageRowDTOSchema,ExtendedProjectUsageRowDTO,UsageByProjectResponseDTOSchema,UsageByProjectResponseDTO,ExportFormatSchema,UsageExportQuerySchema,PeekUsageMetricsDTOSchema,PeekUsageMetricsDTO,OrganizationPeekDTOSchema,OrganizationPeekDTO,UserPeekDTOSchema,UserPeekDTO,ProjectPeekDTOSchema,ProjectPeekDTO,init_usage_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage-analytics.dto.js"(){"use strict";init_create_dto();TimeRangePresetSchema=z71.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z71.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z71.object({startDate:z71.string().optional(),endDate:z71.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z71.coerce.number().int().positive().default(1),limit:z71.coerce.number().int().positive().max(100).default(20),sortBy:z71.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z71.string().optional(),activeOnly:z71.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z71.object({totalCredits:z71.number(),totalCostUsd:z71.number(),totalMessages:z71.number(),avgCostPerMessage:z71.number(),avgCreditsPerMessage:z71.number(),periodStart:z71.string(),periodEnd:z71.string(),creditsChange:z71.number().nullable(),costChange:z71.number().nullable(),messagesChange:z71.number().nullable(),unattributedCredits:z71.number(),unattributedCostUsd:z71.number(),unattributedMessages:z71.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z71.object({date:z71.string(),credits:z71.number(),costUsd:z71.number(),messages:z71.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z71.object({organizationId:z71.string(),organizationName:z71.string(),credits:z71.number(),costUsd:z71.number(),messages:z71.number(),percentage:z71.number(),userCount:z71.number(),projectCount:z71.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z71.object({userId:z71.string(),userName:z71.string().nullable(),userEmail:z71.string().nullable(),userImage:z71.string().nullable(),organizationId:z71.string().nullable(),organizationName:z71.string().nullable(),credits:z71.number(),costUsd:z71.number(),messages:z71.number(),percentage:z71.number(),projectCount:z71.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z71.object({projectId:z71.string(),projectName:z71.string(),projectDisplayName:z71.string().nullable(),organizationId:z71.string(),organizationName:z71.string(),credits:z71.number(),costUsd:z71.number(),messages:z71.number(),percentage:z71.number(),userCount:z71.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z71.object({id:z71.string(),name:z71.string(),value:z71.number(),percentage:z71.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z71.object({day:z71.number(),hour:z71.number(),value:z71.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z71.object({summary:UsageOverviewSummaryDTOSchema,timeline:z71.array(UsageTimelinePointDTOSchema),topOrganizations:z71.array(OrganizationUsageRowDTOSchema),topUsers:z71.array(UserUsageRowDTOSchema),topProjects:z71.array(ProjectUsageRowDTOSchema),creditDistribution:z71.array(UsageDistributionItemDTOSchema),userDistribution:z71.array(UsageDistributionItemDTOSchema),heatmap:z71.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z71.object({page:z71.number(),limit:z71.number(),totalItems:z71.number(),totalPages:z71.number(),hasMore:z71.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z71.object({organizations:z71.array(OrganizationUsageRowDTOSchema),top:z71.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z71.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z71.object({users:z71.array(ExtendedUserUsageRowDTOSchema),top:z71.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z71.string(),ownerName:z71.string().nullable(),ownerEmail:z71.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z71.object({projects:z71.array(ExtendedProjectUsageRowDTOSchema),top:z71.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z71.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z71.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z71.object({credits:z71.number(),costUsd:z71.number(),messages:z71.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z71.object({id:z71.string(),name:z71.string(),createdAt:z71.string(),memberCount:z71.number(),projectCount:z71.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z71.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z71.object({id:z71.string(),name:z71.string().nullable(),email:z71.string(),image:z71.string().nullable(),createdAt:z71.string(),organizationCount:z71.number(),projectCount:z71.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z71.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z71.object({id:z71.string(),name:z71.string(),displayName:z71.string().nullable(),createdAt:z71.string(),organizationId:z71.string(),organizationName:z71.string(),ownerId:z71.string(),ownerName:z71.string().nullable(),ownerEmail:z71.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z71.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z72}from"zod";var SandboxProcessStatusSchema,PresetSandboxCommandSchema,ExecuteSandboxCommandRequestDTOSchema,ExecuteSandboxCommandRequestDTO,SandboxProcessInfoDTOSchema,SandboxProcessInfoDTO,SandboxProcessInfoResponseSchema,SandboxProcessListDTOSchema,SandboxProcessListDTO,SandboxProcessListResponseSchema,ExecuteSandboxCommandResponseDTOSchema,ExecuteSandboxCommandResponseDTO,PresetCommandResponseDTOSchema,PresetCommandResponseDTO,PresetCommandResponseSchema,init_sandbox_command_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/sandbox-command.dto.js"(){"use strict";init_env();init_create_dto();init_response();SandboxProcessStatusSchema=z72.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z72.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z72.object({command:z72.string().min(1).max(1e4),cwd:z72.string().optional(),projectEnv:EnvSchema.optional(),env:z72.record(z72.string(),z72.string()).optional(),name:z72.string().optional(),waitForCompletion:z72.boolean().optional().default(!1)}),ExecuteSandboxCommandRequestDTO=createDTO(ExecuteSandboxCommandRequestDTOSchema),SandboxProcessInfoDTOSchema=z72.object({identifier:z72.string(),status:SandboxProcessStatusSchema,command:z72.string().optional(),startedAt:z72.string().optional(),exitCode:z72.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z72.object({processes:z72.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z72.object({processId:z72.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z72.object({success:z72.boolean(),message:z72.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema(PresetCommandResponseDTOSchema)}});import{z as z73}from"zod";var init_esm=__esm({"../../packages/api-contracts/dist/esm/index.js"(){"use strict";init_create_dto();init_response();init_pagination();init_common();init_attachments();init_asset_reading();init_env();init_environment();init_realtime();init_references();init_content_fields();init_audit_log();init_ops();init_chat_block();init_fimo_config();init_page_sources();init_project_dto();init_project_env_dto();init_project_environment_dto();init_project_secret_dto();init_project_import_export_dto();init_agent_trigger_dto();init_agent_list_item_dto();init_agent_run_dto();init_agent_session_dto();init_agent_proposal_dto();init_agent_question_dto();init_agent_install_summary_dto();init_integration_dto();init_schedule_dto();init_schedule_notifications_dto();init_notification_dto();init_audit_log_dto();init_env_status_dto();init_env_diff_summary_dto();init_project_analytics_dto();init_project_access_dto();init_project_invite_dto();init_publication_dto();init_sandbox_dto();init_organization_dto();init_billing_dto();init_payment_method_dto();init_user_dto();init_content_dto();init_unique_conflict_dto();init_schema_transition_rejected_dto();init_cms_display_defaults_dto();init_asset_dto();init_translation_dto();init_document_dto();init_chat_dto();init_upload_dto();init_service_dto();init_search_dto();init_registered_domain_dto();init_project_domain_dto();init_project_subdomain_dto();init_project_locale_dto();init_generation_dto();init_generation_task_dto();init_asset_model_dto();init_tour_dto();init_support_report_dto();init_ops_chat_dto();init_ops_sentry_dto();init_ops_project_files_dto();init_webhook_dto();init_preview_feature_dto();init_subscription_dto();init_usage_dto();init_usage_analytics_dto();init_sandbox_command_dto()}});import{createHash}from"node:crypto";function normalizeApiUrl(input){let trimmed=input.trim();try{let url=new URL(trimmed),pathname=url.pathname.replace(/\/+$/,"");return`${url.protocol}//${url.host}${pathname}`}catch{return trimmed.replace(/\/+$/,"")}}function hashApiUrl(input){return createHash("sha256").update(normalizeApiUrl(input)).digest("hex").slice(0,6)}function safeHostLabel(host){return host.replace(/:/g,"-").replace(/[^a-zA-Z0-9.-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").toLowerCase()}function credentialsFilename(apiUrl){let normalized=normalizeApiUrl(apiUrl),hostLabel="unknown";try{hostLabel=safeHostLabel(new URL(normalized).host)}catch{}return hostLabel.length===0&&(hostLabel="unknown"),`${hostLabel}-${hashApiUrl(apiUrl)}.json`}var init_credentials_path=__esm({"src/cli/utils/credentials-path.ts"(){__name(normalizeApiUrl,"normalizeApiUrl");__name(hashApiUrl,"hashApiUrl");__name(safeHostLabel,"safeHostLabel");__name(credentialsFilename,"credentialsFilename")}});import fs from"node:fs";import{homedir}from"node:os";import path,{join}from"node:path";import{fileURLToPath}from"node:url";function readReleaseManifest(){try{let raw=fs.readFileSync(RELEASE_FILE,"utf8"),parsed=JSON.parse(raw),manifest={};return typeof parsed.apiUrl=="string"&&parsed.apiUrl.length>0&&(manifest.apiUrl=parsed.apiUrl),typeof parsed.webUrl=="string"&&parsed.webUrl.length>0&&(manifest.webUrl=parsed.webUrl),manifest}catch{return{}}}function loadConfig(){let baked=readReleaseManifest(),apiUrl=process.env.FIMO_API_URL?.trim()||baked.apiUrl||DEFAULT_API_URL,webUrl=process.env.FIMO_WEB_URL?.trim()||baked.webUrl||DEFAULT_WEB_URL,configDir=join(process.env.XDG_CONFIG_HOME||join(homedir(),".config"),"fimo"),credentialsDir=join(configDir,"credentials");return{apiUrl,webUrl,configDir,credentialsDir,credentialsFile:join(credentialsDir,credentialsFilename(apiUrl))}}var DEFAULT_API_URL,DEFAULT_WEB_URL,THIS_FILE,CLI_ROOT,RELEASE_FILE,init_config=__esm({"src/cli/config.ts"(){init_credentials_path();DEFAULT_API_URL="http://localhost:3000",DEFAULT_WEB_URL="http://localhost:5173",THIS_FILE=fileURLToPath(import.meta.url),CLI_ROOT=path.resolve(path.dirname(THIS_FILE),"..",".."),RELEASE_FILE=path.resolve(CLI_ROOT,"release.json");__name(readReleaseManifest,"readReleaseManifest");__name(loadConfig,"loadConfig")}});import fs2 from"node:fs";function ensureCredentialsDir(cfg){fs2.existsSync(cfg.credentialsDir)||fs2.mkdirSync(cfg.credentialsDir,{recursive:!0})}function readCredentials(cfg=loadConfig()){if(!fs2.existsSync(cfg.credentialsFile))return null;let raw=fs2.readFileSync(cfg.credentialsFile,"utf-8");return JSON.parse(raw)}function writeCredentials(credentials,cfg=loadConfig()){ensureCredentialsDir(cfg);let tmpFile=`${cfg.credentialsFile}.tmp-${process.pid}`;fs2.writeFileSync(tmpFile,JSON.stringify(credentials,null,2)),fs2.renameSync(tmpFile,cfg.credentialsFile)}function clearCredentials(cfg=loadConfig()){fs2.existsSync(cfg.credentialsFile)&&fs2.unlinkSync(cfg.credentialsFile)}function setActiveOrganization(organization,cfg=loadConfig()){let creds=requireCredentials(cfg);writeCredentials({...creds,activeOrganization:organization},cfg)}function recordAuthFailure(cfg=loadConfig()){let creds=readCredentials(cfg);creds&&writeCredentials({...creds,lastFailedAuthAt:new Date().toISOString()},cfg)}function requireToken(cfg=loadConfig()){return requireCredentials(cfg).access_token}function requireCredentials(cfg=loadConfig()){let creds=readCredentials(cfg);if(!creds?.access_token)throw new NotAuthenticatedError(cfg.apiUrl);return creds}var NotAuthenticatedError,init_auth=__esm({"src/cli/auth.ts"(){init_config();NotAuthenticatedError=class extends Error{static{__name(this,"NotAuthenticatedError")}apiUrl;constructor(apiUrl,message="You are not signed in to Fimo."){super(message),this.name="NotAuthenticatedError",this.apiUrl=apiUrl}};__name(ensureCredentialsDir,"ensureCredentialsDir");__name(readCredentials,"readCredentials");__name(writeCredentials,"writeCredentials");__name(clearCredentials,"clearCredentials");__name(setActiveOrganization,"setActiveOrganization");__name(recordAuthFailure,"recordAuthFailure");__name(requireToken,"requireToken");__name(requireCredentials,"requireCredentials")}});import{spawnSync}from"node:child_process";import fs3 from"node:fs";import path2 from"node:path";import{setTimeout as sleep}from"node:timers/promises";function isPublishedInstall(cliRoot=CLI_ROOT){return fs3.existsSync(path2.join(cliRoot,"release.json"))}function buildSkipsVersionCheck(cliRoot=CLI_ROOT,readFile7=defaultReadFile){try{return JSON.parse(readFile7(path2.join(cliRoot,"release.json"))).skipVersionCheck===!0}catch{return!1}}function defaultReadFile(file){return fs3.readFileSync(file,"utf8")}function resolveGlobalFimoRoot(){let result=spawnSync("npm",["root","-g"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:GLOBAL_ROOT_TIMEOUT_MS});return result.error||result.status!==0||typeof result.stdout!="string"||result.stdout.trim().length===0?null:path2.resolve(result.stdout.trim(),"fimo")}function normalizedPath(input){try{return fs3.realpathSync(input)}catch{return path2.resolve(input)}}function autoUpgradeEnabled(options={}){let usesDefaults=Object.keys(options).length===0;if(usesDefaults&&defaultEligibility!==void 0)return defaultEligibility;let env=options.env??process.env,cliRoot=options.cliRoot??CLI_ROOT,published=options.published??isPublishedInstall(cliRoot);if(env.FIMO_AUTO_UPGRADE!=="1"||!published||buildSkipsVersionCheck(cliRoot))return usesDefaults&&(defaultEligibility=!1),!1;let globalFimoRoot=options.globalFimoRoot===void 0?resolveGlobalFimoRoot():options.globalFimoRoot;if(!globalFimoRoot)return usesDefaults&&(defaultEligibility=!1),!1;let eligible=normalizedPath(cliRoot)===normalizedPath(globalFimoRoot);return usesDefaults&&(defaultEligibility=eligible),eligible}async function acquireLock(lockDir){let deadline=Date.now()+LOCK_WAIT_MS;for(;;){try{fs3.mkdirSync(lockDir);return}catch(error){if(error.code!=="EEXIST")throw error}let stale=!1;try{stale=Date.now()-fs3.statSync(lockDir).mtimeMs>LOCK_STALE_MS}catch{continue}if(stale){try{fs3.rmdirSync(lockDir)}catch{}continue}if(Date.now()>=deadline)throw new Error("auto-upgrade lock timeout");await sleep(LOCK_POLL_MS)}}function readGlobalFimoVersion(){let root2=resolveGlobalFimoRoot();if(!root2)return null;try{let pkg=JSON.parse(fs3.readFileSync(path2.join(root2,"package.json"),"utf8"));return typeof pkg.version=="string"?pkg.version:null}catch{return null}}async function autoUpgradeGlobal(latest){if(!VERSION_PATTERN.test(latest))return!1;let lockDir=path2.join(loadConfig().configDir,"auto-upgrade.lock");try{fs3.mkdirSync(path2.dirname(lockDir),{recursive:!0}),await acquireLock(lockDir)}catch{return!1}try{if(readGlobalFimoVersion()===latest)return!0;let install=spawnSync("npm",["install","-g",`fimo@${latest}`],{stdio:["ignore","ignore","inherit"],timeout:INSTALL_TIMEOUT_MS});return install.error||install.status!==0?!1:readGlobalFimoVersion()===latest}finally{try{fs3.rmdirSync(lockDir)}catch{}}}var INSTALL_TIMEOUT_MS,GLOBAL_ROOT_TIMEOUT_MS,LOCK_WAIT_MS,LOCK_STALE_MS,LOCK_POLL_MS,VERSION_PATTERN,defaultEligibility,init_auto_upgrade=__esm({"src/cli/auto-upgrade.ts"(){init_config();INSTALL_TIMEOUT_MS=12e4,GLOBAL_ROOT_TIMEOUT_MS=5e3,LOCK_WAIT_MS=18e4,LOCK_STALE_MS=3e5,LOCK_POLL_MS=500,VERSION_PATTERN=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;__name(isPublishedInstall,"isPublishedInstall");__name(buildSkipsVersionCheck,"buildSkipsVersionCheck");__name(defaultReadFile,"defaultReadFile");__name(resolveGlobalFimoRoot,"resolveGlobalFimoRoot");__name(normalizedPath,"normalizedPath");__name(autoUpgradeEnabled,"autoUpgradeEnabled");__name(acquireLock,"acquireLock");__name(readGlobalFimoVersion,"readGlobalFimoVersion");__name(autoUpgradeGlobal,"autoUpgradeGlobal")}});import fs4 from"node:fs";import path3 from"node:path";import{fileURLToPath as fileURLToPath2}from"node:url";function getCliVersion(){try{let raw=fs4.readFileSync(PACKAGE_JSON_PATH,"utf8");return JSON.parse(raw).version??"0.0.0"}catch{return"0.0.0"}}var THIS_FILE2,CLI_ROOT2,PACKAGE_JSON_PATH,init_version=__esm({"src/cli/version.ts"(){THIS_FILE2=fileURLToPath2(import.meta.url),CLI_ROOT2=path3.resolve(path3.dirname(THIS_FILE2),"..",".."),PACKAGE_JSON_PATH=path3.join(CLI_ROOT2,"package.json");__name(getCliVersion,"getCliVersion")}});function lazyFetchQs(against,extras={}){let params=new URLSearchParams;against&¶ms.set("against",against);for(let[k,v]of Object.entries(extras))params.set(k,v);return params.toString()}function publicationIdFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return null;let candidate=body.publicationId;return typeof candidate=="string"?candidate:null}function throwUnauthorized(cfg,status){try{recordAuthFailure(cfg)}catch{}throw new UnauthorizedError(cfg.apiUrl,status)}async function throwPermissionDenied(cfg,response){let required=[];try{let body=await response.json();required=Array.isArray(body.required)?body.required:body.required?[body.required]:[]}catch{}throw new PermissionDeniedError(cfg.apiUrl,required)}async function fimoFetch(url,init){let headers=new Headers(init.headers);headers.delete(CLI_VERSION_HEADER),headers.delete(CLI_AUTO_UPGRADE_HEADER);let canAutoUpgrade=process.argv[2]!=="git-credential"&&autoUpgradeEnabled();canAutoUpgrade&&(headers.set(CLI_VERSION_HEADER,getCliVersion()),headers.set(CLI_AUTO_UPGRADE_HEADER,"1"));let response=await fetch(url,{...init,headers});if(canAutoUpgrade&&response.status===426){let latest=response.headers.get(CLI_LATEST_HEADER);if(latest){await autoUpgradeGlobal(latest)||ui.warn({command:process.argv[2]??"fimo",message:`Could not upgrade to ${latest}; continuing with the current command.`});let retryHeaders=new Headers(init.headers);return retryHeaders.delete(CLI_VERSION_HEADER),retryHeaders.delete(CLI_AUTO_UPGRADE_HEADER),fetch(url,{...init,headers:retryHeaders})}}return response}function formatZodIssues(parsed){if(!parsed||typeof parsed!="object")return null;let error=parsed.error,issues=error&&typeof error=="object"&&"issues"in error?error.issues:void 0;return!Array.isArray(issues)||issues.length===0?null:issues.map(issue=>{let{path:path52,message}=issue;return`${Array.isArray(path52)&&path52.length>0?`${path52.join(".")}: `:""}${typeof message=="string"?message:"Invalid value"}`}).join("; ")}function formatPartialResult(parsed){if(!parsed.partial||typeof parsed.partial!="object"||Array.isArray(parsed.partial))return null;let partial=parsed.partial,counts=["created","updated","deleted"].flatMap(action=>typeof partial[action]=="number"&&partial[action]>0?[`${partial[action]} ${action}`]:[]);return counts.length>0?`Partial result: ${counts.join(", ")}.`:null}function recoverTenantApiBaseUrl(tenantApiUrl,projectId,env){try{let normalized=tenantApiUrl.replace(/\/$/,""),url=new URL(normalized),prefix=`${projectId}-${envResourceKey(env)}.`;if(!url.hostname.startsWith(prefix))return;url.hostname=url.hostname.slice(prefix.length);let base=url.toString().replace(/\/$/,"");return buildTenantApiUrl(projectId,env,base)===normalized?base:void 0}catch{return}}var SandboxReadinessError,ApiRequestError,UnauthorizedError,PermissionDeniedError,CLI_VERSION_HEADER,CLI_LATEST_HEADER,CLI_AUTO_UPGRADE_HEADER,FIMO_ENV_HEADER,FimoApiClient,init_api=__esm({"src/cli/api.ts"(){init_esm();init_dist();init_auth();init_auto_upgrade();init_config();init_version();__name(lazyFetchQs,"lazyFetchQs");SandboxReadinessError=class extends Error{static{__name(this,"SandboxReadinessError")}constructor(message){super(message),this.name="SandboxReadinessError"}},ApiRequestError=class extends Error{static{__name(this,"ApiRequestError")}status;method;path;detail;code;body;constructor(method,path52,status,detail,code2,body){super(`API ${method} ${path52} failed: ${status} ${detail}`),this.name="ApiRequestError",this.method=method,this.path=path52,this.status=status,this.detail=detail,this.code=code2,this.body=body}};__name(publicationIdFromError,"publicationIdFromError");UnauthorizedError=class extends Error{static{__name(this,"UnauthorizedError")}apiUrl;status;constructor(apiUrl,status,message){super(message??`Session for ${apiUrl} expired or invalid (HTTP ${status}).`),this.name="UnauthorizedError",this.apiUrl=apiUrl,this.status=status}},PermissionDeniedError=class extends Error{static{__name(this,"PermissionDeniedError")}apiUrl;required;constructor(apiUrl,required=[],message){let detail=required.length?` Missing permission: ${required.join(", ")}.`:"";super(message??`You don't have permission to do this on ${apiUrl}.${detail}`),this.name="PermissionDeniedError",this.apiUrl=apiUrl,this.required=required}};__name(throwUnauthorized,"throwUnauthorized");__name(throwPermissionDenied,"throwPermissionDenied");CLI_VERSION_HEADER="X-Fimo-CLI-Version",CLI_LATEST_HEADER="X-Fimo-CLI-Latest",CLI_AUTO_UPGRADE_HEADER="X-Fimo-CLI-Auto-Upgrade",FIMO_ENV_HEADER="X-Fimo-Env";__name(fimoFetch,"fimoFetch");__name(formatZodIssues,"formatZodIssues");__name(formatPartialResult,"formatPartialResult");__name(recoverTenantApiBaseUrl,"recoverTenantApiBaseUrl");FimoApiClient=class _FimoApiClient{constructor(cfg=loadConfig()){this.cfg=cfg}static{__name(this,"FimoApiClient")}env;withEnv(env){let next2=new _FimoApiClient(this.cfg);return next2.env=env,next2}formatError(status,text3,body){if(!text3)return String(status);if(body&&typeof body=="object"&&!Array.isArray(body)){let parsed=body;if(typeof parsed.message=="string"&&parsed.message.length>0){let partial=formatPartialResult(parsed);return partial?`${parsed.message} ${partial}`:parsed.message}if(typeof parsed.error=="string"&&parsed.error.length>0)return parsed.error;if(parsed.error&&typeof parsed.error=="object"&&"message"in parsed.error&&typeof parsed.error.message=="string")return parsed.error.message;let zodIssues=formatZodIssues(parsed);if(zodIssues)return zodIssues}return text3}async parseError(response){let text3=await response.text(),body;try{body=text3?JSON.parse(text3):void 0}catch{return{detail:this.formatError(response.status,text3)}}let code2=body&&typeof body=="object"&&!Array.isArray(body)&&typeof body.code=="string"?body.code:void 0;return{detail:this.formatError(response.status,text3,body),code:code2,body}}resolveAuthToken(){return process.env.FIMO_API_TOKEN?.trim()||requireToken(this.cfg)}async request(path52,init={},opts={}){let token=this.resolveAuthToken(),headers=new Headers(init.headers);headers.set("Authorization",`Bearer ${token}`),init.body&&!headers.has("Content-Type")&&headers.set("Content-Type","application/json"),this.env&&!headers.has(FIMO_ENV_HEADER)&&headers.set(FIMO_ENV_HEADER,this.env);let response=await fimoFetch(`${this.cfg.apiUrl}${path52}`,{...init,headers});if(response.status===401&&throwUnauthorized(this.cfg,response.status),response.status===403&&!opts.allow403&&await throwPermissionDenied(this.cfg,response),!response.ok){let error=await this.parseError(response);throw new ApiRequestError(init.method??"GET",path52,response.status,error.detail,error.code,error.body)}if(response.status!==204)return await response.json()}async fetchRaw(path52,init={}){let token=this.resolveAuthToken(),headers=new Headers(init.headers);return headers.set("Authorization",`Bearer ${token}`),init.body&&!headers.has("Content-Type")&&headers.set("Content-Type","application/json"),this.env&&!headers.has(FIMO_ENV_HEADER)&&headers.set(FIMO_ENV_HEADER,this.env),fimoFetch(`${this.cfg.apiUrl}${path52}`,{...init,headers})}async rawRequest(path52,init={}){let token=this.resolveAuthToken(),headers=new Headers(init.headers);headers.set("Authorization",`Bearer ${token}`),this.env&&!headers.has(FIMO_ENV_HEADER)&&headers.set(FIMO_ENV_HEADER,this.env);let response=await fimoFetch(`${this.cfg.apiUrl}${path52}`,{...init,headers});if(response.status===401&&throwUnauthorized(this.cfg,response.status),response.status===403&&await throwPermissionDenied(this.cfg,response),!response.ok){let error=await this.parseError(response);throw new Error(`API ${init.method??"GET"} ${path52} failed: ${response.status} ${error.detail}`)}return response}tenantPath(projectId,route){if(!this.env)throw new Error("FimoApiClient: tenant-scoped call requires an env. Use `client.withEnv(env)` before calling tenant CRUD methods.");return`/api/tenant/${projectId}/envs/${encodeEnvPathSegment(this.env)}${route}`}projectEnvManagementPath(projectId,route){if(!this.env)throw new Error("FimoApiClient: env-scoped management call requires an env. Use `client.withEnv(env)` before calling env CRUD methods.");return`/api/management/projects/${projectId}/envs/${encodeEnvPathSegment(this.env)}${route}`}async listModels(projectId,query={}){let params=new URLSearchParams;query.modality&¶ms.set("modality",query.modality);for(let t2 of query.tag??[])params.append("tag",t2);query.q&¶ms.set("q",query.q),query.category&¶ms.set("category",query.category);let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/integrations/fal/models${qs?`?${qs}`:""}`)).data}async getModel(projectId,key){try{return(await this.request(`/api/management/projects/${projectId}/integrations/fal/models/${key}`)).data}catch(err){if(err instanceof ApiRequestError&&err.status===404)return null;throw err}}async estimateModel(projectId,key,options){return(await this.request(`/api/management/projects/${projectId}/integrations/fal/models/estimate`,{method:"POST",body:JSON.stringify({model:key,options})})).data}async estimateGenerationTask(projectId,key,options){return(await this.request(this.tenantPath(projectId,"/assets/generate/estimate"),{method:"POST",body:JSON.stringify({task:key,options})})).data}async listOrganizations(){return(await this.request("/api/management/organizations")).data}async listOrganizationMembers(organizationId){return(await this.request(`/api/auth/organization/get-full-organization?organizationId=${encodeURIComponent(organizationId)}`))?.members??[]}async inviteOrganizationMember(input){return this.request("/api/auth/organization/invite-member",{method:"POST",body:JSON.stringify(input)})}async getCurrentSession(){return this.request("/api/auth/get-session")}async submitSupportIssue(input){return(await this.request("/api/support/issues",{method:"POST",body:JSON.stringify(input)})).data}async getReferralSummary(userId){return(await this.request(`/api/users/${encodeURIComponent(userId)}/referrals/summary`)).data}async listProjects(organizationId){return(await this.request(`/api/management/organizations/${encodeURIComponent(organizationId)}/projects`)).data}async publishProject(projectId,request={}){return(await this.request(`/api/management/projects/${projectId}/publish`,{method:"POST",body:JSON.stringify(request)}))?.data?.publicationId??null}async listPublications(projectId,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit)),query.before&¶ms.set("before",query.before);let search=params.toString();return(await this.request(`/api/management/projects/${projectId}/publications${search?`?${search}`:""}`)).data}async getPublication(projectId,publicationId){return(await this.request(`/api/management/projects/${projectId}/publications/${encodeURIComponent(publicationId)}`)).data}async getPublicationLogs(projectId,publicationId,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit));let search=params.toString();return(await this.request(`/api/management/projects/${projectId}/publications/${encodeURIComponent(publicationId)}/logs${search?`?${search}`:""}`)).data}async unpublishProject(projectId){await this.request(`/api/management/projects/${projectId}/unpublish`,{method:"POST"})}async createProject(input){return(await this.request("/api/management/projects",{method:"POST",body:JSON.stringify({...input,source:"cli"})})).data}async getProject(projectId){return(await this.request(`/api/management/projects/${projectId}`)).data}async getProjectCredits(projectId){return(await this.request(`/api/management/projects/${projectId}/billing/credits`)).data}async listProjectVersions(projectId,options){let params=new URLSearchParams({limit:String(options.limit)});return options.cursor&¶ms.set("cursor",options.cursor),(await this.request(`${this.projectEnvManagementPath(projectId,"/versions")}?${params.toString()}`)).data}async getProjectHistorySummary(projectId){return(await this.request(this.projectEnvManagementPath(projectId,"/versions/summary"))).data}async getProjectVersion(projectId,versionId){return(await this.request(this.projectEnvManagementPath(projectId,`/versions/${encodeURIComponent(versionId)}`))).data}async createProjectVersion(projectId,input){return(await this.request(this.projectEnvManagementPath(projectId,"/versions"),{method:"POST",body:JSON.stringify(input)})).data}async restoreProjectVersion(projectId,versionId){return(await this.request(this.projectEnvManagementPath(projectId,`/versions/${encodeURIComponent(versionId)}/restore`),{method:"POST"})).data}async listProjectSecretEntries(projectId,opts){let query=new URLSearchParams({environment:opts.environment});return opts.kind&&query.set("kind",opts.kind),(await this.request(`/api/management/projects/${projectId}/secrets?${query.toString()}`)).data}async createProjectSecretEntry(input){return(await this.request(`/api/management/projects/${input.projectId}/secrets`,{method:"POST",body:JSON.stringify({key:input.key,kind:input.kind,value:input.value,environment:input.environment})})).data}async updateProjectSecretEntry(input){return(await this.request(`/api/management/projects/${input.projectId}/secrets/${encodeURIComponent(input.key)}`,{method:"PATCH",body:JSON.stringify({kind:input.kind,value:input.value,environment:input.environment})})).data}async deleteProjectSecretEntry(projectId,key,kind,environment){let qs=new URLSearchParams({kind,environment});await this.request(`/api/management/projects/${projectId}/secrets/${encodeURIComponent(key)}?${qs.toString()}`,{method:"DELETE"})}async listProjectIntegrations(projectId){return(await this.request(`/api/management/projects/${projectId}/integrations`)).data}async addProjectMcpIntegration(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations`,{method:"POST",body:JSON.stringify(input.request)})).data}async getProjectIntegrationInfo(projectId,integrationKey){return(await this.request(`/api/management/projects/${projectId}/integrations/${encodeURIComponent(integrationKey)}/info`)).data}async getProjectIntegrationStatus(projectId,integrationKey){return(await this.request(`/api/management/projects/${projectId}/integrations/${encodeURIComponent(integrationKey)}/status`)).data}async connectProjectIntegration(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify(input.request)})).data}async enableProjectIntegration(input){let payload={...input.authMode?{authMode:input.authMode}:{},...input.connectionAlias?{connectionAlias:input.connectionAlias}:{}};return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}`,{method:"PUT",body:JSON.stringify(payload)})).data}async connectOrganizationIntegrationWithToken(input){return(await this.request(`/api/management/organizations/${encodeURIComponent(input.organizationId)}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify({...input.alias?{alias:input.alias}:{},token:input.token})})).data}async startOrganizationIntegrationConnect(input){return(await this.request(`/api/management/organizations/${encodeURIComponent(input.organizationId)}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify({})})).data}async switchProjectIntegrationAuth(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/auth`,{method:"PATCH",body:JSON.stringify({authMode:input.authMode})})).data}async disableProjectIntegration(projectId,integrationKey){await this.request(`/api/management/projects/${projectId}/integrations/${encodeURIComponent(integrationKey)}`,{method:"DELETE"})}async setProjectIntegrationCredential(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/credentials/${encodeURIComponent(input.credentialId)}`,{method:"PUT",body:JSON.stringify({value:input.value})})).data}async clearProjectIntegrationCredential(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/credentials/${encodeURIComponent(input.credentialId)}`,{method:"DELETE"})).data}async runProjectIntegrationTool(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/run`,{method:"POST",body:JSON.stringify(input.request)})).data}async startProjectIntegrationConnect(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST"})).data}async bindProjectChannel(projectId,request){return(await this.request(`/api/management/projects/${projectId}/channels/bind`,{method:"POST",body:JSON.stringify(request)})).data}async createSchedule(projectId,request){return(await this.request(`/api/management/projects/${projectId}/schedules`,{method:"POST",body:JSON.stringify(request)})).data}async listSchedules(projectId){return(await this.request(`/api/management/projects/${projectId}/schedules`)).data}async getSchedulesOverview(projectId){return(await this.request(`/api/management/projects/${projectId}/schedules/overview`)).data}async getSchedule(projectId,scheduleId){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}`)).data}async updateSchedule(projectId,scheduleId,request){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}`,{method:"PATCH",body:JSON.stringify(request)})).data}async setScheduleEnabled(projectId,scheduleId,enabled){let action=enabled?"resume":"pause";return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}/${action}`,{method:"POST"})).data}async runSchedule(projectId,scheduleId){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}/run`,{method:"POST",body:JSON.stringify({trigger:"cli"})})).data}async listScheduleRuns(projectId,scheduleId,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit)),query.cursor&¶ms.set("cursor",query.cursor),query.status&¶ms.set("status",query.status);let suffix=params.size>0?`?${params.toString()}`:"";return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}/runs${suffix}`)).data}async getScheduleRun(projectId,runId){return(await this.request(`/api/management/projects/${projectId}/schedules/runs/${encodeURIComponent(runId)}`)).data}async listWebhookEvents(projectId){return(await this.request(`/api/management/projects/${projectId}/webhooks/events`)).data}async listProjectWebhooks(projectId){return(await this.request(`/api/management/projects/${projectId}/webhooks`)).data}async getProjectWebhook(projectId,webhookId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}`)).data}async createProjectWebhook(projectId,request){return(await this.request(`/api/management/projects/${projectId}/webhooks`,{method:"POST",body:JSON.stringify(request)})).data}async updateProjectWebhook(projectId,webhookId,request){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}`,{method:"PATCH",body:JSON.stringify(request)})).data}async deleteProjectWebhook(projectId,webhookId){await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}`,{method:"DELETE"})}async listProjectEnvironments(projectId){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments`)).data}async createProjectEnvironment(projectId,input){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments`,{method:"POST",body:JSON.stringify(input)},{allow403:!0})).data}async updateProjectEnvironment(projectId,environmentId,input){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments/${encodeURIComponent(environmentId)}`,{method:"PATCH",body:JSON.stringify(input)},{allow403:!0})).data}async deleteProjectEnvironment(projectId,environmentId){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments/${encodeURIComponent(environmentId)}`,{method:"DELETE"},{allow403:!0})).data}async rotateProjectWebhookSecret(projectId,webhookId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/rotate-signing-secret`,{method:"POST"})).data.signingSecret}async testProjectWebhook(projectId,webhookId,input){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/test`,{method:"POST",body:JSON.stringify(input)})).data}async listProjectWebhookDeliveries(projectId,webhookId,limit){let query=`?page=1&limit=${limit??50}`;return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/deliveries${query}`)).data.items}async getProjectWebhookDelivery(projectId,webhookId,deliveryId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/deliveries/${deliveryId}`)).data}async retryProjectWebhookDelivery(projectId,webhookId,deliveryId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/deliveries/${deliveryId}/retry`,{method:"POST"})).data}async deleteSchedule(projectId,scheduleId){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}`,{method:"DELETE"})).data}async listEnvs(projectId,opts={}){let params=new URLSearchParams;opts.includeDeleted&¶ms.set("includeDeleted","true"),opts.includeAgentEnvs&¶ms.set("includeAgentEnvs","true");let qs=params.size>0?`?${params.toString()}`:"";return(await this.request(`/api/management/projects/${projectId}/envs${qs}`)).data}async resolveProjectEnvironmentKey(projectId,branch){if(branch==="prod")return PRODUCTION_ENVIRONMENT_KEY;let branches=await this.listEnvs(projectId,{includeAgentEnvs:!0}),current=branches.find(candidate=>candidate.env===branch),visited=new Set;for(;current&&!visited.has(current.env);){if(visited.add(current.env),current.resolvedEnvironment)return current.resolvedEnvironment.id;current=current.parentEnv?branches.find(candidate=>candidate.env===current?.parentEnv):void 0}return PREVIEW_ENVIRONMENT_KEY}async getEnv(projectId,env){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}`)).data}async createEnv(projectId,input){return(await this.request(`/api/management/projects/${projectId}/envs`,{method:"POST",body:JSON.stringify(input)})).data}async syncEnv(projectId,env,input={}){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/sync`,{method:"POST",body:JSON.stringify(input)})).data}async deleteEnv(projectId,env){await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}`,{method:"DELETE"})}async getEnvDiff(projectId,env,opts={}){let params=new URLSearchParams;opts.against&¶ms.set("against",opts.against),opts.surfaces&&opts.surfaces.length>0&¶ms.set("surfaces",opts.surfaces.join(","));let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff${qs?`?${qs}`:""}`)).data}async getEnvStatus(projectId,env,opts={}){let params=new URLSearchParams;opts.against&¶ms.set("against",opts.against),opts.surfaces&&opts.surfaces.length>0&¶ms.set("surfaces",opts.surfaces.join(","));let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/status${qs?`?${qs}`:""}`)).data}async getCodeFileDiff(projectId,env,path52,opts={}){let qs=lazyFetchQs(opts.against,{path:path52});return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/code/file?${qs}`)).data}async getCodeConflictDetail(projectId,env,fromEnv,filePath){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/conflict/code?path=${encodeURIComponent(filePath)}`)).data}async getContentRowDiff(projectId,env,collection,rowId,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/content/${encodeURIComponent(collection)}/${encodeURIComponent(rowId)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getSchemaTypeDiff(projectId,env,typeName,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/schemas/${encodeURIComponent(typeName)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getAssetDiff(projectId,env,assetId,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/assets/${encodeURIComponent(assetId)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getTranslationRowDiff(projectId,env,locale,key,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/translations/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getFormSchemaDiff(projectId,env,formName,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/forms/${encodeURIComponent(formName)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async mergeEnv(projectId,env,body){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge`,{method:"POST",body:JSON.stringify(body)})).data}async resolveMerge(projectId,env,fromEnv,body){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/resolve`,{method:"POST",body:JSON.stringify(body)})).data}async cancelMerge(projectId,env,mergeId){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/cancel`,{method:"POST",body:JSON.stringify({mergeId})})).data}async getMergeConflicts(projectId,env,fromEnv){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/conflicts`)).data}async putResolveDraft(projectId,env,fromEnv,body){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/resolve/draft`,{method:"PUT",body:JSON.stringify(body)})).data}async deleteResolveDraft(projectId,env,fromEnv){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/resolve/draft`,{method:"DELETE"})).data}async publishRelease(projectId,body){return(await this.request(`/api/management/projects/${projectId}/releases`,{method:"POST",body:JSON.stringify(body)})).data}async runAgent(projectId,env,agentName,body={}){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/agents/${encodeURIComponent(agentName)}/run`,{method:"POST",body:JSON.stringify(body)})).data}async listAgentSessions(projectId,opts={}){let params=new URLSearchParams;opts.agentName&¶ms.set("agent_name",opts.agentName),opts.env&¶ms.set("env",opts.env),opts.status&¶ms.set("status",opts.status),opts.limit!==void 0&¶ms.set("limit",String(opts.limit));let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/agents/sessions${qs?`?${qs}`:""}`)).data}async getAgentSession(projectId,sessionId){return(await this.request(`/api/management/projects/${projectId}/agents/sessions/${encodeURIComponent(sessionId)}`)).data.session}async getFeatures(){return this.request("/api/features")}async inviteProjectUser(input){return{id:(await this.request(`/api/management/projects/${input.projectId}/invites`,{method:"POST",body:JSON.stringify({email:input.email,roleKey:input.roleKey})})).data.id}}async updateProjectSettings(projectId,settings){return(await this.request(`/api/management/projects/${projectId}/settings`,{method:"PUT",body:JSON.stringify(settings)})).data}async deleteProject(projectId){await this.request(`/api/management/projects/${projectId}`,{method:"DELETE",body:JSON.stringify({})})}async getGitRemote(projectId,env){let remote=(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/git-remote`,{},{allow403:!0})).data;if(!remote.tenantApiBaseUrl){let recovered=recoverTenantApiBaseUrl(remote.tenantApiUrl,projectId,env);if(recovered)return{...remote,tenantApiBaseUrl:recovered}}return remote}async getProjectLocaleStats(projectId){return(await this.request(this.projectEnvManagementPath(projectId,"/locales/stats"))).data}async addProjectLocale(projectId,input){return(await this.request(this.projectEnvManagementPath(projectId,"/locales"),{method:"POST",body:JSON.stringify(input)})).data}async setProjectDefaultLocale(projectId,input){return(await this.request(this.projectEnvManagementPath(projectId,"/locales/default"),{method:"PUT",body:JSON.stringify(input)})).data}async removeProjectLocale(projectId,locale){return(await this.request(this.projectEnvManagementPath(projectId,`/locales/${encodeURIComponent(locale)}`),{method:"DELETE"})).data}async getGitCredential(projectId,env){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/git-credential`,{},{allow403:!0})).data}async getPreviewUrl(projectId,env){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeEnvPathSegment(env)}/sandbox`)).data}async getSandboxLogs(projectId,env,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit)),query.before&¶ms.set("before",query.before);let search=params.toString();return(await this.request(`/api/management/projects/${projectId}/envs/${encodeEnvPathSegment(env)}/sandbox/logs${search?`?${search}`:""}`)).data}async sandboxPull(projectId,onProgress,env,options={}){let params=new URLSearchParams;options.noRestart&¶ms.set("noRestart","true"),options.wait!==void 0&¶ms.set("wait",String(options.wait));let search=params.toString(),query=search?`?${search}`:"",response=await this.rawRequest(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/sandbox/pull${query}`,{method:"POST",headers:{Accept:"text/event-stream"}});if(!response.body)throw new Error("Sandbox pull failed: empty response stream");let reader=response.body.getReader(),decoder=new TextDecoder,buffer="",errorMessage6=null,errorCode,readiness=null,timings=null,completed=!1;try{for(;;){let{value,done}=await reader.read();if(done)break;buffer+=decoder.decode(value,{stream:!0});let separatorIndex=buffer.indexOf(`
|
|
42
|
+
`)}),this}_outputHelpIfRequested(args){let helpOption=this._getHelpOption();helpOption&&args.find(arg=>helpOption.is(arg))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function incrementNodeInspectorPort(args){return args.map(arg=>{if(!arg.startsWith("--inspect"))return arg;let debugOption,debugHost="127.0.0.1",debugPort="9229",match;return(match=arg.match(/^(--inspect(-brk)?)$/))!==null?debugOption=match[1]:(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(debugOption=match[1],/^\d+$/.test(match[3])?debugPort=match[3]:debugHost=match[3]):(match=arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(debugOption=match[1],debugHost=match[3],debugPort=match[4]),debugOption&&debugPort!=="0"?`${debugOption}=${debugHost}:${parseInt(debugPort)+1}`:arg})}__name(incrementNodeInspectorPort,"incrementNodeInspectorPort");function useColor(){if(process8.env.NO_COLOR||process8.env.FORCE_COLOR==="0"||process8.env.FORCE_COLOR==="false")return!1;if(process8.env.FORCE_COLOR||process8.env.CLICOLOR_FORCE!==void 0)return!0}__name(useColor,"useColor");exports2.Command=Command2;exports2.useColor=useColor}});var require_commander=__commonJS({"../../node_modules/.pnpm/commander@13.1.0/node_modules/commander/index.js"(exports2){var{Argument:Argument2}=require_argument(),{Command:Command2}=require_command(),{CommanderError:CommanderError2,InvalidArgumentError:InvalidArgumentError2}=require_error(),{Help:Help2}=require_help(),{Option:Option2}=require_option();exports2.program=new Command2;exports2.createCommand=name=>new Command2(name);exports2.createOption=(flags,description)=>new Option2(flags,description);exports2.createArgument=(name,description)=>new Argument2(name,description);exports2.Command=Command2;exports2.Option=Option2;exports2.Argument=Argument2;exports2.Help=Help2;exports2.CommanderError=CommanderError2;exports2.InvalidArgumentError=InvalidArgumentError2;exports2.InvalidOptionArgumentError=InvalidArgumentError2}});import{z}from"zod";function filterUnknownProperties(data2,schema){if(data2==null)return data2;if(schema instanceof z.ZodOptional||schema instanceof z.ZodNullable||schema instanceof z.ZodDefault)return filterUnknownProperties(data2,schema.unwrap());if(schema instanceof z.ZodArray){if(!Array.isArray(data2))return data2;let itemSchema=schema.unwrap();return data2.map(item=>filterUnknownProperties(item,itemSchema))}if(schema instanceof z.ZodDiscriminatedUnion){if(typeof data2!="object"||data2===null)return data2;let unionSchema=schema,discriminator=unionSchema.def.discriminator,discriminatorValue=data2[discriminator],matchingSchema=unionSchema.options.find(option=>{let discriminatorField=option.shape[discriminator];return discriminatorField instanceof z.ZodLiteral?discriminatorField.def.values.includes(discriminatorValue):!1});return matchingSchema?filterUnknownProperties(data2,matchingSchema):data2}if(schema instanceof z.ZodObject){if(typeof data2!="object")return data2;let shape=schema.shape,result={};for(let key in shape)if(Object.prototype.hasOwnProperty.call(data2,key)){let fieldSchema=shape[key],fieldValue2=data2[key];result[key]=filterUnknownProperties(fieldValue2,fieldSchema)}if(schema.def.catchall instanceof z.ZodUnknown)for(let[key,value]of Object.entries(data2))key in shape||(result[key]=value);return result}return data2}function createObjectDTO(schema){return{schema,from(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,schema);return schema.safeParse(filtered)},partial(){let partialSchema=schema.partial();return createObjectDTO(partialSchema)},pick(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),picked=schema.pick(mask);return createObjectDTO(picked)},omit(keys){let mask=keys.reduce((acc,key)=>({...acc,[key]:!0}),{}),omitted=schema.omit(mask);return createObjectDTO(omitted)}}}function createDiscriminatedUnionDTO(schema){return{schema,from(data2){let filtered=filterUnknownProperties(data2,schema);return schema.parse(filtered)},fromList(data2){return data2.map(item=>this.from(item))},safeParse(data2){let filtered=filterUnknownProperties(data2,schema);return schema.safeParse(filtered)}}}function createDTO(schema){if(schema instanceof z.ZodObject)return createObjectDTO(schema);if(schema instanceof z.ZodDiscriminatedUnion)return createDiscriminatedUnionDTO(schema);throw new Error(`Unsupported schema type: ${schema.constructor.name}. createDTO supports ZodObject and ZodDiscriminatedUnion.`)}var init_create_dto=__esm({"../../packages/api-contracts/dist/esm/utils/create-dto.js"(){"use strict";__name(filterUnknownProperties,"filterUnknownProperties");__name(createObjectDTO,"createObjectDTO");__name(createDiscriminatedUnionDTO,"createDiscriminatedUnionDTO");__name(createDTO,"createDTO")}});import{z as z2}from"zod";function createCursorPageDataSchema(dataSchema){return z2.object({items:z2.array(dataSchema),nextCursor:z2.string().nullable()})}function createCursorPaginatedResponseSchema(dataSchema){return z2.object({data:createCursorPageDataSchema(dataSchema)})}var createResponseSchema,init_response=__esm({"../../packages/api-contracts/dist/esm/utils/response.js"(){"use strict";createResponseSchema=__name(dataSchema=>z2.object({data:dataSchema}),"createResponseSchema");__name(createCursorPageDataSchema,"createCursorPageDataSchema");__name(createCursorPaginatedResponseSchema,"createCursorPaginatedResponseSchema")}});import{z as z3}from"zod";var PaginationQuerySchema,init_pagination=__esm({"../../packages/api-contracts/dist/esm/utils/pagination.js"(){"use strict";PaginationQuerySchema=z3.object({page:z3.coerce.number().int().positive().default(1),limit:z3.coerce.number().int().positive().max(100).default(20)})}});import{z as z4}from"zod";var CommonSchemas,BaseEntitySchema,ProjectRoleKeySchema,ProjectRoleKeyWithSystemSchema,ProjectPrincipalTypeSchema,ProjectStatusSchema,ProjectInviteStatusSchema,PublicationStatusSchema,OrganizationRoleSchema,AssetTypeSchema,TemplateCodeSchema,FieldTypeSchema,CONTENT_INTERNAL_FIELD_NAMES,contentInternalFieldNames,RESERVED_CONTENT_FIELD_NAMES,contentReviewHiddenFieldNames,CONTENT_TYPE_NAME_PATTERN,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION,CONTENT_FIELD_NAME_PATTERN,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION,init_common=__esm({"../../packages/api-contracts/dist/esm/types/common.js"(){"use strict";CommonSchemas={timestamp:z4.coerce.date(),positiveInt:z4.number().int().positive(),nonNegativeInt:z4.number().int().nonnegative()},BaseEntitySchema=z4.object({id:z4.uuid(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),ProjectRoleKeySchema=z4.enum(["full","edit","comment","view"]),ProjectRoleKeyWithSystemSchema=z4.enum(["full","edit","comment","view","agent","schedule"]),ProjectPrincipalTypeSchema=z4.enum(["user","org","orgRole","public","email"]),ProjectStatusSchema=z4.enum(["creating","forking","start_server","created","failed"]),ProjectInviteStatusSchema=z4.enum(["pending","accepted","revoked","expired"]),PublicationStatusSchema=z4.enum(["idle","publishing","published","failed","unpublished"]),OrganizationRoleSchema=z4.enum(["owner","admin","member"]),AssetTypeSchema=z4.enum(["file","folder"]),TemplateCodeSchema=z4.enum(["Free","Premium","Pro"]),FieldTypeSchema=z4.enum(["string","text","richtext","media","number","boolean","date","datetime","json","reference","blocks"]),CONTENT_INTERNAL_FIELD_NAMES=["id","entryId","documentId","locale","__fimo"],contentInternalFieldNames=new Set(CONTENT_INTERNAL_FIELD_NAMES),RESERVED_CONTENT_FIELD_NAMES=[...CONTENT_INTERNAL_FIELD_NAMES,"slug","createdAt","updatedAt"],contentReviewHiddenFieldNames=new Set(RESERVED_CONTENT_FIELD_NAMES),CONTENT_TYPE_NAME_PATTERN=/^[A-Za-z]\w*$/,CONTENT_TYPE_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter",CONTENT_FIELD_NAME_PATTERN=/^[A-Za-z_]\w*$/,CONTENT_FIELD_NAME_PATTERN_DESCRIPTION="letters, numbers, and underscores, starting with a letter or underscore"}});import{z as z5}from"zod";var MB,MAX_DOCUMENT_SIZE_BYTES,MAX_AUDIO_SIZE_BYTES,MAX_IMAGE_SIZE_BYTES,MAX_VIDEO_SIZE_BYTES,MAX_ARCHIVE_SIZE_BYTES,MAX_MODEL_SIZE_BYTES,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES,MODEL_MEDIA_TYPE,AttachmentModelMediaTypeSchema,MODEL_MIME_TYPES,MODEL_RENDER_VIEW_ANGLES,AttachmentModelRenderRequestSchema,AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema,AttachmentModelRenderResponseSchema,AttachmentModelRenderMeterSchema,ATTACHMENT_TYPES,ATTACHMENT_MIME_TYPES,ATTACHMENT_IMAGE_MIME_TYPES,ATTACHMENT_DOCUMENT_MIME_TYPES,ATTACHMENT_ARCHIVE_MIME_TYPES,ATTACHMENT_AUDIO_MIME_TYPES,ATTACHMENT_VIDEO_MIME_TYPES,ATTACHMENT_ACCEPT_EXTENSIONS,ATTACHMENT_ACCEPT_STRING,ATTACHMENT_DROPZONE_ACCEPT,EXTENSION_MIME_TYPES,init_attachments=__esm({"../../packages/api-contracts/dist/esm/types/attachments.js"(){"use strict";MB=1024*1024,MAX_DOCUMENT_SIZE_BYTES=5*MB,MAX_AUDIO_SIZE_BYTES=10*MB,MAX_IMAGE_SIZE_BYTES=20*MB,MAX_VIDEO_SIZE_BYTES=20*MB,MAX_ARCHIVE_SIZE_BYTES=20*MB,MAX_MODEL_SIZE_BYTES=20*MB,MAX_ATTACHMENT_MESSAGE_SIZE_BYTES=20*MB,MODEL_MEDIA_TYPE={GLB:"model/gltf-binary",GLTF:"model/gltf+json",FBX:"model/fbx",OBJ:"model/obj",STL:"model/stl",PLY:"model/ply"},AttachmentModelMediaTypeSchema=z5.enum(MODEL_MEDIA_TYPE),MODEL_MIME_TYPES=Object.values(MODEL_MEDIA_TYPE),MODEL_RENDER_VIEW_ANGLES=[35,125,215,305],AttachmentModelRenderRequestSchema=z5.object({renderId:z5.uuid(),filename:z5.string().min(1).max(255),mediaType:AttachmentModelMediaTypeSchema,modelUrl:z5.url()}),AttachmentModelRenderSuccessSchema=z5.object({status:z5.literal("succeeded"),views:z5.tuple([z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[0]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[1]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[2]),screenshotUrl:z5.url()}),z5.object({angle:z5.literal(MODEL_RENDER_VIEW_ANGLES[3]),screenshotUrl:z5.url()})]),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative(),diagnostics:z5.unknown().optional()}),AttachmentModelRenderFailureSchema=z5.object({status:z5.literal("failed"),error:z5.literal("render_failed"),message:z5.string(),elapsedMs:z5.number().nonnegative(),browserElapsedMs:z5.number().nonnegative()}),AttachmentModelRenderResponseSchema=z5.discriminatedUnion("status",[AttachmentModelRenderSuccessSchema,AttachmentModelRenderFailureSchema]),AttachmentModelRenderMeterSchema=z5.object({browserElapsedMs:z5.number().nonnegative()}),ATTACHMENT_TYPES=[{mime:"image/png",extensions:[".png"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/jpeg",extensions:[".jpg",".jpeg"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/webp",extensions:[".webp"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"image/avif",extensions:[".avif"],category:"image",maxSizeBytes:MAX_IMAGE_SIZE_BYTES},{mime:"application/pdf",extensions:[".pdf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/msword",extensions:[".doc"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",extensions:[".docx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-excel",extensions:[".xls"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",extensions:[".xlsx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.ms-powerpoint",extensions:[".ppt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation",extensions:[".pptx"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/epub+zip",extensions:[".epub"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.text",extensions:[".odt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.spreadsheet",extensions:[".ods"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/vnd.oasis.opendocument.presentation",extensions:[".odp"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/rtf",extensions:[],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/rtf",extensions:[".rtf"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/html",extensions:[".html",".htm"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/csv",extensions:[".csv"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/markdown",extensions:[".md",".markdown"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/json",extensions:[".json"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"text/plain",extensions:[".txt"],category:"document",maxSizeBytes:MAX_DOCUMENT_SIZE_BYTES},{mime:"application/zip",extensions:[".zip"],category:"archive",maxSizeBytes:MAX_ARCHIVE_SIZE_BYTES},{mime:"audio/mpeg",extensions:[".mp3"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/wav",extensions:[".wav"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aiff",extensions:[".aiff",".aif"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/aac",extensions:[".aac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/ogg",extensions:[".ogg"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"audio/flac",extensions:[".flac"],category:"audio",maxSizeBytes:MAX_AUDIO_SIZE_BYTES},{mime:"video/mp4",extensions:[".mp4"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpeg",extensions:[".mpeg",".mpg"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mpg",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/quicktime",extensions:[".mov"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/mov",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/avi",extensions:[".avi"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/vnd.avi",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-msvideo",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-flv",extensions:[".flv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/webm",extensions:[".webm"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/wmv",extensions:[".wmv"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-wmv",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/x-ms-asf",extensions:[],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:"video/3gpp",extensions:[".3gp"],category:"video",maxSizeBytes:MAX_VIDEO_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLB,extensions:[".glb"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.GLTF,extensions:[".gltf"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.FBX,extensions:[".fbx"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.OBJ,extensions:[".obj"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.STL,extensions:[".stl"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES},{mime:MODEL_MEDIA_TYPE.PLY,extensions:[".ply"],category:"model",maxSizeBytes:MAX_MODEL_SIZE_BYTES}],ATTACHMENT_MIME_TYPES=ATTACHMENT_TYPES.map(t2=>t2.mime),ATTACHMENT_IMAGE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="image").map(t2=>t2.mime),ATTACHMENT_DOCUMENT_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="document").map(t2=>t2.mime),ATTACHMENT_ARCHIVE_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="archive").map(t2=>t2.mime),ATTACHMENT_AUDIO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="audio").map(t2=>t2.mime),ATTACHMENT_VIDEO_MIME_TYPES=ATTACHMENT_TYPES.filter(t2=>t2.category==="video").map(t2=>t2.mime),ATTACHMENT_ACCEPT_EXTENSIONS=ATTACHMENT_TYPES.flatMap(t2=>t2.extensions),ATTACHMENT_ACCEPT_STRING=[...ATTACHMENT_ACCEPT_EXTENSIONS,...ATTACHMENT_MIME_TYPES].join(","),ATTACHMENT_DROPZONE_ACCEPT=Object.fromEntries(ATTACHMENT_TYPES.map(t2=>[t2.mime,t2.extensions])),EXTENSION_MIME_TYPES=Object.fromEntries(ATTACHMENT_TYPES.flatMap(t2=>t2.extensions.map(extension=>[extension,t2.mime])))}});import{z as z6}from"zod";var AssetReadRequestSchema,AssetDerivedFileSchema,AssetReadBaseSchema,AssetReadPageSchema,AssetReadQuerySchema,AssetReadResultSchema,init_asset_reading=__esm({"../../packages/api-contracts/dist/esm/types/asset-reading.js"(){"use strict";AssetReadRequestSchema=z6.object({cursor:z6.string().optional(),query:z6.string().trim().min(1).max(500).optional()}).strict().refine(input=>input.cursor===void 0||input.query===void 0,{message:"Use either cursor or query, not both."}),AssetDerivedFileSchema=z6.object({url:z6.url(),mediaType:z6.string(),filename:z6.string()}),AssetReadBaseSchema=z6.object({assetId:z6.uuid(),filename:z6.string(),mediaType:z6.string(),representation:z6.enum(["text","table","document","archive","image","transcript","video","model"]),content:z6.string(),derivedFiles:z6.array(AssetDerivedFileSchema).optional()}),AssetReadPageSchema=AssetReadBaseSchema.extend({mode:z6.literal("page"),start:z6.number().int().nonnegative(),end:z6.number().int().nonnegative(),total:z6.number().int().nonnegative(),nextCursor:z6.string().nullable(),complete:z6.boolean()}),AssetReadQuerySchema=AssetReadBaseSchema.extend({mode:z6.literal("query"),query:z6.string(),source:z6.enum(["original-file","canonical-text","derived-files"]),truncated:z6.boolean()}),AssetReadResultSchema=z6.discriminatedUnion("mode",[AssetReadPageSchema,AssetReadQuerySchema])}});import{z as z7}from"zod";function isValidEnv(env){return typeof env!="string"||env.length===0||env.length>MAX_ENV_LENGTH||env.startsWith("-")||env.startsWith(".")||env.includes("//")||env.includes("--")||env.split("/").some(segment=>segment==="..")?!1:ENV_ID_REGEX.test(env)}function encodeEnvPathSegment(env){return env.replace(/\//g,"--")}function isProductionEnv(env){return env===PRODUCTION_ENV}function fnv1a8(s){let h=2166136261;for(let i=0;i<s.length;i++)h^=s.charCodeAt(i),h=Math.imul(h,16777619);return(h>>>0).toString(16).padStart(8,"0")}function envResourceKey(env){let base=env.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,15),hash=fnv1a8(env);return base?`${base}-${hash}`:hash}function buildTenantApiUrl(projectId,env,tenantApiBaseUrl){let url=new URL(tenantApiBaseUrl);return url.hostname=`${projectId}-${envResourceKey(env)}.${url.hostname}`,url.toString().replace(/\/$/,"")}var FIMO_CONTENT_API_ENV_KEYS,FIMO_PREVIEW_SCRIPT_ENV_KEYS,FIMO_MANAGED_PROJECT_ENV_KEYS,ENV_ID_REGEX,MAX_ENV_LENGTH,EnvSchema,DEFAULT_ENV,PRODUCTION_ENV,init_env=__esm({"../../packages/api-contracts/dist/esm/types/env.js"(){"use strict";FIMO_CONTENT_API_ENV_KEYS=["FIMO_CONTENT_API_URL","VITE_API_URL","NEXT_PUBLIC_FIMO_API_URL","NUXT_PUBLIC_FIMO_API_URL","PUBLIC_FIMO_API_URL"],FIMO_PREVIEW_SCRIPT_ENV_KEYS=["VITE_PREVIEW_SCRIPT_URL","VITE_FIMO_PREVIEW_SCRIPT_URL","NEXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","NUXT_PUBLIC_FIMO_PREVIEW_SCRIPT_URL","PUBLIC_FIMO_PREVIEW_SCRIPT_URL","FIMO_PREVIEW_SCRIPT_URL"],FIMO_MANAGED_PROJECT_ENV_KEYS=["FIMO_API_URL","FIMO_API_TOKEN","FIMO_PROJECT_ID","FIMO_ENV","NEXT_PUBLIC_FIMO_ENV","FIMO_AGENT_SESSION","FIMO_DATA_SOURCES",...FIMO_CONTENT_API_ENV_KEYS,...FIMO_PREVIEW_SCRIPT_ENV_KEYS,"VITE_ENABLE_ANALYTICS","VITE_FIMO_BRANCH","VITE_FIMO_IMAGE_HOSTS"],ENV_ID_REGEX=/^[a-zA-Z0-9._/-]+$/,MAX_ENV_LENGTH=255;__name(isValidEnv,"isValidEnv");__name(encodeEnvPathSegment,"encodeEnvPathSegment");EnvSchema=z7.string().min(1,"env must not be empty").max(MAX_ENV_LENGTH,`env must be at most ${MAX_ENV_LENGTH} characters`).refine(isValidEnv,{error:"env must match /^[a-zA-Z0-9._/-]+$/ and must not start with `-`"}),DEFAULT_ENV="main",PRODUCTION_ENV="prod";__name(isProductionEnv,"isProductionEnv");__name(fnv1a8,"fnv1a8");__name(envResourceKey,"envResourceKey");__name(buildTenantApiUrl,"buildTenantApiUrl")}});import{z as z8}from"zod";var PRODUCTION_ENVIRONMENT_KEY,PREVIEW_ENVIRONMENT_KEY,EnvironmentKeySchema,CustomEnvironmentSchema,ResolvedEnvironmentSchema,init_environment=__esm({"../../packages/api-contracts/dist/esm/types/environment.js"(){"use strict";init_env();PRODUCTION_ENVIRONMENT_KEY="production",PREVIEW_ENVIRONMENT_KEY="preview",EnvironmentKeySchema=z8.union([z8.literal(PRODUCTION_ENVIRONMENT_KEY),z8.literal(PREVIEW_ENVIRONMENT_KEY),z8.uuid()]),CustomEnvironmentSchema=z8.object({id:z8.uuid(),projectId:z8.uuid(),name:z8.string().trim().min(1).max(64),branchPatterns:z8.array(z8.string().min(1).max(255)).min(1),description:z8.string().max(255).nullable()}),ResolvedEnvironmentSchema=z8.object({branch:EnvSchema,environment:EnvironmentKeySchema})}});import{z as z9}from"zod";var NOTIFICATION_EVENTS,NotificationAudienceSchema,NotificationEventSchema,init_realtime=__esm({"../../packages/api-contracts/dist/esm/types/realtime.js"(){"use strict";init_env();NOTIFICATION_EVENTS={created:"notifications/created",stateChanged:"notifications/state-changed",unreadChanged:"notifications/unread-changed"},NotificationAudienceSchema=z9.object({projectId:z9.uuid(),userId:z9.string().min(1)}),NotificationEventSchema=z9.discriminatedUnion("type",[z9.object({type:z9.literal(NOTIFICATION_EVENTS.created),payload:NotificationAudienceSchema.extend({notificationId:z9.uuid()})}),z9.object({type:z9.literal(NOTIFICATION_EVENTS.stateChanged),payload:NotificationAudienceSchema.extend({notificationId:z9.uuid()})}),z9.object({type:z9.literal(NOTIFICATION_EVENTS.unreadChanged),payload:NotificationAudienceSchema})])}});import{z as z10}from"zod";function referenceDocumentId(value){if(typeof value=="string")return value;if(value&&typeof value=="object"){let reference=value,hasId=Object.prototype.hasOwnProperty.call(reference,"id"),hasDocumentId=Object.prototype.hasOwnProperty.call(reference,"documentId"),id=reference.id,documentId=reference.documentId;if(hasId&&typeof id!="string"||hasDocumentId&&typeof documentId!="string"||typeof id=="string"&&typeof documentId=="string"&&id!==documentId)return null;if(typeof id=="string")return id;if(typeof documentId=="string")return documentId}return null}function toReferenceValue(value){let documentId=referenceDocumentId(value);return documentId?{documentId}:null}function referenceContentType(value){if(value&&typeof value=="object"&&"contentType"in value){let contentType=value.contentType;return typeof contentType=="string"&&contentType.length>0?contentType:null}return null}function toPolymorphicReferenceValue(value){let documentId=referenceDocumentId(value),contentType=referenceContentType(value);return documentId&&contentType?{contentType,documentId}:null}var referenceValuePreprocess,ReferenceValueSchema,ReferenceInputValueSchema,polymorphicReferenceValuePreprocess,PolymorphicReferenceValueSchema,PolymorphicReferenceInputValueSchema,init_references=__esm({"../../packages/api-contracts/dist/esm/types/references.js"(){"use strict";__name(referenceDocumentId,"referenceDocumentId");__name(toReferenceValue,"toReferenceValue");referenceValuePreprocess=__name(value=>{let reference=toReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"referenceValuePreprocess"),ReferenceValueSchema=z10.preprocess(referenceValuePreprocess,z10.object({documentId:z10.uuid()})),ReferenceInputValueSchema=z10.preprocess(referenceValuePreprocess,z10.union([z10.object({documentId:z10.uuid()}),z10.object({slug:z10.string().min(1)})]));__name(referenceContentType,"referenceContentType");__name(toPolymorphicReferenceValue,"toPolymorphicReferenceValue");polymorphicReferenceValuePreprocess=__name(value=>{let reference=toPolymorphicReferenceValue(value);return reference||(value&&typeof value=="object"&&("id"in value||"documentId"in value)?null:value)},"polymorphicReferenceValuePreprocess"),PolymorphicReferenceValueSchema=z10.preprocess(polymorphicReferenceValuePreprocess,z10.object({contentType:z10.string().min(1),documentId:z10.uuid()})),PolymorphicReferenceInputValueSchema=z10.preprocess(polymorphicReferenceValuePreprocess,z10.union([z10.object({contentType:z10.string().min(1),documentId:z10.uuid()}),z10.object({contentType:z10.string().min(1),slug:z10.string().min(1)})]))}});import{z as z11}from"zod";function isDatetimeInstant(value){return typeof value=="string"&&DATETIME_INSTANT_PATTERN.test(value)&&!Number.isNaN(Date.parse(value))}function rejectLegacyLocaleSettings(field,ctx){"localized"in field&&ctx.addIssue({code:"custom",path:["localized"],message:'Field-level locale settings use "i18n".'})}function rejectFieldI18n(field,ctx){"i18n"in field&&ctx.addIssue({code:"custom",path:["i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}function refineConditions(field,ctx){if(field.showIf!==void 0&&field.showIfAny!==void 0&&ctx.addIssue({code:"custom",path:["showIfAny"],message:'A field declares "showIf" or "showIfAny", never both.'}),Array.isArray(field.showIf)){let fields=field.showIf.map(clause=>clause.field);new Set(fields).size!==fields.length&&ctx.addIssue({code:"custom",path:["showIf"],message:'"showIf" clauses must each name a different field. Use "in" for several values of one field.'})}}function rejectUnsupportedUnique(field,ctx,type){"unique"in field&&!uniqueFieldTypes.has(type)&&ctx.addIssue({code:"custom",path:["unique"],message:UNSUPPORTED_UNIQUE_MESSAGE})}function getConditionDefinition(field){if(field.showIfAny!==void 0)return{key:"showIfAny",clauses:field.showIfAny};if(field.showIf!==void 0)return{key:"showIf",clauses:Array.isArray(field.showIf)?field.showIf:[field.showIf]}}function getConditionValues(clause){return"equals"in clause?[clause.equals]:clause.in}function collectClauseProblems(fieldName,condition,clause,fields,path52){let conditionPath=[...path52,fieldName,condition.key],trigger=fields[clause.field];if(trigger===void 0)return[{path:conditionPath,message:`"${condition.key}" references unknown field "${clause.field}".`}];if(trigger.showIf!==void 0||trigger.showIfAny!==void 0)return[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is conditional too. Conditions are one level deep.`}];if(trigger.type!=="boolean"&&trigger.type!=="number"&&trigger.type!=="string")return[{path:conditionPath,message:`"${condition.key}" can only reference boolean, number, and string fields. "${clause.field}" is a ${trigger.type} field.`}];let triggerOptions=trigger.type==="string"?trigger.options:void 0;if(trigger.type==="string"&&triggerOptions===void 0)return[{path:conditionPath,message:`"${condition.key}" can only reference a string field that declares "options". Add options to "${clause.field}".`}];let values=getConditionValues(clause);if(values.some(value=>typeof value!==trigger.type))return[{path:conditionPath,message:`"${condition.key}" on "${clause.field}" expects a ${trigger.type} value.`}];if(triggerOptions!==void 0){let invalidValues=values.filter(value=>!triggerOptions.includes(value));if(invalidValues.length>0)return invalidValues.map(value=>({path:conditionPath,message:`"${value}" is not one of the options declared by "${clause.field}".`}))}return trigger.editable===!1?[{path:conditionPath,message:`"${condition.key}" cannot reference "${clause.field}" because it is not editable.`}]:[]}function collectConditionProblems(fields){let problems=[],walk=__name((currentFields,path52)=>{for(let[fieldName,field]of Object.entries(currentFields)){let condition=getConditionDefinition(field);if(condition!==void 0)for(let clause of condition.clauses)problems.push(...collectClauseProblems(fieldName,condition,clause,currentFields,path52));if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...path52,fieldName,variant.uid]);else walk(field.schema.fields,[...path52,fieldName])}},"walk");return walk(fields,[]),problems}function isBlocksUnion(schema){return"oneOf"in schema}function walkContentFields(fields,visit2){let walk=__name((currentFields,path52,structuredDepth,insideStructuredContent)=>{for(let[fieldName,field]of Object.entries(currentFields)){let fieldPath=[...path52,fieldName];visit2({field,path:fieldPath,structuredDepth,insideStructuredContent});let nextDepth=structuredDepth+1;if(field.type==="blocks")if(isBlocksUnion(field.schema))for(let variant of field.schema.oneOf)walk(variant.fields,[...fieldPath,variant.uid],nextDepth,!0);else walk(field.schema.fields,fieldPath,nextDepth,!0)}},"walk");walk(fields,[],0,!1)}var UNIQUE_FIELD_TYPES,DATETIME_INSTANT_PATTERN,DATETIME_INSTANT_MESSAGE,utf8,MAX_STRUCTURED_CONTENT_DEPTH,MAX_BLOCK_VARIANTS,MAX_BLOCK_ITEMS,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES,showIfClauseSchema,commonFieldShape,FIELD_I18N_UNSUPPORTED_MESSAGE,uniqueFieldTypes,UNSUPPORTED_UNIQUE_MESSAGE,scalarFieldSchema,referenceFieldSchema,reservedStructuredContentNames,ContentFieldDefinitionSchema,blockFieldsSchema,blockVariantSchema,fixedBlocksSchema,blocksSchema,blocksFieldSchema,contentFieldDefinitionSchema,init_content_fields=__esm({"../../packages/api-contracts/dist/esm/types/content-fields.js"(){"use strict";init_common();UNIQUE_FIELD_TYPES=["string","text","number","boolean","date"],DATETIME_INSTANT_PATTERN=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d+)?)?([Zz]|[+-]\d{2}:\d{2})$/,DATETIME_INSTANT_MESSAGE="A datetime must be an ISO 8601 instant with a UTC offset, such as 2026-08-13T09:30:00Z.";__name(isDatetimeInstant,"isDatetimeInstant");utf8=new TextEncoder,MAX_STRUCTURED_CONTENT_DEPTH=7,MAX_BLOCK_VARIANTS=40,MAX_BLOCK_ITEMS=200,RESERVED_STRUCTURED_CONTENT_FIELD_NAMES=["_key","_type"],showIfClauseSchema=z11.union([z11.object({field:z11.string().min(1),equals:z11.union([z11.string(),z11.number(),z11.boolean()])}).strict(),z11.object({field:z11.string().min(1),in:z11.array(z11.union([z11.string(),z11.number(),z11.boolean()])).min(1)}).strict()]),commonFieldShape={label:z11.string().min(1).optional(),description:z11.string().optional(),group:z11.union([z11.string().min(1),z11.array(z11.string().min(1)).min(1)]).optional(),editable:z11.boolean().optional(),required:z11.boolean().optional(),default:z11.unknown().optional(),showIf:z11.union([showIfClauseSchema,z11.array(showIfClauseSchema).min(1)]).optional(),showIfAny:z11.array(showIfClauseSchema).min(1).optional()},FIELD_I18N_UNSUPPORTED_MESSAGE='"i18n" is only supported on top-level scalar and reference fields.';__name(rejectLegacyLocaleSettings,"rejectLegacyLocaleSettings");__name(rejectFieldI18n,"rejectFieldI18n");__name(refineConditions,"refineConditions");uniqueFieldTypes=new Set(UNIQUE_FIELD_TYPES),UNSUPPORTED_UNIQUE_MESSAGE=`"unique" is only supported on ${UNIQUE_FIELD_TYPES.join(", ")} fields.`;__name(rejectUnsupportedUnique,"rejectUnsupportedUnique");scalarFieldSchema=z11.object({...commonFieldShape,type:z11.enum(["string","text","richtext","media","number","boolean","date","datetime","json"]),min:z11.number().optional(),max:z11.number().optional(),minLength:z11.number().int().nonnegative().optional(),maxLength:z11.number().int().nonnegative().optional(),regex:z11.string().optional(),multiple:z11.boolean().optional(),allowedMimeTypes:z11.array(z11.string()).optional(),options:z11.array(z11.string().min(1)).min(1).optional(),unique:z11.boolean().optional(),i18n:z11.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),rejectUnsupportedUnique(field,ctx,field.type);for(let key of["target","targets","many","repeatable","schema"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on ${field.type} fields.`});if(field.type!=="number")for(let key of["min","max"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on number fields.`});if(field.type!=="string"&&field.type!=="text")for(let key of["minLength","maxLength","regex"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on string and text fields.`});field.min!==void 0&&field.max!==void 0&&field.min>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to "min".'});let effectiveMinimumLength=Math.max(field.minLength??0,field.required?1:0);if(field.maxLength!==void 0&&effectiveMinimumLength>field.maxLength&&ctx.addIssue({code:"custom",path:["maxLength"],message:'"maxLength" must be greater than or equal to the minimum required length.'}),field.regex!==void 0)try{new RegExp(field.regex)}catch{ctx.addIssue({code:"custom",path:["regex"],message:'"regex" must be a valid regular expression.'})}if(field.type!=="media")for(let key of["multiple","allowedMimeTypes"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is only supported on media fields.`});if(field.type==="datetime"&&field.default!==void 0&&!isDatetimeInstant(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:DATETIME_INSTANT_MESSAGE}),field.type!=="string"&&"options"in field&&ctx.addIssue({code:"custom",path:["options"],message:'"options" is only supported on string fields.'}),field.options!==void 0){new Set(field.options).size!==field.options.length&&ctx.addIssue({code:"custom",path:["options"],message:"Options must be unique."});for(let key of["regex","minLength","maxLength"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported alongside "options".`});field.default!==void 0&&!field.options.includes(field.default)&&ctx.addIssue({code:"custom",path:["default"],message:'"default" must be one of the declared options.'})}}),referenceFieldSchema=z11.object({...commonFieldShape,type:z11.literal("reference"),target:z11.string().regex(CONTENT_TYPE_NAME_PATTERN).optional(),targets:z11.array(z11.string().regex(CONTENT_TYPE_NAME_PATTERN)).min(1).optional(),many:z11.boolean().optional(),i18n:z11.boolean().optional()}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),refineConditions(field,ctx),!field.target&&!field.targets&&ctx.addIssue({code:"custom",path:["target"],message:'Reference fields must declare "target" or "targets".'}),field.target&&field.targets&&ctx.addIssue({code:"custom",path:["targets"],message:'A reference field declares "target" or "targets", never both.'}),field.targets&&new Set(field.targets).size!==field.targets.length&&ctx.addIssue({code:"custom",path:["targets"],message:"Reference targets must be unique."});for(let key of["repeatable","schema","min","max","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on reference fields.`})}),reservedStructuredContentNames=new Set(RESERVED_STRUCTURED_CONTENT_FIELD_NAMES),ContentFieldDefinitionSchema=z11.lazy(()=>contentFieldDefinitionSchema);__name(getConditionDefinition,"getConditionDefinition");__name(getConditionValues,"getConditionValues");__name(collectClauseProblems,"collectClauseProblems");__name(collectConditionProblems,"collectConditionProblems");blockFieldsSchema=z11.record(z11.string(),ContentFieldDefinitionSchema).superRefine((fields,ctx)=>{for(let fieldName of Object.keys(fields))CONTENT_FIELD_NAME_PATTERN.test(fieldName)||ctx.addIssue({code:"custom",path:[fieldName],message:`Field names must use ${CONTENT_FIELD_NAME_PATTERN_DESCRIPTION}.`}),reservedStructuredContentNames.has(fieldName)&&ctx.addIssue({code:"custom",path:[fieldName],message:`"${fieldName}" is reserved structured-content metadata.`}),"unique"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"unique"],message:'"unique" is only supported on top-level fields.'}),"i18n"in fields[fieldName]&&ctx.addIssue({code:"custom",path:[fieldName,"i18n"],message:FIELD_I18N_UNSUPPORTED_MESSAGE})}),blockVariantSchema=z11.object({uid:z11.string().regex(CONTENT_TYPE_NAME_PATTERN),label:z11.string().min(1),description:z11.string().optional(),fields:blockFieldsSchema}).strict(),fixedBlocksSchema=z11.object({fields:blockFieldsSchema}).strict(),blocksSchema=z11.object({oneOf:z11.array(blockVariantSchema).min(1).max(MAX_BLOCK_VARIANTS)}).strict().superRefine((schema,ctx)=>{let seen=new Set;for(let[index2,variant]of schema.oneOf.entries())seen.has(variant.uid)&&ctx.addIssue({code:"custom",path:["oneOf",index2,"uid"],message:"Variant UIDs must be unique."}),seen.add(variant.uid)}),blocksFieldSchema=z11.object({...commonFieldShape,type:z11.literal("blocks"),min:z11.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),max:z11.number().int().nonnegative().max(MAX_BLOCK_ITEMS).optional(),schema:z11.union([fixedBlocksSchema,blocksSchema])}).loose().superRefine((field,ctx)=>{rejectLegacyLocaleSettings(field,ctx),rejectFieldI18n(field,ctx),refineConditions(field,ctx);let effectiveMinimum=Math.max(field.min??0,field.required?1:0);field.max!==void 0&&effectiveMinimum>field.max&&ctx.addIssue({code:"custom",path:["max"],message:'"max" must be greater than or equal to the minimum number of blocks.'});for(let key of["target","targets","many","repeatable","minLength","maxLength","regex","options","unique"])key in field&&ctx.addIssue({code:"custom",path:[key],message:`"${key}" is not supported on blocks fields.`})}),contentFieldDefinitionSchema=z11.discriminatedUnion("type",[scalarFieldSchema,referenceFieldSchema,blocksFieldSchema]);__name(isBlocksUnion,"isBlocksUnion");__name(walkContentFields,"walkContentFields")}});import{z as z12}from"zod";var AUDIT_ACTIONS,AuditActionSchema,AUDIT_OUTCOMES,AuditOutcomeSchema,AUDIT_ACTOR_KINDS,AuditActorKindSchema,init_audit_log=__esm({"../../packages/api-contracts/dist/esm/types/audit-log.js"(){"use strict";AUDIT_ACTIONS=["env_create","env_delete","env_sync","capability_check","shell_exec","git_push","git_tag","git_merge","fimo_deploy","merge_decision","session_start","session_end","cost_breach","trigger_fire","schedule_notification_change","notification_preference_change","cutover_step","agent_delegate","version_restore","ops_access_change","ops_service_token_change","ops_project_search","ops_project_inspect","ops_project_chat_read","ops_recent_chat_read","ops_sentry_issue_change","ops_sentry_read","ops_logs_read","ops_trace_read","ops_agent_trace_list","ops_agent_trace_read","ops_agent_trace_stats","ops_agent_health_read","ops_agent_provider_errors_read","ops_project_snapshot","ops_project_file_read","ops_project_file_write","ops_support_thread_read","ops_support_report_read","ops_support_report_change","ops_billing_read","ops_billing_cache_invalidate","ops_billing_legacy_premium_enroll","ops_billing_plan_transition_notices","ops_customer_registry_change","ops_investigation_change","ops_known_issue_change","ops_validation_record","ops_notification_preview","ops_notification_approve","ops_notification_send","ops_project_operation","ops_project_publish","admin_resource_read","merge_force"],AuditActionSchema=z12.enum(AUDIT_ACTIONS),AUDIT_OUTCOMES=["success","denied","error"],AuditOutcomeSchema=z12.enum(AUDIT_OUTCOMES),AUDIT_ACTOR_KINDS=["user","agent","system"],AuditActorKindSchema=z12.enum(AUDIT_ACTOR_KINDS)}});import{z as z13}from"zod";var OPS_BACKEND_PROFILES,OpsBackendProfileSchema,OPS_PERMISSIONS,OpsPermissionSchema,OPS_PERMISSION_PRESETS,OPS_SERVICE_PERMISSION_PRESETS,OpsAccessGrantInputSchema,OpsServiceTokenInputSchema,OpsCustomerProjectInputSchema,OPS_INVESTIGATION_STATUSES,OpsInvestigationStatusSchema,OpsInvestigationCreateInputSchema,OpsInvestigationUpdateInputSchema,OPS_KNOWN_ISSUE_STATUSES,OpsKnownIssueStatusSchema,OpsKnownIssueCreateInputSchema,OpsKnownIssueUpdateInputSchema,OPS_VALIDATION_OUTCOMES,OpsValidationOutcomeSchema,OpsValidationRunInputSchema,OpsNotificationPreviewInputSchema,OpsPylonIssueIdSchema,OpsPylonReasonSchema,OpsPylonMessageSchema,OpsPylonMessageIdSchema,OpsPylonEmailListSchema,OpsPylonResolveInputSchema,OpsPylonNoteInputSchema,OpsPylonReplyPreviewInputSchema,OpsSentryIssueIdSchema,OpsSentryResolveInputSchema,OpsTraceIdSchema,OpsTraceReadInputSchema,OpsBraintrustSpanIdSchema,OpsAgentInvocationStatusSchema,OpsAgentTraceListInputSchema,OpsAgentTraceSpansInputSchema,OpsSpanBodyEdgeSchema,OpsAgentTraceSpanInputSchema,OpsAgentTraceMessagesInputSchema,OpsAgentHealthGroupBySchema,OpsAgentHealthInputSchema,OpsAgentTraceStatsGroupBySchema,OpsSpanTypeSchema,OpsAgentTraceStatsInputSchema,OpsAgentProviderErrorsInputSchema,OpsBillingCacheInvalidateInputSchema,OPS_PROJECT_OPERATIONS,OpsProjectOperationKindSchema,ExactVersionSchema,OpsProjectOperationPlanInputSchema,OPS_MIGRATIONS,OpsMigrationIdSchema,OPS_MIGRATION_PLAN_STATUSES,OpsMigrationPlanStatusSchema,OPS_MIGRATION_CHANGE_ACTIONS,OpsMigrationChangeActionSchema,OpsMigrationDryRunInputSchema,OpsProjectFilePathSchema,OpsProjectFileReasonSchema,OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES,OpsProjectPackageManagerInspectInputSchema,OpsProjectFileReadInputSchema,OpsProjectFileGlobInputSchema,OpsProjectFileGrepInputSchema,OpsProjectFileWritePlanInputSchema,OpsProjectFileWriteApplyInputSchema,OpsProjectOperationApplyInputSchema,OpsProjectPublishApplyInputSchema,init_ops=__esm({"../../packages/api-contracts/dist/esm/types/ops.js"(){"use strict";OPS_BACKEND_PROFILES=["local","staging","prod"],OpsBackendProfileSchema=z13.enum(OPS_BACKEND_PROFILES),OPS_PERMISSIONS=["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:project:publish","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:known-issues:write","ops:validations:read","ops:validations:write","ops:audit:read","ops:notification:preview","ops:notification:approve","ops:notification:send"],OpsPermissionSchema=z13.enum(OPS_PERMISSIONS),OPS_PERMISSION_PRESETS={support:["ops:project:read","ops:project:chat:read","ops:support:read","ops:support:write","ops:customers:read","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:validations:read","ops:notification:preview"],engineer:["ops:project:read","ops:project:chat:read","ops:project:snapshot","ops:project:operate","ops:sentry:read","ops:sentry:write","ops:logs:read","ops:traces:read","ops:braintrust:read","ops:support:read","ops:support:write","ops:customers:read","ops:customers:write","ops:billing:read","ops:billing:write","ops:investigations:read","ops:investigations:write","ops:known-issues:read","ops:known-issues:write","ops:validations:read","ops:validations:write","ops:audit:read","ops:notification:preview"],full:[...OPS_PERMISSIONS]},OPS_SERVICE_PERMISSION_PRESETS={support:OPS_PERMISSION_PRESETS.support,engineer:OPS_PERMISSION_PRESETS.engineer,full:OPS_PERMISSION_PRESETS.full.filter(permission=>permission!=="ops:notification:approve")},OpsAccessGrantInputSchema=z13.object({permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),enabled:z13.boolean().default(!0)}),OpsServiceTokenInputSchema=z13.object({name:z13.string().trim().min(1).max(120),permissions:z13.array(OpsPermissionSchema).min(1),backendProfiles:z13.array(OpsBackendProfileSchema).min(1),expiresAt:z13.coerce.date()}).refine(input=>!input.permissions.includes("ops:notification:approve"),{path:["permissions"],message:"Service credentials cannot approve customer notifications"}).refine(input=>input.expiresAt.getTime()>Date.now(),{path:["expiresAt"],message:"Service credential expiry must be in the future"}),OpsCustomerProjectInputSchema=z13.object({importanceReason:z13.string().trim().min(1).max(1e3),ownerUserId:z13.string().trim().min(1).nullable().optional(),framework:z13.string().trim().max(120).nullable().optional(),packageManager:z13.enum(["npm","pnpm","yarn","bun"]).nullable().optional(),notes:z13.string().trim().max(5e3).nullable().optional()}),OPS_INVESTIGATION_STATUSES=["open","investigating","awaiting_approval","resolved","monitoring","closed"],OpsInvestigationStatusSchema=z13.enum(OPS_INVESTIGATION_STATUSES),OpsInvestigationCreateInputSchema=z13.object({projectId:z13.uuid(),title:z13.string().trim().min(1).max(240),userReport:z13.string().trim().max(1e4).nullable().optional()}),OpsInvestigationUpdateInputSchema=z13.object({status:OpsInvestigationStatusSchema.optional(),hypothesis:z13.string().trim().max(1e4).nullable().optional(),outcome:z13.string().trim().max(1e4).nullable().optional(),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).optional()}).refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_KNOWN_ISSUE_STATUSES=["open","monitoring","resolved"],OpsKnownIssueStatusSchema=z13.enum(OPS_KNOWN_ISSUE_STATUSES),OpsKnownIssueCreateInputSchema=z13.object({fingerprint:z13.string().trim().min(1).max(240),title:z13.string().trim().min(1).max(240),description:z13.string().trim().min(1).max(1e4),affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100).default([]),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50).default([]),fixedVersion:z13.string().trim().min(1).max(64).nullable().optional(),workaround:z13.string().trim().min(1).max(1e4).nullable().optional(),status:OpsKnownIssueStatusSchema.default("open")}),OpsKnownIssueUpdateInputSchema=OpsKnownIssueCreateInputSchema.omit({fingerprint:!0}).extend({affectedVersions:z13.array(z13.string().trim().min(1).max(120)).max(100),detectionQueries:z13.array(z13.string().trim().min(1).max(2e3)).max(50),status:OpsKnownIssueStatusSchema}).partial().refine(input=>Object.keys(input).length>0,"At least one field is required"),OPS_VALIDATION_OUTCOMES=["passed","failed","inconclusive"],OpsValidationOutcomeSchema=z13.enum(OPS_VALIDATION_OUTCOMES),OpsValidationRunInputSchema=z13.object({changeReference:z13.string().trim().min(1).max(500),outcome:OpsValidationOutcomeSchema,summary:z13.string().trim().min(1).max(1e4),evidence:z13.array(z13.record(z13.string(),z13.unknown())).max(100).default([])}),OpsNotificationPreviewInputSchema=z13.object({recipientEmail:z13.email().optional(),subject:z13.string().trim().min(1).max(200).default("An update from Fimo"),message:z13.string().trim().min(1).max(5e3),locale:z13.string().trim().min(2).max(20),reason:z13.string().trim().min(1).max(1e3),acknowledgePolicy:z13.literal(!0)}),OpsPylonIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsPylonReasonSchema=z13.string().trim().min(1).max(1e3),OpsPylonMessageSchema=z13.string().trim().min(1).max(5e3),OpsPylonMessageIdSchema=z13.string().trim().min(1).max(255),OpsPylonEmailListSchema=z13.array(z13.email()).max(50).default([]),OpsPylonResolveInputSchema=z13.object({reason:OpsPylonReasonSchema}),OpsPylonNoteInputSchema=z13.object({message:OpsPylonMessageSchema,reason:OpsPylonReasonSchema}),OpsPylonReplyPreviewInputSchema=z13.object({messageId:OpsPylonMessageIdSchema,message:OpsPylonMessageSchema,toEmails:OpsPylonEmailListSchema,ccEmails:OpsPylonEmailListSchema,bccEmails:OpsPylonEmailListSchema,reason:OpsPylonReasonSchema,acknowledgePolicy:z13.literal(!0)}).refine(input=>input.toEmails.length+input.ccEmails.length+input.bccEmails.length<=50,{message:"At most 50 email recipients are allowed",path:["toEmails"]}),OpsSentryIssueIdSchema=z13.string().trim().regex(/^[a-zA-Z0-9-]+$/).max(100),OpsSentryResolveInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OpsTraceIdSchema=z13.string().trim().regex(/^[a-fA-F0-9]{32}$/).transform(value=>value.toLowerCase()),OpsTraceReadInputSchema=z13.object({projectId:z13.uuid(),from:z13.coerce.date(),to:z13.coerce.date(),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>input.from<=input.to,{path:["from"],message:"from must be before or equal to to"}).refine(input=>input.to.getTime()-input.from.getTime()<=10080*60*1e3,{path:["from"],message:"trace windows cannot exceed 7 days"}),OpsBraintrustSpanIdSchema=z13.string().trim().regex(/^[A-Za-z0-9_-]{1,200}$/),OpsAgentInvocationStatusSchema=z13.enum(["planned","running","finished","cancelled","errored","refused"]),OpsAgentTraceListInputSchema=z13.object({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),agentKey:z13.string().trim().min(1).max(120).optional(),threadId:z13.uuid().optional(),status:OpsAgentInvocationStatusSchema.optional(),since:z13.coerce.date().optional(),minCostUsd:z13.coerce.number().min(0).optional(),tracedOnly:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(100).default(25),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!!(input.projectId||input.organizationId||input.threadId),{path:["projectId"],message:"one of projectId, organizationId, or threadId is required"}),OpsAgentTraceSpansInputSchema=z13.object({limit:z13.coerce.number().int().min(1).max(500).default(200),reason:z13.string().trim().min(1).max(1e3)}),OpsSpanBodyEdgeSchema=z13.enum(["start","end"]).default("start"),OpsAgentTraceSpanInputSchema=z13.object({maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),edge:OpsSpanBodyEdgeSchema,reason:z13.string().trim().min(1).max(1e3)}),OpsAgentTraceMessagesInputSchema=z13.object({messageIndex:z13.coerce.number().int().min(0).optional(),maxChars:z13.coerce.number().int().min(500).max(2e5).default(2e4),reason:z13.string().trim().min(1).max(1e3)}),OpsAgentHealthGroupBySchema=z13.enum(["agent","status","env","project","day"]),OpsAgentHealthInputSchema=z13.object({projectId:z13.uuid().optional(),organizationId:z13.string().trim().min(1).max(255).optional(),env:z13.string().trim().min(1).max(64).optional(),agentKey:z13.string().trim().min(1).max(120).optional(),since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentHealthGroupBySchema.default("agent"),includeChildren:z13.coerce.boolean().default(!1),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsAgentTraceStatsGroupBySchema=z13.enum(["model","provider","span","type"]),OpsSpanTypeSchema=z13.enum(["llm","tool","function","task","score","eval"]),OpsAgentTraceStatsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().optional(),groupBy:OpsAgentTraceStatsGroupBySchema.default("model"),spanType:OpsSpanTypeSchema.optional(),slowerThanSeconds:z13.coerce.number().min(0).optional(),limit:z13.coerce.number().int().min(1).max(200).default(50),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsAgentProviderErrorsInputSchema=z13.object({since:z13.coerce.date(),until:z13.coerce.date().optional(),model:z13.string().trim().min(1).max(120).optional(),provider:z13.string().trim().min(1).max(120).optional(),spanType:OpsSpanTypeSchema.optional(),before:z13.coerce.date().optional(),limit:z13.coerce.number().int().min(1).max(1e3).default(500),sampleChars:z13.coerce.number().int().min(200).max(2e4).default(1200),reason:z13.string().trim().min(1).max(1e3)}).refine(input=>!input.until||input.since<=input.until,{path:["since"],message:"since must be before or equal to until"}),OpsBillingCacheInvalidateInputSchema=z13.object({reason:z13.string().trim().min(1).max(1e3)}),OPS_PROJECT_OPERATIONS=["runtime.bump","preview.restart","production.publish"],OpsProjectOperationKindSchema=z13.enum(OPS_PROJECT_OPERATIONS),ExactVersionSchema=z13.string().trim().regex(/^\d+\.\d+\.\d+$/,"Expected an exact version such as 0.11.0"),OpsProjectOperationPlanInputSchema=z13.discriminatedUnion("kind",[z13.object({kind:z13.literal("runtime.bump"),targetVersion:ExactVersionSchema}),z13.object({kind:z13.literal("preview.restart")})]),OPS_MIGRATIONS=["project.v3-to-v4"],OpsMigrationIdSchema=z13.enum(OPS_MIGRATIONS),OPS_MIGRATION_PLAN_STATUSES=["applicable","not_applicable","unknown"],OpsMigrationPlanStatusSchema=z13.enum(OPS_MIGRATION_PLAN_STATUSES),OPS_MIGRATION_CHANGE_ACTIONS=["create","rewrite","delete"],OpsMigrationChangeActionSchema=z13.enum(OPS_MIGRATION_CHANGE_ACTIONS),OpsMigrationDryRunInputSchema=z13.object({migrationId:OpsMigrationIdSchema,projectEnv:z13.string().trim().min(1).max(255).default("main"),reason:z13.string().trim().min(1).max(1e3)}),OpsProjectFilePathSchema=z13.string().trim().min(1).max(1024),OpsProjectFileReasonSchema=z13.string().trim().min(1).max(1e3),OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES=["pnpm-lock.yaml","bun.lockb","bun.lock","yarn.lock","package-lock.json"],OpsProjectPackageManagerInspectInputSchema=z13.object({reason:OpsProjectFileReasonSchema}),OpsProjectFileReadInputSchema=z13.object({path:OpsProjectFilePathSchema,reason:OpsProjectFileReasonSchema}),OpsProjectFileGlobInputSchema=z13.object({pattern:z13.string().min(1).max(300).optional(),limit:z13.coerce.number().int().min(1).max(2e3).default(2e3),reason:OpsProjectFileReasonSchema}),OpsProjectFileGrepInputSchema=z13.object({pattern:z13.string().min(1).max(200),include:z13.string().min(1).max(300).optional(),caseInsensitive:z13.boolean().default(!1),maxMatches:z13.coerce.number().int().min(1).max(200).default(100),reason:OpsProjectFileReasonSchema}),OpsProjectFileWritePlanInputSchema=z13.object({path:OpsProjectFilePathSchema,content:z13.string().max(256*1024),overwrite:z13.boolean().default(!1),reason:OpsProjectFileReasonSchema}),OpsProjectFileWriteApplyInputSchema=OpsProjectFileWritePlanInputSchema.extend({planHash:z13.string().trim().length(64),consentReference:z13.string().trim().min(1).max(200).optional()}),OpsProjectOperationApplyInputSchema=z13.intersection(OpsProjectOperationPlanInputSchema,z13.object({planHash:z13.string().trim().length(64),reason:z13.string().trim().min(1).max(1e3),consentReference:z13.string().trim().min(1).max(200).optional()})),OpsProjectPublishApplyInputSchema=z13.object({planHash:z13.string().trim().length(64),reason:z13.string().trim().min(1).max(1e3),consentReference:z13.string({error:"Publishing on a customer's behalf requires a recorded consent reference"}).trim().min(1).max(200)})}});import{z as z14}from"zod";function getChatFormOptionLabels(body){switch(body.type){case"choices":return body.actions.map(action=>action.label);case"cards":return body.items.map(item=>item.title);case"table":return body.rows.map(row2=>row2.cells[0]??"");case"assets":return body.items.map(item=>item.label??item.alt);case"capabilities":return body.items.map(item=>item.label);case"text":return[]}}var BlockSayActionSchema,BlockActionSchema,BlockAppActionSchema,BlockBaseSchema,ChoicesBlockSchema,TableRowTargetSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,ChatDisplayBlockSchema,TextBlockSchema,ChatFormStepIdSchema,CapabilityRequestSchema,CapabilitiesBlockSchema,ChatFormBodySchema,ChatFormStepSchema,FormBlockSchema,ChatBlockSchema,ChatBlockToolInputSchema,ChatFormAnswerItemSchema,ChatFormAnswerMetadataSchema,QUESTION_FORM_CONTRACT_VERSION,QuestionFormSnapshotSchema,QuestionFormAnswerSnapshotSchema,ChatFormResponseSchema,init_chat_block=__esm({"../../packages/api-contracts/dist/esm/types/chat-block.js"(){"use strict";BlockSayActionSchema=z14.object({kind:z14.literal("say"),label:z14.string().trim().min(1).max(40,"Button labels must be 40 characters or fewer."),description:z14.string().min(1).max(240).optional(),message:z14.string().trim().min(1,"Every say button needs the sentence the user is saying by clicking.").max(2e3),style:z14.enum(["primary","default","ghost"]).optional()}),BlockActionSchema=BlockSayActionSchema,BlockAppActionSchema=z14.discriminatedUnion("command",[z14.object({kind:z14.literal("app"),command:z14.literal("publish")}).strict(),z14.object({kind:z14.literal("app"),command:z14.literal("connect"),integrationKey:z14.string().trim().min(1).max(80)}).strict()]),BlockBaseSchema=z14.object({fallback:z14.string().trim().min(1,"Every block needs a fallback line for clients that cannot render it.").max(500),title:z14.string().min(1).max(80).optional()}),ChoicesBlockSchema=BlockBaseSchema.extend({type:z14.literal("choices"),text:z14.string().max(500).optional(),actions:z14.array(BlockActionSchema).min(2,"A choices block needs 2 to 4 buttons.").max(4,"A choices block needs 2 to 4 buttons.")}),TableRowTargetSchema=z14.discriminatedUnion("kind",[z14.object({kind:z14.literal("entry"),collection:z14.string().min(1).max(80),entryId:z14.string().min(1).max(120)}),z14.object({kind:z14.literal("asset"),assetId:z14.string().min(1).max(120)}),z14.object({kind:z14.literal("url"),url:z14.url({protocol:/^https$/}).max(2e3)})]),TableBlockSchema=BlockBaseSchema.extend({type:z14.literal("table"),columns:z14.array(z14.object({label:z14.string().min(1).max(24)})).min(2).max(4),rows:z14.array(z14.object({cells:z14.array(z14.string().max(80)).min(2).max(4),target:TableRowTargetSchema.optional()})).min(1).max(8)}).superRefine((table,ctx)=>{table.rows.forEach((row2,index2)=>{row2.cells.length!==table.columns.length&&ctx.addIssue({code:"custom",path:["rows",index2,"cells"],message:`Every table row needs exactly ${table.columns.length} cells, one for each column.`})})}),CardsBlockSchema=BlockBaseSchema.extend({type:z14.literal("cards"),layout:z14.enum(["rail","stack"]).optional(),items:z14.array(z14.object({title:z14.string().min(1).max(60),subtitle:z14.string().min(1).max(120).optional(),imageUrl:z14.url({protocol:/^https$/}).max(2e3).optional(),action:BlockSayActionSchema.optional()})).min(2).max(6)}),EntryBlockSchema=BlockBaseSchema.extend({type:z14.literal("entry"),label:z14.string().min(1).max(80),collection:z14.string().min(1).max(80),entryId:z14.string().min(1).max(120),path:z14.string().min(1).max(120).optional()}),AssetsBlockSchema=BlockBaseSchema.extend({type:z14.literal("assets"),items:z14.array(z14.object({url:z14.url({protocol:/^https$/}).max(2e3),alt:z14.string().min(1).max(120),label:z14.string().min(1).max(60).optional()})).min(1).max(6)}),CalloutBlockSchema=BlockBaseSchema.extend({type:z14.literal("callout"),title:z14.string().min(1).max(80),text:z14.string().min(1).max(240),action:BlockAppActionSchema}).strict(),StatBlockSchema=BlockBaseSchema.extend({type:z14.literal("stat"),items:z14.array(z14.object({label:z14.string().min(1).max(24),value:z14.string().min(1).max(16),delta:z14.string().min(1).max(12).optional(),tone:z14.enum(["up","down","flat"]).optional()})).min(1).max(4)}),ChartBlockSchema=BlockBaseSchema.extend({type:z14.literal("chart"),unit:z14.string().min(1).max(12).optional(),points:z14.array(z14.object({label:z14.string().min(1).max(12),value:z14.number().finite().min(0).max(1e9)})).min(2).max(12)}),ChatDisplayBlockSchema=z14.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema]),TextBlockSchema=BlockBaseSchema.extend({type:z14.literal("text"),placeholder:z14.string().min(1).max(120).optional(),multiline:z14.boolean().optional()}).strict(),ChatFormStepIdSchema=z14.string().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"Step ids are lowercase letters, digits, hyphen, or underscore (max 40)."),CapabilityRequestSchema=z14.object({id:ChatFormStepIdSchema,token:z14.string().regex(/^[a-z][a-z0-9_]*:[a-z][a-z0-9_]*(?::[a-z][a-z0-9_]*)?$/,"Capability tokens are verb:noun[:qualifier]."),label:z14.string().trim().min(1).max(60),reason:z14.string().trim().min(1).max(240)}).strict(),CapabilitiesBlockSchema=BlockBaseSchema.extend({type:z14.literal("capabilities"),items:z14.array(CapabilityRequestSchema).min(1).max(6)}).strict().superRefine((block,ctx)=>{let duplicate=__name(values=>new Set(values).size!==values.length,"duplicate");duplicate(block.items.map(item=>item.id))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs its own id."}),duplicate(block.items.map(item=>item.token))&&ctx.addIssue({code:"custom",path:["items"],message:"Ask for each capability token once."}),duplicate(block.items.map(item=>item.label))&&ctx.addIssue({code:"custom",path:["items"],message:"Every capability request needs a distinct label."})}),ChatFormBodySchema=z14.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,AssetsBlockSchema,TextBlockSchema,CapabilitiesBlockSchema]);__name(getChatFormOptionLabels,"getChatFormOptionLabels");ChatFormStepSchema=z14.object({id:ChatFormStepIdSchema.optional(),question:z14.string().min(1).max(500),header:z14.string().min(1).max(25),body:ChatFormBodySchema,multiSelect:z14.boolean(),recommended:z14.string().min(1).max(80).optional()}).superRefine((step,ctx)=>{let labels2=getChatFormOptionLabels(step.body);labels2.some(label=>!label.trim())&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a visible label."}),new Set(labels2).size!==labels2.length&&ctx.addIssue({code:"custom",path:["body"],message:"Every form option needs a unique label."}),step.recommended&&!labels2.includes(step.recommended)&&ctx.addIssue({code:"custom",path:["recommended"],message:"The recommended option must match a visible option label."}),step.body.type==="capabilities"&&!step.multiSelect&&ctx.addIssue({code:"custom",path:["multiSelect"],message:"A capabilities step is always multi-select: selected is approved, unselected is denied."})}),FormBlockSchema=BlockBaseSchema.extend({type:z14.literal("form"),steps:z14.array(ChatFormStepSchema).min(1).max(4)}),ChatBlockSchema=z14.discriminatedUnion("type",[ChoicesBlockSchema,TableBlockSchema,CardsBlockSchema,EntryBlockSchema,AssetsBlockSchema,CalloutBlockSchema,StatBlockSchema,ChartBlockSchema,FormBlockSchema]),ChatBlockToolInputSchema=z14.object({block:ChatBlockSchema}),ChatFormAnswerItemSchema=z14.object({stepId:ChatFormStepIdSchema.optional(),header:z14.string().min(1).max(25),question:z14.string().min(1).max(500),answer:z14.string().min(1),selectedLabels:z14.array(z14.string().min(1).max(120)).max(8),freeText:z14.string(),skipped:z14.boolean()}),ChatFormAnswerMetadataSchema=z14.object({toolCallId:z14.string().max(255).optional(),shortTitle:z14.string().max(80).optional(),questions:z14.array(ChatFormAnswerItemSchema).max(4)}),QUESTION_FORM_CONTRACT_VERSION=1,QuestionFormSnapshotSchema=z14.object({version:z14.literal(QUESTION_FORM_CONTRACT_VERSION),block:FormBlockSchema}).strict(),QuestionFormAnswerSnapshotSchema=z14.object({version:z14.literal(QUESTION_FORM_CONTRACT_VERSION),answer:ChatFormAnswerMetadataSchema}).strict(),ChatFormResponseSchema=ChatFormAnswerMetadataSchema.extend({toolCallId:z14.string().min(1).max(255)})}});import{z as z15}from"zod";var FIMO_CONFIG_PATH,LEGACY_FIMO_CONFIG_PATHS,ALL_FIMO_CONFIG_PATHS,FimoFrameworkSchema,FimoRuntimeCommandsSchema,FimoRuntimeConfigSchema,FimoHostingConditionSchema,conditionFields,FimoHostingRewriteSchema,FimoHostingRedirectSchema,FimoHostingHeaderSchema,FimoHostingConfigSchema,FimoAppConfigSchema,init_fimo_config=__esm({"../../packages/api-contracts/dist/esm/types/fimo-config.js"(){"use strict";FIMO_CONFIG_PATH=".fimo/config.json",LEGACY_FIMO_CONFIG_PATHS=["fimo-config.json","fimo.config.json"],ALL_FIMO_CONFIG_PATHS=[FIMO_CONFIG_PATH,...LEGACY_FIMO_CONFIG_PATHS],FimoFrameworkSchema=z15.enum(["astro","nextjs","nuxtjs","react-router","remix","sveltekit","vite","vue"]),FimoRuntimeCommandsSchema=z15.object({dev:z15.string().trim().min(1).optional(),build:z15.string().trim().min(1).optional(),install:z15.string().trim().min(1).optional()}).strict(),FimoRuntimeConfigSchema=z15.object({framework:FimoFrameworkSchema.optional(),outputDirectory:z15.string().trim().min(1).optional(),commands:FimoRuntimeCommandsSchema.optional()}).strict(),FimoHostingConditionSchema=z15.object({type:z15.enum(["header","cookie","query","host"]),key:z15.string().min(1).optional(),value:z15.string().min(1).optional()}).strict().superRefine((condition,context)=>{if(condition.type==="host"){condition.key!==void 0&&context.addIssue({code:"custom",path:["key"],message:"A host condition takes no key."}),condition.value===void 0&&context.addIssue({code:"custom",path:["value"],message:"A host condition needs a value."});return}condition.key===void 0&&context.addIssue({code:"custom",path:["key"],message:`A ${condition.type} condition needs the key it matches on.`})}),conditionFields={has:z15.array(FimoHostingConditionSchema).min(1).optional(),missing:z15.array(FimoHostingConditionSchema).min(1).optional()},FimoHostingRewriteSchema=z15.object({source:z15.string().min(1),destination:z15.string().min(1),...conditionFields}),FimoHostingRedirectSchema=z15.object({source:z15.string().min(1),destination:z15.string().min(1),permanent:z15.boolean().optional(),statusCode:z15.union([z15.literal(301),z15.literal(302),z15.literal(307),z15.literal(308)]).optional(),...conditionFields}),FimoHostingHeaderSchema=z15.object({source:z15.string().min(1),headers:z15.array(z15.object({key:z15.string().min(1),value:z15.string()})).min(1),...conditionFields}),FimoHostingConfigSchema=z15.object({rewrites:z15.array(FimoHostingRewriteSchema).optional(),redirects:z15.array(FimoHostingRedirectSchema).optional(),headers:z15.array(FimoHostingHeaderSchema).optional(),cleanUrls:z15.boolean().optional(),trailingSlash:z15.boolean().optional()}).strict(),FimoAppConfigSchema=z15.object({runtime:FimoRuntimeConfigSchema.optional(),hosting:FimoHostingConfigSchema.optional()}).passthrough().superRefine((config,context)=>{Object.hasOwn(config,"framework")&&context.addIssue({code:"custom",path:["framework"],message:"Use runtime.framework instead of the top-level framework field."})})}});function pageRouteParamNames(path52){return[...path52.matchAll(/:([^/*]+)\*?/g)].map(match=>match[1])}function pageContentParamNames(path52){return pageRouteParamNames(path52).filter(param=>!LOCALE_PARAM_NAME.test(param))}function parsePageParamExpression(expression){let match=PARAM_EXPRESSION.exec(expression);return match?{param:match[1],field:match[2]}:null}function fieldValue(entry,fieldPath){let value=entry;for(let segment of fieldPath.split(".")){if(!value||typeof value!="object"||Array.isArray(value))return;value=value[segment]}return value}function queryValue(value){if(Array.isArray(value))return value.map(queryValue);if(value&&typeof value=="object"){let record=value;return typeof record.id=="string"?record.id:Object.fromEntries(Object.entries(record).map(([key,item])=>[key,queryValue(item)]))}return value===void 0?null:value}function resolveValue(value,params){if(typeof value=="string"&&value.startsWith("$params.")){let parsed=parsePageParamExpression(value);if(!parsed)return{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param:"",field:""}};let{param,field}=parsed,entry=params[param];if(!entry)return{ok:!1,error:{code:"PAGE_PARAM_NOT_SELECTED",expression:value,param,field}};let resolved=fieldValue(entry,field);return resolved==null||resolved===""?{ok:!1,error:{code:"PAGE_PARAM_FIELD_EMPTY",expression:value,param,field}}:{ok:!0,value:queryValue(resolved)}}if(Array.isArray(value)){let resolved=[];for(let item of value){let result=resolveValue(item,params);if(!result.ok)return result;resolved.push(result.value)}return{ok:!0,value:resolved}}if(value&&typeof value=="object"){let resolved={};for(let[key,item]of Object.entries(value)){let result=resolveValue(item,params);if(!result.ok)return result;resolved[key]=result.value}return{ok:!0,value:resolved}}return{ok:!0,value}}function resolvePageSourceQuery(query={},params){let resolved=resolveValue(query,params);return resolved.ok?{ok:!0,query:resolved.value}:resolved}function pageSourceParamExpressions(value){return typeof value=="string"?value.startsWith("$params.")?[value]:[]:Array.isArray(value)?value.flatMap(pageSourceParamExpressions):value&&typeof value=="object"?Object.values(value).flatMap(pageSourceParamExpressions):[]}var LOCALE_PARAM_NAME,PARAM_EXPRESSION,init_page_sources=__esm({"../../packages/api-contracts/dist/esm/types/page-sources.js"(){"use strict";LOCALE_PARAM_NAME=/^(locale|lang|language)$/i;__name(pageRouteParamNames,"pageRouteParamNames");__name(pageContentParamNames,"pageContentParamNames");PARAM_EXPRESSION=/^\$params\.([A-Za-z_][\w-]*)\.([A-Za-z_][\w.-]*)$/;__name(parsePageParamExpression,"parsePageParamExpression");__name(fieldValue,"fieldValue");__name(queryValue,"queryValue");__name(resolveValue,"resolveValue");__name(resolvePageSourceQuery,"resolvePageSourceQuery");__name(pageSourceParamExpressions,"pageSourceParamExpressions")}});import{z as z16}from"zod";var PROJECT_CHAT_MANUAL_MODEL_IDS,ProjectChatManualModelIdSchema,ProjectDTOSchema,ProjectDTO,ProjectWithPlanDTOSchema,ProjectWithPlanDTO,ProjectSummaryDTOSchema,ProjectSummaryDTO,ProjectUserDTOSchema,ProjectUserDTO,ProjectFileDTOSchema,ProjectFileDTO,ProjectChatMessageRole,ProjectMessageBaseSchema,MessageUserMetadataSchema,ProjectMessagePublicDTOSchema,ProjectMessagePublicDTO,ProjectMessageDTOSchema,ProjectVersionDTOSchema,ProjectVersionDTO,ProjectHistoryUsageDTOSchema,ProjectVersionPageDTOSchema,ProjectVersionPageDTO,ProjectHistorySummaryDTOSchema,ProjectHistorySummaryDTO,ProjectDocumentContentDTOSchema,ProjectDocumentContentDTO,ProjectListResponseSchema,ProjectVersionResponseSchema,ProjectVersionPageResponseSchema,ProjectHistorySummaryResponseSchema,VersionMutationResponseSchema,ProjectPublicationStateDTOSchema,ProjectPublicationStateDTO,PublishProjectRequestSchema,PublicationMutationDTOSchema,PublicationMutationDTO,ProjectPublicationStateResponseSchema,PublicationMutationResponseSchema,ProjectResponseSchema,ProjectWithPlanResponseSchema,init_project_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project.dto.js"(){"use strict";init_chat_block();init_common();init_create_dto();init_response();PROJECT_CHAT_MANUAL_MODEL_IDS=["anthropic/claude-opus-5","anthropic/claude-sonnet-5","anthropic/claude-fable-5","openai/gpt-5.6-luna","openai/gpt-5.6-terra","openai/gpt-5.6-sol","xai/grok-4.6","google/gemini-3.1-pro-preview","google/gemini-3.7-flash","google/gemini-3.6-flash","google/gemini-3.5-flash-lite","zai/glm-5.2","deepseek/deepseek-v4-pro","minimax/minimax-m3","moonshotai/kimi-k3"],ProjectChatManualModelIdSchema=z16.enum(PROJECT_CHAT_MANUAL_MODEL_IDS),ProjectDTOSchema=BaseEntitySchema.extend({name:z16.string(),displayName:z16.string().nullable(),subdomain:z16.string().nullable().optional(),subdomainUpdatedAt:z16.date().nullable().optional(),organizationId:z16.string().nullable(),createdBy:z16.string().nullable(),previewEnabled:z16.boolean().default(!0),enabledChatModels:z16.array(ProjectChatManualModelIdSchema).nullable().default(null),status:ProjectStatusSchema,creationStatus:z16.string(),thumbnailUrl:z16.string().nullable(),publishedThumbnailUrl:z16.string().nullable(),category:z16.string().nullable(),appUrl:z16.string().nullable(),lastPublishedAt:z16.coerce.date()}),ProjectDTO=createDTO(ProjectDTOSchema),ProjectWithPlanDTOSchema=ProjectDTOSchema.extend({planTier:z16.string().nullable()}),ProjectWithPlanDTO=createDTO(ProjectWithPlanDTOSchema),ProjectSummaryDTOSchema=z16.object({id:z16.uuid(),name:z16.string(),displayName:z16.string().nullable(),thumbnailUrl:z16.string().nullable(),category:z16.string().nullable()}),ProjectSummaryDTO=createDTO(ProjectSummaryDTOSchema),ProjectUserDTOSchema=z16.object({id:z16.string(),name:z16.string(),avatar:z16.string().nullable(),color:z16.object({bg:z16.string(),text:z16.string()})}),ProjectUserDTO=createDTO(ProjectUserDTOSchema),ProjectFileDTOSchema=z16.object({path:z16.string(),content:z16.string()}),ProjectFileDTO=createDTO(ProjectFileDTOSchema),ProjectChatMessageRole=z16.enum(["user","assistant","system"]),ProjectMessageBaseSchema=z16.object({id:z16.string(),messageId:z16.string(),versionId:z16.string().nullable(),role:ProjectChatMessageRole,parts:z16.array(z16.any()),createdAt:z16.coerce.date()}),MessageUserMetadataSchema=z16.object({id:z16.string(),name:z16.string().nullable().optional(),image:z16.string().nullable().optional()}).nullable().optional(),ProjectMessagePublicDTOSchema=ProjectMessageBaseSchema.extend({credits:z16.number(),metadata:z16.object({user:MessageUserMetadataSchema,changeManifest:z16.array(z16.any()).optional(),questionAnswer:ChatFormAnswerMetadataSchema.optional()}).nullable().optional()}),ProjectMessagePublicDTO=createDTO(ProjectMessagePublicDTOSchema),ProjectMessageDTOSchema=ProjectMessagePublicDTOSchema,ProjectVersionDTOSchema=z16.object({versionId:z16.uuid(),commitHash:z16.string(),name:z16.string(),description:z16.string().nullable(),kind:z16.enum(["manual","agent","restore-safety","deploy","merge","content","legacy"]),createdAt:CommonSchemas.timestamp,expiresAt:CommonSchemas.timestamp}),ProjectVersionDTO=createDTO(ProjectVersionDTOSchema),ProjectHistoryUsageDTOSchema=z16.object({versionCount:z16.number().int().nonnegative(),snapshotBytes:z16.number().int().nonnegative()}),ProjectVersionPageDTOSchema=createCursorPageDataSchema(ProjectVersionDTOSchema),ProjectVersionPageDTO=createDTO(ProjectVersionPageDTOSchema),ProjectHistorySummaryDTOSchema=z16.object({usage:ProjectHistoryUsageDTOSchema,retentionDays:z16.number().int().positive()}),ProjectHistorySummaryDTO=createDTO(ProjectHistorySummaryDTOSchema),ProjectDocumentContentDTOSchema=z16.object({content:z16.string()}),ProjectDocumentContentDTO=createDTO(ProjectDocumentContentDTOSchema),ProjectListResponseSchema=createResponseSchema(z16.array(ProjectDTOSchema)),ProjectVersionResponseSchema=createResponseSchema(ProjectVersionDTOSchema),ProjectVersionPageResponseSchema=createCursorPaginatedResponseSchema(ProjectVersionDTOSchema),ProjectHistorySummaryResponseSchema=createResponseSchema(ProjectHistorySummaryDTOSchema),VersionMutationResponseSchema=createResponseSchema(z16.object({success:z16.boolean(),message:z16.string().optional(),warning:z16.string().optional(),durationMs:z16.number().int().nonnegative().optional()})),ProjectPublicationStateDTOSchema=z16.object({isPublished:z16.boolean(),publishedAt:CommonSchemas.timestamp.nullable(),publishedVersion:z16.string().nullable()}),ProjectPublicationStateDTO=createDTO(ProjectPublicationStateDTOSchema),PublishProjectRequestSchema=z16.object({label:z16.string().trim().min(1).max(120).optional(),notes:z16.string().max(2e4).optional()}).strict(),PublicationMutationDTOSchema=z16.object({success:z16.boolean(),message:z16.string().optional(),publishedAt:CommonSchemas.timestamp.optional(),firstPublish:z16.boolean(),publicationId:z16.string().optional()}),PublicationMutationDTO=createDTO(PublicationMutationDTOSchema),ProjectPublicationStateResponseSchema=createResponseSchema(ProjectPublicationStateDTOSchema),PublicationMutationResponseSchema=createResponseSchema(PublicationMutationDTOSchema),ProjectResponseSchema=createResponseSchema(ProjectDTOSchema),ProjectWithPlanResponseSchema=createResponseSchema(ProjectWithPlanDTOSchema)}});import{z as z17}from"zod";var ProjectEnvStatusSchema,ProjectEnvKindSchema,ProjectEnvDTOSchema,ProjectEnvDTO,ResolvedBranchEnvironmentDTOSchema,ProjectEnvListItemDTOSchema,ProjectEnvListItemDTO,CreateProjectEnvRequestSchema,SyncProjectEnvRequestSchema,ProjectEnvResponseSchema,ProjectEnvsListResponseSchema,EnvSurfaceDiffSchema,EnvDiffResultSchema,EnvDiffResultDTO,init_project_env_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-env.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();ProjectEnvStatusSchema=z17.enum(["provisioning","active","deleted"]),ProjectEnvKindSchema=z17.enum(["user","agent-session"]),ProjectEnvDTOSchema=BaseEntitySchema.extend({projectId:z17.uuid(),env:EnvSchema,status:ProjectEnvStatusSchema,kind:ProjectEnvKindSchema,parentEnv:EnvSchema.nullable(),createdBy:z17.string().nullable(),deletedAt:z17.coerce.date().nullable()}),ProjectEnvDTO=createDTO(ProjectEnvDTOSchema),ResolvedBranchEnvironmentDTOSchema=z17.object({id:z17.union([z17.literal(PREVIEW_ENVIRONMENT_KEY),z17.uuid()]),name:z17.string()}),ProjectEnvListItemDTOSchema=ProjectEnvDTOSchema.extend({resolvedEnvironment:ResolvedBranchEnvironmentDTOSchema.nullable()}),ProjectEnvListItemDTO=createDTO(ProjectEnvListItemDTOSchema),CreateProjectEnvRequestSchema=z17.object({env:EnvSchema,parentEnv:EnvSchema.optional()}),SyncProjectEnvRequestSchema=z17.object({from:EnvSchema.optional()}),ProjectEnvResponseSchema=createResponseSchema(ProjectEnvDTOSchema),ProjectEnvsListResponseSchema=createResponseSchema(z17.array(ProjectEnvListItemDTOSchema)),EnvSurfaceDiffSchema=z17.object({surface:z17.enum(["code","schemas","content","translations","assets","forms"]),status:z17.enum(["unchanged","changed","conflicting","missing-on-target"]),changedCount:z17.number().int().nonnegative(),conflictCount:z17.number().int().nonnegative()}),EnvDiffResultSchema=z17.object({fromEnv:EnvSchema,toEnv:EnvSchema,generatedAt:z17.coerce.date(),surfaces:z17.array(EnvSurfaceDiffSchema)}),EnvDiffResultDTO=createDTO(EnvDiffResultSchema)}});import{z as z18}from"zod";var ProjectEnvironmentBaseSchema,ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema,ProjectEnvironmentDTOSchema,ProjectEnvironmentDTO,CreateProjectEnvironmentRequestSchema,ProjectEnvironmentsListResponseSchema,ProjectEnvironmentResponseSchema,DeleteProjectEnvironmentResultSchema,DeleteProjectEnvironmentResponseSchema,init_project_environment_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-environment.dto.js"(){"use strict";init_env();init_environment();init_create_dto();init_response();ProjectEnvironmentBaseSchema=z18.object({projectId:z18.uuid(),name:z18.string()}),ProductionEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z18.literal(PRODUCTION_ENVIRONMENT_KEY),kind:z18.literal("production"),sourceBranch:EnvSchema,isPublished:z18.boolean(),url:z18.string().nullable()}),PreviewEnvironmentDTOSchema=ProjectEnvironmentBaseSchema.extend({id:z18.literal(PREVIEW_ENVIRONMENT_KEY),kind:z18.literal("preview"),matchedBranchCount:z18.number().int().nonnegative()}),CustomProjectEnvironmentDTOSchema=CustomEnvironmentSchema.extend({kind:z18.literal("custom"),matchedBranchCount:z18.number().int().nonnegative()}),ProjectEnvironmentDTOSchema=z18.discriminatedUnion("kind",[ProductionEnvironmentDTOSchema,PreviewEnvironmentDTOSchema,CustomProjectEnvironmentDTOSchema]),ProjectEnvironmentDTO=createDTO(ProjectEnvironmentDTOSchema),CreateProjectEnvironmentRequestSchema=CustomEnvironmentSchema.pick({name:!0,branchPatterns:!0,description:!0}).extend({description:z18.string().trim().max(255).nullable().optional().default(null)}),ProjectEnvironmentsListResponseSchema=createResponseSchema(z18.array(ProjectEnvironmentDTOSchema)),ProjectEnvironmentResponseSchema=createResponseSchema(ProjectEnvironmentDTOSchema),DeleteProjectEnvironmentResultSchema=z18.object({deletedId:z18.uuid()}),DeleteProjectEnvironmentResponseSchema=createResponseSchema(DeleteProjectEnvironmentResultSchema)}});import{z as z19}from"zod";var ProjectSecretsListQuerySchema,ProjectSecretWriteRequestSchema,CreateProjectSecretRequestSchema,DeleteProjectSecretQuerySchema,ProjectSecretMetadataDTOSchema,ProjectSecretMetadataDTO,ProjectSecretsListResponseSchema,ProjectSecretResponseSchema,init_project_secret_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-secret.dto.js"(){"use strict";init_environment();init_create_dto();init_response();ProjectSecretsListQuerySchema=z19.object({kind:z19.enum(["variable","secret"]).optional(),environment:EnvironmentKeySchema}),ProjectSecretWriteRequestSchema=z19.object({kind:z19.enum(["variable","secret"]),value:z19.string(),environment:EnvironmentKeySchema}),CreateProjectSecretRequestSchema=ProjectSecretWriteRequestSchema.extend({key:z19.string().min(1).max(255)}),DeleteProjectSecretQuerySchema=z19.object({kind:z19.enum(["variable","secret"]),environment:EnvironmentKeySchema}),ProjectSecretMetadataDTOSchema=z19.object({id:z19.uuid(),projectId:z19.uuid(),key:z19.string(),kind:z19.literal("secret"),exposure:z19.literal("private"),environment:EnvironmentKeySchema,maskedValue:z19.string().optional(),createdAt:z19.date().transform(value=>value.toISOString()),updatedAt:z19.date().transform(value=>value.toISOString())}),ProjectSecretMetadataDTO=createDTO(ProjectSecretMetadataDTOSchema),ProjectSecretsListResponseSchema=createResponseSchema(z19.array(ProjectSecretMetadataDTOSchema)),ProjectSecretResponseSchema=createResponseSchema(ProjectSecretMetadataDTOSchema)}});import{z as z20}from"zod";var ExportProjectResponseDTOSchema,ExportProjectResponseDTO,ImportProjectResultDTOSchema,ImportProjectResultDTO,ImportPreviewCountsDTOSchema,ImportPreviewSurfaceDTOSchema,ImportPreviewDTOSchema,ImportPreviewDTO,ImportPreviewResponseDTOSchema,ImportPreviewResponseDTO,init_project_import_export_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-import-export.dto.js"(){"use strict";init_create_dto();ExportProjectResponseDTOSchema=z20.object({success:z20.literal(!0),downloadUrl:z20.string(),expiresAt:z20.string(),fileSize:z20.number(),duration:z20.number()}),ExportProjectResponseDTO=createDTO(ExportProjectResponseDTOSchema),ImportProjectResultDTOSchema=z20.object({success:z20.literal(!0),projectId:z20.string(),projectName:z20.string(),displayName:z20.string(),projectUrl:z20.string(),duration:z20.number()}),ImportProjectResultDTO=createDTO(ImportProjectResultDTOSchema),ImportPreviewCountsDTOSchema=z20.object({contentTypes:z20.number(),entries:z20.number(),assets:z20.number(),translations:z20.number(),forms:z20.number(),codeFiles:z20.number(),assetFiles:z20.number()}),ImportPreviewSurfaceDTOSchema=z20.object({name:z20.string(),included:z20.boolean(),count:z20.number().optional(),note:z20.string().optional()}),ImportPreviewDTOSchema=z20.object({projectName:z20.string(),displayName:z20.string().nullable(),category:z20.string().nullable(),exportedAt:z20.string(),version:z20.string(),envScope:z20.enum(["main","tree"]),counts:ImportPreviewCountsDTOSchema,surfaces:z20.array(ImportPreviewSurfaceDTOSchema),fileSize:z20.number(),fileName:z20.string()}),ImportPreviewDTO=createDTO(ImportPreviewDTOSchema),ImportPreviewResponseDTOSchema=z20.object({success:z20.literal(!0),preview:ImportPreviewDTOSchema}),ImportPreviewResponseDTO=createDTO(ImportPreviewResponseDTOSchema)}});import{z as z21}from"zod";var TriggerKindSchema,ManualTriggerSchema,ScheduleTriggerSchema,WebhookTriggerSchema,TriggerSchema,init_agent_trigger_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-trigger.dto.js"(){"use strict";TriggerKindSchema=z21.enum(["manual","schedule","webhook"]),ManualTriggerSchema=z21.object({type:z21.literal("manual")}),ScheduleTriggerSchema=z21.object({type:z21.literal("schedule"),cron:z21.string().min(1,"cron expression required").regex(/^\s*\S+\s+\S+\s+\S+\s+\S+\s+\S+\s*$/,"cron must be a 5-field expression"),tz:z21.string().optional()}),WebhookTriggerSchema=z21.object({type:z21.literal("webhook"),path:z21.string().min(1).max(120).regex(/^[a-z0-9][a-z0-9_/-]*$/i,"webhook path must be lowercase alphanumeric with optional / - _")}),TriggerSchema=z21.discriminatedUnion("type",[ManualTriggerSchema,ScheduleTriggerSchema,WebhookTriggerSchema])}});import{z as z22}from"zod";var CapabilityRiskTierSchema,CapabilitySummaryEntrySchema,AgentSubAgentSummarySchema,AgentInstallSummaryDTOSchema,AgentInstallSummaryDTO,AgentInstallSummaryResponseSchema,init_agent_install_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-install-summary.dto.js"(){"use strict";init_create_dto();init_response();CapabilityRiskTierSchema=z22.enum(["low","medium","high","critical"]),CapabilitySummaryEntrySchema=z22.object({token:z22.string().min(1),risk:CapabilityRiskTierSchema,description:z22.string()}),AgentSubAgentSummarySchema=z22.object({name:z22.string().min(1),grant:z22.enum(["inherit","explicit"]),effectiveCaps:z22.array(z22.string().min(1))}),AgentInstallSummaryDTOSchema=z22.object({agentName:z22.string().min(1),env:z22.string().min(1),declaredCapabilities:z22.array(CapabilitySummaryEntrySchema),transitiveCapabilities:z22.array(CapabilitySummaryEntrySchema),highRiskCapabilities:z22.array(CapabilitySummaryEntrySchema),criticalCapabilities:z22.array(CapabilitySummaryEntrySchema),subAgents:z22.array(AgentSubAgentSummarySchema),declaresDelegate:z22.boolean(),cycle:z22.array(z22.string()).nullable(),missingSubAgents:z22.array(z22.string()),warnings:z22.array(z22.string())}),AgentInstallSummaryDTO=createDTO(AgentInstallSummaryDTOSchema),AgentInstallSummaryResponseSchema=createResponseSchema(AgentInstallSummaryDTOSchema)}});import{z as z23}from"zod";var AgentListItemTriggerSchema,AgentListItemTriggerStateSchema,AgentListItemDTOSchema,AgentListItemDTO,AgentListResponseSchema,init_agent_list_item_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-list-item.dto.js"(){"use strict";init_create_dto();init_response();init_agent_install_summary_dto();init_agent_trigger_dto();AgentListItemTriggerSchema=z23.object({kind:TriggerKindSchema,summary:z23.string()}),AgentListItemTriggerStateSchema=z23.object({triggerIndex:z23.number().int().nonnegative(),triggerKind:TriggerKindSchema,enabled:z23.boolean(),wired:z23.boolean(),syncError:z23.string().nullable()}),AgentListItemDTOSchema=z23.object({name:z23.string().min(1),description:z23.string().nullable(),goalFirstLine:z23.string().nullable(),declaredCapabilities:z23.array(CapabilitySummaryEntrySchema),triggers:z23.array(AgentListItemTriggerSchema),triggerStates:z23.array(AgentListItemTriggerStateSchema)}),AgentListItemDTO=createDTO(AgentListItemDTOSchema),AgentListResponseSchema=createResponseSchema(z23.array(AgentListItemDTOSchema))}});import{z as z24}from"zod";var ManualRunRequestSchema,DispatchSkippedSchema,DispatchAcceptedSchema,ManualRunResponseSchema,init_agent_run_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-run.dto.js"(){"use strict";init_response();ManualRunRequestSchema=z24.object({args:z24.unknown().optional(),requestId:z24.string().min(1).max(128).optional()}),DispatchSkippedSchema=z24.object({skipped:z24.enum(["no-manual-trigger","trigger-not-wired","run-in-progress","task-env-budget"])}),DispatchAcceptedSchema=z24.object({sessionId:z24.string().min(1)}),ManualRunResponseSchema=createResponseSchema(z24.union([DispatchAcceptedSchema,DispatchSkippedSchema]))}});import{z as z25}from"zod";var SurfaceNameSchema,SURFACE_NAMES,SurfaceDeltaVerbSchema,SurfaceItemOriginSchema,SurfaceDeltaItemSchema,PerSurfaceDeltaSchema,CrossSurfaceFindingSchema,StatusReportSchema,StatusReportDTO,StatusReportResponseSchema,DiffReportSchema,DiffReportDTO,DiffReportResponseSchema,CodeFileDiffSchema,CodeFileDiffDTO,CodeFileDiffResponseSchema,CodeConflictBlobSchema,CodeConflictDetailSchema,CodeConflictDetailDTO,CodeConflictDetailResponseSchema,ContentEntrySnapshotSchema,ContentRowDiffSchema,ContentRowDiffDTO,ContentRowDiffResponseSchema,SchemaTypeSnapshotSchema,SchemaTypeDiffSchema,SchemaTypeDiffDTO,SchemaTypeDiffResponseSchema,AssetSnapshotSchema,AssetDiffSchema,AssetDiffDTO,AssetDiffResponseSchema,TranslationRowDiffSchema,TranslationRowDiffDTO,TranslationRowDiffResponseSchema,FormSchemaSnapshotSchema,FormSchemaDiffSchema,FormSchemaDiffDTO,FormSchemaDiffResponseSchema,CONFLICT_KINDS,ConflictKindSchema,ConflictSchema,FieldPickSchema,ConflictResolutionSchema,MergeResultSchema,MergeResultDTO,MergeResultResponseSchema,EngineStrategySchema,VendorStrategySchema,MergeStrategySchema,ResolvedStrategySchema,MergeRequestSchema,MergeInitiateResultSchema,MergeInitiateResultDTO,MergeInitiateResponseSchema,MergeConflictsHydrationSchema,MergeConflictsHydrationDTO,MergeConflictsHydrationResponseSchema,MergeResolveDraftRequestSchema,MergeResolveDraftResultSchema,MergeResolveDraftResultDTO,MergeResolveRequestSchema,MergeCancelRequestSchema,PublishReleaseRequestSchema,PublishReleaseResultSchema,PublishReleaseResultDTO,PublishReleaseResponseSchema,init_env_status_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-status.dto.js"(){"use strict";init_env();init_create_dto();init_response();SurfaceNameSchema=z25.enum(["code","schemas","content","translations","assets","forms"]),SURFACE_NAMES=["code","schemas","content","translations","assets","forms"],SurfaceDeltaVerbSchema=z25.enum(["added","removed","changed","conflict"]),SurfaceItemOriginSchema=z25.enum(["committed-ahead","local-uncommitted"]),SurfaceDeltaItemSchema=z25.object({verb:SurfaceDeltaVerbSchema,key:z25.string(),detail:z25.string().optional(),origin:SurfaceItemOriginSchema.optional(),meta:z25.record(z25.string(),z25.unknown()).optional()}),PerSurfaceDeltaSchema=z25.object({surface:SurfaceNameSchema,status:z25.enum(["ok","timed_out","failed","unchanged"]),durationMs:z25.number().int().nonnegative().optional(),changedCount:z25.number().int().nonnegative(),conflictCount:z25.number().int().nonnegative(),items:z25.array(SurfaceDeltaItemSchema).max(1e3).optional(),truncated:z25.boolean().optional(),error:z25.string().optional()}),CrossSurfaceFindingSchema=z25.object({id:z25.string(),kind:z25.string(),description:z25.string(),severity:z25.enum(["warning","error"]),source:z25.object({surface:SurfaceNameSchema,key:z25.string()}),target:z25.object({surface:SurfaceNameSchema,key:z25.string()}),actions:z25.array(z25.enum(["restore-target","fix-source","ignore"])).min(1)}),StatusReportSchema=z25.object({env:EnvSchema,vs:EnvSchema,syncState:z25.enum(["in-sync","ahead","behind","diverged","unknown"]),generatedAt:z25.coerce.date(),surfaces:z25.array(PerSurfaceDeltaSchema),agents:z25.array(z25.object({id:z25.string(),name:z25.string(),status:z25.enum(["active","paused","failed"]),lastRunAt:z25.coerce.date().nullable()})).optional(),crossSurface:z25.array(CrossSurfaceFindingSchema).optional()}),StatusReportDTO=createDTO(StatusReportSchema),StatusReportResponseSchema=createResponseSchema(StatusReportSchema),DiffReportSchema=z25.object({fromEnv:EnvSchema,toEnv:EnvSchema,generatedAt:z25.coerce.date(),surfaces:z25.array(PerSurfaceDeltaSchema),crossSurface:z25.array(CrossSurfaceFindingSchema).optional(),fingerprint:z25.string()}),DiffReportDTO=createDTO(DiffReportSchema),DiffReportResponseSchema=createResponseSchema(DiffReportSchema),CodeFileDiffSchema=z25.object({path:z25.string(),state:z25.enum(["added","modified","deleted","renamed","copied","type_changed","unmerged","unknown"]),raw:z25.string(),additions:z25.number().int().nonnegative(),deletions:z25.number().int().nonnegative()}),CodeFileDiffDTO=createDTO(CodeFileDiffSchema),CodeFileDiffResponseSchema=createResponseSchema(CodeFileDiffSchema),CodeConflictBlobSchema=z25.object({oid:z25.string().optional(),content:z25.string().optional(),truncated:z25.boolean(),binary:z25.boolean()}),CodeConflictDetailSchema=z25.object({path:z25.string(),base:CodeConflictBlobSchema,ours:CodeConflictBlobSchema,theirs:CodeConflictBlobSchema,result:CodeConflictBlobSchema,sourceTipSha:z25.string(),targetTipSha:z25.string(),mergeBaseSha:z25.string().optional()}),CodeConflictDetailDTO=createDTO(CodeConflictDetailSchema),CodeConflictDetailResponseSchema=createResponseSchema(CodeConflictDetailSchema),ContentEntrySnapshotSchema=z25.object({id:z25.string(),slug:z25.string(),contentType:z25.string(),data:z25.record(z25.string(),z25.unknown()),updatedAt:z25.coerce.date()}),ContentRowDiffSchema=z25.object({collection:z25.string(),rowId:z25.string(),parent:ContentEntrySnapshotSchema.nullable(),child:ContentEntrySnapshotSchema.nullable()}),ContentRowDiffDTO=createDTO(ContentRowDiffSchema),ContentRowDiffResponseSchema=createResponseSchema(ContentRowDiffSchema),SchemaTypeSnapshotSchema=z25.object({name:z25.string(),label:z25.string(),isSingleton:z25.boolean(),fields:z25.record(z25.string(),z25.unknown())}),SchemaTypeDiffSchema=z25.object({typeName:z25.string(),parent:SchemaTypeSnapshotSchema.nullable(),child:SchemaTypeSnapshotSchema.nullable()}),SchemaTypeDiffDTO=createDTO(SchemaTypeDiffSchema),SchemaTypeDiffResponseSchema=createResponseSchema(SchemaTypeDiffSchema),AssetSnapshotSchema=z25.object({id:z25.string(),name:z25.string(),type:z25.enum(["file","folder"]),mimeType:z25.string().nullable(),storageKey:z25.string().nullable(),url:z25.string().nullable(),fileSize:z25.number().nullable(),width:z25.number().nullable(),height:z25.number().nullable(),altText:z25.string().nullable(),caption:z25.string().nullable(),createdAt:z25.coerce.date(),updatedAt:z25.coerce.date()}),AssetDiffSchema=z25.object({assetId:z25.string(),parent:AssetSnapshotSchema.nullable(),child:AssetSnapshotSchema.nullable()}),AssetDiffDTO=createDTO(AssetDiffSchema),AssetDiffResponseSchema=createResponseSchema(AssetDiffSchema),TranslationRowDiffSchema=z25.object({locale:z25.string(),key:z25.string(),parent:z25.string().nullable(),child:z25.string().nullable()}),TranslationRowDiffDTO=createDTO(TranslationRowDiffSchema),TranslationRowDiffResponseSchema=createResponseSchema(TranslationRowDiffSchema),FormSchemaSnapshotSchema=z25.object({formName:z25.string(),label:z25.string().nullable(),schemaFingerprint:z25.string(),fields:z25.record(z25.string(),z25.unknown()),settings:z25.record(z25.string(),z25.unknown()).optional()}),FormSchemaDiffSchema=z25.object({formName:z25.string(),parent:FormSchemaSnapshotSchema.nullable(),child:FormSchemaSnapshotSchema.nullable()}),FormSchemaDiffDTO=createDTO(FormSchemaDiffSchema),FormSchemaDiffResponseSchema=createResponseSchema(FormSchemaDiffSchema),CONFLICT_KINDS=["merge-conflict","requires-manual-strategy","cross-surface-integrity","unique-conflict"],ConflictKindSchema=z25.enum(CONFLICT_KINDS),ConflictSchema=z25.object({surface:SurfaceNameSchema,key:z25.string(),kind:ConflictKindSchema.optional(),description:z25.string(),parentValue:z25.unknown().optional(),childValue:z25.unknown().optional(),conflictingFields:z25.array(z25.string()).optional(),code:z25.object({path:z25.string(),unresolvable:z25.boolean().optional(),reason:z25.string().optional()}).optional()}),FieldPickSchema=z25.object({field:z25.string(),choice:z25.enum(["parent","child","pick","ai-pick"]),pickedValue:z25.unknown().optional(),aiSessionId:z25.string().optional()}),ConflictResolutionSchema=z25.object({surface:SurfaceNameSchema,key:z25.string(),choice:z25.enum(["parent","child","pick"]),pickedValue:z25.unknown().optional(),fieldPicks:z25.array(FieldPickSchema).optional()}),MergeResultSchema=z25.object({ok:z25.boolean(),mergeId:z25.string().uuid(),fromEnv:EnvSchema,toEnv:EnvSchema,applied:z25.array(z25.object({surface:SurfaceNameSchema,count:z25.number().int().nonnegative()})),conflicts:z25.array(ConflictSchema).optional(),summary:z25.string().optional()}),MergeResultDTO=createDTO(MergeResultSchema),MergeResultResponseSchema=createResponseSchema(MergeResultSchema),EngineStrategySchema=z25.enum(["ff-only","auto","theirs","ours","manual"]),VendorStrategySchema=z25.enum(["ff_only","ff_prefer","merge"]),MergeStrategySchema=z25.object({engine:EngineStrategySchema.optional(),vendor:VendorStrategySchema.optional(),squash:z25.boolean().optional()}),ResolvedStrategySchema=z25.object({engine:EngineStrategySchema,vendor:VendorStrategySchema,squash:z25.boolean()}),MergeRequestSchema=z25.object({from:EnvSchema,allowDirectMerge:z25.boolean().optional(),strategy:MergeStrategySchema.optional()}),MergeInitiateResultSchema=z25.object({mergeId:z25.string().uuid(),streamUrl:z25.string(),strategy:ResolvedStrategySchema,acceptedAt:z25.coerce.date()}),MergeInitiateResultDTO=createDTO(MergeInitiateResultSchema),MergeInitiateResponseSchema=createResponseSchema(MergeInitiateResultSchema),MergeConflictsHydrationSchema=z25.object({mergeId:z25.string().uuid(),fromEnv:EnvSchema,toEnv:EnvSchema,status:z25.enum(["in_progress","complete","failed","rolled_back","conflicts"]),strategy:ResolvedStrategySchema,conflicts:z25.array(ConflictSchema),draftResolutions:z25.array(ConflictResolutionSchema),lastEditedBy:z25.string().nullable(),lastEditedAt:z25.coerce.date().nullable(),initiator:z25.object({userId:z25.string().nullable(),role:z25.string().nullable(),agentName:z25.string().nullable()})}),MergeConflictsHydrationDTO=createDTO(MergeConflictsHydrationSchema),MergeConflictsHydrationResponseSchema=createResponseSchema(MergeConflictsHydrationSchema),MergeResolveDraftRequestSchema=z25.object({resolutions:z25.array(ConflictResolutionSchema)}),MergeResolveDraftResultSchema=z25.object({mergeId:z25.string().uuid(),draftResolutions:z25.array(ConflictResolutionSchema),lastEditedAt:z25.coerce.date(),lastEditedBy:z25.string()}),MergeResolveDraftResultDTO=createDTO(MergeResolveDraftResultSchema),MergeResolveRequestSchema=z25.object({mergeId:z25.string().uuid(),resolutions:z25.array(ConflictResolutionSchema)}),MergeCancelRequestSchema=z25.object({mergeId:z25.string().uuid()}),PublishReleaseRequestSchema=z25.object({version:z25.string().regex(/^v?\d+\.\d+\.\d+(-[\w.]+)?$/,"Use semver (v1.4.2 / 1.4.2 / 1.4.2-rc.1)"),notes:z25.string().max(2e4).optional()}),PublishReleaseResultSchema=z25.object({releaseTag:z25.string(),sha:z25.string(),publishedAt:z25.coerce.date()}),PublishReleaseResultDTO=createDTO(PublishReleaseResultSchema),PublishReleaseResponseSchema=createResponseSchema(PublishReleaseResultSchema)}});import{z as z26}from"zod";var AgentSessionStatusSchema,SessionMetricsSchema,AgentSessionReviewPublicationSchema,AgentSessionReviewSummarySchema,AgentSessionReviewSummaryDTO,AgentSessionReviewPayloadSchema,AgentSessionReviewPayloadDTO,AgentSessionReviewPayloadResponseSchema,AgentSessionDTOSchema,AgentSessionDTO,AgentSessionCheckpointDTOSchema,AgentSessionCheckpointDTO,AgentSessionResponseSchema,AgentSessionsListResponseSchema,AgentSessionCheckpointsListResponseSchema,AgentSessionWithCheckpointsResponseSchema,SessionErrorCodeSchema,CancelSessionRequestSchema,init_agent_session_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-session.dto.js"(){"use strict";init_env();init_create_dto();init_response();init_agent_trigger_dto();init_env_status_dto();AgentSessionStatusSchema=z26.enum(["planned","running","finished","cancelled","errored"]),SessionMetricsSchema=z26.object({cpuMs:z26.number().nonnegative().default(0),netBytes:z26.number().nonnegative().default(0),walltimeMs:z26.number().nonnegative().default(0),llmTokensIn:z26.number().nonnegative().optional(),llmTokensOut:z26.number().nonnegative().optional(),stepCount:z26.number().int().nonnegative().optional(),toolCallCounts:z26.record(z26.string().min(1).max(120),z26.number().int().nonnegative()).optional(),finishAction:z26.enum(["merge","retain","discard"]).optional()}),AgentSessionReviewPublicationSchema=z26.enum(["pending","merged","conflict","not_published"]),AgentSessionReviewSummarySchema=z26.object({capturedAt:z26.coerce.date(),fingerprint:z26.string().min(1).max(256),counts:z26.object({code:z26.number().int().nonnegative(),content:z26.number().int().nonnegative(),schemas:z26.number().int().nonnegative(),labels:z26.number().int().nonnegative()}),publication:AgentSessionReviewPublicationSchema,mergeId:z26.uuid().nullable()}),AgentSessionReviewSummaryDTO=createDTO(AgentSessionReviewSummarySchema),AgentSessionReviewPayloadSchema=z26.object({diff:DiffReportSchema,code:z26.array(CodeFileDiffSchema.extend({raw:z26.string().max(24576)})).max(200),schemas:z26.array(SchemaTypeDiffSchema).max(200),content:z26.array(z26.object({key:z26.string().min(1).max(512),collection:z26.string().min(1).max(256),slug:z26.string().max(512).optional(),verb:z26.enum(["added","modified","deleted"]),fields:z26.array(z26.object({name:z26.string().min(1).max(256),before:z26.unknown().optional(),after:z26.unknown().optional()})).max(20)})).max(200),labels:z26.array(z26.object({key:z26.string().min(1).max(512),locale:z26.string().min(1).max(64).optional(),before:z26.unknown().nullable(),after:z26.unknown().nullable()})).max(200)}),AgentSessionReviewPayloadDTO=createDTO(AgentSessionReviewPayloadSchema),AgentSessionReviewPayloadResponseSchema=createResponseSchema(AgentSessionReviewPayloadSchema),AgentSessionDTOSchema=z26.object({id:z26.uuid(),projectId:z26.uuid(),env:EnvSchema,agentName:z26.string().min(1),triggerKind:TriggerKindSchema,triggerPayload:z26.unknown().optional(),capabilities:z26.array(z26.string()).optional(),dataSources:z26.array(z26.string()).optional(),status:AgentSessionStatusSchema,sandboxId:z26.string().nullable(),startedAt:z26.coerce.date().nullable(),finishedAt:z26.coerce.date().nullable(),cancelledAt:z26.coerce.date().nullable(),costUsd:z26.number().nonnegative(),costCeilingUsd:z26.number().positive(),metrics:SessionMetricsSchema.nullable(),longRunning:z26.boolean(),lastCheckpointId:z26.uuid().nullable(),branchEnvId:z26.uuid().nullable(),parentSessionId:z26.uuid().nullable(),terminalReason:z26.string().nullable(),errorMessage:z26.string().nullable(),report:z26.string().nullable(),reviewSummary:AgentSessionReviewSummarySchema.nullable(),reviewCaptureError:z26.string().nullable(),createdAt:z26.coerce.date(),updatedAt:z26.coerce.date()}),AgentSessionDTO=createDTO(AgentSessionDTOSchema),AgentSessionCheckpointDTOSchema=z26.object({id:z26.uuid(),sessionId:z26.uuid(),checkpointIdx:z26.number().int().nonnegative(),payloadRef:z26.string(),payloadSizeBytes:z26.number().int().nonnegative(),checksum:z26.string().length(64),createdAt:z26.coerce.date()}),AgentSessionCheckpointDTO=createDTO(AgentSessionCheckpointDTOSchema),AgentSessionResponseSchema=createResponseSchema(AgentSessionDTOSchema),AgentSessionsListResponseSchema=createResponseSchema(z26.array(AgentSessionDTOSchema)),AgentSessionCheckpointsListResponseSchema=createResponseSchema(z26.array(AgentSessionCheckpointDTOSchema)),AgentSessionWithCheckpointsResponseSchema=createResponseSchema(z26.object({session:AgentSessionDTOSchema,checkpoints:z26.array(AgentSessionCheckpointDTOSchema)})),SessionErrorCodeSchema=z26.enum(["invalid_session_transition","session_not_found","capability_snapshot_invalid","checkpoint_restore_failed","cost_ceiling_invalid","too_many_agent_envs","env_provisioning_failed","agent_run_in_progress","agent_runtime_allowance_exhausted"]),CancelSessionRequestSchema=z26.object({reason:z26.string().min(1).max(120).optional()})}});import{z as z27}from"zod";var AgentBranchClassificationSchema,AgentBranchDecidedPathSchema,AgentBranchProposalDTOSchema,AgentBranchProposalDTO,DecideProposalRequestSchema,AgentBranchProposalResponseSchema,AgentBranchProposalsListResponseSchema,DecideProposalConflictResponseSchema,init_agent_proposal_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-proposal.dto.js"(){"use strict";init_create_dto();init_response();AgentBranchClassificationSchema=z27.enum(["trivial","structural"]),AgentBranchDecidedPathSchema=z27.enum(["auto-merge","review-merged","review-discarded"]),AgentBranchProposalDTOSchema=z27.object({id:z27.uuid(),envId:z27.uuid(),sessionId:z27.uuid().nullable(),skillName:z27.string().min(1),classification:AgentBranchClassificationSchema,rationale:z27.string().nullable(),summary:z27.string().nullable(),surfaceDeltas:z27.record(z27.string(),z27.unknown()),createdAt:z27.coerce.date(),decidedAt:z27.coerce.date().nullable(),decidedPath:AgentBranchDecidedPathSchema.nullable(),decidedBy:z27.string().nullable()}),AgentBranchProposalDTO=createDTO(AgentBranchProposalDTOSchema),DecideProposalRequestSchema=z27.object({path:z27.enum(["review-merged","review-discarded"])}),AgentBranchProposalResponseSchema=createResponseSchema(AgentBranchProposalDTOSchema),AgentBranchProposalsListResponseSchema=createResponseSchema(z27.array(AgentBranchProposalDTOSchema)),DecideProposalConflictResponseSchema=z27.object({code:z27.literal("merge_conflict"),message:z27.string(),conflicts:z27.record(z27.string(),z27.number().int().nonnegative())})}});import{z as z28}from"zod";var AGENT_QUESTION_STATES,AgentQuestionStateSchema,AgentQuestionFormSchema,AgentQuestionAskSchema,AgentQuestionRequestSchema,AgentQuestionSchema,AgentQuestionResponseSchema,RunAgentQuestionResponseSchema,AgentQuestionAttentionSchema,OpenAgentQuestionsResponseSchema,AnswerAgentQuestionResultSchema,AnswerAgentQuestionResponseSchema,init_agent_question_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/agent-question.dto.js"(){"use strict";init_chat_block();init_response();AGENT_QUESTION_STATES=["open","answered","expired","cancelled","superseded"],AgentQuestionStateSchema=z28.enum(AGENT_QUESTION_STATES),AgentQuestionFormSchema=FormBlockSchema.extend({title:z28.string().trim().min(1).max(80)}).superRefine((form,ctx)=>{(!form.steps.every(step=>step.id)||new Set(form.steps.map(step=>step.id)).size!==form.steps.length)&&ctx.addIssue({code:"custom",path:["steps"],message:"Every question step needs its own stable id."})}),AgentQuestionAskSchema=z28.object({description:z28.string().trim().min(1).max(240),block:AgentQuestionFormSchema}).strict(),AgentQuestionRequestSchema=AgentQuestionAskSchema.extend({version:z28.literal(QUESTION_FORM_CONTRACT_VERSION)}),AgentQuestionSchema=z28.object({id:z28.uuid(),projectId:z28.uuid(),threadId:z28.uuid(),invocationId:z28.uuid(),agentKey:z28.string().min(1).max(120),anchorEnv:z28.string().min(1).max(64),retainedEnv:z28.string().min(1).max(64),state:AgentQuestionStateSchema,request:AgentQuestionRequestSchema,answer:QuestionFormAnswerSnapshotSchema.nullable(),answeredByUserId:z28.string().min(1).nullable(),continuationInvocationId:z28.uuid().nullable(),askedAt:z28.coerce.date(),expiresAt:z28.coerce.date(),closedAt:z28.coerce.date().nullable()}),AgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema),RunAgentQuestionResponseSchema=createResponseSchema(AgentQuestionSchema.nullable()),AgentQuestionAttentionSchema=z28.object({questionId:z28.uuid(),invocationId:z28.uuid(),askedAt:z28.coerce.date()}),OpenAgentQuestionsResponseSchema=createResponseSchema(z28.array(AgentQuestionAttentionSchema)),AnswerAgentQuestionResultSchema=z28.object({question:AgentQuestionSchema,continuationInvocationId:z28.uuid(),deduped:z28.boolean()}),AnswerAgentQuestionResponseSchema=createResponseSchema(AnswerAgentQuestionResultSchema)}});import{z as z29}from"zod";var IntegrationAuthModeSchema,IntegrationAuthKindSchema,IntegrationCredentialInputSchema,IntegrationCredentialUsageSchema,IntegrationToolEffectSchema,ProjectIntegrationCredentialStatusSchema,IntegrationAuthModeDTOSchema,IntegrationCredentialDefinitionDTOSchema,IntegrationToolDefinitionDTOSchema,IntegrationRecipeDTOSchema,IntegrationInfoDTOSchema,IntegrationInfoDTO,ProjectIntegrationStatusDTOSchema,ProjectIntegrationStatusDTO,ProjectIntegrationInstallationDTOSchema,ProjectIntegrationInstallationDTO,EnableProjectIntegrationRequestSchema,SwitchProjectIntegrationAuthRequestSchema,SetProjectIntegrationCredentialRequestSchema,OrganizationIntegrationConnectionStatusSchema,OrganizationIntegrationConnectionDTOSchema,OrganizationIntegrationConnectionDTO,McpHeaderNameSchema,McpHeaderDefinitionSchema,McpSecretMapSchema,ConnectOrganizationIntegrationRequestSchema,ProjectIntegrationReturnPathSchema,ConnectProjectIntegrationRequestSchema,McpIntegrationAuthSchema,McpIntegrationSetupAuthSchema,AddProjectMcpIntegrationRequestSchema,AddProjectMcpIntegrationResponseBaseSchema,AddProjectMcpIntegrationResponseSchema,ReusableMcpServerAuthKindSchema,ReusableMcpServerDTOSchema,ReusableMcpServerDTO,SearchReusableMcpServersQuerySchema,ReuseProjectMcpIntegrationRequestSchema,StartProjectIntegrationConnectResponseSchema,StartProjectIntegrationConnectResponseDTO,ProjectIntegrationConnectResponseSchema,BindProjectChannelRequestSchema,ListProjectChannelsQuerySchema,SearchProjectChannelsQuerySchema,ProjectChannelBindingDTOSchema,ProjectChannelBindingDTO,ProjectChannelCandidateAvailabilitySchema,ProjectChannelCandidateDTOSchema,ProjectChannelCandidateDTO,FirecrawlScrapeFormatsSchema,FirecrawlScrapeToolInputSchema,FirecrawlSearchToolInputSchema,FirecrawlDeveloperSearchToolInputSchema,FirecrawlResearchSearchToolInputSchema,FirecrawlResearchPaperToolInputSchema,FirecrawlResearchRelatedToolInputSchema,FirecrawlMapToolInputSchema,FirecrawlCrawlToolInputSchema,FirecrawlMonitorScheduleInputSchema,FirecrawlMonitorScrapeOptionsInputSchema,FirecrawlMonitorTargetInputSchema,FirecrawlMonitorCreateToolInputSchema,FirecrawlMonitorUpdateToolInputSchema,FirecrawlMonitorIdToolInputSchema,FirecrawlMonitorCheckToolInputSchema,RunProjectIntegrationToolRequestSchema,ProjectIntegrationToolRunUsageSchema,ProjectIntegrationToolRunBillingSchema,FirecrawlScrapeToolOutputSchema,FirecrawlSearchToolOutputSchema,FirecrawlResearchPaperSchema,FirecrawlResearchPassageSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlMonitorScheduleOutputSchema,FirecrawlMonitorTargetOutputSchema,FirecrawlMonitorOutputSchema,FirecrawlMonitorCheckOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema,FirecrawlToolKeySchema,FirecrawlToolOutputSchema,ProjectIntegrationToolRunBaseSchema,ProjectIntegrationToolRunDTOSchema,ProjectIntegrationToolRunDTO,IntegrationsListResponseSchema,IntegrationInfoResponseSchema,ProjectIntegrationStatusResponseSchema,ProjectIntegrationInstallationResponseSchema,ProjectIntegrationToolRunResponseSchema,StartProjectIntegrationConnectResponseResponseSchema,OrganizationIntegrationConnectionResponseSchema,ProjectIntegrationConnectionsResponseSchema,ProjectIntegrationConnectResponseResponseSchema,AddProjectMcpIntegrationResponseResponseSchema,ReusableMcpServersResponseSchema,ProjectChannelBindingResponseSchema,ProjectChannelBindingsResponseSchema,ProjectChannelCandidatesResponseSchema,init_integration_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/integration.dto.js"(){"use strict";init_create_dto();init_response();IntegrationAuthModeSchema=z29.enum(["fimo","personal","oauth"]),IntegrationAuthKindSchema=z29.enum(["oauth","api_key","bot_token","basic"]),IntegrationCredentialInputSchema=z29.enum(["secret_text"]),IntegrationCredentialUsageSchema=z29.enum(["http_bearer","api_key"]),IntegrationToolEffectSchema=z29.enum(["read","write","delete","financial"]),ProjectIntegrationCredentialStatusSchema=z29.enum(["not_required","missing","configured"]),IntegrationAuthModeDTOSchema=z29.object({mode:IntegrationAuthModeSchema,label:z29.string().min(1),description:z29.string().min(1)}),IntegrationCredentialDefinitionDTOSchema=z29.object({id:z29.string().min(1),label:z29.string().min(1),input:IntegrationCredentialInputSchema,usage:IntegrationCredentialUsageSchema,required:z29.boolean()}),IntegrationToolDefinitionDTOSchema=z29.object({key:z29.string().min(1),name:z29.string().min(1),description:z29.string().min(1),effect:IntegrationToolEffectSchema}),IntegrationRecipeDTOSchema=z29.object({title:z29.string().min(1),description:z29.string().min(1),command:z29.string().min(1).optional()}),IntegrationInfoDTOSchema=z29.object({key:z29.string().min(1),name:z29.string().min(1),summary:z29.string().min(1),type:z29.enum(["native","mcp"]).optional(),url:z29.string().url().optional(),defaultAuthMode:IntegrationAuthModeSchema.nullable().optional(),authModes:z29.array(IntegrationAuthModeDTOSchema),credentials:z29.array(IntegrationCredentialDefinitionDTOSchema),tools:z29.array(IntegrationToolDefinitionDTOSchema),liveToolsStatus:z29.enum(["available","unavailable"]).optional(),recipes:z29.array(IntegrationRecipeDTOSchema)}),IntegrationInfoDTO=createDTO(IntegrationInfoDTOSchema),ProjectIntegrationStatusDTOSchema=z29.object({projectId:z29.uuid(),integrationKey:z29.string().min(1),name:z29.string().min(1),summary:z29.string().min(1),installed:z29.boolean(),enabled:z29.boolean(),setupState:z29.enum(["setup_required","ready","attention"]),authMode:IntegrationAuthModeSchema.nullable(),authModeLabel:z29.string().nullable(),connectionId:z29.uuid().nullable().optional(),connectionAlias:z29.string().min(1).nullable().optional(),connectionStatus:z29.enum(["active","revoked"]).nullable(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z29.array(z29.string()),installedAt:z29.coerce.date().nullable(),updatedAt:z29.coerce.date().nullable()}),ProjectIntegrationStatusDTO=createDTO(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationDTOSchema=z29.object({id:z29.uuid(),projectId:z29.uuid(),integrationKey:z29.string().min(1),enabled:z29.boolean(),authMode:IntegrationAuthModeSchema,authModeLabel:z29.string(),connectionId:z29.uuid().nullable().optional(),connectionAlias:z29.string().min(1).nullable().optional(),credentialStatus:ProjectIntegrationCredentialStatusSchema,configuredCredentials:z29.array(z29.string()),createdAt:z29.coerce.date(),updatedAt:z29.coerce.date()}),ProjectIntegrationInstallationDTO=createDTO(ProjectIntegrationInstallationDTOSchema),EnableProjectIntegrationRequestSchema=z29.object({authMode:IntegrationAuthModeSchema.optional(),connectionAlias:z29.string().min(1).optional()}),SwitchProjectIntegrationAuthRequestSchema=z29.object({authMode:IntegrationAuthModeSchema}),SetProjectIntegrationCredentialRequestSchema=z29.object({value:z29.string().min(1)}),OrganizationIntegrationConnectionStatusSchema=z29.enum(["active","revoked"]),OrganizationIntegrationConnectionDTOSchema=z29.object({id:z29.uuid(),organizationId:z29.string().min(1),integrationKey:z29.string().min(1),alias:z29.string().min(1),authKind:IntegrationAuthKindSchema,externalAccountId:z29.string().min(1),externalAccountName:z29.string().nullable(),externalBotUserId:z29.string().nullable(),status:OrganizationIntegrationConnectionStatusSchema,scopes:z29.array(z29.string()),connectedAt:z29.coerce.date(),updatedAt:z29.coerce.date()}),OrganizationIntegrationConnectionDTO=createDTO(OrganizationIntegrationConnectionDTOSchema),McpHeaderNameSchema=z29.string().trim().min(1).max(120).regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,"Header name is invalid."),McpHeaderDefinitionSchema=z29.object({name:McpHeaderNameSchema}),McpSecretMapSchema=z29.record(McpHeaderNameSchema,z29.string().min(1)),ConnectOrganizationIntegrationRequestSchema=z29.object({alias:z29.string().min(1).max(120).optional(),token:z29.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z29.boolean().optional()}).superRefine((value,ctx)=>{value.token&&value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),ProjectIntegrationReturnPathSchema=z29.string().min(1).max(500).refine(value=>value.startsWith("/app/")&&!value.startsWith("//"),"Return path must be inside the Fimo app."),ConnectProjectIntegrationRequestSchema=z29.discriminatedUnion("mode",[z29.object({mode:z29.literal("personal"),alias:z29.string().min(1).max(120),token:z29.string().min(1).optional(),secrets:McpSecretMapSchema.optional(),rotate:z29.boolean().optional()}),z29.object({mode:z29.literal("oauth"),returnTo:ProjectIntegrationReturnPathSchema.optional(),reconnect:z29.boolean().optional()})]).superRefine((value,ctx)=>{value.mode==="personal"&&!!value.token==!!value.secrets&&ctx.addIssue({code:"custom",path:["token"],message:"Provide either one token or a complete MCP secret map."})}),McpIntegrationAuthSchema=z29.enum(["none","bearer","header"]),McpIntegrationSetupAuthSchema=z29.union([z29.literal("auto"),McpIntegrationAuthSchema]),AddProjectMcpIntegrationRequestSchema=z29.object({type:z29.literal("mcp"),name:z29.string().trim().min(1).max(120),url:z29.string().url(),auth:McpIntegrationSetupAuthSchema.default("auto"),returnTo:ProjectIntegrationReturnPathSchema.optional(),headers:z29.array(McpHeaderDefinitionSchema).min(1).max(20).optional(),secrets:McpSecretMapSchema.optional(),headerName:McpHeaderNameSchema.optional(),token:z29.string().min(1).optional()}).superRefine((value,ctx)=>{let protocol;try{protocol=new URL(value.url).protocol}catch{return}protocol!=="https:"&&ctx.addIssue({code:"custom",path:["url"],message:"MCP servers must use HTTPS."});let hasSingleHeader=!!(value.headerName||value.token),hasHeaderBundle=!!(value.headers||value.secrets);if(value.auth==="auto"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Automatic authentication does not accept manual credentials."}),value.auth==="none"&&(hasSingleHeader||hasHeaderBundle)&&ctx.addIssue({code:"custom",path:["auth"],message:"Public MCP servers cannot define credentials."}),value.auth==="bearer"&&(value.token||ctx.addIssue({code:"custom",path:["token"],message:"Bearer authentication requires a token."}),(value.headerName||value.headers||value.secrets)&&ctx.addIssue({code:"custom",path:["headers"],message:"Custom headers only apply to header authentication."})),value.auth!=="header")return;if(hasSingleHeader&&hasHeaderBundle){ctx.addIssue({code:"custom",path:["headers"],message:"Use either the single-header fields or headers with a complete secret map."});return}if(hasSingleHeader){value.headerName||ctx.addIssue({code:"custom",path:["headerName"],message:"Custom header authentication needs a header name."}),value.token||ctx.addIssue({code:"custom",path:["token"],message:"Header authentication requires a complete header value."});return}if(!value.headers){ctx.addIssue({code:"custom",path:["headers"],message:"Header authentication needs at least one header."});return}let normalizedNames=value.headers.map(header=>header.name.toLowerCase());if(new Set(normalizedNames).size!==normalizedNames.length&&ctx.addIssue({code:"custom",path:["headers"],message:"MCP header names must be unique."}),!value.secrets){ctx.addIssue({code:"custom",path:["secrets"],message:"Header authentication needs a complete secret map."});return}let secretNames=Object.keys(value.secrets).map(name=>name.toLowerCase());if(new Set(secretNames).size!==secretNames.length){ctx.addIssue({code:"custom",path:["secrets"],message:"MCP secret names must be unique."});return}let expected=new Set(normalizedNames),actual=new Set(secretNames);(expected.size!==actual.size||[...expected].some(name=>!actual.has(name)))&&ctx.addIssue({code:"custom",path:["secrets"],message:"The MCP secret map must exactly cover the configured headers."})}),AddProjectMcpIntegrationResponseBaseSchema=z29.object({integrationKey:z29.string().min(1),status:ProjectIntegrationStatusDTOSchema,info:IntegrationInfoDTOSchema}),AddProjectMcpIntegrationResponseSchema=z29.discriminatedUnion("mode",[AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z29.literal("connected")}),AddProjectMcpIntegrationResponseBaseSchema.extend({mode:z29.literal("oauth"),connectUrl:z29.string().url(),expiresAt:z29.coerce.date()})]),ReusableMcpServerAuthKindSchema=z29.enum(["none","bearer","header","oauth"]),ReusableMcpServerDTOSchema=z29.object({id:z29.uuid(),name:z29.string().min(1),host:z29.string().min(1),authKind:ReusableMcpServerAuthKindSchema,sourceProjectName:z29.string().min(1),availability:z29.enum(["available","unavailable"])}),ReusableMcpServerDTO=createDTO(ReusableMcpServerDTOSchema),SearchReusableMcpServersQuerySchema=z29.object({query:z29.string().trim().max(120).optional()}),ReuseProjectMcpIntegrationRequestSchema=z29.object({serverId:z29.uuid()}),StartProjectIntegrationConnectResponseSchema=z29.object({integrationKey:z29.string().min(1),connectUrl:z29.string().url(),expiresAt:z29.coerce.date()}),StartProjectIntegrationConnectResponseDTO=createDTO(StartProjectIntegrationConnectResponseSchema),ProjectIntegrationConnectResponseSchema=z29.discriminatedUnion("mode",[z29.object({mode:z29.literal("personal"),integrationKey:z29.string().min(1),connection:OrganizationIntegrationConnectionDTOSchema}),z29.object({mode:z29.literal("oauth"),integrationKey:z29.string().min(1),connectUrl:z29.string().url(),expiresAt:z29.coerce.date()})]),BindProjectChannelRequestSchema=z29.object({ref:z29.string().min(1),connectionAlias:z29.string().min(1).optional(),agentName:z29.string().min(1).max(160).nullable().optional(),force:z29.boolean().optional()}),ListProjectChannelsQuerySchema=z29.object({integrationKey:z29.string().min(1)}),SearchProjectChannelsQuerySchema=z29.object({integrationKey:z29.string().min(1),connectionAlias:z29.string().min(1),query:z29.string().max(160).optional()}),ProjectChannelBindingDTOSchema=z29.object({id:z29.uuid(),projectId:z29.uuid(),integrationKey:z29.string().min(1),connectionId:z29.uuid(),externalWorkspaceId:z29.string().min(1),externalChannelId:z29.string().min(1),externalChannelName:z29.string().nullable(),agentName:z29.string().nullable(),enabled:z29.boolean(),createdAt:z29.coerce.date(),updatedAt:z29.coerce.date()}),ProjectChannelBindingDTO=createDTO(ProjectChannelBindingDTOSchema),ProjectChannelCandidateAvailabilitySchema=z29.enum(["available","selected","used_by_project","unavailable"]),ProjectChannelCandidateDTOSchema=z29.object({id:z29.string().min(1),name:z29.string().min(1),visibility:z29.enum(["public","private"]),availability:ProjectChannelCandidateAvailabilitySchema,projectName:z29.string().min(1).nullable(),canMove:z29.boolean()}),ProjectChannelCandidateDTO=createDTO(ProjectChannelCandidateDTOSchema),FirecrawlScrapeFormatsSchema=z29.object({markdown:z29.boolean().optional(),summary:z29.boolean().optional(),links:z29.boolean().optional(),branding:z29.boolean().optional(),images:z29.boolean().optional(),html:z29.union([z29.literal("cleaned"),z29.literal("raw"),z29.boolean()]).optional(),json:z29.union([z29.boolean(),z29.object({prompt:z29.string().min(1).max(1e4),schema:z29.record(z29.string(),z29.unknown()).optional()})]).optional()}).default({markdown:!0}),FirecrawlScrapeToolInputSchema=z29.object({url:z29.string().url(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional(),waitForMs:z29.number().int().min(0).max(3e4).optional(),maxAgeMs:z29.number().int().min(0).optional(),minAgeMs:z29.number().int().min(0).optional(),storeInCache:z29.boolean().optional(),proxy:z29.enum(["basic","enhanced","auto"]).optional(),mobile:z29.boolean().optional(),location:z29.object({country:z29.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z29.array(z29.string().min(1).max(35)).min(1).max(10).optional()}).optional()}),FirecrawlSearchToolInputSchema=z29.object({query:z29.string().min(1),maxResults:z29.number().int().positive().max(20).optional(),sources:z29.array(z29.enum(["web","news","images"])).min(1).max(3).optional(),categories:z29.array(z29.enum(["github","research","pdf"])).min(1).max(3).optional(),includeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(100).optional(),excludeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(100).optional(),timeRange:z29.enum(["hour","day","week","month","year"]).optional(),location:z29.string().min(1).max(160).optional(),country:z29.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code.").optional(),highlights:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."}),FirecrawlDeveloperSearchToolInputSchema=z29.object({query:z29.string().min(1).max(500),maxResults:z29.number().int().min(1).max(100).optional(),types:z29.array(z29.enum(["doc","issue","pull_request","readme"])).min(1).max(4).optional(),repos:z29.array(z29.string().min(1).max(512)).min(1).max(20).optional(),sources:z29.array(z29.string().min(1).max(512)).min(1).max(20).optional(),passages:z29.number().int().min(1).max(5).optional(),skills:z29.literal("only").optional(),language:z29.string().min(1).optional(),topic:z29.string().min(1).optional(),license:z29.string().min(1).optional(),minStars:z29.number().int().min(0).optional(),maxStars:z29.number().int().min(0).optional(),archived:z29.boolean().optional(),fork:z29.boolean().optional()}).refine(value=>value.minStars===void 0||value.maxStars===void 0||value.minStars<=value.maxStars,{message:"minStars must not exceed maxStars."}),FirecrawlResearchSearchToolInputSchema=z29.object({query:z29.string().min(1).max(500),maxResults:z29.number().int().min(1).max(500).optional(),authors:z29.array(z29.string().min(1)).min(1).optional(),categories:z29.array(z29.string().min(1)).min(1).optional(),from:z29.iso.date().optional(),to:z29.iso.date().optional()}),FirecrawlResearchPaperToolInputSchema=z29.object({paperId:z29.string().min(1).max(512),query:z29.string().min(1).max(500).optional(),maxPassages:z29.number().int().min(1).max(50).optional()}).refine(value=>value.query!==void 0||value.maxPassages===void 0,{message:"maxPassages requires query."}),FirecrawlResearchRelatedToolInputSchema=z29.object({paperId:z29.string().min(1).max(512),intent:z29.string().min(1).max(500),mode:z29.enum(["similar","citers","references"]).optional(),maxResults:z29.number().int().min(1).max(500).optional(),rerank:z29.boolean().optional(),anchors:z29.array(z29.string().min(1).max(512)).min(1).optional()}),FirecrawlMapToolInputSchema=z29.object({url:z29.string().url(),search:z29.string().min(1).optional(),limit:z29.number().int().positive().max(200).optional(),includeSubdomains:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional()}),FirecrawlCrawlToolInputSchema=z29.object({url:z29.string().url(),limit:z29.number().int().positive().max(20).optional(),formats:FirecrawlScrapeFormatsSchema,onlyMainContent:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional()}),FirecrawlMonitorScheduleInputSchema=z29.object({text:z29.string().min(1).max(200).optional(),cron:z29.string().min(1).max(120).optional(),timezone:z29.string().min(1).max(80).optional()}).refine(value=>!!(value.text||value.cron),"Firecrawl monitor schedule needs text or cron."),FirecrawlMonitorScrapeOptionsInputSchema=z29.object({formats:FirecrawlScrapeFormatsSchema.optional(),onlyMainContent:z29.boolean().optional(),timeoutMs:z29.number().int().positive().max(12e4).optional(),waitForMs:z29.number().int().min(0).max(3e4).optional(),maxAgeMs:z29.number().int().min(0).optional(),minAgeMs:z29.number().int().min(0).optional(),storeInCache:z29.boolean().optional(),proxy:z29.enum(["basic","enhanced","auto"]).optional(),mobile:z29.boolean().optional(),location:z29.object({country:z29.string().regex(/^[A-Za-z]{2}$/,"Country must be a two-letter code."),languages:z29.array(z29.string().min(1).max(35)).min(1).max(10).optional()}).optional()}).optional(),FirecrawlMonitorTargetInputSchema=z29.union([z29.object({type:z29.enum(["scrape","crawl"]).default("scrape"),urls:z29.array(z29.string().url()).min(1).max(50),scrapeOptions:FirecrawlMonitorScrapeOptionsInputSchema}),z29.object({type:z29.literal("search"),queries:z29.array(z29.string().min(1).max(256)).min(1).max(12),searchWindow:z29.enum(["5m","15m","1h","6h","24h","7d"]).optional(),maxResults:z29.number().int().min(1).max(50).optional(),includeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(50).optional(),excludeDomains:z29.array(z29.string().min(1).max(253)).min(1).max(50).optional()}).refine(value=>!(value.includeDomains&&value.excludeDomains),{message:"Choose includeDomains or excludeDomains, not both."})]),FirecrawlMonitorCreateToolInputSchema=z29.object({name:z29.string().min(1).max(256),schedule:FirecrawlMonitorScheduleInputSchema,targets:z29.array(FirecrawlMonitorTargetInputSchema).min(1).max(50),goal:z29.string().min(1).max(2e3).optional(),judgeEnabled:z29.boolean().optional(),retentionDays:z29.number().int().min(1).max(365).optional(),notification:z29.object({email:z29.object({enabled:z29.boolean().default(!0),recipients:z29.array(z29.string().email()).min(1).max(20),includeDiffs:z29.boolean().optional()}).optional()}).optional()}).refine(value=>!value.targets.some(target=>target.type==="search")||value.judgeEnabled===!1||!!value.goal,{message:"Search monitor targets require goal unless judgeEnabled is false."}),FirecrawlMonitorUpdateToolInputSchema=z29.object({monitorId:z29.string().uuid(),name:z29.string().min(1).max(256).optional(),schedule:FirecrawlMonitorScheduleInputSchema.optional(),targets:z29.array(FirecrawlMonitorTargetInputSchema).min(1).max(50).optional(),goal:z29.string().min(1).max(2e3).optional(),judgeEnabled:z29.boolean().optional(),retentionDays:z29.number().int().min(1).max(365).optional(),status:z29.enum(["active","paused"]).optional()}).refine(value=>Object.keys(value).some(key=>key!=="monitorId"),"Monitor update needs a changed field."),FirecrawlMonitorIdToolInputSchema=z29.object({monitorId:z29.string().uuid()}),FirecrawlMonitorCheckToolInputSchema=FirecrawlMonitorIdToolInputSchema.extend({checkId:z29.string().uuid()}),RunProjectIntegrationToolRequestSchema=z29.object({tool:z29.string().min(1),input:z29.record(z29.string(),z29.unknown()),connectionAlias:z29.string().min(1).optional()}),ProjectIntegrationToolRunUsageSchema=z29.object({provider:z29.string().min(1),providerCredits:z29.number().nonnegative().optional(),providerCostUsd:z29.number().nonnegative().optional(),requests:z29.number().int().nonnegative().optional()}),ProjectIntegrationToolRunBillingSchema=z29.object({credits:z29.number().int().nonnegative()}),FirecrawlScrapeToolOutputSchema=z29.object({url:z29.string(),provider:z29.literal("firecrawl"),title:z29.string().optional(),statusCode:z29.number().optional(),markdown:z29.string().optional(),summary:z29.string().optional(),links:z29.array(z29.string()).optional(),images:z29.array(z29.string()).optional(),html:z29.string().optional(),json:z29.unknown().optional(),branding:z29.record(z29.string(),z29.unknown()).optional(),warning:z29.string().optional()}),FirecrawlSearchToolOutputSchema=z29.object({query:z29.string(),provider:z29.literal("firecrawl"),warning:z29.string().optional(),results:z29.array(z29.object({title:z29.string(),url:z29.string(),snippet:z29.string().optional(),content:z29.string().optional(),score:z29.number().optional(),publishedAt:z29.string().optional()}))}),FirecrawlResearchPaperSchema=z29.object({paperId:z29.string(),primaryId:z29.string().optional(),ids:z29.record(z29.string(),z29.array(z29.string())).optional(),title:z29.string().optional(),abstract:z29.string().optional(),score:z29.number().optional()}).passthrough(),FirecrawlResearchPassageSchema=z29.object({text:z29.string(),score:z29.number().optional()}).passthrough(),FirecrawlDeveloperSearchToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),results:z29.array(z29.object({id:z29.string(),type:z29.string().min(1).optional(),url:z29.string(),title:z29.string().optional(),passages:z29.array(z29.object({text:z29.string()}).passthrough())}).passthrough()),coverage:z29.record(z29.string(),z29.string()).optional(),reranked:z29.boolean().optional(),repos:z29.array(z29.record(z29.string(),z29.unknown())).optional(),sources:z29.array(z29.record(z29.string(),z29.unknown())).optional()}),FirecrawlResearchSearchToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),results:z29.array(FirecrawlResearchPaperSchema)}),FirecrawlResearchPaperToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),paper:z29.record(z29.string(),z29.unknown()),paperId:z29.string().optional(),query:z29.string().optional(),passages:z29.array(FirecrawlResearchPassageSchema).optional()}),FirecrawlResearchRelatedToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),results:z29.array(FirecrawlResearchPaperSchema),poolSize:z29.number().int().nonnegative(),truncated:z29.boolean(),note:z29.string().nullable().optional()}),FirecrawlMapToolOutputSchema=z29.object({url:z29.string(),provider:z29.literal("firecrawl"),count:z29.number(),links:z29.array(z29.object({url:z29.string(),title:z29.string().optional(),description:z29.string().optional()}))}),FirecrawlCrawlToolOutputSchema=z29.object({url:z29.string(),provider:z29.literal("firecrawl"),total:z29.number(),pages:z29.array(z29.object({url:z29.string(),title:z29.string().optional(),statusCode:z29.number().optional(),markdown:z29.string().optional(),summary:z29.string().optional(),links:z29.array(z29.string()).optional(),images:z29.array(z29.string()).optional(),html:z29.string().optional(),warning:z29.string().optional()})),warning:z29.string().optional()}),FirecrawlMonitorScheduleOutputSchema=z29.object({cron:z29.string().optional(),text:z29.string().optional(),timezone:z29.string().optional()}).passthrough(),FirecrawlMonitorTargetOutputSchema=z29.object({id:z29.string().optional(),type:z29.enum(["scrape","crawl","search"]).optional(),urls:z29.array(z29.string()).optional(),queries:z29.array(z29.string()).optional(),searchWindow:z29.string().optional(),maxResults:z29.number().optional(),includeDomains:z29.array(z29.string()).optional(),excludeDomains:z29.array(z29.string()).optional(),scrapeOptions:z29.record(z29.string(),z29.unknown()).optional()}).passthrough(),FirecrawlMonitorOutputSchema=z29.object({id:z29.string(),name:z29.string(),status:z29.string().optional(),schedule:FirecrawlMonitorScheduleOutputSchema.optional(),nextRunAt:z29.string().nullable().optional(),lastRunAt:z29.string().nullable().optional(),currentCheckId:z29.string().nullable().optional(),targets:z29.array(FirecrawlMonitorTargetOutputSchema).optional(),goal:z29.string().nullable().optional(),judgeEnabled:z29.boolean().optional(),estimatedCreditsPerMonth:z29.number().optional(),createdAt:z29.string().optional(),updatedAt:z29.string().optional()}).passthrough(),FirecrawlMonitorCheckOutputSchema=z29.object({id:z29.string(),monitorId:z29.string(),scheduledFor:z29.string().nullable().optional(),startedAt:z29.string().nullable().optional(),finishedAt:z29.string().nullable().optional(),estimatedCredits:z29.number().optional(),reservedCredits:z29.number().optional(),actualCredits:z29.number().optional(),billingStatus:z29.string().nullable().optional(),summary:z29.object({totalPages:z29.number().optional(),same:z29.number().optional(),changed:z29.number().optional(),new:z29.number().optional(),removed:z29.number().optional(),error:z29.number().optional()}).passthrough().optional(),error:z29.string().nullable().optional(),createdAt:z29.string().optional(),updatedAt:z29.string().optional()}).passthrough(),FirecrawlMonitorListToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitors:z29.array(FirecrawlMonitorOutputSchema)}),FirecrawlMonitorDetailToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitor:FirecrawlMonitorOutputSchema}),FirecrawlMonitorDeleteToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitorId:z29.string(),deleted:z29.boolean()}),FirecrawlMonitorChecksToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitorId:z29.string(),checks:z29.array(FirecrawlMonitorCheckOutputSchema)}),FirecrawlMonitorCheckDetailToolOutputSchema=z29.object({provider:z29.literal("firecrawl"),monitorId:z29.string(),check:FirecrawlMonitorCheckOutputSchema,next:z29.string().optional()}),FirecrawlToolKeySchema=z29.enum(["search","developer.search","research.search","research.paper","research.related","scrape","map","crawl","monitor.create","monitor.update","monitor.list","monitor.get","monitor.pause","monitor.resume","monitor.delete","monitor.run","monitor.checks","monitor.check"]),FirecrawlToolOutputSchema=z29.union([FirecrawlSearchToolOutputSchema,FirecrawlDeveloperSearchToolOutputSchema,FirecrawlResearchSearchToolOutputSchema,FirecrawlResearchPaperToolOutputSchema,FirecrawlResearchRelatedToolOutputSchema,FirecrawlMapToolOutputSchema,FirecrawlCrawlToolOutputSchema,FirecrawlScrapeToolOutputSchema,FirecrawlMonitorListToolOutputSchema,FirecrawlMonitorDetailToolOutputSchema,FirecrawlMonitorDeleteToolOutputSchema,FirecrawlMonitorChecksToolOutputSchema,FirecrawlMonitorCheckDetailToolOutputSchema]),ProjectIntegrationToolRunBaseSchema=z29.object({projectId:z29.uuid(),integrationKey:z29.string().min(1),tool:z29.string().min(1),connectionAlias:z29.string().min(1).nullable().optional(),output:z29.record(z29.string(),z29.unknown()),executedAt:z29.coerce.date()}),ProjectIntegrationToolRunDTOSchema=z29.discriminatedUnion("authMode",[ProjectIntegrationToolRunBaseSchema.extend({authMode:z29.literal("fimo"),billing:ProjectIntegrationToolRunBillingSchema,usage:z29.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z29.literal("personal"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z29.undefined().optional()}),ProjectIntegrationToolRunBaseSchema.extend({authMode:z29.literal("oauth"),usage:ProjectIntegrationToolRunUsageSchema.optional(),billing:z29.undefined().optional()})]),ProjectIntegrationToolRunDTO=createDTO(ProjectIntegrationToolRunDTOSchema),IntegrationsListResponseSchema=createResponseSchema(z29.array(ProjectIntegrationStatusDTOSchema)),IntegrationInfoResponseSchema=createResponseSchema(IntegrationInfoDTOSchema),ProjectIntegrationStatusResponseSchema=createResponseSchema(ProjectIntegrationStatusDTOSchema),ProjectIntegrationInstallationResponseSchema=createResponseSchema(ProjectIntegrationInstallationDTOSchema),ProjectIntegrationToolRunResponseSchema=createResponseSchema(ProjectIntegrationToolRunDTOSchema),StartProjectIntegrationConnectResponseResponseSchema=createResponseSchema(StartProjectIntegrationConnectResponseSchema),OrganizationIntegrationConnectionResponseSchema=createResponseSchema(OrganizationIntegrationConnectionDTOSchema),ProjectIntegrationConnectionsResponseSchema=createResponseSchema(z29.array(OrganizationIntegrationConnectionDTOSchema)),ProjectIntegrationConnectResponseResponseSchema=createResponseSchema(ProjectIntegrationConnectResponseSchema),AddProjectMcpIntegrationResponseResponseSchema=createResponseSchema(AddProjectMcpIntegrationResponseSchema),ReusableMcpServersResponseSchema=createResponseSchema(z29.array(ReusableMcpServerDTOSchema)),ProjectChannelBindingResponseSchema=createResponseSchema(ProjectChannelBindingDTOSchema),ProjectChannelBindingsResponseSchema=createResponseSchema(z29.array(ProjectChannelBindingDTOSchema)),ProjectChannelCandidatesResponseSchema=createResponseSchema(z29.array(ProjectChannelCandidateDTOSchema))}});import{z as z30}from"zod";var SCHEDULE_NOTIFICATION_TOPICS,ScheduleNotificationTopicSchema,USER_MANAGED_NOTIFICATION_TOPICS,UserManagedNotificationTopicSchema,MAX_SCHEDULE_SUBSCRIBERS,ScheduleSubscriberDeliveryStateSchema,ScheduleSubscriberCandidateSchema,ScheduleNotificationSettingsSchema,ScheduleNotificationSettingsResponseSchema,UpdateScheduleSubscribersRequestSchema,UserNotificationPreferenceSchema,UserNotificationPreferencesSchema,UserNotificationPreferencesResponseSchema,UpdateUserNotificationPreferenceRequestSchema,SCHEDULE_OPT_OUT_LINK_ACTIONS,ScheduleOptOutLinkActionSchema,SCHEDULE_OPT_OUT_ACTIONS,ScheduleOptOutActionSchema,ScheduleOptOutStateSchema,ScheduleOptOutResponseSchema,FollowedScheduleSchema,FollowedSchedulesSchema,FollowedSchedulesResponseSchema,init_schedule_notifications_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule-notifications.dto.js"(){"use strict";init_response();SCHEDULE_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance"],ScheduleNotificationTopicSchema=z30.enum(SCHEDULE_NOTIFICATION_TOPICS),USER_MANAGED_NOTIFICATION_TOPICS=["schedule_health","schedule_compute_allowance"],UserManagedNotificationTopicSchema=z30.enum(USER_MANAGED_NOTIFICATION_TOPICS),MAX_SCHEDULE_SUBSCRIBERS=5,ScheduleSubscriberDeliveryStateSchema=z30.enum(["deliverable","suppressed"]),ScheduleSubscriberCandidateSchema=z30.object({userId:z30.string().min(1),name:z30.string(),email:z30.string().min(1),subscribed:z30.boolean(),deliveryState:ScheduleSubscriberDeliveryStateSchema}),ScheduleNotificationSettingsSchema=z30.object({maxSubscribers:z30.number().int().positive(),subscriberCount:z30.number().int().nonnegative(),effectiveRecipientCount:z30.number().int().nonnegative(),currentUserSubscribed:z30.boolean(),candidates:z30.array(ScheduleSubscriberCandidateSchema).optional()}),ScheduleNotificationSettingsResponseSchema=createResponseSchema(ScheduleNotificationSettingsSchema),UpdateScheduleSubscribersRequestSchema=z30.object({userIds:z30.array(z30.string().min(1)).max(MAX_SCHEDULE_SUBSCRIBERS).refine(userIds=>new Set(userIds).size===userIds.length,"Follower ids must be unique.")}),UserNotificationPreferenceSchema=z30.object({topic:UserManagedNotificationTopicSchema,enabled:z30.boolean(),source:z30.enum(["default","explicit"])}),UserNotificationPreferencesSchema=z30.object({topics:z30.array(UserNotificationPreferenceSchema)}),UserNotificationPreferencesResponseSchema=createResponseSchema(UserNotificationPreferencesSchema),UpdateUserNotificationPreferenceRequestSchema=z30.object({enabled:z30.boolean()}),SCHEDULE_OPT_OUT_LINK_ACTIONS=["unfollow_schedule","disable_topic"],ScheduleOptOutLinkActionSchema=z30.enum(SCHEDULE_OPT_OUT_LINK_ACTIONS),SCHEDULE_OPT_OUT_ACTIONS=["unfollow_schedule","unfollow_all_schedules","disable_topic"],ScheduleOptOutActionSchema=z30.enum(SCHEDULE_OPT_OUT_ACTIONS),ScheduleOptOutStateSchema=z30.object({action:ScheduleOptOutActionSchema,topic:ScheduleNotificationTopicSchema,scheduleName:z30.string().nullable(),maskedEmail:z30.string().min(1),applied:z30.boolean(),expiresAt:z30.coerce.date()}),ScheduleOptOutResponseSchema=createResponseSchema(ScheduleOptOutStateSchema),FollowedScheduleSchema=z30.object({scheduleId:z30.string().min(1),scheduleName:z30.string(),projectId:z30.string().min(1),projectName:z30.string(),env:z30.string().min(1)}),FollowedSchedulesSchema=z30.object({schedules:z30.array(FollowedScheduleSchema)}),FollowedSchedulesResponseSchema=createResponseSchema(FollowedSchedulesSchema)}});import{z as z31}from"zod";var PROJECT_SECRET_KEY_PATTERN,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN,RESERVED_PROJECT_SECRET_KEYS,ProjectSecretKeySchema,ProjectScheduleStatusSchema,ProjectScheduleDTOSchema,ProjectScheduleDTO,CreateProjectScheduleRequestSchema,UpdateProjectScheduleRequestSchema,ProjectScheduleRunStatusSchema,ProjectScheduleRunTriggerSchema,ProjectScheduleRunSecretSnapshotStateSchema,ProjectScheduleRunSecretResolutionSchema,ProjectSchedulePolicySchema,SchedulePolicyStateSchema,ProjectSchedulePlanSnapshotSchema,ProjectScheduleUsageSchema,ProjectScheduleRunDTOSchema,ProjectScheduleRunDTO,ProjectScheduleRunSecretSnapshotSchema,ProjectScheduleRunDetailDTOSchema,ProjectScheduleRunDetailDTO,RunProjectScheduleRequestSchema,ProjectScheduleRunsQuerySchema,ProjectScheduleResponseSchema,ProjectSchedulesListDataSchema,ProjectSchedulesListResponseSchema,ProjectSchedulesOverviewResponseSchema,ProjectScheduleDetailDataSchema,ProjectScheduleDetailResponseSchema,ProjectScheduleRunsPageSchema,ProjectScheduleRunsResponseSchema,ProjectScheduleRunResponseSchema,ProjectScheduleRunDetailResponseSchema,init_schedule_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schedule.dto.js"(){"use strict";init_common();init_env();init_create_dto();init_response();init_schedule_notifications_dto();PROJECT_SECRET_KEY_PATTERN=/^[A-Z_][A-Z0-9_]*$/,PUBLIC_PROJECT_SECRET_PREFIX_PATTERN=/^(PUBLIC_|VITE_|NEXT_PUBLIC_|NUXT_PUBLIC_)/,RESERVED_PROJECT_SECRET_KEYS=new Set([...FIMO_MANAGED_PROJECT_ENV_KEYS,"FIMO_SCHEDULE_ID","FIMO_SCHEDULE_RUN_ID","FIMO_SCHEDULE_NAME"]),ProjectSecretKeySchema=z31.string().min(1).max(255).superRefine((key,context)=>{PROJECT_SECRET_KEY_PATTERN.test(key)?RESERVED_PROJECT_SECRET_KEYS.has(key)?context.addIssue({code:"custom",message:`Secret key '${key}' is managed by Fimo and cannot be stored in project secrets.`}):PUBLIC_PROJECT_SECRET_PREFIX_PATTERN.test(key)&&context.addIssue({code:"custom",message:`Secret key '${key}' uses a public variable prefix. Store public values with fimo vars instead.`}):context.addIssue({code:"custom",message:`Secret key '${key}' must be UPPER_SNAKE_CASE.`})}),ProjectScheduleStatusSchema=z31.enum(["ok","failed"]),ProjectScheduleDTOSchema=BaseEntitySchema.extend({projectId:z31.uuid(),env:z31.string().min(1),name:z31.string().min(1),cron:z31.string().min(1),command:z31.string().min(1),secretKeys:z31.array(z31.string().min(1)),enabled:z31.boolean(),lastRunAt:z31.coerce.date().nullable(),lastStatus:ProjectScheduleStatusSchema.nullable(),lastError:z31.string().nullable(),overPolicyReasons:z31.array(z31.string()).optional()}),ProjectScheduleDTO=createDTO(ProjectScheduleDTOSchema),CreateProjectScheduleRequestSchema=z31.object({name:z31.string().min(1).max(120),cron:z31.string().min(1).max(120),command:z31.string().min(1).max(500),secretKeys:z31.array(ProjectSecretKeySchema).default([]),enabled:z31.boolean().optional()}),UpdateProjectScheduleRequestSchema=z31.object({name:z31.string().min(1).max(120).optional(),cron:z31.string().min(1).max(120).optional(),command:z31.string().min(1).max(500).optional(),secretKeys:z31.array(ProjectSecretKeySchema).optional()}).refine(request=>Object.keys(request).length>0,"Pass at least one schedule field to update."),ProjectScheduleRunStatusSchema=z31.enum(["queued","running","succeeded","failed","skipped"]),ProjectScheduleRunTriggerSchema=z31.enum(["cron","ui","cli"]),ProjectScheduleRunSecretSnapshotStateSchema=z31.enum(["pending","resolved","failed"]),ProjectScheduleRunSecretResolutionSchema=z31.enum(["resolved","missing","deleted","recreated","rotated"]),ProjectSchedulePolicySchema=z31.object({maxRuns:z31.number().int().positive(),retentionDays:z31.number().int().positive().nullable(),outputRetentionDays:z31.number().int().positive(),maxOutputBytes:z31.number().int().positive()}),SchedulePolicyStateSchema=z31.enum(["ok","near_limit","exhausted","over_policy"]),ProjectSchedulePlanSnapshotSchema=z31.object({code:z31.enum(["Free","Premium","Pro"]),source:z31.enum(["cached_subscription","free_fallback"]),activeSchedules:z31.object({used:z31.number().int().nonnegative(),limit:z31.number().int().positive()}),minCadenceMinutes:z31.number().int().positive(),maxRunMs:z31.number().int().positive(),concurrency:z31.object({used:z31.number().int().nonnegative(),limit:z31.number().int().positive()}),compute:z31.object({settledMs:z31.number().int().nonnegative(),reservedMs:z31.number().int().nonnegative(),includedMs:z31.number().int().positive(),remainingMs:z31.number().int().nonnegative(),resetsAt:z31.coerce.date()}),upgrade:z31.object({code:z31.literal("Pro"),activeSchedulesLimit:z31.number().int().positive(),minCadenceMinutes:z31.number().int().positive(),maxRunMs:z31.number().int().positive(),maxConcurrentRuns:z31.number().int().positive(),computeIncludedMs:z31.number().int().positive()}).optional(),state:SchedulePolicyStateSchema,overPolicyReasons:z31.array(z31.string())}),ProjectScheduleUsageSchema=z31.object({runCount:z31.number().int().nonnegative(),runsWithOutput:z31.number().int().nonnegative()}),ProjectScheduleRunDTOSchema=z31.object({id:z31.uuid(),scheduleId:z31.uuid(),projectId:z31.uuid(),env:z31.string().min(1),scheduleName:z31.string().min(1),command:z31.string().min(1),status:ProjectScheduleRunStatusSchema,trigger:ProjectScheduleRunTriggerSchema,triggeredBy:z31.object({id:z31.string().min(1),name:z31.string().min(1)}).nullable(),queuedAt:z31.coerce.date(),startedAt:z31.coerce.date().nullable(),finishedAt:z31.coerce.date().nullable(),exitCode:z31.number().int().nullable(),errorCode:z31.string().nullable(),error:z31.string().nullable(),outputBytes:z31.number().int().nonnegative(),outputTruncated:z31.boolean(),outputExpiresAt:z31.coerce.date().nullable(),metadataExpiresAt:z31.coerce.date().nullable()}),ProjectScheduleRunDTO=createDTO(ProjectScheduleRunDTOSchema),ProjectScheduleRunSecretSnapshotSchema=z31.object({state:ProjectScheduleRunSecretSnapshotStateSchema,capturedAt:z31.coerce.date().nullable(),items:z31.array(z31.object({key:z31.string().min(1),updatedAt:z31.coerce.date().nullable(),resolution:ProjectScheduleRunSecretResolutionSchema}))}),ProjectScheduleRunDetailDTOSchema=ProjectScheduleRunDTOSchema.extend({output:z31.string().nullable(),secretSnapshot:ProjectScheduleRunSecretSnapshotSchema}),ProjectScheduleRunDetailDTO=createDTO(ProjectScheduleRunDetailDTOSchema),RunProjectScheduleRequestSchema=z31.object({trigger:z31.enum(["ui","cli"])}),ProjectScheduleRunsQuerySchema=z31.object({limit:z31.coerce.number().int().min(1).max(100).default(25),cursor:z31.string().trim().min(1).optional(),status:ProjectScheduleRunStatusSchema.optional()}),ProjectScheduleResponseSchema=createResponseSchema(ProjectScheduleDTOSchema),ProjectSchedulesListDataSchema=z31.object({items:z31.array(ProjectScheduleDTOSchema),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectSchedulesListResponseSchema=createResponseSchema(z31.array(ProjectScheduleDTOSchema)),ProjectSchedulesOverviewResponseSchema=createResponseSchema(ProjectSchedulesListDataSchema),ProjectScheduleDetailDataSchema=z31.object({schedule:ProjectScheduleDTOSchema,usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema,notifications:ScheduleNotificationSettingsSchema.optional()}),ProjectScheduleDetailResponseSchema=createResponseSchema(ProjectScheduleDetailDataSchema),ProjectScheduleRunsPageSchema=z31.object({items:z31.array(ProjectScheduleRunDTOSchema),nextCursor:z31.string().nullable(),usage:ProjectScheduleUsageSchema,policy:ProjectSchedulePolicySchema,plan:ProjectSchedulePlanSnapshotSchema}),ProjectScheduleRunsResponseSchema=createResponseSchema(ProjectScheduleRunsPageSchema),ProjectScheduleRunResponseSchema=createResponseSchema(ProjectScheduleRunDTOSchema),ProjectScheduleRunDetailResponseSchema=createResponseSchema(ProjectScheduleRunDetailDTOSchema)}});import{z as z32}from"zod";var WORK_NOTIFICATION_TOPICS,WorkNotificationTopicSchema,NOTIFICATION_CHANNELS,NotificationChannelSchema,NOTIFICATION_ACTOR_KINDS,NotificationActorKindSchema,NotificationActorSchema,NotificationSummarySchema,NotificationRunOutcomeSchema,NotificationRetainedReasonSchema,NotificationPayloadSchema,NotificationEnvelopeSchema,NotificationRecipientStateSchema,NotificationDeliveryStateSchema,NotificationDeliverySchema,NotificationPreferenceSchema,WorkNotificationPreferencesSchema,WorkNotificationPreferencesResponseSchema,NotificationSubjectSchema,NotificationViewSchema,NotificationViewResponseSchema,NotificationListSchema,NotificationListResponseSchema,ListNotificationsQuerySchema,NotificationStateSchema,NotificationStateResponseSchema,UpdateNotificationStateRequestSchema,init_notification_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/notification.dto.js"(){"use strict";init_response();WORK_NOTIFICATION_TOPICS=["agent_question","agent_run_outcome","agent_retained_review","agent_conflict"],WorkNotificationTopicSchema=z32.enum(WORK_NOTIFICATION_TOPICS),NOTIFICATION_CHANNELS=["in_app","email"],NotificationChannelSchema=z32.enum(NOTIFICATION_CHANNELS),NOTIFICATION_ACTOR_KINDS=["user","agent","system"],NotificationActorKindSchema=z32.enum(NOTIFICATION_ACTOR_KINDS),NotificationActorSchema=z32.discriminatedUnion("kind",[z32.object({kind:z32.literal("user"),userId:z32.string().min(1)}).strict(),z32.object({kind:z32.literal("agent"),agentKey:z32.string().min(1).max(120),agentId:z32.uuid().optional()}).strict(),z32.object({kind:z32.literal("system")}).strict()]),NotificationSummarySchema=z32.string().trim().min(1).max(1200),NotificationRunOutcomeSchema=z32.enum(["completed","failed","cancelled"]),NotificationRetainedReasonSchema=z32.enum(["review","agent_requested","recovery"]),NotificationPayloadSchema=z32.discriminatedUnion("topic",[z32.object({topic:z32.literal("agent_question"),questionId:z32.uuid(),title:z32.string().trim().min(1).max(80),description:z32.string().trim().min(1).max(240)}).strict(),z32.object({topic:z32.literal("agent_run_outcome"),threadId:z32.uuid(),invocationId:z32.uuid(),outcome:NotificationRunOutcomeSchema,summary:NotificationSummarySchema}).strict(),z32.object({topic:z32.literal("agent_retained_review"),threadId:z32.uuid(),invocationId:z32.uuid().optional(),proposalId:z32.uuid().optional(),reason:NotificationRetainedReasonSchema,summary:NotificationSummarySchema}).strict(),z32.object({topic:z32.literal("agent_conflict"),mergeId:z32.uuid(),threadId:z32.uuid().optional(),summary:NotificationSummarySchema.optional()}).strict()]),NotificationEnvelopeSchema=z32.object({id:z32.uuid(),projectId:z32.uuid(),sourceKey:z32.string().min(1).max(255),actor:NotificationActorSchema,payloadVersion:z32.literal(1),payload:NotificationPayloadSchema,createdAt:z32.coerce.date()}),NotificationRecipientStateSchema=z32.object({id:z32.uuid(),notificationId:z32.uuid(),projectId:z32.uuid(),userId:z32.string().min(1),readAt:z32.coerce.date().nullable(),archivedAt:z32.coerce.date().nullable(),createdAt:z32.coerce.date(),updatedAt:z32.coerce.date()}),NotificationDeliveryStateSchema=z32.enum(["pending","sent","suppressed","failed"]),NotificationDeliverySchema=z32.object({id:z32.uuid(),notificationRecipientId:z32.uuid(),projectId:z32.uuid(),channel:NotificationChannelSchema,state:NotificationDeliveryStateSchema,attemptCount:z32.number().int().nonnegative(),nextAttemptAt:z32.coerce.date().nullable(),lastAttemptAt:z32.coerce.date().nullable(),sentAt:z32.coerce.date().nullable(),failureCode:z32.string().max(80).nullable(),createdAt:z32.coerce.date(),updatedAt:z32.coerce.date()}),NotificationPreferenceSchema=z32.object({topic:WorkNotificationTopicSchema,channel:z32.literal("email"),enabled:z32.boolean(),source:z32.enum(["default","explicit"])}),WorkNotificationPreferencesSchema=z32.object({topics:z32.array(NotificationPreferenceSchema)}),WorkNotificationPreferencesResponseSchema=createResponseSchema(WorkNotificationPreferencesSchema),NotificationSubjectSchema=z32.discriminatedUnion("kind",[z32.object({kind:z32.literal("question"),questionId:z32.uuid()}).strict(),z32.object({kind:z32.literal("run_outcome"),threadId:z32.uuid(),invocationId:z32.uuid(),outcome:NotificationRunOutcomeSchema}).strict(),z32.object({kind:z32.literal("retained_review"),threadId:z32.uuid(),invocationId:z32.uuid().nullable(),proposalId:z32.uuid().nullable(),reason:NotificationRetainedReasonSchema}).strict(),z32.object({kind:z32.literal("merge_conflict"),mergeId:z32.uuid(),threadId:z32.uuid().nullable()}).strict()]),NotificationViewSchema=z32.object({notification:NotificationEnvelopeSchema,recipient:NotificationRecipientStateSchema,subject:NotificationSubjectSchema}),NotificationViewResponseSchema=createResponseSchema(NotificationViewSchema),NotificationListSchema=z32.object({items:z32.array(NotificationViewSchema),nextCursor:z32.string().nullable(),unreadCount:z32.number().int().nonnegative()}),NotificationListResponseSchema=createResponseSchema(NotificationListSchema),ListNotificationsQuerySchema=z32.object({topic:WorkNotificationTopicSchema.optional(),actorKind:NotificationActorKindSchema.optional(),actorId:z32.string().min(1).max(120).optional(),sourceKey:z32.string().min(1).max(255).optional(),unread:z32.stringbool().optional(),archived:z32.stringbool().optional(),limit:z32.coerce.number().int().min(1).max(100).optional(),cursor:z32.string().min(1).optional()}).refine(query=>query.actorId===void 0||query.actorKind!==void 0&&query.actorKind!=="system","actorId requires actorKind to be user or agent."),NotificationStateSchema=z32.object({recipient:NotificationRecipientStateSchema,unreadCount:z32.number().int().nonnegative()}),NotificationStateResponseSchema=createResponseSchema(NotificationStateSchema),UpdateNotificationStateRequestSchema=z32.object({read:z32.boolean().optional(),archived:z32.boolean().optional()}).refine(body=>body.read!==void 0||body.archived!==void 0,"Provide at least one of read or archived.")}});import{z as z33}from"zod";var AuditLogRowDTOSchema,AuditLogRowDTO,AuditLogListResponseSchema,AuditLogQuerySchema,init_audit_log_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/audit-log.dto.js"(){"use strict";init_audit_log();init_create_dto();init_response();AuditLogRowDTOSchema=z33.object({id:z33.uuid(),occurredAt:z33.coerce.date(),projectId:z33.uuid().nullable(),env:z33.string().nullable(),actor:z33.string().nullable(),actorKind:AuditActorKindSchema.nullable().optional(),action:AuditActionSchema,resource:z33.string().nullable().optional(),outcome:AuditOutcomeSchema,metadata:z33.unknown().optional(),ipAddress:z33.string().nullable().optional(),userAgent:z33.string().nullable().optional(),error:z33.string().nullable().optional()}),AuditLogRowDTO=createDTO(AuditLogRowDTOSchema),AuditLogListResponseSchema=createResponseSchema(z33.object({rows:z33.array(AuditLogRowDTOSchema),nextCursor:z33.string().nullable()})),AuditLogQuerySchema=z33.object({env:z33.string().optional(),action:AuditActionSchema.optional(),actor:z33.string().optional(),from:z33.coerce.date().optional(),to:z33.coerce.date().optional(),limit:z33.coerce.number().int().min(1).max(200).optional(),cursor:z33.string().optional()})}});import{z as z34}from"zod";var DiffRefSchema,InlineSchema,SummaryBlockSchema,EnvDiffSummarySchema,EnvDiffSummaryResultSchema,EnvDiffSummaryResultDTO,EnvDiffSummaryResponseSchema,init_env_diff_summary_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/env-diff-summary.dto.js"(){"use strict";init_create_dto();init_response();init_env_status_dto();DiffRefSchema=z34.object({surface:SurfaceNameSchema,key:z34.string(),label:z34.string()}),InlineSchema=z34.object({text:z34.string(),ref:DiffRefSchema.optional()}),SummaryBlockSchema=z34.discriminatedUnion("type",[z34.object({type:z34.literal("paragraph"),content:z34.array(InlineSchema).max(24)}),z34.object({type:z34.literal("preview"),ref:DiffRefSchema,caption:z34.string().optional()}),z34.object({type:z34.literal("code"),code:z34.string(),lang:z34.string().optional(),caption:z34.string().optional()}),z34.object({type:z34.literal("risk"),level:z34.enum(["warning","error"]),content:z34.array(InlineSchema).max(24)}),z34.object({type:z34.literal("list"),items:z34.array(z34.array(InlineSchema).max(24)).max(8)})]),EnvDiffSummarySchema=z34.object({headline:z34.string(),blocks:z34.array(SummaryBlockSchema).max(15)}),EnvDiffSummaryResultSchema=z34.object({summary:EnvDiffSummarySchema,fingerprint:z34.string(),generatedAt:z34.coerce.date(),cached:z34.boolean().optional(),credits:z34.number().int().nonnegative().optional()}),EnvDiffSummaryResultDTO=createDTO(EnvDiffSummaryResultSchema),EnvDiffSummaryResponseSchema=createResponseSchema(EnvDiffSummaryResultSchema)}});import{z as z35}from"zod";var PROJECT_ANALYTICS_PRESETS,PROJECT_ANALYTICS_GROUP_BY_OPTIONS,ProjectDailyVisitorsDTOSchema,ProjectAnalyticsBreakdownItemDTOSchema,ProjectAnalyticsPageBreakdownItemDTOSchema,ProjectAnalyticsRangeDTOSchema,ProjectAnalyticsAnnotationDTOSchema,ProjectPageviewAnalyticsDTOSchema,ProjectPageviewAnalyticsDTO,ProjectAnalyticsAnnotationDTO,init_project_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-analytics.dto.js"(){"use strict";init_create_dto();PROJECT_ANALYTICS_PRESETS=["today","yesterday","this_week","this_month","last_7_days","last_30_days","last_90_days","last_week","last_month","last_quarter","last_year","custom"],PROJECT_ANALYTICS_GROUP_BY_OPTIONS=["day","week","month","quarter"],ProjectDailyVisitorsDTOSchema=z35.object({date:z35.string(),visitors:z35.number().int().nonnegative()}),ProjectAnalyticsBreakdownItemDTOSchema=z35.object({key:z35.string(),visitors:z35.number().int().nonnegative(),pageviews:z35.number().int().nonnegative()}),ProjectAnalyticsPageBreakdownItemDTOSchema=z35.object({path:z35.string(),pageName:z35.string().nullable().optional(),visitors:z35.number().int().nonnegative(),pageviews:z35.number().int().nonnegative()}),ProjectAnalyticsRangeDTOSchema=z35.object({preset:z35.enum(PROJECT_ANALYTICS_PRESETS),requestedFrom:z35.string(),requestedTo:z35.string(),effectiveFrom:z35.string(),effectiveTo:z35.string(),isRetentionLimited:z35.boolean(),groupBy:z35.enum(PROJECT_ANALYTICS_GROUP_BY_OPTIONS)}),ProjectAnalyticsAnnotationDTOSchema=z35.object({date:z35.string(),content:z35.string(),updatedAt:z35.string(),updatedByUserId:z35.string()}),ProjectPageviewAnalyticsDTOSchema=z35.object({range:ProjectAnalyticsRangeDTOSchema,visitors:z35.number().int().nonnegative(),pageviews:z35.number().int().nonnegative(),bounceRate:z35.number().min(0).max(100),viewsPerVisit:z35.number().nonnegative(),averageVisitDurationSeconds:z35.number().nonnegative(),visitorsSeries:z35.array(ProjectDailyVisitorsDTOSchema),topPages:z35.array(ProjectAnalyticsPageBreakdownItemDTOSchema),topBrowsers:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),topDevices:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),topCountries:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),topSources:z35.array(ProjectAnalyticsBreakdownItemDTOSchema),annotations:z35.array(ProjectAnalyticsAnnotationDTOSchema)}),ProjectPageviewAnalyticsDTO=createDTO(ProjectPageviewAnalyticsDTOSchema),ProjectAnalyticsAnnotationDTO=createDTO(ProjectAnalyticsAnnotationDTOSchema)}});import{z as z36}from"zod";var ProjectInviteDTOSchema,ProjectInviteDTO,CreatedProjectInviteDTOSchema,CreatedProjectInviteDTO,AcceptedProjectInviteDTOSchema,AcceptedProjectInviteDTO,init_project_invite_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-invite.dto.js"(){"use strict";init_common();init_create_dto();ProjectInviteDTOSchema=z36.object({id:z36.string(),email:z36.email(),roleKey:ProjectRoleKeySchema,status:ProjectInviteStatusSchema,expiresAt:z36.coerce.date(),createdAt:z36.coerce.date(),inviterUserId:z36.string()}),ProjectInviteDTO=createDTO(ProjectInviteDTOSchema),CreatedProjectInviteDTOSchema=z36.object({id:z36.string(),token:z36.string()}),CreatedProjectInviteDTO=createDTO(CreatedProjectInviteDTOSchema),AcceptedProjectInviteDTOSchema=z36.object({success:z36.boolean(),projectId:z36.string().optional()}),AcceptedProjectInviteDTO=createDTO(AcceptedProjectInviteDTOSchema)}});import{z as z37}from"zod";var PublicUserDTOSchema,PublicUserDTO,ReferralCountCTOSchema,ReferralCountCTO,ReferralSummaryCTOSchema,ReferralSummaryCTO,AuthenticatedUserDTOSchema,AuthenticatedUserDTO,AuthenticatedUserResponseSchema,ReferralCountResponseSchema,ReferralSummaryResponseSchema,init_user_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/user.dto.js"(){"use strict";init_create_dto();init_response();PublicUserDTOSchema=z37.object({id:z37.string(),name:z37.string(),image:z37.string().nullable()}),PublicUserDTO=createDTO(PublicUserDTOSchema),ReferralCountCTOSchema=z37.object({count:z37.int()}),ReferralCountCTO=createDTO(ReferralCountCTOSchema),ReferralSummaryCTOSchema=z37.object({counts:z37.object({signed_up:z37.int(),activated:z37.int()}),credits:z37.object({total:z37.int()})}),ReferralSummaryCTO=createDTO(ReferralSummaryCTOSchema),AuthenticatedUserDTOSchema=PublicUserDTOSchema.extend({email:z37.email(),emailVerified:z37.boolean(),createdAt:z37.coerce.date(),updatedAt:z37.coerce.date()}),AuthenticatedUserDTO=createDTO(AuthenticatedUserDTOSchema),AuthenticatedUserResponseSchema=createResponseSchema(AuthenticatedUserDTOSchema),ReferralCountResponseSchema=createResponseSchema(ReferralCountCTOSchema),ReferralSummaryResponseSchema=createResponseSchema(ReferralSummaryCTOSchema)}});import{z as z38}from"zod";var ProjectAccessItemDTOSchema,ProjectAccessItemDTO,PROJECT_PERMISSION_KEYS,ProjectPermissionKeySchema,ProjectPermissionsDTOSchema,ProjectPermissionsDTO,ProjectAccessDTOSchema,ProjectAccessDTO,AccessMutationResponseSchema,InviteAcceptResponseSchema,init_project_access_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-access.dto.js"(){"use strict";init_common();init_create_dto();init_response();init_project_invite_dto();init_user_dto();ProjectAccessItemDTOSchema=z38.object({id:z38.string(),principalType:ProjectPrincipalTypeSchema,principalId:z38.string().nullable(),roleKey:ProjectRoleKeySchema,createdAt:z38.coerce.date(),expiresAt:z38.coerce.date().nullable(),user:PublicUserDTOSchema.nullable()}),ProjectAccessItemDTO=createDTO(ProjectAccessItemDTOSchema),PROJECT_PERMISSION_KEYS=["project:read","project:manage","project:publish","project:unpublish","project:duplicate","project:export","project:import","project:transfer","project:delete","acl:read","acl:grant","member:read","member:change-role","invite:read","invite:send","invite:revoke","asset:read","asset:upload","asset:manage","asset:delete","code:view","code:edit","content:view","content:edit","chat:read","chat:prompt","history:view","history:manage","comment:read","comment:create","comment:delete","integration:run","sync:github","webhook:read","webhook:manage","schedule:read","schedule:manage","preview:view","realtime:connect","analytics:view","logs:view","domain:manage","agent:run"],ProjectPermissionKeySchema=z38.enum(PROJECT_PERMISSION_KEYS),ProjectPermissionsDTOSchema=z38.object({role:ProjectRoleKeyWithSystemSchema.nullable(),permissions:z38.record(z38.string(),z38.boolean())}),ProjectPermissionsDTO=createDTO(ProjectPermissionsDTOSchema),ProjectAccessDTOSchema=z38.object({access:z38.array(ProjectAccessItemDTOSchema),invites:z38.array(ProjectInviteDTOSchema),organization:z38.object({name:z38.string().nullable(),logo:z38.string().nullable()}).nullable()}),ProjectAccessDTO=createDTO(ProjectAccessDTOSchema),AccessMutationResponseSchema=createResponseSchema(z38.object({success:z38.boolean()})),InviteAcceptResponseSchema=createResponseSchema(z38.object({success:z38.boolean(),projectId:z38.uuid()}))}});import{z as z39}from"zod";var PublicationStateDTOSchema,PublicationStateDTO,init_publication_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/publication.dto.js"(){"use strict";init_common();init_create_dto();PublicationStateDTOSchema=z39.object({publicationStatus:PublicationStatusSchema,appUrl:z39.string().nullable(),lastPublishedAt:z39.string().nullable()}),PublicationStateDTO=createDTO(PublicationStateDTOSchema)}});import{z as z40}from"zod";var SandboxSessionDTOSchema,SandboxSessionDTO,SandboxSessionResponseSchema,PreviewInstallRepairSchema,SandboxSessionInstallPolicyErrorSchema,PreviewInstallPolicyApprovalRequestSchema,PreviewInstallPolicyApprovalEventSchema,init_sandbox_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/sandbox.dto.js"(){"use strict";init_create_dto();init_response();SandboxSessionDTOSchema=z40.object({url:z40.url(),expiresAt:z40.iso.datetime()}),SandboxSessionDTO=createDTO(SandboxSessionDTOSchema),SandboxSessionResponseSchema=createResponseSchema(SandboxSessionDTOSchema),PreviewInstallRepairSchema=z40.object({kind:z40.literal("dependency_build_scripts_blocked"),packageManager:z40.enum(["pnpm","yarn","bun"]),packages:z40.array(z40.string()),configFile:z40.string(),approvalKey:z40.string(),command:z40.string().optional(),approval:z40.object({id:z40.uuid()}).optional()}),SandboxSessionInstallPolicyErrorSchema=z40.object({code:z40.literal("PREVIEW_INSTALL_POLICY_BLOCKED"),message:z40.string(),repair:PreviewInstallRepairSchema}),PreviewInstallPolicyApprovalRequestSchema=z40.object({approvalId:z40.uuid()}),PreviewInstallPolicyApprovalEventSchema=z40.discriminatedUnion("type",[z40.object({type:z40.literal("progress"),step:z40.enum(["approval","install","restart","readiness"]),message:z40.string()}),z40.object({type:z40.literal("approved")}),z40.object({type:z40.literal("complete")}),z40.object({type:z40.literal("error"),code:z40.enum(["stale_approval","approval_failed","install_failed","restart_failed"]),message:z40.string()})])}});import{z as z41}from"zod";var OrganizationDTOSchema,OrganizationDTO,MemberUserDTOSchema,OrganizationMemberDTOSchema,OrganizationMemberDTO,init_organization_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/organization.dto.js"(){"use strict";init_common();init_create_dto();OrganizationDTOSchema=BaseEntitySchema.extend({name:z41.string(),slug:z41.string().nullable(),logo:z41.string().nullable(),metadata:z41.record(z41.string(),z41.unknown()).nullable()}),OrganizationDTO=createDTO(OrganizationDTOSchema),MemberUserDTOSchema=z41.object({id:z41.string(),name:z41.string(),email:z41.email(),image:z41.string().nullable()}),OrganizationMemberDTOSchema=z41.object({id:z41.string(),userId:z41.string(),organizationId:z41.string(),role:OrganizationRoleSchema,user:MemberUserDTOSchema,createdAt:z41.coerce.date()}),OrganizationMemberDTO=createDTO(OrganizationMemberDTOSchema)}});import{z as z42}from"zod";var CancellationReasonCodeSchema,CancellationFeedbackDTOSchema,CancellationFeedbackDTO,PlanMigrationAcceptDTOSchema,PlanMigrationPreviewDTOSchema,PlanMigrationPreviewDTO,PlanMigrationStateSchema,PlanMigrationOfferDTOSchema,PlanMigrationOfferDTO,AiCreditsEntitlementSchema,EntitlementsDTOSchema,SubscriptionDTOSchema,SubscriptionDTO,DailyCreditsStatusSchema,CreditBalanceDTOSchema,CreditBalanceDTO,MinimalCreditBalanceDTOSchema,MinimalCreditBalanceDTO,ProjectCreditBucketsDTOSchema,ProjectDailyCreditAllowanceDTOSchema,ProjectCreditBalanceDTOSchema,ProjectCreditBalanceDTO,AgentRuntimeUsageStateSchema,AgentRuntimeUsageDTOSchema,AgentRuntimeUsageDTO,AutoRefillConfigDTOSchema,AutoRefillConfigDTO,UpdateAutoRefillDTOSchema,SuccessfulPurchaseDTOSchema,SuccessfulPurchaseDTO,PortalDTOSchema,PortalDTO,CreditBalanceResponseSchema,MinimalCreditBalanceResponseSchema,ProjectCreditBalanceResponseSchema,AutoRefillConfigResponseSchema,SuccessfulPurchaseResponseSchema,SubscriptionResponseSchema,EntitlementsResponseSchema,PortalResponseSchema,init_billing_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/billing.dto.js"(){"use strict";init_common();init_create_dto();init_response();CancellationReasonCodeSchema=z42.enum(["just_testing","too_expensive","not_using_enough","missing_features","bug_or_technical_issue","switching_to_another_tool","closing_or_pausing_business","other"]),CancellationFeedbackDTOSchema=z42.object({reason:CancellationReasonCodeSchema,details:z42.string().trim().max(1e3).nullable().optional().transform(value=>value||null)}).superRefine((value,ctx)=>{value.reason==="other"&&!value.details&&ctx.addIssue({code:z42.ZodIssueCode.custom,message:"Details are required when selecting other.",path:["details"]})}),CancellationFeedbackDTO=createDTO(CancellationFeedbackDTOSchema),PlanMigrationAcceptDTOSchema=z42.object({offerVersion:z42.string().trim().min(1),unusedPremiumCreditAmount:z42.number().int().nonnegative(),amountDueNow:z42.number().int().nonnegative(),renewsOn:z42.string()}),PlanMigrationPreviewDTOSchema=z42.object({currency:z42.string().trim().min(1),unusedPremiumCreditAmount:z42.number().int().nonnegative(),amountDueNow:z42.number().int().nonnegative(),startsAt:z42.string(),renewsAt:z42.string(),nextRenewalAmount:z42.number().int().nonnegative()}),PlanMigrationPreviewDTO=createDTO(PlanMigrationPreviewDTOSchema),PlanMigrationStateSchema=z42.enum(["legacy_active","notified","accepting","accepted","declining","free","expired","canceled"]),PlanMigrationOfferDTOSchema=z42.object({id:z42.string(),organizationId:z42.string(),legacySubscriptionId:z42.string(),offeredPlanCode:z42.string(),offeredPlanName:z42.string(),offeredPriceAmount:z42.number(),offeredCurrency:z42.string(),offerVersion:z42.string(),state:PlanMigrationStateSchema,checkoutToken:z42.string().nullable(),deadlineAt:z42.string(),transitions:z42.array(z42.object({event:z42.string(),fromState:PlanMigrationStateSchema,toState:PlanMigrationStateSchema,createdAt:z42.string()}))}),PlanMigrationOfferDTO=createDTO(PlanMigrationOfferDTOSchema),AiCreditsEntitlementSchema=z42.object({included:z42.number().optional(),unitPrice:z42.number().optional(),dailyCap:z42.number().nullable().optional()}),EntitlementsDTOSchema=z42.object({ai_credits:AiCreditsEntitlementSchema.optional(),analytics:z42.object({retentionDays:z42.number().int().positive(),canUseExtendedDateRanges:z42.boolean()}).optional(),history:z42.object({retentionDays:z42.number().int().positive()}).optional(),members:z42.object({canInvite:z42.boolean(),maxMembers:z42.number().int().positive().nullable()}).optional(),domains:z42.object({canUseCustomDomains:z42.boolean(),maxDomains:z42.number().int().nonnegative().nullable()}).optional()}),SubscriptionDTOSchema=z42.object({id:z42.string(),external_id:z42.string(),customerId:z42.string(),planId:z42.string(),planCode:z42.union([TemplateCodeSchema,z42.literal("Unknown")]),currentPeriod:z42.object({start:z42.string(),end:z42.string().nullable()}),cancelAt:z42.string().nullable(),entitlements:EntitlementsDTOSchema,currency:z42.string(),nextPaymentAt:z42.string().nullable(),baseAmount:z42.number()}),SubscriptionDTO=createDTO(SubscriptionDTOSchema),DailyCreditsStatusSchema=z42.object({totalCap:z42.number(),dailyCap:z42.number(),usedTotal:z42.number()}),CreditBalanceDTOSchema=z42.object({total:z42.number(),base:z42.number(),dailyBase:z42.number(),purchases:z42.number(),awards:z42.number(),daily:DailyCreditsStatusSchema.optional()}),CreditBalanceDTO=createDTO(CreditBalanceDTOSchema),MinimalCreditBalanceDTOSchema=z42.object({total:z42.number(),nearLimit:z42.boolean(),canChat:z42.boolean(),daily:DailyCreditsStatusSchema.optional()}),MinimalCreditBalanceDTO=createDTO(MinimalCreditBalanceDTOSchema),ProjectCreditBucketsDTOSchema=z42.object({dailyFreeAvailable:z42.number(),monthlyAvailable:z42.number(),purchasedAvailable:z42.number(),awardedAvailable:z42.number()}),ProjectDailyCreditAllowanceDTOSchema=z42.object({periodCap:z42.number(),dailyGrant:z42.number(),usedThisPeriod:z42.number(),remainingThisPeriod:z42.number()}),ProjectCreditBalanceDTOSchema=z42.object({projectId:z42.uuid(),organizationId:z42.string(),balance:z42.object({totalAvailable:z42.number(),nearLimit:z42.boolean(),canUseAi:z42.boolean(),buckets:ProjectCreditBucketsDTOSchema}),allowances:z42.object({dailyCredits:ProjectDailyCreditAllowanceDTOSchema.nullable()})}),ProjectCreditBalanceDTO=createDTO(ProjectCreditBalanceDTOSchema),AgentRuntimeUsageStateSchema=z42.enum(["ok","near_limit","exhausted","unavailable"]),AgentRuntimeUsageDTOSchema=z42.object({planCode:z42.enum(["Free","Premium","Pro"]),state:AgentRuntimeUsageStateSchema,usage:z42.object({source:z42.enum(["cached_subscription","free_fallback"]),settledMs:z42.number().int().nonnegative(),reservedMs:z42.number().int().nonnegative(),includedMs:z42.number().int().positive(),remainingMs:z42.number().int().nonnegative(),resetsAt:z42.coerce.date()}).nullable()}),AgentRuntimeUsageDTO=createDTO(AgentRuntimeUsageDTOSchema),AutoRefillConfigDTOSchema=z42.discriminatedUnion("enabled",[z42.object({enabled:z42.literal(!0),thresholdUsd:z42.number().nonnegative(),refillAmountUsd:z42.number().nonnegative()}),z42.object({enabled:z42.literal(!1),thresholdUsd:z42.number().nonnegative().nullable(),refillAmountUsd:z42.null()})]),AutoRefillConfigDTO=createDTO(AutoRefillConfigDTOSchema),UpdateAutoRefillDTOSchema=z42.discriminatedUnion("enabled",[z42.object({enabled:z42.literal(!0),thresholdUsd:z42.number().min(.01).multipleOf(.01),refillAmountUsd:z42.number().min(.01).multipleOf(.01)}).strict(),z42.object({enabled:z42.literal(!1),thresholdUsd:z42.number().min(.01).multipleOf(.01)}).strict()]),SuccessfulPurchaseDTOSchema=z42.object({invoiceId:z42.string(),newBalance:z42.int(),creditCount:z42.int(),amountUsd:z42.number()}),SuccessfulPurchaseDTO=createDTO(SuccessfulPurchaseDTOSchema),PortalDTOSchema=z42.object({url:z42.string()}),PortalDTO=createDTO(PortalDTOSchema),CreditBalanceResponseSchema=createResponseSchema(CreditBalanceDTOSchema),MinimalCreditBalanceResponseSchema=createResponseSchema(MinimalCreditBalanceDTOSchema),ProjectCreditBalanceResponseSchema=createResponseSchema(ProjectCreditBalanceDTOSchema),AutoRefillConfigResponseSchema=createResponseSchema(AutoRefillConfigDTOSchema),SuccessfulPurchaseResponseSchema=createResponseSchema(SuccessfulPurchaseDTOSchema),SubscriptionResponseSchema=createResponseSchema(SubscriptionDTOSchema),EntitlementsResponseSchema=createResponseSchema(EntitlementsDTOSchema),PortalResponseSchema=createResponseSchema(PortalDTOSchema)}});import{z as z43}from"zod";var PaymentMethodDTOSchema,PaymentMethodDTO,init_payment_method_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/payment-method.dto.js"(){"use strict";init_create_dto();PaymentMethodDTOSchema=z43.object({brand:z43.string(),last4:z43.string(),exp:z43.string(),isDefault:z43.boolean()}),PaymentMethodDTO=createDTO(PaymentMethodDTOSchema)}});import{z as z44}from"zod";var FieldDefinitionSchema,SchemaFieldPathSchema,SchemaMigrationOperationSchema,ContentTypeI18nSchema,ContentFieldGroupSchema,ContentTypeDTOSchema,ContentTypeDTO,SchemaDTOSchema,SchemaDTO,EntryDTOSchema,EntryDTO,PaginatedEntriesDTOSchema,PaginatedEntriesDTO,EntryCountDTOSchema,EntryCountDTO,EntryCountsDTOSchema,EntryCountsDTO,EntryTranslationGapDTOSchema,EntryTranslationGapDTO,EntryTranslationGapResponseSchema,ContentTypeResponseSchema,ContentTypeListResponseSchema,SchemaResponseSchema,EntryResponseSchema,EntryListResponseSchema,MAX_BULK_ENTRIES,entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema,EntryWhereSchema,EntryMutationBodySchema,entryIdsSchema,EntrySqlQueryRequestSchema,BulkCreateEntriesRequestSchema,BulkUpdateEntriesRequestSchema,BulkDeleteEntriesRequestSchema,EntrySqlQueryResponseSchema,EntrySqlQueryResponseDTO,BulkCreateEntriesResponseSchema,BulkCreateEntriesResponseDTO,BulkUpdateEntriesResponseSchema,BulkUpdateEntriesResponseDTO,BulkDeleteEntriesResponseSchema,BulkDeleteEntriesResponseDTO,init_content_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/content.dto.js"(){"use strict";init_common();init_content_fields();init_create_dto();init_response();FieldDefinitionSchema=ContentFieldDefinitionSchema,SchemaFieldPathSchema=z44.string().superRefine((path52,ctx)=>{let segments=path52.split(".");(segments.length===0||segments.some(segment=>!CONTENT_FIELD_NAME_PATTERN.test(segment)))&&ctx.addIssue({code:"custom",message:"Field paths must use dot-separated field or block variant names."})}),SchemaMigrationOperationSchema=z44.object({type:z44.literal("renameField"),contentType:z44.string().regex(CONTENT_TYPE_NAME_PATTERN),from:SchemaFieldPathSchema,to:SchemaFieldPathSchema}).strict(),ContentTypeI18nSchema=z44.object({enabled:z44.boolean()}).strict(),ContentFieldGroupSchema=z44.object({id:z44.string().regex(CONTENT_FIELD_NAME_PATTERN),label:z44.string().min(1).max(255),default:z44.boolean().optional()}).strict(),ContentTypeDTOSchema=z44.object({id:z44.string(),name:z44.string(),label:z44.string(),isSingleton:z44.boolean(),i18n:ContentTypeI18nSchema,groups:z44.array(ContentFieldGroupSchema).default([]),fields:z44.record(z44.string(),FieldDefinitionSchema),createdAt:z44.string(),updatedAt:z44.string()}),ContentTypeDTO=createDTO(ContentTypeDTOSchema),SchemaDTOSchema=z44.object({contentTypes:z44.array(ContentTypeDTOSchema)}),SchemaDTO=createDTO(SchemaDTOSchema),EntryDTOSchema=z44.object({id:z44.string(),entryId:z44.string(),documentId:z44.string(),slug:z44.string(),locale:z44.string().optional(),createdAt:z44.string(),updatedAt:z44.string(),__fimo:z44.object({contentType:z44.string()})}).passthrough(),EntryDTO=createDTO(EntryDTOSchema),PaginatedEntriesDTOSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({limit:z44.number(),offset:z44.number(),total:z44.number(),hasMore:z44.boolean()})}),PaginatedEntriesDTO=createDTO(PaginatedEntriesDTOSchema),EntryCountDTOSchema=z44.object({contentType:z44.string(),count:z44.number()}),EntryCountDTO=createDTO(EntryCountDTOSchema),EntryCountsDTOSchema=z44.object({counts:z44.array(EntryCountDTOSchema)}),EntryCountsDTO=createDTO(EntryCountsDTOSchema),EntryTranslationGapDTOSchema=z44.object({count:z44.number().int().nonnegative(),sourceLocale:z44.string(),targetLocale:z44.string()}),EntryTranslationGapDTO=createDTO(EntryTranslationGapDTOSchema),EntryTranslationGapResponseSchema=createResponseSchema(EntryTranslationGapDTOSchema),ContentTypeResponseSchema=createResponseSchema(ContentTypeDTOSchema),ContentTypeListResponseSchema=createResponseSchema(z44.array(ContentTypeDTOSchema)),SchemaResponseSchema=createResponseSchema(SchemaDTOSchema),EntryResponseSchema=createResponseSchema(EntryDTOSchema),EntryListResponseSchema=createResponseSchema(z44.array(EntryDTOSchema)),MAX_BULK_ENTRIES=1e3,entryWhereScalarSchema=z44.union([z44.string(),z44.number(),z44.boolean(),z44.null()]),entryWhereOperatorSchema=z44.object({$eq:entryWhereScalarSchema.optional(),$ne:entryWhereScalarSchema.optional(),$gt:entryWhereScalarSchema.optional(),$gte:entryWhereScalarSchema.optional(),$lt:entryWhereScalarSchema.optional(),$lte:entryWhereScalarSchema.optional(),$in:z44.array(entryWhereScalarSchema).optional(),$nin:z44.array(entryWhereScalarSchema).optional(),$contains:z44.string().optional(),$startsWith:z44.string().optional(),$null:z44.boolean().optional()}).strict().refine(value=>Object.keys(value).length>0,{message:"Operator object cannot be empty"}),nestedEntryWhereSchema=z44.record(z44.string(),z44.union([entryWhereScalarSchema,entryWhereOperatorSchema])),EntryWhereSchema=z44.record(z44.string(),z44.union([entryWhereScalarSchema,entryWhereOperatorSchema,nestedEntryWhereSchema])),EntryMutationBodySchema=z44.object({data:z44.record(z44.string(),z44.unknown()),locale:z44.string().min(1).optional(),documentId:z44.uuid().optional()}),entryIdsSchema=z44.array(z44.uuid()).min(1).max(MAX_BULK_ENTRIES),EntrySqlQueryRequestSchema=z44.object({sql:z44.string().min(1)}),BulkCreateEntriesRequestSchema=z44.object({entries:z44.array(EntryMutationBodySchema).min(1).max(MAX_BULK_ENTRIES)}),BulkUpdateEntriesRequestSchema=z44.union([z44.object({ids:entryIdsSchema,body:EntryMutationBodySchema}),z44.object({where:EntryWhereSchema,body:EntryMutationBodySchema}),z44.object({updates:z44.array(z44.object({id:z44.uuid(),body:EntryMutationBodySchema})).min(1).max(MAX_BULK_ENTRIES)})]),BulkDeleteEntriesRequestSchema=z44.union([z44.object({ids:entryIdsSchema,locale:z44.string().min(1).optional()}),z44.object({where:EntryWhereSchema,locale:z44.string().min(1).optional()})]),EntrySqlQueryResponseSchema=z44.object({data:z44.array(z44.record(z44.string(),z44.unknown())),meta:z44.object({rowCount:z44.number().int().nonnegative(),truncated:z44.boolean()})}),EntrySqlQueryResponseDTO=createDTO(EntrySqlQueryResponseSchema),BulkCreateEntriesResponseSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({created:z44.number().int().nonnegative()})}),BulkCreateEntriesResponseDTO=createDTO(BulkCreateEntriesResponseSchema),BulkUpdateEntriesResponseSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({updated:z44.number().int().nonnegative(),missing:z44.array(z44.string())})}),BulkUpdateEntriesResponseDTO=createDTO(BulkUpdateEntriesResponseSchema),BulkDeleteEntriesResponseSchema=z44.object({data:z44.array(EntryDTOSchema),meta:z44.object({deleted:z44.number().int().nonnegative(),missing:z44.array(z44.string())})}),BulkDeleteEntriesResponseDTO=createDTO(BulkDeleteEntriesResponseSchema)}});import{z as z45}from"zod";var UniqueConflictSchema,UniqueConflictErrorSchema,init_unique_conflict_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/unique-conflict.dto.js"(){"use strict";UniqueConflictSchema=z45.object({index:z45.number().int().nonnegative(),contentType:z45.string(),field:z45.string(),value:z45.string(),against:z45.enum(["stored","batch"]),ownerDocumentId:z45.uuid().optional(),ownerIndex:z45.number().int().nonnegative().optional()}),UniqueConflictErrorSchema=z45.object({code:z45.literal("unique_conflict"),message:z45.string(),conflicts:z45.array(UniqueConflictSchema),truncated:z45.boolean().optional()})}});import{z as z46}from"zod";var UniqueConflictIssueSchema,SchemaTransitionIssueSchema,SchemaTransitionRejectedErrorSchema,init_schema_transition_rejected_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/schema-transition-rejected.dto.js"(){"use strict";UniqueConflictIssueSchema=z46.object({kind:z46.literal("unique_conflict"),contentType:z46.string(),field:z46.string(),value:z46.string(),documentCount:z46.number().int().positive(),documentIds:z46.array(z46.uuid()),documentIdsTruncated:z46.boolean().optional()}),SchemaTransitionIssueSchema=UniqueConflictIssueSchema,SchemaTransitionRejectedErrorSchema=z46.object({code:z46.literal("schema_transition_rejected"),message:z46.string(),issues:z46.array(SchemaTransitionIssueSchema),truncated:z46.boolean().optional()})}});import{z as z47}from"zod";var CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH,CmsContentTypeNameSchema,CmsFieldNameSchema,CmsCollectionOrderSchema,CmsFieldOrderSchema,CmsListSortSchema,CmsDisplayDefaultsDTOSchema,CmsDisplayDefaultsDTO,CmsCollectionOrderRequestSchema,CmsFieldOrderRequestSchema,CmsDisplayDefaultsResponseSchema,init_cms_display_defaults_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/cms-display-defaults.dto.js"(){"use strict";init_common();init_create_dto();init_response();CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS=200,CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH=255,CmsContentTypeNameSchema=z47.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_TYPE_NAME_PATTERN),CmsFieldNameSchema=z47.string().max(CMS_DISPLAY_DEFAULTS_MAX_IDENTIFIER_LENGTH).regex(CONTENT_FIELD_NAME_PATTERN),CmsCollectionOrderSchema=z47.array(CmsContentTypeNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsFieldOrderSchema=z47.array(CmsFieldNameSchema).max(CMS_DISPLAY_DEFAULTS_MAX_ORDER_ITEMS),CmsListSortSchema=z47.object({field:CmsFieldNameSchema,direction:z47.enum(["asc","desc"])}),CmsDisplayDefaultsDTOSchema=z47.object({collectionOrder:CmsCollectionOrderSchema.nullable(),fieldOrders:z47.record(CmsContentTypeNameSchema,CmsFieldOrderSchema),listSorts:z47.record(CmsContentTypeNameSchema,CmsListSortSchema)}),CmsDisplayDefaultsDTO=createDTO(CmsDisplayDefaultsDTOSchema),CmsCollectionOrderRequestSchema=z47.object({order:CmsCollectionOrderSchema}),CmsFieldOrderRequestSchema=z47.object({order:CmsFieldOrderSchema}),CmsDisplayDefaultsResponseSchema=createResponseSchema(CmsDisplayDefaultsDTOSchema)}});import{z as z48}from"zod";var AssetPathItemSchema,AssetDTOSchema,AssetDTO,AssetTreeNodeDTOSchema,AssetTreeNodeDTO,AssetResponseSchema,AssetListResponseSchema,init_asset_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset.dto.js"(){"use strict";init_common();init_create_dto();init_response();AssetPathItemSchema=z48.object({id:z48.string(),name:z48.string()}),AssetDTOSchema=z48.object({id:z48.string(),name:z48.string(),type:AssetTypeSchema,originalFileName:z48.string().nullable(),parentId:z48.string().nullable(),mimeType:z48.string().nullable(),fileSize:z48.number().nullable(),url:z48.string().nullable(),storageKey:z48.string().nullable(),createdAt:z48.string(),updatedAt:z48.string(),altText:z48.string().nullable().optional(),caption:z48.string().nullable().optional(),aiCaption:z48.string().nullable().optional(),aiAltText:z48.string().nullable().optional(),aiTags:z48.array(z48.string()).nullable().optional(),aiPrimaryColor:z48.string().nullable().optional(),aiProcessingStatus:z48.string().nullable().optional(),width:z48.number().nullable().optional(),height:z48.number().nullable().optional(),path:z48.array(AssetPathItemSchema).optional(),hasChildren:z48.boolean().optional()}),AssetDTO=createDTO(AssetDTOSchema),AssetTreeNodeDTOSchema=AssetDTOSchema.extend({children:z48.lazy(()=>z48.array(AssetTreeNodeDTOSchema)).optional()}),AssetTreeNodeDTO=createDTO(AssetTreeNodeDTOSchema),AssetResponseSchema=createResponseSchema(AssetDTOSchema),AssetListResponseSchema=createResponseSchema(z48.array(AssetDTOSchema))}});import{z as z49}from"zod";var TranslationDTOSchema,TranslationDTO,init_translation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/translation.dto.js"(){"use strict";init_create_dto();TranslationDTOSchema=z49.object({key:z49.string(),value:z49.string().optional(),defaultValue:z49.string(),locale:z49.string()}),TranslationDTO=createDTO(TranslationDTOSchema)}});import{z as z50}from"zod";var DocumentNodeDTOSchema,DocumentTreeDTOSchema,DocumentPathDTOSchema,DocumentPathDTO,DocumentTreeResponseSchema,DocumentPathResponseSchema,init_document_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/document.dto.js"(){"use strict";init_create_dto();init_response();DocumentNodeDTOSchema=z50.object({id:z50.string(),name:z50.string(),type:z50.enum(["file","folder"]),path:z50.string(),children:z50.lazy(()=>z50.array(DocumentNodeDTOSchema)).optional()}),DocumentTreeDTOSchema=z50.array(DocumentNodeDTOSchema),DocumentPathDTOSchema=z50.object({path:z50.string(),exists:z50.boolean(),type:z50.enum(["file","folder"]).optional()}),DocumentPathDTO=createDTO(DocumentPathDTOSchema),DocumentTreeResponseSchema=createResponseSchema(DocumentTreeDTOSchema),DocumentPathResponseSchema=createResponseSchema(DocumentPathDTOSchema)}});import{z as z51}from"zod";var ChatMessageListDTOSchema,ChatMessagesPageDTOSchema,ChatLiveTurnDTOSchema,ChatLiveTurnStateDTOSchema,ChatLiveTurnStateDTO,ChatThreadMessageDTOSchema,ChatAttentionDTOSchema,ChatThreadMessagesPageDTOSchema,ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema,ChatNonStreamingOutcomeDTOSchema,ChatDeletionDTOSchema,ChatDeletionDTO,ChatMessageListResponseSchema,ChatMessagesPageResponseSchema,ChatDeletionResponseSchema,ChatClearErrorDTOSchema,init_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/chat.dto.js"(){"use strict";init_create_dto();init_response();init_project_dto();ChatMessageListDTOSchema=z51.array(ProjectMessageDTOSchema),ChatMessagesPageDTOSchema=z51.object({items:z51.array(ProjectMessagePublicDTOSchema),nextCursor:z51.string().nullable()}),ChatLiveTurnDTOSchema=z51.object({invocationId:z51.string(),step:z51.enum(["preparing","working","compacting","merging"]),startedAt:z51.string()}),ChatLiveTurnStateDTOSchema=z51.object({threadId:z51.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable()}),ChatLiveTurnStateDTO=createDTO(ChatLiveTurnStateDTOSchema),ChatThreadMessageDTOSchema=z51.object({id:z51.string(),role:z51.enum(["user","assistant"]),parts:z51.array(z51.unknown()),metadata:z51.record(z51.string(),z51.unknown()).nullable(),versionId:z51.string().nullable().optional(),createdAt:z51.date().transform(value=>value.toISOString()),providerMessageId:z51.string().nullable().optional(),invocationId:z51.string().nullable().optional(),invocationStatus:z51.string().nullable().optional(),invocationTerminalReason:z51.string().nullable().optional()}),ChatAttentionDTOSchema=z51.object({type:z51.literal("merge_conflict"),merge:z51.object({mergeId:z51.string().uuid(),projectId:z51.string(),fromEnv:z51.string(),toEnv:z51.string()}),publishAfterMerge:z51.boolean()}),ChatThreadMessagesPageDTOSchema=z51.object({threadId:z51.string().nullable(),title:z51.string().nullable(),messages:z51.array(ChatThreadMessageDTOSchema),nextCursor:z51.string().nullable(),liveTurn:ChatLiveTurnDTOSchema.nullable().optional(),attention:ChatAttentionDTOSchema.nullable().optional()}),ChatReplayOutcomeDTOSchema=z51.object({kind:z51.literal("replay"),threadId:z51.string(),userMessageId:z51.string()}),ChatQueuedOutcomeDTOSchema=z51.object({kind:z51.literal("queued"),threadId:z51.string(),userMessageId:z51.string(),blockingRootId:z51.string()}),ChatBusyOutcomeDTOSchema=z51.object({kind:z51.literal("busy"),threadId:z51.string(),userMessageId:z51.string(),blockingRootId:z51.string().optional()}),ChatRefusedOutcomeDTOSchema=z51.object({kind:z51.literal("refused"),threadId:z51.string(),userMessageId:z51.string(),refusedInvocationId:z51.string(),terminalReason:z51.string()}),ChatNonStreamingOutcomeDTOSchema=z51.discriminatedUnion("kind",[ChatReplayOutcomeDTOSchema,ChatQueuedOutcomeDTOSchema,ChatBusyOutcomeDTOSchema,ChatRefusedOutcomeDTOSchema]),ChatDeletionDTOSchema=z51.object({success:z51.boolean(),deletedCount:z51.number()}),ChatDeletionDTO=createDTO(ChatDeletionDTOSchema),ChatMessageListResponseSchema=createResponseSchema(ChatMessageListDTOSchema),ChatMessagesPageResponseSchema=createResponseSchema(ChatMessagesPageDTOSchema),ChatDeletionResponseSchema=createResponseSchema(ChatDeletionDTOSchema),ChatClearErrorDTOSchema=z51.object({code:z51.enum(["retained_conflict_busy","retained_conflict_cleanup_failed"]),message:z51.string()})}});import{z as z52}from"zod";var UploadResultDTOSchema,UploadResultDTO,UploadResultResponseSchema,init_upload_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/upload.dto.js"(){"use strict";init_common();init_create_dto();init_response();UploadResultDTOSchema=z52.object({url:z52.string().url(),key:z52.string(),size:z52.number(),contentType:z52.string(),uploadedAt:CommonSchemas.timestamp}),UploadResultDTO=createDTO(UploadResultDTOSchema),UploadResultResponseSchema=createResponseSchema(UploadResultDTOSchema)}});import{z as z53}from"zod";var ServicePermissionsDTOSchema,ServicePermissionsDTO,ServicePermissionsResponseSchema,init_service_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/service.dto.js"(){"use strict";init_create_dto();init_response();ServicePermissionsDTOSchema=z53.object({canAccess:z53.boolean(),permissions:z53.record(z53.string(),z53.boolean()),role:z53.string().nullable()}),ServicePermissionsDTO=createDTO(ServicePermissionsDTOSchema),ServicePermissionsResponseSchema=createResponseSchema(ServicePermissionsDTOSchema)}});import{z as z54}from"zod";var OrganizationProjectsSearchQuerySchema,init_search_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/search.dto.js"(){"use strict";init_pagination();OrganizationProjectsSearchQuerySchema=PaginationQuerySchema.extend({q:z54.string().trim().default(""),sort:z54.enum(["recent","name","relevance"]).default("recent"),category:z54.string().optional()})}});import{z as z55}from"zod";var DomainStatusSchema,DomainSourceSchema,PaymentStatusSchema,DomainDTOSchema,DomainDTO,DomainSearchResultDTOSchema,DomainSearchResultDTO,DomainPricingDTOSchema,DomainPricingDTO,DomainContactSchema,DomainContactDTO,UpdateDomainContactsRequestSchema,SearchDomainsRequestSchema,CheckAvailabilityRequestSchema,DOMAIN_NAME_REGEX,DomainNameSchema,PurchaseDomainRequestSchema,UpdateDomainSettingsRequestSchema,RenewDomainRequestSchema,DomainResponseSchema,DomainListResponseSchema,DomainSearchResultListResponseSchema,DomainPricingResponseSchema,DomainContactResponseSchema,ContactVerificationStatusSchema,ContactVerificationStatusResponseSchema,init_registered_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/registered-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();DomainStatusSchema=z55.enum(["pending_payment","registering","owned","registration_failed","payment_failed","expiring","expired"]),DomainSourceSchema=z55.enum(["fimo","external"]),PaymentStatusSchema=z55.enum(["pending","paid","failed","refunded"]),DomainDTOSchema=z55.object({id:z55.string().uuid(),domain:z55.string(),status:DomainStatusSchema,source:DomainSourceSchema,registrationDate:CommonSchemas.timestamp.nullable(),expirationDate:CommonSchemas.timestamp.nullable(),autoRenew:z55.boolean(),price:z55.number().int().nullable(),renewalPrice:z55.number().int().nullable(),paymentStatus:PaymentStatusSchema.nullable(),checkoutUrl:z55.string().nullable(),failureReason:z55.string().nullable(),createdAt:CommonSchemas.timestamp,updatedAt:CommonSchemas.timestamp}),DomainDTO=createDTO(DomainDTOSchema),DomainSearchResultDTOSchema=z55.object({domain:z55.string(),available:z55.boolean(),premium:z55.boolean(),price:z55.number().nullable(),renewalPrice:z55.number().nullable(),purchaseType:z55.string().nullable()}),DomainSearchResultDTO=createDTO(DomainSearchResultDTOSchema),DomainPricingDTOSchema=z55.object({domain:z55.string(),price:z55.number().nullable(),renewalPrice:z55.number().nullable(),premium:z55.boolean(),allowedYears:z55.array(z55.number().int().positive())}),DomainPricingDTO=createDTO(DomainPricingDTOSchema),DomainContactSchema=z55.object({firstName:z55.string().max(100),lastName:z55.string().max(100),companyName:z55.string().max(100).optional(),address1:z55.string().max(255),address2:z55.string().max(255).optional(),city:z55.string().max(100),state:z55.string().max(100),zip:z55.string().max(20),country:z55.string().max(2),phone:z55.string().max(30),email:z55.union([z55.string().email().max(255),z55.literal("")])}),DomainContactDTO=createDTO(DomainContactSchema),UpdateDomainContactsRequestSchema=z55.object({firstName:z55.string().min(1).max(100),lastName:z55.string().min(1).max(100),companyName:z55.string().max(100).optional(),address1:z55.string().min(1).max(255),address2:z55.string().max(255).optional(),city:z55.string().min(1).max(100),state:z55.string().min(1).max(100),zip:z55.string().min(1).max(20),country:z55.string().min(1).max(2),phone:z55.string().min(1).max(30),email:z55.string().email().max(255)}),SearchDomainsRequestSchema=z55.object({keyword:z55.string().min(1).max(100),tldFilter:z55.array(z55.string()).optional()}),CheckAvailabilityRequestSchema=z55.object({domains:z55.array(z55.string()).min(1).max(50)}),DOMAIN_NAME_REGEX=/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,DomainNameSchema=z55.string().min(1).max(255).regex(DOMAIN_NAME_REGEX,{message:"Invalid domain name"}),PurchaseDomainRequestSchema=z55.object({domain:DomainNameSchema,years:z55.number().int().min(1).max(10).optional().default(3),autoRenew:z55.boolean().optional().default(!0)}),UpdateDomainSettingsRequestSchema=z55.object({autoRenew:z55.boolean().optional()}),RenewDomainRequestSchema=z55.object({years:z55.number().int().min(1).max(10).optional().default(1),autoRenew:z55.boolean().optional().default(!0)}),DomainResponseSchema=createResponseSchema(DomainDTOSchema),DomainListResponseSchema=createResponseSchema(z55.array(DomainDTOSchema)),DomainSearchResultListResponseSchema=createResponseSchema(z55.array(DomainSearchResultDTOSchema)),DomainPricingResponseSchema=createResponseSchema(DomainPricingDTOSchema),DomainContactResponseSchema=createResponseSchema(DomainContactSchema.nullable()),ContactVerificationStatusSchema=z55.object({verified:z55.boolean(),email:z55.string().nullable(),verifyBy:z55.string().nullable()}),ContactVerificationStatusResponseSchema=createResponseSchema(ContactVerificationStatusSchema)}});import{z as z56}from"zod";var ProjectDomainStatusSchema,SSLStatusSchema,SSLValidationRecordSchema,SSLValidationErrorSchema,OwnershipVerificationSchema,ProjectDomainSSLDTOSchema,DomainProviderSchema,DomainTypeSchema,RedirectConfigSchema,ProjectDomainDTOSchema,ProjectDomainDTO,ProjectDomainListResponseSchema,ProjectDomainResponseSchema,AddProjectDomainRequestSchema,CheckProjectDomainHostnameReasonSchema,CheckProjectDomainHostnameResponseSchema,DeleteProjectDomainResponseSchema,init_project_domain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-domain.dto.js"(){"use strict";init_common();init_create_dto();init_response();ProjectDomainStatusSchema=z56.enum(["pending","active","pending_validation","active_redeploying","moved","deleted","pending_deletion","pending_migration","pending_provisioned","test_pending","test_active","test_active_apex","test_blocked","test_failed","provisioned","blocked"]),SSLStatusSchema=z56.enum(["initializing","pending_validation","pending_issuance","pending_deployment","pending_expiration","expired","active","deleted","pending_cleanup","staging_deployment","staging_active","deactivating","inactive","backup_issued","holding_deployment"]),SSLValidationRecordSchema=z56.object({txtName:z56.string().nullable().optional(),txtValue:z56.string().nullable().optional(),httpUrl:z56.string().nullable().optional(),httpBody:z56.string().nullable().optional(),cname:z56.string().nullable().optional(),cnameTarget:z56.string().nullable().optional()}),SSLValidationErrorSchema=z56.object({message:z56.string()}),OwnershipVerificationSchema=z56.object({type:z56.string(),name:z56.string(),value:z56.string()}),ProjectDomainSSLDTOSchema=z56.object({status:z56.string(),method:z56.string().nullable(),type:z56.string().nullable(),validationRecords:z56.array(SSLValidationRecordSchema).nullable().optional(),validationErrors:z56.array(SSLValidationErrorSchema).nullable().optional()}),DomainProviderSchema=z56.enum(["cloudflare","saas_custom_domains"]),DomainTypeSchema=z56.enum(["subdomain","apex"]),RedirectConfigSchema=z56.object({type:z56.literal("apex_to_www"),linkedDomainId:z56.string()}).nullable().optional(),ProjectDomainDTOSchema=z56.object({id:z56.string(),hostname:z56.string(),status:z56.string(),ssl:ProjectDomainSSLDTOSchema,ownershipVerification:z56.array(OwnershipVerificationSchema).nullable().optional(),cnameTarget:z56.string(),scdCnameTarget:z56.string().optional(),apexTargets:z56.array(z56.string()),dnsAutoConfigured:z56.boolean(),createdAt:CommonSchemas.timestamp,provider:DomainProviderSchema,domainType:DomainTypeSchema,redirectConfig:RedirectConfigSchema,migrationStatus:z56.string().nullable().optional()}),ProjectDomainDTO=createDTO(ProjectDomainDTOSchema),ProjectDomainListResponseSchema=createResponseSchema(z56.array(ProjectDomainDTOSchema)),ProjectDomainResponseSchema=createResponseSchema(ProjectDomainDTOSchema),AddProjectDomainRequestSchema=z56.object({hostname:z56.hostname().regex(/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,{error:"Invalid hostname"}).refine(value=>!/\.fimo\.site$/i.test(value),{error:"This is a Fimo-owned domain. Edit your built-in URL instead."}),redirectToWww:z56.boolean().optional()}),CheckProjectDomainHostnameReasonSchema=z56.enum(["invalid_hostname","fimo_owned_hostname","reserved","taken_by_another_project","taken_by_this_project"]),CheckProjectDomainHostnameResponseSchema=createResponseSchema(z56.object({available:z56.boolean(),reason:CheckProjectDomainHostnameReasonSchema.optional()})),DeleteProjectDomainResponseSchema=createResponseSchema(z56.object({success:z56.boolean(),hostname:z56.string()}))}});import{z as z57}from"zod";var SUBDOMAIN_REGEX,SubdomainCheckReasonSchema,CheckProjectSubdomainResponseSchema,UpdateProjectSubdomainRequestSchema,UpdateProjectSubdomainErrorReasonSchema,UpdateProjectSubdomainResponseSchema,SubdomainSuggestionsQuerySchema,SubdomainSuggestionsResponseSchema,init_project_subdomain_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-subdomain.dto.js"(){"use strict";init_response();SUBDOMAIN_REGEX=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/,SubdomainCheckReasonSchema=z57.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain"]),CheckProjectSubdomainResponseSchema=createResponseSchema(z57.object({available:z57.boolean(),reason:SubdomainCheckReasonSchema.optional()})),UpdateProjectSubdomainRequestSchema=z57.object({slug:z57.string().min(1).max(63).regex(SUBDOMAIN_REGEX,{error:"Invalid subdomain shape"})}),UpdateProjectSubdomainErrorReasonSchema=z57.enum(["invalid_shape","reserved","taken_by_project","taken_by_legacy_custom_domain","kv_sync_failed","hosting_sync_failed"]),UpdateProjectSubdomainResponseSchema=createResponseSchema(z57.object({subdomain:z57.string(),subdomainUpdatedAt:z57.coerce.date()})),SubdomainSuggestionsQuerySchema=z57.object({base:z57.string().max(100).optional(),max:z57.coerce.number().int().min(1).max(10).optional()}),SubdomainSuggestionsResponseSchema=createResponseSchema(z57.object({suggestions:z57.array(z57.string())}))}});import{z as z58}from"zod";var ProjectLocaleCoverageSchema,ProjectLocaleStatsItemSchema,ProjectLocaleStatsSchema,ProjectLocaleStatsDTO,ProjectLocaleStatsResponseSchema,AddProjectLocaleRequestSchema,RemoveProjectLocaleParamsSchema,ProjectLocaleMutationSchema,ProjectLocaleMutationDTO,ProjectLocaleMutationResponseSchema,RemoveProjectLocaleSchema,RemoveProjectLocaleDTO,RemoveProjectLocaleResponseSchema,init_project_locale_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/project-locale.dto.js"(){"use strict";init_create_dto();init_response();ProjectLocaleCoverageSchema=z58.object({translated:z58.number().int().nonnegative(),total:z58.number().int().nonnegative()}),ProjectLocaleStatsItemSchema=z58.object({locale:z58.string(),isDefault:z58.boolean(),entries:ProjectLocaleCoverageSchema,labels:ProjectLocaleCoverageSchema}),ProjectLocaleStatsSchema=z58.object({defaultLocale:z58.string(),locales:z58.array(ProjectLocaleStatsItemSchema)}),ProjectLocaleStatsDTO=createDTO(ProjectLocaleStatsSchema),ProjectLocaleStatsResponseSchema=createResponseSchema(ProjectLocaleStatsSchema),AddProjectLocaleRequestSchema=z58.object({locale:z58.string().min(1).max(40)}),RemoveProjectLocaleParamsSchema=z58.object({locale:z58.string().min(1).max(40)}),ProjectLocaleMutationSchema=z58.object({locale:z58.string()}),ProjectLocaleMutationDTO=createDTO(ProjectLocaleMutationSchema),ProjectLocaleMutationResponseSchema=createResponseSchema(ProjectLocaleMutationSchema),RemoveProjectLocaleSchema=z58.object({locale:z58.string(),entriesDeleted:z58.number().int().nonnegative(),labelsDeleted:z58.number().int().nonnegative()}),RemoveProjectLocaleDTO=createDTO(RemoveProjectLocaleSchema),RemoveProjectLocaleResponseSchema=createResponseSchema(RemoveProjectLocaleSchema)}});import{z as z59}from"zod";function flag(key,description,options={}){return{name:key.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),key,description,type:options.type??"string",required:options.required??!1,...options.defaultValue!==void 0?{defaultValue:options.defaultValue}:{},...options.enumValues?{enumValues:[...options.enumValues]}:{},isArray:options.isArray??!1}}var GENERATION_QUALITIES,GENERATION_ASPECT_RATIOS,GENERATION_TASK_IDS,GenerationQualitySchema,GenerationTaskIdSchema,GENERATION_TASK_MANIFESTS,GenerationTaskEstimateDTOSchema,GenerationTaskEstimateDTO,init_generation_task_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation-task.dto.js"(){"use strict";init_create_dto();GENERATION_QUALITIES=["draft","standard","premium"],GENERATION_ASPECT_RATIOS=["1:1","16:9","9:16","4:3","3:4"],GENERATION_TASK_IDS=["image.generate","image.edit","image.remove-background","image.upscale","video.generate","video.animate","video.replace"],GenerationQualitySchema=z59.enum(GENERATION_QUALITIES),GenerationTaskIdSchema=z59.enum(GENERATION_TASK_IDS);__name(flag,"flag");GENERATION_TASK_MANIFESTS=[{id:"image.generate",modality:"image",operation:"generate",displayName:"Generate image",description:"Create an image from a prompt. Quality selects the appropriate generation route.",flags:[flag("prompt","Generation prompt",{required:!0}),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.edit",modality:"image",operation:"edit",displayName:"Edit image",description:"Transform up to five source images using a natural-language instruction.",flags:[flag("prompt","Editing instruction",{required:!0}),flag("images","Source asset id or absolute URL; repeatable up to five times",{required:!0,isArray:!0}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"1:1",enumValues:GENERATION_ASPECT_RATIOS})]},{id:"image.remove-background",modality:"image",operation:"remove-background",displayName:"Remove image background",description:"Remove the background from one image and return a transparent cutout.",flags:[flag("image","Source asset id or absolute URL",{required:!0})]},{id:"image.upscale",modality:"image",operation:"upscale",displayName:"Upscale image",description:"Increase image resolution while preserving and optionally enhancing detail.",flags:[flag("image","Source asset id or absolute URL",{required:!0}),flag("targetMegapixels","Target resolution in megapixels",{type:"integer",defaultValue:4}),flag("outputFormat","Output image format",{type:"enum",defaultValue:"png",enumValues:["webp","jpg","png"]}),flag("enhanceDetails","Improve fine detail during upscaling",{type:"boolean",defaultValue:!0}),flag("enhanceRealism","Favor photorealistic detail reconstruction",{type:"boolean",defaultValue:!1})]},{id:"video.generate",modality:"video",operation:"generate",displayName:"Generate video",description:"Create a video from text or animate one source image. Loop closes the final frame back to the first.",flags:[flag("prompt","Generation and motion prompt",{required:!0}),flag("image","Optional source asset id or absolute URL"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("aspectRatio","Output aspect ratio",{type:"enum",defaultValue:"16:9",enumValues:GENERATION_ASPECT_RATIOS}),flag("duration","Duration in seconds; loops support 3 to 20 seconds",{type:"integer",defaultValue:5}),flag("includeAudio","Generate audio with the video",{type:"boolean",defaultValue:!1}),flag("loop","Make the final frame return to the source image",{type:"boolean",defaultValue:!1})]},{id:"video.animate",modality:"video",operation:"animate",displayName:"Animate image from video",description:"Apply the motion and camera movement from a source video to a reference image.",flags:[flag("video","Motion source asset id or absolute URL",{required:!0}),flag("image","Subject reference asset id or absolute URL",{required:!0}),flag("prompt","Optional instruction for the animation"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]},{id:"video.replace",modality:"video",operation:"replace",displayName:"Replace subjects in video",description:"Replace people in a source video with one to three reference identities while preserving motion.",flags:[flag("video","Source video asset id or absolute URL",{required:!0}),flag("images","Identity reference asset id or URL; repeatable up to three times",{required:!0,isArray:!0}),flag("prompt","Optional placement instruction"),flag("quality","Quality and cost tier",{type:"enum",defaultValue:"standard",enumValues:GENERATION_QUALITIES}),flag("duration","Source duration in seconds for cost calculation",{type:"integer",defaultValue:5}),flag("includeAudio","Keep audio in the generated video",{type:"boolean",defaultValue:!0})]}],GenerationTaskEstimateDTOSchema=z59.object({task:GenerationTaskIdSchema,quality:GenerationQualitySchema.optional(),costUsd:z59.number(),credits:z59.number().optional(),billingMode:z59.enum(["fimo-credits","provider-account"]).optional(),confidence:z59.enum(["exact","estimated","metered"]),basis:z59.string()}),GenerationTaskEstimateDTO=createDTO(GenerationTaskEstimateDTOSchema)}});import{z as z60}from"zod";var GenerateRequestBaseSchema,GenerateRequestDTOSchema,GenerateRequestDTO,GenerateResponseDataSchema,GenerateResponseDTO,GenerateResponseSchema,GenerateErrorSchema,init_generation_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/generation.dto.js"(){"use strict";init_create_dto();init_response();init_asset_dto();init_generation_task_dto();GenerateRequestBaseSchema=z60.object({options:z60.record(z60.string(),z60.unknown()),name:z60.string().optional(),parentId:z60.string().nullable().optional(),altText:z60.string().optional(),caption:z60.string().optional()}),GenerateRequestDTOSchema=GenerateRequestBaseSchema.extend({task:z60.string().min(1).optional(),model:z60.string().min(1).optional()}).superRefine((value,context)=>{!!value.task==!!value.model&&context.addIssue({code:"custom",message:"Provide exactly one of task or model",path:["task"]})}),GenerateRequestDTO=createDTO(GenerateRequestDTOSchema),GenerateResponseDataSchema=z60.object({jobId:z60.string(),status:z60.enum(["queued","running","completed","failed"]),asset:AssetDTOSchema.optional(),error:z60.string().nullable().optional(),credits:z60.number().optional(),costUsd:z60.number().optional(),billingMode:z60.enum(["fimo-credits","provider-account"]).optional(),task:GenerationTaskIdSchema.optional(),quality:GenerationQualitySchema.optional()}),GenerateResponseDTO=createDTO(GenerateResponseDataSchema),GenerateResponseSchema=createResponseSchema(GenerateResponseDataSchema),GenerateErrorSchema=z60.object({error:z60.string(),code:z60.enum(["unknown-task","unknown-model","options-invalid","source-invalid","task-routing-failed","generation-failed","provider-error","cost-limit-exceeded","cost-estimate-unavailable","unsupported-modality"]),availableTasks:z60.array(GenerationTaskIdSchema).optional(),availableModels:z60.array(z60.string()).optional(),issues:z60.array(z60.unknown()).optional()})}});import{z as z61}from"zod";var FlagTypeSchema,FlagSpecSchema,AssetModelPriceSchema,AssetModelDTOSchema,AssetModelDTO,AssetModelEstimateDTOSchema,AssetModelEstimateDTO,init_asset_model_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/asset-model.dto.js"(){"use strict";init_create_dto();FlagTypeSchema=z61.enum(["string","number","integer","boolean","enum","array","unknown"]),FlagSpecSchema=z61.object({name:z61.string(),key:z61.string(),description:z61.string(),type:FlagTypeSchema,required:z61.boolean(),defaultValue:z61.unknown().optional(),enumValues:z61.array(z61.string()).optional(),isArray:z61.boolean()}),AssetModelPriceSchema=z61.object({unitPrice:z61.number(),unit:z61.string(),confidence:z61.enum(["exact","estimated","metered"])}),AssetModelDTOSchema=z61.object({id:z61.string(),shortName:z61.string(),provider:z61.string(),source:z61.string(),modality:z61.enum(["image","video","audio"]),tags:z61.array(z61.string()),displayName:z61.string(),description:z61.string(),flags:z61.array(FlagSpecSchema),price:AssetModelPriceSchema.nullable()}),AssetModelDTO=createDTO(AssetModelDTOSchema),AssetModelEstimateDTOSchema=z61.object({model:z61.string(),costUsd:z61.number(),credits:z61.number(),billingMode:z61.enum(["fimo-credits","provider-account"]),confidence:z61.enum(["exact","estimated","metered"]),basis:z61.string()}),AssetModelEstimateDTO=createDTO(AssetModelEstimateDTOSchema)}});import{z as z62}from"zod";var UserTourDTOSchema,UserTourDTO,UserTourResponseSchema,UserTourListResponseSchema,init_tour_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/tour.dto.js"(){"use strict";init_create_dto();init_response();UserTourDTOSchema=z62.object({tourId:z62.string(),version:z62.string(),status:z62.string(),completedAt:z62.coerce.date()}),UserTourDTO=createDTO(UserTourDTOSchema),UserTourResponseSchema=createResponseSchema(UserTourDTOSchema),UserTourListResponseSchema=createResponseSchema(z62.array(UserTourDTOSchema))}});import{z as z63}from"zod";var SUPPORT_REPORT_CATEGORIES,SupportReportCategorySchema,SUPPORT_REPORT_STATUSES,SupportReportStatusSchema,SupportReportSourceSchema,SupportReportDeliveryStatusSchema,SUPPORT_REPORT_LINK_KINDS,SupportReportLinkKindSchema,SupportReportEventKindSchema,SupportReportActorKindSchema,SupportReportTagSchema,SupportReportHttpUrlSchema,SupportReportContextInputSchema,CreateSupportReportInputSchema,SupportReportListQuerySchema,UpdateSupportReportInputSchema,CreateSupportReportMessageInputSchema,CreateSupportReportLinkInputSchema,SupportReportActorDTOSchema,SupportReportLinkDTOSchema,SupportReportLinkDTO,SupportReportEventDTOSchema,SupportReportEventDTO,SupportReportSummaryDTOSchema,SupportReportSummaryDTO,SupportReportDetailDTOSchema,SupportReportDetailDTO,SupportReportListDTOSchema,SupportReportListDTO,CreateSupportReportResultDTOSchema,CreateSupportReportResultDTO,init_support_report_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/support-report.dto.js"(){"use strict";init_create_dto();SUPPORT_REPORT_CATEGORIES=[{value:"account_billing",label:"Account & billing"},{value:"project_issues",label:"Project issues"},{value:"ai_prompt_output_quality",label:"AI prompt & output quality"},{value:"roles_access_collaboration",label:"Roles, access & collaboration"},{value:"code_technical_questions",label:"Code & technical questions"},{value:"others",label:"Other"}],SupportReportCategorySchema=z63.enum(SUPPORT_REPORT_CATEGORIES.map(category=>category.value)),SUPPORT_REPORT_STATUSES=["new","in_progress","waiting","resolved","duplicate","irrelevant","ignored"],SupportReportStatusSchema=z63.enum(SUPPORT_REPORT_STATUSES),SupportReportSourceSchema=z63.enum(["app","cli","agent"]),SupportReportDeliveryStatusSchema=z63.enum(["pending","delivered","failed"]),SUPPORT_REPORT_LINK_KINDS=["linear","pylon","project","sentry","grafana","other"],SupportReportLinkKindSchema=z63.enum(SUPPORT_REPORT_LINK_KINDS),SupportReportEventKindSchema=z63.enum(["report_created","report_updated","message","link_added","link_removed","delivery"]),SupportReportActorKindSchema=z63.enum(["user","agent","system"]),SupportReportTagSchema=z63.string().trim().min(1).max(50),SupportReportHttpUrlSchema=z63.url({protocol:/^https?$/}).max(2e3),SupportReportContextInputSchema=z63.object({organization:z63.object({id:z63.string().trim().min(1).max(255),name:z63.string().trim().max(240).optional()}),project:z63.object({id:z63.uuid(),name:z63.string().trim().max(240).optional(),createdAt:z63.coerce.date().optional()}).optional(),environment:z63.string().trim().max(255).optional(),clientVersion:z63.string().trim().max(64).optional()}),CreateSupportReportInputSchema=z63.object({message:z63.string().trim().min(1).max(2e4),category:SupportReportCategorySchema,source:SupportReportSourceSchema.default("app"),context:SupportReportContextInputSchema}),SupportReportListQuerySchema=z63.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),source:SupportReportSourceSchema.optional(),tag:SupportReportTagSchema.optional(),query:z63.string().trim().max(200).optional(),limit:z63.coerce.number().int().min(1).max(100).default(50),offset:z63.coerce.number().int().min(0).default(0)}),UpdateSupportReportInputSchema=z63.object({status:SupportReportStatusSchema.optional(),category:SupportReportCategorySchema.optional(),tags:z63.array(SupportReportTagSchema).max(20).optional(),duplicateOfReportId:z63.uuid().nullable().optional(),note:z63.string().trim().min(1).max(2e4).optional()}).refine(input=>Object.values(input).some(value=>value!==void 0),{message:"At least one report change is required"}),CreateSupportReportMessageInputSchema=z63.object({message:z63.string().trim().min(1).max(2e4)}),CreateSupportReportLinkInputSchema=z63.object({kind:SupportReportLinkKindSchema,label:z63.string().trim().min(1).max(240),url:SupportReportHttpUrlSchema,externalId:z63.string().trim().max(240).optional()}),SupportReportActorDTOSchema=z63.object({kind:SupportReportActorKindSchema,id:z63.string().nullable(),name:z63.string().nullable()}),SupportReportLinkDTOSchema=z63.object({id:z63.uuid(),kind:SupportReportLinkKindSchema,label:z63.string(),url:SupportReportHttpUrlSchema,externalId:z63.string().nullable(),addedBy:SupportReportActorDTOSchema,createdAt:z63.coerce.date()}),SupportReportLinkDTO=createDTO(SupportReportLinkDTOSchema),SupportReportEventDTOSchema=z63.object({id:z63.uuid(),kind:SupportReportEventKindSchema,body:z63.string().nullable(),metadata:z63.record(z63.string(),z63.unknown()),actor:SupportReportActorDTOSchema,createdAt:z63.coerce.date()}),SupportReportEventDTO=createDTO(SupportReportEventDTOSchema),SupportReportSummaryDTOSchema=z63.object({id:z63.uuid(),status:SupportReportStatusSchema,category:SupportReportCategorySchema,tags:z63.array(z63.string()),source:SupportReportSourceSchema,message:z63.string(),reporter:z63.object({id:z63.string().nullable(),name:z63.string().nullable(),email:z63.string().nullable()}),organization:z63.object({id:z63.string().nullable(),name:z63.string()}),project:z63.object({id:z63.uuid().nullable(),name:z63.string()}).nullable(),assignee:SupportReportActorDTOSchema.nullable(),delivery:z63.object({status:SupportReportDeliveryStatusSchema,pylonIssueId:z63.string().nullable(),pylonIssueUrl:SupportReportHttpUrlSchema.nullable(),error:z63.string().nullable(),deliveredAt:z63.coerce.date().nullable()}).nullable(),duplicateOfReportId:z63.uuid().nullable(),resolvedAt:z63.coerce.date().nullable(),createdAt:z63.coerce.date(),updatedAt:z63.coerce.date()}),SupportReportSummaryDTO=createDTO(SupportReportSummaryDTOSchema),SupportReportDetailDTOSchema=SupportReportSummaryDTOSchema.extend({environment:z63.string().nullable(),clientVersion:z63.string().nullable(),links:z63.array(SupportReportLinkDTOSchema),events:z63.array(SupportReportEventDTOSchema)}),SupportReportDetailDTO=createDTO(SupportReportDetailDTOSchema),SupportReportListDTOSchema=z63.object({reports:z63.array(SupportReportSummaryDTOSchema),total:z63.number().int().nonnegative(),statusCounts:z63.object({new:z63.number().int().nonnegative(),in_progress:z63.number().int().nonnegative(),waiting:z63.number().int().nonnegative(),resolved:z63.number().int().nonnegative(),duplicate:z63.number().int().nonnegative(),irrelevant:z63.number().int().nonnegative(),ignored:z63.number().int().nonnegative()}),limit:z63.number().int().positive(),offset:z63.number().int().nonnegative()}),SupportReportListDTO=createDTO(SupportReportListDTOSchema),CreateSupportReportResultDTOSchema=z63.object({id:z63.uuid(),deliveryStatus:SupportReportDeliveryStatusSchema,message:z63.string()}),CreateSupportReportResultDTO=createDTO(CreateSupportReportResultDTOSchema)}});import{z as z64}from"zod";var OPS_RECENT_CHAT_MAX_WINDOW_MS,OpsChatTimestampInputSchema,OpsRecentChatInputSchema,OpsRecentChatMessageSchema,OpsRecentChatResponseSchema,OpsRecentChatResponseDTO,init_ops_chat_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-chat.dto.js"(){"use strict";init_ops();init_create_dto();OPS_RECENT_CHAT_MAX_WINDOW_MS=10080*60*1e3,OpsChatTimestampInputSchema=z64.iso.datetime({offset:!0}).pipe(z64.coerce.date()),OpsRecentChatInputSchema=z64.object({from:OpsChatTimestampInputSchema,to:OpsChatTimestampInputSchema.optional(),projectEnv:z64.string().trim().min(1).max(255).optional(),limit:z64.coerce.number().int().min(1).max(200).default(100),cursor:z64.string().trim().min(1).max(2e3).optional(),slim:z64.boolean().default(!0),reason:z64.string().trim().min(1).max(1e3)}).refine(input=>input.from<=(input.to??new Date),{message:"from must be before or equal to to",path:["from"]}).refine(input=>(input.to??new Date).getTime()-input.from.getTime()<=OPS_RECENT_CHAT_MAX_WINDOW_MS,{message:"recent chat window cannot exceed 7 days",path:["from"]}).refine(input=>!input.cursor||!!input.to,{message:"to is required when continuing with a cursor",path:["to"]}),OpsRecentChatMessageSchema=z64.object({id:z64.string(),threadId:z64.string(),providerMessageId:z64.string().nullable(),invocationId:z64.string().nullable(),env:z64.string().nullable(),role:z64.string(),parts:z64.array(z64.record(z64.string(),z64.unknown())),metadata:z64.object({status:z64.string().optional(),traceUrl:z64.string().optional(),externalFileChanges:z64.array(z64.unknown()).optional()}),stats:z64.object({toolCount:z64.number().int().nonnegative(),failedToolCount:z64.number().int().nonnegative()}),createdAt:z64.iso.datetime({offset:!0}),project:z64.object({id:z64.string(),name:z64.string(),displayName:z64.string().nullable(),organizationId:z64.string().nullable()})}),OpsRecentChatResponseSchema=z64.object({target:z64.object({backendProfile:OpsBackendProfileSchema,projectEnv:z64.string().nullable()}),window:z64.object({from:z64.iso.datetime({offset:!0}),to:z64.iso.datetime({offset:!0})}),messages:z64.object({items:z64.array(OpsRecentChatMessageSchema),nextCursor:z64.string().nullable()})}),OpsRecentChatResponseDTO=createDTO(OpsRecentChatResponseSchema)}});import{z as z65}from"zod";var OpsSentryIssueResolutionResponseSchema,OpsSentryIssueResolutionResponseDTO,OpsSentryIssueResolutionErrorResponseSchema,OpsSentryIssueResolutionErrorResponseDTO,init_ops_sentry_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-sentry.dto.js"(){"use strict";init_ops();init_create_dto();OpsSentryIssueResolutionResponseSchema=z65.object({backendProfile:OpsBackendProfileSchema,provider:z65.literal("sentry"),issueId:OpsSentryIssueIdSchema,status:z65.literal("resolved")}),OpsSentryIssueResolutionResponseDTO=createDTO(OpsSentryIssueResolutionResponseSchema),OpsSentryIssueResolutionErrorResponseSchema=z65.object({backendProfile:OpsBackendProfileSchema,provider:z65.literal("sentry"),issueId:OpsSentryIssueIdSchema,resolved:z65.literal(!1),reason:z65.string()}),OpsSentryIssueResolutionErrorResponseDTO=createDTO(OpsSentryIssueResolutionErrorResponseSchema)}});import{z as z66}from"zod";var OpsProjectPackageManagerSummarySchema,OpsProjectPackageManagerSchema,OpsProjectPackageManagerDTO,init_ops_project_files_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/ops-project-files.dto.js"(){"use strict";init_ops();init_create_dto();OpsProjectPackageManagerSummarySchema=z66.object({packageManager:z66.string().trim().min(1).max(200).nullable(),trackedLockfiles:z66.array(z66.enum(OPS_PROJECT_PACKAGE_MANAGER_LOCKFILES)),sourceRevision:z66.string().trim().min(1)}),OpsProjectPackageManagerSchema=z66.object({target:z66.object({backendProfile:OpsBackendProfileSchema,projectId:z66.uuid(),projectEnv:z66.string().trim().min(1).max(255)}),...OpsProjectPackageManagerSummarySchema.shape}),OpsProjectPackageManagerDTO=createDTO(OpsProjectPackageManagerSchema)}});import{z as z67}from"zod";function createAgentRunWebhookEventDataSchema(status){return z67.object({run:z67.object({id:z67.string(),agentName:z67.string(),trigger:z67.string(),status:z67.literal(status),startedAt:z67.string().nullable(),finishedAt:z67.string().nullable(),reason:z67.string().nullable()})})}var WEBHOOK_EVENT_TYPES,WebhookEventTypeSchema,WebhookEntryChangeActionSchema,WebhookEntryChangeReasonSchema,WebhookEnvironmentScopeSchema,WebhookEnvironmentSelectorSchema,WebhookEntryBatchWindowSecondsSchema,EntryChangedWebhookEventDataSchema,FormSubmittedWebhookEventDataSchema,PublishStartedWebhookEventDataSchema,PublishSucceededWebhookEventDataSchema,PublishFailedWebhookEventDataSchema,PublishUnpublishedWebhookEventDataSchema,AgentReviewRequestedWebhookEventDataSchema,AgentReviewResolvedWebhookEventDataSchema,AnalyticsReportReadyWebhookEventDataSchema,MediaAssetWebhookEventDataSchema,MediaUploadedWebhookEventDataSchema,MediaUpdatedWebhookEventDataSchema,MediaDeletedWebhookEventDataSchema,MediaGeneratedWebhookEventDataSchema,MediaProcessingFailedWebhookEventDataSchema,DomainCreatedWebhookEventDataSchema,DomainDeletedWebhookEventDataSchema,LabelChangedWebhookEventDataSchema,LocaleCreatedWebhookEventDataSchema,LocaleDefaultChangedWebhookEventDataSchema,LocaleDeletedWebhookEventDataSchema,EnvironmentCreatedWebhookEventDataSchema,EnvironmentDeletedWebhookEventDataSchema,EnvironmentMergedWebhookEventDataSchema,EnvironmentRestoredWebhookEventDataSchema,WEBHOOK_EVENT_DATA_SCHEMAS,WebhookEventFamilySchema,WebhookDestinationKindSchema,WebhookHeaderValueInputSchema,WebhookHeaderInputSchema,WebhookHeaderDTOSchema,WebhookFilterSchema,JsonValueSchema,CreateProjectWebhookRequestSchema,UpdateProjectWebhookRequestSchema,TestProjectWebhookRequestSchema,WebhookDeliveryStatusSchema,ProjectWebhookDTOSchema,ProjectWebhookDTO,WebhookDeliveryDTOSchema,WebhookDeliveryDTO,WebhookDeliveriesPageSchema,WebhookDeliveryAttemptDTOSchema,WebhookDeliveryAttemptDTO,ProjectWebhookResponseSchema,ProjectWebhooksListResponseSchema,WebhookDeliveriesListResponseSchema,WebhookDeliveryAttemptsListResponseSchema,init_webhook_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/webhook.dto.js"(){"use strict";init_common();init_env();init_environment();init_create_dto();init_response();init_env_status_dto();init_project_domain_dto();WEBHOOK_EVENT_TYPES=["entry.changed","form.submitted","publish.started","publish.succeeded","publish.failed","publish.unpublished","agent.run.started","agent.run.completed","agent.run.failed","agent.run.cancelled","agent.review.requested","agent.review.resolved","analytics.report_ready","media.uploaded","media.updated","media.deleted","media.generated","media.processing_failed","domain.created","domain.deleted","label.changed","locale.created","locale.default_changed","locale.deleted","environment.created","environment.deleted","environment.merged","environment.restored"],WebhookEventTypeSchema=z67.enum(WEBHOOK_EVENT_TYPES),WebhookEntryChangeActionSchema=z67.enum(["created","updated","deleted"]),WebhookEntryChangeReasonSchema=z67.enum(["entry_write","bulk_edit","environment_merge"]),WebhookEnvironmentScopeSchema=z67.enum(["main","all"]),WebhookEnvironmentSelectorSchema=z67.union([WebhookEnvironmentScopeSchema,EnvironmentKeySchema]),WebhookEntryBatchWindowSecondsSchema=z67.union([z67.literal(0),z67.literal(5),z67.literal(30),z67.literal(60)]),EntryChangedWebhookEventDataSchema=z67.object({reason:WebhookEntryChangeReasonSchema,operationId:z67.string().optional(),batch:z67.object({index:z67.number().int().positive(),total:z67.number().int().positive()}).optional(),changes:z67.array(z67.object({action:WebhookEntryChangeActionSchema,contentType:z67.string(),id:z67.string(),documentId:z67.string(),locale:z67.string().nullable()}))}),FormSubmittedWebhookEventDataSchema=z67.object({form:z67.object({id:z67.string(),label:z67.string()}),submission:z67.object({id:z67.string(),data:z67.record(z67.string(),z67.unknown()),submittedAt:z67.string()})}),PublishStartedWebhookEventDataSchema=z67.object({publication:z67.object({status:z67.literal("publishing"),startedAt:z67.string()})}),PublishSucceededWebhookEventDataSchema=z67.object({publication:z67.object({status:z67.literal("published"),url:z67.string(),publishedAt:z67.string(),firstPublish:z67.boolean()})}),PublishFailedWebhookEventDataSchema=z67.object({publication:z67.object({status:z67.literal("failed"),reason:z67.string()})}),PublishUnpublishedWebhookEventDataSchema=z67.object({publication:z67.object({previousUrl:z67.string(),unpublishedAt:z67.string()})});__name(createAgentRunWebhookEventDataSchema,"createAgentRunWebhookEventDataSchema");AgentReviewRequestedWebhookEventDataSchema=z67.object({review:z67.object({id:z67.string(),runId:z67.string(),agentName:z67.string(),classification:z67.string(),summary:z67.string(),reasons:z67.array(z67.string()).readonly()})}),AgentReviewResolvedWebhookEventDataSchema=z67.object({review:z67.object({id:z67.string(),runId:z67.string(),agentName:z67.string(),resolution:z67.string()})}),AnalyticsReportReadyWebhookEventDataSchema=z67.object({report:z67.object({weekStart:z67.string(),weekEnd:z67.string(),pageviews:z67.number(),visitors:z67.number(),previousPageviews:z67.number(),previousVisitors:z67.number()})}),MediaAssetWebhookEventDataSchema=z67.object({id:z67.string().nullable(),name:z67.string().nullable(),type:z67.string(),mimeType:z67.string().nullable(),fileSize:z67.number().nullable()}),MediaUploadedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.literal("uploaded")}),MediaUpdatedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.enum(["updated","moved","analysis"]),analysis:z67.object({category:z67.string(),status:z67.literal("completed")}).optional()}),MediaDeletedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.literal("deleted")}),MediaGeneratedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.literal("generated"),generation:z67.object({model:z67.string(),mode:z67.string()})}),MediaProcessingFailedWebhookEventDataSchema=z67.object({asset:MediaAssetWebhookEventDataSchema,operation:z67.enum(["analysis","generation"]),failure:z67.object({code:z67.string()})}),DomainCreatedWebhookEventDataSchema=z67.object({domain:z67.object({id:z67.string(),hostname:z67.string(),status:ProjectDomainStatusSchema,sslStatus:SSLStatusSchema})}),DomainDeletedWebhookEventDataSchema=z67.object({domain:z67.object({id:z67.string(),hostname:z67.string()})}),LabelChangedWebhookEventDataSchema=z67.object({changes:z67.array(z67.object({action:z67.enum(["created","updated","deleted"]),key:z67.string(),locale:z67.string(),value:z67.string().nullable()}))}),LocaleCreatedWebhookEventDataSchema=z67.object({locale:z67.object({code:z67.string(),isDefault:z67.boolean()})}),LocaleDefaultChangedWebhookEventDataSchema=z67.object({locale:z67.object({code:z67.string(),previousCode:z67.string()})}),LocaleDeletedWebhookEventDataSchema=z67.object({locale:z67.object({code:z67.string(),entriesDeleted:z67.number().int().nonnegative(),labelsDeleted:z67.number().int().nonnegative()})}),EnvironmentCreatedWebhookEventDataSchema=z67.object({environment:z67.object({name:EnvSchema,parent:EnvSchema})}),EnvironmentDeletedWebhookEventDataSchema=z67.object({environment:z67.object({name:EnvSchema})}),EnvironmentMergedWebhookEventDataSchema=z67.object({merge:z67.object({id:z67.string(),from:EnvSchema,to:EnvSchema,applied:z67.array(z67.object({surface:SurfaceNameSchema,count:z67.number().int().nonnegative()}))})}),EnvironmentRestoredWebhookEventDataSchema=z67.object({environment:z67.object({name:EnvSchema}),version:z67.object({versionId:z67.uuid(),name:z67.string()})}),WEBHOOK_EVENT_DATA_SCHEMAS={"entry.changed":EntryChangedWebhookEventDataSchema,"form.submitted":FormSubmittedWebhookEventDataSchema,"publish.started":PublishStartedWebhookEventDataSchema,"publish.succeeded":PublishSucceededWebhookEventDataSchema,"publish.failed":PublishFailedWebhookEventDataSchema,"publish.unpublished":PublishUnpublishedWebhookEventDataSchema,"agent.run.started":createAgentRunWebhookEventDataSchema("running"),"agent.run.completed":createAgentRunWebhookEventDataSchema("completed"),"agent.run.failed":createAgentRunWebhookEventDataSchema("failed"),"agent.run.cancelled":createAgentRunWebhookEventDataSchema("cancelled"),"agent.review.requested":AgentReviewRequestedWebhookEventDataSchema,"agent.review.resolved":AgentReviewResolvedWebhookEventDataSchema,"analytics.report_ready":AnalyticsReportReadyWebhookEventDataSchema,"media.uploaded":MediaUploadedWebhookEventDataSchema,"media.updated":MediaUpdatedWebhookEventDataSchema,"media.deleted":MediaDeletedWebhookEventDataSchema,"media.generated":MediaGeneratedWebhookEventDataSchema,"media.processing_failed":MediaProcessingFailedWebhookEventDataSchema,"domain.created":DomainCreatedWebhookEventDataSchema,"domain.deleted":DomainDeletedWebhookEventDataSchema,"label.changed":LabelChangedWebhookEventDataSchema,"locale.created":LocaleCreatedWebhookEventDataSchema,"locale.default_changed":LocaleDefaultChangedWebhookEventDataSchema,"locale.deleted":LocaleDeletedWebhookEventDataSchema,"environment.created":EnvironmentCreatedWebhookEventDataSchema,"environment.deleted":EnvironmentDeletedWebhookEventDataSchema,"environment.merged":EnvironmentMergedWebhookEventDataSchema,"environment.restored":EnvironmentRestoredWebhookEventDataSchema},WebhookEventFamilySchema=z67.enum(["entries","forms","publish","agents","analytics","media","domains","labels","locales","environments"]),WebhookDestinationKindSchema=z67.enum(["custom","resend","github","slack"]),WebhookHeaderValueInputSchema=z67.discriminatedUnion("source",[z67.object({source:z67.literal("literal"),value:z67.string().min(1).max(4096).regex(/^[^\r\n]*$/)}),z67.object({source:z67.literal("secret"),key:z67.string().regex(/^[A-Z_][A-Z0-9_]*$/),prefix:z67.string().max(128).regex(/^[^\r\n]*$/).optional()})]),WebhookHeaderInputSchema=z67.object({name:z67.string().min(1).max(128),value:WebhookHeaderValueInputSchema}),WebhookHeaderDTOSchema=z67.object({name:z67.string(),source:z67.enum(["literal","secret"]),secretKey:z67.string().nullable(),secretPrefix:z67.string().nullable(),configured:z67.literal(!0)}),WebhookFilterSchema=z67.object({environment:WebhookEnvironmentSelectorSchema.optional(),formId:z67.string().min(1).max(255).optional(),agentName:z67.string().min(1).max(120).optional(),mediaType:z67.enum(["image","video","audio","document","other"]).optional(),action:WebhookEntryChangeActionSchema.optional(),contentType:z67.string().min(1).max(255).optional(),locale:z67.string().min(1).max(120).optional()}),JsonValueSchema=z67.lazy(()=>z67.union([z67.string(),z67.number(),z67.boolean(),z67.null(),z67.array(JsonValueSchema),z67.record(z67.string(),JsonValueSchema)])),CreateProjectWebhookRequestSchema=z67.object({name:z67.string().trim().min(1).max(120),eventType:WebhookEventTypeSchema,url:z67.url(),enabled:z67.boolean().optional().default(!0),filter:WebhookFilterSchema.optional().default({}),headers:z67.array(WebhookHeaderInputSchema).max(20).optional().default([]),bodyTemplate:JsonValueSchema.nullable().optional().default(null),signingEnabled:z67.boolean().optional().default(!0),entryBatchWindowSeconds:WebhookEntryBatchWindowSecondsSchema.optional().default(0)}),UpdateProjectWebhookRequestSchema=z67.object({name:z67.string().trim().min(1).max(120).optional(),eventType:WebhookEventTypeSchema.optional(),url:z67.url().optional(),enabled:z67.boolean().optional(),filter:WebhookFilterSchema.optional(),headers:z67.array(WebhookHeaderInputSchema).max(20).optional(),bodyTemplate:JsonValueSchema.nullable().optional(),signingEnabled:z67.boolean().optional(),entryBatchWindowSeconds:WebhookEntryBatchWindowSecondsSchema.optional()}),TestProjectWebhookRequestSchema=z67.object({eventType:WebhookEventTypeSchema.optional(),data:z67.record(z67.string(),JsonValueSchema).optional()}),WebhookDeliveryStatusSchema=z67.enum(["pending","delivering","retrying","succeeded","failed"]),ProjectWebhookDTOSchema=BaseEntitySchema.extend({projectId:z67.uuid(),name:z67.string(),eventType:WebhookEventTypeSchema,enabled:z67.boolean(),destination:z67.object({host:z67.string(),maskedUrl:z67.string(),kind:WebhookDestinationKindSchema}),filter:WebhookFilterSchema,headers:z67.array(WebhookHeaderDTOSchema),bodyTemplate:JsonValueSchema.nullable(),signingEnabled:z67.boolean(),entryBatchWindowSeconds:WebhookEntryBatchWindowSecondsSchema,lastDeliveryStatus:WebhookDeliveryStatusSchema.nullable(),lastDeliveryAt:z67.coerce.date().nullable(),deliveryStats24h:z67.object({succeeded:z67.number().int().nonnegative(),failed:z67.number().int().nonnegative()})}),ProjectWebhookDTO=createDTO(ProjectWebhookDTOSchema),WebhookDeliveryDTOSchema=BaseEntitySchema.extend({webhookId:z67.uuid(),projectId:z67.uuid(),env:EnvSchema,environment:EnvironmentKeySchema,branch:EnvSchema,eventId:z67.uuid(),eventType:WebhookEventTypeSchema,eventVersion:z67.number().int().positive(),test:z67.boolean(),status:WebhookDeliveryStatusSchema,attemptCount:z67.number().int().nonnegative(),responseStatus:z67.number().int().nullable(),lastErrorCode:z67.string().nullable(),lastErrorMessage:z67.string().nullable(),payloadAvailable:z67.boolean(),destination:z67.object({host:z67.string(),maskedUrl:z67.string(),kind:WebhookDestinationKindSchema}),requestHeaders:z67.array(WebhookHeaderDTOSchema),requestBodyExcerpt:z67.string().nullable(),qstashMessageId:z67.string().nullable(),deliveredAt:z67.coerce.date().nullable()}),WebhookDeliveryDTO=createDTO(WebhookDeliveryDTOSchema),WebhookDeliveriesPageSchema=z67.object({items:z67.array(WebhookDeliveryDTOSchema),pagination:z67.object({page:z67.number().int().positive(),limit:z67.number().int().positive(),total:z67.number().int().nonnegative(),totalPages:z67.number().int().positive(),hasMore:z67.boolean()}),stats:z67.object({total:z67.number().int().nonnegative(),succeeded:z67.number().int().nonnegative(),failed:z67.number().int().nonnegative()})}),WebhookDeliveryAttemptDTOSchema=z67.object({id:z67.uuid(),deliveryId:z67.uuid(),attempt:z67.number().int().positive(),status:z67.enum(["delivering","succeeded","failed"]),responseStatus:z67.number().int().nullable(),durationMs:z67.number().int().nonnegative(),responseExcerpt:z67.string().nullable(),errorCode:z67.string().nullable(),errorMessage:z67.string().nullable(),createdAt:z67.coerce.date()}),WebhookDeliveryAttemptDTO=createDTO(WebhookDeliveryAttemptDTOSchema),ProjectWebhookResponseSchema=createResponseSchema(ProjectWebhookDTOSchema),ProjectWebhooksListResponseSchema=createResponseSchema(z67.array(ProjectWebhookDTOSchema)),WebhookDeliveriesListResponseSchema=createResponseSchema(WebhookDeliveriesPageSchema),WebhookDeliveryAttemptsListResponseSchema=createResponseSchema(z67.array(WebhookDeliveryAttemptDTOSchema))}});import{z as z68}from"zod";var PreviewFeatureDTOSchema,PreviewFeatureDTO,init_preview_feature_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/preview-feature.dto.js"(){"use strict";init_create_dto();PreviewFeatureDTOSchema=z68.object({key:z68.literal("fimo-2"),enabled:z68.boolean(),dismissed:z68.boolean().default(!1),interacted:z68.boolean().default(!1)}),PreviewFeatureDTO=createDTO(PreviewFeatureDTOSchema)}});import{z as z69}from"zod";var SubscriptionStatusSchema,CreditBalanceBreakdownDTOSchema,CreditBalanceBreakdownDTO,SubscriptionPlanDTOSchema,SubscriptionPlanDTO,SubscriptionPaymentMethodDTOSchema,SubscriptionPaymentMethodDTO,SubscriptionPricingDTOSchema,SubscriptionPricingDTO,SubscriptionDetailsDTOSchema,SubscriptionDetailsDTO,CreditAlertDTOSchema,CreditAlertDTO,PlanAllocationDTOSchema,PlanAllocationDTO,LatestCancellationDTOSchema,LatestCancellationDTO,OrganizationSubscriptionDTOSchema,OrganizationSubscriptionDTO,BaseCreditTopupRequestSchema,FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema,CreditTopupRequestDTOSchema,CreditTopupRequestDTO,CreditTopupResponseDTOSchema,CreditTopupResponseDTO,init_subscription_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/subscription.dto.js"(){"use strict";init_common();init_create_dto();init_billing_dto();SubscriptionStatusSchema=z69.enum(["active","cancelled","draft","errored","paused","pending","voided"]),CreditBalanceBreakdownDTOSchema=z69.object({total:z69.number(),base:z69.number(),purchases:z69.number(),awards:z69.number()}),CreditBalanceBreakdownDTO=createDTO(CreditBalanceBreakdownDTOSchema),SubscriptionPlanDTOSchema=z69.object({id:z69.string(),name:z69.string()}),SubscriptionPlanDTO=createDTO(SubscriptionPlanDTOSchema),SubscriptionPaymentMethodDTOSchema=z69.object({type:z69.string(),brand:z69.string().nullable(),last4:z69.string().nullable(),expirationDate:z69.string().nullable()}),SubscriptionPaymentMethodDTO=createDTO(SubscriptionPaymentMethodDTOSchema),SubscriptionPricingDTOSchema=z69.object({currency:z69.string(),nextPaymentAmount:z69.number().nullable(),nextPaymentAt:z69.string().nullable(),billingInterval:z69.string().nullable(),totalAmount:z69.number().nullable(),discountAmount:z69.number().nullable()}),SubscriptionPricingDTO=createDTO(SubscriptionPricingDTOSchema),SubscriptionDetailsDTOSchema=z69.object({id:z69.string(),status:SubscriptionStatusSchema,plan:SubscriptionPlanDTOSchema.nullable(),currentPeriodStartedAt:z69.string().nullable(),currentPeriodEndsAt:z69.string().nullable(),renewsAt:z69.string().nullable(),cancelAt:z69.string().nullable(),renewAutomatically:z69.boolean(),pricing:SubscriptionPricingDTOSchema.nullable(),paymentMethod:SubscriptionPaymentMethodDTOSchema.nullable()}),SubscriptionDetailsDTO=createDTO(SubscriptionDetailsDTOSchema),CreditAlertDTOSchema=z69.object({type:z69.enum(["low_balance","critical_balance","approaching_limit"]),message:z69.string(),estimatedPromptsRemaining:z69.number().nullable(),avgCostPerPrompt:z69.number().nullable()}),CreditAlertDTO=createDTO(CreditAlertDTOSchema),PlanAllocationDTOSchema=z69.object({monthlyCredits:z69.number().nullable(),usedThisPeriod:z69.number(),remainingThisPeriod:z69.number()}),PlanAllocationDTO=createDTO(PlanAllocationDTOSchema),LatestCancellationDTOSchema=z69.object({organizationId:z69.string(),planCode:TemplateCodeSchema,reason:CancellationReasonCodeSchema,details:z69.string().nullable(),tenureDays:z69.number().int().nonnegative(),capturedAt:z69.string()}),LatestCancellationDTO=createDTO(LatestCancellationDTOSchema),OrganizationSubscriptionDTOSchema=z69.object({hasSubscription:z69.boolean(),subscription:SubscriptionDetailsDTOSchema.nullable(),credits:CreditBalanceBreakdownDTOSchema,planAllocation:PlanAllocationDTOSchema.nullable(),lowBalanceThreshold:z69.number().nullable(),alerts:z69.array(CreditAlertDTOSchema),portalUrl:z69.string().nullable(),latestCancellation:LatestCancellationDTOSchema.nullable()}),OrganizationSubscriptionDTO=createDTO(OrganizationSubscriptionDTOSchema),BaseCreditTopupRequestSchema=z69.object({creditCount:z69.number().int().positive(),expiresAt:z69.string().datetime().nullable().optional(),message:z69.string().nullable().optional()}),FreeCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z69.literal("free"),amountCents:z69.number().int().positive().nullable().optional()}),PurchaseCreditTopupRequestSchema=BaseCreditTopupRequestSchema.extend({type:z69.literal("purchase"),amountCents:z69.number().int().positive()}),CreditTopupRequestDTOSchema=z69.discriminatedUnion("type",[FreeCreditTopupRequestSchema,PurchaseCreditTopupRequestSchema]),CreditTopupRequestDTO=createDTO(CreditTopupRequestDTOSchema),CreditTopupResponseDTOSchema=z69.object({success:z69.boolean(),transactionId:z69.string().nullable(),newBalance:z69.number(),creditCount:z69.number(),type:z69.enum(["free","purchase"]),invoiceId:z69.string().nullable()}),CreditTopupResponseDTO=createDTO(CreditTopupResponseDTOSchema)}});import{z as z70}from"zod";var UsageSummaryDTOSchema,UsageSummaryDTO,UsageByProjectDTOSchema,UsageByProjectDTO,UsageByUserDTOSchema,UsageByUserDTO,UsageTimelineItemDTOSchema,UsageTimelineItemDTO,UsageByUserForProjectDTOSchema,UsageByUserForProjectDTO,ProjectUsageDetailDTOSchema,ProjectUsageDetailDTO,OrganizationUsageDTOSchema,OrganizationUsageDTO,init_usage_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage.dto.js"(){"use strict";init_create_dto();UsageSummaryDTOSchema=z70.object({totalCredits:z70.number(),totalCostUsd:z70.number(),totalMessages:z70.number(),avgCostPerMessage:z70.number(),periodStart:z70.string().nullable(),periodEnd:z70.string().nullable()}),UsageSummaryDTO=createDTO(UsageSummaryDTOSchema),UsageByProjectDTOSchema=z70.object({projectId:z70.string(),projectName:z70.string(),projectDisplayName:z70.string().nullable(),credits:z70.number(),costUsd:z70.number(),messages:z70.number(),percentage:z70.number()}),UsageByProjectDTO=createDTO(UsageByProjectDTOSchema),UsageByUserDTOSchema=z70.object({userId:z70.string(),userName:z70.string().nullable(),userEmail:z70.string().email().nullable(),credits:z70.number(),costUsd:z70.number(),messages:z70.number(),percentage:z70.number()}),UsageByUserDTO=createDTO(UsageByUserDTOSchema),UsageTimelineItemDTOSchema=z70.object({date:z70.string(),credits:z70.number(),costUsd:z70.number(),messages:z70.number()}),UsageTimelineItemDTO=createDTO(UsageTimelineItemDTOSchema),UsageByUserForProjectDTOSchema=z70.object({userId:z70.string(),userName:z70.string().nullable(),userEmail:z70.string().email().nullable(),credits:z70.number(),costUsd:z70.number(),messages:z70.number(),percentage:z70.number()}),UsageByUserForProjectDTO=createDTO(UsageByUserForProjectDTOSchema),ProjectUsageDetailDTOSchema=z70.object({projectId:z70.string(),projectName:z70.string(),projectDisplayName:z70.string().nullable(),summary:UsageSummaryDTOSchema,byUser:z70.array(UsageByUserForProjectDTOSchema),timeline:z70.array(UsageTimelineItemDTOSchema)}),ProjectUsageDetailDTO=createDTO(ProjectUsageDetailDTOSchema),OrganizationUsageDTOSchema=z70.object({summary:UsageSummaryDTOSchema,byProject:z70.array(UsageByProjectDTOSchema),byUser:z70.array(UsageByUserDTOSchema),timeline:z70.array(UsageTimelineItemDTOSchema)}),OrganizationUsageDTO=createDTO(OrganizationUsageDTOSchema)}});import{z as z71}from"zod";var TimeRangePresetSchema,SortOrderSchema,UsageAnalyticsQuerySchema,UsageOverviewSummaryDTOSchema,UsageOverviewSummaryDTO,UsageTimelinePointDTOSchema,UsageTimelinePointDTO,OrganizationUsageRowDTOSchema,OrganizationUsageRowDTO,UserUsageRowDTOSchema,UserUsageRowDTO,ProjectUsageRowDTOSchema,ProjectUsageRowDTO,UsageDistributionItemDTOSchema,UsageDistributionItemDTO,UsageHeatmapPointDTOSchema,UsageHeatmapPointDTO,UsageOverviewResponseDTOSchema,UsageOverviewResponseDTO,UsagePaginationDTOSchema,UsagePaginationDTO,UsageByOrganizationResponseDTOSchema,UsageByOrganizationResponseDTO,ExtendedUserUsageRowDTOSchema,ExtendedUserUsageRowDTO,UsageByUserResponseDTOSchema,UsageByUserResponseDTO,ExtendedProjectUsageRowDTOSchema,ExtendedProjectUsageRowDTO,UsageByProjectResponseDTOSchema,UsageByProjectResponseDTO,ExportFormatSchema,UsageExportQuerySchema,PeekUsageMetricsDTOSchema,PeekUsageMetricsDTO,OrganizationPeekDTOSchema,OrganizationPeekDTO,UserPeekDTOSchema,UserPeekDTO,ProjectPeekDTOSchema,ProjectPeekDTO,init_usage_analytics_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/usage-analytics.dto.js"(){"use strict";init_create_dto();TimeRangePresetSchema=z71.enum(["today","1d","7d","14d","30d","60d","90d"]),SortOrderSchema=z71.enum(["asc","desc"]),UsageAnalyticsQuerySchema=z71.object({startDate:z71.string().optional(),endDate:z71.string().optional(),preset:TimeRangePresetSchema.optional().default("30d"),page:z71.coerce.number().int().positive().default(1),limit:z71.coerce.number().int().positive().max(100).default(20),sortBy:z71.string().optional(),sortOrder:SortOrderSchema.optional().default("desc"),search:z71.string().optional(),activeOnly:z71.stringbool().optional().default(!0)}),UsageOverviewSummaryDTOSchema=z71.object({totalCredits:z71.number(),totalCostUsd:z71.number(),totalMessages:z71.number(),avgCostPerMessage:z71.number(),avgCreditsPerMessage:z71.number(),periodStart:z71.string(),periodEnd:z71.string(),creditsChange:z71.number().nullable(),costChange:z71.number().nullable(),messagesChange:z71.number().nullable(),unattributedCredits:z71.number(),unattributedCostUsd:z71.number(),unattributedMessages:z71.number()}),UsageOverviewSummaryDTO=createDTO(UsageOverviewSummaryDTOSchema),UsageTimelinePointDTOSchema=z71.object({date:z71.string(),credits:z71.number(),costUsd:z71.number(),messages:z71.number()}),UsageTimelinePointDTO=createDTO(UsageTimelinePointDTOSchema),OrganizationUsageRowDTOSchema=z71.object({organizationId:z71.string(),organizationName:z71.string(),credits:z71.number(),costUsd:z71.number(),messages:z71.number(),percentage:z71.number(),userCount:z71.number(),projectCount:z71.number()}),OrganizationUsageRowDTO=createDTO(OrganizationUsageRowDTOSchema),UserUsageRowDTOSchema=z71.object({userId:z71.string(),userName:z71.string().nullable(),userEmail:z71.string().nullable(),userImage:z71.string().nullable(),organizationId:z71.string().nullable(),organizationName:z71.string().nullable(),credits:z71.number(),costUsd:z71.number(),messages:z71.number(),percentage:z71.number(),projectCount:z71.number()}),UserUsageRowDTO=createDTO(UserUsageRowDTOSchema),ProjectUsageRowDTOSchema=z71.object({projectId:z71.string(),projectName:z71.string(),projectDisplayName:z71.string().nullable(),organizationId:z71.string(),organizationName:z71.string(),credits:z71.number(),costUsd:z71.number(),messages:z71.number(),percentage:z71.number(),userCount:z71.number()}),ProjectUsageRowDTO=createDTO(ProjectUsageRowDTOSchema),UsageDistributionItemDTOSchema=z71.object({id:z71.string(),name:z71.string(),value:z71.number(),percentage:z71.number()}),UsageDistributionItemDTO=createDTO(UsageDistributionItemDTOSchema),UsageHeatmapPointDTOSchema=z71.object({day:z71.number(),hour:z71.number(),value:z71.number()}),UsageHeatmapPointDTO=createDTO(UsageHeatmapPointDTOSchema),UsageOverviewResponseDTOSchema=z71.object({summary:UsageOverviewSummaryDTOSchema,timeline:z71.array(UsageTimelinePointDTOSchema),topOrganizations:z71.array(OrganizationUsageRowDTOSchema),topUsers:z71.array(UserUsageRowDTOSchema),topProjects:z71.array(ProjectUsageRowDTOSchema),creditDistribution:z71.array(UsageDistributionItemDTOSchema),userDistribution:z71.array(UsageDistributionItemDTOSchema),heatmap:z71.array(UsageHeatmapPointDTOSchema)}),UsageOverviewResponseDTO=createDTO(UsageOverviewResponseDTOSchema),UsagePaginationDTOSchema=z71.object({page:z71.number(),limit:z71.number(),totalItems:z71.number(),totalPages:z71.number(),hasMore:z71.boolean()}),UsagePaginationDTO=createDTO(UsagePaginationDTOSchema),UsageByOrganizationResponseDTOSchema=z71.object({organizations:z71.array(OrganizationUsageRowDTOSchema),top:z71.array(OrganizationUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByOrganizationResponseDTO=createDTO(UsageByOrganizationResponseDTOSchema),ExtendedUserUsageRowDTOSchema=UserUsageRowDTOSchema.extend({organizationCount:z71.number()}),ExtendedUserUsageRowDTO=createDTO(ExtendedUserUsageRowDTOSchema),UsageByUserResponseDTOSchema=z71.object({users:z71.array(ExtendedUserUsageRowDTOSchema),top:z71.array(ExtendedUserUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByUserResponseDTO=createDTO(UsageByUserResponseDTOSchema),ExtendedProjectUsageRowDTOSchema=ProjectUsageRowDTOSchema.extend({ownerId:z71.string(),ownerName:z71.string().nullable(),ownerEmail:z71.string().nullable()}),ExtendedProjectUsageRowDTO=createDTO(ExtendedProjectUsageRowDTOSchema),UsageByProjectResponseDTOSchema=z71.object({projects:z71.array(ExtendedProjectUsageRowDTOSchema),top:z71.array(ExtendedProjectUsageRowDTOSchema),summary:UsageOverviewSummaryDTOSchema,pagination:UsagePaginationDTOSchema}),UsageByProjectResponseDTO=createDTO(UsageByProjectResponseDTOSchema),ExportFormatSchema=z71.enum(["csv","json"]),UsageExportQuerySchema=UsageAnalyticsQuerySchema.extend({format:ExportFormatSchema.default("csv"),type:z71.enum(["overview","organizations","users","projects"]).default("overview")}),PeekUsageMetricsDTOSchema=z71.object({credits:z71.number(),costUsd:z71.number(),messages:z71.number()}),PeekUsageMetricsDTO=createDTO(PeekUsageMetricsDTOSchema),OrganizationPeekDTOSchema=z71.object({id:z71.string(),name:z71.string(),createdAt:z71.string(),memberCount:z71.number(),projectCount:z71.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z71.array(UsageTimelinePointDTOSchema)}),OrganizationPeekDTO=createDTO(OrganizationPeekDTOSchema),UserPeekDTOSchema=z71.object({id:z71.string(),name:z71.string().nullable(),email:z71.string(),image:z71.string().nullable(),createdAt:z71.string(),organizationCount:z71.number(),projectCount:z71.number(),usage:PeekUsageMetricsDTOSchema,recentActivity:z71.array(UsageTimelinePointDTOSchema)}),UserPeekDTO=createDTO(UserPeekDTOSchema),ProjectPeekDTOSchema=z71.object({id:z71.string(),name:z71.string(),displayName:z71.string().nullable(),createdAt:z71.string(),organizationId:z71.string(),organizationName:z71.string(),ownerId:z71.string(),ownerName:z71.string().nullable(),ownerEmail:z71.string().nullable(),usage:PeekUsageMetricsDTOSchema,recentActivity:z71.array(UsageTimelinePointDTOSchema)}),ProjectPeekDTO=createDTO(ProjectPeekDTOSchema)}});import{z as z72}from"zod";var SandboxProcessStatusSchema,PresetSandboxCommandSchema,ExecuteSandboxCommandRequestDTOSchema,ExecuteSandboxCommandRequestDTO,SandboxProcessInfoDTOSchema,SandboxProcessInfoDTO,SandboxProcessInfoResponseSchema,SandboxProcessListDTOSchema,SandboxProcessListDTO,SandboxProcessListResponseSchema,ExecuteSandboxCommandResponseDTOSchema,ExecuteSandboxCommandResponseDTO,PresetCommandResponseDTOSchema,PresetCommandResponseDTO,PresetCommandResponseSchema,init_sandbox_command_dto=__esm({"../../packages/api-contracts/dist/esm/dtos/admin/sandbox-command.dto.js"(){"use strict";init_env();init_create_dto();init_response();SandboxProcessStatusSchema=z72.enum(["running","completed","failed","stopped"]),PresetSandboxCommandSchema=z72.enum(["restart-dev-server","stop-dev-server","install-dependencies","reinstall-dependencies","build","typecheck"]),ExecuteSandboxCommandRequestDTOSchema=z72.object({command:z72.string().min(1).max(1e4),cwd:z72.string().optional(),projectEnv:EnvSchema.optional(),env:z72.record(z72.string(),z72.string()).optional(),name:z72.string().optional(),waitForCompletion:z72.boolean().optional().default(!1)}),ExecuteSandboxCommandRequestDTO=createDTO(ExecuteSandboxCommandRequestDTOSchema),SandboxProcessInfoDTOSchema=z72.object({identifier:z72.string(),status:SandboxProcessStatusSchema,command:z72.string().optional(),startedAt:z72.string().optional(),exitCode:z72.number().optional()}),SandboxProcessInfoDTO=createDTO(SandboxProcessInfoDTOSchema),SandboxProcessInfoResponseSchema=createResponseSchema(SandboxProcessInfoDTOSchema),SandboxProcessListDTOSchema=z72.object({processes:z72.array(SandboxProcessInfoDTOSchema)}),SandboxProcessListDTO=createDTO(SandboxProcessListDTOSchema),SandboxProcessListResponseSchema=createResponseSchema(SandboxProcessListDTOSchema),ExecuteSandboxCommandResponseDTOSchema=z72.object({processId:z72.string(),status:SandboxProcessStatusSchema}),ExecuteSandboxCommandResponseDTO=createDTO(ExecuteSandboxCommandResponseDTOSchema),PresetCommandResponseDTOSchema=z72.object({success:z72.boolean(),message:z72.string().optional()}),PresetCommandResponseDTO=createDTO(PresetCommandResponseDTOSchema),PresetCommandResponseSchema=createResponseSchema(PresetCommandResponseDTOSchema)}});import{z as z73}from"zod";var init_esm=__esm({"../../packages/api-contracts/dist/esm/index.js"(){"use strict";init_create_dto();init_response();init_pagination();init_common();init_attachments();init_asset_reading();init_env();init_environment();init_realtime();init_references();init_content_fields();init_audit_log();init_ops();init_chat_block();init_fimo_config();init_page_sources();init_project_dto();init_project_env_dto();init_project_environment_dto();init_project_secret_dto();init_project_import_export_dto();init_agent_trigger_dto();init_agent_list_item_dto();init_agent_run_dto();init_agent_session_dto();init_agent_proposal_dto();init_agent_question_dto();init_agent_install_summary_dto();init_integration_dto();init_schedule_dto();init_schedule_notifications_dto();init_notification_dto();init_audit_log_dto();init_env_status_dto();init_env_diff_summary_dto();init_project_analytics_dto();init_project_access_dto();init_project_invite_dto();init_publication_dto();init_sandbox_dto();init_organization_dto();init_billing_dto();init_payment_method_dto();init_user_dto();init_content_dto();init_unique_conflict_dto();init_schema_transition_rejected_dto();init_cms_display_defaults_dto();init_asset_dto();init_translation_dto();init_document_dto();init_chat_dto();init_upload_dto();init_service_dto();init_search_dto();init_registered_domain_dto();init_project_domain_dto();init_project_subdomain_dto();init_project_locale_dto();init_generation_dto();init_generation_task_dto();init_asset_model_dto();init_tour_dto();init_support_report_dto();init_ops_chat_dto();init_ops_sentry_dto();init_ops_project_files_dto();init_webhook_dto();init_preview_feature_dto();init_subscription_dto();init_usage_dto();init_usage_analytics_dto();init_sandbox_command_dto()}});import{createHash}from"node:crypto";function normalizeApiUrl(input){let trimmed=input.trim();try{let url=new URL(trimmed),pathname=url.pathname.replace(/\/+$/,"");return`${url.protocol}//${url.host}${pathname}`}catch{return trimmed.replace(/\/+$/,"")}}function hashApiUrl(input){return createHash("sha256").update(normalizeApiUrl(input)).digest("hex").slice(0,6)}function safeHostLabel(host){return host.replace(/:/g,"-").replace(/[^a-zA-Z0-9.-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").toLowerCase()}function credentialsFilename(apiUrl){let normalized=normalizeApiUrl(apiUrl),hostLabel="unknown";try{hostLabel=safeHostLabel(new URL(normalized).host)}catch{}return hostLabel.length===0&&(hostLabel="unknown"),`${hostLabel}-${hashApiUrl(apiUrl)}.json`}var init_credentials_path=__esm({"src/cli/utils/credentials-path.ts"(){__name(normalizeApiUrl,"normalizeApiUrl");__name(hashApiUrl,"hashApiUrl");__name(safeHostLabel,"safeHostLabel");__name(credentialsFilename,"credentialsFilename")}});import fs from"node:fs";import{homedir}from"node:os";import path,{join}from"node:path";import{fileURLToPath}from"node:url";function readReleaseManifest(){try{let raw=fs.readFileSync(RELEASE_FILE,"utf8"),parsed=JSON.parse(raw),manifest={};return typeof parsed.apiUrl=="string"&&parsed.apiUrl.length>0&&(manifest.apiUrl=parsed.apiUrl),typeof parsed.webUrl=="string"&&parsed.webUrl.length>0&&(manifest.webUrl=parsed.webUrl),manifest}catch{return{}}}function loadConfig(){let baked=readReleaseManifest(),apiUrl=process.env.FIMO_API_URL?.trim()||baked.apiUrl||DEFAULT_API_URL,webUrl=process.env.FIMO_WEB_URL?.trim()||baked.webUrl||DEFAULT_WEB_URL,configDir=join(process.env.XDG_CONFIG_HOME||join(homedir(),".config"),"fimo"),credentialsDir=join(configDir,"credentials");return{apiUrl,webUrl,configDir,credentialsDir,credentialsFile:join(credentialsDir,credentialsFilename(apiUrl))}}var DEFAULT_API_URL,DEFAULT_WEB_URL,THIS_FILE,CLI_ROOT,RELEASE_FILE,init_config=__esm({"src/cli/config.ts"(){init_credentials_path();DEFAULT_API_URL="http://localhost:3000",DEFAULT_WEB_URL="http://localhost:5173",THIS_FILE=fileURLToPath(import.meta.url),CLI_ROOT=path.resolve(path.dirname(THIS_FILE),"..",".."),RELEASE_FILE=path.resolve(CLI_ROOT,"release.json");__name(readReleaseManifest,"readReleaseManifest");__name(loadConfig,"loadConfig")}});import fs2 from"node:fs";function ensureCredentialsDir(cfg){fs2.existsSync(cfg.credentialsDir)||fs2.mkdirSync(cfg.credentialsDir,{recursive:!0})}function readCredentials(cfg=loadConfig()){if(!fs2.existsSync(cfg.credentialsFile))return null;let raw=fs2.readFileSync(cfg.credentialsFile,"utf-8");return JSON.parse(raw)}function writeCredentials(credentials,cfg=loadConfig()){ensureCredentialsDir(cfg);let tmpFile=`${cfg.credentialsFile}.tmp-${process.pid}`;fs2.writeFileSync(tmpFile,JSON.stringify(credentials,null,2)),fs2.renameSync(tmpFile,cfg.credentialsFile)}function clearCredentials(cfg=loadConfig()){fs2.existsSync(cfg.credentialsFile)&&fs2.unlinkSync(cfg.credentialsFile)}function setActiveOrganization(organization,cfg=loadConfig()){let creds=requireCredentials(cfg);writeCredentials({...creds,activeOrganization:organization},cfg)}function recordAuthFailure(cfg=loadConfig()){let creds=readCredentials(cfg);creds&&writeCredentials({...creds,lastFailedAuthAt:new Date().toISOString()},cfg)}function requireToken(cfg=loadConfig()){return requireCredentials(cfg).access_token}function requireCredentials(cfg=loadConfig()){let creds=readCredentials(cfg);if(!creds?.access_token)throw new NotAuthenticatedError(cfg.apiUrl);return creds}var NotAuthenticatedError,init_auth=__esm({"src/cli/auth.ts"(){init_config();NotAuthenticatedError=class extends Error{static{__name(this,"NotAuthenticatedError")}apiUrl;constructor(apiUrl,message="You are not signed in to Fimo."){super(message),this.name="NotAuthenticatedError",this.apiUrl=apiUrl}};__name(ensureCredentialsDir,"ensureCredentialsDir");__name(readCredentials,"readCredentials");__name(writeCredentials,"writeCredentials");__name(clearCredentials,"clearCredentials");__name(setActiveOrganization,"setActiveOrganization");__name(recordAuthFailure,"recordAuthFailure");__name(requireToken,"requireToken");__name(requireCredentials,"requireCredentials")}});import{spawnSync}from"node:child_process";import fs3 from"node:fs";import path2 from"node:path";import{setTimeout as sleep}from"node:timers/promises";function isPublishedInstall(cliRoot=CLI_ROOT){return fs3.existsSync(path2.join(cliRoot,"release.json"))}function buildSkipsVersionCheck(cliRoot=CLI_ROOT,readFile7=defaultReadFile){try{return JSON.parse(readFile7(path2.join(cliRoot,"release.json"))).skipVersionCheck===!0}catch{return!1}}function defaultReadFile(file){return fs3.readFileSync(file,"utf8")}function resolveGlobalFimoRoot(){let result=spawnSync("npm",["root","-g"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:GLOBAL_ROOT_TIMEOUT_MS});return result.error||result.status!==0||typeof result.stdout!="string"||result.stdout.trim().length===0?null:path2.resolve(result.stdout.trim(),"fimo")}function normalizedPath(input){try{return fs3.realpathSync(input)}catch{return path2.resolve(input)}}function autoUpgradeEnabled(options={}){let usesDefaults=Object.keys(options).length===0;if(usesDefaults&&defaultEligibility!==void 0)return defaultEligibility;let env=options.env??process.env,cliRoot=options.cliRoot??CLI_ROOT,published=options.published??isPublishedInstall(cliRoot);if(env.FIMO_AUTO_UPGRADE!=="1"||!published||buildSkipsVersionCheck(cliRoot))return usesDefaults&&(defaultEligibility=!1),!1;let globalFimoRoot=options.globalFimoRoot===void 0?resolveGlobalFimoRoot():options.globalFimoRoot;if(!globalFimoRoot)return usesDefaults&&(defaultEligibility=!1),!1;let eligible=normalizedPath(cliRoot)===normalizedPath(globalFimoRoot);return usesDefaults&&(defaultEligibility=eligible),eligible}async function acquireLock(lockDir){let deadline=Date.now()+LOCK_WAIT_MS;for(;;){try{fs3.mkdirSync(lockDir);return}catch(error){if(error.code!=="EEXIST")throw error}let stale=!1;try{stale=Date.now()-fs3.statSync(lockDir).mtimeMs>LOCK_STALE_MS}catch{continue}if(stale){try{fs3.rmdirSync(lockDir)}catch{}continue}if(Date.now()>=deadline)throw new Error("auto-upgrade lock timeout");await sleep(LOCK_POLL_MS)}}function readGlobalFimoVersion(){let root2=resolveGlobalFimoRoot();if(!root2)return null;try{let pkg=JSON.parse(fs3.readFileSync(path2.join(root2,"package.json"),"utf8"));return typeof pkg.version=="string"?pkg.version:null}catch{return null}}async function autoUpgradeGlobal(latest){if(!VERSION_PATTERN.test(latest))return!1;let lockDir=path2.join(loadConfig().configDir,"auto-upgrade.lock");try{fs3.mkdirSync(path2.dirname(lockDir),{recursive:!0}),await acquireLock(lockDir)}catch{return!1}try{if(readGlobalFimoVersion()===latest)return!0;let install=spawnSync("npm",["install","-g",`fimo@${latest}`],{stdio:["ignore","ignore","inherit"],timeout:INSTALL_TIMEOUT_MS});return install.error||install.status!==0?!1:readGlobalFimoVersion()===latest}finally{try{fs3.rmdirSync(lockDir)}catch{}}}var INSTALL_TIMEOUT_MS,GLOBAL_ROOT_TIMEOUT_MS,LOCK_WAIT_MS,LOCK_STALE_MS,LOCK_POLL_MS,VERSION_PATTERN,defaultEligibility,init_auto_upgrade=__esm({"src/cli/auto-upgrade.ts"(){init_config();INSTALL_TIMEOUT_MS=12e4,GLOBAL_ROOT_TIMEOUT_MS=5e3,LOCK_WAIT_MS=18e4,LOCK_STALE_MS=3e5,LOCK_POLL_MS=500,VERSION_PATTERN=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;__name(isPublishedInstall,"isPublishedInstall");__name(buildSkipsVersionCheck,"buildSkipsVersionCheck");__name(defaultReadFile,"defaultReadFile");__name(resolveGlobalFimoRoot,"resolveGlobalFimoRoot");__name(normalizedPath,"normalizedPath");__name(autoUpgradeEnabled,"autoUpgradeEnabled");__name(acquireLock,"acquireLock");__name(readGlobalFimoVersion,"readGlobalFimoVersion");__name(autoUpgradeGlobal,"autoUpgradeGlobal")}});import fs4 from"node:fs";import path3 from"node:path";import{fileURLToPath as fileURLToPath2}from"node:url";function getCliVersion(){try{let raw=fs4.readFileSync(PACKAGE_JSON_PATH,"utf8");return JSON.parse(raw).version??"0.0.0"}catch{return"0.0.0"}}var THIS_FILE2,CLI_ROOT2,PACKAGE_JSON_PATH,init_version=__esm({"src/cli/version.ts"(){THIS_FILE2=fileURLToPath2(import.meta.url),CLI_ROOT2=path3.resolve(path3.dirname(THIS_FILE2),"..",".."),PACKAGE_JSON_PATH=path3.join(CLI_ROOT2,"package.json");__name(getCliVersion,"getCliVersion")}});function lazyFetchQs(against,extras={}){let params=new URLSearchParams;against&¶ms.set("against",against);for(let[k,v]of Object.entries(extras))params.set(k,v);return params.toString()}function publicationIdFromError(error){let body=error instanceof ApiRequestError?error.body:void 0;if(typeof body!="object"||body===null)return null;let candidate=body.publicationId;return typeof candidate=="string"?candidate:null}function throwUnauthorized(cfg,status){try{recordAuthFailure(cfg)}catch{}throw new UnauthorizedError(cfg.apiUrl,status)}async function throwPermissionDenied(cfg,response){let required=[];try{let body=await response.json();required=Array.isArray(body.required)?body.required:body.required?[body.required]:[]}catch{}throw new PermissionDeniedError(cfg.apiUrl,required)}async function fimoFetch(url,init){let headers=new Headers(init.headers);headers.delete(CLI_VERSION_HEADER),headers.delete(CLI_AUTO_UPGRADE_HEADER);let canAutoUpgrade=process.argv[2]!=="git-credential"&&autoUpgradeEnabled();canAutoUpgrade&&(headers.set(CLI_VERSION_HEADER,getCliVersion()),headers.set(CLI_AUTO_UPGRADE_HEADER,"1"));let response=await fetch(url,{...init,headers});if(canAutoUpgrade&&response.status===426){let latest=response.headers.get(CLI_LATEST_HEADER);if(latest){await autoUpgradeGlobal(latest)||ui.warn({command:process.argv[2]??"fimo",message:`Could not upgrade to ${latest}; continuing with the current command.`});let retryHeaders=new Headers(init.headers);return retryHeaders.delete(CLI_VERSION_HEADER),retryHeaders.delete(CLI_AUTO_UPGRADE_HEADER),fetch(url,{...init,headers:retryHeaders})}}return response}function formatZodIssues(parsed){if(!parsed||typeof parsed!="object")return null;let error=parsed.error,issues=error&&typeof error=="object"&&"issues"in error?error.issues:void 0;return!Array.isArray(issues)||issues.length===0?null:issues.map(issue=>{let{path:path52,message}=issue;return`${Array.isArray(path52)&&path52.length>0?`${path52.join(".")}: `:""}${typeof message=="string"?message:"Invalid value"}`}).join("; ")}function formatPartialResult(parsed){if(!parsed.partial||typeof parsed.partial!="object"||Array.isArray(parsed.partial))return null;let partial=parsed.partial,counts=["created","updated","deleted"].flatMap(action=>typeof partial[action]=="number"&&partial[action]>0?[`${partial[action]} ${action}`]:[]);return counts.length>0?`Partial result: ${counts.join(", ")}.`:null}function recoverTenantApiBaseUrl(tenantApiUrl,projectId,env){try{let normalized=tenantApiUrl.replace(/\/$/,""),url=new URL(normalized),prefix=`${projectId}-${envResourceKey(env)}.`;if(!url.hostname.startsWith(prefix))return;url.hostname=url.hostname.slice(prefix.length);let base=url.toString().replace(/\/$/,"");return buildTenantApiUrl(projectId,env,base)===normalized?base:void 0}catch{return}}var SandboxReadinessError,ApiRequestError,UnauthorizedError,PermissionDeniedError,CLI_VERSION_HEADER,CLI_LATEST_HEADER,CLI_AUTO_UPGRADE_HEADER,FIMO_ENV_HEADER,FimoApiClient,init_api=__esm({"src/cli/api.ts"(){init_esm();init_dist();init_auth();init_auto_upgrade();init_config();init_version();__name(lazyFetchQs,"lazyFetchQs");SandboxReadinessError=class extends Error{static{__name(this,"SandboxReadinessError")}constructor(message){super(message),this.name="SandboxReadinessError"}},ApiRequestError=class extends Error{static{__name(this,"ApiRequestError")}status;method;path;detail;code;body;constructor(method,path52,status,detail,code2,body){super(`API ${method} ${path52} failed: ${status} ${detail}`),this.name="ApiRequestError",this.method=method,this.path=path52,this.status=status,this.detail=detail,this.code=code2,this.body=body}};__name(publicationIdFromError,"publicationIdFromError");UnauthorizedError=class extends Error{static{__name(this,"UnauthorizedError")}apiUrl;status;constructor(apiUrl,status,message){super(message??`Session for ${apiUrl} expired or invalid (HTTP ${status}).`),this.name="UnauthorizedError",this.apiUrl=apiUrl,this.status=status}},PermissionDeniedError=class extends Error{static{__name(this,"PermissionDeniedError")}apiUrl;required;constructor(apiUrl,required=[],message){let detail=required.length?` Missing permission: ${required.join(", ")}.`:"";super(message??`You don't have permission to do this on ${apiUrl}.${detail}`),this.name="PermissionDeniedError",this.apiUrl=apiUrl,this.required=required}};__name(throwUnauthorized,"throwUnauthorized");__name(throwPermissionDenied,"throwPermissionDenied");CLI_VERSION_HEADER="X-Fimo-CLI-Version",CLI_LATEST_HEADER="X-Fimo-CLI-Latest",CLI_AUTO_UPGRADE_HEADER="X-Fimo-CLI-Auto-Upgrade",FIMO_ENV_HEADER="X-Fimo-Env";__name(fimoFetch,"fimoFetch");__name(formatZodIssues,"formatZodIssues");__name(formatPartialResult,"formatPartialResult");__name(recoverTenantApiBaseUrl,"recoverTenantApiBaseUrl");FimoApiClient=class _FimoApiClient{constructor(cfg=loadConfig()){this.cfg=cfg}static{__name(this,"FimoApiClient")}env;withEnv(env){let next2=new _FimoApiClient(this.cfg);return next2.env=env,next2}formatError(status,text3,body){if(!text3)return String(status);if(body&&typeof body=="object"&&!Array.isArray(body)){let parsed=body;if(typeof parsed.message=="string"&&parsed.message.length>0){let partial=formatPartialResult(parsed);return partial?`${parsed.message} ${partial}`:parsed.message}if(typeof parsed.error=="string"&&parsed.error.length>0)return parsed.error;if(parsed.error&&typeof parsed.error=="object"&&"message"in parsed.error&&typeof parsed.error.message=="string")return parsed.error.message;let zodIssues=formatZodIssues(parsed);if(zodIssues)return zodIssues}return text3}async parseError(response){let text3=await response.text(),body;try{body=text3?JSON.parse(text3):void 0}catch{return{detail:this.formatError(response.status,text3)}}let code2=body&&typeof body=="object"&&!Array.isArray(body)&&typeof body.code=="string"?body.code:void 0;return{detail:this.formatError(response.status,text3,body),code:code2,body}}resolveAuthToken(){return process.env.FIMO_API_TOKEN?.trim()||requireToken(this.cfg)}async request(path52,init={},opts={}){let token=this.resolveAuthToken(),headers=new Headers(init.headers);headers.set("Authorization",`Bearer ${token}`),init.body&&!headers.has("Content-Type")&&headers.set("Content-Type","application/json"),this.env&&!headers.has(FIMO_ENV_HEADER)&&headers.set(FIMO_ENV_HEADER,this.env);let response=await fimoFetch(`${this.cfg.apiUrl}${path52}`,{...init,headers});if(response.status===401&&throwUnauthorized(this.cfg,response.status),response.status===403&&!opts.allow403&&await throwPermissionDenied(this.cfg,response),!response.ok){let error=await this.parseError(response);throw new ApiRequestError(init.method??"GET",path52,response.status,error.detail,error.code,error.body)}if(response.status!==204)return await response.json()}async fetchRaw(path52,init={}){let token=this.resolveAuthToken(),headers=new Headers(init.headers);return headers.set("Authorization",`Bearer ${token}`),init.body&&!headers.has("Content-Type")&&headers.set("Content-Type","application/json"),this.env&&!headers.has(FIMO_ENV_HEADER)&&headers.set(FIMO_ENV_HEADER,this.env),fimoFetch(`${this.cfg.apiUrl}${path52}`,{...init,headers})}async rawRequest(path52,init={}){let token=this.resolveAuthToken(),headers=new Headers(init.headers);headers.set("Authorization",`Bearer ${token}`),this.env&&!headers.has(FIMO_ENV_HEADER)&&headers.set(FIMO_ENV_HEADER,this.env);let response=await fimoFetch(`${this.cfg.apiUrl}${path52}`,{...init,headers});if(response.status===401&&throwUnauthorized(this.cfg,response.status),response.status===403&&await throwPermissionDenied(this.cfg,response),!response.ok){let error=await this.parseError(response);throw new Error(`API ${init.method??"GET"} ${path52} failed: ${response.status} ${error.detail}`)}return response}tenantPath(projectId,route){if(!this.env)throw new Error("FimoApiClient: tenant-scoped call requires an env. Use `client.withEnv(env)` before calling tenant CRUD methods.");return`/api/tenant/${projectId}/envs/${encodeEnvPathSegment(this.env)}${route}`}projectEnvManagementPath(projectId,route){if(!this.env)throw new Error("FimoApiClient: env-scoped management call requires an env. Use `client.withEnv(env)` before calling env CRUD methods.");return`/api/management/projects/${projectId}/envs/${encodeEnvPathSegment(this.env)}${route}`}async listModels(projectId,query={}){let params=new URLSearchParams;query.modality&¶ms.set("modality",query.modality);for(let t2 of query.tag??[])params.append("tag",t2);query.q&¶ms.set("q",query.q),query.category&¶ms.set("category",query.category);let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/integrations/fal/models${qs?`?${qs}`:""}`)).data}async getModel(projectId,key){try{return(await this.request(`/api/management/projects/${projectId}/integrations/fal/models/${key}`)).data}catch(err){if(err instanceof ApiRequestError&&err.status===404)return null;throw err}}async estimateModel(projectId,key,options){return(await this.request(`/api/management/projects/${projectId}/integrations/fal/models/estimate`,{method:"POST",body:JSON.stringify({model:key,options})})).data}async estimateGenerationTask(projectId,key,options){return(await this.request(this.tenantPath(projectId,"/assets/generate/estimate"),{method:"POST",body:JSON.stringify({task:key,options})})).data}async listOrganizations(){return(await this.request("/api/management/organizations")).data}async listOrganizationMembers(organizationId){return(await this.request(`/api/auth/organization/get-full-organization?organizationId=${encodeURIComponent(organizationId)}`))?.members??[]}async inviteOrganizationMember(input){return this.request("/api/auth/organization/invite-member",{method:"POST",body:JSON.stringify(input)})}async getCurrentSession(){return this.request("/api/auth/get-session")}async submitSupportIssue(input){return(await this.request("/api/support/issues",{method:"POST",body:JSON.stringify(input)})).data}async getReferralSummary(userId){return(await this.request(`/api/users/${encodeURIComponent(userId)}/referrals/summary`)).data}async listProjects(organizationId){return(await this.request(`/api/management/organizations/${encodeURIComponent(organizationId)}/projects`)).data}async publishProject(projectId,request={}){return(await this.request(`/api/management/projects/${projectId}/publish`,{method:"POST",body:JSON.stringify(request)}))?.data?.publicationId??null}async listPublications(projectId,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit)),query.before&¶ms.set("before",query.before);let search=params.toString();return(await this.request(`/api/management/projects/${projectId}/publications${search?`?${search}`:""}`)).data}async getPublication(projectId,publicationId){return(await this.request(`/api/management/projects/${projectId}/publications/${encodeURIComponent(publicationId)}`)).data}async getPublicationLogs(projectId,publicationId,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit));let search=params.toString();return(await this.request(`/api/management/projects/${projectId}/publications/${encodeURIComponent(publicationId)}/logs${search?`?${search}`:""}`)).data}async unpublishProject(projectId){await this.request(`/api/management/projects/${projectId}/unpublish`,{method:"POST"})}async createProject(input){return(await this.request("/api/management/projects",{method:"POST",body:JSON.stringify({...input,source:"cli"})})).data}async getProject(projectId){return(await this.request(`/api/management/projects/${projectId}`)).data}async getProjectCredits(projectId){return(await this.request(`/api/management/projects/${projectId}/billing/credits`)).data}async listProjectVersions(projectId,options){let params=new URLSearchParams({limit:String(options.limit)});return options.cursor&¶ms.set("cursor",options.cursor),(await this.request(`${this.projectEnvManagementPath(projectId,"/versions")}?${params.toString()}`)).data}async getProjectHistorySummary(projectId){return(await this.request(this.projectEnvManagementPath(projectId,"/versions/summary"))).data}async getProjectVersion(projectId,versionId){return(await this.request(this.projectEnvManagementPath(projectId,`/versions/${encodeURIComponent(versionId)}`))).data}async createProjectVersion(projectId,input){return(await this.request(this.projectEnvManagementPath(projectId,"/versions"),{method:"POST",body:JSON.stringify(input)})).data}async restoreProjectVersion(projectId,versionId){return(await this.request(this.projectEnvManagementPath(projectId,`/versions/${encodeURIComponent(versionId)}/restore`),{method:"POST"})).data}async listProjectSecretEntries(projectId,opts){let query=new URLSearchParams({environment:opts.environment});return opts.kind&&query.set("kind",opts.kind),(await this.request(`/api/management/projects/${projectId}/secrets?${query.toString()}`)).data}async createProjectSecretEntry(input){return(await this.request(`/api/management/projects/${input.projectId}/secrets`,{method:"POST",body:JSON.stringify({key:input.key,kind:input.kind,value:input.value,environment:input.environment})})).data}async updateProjectSecretEntry(input){return(await this.request(`/api/management/projects/${input.projectId}/secrets/${encodeURIComponent(input.key)}`,{method:"PATCH",body:JSON.stringify({kind:input.kind,value:input.value,environment:input.environment})})).data}async deleteProjectSecretEntry(projectId,key,kind,environment){let qs=new URLSearchParams({kind,environment});await this.request(`/api/management/projects/${projectId}/secrets/${encodeURIComponent(key)}?${qs.toString()}`,{method:"DELETE"})}async listProjectIntegrations(projectId){return(await this.request(`/api/management/projects/${projectId}/integrations`)).data}async addProjectMcpIntegration(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations`,{method:"POST",body:JSON.stringify(input.request)})).data}async getProjectIntegrationInfo(projectId,integrationKey){return(await this.request(`/api/management/projects/${projectId}/integrations/${encodeURIComponent(integrationKey)}/info`)).data}async getProjectIntegrationStatus(projectId,integrationKey){return(await this.request(`/api/management/projects/${projectId}/integrations/${encodeURIComponent(integrationKey)}/status`)).data}async connectProjectIntegration(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify(input.request)})).data}async enableProjectIntegration(input){let payload={...input.authMode?{authMode:input.authMode}:{},...input.connectionAlias?{connectionAlias:input.connectionAlias}:{}};return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}`,{method:"PUT",body:JSON.stringify(payload)})).data}async connectOrganizationIntegrationWithToken(input){return(await this.request(`/api/management/organizations/${encodeURIComponent(input.organizationId)}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify({...input.alias?{alias:input.alias}:{},token:input.token})})).data}async startOrganizationIntegrationConnect(input){return(await this.request(`/api/management/organizations/${encodeURIComponent(input.organizationId)}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST",body:JSON.stringify({})})).data}async switchProjectIntegrationAuth(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/auth`,{method:"PATCH",body:JSON.stringify({authMode:input.authMode})})).data}async disableProjectIntegration(projectId,integrationKey){await this.request(`/api/management/projects/${projectId}/integrations/${encodeURIComponent(integrationKey)}`,{method:"DELETE"})}async setProjectIntegrationCredential(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/credentials/${encodeURIComponent(input.credentialId)}`,{method:"PUT",body:JSON.stringify({value:input.value})})).data}async clearProjectIntegrationCredential(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/credentials/${encodeURIComponent(input.credentialId)}`,{method:"DELETE"})).data}async runProjectIntegrationTool(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/run`,{method:"POST",body:JSON.stringify(input.request)})).data}async startProjectIntegrationConnect(input){return(await this.request(`/api/management/projects/${input.projectId}/integrations/${encodeURIComponent(input.integrationKey)}/connect`,{method:"POST"})).data}async bindProjectChannel(projectId,request){return(await this.request(`/api/management/projects/${projectId}/channels/bind`,{method:"POST",body:JSON.stringify(request)})).data}async createSchedule(projectId,request){return(await this.request(`/api/management/projects/${projectId}/schedules`,{method:"POST",body:JSON.stringify(request)})).data}async listSchedules(projectId){return(await this.request(`/api/management/projects/${projectId}/schedules`)).data}async getSchedulesOverview(projectId){return(await this.request(`/api/management/projects/${projectId}/schedules/overview`)).data}async getSchedule(projectId,scheduleId){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}`)).data}async updateSchedule(projectId,scheduleId,request){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}`,{method:"PATCH",body:JSON.stringify(request)})).data}async setScheduleEnabled(projectId,scheduleId,enabled){let action=enabled?"resume":"pause";return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}/${action}`,{method:"POST"})).data}async runSchedule(projectId,scheduleId){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}/run`,{method:"POST",body:JSON.stringify({trigger:"cli"})})).data}async listScheduleRuns(projectId,scheduleId,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit)),query.cursor&¶ms.set("cursor",query.cursor),query.status&¶ms.set("status",query.status);let suffix=params.size>0?`?${params.toString()}`:"";return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}/runs${suffix}`)).data}async getScheduleRun(projectId,runId){return(await this.request(`/api/management/projects/${projectId}/schedules/runs/${encodeURIComponent(runId)}`)).data}async listWebhookEvents(projectId){return(await this.request(`/api/management/projects/${projectId}/webhooks/events`)).data}async listProjectWebhooks(projectId){return(await this.request(`/api/management/projects/${projectId}/webhooks`)).data}async getProjectWebhook(projectId,webhookId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}`)).data}async createProjectWebhook(projectId,request){return(await this.request(`/api/management/projects/${projectId}/webhooks`,{method:"POST",body:JSON.stringify(request)})).data}async updateProjectWebhook(projectId,webhookId,request){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}`,{method:"PATCH",body:JSON.stringify(request)})).data}async deleteProjectWebhook(projectId,webhookId){await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}`,{method:"DELETE"})}async listProjectEnvironments(projectId){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments`)).data}async createProjectEnvironment(projectId,input){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments`,{method:"POST",body:JSON.stringify(input)},{allow403:!0})).data}async updateProjectEnvironment(projectId,environmentId,input){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments/${encodeURIComponent(environmentId)}`,{method:"PATCH",body:JSON.stringify(input)},{allow403:!0})).data}async deleteProjectEnvironment(projectId,environmentId){return(await this.request(`/api/management/projects/${encodeURIComponent(projectId)}/environments/${encodeURIComponent(environmentId)}`,{method:"DELETE"},{allow403:!0})).data}async rotateProjectWebhookSecret(projectId,webhookId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/rotate-signing-secret`,{method:"POST"})).data.signingSecret}async testProjectWebhook(projectId,webhookId,input){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/test`,{method:"POST",body:JSON.stringify(input)})).data}async listProjectWebhookDeliveries(projectId,webhookId,limit){let query=`?page=1&limit=${limit??50}`;return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/deliveries${query}`)).data.items}async getProjectWebhookDelivery(projectId,webhookId,deliveryId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/deliveries/${deliveryId}`)).data}async retryProjectWebhookDelivery(projectId,webhookId,deliveryId){return(await this.request(`/api/management/projects/${projectId}/webhooks/${webhookId}/deliveries/${deliveryId}/retry`,{method:"POST"})).data}async deleteSchedule(projectId,scheduleId){return(await this.request(`/api/management/projects/${projectId}/schedules/${encodeURIComponent(scheduleId)}`,{method:"DELETE"})).data}async listEnvs(projectId,opts={}){let params=new URLSearchParams;opts.includeDeleted&¶ms.set("includeDeleted","true"),opts.includeAgentEnvs&¶ms.set("includeAgentEnvs","true");let qs=params.size>0?`?${params.toString()}`:"";return(await this.request(`/api/management/projects/${projectId}/envs${qs}`)).data}async resolveProjectEnvironmentKey(projectId,branch){if(branch==="prod")return PRODUCTION_ENVIRONMENT_KEY;let branches=await this.listEnvs(projectId,{includeAgentEnvs:!0}),current=branches.find(candidate=>candidate.env===branch),visited=new Set;for(;current&&!visited.has(current.env);){if(visited.add(current.env),current.resolvedEnvironment)return current.resolvedEnvironment.id;current=current.parentEnv?branches.find(candidate=>candidate.env===current?.parentEnv):void 0}return PREVIEW_ENVIRONMENT_KEY}async getEnv(projectId,env){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}`)).data}async createEnv(projectId,input){return(await this.request(`/api/management/projects/${projectId}/envs`,{method:"POST",body:JSON.stringify(input)})).data}async syncEnv(projectId,env,input={}){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/sync`,{method:"POST",body:JSON.stringify(input)})).data}async deleteEnv(projectId,env){await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}`,{method:"DELETE"})}async getEnvDiff(projectId,env,opts={}){let params=new URLSearchParams;opts.against&¶ms.set("against",opts.against),opts.surfaces&&opts.surfaces.length>0&¶ms.set("surfaces",opts.surfaces.join(","));let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff${qs?`?${qs}`:""}`)).data}async getEnvStatus(projectId,env,opts={}){let params=new URLSearchParams;opts.against&¶ms.set("against",opts.against),opts.surfaces&&opts.surfaces.length>0&¶ms.set("surfaces",opts.surfaces.join(","));let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/status${qs?`?${qs}`:""}`)).data}async getCodeFileDiff(projectId,env,path52,opts={}){let qs=lazyFetchQs(opts.against,{path:path52});return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/code/file?${qs}`)).data}async getCodeConflictDetail(projectId,env,fromEnv,filePath){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/conflict/code?path=${encodeURIComponent(filePath)}`)).data}async getContentRowDiff(projectId,env,collection,rowId,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/content/${encodeURIComponent(collection)}/${encodeURIComponent(rowId)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getSchemaTypeDiff(projectId,env,typeName,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/schemas/${encodeURIComponent(typeName)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getAssetDiff(projectId,env,assetId,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/assets/${encodeURIComponent(assetId)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getTranslationRowDiff(projectId,env,locale,key,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/translations/${encodeURIComponent(locale)}/${encodeURIComponent(key)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async getFormSchemaDiff(projectId,env,formName,opts={}){let qs=lazyFetchQs(opts.against),path52=`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/diff/forms/${encodeURIComponent(formName)}`;return(await this.request(qs?`${path52}?${qs}`:path52)).data}async mergeEnv(projectId,env,body){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge`,{method:"POST",body:JSON.stringify(body)})).data}async resolveMerge(projectId,env,fromEnv,body){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/resolve`,{method:"POST",body:JSON.stringify(body)})).data}async cancelMerge(projectId,env,mergeId){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/cancel`,{method:"POST",body:JSON.stringify({mergeId})})).data}async getMergeConflicts(projectId,env,fromEnv){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/conflicts`)).data}async putResolveDraft(projectId,env,fromEnv,body){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/resolve/draft`,{method:"PUT",body:JSON.stringify(body)})).data}async deleteResolveDraft(projectId,env,fromEnv){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/merge/${encodeURIComponent(fromEnv)}/resolve/draft`,{method:"DELETE"})).data}async publishRelease(projectId,body){return(await this.request(`/api/management/projects/${projectId}/releases`,{method:"POST",body:JSON.stringify(body)})).data}async runAgent(projectId,env,agentName,body={}){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/agents/${encodeURIComponent(agentName)}/run`,{method:"POST",body:JSON.stringify(body)})).data}async listAgentSessions(projectId,opts={}){let params=new URLSearchParams;opts.agentName&¶ms.set("agent_name",opts.agentName),opts.env&¶ms.set("env",opts.env),opts.status&¶ms.set("status",opts.status),opts.limit!==void 0&¶ms.set("limit",String(opts.limit));let qs=params.toString();return(await this.request(`/api/management/projects/${projectId}/agents/sessions${qs?`?${qs}`:""}`)).data}async getAgentSession(projectId,sessionId){return(await this.request(`/api/management/projects/${projectId}/agents/sessions/${encodeURIComponent(sessionId)}`)).data.session}async getFeatures(){return this.request("/api/features")}async inviteProjectUser(input){return{id:(await this.request(`/api/management/projects/${input.projectId}/invites`,{method:"POST",body:JSON.stringify({email:input.email,roleKey:input.roleKey})})).data.id}}async updateProjectSettings(projectId,settings){return(await this.request(`/api/management/projects/${projectId}/settings`,{method:"PUT",body:JSON.stringify(settings)})).data}async deleteProject(projectId){await this.request(`/api/management/projects/${projectId}`,{method:"DELETE",body:JSON.stringify({})})}async getGitRemote(projectId,env){let remote=(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/git-remote`,{},{allow403:!0})).data;if(!remote.tenantApiBaseUrl){let recovered=recoverTenantApiBaseUrl(remote.tenantApiUrl,projectId,env);if(recovered)return{...remote,tenantApiBaseUrl:recovered}}return remote}async getProjectLocaleStats(projectId){return(await this.request(this.projectEnvManagementPath(projectId,"/locales/stats"))).data}async addProjectLocale(projectId,input){return(await this.request(this.projectEnvManagementPath(projectId,"/locales"),{method:"POST",body:JSON.stringify(input)})).data}async setProjectDefaultLocale(projectId,input){return(await this.request(this.projectEnvManagementPath(projectId,"/locales/default"),{method:"PUT",body:JSON.stringify(input)})).data}async removeProjectLocale(projectId,locale){return(await this.request(this.projectEnvManagementPath(projectId,`/locales/${encodeURIComponent(locale)}`),{method:"DELETE"})).data}async getGitCredential(projectId,env){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/git-credential`,{},{allow403:!0})).data}async getPreviewUrl(projectId,env){return(await this.request(`/api/management/projects/${projectId}/envs/${encodeEnvPathSegment(env)}/sandbox`)).data}async getSandboxLogs(projectId,env,query={}){let params=new URLSearchParams;query.limit!==void 0&¶ms.set("limit",String(query.limit)),query.before&¶ms.set("before",query.before);let search=params.toString();return(await this.request(`/api/management/projects/${projectId}/envs/${encodeEnvPathSegment(env)}/sandbox/logs${search?`?${search}`:""}`)).data}async sandboxPull(projectId,onProgress,env,options={}){let params=new URLSearchParams;options.noRestart&¶ms.set("noRestart","true"),options.wait!==void 0&¶ms.set("wait",String(options.wait));let search=params.toString(),query=search?`?${search}`:"",response=await this.rawRequest(`/api/management/projects/${projectId}/envs/${encodeURIComponent(env)}/sandbox/pull${query}`,{method:"POST",headers:{Accept:"text/event-stream"}});if(!response.body)throw new Error("Sandbox pull failed: empty response stream");let reader=response.body.getReader(),decoder=new TextDecoder,buffer="",errorMessage6=null,errorCode,readiness=null,timings=null,completed=!1;try{for(;;){let{value,done}=await reader.read();if(done)break;buffer+=decoder.decode(value,{stream:!0});let separatorIndex=buffer.indexOf(`
|
|
43
43
|
|
|
44
44
|
`);for(;separatorIndex!==-1;){let rawEvent=buffer.slice(0,separatorIndex);buffer=buffer.slice(separatorIndex+2),separatorIndex=buffer.indexOf(`
|
|
45
45
|
|
|
@@ -183,7 +183,7 @@ ${end2.comment}`:end2.comment}this.doc.range[2]=end2.offset;break}default:this.e
|
|
|
183
183
|
`)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
|
|
184
184
|
`,nl)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(map2){let it2=map2.items[map2.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,it2.value){let end2="end"in it2.value?it2.value.end:void 0;(Array.isArray(end2)?end2[end2.length-1]:void 0)?.type==="comment"?end2?.push(this.sourceToken):map2.items.push({start:[this.sourceToken]})}else it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"space":case"comment":if(it2.value)map2.items.push({start:[this.sourceToken]});else if(it2.sep)it2.sep.push(this.sourceToken);else{if(this.atIndentedComment(it2.start,map2.indent)){let end2=map2.items[map2.items.length-2]?.value?.end;if(Array.isArray(end2)){Array.prototype.push.apply(end2,it2.start),end2.push(this.sourceToken),map2.items.pop();return}}it2.start.push(this.sourceToken)}return}if(this.indent>=map2.indent){let atMapIndent=!this.onKeyLine&&this.indent===map2.indent,atNextItem=atMapIndent&&(it2.sep||it2.explicitKey)&&this.type!=="seq-item-ind",start=[];if(atNextItem&&it2.sep&&!it2.value){let nl=[];for(let i=0;i<it2.sep.length;++i){let st2=it2.sep[i];switch(st2.type){case"newline":nl.push(i);break;case"space":break;case"comment":st2.indent>map2.indent&&(nl.length=0);break;default:nl.length=0}}nl.length>=2&&(start=it2.sep.splice(nl[1]))}switch(this.type){case"anchor":case"tag":atNextItem||it2.value?(start.push(this.sourceToken),map2.items.push({start}),this.onKeyLine=!0):it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"explicit-key-ind":!it2.sep&&!it2.explicitKey?(it2.start.push(this.sourceToken),it2.explicitKey=!0):atNextItem||it2.value?(start.push(this.sourceToken),map2.items.push({start,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(it2.explicitKey)if(it2.sep)if(it2.value)map2.items.push({start:[],key:null,sep:[this.sourceToken]});else if(includesToken(it2.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]});else if(isFlowToken(it2.key)&&!includesToken(it2.sep,"newline")){let start2=getFirstKeyStartProps(it2.start),key=it2.key,sep2=it2.sep;sep2.push(this.sourceToken),delete it2.key,delete it2.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key,sep:sep2}]})}else start.length>0?it2.sep=it2.sep.concat(start,this.sourceToken):it2.sep.push(this.sourceToken);else if(includesToken(it2.start,"newline"))Object.assign(it2,{key:null,sep:[this.sourceToken]});else{let start2=getFirstKeyStartProps(it2.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key:null,sep:[this.sourceToken]}]})}else it2.sep?it2.value||atNextItem?map2.items.push({start,key:null,sep:[this.sourceToken]}):includesToken(it2.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):it2.sep.push(this.sourceToken):Object.assign(it2,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs51=this.flowScalar(this.type);atNextItem||it2.value?(map2.items.push({start,key:fs51,sep:[]}),this.onKeyLine=!0):it2.sep?this.stack.push(fs51):(Object.assign(it2,{key:fs51,sep:[]}),this.onKeyLine=!0);return}default:{let bv=this.startBlockValue(map2);if(bv){if(bv.type==="block-seq"){if(!it2.explicitKey&&it2.sep&&!includesToken(it2.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else atMapIndent&&map2.items.push({start});this.stack.push(bv);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(seq){let it2=seq.items[seq.items.length-1];switch(this.type){case"newline":if(it2.value){let end2="end"in it2.value?it2.value.end:void 0;(Array.isArray(end2)?end2[end2.length-1]:void 0)?.type==="comment"?end2?.push(this.sourceToken):seq.items.push({start:[this.sourceToken]})}else it2.start.push(this.sourceToken);return;case"space":case"comment":if(it2.value)seq.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(it2.start,seq.indent)){let end2=seq.items[seq.items.length-2]?.value?.end;if(Array.isArray(end2)){Array.prototype.push.apply(end2,it2.start),end2.push(this.sourceToken),seq.items.pop();return}}it2.start.push(this.sourceToken)}return;case"anchor":case"tag":if(it2.value||this.indent<=seq.indent)break;it2.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==seq.indent)break;it2.value||includesToken(it2.start,"seq-item-ind")?seq.items.push({start:[this.sourceToken]}):it2.start.push(this.sourceToken);return}if(this.indent>seq.indent){let bv=this.startBlockValue(seq);if(bv){this.stack.push(bv);return}}yield*this.pop(),yield*this.step()}*flowCollection(fc){let it2=fc.items[fc.items.length-1];if(this.type==="flow-error-end"){let top;do yield*this.pop(),top=this.peek(1);while(top?.type==="flow-collection")}else if(fc.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!it2||it2.sep?fc.items.push({start:[this.sourceToken]}):it2.start.push(this.sourceToken);return;case"map-value-ind":!it2||it2.value?fc.items.push({start:[],key:null,sep:[this.sourceToken]}):it2.sep?it2.sep.push(this.sourceToken):Object.assign(it2,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!it2||it2.value?fc.items.push({start:[this.sourceToken]}):it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs51=this.flowScalar(this.type);!it2||it2.value?fc.items.push({start:[],key:fs51,sep:[]}):it2.sep?this.stack.push(fs51):Object.assign(it2,{key:fs51,sep:[]});return}case"flow-map-end":case"flow-seq-end":fc.end.push(this.sourceToken);return}let bv=this.startBlockValue(fc);bv?this.stack.push(bv):(yield*this.pop(),yield*this.step())}else{let parent2=this.peek(2);if(parent2.type==="block-map"&&(this.type==="map-value-ind"&&parent2.indent===fc.indent||this.type==="newline"&&!parent2.items[parent2.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&parent2.type!=="flow-collection"){let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);fixFlowSeqItems(fc);let sep2=fc.end.splice(1,fc.end.length);sep2.push(this.sourceToken);let map2={type:"block-map",offset:fc.offset,indent:fc.indent,items:[{start,key:fc,sep:sep2}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=map2}else yield*this.lineEnd(fc)}}flowScalar(type){if(this.onNewLine){let nl=this.source.indexOf(`
|
|
185
185
|
`)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
|
|
186
|
-
`,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent2){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st2=>st2.type==="newline"||st2.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser2}});var require_public_api=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document2=require_Document(),errors=require_errors(),log=require_log(),identity2=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}__name(parseOptions,"parseOptions");function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}__name(parseAllDocuments,"parseAllDocuments");function parseDocument2(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}__name(parseDocument2,"parseDocument");function parse13(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument2(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}__name(parse13,"parse");function stringify5(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity2.isDocument(value)&&!_replacer?value.toString(options):new Document2.Document(value,_replacer,options).toString(options)}__name(stringify5,"stringify");exports2.parse=parse13;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument2;exports2.stringify=stringify5}});var require_dist=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document2=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity2=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit2=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document2.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity2.isAlias;exports2.isCollection=identity2.isCollection;exports2.isDocument=identity2.isDocument;exports2.isMap=identity2.isMap;exports2.isNode=identity2.isNode;exports2.isPair=identity2.isPair;exports2.isScalar=identity2.isScalar;exports2.isSeq=identity2.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit2.visit;exports2.visitAsync=visit2.visitAsync}});import fs5 from"node:fs";import path5 from"node:path";import{fileURLToPath as fileURLToPath3}from"node:url";function getTemplatePath(framework=DEFAULT_TEMPLATE){return path5.resolve(PACKAGE_ROOT,"templates",framework)}function readReleaseMeta(){try{let raw=fs5.readFileSync(RELEASE_FILE2,"utf8"),parsed=JSON.parse(raw);return{source:parsed.source==="npm"||parsed.source==="dev"?parsed.source:null}}catch{return{source:null}}}function readCliSemver(){try{let raw=fs5.readFileSync(PACKAGE_JSON_FILE,"utf8"),parsed=JSON.parse(raw);if(typeof parsed.version=="string"&&parsed.version.length>0)return parsed.version}catch{}return null}function computeFimoPin(meta,semver,options={}){return meta.source==="npm"&&semver?semver:(meta.source==="dev"||meta.source===null)&&options.devPackageRoot?`file:${options.devPackageRoot}`:null}function resolveFimoPin(options={}){return computeFimoPin(readReleaseMeta(),readCliSemver(),options)}function readDevReleaseVersion(startPath=PACKAGE_ROOT){let devJsonPath=findDevJson(startPath);if(!devJsonPath)return{devJsonPath:null,version:null};let parsed;try{parsed=JSON.parse(fs5.readFileSync(devJsonPath,"utf8"))}catch{throw new Error(`Invalid JSON in ${devJsonPath}. Run \`pnpm -F fimo publish-cli -- --id <task-name>\` from that Fimo checkout, then retry.`)}if(typeof parsed.version!="string"||parsed.version.trim().length===0)throw new Error(`Missing "version" in ${devJsonPath}. Run \`pnpm -F fimo publish-cli -- --id <task-name>\` from that Fimo checkout, then retry.`);return{devJsonPath,version:parsed.version.trim()}}function findDevJson(startPath){let current=startPath;for(;;){let candidate=path5.join(current,".fimo","dev.json");if(fs5.existsSync(candidate))return candidate;let parent2=path5.dirname(current);if(parent2===current)return null;current=parent2}}function rewriteFimoValidateCommand(pkg,pin=resolveFimoPin()){if(!pin||!/^\d+\.\d+\.\d+/.test(pin))return!1;let build=pkg.scripts?.build;if(typeof build!="string")return!1;let pinned=build.replace(/\bfimo validate\b/,`npx fimo@${pin} validate`);return pinned===build?!1:(pkg.scripts.build=pinned,!0)}function deriveFimoPackagePin(name,fimoPin){if(name==="fimo")return fimoPin;if(fimoPin.startsWith("file:")){let match=fimoPin.slice(5).match(/^(.*?)([\\/])apps\2cli\2?$/);return match?`file:${match[1]}${match[2]}packages${match[2]}${name}`:null}if(/^https?:\/\//.test(fimoPin)){let match=fimoPin.match(/^(.*\/cli\/)fimo-([^/]+\.tgz)$/);return match?`${match[1]}${name}-${match[2]}`:null}return fimoPin}function rewriteFimoDep(pkg,pin=resolveFimoPin()){if(!pin)return!1;let changed=!1;for(let field of["dependencies","devDependencies"]){let deps=pkg[field];if(deps)for(let name of FIMO_PACKAGES){let current=deps[name];if(typeof current!="string")continue;let target=deriveFimoPackagePin(name,pin);if(!target)continue;let looksLikeLegacyR2=current.includes(`r2.dev/cli/${name}-`),looksLikeLocalFile=current.startsWith("file:"),looksLikeSemver=/^[\^~]?\d+\.\d+\.\d+/.test(current);(looksLikeLegacyR2||looksLikeLocalFile||looksLikeSemver||(current==="latest"||current==="staging"||current==="experimental"))&¤t!==target&&(deps[name]=target,changed=!0)}}return changed}var MODULE_DIR,PACKAGE_ROOT,RELEASE_FILE2,PACKAGE_JSON_FILE,TEMPLATE_FRAMEWORKS,DEFAULT_TEMPLATE,FIMO_PACKAGES,init_templates=__esm({"src/runtime/templates.ts"(){MODULE_DIR=path5.dirname(fileURLToPath3(import.meta.url)),PACKAGE_ROOT=path5.resolve(MODULE_DIR,"..",".."),RELEASE_FILE2=path5.join(PACKAGE_ROOT,"release.json"),PACKAGE_JSON_FILE=path5.join(PACKAGE_ROOT,"package.json"),TEMPLATE_FRAMEWORKS=["react-router","vite","astro","nextjs","sveltekit"],DEFAULT_TEMPLATE="react-router";__name(getTemplatePath,"getTemplatePath");__name(readReleaseMeta,"readReleaseMeta");__name(readCliSemver,"readCliSemver");__name(computeFimoPin,"computeFimoPin");__name(resolveFimoPin,"resolveFimoPin");__name(readDevReleaseVersion,"readDevReleaseVersion");__name(findDevJson,"findDevJson");__name(rewriteFimoValidateCommand,"rewriteFimoValidateCommand");FIMO_PACKAGES=["fimo","fimo-sveltekit","fimo-astro","fimo-vite","fimo-react","fimo-react-router","fimo-next"];__name(deriveFimoPackagePin,"deriveFimoPackagePin");__name(rewriteFimoDep,"rewriteFimoDep")}});import fs6 from"node:fs";import path6 from"node:path";function resolveTemplateFramework(value){let framework=value===void 0?DEFAULT_TEMPLATE:value.trim().toLowerCase();if(!TEMPLATE_FRAMEWORKS.includes(framework))throw new TemplateFrameworkError(`Unknown project framework "${value}". Use one of: ${TEMPLATE_FRAMEWORKS.join(", ")}.`);return framework}function resolveTemplateRoot(framework=DEFAULT_TEMPLATE){let templateRoot=getTemplatePath(framework);if(fs6.existsSync(path6.join(templateRoot,"package.json")))return templateRoot;throw new Error(`Bundled ${framework} template not found at ${templateRoot}.`)}function resolveAgentTemplatesRoot(){if(fs6.existsSync(AGENT_TEMPLATES_ROOT))return AGENT_TEMPLATES_ROOT;throw new Error(`Bundled agent templates dir not found at ${AGENT_TEMPLATES_ROOT}.`)}function resolveAgentTemplate(name){let dir=path6.join(resolveAgentTemplatesRoot(),name);if(!fs6.existsSync(dir))throw new Error(`Agent template '${name}' not found.`);return dir}function listAgentTemplates(){let root2=(()=>{try{return resolveAgentTemplatesRoot()}catch{return null}})();if(!root2)return[];let entries2=fs6.readdirSync(root2,{withFileTypes:!0}),out=[];for(let entry of entries2){if(!entry.isDirectory())continue;let goalPath=path6.join(root2,entry.name,"GOAL.md"),goalFirstLine="";try{goalFirstLine=(fs6.readFileSync(goalPath,"utf8").split(`
|
|
186
|
+
`,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent2){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st2=>st2.type==="newline"||st2.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser2}});var require_public_api=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document2=require_Document(),errors=require_errors(),log=require_log(),identity2=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}__name(parseOptions,"parseOptions");function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}__name(parseAllDocuments,"parseAllDocuments");function parseDocument2(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}__name(parseDocument2,"parseDocument");function parse15(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument2(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}__name(parse15,"parse");function stringify5(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity2.isDocument(value)&&!_replacer?value.toString(options):new Document2.Document(value,_replacer,options).toString(options)}__name(stringify5,"stringify");exports2.parse=parse15;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument2;exports2.stringify=stringify5}});var require_dist=__commonJS({"../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document2=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity2=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit2=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document2.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity2.isAlias;exports2.isCollection=identity2.isCollection;exports2.isDocument=identity2.isDocument;exports2.isMap=identity2.isMap;exports2.isNode=identity2.isNode;exports2.isPair=identity2.isPair;exports2.isScalar=identity2.isScalar;exports2.isSeq=identity2.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit2.visit;exports2.visitAsync=visit2.visitAsync}});import fs5 from"node:fs";import path5 from"node:path";import{fileURLToPath as fileURLToPath3}from"node:url";function getTemplatePath(framework=DEFAULT_TEMPLATE){return path5.resolve(PACKAGE_ROOT,"templates",framework)}function readReleaseMeta(){try{let raw=fs5.readFileSync(RELEASE_FILE2,"utf8"),parsed=JSON.parse(raw);return{source:parsed.source==="npm"||parsed.source==="dev"?parsed.source:null}}catch{return{source:null}}}function readCliSemver(){try{let raw=fs5.readFileSync(PACKAGE_JSON_FILE,"utf8"),parsed=JSON.parse(raw);if(typeof parsed.version=="string"&&parsed.version.length>0)return parsed.version}catch{}return null}function computeFimoPin(meta,semver,options={}){return meta.source==="npm"&&semver?semver:(meta.source==="dev"||meta.source===null)&&options.devPackageRoot?`file:${options.devPackageRoot}`:null}function resolveFimoPin(options={}){return computeFimoPin(readReleaseMeta(),readCliSemver(),options)}function readDevReleaseVersion(startPath=PACKAGE_ROOT){let devJsonPath=findDevJson(startPath);if(!devJsonPath)return{devJsonPath:null,version:null};let parsed;try{parsed=JSON.parse(fs5.readFileSync(devJsonPath,"utf8"))}catch{throw new Error(`Invalid JSON in ${devJsonPath}. Run \`pnpm -F fimo publish-cli -- --id <task-name>\` from that Fimo checkout, then retry.`)}if(typeof parsed.version!="string"||parsed.version.trim().length===0)throw new Error(`Missing "version" in ${devJsonPath}. Run \`pnpm -F fimo publish-cli -- --id <task-name>\` from that Fimo checkout, then retry.`);return{devJsonPath,version:parsed.version.trim()}}function findDevJson(startPath){let current=startPath;for(;;){let candidate=path5.join(current,".fimo","dev.json");if(fs5.existsSync(candidate))return candidate;let parent2=path5.dirname(current);if(parent2===current)return null;current=parent2}}function rewriteFimoValidateCommand(pkg,pin=resolveFimoPin()){if(!pin||!/^\d+\.\d+\.\d+/.test(pin))return!1;let build=pkg.scripts?.build;if(typeof build!="string")return!1;let pinned=build.replace(/\bfimo validate\b/,`npx fimo@${pin} validate`);return pinned===build?!1:(pkg.scripts.build=pinned,!0)}function deriveFimoPackagePin(name,fimoPin){if(name==="fimo")return fimoPin;if(fimoPin.startsWith("file:")){let match=fimoPin.slice(5).match(/^(.*?)([\\/])apps\2cli\2?$/);return match?`file:${match[1]}${match[2]}packages${match[2]}${name}`:null}if(/^https?:\/\//.test(fimoPin)){let match=fimoPin.match(/^(.*\/cli\/)fimo-([^/]+\.tgz)$/);return match?`${match[1]}${name}-${match[2]}`:null}return fimoPin}function rewriteFimoDep(pkg,pin=resolveFimoPin()){if(!pin)return!1;let changed=!1;for(let field of["dependencies","devDependencies"]){let deps=pkg[field];if(deps)for(let name of FIMO_PACKAGES){let current=deps[name];if(typeof current!="string")continue;let target=deriveFimoPackagePin(name,pin);if(!target)continue;let looksLikeLegacyR2=current.includes(`r2.dev/cli/${name}-`),looksLikeLocalFile=current.startsWith("file:"),looksLikeSemver=/^[\^~]?\d+\.\d+\.\d+/.test(current);(looksLikeLegacyR2||looksLikeLocalFile||looksLikeSemver||(current==="latest"||current==="staging"||current==="experimental"))&¤t!==target&&(deps[name]=target,changed=!0)}}return changed}var MODULE_DIR,PACKAGE_ROOT,RELEASE_FILE2,PACKAGE_JSON_FILE,TEMPLATE_FRAMEWORKS,DEFAULT_TEMPLATE,FIMO_PACKAGES,init_templates=__esm({"src/runtime/templates.ts"(){MODULE_DIR=path5.dirname(fileURLToPath3(import.meta.url)),PACKAGE_ROOT=path5.resolve(MODULE_DIR,"..",".."),RELEASE_FILE2=path5.join(PACKAGE_ROOT,"release.json"),PACKAGE_JSON_FILE=path5.join(PACKAGE_ROOT,"package.json"),TEMPLATE_FRAMEWORKS=["react-router","vite","astro","nextjs","sveltekit"],DEFAULT_TEMPLATE="react-router";__name(getTemplatePath,"getTemplatePath");__name(readReleaseMeta,"readReleaseMeta");__name(readCliSemver,"readCliSemver");__name(computeFimoPin,"computeFimoPin");__name(resolveFimoPin,"resolveFimoPin");__name(readDevReleaseVersion,"readDevReleaseVersion");__name(findDevJson,"findDevJson");__name(rewriteFimoValidateCommand,"rewriteFimoValidateCommand");FIMO_PACKAGES=["fimo","fimo-sveltekit","fimo-astro","fimo-vite","fimo-react","fimo-react-router","fimo-next"];__name(deriveFimoPackagePin,"deriveFimoPackagePin");__name(rewriteFimoDep,"rewriteFimoDep")}});import fs6 from"node:fs";import path6 from"node:path";function resolveTemplateFramework(value){let framework=value===void 0?DEFAULT_TEMPLATE:value.trim().toLowerCase();if(!TEMPLATE_FRAMEWORKS.includes(framework))throw new TemplateFrameworkError(`Unknown project framework "${value}". Use one of: ${TEMPLATE_FRAMEWORKS.join(", ")}.`);return framework}function resolveTemplateRoot(framework=DEFAULT_TEMPLATE){let templateRoot=getTemplatePath(framework);if(fs6.existsSync(path6.join(templateRoot,"package.json")))return templateRoot;throw new Error(`Bundled ${framework} template not found at ${templateRoot}.`)}function resolveAgentTemplatesRoot(){if(fs6.existsSync(AGENT_TEMPLATES_ROOT))return AGENT_TEMPLATES_ROOT;throw new Error(`Bundled agent templates dir not found at ${AGENT_TEMPLATES_ROOT}.`)}function resolveAgentTemplate(name){let dir=path6.join(resolveAgentTemplatesRoot(),name);if(!fs6.existsSync(dir))throw new Error(`Agent template '${name}' not found.`);return dir}function listAgentTemplates(){let root2=(()=>{try{return resolveAgentTemplatesRoot()}catch{return null}})();if(!root2)return[];let entries2=fs6.readdirSync(root2,{withFileTypes:!0}),out=[];for(let entry of entries2){if(!entry.isDirectory())continue;let goalPath=path6.join(root2,entry.name,"GOAL.md"),goalFirstLine="";try{goalFirstLine=(fs6.readFileSync(goalPath,"utf8").split(`
|
|
187
187
|
`).find(l=>l.trim().length>0)??"").replace(/^#+\s*/,"").trim()}catch{}out.push({name:entry.name,goalFirstLine})}return out.sort((a,b)=>a.name.localeCompare(b.name))}async function copyAgentTemplate(templateRoot,targetDir){if(fs6.existsSync(targetDir))throw new Error(`Target directory '${targetDir}' already exists.`);fs6.mkdirSync(targetDir,{recursive:!0}),await copyTree(templateRoot,targetDir)}async function copyTemplate(templateRoot,targetDir){fs6.mkdirSync(targetDir,{recursive:!0}),await copyTree(templateRoot,targetDir),pinFimoDependency(targetDir)}function pinFimoDependency(targetDir){let pin=resolveFimoPin({devPackageRoot:CLI_ROOT});if(!pin)return;let pkgPath=path6.join(targetDir,"package.json");if(!fs6.existsSync(pkgPath))return;let pkg=JSON.parse(fs6.readFileSync(pkgPath,"utf8")),depChanged=rewriteFimoDep(pkg,pin),buildChanged=rewriteFimoValidateCommand(pkg,pin);(depChanged||buildChanged)&&(fs6.writeFileSync(pkgPath,JSON.stringify(pkg,null,2)+`
|
|
188
188
|
`),fs6.rmSync(path6.join(targetDir,"pnpm-lock.yaml"),{force:!0}))}async function copyTree(srcDir,destDir){let entries2=fs6.readdirSync(srcDir,{withFileTypes:!0});for(let entry of entries2){if(EXCLUDED_DIRS.has(entry.name))continue;let srcPath=path6.join(srcDir,entry.name),destName=entry.name==="_gitignore"?".gitignore":entry.name,destPath=path6.join(destDir,destName);entry.isDirectory()?(fs6.mkdirSync(destPath,{recursive:!0}),await copyTree(srcPath,destPath)):entry.isFile()&&fs6.copyFileSync(srcPath,destPath)}}function writePerAgentVariants(targetDir,agents,agentsMdContent){let result={perAgentVariants:[],perAgentVariantsSkipped:[]},selected=new Set(agents);function writeIfMissing(relativePath,content2){let fullPath=path6.join(targetDir,relativePath);if(fs6.existsSync(fullPath)){result.perAgentVariantsSkipped.push(relativePath);return}fs6.mkdirSync(path6.dirname(fullPath),{recursive:!0}),fs6.writeFileSync(fullPath,content2),result.perAgentVariants.push(relativePath)}if(__name(writeIfMissing,"writeIfMissing"),selected.has("claude-code")&&writeIfMissing("CLAUDE.md",agentsMdContent),selected.has("cursor")){let cursorContent=`---
|
|
189
189
|
description: Fimo project rules
|
|
@@ -352,8 +352,8 @@ return __eta.res;
|
|
|
352
352
|
`):type==="i"?(config.autoFilter&&(content2="__eta.f("+content2+")"),config.autoEscape&&(content2="__eta.e("+content2+")"),returnStr+="__eta.res+="+content2+`
|
|
353
353
|
`):type==="e"&&(returnStr+=content2+`
|
|
354
354
|
`)}}return returnStr}function trimWS(str,config,wsLeft,wsRight){let leftTrim,rightTrim;return Array.isArray(config.autoTrim)?(leftTrim=config.autoTrim[1],rightTrim=config.autoTrim[0]):leftTrim=rightTrim=config.autoTrim,(wsLeft||wsLeft===!1)&&(leftTrim=wsLeft),(wsRight||wsRight===!1)&&(rightTrim=wsRight),!rightTrim&&!leftTrim?str:leftTrim==="slurp"&&rightTrim==="slurp"?str.trim():(leftTrim==="_"||leftTrim==="slurp"?str=str.trimStart():(leftTrim==="-"||leftTrim==="nl")&&(str=str.replace(/^(?:\r\n|\n|\r)/,"")),rightTrim==="_"||rightTrim==="slurp"?str=str.trimEnd():(rightTrim==="-"||rightTrim==="nl")&&(str=str.replace(/(?:\r\n|\n|\r)$/,"")),str)}function replaceChar(s){return escMap[s]}function XMLEscape(str){let newStr=String(str);return/[&<>"']/.test(newStr)?newStr.replace(/[&<>"']/g,replaceChar):newStr}function escapeRegExp(string){return string.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function getLineNo(str,index2){return str.slice(0,index2).split(`
|
|
355
|
-
`).length}function
|
|
356
|
-
`).replace(/^\s+|\s+$/gm,"")),templateLitReg.lastIndex=0,singleQuoteReg.lastIndex=0,doubleQuoteReg.lastIndex=0;function pushString(strng,shouldTrimRightOfString){strng&&(strng=trimWS(strng,config,trimLeftOfNextStr,shouldTrimRightOfString),strng&&(strng=strng.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),buffer.push(strng)))}__name(pushString,"pushString");let prefixes=[parseOptions.exec,parseOptions.interpolate,parseOptions.raw].reduce(function(accumulator,prefix){return accumulator&&prefix?accumulator+"|"+escapeRegExp(prefix):prefix?escapeRegExp(prefix):accumulator},""),parseOpenReg=new RegExp(escapeRegExp(config.tags[0])+"(-|_)?\\s*("+prefixes+")?\\s*","g"),parseCloseReg=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+escapeRegExp(config.tags[1])+")","g"),m;for(;m=parseOpenReg.exec(str);){let precedingString=str.slice(lastIndex,m.index);lastIndex=m[0].length+m.index;let wsLeft=m[1],prefix=m[2]||"";pushString(precedingString,wsLeft),parseCloseReg.lastIndex=lastIndex;let closeTag,currentObj=!1;for(;closeTag=parseCloseReg.exec(str);)if(closeTag[1]){let content2=str.slice(lastIndex,closeTag.index);parseOpenReg.lastIndex=lastIndex=parseCloseReg.lastIndex,trimLeftOfNextStr=closeTag[2],currentObj={t:prefix===parseOptions.exec?"e":prefix===parseOptions.raw?"r":prefix===parseOptions.interpolate?"i":"",val:content2};break}else{let char=closeTag[0];if(char==="/*"){let commentCloseInd=str.indexOf("*/",parseCloseReg.lastIndex);commentCloseInd===-1&&ParseErr("unclosed comment",str,closeTag.index),parseCloseReg.lastIndex=commentCloseInd}else char==="'"?(singleQuoteReg.lastIndex=closeTag.index,singleQuoteReg.exec(str)?parseCloseReg.lastIndex=singleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==='"'?(doubleQuoteReg.lastIndex=closeTag.index,doubleQuoteReg.exec(str)?parseCloseReg.lastIndex=doubleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==="`"&&(templateLitReg.lastIndex=closeTag.index,templateLitReg.exec(str)?parseCloseReg.lastIndex=templateLitReg.lastIndex:ParseErr("unclosed string",str,closeTag.index))}currentObj?(config.debug&&(currentObj.lineNo=getLineNo(str,m.index)),buffer.push(currentObj)):ParseErr("unclosed tag",str,m.index)}if(pushString(str.slice(lastIndex,str.length),!1),config.plugins)for(let i=0;i<config.plugins.length;i++){let plugin=config.plugins[i];plugin.processAST&&(buffer=plugin.processAST(buffer,config))}return buffer}function handleCache(template,options){let templateStore=options&&options.async?this.templatesAsync:this.templatesSync;if(this.resolvePath&&this.readFile&&!template.startsWith("@")){let templatePath2=options.filepath,cachedTemplate=templateStore.get(templatePath2);if(this.config.cache&&cachedTemplate)return cachedTemplate;{let templateString=this.readFile(templatePath2),templateFn=this.compile(templateString,options);return this.config.cache&&templateStore.define(templatePath2,templateFn),templateFn}}else{let cachedTemplate=templateStore.get(template);if(cachedTemplate)return cachedTemplate;throw new EtaNameResolutionError("Failed to get template '"+template+"'")}}function render(template,data2,meta){let templateFn,options={...meta,async:!1};return typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template,templateFn.call(this,data2,options)}function renderAsync(template,data2,meta){let templateFn,options={...meta,async:!0};typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template;let res=templateFn.call(this,data2,options);return Promise.resolve(res)}function renderString(template,data2){let templateFn=this.compile(template,{async:!1});return render.call(this,templateFn,data2)}function renderStringAsync(template,data2){let templateFn=this.compile(template,{async:!0});return renderAsync.call(this,templateFn,data2)}function readFile2(path52){let res="";try{res=fs18.readFileSync(path52,"utf8")}catch(err){throw err?.code==="ENOENT"?new EtaFileResolutionError(`Could not find template: ${path52}`):err}return res}function resolvePath2(templatePath2,options){let resolvedFilePath="",views=this.config.views;if(!views)throw new EtaFileResolutionError("Views directory is not defined");let baseFilePath=options&&options.filepath,defaultExtension=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,cacheIndex=JSON.stringify({filename:baseFilePath,path:templatePath2,views:this.config.views});if(templatePath2+=path21.extname(templatePath2)?"":defaultExtension,baseFilePath){if(this.config.cacheFilepaths&&this.filepathCache[cacheIndex])return this.filepathCache[cacheIndex];let absolutePathTest=absolutePathRegExp.exec(templatePath2);if(absolutePathTest&&absolutePathTest.length){let formattedPath=templatePath2.replace(/^\/*|^\\*/,"");resolvedFilePath=path21.join(views,formattedPath)}else resolvedFilePath=path21.join(path21.dirname(baseFilePath),templatePath2)}else resolvedFilePath=path21.join(views,templatePath2);if(dirIsChild(views,resolvedFilePath))return baseFilePath&&this.config.cacheFilepaths&&(this.filepathCache[cacheIndex]=resolvedFilePath),resolvedFilePath;throw new EtaFileResolutionError(`Template '${templatePath2}' is not in the views directory`)}function dirIsChild(parent2,dir){let relative3=path21.relative(parent2,dir);return relative3&&!relative3.startsWith("..")&&!path21.isAbsolute(relative3)}var Cacher,EtaError,EtaParseError,EtaRuntimeError,EtaFileResolutionError,EtaNameResolutionError,AsyncFunction,escMap,defaultConfig2,templateLitReg,singleQuoteReg,doubleQuoteReg,Eta$1,absolutePathRegExp,Eta,init_eta_module=__esm({"../../node_modules/.pnpm/eta@3.5.0/node_modules/eta/dist/eta.module.mjs"(){Cacher=class{static{__name(this,"Cacher")}constructor(cache){this.cache=void 0,this.cache=cache}define(key,val2){this.cache[key]=val2}get(key){return this.cache[key]}remove(key){delete this.cache[key]}reset(){this.cache={}}load(cacheObj){this.cache={...this.cache,...cacheObj}}},EtaError=class extends Error{static{__name(this,"EtaError")}constructor(message){super(message),this.name="Eta Error"}},EtaParseError=class extends EtaError{static{__name(this,"EtaParseError")}constructor(message){super(message),this.name="EtaParser Error"}},EtaRuntimeError=class extends EtaError{static{__name(this,"EtaRuntimeError")}constructor(message){super(message),this.name="EtaRuntime Error"}},EtaFileResolutionError=class extends EtaError{static{__name(this,"EtaFileResolutionError")}constructor(message){super(message),this.name="EtaFileResolution Error"}},EtaNameResolutionError=class extends EtaError{static{__name(this,"EtaNameResolutionError")}constructor(message){super(message),this.name="EtaNameResolution Error"}};__name(ParseErr,"ParseErr");__name(RuntimeErr,"RuntimeErr");AsyncFunction=async function(){}.constructor;__name(compile,"compile");__name(compileToString,"compileToString");__name(compileBody,"compileBody");__name(trimWS,"trimWS");escMap={"&":"&","<":"<",">":">",'"':""","'":"'"};__name(replaceChar,"replaceChar");__name(XMLEscape,"XMLEscape");defaultConfig2={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,debug:!1,escapeFunction:XMLEscape,filterFunction:__name(val2=>String(val2),"filterFunction"),functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},templateLitReg=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,singleQuoteReg=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,doubleQuoteReg=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;__name(escapeRegExp,"escapeRegExp");__name(getLineNo,"getLineNo");__name(parse5,"parse");__name(handleCache,"handleCache");__name(render,"render");__name(renderAsync,"renderAsync");__name(renderString,"renderString");__name(renderStringAsync,"renderStringAsync");Eta$1=class{static{__name(this,"Eta$1")}constructor(customConfig){this.config=void 0,this.RuntimeErr=RuntimeErr,this.compile=compile,this.compileToString=compileToString,this.compileBody=compileBody,this.parse=parse5,this.render=render,this.renderAsync=renderAsync,this.renderString=renderString,this.renderStringAsync=renderStringAsync,this.filepathCache={},this.templatesSync=new Cacher({}),this.templatesAsync=new Cacher({}),this.resolvePath=null,this.readFile=null,customConfig?this.config={...defaultConfig2,...customConfig}:this.config={...defaultConfig2}}configure(customConfig){this.config={...this.config,...customConfig}}withConfig(customConfig){return{...this,config:{...this.config,...customConfig}}}loadTemplate(name,template,options){if(typeof template=="string")(options&&options.async?this.templatesAsync:this.templatesSync).define(name,this.compile(template,options));else{let templates=this.templatesSync;(template.constructor.name==="AsyncFunction"||options&&options.async)&&(templates=this.templatesAsync),templates.define(name,template)}}};__name(readFile2,"readFile");__name(resolvePath2,"resolvePath");__name(dirIsChild,"dirIsChild");absolutePathRegExp=/^\\|^\//,Eta=class extends Eta$1{static{__name(this,"Eta")}constructor(...args){super(...args),this.readFile=readFile2,this.resolvePath=resolvePath2}}}});import{existsSync as existsSync3}from"node:fs";import{dirname as dirname3,resolve as resolve3}from"node:path";import{fileURLToPath as fileURLToPath4}from"node:url";function assetPath(...segments){return resolve3(PACKAGE_ROOT2,"assets",...segments)}var HERE,IS_BUNDLED,PACKAGE_ROOT2,init_assets=__esm({"src/scripts/utils/assets.ts"(){HERE=dirname3(fileURLToPath4(import.meta.url)),IS_BUNDLED=existsSync3(resolve3(HERE,"bundle.json")),PACKAGE_ROOT2=IS_BUNDLED?resolve3(HERE,"..",".."):resolve3(HERE,"..","..","..");__name(assetPath,"assetPath")}});import{existsSync as existsSync4,mkdirSync as mkdirSync2,readFileSync as readFileSync4,readdirSync as readdirSync2,unlinkSync,writeFileSync as writeFileSync2}from"node:fs";import{dirname as dirname4,join as join5,resolve as resolve4}from"node:path";function getFormFiles(formsDir){return existsSync4(formsDir)?readdirSync2(formsDir).filter(f=>f.endsWith(".json")).map(f=>join5(formsDir,f)):[]}function readForm(path52){try{return JSON.parse(readFileSync4(path52,"utf-8"))}catch{return null}}function generateIndexContent(forms3){let lines=["// AUTO-GENERATED \u26A0\uFE0F \u2014 do not edit by hand",""];for(let form of forms3){let pascal=pascalCase(form.name),varName=pascal.charAt(0).toLowerCase()+pascal.slice(1);lines.push(`export { ${pascal}Schema, parse${pascal}FormData, submit${pascal}, FORM_ID as ${varName}FormId } from "./${form.name}";`),lines.push(`export type { ${pascal}Data } from "./${form.name}";`)}return lines.push(""),lines.join(`
|
|
355
|
+
`).length}function parse6(str){let config=this.config,buffer=[],trimLeftOfNextStr=!1,lastIndex=0,parseOptions=config.parse;if(config.plugins)for(let i=0;i<config.plugins.length;i++){let plugin=config.plugins[i];plugin.processTemplate&&(str=plugin.processTemplate(str,config))}config.rmWhitespace&&(str=str.replace(/[\r\n]+/g,`
|
|
356
|
+
`).replace(/^\s+|\s+$/gm,"")),templateLitReg.lastIndex=0,singleQuoteReg.lastIndex=0,doubleQuoteReg.lastIndex=0;function pushString(strng,shouldTrimRightOfString){strng&&(strng=trimWS(strng,config,trimLeftOfNextStr,shouldTrimRightOfString),strng&&(strng=strng.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),buffer.push(strng)))}__name(pushString,"pushString");let prefixes=[parseOptions.exec,parseOptions.interpolate,parseOptions.raw].reduce(function(accumulator,prefix){return accumulator&&prefix?accumulator+"|"+escapeRegExp(prefix):prefix?escapeRegExp(prefix):accumulator},""),parseOpenReg=new RegExp(escapeRegExp(config.tags[0])+"(-|_)?\\s*("+prefixes+")?\\s*","g"),parseCloseReg=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+escapeRegExp(config.tags[1])+")","g"),m;for(;m=parseOpenReg.exec(str);){let precedingString=str.slice(lastIndex,m.index);lastIndex=m[0].length+m.index;let wsLeft=m[1],prefix=m[2]||"";pushString(precedingString,wsLeft),parseCloseReg.lastIndex=lastIndex;let closeTag,currentObj=!1;for(;closeTag=parseCloseReg.exec(str);)if(closeTag[1]){let content2=str.slice(lastIndex,closeTag.index);parseOpenReg.lastIndex=lastIndex=parseCloseReg.lastIndex,trimLeftOfNextStr=closeTag[2],currentObj={t:prefix===parseOptions.exec?"e":prefix===parseOptions.raw?"r":prefix===parseOptions.interpolate?"i":"",val:content2};break}else{let char=closeTag[0];if(char==="/*"){let commentCloseInd=str.indexOf("*/",parseCloseReg.lastIndex);commentCloseInd===-1&&ParseErr("unclosed comment",str,closeTag.index),parseCloseReg.lastIndex=commentCloseInd}else char==="'"?(singleQuoteReg.lastIndex=closeTag.index,singleQuoteReg.exec(str)?parseCloseReg.lastIndex=singleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==='"'?(doubleQuoteReg.lastIndex=closeTag.index,doubleQuoteReg.exec(str)?parseCloseReg.lastIndex=doubleQuoteReg.lastIndex:ParseErr("unclosed string",str,closeTag.index)):char==="`"&&(templateLitReg.lastIndex=closeTag.index,templateLitReg.exec(str)?parseCloseReg.lastIndex=templateLitReg.lastIndex:ParseErr("unclosed string",str,closeTag.index))}currentObj?(config.debug&&(currentObj.lineNo=getLineNo(str,m.index)),buffer.push(currentObj)):ParseErr("unclosed tag",str,m.index)}if(pushString(str.slice(lastIndex,str.length),!1),config.plugins)for(let i=0;i<config.plugins.length;i++){let plugin=config.plugins[i];plugin.processAST&&(buffer=plugin.processAST(buffer,config))}return buffer}function handleCache(template,options){let templateStore=options&&options.async?this.templatesAsync:this.templatesSync;if(this.resolvePath&&this.readFile&&!template.startsWith("@")){let templatePath2=options.filepath,cachedTemplate=templateStore.get(templatePath2);if(this.config.cache&&cachedTemplate)return cachedTemplate;{let templateString=this.readFile(templatePath2),templateFn=this.compile(templateString,options);return this.config.cache&&templateStore.define(templatePath2,templateFn),templateFn}}else{let cachedTemplate=templateStore.get(template);if(cachedTemplate)return cachedTemplate;throw new EtaNameResolutionError("Failed to get template '"+template+"'")}}function render(template,data2,meta){let templateFn,options={...meta,async:!1};return typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template,templateFn.call(this,data2,options)}function renderAsync(template,data2,meta){let templateFn,options={...meta,async:!0};typeof template=="string"?(this.resolvePath&&this.readFile&&!template.startsWith("@")&&(options.filepath=this.resolvePath(template,options)),templateFn=handleCache.call(this,template,options)):templateFn=template;let res=templateFn.call(this,data2,options);return Promise.resolve(res)}function renderString(template,data2){let templateFn=this.compile(template,{async:!1});return render.call(this,templateFn,data2)}function renderStringAsync(template,data2){let templateFn=this.compile(template,{async:!0});return renderAsync.call(this,templateFn,data2)}function readFile2(path52){let res="";try{res=fs18.readFileSync(path52,"utf8")}catch(err){throw err?.code==="ENOENT"?new EtaFileResolutionError(`Could not find template: ${path52}`):err}return res}function resolvePath2(templatePath2,options){let resolvedFilePath="",views=this.config.views;if(!views)throw new EtaFileResolutionError("Views directory is not defined");let baseFilePath=options&&options.filepath,defaultExtension=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,cacheIndex=JSON.stringify({filename:baseFilePath,path:templatePath2,views:this.config.views});if(templatePath2+=path21.extname(templatePath2)?"":defaultExtension,baseFilePath){if(this.config.cacheFilepaths&&this.filepathCache[cacheIndex])return this.filepathCache[cacheIndex];let absolutePathTest=absolutePathRegExp.exec(templatePath2);if(absolutePathTest&&absolutePathTest.length){let formattedPath=templatePath2.replace(/^\/*|^\\*/,"");resolvedFilePath=path21.join(views,formattedPath)}else resolvedFilePath=path21.join(path21.dirname(baseFilePath),templatePath2)}else resolvedFilePath=path21.join(views,templatePath2);if(dirIsChild(views,resolvedFilePath))return baseFilePath&&this.config.cacheFilepaths&&(this.filepathCache[cacheIndex]=resolvedFilePath),resolvedFilePath;throw new EtaFileResolutionError(`Template '${templatePath2}' is not in the views directory`)}function dirIsChild(parent2,dir){let relative3=path21.relative(parent2,dir);return relative3&&!relative3.startsWith("..")&&!path21.isAbsolute(relative3)}var Cacher,EtaError,EtaParseError,EtaRuntimeError,EtaFileResolutionError,EtaNameResolutionError,AsyncFunction,escMap,defaultConfig2,templateLitReg,singleQuoteReg,doubleQuoteReg,Eta$1,absolutePathRegExp,Eta,init_eta_module=__esm({"../../node_modules/.pnpm/eta@3.5.0/node_modules/eta/dist/eta.module.mjs"(){Cacher=class{static{__name(this,"Cacher")}constructor(cache){this.cache=void 0,this.cache=cache}define(key,val2){this.cache[key]=val2}get(key){return this.cache[key]}remove(key){delete this.cache[key]}reset(){this.cache={}}load(cacheObj){this.cache={...this.cache,...cacheObj}}},EtaError=class extends Error{static{__name(this,"EtaError")}constructor(message){super(message),this.name="Eta Error"}},EtaParseError=class extends EtaError{static{__name(this,"EtaParseError")}constructor(message){super(message),this.name="EtaParser Error"}},EtaRuntimeError=class extends EtaError{static{__name(this,"EtaRuntimeError")}constructor(message){super(message),this.name="EtaRuntime Error"}},EtaFileResolutionError=class extends EtaError{static{__name(this,"EtaFileResolutionError")}constructor(message){super(message),this.name="EtaFileResolution Error"}},EtaNameResolutionError=class extends EtaError{static{__name(this,"EtaNameResolutionError")}constructor(message){super(message),this.name="EtaNameResolution Error"}};__name(ParseErr,"ParseErr");__name(RuntimeErr,"RuntimeErr");AsyncFunction=async function(){}.constructor;__name(compile,"compile");__name(compileToString,"compileToString");__name(compileBody,"compileBody");__name(trimWS,"trimWS");escMap={"&":"&","<":"<",">":">",'"':""","'":"'"};__name(replaceChar,"replaceChar");__name(XMLEscape,"XMLEscape");defaultConfig2={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,debug:!1,escapeFunction:XMLEscape,filterFunction:__name(val2=>String(val2),"filterFunction"),functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},templateLitReg=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,singleQuoteReg=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,doubleQuoteReg=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;__name(escapeRegExp,"escapeRegExp");__name(getLineNo,"getLineNo");__name(parse6,"parse");__name(handleCache,"handleCache");__name(render,"render");__name(renderAsync,"renderAsync");__name(renderString,"renderString");__name(renderStringAsync,"renderStringAsync");Eta$1=class{static{__name(this,"Eta$1")}constructor(customConfig){this.config=void 0,this.RuntimeErr=RuntimeErr,this.compile=compile,this.compileToString=compileToString,this.compileBody=compileBody,this.parse=parse6,this.render=render,this.renderAsync=renderAsync,this.renderString=renderString,this.renderStringAsync=renderStringAsync,this.filepathCache={},this.templatesSync=new Cacher({}),this.templatesAsync=new Cacher({}),this.resolvePath=null,this.readFile=null,customConfig?this.config={...defaultConfig2,...customConfig}:this.config={...defaultConfig2}}configure(customConfig){this.config={...this.config,...customConfig}}withConfig(customConfig){return{...this,config:{...this.config,...customConfig}}}loadTemplate(name,template,options){if(typeof template=="string")(options&&options.async?this.templatesAsync:this.templatesSync).define(name,this.compile(template,options));else{let templates=this.templatesSync;(template.constructor.name==="AsyncFunction"||options&&options.async)&&(templates=this.templatesAsync),templates.define(name,template)}}};__name(readFile2,"readFile");__name(resolvePath2,"resolvePath");__name(dirIsChild,"dirIsChild");absolutePathRegExp=/^\\|^\//,Eta=class extends Eta$1{static{__name(this,"Eta")}constructor(...args){super(...args),this.readFile=readFile2,this.resolvePath=resolvePath2}}}});import{existsSync as existsSync3}from"node:fs";import{dirname as dirname3,resolve as resolve3}from"node:path";import{fileURLToPath as fileURLToPath4}from"node:url";function assetPath(...segments){return resolve3(PACKAGE_ROOT2,"assets",...segments)}var HERE,IS_BUNDLED,PACKAGE_ROOT2,init_assets=__esm({"src/scripts/utils/assets.ts"(){HERE=dirname3(fileURLToPath4(import.meta.url)),IS_BUNDLED=existsSync3(resolve3(HERE,"bundle.json")),PACKAGE_ROOT2=IS_BUNDLED?resolve3(HERE,"..",".."):resolve3(HERE,"..","..","..");__name(assetPath,"assetPath")}});import{existsSync as existsSync4,mkdirSync as mkdirSync2,readFileSync as readFileSync4,readdirSync as readdirSync2,unlinkSync,writeFileSync as writeFileSync2}from"node:fs";import{dirname as dirname4,join as join5,resolve as resolve4}from"node:path";function getFormFiles(formsDir){return existsSync4(formsDir)?readdirSync2(formsDir).filter(f=>f.endsWith(".json")).map(f=>join5(formsDir,f)):[]}function readForm(path52){try{return JSON.parse(readFileSync4(path52,"utf-8"))}catch{return null}}function generateIndexContent(forms3){let lines=["// AUTO-GENERATED \u26A0\uFE0F \u2014 do not edit by hand",""];for(let form of forms3){let pascal=pascalCase(form.name),varName=pascal.charAt(0).toLowerCase()+pascal.slice(1);lines.push(`export { ${pascal}Schema, parse${pascal}FormData, submit${pascal}, FORM_ID as ${varName}FormId } from "./${form.name}";`),lines.push(`export type { ${pascal}Data } from "./${form.name}";`)}return lines.push(""),lines.join(`
|
|
357
357
|
`)}function frameworkFormsTarget(framework){return framework==="nextjs"?"next":framework==="astro"?"astro":framework==="sveltekit"?"sveltekit":null}function hasPackageExport(cwd,entry){let slash=entry.indexOf("/"),name=slash===-1?entry:entry.slice(0,slash),subpath=slash===-1?".":`.${entry.slice(slash)}`,packagePath=join5(cwd,"node_modules",name,"package.json");if(!existsSync4(packagePath))return!1;try{let packageJson=JSON.parse(readFileSync4(packagePath,"utf-8"));return!!(packageJson.exports&&Object.prototype.hasOwnProperty.call(packageJson.exports,subpath))}catch{return!1}}function requiredFormEntries(target){return target==="next"?["fimo/forms","fimo-next","fimo-next/client"]:target==="sveltekit"?["fimo/forms","fimo-sveltekit"]:["fimo/forms",`fimo/${target}`]}function assertFrameworkRuntime(cwd,target){let missing=requiredFormEntries(target).filter(entry=>!hasPackageExport(cwd,entry));if(missing.length!==0)throw new Error(`Cannot generate ${target} form clients because the project cannot resolve ${missing.join(", ")}. Install the current Fimo packages, then run \`fimo validate\` again. No generated files were changed.`)}function generatedFormFiles(target){return target==="next"?[{suffix:".ts",runtimeImport:"fimo-next"},{suffix:".client.ts",runtimeImport:"fimo-next/client",clientDirective:"'use client';"}]:target==="astro"?[{suffix:".ts",runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".ts",runtimeImport:"fimo-sveltekit"}]:[]}function syncForms(options={}){let cwd=options.cwd??process.cwd(),log=__name(msg=>{options.verbose!==!1&&console.log(msg)},"log"),formsDir=resolve4(cwd,FORMS_REL),formFiles=getFormFiles(formsDir),target=frameworkFormsTarget(options.framework);target&&formFiles.length>0&&assertFrameworkRuntime(cwd,target);let legacyTemplateSource=readFileSync4(assetPath("content-templates","forms","react.eta"),"utf-8"),frameworkTemplateSource=target?readFileSync4(assetPath("content-templates","forms","framework.eta"),"utf-8"):null,outputFiles=generatedFormFiles(target),eta=new Eta({views:void 0,useWith:!0,varName:"it",autoEscape:!1}),expectedTsFiles=new Set,allForms=[],created=0,updated=0,deleted=0;for(let jsonPath of formFiles){let form=readForm(jsonPath);if(!form){console.error(`Failed to parse form: ${jsonPath}`);continue}form.name||(form.name=jsonPath.split("/").pop().replace(/\.json$/,"")),allForms.push(form);let formModel={...form,pascal:pascalCase(form.name)},files=target?outputFiles:[{suffix:".ts",runtimeImport:"",clientDirective:""}];for(let output of files){let tsPath=join5(formsDir,`${form.name}${output.suffix}`);expectedTsFiles.add(tsPath);try{let content2=eta.renderString(target?frameworkTemplateSource:legacyTemplateSource,{form:{...formModel,...output}}),dir=dirname4(tsPath);if(existsSync4(dir)||mkdirSync2(dir,{recursive:!0}),!existsSync4(tsPath)){writeFileSync2(tsPath,content2,"utf-8"),created++,log(`Created: ${tsPath}`);continue}readFileSync4(tsPath,"utf-8")!==content2&&(writeFileSync2(tsPath,content2,"utf-8"),updated++,log(`Updated: ${tsPath}`))}catch(error){console.error(`Failed to generate ${tsPath}:`,error)}}}if(allForms.length>0){let indexPath=join5(formsDir,"index.ts");expectedTsFiles.add(indexPath);let indexContent=generateIndexContent(allForms);(!existsSync4(indexPath)||readFileSync4(indexPath,"utf-8")!==indexContent)&&(writeFileSync2(indexPath,indexContent,"utf-8"),log(`Updated: ${indexPath}`))}if(existsSync4(formsDir)){let allTsFiles=readdirSync2(formsDir).filter(f=>f.endsWith(".ts")).map(f=>join5(formsDir,f));for(let tsFile of allTsFiles)if(!expectedTsFiles.has(tsFile))try{unlinkSync(tsFile),deleted++,log(`Deleted orphaned: ${tsFile}`)}catch(error){console.error(`Failed to delete orphaned ${tsFile}:`,error)}}return(created>0||updated>0||deleted>0)&&options.verbose!==!1&&log(`Sync forms: ${created} created, ${updated} updated, ${deleted} deleted`),{created,updated,deleted}}var FORMS_REL,init_sync_forms=__esm({"src/scripts/sync-forms.ts"(){init_dist7();init_eta_module();init_assets();FORMS_REL="src/forms";__name(getFormFiles,"getFormFiles");__name(readForm,"readForm");__name(generateIndexContent,"generateIndexContent");__name(frameworkFormsTarget,"frameworkFormsTarget");__name(hasPackageExport,"hasPackageExport");__name(requiredFormEntries,"requiredFormEntries");__name(assertFrameworkRuntime,"assertFrameworkRuntime");__name(generatedFormFiles,"generatedFormFiles");__name(syncForms,"syncForms")}});import{existsSync as existsSync5,mkdirSync as mkdirSync3,readFileSync as readFileSync5,readdirSync as readdirSync3,unlinkSync as unlinkSync2,writeFileSync as writeFileSync3}from"node:fs";import{basename,dirname as dirname5,join as join6,resolve as resolve5}from"node:path";import{z as z81}from"zod";function getSchemaFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".json")).sort().map(f=>join6(schemasDir,f)):[]}function getGeneratedFiles(schemasDir){return existsSync5(schemasDir)?readdirSync3(schemasDir).filter(f=>f.endsWith(".ts")&&f!=="index.ts").map(f=>join6(schemasDir,f)):[]}function parseVersion(version){let match=/^(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?(?:\+.*)?$/.exec(version);return match?{parts:[Number(match[1]),Number(match[2]),Number(match[3])],prerelease:match[4]!==void 0}:null}function isVersionAtLeast(version,minimum){let parsed=parseVersion(version),parsedMinimum=parseVersion(minimum);if(!parsed||!parsedMinimum)return!1;for(let index2=0;index2<parsed.parts.length;index2++)if(parsed.parts[index2]!==parsedMinimum.parts[index2])return parsed.parts[index2]>parsedMinimum.parts[index2];return!parsed.prerelease||parsedMinimum.prerelease}function packageExportsSubpath(packageJson,subpath){if(!packageJson||typeof packageJson!="object"||Array.isArray(packageJson))return!1;let exports2=packageJson.exports;return!!(exports2&&typeof exports2=="object"&&!Array.isArray(exports2)&&Object.prototype.hasOwnProperty.call(exports2,subpath))}function readProjectPackage(cwd,name){let packagePath=join6(cwd,"node_modules",name,"package.json");if(!existsSync5(packagePath))return null;try{return JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{return null}}function resolveProjectRuntime(cwd){let packagePath=join6(cwd,"node_modules","fimo","package.json");if(!existsSync5(packagePath))throw new Error(`Cannot generate schema clients because the project-local fimo package could not be resolved from ${cwd}. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);let packageJson;try{packageJson=JSON.parse(readFileSync5(packagePath,"utf-8"))}catch{packageJson=null}let version=packageJson&&typeof packageJson=="object"&&!Array.isArray(packageJson)?packageJson.version:null;if(typeof version!="string"||!parseVersion(version))throw new Error(`Cannot generate schema clients with project-local fimo@${typeof version=="string"?version:"unknown"}. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return{packageRoot:dirname5(packagePath),version,providesReactRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-react"),"."),providesNextRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),".")&&packageExportsSubpath(readProjectPackage(cwd,"fimo-next"),"./client"),providesAstroRuntime:packageExportsSubpath(packageJson,"./astro"),providesSvelteKitRuntime:packageExportsSubpath(readProjectPackage(cwd,"fimo-sveltekit"),".")}}function contentRuntimeImportFor(framework){return framework==="nextjs"?"fimo-next":framework==="astro"?"fimo/astro":framework==="sveltekit"||framework==="sveltekit-1"?"fimo-sveltekit":"fimo-react"}function templatePath(runtime,templateName){let template=CONTENT_TEMPLATE_PATHS[templateName];if(runtime&&!isVersionAtLeast(runtime.version,MINIMUM_THIN_CONTENT_CLIENT_RUNTIME_VERSION)){let legacyPath="legacy"in template?template.legacy:template.current;return join6(runtime.packageRoot,"assets","content-templates",legacyPath)}return assetPath("content-templates",template.current)}function resolveSchemaGenerationTarget(runtimeImport,runtime){if(runtimeImport==="fimo-react"&&!runtime.providesReactRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-react package required by this React project. Install fimo-react@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-react")return"react";if(runtimeImport==="fimo-next"&&!runtime.providesNextRuntime)throw new Error(`Cannot generate schema clients because the project does not provide the fimo-next and fimo-next/client exports required by this Next.js project. Install fimo-next@${runtime.version} alongside fimo, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo/astro"&&!runtime.providesAstroRuntime)throw new Error(`Cannot generate schema clients because project-local fimo@${runtime.version} does not provide the fimo/astro export required by this Astro project. Run \`${CONTENT_CLIENT_RUNTIME_UPGRADE_COMMAND}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);if(runtimeImport==="fimo-sveltekit"&&!runtime.providesSvelteKitRuntime)throw new Error(`Cannot generate schema clients because this SvelteKit project has no project-local fimo-sveltekit package. Run \`npm install fimo-sveltekit@${runtime.version}\` in the project, then run \`npx fimo@latest validate\` again. No generated files were changed.`);return runtimeImport==="fimo-next"?"next":runtimeImport==="fimo/astro"?"astro":"sveltekit"}function templatesForTarget(target,runtime,runtimeImport){return target==="next"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-next"},{suffix:".ts",path:templatePath(runtime,"nextServer"),runtimeImport:"fimo-next"},{suffix:".client.ts",path:templatePath(runtime,"nextClient"),runtimeImport:"fimo-next/client"}]:target==="astro"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo/astro"},{suffix:".ts",path:templatePath(runtime,"sharedServer"),runtimeImport:"fimo/astro"}]:target==="sveltekit"?[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport:"fimo-sveltekit"},{suffix:".ts",path:templatePath(runtime,"svelteKitContent"),runtimeImport:"fimo-sveltekit"}]:[{suffix:".types.ts",path:templatePath(runtime,"types"),runtimeImport},{suffix:".ts",path:templatePath(runtime,"reactClient"),runtimeImport}]}function loadSchemas(schemaFiles){let errors=[],schemas3=[],outputOwners=new Map,registryOwners=new Map;for(let path52 of schemaFiles){let fileUid=basename(path52,".json"),pascal=pascalCase(fileUid),existingOwner=outputOwners.get(pascal);existingOwner&&existingOwner!==fileUid?errors.push(`${basename(path52)} and ${existingOwner}.json both generate ${pascal}.ts. Rename one schema to keep generated module names unique.`):outputOwners.set(pascal,fileUid);let parsed;try{parsed=JSON.parse(readFileSync5(path52,"utf-8"))}catch(error){errors.push(`${basename(path52)} is invalid JSON: ${error instanceof Error?error.message:String(error)}`);continue}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed)){errors.push(`${basename(path52)} must contain a JSON object.`);continue}let candidate=parsed;if(typeof candidate.uid!="string"||candidate.uid.length===0){errors.push(`${basename(path52)} is missing "uid". Set it to "${fileUid}".`);continue}if(candidate.uid!==fileUid){errors.push(`${basename(path52)} declares uid "${candidate.uid}". It must match the file name "${fileUid}".`);continue}let validation=SCHEMA_DEFINITION_SCHEMA.safeParse(candidate);if(!validation.success){let details=validation.error.issues.map(issue=>`${issue.path.join(".")||"schema"}: ${issue.message}`).join("; ");errors.push(`${basename(path52)} has an invalid schema shape: ${details}`);continue}let registryKey=camelCase(validation.data.name??validation.data.uid),existingRegistryOwner=registryOwners.get(registryKey);if(existingRegistryOwner&&existingRegistryOwner!==fileUid){errors.push(`${basename(path52)} and ${existingRegistryOwner}.json both generate the content registry key "${registryKey}". Rename one schema display name to keep generated registry keys unique.`);continue}registryOwners.set(registryKey,fileUid),schemas3.push({pascal,registryKey,schema:validation.data})}if(errors.length>0)throw new Error(`Cannot generate schema clients:
|
|
358
358
|
- ${errors.join(`
|
|
359
359
|
- `)}
|
|
@@ -512,7 +512,7 @@ ${end2.comment}`:end2.comment}this.doc.range[2]=end2.offset;break}default:this.e
|
|
|
512
512
|
`)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
|
|
513
513
|
`,nl)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(map2){let it2=map2.items[map2.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,it2.value){let end2="end"in it2.value?it2.value.end:void 0;(Array.isArray(end2)?end2[end2.length-1]:void 0)?.type==="comment"?end2?.push(this.sourceToken):map2.items.push({start:[this.sourceToken]})}else it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"space":case"comment":if(it2.value)map2.items.push({start:[this.sourceToken]});else if(it2.sep)it2.sep.push(this.sourceToken);else{if(this.atIndentedComment(it2.start,map2.indent)){let end2=map2.items[map2.items.length-2]?.value?.end;if(Array.isArray(end2)){arrayPushArray(end2,it2.start),end2.push(this.sourceToken),map2.items.pop();return}}it2.start.push(this.sourceToken)}return}if(this.indent>=map2.indent){let atMapIndent=!this.onKeyLine&&this.indent===map2.indent,atNextItem=atMapIndent&&(it2.sep||it2.explicitKey)&&this.type!=="seq-item-ind",start=[];if(atNextItem&&it2.sep&&!it2.value){let nl=[];for(let i=0;i<it2.sep.length;++i){let st2=it2.sep[i];switch(st2.type){case"newline":nl.push(i);break;case"space":break;case"comment":st2.indent>map2.indent&&(nl.length=0);break;default:nl.length=0}}nl.length>=2&&(start=it2.sep.splice(nl[1]))}switch(this.type){case"anchor":case"tag":atNextItem||it2.value?(start.push(this.sourceToken),map2.items.push({start}),this.onKeyLine=!0):it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"explicit-key-ind":!it2.sep&&!it2.explicitKey?(it2.start.push(this.sourceToken),it2.explicitKey=!0):atNextItem||it2.value?(start.push(this.sourceToken),map2.items.push({start,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(it2.explicitKey)if(it2.sep)if(it2.value)map2.items.push({start:[],key:null,sep:[this.sourceToken]});else if(includesToken(it2.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]});else if(isFlowToken(it2.key)&&!includesToken(it2.sep,"newline")){let start2=getFirstKeyStartProps(it2.start),key=it2.key,sep2=it2.sep;sep2.push(this.sourceToken),delete it2.key,delete it2.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key,sep:sep2}]})}else start.length>0?it2.sep=it2.sep.concat(start,this.sourceToken):it2.sep.push(this.sourceToken);else if(includesToken(it2.start,"newline"))Object.assign(it2,{key:null,sep:[this.sourceToken]});else{let start2=getFirstKeyStartProps(it2.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key:null,sep:[this.sourceToken]}]})}else it2.sep?it2.value||atNextItem?map2.items.push({start,key:null,sep:[this.sourceToken]}):includesToken(it2.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):it2.sep.push(this.sourceToken):Object.assign(it2,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs51=this.flowScalar(this.type);atNextItem||it2.value?(map2.items.push({start,key:fs51,sep:[]}),this.onKeyLine=!0):it2.sep?this.stack.push(fs51):(Object.assign(it2,{key:fs51,sep:[]}),this.onKeyLine=!0);return}default:{let bv=this.startBlockValue(map2);if(bv){if(bv.type==="block-seq"){if(!it2.explicitKey&&it2.sep&&!includesToken(it2.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else atMapIndent&&map2.items.push({start});this.stack.push(bv);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(seq){let it2=seq.items[seq.items.length-1];switch(this.type){case"newline":if(it2.value){let end2="end"in it2.value?it2.value.end:void 0;(Array.isArray(end2)?end2[end2.length-1]:void 0)?.type==="comment"?end2?.push(this.sourceToken):seq.items.push({start:[this.sourceToken]})}else it2.start.push(this.sourceToken);return;case"space":case"comment":if(it2.value)seq.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(it2.start,seq.indent)){let end2=seq.items[seq.items.length-2]?.value?.end;if(Array.isArray(end2)){arrayPushArray(end2,it2.start),end2.push(this.sourceToken),seq.items.pop();return}}it2.start.push(this.sourceToken)}return;case"anchor":case"tag":if(it2.value||this.indent<=seq.indent)break;it2.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==seq.indent)break;it2.value||includesToken(it2.start,"seq-item-ind")?seq.items.push({start:[this.sourceToken]}):it2.start.push(this.sourceToken);return}if(this.indent>seq.indent){let bv=this.startBlockValue(seq);if(bv){this.stack.push(bv);return}}yield*this.pop(),yield*this.step()}*flowCollection(fc){let it2=fc.items[fc.items.length-1];if(this.type==="flow-error-end"){let top;do yield*this.pop(),top=this.peek(1);while(top?.type==="flow-collection")}else if(fc.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!it2||it2.sep?fc.items.push({start:[this.sourceToken]}):it2.start.push(this.sourceToken);return;case"map-value-ind":!it2||it2.value?fc.items.push({start:[],key:null,sep:[this.sourceToken]}):it2.sep?it2.sep.push(this.sourceToken):Object.assign(it2,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!it2||it2.value?fc.items.push({start:[this.sourceToken]}):it2.sep?it2.sep.push(this.sourceToken):it2.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs51=this.flowScalar(this.type);!it2||it2.value?fc.items.push({start:[],key:fs51,sep:[]}):it2.sep?this.stack.push(fs51):Object.assign(it2,{key:fs51,sep:[]});return}case"flow-map-end":case"flow-seq-end":fc.end.push(this.sourceToken);return}let bv=this.startBlockValue(fc);bv?this.stack.push(bv):(yield*this.pop(),yield*this.step())}else{let parent2=this.peek(2);if(parent2.type==="block-map"&&(this.type==="map-value-ind"&&parent2.indent===fc.indent||this.type==="newline"&&!parent2.items[parent2.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&parent2.type!=="flow-collection"){let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);fixFlowSeqItems(fc);let sep2=fc.end.splice(1,fc.end.length);sep2.push(this.sourceToken);let map2={type:"block-map",offset:fc.offset,indent:fc.indent,items:[{start,key:fc,sep:sep2}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=map2}else yield*this.lineEnd(fc)}}flowScalar(type){if(this.onNewLine){let nl=this.source.indexOf(`
|
|
514
514
|
`)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
|
|
515
|
-
`,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent2){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st2=>st2.type==="newline"||st2.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser2}});var require_public_api2=__commonJS({"../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer2(),Document2=require_Document2(),errors=require_errors2(),log=require_log2(),identity2=require_identity2(),lineCounter=require_line_counter2(),parser=require_parser2();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}__name(parseOptions,"parseOptions");function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}__name(parseAllDocuments,"parseAllDocuments");function parseDocument2(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}__name(parseDocument2,"parseDocument");function parse13(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument2(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}__name(parse13,"parse");function stringify5(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity2.isDocument(value)&&!_replacer?value.toString(options):new Document2.Document(value,_replacer,options).toString(options)}__name(stringify5,"stringify");exports2.parse=parse13;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument2;exports2.stringify=stringify5}});var require_dist3=__commonJS({"../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer2(),Document2=require_Document2(),Schema=require_Schema2(),errors=require_errors2(),Alias=require_Alias2(),identity2=require_identity2(),Pair=require_Pair2(),Scalar=require_Scalar2(),YAMLMap=require_YAMLMap2(),YAMLSeq=require_YAMLSeq2(),cst=require_cst2(),lexer=require_lexer2(),lineCounter=require_line_counter2(),parser=require_parser2(),publicApi=require_public_api2(),visit2=require_visit2();exports2.Composer=composer.Composer;exports2.Document=Document2.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity2.isAlias;exports2.isCollection=identity2.isCollection;exports2.isDocument=identity2.isDocument;exports2.isMap=identity2.isMap;exports2.isNode=identity2.isNode;exports2.isPair=identity2.isPair;exports2.isScalar=identity2.isScalar;exports2.isSeq=identity2.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit2.visit;exports2.visitAsync=visit2.visitAsync}});import{existsSync as existsSync9}from"node:fs";import{homedir as homedir2,platform as platform2,tmpdir as tmpdir2}from"node:os";import{basename as basename3,dirname as dirname6,isAbsolute as isAbsolute3,join as join10,normalize,relative as relative2,resolve as resolve8,sep}from"node:path";import{cp,lstat,mkdir,mkdtemp,readFile as readFile4,readdir,readlink,realpath,rm,stat,symlink,writeFile}from"node:fs/promises";import{spawn as spawn2}from"node:child_process";var import_yaml4,xdgConfigHome,CANONICAL_SKILLS_DIR,SKILL_MANIFEST_FILE,DEFAULT_CLONE_TIMEOUT_MS,DEFAULT_FETCH_TIMEOUT_MS,MS_PER_SECOND,SKIP_DISCOVERY_DIRS,COPY_EXCLUDE_FILES,COPY_EXCLUDE_DIRS,WELL_KNOWN_INDEX_FILE,WELL_KNOWN_PATHS,home,configHome,codexHome,claudeHome,vibeHome,resolveOpenClawGlobalSkillsDir,detectOpenClaw,skillAgents,getSkillAgentConfig,isUniversalSkillAgent,getSkillAgentDir,agentConfigEntries,getSkillAgentTypes,isSkillAgentType,getUniversalSkillAgents,detectInstalledSkillAgents,parseFrontmatter,sanitizeName,fetchSkillManifestFromUrl,isPathSafe,stripTrailingSlash,TEMP_PREFIX,SKILL_NAME_PATTERN,WellKnownTimeoutError,isValidWellKnownEntry,fetchOk,buildIndexCandidates,extractRequestedSkillName,validateIndexEntries,resolveIndex,writeSkillFiles,fetchWellKnownSkills,readJsonObjectIfExists,MARKETPLACE_RELATIVE_PATH,PLUGIN_RELATIVE_PATH,PLUGIN_SKILLS_SUBDIR,isClaudeRelativePath,stringValueOrEmpty,resolvePluginRoot,collectPluginSkillSearchDirs,collectPluginGroupings,getPluginSkillPaths,getPluginGroupings,CLONE_TIMEOUT_ENV_VAR,LEGACY_CLONE_TIMEOUT_ENV_VAR,TEMP_CLONE_PREFIX,GitCloneError,resolveCloneTimeoutMs,runGit2,AUTH_ERROR_MARKERS,isAuthErrorMessage,cloneRepo2,cleanupTempDir,getCanonicalSkillsDir,getSkillAgentBaseDir,cleanAndCreateDirectory,resolveSymlinkTarget,resolveParentSymlinks,isPathInsideBase,copyDirectory,isLoopError,createSymlink,installByCopy,installBySymlink,installSkillForAgent,OSC_RE,DCS_PM_APC_RE,CSI_RE,SIMPLE_ESC_RE,C1_RE,CONTROL_RE2,stripTerminalEscapes,sanitizeMetadata,PRIORITY_RELATIVE_PATHS,hasSkillManifest,parseSkillManifest,findSkillDirs,discoverSkills,getSkillDisplayName,filterSkillsByName,escapeRegex,sanitizeSubpath,HOST_CONFIGS,HOST_BY_NAME,HOST_BY_DOMAIN,SSH_URL_PATTERN,isLocalPath,isShorthandCandidate,buildHostedSource,buildHostUrlPatterns,HOST_URL_PATTERNS,decodeFragmentValue,looksLikeGitSource,parseFragmentRef,isDirectSkillMdUrl,EXCLUDED_WELL_KNOWN_HOSTS,isWellKnownCandidate,parseHostedShorthand,isHostnameAuthoritative,parseHostUrl,parseSshUrl,parseSkillSource,resolveSource,resolveTargetAgents,resolveSkillFilters,installSkillsFromSource,init_skill_DRd1jW7a=__esm({"../../node_modules/.pnpm/agent-install@0.0.5/node_modules/agent-install/dist/skill-DRd1jW7a.js"(){init_chunk_pbuEa_1d();init_to_error_message_Bg0SEUet();import_yaml4=__toESM(require_dist3(),1),xdgConfigHome=__name(()=>{let explicit=process.env.XDG_CONFIG_HOME?.trim();if(explicit)return explicit;if(platform2()==="win32"){let localAppData=process.env.LOCALAPPDATA?.trim();if(localAppData)return localAppData}return join10(homedir2(),".config")},"xdgConfigHome"),CANONICAL_SKILLS_DIR=".agents/skills",SKILL_MANIFEST_FILE="SKILL.md",DEFAULT_CLONE_TIMEOUT_MS=3e5,DEFAULT_FETCH_TIMEOUT_MS=3e4,MS_PER_SECOND=1e3,SKIP_DISCOVERY_DIRS=new Set(["node_modules",".git","dist","build","__pycache__","coverage",".next",".turbo"]),COPY_EXCLUDE_FILES=new Set(["metadata.json"]),COPY_EXCLUDE_DIRS=new Set([".git","__pycache__","__pypackages__"]),WELL_KNOWN_INDEX_FILE="index.json",WELL_KNOWN_PATHS=[".well-known/agent-skills",".well-known/skills"],home=homedir2(),configHome=xdgConfigHome(),codexHome=process.env.CODEX_HOME?.trim()||join10(home,".codex"),claudeHome=process.env.CLAUDE_CONFIG_DIR?.trim()||join10(home,".claude"),vibeHome=process.env.VIBE_HOME?.trim()||join10(home,".vibe"),resolveOpenClawGlobalSkillsDir=__name(()=>existsSync9(join10(home,".openclaw"))?join10(home,".openclaw/skills"):existsSync9(join10(home,".clawdbot"))?join10(home,".clawdbot/skills"):existsSync9(join10(home,".moltbot"))?join10(home,".moltbot/skills"):join10(home,".openclaw/skills"),"resolveOpenClawGlobalSkillsDir"),detectOpenClaw=__name(()=>existsSync9(join10(home,".openclaw"))||existsSync9(join10(home,".clawdbot"))||existsSync9(join10(home,".moltbot")),"detectOpenClaw"),skillAgents={adal:{name:"adal",displayName:"AdaL",skillsDir:".adal/skills",globalSkillsDir:join10(home,".adal/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".adal")),"detectInstalled")},"aider-desk":{name:"aider-desk",displayName:"AiderDesk",skillsDir:".aider-desk/skills",globalSkillsDir:join10(home,".aider-desk/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".aider-desk")),"detectInstalled")},amp:{name:"amp",displayName:"Amp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"amp")),"detectInstalled"),isUniversal:!0},antigravity:{name:"antigravity",displayName:"Antigravity",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/antigravity/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini/antigravity")),"detectInstalled"),isUniversal:!0},augment:{name:"augment",displayName:"Augment",skillsDir:".augment/skills",globalSkillsDir:join10(home,".augment/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".augment")),"detectInstalled")},bob:{name:"bob",displayName:"IBM Bob",skillsDir:".bob/skills",globalSkillsDir:join10(home,".bob/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".bob")),"detectInstalled")},"claude-code":{name:"claude-code",displayName:"Claude Code",skillsDir:".claude/skills",globalSkillsDir:join10(claudeHome,"skills"),detectInstalled:__name(async()=>existsSync9(claudeHome),"detectInstalled")},cline:{name:"cline",displayName:"Cline",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cline")),"detectInstalled"),isUniversal:!0},"codearts-agent":{name:"codearts-agent",displayName:"CodeArts Agent",skillsDir:".codeartsdoer/skills",globalSkillsDir:join10(home,".codeartsdoer/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeartsdoer")),"detectInstalled")},codebuddy:{name:"codebuddy",displayName:"CodeBuddy",skillsDir:".codebuddy/skills",globalSkillsDir:join10(home,".codebuddy/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".codebuddy"))||existsSync9(join10(home,".codebuddy")),"detectInstalled")},codemaker:{name:"codemaker",displayName:"Codemaker",skillsDir:".codemaker/skills",globalSkillsDir:join10(home,".codemaker/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codemaker")),"detectInstalled")},codestudio:{name:"codestudio",displayName:"Code Studio",skillsDir:".codestudio/skills",globalSkillsDir:join10(home,".codestudio/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codestudio")),"detectInstalled")},codex:{name:"codex",displayName:"Codex",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(codexHome,"skills"),detectInstalled:__name(async()=>existsSync9(codexHome)||existsSync9("/etc/codex"),"detectInstalled"),isUniversal:!0},"command-code":{name:"command-code",displayName:"Command Code",skillsDir:".commandcode/skills",globalSkillsDir:join10(home,".commandcode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".commandcode")),"detectInstalled")},continue:{name:"continue",displayName:"Continue",skillsDir:".continue/skills",globalSkillsDir:join10(home,".continue/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".continue"))||existsSync9(join10(home,".continue")),"detectInstalled")},cortex:{name:"cortex",displayName:"Cortex Code",skillsDir:".cortex/skills",globalSkillsDir:join10(home,".snowflake/cortex/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".snowflake/cortex")),"detectInstalled")},crush:{name:"crush",displayName:"Crush",skillsDir:".crush/skills",globalSkillsDir:join10(configHome,"crush/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"crush")),"detectInstalled")},cursor:{name:"cursor",displayName:"Cursor",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".cursor/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cursor")),"detectInstalled"),isUniversal:!0},deepagents:{name:"deepagents",displayName:"Deep Agents",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".deepagents/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".deepagents")),"detectInstalled"),isUniversal:!0},devin:{name:"devin",displayName:"Devin",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"devin/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"devin")),"detectInstalled"),isUniversal:!0},dexto:{name:"dexto",displayName:"Dexto",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".dexto")),"detectInstalled"),isUniversal:!0},droid:{name:"droid",displayName:"Factory Droid",skillsDir:".factory/skills",globalSkillsDir:join10(home,".factory/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".factory")),"detectInstalled")},firebender:{name:"firebender",displayName:"Firebender",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".firebender/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".firebender")),"detectInstalled"),isUniversal:!0},forgecode:{name:"forgecode",displayName:"ForgeCode",skillsDir:".forge/skills",globalSkillsDir:join10(home,".forge/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".forge")),"detectInstalled")},"gemini-cli":{name:"gemini-cli",displayName:"Gemini CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini")),"detectInstalled"),isUniversal:!0},"github-copilot":{name:"github-copilot",displayName:"GitHub Copilot",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".copilot/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".copilot")),"detectInstalled"),isUniversal:!0},goose:{name:"goose",displayName:"Goose",skillsDir:".goose/skills",globalSkillsDir:join10(configHome,"goose/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"goose")),"detectInstalled")},"iflow-cli":{name:"iflow-cli",displayName:"iFlow CLI",skillsDir:".iflow/skills",globalSkillsDir:join10(home,".iflow/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".iflow")),"detectInstalled")},junie:{name:"junie",displayName:"Junie",skillsDir:".junie/skills",globalSkillsDir:join10(home,".junie/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".junie")),"detectInstalled")},kilo:{name:"kilo",displayName:"Kilo Code",skillsDir:".kilocode/skills",globalSkillsDir:join10(home,".kilocode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kilocode")),"detectInstalled")},"kimi-cli":{name:"kimi-cli",displayName:"Kimi Code CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kimi")),"detectInstalled"),isUniversal:!0},"kiro-cli":{name:"kiro-cli",displayName:"Kiro CLI",skillsDir:".kiro/skills",globalSkillsDir:join10(home,".kiro/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kiro")),"detectInstalled")},kode:{name:"kode",displayName:"Kode",skillsDir:".kode/skills",globalSkillsDir:join10(home,".kode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kode")),"detectInstalled")},mcpjam:{name:"mcpjam",displayName:"MCPJam",skillsDir:".mcpjam/skills",globalSkillsDir:join10(home,".mcpjam/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mcpjam")),"detectInstalled")},"mistral-vibe":{name:"mistral-vibe",displayName:"Mistral Vibe",skillsDir:".vibe/skills",globalSkillsDir:join10(vibeHome,"skills"),detectInstalled:__name(async()=>existsSync9(vibeHome),"detectInstalled")},mux:{name:"mux",displayName:"Mux",skillsDir:".mux/skills",globalSkillsDir:join10(home,".mux/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mux")),"detectInstalled")},neovate:{name:"neovate",displayName:"Neovate",skillsDir:".neovate/skills",globalSkillsDir:join10(home,".neovate/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".neovate")),"detectInstalled")},openclaw:{name:"openclaw",displayName:"OpenClaw",skillsDir:"skills",globalSkillsDir:resolveOpenClawGlobalSkillsDir(),detectInstalled:__name(async()=>detectOpenClaw(),"detectInstalled")},opencode:{name:"opencode",displayName:"OpenCode",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"opencode/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"opencode")),"detectInstalled"),isUniversal:!0},openhands:{name:"openhands",displayName:"OpenHands",skillsDir:".openhands/skills",globalSkillsDir:join10(home,".openhands/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".openhands")),"detectInstalled")},pi:{name:"pi",displayName:"Pi",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".pi/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pi")),"detectInstalled"),isUniversal:!0},pochi:{name:"pochi",displayName:"Pochi",skillsDir:".pochi/skills",globalSkillsDir:join10(home,".pochi/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pochi")),"detectInstalled")},qoder:{name:"qoder",displayName:"Qoder",skillsDir:".qoder/skills",globalSkillsDir:join10(home,".qoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qoder")),"detectInstalled")},"qwen-code":{name:"qwen-code",displayName:"Qwen Code",skillsDir:".qwen/skills",globalSkillsDir:join10(home,".qwen/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qwen")),"detectInstalled")},replit:{name:"replit",displayName:"Replit",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".replit")),"detectInstalled"),isUniversal:!0},roo:{name:"roo",displayName:"Roo Code",skillsDir:".roo/skills",globalSkillsDir:join10(home,".roo/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".roo")),"detectInstalled")},rovodev:{name:"rovodev",displayName:"Rovo Dev",skillsDir:".rovodev/skills",globalSkillsDir:join10(home,".rovodev/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".rovodev")),"detectInstalled")},"tabnine-cli":{name:"tabnine-cli",displayName:"Tabnine CLI",skillsDir:".tabnine/agent/skills",globalSkillsDir:join10(home,".tabnine/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".tabnine")),"detectInstalled")},trae:{name:"trae",displayName:"Trae",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae")),"detectInstalled")},"trae-cn":{name:"trae-cn",displayName:"Trae CN",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae-cn/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae-cn")),"detectInstalled")},universal:{name:"universal",displayName:"Universal",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>!1,"detectInstalled"),isUniversal:!0},warp:{name:"warp",displayName:"Warp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".warp")),"detectInstalled"),isUniversal:!0},windsurf:{name:"windsurf",displayName:"Windsurf",skillsDir:".windsurf/skills",globalSkillsDir:join10(home,".codeium/windsurf/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeium/windsurf")),"detectInstalled")},zencoder:{name:"zencoder",displayName:"Zencoder",skillsDir:".zencoder/skills",globalSkillsDir:join10(home,".zencoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".zencoder")),"detectInstalled")}},getSkillAgentConfig=__name(agentType=>skillAgents[agentType],"getSkillAgentConfig"),isUniversalSkillAgent=__name(agentType=>!!skillAgents[agentType].isUniversal,"isUniversalSkillAgent"),getSkillAgentDir=__name((agentType,options={})=>{let agent=skillAgents[agentType];return options.global??!1?agent.globalSkillsDir??join10(home,agent.skillsDir):join10(options.cwd??process.cwd(),agent.skillsDir)},"getSkillAgentDir"),agentConfigEntries=__name(()=>Object.values(skillAgents).map(config=>[config.name,config]),"agentConfigEntries"),getSkillAgentTypes=__name(()=>agentConfigEntries().map(([name])=>name),"getSkillAgentTypes"),isSkillAgentType=__name(value=>value in skillAgents,"isSkillAgentType"),getUniversalSkillAgents=__name(()=>agentConfigEntries().filter(([name,config])=>config.isUniversal&&name!=="universal").map(([name])=>name),"getUniversalSkillAgents"),detectInstalledSkillAgents=__name(async()=>(await Promise.all(Object.values(skillAgents).map(async config=>({name:config.name,installed:await config.detectInstalled()})))).filter(entry=>entry.installed).map(entry=>entry.name),"detectInstalledSkillAgents"),parseFrontmatter=__name(raw=>{let match=raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!match)return{data:{},content:raw};let parsed=(0,import_yaml4.parse)(match[1]??"");return{data:isPlainObject(parsed)?parsed:{},content:match[2]??""}},"parseFrontmatter"),sanitizeName=__name(name=>name.toLowerCase().replace(/[^a-z0-9._]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").substring(0,255)||"unnamed-skill","sanitizeName"),fetchSkillManifestFromUrl=__name(async url=>{let controller=new AbortController,timer=setTimeout(()=>controller.abort(),DEFAULT_FETCH_TIMEOUT_MS);try{let response=await fetch(url,{signal:controller.signal});if(!response.ok)throw new Error(`Failed to fetch ${url}: HTTP ${response.status}`);let content2=await response.text(),{data:data2}=parseFrontmatter(content2);if(typeof data2.name!="string"||!data2.name)throw new Error(`Fetched SKILL.md has no "name" in its frontmatter: ${url}`);let skillName=sanitizeName(data2.name),baseDir=await mkdtemp(join10(tmpdir2(),"agent-install-url-")),skillDir=join10(baseDir,skillName);return await mkdir(dirname6(join10(skillDir,SKILL_MANIFEST_FILE)),{recursive:!0}),await writeFile(join10(skillDir,SKILL_MANIFEST_FILE),content2,"utf-8"),baseDir}finally{clearTimeout(timer)}},"fetchSkillManifestFromUrl"),isPathSafe=__name((basePath,targetPath)=>{let normalizedBase=normalize(resolve8(basePath)),normalizedTarget=normalize(resolve8(targetPath));return normalizedTarget.startsWith(normalizedBase+sep)||normalizedTarget===normalizedBase},"isPathSafe"),stripTrailingSlash=__name(input=>input.endsWith("/")?input.slice(0,-1):input,"stripTrailingSlash"),TEMP_PREFIX="agent-install-well-known-",SKILL_NAME_PATTERN=/^[a-z0-9]([a-z0-9-]{0,62}[a-z0-9])?$/,WellKnownTimeoutError=class extends Error{static{__name(this,"WellKnownTimeoutError")}constructor(message){super(message),this.name="WellKnownTimeoutError"}},isValidWellKnownEntry=__name(value=>{if(!isPlainObject(value)||typeof value.name!="string"||!value.name||typeof value.description!="string"||!value.description||!Array.isArray(value.files)||value.files.length===0||value.name.length>1&&!SKILL_NAME_PATTERN.test(value.name)||value.name.length===1&&!/^[a-z0-9]$/.test(value.name))return!1;for(let file of value.files)if(typeof file!="string"||file.startsWith("/")||file.startsWith("\\")||file.includes(".."))return!1;return value.files.some(file=>typeof file=="string"&&file.toLowerCase()==="skill.md")},"isValidWellKnownEntry"),fetchOk=__name(async url=>{try{let response=await fetch(url,{signal:AbortSignal.timeout(DEFAULT_FETCH_TIMEOUT_MS)});return response.ok?response:null}catch(error){if(error instanceof DOMException&&error.name==="TimeoutError")throw new WellKnownTimeoutError(`Request timed out: ${url}`);return null}},"fetchOk"),buildIndexCandidates=__name(inputUrl=>{let parsed=new URL(inputUrl),basePath=stripTrailingSlash(parsed.pathname),candidates=[];for(let wellKnownPath of WELL_KNOWN_PATHS)candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}${basePath}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}${basePath}`,wellKnownPath}),basePath&&candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}`,wellKnownPath});return candidates},"buildIndexCandidates"),extractRequestedSkillName=__name(inputUrl=>{try{let name=new URL(inputUrl).pathname.match(/\/.well-known\/(?:agent-skills|skills)\/([^/]+)\/?$/)?.[1];return name&&name!=="index.json"?name:void 0}catch{return}},"extractRequestedSkillName"),validateIndexEntries=__name(payload=>{if(!isPlainObject(payload))return null;let{skills:skills2}=payload;return!Array.isArray(skills2)||!skills2.every(isValidWellKnownEntry)?null:skills2},"validateIndexEntries"),resolveIndex=__name(async inputUrl=>{for(let candidate of buildIndexCandidates(inputUrl)){let response=await fetchOk(candidate.indexUrl);if(!response)continue;let payload;try{payload=await response.json()}catch{continue}let entries2=validateIndexEntries(payload);if(entries2)return{entries:entries2,baseUrl:candidate.baseUrl,wellKnownPath:candidate.wellKnownPath,requestedSkillName:extractRequestedSkillName(inputUrl)}}return null},"resolveIndex"),writeSkillFiles=__name(async(resolved,entry,rootDir)=>{let skillDir=join10(rootDir,sanitizeName(entry.name));await mkdir(skillDir,{recursive:!0});let skillBaseUrl=`${stripTrailingSlash(resolved.baseUrl)}/${resolved.wellKnownPath}/${entry.name}`,installedAny=!1;return await Promise.all(entry.files.map(async relativePath=>{let targetPath=join10(skillDir,relativePath);if(!isPathSafe(skillDir,targetPath))return;let response=await fetchOk(`${skillBaseUrl}/${relativePath}`);if(!response)return;let content2=await response.text();await mkdir(dirname6(targetPath),{recursive:!0}),await writeFile(targetPath,content2,"utf-8"),installedAny=!0})),installedAny},"writeSkillFiles"),fetchWellKnownSkills=__name(async inputUrl=>{let resolved=await resolveIndex(inputUrl).catch(error=>{throw error instanceof WellKnownTimeoutError?new Error(`Timed out resolving well-known skills index at ${inputUrl}. Set the source's HTTP server to respond faster, or pass a local path.`):error});if(!resolved)throw new Error(`No /.well-known/agent-skills/index.json (or fallback /.well-known/skills/index.json) found at ${inputUrl}`);let entries2=resolved.requestedSkillName?resolved.entries.filter(entry=>entry.name===resolved.requestedSkillName):resolved.entries;if(entries2.length===0)throw new Error(resolved.requestedSkillName?`Skill "${resolved.requestedSkillName}" not found in well-known index at ${inputUrl}`:`Well-known index at ${inputUrl} declares no skills`);let baseDir=await mkdtemp(join10(tmpdir2(),TEMP_PREFIX));if(!(await Promise.all(entries2.map(entry=>writeSkillFiles(resolved,entry,baseDir)))).some(Boolean))throw new Error(`Failed to fetch any skill files from well-known index at ${inputUrl}`);return baseDir},"fetchWellKnownSkills"),readJsonObjectIfExists=__name(async path52=>{try{let content2=await readFile4(path52,"utf-8"),parsed=JSON.parse(content2);return isPlainObject(parsed)?parsed:null}catch{return null}},"readJsonObjectIfExists"),MARKETPLACE_RELATIVE_PATH=".claude-plugin/marketplace.json",PLUGIN_RELATIVE_PATH=".claude-plugin/plugin.json",PLUGIN_SKILLS_SUBDIR="skills",isClaudeRelativePath=__name(input=>typeof input=="string"&&input.startsWith("./"),"isClaudeRelativePath"),stringValueOrEmpty=__name(input=>typeof input=="string"?input:"","stringValueOrEmpty"),resolvePluginRoot=__name(manifest=>{if(!isPlainObject(manifest.metadata))return"";let rawPluginRoot=manifest.metadata.pluginRoot;return rawPluginRoot===void 0?"":isClaudeRelativePath(rawPluginRoot)?rawPluginRoot:null},"resolvePluginRoot"),collectPluginSkillSearchDirs=__name((basePath,pluginBase,rawSkills,searchDirs)=>{if(isPathSafe(basePath,pluginBase)){if(Array.isArray(rawSkills))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=dirname6(join10(pluginBase,entry));isPathSafe(basePath,skillDir)&&searchDirs.push(skillDir)}searchDirs.push(join10(pluginBase,PLUGIN_SKILLS_SUBDIR))}},"collectPluginSkillSearchDirs"),collectPluginGroupings=__name((basePath,pluginBase,pluginName,rawSkills,groupings)=>{if(!(!isPathSafe(basePath,pluginBase)||!Array.isArray(rawSkills)))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=join10(pluginBase,entry);isPathSafe(basePath,skillDir)&&groupings.set(resolve8(skillDir),pluginName)}},"collectPluginGroupings"),getPluginSkillPaths=__name(async basePath=>{let searchDirs=[],marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginSkillSearchDirs(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.skills,searchDirs))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&collectPluginSkillSearchDirs(basePath,basePath,single.skills,searchDirs),searchDirs},"getPluginSkillPaths"),getPluginGroupings=__name(async basePath=>{let groupings=new Map,marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(typeof plugin.name!="string"||!plugin.name||plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginGroupings(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.name,plugin.skills,groupings))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&typeof single.name=="string"&&single.name&&collectPluginGroupings(basePath,basePath,single.name,single.skills,groupings),groupings},"getPluginGroupings"),CLONE_TIMEOUT_ENV_VAR="AGENT_INSTALL_CLONE_TIMEOUT_MS",LEGACY_CLONE_TIMEOUT_ENV_VAR="SKILL_INSTALL_CLONE_TIMEOUT_MS",TEMP_CLONE_PREFIX="agent-install-",GitCloneError=class extends Error{static{__name(this,"GitCloneError")}url;kind;constructor(message,url,kind="unknown"){super(message),this.name="GitCloneError",this.url=url,this.kind=kind}get isTimeout(){return this.kind==="timeout"}get isAuthError(){return this.kind==="auth"}},resolveCloneTimeoutMs=__name(()=>{let raw=process.env[CLONE_TIMEOUT_ENV_VAR]??process.env[LEGACY_CLONE_TIMEOUT_ENV_VAR];if(!raw)return DEFAULT_CLONE_TIMEOUT_MS;let parsed=Number.parseInt(raw,10);return Number.isFinite(parsed)&&parsed>0?parsed:DEFAULT_CLONE_TIMEOUT_MS},"resolveCloneTimeoutMs"),runGit2=__name((args,timeoutMs)=>new Promise(resolvePromise=>{let child=spawn2("git",args,{env:{...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1"}}),stderr="",timedOut=!1,timer=setTimeout(()=>{timedOut=!0,child.kill("SIGKILL")},timeoutMs);child.stderr.on("data",chunk=>{stderr+=chunk.toString()}),child.on("close",code2=>{clearTimeout(timer),resolvePromise({code:code2??1,stderr,timedOut})}),child.on("error",err=>{clearTimeout(timer),stderr+=err.message,resolvePromise({code:1,stderr,timedOut})})}),"runGit"),AUTH_ERROR_MARKERS=["Authentication failed","could not read Username","Permission denied","Repository not found"],isAuthErrorMessage=__name(stderr=>AUTH_ERROR_MARKERS.some(marker=>stderr.includes(marker)),"isAuthErrorMessage"),cloneRepo2=__name(async(url,ref)=>{let tempDir=await mkdtemp(join10(tmpdir2(),TEMP_CLONE_PREFIX)),timeoutMs=resolveCloneTimeoutMs(),args=["-c","filter.lfs.required=false","-c","filter.lfs.smudge=","-c","filter.lfs.clean=","-c","filter.lfs.process=","clone","--depth","1"];ref&&args.push("--branch",ref),args.push(url,tempDir);let{code:code2,stderr,timedOut}=await runGit2(args,timeoutMs);if(code2===0)return tempDir;throw await rm(tempDir,{recursive:!0,force:!0}).catch(()=>{}),timedOut?new GitCloneError([`Clone timed out after ${Math.round(timeoutMs/MS_PER_SECOND)}s. Common causes:`,` - Large repository: raise the timeout with ${CLONE_TIMEOUT_ENV_VAR}=600000 (10m)`," - Slow network: retry, or clone manually and pass the local path to 'skill add'"," - Private repo without credentials:"," - For SSH: ssh-add -l (to check loaded keys)"," - For HTTPS: gh auth status (if using GitHub CLI)"].join(`
|
|
515
|
+
`,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent2){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev2=getPrevProps(parent2),start=getFirstKeyStartProps(prev2);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st2=>st2.type==="newline"||st2.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser2}});var require_public_api2=__commonJS({"../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer2(),Document2=require_Document2(),errors=require_errors2(),log=require_log2(),identity2=require_identity2(),lineCounter=require_line_counter2(),parser=require_parser2();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}__name(parseOptions,"parseOptions");function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}__name(parseAllDocuments,"parseAllDocuments");function parseDocument2(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}__name(parseDocument2,"parseDocument");function parse15(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument2(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}__name(parse15,"parse");function stringify5(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity2.isDocument(value)&&!_replacer?value.toString(options):new Document2.Document(value,_replacer,options).toString(options)}__name(stringify5,"stringify");exports2.parse=parse15;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument2;exports2.stringify=stringify5}});var require_dist3=__commonJS({"../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer2(),Document2=require_Document2(),Schema=require_Schema2(),errors=require_errors2(),Alias=require_Alias2(),identity2=require_identity2(),Pair=require_Pair2(),Scalar=require_Scalar2(),YAMLMap=require_YAMLMap2(),YAMLSeq=require_YAMLSeq2(),cst=require_cst2(),lexer=require_lexer2(),lineCounter=require_line_counter2(),parser=require_parser2(),publicApi=require_public_api2(),visit2=require_visit2();exports2.Composer=composer.Composer;exports2.Document=Document2.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity2.isAlias;exports2.isCollection=identity2.isCollection;exports2.isDocument=identity2.isDocument;exports2.isMap=identity2.isMap;exports2.isNode=identity2.isNode;exports2.isPair=identity2.isPair;exports2.isScalar=identity2.isScalar;exports2.isSeq=identity2.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit2.visit;exports2.visitAsync=visit2.visitAsync}});import{existsSync as existsSync9}from"node:fs";import{homedir as homedir2,platform as platform2,tmpdir as tmpdir2}from"node:os";import{basename as basename3,dirname as dirname6,isAbsolute as isAbsolute3,join as join10,normalize,relative as relative2,resolve as resolve8,sep}from"node:path";import{cp,lstat,mkdir,mkdtemp,readFile as readFile4,readdir,readlink,realpath,rm,stat,symlink,writeFile}from"node:fs/promises";import{spawn as spawn2}from"node:child_process";var import_yaml4,xdgConfigHome,CANONICAL_SKILLS_DIR,SKILL_MANIFEST_FILE,DEFAULT_CLONE_TIMEOUT_MS,DEFAULT_FETCH_TIMEOUT_MS,MS_PER_SECOND,SKIP_DISCOVERY_DIRS,COPY_EXCLUDE_FILES,COPY_EXCLUDE_DIRS,WELL_KNOWN_INDEX_FILE,WELL_KNOWN_PATHS,home,configHome,codexHome,claudeHome,vibeHome,resolveOpenClawGlobalSkillsDir,detectOpenClaw,skillAgents,getSkillAgentConfig,isUniversalSkillAgent,getSkillAgentDir,agentConfigEntries,getSkillAgentTypes,isSkillAgentType,getUniversalSkillAgents,detectInstalledSkillAgents,parseFrontmatter,sanitizeName,fetchSkillManifestFromUrl,isPathSafe,stripTrailingSlash,TEMP_PREFIX,SKILL_NAME_PATTERN,WellKnownTimeoutError,isValidWellKnownEntry,fetchOk,buildIndexCandidates,extractRequestedSkillName,validateIndexEntries,resolveIndex,writeSkillFiles,fetchWellKnownSkills,readJsonObjectIfExists,MARKETPLACE_RELATIVE_PATH,PLUGIN_RELATIVE_PATH,PLUGIN_SKILLS_SUBDIR,isClaudeRelativePath,stringValueOrEmpty,resolvePluginRoot,collectPluginSkillSearchDirs,collectPluginGroupings,getPluginSkillPaths,getPluginGroupings,CLONE_TIMEOUT_ENV_VAR,LEGACY_CLONE_TIMEOUT_ENV_VAR,TEMP_CLONE_PREFIX,GitCloneError,resolveCloneTimeoutMs,runGit2,AUTH_ERROR_MARKERS,isAuthErrorMessage,cloneRepo2,cleanupTempDir,getCanonicalSkillsDir,getSkillAgentBaseDir,cleanAndCreateDirectory,resolveSymlinkTarget,resolveParentSymlinks,isPathInsideBase,copyDirectory,isLoopError,createSymlink,installByCopy,installBySymlink,installSkillForAgent,OSC_RE,DCS_PM_APC_RE,CSI_RE,SIMPLE_ESC_RE,C1_RE,CONTROL_RE2,stripTerminalEscapes,sanitizeMetadata,PRIORITY_RELATIVE_PATHS,hasSkillManifest,parseSkillManifest,findSkillDirs,discoverSkills,getSkillDisplayName,filterSkillsByName,escapeRegex,sanitizeSubpath,HOST_CONFIGS,HOST_BY_NAME,HOST_BY_DOMAIN,SSH_URL_PATTERN,isLocalPath,isShorthandCandidate,buildHostedSource,buildHostUrlPatterns,HOST_URL_PATTERNS,decodeFragmentValue,looksLikeGitSource,parseFragmentRef,isDirectSkillMdUrl,EXCLUDED_WELL_KNOWN_HOSTS,isWellKnownCandidate,parseHostedShorthand,isHostnameAuthoritative,parseHostUrl,parseSshUrl,parseSkillSource,resolveSource,resolveTargetAgents,resolveSkillFilters,installSkillsFromSource,init_skill_DRd1jW7a=__esm({"../../node_modules/.pnpm/agent-install@0.0.5/node_modules/agent-install/dist/skill-DRd1jW7a.js"(){init_chunk_pbuEa_1d();init_to_error_message_Bg0SEUet();import_yaml4=__toESM(require_dist3(),1),xdgConfigHome=__name(()=>{let explicit=process.env.XDG_CONFIG_HOME?.trim();if(explicit)return explicit;if(platform2()==="win32"){let localAppData=process.env.LOCALAPPDATA?.trim();if(localAppData)return localAppData}return join10(homedir2(),".config")},"xdgConfigHome"),CANONICAL_SKILLS_DIR=".agents/skills",SKILL_MANIFEST_FILE="SKILL.md",DEFAULT_CLONE_TIMEOUT_MS=3e5,DEFAULT_FETCH_TIMEOUT_MS=3e4,MS_PER_SECOND=1e3,SKIP_DISCOVERY_DIRS=new Set(["node_modules",".git","dist","build","__pycache__","coverage",".next",".turbo"]),COPY_EXCLUDE_FILES=new Set(["metadata.json"]),COPY_EXCLUDE_DIRS=new Set([".git","__pycache__","__pypackages__"]),WELL_KNOWN_INDEX_FILE="index.json",WELL_KNOWN_PATHS=[".well-known/agent-skills",".well-known/skills"],home=homedir2(),configHome=xdgConfigHome(),codexHome=process.env.CODEX_HOME?.trim()||join10(home,".codex"),claudeHome=process.env.CLAUDE_CONFIG_DIR?.trim()||join10(home,".claude"),vibeHome=process.env.VIBE_HOME?.trim()||join10(home,".vibe"),resolveOpenClawGlobalSkillsDir=__name(()=>existsSync9(join10(home,".openclaw"))?join10(home,".openclaw/skills"):existsSync9(join10(home,".clawdbot"))?join10(home,".clawdbot/skills"):existsSync9(join10(home,".moltbot"))?join10(home,".moltbot/skills"):join10(home,".openclaw/skills"),"resolveOpenClawGlobalSkillsDir"),detectOpenClaw=__name(()=>existsSync9(join10(home,".openclaw"))||existsSync9(join10(home,".clawdbot"))||existsSync9(join10(home,".moltbot")),"detectOpenClaw"),skillAgents={adal:{name:"adal",displayName:"AdaL",skillsDir:".adal/skills",globalSkillsDir:join10(home,".adal/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".adal")),"detectInstalled")},"aider-desk":{name:"aider-desk",displayName:"AiderDesk",skillsDir:".aider-desk/skills",globalSkillsDir:join10(home,".aider-desk/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".aider-desk")),"detectInstalled")},amp:{name:"amp",displayName:"Amp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"amp")),"detectInstalled"),isUniversal:!0},antigravity:{name:"antigravity",displayName:"Antigravity",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/antigravity/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini/antigravity")),"detectInstalled"),isUniversal:!0},augment:{name:"augment",displayName:"Augment",skillsDir:".augment/skills",globalSkillsDir:join10(home,".augment/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".augment")),"detectInstalled")},bob:{name:"bob",displayName:"IBM Bob",skillsDir:".bob/skills",globalSkillsDir:join10(home,".bob/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".bob")),"detectInstalled")},"claude-code":{name:"claude-code",displayName:"Claude Code",skillsDir:".claude/skills",globalSkillsDir:join10(claudeHome,"skills"),detectInstalled:__name(async()=>existsSync9(claudeHome),"detectInstalled")},cline:{name:"cline",displayName:"Cline",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cline")),"detectInstalled"),isUniversal:!0},"codearts-agent":{name:"codearts-agent",displayName:"CodeArts Agent",skillsDir:".codeartsdoer/skills",globalSkillsDir:join10(home,".codeartsdoer/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeartsdoer")),"detectInstalled")},codebuddy:{name:"codebuddy",displayName:"CodeBuddy",skillsDir:".codebuddy/skills",globalSkillsDir:join10(home,".codebuddy/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".codebuddy"))||existsSync9(join10(home,".codebuddy")),"detectInstalled")},codemaker:{name:"codemaker",displayName:"Codemaker",skillsDir:".codemaker/skills",globalSkillsDir:join10(home,".codemaker/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codemaker")),"detectInstalled")},codestudio:{name:"codestudio",displayName:"Code Studio",skillsDir:".codestudio/skills",globalSkillsDir:join10(home,".codestudio/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codestudio")),"detectInstalled")},codex:{name:"codex",displayName:"Codex",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(codexHome,"skills"),detectInstalled:__name(async()=>existsSync9(codexHome)||existsSync9("/etc/codex"),"detectInstalled"),isUniversal:!0},"command-code":{name:"command-code",displayName:"Command Code",skillsDir:".commandcode/skills",globalSkillsDir:join10(home,".commandcode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".commandcode")),"detectInstalled")},continue:{name:"continue",displayName:"Continue",skillsDir:".continue/skills",globalSkillsDir:join10(home,".continue/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".continue"))||existsSync9(join10(home,".continue")),"detectInstalled")},cortex:{name:"cortex",displayName:"Cortex Code",skillsDir:".cortex/skills",globalSkillsDir:join10(home,".snowflake/cortex/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".snowflake/cortex")),"detectInstalled")},crush:{name:"crush",displayName:"Crush",skillsDir:".crush/skills",globalSkillsDir:join10(configHome,"crush/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"crush")),"detectInstalled")},cursor:{name:"cursor",displayName:"Cursor",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".cursor/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".cursor")),"detectInstalled"),isUniversal:!0},deepagents:{name:"deepagents",displayName:"Deep Agents",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".deepagents/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".deepagents")),"detectInstalled"),isUniversal:!0},devin:{name:"devin",displayName:"Devin",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"devin/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"devin")),"detectInstalled"),isUniversal:!0},dexto:{name:"dexto",displayName:"Dexto",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".dexto")),"detectInstalled"),isUniversal:!0},droid:{name:"droid",displayName:"Factory Droid",skillsDir:".factory/skills",globalSkillsDir:join10(home,".factory/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".factory")),"detectInstalled")},firebender:{name:"firebender",displayName:"Firebender",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".firebender/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".firebender")),"detectInstalled"),isUniversal:!0},forgecode:{name:"forgecode",displayName:"ForgeCode",skillsDir:".forge/skills",globalSkillsDir:join10(home,".forge/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".forge")),"detectInstalled")},"gemini-cli":{name:"gemini-cli",displayName:"Gemini CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".gemini/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".gemini")),"detectInstalled"),isUniversal:!0},"github-copilot":{name:"github-copilot",displayName:"GitHub Copilot",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".copilot/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".copilot")),"detectInstalled"),isUniversal:!0},goose:{name:"goose",displayName:"Goose",skillsDir:".goose/skills",globalSkillsDir:join10(configHome,"goose/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"goose")),"detectInstalled")},"iflow-cli":{name:"iflow-cli",displayName:"iFlow CLI",skillsDir:".iflow/skills",globalSkillsDir:join10(home,".iflow/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".iflow")),"detectInstalled")},junie:{name:"junie",displayName:"Junie",skillsDir:".junie/skills",globalSkillsDir:join10(home,".junie/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".junie")),"detectInstalled")},kilo:{name:"kilo",displayName:"Kilo Code",skillsDir:".kilocode/skills",globalSkillsDir:join10(home,".kilocode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kilocode")),"detectInstalled")},"kimi-cli":{name:"kimi-cli",displayName:"Kimi Code CLI",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kimi")),"detectInstalled"),isUniversal:!0},"kiro-cli":{name:"kiro-cli",displayName:"Kiro CLI",skillsDir:".kiro/skills",globalSkillsDir:join10(home,".kiro/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kiro")),"detectInstalled")},kode:{name:"kode",displayName:"Kode",skillsDir:".kode/skills",globalSkillsDir:join10(home,".kode/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".kode")),"detectInstalled")},mcpjam:{name:"mcpjam",displayName:"MCPJam",skillsDir:".mcpjam/skills",globalSkillsDir:join10(home,".mcpjam/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mcpjam")),"detectInstalled")},"mistral-vibe":{name:"mistral-vibe",displayName:"Mistral Vibe",skillsDir:".vibe/skills",globalSkillsDir:join10(vibeHome,"skills"),detectInstalled:__name(async()=>existsSync9(vibeHome),"detectInstalled")},mux:{name:"mux",displayName:"Mux",skillsDir:".mux/skills",globalSkillsDir:join10(home,".mux/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".mux")),"detectInstalled")},neovate:{name:"neovate",displayName:"Neovate",skillsDir:".neovate/skills",globalSkillsDir:join10(home,".neovate/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".neovate")),"detectInstalled")},openclaw:{name:"openclaw",displayName:"OpenClaw",skillsDir:"skills",globalSkillsDir:resolveOpenClawGlobalSkillsDir(),detectInstalled:__name(async()=>detectOpenClaw(),"detectInstalled")},opencode:{name:"opencode",displayName:"OpenCode",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"opencode/skills"),detectInstalled:__name(async()=>existsSync9(join10(configHome,"opencode")),"detectInstalled"),isUniversal:!0},openhands:{name:"openhands",displayName:"OpenHands",skillsDir:".openhands/skills",globalSkillsDir:join10(home,".openhands/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".openhands")),"detectInstalled")},pi:{name:"pi",displayName:"Pi",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".pi/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pi")),"detectInstalled"),isUniversal:!0},pochi:{name:"pochi",displayName:"Pochi",skillsDir:".pochi/skills",globalSkillsDir:join10(home,".pochi/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".pochi")),"detectInstalled")},qoder:{name:"qoder",displayName:"Qoder",skillsDir:".qoder/skills",globalSkillsDir:join10(home,".qoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qoder")),"detectInstalled")},"qwen-code":{name:"qwen-code",displayName:"Qwen Code",skillsDir:".qwen/skills",globalSkillsDir:join10(home,".qwen/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".qwen")),"detectInstalled")},replit:{name:"replit",displayName:"Replit",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(configHome,"agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(process.cwd(),".replit")),"detectInstalled"),isUniversal:!0},roo:{name:"roo",displayName:"Roo Code",skillsDir:".roo/skills",globalSkillsDir:join10(home,".roo/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".roo")),"detectInstalled")},rovodev:{name:"rovodev",displayName:"Rovo Dev",skillsDir:".rovodev/skills",globalSkillsDir:join10(home,".rovodev/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".rovodev")),"detectInstalled")},"tabnine-cli":{name:"tabnine-cli",displayName:"Tabnine CLI",skillsDir:".tabnine/agent/skills",globalSkillsDir:join10(home,".tabnine/agent/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".tabnine")),"detectInstalled")},trae:{name:"trae",displayName:"Trae",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae")),"detectInstalled")},"trae-cn":{name:"trae-cn",displayName:"Trae CN",skillsDir:".trae/skills",globalSkillsDir:join10(home,".trae-cn/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".trae-cn")),"detectInstalled")},universal:{name:"universal",displayName:"Universal",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>!1,"detectInstalled"),isUniversal:!0},warp:{name:"warp",displayName:"Warp",skillsDir:CANONICAL_SKILLS_DIR,globalSkillsDir:join10(home,".agents/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".warp")),"detectInstalled"),isUniversal:!0},windsurf:{name:"windsurf",displayName:"Windsurf",skillsDir:".windsurf/skills",globalSkillsDir:join10(home,".codeium/windsurf/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".codeium/windsurf")),"detectInstalled")},zencoder:{name:"zencoder",displayName:"Zencoder",skillsDir:".zencoder/skills",globalSkillsDir:join10(home,".zencoder/skills"),detectInstalled:__name(async()=>existsSync9(join10(home,".zencoder")),"detectInstalled")}},getSkillAgentConfig=__name(agentType=>skillAgents[agentType],"getSkillAgentConfig"),isUniversalSkillAgent=__name(agentType=>!!skillAgents[agentType].isUniversal,"isUniversalSkillAgent"),getSkillAgentDir=__name((agentType,options={})=>{let agent=skillAgents[agentType];return options.global??!1?agent.globalSkillsDir??join10(home,agent.skillsDir):join10(options.cwd??process.cwd(),agent.skillsDir)},"getSkillAgentDir"),agentConfigEntries=__name(()=>Object.values(skillAgents).map(config=>[config.name,config]),"agentConfigEntries"),getSkillAgentTypes=__name(()=>agentConfigEntries().map(([name])=>name),"getSkillAgentTypes"),isSkillAgentType=__name(value=>value in skillAgents,"isSkillAgentType"),getUniversalSkillAgents=__name(()=>agentConfigEntries().filter(([name,config])=>config.isUniversal&&name!=="universal").map(([name])=>name),"getUniversalSkillAgents"),detectInstalledSkillAgents=__name(async()=>(await Promise.all(Object.values(skillAgents).map(async config=>({name:config.name,installed:await config.detectInstalled()})))).filter(entry=>entry.installed).map(entry=>entry.name),"detectInstalledSkillAgents"),parseFrontmatter=__name(raw=>{let match=raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!match)return{data:{},content:raw};let parsed=(0,import_yaml4.parse)(match[1]??"");return{data:isPlainObject(parsed)?parsed:{},content:match[2]??""}},"parseFrontmatter"),sanitizeName=__name(name=>name.toLowerCase().replace(/[^a-z0-9._]+/g,"-").replace(/^[.-]+|[.-]+$/g,"").substring(0,255)||"unnamed-skill","sanitizeName"),fetchSkillManifestFromUrl=__name(async url=>{let controller=new AbortController,timer=setTimeout(()=>controller.abort(),DEFAULT_FETCH_TIMEOUT_MS);try{let response=await fetch(url,{signal:controller.signal});if(!response.ok)throw new Error(`Failed to fetch ${url}: HTTP ${response.status}`);let content2=await response.text(),{data:data2}=parseFrontmatter(content2);if(typeof data2.name!="string"||!data2.name)throw new Error(`Fetched SKILL.md has no "name" in its frontmatter: ${url}`);let skillName=sanitizeName(data2.name),baseDir=await mkdtemp(join10(tmpdir2(),"agent-install-url-")),skillDir=join10(baseDir,skillName);return await mkdir(dirname6(join10(skillDir,SKILL_MANIFEST_FILE)),{recursive:!0}),await writeFile(join10(skillDir,SKILL_MANIFEST_FILE),content2,"utf-8"),baseDir}finally{clearTimeout(timer)}},"fetchSkillManifestFromUrl"),isPathSafe=__name((basePath,targetPath)=>{let normalizedBase=normalize(resolve8(basePath)),normalizedTarget=normalize(resolve8(targetPath));return normalizedTarget.startsWith(normalizedBase+sep)||normalizedTarget===normalizedBase},"isPathSafe"),stripTrailingSlash=__name(input=>input.endsWith("/")?input.slice(0,-1):input,"stripTrailingSlash"),TEMP_PREFIX="agent-install-well-known-",SKILL_NAME_PATTERN=/^[a-z0-9]([a-z0-9-]{0,62}[a-z0-9])?$/,WellKnownTimeoutError=class extends Error{static{__name(this,"WellKnownTimeoutError")}constructor(message){super(message),this.name="WellKnownTimeoutError"}},isValidWellKnownEntry=__name(value=>{if(!isPlainObject(value)||typeof value.name!="string"||!value.name||typeof value.description!="string"||!value.description||!Array.isArray(value.files)||value.files.length===0||value.name.length>1&&!SKILL_NAME_PATTERN.test(value.name)||value.name.length===1&&!/^[a-z0-9]$/.test(value.name))return!1;for(let file of value.files)if(typeof file!="string"||file.startsWith("/")||file.startsWith("\\")||file.includes(".."))return!1;return value.files.some(file=>typeof file=="string"&&file.toLowerCase()==="skill.md")},"isValidWellKnownEntry"),fetchOk=__name(async url=>{try{let response=await fetch(url,{signal:AbortSignal.timeout(DEFAULT_FETCH_TIMEOUT_MS)});return response.ok?response:null}catch(error){if(error instanceof DOMException&&error.name==="TimeoutError")throw new WellKnownTimeoutError(`Request timed out: ${url}`);return null}},"fetchOk"),buildIndexCandidates=__name(inputUrl=>{let parsed=new URL(inputUrl),basePath=stripTrailingSlash(parsed.pathname),candidates=[];for(let wellKnownPath of WELL_KNOWN_PATHS)candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}${basePath}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}${basePath}`,wellKnownPath}),basePath&&candidates.push({indexUrl:`${parsed.protocol}//${parsed.host}/${wellKnownPath}/${WELL_KNOWN_INDEX_FILE}`,baseUrl:`${parsed.protocol}//${parsed.host}`,wellKnownPath});return candidates},"buildIndexCandidates"),extractRequestedSkillName=__name(inputUrl=>{try{let name=new URL(inputUrl).pathname.match(/\/.well-known\/(?:agent-skills|skills)\/([^/]+)\/?$/)?.[1];return name&&name!=="index.json"?name:void 0}catch{return}},"extractRequestedSkillName"),validateIndexEntries=__name(payload=>{if(!isPlainObject(payload))return null;let{skills:skills2}=payload;return!Array.isArray(skills2)||!skills2.every(isValidWellKnownEntry)?null:skills2},"validateIndexEntries"),resolveIndex=__name(async inputUrl=>{for(let candidate of buildIndexCandidates(inputUrl)){let response=await fetchOk(candidate.indexUrl);if(!response)continue;let payload;try{payload=await response.json()}catch{continue}let entries2=validateIndexEntries(payload);if(entries2)return{entries:entries2,baseUrl:candidate.baseUrl,wellKnownPath:candidate.wellKnownPath,requestedSkillName:extractRequestedSkillName(inputUrl)}}return null},"resolveIndex"),writeSkillFiles=__name(async(resolved,entry,rootDir)=>{let skillDir=join10(rootDir,sanitizeName(entry.name));await mkdir(skillDir,{recursive:!0});let skillBaseUrl=`${stripTrailingSlash(resolved.baseUrl)}/${resolved.wellKnownPath}/${entry.name}`,installedAny=!1;return await Promise.all(entry.files.map(async relativePath=>{let targetPath=join10(skillDir,relativePath);if(!isPathSafe(skillDir,targetPath))return;let response=await fetchOk(`${skillBaseUrl}/${relativePath}`);if(!response)return;let content2=await response.text();await mkdir(dirname6(targetPath),{recursive:!0}),await writeFile(targetPath,content2,"utf-8"),installedAny=!0})),installedAny},"writeSkillFiles"),fetchWellKnownSkills=__name(async inputUrl=>{let resolved=await resolveIndex(inputUrl).catch(error=>{throw error instanceof WellKnownTimeoutError?new Error(`Timed out resolving well-known skills index at ${inputUrl}. Set the source's HTTP server to respond faster, or pass a local path.`):error});if(!resolved)throw new Error(`No /.well-known/agent-skills/index.json (or fallback /.well-known/skills/index.json) found at ${inputUrl}`);let entries2=resolved.requestedSkillName?resolved.entries.filter(entry=>entry.name===resolved.requestedSkillName):resolved.entries;if(entries2.length===0)throw new Error(resolved.requestedSkillName?`Skill "${resolved.requestedSkillName}" not found in well-known index at ${inputUrl}`:`Well-known index at ${inputUrl} declares no skills`);let baseDir=await mkdtemp(join10(tmpdir2(),TEMP_PREFIX));if(!(await Promise.all(entries2.map(entry=>writeSkillFiles(resolved,entry,baseDir)))).some(Boolean))throw new Error(`Failed to fetch any skill files from well-known index at ${inputUrl}`);return baseDir},"fetchWellKnownSkills"),readJsonObjectIfExists=__name(async path52=>{try{let content2=await readFile4(path52,"utf-8"),parsed=JSON.parse(content2);return isPlainObject(parsed)?parsed:null}catch{return null}},"readJsonObjectIfExists"),MARKETPLACE_RELATIVE_PATH=".claude-plugin/marketplace.json",PLUGIN_RELATIVE_PATH=".claude-plugin/plugin.json",PLUGIN_SKILLS_SUBDIR="skills",isClaudeRelativePath=__name(input=>typeof input=="string"&&input.startsWith("./"),"isClaudeRelativePath"),stringValueOrEmpty=__name(input=>typeof input=="string"?input:"","stringValueOrEmpty"),resolvePluginRoot=__name(manifest=>{if(!isPlainObject(manifest.metadata))return"";let rawPluginRoot=manifest.metadata.pluginRoot;return rawPluginRoot===void 0?"":isClaudeRelativePath(rawPluginRoot)?rawPluginRoot:null},"resolvePluginRoot"),collectPluginSkillSearchDirs=__name((basePath,pluginBase,rawSkills,searchDirs)=>{if(isPathSafe(basePath,pluginBase)){if(Array.isArray(rawSkills))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=dirname6(join10(pluginBase,entry));isPathSafe(basePath,skillDir)&&searchDirs.push(skillDir)}searchDirs.push(join10(pluginBase,PLUGIN_SKILLS_SUBDIR))}},"collectPluginSkillSearchDirs"),collectPluginGroupings=__name((basePath,pluginBase,pluginName,rawSkills,groupings)=>{if(!(!isPathSafe(basePath,pluginBase)||!Array.isArray(rawSkills)))for(let entry of rawSkills){if(!isClaudeRelativePath(entry))continue;let skillDir=join10(pluginBase,entry);isPathSafe(basePath,skillDir)&&groupings.set(resolve8(skillDir),pluginName)}},"collectPluginGroupings"),getPluginSkillPaths=__name(async basePath=>{let searchDirs=[],marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginSkillSearchDirs(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.skills,searchDirs))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&collectPluginSkillSearchDirs(basePath,basePath,single.skills,searchDirs),searchDirs},"getPluginSkillPaths"),getPluginGroupings=__name(async basePath=>{let groupings=new Map,marketplace=await readJsonObjectIfExists(join10(basePath,MARKETPLACE_RELATIVE_PATH));if(marketplace){let pluginRoot=resolvePluginRoot(marketplace);if(pluginRoot!==null&&Array.isArray(marketplace.plugins))for(let plugin of marketplace.plugins)isPlainObject(plugin)&&(typeof plugin.name!="string"||!plugin.name||plugin.source!==void 0&&!isClaudeRelativePath(plugin.source)||collectPluginGroupings(basePath,join10(basePath,pluginRoot,stringValueOrEmpty(plugin.source)),plugin.name,plugin.skills,groupings))}let single=await readJsonObjectIfExists(join10(basePath,PLUGIN_RELATIVE_PATH));return single&&typeof single.name=="string"&&single.name&&collectPluginGroupings(basePath,basePath,single.name,single.skills,groupings),groupings},"getPluginGroupings"),CLONE_TIMEOUT_ENV_VAR="AGENT_INSTALL_CLONE_TIMEOUT_MS",LEGACY_CLONE_TIMEOUT_ENV_VAR="SKILL_INSTALL_CLONE_TIMEOUT_MS",TEMP_CLONE_PREFIX="agent-install-",GitCloneError=class extends Error{static{__name(this,"GitCloneError")}url;kind;constructor(message,url,kind="unknown"){super(message),this.name="GitCloneError",this.url=url,this.kind=kind}get isTimeout(){return this.kind==="timeout"}get isAuthError(){return this.kind==="auth"}},resolveCloneTimeoutMs=__name(()=>{let raw=process.env[CLONE_TIMEOUT_ENV_VAR]??process.env[LEGACY_CLONE_TIMEOUT_ENV_VAR];if(!raw)return DEFAULT_CLONE_TIMEOUT_MS;let parsed=Number.parseInt(raw,10);return Number.isFinite(parsed)&&parsed>0?parsed:DEFAULT_CLONE_TIMEOUT_MS},"resolveCloneTimeoutMs"),runGit2=__name((args,timeoutMs)=>new Promise(resolvePromise=>{let child=spawn2("git",args,{env:{...process.env,GIT_TERMINAL_PROMPT:"0",GIT_LFS_SKIP_SMUDGE:"1"}}),stderr="",timedOut=!1,timer=setTimeout(()=>{timedOut=!0,child.kill("SIGKILL")},timeoutMs);child.stderr.on("data",chunk=>{stderr+=chunk.toString()}),child.on("close",code2=>{clearTimeout(timer),resolvePromise({code:code2??1,stderr,timedOut})}),child.on("error",err=>{clearTimeout(timer),stderr+=err.message,resolvePromise({code:1,stderr,timedOut})})}),"runGit"),AUTH_ERROR_MARKERS=["Authentication failed","could not read Username","Permission denied","Repository not found"],isAuthErrorMessage=__name(stderr=>AUTH_ERROR_MARKERS.some(marker=>stderr.includes(marker)),"isAuthErrorMessage"),cloneRepo2=__name(async(url,ref)=>{let tempDir=await mkdtemp(join10(tmpdir2(),TEMP_CLONE_PREFIX)),timeoutMs=resolveCloneTimeoutMs(),args=["-c","filter.lfs.required=false","-c","filter.lfs.smudge=","-c","filter.lfs.clean=","-c","filter.lfs.process=","clone","--depth","1"];ref&&args.push("--branch",ref),args.push(url,tempDir);let{code:code2,stderr,timedOut}=await runGit2(args,timeoutMs);if(code2===0)return tempDir;throw await rm(tempDir,{recursive:!0,force:!0}).catch(()=>{}),timedOut?new GitCloneError([`Clone timed out after ${Math.round(timeoutMs/MS_PER_SECOND)}s. Common causes:`,` - Large repository: raise the timeout with ${CLONE_TIMEOUT_ENV_VAR}=600000 (10m)`," - Slow network: retry, or clone manually and pass the local path to 'skill add'"," - Private repo without credentials:"," - For SSH: ssh-add -l (to check loaded keys)"," - For HTTPS: gh auth status (if using GitHub CLI)"].join(`
|
|
516
516
|
`),url,"timeout"):isAuthErrorMessage(stderr)?new GitCloneError([`Authentication failed for ${url}.`," - For private repos, ensure you have access"," - For SSH: check your keys with 'ssh -T git@github.com'"," - For HTTPS: run 'gh auth login' or configure git credentials"].join(`
|
|
517
517
|
`),url,"auth"):new GitCloneError(`Failed to clone ${url}: ${stderr.trim()||"unknown error"}`,url)},"cloneRepo"),cleanupTempDir=__name(async dir=>{let normalizedDir=normalize(resolve8(dir)),normalizedTmpDir=normalize(resolve8(tmpdir2()));if(!normalizedDir.startsWith(normalizedTmpDir+sep)&&normalizedDir!==normalizedTmpDir)throw new Error("Attempted to clean up directory outside of temp directory");await rm(dir,{recursive:!0,force:!0})},"cleanupTempDir"),getCanonicalSkillsDir=__name((isGlobal,cwd)=>join10(isGlobal?homedir2():cwd||process.cwd(),CANONICAL_SKILLS_DIR),"getCanonicalSkillsDir"),getSkillAgentBaseDir=__name((agentType,isGlobal,cwd)=>{if(isUniversalSkillAgent(agentType))return getCanonicalSkillsDir(isGlobal,cwd);let agent=getSkillAgentConfig(agentType),baseDir=isGlobal?homedir2():cwd||process.cwd();return isGlobal?agent.globalSkillsDir??join10(baseDir,agent.skillsDir):join10(baseDir,agent.skillsDir)},"getSkillAgentBaseDir"),cleanAndCreateDirectory=__name(async path52=>{await rm(path52,{recursive:!0,force:!0}).catch(()=>{}),await mkdir(path52,{recursive:!0})},"cleanAndCreateDirectory"),resolveSymlinkTarget=__name((linkPath,linkTarget)=>resolve8(dirname6(linkPath),linkTarget),"resolveSymlinkTarget"),resolveParentSymlinks=__name(async path52=>{let resolved=resolve8(path52),parentDir=dirname6(resolved),name=basename3(resolved);try{return join10(await realpath(parentDir),name)}catch{return resolved}},"resolveParentSymlinks"),isPathInsideBase=__name((basePath,targetPath)=>{let normalizedBase=resolve8(basePath),normalizedTarget=resolve8(targetPath);return normalizedTarget===normalizedBase||normalizedTarget.startsWith(normalizedBase+sep)},"isPathInsideBase"),copyDirectory=__name(async(src,dest,rootSrc=src)=>{await mkdir(dest,{recursive:!0});let entries2=await readdir(src,{withFileTypes:!0});await Promise.all(entries2.filter(entry=>!COPY_EXCLUDE_FILES.has(entry.name)&&!(entry.isDirectory()&©_EXCLUDE_DIRS.has(entry.name))).map(async entry=>{let srcPath=join10(src,entry.name),destPath=join10(dest,entry.name);if(entry.isSymbolicLink()){let linkRealPath=await realpath(srcPath).catch(()=>null);if(!linkRealPath||!isPathInsideBase(rootSrc,linkRealPath))return;await cp(srcPath,destPath,{dereference:!0,recursive:!0});return}if(entry.isDirectory()){await copyDirectory(srcPath,destPath,rootSrc);return}await cp(srcPath,destPath,{dereference:!1,recursive:!0})}))},"copyDirectory"),isLoopError=__name(error=>!!(error&&typeof error=="object"&&"code"in error&&error.code==="ELOOP"),"isLoopError"),createSymlink=__name(async(target,linkPath)=>{try{let resolvedTarget=resolve8(target),resolvedLinkPath=resolve8(linkPath),[realTarget,realLinkPath]=await Promise.all([realpath(resolvedTarget).catch(()=>resolvedTarget),realpath(resolvedLinkPath).catch(()=>resolvedLinkPath)]);if(realTarget===realLinkPath)return!0;let[realTargetWithParents,realLinkPathWithParents]=await Promise.all([resolveParentSymlinks(target),resolveParentSymlinks(linkPath)]);if(realTargetWithParents===realLinkPathWithParents)return!0;try{if((await lstat(linkPath)).isSymbolicLink()){if(resolveSymlinkTarget(linkPath,await readlink(linkPath))===resolvedTarget)return!0;await rm(linkPath)}else await rm(linkPath,{recursive:!0})}catch(error){isLoopError(error)&&await rm(linkPath,{force:!0}).catch(()=>{})}let linkDir=dirname6(linkPath);return await mkdir(linkDir,{recursive:!0}),await symlink(relative2(await resolveParentSymlinks(linkDir),target),linkPath,platform2()==="win32"?"junction":void 0),!0}catch{return!1}},"createSymlink"),installByCopy=__name(async(skill,destination)=>(await cleanAndCreateDirectory(destination),await copyDirectory(skill.path,destination),{success:!0,path:destination,mode:"copy"}),"installByCopy"),installBySymlink=__name(async(skill,agentType,canonicalDir,agentDir,isGlobal)=>(await cleanAndCreateDirectory(canonicalDir),await copyDirectory(skill.path,canonicalDir),isGlobal&&isUniversalSkillAgent(agentType)?{success:!0,path:canonicalDir,canonicalPath:canonicalDir,mode:"symlink"}:await createSymlink(canonicalDir,agentDir)?{success:!0,path:agentDir,canonicalPath:canonicalDir,mode:"symlink"}:(await cleanAndCreateDirectory(agentDir),await copyDirectory(skill.path,agentDir),{success:!0,path:agentDir,canonicalPath:canonicalDir,mode:"symlink",symlinkFailed:!0})),"installBySymlink"),installSkillForAgent=__name(async(skill,agentType,options={})=>{let agent=skillAgents[agentType],isGlobal=options.global??!1,cwd=options.cwd||process.cwd(),installMode=options.mode??"symlink";if(isGlobal&&agent.globalSkillsDir===void 0)return{success:!1,path:"",mode:installMode,error:`${agent.displayName} does not support global skill installation`};let skillName=sanitizeName(skill.name||basename3(skill.path)),canonicalBase=getCanonicalSkillsDir(isGlobal,cwd),canonicalDir=join10(canonicalBase,skillName),agentBase=getSkillAgentBaseDir(agentType,isGlobal,cwd),agentDir=join10(agentBase,skillName);if(!isPathSafe(canonicalBase,canonicalDir)||!isPathSafe(agentBase,agentDir))return{success:!1,path:agentDir,mode:installMode,error:"Invalid skill name: potential path traversal detected"};try{return installMode==="copy"?await installByCopy(skill,agentDir):await installBySymlink(skill,agentType,canonicalDir,agentDir,isGlobal)}catch(error){return{success:!1,path:agentDir,mode:installMode,error:toErrorMessage(error)}}},"installSkillForAgent"),OSC_RE=/\x1b\][\s\S]*?(?:\x07|\x1b\\)/g,DCS_PM_APC_RE=/\x1b[P^_][\s\S]*?(?:\x1b\\)/g,CSI_RE=/\x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]/g,SIMPLE_ESC_RE=/\x1b[\x20-\x7e]/g,C1_RE=/[\x80-\x9f]/g,CONTROL_RE2=/[\x00-\x06\x07\x08\x0b\x0c\x0d-\x1a\x1c-\x1f\x7f]/g,stripTerminalEscapes=__name(input=>input.replace(OSC_RE,"").replace(DCS_PM_APC_RE,"").replace(CSI_RE,"").replace(SIMPLE_ESC_RE,"").replace(C1_RE,"").replace(CONTROL_RE2,""),"stripTerminalEscapes"),sanitizeMetadata=__name(input=>stripTerminalEscapes(input).replace(/[\r\n]+/g," ").trim(),"sanitizeMetadata"),PRIORITY_RELATIVE_PATHS=["","skills","skills/.curated","skills/.experimental","skills/.system",".agents/skills",".aider-desk/skills",".augment/skills",".bob/skills",".claude/skills",".cline/skills",".codeartsdoer/skills",".codebuddy/skills",".codemaker/skills",".codestudio/skills",".codex/skills",".commandcode/skills",".continue/skills",".cortex/skills",".crush/skills",".cursor/skills",".factory/skills",".forge/skills",".gemini/skills",".github/skills",".goose/skills",".iflow/skills",".junie/skills",".kilocode/skills",".kiro/skills",".kode/skills",".mcpjam/skills",".mux/skills",".neovate/skills",".openhands/skills",".pi/skills",".pochi/skills",".qoder/skills",".qwen/skills",".roo/skills",".rovodev/skills",".tabnine/agent/skills",".trae/skills",".vibe/skills",".windsurf/skills",".zencoder/skills"],hasSkillManifest=__name(async dir=>{try{return(await stat(join10(dir,SKILL_MANIFEST_FILE))).isFile()}catch{return!1}},"hasSkillManifest"),parseSkillManifest=__name(async manifestPath=>{try{let content2=await readFile4(manifestPath,"utf-8"),{data:data2}=parseFrontmatter(content2);if(typeof data2.name!="string"||typeof data2.description!="string"||!data2.name||!data2.description)return null;let metadata=isPlainObject(data2.metadata)?data2.metadata:void 0;return{name:sanitizeMetadata(data2.name),description:sanitizeMetadata(data2.description),path:dirname6(manifestPath),rawContent:content2,metadata}}catch{return null}},"parseSkillManifest"),findSkillDirs=__name(async(dir,depth=0)=>{if(depth>5)return[];try{let[hasManifest,entries2]=await Promise.all([hasSkillManifest(dir),readdir(dir,{withFileTypes:!0}).catch(()=>[])]),currentDir=hasManifest?[dir]:[],subDirResults=await Promise.all(entries2.filter(entry=>entry.isDirectory()&&!SKIP_DISCOVERY_DIRS.has(entry.name)).map(entry=>findSkillDirs(join10(dir,entry.name),depth+1)));return[...currentDir,...subDirResults.flat()]}catch{return[]}},"findSkillDirs"),discoverSkills=__name(async(basePath,subpath,options)=>{if(subpath&&!isPathSafe(basePath,join10(basePath,subpath)))throw new Error(`Invalid subpath: "${subpath}" resolves outside the base directory. Subpath must not contain ".." segments that escape the base path.`);let searchPath=subpath?join10(basePath,subpath):basePath,seenNames=new Set,results=[],pluginGroupings=await getPluginGroupings(searchPath),enhanceSkill=__name(skill=>{let pluginName=pluginGroupings.get(resolve8(skill.path));return pluginName?{...skill,pluginName}:skill},"enhanceSkill"),pluginExtraDirs=await getPluginSkillPaths(searchPath);if(await hasSkillManifest(searchPath)){let skill=await parseSkillManifest(join10(searchPath,SKILL_MANIFEST_FILE));if(skill&&(results.push(enhanceSkill(skill)),seenNames.add(skill.name),!options?.fullDepth))return results}let prioritySearchDirs=[...PRIORITY_RELATIVE_PATHS.map(relative3=>relative3?join10(searchPath,relative3):searchPath),...pluginExtraDirs];for(let dir of prioritySearchDirs)try{let entries2=await readdir(dir,{withFileTypes:!0});for(let entry of entries2){if(!entry.isDirectory())continue;let skillDir=join10(dir,entry.name);if(!await hasSkillManifest(skillDir))continue;let skill=await parseSkillManifest(join10(skillDir,SKILL_MANIFEST_FILE));skill&&!seenNames.has(skill.name)&&(results.push(enhanceSkill(skill)),seenNames.add(skill.name))}}catch{}if(results.length===0||options?.fullDepth){let allSkillDirs=await findSkillDirs(searchPath);for(let skillDir of allSkillDirs){let skill=await parseSkillManifest(join10(skillDir,SKILL_MANIFEST_FILE));skill&&!seenNames.has(skill.name)&&(results.push(enhanceSkill(skill)),seenNames.add(skill.name))}}return results},"discoverSkills"),getSkillDisplayName=__name(skill=>skill.name||basename3(skill.path),"getSkillDisplayName"),filterSkillsByName=__name((skills2,inputNames)=>{let normalizedInputs=inputNames.map(inputName=>inputName.toLowerCase());return skills2.filter(skill=>{let name=skill.name.toLowerCase(),displayName=getSkillDisplayName(skill).toLowerCase();return normalizedInputs.some(inputName=>inputName===name||inputName===displayName)})},"filterSkillsByName"),escapeRegex=__name(input=>input.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"escapeRegex"),sanitizeSubpath=__name(subpath=>{let segments=subpath.replace(/\\/g,"/").split("/");for(let segment of segments)if(segment==="..")throw new Error(`Unsafe subpath: "${subpath}" contains path traversal segments. Subpaths must not contain ".." components.`);return subpath},"sanitizeSubpath"),HOST_CONFIGS=[{host:"github",domain:"github.com",prefix:"github:",treePrefix:"/tree/",anchorRepo:!1},{host:"gitlab",domain:"gitlab.com",prefix:"gitlab:",treePrefix:"/-/tree/",anchorRepo:!0}],HOST_BY_NAME=new Map(HOST_CONFIGS.map(config=>[config.host,config])),HOST_BY_DOMAIN=new Map(HOST_CONFIGS.map(config=>[config.domain,config])),SSH_URL_PATTERN=/^git@([^:]+):([^/]+)\/([^/]+?)(?:\.git)?$/,isLocalPath=__name(input=>isAbsolute3(input)||input.startsWith("./")||input.startsWith("../")||input==="."||input===".."||/^[a-zA-Z]:[/\\]/.test(input),"isLocalPath"),isShorthandCandidate=__name(input=>!input.includes(":")&&!input.startsWith(".")&&!input.startsWith("/"),"isShorthandCandidate"),buildHostedSource=__name(({host,owner,repo,ref,subpath,skillFilter})=>{let config=HOST_BY_NAME.get(host);if(!config)throw new Error(`Unknown host: ${host}`);let cleanRepo=repo.replace(/\.git$/,""),result={type:host,url:`https://${config.domain}/${owner}/${cleanRepo}.git`};return ref&&(result.ref=ref),subpath&&(result.subpath=sanitizeSubpath(subpath)),skillFilter&&(result.skillFilter=skillFilter),result},"buildHostedSource"),buildHostUrlPatterns=__name(config=>{let domain=escapeRegex(config.domain),treePrefix=escapeRegex(config.treePrefix),repoPattern=config.anchorRepo?`${domain}/([^/]+)/([^/]+?)(?:\\.git)?/?$`:`${domain}/([^/]+)/([^/]+)`;return{treeWithPath:new RegExp(`${domain}/([^/]+)/([^/]+)${treePrefix}([^/]+)/(.+)`),tree:new RegExp(`${domain}/([^/]+)/([^/]+)${treePrefix}([^/]+)$`),repo:new RegExp(repoPattern)}},"buildHostUrlPatterns"),HOST_URL_PATTERNS=new Map(HOST_CONFIGS.map(config=>[config.host,buildHostUrlPatterns(config)])),decodeFragmentValue=__name(value=>{try{return decodeURIComponent(value)}catch{return value}},"decodeFragmentValue"),looksLikeGitSource=__name(input=>{if(input.startsWith("git@")||HOST_CONFIGS.some(config=>input.startsWith(config.prefix)))return!0;if(input.startsWith("http://")||input.startsWith("https://"))try{let parsed=new URL(input),config=HOST_BY_DOMAIN.get(parsed.hostname);if(config){let treePrefix=escapeRegex(config.treePrefix);return new RegExp(`^/[^/]+/[^/]+(?:\\.git)?(?:${treePrefix}[^/]+(?:/.*)?)?/?$`).test(parsed.pathname)}}catch{return!1}return/^https?:\/\/.+\.git(?:$|[/?])/i.test(input)?!0:isShorthandCandidate(input)&&/^([^/]+)\/([^/]+)(?:\/(.+)|@(.+))?$/.test(input)},"looksLikeGitSource"),parseFragmentRef=__name(input=>{let hashIndex=input.indexOf("#");if(hashIndex<0)return{inputWithoutFragment:input};let inputWithoutFragment=input.slice(0,hashIndex),fragment=input.slice(hashIndex+1);if(!fragment||!looksLikeGitSource(inputWithoutFragment))return{inputWithoutFragment:input};let atIndex=fragment.indexOf("@");if(atIndex===-1)return{inputWithoutFragment,ref:decodeFragmentValue(fragment)};let ref=fragment.slice(0,atIndex),skillFilter=fragment.slice(atIndex+1);return{inputWithoutFragment,ref:ref?decodeFragmentValue(ref):void 0,skillFilter:skillFilter?decodeFragmentValue(skillFilter):void 0}},"parseFragmentRef"),isDirectSkillMdUrl=__name(input=>/^https?:\/\//.test(input)&&/\bSKILL\.md(?:$|\?|#)/i.test(input),"isDirectSkillMdUrl"),EXCLUDED_WELL_KNOWN_HOSTS=new Set(["raw.githubusercontent.com"]),isWellKnownCandidate=__name(input=>{if(!/^https?:\/\//.test(input))return!1;let parsed;try{parsed=new URL(input)}catch{return!1}return!(HOST_BY_DOMAIN.has(parsed.hostname)||EXCLUDED_WELL_KNOWN_HOSTS.has(parsed.hostname)||input.endsWith(".git")||isDirectSkillMdUrl(input))},"isWellKnownCandidate"),parseHostedShorthand=__name((rest,host,fragmentRef,fragmentSkillFilter)=>{let atSkillMatch=rest.match(/^([^/]+)\/([^/@]+)@(.+)$/);if(atSkillMatch){let[,owner,repo,skillFilter]=atSkillMatch;return buildHostedSource({host,owner,repo,ref:fragmentRef,skillFilter:fragmentSkillFilter??skillFilter})}let shorthandMatch=rest.match(/^([^/]+)\/([^/]+)(?:\/(.+?))?\/?$/);if(shorthandMatch){let[,owner,repo,subpath]=shorthandMatch;return buildHostedSource({host,owner,repo,ref:fragmentRef,subpath,skillFilter:fragmentSkillFilter})}return null},"parseHostedShorthand"),isHostnameAuthoritative=__name((input,expectedHostname)=>{if(!input.startsWith("http://")&&!input.startsWith("https://"))return!1;try{return new URL(input).hostname===expectedHostname}catch{return!1}},"isHostnameAuthoritative"),parseHostUrl=__name((input,host,fragmentRef)=>{let config=HOST_BY_NAME.get(host);if(!config||!isHostnameAuthoritative(input,config.domain))return null;let patterns=HOST_URL_PATTERNS.get(host);if(!patterns)return null;let treeWithPathMatch=input.match(patterns.treeWithPath);if(treeWithPathMatch){let[,owner,repo,ref,subpath]=treeWithPathMatch;return buildHostedSource({host,owner,repo,ref:ref||fragmentRef,subpath})}let treeMatch=input.match(patterns.tree);if(treeMatch){let[,owner,repo,ref]=treeMatch;return buildHostedSource({host,owner,repo,ref:ref||fragmentRef})}let repoMatch=input.match(patterns.repo);if(repoMatch){let[,owner,repo]=repoMatch;return buildHostedSource({host,owner,repo,ref:fragmentRef})}return null},"parseHostUrl"),parseSshUrl=__name((input,fragmentRef,fragmentSkillFilter)=>{let match=input.match(SSH_URL_PATTERN);if(!match)return null;let[,sshHost]=match,result={type:HOST_BY_DOMAIN.get(sshHost)?.host??"git",url:input};return fragmentRef&&(result.ref=fragmentRef),fragmentSkillFilter&&(result.skillFilter=fragmentSkillFilter),result},"parseSshUrl"),parseSkillSource=__name(input=>{if(!input||input.trim().length===0)throw new Error("Invalid skill source: input is empty. Expected a local path, owner/repo shorthand, or URL.");if(isLocalPath(input)){let resolvedPath=resolve8(input);return{type:"local",url:resolvedPath,localPath:resolvedPath}}let{inputWithoutFragment,ref:fragmentRef,skillFilter:fragmentSkillFilter}=parseFragmentRef(input),normalized=inputWithoutFragment;for(let config of HOST_CONFIGS)if(normalized.startsWith(config.prefix)){let result2=parseHostedShorthand(normalized.slice(config.prefix.length),config.host,fragmentRef,fragmentSkillFilter);if(result2)return result2}if(normalized.startsWith("git@")){let sshResult=parseSshUrl(normalized,fragmentRef,fragmentSkillFilter);if(sshResult)return sshResult}for(let config of HOST_CONFIGS){let result2=parseHostUrl(normalized,config.host,fragmentRef);if(result2)return result2}if(isDirectSkillMdUrl(normalized))return{type:"url",url:normalized};if(isShorthandCandidate(normalized)){let result2=parseHostedShorthand(normalized,"github",fragmentRef,fragmentSkillFilter);if(result2)return result2}if(isWellKnownCandidate(normalized)){let wellKnownResult={type:"well-known",url:normalized};return fragmentSkillFilter&&(wellKnownResult.skillFilter=fragmentSkillFilter),wellKnownResult}let result={type:"git",url:normalized};return fragmentRef&&(result.ref=fragmentRef),result},"parseSkillSource"),resolveSource=__name(async parsed=>{if(parsed.type==="local"){if(!parsed.localPath)throw new Error("Local source is missing a resolved path");return{basePath:parsed.localPath}}if(parsed.type==="url"){let baseDir=await fetchSkillManifestFromUrl(parsed.url);return{basePath:baseDir,cleanup:__name(()=>cleanupTempDir(baseDir),"cleanup")}}if(parsed.type==="well-known"){let baseDir=await fetchWellKnownSkills(parsed.url);return{basePath:baseDir,skillFilter:parsed.skillFilter,cleanup:__name(()=>cleanupTempDir(baseDir),"cleanup")}}let cloneDir=await cloneRepo2(parsed.url,parsed.ref);return{basePath:cloneDir,subpath:parsed.subpath,skillFilter:parsed.skillFilter,cleanup:__name(()=>cleanupTempDir(cloneDir),"cleanup")}},"resolveSource"),resolveTargetAgents=__name(async requested=>{if(requested&&requested.length>0)return requested;let installed=await detectInstalledSkillAgents();return installed.length>0?installed:getUniversalSkillAgents()},"resolveTargetAgents"),resolveSkillFilters=__name((explicit,fromSource)=>{if(explicit&&explicit.length>0)return explicit;if(fromSource)return[fromSource]},"resolveSkillFilters"),installSkillsFromSource=__name(async options=>{let resolved=await resolveSource(parseSkillSource(options.source));try{let filters2=resolveSkillFilters(options.skills,resolved.skillFilter),discovered=await discoverSkills(resolved.basePath,resolved.subpath),skills2=filters2?filterSkillsByName(discovered,filters2):discovered;if(skills2.length===0)return{installed:[],failed:[],skills:[]};let targetAgents=await resolveTargetAgents(options.agents),installed=[],failed=[];for(let skill of skills2)for(let agent of targetAgents){let result=await installSkillForAgent(skill,agent,{global:options.global,cwd:options.cwd,mode:options.mode});result.success?installed.push({skill:skill.name,agent,path:result.path,canonicalPath:result.canonicalPath,mode:result.mode,symlinkFailed:result.symlinkFailed}):failed.push({skill:skill.name,agent,error:result.error??"Unknown error"})}return{installed,failed,skills:skills2}}finally{await resolved.cleanup?.().catch(()=>{})}},"installSkillsFromSource")}});var CharacterCodes,init_scanner=__esm({"../../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js"(){"use strict";(function(CharacterCodes2){CharacterCodes2[CharacterCodes2.lineFeed=10]="lineFeed",CharacterCodes2[CharacterCodes2.carriageReturn=13]="carriageReturn",CharacterCodes2[CharacterCodes2.space=32]="space",CharacterCodes2[CharacterCodes2._0=48]="_0",CharacterCodes2[CharacterCodes2._1=49]="_1",CharacterCodes2[CharacterCodes2._2=50]="_2",CharacterCodes2[CharacterCodes2._3=51]="_3",CharacterCodes2[CharacterCodes2._4=52]="_4",CharacterCodes2[CharacterCodes2._5=53]="_5",CharacterCodes2[CharacterCodes2._6=54]="_6",CharacterCodes2[CharacterCodes2._7=55]="_7",CharacterCodes2[CharacterCodes2._8=56]="_8",CharacterCodes2[CharacterCodes2._9=57]="_9",CharacterCodes2[CharacterCodes2.a=97]="a",CharacterCodes2[CharacterCodes2.b=98]="b",CharacterCodes2[CharacterCodes2.c=99]="c",CharacterCodes2[CharacterCodes2.d=100]="d",CharacterCodes2[CharacterCodes2.e=101]="e",CharacterCodes2[CharacterCodes2.f=102]="f",CharacterCodes2[CharacterCodes2.g=103]="g",CharacterCodes2[CharacterCodes2.h=104]="h",CharacterCodes2[CharacterCodes2.i=105]="i",CharacterCodes2[CharacterCodes2.j=106]="j",CharacterCodes2[CharacterCodes2.k=107]="k",CharacterCodes2[CharacterCodes2.l=108]="l",CharacterCodes2[CharacterCodes2.m=109]="m",CharacterCodes2[CharacterCodes2.n=110]="n",CharacterCodes2[CharacterCodes2.o=111]="o",CharacterCodes2[CharacterCodes2.p=112]="p",CharacterCodes2[CharacterCodes2.q=113]="q",CharacterCodes2[CharacterCodes2.r=114]="r",CharacterCodes2[CharacterCodes2.s=115]="s",CharacterCodes2[CharacterCodes2.t=116]="t",CharacterCodes2[CharacterCodes2.u=117]="u",CharacterCodes2[CharacterCodes2.v=118]="v",CharacterCodes2[CharacterCodes2.w=119]="w",CharacterCodes2[CharacterCodes2.x=120]="x",CharacterCodes2[CharacterCodes2.y=121]="y",CharacterCodes2[CharacterCodes2.z=122]="z",CharacterCodes2[CharacterCodes2.A=65]="A",CharacterCodes2[CharacterCodes2.B=66]="B",CharacterCodes2[CharacterCodes2.C=67]="C",CharacterCodes2[CharacterCodes2.D=68]="D",CharacterCodes2[CharacterCodes2.E=69]="E",CharacterCodes2[CharacterCodes2.F=70]="F",CharacterCodes2[CharacterCodes2.G=71]="G",CharacterCodes2[CharacterCodes2.H=72]="H",CharacterCodes2[CharacterCodes2.I=73]="I",CharacterCodes2[CharacterCodes2.J=74]="J",CharacterCodes2[CharacterCodes2.K=75]="K",CharacterCodes2[CharacterCodes2.L=76]="L",CharacterCodes2[CharacterCodes2.M=77]="M",CharacterCodes2[CharacterCodes2.N=78]="N",CharacterCodes2[CharacterCodes2.O=79]="O",CharacterCodes2[CharacterCodes2.P=80]="P",CharacterCodes2[CharacterCodes2.Q=81]="Q",CharacterCodes2[CharacterCodes2.R=82]="R",CharacterCodes2[CharacterCodes2.S=83]="S",CharacterCodes2[CharacterCodes2.T=84]="T",CharacterCodes2[CharacterCodes2.U=85]="U",CharacterCodes2[CharacterCodes2.V=86]="V",CharacterCodes2[CharacterCodes2.W=87]="W",CharacterCodes2[CharacterCodes2.X=88]="X",CharacterCodes2[CharacterCodes2.Y=89]="Y",CharacterCodes2[CharacterCodes2.Z=90]="Z",CharacterCodes2[CharacterCodes2.asterisk=42]="asterisk",CharacterCodes2[CharacterCodes2.backslash=92]="backslash",CharacterCodes2[CharacterCodes2.closeBrace=125]="closeBrace",CharacterCodes2[CharacterCodes2.closeBracket=93]="closeBracket",CharacterCodes2[CharacterCodes2.colon=58]="colon",CharacterCodes2[CharacterCodes2.comma=44]="comma",CharacterCodes2[CharacterCodes2.dot=46]="dot",CharacterCodes2[CharacterCodes2.doubleQuote=34]="doubleQuote",CharacterCodes2[CharacterCodes2.minus=45]="minus",CharacterCodes2[CharacterCodes2.openBrace=123]="openBrace",CharacterCodes2[CharacterCodes2.openBracket=91]="openBracket",CharacterCodes2[CharacterCodes2.plus=43]="plus",CharacterCodes2[CharacterCodes2.slash=47]="slash",CharacterCodes2[CharacterCodes2.formFeed=12]="formFeed",CharacterCodes2[CharacterCodes2.tab=9]="tab"})(CharacterCodes||(CharacterCodes={}))}});var cachedSpaces,maxCachedValues,cachedBreakLinesWithSpaces,init_string_intern=__esm({"../../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/string-intern.js"(){cachedSpaces=new Array(20).fill(0).map((_,index2)=>" ".repeat(index2)),maxCachedValues=200,cachedBreakLinesWithSpaces={" ":{"\n":new Array(maxCachedValues).fill(0).map((_,index2)=>`
|
|
518
518
|
`+" ".repeat(index2)),"\r":new Array(maxCachedValues).fill(0).map((_,index2)=>"\r"+" ".repeat(index2)),"\r\n":new Array(maxCachedValues).fill(0).map((_,index2)=>`\r
|
|
@@ -648,7 +648,7 @@ ${V2(this.state)} ${opts.message}
|
|
|
648
648
|
</main>
|
|
649
649
|
<script>setTimeout(function(){window.close();},800);</script>
|
|
650
650
|
</body>
|
|
651
|
-
</html>`}var CALLBACK_TIMEOUT_MS,LoginError,FIMO_LOGO_SVG,init_login=__esm({"src/cli/commands/login.ts"(){init_dist();init_open();init_api();init_auth();init_config();CALLBACK_TIMEOUT_MS=300*1e3,LoginError=class extends Error{static{__name(this,"LoginError")}code;constructor(code2,message){super(message),this.name="LoginError",this.code=code2}};__name(performBrowserLogin,"performBrowserLogin");__name(loginCommand,"loginCommand");__name(startCallbackServer,"startCallbackServer");__name(waitForCallback,"waitForCallback");__name(respond,"respond");FIMO_LOGO_SVG='<svg viewBox="0 0 2017 420" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><path d="M1424.99 4.51883C1407.48 -1.17117 1389.04 -1.49117 1371.66 3.57883C1352.68 9.11883 1336.33 20.7488 1324.37 37.2188L1107.47 335.759C1104.64 339.659 1100.88 340.879 1096.29 339.389C1091.71 337.899 1089.38 334.699 1089.38 329.879V90.1188C1089.38 69.7688 1082.99 50.7488 1070.89 35.1088C1059.81 20.7888 1044.7 10.2188 1027.19 4.52883C1009.68 -1.16117 991.239 -1.48117 973.859 3.58883C954.879 9.12883 938.529 20.7588 926.569 37.2288L709.669 335.769C706.839 339.669 703.069 340.889 698.489 339.399C693.899 337.909 691.579 334.709 691.579 329.889V210.009C691.579 187.919 673.669 170.009 651.579 170.009C629.489 170.009 611.579 187.919 611.579 210.009V329.889C611.579 350.239 617.969 369.259 630.069 384.899C641.149 399.219 656.259 409.789 673.769 415.479C683.039 418.489 692.569 419.999 702.069 419.999C710.509 419.999 718.919 418.809 727.099 416.419C746.079 410.879 762.429 399.249 774.389 382.779L991.289 84.2388C994.119 80.3388 997.879 79.1188 1002.47 80.6088C1007.05 82.0988 1009.38 85.2988 1009.38 90.1188V329.879C1009.38 350.229 1015.77 369.249 1027.87 384.889C1038.95 399.209 1054.06 409.779 1071.57 415.469C1089.08 421.159 1107.52 421.489 1124.9 416.409C1143.88 410.869 1160.23 399.239 1172.19 382.769L1389.09 84.2288C1391.92 80.3288 1395.69 79.1088 1400.27 80.5988C1404.85 82.0888 1407.18 85.2888 1407.18 90.1088V379.959C1407.18 402.049 1425.09 419.959 1447.18 419.959C1469.27 419.959 1487.18 402.049 1487.18 379.959V90.1188C1487.18 69.7688 1480.79 50.7488 1468.69 35.1088C1457.61 20.7888 1442.5 10.2188 1424.99 4.52883V4.51883ZM363.419 80.0188H517.429C539.519 80.0188 557.429 62.1088 557.429 40.0188C557.429 17.9288 539.519 0.018832 517.429 0.018832H363.419C302.799 0.018832 245.339 29.2988 209.709 78.3388L7.63908 356.459C-5.34092 374.329 -1.38092 399.349 16.4891 412.329C23.5891 417.489 31.8191 419.969 39.9691 419.969C52.3391 419.969 64.5391 414.249 72.3591 403.479L150.949 295.299C171.579 266.929 204.839 249.989 239.919 249.989H517.419C539.509 249.989 557.419 232.079 557.419 209.989C557.419 187.899 539.509 169.989 517.419 169.989H241.999L274.429 125.359C295.059 96.9688 328.329 80.0188 363.419 80.0188ZM1826.52 0.018832H1731.33C1626.56 0.018832 1541.33 85.2488 1541.33 190.019V229.969C1541.33 334.739 1626.56 419.969 1731.33 419.969H1826.52C1931.29 419.969 2016.52 334.739 2016.52 229.969V190.019C2016.52 85.2488 1931.28 0.018832 1826.52 0.018832ZM1936.52 229.969C1936.52 290.619 1887.17 339.969 1826.52 339.969H1731.33C1670.68 339.969 1621.33 290.619 1621.33 229.969V190.019C1621.33 129.369 1670.68 80.0188 1731.33 80.0188H1826.52C1887.17 80.0188 1936.52 129.369 1936.52 190.019V229.969ZM651.579 80.0188C673.669 80.0188 691.579 62.1088 691.579 40.0188C691.579 17.9288 673.669 0.018832 651.579 0.018832C629.489 0.018832 611.579 17.9288 611.579 40.0188C611.579 62.1088 629.489 80.0188 651.579 80.0188Z" fill="currentColor"/></svg>';__name(renderSignedInPage,"renderSignedInPage")}});import fs36 from"node:fs";import{createRequire}from"node:module";import path35 from"node:path";function isPrettyMode(){return currentMode().format==="pretty"}async function runSkillsInstall(options={}){if(!fs36.existsSync(BOOTSTRAP_SKILL_SOURCE))return{status:"error",code:"BUNDLED_SKILL_MISSING",message:`Bundled skill "${BOOTSTRAP_SKILL_NAME}" not found at ${BOOTSTRAP_SKILL_SOURCE}.`,hint:"Try reinstalling fimo, or report this as a bug."};let agents;try{agents=await selectAgents(options,{promptMessage:"Which agents do you want to install to?"})}catch(err){return{status:"error",code:"AGENT_SELECTION_FAILED",message:err instanceof Error?err.message:String(err)}}if(agents.length===0)return{status:"error",code:"NO_AGENTS_SELECTED",message:"`fimo skills install` requires at least one agent.",hint:"Pass --agents=<comma-separated> or run interactively to pick."};let failures=(await installSkillsFromSource({source:BOOTSTRAP_SKILL_SOURCE,agents,global:!0,mode:"symlink"})).failed.map(f=>({agent:f.agent,error:f.error})),removedStale=cleanupStaleGlobalSkills(agents);return{status:"ok",data:{ok:failures.length===0,skill:BOOTSTRAP_SKILL_NAME,agents,failures,removedStale}}}function renderSkillsInstall(data2){let lines=[];if(lines.push(`Installed the ${data2.skill} skill globally for: ${data2.agents.join(", ")}`),lines.push("Load the version-locked skills on demand: `fimo skills get <name>` (fimo-code, fimo-cli, \u2026)"),data2.removedStale.length>0){let names=[...new Set(data2.removedStale.map(r=>r.skill))].join(", ");lines.push(`Cleaned up stale global skills from a previous version: ${names}`)}for(let f of data2.failures)lines.push(` ! failed for ${f.agent}: ${f.error}`);return lines.join(`
|
|
651
|
+
</html>`}var CALLBACK_TIMEOUT_MS,LoginError,FIMO_LOGO_SVG,init_login=__esm({"src/cli/commands/login.ts"(){init_dist();init_open();init_api();init_auth();init_config();CALLBACK_TIMEOUT_MS=300*1e3,LoginError=class extends Error{static{__name(this,"LoginError")}code;constructor(code2,message){super(message),this.name="LoginError",this.code=code2}};__name(performBrowserLogin,"performBrowserLogin");__name(loginCommand,"loginCommand");__name(startCallbackServer,"startCallbackServer");__name(waitForCallback,"waitForCallback");__name(respond,"respond");FIMO_LOGO_SVG='<svg viewBox="0 0 2017 420" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><path d="M1424.99 4.51883C1407.48 -1.17117 1389.04 -1.49117 1371.66 3.57883C1352.68 9.11883 1336.33 20.7488 1324.37 37.2188L1107.47 335.759C1104.64 339.659 1100.88 340.879 1096.29 339.389C1091.71 337.899 1089.38 334.699 1089.38 329.879V90.1188C1089.38 69.7688 1082.99 50.7488 1070.89 35.1088C1059.81 20.7888 1044.7 10.2188 1027.19 4.52883C1009.68 -1.16117 991.239 -1.48117 973.859 3.58883C954.879 9.12883 938.529 20.7588 926.569 37.2288L709.669 335.769C706.839 339.669 703.069 340.889 698.489 339.399C693.899 337.909 691.579 334.709 691.579 329.889V210.009C691.579 187.919 673.669 170.009 651.579 170.009C629.489 170.009 611.579 187.919 611.579 210.009V329.889C611.579 350.239 617.969 369.259 630.069 384.899C641.149 399.219 656.259 409.789 673.769 415.479C683.039 418.489 692.569 419.999 702.069 419.999C710.509 419.999 718.919 418.809 727.099 416.419C746.079 410.879 762.429 399.249 774.389 382.779L991.289 84.2388C994.119 80.3388 997.879 79.1188 1002.47 80.6088C1007.05 82.0988 1009.38 85.2988 1009.38 90.1188V329.879C1009.38 350.229 1015.77 369.249 1027.87 384.889C1038.95 399.209 1054.06 409.779 1071.57 415.469C1089.08 421.159 1107.52 421.489 1124.9 416.409C1143.88 410.869 1160.23 399.239 1172.19 382.769L1389.09 84.2288C1391.92 80.3288 1395.69 79.1088 1400.27 80.5988C1404.85 82.0888 1407.18 85.2888 1407.18 90.1088V379.959C1407.18 402.049 1425.09 419.959 1447.18 419.959C1469.27 419.959 1487.18 402.049 1487.18 379.959V90.1188C1487.18 69.7688 1480.79 50.7488 1468.69 35.1088C1457.61 20.7888 1442.5 10.2188 1424.99 4.52883V4.51883ZM363.419 80.0188H517.429C539.519 80.0188 557.429 62.1088 557.429 40.0188C557.429 17.9288 539.519 0.018832 517.429 0.018832H363.419C302.799 0.018832 245.339 29.2988 209.709 78.3388L7.63908 356.459C-5.34092 374.329 -1.38092 399.349 16.4891 412.329C23.5891 417.489 31.8191 419.969 39.9691 419.969C52.3391 419.969 64.5391 414.249 72.3591 403.479L150.949 295.299C171.579 266.929 204.839 249.989 239.919 249.989H517.419C539.509 249.989 557.419 232.079 557.419 209.989C557.419 187.899 539.509 169.989 517.419 169.989H241.999L274.429 125.359C295.059 96.9688 328.329 80.0188 363.419 80.0188ZM1826.52 0.018832H1731.33C1626.56 0.018832 1541.33 85.2488 1541.33 190.019V229.969C1541.33 334.739 1626.56 419.969 1731.33 419.969H1826.52C1931.29 419.969 2016.52 334.739 2016.52 229.969V190.019C2016.52 85.2488 1931.28 0.018832 1826.52 0.018832ZM1936.52 229.969C1936.52 290.619 1887.17 339.969 1826.52 339.969H1731.33C1670.68 339.969 1621.33 290.619 1621.33 229.969V190.019C1621.33 129.369 1670.68 80.0188 1731.33 80.0188H1826.52C1887.17 80.0188 1936.52 129.369 1936.52 190.019V229.969ZM651.579 80.0188C673.669 80.0188 691.579 62.1088 691.579 40.0188C691.579 17.9288 673.669 0.018832 651.579 0.018832C629.489 0.018832 611.579 17.9288 611.579 40.0188C611.579 62.1088 629.489 80.0188 651.579 80.0188Z" fill="currentColor"/></svg>';__name(renderSignedInPage,"renderSignedInPage")}});import fs36 from"node:fs";import{createRequire as createRequire3}from"node:module";import path35 from"node:path";function isPrettyMode(){return currentMode().format==="pretty"}async function runSkillsInstall(options={}){if(!fs36.existsSync(BOOTSTRAP_SKILL_SOURCE))return{status:"error",code:"BUNDLED_SKILL_MISSING",message:`Bundled skill "${BOOTSTRAP_SKILL_NAME}" not found at ${BOOTSTRAP_SKILL_SOURCE}.`,hint:"Try reinstalling fimo, or report this as a bug."};let agents;try{agents=await selectAgents(options,{promptMessage:"Which agents do you want to install to?"})}catch(err){return{status:"error",code:"AGENT_SELECTION_FAILED",message:err instanceof Error?err.message:String(err)}}if(agents.length===0)return{status:"error",code:"NO_AGENTS_SELECTED",message:"`fimo skills install` requires at least one agent.",hint:"Pass --agents=<comma-separated> or run interactively to pick."};let failures=(await installSkillsFromSource({source:BOOTSTRAP_SKILL_SOURCE,agents,global:!0,mode:"symlink"})).failed.map(f=>({agent:f.agent,error:f.error})),removedStale=cleanupStaleGlobalSkills(agents);return{status:"ok",data:{ok:failures.length===0,skill:BOOTSTRAP_SKILL_NAME,agents,failures,removedStale}}}function renderSkillsInstall(data2){let lines=[];if(lines.push(`Installed the ${data2.skill} skill globally for: ${data2.agents.join(", ")}`),lines.push("Load the version-locked skills on demand: `fimo skills get <name>` (fimo-code, fimo-cli, \u2026)"),data2.removedStale.length>0){let names=[...new Set(data2.removedStale.map(r=>r.skill))].join(", ");lines.push(`Cleaned up stale global skills from a previous version: ${names}`)}for(let f of data2.failures)lines.push(` ! failed for ${f.agent}: ${f.error}`);return lines.join(`
|
|
652
652
|
`)}async function skillsInstallCommand(options={}){let outcome=await runSkillsInstall(options);switch(outcome.status){case"error":ui.error({command:"skills install",code:outcome.code,message:outcome.message,hint:outcome.hint});return;case"cancelled":ui.info({command:"skills install",message:"Cancelled."});return;case"ok":ui.result({command:"skills install",data:outcome.data,render:__name(()=>renderSkillsInstall(outcome.data),"render")});return}}async function skillsSyncCommand(options={}){if(!fs36.existsSync(BOOTSTRAP_SKILL_SOURCE)){ui.error({command:"skills sync",code:"BUNDLED_SKILL_MISSING",message:`Bundled skill "${BOOTSTRAP_SKILL_NAME}" not found in this fimo install.`,hint:"Try reinstalling fimo, or report this as a bug."});return}let explicit;try{explicit=parseAgentsFlag(options)}catch(err){ui.error({command:"skills sync",code:"AGENT_FLAG_PARSE_FAILED",message:err instanceof Error?err.message:String(err)});return}if(explicit==="none"){ui.error({command:"skills sync",code:"INVALID_AGENTS_NONE",message:"`--agents=none` is not valid for sync."});return}let agents=explicit??await detectAgentsWithFimoSkills();if(agents.length===0){ui.result({command:"skills sync",data:{ok:!0,agents:[],failures:[],removedStale:[]},render:__name(()=>"No agents have Fimo skills installed. Run `fimo skills install` first.","render")});return}let failures=(await installSkillsFromSource({source:BOOTSTRAP_SKILL_SOURCE,agents,global:!0,mode:"symlink"})).failed.map(f=>({agent:f.agent,error:f.error})),removedStale=cleanupStaleGlobalSkills(agents);ui.result({command:"skills sync",data:{ok:failures.length===0,agents,failures,removedStale},render:__name(()=>{let lines=[`Re-ensured the ${BOOTSTRAP_SKILL_NAME} skill for: ${agents.join(", ")}`];if(removedStale.length>0){let names=[...new Set(removedStale.map(r=>r.skill))].join(", ");lines.push(`Cleaned up stale global skills: ${names}`)}for(let f of failures)lines.push(` ! failed for ${f.agent}: ${f.error}`);return lines.join(`
|
|
653
653
|
`)},"render")})}async function detectAgentsWithFimoSkills(){let allAgents=getSkillAgentTypes().filter(id=>id!=="universal"),result=[];for(let agent of allAgents){let baseDir;try{baseDir=getSkillAgentDir(agent,{global:!0})}catch{continue}for(let skill of DETECTABLE_FIMO_SKILL_NAMES)if(fs36.existsSync(path35.join(baseDir,skill))){result.push(agent);break}}return result}function removeDirIfExists(targetPath){return!fs36.existsSync(targetPath)&&!fs36.lstatSync(targetPath,{throwIfNoEntry:!1})?!1:(fs36.rmSync(targetPath,{recursive:!0,force:!0}),!0)}function removeGlobalSkillDirs(skillNames,agents){let removed=[];for(let agent of agents){let baseDir;try{baseDir=getSkillAgentDir(agent,{global:!0})}catch{continue}for(let skill of skillNames){let skillDir=path35.join(baseDir,skill);removeDirIfExists(skillDir)&&removed.push({skill,agent,path:skillDir})}}return removed}function hasGlobalSkillInstalled(skillNames){for(let agent of getSkillAgentTypes().filter(id=>id!=="universal")){let baseDir;try{baseDir=getSkillAgentDir(agent,{global:!0})}catch{continue}for(let skill of skillNames)if(fs36.existsSync(path35.join(baseDir,skill)))return!0}return!1}function removeCanonicalSkillDirs(skillNames){let removed=[],canonicalDir=getCanonicalSkillsDir(!0);for(let skill of skillNames){let canonicalSkill=path35.join(canonicalDir,skill);removeDirIfExists(canonicalSkill)&&removed.push({skill,agent:"canonical",path:canonicalSkill})}return removed}function cleanupStaleGlobalSkills(agents){let removed=removeGlobalSkillDirs(STALE_GLOBAL_SKILL_NAMES,agents);return hasGlobalSkillInstalled(STALE_GLOBAL_SKILL_NAMES)||removed.push(...removeCanonicalSkillDirs(STALE_GLOBAL_SKILL_NAMES)),removed}async function skillsUninstallCommand(options={}){let targetAgents,explicit;try{explicit=parseAgentsFlag(options)}catch(err){ui.error({command:"skills uninstall",code:"AGENT_FLAG_PARSE_FAILED",message:err instanceof Error?err.message:String(err)});return}if(explicit==="none"){ui.error({command:"skills uninstall",code:"INVALID_AGENTS_NONE",message:"`--agents=none` is not valid for uninstall."});return}if(targetAgents=explicit??await detectAgentsWithFimoSkills(),targetAgents.length===0){ui.result({command:"skills uninstall",data:{ok:!0,uninstalled:[]},render:__name(()=>"No Fimo skills are installed for any agent.","render")});return}if(isPrettyMode()&&!!process.stdout.isTTY){mt("Uninstall Fimo skills (global)");let confirmed=await ot2({message:`Remove the Fimo skill from ${targetAgents.join(", ")}?`,initialValue:!0});if(q(confirmed)||!confirmed){ui.info({command:"skills uninstall",message:"Cancelled."});return}}let removed=removeGlobalSkillDirs(DETECTABLE_FIMO_SKILL_NAMES,targetAgents);(await detectAgentsWithFimoSkills()).length===0&&removed.push(...removeCanonicalSkillDirs(DETECTABLE_FIMO_SKILL_NAMES)),ui.result({command:"skills uninstall",data:{ok:!0,uninstalled:removed},render:__name(()=>removed.length===0?"No Fimo skills were installed for the selected agents.":`Uninstalled:
|
|
654
654
|
${removed.map(r=>` ${r.skill} \u2192 ${r.agent}`).join(`
|
|
@@ -656,7 +656,7 @@ ${removed.map(r=>` ${r.skill} \u2192 ${r.agent}`).join(`
|
|
|
656
656
|
`,1)[0]?.trim()??"";return line.length>80?`${line.slice(0,79)}\u2026`:line}function skillsListCommand(){let skills2=discoverBundledSkills();if(skills2.length===0){ui.error({command:"skills list",code:"BUNDLED_SKILL_MISSING",message:`No bundled skills found at ${SKILLS_ROOT}.`,hint:"Try reinstalling fimo, or report this as a bug."});return}ui.result({command:"skills list",data:{skills:skills2.map(s=>({name:s.name,description:s.description,refs:s.refs}))},render:__name(()=>{let nameWidth=Math.max(4,...skills2.map(s=>s.name.length)),header=`${"NAME".padEnd(nameWidth)} REFS DESCRIPTION`,lines=skills2.map(s=>{let refs=String(s.refs.length).padStart(4);return`${s.name.padEnd(nameWidth)} ${refs} ${firstLine(s.description)}`});return[header,...lines].join(`
|
|
657
657
|
`)},"render"),hint:"Run `fimo skills get <name>` for a skill, or add `--ref <doc>` for a reference."})}function runningCliSource(){let version=getCliVersion();return{status:"ok",data:{root:SKILLS_ROOT,source:"running-cli",version,cliVersion:version}}}function resolveSkillsGetSource(name,cwd){if(name!=="fimo-code")return runningCliSource();let projectRoot=findProjectRoot(cwd);if(!projectRoot)return runningCliSource();let packageJsonPath=resolveProjectFimoPackageJson(projectRoot);if(!packageJsonPath)return{status:"error",code:"PROJECT_RUNTIME_NOT_INSTALLED",message:"The project-local fimo package is not installed, so version-matched code guidance is unavailable.",hint:"Install the project dependencies, then run `fimo skills get fimo-code` again."};let version="unknown";try{let pkg=JSON.parse(fs36.readFileSync(packageJsonPath,"utf8"));typeof pkg.version=="string"&&(version=pkg.version)}catch{}let root2=path35.join(path35.dirname(packageJsonPath),"assets","skills");return fs36.existsSync(path35.join(root2,"fimo-code","SKILL.md"))?{status:"ok",data:{root:root2,source:"project-runtime",version,cliVersion:getCliVersion()}}:{status:"error",code:"PROJECT_SKILL_UNAVAILABLE",message:`Project runtime fimo@${version} does not include version-matched fimo-code guidance.`,hint:"Upgrade the project runtime, then run `fimo skills get fimo-code` again."}}function formatSkillStamp(skillName,refId,source,ctx){let separator=ctx.ascii?" | ":" \xB7 ",subject=refId?`${skillName} (references/${refId})`:skillName,origin=source.source==="project-runtime"?[`project runtime fimo@${source.version}`,`CLI fimo@${source.cliVersion}`]:[`running CLI fimo@${source.version}`];return[subject,...origin].join(separator)}function stampedSkillBody(stamp,content2,ctx){let rule=(ctx.ascii?"-":"\u2500").repeat(stamp.length);return`${stamp}
|
|
658
658
|
${rule}
|
|
659
|
-
${content2}`}function resolveProjectFimoPackageJson(projectRoot){let requireFromProject=
|
|
659
|
+
${content2}`}function resolveProjectFimoPackageJson(projectRoot){let requireFromProject=createRequire3(path35.join(projectRoot,"package.json")),ancestorNodeModules=new Set,directory=projectRoot;for(;;){ancestorNodeModules.add(path35.join(directory,"node_modules"));let parent2=path35.dirname(directory);if(parent2===directory)break;directory=parent2}for(let searchRoot of requireFromProject.resolve.paths("fimo")??[]){if(!ancestorNodeModules.has(path35.normalize(searchRoot)))continue;let packageJsonPath=path35.join(searchRoot,"fimo","package.json");if(fs36.existsSync(packageJsonPath))return packageJsonPath}}function normalizeRef(ref){return ref.trim().replace(/\\/g,"/").replace(/^references\//,"").replace(/\.md$/,"")}function skillsGetCommand(name,options={}){let source=resolveSkillsGetSource(name,path35.resolve(options.cwd??process.cwd()));if(source.status==="error"){ui.error({command:"skills get",code:source.code,message:source.message,hint:source.hint});return}let skills2=discoverBundledSkills(source.data.root),skill=skills2.find(s=>s.name===name);if(!skill){ui.error({command:"skills get",code:"SKILL_NOT_FOUND",message:`Unknown skill "${name}".`,hint:skills2.length?`Available: ${skills2.map(s=>s.name).join(", ")}. Run \`fimo skills list\`.`:"No bundled skills found \u2014 try reinstalling fimo."});return}let targetPath,refId=null;if(options.ref){refId=normalizeRef(options.ref);let refsRoot=path35.resolve(skill.dir,"references"),candidate=path35.resolve(refsRoot,`${refId}.md`);if(!(candidate===refsRoot||candidate.startsWith(refsRoot+path35.sep))||!fs36.existsSync(candidate)){ui.error({command:"skills get",code:"SKILL_REF_NOT_FOUND",message:`Reference "${options.ref}" not found in skill "${skill.name}".`,hint:skill.refs.length?`Available refs: ${skill.refs.join(", ")}.`:"This skill has no reference docs."});return}targetPath=candidate}else targetPath=path35.join(skill.dir,"SKILL.md");let content2=fs36.readFileSync(targetPath,"utf8");ui.result({command:"skills get",data:{skill:skill.name,ref:refId,path:targetPath,content:content2,source:source.data.source,version:source.data.version,cliVersion:source.data.cliVersion},render:__name(ctx=>stampedSkillBody(formatSkillStamp(skill.name,refId,source.data,ctx),content2,ctx),"render"),hint:STREAMED_REFERENCE_HINT})}var SKILLS_ROOT,BOOTSTRAP_SKILL_NAME,BOOTSTRAP_SKILL_SOURCE,STREAMED_REFERENCE_HINT,STALE_GLOBAL_SKILL_NAMES,DETECTABLE_FIMO_SKILL_NAMES,init_skills=__esm({"src/cli/commands/skills.ts"(){init_dist5();init_dist();init_dist8();init_config();init_agents();init_project();init_version();SKILLS_ROOT=path35.resolve(CLI_ROOT,"assets","skills"),BOOTSTRAP_SKILL_NAME="fimo",BOOTSTRAP_SKILL_SOURCE=path35.join(SKILLS_ROOT,BOOTSTRAP_SKILL_NAME),STREAMED_REFERENCE_HINT="Reference paths in this document are identifiers, not project files. Load one with `fimo skills get <skill> --ref <reference>`.",STALE_GLOBAL_SKILL_NAMES=["fimo-cli","fimo-studio","fimo-migration","fimo-migrate","fimo-source-migrate"],DETECTABLE_FIMO_SKILL_NAMES=[BOOTSTRAP_SKILL_NAME,...STALE_GLOBAL_SKILL_NAMES];__name(isPrettyMode,"isPrettyMode");__name(runSkillsInstall,"runSkillsInstall");__name(renderSkillsInstall,"renderSkillsInstall");__name(skillsInstallCommand,"skillsInstallCommand");__name(skillsSyncCommand,"skillsSyncCommand");__name(detectAgentsWithFimoSkills,"detectAgentsWithFimoSkills");__name(removeDirIfExists,"removeDirIfExists");__name(removeGlobalSkillDirs,"removeGlobalSkillDirs");__name(hasGlobalSkillInstalled,"hasGlobalSkillInstalled");__name(removeCanonicalSkillDirs,"removeCanonicalSkillDirs");__name(cleanupStaleGlobalSkills,"cleanupStaleGlobalSkills");__name(skillsUninstallCommand,"skillsUninstallCommand");__name(listReferenceDocs,"listReferenceDocs");__name(discoverBundledSkills,"discoverBundledSkills");__name(firstLine,"firstLine");__name(skillsListCommand,"skillsListCommand");__name(runningCliSource,"runningCliSource");__name(resolveSkillsGetSource,"resolveSkillsGetSource");__name(formatSkillStamp,"formatSkillStamp");__name(stampedSkillBody,"stampedSkillBody");__name(resolveProjectFimoPackageJson,"resolveProjectFimoPackageJson");__name(normalizeRef,"normalizeRef");__name(skillsGetCommand,"skillsGetCommand")}});import{execFile as execFile9,spawnSync as spawnSync2}from"node:child_process";import{readFile as readFile5,writeFile as writeFile2}from"node:fs/promises";import path36 from"node:path";import{promisify as promisify9}from"node:util";function explainCreateProjectError(error){return error instanceof ApiRequestError&&error.detail.includes('insert into "projects"')&&(error.detail.includes('"subdomain"')||error.detail.includes('"subdomain_updated_at"'))?["Project creation failed because the local API database schema looks out of date.","The server is trying to write the `projects.subdomain` fields, but your database likely has not applied the latest migration yet.","Run `cd apps/api && pnpm db:migrate`, restart the API if needed, then retry."].join(`
|
|
660
660
|
`):error instanceof Error?error.message:String(error)}async function scaffoldNewProject(args){let{api,cfg,targetDir,displayName,options}=args,organizationId=await resolveOrganization(api,options.org),createSpinner=spinner("Creating Fimo project"),project;try{project=await api.createProject({organizationId,displayName:displayName??path36.basename(targetDir)})}catch(error){throw createSpinner.fail("Project creation failed"),new ScaffoldError("PROJECT_CREATE_FAILED",explainCreateProjectError(error))}createSpinner.succeed(`Project ${project.displayName??project.name} created (${project.id})`);let releaseAbort=installAbortHandler(api,project.id,project.name);try{return{scaffold:await scaffoldIntoProject({project,api,cfg,targetDir,options}),releaseAbort}}catch(error){throw releaseAbort(),options.starter&&await api.deleteProject(project.id).catch(()=>{}),error}}async function scaffoldIntoProject(args){let{project,api,cfg,targetDir,options}=args,starter;try{starter=resolveProjectStarter(options.starter)}catch(error){throw error instanceof StarterError?new ScaffoldError(error.code,error.message):error}let remoteSp=spinner("Fetching git remote"),remote=await api.getGitRemote(project.id,MAIN_BRANCH);remoteSp.succeed("Remote ready");let selectedAgents;try{selectedAgents=await selectAgents(options,{promptMessage:"Which agents do you want to set up?",detectFn:detectAgentsWithFimoSkills})}catch(err){throw new ScaffoldError("AGENT_SELECTION_FAILED",err instanceof Error?err.message:String(err))}let scaffoldSp=spinner("Scaffolding template"),framework=resolveTemplateFramework(options.framework),templateRoot=options.templateRoot?path36.resolve(options.templateRoot):process.env.FIMO_TEMPLATE_ROOT?path36.resolve(process.env.FIMO_TEMPLATE_ROOT):resolveTemplateRoot(framework);await copyTemplate(templateRoot,targetDir),starter&&await copyStarterOverlay(starter,targetDir),seedSiteName({targetDir,project}),writeLocalProjectFiles({targetDir,project,apiUrl:cfg.apiUrl,tenantApiBaseUrl:remote.tenantApiBaseUrl});let starterSeed=null;if(starter)try{starterSeed=await applyStarterSeeds({starter,api,projectId:project.id,targetDir})}catch(error){throw new ScaffoldError("STARTER_SEED_FAILED",`Could not seed project starter ${starter.id}@${starter.version}: ${error instanceof Error?error.message:String(error)}`)}let gitSp=spinner("Initializing git repository");await runGit(["init","-b",MAIN_BRANCH],targetDir),await ensureFimoRemote(targetDir,remote.url),gitSp.succeed("Git initialized with `fimo` remote"),scaffoldSp.succeed("Template scaffolded");let relativeTarget=path36.relative(process.cwd(),targetDir)||".";return{project,targetDir,relativeTarget,selectedAgents,tenantApiUrl:remote.tenantApiUrl,starter:starterSeed}}async function finalizeInitialCommit(args){let{targetDir}=args,gitSp=spinner("Creating the initial commit");await runGit(["add","-A"],targetDir),await runGit(["commit","-m","chore: scaffold Fimo project"],targetDir).catch(()=>{}),gitSp.succeed("Initial commit created");let pushSp=spinner("Pushing initial commit to Fimo");try{return await runGit(["push","fimo",`HEAD:${MAIN_BRANCH}`],targetDir),pushSp.succeed("Initial commit pushed"),{pushedInitial:!0}}catch(error){pushSp.fail("Initial push failed");let failure=classifyPushError(error),retryHint=failure.kind==="auth"?"Sign in with `fimo login`, then run `fimo deploy` to push it.":"Run `fimo deploy` later to retry.";return O2.error(`Could not push the initial commit. ${retryHint}
|
|
661
661
|
${failure.stderr||""}`.trim()),{pushedInitial:!1}}}function installAbortHandler(api,projectId,projectName){let cleaningUp=!1,handler=__name(()=>{cleaningUp&&(process.stderr.write(`
|
|
662
662
|
Force-exiting. Project may not have been fully cleaned up.
|
|
@@ -668,13 +668,13 @@ Aborted. Deleting project ${projectName}\u2026
|
|
|
668
668
|
`)}async function installDependencies(packageManager,targetDir){let args=installArgsForPackageManager(packageManager),command=formatPackageManagerCommand(packageManager,args),installSp=spinner(`Installing dependencies (${command})`);try{return await execFileAsync8(packageManager,args,{cwd:targetDir}),installSp.succeed("Dependencies installed"),{installed:!0,command,error:null}}catch(error){let message=error instanceof Error?error.message:String(error);return installSp.fail(`Failed to install dependencies: ${message}`),{installed:!1,command,error:message}}}function detectPackageManager2(){return isCommandAvailable("pnpm")?"pnpm":isCommandAvailable("bun")?"bun":isCommandAvailable("yarn")?"yarn":"npm"}function isCommandAvailable(command){let probe=process.platform==="win32"?"where":"which";return spawnSync2(probe,[command],{stdio:"ignore"}).status===0}async function resolveOrganization(api,explicit,options={}){if(explicit)return explicit;let activeOrganizationId=readCredentials()?.activeOrganization?.id,nonInteractive2=options.nonInteractive??(currentMode().format==="json"||!isInteractive());if(nonInteractive2&&activeOrganizationId)return activeOrganizationId;let orgs2;try{orgs2=await api.listOrganizations()}catch(error){throw rethrowCliAuthError(error),new ScaffoldError("LIST_ORGS_FAILED",`Failed to list organizations: ${error instanceof Error?error.message:String(error)}`)}if(orgs2.length===0)throw new ScaffoldError("NO_ORGANIZATIONS","No organization found for this account.");if(orgs2.length===1)return orgs2[0].id;if(nonInteractive2)throw new ScaffoldError("ORGANIZATION_REQUIRED","Several organizations are available and no active organization is configured.","Pass --org <organizationId>, or run `fimo orgs switch --org <id-or-slug>` first.");let currentId=orgs2.some(organization=>organization.id===activeOrganizationId)?activeOrganizationId:void 0,selected=await _t({message:"Select an organization for this project",initialValue:currentId,options:orgs2.map(organization=>({value:organization.id,label:organization.name,hint:organization.id===currentId?"current":organization.slug}))});if(q(selected))throw new ScaffoldError("ORGANIZATION_SELECTION_CANCELLED","Organization selection cancelled.");return selected}var execFileAsync8,MAIN_BRANCH,GENERATED_PNPM_PACKAGE_MANAGER,ScaffoldError,init_scaffold_project=__esm({"src/cli/commands/scaffold-project.ts"(){init_dist5();init_dist();init_api();init_auth();init_starters();init_agents();init_auth_errors();init_git_credential_setup();init_git();init_interactive();init_local_project_files();init_scaffold();init_skills();execFileAsync8=promisify9(execFile9),MAIN_BRANCH="main",GENERATED_PNPM_PACKAGE_MANAGER="pnpm@10.26.0",ScaffoldError=class extends Error{static{__name(this,"ScaffoldError")}code;hint;constructor(code2,message,hint){super(message),this.name="ScaffoldError",this.code=code2,this.hint=hint}};__name(explainCreateProjectError,"explainCreateProjectError");__name(scaffoldNewProject,"scaffoldNewProject");__name(scaffoldIntoProject,"scaffoldIntoProject");__name(finalizeInitialCommit,"finalizeInitialCommit");__name(installAbortHandler,"installAbortHandler");__name(installArgsForPackageManager,"installArgsForPackageManager");__name(formatPackageManagerCommand,"formatPackageManagerCommand");__name(configureGeneratedPackageManager,"configureGeneratedPackageManager");__name(installDependencies,"installDependencies");__name(detectPackageManager2,"detectPackageManager");__name(isCommandAvailable,"isCommandAvailable");__name(resolveOrganization,"resolveOrganization")}});import fs37 from"node:fs";import path37 from"node:path";function emitInitOutcome(command,outcome){switch(outcome.status){case"ok":ui.result({command,data:outcome.data,render:__name(ctx=>renderInitSuccess(ctx,outcome.renderArgs),"render"),warnings:outcome.warnings.length>0?outcome.warnings:void 0});return;case"cancelled":ui.info({command,message:"Cancelled."});return;case"info":ui.info({command,message:outcome.message});return;case"error":ui.error({command,code:outcome.code,message:outcome.message,...outcome.hint?{hint:outcome.hint}:{}})}}function isPretty(){return currentMode().format==="pretty"}function nonInteractive(options){return options.yes===!0||currentMode().format==="json"||!isInteractive()}async function initCommand(dirArg,options){isPretty()&&mt("Set up your Fimo project"),emitInitOutcome("init",await runInit(dirArg,options))}async function runInit(dirArg,options){let framework;try{framework=resolveTemplateFramework(options.framework)}catch(error){if(error instanceof TemplateFrameworkError)return{status:"error",code:"FRAMEWORK_INVALID",message:error.message};throw error}let initOptions={...options,framework};if(initOptions.projectId&&initOptions.starter)return{status:"error",code:"STARTER_EXISTING_PROJECT",message:"Project starters can only be used when creating a new project.",hint:"Remove --starter when using --project-id, or omit --project-id to create a new project."};try{resolveProjectStarter(initOptions.starter)}catch(error){if(error instanceof StarterError)return{status:"error",code:error.code,message:error.message};throw error}if(initOptions.starter&&framework!=="react-router")return{status:"error",code:"STARTER_FRAMEWORK_UNSUPPORTED",message:`Project starter "${initOptions.starter}" does not support ${framework}.`,hint:"Remove --starter, or use --framework react-router."};let cfg=loadConfig();if(initOptions.packageManager&&!PACKAGE_MANAGERS.includes(initOptions.packageManager.toLowerCase()))return{status:"error",code:"PACKAGE_MANAGER_INVALID",message:`Unknown package manager "${initOptions.packageManager}".`,hint:`Use one of: ${PACKAGE_MANAGERS.join(", ")}.`};let authAbort=await ensureAuthenticated(cfg,nonInteractive(initOptions));if(authAbort)return authAbort;let api=new FimoApiClient(cfg),creds=readCredentials(cfg),mode2=await resolveUseExisting(initOptions);if(mode2==="cancelled")return{status:"cancelled"};let useExisting=mode2==="existing";if(useExisting&&initOptions.starter)return{status:"error",code:"STARTER_EXISTING_PROJECT",message:"Project starters can only be used when creating a new project.",hint:"Remove --starter when linking an existing project, or choose create-new without an existing project."};let planned=await planInit({api,creds,useExisting,dirArg,options:initOptions});if("status"in planned)return planned;let{plan}=planned,ran=useExisting?await runExisting({api,cfg,projectId:plan.projectId,dirArg,options:plan.options}):await runNew({api,cfg,targetDir:plan.targetDir,displayName:plan.displayName,options:plan.options});if("status"in ran)return ran;let{checkout}=ran.run,scaffoldSummary=ran.run.summary,starterSeed=ran.run.starterSeed,scaffoldedAgents=ran.run.selectedAgents,pushedInitial=!0;ran.run.scaffolded&&await configureGeneratedPackageManager(plan.options.templatePackageManager??"pnpm",checkout.targetDir);let depResult=await maybeInstallDependencies(checkout.targetDir,plan.packageManager);try{({pushedInitial}=await ran.run.finalize(checkout.targetDir))}finally{ran.run.releaseAbort()}let skills2=await maybeInstallSkills(plan.options,scaffoldedAgents),warnings=[];return pushedInitial||warnings.push("Initial commit was not pushed \u2014 the project's remote is empty. Sign in (`fimo login`), then run `fimo deploy` from the project to push it."),depResult.error&&warnings.push(`Dependency install failed: ${depResult.error}`),skills2.error&&warnings.push(skills2.error),{status:"ok",data:{ok:!0,project_id:checkout.projectId,project_name:checkout.projectName,mode:useExisting?"existing":"new",target_dir:checkout.targetDir,relative_dir:checkout.relativeTarget,scaffold:scaffoldSummary,...starterSeed?{starter:`${starterSeed.id}@${starterSeed.version}`,starter_seed:starterSeed}:{},installed_deps:depResult.installed,package_manager:depResult.packageManager,install_error:depResult.error,skills_set_up:skills2.setUp,skills_error:skills2.error,pushed_initial:pushedInitial},renderArgs:{projectName:checkout.projectName,relativeDir:checkout.relativeTarget,isNew:!useExisting,installedDeps:depResult.installed,packageManager:depResult.packageManager,pushedInitial,starter:starterSeed?`${starterSeed.id}@${starterSeed.version}`:null},warnings}}function renderInitSuccess(ctx,args){let p2=ctx.color?palette:makeColorPalette({forceDisable:!0});if(!args.pushedInitial)return renderInitPushFailed(p2,ctx.ascii,args);let check=ctx.ascii?"[ok]":"\u2705",pm=args.packageManager??"pnpm",dev=args.installedDeps?`${pm} dev`:`${pm} install`,devTail=args.installedDeps?"to launch your project's development server":`then ${p2.cyan(`${pm} dev`)} to launch it`,commands=[["npx fimo deploy","to push a preview of your site"],["npx fimo deploy --publish","to push your site live"],["npx fimo skills install","to set up Fimo skills for your AI tools"],["npx fimo --help","to explore the CLI"]],width=Math.max(...commands.map(([c2])=>c2.length)),lines=[];lines.push(`${check} ${p2.bold(`Success! Your project ${args.projectName} ${args.isNew?"has been created":"is linked"}.`)}`),lines.push(""),args.relativeDir!=="."&&args.relativeDir!==""&&(lines.push(`${p2.cyan(`cd ${args.relativeDir}`)} ${p2.dim("to navigate to your project directory")}`),lines.push("")),args.starter&&(lines.push(`Starter content: ${p2.cyan(args.starter)} ${p2.dim("is ready to edit in Fimo")}`),lines.push("")),lines.push(`Get started by running ${p2.cyan(dev)} ${devTail}`),lines.push(""),lines.push(""),lines.push(p2.bold("Other helpful commands:"));for(let[cmd,desc]of commands)lines.push(`${p2.cyan(cmd.padEnd(width))} ${p2.dim(desc)}`);return lines.join(`
|
|
669
669
|
`)}function renderInitPushFailed(p2,ascii,args){let warn=ascii?"[!]":"\u26A0\uFE0F",steps=[["npx fimo login","to sign in (if you are not already)"],["npx fimo deploy","to push the first commit and finish setup"]],width=Math.max(...steps.map(([c2])=>c2.length)),lines=[];lines.push(`${warn} ${p2.bold(`Your project ${args.projectName} was created, but its first commit was not pushed.`)}`),lines.push(""),lines.push(p2.dim("The remote is empty until you push, so it can't be cloned or deployed yet.")),lines.push(""),args.relativeDir!=="."&&args.relativeDir!==""?lines.push(`${p2.cyan(`cd ${args.relativeDir}`)} ${p2.dim("then finish setup:")}`):lines.push(p2.dim("Finish setup:"));for(let[cmd,desc]of steps)lines.push(`${p2.cyan(cmd.padEnd(width))} ${p2.dim(desc)}`);return lines.join(`
|
|
670
670
|
`)}async function ensureAuthenticated(cfg,noPrompt2){if(readCredentials(cfg)?.access_token)return null;if(noPrompt2)return{status:"error",code:"NOT_AUTHENTICATED",message:"You are not signed in to Fimo.",hint:"Run `fimo login` first, then re-run `fimo init`."};isPretty()&&O2.step("You are not signed in yet \u2014 opening your browser to sign in.");try{return await performBrowserLogin(cfg),null}catch(error){if(error instanceof LoginError)return{status:"error",code:error.code,message:error.message};throw error}}async function resolveUseExisting(options){if(options.projectId)return"existing";if(nonInteractive(options))return"new";let choice=await _t({message:"What do you want to do?",options:[{value:"new",label:"Create a new project"},{value:"existing",label:"Link an existing project"}]});return q(choice)?"cancelled":choice==="existing"?"existing":"new"}async function planInit(args){let{api,creds,useExisting,dirArg,options}=args,projectId,targetDir,displayName,derived={...options};if(useExisting)if(options.projectId)projectId=options.projectId;else{let picked=await selectProjectId({api,activeOrganizationId:creds?.activeOrganization?.id??null,message:"Select a project to link"});if(picked.status==="empty")return{status:"info",message:picked.message};if(picked.status!=="selected")return picked;projectId=picked.projectId}else{let resolved=await resolveTargetDir(dirArg,nonInteractive(options));if("status"in resolved)return resolved;if(targetDir=resolved.targetDir,displayName=resolved.displayName,fs37.existsSync(targetDir)&&fs37.readdirSync(targetDir).length>0){let name=path37.basename(targetDir);return{status:"error",code:"DIRECTORY_NOT_EMPTY",message:`The folder "${name}" already exists and isn't empty.`,hint:`Run \`fimo link\` inside "${name}" to adopt the application that is already there, or pick a different directory to scaffold a new one.`}}try{derived.org=await resolveOrganization(api,options.org,{nonInteractive:nonInteractive(options)})}catch(error){if(error instanceof ScaffoldError&&error.code==="ORGANIZATION_SELECTION_CANCELLED")return{status:"cancelled"};if(error instanceof ScaffoldError)return{status:"error",code:error.code,message:error.message,...error.hint?{hint:error.hint}:{}};throw error}}if(nonInteractive(options))options.skills===!1&&!derived.agents&&(derived.agents="none");else{let wantSkills;if(options.skills===!0||options.skills===!1)wantSkills=options.skills;else{let alreadySetUp=(await detectAgentsWithFimoSkills()).length>0,answer=await ot2({message:alreadySetUp?"Fimo skills are already set up for your AI agents. Set them up again?":"Set up Fimo skills for your AI coding agents?",initialValue:!alreadySetUp});if(q(answer))return{status:"cancelled"};wantSkills=answer}if(wantSkills){let agents;try{agents=await selectAgents(options,{promptMessage:"Which agents do you want to set up?",detectFn:detectAgentsWithFimoSkills})}catch(err){return{status:"error",code:"AGENT_SELECTION_FAILED",message:err instanceof Error?err.message:String(err)}}derived.skills=!0,derived.agents=agents.length>0?agents.join(","):"none"}else derived.skills=!1,derived.agents="none"}let packageManager=options.install===!1?null:await resolvePackageManager(derived);return derived.templatePackageManager=options.packageManager?.toLowerCase()??packageManager??"pnpm",{plan:{projectId,targetDir,displayName,packageManager,options:derived}}}async function runExisting(args){let{api,cfg,projectId,dirArg,options}=args;try{let result=await cloneProject({api,cfg,projectId,dir:dirArg,env:options.env});return{run:{checkout:{projectId:result.project.id,projectName:result.project.displayName??result.project.name,targetDir:result.targetDir,relativeTarget:result.relativeTarget},scaffolded:!1,summary:null,starterSeed:null,selectedAgents:null,finalize:__name(async()=>({pushedInitial:!0}),"finalize"),releaseAbort:__name(()=>{},"releaseAbort")}}}catch(error){if(error instanceof CloneError&&error.code==="EMPTY_REMOTE"&&error.emptyRemote)return adoptEmptyRemote({api,cfg,ctx:error.emptyRemote,options});if(error instanceof CloneError)return{status:"error",code:error.code,message:error.message,...error.hint?{hint:error.hint}:{}};throw error}}async function adoptEmptyRemote(args){let{api,cfg,ctx,options}=args;isPretty()&&O2.step("This project has no content yet \u2014 scaffolding a starter site and pushing the first commit.");try{let result=await scaffoldIntoProject({project:ctx.project,api,cfg,targetDir:ctx.targetDir,options});return{run:{checkout:{projectId:result.project.id,projectName:result.project.displayName??result.project.name,targetDir:result.targetDir,relativeTarget:result.relativeTarget},scaffolded:!0,summary:null,starterSeed:result.starter,selectedAgents:result.selectedAgents,finalize:__name(targetDir=>finalizeInitialCommit({targetDir}),"finalize"),releaseAbort:__name(()=>{},"releaseAbort")}}}catch(error){if(error instanceof ScaffoldError)return{status:"error",code:error.code,message:error.message,...error.hint?{hint:error.hint}:{}};throw error}}async function runNew(args){let{api,cfg,targetDir,displayName,options}=args;try{let{scaffold,releaseAbort}=await scaffoldNewProject({api,cfg,targetDir,displayName,options});return{run:{checkout:{projectId:scaffold.project.id,projectName:scaffold.project.displayName??scaffold.project.name,targetDir:scaffold.targetDir,relativeTarget:scaffold.relativeTarget},scaffolded:!0,summary:null,starterSeed:scaffold.starter,selectedAgents:scaffold.selectedAgents,finalize:__name(dir=>finalizeInitialCommit({targetDir:dir}),"finalize"),releaseAbort}}}catch(error){if(error instanceof ScaffoldError)return{status:"error",code:error.code,message:error.message,...error.hint?{hint:error.hint}:{}};throw error}}async function resolveTargetDir(dirArg,noPrompt2){if(dirArg)return{targetDir:path37.resolve(dirArg)};if(noPrompt2)return{status:"error",code:"DIRECTORY_REQUIRED",message:"A target directory is required to create a new project.",hint:"Pass [dir] (e.g. `fimo init my-site`), or `--project-id <id>` to link an existing project."};let input=await Ot({message:"Project name",placeholder:"My Fimo Site",validate:__name(value=>value&&value.trim().length>0?void 0:"project name required","validate")});if(q(input))return{status:"cancelled"};let displayName=String(input).trim(),folder=slugifyName(displayName)||"fimo-project";return{targetDir:path37.resolve(folder),displayName}}async function maybeInstallDependencies(targetDir,packageManager){if(!packageManager)return{installed:!1,packageManager:null,error:null};let result=await installDependencies(packageManager,targetDir);return{installed:result.installed,packageManager,error:result.error}}async function resolvePackageManager(options){if(options.packageManager)return options.packageManager.toLowerCase();let detected=detectPackageManager2();if(nonInteractive(options))return detected;let selected=await _t({message:"Install dependencies with which package manager?",initialValue:detected,options:[...PACKAGE_MANAGERS.map(pm=>({value:pm,label:pm})),{value:MANUAL_INSTALL,label:"Manual \u2014 I'll install dependencies myself"}]});return q(selected)||selected===MANUAL_INSTALL?null:selected}async function maybeInstallSkills(options,scaffoldedAgents){if(options.skills===!1)return{setUp:!1,error:null};if(options.skills!==!0&&nonInteractive(options))return{setUp:!1,error:null};let agentsFlag=options.agents;if(scaffoldedAgents!==null){if(scaffoldedAgents.length===0)return{setUp:!1,error:null};agentsFlag=scaffoldedAgents.join(",")}else if(nonInteractive(options)&&!agentsFlag)return{setUp:!1,error:null};let outcome=await runSkillsInstall({agents:agentsFlag,agent:scaffoldedAgents!==null?void 0:options.agent,yes:!0});return outcome.status==="error"&&outcome.code==="NO_AGENTS_SELECTED"?{setUp:!1,error:null}:outcome.status==="ok"?{setUp:!0,error:outcome.data.ok?null:"Some skills failed to install."}:outcome.status==="cancelled"?{setUp:!1,error:null}:{setUp:!1,error:outcome.message}}var PACKAGE_MANAGERS,MANUAL_INSTALL,init_init=__esm({"src/cli/commands/init.ts"(){init_dist5();init_dist();init_api();init_auth();init_config();init_starters();init_agents();init_color();init_interactive();init_scaffold();init_slug();init_clone();init_login();init_scaffold_project();init_skills();PACKAGE_MANAGERS=["npm","pnpm","yarn","bun"],MANUAL_INSTALL="manual";__name(emitInitOutcome,"emitInitOutcome");__name(isPretty,"isPretty");__name(nonInteractive,"nonInteractive");__name(initCommand,"initCommand");__name(runInit,"runInit");__name(renderInitSuccess,"renderInitSuccess");__name(renderInitPushFailed,"renderInitPushFailed");__name(ensureAuthenticated,"ensureAuthenticated");__name(resolveUseExisting,"resolveUseExisting");__name(planInit,"planInit");__name(runExisting,"runExisting");__name(adoptEmptyRemote,"adoptEmptyRemote");__name(runNew,"runNew");__name(resolveTargetDir,"resolveTargetDir");__name(maybeInstallDependencies,"maybeInstallDependencies");__name(resolvePackageManager,"resolvePackageManager");__name(maybeInstallSkills,"maybeInstallSkills")}});function flattenOptions(options,baseOptions){if(!options)return baseOptions??defaultOpts;let opts={_useHtmlParser2:!!options.xmlMode,...baseOptions,...options};return options.xml?(opts._useHtmlParser2=!0,opts.xmlMode=!0,options.xml!==!0&&Object.assign(opts,options.xml)):options.xmlMode&&(opts._useHtmlParser2=!0),opts}var defaultOpts,init_options=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/options.js"(){defaultOpts={_useHtmlParser2:!1};__name(flattenOptions,"flattenOptions")}});var esm_exports={};__export(esm_exports,{CDATA:()=>CDATA,Comment:()=>Comment,Directive:()=>Directive,Doctype:()=>Doctype,ElementType:()=>ElementType,Root:()=>Root,Script:()=>Script,Style:()=>Style,Tag:()=>Tag,Text:()=>Text,isTag:()=>isTag});function isTag(elem){return elem.type===ElementType.Tag||elem.type===ElementType.Script||elem.type===ElementType.Style}var ElementType,Root,Text,Directive,Comment,Script,Style,Tag,CDATA,Doctype,init_esm2=__esm({"../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js"(){(function(ElementType2){ElementType2.Root="root",ElementType2.Text="text",ElementType2.Directive="directive",ElementType2.Comment="comment",ElementType2.Script="script",ElementType2.Style="style",ElementType2.Tag="tag",ElementType2.CDATA="cdata",ElementType2.Doctype="doctype"})(ElementType||(ElementType={}));__name(isTag,"isTag");Root=ElementType.Root,Text=ElementType.Text,Directive=ElementType.Directive,Comment=ElementType.Comment,Script=ElementType.Script,Style=ElementType.Style,Tag=ElementType.Tag,CDATA=ElementType.CDATA,Doctype=ElementType.Doctype}});function isTag2(node){return isTag(node)}function isCDATA(node){return node.type===ElementType.CDATA}function isText(node){return node.type===ElementType.Text}function isComment(node){return node.type===ElementType.Comment}function isDirective(node){return node.type===ElementType.Directive}function isDocument(node){return node.type===ElementType.Root}function hasChildren(node){return Object.prototype.hasOwnProperty.call(node,"children")}function cloneNode(node,recursive=!1){let result;if(isText(node))result=new Text2(node.data);else if(isComment(node))result=new Comment2(node.data);else if(isTag2(node)){let children2=recursive?cloneChildren(node.children):[],clone2=new Element(node.name,{...node.attribs},children2);children2.forEach(child=>child.parent=clone2),node.namespace!=null&&(clone2.namespace=node.namespace),node["x-attribsNamespace"]&&(clone2["x-attribsNamespace"]={...node["x-attribsNamespace"]}),node["x-attribsPrefix"]&&(clone2["x-attribsPrefix"]={...node["x-attribsPrefix"]}),result=clone2}else if(isCDATA(node)){let children2=recursive?cloneChildren(node.children):[],clone2=new CDATA2(children2);children2.forEach(child=>child.parent=clone2),result=clone2}else if(isDocument(node)){let children2=recursive?cloneChildren(node.children):[],clone2=new Document(children2);children2.forEach(child=>child.parent=clone2),node["x-mode"]&&(clone2["x-mode"]=node["x-mode"]),result=clone2}else if(isDirective(node)){let instruction=new ProcessingInstruction(node.name,node.data);node["x-name"]!=null&&(instruction["x-name"]=node["x-name"],instruction["x-publicId"]=node["x-publicId"],instruction["x-systemId"]=node["x-systemId"]),result=instruction}else throw new Error(`Not implemented yet: ${node.type}`);return result.startIndex=node.startIndex,result.endIndex=node.endIndex,node.sourceCodeLocation!=null&&(result.sourceCodeLocation=node.sourceCodeLocation),result}function cloneChildren(childs){let children2=childs.map(child=>cloneNode(child,!0));for(let i=1;i<children2.length;i++)children2[i].prev=children2[i-1],children2[i-1].next=children2[i];return children2}var Node,DataNode,Text2,Comment2,ProcessingInstruction,NodeWithChildren,CDATA2,Document,Element,init_node=__esm({"../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js"(){init_esm2();Node=class{static{__name(this,"Node")}constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(parent2){this.parent=parent2}get previousSibling(){return this.prev}set previousSibling(prev2){this.prev=prev2}get nextSibling(){return this.next}set nextSibling(next2){this.next=next2}cloneNode(recursive=!1){return cloneNode(this,recursive)}},DataNode=class extends Node{static{__name(this,"DataNode")}constructor(data2){super(),this.data=data2}get nodeValue(){return this.data}set nodeValue(data2){this.data=data2}},Text2=class extends DataNode{static{__name(this,"Text")}constructor(){super(...arguments),this.type=ElementType.Text}get nodeType(){return 3}},Comment2=class extends DataNode{static{__name(this,"Comment")}constructor(){super(...arguments),this.type=ElementType.Comment}get nodeType(){return 8}},ProcessingInstruction=class extends DataNode{static{__name(this,"ProcessingInstruction")}constructor(name,data2){super(data2),this.name=name,this.type=ElementType.Directive}get nodeType(){return 1}},NodeWithChildren=class extends Node{static{__name(this,"NodeWithChildren")}constructor(children2){super(),this.children=children2}get firstChild(){var _a4;return(_a4=this.children[0])!==null&&_a4!==void 0?_a4:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(children2){this.children=children2}},CDATA2=class extends NodeWithChildren{static{__name(this,"CDATA")}constructor(){super(...arguments),this.type=ElementType.CDATA}get nodeType(){return 4}},Document=class extends NodeWithChildren{static{__name(this,"Document")}constructor(){super(...arguments),this.type=ElementType.Root}get nodeType(){return 9}},Element=class extends NodeWithChildren{static{__name(this,"Element")}constructor(name,attribs,children2=[],type=name==="script"?ElementType.Script:name==="style"?ElementType.Style:ElementType.Tag){super(children2),this.name=name,this.attribs=attribs,this.type=type}get nodeType(){return 1}get tagName(){return this.name}set tagName(name){this.name=name}get attributes(){return Object.keys(this.attribs).map(name=>{var _a4,_b;return{name,value:this.attribs[name],namespace:(_a4=this["x-attribsNamespace"])===null||_a4===void 0?void 0:_a4[name],prefix:(_b=this["x-attribsPrefix"])===null||_b===void 0?void 0:_b[name]}})}};__name(isTag2,"isTag");__name(isCDATA,"isCDATA");__name(isText,"isText");__name(isComment,"isComment");__name(isDirective,"isDirective");__name(isDocument,"isDocument");__name(hasChildren,"hasChildren");__name(cloneNode,"cloneNode");__name(cloneChildren,"cloneChildren")}});var defaultOpts2,DomHandler,init_esm3=__esm({"../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js"(){init_esm2();init_node();init_node();defaultOpts2={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},DomHandler=class{static{__name(this,"DomHandler")}constructor(callback,options,elementCB){this.dom=[],this.root=new Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof options=="function"&&(elementCB=options,options=defaultOpts2),typeof callback=="object"&&(options=callback,callback=void 0),this.callback=callback??null,this.options=options??defaultOpts2,this.elementCB=elementCB??null}onparserinit(parser){this.parser=parser}onreset(){this.dom=[],this.root=new Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(error){this.handleCallback(error)}onclosetag(){this.lastNode=null;let elem=this.tagStack.pop();this.options.withEndIndices&&(elem.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(elem)}onopentag(name,attribs){let type=this.options.xmlMode?ElementType.Tag:void 0,element=new Element(name,attribs,void 0,type);this.addNode(element),this.tagStack.push(element)}ontext(data2){let{lastNode}=this;if(lastNode&&lastNode.type===ElementType.Text)lastNode.data+=data2,this.options.withEndIndices&&(lastNode.endIndex=this.parser.endIndex);else{let node=new Text2(data2);this.addNode(node),this.lastNode=node}}oncomment(data2){if(this.lastNode&&this.lastNode.type===ElementType.Comment){this.lastNode.data+=data2;return}let node=new Comment2(data2);this.addNode(node),this.lastNode=node}oncommentend(){this.lastNode=null}oncdatastart(){let text3=new Text2(""),node=new CDATA2([text3]);this.addNode(node),text3.parent=node,this.lastNode=text3}oncdataend(){this.lastNode=null}onprocessinginstruction(name,data2){let node=new ProcessingInstruction(name,data2);this.addNode(node)}handleCallback(error){if(typeof this.callback=="function")this.callback(error,this.dom);else if(error)throw error}addNode(node){let parent2=this.tagStack[this.tagStack.length-1],previousSibling=parent2.children[parent2.children.length-1];this.options.withStartIndices&&(node.startIndex=this.parser.startIndex),this.options.withEndIndices&&(node.endIndex=this.parser.endIndex),parent2.children.push(node),previousSibling&&(node.prev=previousSibling,previousSibling.next=node),node.parent=parent2,this.lastNode=null}}}});var decode_data_html_default,init_decode_data_html=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.js"(){decode_data_html_default=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(c2=>c2.charCodeAt(0)))}});var decode_data_xml_default,init_decode_data_xml=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.js"(){decode_data_xml_default=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(c2=>c2.charCodeAt(0)))}});function replaceCodePoint(codePoint){var _a4;return codePoint>=55296&&codePoint<=57343||codePoint>1114111?65533:(_a4=decodeMap.get(codePoint))!==null&&_a4!==void 0?_a4:codePoint}var _a,decodeMap,fromCodePoint,init_decode_codepoint=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.js"(){decodeMap=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),fromCodePoint=(_a=String.fromCodePoint)!==null&&_a!==void 0?_a:function(codePoint){let output="";return codePoint>65535&&(codePoint-=65536,output+=String.fromCharCode(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),output+=String.fromCharCode(codePoint),output};__name(replaceCodePoint,"replaceCodePoint")}});function isNumber(code2){return code2>=CharCodes.ZERO&&code2<=CharCodes.NINE}function isHexadecimalCharacter(code2){return code2>=CharCodes.UPPER_A&&code2<=CharCodes.UPPER_F||code2>=CharCodes.LOWER_A&&code2<=CharCodes.LOWER_F}function isAsciiAlphaNumeric(code2){return code2>=CharCodes.UPPER_A&&code2<=CharCodes.UPPER_Z||code2>=CharCodes.LOWER_A&&code2<=CharCodes.LOWER_Z||isNumber(code2)}function isEntityInAttributeInvalidEnd(code2){return code2===CharCodes.EQUALS||isAsciiAlphaNumeric(code2)}function getDecoder(decodeTree){let ret="",decoder=new EntityDecoder(decodeTree,str=>ret+=fromCodePoint(str));return __name(function(str,decodeMode){let lastIndex=0,offset=0;for(;(offset=str.indexOf("&",offset))>=0;){ret+=str.slice(lastIndex,offset),decoder.startEntity(decodeMode);let len=decoder.write(str,offset+1);if(len<0){lastIndex=offset+decoder.end();break}lastIndex=offset+len,offset=len===0?lastIndex+1:lastIndex}let result=ret+str.slice(lastIndex);return ret="",result},"decodeWithTrie")}function determineBranch(decodeTree,current,nodeIdx,char){let branchCount=(current&BinTrieFlags.BRANCH_LENGTH)>>7,jumpOffset=current&BinTrieFlags.JUMP_TABLE;if(branchCount===0)return jumpOffset!==0&&char===jumpOffset?nodeIdx:-1;if(jumpOffset){let value=char-jumpOffset;return value<0||value>=branchCount?-1:decodeTree[nodeIdx+value]-1}let lo=nodeIdx,hi=lo+branchCount-1;for(;lo<=hi;){let mid=lo+hi>>>1,midVal=decodeTree[mid];if(midVal<char)lo=mid+1;else if(midVal>char)hi=mid-1;else return decodeTree[mid+branchCount]}return-1}var CharCodes,TO_LOWER_BIT,BinTrieFlags,EntityDecoderState,DecodingMode,EntityDecoder,htmlDecoder,xmlDecoder,init_decode=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js"(){init_decode_data_html();init_decode_data_xml();init_decode_codepoint();init_decode_codepoint();(function(CharCodes4){CharCodes4[CharCodes4.NUM=35]="NUM",CharCodes4[CharCodes4.SEMI=59]="SEMI",CharCodes4[CharCodes4.EQUALS=61]="EQUALS",CharCodes4[CharCodes4.ZERO=48]="ZERO",CharCodes4[CharCodes4.NINE=57]="NINE",CharCodes4[CharCodes4.LOWER_A=97]="LOWER_A",CharCodes4[CharCodes4.LOWER_F=102]="LOWER_F",CharCodes4[CharCodes4.LOWER_X=120]="LOWER_X",CharCodes4[CharCodes4.LOWER_Z=122]="LOWER_Z",CharCodes4[CharCodes4.UPPER_A=65]="UPPER_A",CharCodes4[CharCodes4.UPPER_F=70]="UPPER_F",CharCodes4[CharCodes4.UPPER_Z=90]="UPPER_Z"})(CharCodes||(CharCodes={}));TO_LOWER_BIT=32;(function(BinTrieFlags3){BinTrieFlags3[BinTrieFlags3.VALUE_LENGTH=49152]="VALUE_LENGTH",BinTrieFlags3[BinTrieFlags3.BRANCH_LENGTH=16256]="BRANCH_LENGTH",BinTrieFlags3[BinTrieFlags3.JUMP_TABLE=127]="JUMP_TABLE"})(BinTrieFlags||(BinTrieFlags={}));__name(isNumber,"isNumber");__name(isHexadecimalCharacter,"isHexadecimalCharacter");__name(isAsciiAlphaNumeric,"isAsciiAlphaNumeric");__name(isEntityInAttributeInvalidEnd,"isEntityInAttributeInvalidEnd");(function(EntityDecoderState3){EntityDecoderState3[EntityDecoderState3.EntityStart=0]="EntityStart",EntityDecoderState3[EntityDecoderState3.NumericStart=1]="NumericStart",EntityDecoderState3[EntityDecoderState3.NumericDecimal=2]="NumericDecimal",EntityDecoderState3[EntityDecoderState3.NumericHex=3]="NumericHex",EntityDecoderState3[EntityDecoderState3.NamedEntity=4]="NamedEntity"})(EntityDecoderState||(EntityDecoderState={}));(function(DecodingMode3){DecodingMode3[DecodingMode3.Legacy=0]="Legacy",DecodingMode3[DecodingMode3.Strict=1]="Strict",DecodingMode3[DecodingMode3.Attribute=2]="Attribute"})(DecodingMode||(DecodingMode={}));EntityDecoder=class{static{__name(this,"EntityDecoder")}constructor(decodeTree,emitCodePoint,errors){this.decodeTree=decodeTree,this.emitCodePoint=emitCodePoint,this.errors=errors,this.state=EntityDecoderState.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=DecodingMode.Strict}startEntity(decodeMode){this.decodeMode=decodeMode,this.state=EntityDecoderState.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(str,offset){switch(this.state){case EntityDecoderState.EntityStart:return str.charCodeAt(offset)===CharCodes.NUM?(this.state=EntityDecoderState.NumericStart,this.consumed+=1,this.stateNumericStart(str,offset+1)):(this.state=EntityDecoderState.NamedEntity,this.stateNamedEntity(str,offset));case EntityDecoderState.NumericStart:return this.stateNumericStart(str,offset);case EntityDecoderState.NumericDecimal:return this.stateNumericDecimal(str,offset);case EntityDecoderState.NumericHex:return this.stateNumericHex(str,offset);case EntityDecoderState.NamedEntity:return this.stateNamedEntity(str,offset)}}stateNumericStart(str,offset){return offset>=str.length?-1:(str.charCodeAt(offset)|TO_LOWER_BIT)===CharCodes.LOWER_X?(this.state=EntityDecoderState.NumericHex,this.consumed+=1,this.stateNumericHex(str,offset+1)):(this.state=EntityDecoderState.NumericDecimal,this.stateNumericDecimal(str,offset))}addToNumericResult(str,start,end2,base){if(start!==end2){let digitCount=end2-start;this.result=this.result*Math.pow(base,digitCount)+parseInt(str.substr(start,digitCount),base),this.consumed+=digitCount}}stateNumericHex(str,offset){let startIdx=offset;for(;offset<str.length;){let char=str.charCodeAt(offset);if(isNumber(char)||isHexadecimalCharacter(char))offset+=1;else return this.addToNumericResult(str,startIdx,offset,16),this.emitNumericEntity(char,3)}return this.addToNumericResult(str,startIdx,offset,16),-1}stateNumericDecimal(str,offset){let startIdx=offset;for(;offset<str.length;){let char=str.charCodeAt(offset);if(isNumber(char))offset+=1;else return this.addToNumericResult(str,startIdx,offset,10),this.emitNumericEntity(char,2)}return this.addToNumericResult(str,startIdx,offset,10),-1}emitNumericEntity(lastCp,expectedLength){var _a4;if(this.consumed<=expectedLength)return(_a4=this.errors)===null||_a4===void 0||_a4.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(lastCp===CharCodes.SEMI)this.consumed+=1;else if(this.decodeMode===DecodingMode.Strict)return 0;return this.emitCodePoint(replaceCodePoint(this.result),this.consumed),this.errors&&(lastCp!==CharCodes.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(str,offset){let{decodeTree}=this,current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags.VALUE_LENGTH)>>14;for(;offset<str.length;offset++,this.excess++){let char=str.charCodeAt(offset);if(this.treeIndex=determineBranch(decodeTree,current,this.treeIndex+Math.max(1,valueLength),char),this.treeIndex<0)return this.result===0||this.decodeMode===DecodingMode.Attribute&&(valueLength===0||isEntityInAttributeInvalidEnd(char))?0:this.emitNotTerminatedNamedEntity();if(current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags.VALUE_LENGTH)>>14,valueLength!==0){if(char===CharCodes.SEMI)return this.emitNamedEntityData(this.treeIndex,valueLength,this.consumed+this.excess);this.decodeMode!==DecodingMode.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var _a4;let{result,decodeTree}=this,valueLength=(decodeTree[result]&BinTrieFlags.VALUE_LENGTH)>>14;return this.emitNamedEntityData(result,valueLength,this.consumed),(_a4=this.errors)===null||_a4===void 0||_a4.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(result,valueLength,consumed){let{decodeTree}=this;return this.emitCodePoint(valueLength===1?decodeTree[result]&~BinTrieFlags.VALUE_LENGTH:decodeTree[result+1],consumed),valueLength===3&&this.emitCodePoint(decodeTree[result+2],consumed),consumed}end(){var _a4;switch(this.state){case EntityDecoderState.NamedEntity:return this.result!==0&&(this.decodeMode!==DecodingMode.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case EntityDecoderState.NumericDecimal:return this.emitNumericEntity(0,2);case EntityDecoderState.NumericHex:return this.emitNumericEntity(0,3);case EntityDecoderState.NumericStart:return(_a4=this.errors)===null||_a4===void 0||_a4.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case EntityDecoderState.EntityStart:return 0}}};__name(getDecoder,"getDecoder");__name(determineBranch,"determineBranch");htmlDecoder=getDecoder(decode_data_html_default),xmlDecoder=getDecoder(decode_data_xml_default)}});function restoreDiff(arr){for(let i=1;i<arr.length;i++)arr[i][0]+=arr[i-1][0]+1;return arr}var encode_html_default,init_encode_html=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/encode-html.js"(){__name(restoreDiff,"restoreDiff");encode_html_default=new Map(restoreDiff([[9,"	"],[0,"
"],[22,"!"],[0,"""],[0,"#"],[0,"$"],[0,"%"],[0,"&"],[0,"'"],[0,"("],[0,")"],[0,"*"],[0,"+"],[0,","],[1,"."],[0,"/"],[10,":"],[0,";"],[0,{v:"<",n:8402,o:"<⃒"}],[0,{v:"=",n:8421,o:"=⃥"}],[0,{v:">",n:8402,o:">⃒"}],[0,"?"],[0,"@"],[26,"["],[0,"\"],[0,"]"],[0,"^"],[0,"_"],[0,"`"],[5,{n:106,o:"fj"}],[20,"{"],[0,"|"],[0,"}"],[34," "],[0,"¡"],[0,"¢"],[0,"£"],[0,"¤"],[0,"¥"],[0,"¦"],[0,"§"],[0,"¨"],[0,"©"],[0,"ª"],[0,"«"],[0,"¬"],[0,"­"],[0,"®"],[0,"¯"],[0,"°"],[0,"±"],[0,"²"],[0,"³"],[0,"´"],[0,"µ"],[0,"¶"],[0,"·"],[0,"¸"],[0,"¹"],[0,"º"],[0,"»"],[0,"¼"],[0,"½"],[0,"¾"],[0,"¿"],[0,"À"],[0,"Á"],[0,"Â"],[0,"Ã"],[0,"Ä"],[0,"Å"],[0,"Æ"],[0,"Ç"],[0,"È"],[0,"É"],[0,"Ê"],[0,"Ë"],[0,"Ì"],[0,"Í"],[0,"Î"],[0,"Ï"],[0,"Ð"],[0,"Ñ"],[0,"Ò"],[0,"Ó"],[0,"Ô"],[0,"Õ"],[0,"Ö"],[0,"×"],[0,"Ø"],[0,"Ù"],[0,"Ú"],[0,"Û"],[0,"Ü"],[0,"Ý"],[0,"Þ"],[0,"ß"],[0,"à"],[0,"á"],[0,"â"],[0,"ã"],[0,"ä"],[0,"å"],[0,"æ"],[0,"ç"],[0,"è"],[0,"é"],[0,"ê"],[0,"ë"],[0,"ì"],[0,"í"],[0,"î"],[0,"ï"],[0,"ð"],[0,"ñ"],[0,"ò"],[0,"ó"],[0,"ô"],[0,"õ"],[0,"ö"],[0,"÷"],[0,"ø"],[0,"ù"],[0,"ú"],[0,"û"],[0,"ü"],[0,"ý"],[0,"þ"],[0,"ÿ"],[0,"Ā"],[0,"ā"],[0,"Ă"],[0,"ă"],[0,"Ą"],[0,"ą"],[0,"Ć"],[0,"ć"],[0,"Ĉ"],[0,"ĉ"],[0,"Ċ"],[0,"ċ"],[0,"Č"],[0,"č"],[0,"Ď"],[0,"ď"],[0,"Đ"],[0,"đ"],[0,"Ē"],[0,"ē"],[2,"Ė"],[0,"ė"],[0,"Ę"],[0,"ę"],[0,"Ě"],[0,"ě"],[0,"Ĝ"],[0,"ĝ"],[0,"Ğ"],[0,"ğ"],[0,"Ġ"],[0,"ġ"],[0,"Ģ"],[1,"Ĥ"],[0,"ĥ"],[0,"Ħ"],[0,"ħ"],[0,"Ĩ"],[0,"ĩ"],[0,"Ī"],[0,"ī"],[2,"Į"],[0,"į"],[0,"İ"],[0,"ı"],[0,"IJ"],[0,"ij"],[0,"Ĵ"],[0,"ĵ"],[0,"Ķ"],[0,"ķ"],[0,"ĸ"],[0,"Ĺ"],[0,"ĺ"],[0,"Ļ"],[0,"ļ"],[0,"Ľ"],[0,"ľ"],[0,"Ŀ"],[0,"ŀ"],[0,"Ł"],[0,"ł"],[0,"Ń"],[0,"ń"],[0,"Ņ"],[0,"ņ"],[0,"Ň"],[0,"ň"],[0,"ʼn"],[0,"Ŋ"],[0,"ŋ"],[0,"Ō"],[0,"ō"],[2,"Ő"],[0,"ő"],[0,"Œ"],[0,"œ"],[0,"Ŕ"],[0,"ŕ"],[0,"Ŗ"],[0,"ŗ"],[0,"Ř"],[0,"ř"],[0,"Ś"],[0,"ś"],[0,"Ŝ"],[0,"ŝ"],[0,"Ş"],[0,"ş"],[0,"Š"],[0,"š"],[0,"Ţ"],[0,"ţ"],[0,"Ť"],[0,"ť"],[0,"Ŧ"],[0,"ŧ"],[0,"Ũ"],[0,"ũ"],[0,"Ū"],[0,"ū"],[0,"Ŭ"],[0,"ŭ"],[0,"Ů"],[0,"ů"],[0,"Ű"],[0,"ű"],[0,"Ų"],[0,"ų"],[0,"Ŵ"],[0,"ŵ"],[0,"Ŷ"],[0,"ŷ"],[0,"Ÿ"],[0,"Ź"],[0,"ź"],[0,"Ż"],[0,"ż"],[0,"Ž"],[0,"ž"],[19,"ƒ"],[34,"Ƶ"],[63,"ǵ"],[65,"ȷ"],[142,"ˆ"],[0,"ˇ"],[16,"˘"],[0,"˙"],[0,"˚"],[0,"˛"],[0,"˜"],[0,"˝"],[51,"̑"],[127,"Α"],[0,"Β"],[0,"Γ"],[0,"Δ"],[0,"Ε"],[0,"Ζ"],[0,"Η"],[0,"Θ"],[0,"Ι"],[0,"Κ"],[0,"Λ"],[0,"Μ"],[0,"Ν"],[0,"Ξ"],[0,"Ο"],[0,"Π"],[0,"Ρ"],[1,"Σ"],[0,"Τ"],[0,"Υ"],[0,"Φ"],[0,"Χ"],[0,"Ψ"],[0,"Ω"],[7,"α"],[0,"β"],[0,"γ"],[0,"δ"],[0,"ε"],[0,"ζ"],[0,"η"],[0,"θ"],[0,"ι"],[0,"κ"],[0,"λ"],[0,"μ"],[0,"ν"],[0,"ξ"],[0,"ο"],[0,"π"],[0,"ρ"],[0,"ς"],[0,"σ"],[0,"τ"],[0,"υ"],[0,"φ"],[0,"χ"],[0,"ψ"],[0,"ω"],[7,"ϑ"],[0,"ϒ"],[2,"ϕ"],[0,"ϖ"],[5,"Ϝ"],[0,"ϝ"],[18,"ϰ"],[0,"ϱ"],[3,"ϵ"],[0,"϶"],[10,"Ё"],[0,"Ђ"],[0,"Ѓ"],[0,"Є"],[0,"Ѕ"],[0,"І"],[0,"Ї"],[0,"Ј"],[0,"Љ"],[0,"Њ"],[0,"Ћ"],[0,"Ќ"],[1,"Ў"],[0,"Џ"],[0,"А"],[0,"Б"],[0,"В"],[0,"Г"],[0,"Д"],[0,"Е"],[0,"Ж"],[0,"З"],[0,"И"],[0,"Й"],[0,"К"],[0,"Л"],[0,"М"],[0,"Н"],[0,"О"],[0,"П"],[0,"Р"],[0,"С"],[0,"Т"],[0,"У"],[0,"Ф"],[0,"Х"],[0,"Ц"],[0,"Ч"],[0,"Ш"],[0,"Щ"],[0,"Ъ"],[0,"Ы"],[0,"Ь"],[0,"Э"],[0,"Ю"],[0,"Я"],[0,"а"],[0,"б"],[0,"в"],[0,"г"],[0,"д"],[0,"е"],[0,"ж"],[0,"з"],[0,"и"],[0,"й"],[0,"к"],[0,"л"],[0,"м"],[0,"н"],[0,"о"],[0,"п"],[0,"р"],[0,"с"],[0,"т"],[0,"у"],[0,"ф"],[0,"х"],[0,"ц"],[0,"ч"],[0,"ш"],[0,"щ"],[0,"ъ"],[0,"ы"],[0,"ь"],[0,"э"],[0,"ю"],[0,"я"],[1,"ё"],[0,"ђ"],[0,"ѓ"],[0,"є"],[0,"ѕ"],[0,"і"],[0,"ї"],[0,"ј"],[0,"љ"],[0,"њ"],[0,"ћ"],[0,"ќ"],[1,"ў"],[0,"џ"],[7074," "],[0," "],[0," "],[0," "],[1," "],[0," "],[0," "],[0," "],[0,"​"],[0,"‌"],[0,"‍"],[0,"‎"],[0,"‏"],[0,"‐"],[2,"–"],[0,"—"],[0,"―"],[0,"‖"],[1,"‘"],[0,"’"],[0,"‚"],[1,"“"],[0,"”"],[0,"„"],[1,"†"],[0,"‡"],[0,"•"],[2,"‥"],[0,"…"],[9,"‰"],[0,"‱"],[0,"′"],[0,"″"],[0,"‴"],[0,"‵"],[3,"‹"],[0,"›"],[3,"‾"],[2,"⁁"],[1,"⁃"],[0,"⁄"],[10,"⁏"],[7,"⁗"],[7,{v:" ",n:8202,o:"  "}],[0,"⁠"],[0,"⁡"],[0,"⁢"],[0,"⁣"],[72,"€"],[46,"⃛"],[0,"⃜"],[37,"ℂ"],[2,"℅"],[4,"ℊ"],[0,"ℋ"],[0,"ℌ"],[0,"ℍ"],[0,"ℎ"],[0,"ℏ"],[0,"ℐ"],[0,"ℑ"],[0,"ℒ"],[0,"ℓ"],[1,"ℕ"],[0,"№"],[0,"℗"],[0,"℘"],[0,"ℙ"],[0,"ℚ"],[0,"ℛ"],[0,"ℜ"],[0,"ℝ"],[0,"℞"],[3,"™"],[1,"ℤ"],[2,"℧"],[0,"ℨ"],[0,"℩"],[2,"ℬ"],[0,"ℭ"],[1,"ℯ"],[0,"ℰ"],[0,"ℱ"],[1,"ℳ"],[0,"ℴ"],[0,"ℵ"],[0,"ℶ"],[0,"ℷ"],[0,"ℸ"],[12,"ⅅ"],[0,"ⅆ"],[0,"ⅇ"],[0,"ⅈ"],[10,"⅓"],[0,"⅔"],[0,"⅕"],[0,"⅖"],[0,"⅗"],[0,"⅘"],[0,"⅙"],[0,"⅚"],[0,"⅛"],[0,"⅜"],[0,"⅝"],[0,"⅞"],[49,"←"],[0,"↑"],[0,"→"],[0,"↓"],[0,"↔"],[0,"↕"],[0,"↖"],[0,"↗"],[0,"↘"],[0,"↙"],[0,"↚"],[0,"↛"],[1,{v:"↝",n:824,o:"↝̸"}],[0,"↞"],[0,"↟"],[0,"↠"],[0,"↡"],[0,"↢"],[0,"↣"],[0,"↤"],[0,"↥"],[0,"↦"],[0,"↧"],[1,"↩"],[0,"↪"],[0,"↫"],[0,"↬"],[0,"↭"],[0,"↮"],[1,"↰"],[0,"↱"],[0,"↲"],[0,"↳"],[1,"↵"],[0,"↶"],[0,"↷"],[2,"↺"],[0,"↻"],[0,"↼"],[0,"↽"],[0,"↾"],[0,"↿"],[0,"⇀"],[0,"⇁"],[0,"⇂"],[0,"⇃"],[0,"⇄"],[0,"⇅"],[0,"⇆"],[0,"⇇"],[0,"⇈"],[0,"⇉"],[0,"⇊"],[0,"⇋"],[0,"⇌"],[0,"⇍"],[0,"⇎"],[0,"⇏"],[0,"⇐"],[0,"⇑"],[0,"⇒"],[0,"⇓"],[0,"⇔"],[0,"⇕"],[0,"⇖"],[0,"⇗"],[0,"⇘"],[0,"⇙"],[0,"⇚"],[0,"⇛"],[1,"⇝"],[6,"⇤"],[0,"⇥"],[15,"⇵"],[7,"⇽"],[0,"⇾"],[0,"⇿"],[0,"∀"],[0,"∁"],[0,{v:"∂",n:824,o:"∂̸"}],[0,"∃"],[0,"∄"],[0,"∅"],[1,"∇"],[0,"∈"],[0,"∉"],[1,"∋"],[0,"∌"],[2,"∏"],[0,"∐"],[0,"∑"],[0,"−"],[0,"∓"],[0,"∔"],[1,"∖"],[0,"∗"],[0,"∘"],[1,"√"],[2,"∝"],[0,"∞"],[0,"∟"],[0,{v:"∠",n:8402,o:"∠⃒"}],[0,"∡"],[0,"∢"],[0,"∣"],[0,"∤"],[0,"∥"],[0,"∦"],[0,"∧"],[0,"∨"],[0,{v:"∩",n:65024,o:"∩︀"}],[0,{v:"∪",n:65024,o:"∪︀"}],[0,"∫"],[0,"∬"],[0,"∭"],[0,"∮"],[0,"∯"],[0,"∰"],[0,"∱"],[0,"∲"],[0,"∳"],[0,"∴"],[0,"∵"],[0,"∶"],[0,"∷"],[0,"∸"],[1,"∺"],[0,"∻"],[0,{v:"∼",n:8402,o:"∼⃒"}],[0,{v:"∽",n:817,o:"∽̱"}],[0,{v:"∾",n:819,o:"∾̳"}],[0,"∿"],[0,"≀"],[0,"≁"],[0,{v:"≂",n:824,o:"≂̸"}],[0,"≃"],[0,"≄"],[0,"≅"],[0,"≆"],[0,"≇"],[0,"≈"],[0,"≉"],[0,"≊"],[0,{v:"≋",n:824,o:"≋̸"}],[0,"≌"],[0,{v:"≍",n:8402,o:"≍⃒"}],[0,{v:"≎",n:824,o:"≎̸"}],[0,{v:"≏",n:824,o:"≏̸"}],[0,{v:"≐",n:824,o:"≐̸"}],[0,"≑"],[0,"≒"],[0,"≓"],[0,"≔"],[0,"≕"],[0,"≖"],[0,"≗"],[1,"≙"],[0,"≚"],[1,"≜"],[2,"≟"],[0,"≠"],[0,{v:"≡",n:8421,o:"≡⃥"}],[0,"≢"],[1,{v:"≤",n:8402,o:"≤⃒"}],[0,{v:"≥",n:8402,o:"≥⃒"}],[0,{v:"≦",n:824,o:"≦̸"}],[0,{v:"≧",n:824,o:"≧̸"}],[0,{v:"≨",n:65024,o:"≨︀"}],[0,{v:"≩",n:65024,o:"≩︀"}],[0,{v:"≪",n:new Map(restoreDiff([[824,"≪̸"],[7577,"≪⃒"]]))}],[0,{v:"≫",n:new Map(restoreDiff([[824,"≫̸"],[7577,"≫⃒"]]))}],[0,"≬"],[0,"≭"],[0,"≮"],[0,"≯"],[0,"≰"],[0,"≱"],[0,"≲"],[0,"≳"],[0,"≴"],[0,"≵"],[0,"≶"],[0,"≷"],[0,"≸"],[0,"≹"],[0,"≺"],[0,"≻"],[0,"≼"],[0,"≽"],[0,"≾"],[0,{v:"≿",n:824,o:"≿̸"}],[0,"⊀"],[0,"⊁"],[0,{v:"⊂",n:8402,o:"⊂⃒"}],[0,{v:"⊃",n:8402,o:"⊃⃒"}],[0,"⊄"],[0,"⊅"],[0,"⊆"],[0,"⊇"],[0,"⊈"],[0,"⊉"],[0,{v:"⊊",n:65024,o:"⊊︀"}],[0,{v:"⊋",n:65024,o:"⊋︀"}],[1,"⊍"],[0,"⊎"],[0,{v:"⊏",n:824,o:"⊏̸"}],[0,{v:"⊐",n:824,o:"⊐̸"}],[0,"⊑"],[0,"⊒"],[0,{v:"⊓",n:65024,o:"⊓︀"}],[0,{v:"⊔",n:65024,o:"⊔︀"}],[0,"⊕"],[0,"⊖"],[0,"⊗"],[0,"⊘"],[0,"⊙"],[0,"⊚"],[0,"⊛"],[1,"⊝"],[0,"⊞"],[0,"⊟"],[0,"⊠"],[0,"⊡"],[0,"⊢"],[0,"⊣"],[0,"⊤"],[0,"⊥"],[1,"⊧"],[0,"⊨"],[0,"⊩"],[0,"⊪"],[0,"⊫"],[0,"⊬"],[0,"⊭"],[0,"⊮"],[0,"⊯"],[0,"⊰"],[1,"⊲"],[0,"⊳"],[0,{v:"⊴",n:8402,o:"⊴⃒"}],[0,{v:"⊵",n:8402,o:"⊵⃒"}],[0,"⊶"],[0,"⊷"],[0,"⊸"],[0,"⊹"],[0,"⊺"],[0,"⊻"],[1,"⊽"],[0,"⊾"],[0,"⊿"],[0,"⋀"],[0,"⋁"],[0,"⋂"],[0,"⋃"],[0,"⋄"],[0,"⋅"],[0,"⋆"],[0,"⋇"],[0,"⋈"],[0,"⋉"],[0,"⋊"],[0,"⋋"],[0,"⋌"],[0,"⋍"],[0,"⋎"],[0,"⋏"],[0,"⋐"],[0,"⋑"],[0,"⋒"],[0,"⋓"],[0,"⋔"],[0,"⋕"],[0,"⋖"],[0,"⋗"],[0,{v:"⋘",n:824,o:"⋘̸"}],[0,{v:"⋙",n:824,o:"⋙̸"}],[0,{v:"⋚",n:65024,o:"⋚︀"}],[0,{v:"⋛",n:65024,o:"⋛︀"}],[2,"⋞"],[0,"⋟"],[0,"⋠"],[0,"⋡"],[0,"⋢"],[0,"⋣"],[2,"⋦"],[0,"⋧"],[0,"⋨"],[0,"⋩"],[0,"⋪"],[0,"⋫"],[0,"⋬"],[0,"⋭"],[0,"⋮"],[0,"⋯"],[0,"⋰"],[0,"⋱"],[0,"⋲"],[0,"⋳"],[0,"⋴"],[0,{v:"⋵",n:824,o:"⋵̸"}],[0,"⋶"],[0,"⋷"],[1,{v:"⋹",n:824,o:"⋹̸"}],[0,"⋺"],[0,"⋻"],[0,"⋼"],[0,"⋽"],[0,"⋾"],[6,"⌅"],[0,"⌆"],[1,"⌈"],[0,"⌉"],[0,"⌊"],[0,"⌋"],[0,"⌌"],[0,"⌍"],[0,"⌎"],[0,"⌏"],[0,"⌐"],[1,"⌒"],[0,"⌓"],[1,"⌕"],[0,"⌖"],[5,"⌜"],[0,"⌝"],[0,"⌞"],[0,"⌟"],[2,"⌢"],[0,"⌣"],[9,"⌭"],[0,"⌮"],[7,"⌶"],[6,"⌽"],[1,"⌿"],[60,"⍼"],[51,"⎰"],[0,"⎱"],[2,"⎴"],[0,"⎵"],[0,"⎶"],[37,"⏜"],[0,"⏝"],[0,"⏞"],[0,"⏟"],[2,"⏢"],[4,"⏧"],[59,"␣"],[164,"Ⓢ"],[55,"─"],[1,"│"],[9,"┌"],[3,"┐"],[3,"└"],[3,"┘"],[3,"├"],[7,"┤"],[7,"┬"],[7,"┴"],[7,"┼"],[19,"═"],[0,"║"],[0,"╒"],[0,"╓"],[0,"╔"],[0,"╕"],[0,"╖"],[0,"╗"],[0,"╘"],[0,"╙"],[0,"╚"],[0,"╛"],[0,"╜"],[0,"╝"],[0,"╞"],[0,"╟"],[0,"╠"],[0,"╡"],[0,"╢"],[0,"╣"],[0,"╤"],[0,"╥"],[0,"╦"],[0,"╧"],[0,"╨"],[0,"╩"],[0,"╪"],[0,"╫"],[0,"╬"],[19,"▀"],[3,"▄"],[3,"█"],[8,"░"],[0,"▒"],[0,"▓"],[13,"□"],[8,"▪"],[0,"▫"],[1,"▭"],[0,"▮"],[2,"▱"],[1,"△"],[0,"▴"],[0,"▵"],[2,"▸"],[0,"▹"],[3,"▽"],[0,"▾"],[0,"▿"],[2,"◂"],[0,"◃"],[6,"◊"],[0,"○"],[32,"◬"],[2,"◯"],[8,"◸"],[0,"◹"],[0,"◺"],[0,"◻"],[0,"◼"],[8,"★"],[0,"☆"],[7,"☎"],[49,"♀"],[1,"♂"],[29,"♠"],[2,"♣"],[1,"♥"],[0,"♦"],[3,"♪"],[2,"♭"],[0,"♮"],[0,"♯"],[163,"✓"],[3,"✗"],[8,"✠"],[21,"✶"],[33,"❘"],[25,"❲"],[0,"❳"],[84,"⟈"],[0,"⟉"],[28,"⟦"],[0,"⟧"],[0,"⟨"],[0,"⟩"],[0,"⟪"],[0,"⟫"],[0,"⟬"],[0,"⟭"],[7,"⟵"],[0,"⟶"],[0,"⟷"],[0,"⟸"],[0,"⟹"],[0,"⟺"],[1,"⟼"],[2,"⟿"],[258,"⤂"],[0,"⤃"],[0,"⤄"],[0,"⤅"],[6,"⤌"],[0,"⤍"],[0,"⤎"],[0,"⤏"],[0,"⤐"],[0,"⤑"],[0,"⤒"],[0,"⤓"],[2,"⤖"],[2,"⤙"],[0,"⤚"],[0,"⤛"],[0,"⤜"],[0,"⤝"],[0,"⤞"],[0,"⤟"],[0,"⤠"],[2,"⤣"],[0,"⤤"],[0,"⤥"],[0,"⤦"],[0,"⤧"],[0,"⤨"],[0,"⤩"],[0,"⤪"],[8,{v:"⤳",n:824,o:"⤳̸"}],[1,"⤵"],[0,"⤶"],[0,"⤷"],[0,"⤸"],[0,"⤹"],[2,"⤼"],[0,"⤽"],[7,"⥅"],[2,"⥈"],[0,"⥉"],[0,"⥊"],[0,"⥋"],[2,"⥎"],[0,"⥏"],[0,"⥐"],[0,"⥑"],[0,"⥒"],[0,"⥓"],[0,"⥔"],[0,"⥕"],[0,"⥖"],[0,"⥗"],[0,"⥘"],[0,"⥙"],[0,"⥚"],[0,"⥛"],[0,"⥜"],[0,"⥝"],[0,"⥞"],[0,"⥟"],[0,"⥠"],[0,"⥡"],[0,"⥢"],[0,"⥣"],[0,"⥤"],[0,"⥥"],[0,"⥦"],[0,"⥧"],[0,"⥨"],[0,"⥩"],[0,"⥪"],[0,"⥫"],[0,"⥬"],[0,"⥭"],[0,"⥮"],[0,"⥯"],[0,"⥰"],[0,"⥱"],[0,"⥲"],[0,"⥳"],[0,"⥴"],[0,"⥵"],[0,"⥶"],[1,"⥸"],[0,"⥹"],[1,"⥻"],[0,"⥼"],[0,"⥽"],[0,"⥾"],[0,"⥿"],[5,"⦅"],[0,"⦆"],[4,"⦋"],[0,"⦌"],[0,"⦍"],[0,"⦎"],[0,"⦏"],[0,"⦐"],[0,"⦑"],[0,"⦒"],[0,"⦓"],[0,"⦔"],[0,"⦕"],[0,"⦖"],[3,"⦚"],[1,"⦜"],[0,"⦝"],[6,"⦤"],[0,"⦥"],[0,"⦦"],[0,"⦧"],[0,"⦨"],[0,"⦩"],[0,"⦪"],[0,"⦫"],[0,"⦬"],[0,"⦭"],[0,"⦮"],[0,"⦯"],[0,"⦰"],[0,"⦱"],[0,"⦲"],[0,"⦳"],[0,"⦴"],[0,"⦵"],[0,"⦶"],[0,"⦷"],[1,"⦹"],[1,"⦻"],[0,"⦼"],[1,"⦾"],[0,"⦿"],[0,"⧀"],[0,"⧁"],[0,"⧂"],[0,"⧃"],[0,"⧄"],[0,"⧅"],[3,"⧉"],[3,"⧍"],[0,"⧎"],[0,{v:"⧏",n:824,o:"⧏̸"}],[0,{v:"⧐",n:824,o:"⧐̸"}],[11,"⧜"],[0,"⧝"],[0,"⧞"],[4,"⧣"],[0,"⧤"],[0,"⧥"],[5,"⧫"],[8,"⧴"],[1,"⧶"],[9,"⨀"],[0,"⨁"],[0,"⨂"],[1,"⨄"],[1,"⨆"],[5,"⨌"],[0,"⨍"],[2,"⨐"],[0,"⨑"],[0,"⨒"],[0,"⨓"],[0,"⨔"],[0,"⨕"],[0,"⨖"],[0,"⨗"],[10,"⨢"],[0,"⨣"],[0,"⨤"],[0,"⨥"],[0,"⨦"],[0,"⨧"],[1,"⨩"],[0,"⨪"],[2,"⨭"],[0,"⨮"],[0,"⨯"],[0,"⨰"],[0,"⨱"],[1,"⨳"],[0,"⨴"],[0,"⨵"],[0,"⨶"],[0,"⨷"],[0,"⨸"],[0,"⨹"],[0,"⨺"],[0,"⨻"],[0,"⨼"],[2,"⨿"],[0,"⩀"],[1,"⩂"],[0,"⩃"],[0,"⩄"],[0,"⩅"],[0,"⩆"],[0,"⩇"],[0,"⩈"],[0,"⩉"],[0,"⩊"],[0,"⩋"],[0,"⩌"],[0,"⩍"],[2,"⩐"],[2,"⩓"],[0,"⩔"],[0,"⩕"],[0,"⩖"],[0,"⩗"],[0,"⩘"],[1,"⩚"],[0,"⩛"],[0,"⩜"],[0,"⩝"],[1,"⩟"],[6,"⩦"],[3,"⩪"],[2,{v:"⩭",n:824,o:"⩭̸"}],[0,"⩮"],[0,"⩯"],[0,{v:"⩰",n:824,o:"⩰̸"}],[0,"⩱"],[0,"⩲"],[0,"⩳"],[0,"⩴"],[0,"⩵"],[1,"⩷"],[0,"⩸"],[0,"⩹"],[0,"⩺"],[0,"⩻"],[0,"⩼"],[0,{v:"⩽",n:824,o:"⩽̸"}],[0,{v:"⩾",n:824,o:"⩾̸"}],[0,"⩿"],[0,"⪀"],[0,"⪁"],[0,"⪂"],[0,"⪃"],[0,"⪄"],[0,"⪅"],[0,"⪆"],[0,"⪇"],[0,"⪈"],[0,"⪉"],[0,"⪊"],[0,"⪋"],[0,"⪌"],[0,"⪍"],[0,"⪎"],[0,"⪏"],[0,"⪐"],[0,"⪑"],[0,"⪒"],[0,"⪓"],[0,"⪔"],[0,"⪕"],[0,"⪖"],[0,"⪗"],[0,"⪘"],[0,"⪙"],[0,"⪚"],[2,"⪝"],[0,"⪞"],[0,"⪟"],[0,"⪠"],[0,{v:"⪡",n:824,o:"⪡̸"}],[0,{v:"⪢",n:824,o:"⪢̸"}],[1,"⪤"],[0,"⪥"],[0,"⪦"],[0,"⪧"],[0,"⪨"],[0,"⪩"],[0,"⪪"],[0,"⪫"],[0,{v:"⪬",n:65024,o:"⪬︀"}],[0,{v:"⪭",n:65024,o:"⪭︀"}],[0,"⪮"],[0,{v:"⪯",n:824,o:"⪯̸"}],[0,{v:"⪰",n:824,o:"⪰̸"}],[2,"⪳"],[0,"⪴"],[0,"⪵"],[0,"⪶"],[0,"⪷"],[0,"⪸"],[0,"⪹"],[0,"⪺"],[0,"⪻"],[0,"⪼"],[0,"⪽"],[0,"⪾"],[0,"⪿"],[0,"⫀"],[0,"⫁"],[0,"⫂"],[0,"⫃"],[0,"⫄"],[0,{v:"⫅",n:824,o:"⫅̸"}],[0,{v:"⫆",n:824,o:"⫆̸"}],[0,"⫇"],[0,"⫈"],[2,{v:"⫋",n:65024,o:"⫋︀"}],[0,{v:"⫌",n:65024,o:"⫌︀"}],[2,"⫏"],[0,"⫐"],[0,"⫑"],[0,"⫒"],[0,"⫓"],[0,"⫔"],[0,"⫕"],[0,"⫖"],[0,"⫗"],[0,"⫘"],[0,"⫙"],[0,"⫚"],[0,"⫛"],[8,"⫤"],[1,"⫦"],[0,"⫧"],[0,"⫨"],[0,"⫩"],[1,"⫫"],[0,"⫬"],[0,"⫭"],[0,"⫮"],[0,"⫯"],[0,"⫰"],[0,"⫱"],[0,"⫲"],[0,"⫳"],[9,{v:"⫽",n:8421,o:"⫽⃥"}],[44343,{n:new Map(restoreDiff([[56476,"𝒜"],[1,"𝒞"],[0,"𝒟"],[2,"𝒢"],[2,"𝒥"],[0,"𝒦"],[2,"𝒩"],[0,"𝒪"],[0,"𝒫"],[0,"𝒬"],[1,"𝒮"],[0,"𝒯"],[0,"𝒰"],[0,"𝒱"],[0,"𝒲"],[0,"𝒳"],[0,"𝒴"],[0,"𝒵"],[0,"𝒶"],[0,"𝒷"],[0,"𝒸"],[0,"𝒹"],[1,"𝒻"],[1,"𝒽"],[0,"𝒾"],[0,"𝒿"],[0,"𝓀"],[0,"𝓁"],[0,"𝓂"],[0,"𝓃"],[1,"𝓅"],[0,"𝓆"],[0,"𝓇"],[0,"𝓈"],[0,"𝓉"],[0,"𝓊"],[0,"𝓋"],[0,"𝓌"],[0,"𝓍"],[0,"𝓎"],[0,"𝓏"],[52,"𝔄"],[0,"𝔅"],[1,"𝔇"],[0,"𝔈"],[0,"𝔉"],[0,"𝔊"],[2,"𝔍"],[0,"𝔎"],[0,"𝔏"],[0,"𝔐"],[0,"𝔑"],[0,"𝔒"],[0,"𝔓"],[0,"𝔔"],[1,"𝔖"],[0,"𝔗"],[0,"𝔘"],[0,"𝔙"],[0,"𝔚"],[0,"𝔛"],[0,"𝔜"],[1,"𝔞"],[0,"𝔟"],[0,"𝔠"],[0,"𝔡"],[0,"𝔢"],[0,"𝔣"],[0,"𝔤"],[0,"𝔥"],[0,"𝔦"],[0,"𝔧"],[0,"𝔨"],[0,"𝔩"],[0,"𝔪"],[0,"𝔫"],[0,"𝔬"],[0,"𝔭"],[0,"𝔮"],[0,"𝔯"],[0,"𝔰"],[0,"𝔱"],[0,"𝔲"],[0,"𝔳"],[0,"𝔴"],[0,"𝔵"],[0,"𝔶"],[0,"𝔷"],[0,"𝔸"],[0,"𝔹"],[1,"𝔻"],[0,"𝔼"],[0,"𝔽"],[0,"𝔾"],[1,"𝕀"],[0,"𝕁"],[0,"𝕂"],[0,"𝕃"],[0,"𝕄"],[1,"𝕆"],[3,"𝕊"],[0,"𝕋"],[0,"𝕌"],[0,"𝕍"],[0,"𝕎"],[0,"𝕏"],[0,"𝕐"],[1,"𝕒"],[0,"𝕓"],[0,"𝕔"],[0,"𝕕"],[0,"𝕖"],[0,"𝕗"],[0,"𝕘"],[0,"𝕙"],[0,"𝕚"],[0,"𝕛"],[0,"𝕜"],[0,"𝕝"],[0,"𝕞"],[0,"𝕟"],[0,"𝕠"],[0,"𝕡"],[0,"𝕢"],[0,"𝕣"],[0,"𝕤"],[0,"𝕥"],[0,"𝕦"],[0,"𝕧"],[0,"𝕨"],[0,"𝕩"],[0,"𝕪"],[0,"𝕫"]]))}],[8906,"ff"],[0,"fi"],[0,"fl"],[0,"ffi"],[0,"ffl"]]))}});function encodeXML(str){let ret="",lastIdx=0,match;for(;(match=xmlReplacer.exec(str))!==null;){let i=match.index,char=str.charCodeAt(i),next2=xmlCodeMap.get(char);next2!==void 0?(ret+=str.substring(lastIdx,i)+next2,lastIdx=i+1):(ret+=`${str.substring(lastIdx,i)}&#x${getCodePoint(str,i).toString(16)};`,lastIdx=xmlReplacer.lastIndex+=+((char&64512)===55296))}return ret+str.substr(lastIdx)}function getEscaper(regex,map2){return __name(function(data2){let match,lastIdx=0,result="";for(;match=regex.exec(data2);)lastIdx!==match.index&&(result+=data2.substring(lastIdx,match.index)),result+=map2.get(match[0].charCodeAt(0)),lastIdx=match.index+1;return result+data2.substring(lastIdx)},"escape")}var xmlReplacer,xmlCodeMap,getCodePoint,escapeUTF8,escapeAttribute,escapeText,init_escape=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/escape.js"(){xmlReplacer=/["&'<>$\x80-\uFFFF]/g,xmlCodeMap=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),getCodePoint=String.prototype.codePointAt!=null?(str,index2)=>str.codePointAt(index2):(c2,index2)=>(c2.charCodeAt(index2)&64512)===55296?(c2.charCodeAt(index2)-55296)*1024+c2.charCodeAt(index2+1)-56320+65536:c2.charCodeAt(index2);__name(encodeXML,"encodeXML");__name(getEscaper,"getEscaper");escapeUTF8=getEscaper(/[&<>'"]/g,xmlCodeMap),escapeAttribute=getEscaper(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),escapeText=getEscaper(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))}});var init_encode=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/encode.js"(){init_encode_html();init_escape()}});var EntityLevel,EncodingMode,init_esm4=__esm({"../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/index.js"(){init_decode();init_encode();init_escape();init_escape();init_encode();init_decode();(function(EntityLevel2){EntityLevel2[EntityLevel2.XML=0]="XML",EntityLevel2[EntityLevel2.HTML=1]="HTML"})(EntityLevel||(EntityLevel={}));(function(EncodingMode2){EncodingMode2[EncodingMode2.UTF8=0]="UTF8",EncodingMode2[EncodingMode2.ASCII=1]="ASCII",EncodingMode2[EncodingMode2.Extensive=2]="Extensive",EncodingMode2[EncodingMode2.Attribute=3]="Attribute",EncodingMode2[EncodingMode2.Text=4]="Text"})(EncodingMode||(EncodingMode={}))}});var elementNames,attributeNames,init_foreignNames=__esm({"../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js"(){elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(val2=>[val2.toLowerCase(),val2])),attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(val2=>[val2.toLowerCase(),val2]))}});function replaceQuotes(value){return value.replace(/"/g,""")}function formatAttributes(attributes2,opts){var _a4;if(!attributes2)return;let encode=((_a4=opts.encodeEntities)!==null&&_a4!==void 0?_a4:opts.decodeEntities)===!1?replaceQuotes:opts.xmlMode||opts.encodeEntities!=="utf8"?encodeXML:escapeAttribute;return Object.keys(attributes2).map(key=>{var _a5,_b;let value=(_a5=attributes2[key])!==null&&_a5!==void 0?_a5:"";return opts.xmlMode==="foreign"&&(key=(_b=attributeNames.get(key))!==null&&_b!==void 0?_b:key),!opts.emptyAttrs&&!opts.xmlMode&&value===""?key:`${key}="${encode(value)}"`}).join(" ")}function render2(node,options={}){let nodes="length"in node?node:[node],output="";for(let i=0;i<nodes.length;i++)output+=renderNode(nodes[i],options);return output}function renderNode(node,options){switch(node.type){case Root:return render2(node.children,options);case Doctype:case Directive:return renderDirective(node);case Comment:return renderComment(node);case CDATA:return renderCdata(node);case Script:case Style:case Tag:return renderTag(node,options);case Text:return renderText(node,options)}}function renderTag(elem,opts){var _a4;opts.xmlMode==="foreign"&&(elem.name=(_a4=elementNames.get(elem.name))!==null&&_a4!==void 0?_a4:elem.name,elem.parent&&foreignModeIntegrationPoints.has(elem.parent.name)&&(opts={...opts,xmlMode:!1})),!opts.xmlMode&&foreignElements.has(elem.name)&&(opts={...opts,xmlMode:"foreign"});let tag=`<${elem.name}`,attribs=formatAttributes(elem.attribs,opts);return attribs&&(tag+=` ${attribs}`),elem.children.length===0&&(opts.xmlMode?opts.selfClosingTags!==!1:opts.selfClosingTags&&singleTag.has(elem.name))?(opts.xmlMode||(tag+=" "),tag+="/>"):(tag+=">",elem.children.length>0&&(tag+=render2(elem.children,opts)),(opts.xmlMode||!singleTag.has(elem.name))&&(tag+=`</${elem.name}>`)),tag}function renderDirective(elem){return`<${elem.data}>`}function renderText(elem,opts){var _a4;let data2=elem.data||"";return((_a4=opts.encodeEntities)!==null&&_a4!==void 0?_a4:opts.decodeEntities)!==!1&&!(!opts.xmlMode&&elem.parent&&unencodedElements.has(elem.parent.name))&&(data2=opts.xmlMode||opts.encodeEntities!=="utf8"?encodeXML(data2):escapeText(data2)),data2}function renderCdata(elem){return`<![CDATA[${elem.children[0].data}]]>`}function renderComment(elem){return`<!--${elem.data}-->`}var unencodedElements,singleTag,esm_default,foreignModeIntegrationPoints,foreignElements,init_esm5=__esm({"../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.js"(){init_esm2();init_esm4();init_foreignNames();unencodedElements=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);__name(replaceQuotes,"replaceQuotes");__name(formatAttributes,"formatAttributes");singleTag=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);__name(render2,"render");esm_default=render2;__name(renderNode,"renderNode");foreignModeIntegrationPoints=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),foreignElements=new Set(["svg","math"]);__name(renderTag,"renderTag");__name(renderDirective,"renderDirective");__name(renderText,"renderText");__name(renderCdata,"renderCdata");__name(renderComment,"renderComment")}});function getOuterHTML(node,options){return esm_default(node,options)}function getInnerHTML(node,options){return hasChildren(node)?node.children.map(node2=>getOuterHTML(node2,options)).join(""):""}function getText(node){return Array.isArray(node)?node.map(getText).join(""):isTag2(node)?node.name==="br"?`
|
|
671
|
-
`:getText(node.children):isCDATA(node)?getText(node.children):isText(node)?node.data:""}function textContent(node){return Array.isArray(node)?node.map(textContent).join(""):hasChildren(node)&&!isComment(node)?textContent(node.children):isText(node)?node.data:""}function innerText(node){return Array.isArray(node)?node.map(innerText).join(""):hasChildren(node)&&(node.type===ElementType.Tag||isCDATA(node))?innerText(node.children):isText(node)?node.data:""}var init_stringify2=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/stringify.js"(){init_esm3();init_esm5();init_esm2();__name(getOuterHTML,"getOuterHTML");__name(getInnerHTML,"getInnerHTML");__name(getText,"getText");__name(textContent,"textContent");__name(innerText,"innerText")}});function getChildren(elem){return hasChildren(elem)?elem.children:[]}function getParent(elem){return elem.parent||null}function getSiblings(elem){let parent2=getParent(elem);if(parent2!=null)return getChildren(parent2);let siblings2=[elem],{prev:prev2,next:next2}=elem;for(;prev2!=null;)siblings2.unshift(prev2),{prev:prev2}=prev2;for(;next2!=null;)siblings2.push(next2),{next:next2}=next2;return siblings2}function getAttributeValue(elem,name){var _a4;return(_a4=elem.attribs)===null||_a4===void 0?void 0:_a4[name]}function hasAttrib(elem,name){return elem.attribs!=null&&Object.prototype.hasOwnProperty.call(elem.attribs,name)&&elem.attribs[name]!=null}function getName(elem){return elem.name}function nextElementSibling(elem){let{next:next2}=elem;for(;next2!==null&&!isTag2(next2);)({next:next2}=next2);return next2}function prevElementSibling(elem){let{prev:prev2}=elem;for(;prev2!==null&&!isTag2(prev2);)({prev:prev2}=prev2);return prev2}var init_traversal=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/traversal.js"(){init_esm3();__name(getChildren,"getChildren");__name(getParent,"getParent");__name(getSiblings,"getSiblings");__name(getAttributeValue,"getAttributeValue");__name(hasAttrib,"hasAttrib");__name(getName,"getName");__name(nextElementSibling,"nextElementSibling");__name(prevElementSibling,"prevElementSibling")}});function removeElement(elem){if(elem.prev&&(elem.prev.next=elem.next),elem.next&&(elem.next.prev=elem.prev),elem.parent){let childs=elem.parent.children,childsIndex=childs.lastIndexOf(elem);childsIndex>=0&&childs.splice(childsIndex,1)}elem.next=null,elem.prev=null,elem.parent=null}function replaceElement(elem,replacement){let prev2=replacement.prev=elem.prev;prev2&&(prev2.next=replacement);let next2=replacement.next=elem.next;next2&&(next2.prev=replacement);let parent2=replacement.parent=elem.parent;if(parent2){let childs=parent2.children;childs[childs.lastIndexOf(elem)]=replacement,elem.parent=null}}function appendChild(parent2,child){if(removeElement(child),child.next=null,child.parent=parent2,parent2.children.push(child)>1){let sibling=parent2.children[parent2.children.length-2];sibling.next=child,child.prev=sibling}else child.prev=null}function append(elem,next2){removeElement(next2);let{parent:parent2}=elem,currNext=elem.next;if(next2.next=currNext,next2.prev=elem,elem.next=next2,next2.parent=parent2,currNext){if(currNext.prev=next2,parent2){let childs=parent2.children;childs.splice(childs.lastIndexOf(currNext),0,next2)}}else parent2&&parent2.children.push(next2)}function prependChild(parent2,child){if(removeElement(child),child.parent=parent2,child.prev=null,parent2.children.unshift(child)!==1){let sibling=parent2.children[1];sibling.prev=child,child.next=sibling}else child.next=null}function prepend(elem,prev2){removeElement(prev2);let{parent:parent2}=elem;if(parent2){let childs=parent2.children;childs.splice(childs.indexOf(elem),0,prev2)}elem.prev&&(elem.prev.next=prev2),prev2.parent=parent2,prev2.prev=elem.prev,prev2.next=elem,elem.prev=prev2}var init_manipulation=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/manipulation.js"(){__name(removeElement,"removeElement");__name(replaceElement,"replaceElement");__name(appendChild,"appendChild");__name(append,"append");__name(prependChild,"prependChild");__name(prepend,"prepend")}});function filter(test,node,recurse=!0,limit=1/0){return find(test,Array.isArray(node)?node:[node],recurse,limit)}function find(test,nodes,recurse,limit){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(indexStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let elem=nodeStack[0][indexStack[0]++];if(test(elem)&&(result.push(elem),--limit<=0))return result;recurse&&hasChildren(elem)&&elem.children.length>0&&(indexStack.unshift(0),nodeStack.unshift(elem.children))}}function findOneChild(test,nodes){return nodes.find(test)}function findOne(test,nodes,recurse=!0){let searchedNodes=Array.isArray(nodes)?nodes:[nodes];for(let i=0;i<searchedNodes.length;i++){let node=searchedNodes[i];if(isTag2(node)&&test(node))return node;if(recurse&&hasChildren(node)&&node.children.length>0){let found=findOne(test,node.children,!0);if(found)return found}}return null}function existsOne(test,nodes){return(Array.isArray(nodes)?nodes:[nodes]).some(node=>isTag2(node)&&test(node)||hasChildren(node)&&existsOne(test,node.children))}function findAll(test,nodes){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(nodeStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let elem=nodeStack[0][indexStack[0]++];isTag2(elem)&&test(elem)&&result.push(elem),hasChildren(elem)&&elem.children.length>0&&(indexStack.unshift(0),nodeStack.unshift(elem.children))}}var init_querying=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/querying.js"(){init_esm3();__name(filter,"filter");__name(find,"find");__name(findOneChild,"findOneChild");__name(findOne,"findOne");__name(existsOne,"existsOne");__name(findAll,"findAll")}});function getAttribCheck(attrib,value){return typeof value=="function"?elem=>isTag2(elem)&&value(elem.attribs[attrib]):elem=>isTag2(elem)&&elem.attribs[attrib]===value}function combineFuncs(a,b){return elem=>a(elem)||b(elem)}function compileTest(options){let funcs=Object.keys(options).map(key=>{let value=options[key];return Object.prototype.hasOwnProperty.call(Checks,key)?Checks[key](value):getAttribCheck(key,value)});return funcs.length===0?null:funcs.reduce(combineFuncs)}function testElement(options,node){let test=compileTest(options);return test?test(node):!0}function getElements(options,nodes,recurse,limit=1/0){let test=compileTest(options);return test?filter(test,nodes,recurse,limit):[]}function getElementById(id,nodes,recurse=!0){return Array.isArray(nodes)||(nodes=[nodes]),findOne(getAttribCheck("id",id),nodes,recurse)}function getElementsByTagName(tagName,nodes,recurse=!0,limit=1/0){return filter(Checks.tag_name(tagName),nodes,recurse,limit)}function getElementsByClassName(className,nodes,recurse=!0,limit=1/0){return filter(getAttribCheck("class",className),nodes,recurse,limit)}function getElementsByTagType(type,nodes,recurse=!0,limit=1/0){return filter(Checks.tag_type(type),nodes,recurse,limit)}var Checks,init_legacy=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/legacy.js"(){init_esm3();init_querying();Checks={tag_name(name){return typeof name=="function"?elem=>isTag2(elem)&&name(elem.name):name==="*"?isTag2:elem=>isTag2(elem)&&elem.name===name},tag_type(type){return typeof type=="function"?elem=>type(elem.type):elem=>elem.type===type},tag_contains(data2){return typeof data2=="function"?elem=>isText(elem)&&data2(elem.data):elem=>isText(elem)&&elem.data===data2}};__name(getAttribCheck,"getAttribCheck");__name(combineFuncs,"combineFuncs");__name(compileTest,"compileTest");__name(testElement,"testElement");__name(getElements,"getElements");__name(getElementById,"getElementById");__name(getElementsByTagName,"getElementsByTagName");__name(getElementsByClassName,"getElementsByClassName");__name(getElementsByTagType,"getElementsByTagType")}});function removeSubsets(nodes){let idx=nodes.length;for(;--idx>=0;){let node=nodes[idx];if(idx>0&&nodes.lastIndexOf(node,idx-1)>=0){nodes.splice(idx,1);continue}for(let ancestor=node.parent;ancestor;ancestor=ancestor.parent)if(nodes.includes(ancestor)){nodes.splice(idx,1);break}}return nodes}function compareDocumentPosition(nodeA,nodeB){let aParents=[],bParents=[];if(nodeA===nodeB)return 0;let current=hasChildren(nodeA)?nodeA:nodeA.parent;for(;current;)aParents.unshift(current),current=current.parent;for(current=hasChildren(nodeB)?nodeB:nodeB.parent;current;)bParents.unshift(current),current=current.parent;let maxIdx=Math.min(aParents.length,bParents.length),idx=0;for(;idx<maxIdx&&aParents[idx]===bParents[idx];)idx++;if(idx===0)return DocumentPosition.DISCONNECTED;let sharedParent=aParents[idx-1],siblings2=sharedParent.children,aSibling=aParents[idx],bSibling=bParents[idx];return siblings2.indexOf(aSibling)>siblings2.indexOf(bSibling)?sharedParent===nodeB?DocumentPosition.FOLLOWING|DocumentPosition.CONTAINED_BY:DocumentPosition.FOLLOWING:sharedParent===nodeA?DocumentPosition.PRECEDING|DocumentPosition.CONTAINS:DocumentPosition.PRECEDING}function uniqueSort(nodes){return nodes=nodes.filter((node,i,arr)=>!arr.includes(node,i+1)),nodes.sort((a,b)=>{let relative3=compareDocumentPosition(a,b);return relative3&DocumentPosition.PRECEDING?-1:relative3&DocumentPosition.FOLLOWING?1:0}),nodes}var DocumentPosition,init_helpers=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/helpers.js"(){init_esm3();__name(removeSubsets,"removeSubsets");(function(DocumentPosition2){DocumentPosition2[DocumentPosition2.DISCONNECTED=1]="DISCONNECTED",DocumentPosition2[DocumentPosition2.PRECEDING=2]="PRECEDING",DocumentPosition2[DocumentPosition2.FOLLOWING=4]="FOLLOWING",DocumentPosition2[DocumentPosition2.CONTAINS=8]="CONTAINS",DocumentPosition2[DocumentPosition2.CONTAINED_BY=16]="CONTAINED_BY"})(DocumentPosition||(DocumentPosition={}));__name(compareDocumentPosition,"compareDocumentPosition");__name(uniqueSort,"uniqueSort")}});function getFeed(doc){let feedRoot=getOneElement(isValidFeed,doc);return feedRoot?feedRoot.name==="feed"?getAtomFeed(feedRoot):getRssFeed(feedRoot):null}function getAtomFeed(feedRoot){var _a4;let childs=feedRoot.children,feed={type:"atom",items:getElementsByTagName("entry",childs).map(item=>{var _a5;let{children:children2}=item,entry={media:getMediaElements(children2)};addConditionally(entry,"id","id",children2),addConditionally(entry,"title","title",children2);let href2=(_a5=getOneElement("link",children2))===null||_a5===void 0?void 0:_a5.attribs.href;href2&&(entry.link=href2);let description=fetch2("summary",children2)||fetch2("content",children2);description&&(entry.description=description);let pubDate=fetch2("updated",children2);return pubDate&&(entry.pubDate=new Date(pubDate)),entry})};addConditionally(feed,"id","id",childs),addConditionally(feed,"title","title",childs);let href=(_a4=getOneElement("link",childs))===null||_a4===void 0?void 0:_a4.attribs.href;href&&(feed.link=href),addConditionally(feed,"description","subtitle",childs);let updated=fetch2("updated",childs);return updated&&(feed.updated=new Date(updated)),addConditionally(feed,"author","email",childs,!0),feed}function getRssFeed(feedRoot){var _a4,_b;let childs=(_b=(_a4=getOneElement("channel",feedRoot.children))===null||_a4===void 0?void 0:_a4.children)!==null&&_b!==void 0?_b:[],feed={type:feedRoot.name.substr(0,3),id:"",items:getElementsByTagName("item",feedRoot.children).map(item=>{let{children:children2}=item,entry={media:getMediaElements(children2)};addConditionally(entry,"id","guid",children2),addConditionally(entry,"title","title",children2),addConditionally(entry,"link","link",children2),addConditionally(entry,"description","description",children2);let pubDate=fetch2("pubDate",children2)||fetch2("dc:date",children2);return pubDate&&(entry.pubDate=new Date(pubDate)),entry})};addConditionally(feed,"title","title",childs),addConditionally(feed,"link","link",childs),addConditionally(feed,"description","description",childs);let updated=fetch2("lastBuildDate",childs);return updated&&(feed.updated=new Date(updated)),addConditionally(feed,"author","managingEditor",childs,!0),feed}function getMediaElements(where){return getElementsByTagName("media:content",where).map(elem=>{let{attribs}=elem,media={medium:attribs.medium,isDefault:!!attribs.isDefault};for(let attrib of MEDIA_KEYS_STRING)attribs[attrib]&&(media[attrib]=attribs[attrib]);for(let attrib of MEDIA_KEYS_INT)attribs[attrib]&&(media[attrib]=parseInt(attribs[attrib],10));return attribs.expression&&(media.expression=attribs.expression),media})}function getOneElement(tagName,node){return getElementsByTagName(tagName,node,!0,1)[0]}function fetch2(tagName,where,recurse=!1){return textContent(getElementsByTagName(tagName,where,recurse,1)).trim()}function addConditionally(obj,prop2,tagName,where,recurse=!1){let val2=fetch2(tagName,where,recurse);val2&&(obj[prop2]=val2)}function isValidFeed(value){return value==="rss"||value==="feed"||value==="rdf:RDF"}var MEDIA_KEYS_STRING,MEDIA_KEYS_INT,init_feeds=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/feeds.js"(){init_stringify2();init_legacy();__name(getFeed,"getFeed");__name(getAtomFeed,"getAtomFeed");__name(getRssFeed,"getRssFeed");MEDIA_KEYS_STRING=["url","type","lang"],MEDIA_KEYS_INT=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];__name(getMediaElements,"getMediaElements");__name(getOneElement,"getOneElement");__name(fetch2,"fetch");__name(addConditionally,"addConditionally");__name(isValidFeed,"isValidFeed")}});var esm_exports2={};__export(esm_exports2,{DocumentPosition:()=>DocumentPosition,append:()=>append,appendChild:()=>appendChild,compareDocumentPosition:()=>compareDocumentPosition,existsOne:()=>existsOne,filter:()=>filter,find:()=>find,findAll:()=>findAll,findOne:()=>findOne,findOneChild:()=>findOneChild,getAttributeValue:()=>getAttributeValue,getChildren:()=>getChildren,getElementById:()=>getElementById,getElements:()=>getElements,getElementsByClassName:()=>getElementsByClassName,getElementsByTagName:()=>getElementsByTagName,getElementsByTagType:()=>getElementsByTagType,getFeed:()=>getFeed,getInnerHTML:()=>getInnerHTML,getName:()=>getName,getOuterHTML:()=>getOuterHTML,getParent:()=>getParent,getSiblings:()=>getSiblings,getText:()=>getText,hasAttrib:()=>hasAttrib,hasChildren:()=>hasChildren,innerText:()=>innerText,isCDATA:()=>isCDATA,isComment:()=>isComment,isDocument:()=>isDocument,isTag:()=>isTag2,isText:()=>isText,nextElementSibling:()=>nextElementSibling,prepend:()=>prepend,prependChild:()=>prependChild,prevElementSibling:()=>prevElementSibling,removeElement:()=>removeElement,removeSubsets:()=>removeSubsets,replaceElement:()=>replaceElement,testElement:()=>testElement,textContent:()=>textContent,uniqueSort:()=>uniqueSort});var init_esm6=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/index.js"(){init_stringify2();init_traversal();init_manipulation();init_querying();init_legacy();init_helpers();init_feeds();init_esm3()}});var static_exports={};__export(static_exports,{contains:()=>contains,extract:()=>extract,html:()=>html,merge:()=>merge,parseHTML:()=>parseHTML,root:()=>root,text:()=>text,xml:()=>xml});function render3(that,dom,options){return that?that(dom??that._root.children,null,void 0,options).toString():""}function isOptions(dom,options){return!options&&typeof dom=="object"&&dom!=null&&!("length"in dom)&&!("type"in dom)}function html(dom,options){let toRender=isOptions(dom)?(options=dom,void 0):dom,opts={...this===null||this===void 0?void 0:this._options,...flattenOptions(options)};return render3(this,toRender,opts)}function xml(dom){let options={...this._options,xmlMode:!0};return render3(this,dom,options)}function text(elements){let elems=elements??(this?this.root():[]),ret="";for(let i=0;i<elems.length;i++)ret+=textContent(elems[i]);return ret}function parseHTML(data2,context,keepScripts=typeof context=="boolean"?context:!1){if(!data2||typeof data2!="string")return null;typeof context=="boolean"&&(keepScripts=context);let parsed=this.load(data2,this._options,!1);return keepScripts||parsed("script").remove(),[...parsed.root()[0].children]}function root(){return this(this._root)}function contains(container,contained){if(contained===container)return!1;let next2=contained;for(;next2&&next2!==next2.parent;)if(next2=next2.parent,next2===container)return!0;return!1}function extract(map2){return this.root().extract(map2)}function merge(arr1,arr2){if(!isArrayLike(arr1)||!isArrayLike(arr2))return;let newLength=arr1.length,len=+arr2.length;for(let i=0;i<len;i++)arr1[newLength++]=arr2[i];return arr1.length=newLength,arr1}function isArrayLike(item){if(Array.isArray(item))return!0;if(typeof item!="object"||item===null||!("length"in item)||typeof item.length!="number"||item.length<0)return!1;for(let i=0;i<item.length;i++)if(!(i in item))return!1;return!0}var init_static=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/static.js"(){init_esm6();init_options();__name(render3,"render");__name(isOptions,"isOptions");__name(html,"html");__name(xml,"xml");__name(text,"text");__name(parseHTML,"parseHTML");__name(root,"root");__name(contains,"contains");__name(extract,"extract");__name(merge,"merge");__name(isArrayLike,"isArrayLike")}});function isCheerio(maybeCheerio){return maybeCheerio.cheerio!=null}function camelCase2(str){return str.replace(/[._-](\w|$)/g,(_,x)=>x.toUpperCase())}function cssCase(str){return str.replace(/[A-Z]/g,"-$&").toLowerCase()}function domEach(array,fn){let len=array.length;for(let i=0;i<len;i++)fn(array[i],i);return array}function isHtml(str){if(typeof str!="string")return!1;let tagStart=str.indexOf("<");if(tagStart===-1||tagStart>str.length-3)return!1;let tagChar=str.charCodeAt(tagStart+1);return(tagChar>=CharacterCode.LowerA&&tagChar<=CharacterCode.LowerZ||tagChar>=CharacterCode.UpperA&&tagChar<=CharacterCode.UpperZ||tagChar===CharacterCode.Exclamation)&&str.includes(">",tagStart+2)}var CharacterCode,init_utils2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/utils.js"(){__name(isCheerio,"isCheerio");__name(camelCase2,"camelCase");__name(cssCase,"cssCase");__name(domEach,"domEach");(function(CharacterCode2){CharacterCode2[CharacterCode2.LowerA=97]="LowerA",CharacterCode2[CharacterCode2.LowerZ=122]="LowerZ",CharacterCode2[CharacterCode2.UpperA=65]="UpperA",CharacterCode2[CharacterCode2.UpperZ=90]="UpperZ",CharacterCode2[CharacterCode2.Exclamation=33]="Exclamation"})(CharacterCode||(CharacterCode={}));__name(isHtml,"isHtml")}});function replaceCodePoint2(codePoint){var _a4;return codePoint>=55296&&codePoint<=57343||codePoint>1114111?65533:(_a4=decodeMap2.get(codePoint))!==null&&_a4!==void 0?_a4:codePoint}var _a2,decodeMap2,fromCodePoint2,init_decode_codepoint2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js"(){decodeMap2=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),fromCodePoint2=(_a2=String.fromCodePoint)!==null&&_a2!==void 0?_a2:(codePoint=>{let output="";return codePoint>65535&&(codePoint-=65536,output+=String.fromCharCode(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),output+=String.fromCharCode(codePoint),output});__name(replaceCodePoint2,"replaceCodePoint")}});function decodeBase64(input){let binary=typeof atob=="function"?atob(input):typeof Buffer.from=="function"?Buffer.from(input,"base64").toString("binary"):new Buffer(input,"base64").toString("binary"),evenLength=binary.length&-2,out=new Uint16Array(evenLength/2);for(let index2=0,outIndex=0;index2<evenLength;index2+=2){let lo=binary.charCodeAt(index2),hi=binary.charCodeAt(index2+1);out[outIndex++]=lo|hi<<8}return out}var init_decode_shared=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/decode-shared.js"(){__name(decodeBase64,"decodeBase64")}});var htmlDecodeTree,init_decode_data_html2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js"(){init_decode_shared();htmlDecodeTree=decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")}});var xmlDecodeTree,init_decode_data_xml2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.js"(){init_decode_shared();xmlDecodeTree=decodeBase64("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg")}});var BinTrieFlags2,init_bin_trie_flags=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js"(){(function(BinTrieFlags3){BinTrieFlags3[BinTrieFlags3.VALUE_LENGTH=49152]="VALUE_LENGTH",BinTrieFlags3[BinTrieFlags3.FLAG13=8192]="FLAG13",BinTrieFlags3[BinTrieFlags3.BRANCH_LENGTH=8064]="BRANCH_LENGTH",BinTrieFlags3[BinTrieFlags3.JUMP_TABLE=127]="JUMP_TABLE"})(BinTrieFlags2||(BinTrieFlags2={}))}});function isNumber2(code2){return code2>=CharCodes2.ZERO&&code2<=CharCodes2.NINE}function isHexadecimalCharacter2(code2){return code2>=CharCodes2.UPPER_A&&code2<=CharCodes2.UPPER_F||code2>=CharCodes2.LOWER_A&&code2<=CharCodes2.LOWER_F}function isAsciiAlphaNumeric2(code2){return code2>=CharCodes2.UPPER_A&&code2<=CharCodes2.UPPER_Z||code2>=CharCodes2.LOWER_A&&code2<=CharCodes2.LOWER_Z||isNumber2(code2)}function isEntityInAttributeInvalidEnd2(code2){return code2===CharCodes2.EQUALS||isAsciiAlphaNumeric2(code2)}function determineBranch2(decodeTree,current,nodeIndex,char){let branchCount=(current&BinTrieFlags2.BRANCH_LENGTH)>>7,jumpOffset=current&BinTrieFlags2.JUMP_TABLE;if(branchCount===0)return jumpOffset!==0&&char===jumpOffset?nodeIndex:-1;if(jumpOffset){let value=char-jumpOffset;return value<0||value>=branchCount?-1:decodeTree[nodeIndex+value]-1}let packedKeySlots=branchCount+1>>1,lo=0,hi=branchCount-1;for(;lo<=hi;){let mid=lo+hi>>>1,slot=mid>>1,midKey=decodeTree[nodeIndex+slot]>>(mid&1)*8&255;if(midKey<char)lo=mid+1;else if(midKey>char)hi=mid-1;else return decodeTree[nodeIndex+packedKeySlots+mid]}return-1}var CharCodes2,TO_LOWER_BIT2,EntityDecoderState2,DecodingMode2,EntityDecoder2,init_decode2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode.js"(){init_decode_codepoint2();init_decode_data_html2();init_decode_data_xml2();init_bin_trie_flags();init_decode_codepoint2();init_decode_data_html2();init_decode_data_xml2();(function(CharCodes4){CharCodes4[CharCodes4.NUM=35]="NUM",CharCodes4[CharCodes4.SEMI=59]="SEMI",CharCodes4[CharCodes4.EQUALS=61]="EQUALS",CharCodes4[CharCodes4.ZERO=48]="ZERO",CharCodes4[CharCodes4.NINE=57]="NINE",CharCodes4[CharCodes4.LOWER_A=97]="LOWER_A",CharCodes4[CharCodes4.LOWER_F=102]="LOWER_F",CharCodes4[CharCodes4.LOWER_X=120]="LOWER_X",CharCodes4[CharCodes4.LOWER_Z=122]="LOWER_Z",CharCodes4[CharCodes4.UPPER_A=65]="UPPER_A",CharCodes4[CharCodes4.UPPER_F=70]="UPPER_F",CharCodes4[CharCodes4.UPPER_Z=90]="UPPER_Z"})(CharCodes2||(CharCodes2={}));TO_LOWER_BIT2=32;__name(isNumber2,"isNumber");__name(isHexadecimalCharacter2,"isHexadecimalCharacter");__name(isAsciiAlphaNumeric2,"isAsciiAlphaNumeric");__name(isEntityInAttributeInvalidEnd2,"isEntityInAttributeInvalidEnd");(function(EntityDecoderState3){EntityDecoderState3[EntityDecoderState3.EntityStart=0]="EntityStart",EntityDecoderState3[EntityDecoderState3.NumericStart=1]="NumericStart",EntityDecoderState3[EntityDecoderState3.NumericDecimal=2]="NumericDecimal",EntityDecoderState3[EntityDecoderState3.NumericHex=3]="NumericHex",EntityDecoderState3[EntityDecoderState3.NamedEntity=4]="NamedEntity"})(EntityDecoderState2||(EntityDecoderState2={}));(function(DecodingMode3){DecodingMode3[DecodingMode3.Legacy=0]="Legacy",DecodingMode3[DecodingMode3.Strict=1]="Strict",DecodingMode3[DecodingMode3.Attribute=2]="Attribute"})(DecodingMode2||(DecodingMode2={}));EntityDecoder2=class{static{__name(this,"EntityDecoder")}constructor(decodeTree,emitCodePoint,errors){this.decodeTree=decodeTree,this.emitCodePoint=emitCodePoint,this.errors=errors,this.state=EntityDecoderState2.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=DecodingMode2.Strict,this.runConsumed=0}startEntity(decodeMode){this.decodeMode=decodeMode,this.state=EntityDecoderState2.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(input,offset){switch(this.state){case EntityDecoderState2.EntityStart:return input.charCodeAt(offset)===CharCodes2.NUM?(this.state=EntityDecoderState2.NumericStart,this.consumed+=1,this.stateNumericStart(input,offset+1)):(this.state=EntityDecoderState2.NamedEntity,this.stateNamedEntity(input,offset));case EntityDecoderState2.NumericStart:return this.stateNumericStart(input,offset);case EntityDecoderState2.NumericDecimal:return this.stateNumericDecimal(input,offset);case EntityDecoderState2.NumericHex:return this.stateNumericHex(input,offset);case EntityDecoderState2.NamedEntity:return this.stateNamedEntity(input,offset)}}stateNumericStart(input,offset){return offset>=input.length?-1:(input.charCodeAt(offset)|TO_LOWER_BIT2)===CharCodes2.LOWER_X?(this.state=EntityDecoderState2.NumericHex,this.consumed+=1,this.stateNumericHex(input,offset+1)):(this.state=EntityDecoderState2.NumericDecimal,this.stateNumericDecimal(input,offset))}stateNumericHex(input,offset){for(;offset<input.length;){let char=input.charCodeAt(offset);if(isNumber2(char)||isHexadecimalCharacter2(char)){let digit=char<=CharCodes2.NINE?char-CharCodes2.ZERO:(char|TO_LOWER_BIT2)-CharCodes2.LOWER_A+10;this.result=this.result*16+digit,this.consumed++,offset++}else return this.emitNumericEntity(char,3)}return-1}stateNumericDecimal(input,offset){for(;offset<input.length;){let char=input.charCodeAt(offset);if(isNumber2(char))this.result=this.result*10+(char-CharCodes2.ZERO),this.consumed++,offset++;else return this.emitNumericEntity(char,2)}return-1}emitNumericEntity(lastCp,expectedLength){var _a4;if(this.consumed<=expectedLength)return(_a4=this.errors)===null||_a4===void 0||_a4.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(lastCp===CharCodes2.SEMI)this.consumed+=1;else if(this.decodeMode===DecodingMode2.Strict)return 0;return this.emitCodePoint(replaceCodePoint2(this.result),this.consumed),this.errors&&(lastCp!==CharCodes2.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(input,offset){let{decodeTree}=this,current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags2.VALUE_LENGTH)>>14;for(;offset<input.length;){if(valueLength===0&&(current&BinTrieFlags2.FLAG13)!==0){let runLength=(current&BinTrieFlags2.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let firstChar=current&BinTrieFlags2.JUMP_TABLE;if(input.charCodeAt(offset)!==firstChar)return this.result===0?0:this.emitNotTerminatedNamedEntity();offset++,this.excess++,this.runConsumed++}for(;this.runConsumed<runLength;){if(offset>=input.length)return-1;let charIndexInPacked=this.runConsumed-1,packedWord=decodeTree[this.treeIndex+1+(charIndexInPacked>>1)],expectedChar=charIndexInPacked%2===0?packedWord&255:packedWord>>8&255;if(input.charCodeAt(offset)!==expectedChar)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();offset++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(runLength>>1),current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags2.VALUE_LENGTH)>>14}if(offset>=input.length)break;let char=input.charCodeAt(offset);if(char===CharCodes2.SEMI&&valueLength!==0&&(current&BinTrieFlags2.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,valueLength,this.consumed+this.excess);if(this.treeIndex=determineBranch2(decodeTree,current,this.treeIndex+Math.max(1,valueLength),char),this.treeIndex<0)return this.result===0||this.decodeMode===DecodingMode2.Attribute&&(valueLength===0||isEntityInAttributeInvalidEnd2(char))?0:this.emitNotTerminatedNamedEntity();if(current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags2.VALUE_LENGTH)>>14,valueLength!==0){if(char===CharCodes2.SEMI)return this.emitNamedEntityData(this.treeIndex,valueLength,this.consumed+this.excess);this.decodeMode!==DecodingMode2.Strict&&(current&BinTrieFlags2.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}offset++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var _a4;let{result,decodeTree}=this,valueLength=(decodeTree[result]&BinTrieFlags2.VALUE_LENGTH)>>14;return this.emitNamedEntityData(result,valueLength,this.consumed),(_a4=this.errors)===null||_a4===void 0||_a4.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(result,valueLength,consumed){let{decodeTree}=this;return this.emitCodePoint(valueLength===1?decodeTree[result]&~(BinTrieFlags2.VALUE_LENGTH|BinTrieFlags2.FLAG13):decodeTree[result+1],consumed),valueLength===3&&this.emitCodePoint(decodeTree[result+2],consumed),consumed}end(){var _a4;switch(this.state){case EntityDecoderState2.NamedEntity:return this.result!==0&&(this.decodeMode!==DecodingMode2.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case EntityDecoderState2.NumericDecimal:return this.emitNumericEntity(0,2);case EntityDecoderState2.NumericHex:return this.emitNumericEntity(0,3);case EntityDecoderState2.NumericStart:return(_a4=this.errors)===null||_a4===void 0||_a4.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case EntityDecoderState2.EntityStart:return 0}}};__name(determineBranch2,"determineBranch")}});function isWhitespace(c2){return c2===CharCodes3.Space||c2===CharCodes3.NewLine||c2===CharCodes3.Tab||c2===CharCodes3.FormFeed||c2===CharCodes3.CarriageReturn}function isEndOfTagSection(c2){return c2===CharCodes3.Slash||c2===CharCodes3.Gt||isWhitespace(c2)}function isASCIIAlpha(c2){return c2>=CharCodes3.LowerA&&c2<=CharCodes3.LowerZ||c2>=CharCodes3.UpperA&&c2<=CharCodes3.UpperZ}var CharCodes3,State,QuoteType,Sequences,Tokenizer,init_Tokenizer=__esm({"../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/Tokenizer.js"(){init_decode2();(function(CharCodes4){CharCodes4[CharCodes4.Tab=9]="Tab",CharCodes4[CharCodes4.NewLine=10]="NewLine",CharCodes4[CharCodes4.FormFeed=12]="FormFeed",CharCodes4[CharCodes4.CarriageReturn=13]="CarriageReturn",CharCodes4[CharCodes4.Space=32]="Space",CharCodes4[CharCodes4.ExclamationMark=33]="ExclamationMark",CharCodes4[CharCodes4.Number=35]="Number",CharCodes4[CharCodes4.Amp=38]="Amp",CharCodes4[CharCodes4.SingleQuote=39]="SingleQuote",CharCodes4[CharCodes4.DoubleQuote=34]="DoubleQuote",CharCodes4[CharCodes4.Dash=45]="Dash",CharCodes4[CharCodes4.Slash=47]="Slash",CharCodes4[CharCodes4.Zero=48]="Zero",CharCodes4[CharCodes4.Nine=57]="Nine",CharCodes4[CharCodes4.Semi=59]="Semi",CharCodes4[CharCodes4.Lt=60]="Lt",CharCodes4[CharCodes4.Eq=61]="Eq",CharCodes4[CharCodes4.Gt=62]="Gt",CharCodes4[CharCodes4.Questionmark=63]="Questionmark",CharCodes4[CharCodes4.UpperA=65]="UpperA",CharCodes4[CharCodes4.LowerA=97]="LowerA",CharCodes4[CharCodes4.UpperF=70]="UpperF",CharCodes4[CharCodes4.LowerF=102]="LowerF",CharCodes4[CharCodes4.UpperZ=90]="UpperZ",CharCodes4[CharCodes4.LowerZ=122]="LowerZ",CharCodes4[CharCodes4.LowerX=120]="LowerX",CharCodes4[CharCodes4.OpeningSquareBracket=91]="OpeningSquareBracket"})(CharCodes3||(CharCodes3={}));(function(State2){State2[State2.Text=1]="Text",State2[State2.BeforeTagName=2]="BeforeTagName",State2[State2.InTagName=3]="InTagName",State2[State2.InSelfClosingTag=4]="InSelfClosingTag",State2[State2.BeforeClosingTagName=5]="BeforeClosingTagName",State2[State2.InClosingTagName=6]="InClosingTagName",State2[State2.AfterClosingTagName=7]="AfterClosingTagName",State2[State2.BeforeAttributeName=8]="BeforeAttributeName",State2[State2.InAttributeName=9]="InAttributeName",State2[State2.AfterAttributeName=10]="AfterAttributeName",State2[State2.BeforeAttributeValue=11]="BeforeAttributeValue",State2[State2.InAttributeValueDq=12]="InAttributeValueDq",State2[State2.InAttributeValueSq=13]="InAttributeValueSq",State2[State2.InAttributeValueNq=14]="InAttributeValueNq",State2[State2.BeforeDeclaration=15]="BeforeDeclaration",State2[State2.InDeclaration=16]="InDeclaration",State2[State2.InProcessingInstruction=17]="InProcessingInstruction",State2[State2.BeforeComment=18]="BeforeComment",State2[State2.CDATASequence=19]="CDATASequence",State2[State2.InSpecialComment=20]="InSpecialComment",State2[State2.InCommentLike=21]="InCommentLike",State2[State2.BeforeSpecialS=22]="BeforeSpecialS",State2[State2.BeforeSpecialT=23]="BeforeSpecialT",State2[State2.SpecialStartSequence=24]="SpecialStartSequence",State2[State2.InSpecialTag=25]="InSpecialTag",State2[State2.InEntity=26]="InEntity"})(State||(State={}));__name(isWhitespace,"isWhitespace");__name(isEndOfTagSection,"isEndOfTagSection");__name(isASCIIAlpha,"isASCIIAlpha");(function(QuoteType2){QuoteType2[QuoteType2.NoValue=0]="NoValue",QuoteType2[QuoteType2.Unquoted=1]="Unquoted",QuoteType2[QuoteType2.Single=2]="Single",QuoteType2[QuoteType2.Double=3]="Double"})(QuoteType||(QuoteType={}));Sequences={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])},Tokenizer=class{static{__name(this,"Tokenizer")}constructor({xmlMode=!1,decodeEntities=!0},cbs){this.cbs=cbs,this.state=State.Text,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=State.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=xmlMode,this.decodeEntities=decodeEntities,this.entityDecoder=new EntityDecoder2(xmlMode?xmlDecodeTree:htmlDecodeTree,(cp2,consumed)=>this.emitCodePoint(cp2,consumed))}reset(){this.state=State.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=State.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(chunk){this.offset+=this.buffer.length,this.buffer=chunk,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(c2){c2===CharCodes3.Lt||!this.decodeEntities&&this.fastForwardTo(CharCodes3.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=State.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity()}stateSpecialStartSequence(c2){let isEnd=this.sequenceIndex===this.currentSequence.length;if(!(isEnd?isEndOfTagSection(c2):(c2|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!isEnd){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=State.InTagName,this.stateInTagName(c2)}stateInSpecialTag(c2){if(this.sequenceIndex===this.currentSequence.length){if(c2===CharCodes3.Gt||isWhitespace(c2)){let endOfText=this.index-this.currentSequence.length;if(this.sectionStart<endOfText){let actualIndex=this.index;this.index=endOfText,this.cbs.ontext(this.sectionStart,endOfText),this.index=actualIndex}this.isSpecial=!1,this.sectionStart=endOfText+2,this.stateInClosingTagName(c2);return}this.sequenceIndex=0}(c2|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===Sequences.TitleEnd?this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity():this.fastForwardTo(CharCodes3.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(c2===CharCodes3.Lt)}stateCDATASequence(c2){c2===Sequences.Cdata[this.sequenceIndex]?++this.sequenceIndex===Sequences.Cdata.length&&(this.state=State.InCommentLike,this.currentSequence=Sequences.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=State.InDeclaration,this.stateInDeclaration(c2))}fastForwardTo(c2){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===c2)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(c2){c2===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===Sequences.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=State.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):c2!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(c2){return this.xmlMode?!isEndOfTagSection(c2):isASCIIAlpha(c2)}startSpecial(sequence,offset){this.isSpecial=!0,this.currentSequence=sequence,this.sequenceIndex=offset,this.state=State.SpecialStartSequence}stateBeforeTagName(c2){if(c2===CharCodes3.ExclamationMark)this.state=State.BeforeDeclaration,this.sectionStart=this.index+1;else if(c2===CharCodes3.Questionmark)this.state=State.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(c2)){let lower=c2|32;this.sectionStart=this.index,this.xmlMode?this.state=State.InTagName:lower===Sequences.ScriptEnd[2]?this.state=State.BeforeSpecialS:lower===Sequences.TitleEnd[2]||lower===Sequences.XmpEnd[2]?this.state=State.BeforeSpecialT:this.state=State.InTagName}else c2===CharCodes3.Slash?this.state=State.BeforeClosingTagName:(this.state=State.Text,this.stateText(c2))}stateInTagName(c2){isEndOfTagSection(c2)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2))}stateBeforeClosingTagName(c2){isWhitespace(c2)||(c2===CharCodes3.Gt?this.state=State.Text:(this.state=this.isTagStartChar(c2)?State.InClosingTagName:State.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(c2){(c2===CharCodes3.Gt||isWhitespace(c2))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=State.AfterClosingTagName,this.stateAfterClosingTagName(c2))}stateAfterClosingTagName(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.state=State.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(c2){c2===CharCodes3.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=State.InSpecialTag,this.sequenceIndex=0):this.state=State.Text,this.sectionStart=this.index+1):c2===CharCodes3.Slash?this.state=State.InSelfClosingTag:isWhitespace(c2)||(this.state=State.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(c2){c2===CharCodes3.Gt?(this.cbs.onselfclosingtag(this.index),this.state=State.Text,this.sectionStart=this.index+1,this.isSpecial=!1):isWhitespace(c2)||(this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2))}stateInAttributeName(c2){(c2===CharCodes3.Eq||isEndOfTagSection(c2))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=State.AfterAttributeName,this.stateAfterAttributeName(c2))}stateAfterAttributeName(c2){c2===CharCodes3.Eq?this.state=State.BeforeAttributeValue:c2===CharCodes3.Slash||c2===CharCodes3.Gt?(this.cbs.onattribend(QuoteType.NoValue,this.sectionStart),this.sectionStart=-1,this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2)):isWhitespace(c2)||(this.cbs.onattribend(QuoteType.NoValue,this.sectionStart),this.state=State.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(c2){c2===CharCodes3.DoubleQuote?(this.state=State.InAttributeValueDq,this.sectionStart=this.index+1):c2===CharCodes3.SingleQuote?(this.state=State.InAttributeValueSq,this.sectionStart=this.index+1):isWhitespace(c2)||(this.sectionStart=this.index,this.state=State.InAttributeValueNq,this.stateInAttributeValueNoQuotes(c2))}handleInAttributeValue(c2,quote2){c2===quote2||!this.decodeEntities&&this.fastForwardTo(quote2)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(quote2===CharCodes3.DoubleQuote?QuoteType.Double:QuoteType.Single,this.index+1),this.state=State.BeforeAttributeName):this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(c2){this.handleInAttributeValue(c2,CharCodes3.DoubleQuote)}stateInAttributeValueSingleQuotes(c2){this.handleInAttributeValue(c2,CharCodes3.SingleQuote)}stateInAttributeValueNoQuotes(c2){isWhitespace(c2)||c2===CharCodes3.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(QuoteType.Unquoted,this.index),this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2)):this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity()}stateBeforeDeclaration(c2){c2===CharCodes3.OpeningSquareBracket?(this.state=State.CDATASequence,this.sequenceIndex=0):this.state=c2===CharCodes3.Dash?State.BeforeComment:State.InDeclaration}stateInDeclaration(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=State.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=State.Text,this.sectionStart=this.index+1)}stateBeforeComment(c2){c2===CharCodes3.Dash?(this.state=State.InCommentLike,this.currentSequence=Sequences.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=State.InDeclaration}stateInSpecialComment(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=State.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(c2){let lower=c2|32;lower===Sequences.ScriptEnd[3]?this.startSpecial(Sequences.ScriptEnd,4):lower===Sequences.StyleEnd[3]?this.startSpecial(Sequences.StyleEnd,4):(this.state=State.InTagName,this.stateInTagName(c2))}stateBeforeSpecialT(c2){switch(c2|32){case Sequences.TitleEnd[3]:{this.startSpecial(Sequences.TitleEnd,4);break}case Sequences.TextareaEnd[3]:{this.startSpecial(Sequences.TextareaEnd,4);break}case Sequences.XmpEnd[3]:{this.startSpecial(Sequences.XmpEnd,4);break}default:this.state=State.InTagName,this.stateInTagName(c2)}}startEntity(){this.baseState=this.state,this.state=State.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?DecodingMode2.Strict:this.baseState===State.Text||this.baseState===State.InSpecialTag?DecodingMode2.Legacy:DecodingMode2.Attribute)}stateInEntity(){let indexInBuffer=this.index-this.offset,length=this.entityDecoder.write(this.buffer,indexInBuffer);if(length>=0)this.state=this.baseState,length===0&&(this.index-=1);else{if(indexInBuffer<this.buffer.length&&this.buffer.charCodeAt(indexInBuffer)===CharCodes3.Amp){this.state=this.baseState,this.index-=1;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===State.Text||this.state===State.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===State.InAttributeValueDq||this.state===State.InAttributeValueSq||this.state===State.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let c2=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case State.Text:{this.stateText(c2);break}case State.SpecialStartSequence:{this.stateSpecialStartSequence(c2);break}case State.InSpecialTag:{this.stateInSpecialTag(c2);break}case State.CDATASequence:{this.stateCDATASequence(c2);break}case State.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(c2);break}case State.InAttributeName:{this.stateInAttributeName(c2);break}case State.InCommentLike:{this.stateInCommentLike(c2);break}case State.InSpecialComment:{this.stateInSpecialComment(c2);break}case State.BeforeAttributeName:{this.stateBeforeAttributeName(c2);break}case State.InTagName:{this.stateInTagName(c2);break}case State.InClosingTagName:{this.stateInClosingTagName(c2);break}case State.BeforeTagName:{this.stateBeforeTagName(c2);break}case State.AfterAttributeName:{this.stateAfterAttributeName(c2);break}case State.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(c2);break}case State.BeforeAttributeValue:{this.stateBeforeAttributeValue(c2);break}case State.BeforeClosingTagName:{this.stateBeforeClosingTagName(c2);break}case State.AfterClosingTagName:{this.stateAfterClosingTagName(c2);break}case State.BeforeSpecialS:{this.stateBeforeSpecialS(c2);break}case State.BeforeSpecialT:{this.stateBeforeSpecialT(c2);break}case State.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(c2);break}case State.InSelfClosingTag:{this.stateInSelfClosingTag(c2);break}case State.InDeclaration:{this.stateInDeclaration(c2);break}case State.BeforeDeclaration:{this.stateBeforeDeclaration(c2);break}case State.BeforeComment:{this.stateBeforeComment(c2);break}case State.InProcessingInstruction:{this.stateInProcessingInstruction(c2);break}case State.InEntity:{this.stateInEntity();break}}this.index++}this.cleanup()}finish(){this.state===State.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let endIndex=this.buffer.length+this.offset;this.sectionStart>=endIndex||(this.state===State.InCommentLike?this.currentSequence===Sequences.CdataEnd?this.cbs.oncdata(this.sectionStart,endIndex,0):this.cbs.oncomment(this.sectionStart,endIndex,0):this.state===State.InTagName||this.state===State.BeforeAttributeName||this.state===State.BeforeAttributeValue||this.state===State.AfterAttributeName||this.state===State.InAttributeName||this.state===State.InAttributeValueSq||this.state===State.InAttributeValueDq||this.state===State.InAttributeValueNq||this.state===State.InClosingTagName||this.cbs.ontext(this.sectionStart,endIndex))}emitCodePoint(cp2,consumed){this.baseState!==State.Text&&this.baseState!==State.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+consumed,this.index=this.sectionStart-1,this.cbs.onattribentity(cp2)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+consumed,this.index=this.sectionStart-1,this.cbs.ontextentity(cp2,this.sectionStart))}}}});var formTags,pTag,tableSectionTags,ddtTags,rtpTags,openImpliesClose,voidElements,foreignContextElements,htmlIntegrationElements,reNameEnd,Parser,init_Parser=__esm({"../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/Parser.js"(){init_Tokenizer();init_decode2();formTags=new Set(["input","option","optgroup","select","button","datalist","textarea"]),pTag=new Set(["p"]),tableSectionTags=new Set(["thead","tbody"]),ddtTags=new Set(["dd","dt"]),rtpTags=new Set(["rt","rp"]),openImpliesClose=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",pTag],["h1",pTag],["h2",pTag],["h3",pTag],["h4",pTag],["h5",pTag],["h6",pTag],["select",formTags],["input",formTags],["output",formTags],["button",formTags],["datalist",formTags],["textarea",formTags],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",ddtTags],["dt",ddtTags],["address",pTag],["article",pTag],["aside",pTag],["blockquote",pTag],["details",pTag],["div",pTag],["dl",pTag],["fieldset",pTag],["figcaption",pTag],["figure",pTag],["footer",pTag],["form",pTag],["header",pTag],["hr",pTag],["main",pTag],["nav",pTag],["ol",pTag],["pre",pTag],["section",pTag],["table",pTag],["ul",pTag],["rt",rtpTags],["rp",rtpTags],["tbody",tableSectionTags],["tfoot",tableSectionTags]]),voidElements=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),foreignContextElements=new Set(["math","svg"]),htmlIntegrationElements=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),reNameEnd=/\s|\//,Parser=class{static{__name(this,"Parser")}constructor(cbs,options={}){var _a4,_b,_c,_d,_e2,_f;this.options=options,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=cbs??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=(_a4=options.lowerCaseTags)!==null&&_a4!==void 0?_a4:this.htmlMode,this.lowerCaseAttributeNames=(_b=options.lowerCaseAttributeNames)!==null&&_b!==void 0?_b:this.htmlMode,this.recognizeSelfClosing=(_c=options.recognizeSelfClosing)!==null&&_c!==void 0?_c:!this.htmlMode,this.tokenizer=new((_d=options.Tokenizer)!==null&&_d!==void 0?_d:Tokenizer)(this.options,this),this.foreignContext=[!this.htmlMode],(_f=(_e2=this.cbs).onparserinit)===null||_f===void 0||_f.call(_e2,this)}ontext(start,endIndex){var _a4,_b;let data2=this.getSlice(start,endIndex);this.endIndex=endIndex-1,(_b=(_a4=this.cbs).ontext)===null||_b===void 0||_b.call(_a4,data2),this.startIndex=endIndex}ontextentity(cp2,endIndex){var _a4,_b;this.endIndex=endIndex-1,(_b=(_a4=this.cbs).ontext)===null||_b===void 0||_b.call(_a4,fromCodePoint2(cp2)),this.startIndex=endIndex}isVoidElement(name){return this.htmlMode&&voidElements.has(name)}onopentagname(start,endIndex){this.endIndex=endIndex;let name=this.getSlice(start,endIndex);this.lowerCaseTagNames&&(name=name.toLowerCase()),this.emitOpenTag(name)}emitOpenTag(name){var _a4,_b,_c,_d;this.openTagStart=this.startIndex,this.tagname=name;let impliesClose=this.htmlMode&&openImpliesClose.get(name);if(impliesClose)for(;this.stack.length>0&&impliesClose.has(this.stack[0]);){let element=this.stack.shift();(_b=(_a4=this.cbs).onclosetag)===null||_b===void 0||_b.call(_a4,element,!0)}this.isVoidElement(name)||(this.stack.unshift(name),this.htmlMode&&(foreignContextElements.has(name)?this.foreignContext.unshift(!0):htmlIntegrationElements.has(name)&&this.foreignContext.unshift(!1))),(_d=(_c=this.cbs).onopentagname)===null||_d===void 0||_d.call(_c,name),this.cbs.onopentag&&(this.attribs={})}endOpenTag(isImplied){var _a4,_b;this.startIndex=this.openTagStart,this.attribs&&((_b=(_a4=this.cbs).onopentag)===null||_b===void 0||_b.call(_a4,this.tagname,this.attribs,isImplied),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(endIndex){this.endIndex=endIndex,this.endOpenTag(!1),this.startIndex=endIndex+1}onclosetag(start,endIndex){var _a4,_b,_c,_d,_e2,_f,_g,_h;this.endIndex=endIndex;let name=this.getSlice(start,endIndex);if(this.lowerCaseTagNames&&(name=name.toLowerCase()),this.htmlMode&&(foreignContextElements.has(name)||htmlIntegrationElements.has(name))&&this.foreignContext.shift(),this.isVoidElement(name))this.htmlMode&&name==="br"&&((_d=(_c=this.cbs).onopentagname)===null||_d===void 0||_d.call(_c,"br"),(_f=(_e2=this.cbs).onopentag)===null||_f===void 0||_f.call(_e2,"br",{},!0),(_h=(_g=this.cbs).onclosetag)===null||_h===void 0||_h.call(_g,"br",!1));else{let pos=this.stack.indexOf(name);if(pos!==-1)for(let index2=0;index2<=pos;index2++){let element=this.stack.shift();(_b=(_a4=this.cbs).onclosetag)===null||_b===void 0||_b.call(_a4,element,index2!==pos)}else this.htmlMode&&name==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=endIndex+1}onselfclosingtag(endIndex){this.endIndex=endIndex,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=endIndex+1):this.onopentagend(endIndex)}closeCurrentTag(isOpenImplied){var _a4,_b;let name=this.tagname;this.endOpenTag(isOpenImplied),this.stack[0]===name&&((_b=(_a4=this.cbs).onclosetag)===null||_b===void 0||_b.call(_a4,name,!isOpenImplied),this.stack.shift())}onattribname(start,endIndex){this.startIndex=start;let name=this.getSlice(start,endIndex);this.attribname=this.lowerCaseAttributeNames?name.toLowerCase():name}onattribdata(start,endIndex){this.attribvalue+=this.getSlice(start,endIndex)}onattribentity(cp2){this.attribvalue+=fromCodePoint2(cp2)}onattribend(quote2,endIndex){var _a4,_b;this.endIndex=endIndex,(_b=(_a4=this.cbs).onattribute)===null||_b===void 0||_b.call(_a4,this.attribname,this.attribvalue,quote2===QuoteType.Double?'"':quote2===QuoteType.Single?"'":quote2===QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(value){let index2=value.search(reNameEnd),name=index2<0?value:value.substr(0,index2);return this.lowerCaseTagNames&&(name=name.toLowerCase()),name}ondeclaration(start,endIndex){this.endIndex=endIndex;let value=this.getSlice(start,endIndex);if(this.cbs.onprocessinginstruction){let name=this.getInstructionName(value);this.cbs.onprocessinginstruction(`!${name}`,`!${value}`)}this.startIndex=endIndex+1}onprocessinginstruction(start,endIndex){this.endIndex=endIndex;let value=this.getSlice(start,endIndex);if(this.cbs.onprocessinginstruction){let name=this.getInstructionName(value);this.cbs.onprocessinginstruction(`?${name}`,`?${value}`)}this.startIndex=endIndex+1}oncomment(start,endIndex,offset){var _a4,_b,_c,_d;this.endIndex=endIndex,(_b=(_a4=this.cbs).oncomment)===null||_b===void 0||_b.call(_a4,this.getSlice(start,endIndex-offset)),(_d=(_c=this.cbs).oncommentend)===null||_d===void 0||_d.call(_c),this.startIndex=endIndex+1}oncdata(start,endIndex,offset){var _a4,_b,_c,_d,_e2,_f,_g,_h,_j,_k;this.endIndex=endIndex;let value=this.getSlice(start,endIndex-offset);!this.htmlMode||this.options.recognizeCDATA?((_b=(_a4=this.cbs).oncdatastart)===null||_b===void 0||_b.call(_a4),(_d=(_c=this.cbs).ontext)===null||_d===void 0||_d.call(_c,value),(_f=(_e2=this.cbs).oncdataend)===null||_f===void 0||_f.call(_e2)):((_h=(_g=this.cbs).oncomment)===null||_h===void 0||_h.call(_g,`[CDATA[${value}]]`),(_k=(_j=this.cbs).oncommentend)===null||_k===void 0||_k.call(_j)),this.startIndex=endIndex+1}onend(){var _a4,_b;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let index2=0;index2<this.stack.length;index2++)this.cbs.onclosetag(this.stack[index2],!0)}(_b=(_a4=this.cbs).onend)===null||_b===void 0||_b.call(_a4)}reset(){var _a4,_b,_c,_d;(_b=(_a4=this.cbs).onreset)===null||_b===void 0||_b.call(_a4),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(_d=(_c=this.cbs).onparserinit)===null||_d===void 0||_d.call(_c,this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(!this.htmlMode),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(data2){this.reset(),this.end(data2)}getSlice(start,end2){for(;start-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let slice2=this.buffers[0].slice(start-this.bufferOffset,end2-this.bufferOffset);for(;end2-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),slice2+=this.buffers[0].slice(0,end2-this.bufferOffset);return slice2}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(chunk){var _a4,_b;if(this.ended){(_b=(_a4=this.cbs).onerror)===null||_b===void 0||_b.call(_a4,new Error(".write() after done!"));return}this.buffers.push(chunk),this.tokenizer.running&&(this.tokenizer.write(chunk),this.writeIndex++)}end(chunk){var _a4,_b;if(this.ended){(_b=(_a4=this.cbs).onerror)===null||_b===void 0||_b.call(_a4,new Error(".end() after done!"));return}chunk&&this.write(chunk),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(chunk){this.write(chunk)}done(chunk){this.end(chunk)}}}});function parseDocument(data2,options){let handler=new DomHandler(void 0,options);return new Parser(handler,options).end(data2),handler.root}var init_esm7=__esm({"../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/index.js"(){init_Parser();init_Parser();init_esm3();init_esm3();init_Tokenizer();init_esm2();init_esm6();init_esm6();init_esm6();__name(parseDocument,"parseDocument")}});var attributes_exports={};__export(attributes_exports,{addClass:()=>addClass,attr:()=>attr,data:()=>data,hasClass:()=>hasClass,prop:()=>prop,removeAttr:()=>removeAttr,removeClass:()=>removeClass,toggleClass:()=>toggleClass,val:()=>val});function getAttr(elem,name,xmlMode){var _a4;if(!(!elem||!isTag2(elem))){if((_a4=elem.attribs)!==null&&_a4!==void 0||(elem.attribs={}),!name)return elem.attribs;if(hasOwn(elem.attribs,name))return!xmlMode&&rboolean.test(name)?name:elem.attribs[name];if(elem.name==="option"&&name==="value")return text(elem.children);if(elem.name==="input"&&(elem.attribs.type==="radio"||elem.attribs.type==="checkbox")&&name==="value")return"on"}}function setAttr(el,name,value){value===null?removeAttribute(el,name):el.attribs[name]=`${value}`}function attr(name,value){if(typeof name=="object"||value!==void 0){if(typeof value=="function"){if(typeof name!="string")throw new Error("Bad combination of arguments.");return domEach(this,(el,i)=>{isTag2(el)&&setAttr(el,name,value.call(el,i,el.attribs[name]))})}return domEach(this,el=>{if(isTag2(el))if(typeof name=="object")for(let objName of Object.keys(name)){let objValue=name[objName];setAttr(el,objName,objValue)}else setAttr(el,name,value)})}return arguments.length>1?this:getAttr(this[0],name,this.options.xmlMode)}function getProp(el,name,xmlMode){return name in el?el[name]:!xmlMode&&rboolean.test(name)?getAttr(el,name,!1)!==void 0:getAttr(el,name,xmlMode)}function setProp(el,name,value,xmlMode){name in el?el[name]=value:setAttr(el,name,!xmlMode&&rboolean.test(name)?value?"":null:`${value}`)}function prop(name,value){var _a4;if(typeof name=="string"&&value===void 0){let el=this[0];if(!el)return;switch(name){case"style":{let property=this.css(),keys=Object.keys(property);for(let i=0;i<keys.length;i++)property[i]=keys[i];return property.length=keys.length,property}case"tagName":case"nodeName":return isTag2(el)?el.name.toUpperCase():void 0;case"href":case"src":{if(!isTag2(el))return;let prop2=(_a4=el.attribs)===null||_a4===void 0?void 0:_a4[name];return typeof URL<"u"&&(name==="href"&&(el.tagName==="a"||el.tagName==="link")||name==="src"&&(el.tagName==="img"||el.tagName==="iframe"||el.tagName==="audio"||el.tagName==="video"||el.tagName==="source"))&&prop2!==void 0&&this.options.baseURI?new URL(prop2,this.options.baseURI).href:prop2}case"innerText":return innerText(el);case"textContent":return textContent(el);case"outerHTML":return el.type===esm_exports.Root?this.html():this.clone().wrap("<container />").parent().html();case"innerHTML":return this.html();default:return isTag2(el)?getProp(el,name,this.options.xmlMode):void 0}}if(typeof name=="object"||value!==void 0){if(typeof value=="function"){if(typeof name=="object")throw new TypeError("Bad combination of arguments.");return domEach(this,(el,i)=>{isTag2(el)&&setProp(el,name,value.call(el,i,getProp(el,name,this.options.xmlMode)),this.options.xmlMode)})}return domEach(this,el=>{if(isTag2(el))if(typeof name=="object")for(let key of Object.keys(name)){let val2=name[key];setProp(el,key,val2,this.options.xmlMode)}else setProp(el,name,value,this.options.xmlMode)})}}function setData(elem,name,value){var _a4;(_a4=elem.data)!==null&&_a4!==void 0||(elem.data={}),typeof name=="object"?Object.assign(elem.data,name):typeof name=="string"&&value!==void 0&&(elem.data[name]=value)}function readAllData(el){for(let domName of Object.keys(el.attribs)){if(!domName.startsWith(dataAttrPrefix))continue;let jsName=camelCase2(domName.slice(dataAttrPrefix.length));hasOwn(el.data,jsName)||(el.data[jsName]=parseDataValue(el.attribs[domName]))}return el.data}function readData(el,name){let domName=dataAttrPrefix+cssCase(name),data2=el.data;if(hasOwn(data2,name))return data2[name];if(hasOwn(el.attribs,domName))return data2[name]=parseDataValue(el.attribs[domName])}function parseDataValue(value){if(value==="null")return null;if(value==="true")return!0;if(value==="false")return!1;let num=Number(value);if(value===String(num))return num;if(rbrace.test(value))try{return JSON.parse(value)}catch{}return value}function data(name,value){var _a4;let elem=this[0];if(!elem||!isTag2(elem))return;let dataEl=elem;return(_a4=dataEl.data)!==null&&_a4!==void 0||(dataEl.data={}),name==null?readAllData(dataEl):typeof name=="object"||value!==void 0?(domEach(this,el=>{isTag2(el)&&(typeof name=="object"?setData(el,name):setData(el,name,value))}),this):readData(dataEl,name)}function val(value){let querying=arguments.length===0,element=this[0];if(!element||!isTag2(element))return querying?void 0:this;switch(element.name){case"textarea":return this.text(value);case"select":{let option=this.find("option:selected");if(!querying){if(this.attr("multiple")==null&&typeof value=="object")return this;this.find("option").removeAttr("selected");let values=typeof value=="object"?value:[value];for(let val2 of values)this.find(`option[value="${val2}"]`).attr("selected","");return this}return this.attr("multiple")?option.toArray().map(el=>text(el.children)):option.attr("value")}case"button":case"input":case"option":return querying?this.attr("value"):this.attr("value",value)}}function removeAttribute(elem,name){!elem.attribs||!hasOwn(elem.attribs,name)||delete elem.attribs[name]}function splitNames(names){return names?names.trim().split(rspace):[]}function removeAttr(name){let attrNames=splitNames(name);for(let attrName of attrNames)domEach(this,elem=>{isTag2(elem)&&removeAttribute(elem,attrName)});return this}function hasClass(className){return this.toArray().some(elem=>{let clazz=isTag2(elem)&&elem.attribs.class,idx=-1;if(clazz&&className.length>0)for(;(idx=clazz.indexOf(className,idx+1))>-1;){let end2=idx+className.length;if((idx===0||rspace.test(clazz[idx-1]))&&(end2===clazz.length||rspace.test(clazz[end2])))return!0}return!1})}function addClass(value){if(typeof value=="function")return domEach(this,(el,i)=>{if(isTag2(el)){let className=el.attribs.class||"";addClass.call([el],value.call(el,i,className))}});if(!value||typeof value!="string")return this;let classNames=value.split(rspace),numElements=this.length;for(let i=0;i<numElements;i++){let el=this[i];if(!isTag2(el))continue;let className=getAttr(el,"class",!1);if(className){let setClass=` ${className} `;for(let cn of classNames){let appendClass=`${cn} `;setClass.includes(` ${appendClass}`)||(setClass+=appendClass)}setAttr(el,"class",setClass.trim())}else setAttr(el,"class",classNames.join(" ").trim())}return this}function removeClass(name){if(typeof name=="function")return domEach(this,(el,i)=>{isTag2(el)&&removeClass.call([el],name.call(el,i,el.attribs.class||""))});let classes=splitNames(name),numClasses=classes.length,removeAll=arguments.length===0;return domEach(this,el=>{if(isTag2(el))if(removeAll)el.attribs.class="";else{let elClasses=splitNames(el.attribs.class),changed=!1;for(let j2=0;j2<numClasses;j2++){let index2=elClasses.indexOf(classes[j2]);index2!==-1&&(elClasses.splice(index2,1),changed=!0,j2--)}changed&&(el.attribs.class=elClasses.join(" "))}})}function toggleClass(value,stateVal){if(typeof value=="function")return domEach(this,(el,i)=>{isTag2(el)&&toggleClass.call([el],value.call(el,i,el.attribs.class||"",stateVal),stateVal)});if(!value||typeof value!="string")return this;let classNames=value.split(rspace),numClasses=classNames.length,state=typeof stateVal=="boolean"?stateVal?1:-1:0,numElements=this.length;for(let i=0;i<numElements;i++){let el=this[i];if(!isTag2(el))continue;let elementClasses=splitNames(el.attribs.class);for(let j2=0;j2<numClasses;j2++){let index2=elementClasses.indexOf(classNames[j2]);state>=0&&index2===-1?elementClasses.push(classNames[j2]):state<=0&&index2!==-1&&elementClasses.splice(index2,1)}el.attribs.class=elementClasses.join(" ")}return this}var _a3,hasOwn,rspace,dataAttrPrefix,rboolean,rbrace,init_attributes=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/attributes.js"(){init_static();init_utils2();init_esm3();init_esm6();init_esm7();hasOwn=(_a3=Object.hasOwn)!==null&&_a3!==void 0?_a3:((object,prop2)=>Object.prototype.hasOwnProperty.call(object,prop2)),rspace=/\s+/,dataAttrPrefix="data-",rboolean=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,rbrace=/^{[^]*}$|^\[[^]*]$/;__name(getAttr,"getAttr");__name(setAttr,"setAttr");__name(attr,"attr");__name(getProp,"getProp");__name(setProp,"setProp");__name(prop,"prop");__name(setData,"setData");__name(readAllData,"readAllData");__name(readData,"readData");__name(parseDataValue,"parseDataValue");__name(data,"data");__name(val,"val");__name(removeAttribute,"removeAttribute");__name(splitNames,"splitNames");__name(removeAttr,"removeAttr");__name(hasClass,"hasClass");__name(addClass,"addClass");__name(removeClass,"removeClass");__name(toggleClass,"toggleClass")}});var SelectorType,AttributeAction,init_types2=__esm({"../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/types.js"(){(function(SelectorType2){SelectorType2.Attribute="attribute",SelectorType2.Pseudo="pseudo",SelectorType2.PseudoElement="pseudo-element",SelectorType2.Tag="tag",SelectorType2.Universal="universal",SelectorType2.Adjacent="adjacent",SelectorType2.Child="child",SelectorType2.Descendant="descendant",SelectorType2.Parent="parent",SelectorType2.Sibling="sibling",SelectorType2.ColumnCombinator="column-combinator"})(SelectorType||(SelectorType={}));(function(AttributeAction2){AttributeAction2.Any="any",AttributeAction2.Element="element",AttributeAction2.End="end",AttributeAction2.Equals="equals",AttributeAction2.Exists="exists",AttributeAction2.Hyphen="hyphen",AttributeAction2.Not="not",AttributeAction2.Start="start"})(AttributeAction||(AttributeAction={}))}});function isTraversal(selector){switch(selector.type){case SelectorType.Adjacent:case SelectorType.Child:case SelectorType.Descendant:case SelectorType.Parent:case SelectorType.Sibling:case SelectorType.ColumnCombinator:return!0;default:return!1}}function funescape(_,escaped,escapedWhitespace){let high=parseInt(escaped,16)-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)}function unescapeCSS(str){return str.replace(reEscape,funescape)}function isQuote(c2){return c2===39||c2===34}function isWhitespace2(c2){return c2===32||c2===9||c2===10||c2===12||c2===13}function parse10(selector){let subselects2=[],endIndex=parseSelector(subselects2,`${selector}`,0);if(endIndex<selector.length)throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);return subselects2}function parseSelector(subselects2,selector,selectorIndex){let tokens=[];function getName2(offset){let match=selector.slice(selectorIndex+offset).match(reName);if(!match)throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);let[name]=match;return selectorIndex+=offset+name.length,unescapeCSS(name)}__name(getName2,"getName");function stripWhitespace(offset){for(selectorIndex+=offset;selectorIndex<selector.length&&isWhitespace2(selector.charCodeAt(selectorIndex));)selectorIndex++}__name(stripWhitespace,"stripWhitespace");function readValueWithParenthesis(){selectorIndex+=1;let start=selectorIndex,counter=1;for(;counter>0&&selectorIndex<selector.length;selectorIndex++)selector.charCodeAt(selectorIndex)===40&&!isEscaped2(selectorIndex)?counter++:selector.charCodeAt(selectorIndex)===41&&!isEscaped2(selectorIndex)&&counter--;if(counter)throw new Error("Parenthesis not matched");return unescapeCSS(selector.slice(start,selectorIndex-1))}__name(readValueWithParenthesis,"readValueWithParenthesis");function isEscaped2(pos){let slashCount=0;for(;selector.charCodeAt(--pos)===92;)slashCount++;return(slashCount&1)===1}__name(isEscaped2,"isEscaped");function ensureNotTraversal(){if(tokens.length>0&&isTraversal(tokens[tokens.length-1]))throw new Error("Did not expect successive traversals.")}__name(ensureNotTraversal,"ensureNotTraversal");function addTraversal(type){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens[tokens.length-1].type=type;return}ensureNotTraversal(),tokens.push({type})}__name(addTraversal,"addTraversal");function addSpecialAttribute(name,action){tokens.push({type:SelectorType.Attribute,name,action,value:getName2(1),namespace:null,ignoreCase:"quirks"})}__name(addSpecialAttribute,"addSpecialAttribute");function finalizeSubselector(){if(tokens.length&&tokens[tokens.length-1].type===SelectorType.Descendant&&tokens.pop(),tokens.length===0)throw new Error("Empty sub-selector");subselects2.push(tokens)}if(__name(finalizeSubselector,"finalizeSubselector"),stripWhitespace(0),selector.length===selectorIndex)return selectorIndex;loop:for(;selectorIndex<selector.length;){let firstChar=selector.charCodeAt(selectorIndex);switch(firstChar){case 32:case 9:case 10:case 12:case 13:{(tokens.length===0||tokens[0].type!==SelectorType.Descendant)&&(ensureNotTraversal(),tokens.push({type:SelectorType.Descendant})),stripWhitespace(1);break}case 62:{addTraversal(SelectorType.Child),stripWhitespace(1);break}case 60:{addTraversal(SelectorType.Parent),stripWhitespace(1);break}case 126:{addTraversal(SelectorType.Sibling),stripWhitespace(1);break}case 43:{addTraversal(SelectorType.Adjacent),stripWhitespace(1);break}case 46:{addSpecialAttribute("class",AttributeAction.Element);break}case 35:{addSpecialAttribute("id",AttributeAction.Equals);break}case 91:{stripWhitespace(1);let name,namespace=null;selector.charCodeAt(selectorIndex)===124?name=getName2(1):selector.startsWith("*|",selectorIndex)?(namespace="*",name=getName2(2)):(name=getName2(0),selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==61&&(namespace=name,name=getName2(1))),stripWhitespace(0);let action=AttributeAction.Exists,possibleAction=actionTypes.get(selector.charCodeAt(selectorIndex));if(possibleAction){if(action=possibleAction,selector.charCodeAt(selectorIndex+1)!==61)throw new Error("Expected `=`");stripWhitespace(2)}else selector.charCodeAt(selectorIndex)===61&&(action=AttributeAction.Equals,stripWhitespace(1));let value="",ignoreCase=null;if(action!=="exists"){if(isQuote(selector.charCodeAt(selectorIndex))){let quote2=selector.charCodeAt(selectorIndex),sectionEnd=selectorIndex+1;for(;sectionEnd<selector.length&&(selector.charCodeAt(sectionEnd)!==quote2||isEscaped2(sectionEnd));)sectionEnd+=1;if(selector.charCodeAt(sectionEnd)!==quote2)throw new Error("Attribute value didn't end");value=unescapeCSS(selector.slice(selectorIndex+1,sectionEnd)),selectorIndex=sectionEnd+1}else{let valueStart=selectorIndex;for(;selectorIndex<selector.length&&(!isWhitespace2(selector.charCodeAt(selectorIndex))&&selector.charCodeAt(selectorIndex)!==93||isEscaped2(selectorIndex));)selectorIndex+=1;value=unescapeCSS(selector.slice(valueStart,selectorIndex))}stripWhitespace(0);let forceIgnore=selector.charCodeAt(selectorIndex)|32;forceIgnore===115?(ignoreCase=!1,stripWhitespace(1)):forceIgnore===105&&(ignoreCase=!0,stripWhitespace(1))}if(selector.charCodeAt(selectorIndex)!==93)throw new Error("Attribute selector didn't terminate");selectorIndex+=1;let attributeSelector={type:SelectorType.Attribute,name,action,value,namespace,ignoreCase};tokens.push(attributeSelector);break}case 58:{if(selector.charCodeAt(selectorIndex+1)===58){tokens.push({type:SelectorType.PseudoElement,name:getName2(2).toLowerCase(),data:selector.charCodeAt(selectorIndex)===40?readValueWithParenthesis():null});continue}let name=getName2(1).toLowerCase(),data2=null;if(selector.charCodeAt(selectorIndex)===40)if(unpackPseudos.has(name)){if(isQuote(selector.charCodeAt(selectorIndex+1)))throw new Error(`Pseudo-selector ${name} cannot be quoted`);if(data2=[],selectorIndex=parseSelector(data2,selector,selectorIndex+1),selector.charCodeAt(selectorIndex)!==41)throw new Error(`Missing closing parenthesis in :${name} (${selector})`);selectorIndex+=1}else{if(data2=readValueWithParenthesis(),stripQuotesFromPseudos.has(name)){let quot=data2.charCodeAt(0);quot===data2.charCodeAt(data2.length-1)&&isQuote(quot)&&(data2=data2.slice(1,-1))}data2=unescapeCSS(data2)}tokens.push({type:SelectorType.Pseudo,name,data:data2});break}case 44:{finalizeSubselector(),tokens=[],stripWhitespace(1);break}default:{if(selector.startsWith("/*",selectorIndex)){let endIndex=selector.indexOf("*/",selectorIndex+2);if(endIndex<0)throw new Error("Comment was not terminated");selectorIndex=endIndex+2,tokens.length===0&&stripWhitespace(0);break}let namespace=null,name;if(firstChar===42)selectorIndex+=1,name="*";else if(firstChar===124){if(name="",selector.charCodeAt(selectorIndex+1)===124){addTraversal(SelectorType.ColumnCombinator),stripWhitespace(2);break}}else if(reName.test(selector.slice(selectorIndex)))name=getName2(0);else break loop;selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==124&&(namespace=name,selector.charCodeAt(selectorIndex+1)===42?(name="*",selectorIndex+=2):name=getName2(1)),tokens.push(name==="*"?{type:SelectorType.Universal,namespace}:{type:SelectorType.Tag,name,namespace})}}}return finalizeSubselector(),selectorIndex}var reName,reEscape,actionTypes,unpackPseudos,stripQuotesFromPseudos,init_parse2=__esm({"../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/parse.js"(){init_types2();reName=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,reEscape=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,actionTypes=new Map([[126,AttributeAction.Element],[94,AttributeAction.Start],[36,AttributeAction.End],[42,AttributeAction.Any],[33,AttributeAction.Not],[124,AttributeAction.Hyphen]]),unpackPseudos=new Set(["has","not","matches","is","where","host","host-context"]);__name(isTraversal,"isTraversal");stripQuotesFromPseudos=new Set(["contains","icontains"]);__name(funescape,"funescape");__name(unescapeCSS,"unescapeCSS");__name(isQuote,"isQuote");__name(isWhitespace2,"isWhitespace");__name(parse10,"parse");__name(parseSelector,"parseSelector")}});var init_es=__esm({"../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/index.js"(){init_types2();init_parse2()}});var require_boolbase=__commonJS({"../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js"(exports2,module2){module2.exports={trueFunc:__name(function(){return!0},"trueFunc"),falseFunc:__name(function(){return!1},"falseFunc")}}});function isTraversal2(token){return!procedure.has(token.type)}function sortByProcedure(arr){let procs=arr.map(getProcedure);for(let i=1;i<arr.length;i++){let procNew=procs[i];if(!(procNew<0))for(let j2=i-1;j2>=0&&procNew<procs[j2];j2--){let token=arr[j2+1];arr[j2+1]=arr[j2],arr[j2]=token,procs[j2+1]=procs[j2],procs[j2]=procNew}}}function getProcedure(token){var _a4,_b;let proc=(_a4=procedure.get(token.type))!==null&&_a4!==void 0?_a4:-1;return token.type===SelectorType.Attribute?(proc=(_b=attributes.get(token.action))!==null&&_b!==void 0?_b:4,token.action===AttributeAction.Equals&&token.name==="id"&&(proc=9),token.ignoreCase&&(proc>>=1)):token.type===SelectorType.Pseudo&&(token.data?token.name==="has"||token.name==="contains"?proc=0:Array.isArray(token.data)?(proc=Math.min(...token.data.map(d3=>Math.min(...d3.map(getProcedure)))),proc<0&&(proc=0)):proc=2:proc=3),proc}var procedure,attributes,init_sort=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/sort.js"(){init_es();procedure=new Map([[SelectorType.Universal,50],[SelectorType.Tag,30],[SelectorType.Attribute,1],[SelectorType.Pseudo,0]]);__name(isTraversal2,"isTraversal");attributes=new Map([[AttributeAction.Exists,10],[AttributeAction.Equals,8],[AttributeAction.Not,7],[AttributeAction.Start,6],[AttributeAction.End,6],[AttributeAction.Any,5]]);__name(sortByProcedure,"sortByProcedure");__name(getProcedure,"getProcedure")}});function escapeRegex2(value){return value.replace(reChars,"\\$&")}function shouldIgnoreCase(selector,options){return typeof selector.ignoreCase=="boolean"?selector.ignoreCase:selector.ignoreCase==="quirks"?!!options.quirksMode:!options.xmlMode&&caseInsensitiveAttributes.has(selector.name)}var import_boolbase,reChars,caseInsensitiveAttributes,attributeRules,init_attributes2=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/attributes.js"(){import_boolbase=__toESM(require_boolbase(),1),reChars=/[-[\]{}()*+?.,\\^$|#\s]/g;__name(escapeRegex2,"escapeRegex");caseInsensitiveAttributes=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);__name(shouldIgnoreCase,"shouldIgnoreCase");attributeRules={equals(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2;return shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length===value.length&&attr2.toLowerCase()===value&&next2(elem)}):elem=>adapter.getAttributeValue(elem,name)===value&&next2(elem)},hyphen(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2,len=value.length;return shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),__name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&(attr2.length===len||attr2.charAt(len)==="-")&&attr2.substr(0,len).toLowerCase()===value&&next2(elem)},"hyphenIC")):__name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&(attr2.length===len||attr2.charAt(len)==="-")&&attr2.substr(0,len)===value&&next2(elem)},"hyphen")},element(next2,data2,options){let{adapter}=options,{name,value}=data2;if(/\s/.test(value))return import_boolbase.default.falseFunc;let regex=new RegExp(`(?:^|\\s)${escapeRegex2(value)}(?:$|\\s)`,shouldIgnoreCase(data2,options)?"i":"");return __name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length>=value.length&®ex.test(attr2)&&next2(elem)},"element")},exists(next2,{name},{adapter}){return elem=>adapter.hasAttrib(elem,name)&&next2(elem)},start(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2,len=value.length;return len===0?import_boolbase.default.falseFunc:shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length>=len&&attr2.substr(0,len).toLowerCase()===value&&next2(elem)}):elem=>{var _a4;return!!(!((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0)&&_a4.startsWith(value))&&next2(elem)}},end(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2,len=-value.length;return len===0?import_boolbase.default.falseFunc:shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{var _a4;return((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0?void 0:_a4.substr(len).toLowerCase())===value&&next2(elem)}):elem=>{var _a4;return!!(!((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0)&&_a4.endsWith(value))&&next2(elem)}},any(next2,data2,options){let{adapter}=options,{name,value}=data2;if(value==="")return import_boolbase.default.falseFunc;if(shouldIgnoreCase(data2,options)){let regex=new RegExp(escapeRegex2(value),"i");return __name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length>=value.length&®ex.test(attr2)&&next2(elem)},"anyIC")}return elem=>{var _a4;return!!(!((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0)&&_a4.includes(value))&&next2(elem)}},not(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2;return value===""?elem=>!!adapter.getAttributeValue(elem,name)&&next2(elem):shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{let attr2=adapter.getAttributeValue(elem,name);return(attr2==null||attr2.length!==value.length||attr2.toLowerCase()!==value)&&next2(elem)}):elem=>adapter.getAttributeValue(elem,name)!==value&&next2(elem)}}}});function parse11(formula){if(formula=formula.trim().toLowerCase(),formula==="even")return[2,0];if(formula==="odd")return[2,1];let idx=0,a=0,sign=readSign(),number=readNumber();if(idx<formula.length&&formula.charAt(idx)==="n"&&(idx++,a=sign*(number??1),skipWhitespace(),idx<formula.length?(sign=readSign(),skipWhitespace(),number=readNumber()):sign=number=0),number===null||idx<formula.length)throw new Error(`n-th rule couldn't be parsed ('${formula}')`);return[a,sign*number];function readSign(){return formula.charAt(idx)==="-"?(idx++,-1):(formula.charAt(idx)==="+"&&idx++,1)}function readNumber(){let start=idx,value=0;for(;idx<formula.length&&formula.charCodeAt(idx)>=ZERO&&formula.charCodeAt(idx)<=NINE;)value=value*10+(formula.charCodeAt(idx)-ZERO),idx++;return idx===start?null:value}function skipWhitespace(){for(;idx<formula.length&&whitespace.has(formula.charCodeAt(idx));)idx++}}var whitespace,ZERO,NINE,init_parse3=__esm({"../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/esm/parse.js"(){whitespace=new Set([9,10,12,13,32]),ZERO=48,NINE=57;__name(parse11,"parse")}});function compile2(parsed){let a=parsed[0],b=parsed[1]-1;if(b<0&&a<=0)return import_boolbase2.default.falseFunc;if(a===-1)return index2=>index2<=b;if(a===0)return index2=>index2===b;if(a===1)return b<0?import_boolbase2.default.trueFunc:index2=>index2>=b;let absA=Math.abs(a),bMod=(b%absA+absA)%absA;return a>1?index2=>index2>=b&&index2%absA===bMod:index2=>index2<=b&&index2%absA===bMod}var import_boolbase2,init_compile=__esm({"../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/esm/compile.js"(){import_boolbase2=__toESM(require_boolbase(),1);__name(compile2,"compile")}});function nthCheck(formula){return compile2(parse11(formula))}var init_esm8=__esm({"../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/esm/index.js"(){init_parse3();init_compile();__name(nthCheck,"nthCheck")}});function getChildFunc(next2,adapter){return elem=>{let parent2=adapter.getParent(elem);return parent2!=null&&adapter.isTag(parent2)&&next2(elem)}}function dynamicStatePseudo(name){return __name(function(next2,_rule,{adapter}){let func=adapter[name];return typeof func!="function"?import_boolbase3.default.falseFunc:__name(function(elem){return func(elem)&&next2(elem)},"active")},"dynamicPseudo")}var import_boolbase3,filters,init_filters=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/filters.js"(){init_esm8();import_boolbase3=__toESM(require_boolbase(),1);__name(getChildFunc,"getChildFunc");filters={contains(next2,text3,{adapter}){return __name(function(elem){return next2(elem)&&adapter.getText(elem).includes(text3)},"contains")},icontains(next2,text3,{adapter}){let itext=text3.toLowerCase();return __name(function(elem){return next2(elem)&&adapter.getText(elem).toLowerCase().includes(itext)},"icontains")},"nth-child"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=0;i<siblings2.length&&!equals(elem,siblings2[i]);i++)adapter.isTag(siblings2[i])&&pos++;return func(pos)&&next2(elem)},"nthChild")},"nth-last-child"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=siblings2.length-1;i>=0&&!equals(elem,siblings2[i]);i--)adapter.isTag(siblings2[i])&&pos++;return func(pos)&&next2(elem)},"nthLastChild")},"nth-of-type"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)&&pos++}return func(pos)&&next2(elem)},"nthOfType")},"nth-last-of-type"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=siblings2.length-1;i>=0;i--){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)&&pos++}return func(pos)&&next2(elem)},"nthLastOfType")},root(next2,_rule,{adapter}){return elem=>{let parent2=adapter.getParent(elem);return(parent2==null||!adapter.isTag(parent2))&&next2(elem)}},scope(next2,rule,options,context){let{equals}=options;return!context||context.length===0?filters.root(next2,rule,options):context.length===1?elem=>equals(context[0],elem)&&next2(elem):elem=>context.includes(elem)&&next2(elem)},hover:dynamicStatePseudo("isHovered"),visited:dynamicStatePseudo("isVisited"),active:dynamicStatePseudo("isActive")};__name(dynamicStatePseudo,"dynamicStatePseudo")}});function verifyPseudoArgs(func,name,subselect,argIndex){if(subselect===null){if(func.length>argIndex)throw new Error(`Pseudo-class :${name} requires an argument`)}else if(func.length===argIndex)throw new Error(`Pseudo-class :${name} doesn't have any arguments`)}var pseudos,init_pseudos=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js"(){pseudos={empty(elem,{adapter}){return!adapter.getChildren(elem).some(elem2=>adapter.isTag(elem2)||adapter.getText(elem2)!=="")},"first-child"(elem,{adapter,equals}){if(adapter.prevElementSibling)return adapter.prevElementSibling(elem)==null;let firstChild=adapter.getSiblings(elem).find(elem2=>adapter.isTag(elem2));return firstChild!=null&&equals(elem,firstChild)},"last-child"(elem,{adapter,equals}){let siblings2=adapter.getSiblings(elem);for(let i=siblings2.length-1;i>=0;i--){if(equals(elem,siblings2[i]))return!0;if(adapter.isTag(siblings2[i]))break}return!1},"first-of-type"(elem,{adapter,equals}){let siblings2=adapter.getSiblings(elem),elemName=adapter.getName(elem);for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))return!0;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName)break}return!1},"last-of-type"(elem,{adapter,equals}){let siblings2=adapter.getSiblings(elem),elemName=adapter.getName(elem);for(let i=siblings2.length-1;i>=0;i--){let currentSibling=siblings2[i];if(equals(elem,currentSibling))return!0;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName)break}return!1},"only-of-type"(elem,{adapter,equals}){let elemName=adapter.getName(elem);return adapter.getSiblings(elem).every(sibling=>equals(elem,sibling)||!adapter.isTag(sibling)||adapter.getName(sibling)!==elemName)},"only-child"(elem,{adapter,equals}){return adapter.getSiblings(elem).every(sibling=>equals(elem,sibling)||!adapter.isTag(sibling))}};__name(verifyPseudoArgs,"verifyPseudoArgs")}});var aliases,init_aliases=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js"(){aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:`:is(
|
|
671
|
+
`:getText(node.children):isCDATA(node)?getText(node.children):isText(node)?node.data:""}function textContent(node){return Array.isArray(node)?node.map(textContent).join(""):hasChildren(node)&&!isComment(node)?textContent(node.children):isText(node)?node.data:""}function innerText(node){return Array.isArray(node)?node.map(innerText).join(""):hasChildren(node)&&(node.type===ElementType.Tag||isCDATA(node))?innerText(node.children):isText(node)?node.data:""}var init_stringify2=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/stringify.js"(){init_esm3();init_esm5();init_esm2();__name(getOuterHTML,"getOuterHTML");__name(getInnerHTML,"getInnerHTML");__name(getText,"getText");__name(textContent,"textContent");__name(innerText,"innerText")}});function getChildren(elem){return hasChildren(elem)?elem.children:[]}function getParent(elem){return elem.parent||null}function getSiblings(elem){let parent2=getParent(elem);if(parent2!=null)return getChildren(parent2);let siblings2=[elem],{prev:prev2,next:next2}=elem;for(;prev2!=null;)siblings2.unshift(prev2),{prev:prev2}=prev2;for(;next2!=null;)siblings2.push(next2),{next:next2}=next2;return siblings2}function getAttributeValue(elem,name){var _a4;return(_a4=elem.attribs)===null||_a4===void 0?void 0:_a4[name]}function hasAttrib(elem,name){return elem.attribs!=null&&Object.prototype.hasOwnProperty.call(elem.attribs,name)&&elem.attribs[name]!=null}function getName(elem){return elem.name}function nextElementSibling(elem){let{next:next2}=elem;for(;next2!==null&&!isTag2(next2);)({next:next2}=next2);return next2}function prevElementSibling(elem){let{prev:prev2}=elem;for(;prev2!==null&&!isTag2(prev2);)({prev:prev2}=prev2);return prev2}var init_traversal=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/traversal.js"(){init_esm3();__name(getChildren,"getChildren");__name(getParent,"getParent");__name(getSiblings,"getSiblings");__name(getAttributeValue,"getAttributeValue");__name(hasAttrib,"hasAttrib");__name(getName,"getName");__name(nextElementSibling,"nextElementSibling");__name(prevElementSibling,"prevElementSibling")}});function removeElement(elem){if(elem.prev&&(elem.prev.next=elem.next),elem.next&&(elem.next.prev=elem.prev),elem.parent){let childs=elem.parent.children,childsIndex=childs.lastIndexOf(elem);childsIndex>=0&&childs.splice(childsIndex,1)}elem.next=null,elem.prev=null,elem.parent=null}function replaceElement(elem,replacement){let prev2=replacement.prev=elem.prev;prev2&&(prev2.next=replacement);let next2=replacement.next=elem.next;next2&&(next2.prev=replacement);let parent2=replacement.parent=elem.parent;if(parent2){let childs=parent2.children;childs[childs.lastIndexOf(elem)]=replacement,elem.parent=null}}function appendChild(parent2,child){if(removeElement(child),child.next=null,child.parent=parent2,parent2.children.push(child)>1){let sibling=parent2.children[parent2.children.length-2];sibling.next=child,child.prev=sibling}else child.prev=null}function append(elem,next2){removeElement(next2);let{parent:parent2}=elem,currNext=elem.next;if(next2.next=currNext,next2.prev=elem,elem.next=next2,next2.parent=parent2,currNext){if(currNext.prev=next2,parent2){let childs=parent2.children;childs.splice(childs.lastIndexOf(currNext),0,next2)}}else parent2&&parent2.children.push(next2)}function prependChild(parent2,child){if(removeElement(child),child.parent=parent2,child.prev=null,parent2.children.unshift(child)!==1){let sibling=parent2.children[1];sibling.prev=child,child.next=sibling}else child.next=null}function prepend(elem,prev2){removeElement(prev2);let{parent:parent2}=elem;if(parent2){let childs=parent2.children;childs.splice(childs.indexOf(elem),0,prev2)}elem.prev&&(elem.prev.next=prev2),prev2.parent=parent2,prev2.prev=elem.prev,prev2.next=elem,elem.prev=prev2}var init_manipulation=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/manipulation.js"(){__name(removeElement,"removeElement");__name(replaceElement,"replaceElement");__name(appendChild,"appendChild");__name(append,"append");__name(prependChild,"prependChild");__name(prepend,"prepend")}});function filter(test,node,recurse=!0,limit=1/0){return find(test,Array.isArray(node)?node:[node],recurse,limit)}function find(test,nodes,recurse,limit){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(indexStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let elem=nodeStack[0][indexStack[0]++];if(test(elem)&&(result.push(elem),--limit<=0))return result;recurse&&hasChildren(elem)&&elem.children.length>0&&(indexStack.unshift(0),nodeStack.unshift(elem.children))}}function findOneChild(test,nodes){return nodes.find(test)}function findOne(test,nodes,recurse=!0){let searchedNodes=Array.isArray(nodes)?nodes:[nodes];for(let i=0;i<searchedNodes.length;i++){let node=searchedNodes[i];if(isTag2(node)&&test(node))return node;if(recurse&&hasChildren(node)&&node.children.length>0){let found=findOne(test,node.children,!0);if(found)return found}}return null}function existsOne(test,nodes){return(Array.isArray(nodes)?nodes:[nodes]).some(node=>isTag2(node)&&test(node)||hasChildren(node)&&existsOne(test,node.children))}function findAll(test,nodes){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(nodeStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let elem=nodeStack[0][indexStack[0]++];isTag2(elem)&&test(elem)&&result.push(elem),hasChildren(elem)&&elem.children.length>0&&(indexStack.unshift(0),nodeStack.unshift(elem.children))}}var init_querying=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/querying.js"(){init_esm3();__name(filter,"filter");__name(find,"find");__name(findOneChild,"findOneChild");__name(findOne,"findOne");__name(existsOne,"existsOne");__name(findAll,"findAll")}});function getAttribCheck(attrib,value){return typeof value=="function"?elem=>isTag2(elem)&&value(elem.attribs[attrib]):elem=>isTag2(elem)&&elem.attribs[attrib]===value}function combineFuncs(a,b){return elem=>a(elem)||b(elem)}function compileTest(options){let funcs=Object.keys(options).map(key=>{let value=options[key];return Object.prototype.hasOwnProperty.call(Checks,key)?Checks[key](value):getAttribCheck(key,value)});return funcs.length===0?null:funcs.reduce(combineFuncs)}function testElement(options,node){let test=compileTest(options);return test?test(node):!0}function getElements(options,nodes,recurse,limit=1/0){let test=compileTest(options);return test?filter(test,nodes,recurse,limit):[]}function getElementById(id,nodes,recurse=!0){return Array.isArray(nodes)||(nodes=[nodes]),findOne(getAttribCheck("id",id),nodes,recurse)}function getElementsByTagName(tagName,nodes,recurse=!0,limit=1/0){return filter(Checks.tag_name(tagName),nodes,recurse,limit)}function getElementsByClassName(className,nodes,recurse=!0,limit=1/0){return filter(getAttribCheck("class",className),nodes,recurse,limit)}function getElementsByTagType(type,nodes,recurse=!0,limit=1/0){return filter(Checks.tag_type(type),nodes,recurse,limit)}var Checks,init_legacy=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/legacy.js"(){init_esm3();init_querying();Checks={tag_name(name){return typeof name=="function"?elem=>isTag2(elem)&&name(elem.name):name==="*"?isTag2:elem=>isTag2(elem)&&elem.name===name},tag_type(type){return typeof type=="function"?elem=>type(elem.type):elem=>elem.type===type},tag_contains(data2){return typeof data2=="function"?elem=>isText(elem)&&data2(elem.data):elem=>isText(elem)&&elem.data===data2}};__name(getAttribCheck,"getAttribCheck");__name(combineFuncs,"combineFuncs");__name(compileTest,"compileTest");__name(testElement,"testElement");__name(getElements,"getElements");__name(getElementById,"getElementById");__name(getElementsByTagName,"getElementsByTagName");__name(getElementsByClassName,"getElementsByClassName");__name(getElementsByTagType,"getElementsByTagType")}});function removeSubsets(nodes){let idx=nodes.length;for(;--idx>=0;){let node=nodes[idx];if(idx>0&&nodes.lastIndexOf(node,idx-1)>=0){nodes.splice(idx,1);continue}for(let ancestor=node.parent;ancestor;ancestor=ancestor.parent)if(nodes.includes(ancestor)){nodes.splice(idx,1);break}}return nodes}function compareDocumentPosition(nodeA,nodeB){let aParents=[],bParents=[];if(nodeA===nodeB)return 0;let current=hasChildren(nodeA)?nodeA:nodeA.parent;for(;current;)aParents.unshift(current),current=current.parent;for(current=hasChildren(nodeB)?nodeB:nodeB.parent;current;)bParents.unshift(current),current=current.parent;let maxIdx=Math.min(aParents.length,bParents.length),idx=0;for(;idx<maxIdx&&aParents[idx]===bParents[idx];)idx++;if(idx===0)return DocumentPosition.DISCONNECTED;let sharedParent=aParents[idx-1],siblings2=sharedParent.children,aSibling=aParents[idx],bSibling=bParents[idx];return siblings2.indexOf(aSibling)>siblings2.indexOf(bSibling)?sharedParent===nodeB?DocumentPosition.FOLLOWING|DocumentPosition.CONTAINED_BY:DocumentPosition.FOLLOWING:sharedParent===nodeA?DocumentPosition.PRECEDING|DocumentPosition.CONTAINS:DocumentPosition.PRECEDING}function uniqueSort(nodes){return nodes=nodes.filter((node,i,arr)=>!arr.includes(node,i+1)),nodes.sort((a,b)=>{let relative3=compareDocumentPosition(a,b);return relative3&DocumentPosition.PRECEDING?-1:relative3&DocumentPosition.FOLLOWING?1:0}),nodes}var DocumentPosition,init_helpers=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/helpers.js"(){init_esm3();__name(removeSubsets,"removeSubsets");(function(DocumentPosition2){DocumentPosition2[DocumentPosition2.DISCONNECTED=1]="DISCONNECTED",DocumentPosition2[DocumentPosition2.PRECEDING=2]="PRECEDING",DocumentPosition2[DocumentPosition2.FOLLOWING=4]="FOLLOWING",DocumentPosition2[DocumentPosition2.CONTAINS=8]="CONTAINS",DocumentPosition2[DocumentPosition2.CONTAINED_BY=16]="CONTAINED_BY"})(DocumentPosition||(DocumentPosition={}));__name(compareDocumentPosition,"compareDocumentPosition");__name(uniqueSort,"uniqueSort")}});function getFeed(doc){let feedRoot=getOneElement(isValidFeed,doc);return feedRoot?feedRoot.name==="feed"?getAtomFeed(feedRoot):getRssFeed(feedRoot):null}function getAtomFeed(feedRoot){var _a4;let childs=feedRoot.children,feed={type:"atom",items:getElementsByTagName("entry",childs).map(item=>{var _a5;let{children:children2}=item,entry={media:getMediaElements(children2)};addConditionally(entry,"id","id",children2),addConditionally(entry,"title","title",children2);let href2=(_a5=getOneElement("link",children2))===null||_a5===void 0?void 0:_a5.attribs.href;href2&&(entry.link=href2);let description=fetch2("summary",children2)||fetch2("content",children2);description&&(entry.description=description);let pubDate=fetch2("updated",children2);return pubDate&&(entry.pubDate=new Date(pubDate)),entry})};addConditionally(feed,"id","id",childs),addConditionally(feed,"title","title",childs);let href=(_a4=getOneElement("link",childs))===null||_a4===void 0?void 0:_a4.attribs.href;href&&(feed.link=href),addConditionally(feed,"description","subtitle",childs);let updated=fetch2("updated",childs);return updated&&(feed.updated=new Date(updated)),addConditionally(feed,"author","email",childs,!0),feed}function getRssFeed(feedRoot){var _a4,_b;let childs=(_b=(_a4=getOneElement("channel",feedRoot.children))===null||_a4===void 0?void 0:_a4.children)!==null&&_b!==void 0?_b:[],feed={type:feedRoot.name.substr(0,3),id:"",items:getElementsByTagName("item",feedRoot.children).map(item=>{let{children:children2}=item,entry={media:getMediaElements(children2)};addConditionally(entry,"id","guid",children2),addConditionally(entry,"title","title",children2),addConditionally(entry,"link","link",children2),addConditionally(entry,"description","description",children2);let pubDate=fetch2("pubDate",children2)||fetch2("dc:date",children2);return pubDate&&(entry.pubDate=new Date(pubDate)),entry})};addConditionally(feed,"title","title",childs),addConditionally(feed,"link","link",childs),addConditionally(feed,"description","description",childs);let updated=fetch2("lastBuildDate",childs);return updated&&(feed.updated=new Date(updated)),addConditionally(feed,"author","managingEditor",childs,!0),feed}function getMediaElements(where){return getElementsByTagName("media:content",where).map(elem=>{let{attribs}=elem,media={medium:attribs.medium,isDefault:!!attribs.isDefault};for(let attrib of MEDIA_KEYS_STRING)attribs[attrib]&&(media[attrib]=attribs[attrib]);for(let attrib of MEDIA_KEYS_INT)attribs[attrib]&&(media[attrib]=parseInt(attribs[attrib],10));return attribs.expression&&(media.expression=attribs.expression),media})}function getOneElement(tagName,node){return getElementsByTagName(tagName,node,!0,1)[0]}function fetch2(tagName,where,recurse=!1){return textContent(getElementsByTagName(tagName,where,recurse,1)).trim()}function addConditionally(obj,prop2,tagName,where,recurse=!1){let val2=fetch2(tagName,where,recurse);val2&&(obj[prop2]=val2)}function isValidFeed(value){return value==="rss"||value==="feed"||value==="rdf:RDF"}var MEDIA_KEYS_STRING,MEDIA_KEYS_INT,init_feeds=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/feeds.js"(){init_stringify2();init_legacy();__name(getFeed,"getFeed");__name(getAtomFeed,"getAtomFeed");__name(getRssFeed,"getRssFeed");MEDIA_KEYS_STRING=["url","type","lang"],MEDIA_KEYS_INT=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];__name(getMediaElements,"getMediaElements");__name(getOneElement,"getOneElement");__name(fetch2,"fetch");__name(addConditionally,"addConditionally");__name(isValidFeed,"isValidFeed")}});var esm_exports2={};__export(esm_exports2,{DocumentPosition:()=>DocumentPosition,append:()=>append,appendChild:()=>appendChild,compareDocumentPosition:()=>compareDocumentPosition,existsOne:()=>existsOne,filter:()=>filter,find:()=>find,findAll:()=>findAll,findOne:()=>findOne,findOneChild:()=>findOneChild,getAttributeValue:()=>getAttributeValue,getChildren:()=>getChildren,getElementById:()=>getElementById,getElements:()=>getElements,getElementsByClassName:()=>getElementsByClassName,getElementsByTagName:()=>getElementsByTagName,getElementsByTagType:()=>getElementsByTagType,getFeed:()=>getFeed,getInnerHTML:()=>getInnerHTML,getName:()=>getName,getOuterHTML:()=>getOuterHTML,getParent:()=>getParent,getSiblings:()=>getSiblings,getText:()=>getText,hasAttrib:()=>hasAttrib,hasChildren:()=>hasChildren,innerText:()=>innerText,isCDATA:()=>isCDATA,isComment:()=>isComment,isDocument:()=>isDocument,isTag:()=>isTag2,isText:()=>isText,nextElementSibling:()=>nextElementSibling,prepend:()=>prepend,prependChild:()=>prependChild,prevElementSibling:()=>prevElementSibling,removeElement:()=>removeElement,removeSubsets:()=>removeSubsets,replaceElement:()=>replaceElement,testElement:()=>testElement,textContent:()=>textContent,uniqueSort:()=>uniqueSort});var init_esm6=__esm({"../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/index.js"(){init_stringify2();init_traversal();init_manipulation();init_querying();init_legacy();init_helpers();init_feeds();init_esm3()}});var static_exports={};__export(static_exports,{contains:()=>contains,extract:()=>extract,html:()=>html,merge:()=>merge,parseHTML:()=>parseHTML,root:()=>root,text:()=>text,xml:()=>xml});function render3(that,dom,options){return that?that(dom??that._root.children,null,void 0,options).toString():""}function isOptions(dom,options){return!options&&typeof dom=="object"&&dom!=null&&!("length"in dom)&&!("type"in dom)}function html(dom,options){let toRender=isOptions(dom)?(options=dom,void 0):dom,opts={...this===null||this===void 0?void 0:this._options,...flattenOptions(options)};return render3(this,toRender,opts)}function xml(dom){let options={...this._options,xmlMode:!0};return render3(this,dom,options)}function text(elements){let elems=elements??(this?this.root():[]),ret="";for(let i=0;i<elems.length;i++)ret+=textContent(elems[i]);return ret}function parseHTML(data2,context,keepScripts=typeof context=="boolean"?context:!1){if(!data2||typeof data2!="string")return null;typeof context=="boolean"&&(keepScripts=context);let parsed=this.load(data2,this._options,!1);return keepScripts||parsed("script").remove(),[...parsed.root()[0].children]}function root(){return this(this._root)}function contains(container,contained){if(contained===container)return!1;let next2=contained;for(;next2&&next2!==next2.parent;)if(next2=next2.parent,next2===container)return!0;return!1}function extract(map2){return this.root().extract(map2)}function merge(arr1,arr2){if(!isArrayLike(arr1)||!isArrayLike(arr2))return;let newLength=arr1.length,len=+arr2.length;for(let i=0;i<len;i++)arr1[newLength++]=arr2[i];return arr1.length=newLength,arr1}function isArrayLike(item){if(Array.isArray(item))return!0;if(typeof item!="object"||item===null||!("length"in item)||typeof item.length!="number"||item.length<0)return!1;for(let i=0;i<item.length;i++)if(!(i in item))return!1;return!0}var init_static=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/static.js"(){init_esm6();init_options();__name(render3,"render");__name(isOptions,"isOptions");__name(html,"html");__name(xml,"xml");__name(text,"text");__name(parseHTML,"parseHTML");__name(root,"root");__name(contains,"contains");__name(extract,"extract");__name(merge,"merge");__name(isArrayLike,"isArrayLike")}});function isCheerio(maybeCheerio){return maybeCheerio.cheerio!=null}function camelCase2(str){return str.replace(/[._-](\w|$)/g,(_,x)=>x.toUpperCase())}function cssCase(str){return str.replace(/[A-Z]/g,"-$&").toLowerCase()}function domEach(array,fn){let len=array.length;for(let i=0;i<len;i++)fn(array[i],i);return array}function isHtml(str){if(typeof str!="string")return!1;let tagStart=str.indexOf("<");if(tagStart===-1||tagStart>str.length-3)return!1;let tagChar=str.charCodeAt(tagStart+1);return(tagChar>=CharacterCode.LowerA&&tagChar<=CharacterCode.LowerZ||tagChar>=CharacterCode.UpperA&&tagChar<=CharacterCode.UpperZ||tagChar===CharacterCode.Exclamation)&&str.includes(">",tagStart+2)}var CharacterCode,init_utils2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/utils.js"(){__name(isCheerio,"isCheerio");__name(camelCase2,"camelCase");__name(cssCase,"cssCase");__name(domEach,"domEach");(function(CharacterCode2){CharacterCode2[CharacterCode2.LowerA=97]="LowerA",CharacterCode2[CharacterCode2.LowerZ=122]="LowerZ",CharacterCode2[CharacterCode2.UpperA=65]="UpperA",CharacterCode2[CharacterCode2.UpperZ=90]="UpperZ",CharacterCode2[CharacterCode2.Exclamation=33]="Exclamation"})(CharacterCode||(CharacterCode={}));__name(isHtml,"isHtml")}});function replaceCodePoint2(codePoint){var _a4;return codePoint>=55296&&codePoint<=57343||codePoint>1114111?65533:(_a4=decodeMap2.get(codePoint))!==null&&_a4!==void 0?_a4:codePoint}var _a2,decodeMap2,fromCodePoint2,init_decode_codepoint2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js"(){decodeMap2=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),fromCodePoint2=(_a2=String.fromCodePoint)!==null&&_a2!==void 0?_a2:(codePoint=>{let output="";return codePoint>65535&&(codePoint-=65536,output+=String.fromCharCode(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),output+=String.fromCharCode(codePoint),output});__name(replaceCodePoint2,"replaceCodePoint")}});function decodeBase64(input){let binary=typeof atob=="function"?atob(input):typeof Buffer.from=="function"?Buffer.from(input,"base64").toString("binary"):new Buffer(input,"base64").toString("binary"),evenLength=binary.length&-2,out=new Uint16Array(evenLength/2);for(let index2=0,outIndex=0;index2<evenLength;index2+=2){let lo=binary.charCodeAt(index2),hi=binary.charCodeAt(index2+1);out[outIndex++]=lo|hi<<8}return out}var init_decode_shared=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/decode-shared.js"(){__name(decodeBase64,"decodeBase64")}});var htmlDecodeTree,init_decode_data_html2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js"(){init_decode_shared();htmlDecodeTree=decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")}});var xmlDecodeTree,init_decode_data_xml2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.js"(){init_decode_shared();xmlDecodeTree=decodeBase64("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg")}});var BinTrieFlags2,init_bin_trie_flags=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js"(){(function(BinTrieFlags3){BinTrieFlags3[BinTrieFlags3.VALUE_LENGTH=49152]="VALUE_LENGTH",BinTrieFlags3[BinTrieFlags3.FLAG13=8192]="FLAG13",BinTrieFlags3[BinTrieFlags3.BRANCH_LENGTH=8064]="BRANCH_LENGTH",BinTrieFlags3[BinTrieFlags3.JUMP_TABLE=127]="JUMP_TABLE"})(BinTrieFlags2||(BinTrieFlags2={}))}});function isNumber2(code2){return code2>=CharCodes2.ZERO&&code2<=CharCodes2.NINE}function isHexadecimalCharacter2(code2){return code2>=CharCodes2.UPPER_A&&code2<=CharCodes2.UPPER_F||code2>=CharCodes2.LOWER_A&&code2<=CharCodes2.LOWER_F}function isAsciiAlphaNumeric2(code2){return code2>=CharCodes2.UPPER_A&&code2<=CharCodes2.UPPER_Z||code2>=CharCodes2.LOWER_A&&code2<=CharCodes2.LOWER_Z||isNumber2(code2)}function isEntityInAttributeInvalidEnd2(code2){return code2===CharCodes2.EQUALS||isAsciiAlphaNumeric2(code2)}function determineBranch2(decodeTree,current,nodeIndex,char){let branchCount=(current&BinTrieFlags2.BRANCH_LENGTH)>>7,jumpOffset=current&BinTrieFlags2.JUMP_TABLE;if(branchCount===0)return jumpOffset!==0&&char===jumpOffset?nodeIndex:-1;if(jumpOffset){let value=char-jumpOffset;return value<0||value>=branchCount?-1:decodeTree[nodeIndex+value]-1}let packedKeySlots=branchCount+1>>1,lo=0,hi=branchCount-1;for(;lo<=hi;){let mid=lo+hi>>>1,slot=mid>>1,midKey=decodeTree[nodeIndex+slot]>>(mid&1)*8&255;if(midKey<char)lo=mid+1;else if(midKey>char)hi=mid-1;else return decodeTree[nodeIndex+packedKeySlots+mid]}return-1}var CharCodes2,TO_LOWER_BIT2,EntityDecoderState2,DecodingMode2,EntityDecoder2,init_decode2=__esm({"../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode.js"(){init_decode_codepoint2();init_decode_data_html2();init_decode_data_xml2();init_bin_trie_flags();init_decode_codepoint2();init_decode_data_html2();init_decode_data_xml2();(function(CharCodes4){CharCodes4[CharCodes4.NUM=35]="NUM",CharCodes4[CharCodes4.SEMI=59]="SEMI",CharCodes4[CharCodes4.EQUALS=61]="EQUALS",CharCodes4[CharCodes4.ZERO=48]="ZERO",CharCodes4[CharCodes4.NINE=57]="NINE",CharCodes4[CharCodes4.LOWER_A=97]="LOWER_A",CharCodes4[CharCodes4.LOWER_F=102]="LOWER_F",CharCodes4[CharCodes4.LOWER_X=120]="LOWER_X",CharCodes4[CharCodes4.LOWER_Z=122]="LOWER_Z",CharCodes4[CharCodes4.UPPER_A=65]="UPPER_A",CharCodes4[CharCodes4.UPPER_F=70]="UPPER_F",CharCodes4[CharCodes4.UPPER_Z=90]="UPPER_Z"})(CharCodes2||(CharCodes2={}));TO_LOWER_BIT2=32;__name(isNumber2,"isNumber");__name(isHexadecimalCharacter2,"isHexadecimalCharacter");__name(isAsciiAlphaNumeric2,"isAsciiAlphaNumeric");__name(isEntityInAttributeInvalidEnd2,"isEntityInAttributeInvalidEnd");(function(EntityDecoderState3){EntityDecoderState3[EntityDecoderState3.EntityStart=0]="EntityStart",EntityDecoderState3[EntityDecoderState3.NumericStart=1]="NumericStart",EntityDecoderState3[EntityDecoderState3.NumericDecimal=2]="NumericDecimal",EntityDecoderState3[EntityDecoderState3.NumericHex=3]="NumericHex",EntityDecoderState3[EntityDecoderState3.NamedEntity=4]="NamedEntity"})(EntityDecoderState2||(EntityDecoderState2={}));(function(DecodingMode3){DecodingMode3[DecodingMode3.Legacy=0]="Legacy",DecodingMode3[DecodingMode3.Strict=1]="Strict",DecodingMode3[DecodingMode3.Attribute=2]="Attribute"})(DecodingMode2||(DecodingMode2={}));EntityDecoder2=class{static{__name(this,"EntityDecoder")}constructor(decodeTree,emitCodePoint,errors){this.decodeTree=decodeTree,this.emitCodePoint=emitCodePoint,this.errors=errors,this.state=EntityDecoderState2.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=DecodingMode2.Strict,this.runConsumed=0}startEntity(decodeMode){this.decodeMode=decodeMode,this.state=EntityDecoderState2.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(input,offset){switch(this.state){case EntityDecoderState2.EntityStart:return input.charCodeAt(offset)===CharCodes2.NUM?(this.state=EntityDecoderState2.NumericStart,this.consumed+=1,this.stateNumericStart(input,offset+1)):(this.state=EntityDecoderState2.NamedEntity,this.stateNamedEntity(input,offset));case EntityDecoderState2.NumericStart:return this.stateNumericStart(input,offset);case EntityDecoderState2.NumericDecimal:return this.stateNumericDecimal(input,offset);case EntityDecoderState2.NumericHex:return this.stateNumericHex(input,offset);case EntityDecoderState2.NamedEntity:return this.stateNamedEntity(input,offset)}}stateNumericStart(input,offset){return offset>=input.length?-1:(input.charCodeAt(offset)|TO_LOWER_BIT2)===CharCodes2.LOWER_X?(this.state=EntityDecoderState2.NumericHex,this.consumed+=1,this.stateNumericHex(input,offset+1)):(this.state=EntityDecoderState2.NumericDecimal,this.stateNumericDecimal(input,offset))}stateNumericHex(input,offset){for(;offset<input.length;){let char=input.charCodeAt(offset);if(isNumber2(char)||isHexadecimalCharacter2(char)){let digit=char<=CharCodes2.NINE?char-CharCodes2.ZERO:(char|TO_LOWER_BIT2)-CharCodes2.LOWER_A+10;this.result=this.result*16+digit,this.consumed++,offset++}else return this.emitNumericEntity(char,3)}return-1}stateNumericDecimal(input,offset){for(;offset<input.length;){let char=input.charCodeAt(offset);if(isNumber2(char))this.result=this.result*10+(char-CharCodes2.ZERO),this.consumed++,offset++;else return this.emitNumericEntity(char,2)}return-1}emitNumericEntity(lastCp,expectedLength){var _a4;if(this.consumed<=expectedLength)return(_a4=this.errors)===null||_a4===void 0||_a4.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(lastCp===CharCodes2.SEMI)this.consumed+=1;else if(this.decodeMode===DecodingMode2.Strict)return 0;return this.emitCodePoint(replaceCodePoint2(this.result),this.consumed),this.errors&&(lastCp!==CharCodes2.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(input,offset){let{decodeTree}=this,current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags2.VALUE_LENGTH)>>14;for(;offset<input.length;){if(valueLength===0&&(current&BinTrieFlags2.FLAG13)!==0){let runLength=(current&BinTrieFlags2.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let firstChar=current&BinTrieFlags2.JUMP_TABLE;if(input.charCodeAt(offset)!==firstChar)return this.result===0?0:this.emitNotTerminatedNamedEntity();offset++,this.excess++,this.runConsumed++}for(;this.runConsumed<runLength;){if(offset>=input.length)return-1;let charIndexInPacked=this.runConsumed-1,packedWord=decodeTree[this.treeIndex+1+(charIndexInPacked>>1)],expectedChar=charIndexInPacked%2===0?packedWord&255:packedWord>>8&255;if(input.charCodeAt(offset)!==expectedChar)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();offset++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(runLength>>1),current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags2.VALUE_LENGTH)>>14}if(offset>=input.length)break;let char=input.charCodeAt(offset);if(char===CharCodes2.SEMI&&valueLength!==0&&(current&BinTrieFlags2.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,valueLength,this.consumed+this.excess);if(this.treeIndex=determineBranch2(decodeTree,current,this.treeIndex+Math.max(1,valueLength),char),this.treeIndex<0)return this.result===0||this.decodeMode===DecodingMode2.Attribute&&(valueLength===0||isEntityInAttributeInvalidEnd2(char))?0:this.emitNotTerminatedNamedEntity();if(current=decodeTree[this.treeIndex],valueLength=(current&BinTrieFlags2.VALUE_LENGTH)>>14,valueLength!==0){if(char===CharCodes2.SEMI)return this.emitNamedEntityData(this.treeIndex,valueLength,this.consumed+this.excess);this.decodeMode!==DecodingMode2.Strict&&(current&BinTrieFlags2.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}offset++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var _a4;let{result,decodeTree}=this,valueLength=(decodeTree[result]&BinTrieFlags2.VALUE_LENGTH)>>14;return this.emitNamedEntityData(result,valueLength,this.consumed),(_a4=this.errors)===null||_a4===void 0||_a4.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(result,valueLength,consumed){let{decodeTree}=this;return this.emitCodePoint(valueLength===1?decodeTree[result]&~(BinTrieFlags2.VALUE_LENGTH|BinTrieFlags2.FLAG13):decodeTree[result+1],consumed),valueLength===3&&this.emitCodePoint(decodeTree[result+2],consumed),consumed}end(){var _a4;switch(this.state){case EntityDecoderState2.NamedEntity:return this.result!==0&&(this.decodeMode!==DecodingMode2.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case EntityDecoderState2.NumericDecimal:return this.emitNumericEntity(0,2);case EntityDecoderState2.NumericHex:return this.emitNumericEntity(0,3);case EntityDecoderState2.NumericStart:return(_a4=this.errors)===null||_a4===void 0||_a4.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case EntityDecoderState2.EntityStart:return 0}}};__name(determineBranch2,"determineBranch")}});function isWhitespace(c2){return c2===CharCodes3.Space||c2===CharCodes3.NewLine||c2===CharCodes3.Tab||c2===CharCodes3.FormFeed||c2===CharCodes3.CarriageReturn}function isEndOfTagSection(c2){return c2===CharCodes3.Slash||c2===CharCodes3.Gt||isWhitespace(c2)}function isASCIIAlpha(c2){return c2>=CharCodes3.LowerA&&c2<=CharCodes3.LowerZ||c2>=CharCodes3.UpperA&&c2<=CharCodes3.UpperZ}var CharCodes3,State,QuoteType,Sequences,Tokenizer,init_Tokenizer=__esm({"../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/Tokenizer.js"(){init_decode2();(function(CharCodes4){CharCodes4[CharCodes4.Tab=9]="Tab",CharCodes4[CharCodes4.NewLine=10]="NewLine",CharCodes4[CharCodes4.FormFeed=12]="FormFeed",CharCodes4[CharCodes4.CarriageReturn=13]="CarriageReturn",CharCodes4[CharCodes4.Space=32]="Space",CharCodes4[CharCodes4.ExclamationMark=33]="ExclamationMark",CharCodes4[CharCodes4.Number=35]="Number",CharCodes4[CharCodes4.Amp=38]="Amp",CharCodes4[CharCodes4.SingleQuote=39]="SingleQuote",CharCodes4[CharCodes4.DoubleQuote=34]="DoubleQuote",CharCodes4[CharCodes4.Dash=45]="Dash",CharCodes4[CharCodes4.Slash=47]="Slash",CharCodes4[CharCodes4.Zero=48]="Zero",CharCodes4[CharCodes4.Nine=57]="Nine",CharCodes4[CharCodes4.Semi=59]="Semi",CharCodes4[CharCodes4.Lt=60]="Lt",CharCodes4[CharCodes4.Eq=61]="Eq",CharCodes4[CharCodes4.Gt=62]="Gt",CharCodes4[CharCodes4.Questionmark=63]="Questionmark",CharCodes4[CharCodes4.UpperA=65]="UpperA",CharCodes4[CharCodes4.LowerA=97]="LowerA",CharCodes4[CharCodes4.UpperF=70]="UpperF",CharCodes4[CharCodes4.LowerF=102]="LowerF",CharCodes4[CharCodes4.UpperZ=90]="UpperZ",CharCodes4[CharCodes4.LowerZ=122]="LowerZ",CharCodes4[CharCodes4.LowerX=120]="LowerX",CharCodes4[CharCodes4.OpeningSquareBracket=91]="OpeningSquareBracket"})(CharCodes3||(CharCodes3={}));(function(State2){State2[State2.Text=1]="Text",State2[State2.BeforeTagName=2]="BeforeTagName",State2[State2.InTagName=3]="InTagName",State2[State2.InSelfClosingTag=4]="InSelfClosingTag",State2[State2.BeforeClosingTagName=5]="BeforeClosingTagName",State2[State2.InClosingTagName=6]="InClosingTagName",State2[State2.AfterClosingTagName=7]="AfterClosingTagName",State2[State2.BeforeAttributeName=8]="BeforeAttributeName",State2[State2.InAttributeName=9]="InAttributeName",State2[State2.AfterAttributeName=10]="AfterAttributeName",State2[State2.BeforeAttributeValue=11]="BeforeAttributeValue",State2[State2.InAttributeValueDq=12]="InAttributeValueDq",State2[State2.InAttributeValueSq=13]="InAttributeValueSq",State2[State2.InAttributeValueNq=14]="InAttributeValueNq",State2[State2.BeforeDeclaration=15]="BeforeDeclaration",State2[State2.InDeclaration=16]="InDeclaration",State2[State2.InProcessingInstruction=17]="InProcessingInstruction",State2[State2.BeforeComment=18]="BeforeComment",State2[State2.CDATASequence=19]="CDATASequence",State2[State2.InSpecialComment=20]="InSpecialComment",State2[State2.InCommentLike=21]="InCommentLike",State2[State2.BeforeSpecialS=22]="BeforeSpecialS",State2[State2.BeforeSpecialT=23]="BeforeSpecialT",State2[State2.SpecialStartSequence=24]="SpecialStartSequence",State2[State2.InSpecialTag=25]="InSpecialTag",State2[State2.InEntity=26]="InEntity"})(State||(State={}));__name(isWhitespace,"isWhitespace");__name(isEndOfTagSection,"isEndOfTagSection");__name(isASCIIAlpha,"isASCIIAlpha");(function(QuoteType2){QuoteType2[QuoteType2.NoValue=0]="NoValue",QuoteType2[QuoteType2.Unquoted=1]="Unquoted",QuoteType2[QuoteType2.Single=2]="Single",QuoteType2[QuoteType2.Double=3]="Double"})(QuoteType||(QuoteType={}));Sequences={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])},Tokenizer=class{static{__name(this,"Tokenizer")}constructor({xmlMode=!1,decodeEntities=!0},cbs){this.cbs=cbs,this.state=State.Text,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=State.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=xmlMode,this.decodeEntities=decodeEntities,this.entityDecoder=new EntityDecoder2(xmlMode?xmlDecodeTree:htmlDecodeTree,(cp2,consumed)=>this.emitCodePoint(cp2,consumed))}reset(){this.state=State.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=State.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(chunk){this.offset+=this.buffer.length,this.buffer=chunk,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(c2){c2===CharCodes3.Lt||!this.decodeEntities&&this.fastForwardTo(CharCodes3.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=State.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity()}stateSpecialStartSequence(c2){let isEnd=this.sequenceIndex===this.currentSequence.length;if(!(isEnd?isEndOfTagSection(c2):(c2|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!isEnd){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=State.InTagName,this.stateInTagName(c2)}stateInSpecialTag(c2){if(this.sequenceIndex===this.currentSequence.length){if(c2===CharCodes3.Gt||isWhitespace(c2)){let endOfText=this.index-this.currentSequence.length;if(this.sectionStart<endOfText){let actualIndex=this.index;this.index=endOfText,this.cbs.ontext(this.sectionStart,endOfText),this.index=actualIndex}this.isSpecial=!1,this.sectionStart=endOfText+2,this.stateInClosingTagName(c2);return}this.sequenceIndex=0}(c2|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===Sequences.TitleEnd?this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity():this.fastForwardTo(CharCodes3.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(c2===CharCodes3.Lt)}stateCDATASequence(c2){c2===Sequences.Cdata[this.sequenceIndex]?++this.sequenceIndex===Sequences.Cdata.length&&(this.state=State.InCommentLike,this.currentSequence=Sequences.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=State.InDeclaration,this.stateInDeclaration(c2))}fastForwardTo(c2){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===c2)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(c2){c2===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===Sequences.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=State.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):c2!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(c2){return this.xmlMode?!isEndOfTagSection(c2):isASCIIAlpha(c2)}startSpecial(sequence,offset){this.isSpecial=!0,this.currentSequence=sequence,this.sequenceIndex=offset,this.state=State.SpecialStartSequence}stateBeforeTagName(c2){if(c2===CharCodes3.ExclamationMark)this.state=State.BeforeDeclaration,this.sectionStart=this.index+1;else if(c2===CharCodes3.Questionmark)this.state=State.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(c2)){let lower=c2|32;this.sectionStart=this.index,this.xmlMode?this.state=State.InTagName:lower===Sequences.ScriptEnd[2]?this.state=State.BeforeSpecialS:lower===Sequences.TitleEnd[2]||lower===Sequences.XmpEnd[2]?this.state=State.BeforeSpecialT:this.state=State.InTagName}else c2===CharCodes3.Slash?this.state=State.BeforeClosingTagName:(this.state=State.Text,this.stateText(c2))}stateInTagName(c2){isEndOfTagSection(c2)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2))}stateBeforeClosingTagName(c2){isWhitespace(c2)||(c2===CharCodes3.Gt?this.state=State.Text:(this.state=this.isTagStartChar(c2)?State.InClosingTagName:State.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(c2){(c2===CharCodes3.Gt||isWhitespace(c2))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=State.AfterClosingTagName,this.stateAfterClosingTagName(c2))}stateAfterClosingTagName(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.state=State.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(c2){c2===CharCodes3.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=State.InSpecialTag,this.sequenceIndex=0):this.state=State.Text,this.sectionStart=this.index+1):c2===CharCodes3.Slash?this.state=State.InSelfClosingTag:isWhitespace(c2)||(this.state=State.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(c2){c2===CharCodes3.Gt?(this.cbs.onselfclosingtag(this.index),this.state=State.Text,this.sectionStart=this.index+1,this.isSpecial=!1):isWhitespace(c2)||(this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2))}stateInAttributeName(c2){(c2===CharCodes3.Eq||isEndOfTagSection(c2))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=State.AfterAttributeName,this.stateAfterAttributeName(c2))}stateAfterAttributeName(c2){c2===CharCodes3.Eq?this.state=State.BeforeAttributeValue:c2===CharCodes3.Slash||c2===CharCodes3.Gt?(this.cbs.onattribend(QuoteType.NoValue,this.sectionStart),this.sectionStart=-1,this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2)):isWhitespace(c2)||(this.cbs.onattribend(QuoteType.NoValue,this.sectionStart),this.state=State.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(c2){c2===CharCodes3.DoubleQuote?(this.state=State.InAttributeValueDq,this.sectionStart=this.index+1):c2===CharCodes3.SingleQuote?(this.state=State.InAttributeValueSq,this.sectionStart=this.index+1):isWhitespace(c2)||(this.sectionStart=this.index,this.state=State.InAttributeValueNq,this.stateInAttributeValueNoQuotes(c2))}handleInAttributeValue(c2,quote2){c2===quote2||!this.decodeEntities&&this.fastForwardTo(quote2)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(quote2===CharCodes3.DoubleQuote?QuoteType.Double:QuoteType.Single,this.index+1),this.state=State.BeforeAttributeName):this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(c2){this.handleInAttributeValue(c2,CharCodes3.DoubleQuote)}stateInAttributeValueSingleQuotes(c2){this.handleInAttributeValue(c2,CharCodes3.SingleQuote)}stateInAttributeValueNoQuotes(c2){isWhitespace(c2)||c2===CharCodes3.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(QuoteType.Unquoted,this.index),this.state=State.BeforeAttributeName,this.stateBeforeAttributeName(c2)):this.decodeEntities&&c2===CharCodes3.Amp&&this.startEntity()}stateBeforeDeclaration(c2){c2===CharCodes3.OpeningSquareBracket?(this.state=State.CDATASequence,this.sequenceIndex=0):this.state=c2===CharCodes3.Dash?State.BeforeComment:State.InDeclaration}stateInDeclaration(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=State.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=State.Text,this.sectionStart=this.index+1)}stateBeforeComment(c2){c2===CharCodes3.Dash?(this.state=State.InCommentLike,this.currentSequence=Sequences.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=State.InDeclaration}stateInSpecialComment(c2){(c2===CharCodes3.Gt||this.fastForwardTo(CharCodes3.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=State.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(c2){let lower=c2|32;lower===Sequences.ScriptEnd[3]?this.startSpecial(Sequences.ScriptEnd,4):lower===Sequences.StyleEnd[3]?this.startSpecial(Sequences.StyleEnd,4):(this.state=State.InTagName,this.stateInTagName(c2))}stateBeforeSpecialT(c2){switch(c2|32){case Sequences.TitleEnd[3]:{this.startSpecial(Sequences.TitleEnd,4);break}case Sequences.TextareaEnd[3]:{this.startSpecial(Sequences.TextareaEnd,4);break}case Sequences.XmpEnd[3]:{this.startSpecial(Sequences.XmpEnd,4);break}default:this.state=State.InTagName,this.stateInTagName(c2)}}startEntity(){this.baseState=this.state,this.state=State.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?DecodingMode2.Strict:this.baseState===State.Text||this.baseState===State.InSpecialTag?DecodingMode2.Legacy:DecodingMode2.Attribute)}stateInEntity(){let indexInBuffer=this.index-this.offset,length=this.entityDecoder.write(this.buffer,indexInBuffer);if(length>=0)this.state=this.baseState,length===0&&(this.index-=1);else{if(indexInBuffer<this.buffer.length&&this.buffer.charCodeAt(indexInBuffer)===CharCodes3.Amp){this.state=this.baseState,this.index-=1;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===State.Text||this.state===State.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===State.InAttributeValueDq||this.state===State.InAttributeValueSq||this.state===State.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let c2=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case State.Text:{this.stateText(c2);break}case State.SpecialStartSequence:{this.stateSpecialStartSequence(c2);break}case State.InSpecialTag:{this.stateInSpecialTag(c2);break}case State.CDATASequence:{this.stateCDATASequence(c2);break}case State.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(c2);break}case State.InAttributeName:{this.stateInAttributeName(c2);break}case State.InCommentLike:{this.stateInCommentLike(c2);break}case State.InSpecialComment:{this.stateInSpecialComment(c2);break}case State.BeforeAttributeName:{this.stateBeforeAttributeName(c2);break}case State.InTagName:{this.stateInTagName(c2);break}case State.InClosingTagName:{this.stateInClosingTagName(c2);break}case State.BeforeTagName:{this.stateBeforeTagName(c2);break}case State.AfterAttributeName:{this.stateAfterAttributeName(c2);break}case State.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(c2);break}case State.BeforeAttributeValue:{this.stateBeforeAttributeValue(c2);break}case State.BeforeClosingTagName:{this.stateBeforeClosingTagName(c2);break}case State.AfterClosingTagName:{this.stateAfterClosingTagName(c2);break}case State.BeforeSpecialS:{this.stateBeforeSpecialS(c2);break}case State.BeforeSpecialT:{this.stateBeforeSpecialT(c2);break}case State.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(c2);break}case State.InSelfClosingTag:{this.stateInSelfClosingTag(c2);break}case State.InDeclaration:{this.stateInDeclaration(c2);break}case State.BeforeDeclaration:{this.stateBeforeDeclaration(c2);break}case State.BeforeComment:{this.stateBeforeComment(c2);break}case State.InProcessingInstruction:{this.stateInProcessingInstruction(c2);break}case State.InEntity:{this.stateInEntity();break}}this.index++}this.cleanup()}finish(){this.state===State.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let endIndex=this.buffer.length+this.offset;this.sectionStart>=endIndex||(this.state===State.InCommentLike?this.currentSequence===Sequences.CdataEnd?this.cbs.oncdata(this.sectionStart,endIndex,0):this.cbs.oncomment(this.sectionStart,endIndex,0):this.state===State.InTagName||this.state===State.BeforeAttributeName||this.state===State.BeforeAttributeValue||this.state===State.AfterAttributeName||this.state===State.InAttributeName||this.state===State.InAttributeValueSq||this.state===State.InAttributeValueDq||this.state===State.InAttributeValueNq||this.state===State.InClosingTagName||this.cbs.ontext(this.sectionStart,endIndex))}emitCodePoint(cp2,consumed){this.baseState!==State.Text&&this.baseState!==State.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+consumed,this.index=this.sectionStart-1,this.cbs.onattribentity(cp2)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+consumed,this.index=this.sectionStart-1,this.cbs.ontextentity(cp2,this.sectionStart))}}}});var formTags,pTag,tableSectionTags,ddtTags,rtpTags,openImpliesClose,voidElements,foreignContextElements,htmlIntegrationElements,reNameEnd,Parser,init_Parser=__esm({"../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/Parser.js"(){init_Tokenizer();init_decode2();formTags=new Set(["input","option","optgroup","select","button","datalist","textarea"]),pTag=new Set(["p"]),tableSectionTags=new Set(["thead","tbody"]),ddtTags=new Set(["dd","dt"]),rtpTags=new Set(["rt","rp"]),openImpliesClose=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",pTag],["h1",pTag],["h2",pTag],["h3",pTag],["h4",pTag],["h5",pTag],["h6",pTag],["select",formTags],["input",formTags],["output",formTags],["button",formTags],["datalist",formTags],["textarea",formTags],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",ddtTags],["dt",ddtTags],["address",pTag],["article",pTag],["aside",pTag],["blockquote",pTag],["details",pTag],["div",pTag],["dl",pTag],["fieldset",pTag],["figcaption",pTag],["figure",pTag],["footer",pTag],["form",pTag],["header",pTag],["hr",pTag],["main",pTag],["nav",pTag],["ol",pTag],["pre",pTag],["section",pTag],["table",pTag],["ul",pTag],["rt",rtpTags],["rp",rtpTags],["tbody",tableSectionTags],["tfoot",tableSectionTags]]),voidElements=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),foreignContextElements=new Set(["math","svg"]),htmlIntegrationElements=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),reNameEnd=/\s|\//,Parser=class{static{__name(this,"Parser")}constructor(cbs,options={}){var _a4,_b,_c,_d,_e2,_f;this.options=options,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=cbs??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=(_a4=options.lowerCaseTags)!==null&&_a4!==void 0?_a4:this.htmlMode,this.lowerCaseAttributeNames=(_b=options.lowerCaseAttributeNames)!==null&&_b!==void 0?_b:this.htmlMode,this.recognizeSelfClosing=(_c=options.recognizeSelfClosing)!==null&&_c!==void 0?_c:!this.htmlMode,this.tokenizer=new((_d=options.Tokenizer)!==null&&_d!==void 0?_d:Tokenizer)(this.options,this),this.foreignContext=[!this.htmlMode],(_f=(_e2=this.cbs).onparserinit)===null||_f===void 0||_f.call(_e2,this)}ontext(start,endIndex){var _a4,_b;let data2=this.getSlice(start,endIndex);this.endIndex=endIndex-1,(_b=(_a4=this.cbs).ontext)===null||_b===void 0||_b.call(_a4,data2),this.startIndex=endIndex}ontextentity(cp2,endIndex){var _a4,_b;this.endIndex=endIndex-1,(_b=(_a4=this.cbs).ontext)===null||_b===void 0||_b.call(_a4,fromCodePoint2(cp2)),this.startIndex=endIndex}isVoidElement(name){return this.htmlMode&&voidElements.has(name)}onopentagname(start,endIndex){this.endIndex=endIndex;let name=this.getSlice(start,endIndex);this.lowerCaseTagNames&&(name=name.toLowerCase()),this.emitOpenTag(name)}emitOpenTag(name){var _a4,_b,_c,_d;this.openTagStart=this.startIndex,this.tagname=name;let impliesClose=this.htmlMode&&openImpliesClose.get(name);if(impliesClose)for(;this.stack.length>0&&impliesClose.has(this.stack[0]);){let element=this.stack.shift();(_b=(_a4=this.cbs).onclosetag)===null||_b===void 0||_b.call(_a4,element,!0)}this.isVoidElement(name)||(this.stack.unshift(name),this.htmlMode&&(foreignContextElements.has(name)?this.foreignContext.unshift(!0):htmlIntegrationElements.has(name)&&this.foreignContext.unshift(!1))),(_d=(_c=this.cbs).onopentagname)===null||_d===void 0||_d.call(_c,name),this.cbs.onopentag&&(this.attribs={})}endOpenTag(isImplied){var _a4,_b;this.startIndex=this.openTagStart,this.attribs&&((_b=(_a4=this.cbs).onopentag)===null||_b===void 0||_b.call(_a4,this.tagname,this.attribs,isImplied),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(endIndex){this.endIndex=endIndex,this.endOpenTag(!1),this.startIndex=endIndex+1}onclosetag(start,endIndex){var _a4,_b,_c,_d,_e2,_f,_g,_h;this.endIndex=endIndex;let name=this.getSlice(start,endIndex);if(this.lowerCaseTagNames&&(name=name.toLowerCase()),this.htmlMode&&(foreignContextElements.has(name)||htmlIntegrationElements.has(name))&&this.foreignContext.shift(),this.isVoidElement(name))this.htmlMode&&name==="br"&&((_d=(_c=this.cbs).onopentagname)===null||_d===void 0||_d.call(_c,"br"),(_f=(_e2=this.cbs).onopentag)===null||_f===void 0||_f.call(_e2,"br",{},!0),(_h=(_g=this.cbs).onclosetag)===null||_h===void 0||_h.call(_g,"br",!1));else{let pos=this.stack.indexOf(name);if(pos!==-1)for(let index2=0;index2<=pos;index2++){let element=this.stack.shift();(_b=(_a4=this.cbs).onclosetag)===null||_b===void 0||_b.call(_a4,element,index2!==pos)}else this.htmlMode&&name==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=endIndex+1}onselfclosingtag(endIndex){this.endIndex=endIndex,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=endIndex+1):this.onopentagend(endIndex)}closeCurrentTag(isOpenImplied){var _a4,_b;let name=this.tagname;this.endOpenTag(isOpenImplied),this.stack[0]===name&&((_b=(_a4=this.cbs).onclosetag)===null||_b===void 0||_b.call(_a4,name,!isOpenImplied),this.stack.shift())}onattribname(start,endIndex){this.startIndex=start;let name=this.getSlice(start,endIndex);this.attribname=this.lowerCaseAttributeNames?name.toLowerCase():name}onattribdata(start,endIndex){this.attribvalue+=this.getSlice(start,endIndex)}onattribentity(cp2){this.attribvalue+=fromCodePoint2(cp2)}onattribend(quote2,endIndex){var _a4,_b;this.endIndex=endIndex,(_b=(_a4=this.cbs).onattribute)===null||_b===void 0||_b.call(_a4,this.attribname,this.attribvalue,quote2===QuoteType.Double?'"':quote2===QuoteType.Single?"'":quote2===QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(value){let index2=value.search(reNameEnd),name=index2<0?value:value.substr(0,index2);return this.lowerCaseTagNames&&(name=name.toLowerCase()),name}ondeclaration(start,endIndex){this.endIndex=endIndex;let value=this.getSlice(start,endIndex);if(this.cbs.onprocessinginstruction){let name=this.getInstructionName(value);this.cbs.onprocessinginstruction(`!${name}`,`!${value}`)}this.startIndex=endIndex+1}onprocessinginstruction(start,endIndex){this.endIndex=endIndex;let value=this.getSlice(start,endIndex);if(this.cbs.onprocessinginstruction){let name=this.getInstructionName(value);this.cbs.onprocessinginstruction(`?${name}`,`?${value}`)}this.startIndex=endIndex+1}oncomment(start,endIndex,offset){var _a4,_b,_c,_d;this.endIndex=endIndex,(_b=(_a4=this.cbs).oncomment)===null||_b===void 0||_b.call(_a4,this.getSlice(start,endIndex-offset)),(_d=(_c=this.cbs).oncommentend)===null||_d===void 0||_d.call(_c),this.startIndex=endIndex+1}oncdata(start,endIndex,offset){var _a4,_b,_c,_d,_e2,_f,_g,_h,_j,_k;this.endIndex=endIndex;let value=this.getSlice(start,endIndex-offset);!this.htmlMode||this.options.recognizeCDATA?((_b=(_a4=this.cbs).oncdatastart)===null||_b===void 0||_b.call(_a4),(_d=(_c=this.cbs).ontext)===null||_d===void 0||_d.call(_c,value),(_f=(_e2=this.cbs).oncdataend)===null||_f===void 0||_f.call(_e2)):((_h=(_g=this.cbs).oncomment)===null||_h===void 0||_h.call(_g,`[CDATA[${value}]]`),(_k=(_j=this.cbs).oncommentend)===null||_k===void 0||_k.call(_j)),this.startIndex=endIndex+1}onend(){var _a4,_b;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let index2=0;index2<this.stack.length;index2++)this.cbs.onclosetag(this.stack[index2],!0)}(_b=(_a4=this.cbs).onend)===null||_b===void 0||_b.call(_a4)}reset(){var _a4,_b,_c,_d;(_b=(_a4=this.cbs).onreset)===null||_b===void 0||_b.call(_a4),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(_d=(_c=this.cbs).onparserinit)===null||_d===void 0||_d.call(_c,this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(!this.htmlMode),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(data2){this.reset(),this.end(data2)}getSlice(start,end2){for(;start-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let slice2=this.buffers[0].slice(start-this.bufferOffset,end2-this.bufferOffset);for(;end2-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),slice2+=this.buffers[0].slice(0,end2-this.bufferOffset);return slice2}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(chunk){var _a4,_b;if(this.ended){(_b=(_a4=this.cbs).onerror)===null||_b===void 0||_b.call(_a4,new Error(".write() after done!"));return}this.buffers.push(chunk),this.tokenizer.running&&(this.tokenizer.write(chunk),this.writeIndex++)}end(chunk){var _a4,_b;if(this.ended){(_b=(_a4=this.cbs).onerror)===null||_b===void 0||_b.call(_a4,new Error(".end() after done!"));return}chunk&&this.write(chunk),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(chunk){this.write(chunk)}done(chunk){this.end(chunk)}}}});function parseDocument(data2,options){let handler=new DomHandler(void 0,options);return new Parser(handler,options).end(data2),handler.root}var init_esm7=__esm({"../../node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/index.js"(){init_Parser();init_Parser();init_esm3();init_esm3();init_Tokenizer();init_esm2();init_esm6();init_esm6();init_esm6();__name(parseDocument,"parseDocument")}});var attributes_exports={};__export(attributes_exports,{addClass:()=>addClass,attr:()=>attr,data:()=>data,hasClass:()=>hasClass,prop:()=>prop,removeAttr:()=>removeAttr,removeClass:()=>removeClass,toggleClass:()=>toggleClass,val:()=>val});function getAttr(elem,name,xmlMode){var _a4;if(!(!elem||!isTag2(elem))){if((_a4=elem.attribs)!==null&&_a4!==void 0||(elem.attribs={}),!name)return elem.attribs;if(hasOwn(elem.attribs,name))return!xmlMode&&rboolean.test(name)?name:elem.attribs[name];if(elem.name==="option"&&name==="value")return text(elem.children);if(elem.name==="input"&&(elem.attribs.type==="radio"||elem.attribs.type==="checkbox")&&name==="value")return"on"}}function setAttr(el,name,value){value===null?removeAttribute(el,name):el.attribs[name]=`${value}`}function attr(name,value){if(typeof name=="object"||value!==void 0){if(typeof value=="function"){if(typeof name!="string")throw new Error("Bad combination of arguments.");return domEach(this,(el,i)=>{isTag2(el)&&setAttr(el,name,value.call(el,i,el.attribs[name]))})}return domEach(this,el=>{if(isTag2(el))if(typeof name=="object")for(let objName of Object.keys(name)){let objValue=name[objName];setAttr(el,objName,objValue)}else setAttr(el,name,value)})}return arguments.length>1?this:getAttr(this[0],name,this.options.xmlMode)}function getProp(el,name,xmlMode){return name in el?el[name]:!xmlMode&&rboolean.test(name)?getAttr(el,name,!1)!==void 0:getAttr(el,name,xmlMode)}function setProp(el,name,value,xmlMode){name in el?el[name]=value:setAttr(el,name,!xmlMode&&rboolean.test(name)?value?"":null:`${value}`)}function prop(name,value){var _a4;if(typeof name=="string"&&value===void 0){let el=this[0];if(!el)return;switch(name){case"style":{let property=this.css(),keys=Object.keys(property);for(let i=0;i<keys.length;i++)property[i]=keys[i];return property.length=keys.length,property}case"tagName":case"nodeName":return isTag2(el)?el.name.toUpperCase():void 0;case"href":case"src":{if(!isTag2(el))return;let prop2=(_a4=el.attribs)===null||_a4===void 0?void 0:_a4[name];return typeof URL<"u"&&(name==="href"&&(el.tagName==="a"||el.tagName==="link")||name==="src"&&(el.tagName==="img"||el.tagName==="iframe"||el.tagName==="audio"||el.tagName==="video"||el.tagName==="source"))&&prop2!==void 0&&this.options.baseURI?new URL(prop2,this.options.baseURI).href:prop2}case"innerText":return innerText(el);case"textContent":return textContent(el);case"outerHTML":return el.type===esm_exports.Root?this.html():this.clone().wrap("<container />").parent().html();case"innerHTML":return this.html();default:return isTag2(el)?getProp(el,name,this.options.xmlMode):void 0}}if(typeof name=="object"||value!==void 0){if(typeof value=="function"){if(typeof name=="object")throw new TypeError("Bad combination of arguments.");return domEach(this,(el,i)=>{isTag2(el)&&setProp(el,name,value.call(el,i,getProp(el,name,this.options.xmlMode)),this.options.xmlMode)})}return domEach(this,el=>{if(isTag2(el))if(typeof name=="object")for(let key of Object.keys(name)){let val2=name[key];setProp(el,key,val2,this.options.xmlMode)}else setProp(el,name,value,this.options.xmlMode)})}}function setData(elem,name,value){var _a4;(_a4=elem.data)!==null&&_a4!==void 0||(elem.data={}),typeof name=="object"?Object.assign(elem.data,name):typeof name=="string"&&value!==void 0&&(elem.data[name]=value)}function readAllData(el){for(let domName of Object.keys(el.attribs)){if(!domName.startsWith(dataAttrPrefix))continue;let jsName=camelCase2(domName.slice(dataAttrPrefix.length));hasOwn(el.data,jsName)||(el.data[jsName]=parseDataValue(el.attribs[domName]))}return el.data}function readData(el,name){let domName=dataAttrPrefix+cssCase(name),data2=el.data;if(hasOwn(data2,name))return data2[name];if(hasOwn(el.attribs,domName))return data2[name]=parseDataValue(el.attribs[domName])}function parseDataValue(value){if(value==="null")return null;if(value==="true")return!0;if(value==="false")return!1;let num=Number(value);if(value===String(num))return num;if(rbrace.test(value))try{return JSON.parse(value)}catch{}return value}function data(name,value){var _a4;let elem=this[0];if(!elem||!isTag2(elem))return;let dataEl=elem;return(_a4=dataEl.data)!==null&&_a4!==void 0||(dataEl.data={}),name==null?readAllData(dataEl):typeof name=="object"||value!==void 0?(domEach(this,el=>{isTag2(el)&&(typeof name=="object"?setData(el,name):setData(el,name,value))}),this):readData(dataEl,name)}function val(value){let querying=arguments.length===0,element=this[0];if(!element||!isTag2(element))return querying?void 0:this;switch(element.name){case"textarea":return this.text(value);case"select":{let option=this.find("option:selected");if(!querying){if(this.attr("multiple")==null&&typeof value=="object")return this;this.find("option").removeAttr("selected");let values=typeof value=="object"?value:[value];for(let val2 of values)this.find(`option[value="${val2}"]`).attr("selected","");return this}return this.attr("multiple")?option.toArray().map(el=>text(el.children)):option.attr("value")}case"button":case"input":case"option":return querying?this.attr("value"):this.attr("value",value)}}function removeAttribute(elem,name){!elem.attribs||!hasOwn(elem.attribs,name)||delete elem.attribs[name]}function splitNames(names){return names?names.trim().split(rspace):[]}function removeAttr(name){let attrNames=splitNames(name);for(let attrName of attrNames)domEach(this,elem=>{isTag2(elem)&&removeAttribute(elem,attrName)});return this}function hasClass(className){return this.toArray().some(elem=>{let clazz=isTag2(elem)&&elem.attribs.class,idx=-1;if(clazz&&className.length>0)for(;(idx=clazz.indexOf(className,idx+1))>-1;){let end2=idx+className.length;if((idx===0||rspace.test(clazz[idx-1]))&&(end2===clazz.length||rspace.test(clazz[end2])))return!0}return!1})}function addClass(value){if(typeof value=="function")return domEach(this,(el,i)=>{if(isTag2(el)){let className=el.attribs.class||"";addClass.call([el],value.call(el,i,className))}});if(!value||typeof value!="string")return this;let classNames=value.split(rspace),numElements=this.length;for(let i=0;i<numElements;i++){let el=this[i];if(!isTag2(el))continue;let className=getAttr(el,"class",!1);if(className){let setClass=` ${className} `;for(let cn of classNames){let appendClass=`${cn} `;setClass.includes(` ${appendClass}`)||(setClass+=appendClass)}setAttr(el,"class",setClass.trim())}else setAttr(el,"class",classNames.join(" ").trim())}return this}function removeClass(name){if(typeof name=="function")return domEach(this,(el,i)=>{isTag2(el)&&removeClass.call([el],name.call(el,i,el.attribs.class||""))});let classes=splitNames(name),numClasses=classes.length,removeAll=arguments.length===0;return domEach(this,el=>{if(isTag2(el))if(removeAll)el.attribs.class="";else{let elClasses=splitNames(el.attribs.class),changed=!1;for(let j2=0;j2<numClasses;j2++){let index2=elClasses.indexOf(classes[j2]);index2!==-1&&(elClasses.splice(index2,1),changed=!0,j2--)}changed&&(el.attribs.class=elClasses.join(" "))}})}function toggleClass(value,stateVal){if(typeof value=="function")return domEach(this,(el,i)=>{isTag2(el)&&toggleClass.call([el],value.call(el,i,el.attribs.class||"",stateVal),stateVal)});if(!value||typeof value!="string")return this;let classNames=value.split(rspace),numClasses=classNames.length,state=typeof stateVal=="boolean"?stateVal?1:-1:0,numElements=this.length;for(let i=0;i<numElements;i++){let el=this[i];if(!isTag2(el))continue;let elementClasses=splitNames(el.attribs.class);for(let j2=0;j2<numClasses;j2++){let index2=elementClasses.indexOf(classNames[j2]);state>=0&&index2===-1?elementClasses.push(classNames[j2]):state<=0&&index2!==-1&&elementClasses.splice(index2,1)}el.attribs.class=elementClasses.join(" ")}return this}var _a3,hasOwn,rspace,dataAttrPrefix,rboolean,rbrace,init_attributes=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/attributes.js"(){init_static();init_utils2();init_esm3();init_esm6();init_esm7();hasOwn=(_a3=Object.hasOwn)!==null&&_a3!==void 0?_a3:((object,prop2)=>Object.prototype.hasOwnProperty.call(object,prop2)),rspace=/\s+/,dataAttrPrefix="data-",rboolean=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,rbrace=/^{[^]*}$|^\[[^]*]$/;__name(getAttr,"getAttr");__name(setAttr,"setAttr");__name(attr,"attr");__name(getProp,"getProp");__name(setProp,"setProp");__name(prop,"prop");__name(setData,"setData");__name(readAllData,"readAllData");__name(readData,"readData");__name(parseDataValue,"parseDataValue");__name(data,"data");__name(val,"val");__name(removeAttribute,"removeAttribute");__name(splitNames,"splitNames");__name(removeAttr,"removeAttr");__name(hasClass,"hasClass");__name(addClass,"addClass");__name(removeClass,"removeClass");__name(toggleClass,"toggleClass")}});var SelectorType,AttributeAction,init_types2=__esm({"../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/types.js"(){(function(SelectorType2){SelectorType2.Attribute="attribute",SelectorType2.Pseudo="pseudo",SelectorType2.PseudoElement="pseudo-element",SelectorType2.Tag="tag",SelectorType2.Universal="universal",SelectorType2.Adjacent="adjacent",SelectorType2.Child="child",SelectorType2.Descendant="descendant",SelectorType2.Parent="parent",SelectorType2.Sibling="sibling",SelectorType2.ColumnCombinator="column-combinator"})(SelectorType||(SelectorType={}));(function(AttributeAction2){AttributeAction2.Any="any",AttributeAction2.Element="element",AttributeAction2.End="end",AttributeAction2.Equals="equals",AttributeAction2.Exists="exists",AttributeAction2.Hyphen="hyphen",AttributeAction2.Not="not",AttributeAction2.Start="start"})(AttributeAction||(AttributeAction={}))}});function isTraversal(selector){switch(selector.type){case SelectorType.Adjacent:case SelectorType.Child:case SelectorType.Descendant:case SelectorType.Parent:case SelectorType.Sibling:case SelectorType.ColumnCombinator:return!0;default:return!1}}function funescape(_,escaped,escapedWhitespace){let high=parseInt(escaped,16)-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)}function unescapeCSS(str){return str.replace(reEscape,funescape)}function isQuote(c2){return c2===39||c2===34}function isWhitespace2(c2){return c2===32||c2===9||c2===10||c2===12||c2===13}function parse12(selector){let subselects2=[],endIndex=parseSelector(subselects2,`${selector}`,0);if(endIndex<selector.length)throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);return subselects2}function parseSelector(subselects2,selector,selectorIndex){let tokens=[];function getName2(offset){let match=selector.slice(selectorIndex+offset).match(reName);if(!match)throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);let[name]=match;return selectorIndex+=offset+name.length,unescapeCSS(name)}__name(getName2,"getName");function stripWhitespace(offset){for(selectorIndex+=offset;selectorIndex<selector.length&&isWhitespace2(selector.charCodeAt(selectorIndex));)selectorIndex++}__name(stripWhitespace,"stripWhitespace");function readValueWithParenthesis(){selectorIndex+=1;let start=selectorIndex,counter=1;for(;counter>0&&selectorIndex<selector.length;selectorIndex++)selector.charCodeAt(selectorIndex)===40&&!isEscaped2(selectorIndex)?counter++:selector.charCodeAt(selectorIndex)===41&&!isEscaped2(selectorIndex)&&counter--;if(counter)throw new Error("Parenthesis not matched");return unescapeCSS(selector.slice(start,selectorIndex-1))}__name(readValueWithParenthesis,"readValueWithParenthesis");function isEscaped2(pos){let slashCount=0;for(;selector.charCodeAt(--pos)===92;)slashCount++;return(slashCount&1)===1}__name(isEscaped2,"isEscaped");function ensureNotTraversal(){if(tokens.length>0&&isTraversal(tokens[tokens.length-1]))throw new Error("Did not expect successive traversals.")}__name(ensureNotTraversal,"ensureNotTraversal");function addTraversal(type){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens[tokens.length-1].type=type;return}ensureNotTraversal(),tokens.push({type})}__name(addTraversal,"addTraversal");function addSpecialAttribute(name,action){tokens.push({type:SelectorType.Attribute,name,action,value:getName2(1),namespace:null,ignoreCase:"quirks"})}__name(addSpecialAttribute,"addSpecialAttribute");function finalizeSubselector(){if(tokens.length&&tokens[tokens.length-1].type===SelectorType.Descendant&&tokens.pop(),tokens.length===0)throw new Error("Empty sub-selector");subselects2.push(tokens)}if(__name(finalizeSubselector,"finalizeSubselector"),stripWhitespace(0),selector.length===selectorIndex)return selectorIndex;loop:for(;selectorIndex<selector.length;){let firstChar=selector.charCodeAt(selectorIndex);switch(firstChar){case 32:case 9:case 10:case 12:case 13:{(tokens.length===0||tokens[0].type!==SelectorType.Descendant)&&(ensureNotTraversal(),tokens.push({type:SelectorType.Descendant})),stripWhitespace(1);break}case 62:{addTraversal(SelectorType.Child),stripWhitespace(1);break}case 60:{addTraversal(SelectorType.Parent),stripWhitespace(1);break}case 126:{addTraversal(SelectorType.Sibling),stripWhitespace(1);break}case 43:{addTraversal(SelectorType.Adjacent),stripWhitespace(1);break}case 46:{addSpecialAttribute("class",AttributeAction.Element);break}case 35:{addSpecialAttribute("id",AttributeAction.Equals);break}case 91:{stripWhitespace(1);let name,namespace=null;selector.charCodeAt(selectorIndex)===124?name=getName2(1):selector.startsWith("*|",selectorIndex)?(namespace="*",name=getName2(2)):(name=getName2(0),selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==61&&(namespace=name,name=getName2(1))),stripWhitespace(0);let action=AttributeAction.Exists,possibleAction=actionTypes.get(selector.charCodeAt(selectorIndex));if(possibleAction){if(action=possibleAction,selector.charCodeAt(selectorIndex+1)!==61)throw new Error("Expected `=`");stripWhitespace(2)}else selector.charCodeAt(selectorIndex)===61&&(action=AttributeAction.Equals,stripWhitespace(1));let value="",ignoreCase=null;if(action!=="exists"){if(isQuote(selector.charCodeAt(selectorIndex))){let quote2=selector.charCodeAt(selectorIndex),sectionEnd=selectorIndex+1;for(;sectionEnd<selector.length&&(selector.charCodeAt(sectionEnd)!==quote2||isEscaped2(sectionEnd));)sectionEnd+=1;if(selector.charCodeAt(sectionEnd)!==quote2)throw new Error("Attribute value didn't end");value=unescapeCSS(selector.slice(selectorIndex+1,sectionEnd)),selectorIndex=sectionEnd+1}else{let valueStart=selectorIndex;for(;selectorIndex<selector.length&&(!isWhitespace2(selector.charCodeAt(selectorIndex))&&selector.charCodeAt(selectorIndex)!==93||isEscaped2(selectorIndex));)selectorIndex+=1;value=unescapeCSS(selector.slice(valueStart,selectorIndex))}stripWhitespace(0);let forceIgnore=selector.charCodeAt(selectorIndex)|32;forceIgnore===115?(ignoreCase=!1,stripWhitespace(1)):forceIgnore===105&&(ignoreCase=!0,stripWhitespace(1))}if(selector.charCodeAt(selectorIndex)!==93)throw new Error("Attribute selector didn't terminate");selectorIndex+=1;let attributeSelector={type:SelectorType.Attribute,name,action,value,namespace,ignoreCase};tokens.push(attributeSelector);break}case 58:{if(selector.charCodeAt(selectorIndex+1)===58){tokens.push({type:SelectorType.PseudoElement,name:getName2(2).toLowerCase(),data:selector.charCodeAt(selectorIndex)===40?readValueWithParenthesis():null});continue}let name=getName2(1).toLowerCase(),data2=null;if(selector.charCodeAt(selectorIndex)===40)if(unpackPseudos.has(name)){if(isQuote(selector.charCodeAt(selectorIndex+1)))throw new Error(`Pseudo-selector ${name} cannot be quoted`);if(data2=[],selectorIndex=parseSelector(data2,selector,selectorIndex+1),selector.charCodeAt(selectorIndex)!==41)throw new Error(`Missing closing parenthesis in :${name} (${selector})`);selectorIndex+=1}else{if(data2=readValueWithParenthesis(),stripQuotesFromPseudos.has(name)){let quot=data2.charCodeAt(0);quot===data2.charCodeAt(data2.length-1)&&isQuote(quot)&&(data2=data2.slice(1,-1))}data2=unescapeCSS(data2)}tokens.push({type:SelectorType.Pseudo,name,data:data2});break}case 44:{finalizeSubselector(),tokens=[],stripWhitespace(1);break}default:{if(selector.startsWith("/*",selectorIndex)){let endIndex=selector.indexOf("*/",selectorIndex+2);if(endIndex<0)throw new Error("Comment was not terminated");selectorIndex=endIndex+2,tokens.length===0&&stripWhitespace(0);break}let namespace=null,name;if(firstChar===42)selectorIndex+=1,name="*";else if(firstChar===124){if(name="",selector.charCodeAt(selectorIndex+1)===124){addTraversal(SelectorType.ColumnCombinator),stripWhitespace(2);break}}else if(reName.test(selector.slice(selectorIndex)))name=getName2(0);else break loop;selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==124&&(namespace=name,selector.charCodeAt(selectorIndex+1)===42?(name="*",selectorIndex+=2):name=getName2(1)),tokens.push(name==="*"?{type:SelectorType.Universal,namespace}:{type:SelectorType.Tag,name,namespace})}}}return finalizeSubselector(),selectorIndex}var reName,reEscape,actionTypes,unpackPseudos,stripQuotesFromPseudos,init_parse2=__esm({"../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/parse.js"(){init_types2();reName=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,reEscape=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,actionTypes=new Map([[126,AttributeAction.Element],[94,AttributeAction.Start],[36,AttributeAction.End],[42,AttributeAction.Any],[33,AttributeAction.Not],[124,AttributeAction.Hyphen]]),unpackPseudos=new Set(["has","not","matches","is","where","host","host-context"]);__name(isTraversal,"isTraversal");stripQuotesFromPseudos=new Set(["contains","icontains"]);__name(funescape,"funescape");__name(unescapeCSS,"unescapeCSS");__name(isQuote,"isQuote");__name(isWhitespace2,"isWhitespace");__name(parse12,"parse");__name(parseSelector,"parseSelector")}});var init_es=__esm({"../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/index.js"(){init_types2();init_parse2()}});var require_boolbase=__commonJS({"../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js"(exports2,module2){module2.exports={trueFunc:__name(function(){return!0},"trueFunc"),falseFunc:__name(function(){return!1},"falseFunc")}}});function isTraversal2(token){return!procedure.has(token.type)}function sortByProcedure(arr){let procs=arr.map(getProcedure);for(let i=1;i<arr.length;i++){let procNew=procs[i];if(!(procNew<0))for(let j2=i-1;j2>=0&&procNew<procs[j2];j2--){let token=arr[j2+1];arr[j2+1]=arr[j2],arr[j2]=token,procs[j2+1]=procs[j2],procs[j2]=procNew}}}function getProcedure(token){var _a4,_b;let proc=(_a4=procedure.get(token.type))!==null&&_a4!==void 0?_a4:-1;return token.type===SelectorType.Attribute?(proc=(_b=attributes.get(token.action))!==null&&_b!==void 0?_b:4,token.action===AttributeAction.Equals&&token.name==="id"&&(proc=9),token.ignoreCase&&(proc>>=1)):token.type===SelectorType.Pseudo&&(token.data?token.name==="has"||token.name==="contains"?proc=0:Array.isArray(token.data)?(proc=Math.min(...token.data.map(d3=>Math.min(...d3.map(getProcedure)))),proc<0&&(proc=0)):proc=2:proc=3),proc}var procedure,attributes,init_sort=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/sort.js"(){init_es();procedure=new Map([[SelectorType.Universal,50],[SelectorType.Tag,30],[SelectorType.Attribute,1],[SelectorType.Pseudo,0]]);__name(isTraversal2,"isTraversal");attributes=new Map([[AttributeAction.Exists,10],[AttributeAction.Equals,8],[AttributeAction.Not,7],[AttributeAction.Start,6],[AttributeAction.End,6],[AttributeAction.Any,5]]);__name(sortByProcedure,"sortByProcedure");__name(getProcedure,"getProcedure")}});function escapeRegex2(value){return value.replace(reChars,"\\$&")}function shouldIgnoreCase(selector,options){return typeof selector.ignoreCase=="boolean"?selector.ignoreCase:selector.ignoreCase==="quirks"?!!options.quirksMode:!options.xmlMode&&caseInsensitiveAttributes.has(selector.name)}var import_boolbase,reChars,caseInsensitiveAttributes,attributeRules,init_attributes2=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/attributes.js"(){import_boolbase=__toESM(require_boolbase(),1),reChars=/[-[\]{}()*+?.,\\^$|#\s]/g;__name(escapeRegex2,"escapeRegex");caseInsensitiveAttributes=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);__name(shouldIgnoreCase,"shouldIgnoreCase");attributeRules={equals(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2;return shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length===value.length&&attr2.toLowerCase()===value&&next2(elem)}):elem=>adapter.getAttributeValue(elem,name)===value&&next2(elem)},hyphen(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2,len=value.length;return shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),__name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&(attr2.length===len||attr2.charAt(len)==="-")&&attr2.substr(0,len).toLowerCase()===value&&next2(elem)},"hyphenIC")):__name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&(attr2.length===len||attr2.charAt(len)==="-")&&attr2.substr(0,len)===value&&next2(elem)},"hyphen")},element(next2,data2,options){let{adapter}=options,{name,value}=data2;if(/\s/.test(value))return import_boolbase.default.falseFunc;let regex=new RegExp(`(?:^|\\s)${escapeRegex2(value)}(?:$|\\s)`,shouldIgnoreCase(data2,options)?"i":"");return __name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length>=value.length&®ex.test(attr2)&&next2(elem)},"element")},exists(next2,{name},{adapter}){return elem=>adapter.hasAttrib(elem,name)&&next2(elem)},start(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2,len=value.length;return len===0?import_boolbase.default.falseFunc:shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length>=len&&attr2.substr(0,len).toLowerCase()===value&&next2(elem)}):elem=>{var _a4;return!!(!((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0)&&_a4.startsWith(value))&&next2(elem)}},end(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2,len=-value.length;return len===0?import_boolbase.default.falseFunc:shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{var _a4;return((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0?void 0:_a4.substr(len).toLowerCase())===value&&next2(elem)}):elem=>{var _a4;return!!(!((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0)&&_a4.endsWith(value))&&next2(elem)}},any(next2,data2,options){let{adapter}=options,{name,value}=data2;if(value==="")return import_boolbase.default.falseFunc;if(shouldIgnoreCase(data2,options)){let regex=new RegExp(escapeRegex2(value),"i");return __name(function(elem){let attr2=adapter.getAttributeValue(elem,name);return attr2!=null&&attr2.length>=value.length&®ex.test(attr2)&&next2(elem)},"anyIC")}return elem=>{var _a4;return!!(!((_a4=adapter.getAttributeValue(elem,name))===null||_a4===void 0)&&_a4.includes(value))&&next2(elem)}},not(next2,data2,options){let{adapter}=options,{name}=data2,{value}=data2;return value===""?elem=>!!adapter.getAttributeValue(elem,name)&&next2(elem):shouldIgnoreCase(data2,options)?(value=value.toLowerCase(),elem=>{let attr2=adapter.getAttributeValue(elem,name);return(attr2==null||attr2.length!==value.length||attr2.toLowerCase()!==value)&&next2(elem)}):elem=>adapter.getAttributeValue(elem,name)!==value&&next2(elem)}}}});function parse13(formula){if(formula=formula.trim().toLowerCase(),formula==="even")return[2,0];if(formula==="odd")return[2,1];let idx=0,a=0,sign=readSign(),number=readNumber();if(idx<formula.length&&formula.charAt(idx)==="n"&&(idx++,a=sign*(number??1),skipWhitespace(),idx<formula.length?(sign=readSign(),skipWhitespace(),number=readNumber()):sign=number=0),number===null||idx<formula.length)throw new Error(`n-th rule couldn't be parsed ('${formula}')`);return[a,sign*number];function readSign(){return formula.charAt(idx)==="-"?(idx++,-1):(formula.charAt(idx)==="+"&&idx++,1)}function readNumber(){let start=idx,value=0;for(;idx<formula.length&&formula.charCodeAt(idx)>=ZERO&&formula.charCodeAt(idx)<=NINE;)value=value*10+(formula.charCodeAt(idx)-ZERO),idx++;return idx===start?null:value}function skipWhitespace(){for(;idx<formula.length&&whitespace.has(formula.charCodeAt(idx));)idx++}}var whitespace,ZERO,NINE,init_parse3=__esm({"../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/esm/parse.js"(){whitespace=new Set([9,10,12,13,32]),ZERO=48,NINE=57;__name(parse13,"parse")}});function compile2(parsed){let a=parsed[0],b=parsed[1]-1;if(b<0&&a<=0)return import_boolbase2.default.falseFunc;if(a===-1)return index2=>index2<=b;if(a===0)return index2=>index2===b;if(a===1)return b<0?import_boolbase2.default.trueFunc:index2=>index2>=b;let absA=Math.abs(a),bMod=(b%absA+absA)%absA;return a>1?index2=>index2>=b&&index2%absA===bMod:index2=>index2<=b&&index2%absA===bMod}var import_boolbase2,init_compile=__esm({"../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/esm/compile.js"(){import_boolbase2=__toESM(require_boolbase(),1);__name(compile2,"compile")}});function nthCheck(formula){return compile2(parse13(formula))}var init_esm8=__esm({"../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/esm/index.js"(){init_parse3();init_compile();__name(nthCheck,"nthCheck")}});function getChildFunc(next2,adapter){return elem=>{let parent2=adapter.getParent(elem);return parent2!=null&&adapter.isTag(parent2)&&next2(elem)}}function dynamicStatePseudo(name){return __name(function(next2,_rule,{adapter}){let func=adapter[name];return typeof func!="function"?import_boolbase3.default.falseFunc:__name(function(elem){return func(elem)&&next2(elem)},"active")},"dynamicPseudo")}var import_boolbase3,filters,init_filters=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/filters.js"(){init_esm8();import_boolbase3=__toESM(require_boolbase(),1);__name(getChildFunc,"getChildFunc");filters={contains(next2,text3,{adapter}){return __name(function(elem){return next2(elem)&&adapter.getText(elem).includes(text3)},"contains")},icontains(next2,text3,{adapter}){let itext=text3.toLowerCase();return __name(function(elem){return next2(elem)&&adapter.getText(elem).toLowerCase().includes(itext)},"icontains")},"nth-child"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=0;i<siblings2.length&&!equals(elem,siblings2[i]);i++)adapter.isTag(siblings2[i])&&pos++;return func(pos)&&next2(elem)},"nthChild")},"nth-last-child"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=siblings2.length-1;i>=0&&!equals(elem,siblings2[i]);i--)adapter.isTag(siblings2[i])&&pos++;return func(pos)&&next2(elem)},"nthLastChild")},"nth-of-type"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)&&pos++}return func(pos)&&next2(elem)},"nthOfType")},"nth-last-of-type"(next2,rule,{adapter,equals}){let func=nthCheck(rule);return func===import_boolbase3.default.falseFunc?import_boolbase3.default.falseFunc:func===import_boolbase3.default.trueFunc?getChildFunc(next2,adapter):__name(function(elem){let siblings2=adapter.getSiblings(elem),pos=0;for(let i=siblings2.length-1;i>=0;i--){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)&&pos++}return func(pos)&&next2(elem)},"nthLastOfType")},root(next2,_rule,{adapter}){return elem=>{let parent2=adapter.getParent(elem);return(parent2==null||!adapter.isTag(parent2))&&next2(elem)}},scope(next2,rule,options,context){let{equals}=options;return!context||context.length===0?filters.root(next2,rule,options):context.length===1?elem=>equals(context[0],elem)&&next2(elem):elem=>context.includes(elem)&&next2(elem)},hover:dynamicStatePseudo("isHovered"),visited:dynamicStatePseudo("isVisited"),active:dynamicStatePseudo("isActive")};__name(dynamicStatePseudo,"dynamicStatePseudo")}});function verifyPseudoArgs(func,name,subselect,argIndex){if(subselect===null){if(func.length>argIndex)throw new Error(`Pseudo-class :${name} requires an argument`)}else if(func.length===argIndex)throw new Error(`Pseudo-class :${name} doesn't have any arguments`)}var pseudos,init_pseudos=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js"(){pseudos={empty(elem,{adapter}){return!adapter.getChildren(elem).some(elem2=>adapter.isTag(elem2)||adapter.getText(elem2)!=="")},"first-child"(elem,{adapter,equals}){if(adapter.prevElementSibling)return adapter.prevElementSibling(elem)==null;let firstChild=adapter.getSiblings(elem).find(elem2=>adapter.isTag(elem2));return firstChild!=null&&equals(elem,firstChild)},"last-child"(elem,{adapter,equals}){let siblings2=adapter.getSiblings(elem);for(let i=siblings2.length-1;i>=0;i--){if(equals(elem,siblings2[i]))return!0;if(adapter.isTag(siblings2[i]))break}return!1},"first-of-type"(elem,{adapter,equals}){let siblings2=adapter.getSiblings(elem),elemName=adapter.getName(elem);for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))return!0;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName)break}return!1},"last-of-type"(elem,{adapter,equals}){let siblings2=adapter.getSiblings(elem),elemName=adapter.getName(elem);for(let i=siblings2.length-1;i>=0;i--){let currentSibling=siblings2[i];if(equals(elem,currentSibling))return!0;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName)break}return!1},"only-of-type"(elem,{adapter,equals}){let elemName=adapter.getName(elem);return adapter.getSiblings(elem).every(sibling=>equals(elem,sibling)||!adapter.isTag(sibling)||adapter.getName(sibling)!==elemName)},"only-child"(elem,{adapter,equals}){return adapter.getSiblings(elem).every(sibling=>equals(elem,sibling)||!adapter.isTag(sibling))}};__name(verifyPseudoArgs,"verifyPseudoArgs")}});var aliases,init_aliases=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js"(){aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:`:is(
|
|
672
672
|
:is(button, input, select, textarea, optgroup, option)[disabled],
|
|
673
673
|
optgroup[disabled] > option,
|
|
674
674
|
fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)
|
|
675
|
-
)`,enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"}}});function ensureIsTag(next2,adapter){return next2===import_boolbase4.default.falseFunc?import_boolbase4.default.falseFunc:elem=>adapter.isTag(elem)&&next2(elem)}function getNextSiblings(elem,adapter){let siblings2=adapter.getSiblings(elem);if(siblings2.length<=1)return[];let elemIndex=siblings2.indexOf(elem);return elemIndex<0||elemIndex===siblings2.length-1?[]:siblings2.slice(elemIndex+1).filter(adapter.isTag)}function copyOptions(options){return{xmlMode:!!options.xmlMode,lowerCaseAttributeNames:!!options.lowerCaseAttributeNames,lowerCaseTags:!!options.lowerCaseTags,quirksMode:!!options.quirksMode,cacheResults:!!options.cacheResults,pseudos:options.pseudos,adapter:options.adapter,equals:options.equals}}var import_boolbase4,PLACEHOLDER_ELEMENT,is,subselects,init_subselects=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js"(){import_boolbase4=__toESM(require_boolbase(),1);init_sort();PLACEHOLDER_ELEMENT={};__name(ensureIsTag,"ensureIsTag");__name(getNextSiblings,"getNextSiblings");__name(copyOptions,"copyOptions");is=__name((next2,token,options,context,compileToken2)=>{let func=compileToken2(token,copyOptions(options),context);return func===import_boolbase4.default.trueFunc?next2:func===import_boolbase4.default.falseFunc?import_boolbase4.default.falseFunc:elem=>func(elem)&&next2(elem)},"is"),subselects={is,matches:is,where:is,not(next2,token,options,context,compileToken2){let func=compileToken2(token,copyOptions(options),context);return func===import_boolbase4.default.falseFunc?next2:func===import_boolbase4.default.trueFunc?import_boolbase4.default.falseFunc:elem=>!func(elem)&&next2(elem)},has(next2,subselect,options,_context,compileToken2){let{adapter}=options,opts=copyOptions(options);opts.relativeSelector=!0;let context=subselect.some(s=>s.some(isTraversal2))?[PLACEHOLDER_ELEMENT]:void 0,compiled=compileToken2(subselect,opts,context);if(compiled===import_boolbase4.default.falseFunc)return import_boolbase4.default.falseFunc;let hasElement=ensureIsTag(compiled,adapter);if(context&&compiled!==import_boolbase4.default.trueFunc){let{shouldTestNextSiblings=!1}=compiled;return elem=>{if(!next2(elem))return!1;context[0]=elem;let childs=adapter.getChildren(elem),nextElements=shouldTestNextSiblings?[...childs,...getNextSiblings(elem,adapter)]:childs;return adapter.existsOne(hasElement,nextElements)}}return elem=>next2(elem)&&adapter.existsOne(hasElement,adapter.getChildren(elem))}}}});function compilePseudoSelector(next2,selector,options,context,compileToken2){var _a4;let{name,data:data2}=selector;if(Array.isArray(data2)){if(!(name in subselects))throw new Error(`Unknown pseudo-class :${name}(${data2})`);return subselects[name](next2,data2,options,context,compileToken2)}let userPseudo=(_a4=options.pseudos)===null||_a4===void 0?void 0:_a4[name],stringPseudo=typeof userPseudo=="string"?userPseudo:aliases[name];if(typeof stringPseudo=="string"){if(data2!=null)throw new Error(`Pseudo ${name} doesn't have any arguments`);let alias=parse10(stringPseudo);return subselects.is(next2,alias,options,context,compileToken2)}if(typeof userPseudo=="function")return verifyPseudoArgs(userPseudo,name,data2,1),elem=>userPseudo(elem,data2)&&next2(elem);if(name in filters)return filters[name](next2,data2,options,context);if(name in pseudos){let pseudo=pseudos[name];return verifyPseudoArgs(pseudo,name,data2,2),elem=>pseudo(elem,options,data2)&&next2(elem)}throw new Error(`Unknown pseudo-class :${name}`)}var init_pseudo_selectors=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/index.js"(){init_es();init_filters();init_pseudos();init_aliases();init_subselects();__name(compilePseudoSelector,"compilePseudoSelector")}});function getElementParent(node,adapter){let parent2=adapter.getParent(node);return parent2&&adapter.isTag(parent2)?parent2:null}function compileGeneralSelector(next2,selector,options,context,compileToken2){let{adapter,equals}=options;switch(selector.type){case SelectorType.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case SelectorType.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case SelectorType.Attribute:{if(selector.namespace!=null)throw new Error("Namespaced attributes are not yet supported by css-select");return(!options.xmlMode||options.lowerCaseAttributeNames)&&(selector.name=selector.name.toLowerCase()),attributeRules[selector.action](next2,selector,options)}case SelectorType.Pseudo:return compilePseudoSelector(next2,selector,options,context,compileToken2);case SelectorType.Tag:{if(selector.namespace!=null)throw new Error("Namespaced tag names are not yet supported by css-select");let{name}=selector;return(!options.xmlMode||options.lowerCaseTags)&&(name=name.toLowerCase()),__name(function(elem){return adapter.getName(elem)===name&&next2(elem)},"tag")}case SelectorType.Descendant:{if(options.cacheResults===!1||typeof WeakSet>"u")return __name(function(elem){let current=elem;for(;current=getElementParent(current,adapter);)if(next2(current))return!0;return!1},"descendant");let isFalseCache=new WeakSet;return __name(function(elem){let current=elem;for(;current=getElementParent(current,adapter);)if(!isFalseCache.has(current)){if(adapter.isTag(current)&&next2(current))return!0;isFalseCache.add(current)}return!1},"cachedDescendant")}case"_flexibleDescendant":return __name(function(elem){let current=elem;do if(next2(current))return!0;while(current=getElementParent(current,adapter));return!1},"flexibleDescendant");case SelectorType.Parent:return __name(function(elem){return adapter.getChildren(elem).some(elem2=>adapter.isTag(elem2)&&next2(elem2))},"parent");case SelectorType.Child:return __name(function(elem){let parent2=adapter.getParent(elem);return parent2!=null&&adapter.isTag(parent2)&&next2(parent2)},"child");case SelectorType.Sibling:return __name(function(elem){let siblings2=adapter.getSiblings(elem);for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&next2(currentSibling))return!0}return!1},"sibling");case SelectorType.Adjacent:return adapter.prevElementSibling?__name(function(elem){let previous=adapter.prevElementSibling(elem);return previous!=null&&next2(previous)},"adjacent"):__name(function(elem){let siblings2=adapter.getSiblings(elem),lastElement;for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;adapter.isTag(currentSibling)&&(lastElement=currentSibling)}return!!lastElement&&next2(lastElement)},"adjacent");case SelectorType.Universal:{if(selector.namespace!=null&&selector.namespace!=="*")throw new Error("Namespaced universal selectors are not yet supported by css-select");return next2}}}var init_general=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/general.js"(){init_attributes2();init_pseudo_selectors();init_es();__name(getElementParent,"getElementParent");__name(compileGeneralSelector,"compileGeneralSelector")}});function compile3(selector,options,context){let next2=compileUnsafe(selector,options,context);return ensureIsTag(next2,options.adapter)}function compileUnsafe(selector,options,context){let token=typeof selector=="string"?parse10(selector):selector;return compileToken(token,options,context)}function includesScopePseudo(t2){return t2.type===SelectorType.Pseudo&&(t2.name==="scope"||Array.isArray(t2.data)&&t2.data.some(data2=>data2.some(includesScopePseudo)))}function absolutize(token,{adapter},context){let hasContext=!!context?.every(e=>{let parent2=adapter.isTag(e)&&adapter.getParent(e);return e===PLACEHOLDER_ELEMENT||parent2&&adapter.isTag(parent2)});for(let t2 of token){if(!(t2.length>0&&isTraversal2(t2[0])&&t2[0].type!==SelectorType.Descendant))if(hasContext&&!t2.some(includesScopePseudo))t2.unshift(DESCENDANT_TOKEN);else continue;t2.unshift(SCOPE_TOKEN)}}function compileToken(token,options,context){var _a4;token.forEach(sortByProcedure),context=(_a4=options.context)!==null&&_a4!==void 0?_a4:context;let isArrayContext=Array.isArray(context),finalContext=context&&(Array.isArray(context)?context:[context]);if(options.relativeSelector!==!1)absolutize(token,options,finalContext);else if(token.some(t2=>t2.length>0&&isTraversal2(t2[0])))throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");let shouldTestNextSiblings=!1,query=token.map(rules2=>{if(rules2.length>=2){let[first2,second]=rules2;first2.type!==SelectorType.Pseudo||first2.name!=="scope"||(isArrayContext&&second.type===SelectorType.Descendant?rules2[1]=FLEXIBLE_DESCENDANT_TOKEN:(second.type===SelectorType.Adjacent||second.type===SelectorType.Sibling)&&(shouldTestNextSiblings=!0))}return compileRules(rules2,options,finalContext)}).reduce(reduceRules,import_boolbase5.default.falseFunc);return query.shouldTestNextSiblings=shouldTestNextSiblings,query}function compileRules(rules2,options,context){var _a4;return rules2.reduce((previous,rule)=>previous===import_boolbase5.default.falseFunc?import_boolbase5.default.falseFunc:compileGeneralSelector(previous,rule,options,context,compileToken),(_a4=options.rootFunc)!==null&&_a4!==void 0?_a4:import_boolbase5.default.trueFunc)}function reduceRules(a,b){return b===import_boolbase5.default.falseFunc||a===import_boolbase5.default.trueFunc?a:a===import_boolbase5.default.falseFunc||b===import_boolbase5.default.trueFunc?b:__name(function(elem){return a(elem)||b(elem)},"combine")}var import_boolbase5,DESCENDANT_TOKEN,FLEXIBLE_DESCENDANT_TOKEN,SCOPE_TOKEN,init_compile2=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/compile.js"(){init_es();import_boolbase5=__toESM(require_boolbase(),1);init_sort();init_general();init_subselects();__name(compile3,"compile");__name(compileUnsafe,"compileUnsafe");__name(includesScopePseudo,"includesScopePseudo");DESCENDANT_TOKEN={type:SelectorType.Descendant},FLEXIBLE_DESCENDANT_TOKEN={type:"_flexibleDescendant"},SCOPE_TOKEN={type:SelectorType.Pseudo,name:"scope",data:null};__name(absolutize,"absolutize");__name(compileToken,"compileToken");__name(compileRules,"compileRules");__name(reduceRules,"reduceRules")}});function convertOptionFormats(options){var _a4,_b,_c,_d;let opts=options??defaultOptions;return(_a4=opts.adapter)!==null&&_a4!==void 0||(opts.adapter=esm_exports2),(_b=opts.equals)!==null&&_b!==void 0||(opts.equals=(_d=(_c=opts.adapter)===null||_c===void 0?void 0:_c.equals)!==null&&_d!==void 0?_d:defaultEquals),opts}function wrapCompile(func){return __name(function(selector,options,context){let opts=convertOptionFormats(options);return func(selector,opts,context)},"addAdapter")}function getSelectorFunc(searchFunc){return __name(function(query,elements,options){let opts=convertOptionFormats(options);typeof query!="function"&&(query=compileUnsafe(query,opts,elements));let filteredElements=prepareContext(elements,opts.adapter,query.shouldTestNextSiblings);return searchFunc(query,filteredElements,opts)},"select")}function prepareContext(elems,adapter,shouldTestNextSiblings=!1){return shouldTestNextSiblings&&(elems=appendNextSiblings(elems,adapter)),Array.isArray(elems)?adapter.removeSubsets(elems):adapter.getChildren(elems)}function appendNextSiblings(elem,adapter){let elems=Array.isArray(elem)?elem.slice(0):[elem],elemsLength=elems.length;for(let i=0;i<elemsLength;i++){let nextSiblings=getNextSiblings(elems[i],adapter);elems.push(...nextSiblings)}return elems}var import_boolbase6,defaultEquals,defaultOptions,compile4,_compileUnsafe,_compileToken,selectAll,selectOne,init_esm9=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/index.js"(){init_esm6();import_boolbase6=__toESM(require_boolbase(),1);init_compile2();init_subselects();init_pseudo_selectors();defaultEquals=__name((a,b)=>a===b,"defaultEquals"),defaultOptions={adapter:esm_exports2,equals:defaultEquals};__name(convertOptionFormats,"convertOptionFormats");__name(wrapCompile,"wrapCompile");compile4=wrapCompile(compile3),_compileUnsafe=wrapCompile(compileUnsafe),_compileToken=wrapCompile(compileToken);__name(getSelectorFunc,"getSelectorFunc");__name(prepareContext,"prepareContext");__name(appendNextSiblings,"appendNextSiblings");selectAll=getSelectorFunc((query,elems,options)=>query===import_boolbase6.default.falseFunc||!elems||elems.length===0?[]:options.adapter.findAll(query,elems)),selectOne=getSelectorFunc((query,elems,options)=>query===import_boolbase6.default.falseFunc||!elems||elems.length===0?null:options.adapter.findOne(query,elems))}});function isFilter(s){return s.type!=="pseudo"?!1:filterNames.has(s.name)?!0:s.name==="not"&&Array.isArray(s.data)?s.data.some(s2=>s2.some(isFilter)):!1}function getLimit(filter4,data2,partLimit){let num=data2!=null?parseInt(data2,10):NaN;switch(filter4){case"first":return 1;case"nth":case"eq":return isFinite(num)?num>=0?num+1:1/0:0;case"lt":return isFinite(num)?num>=0?Math.min(num,partLimit):1/0:0;case"gt":return isFinite(num)?1/0:0;case"odd":return 2*partLimit;case"even":return 2*partLimit-1;case"last":case"not":return 1/0}}var filterNames,init_positionals=__esm({"../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/positionals.js"(){filterNames=new Set(["first","last","eq","gt","nth","lt","even","odd"]);__name(isFilter,"isFilter");__name(getLimit,"getLimit")}});function getDocumentRoot(node){for(;node.parent;)node=node.parent;return node}function groupSelectors(selectors){let filteredSelectors=[],plainSelectors=[];for(let selector of selectors)selector.some(isFilter)?filteredSelectors.push(selector):plainSelectors.push(selector);return[plainSelectors,filteredSelectors]}var init_helpers2=__esm({"../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/helpers.js"(){init_positionals();__name(getDocumentRoot,"getDocumentRoot");__name(groupSelectors,"groupSelectors")}});function is2(element,selector,options={}){return some([element],selector,options)}function some(elements,selector,options={}){if(typeof selector=="function")return elements.some(selector);let[plain,filtered]=groupSelectors(parse10(selector));return plain.length>0&&elements.some(_compileToken(plain,options))||filtered.some(sel=>filterBySelector(sel,elements,options).length>0)}function filterByPosition(filter4,elems,data2,options){let num=typeof data2=="string"?parseInt(data2,10):NaN;switch(filter4){case"first":case"lt":return elems;case"last":return elems.length>0?[elems[elems.length-1]]:elems;case"nth":case"eq":return isFinite(num)&&Math.abs(num)<elems.length?[num<0?elems[elems.length+num]:elems[num]]:[];case"gt":return isFinite(num)?elems.slice(num+1):[];case"even":return elems.filter((_,i)=>i%2===0);case"odd":return elems.filter((_,i)=>i%2===1);case"not":{let filtered=new Set(filterParsed(data2,elems,options));return elems.filter(e=>!filtered.has(e))}}}function filter2(selector,elements,options={}){return filterParsed(parse10(selector),elements,options)}function filterParsed(selector,elements,options){if(elements.length===0)return[];let[plainSelectors,filteredSelectors]=groupSelectors(selector),found;if(plainSelectors.length){let filtered=filterElements(elements,plainSelectors,options);if(filteredSelectors.length===0)return filtered;filtered.length&&(found=new Set(filtered))}for(let i=0;i<filteredSelectors.length&&found?.size!==elements.length;i++){let filteredSelector=filteredSelectors[i];if((found?elements.filter(e=>isTag2(e)&&!found.has(e)):elements).length===0)break;let filtered=filterBySelector(filteredSelector,elements,options);if(filtered.length)if(found)filtered.forEach(el=>found.add(el));else{if(i===filteredSelectors.length-1)return filtered;found=new Set(filtered)}}return typeof found<"u"?found.size===elements.length?elements:elements.filter(el=>found.has(el)):[]}function filterBySelector(selector,elements,options){var _a4;if(selector.some(isTraversal)){let root2=(_a4=options.root)!==null&&_a4!==void 0?_a4:getDocumentRoot(elements[0]),opts={...options,context:elements,relativeSelector:!1};return selector.push(SCOPE_PSEUDO),findFilterElements(root2,selector,opts,!0,elements.length)}return findFilterElements(elements,selector,options,!1,elements.length)}function select(selector,root2,options={},limit=1/0){if(typeof selector=="function")return find2(root2,selector);let[plain,filtered]=groupSelectors(parse10(selector)),results=filtered.map(sel=>findFilterElements(root2,sel,options,!0,limit));return plain.length&&results.push(findElements(root2,plain,options,limit)),results.length===0?[]:results.length===1?results[0]:uniqueSort(results.reduce((a,b)=>[...a,...b]))}function findFilterElements(root2,selector,options,queryForSelector,totalLimit){let filterIndex=selector.findIndex(isFilter),sub=selector.slice(0,filterIndex),filter4=selector[filterIndex],partLimit=selector.length-1===filterIndex?totalLimit:1/0,limit=getLimit(filter4.name,filter4.data,partLimit);if(limit===0)return[];let elems=(sub.length===0&&!Array.isArray(root2)?getChildren(root2).filter(isTag2):sub.length===0?(Array.isArray(root2)?root2:[root2]).filter(isTag2):queryForSelector||sub.some(isTraversal)?findElements(root2,[sub],options,limit):filterElements(root2,[sub],options)).slice(0,limit),result=filterByPosition(filter4.name,elems,filter4.data,options);if(result.length===0||selector.length===filterIndex+1)return result;let remainingSelector=selector.slice(filterIndex+1),remainingHasTraversal=remainingSelector.some(isTraversal);if(remainingHasTraversal){if(isTraversal(remainingSelector[0])){let{type}=remainingSelector[0];(type===SelectorType.Sibling||type===SelectorType.Adjacent)&&(result=prepareContext(result,esm_exports2,!0)),remainingSelector.unshift(UNIVERSAL_SELECTOR)}options={...options,relativeSelector:!1,rootFunc:__name(el=>result.includes(el),"rootFunc")}}else options.rootFunc&&options.rootFunc!==boolbase7.trueFunc&&(options={...options,rootFunc:boolbase7.trueFunc});return remainingSelector.some(isFilter)?findFilterElements(result,remainingSelector,options,!1,totalLimit):remainingHasTraversal?findElements(result,[remainingSelector],options,totalLimit):filterElements(result,[remainingSelector],options)}function findElements(root2,sel,options,limit){let query=_compileToken(sel,options,root2);return find2(root2,query,limit)}function find2(root2,query,limit=1/0){let elems=prepareContext(root2,esm_exports2,query.shouldTestNextSiblings);return find(node=>isTag2(node)&&query(node),elems,!0,limit)}function filterElements(elements,sel,options){let els=(Array.isArray(elements)?elements:[elements]).filter(isTag2);if(els.length===0)return els;let query=_compileToken(sel,options);return query===boolbase7.trueFunc?els:els.filter(query)}var boolbase7,UNIVERSAL_SELECTOR,SCOPE_PSEUDO,init_esm10=__esm({"../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/index.js"(){init_es();init_esm9();init_esm6();boolbase7=__toESM(require_boolbase(),1);init_helpers2();init_positionals();init_esm9();UNIVERSAL_SELECTOR={type:SelectorType.Universal,namespace:null},SCOPE_PSEUDO={type:SelectorType.Pseudo,name:"scope",data:null};__name(is2,"is");__name(some,"some");__name(filterByPosition,"filterByPosition");__name(filter2,"filter");__name(filterParsed,"filterParsed");__name(filterBySelector,"filterBySelector");__name(select,"select");__name(findFilterElements,"findFilterElements");__name(findElements,"findElements");__name(find2,"find");__name(filterElements,"filterElements")}});var traversing_exports={};__export(traversing_exports,{_findBySelector:()=>_findBySelector,add:()=>add,addBack:()=>addBack,children:()=>children,closest:()=>closest,contents:()=>contents,each:()=>each,end:()=>end,eq:()=>eq,filter:()=>filter3,filterArray:()=>filterArray,find:()=>find3,first:()=>first,get:()=>get,has:()=>has,index:()=>index,is:()=>is3,last:()=>last,map:()=>map,next:()=>next,nextAll:()=>nextAll,nextUntil:()=>nextUntil,not:()=>not,parent:()=>parent,parents:()=>parents,parentsUntil:()=>parentsUntil,prev:()=>prev,prevAll:()=>prevAll,prevUntil:()=>prevUntil,siblings:()=>siblings,slice:()=>slice,toArray:()=>toArray});function find3(selectorOrHaystack){if(!selectorOrHaystack)return this._make([]);if(typeof selectorOrHaystack!="string"){let haystack=isCheerio(selectorOrHaystack)?selectorOrHaystack.toArray():[selectorOrHaystack],context=this.toArray();return this._make(haystack.filter(elem=>context.some(node=>contains(node,elem))))}return this._findBySelector(selectorOrHaystack,Number.POSITIVE_INFINITY)}function _findBySelector(selector,limit){var _a4;let context=this.toArray(),elems=reContextSelector.test(selector)?context:this.children().toArray(),options={context,root:(_a4=this._root)===null||_a4===void 0?void 0:_a4[0],xmlMode:this.options.xmlMode,lowerCaseTags:this.options.lowerCaseTags,lowerCaseAttributeNames:this.options.lowerCaseAttributeNames,pseudos:this.options.pseudos,quirksMode:this.options.quirksMode};return this._make(select(selector,elems,options,limit))}function _getMatcher(matchMap){return function(fn,...postFns){return function(selector){var _a4;let matched=matchMap(fn,this);return selector&&(matched=filterArray(matched,selector,this.options.xmlMode,(_a4=this._root)===null||_a4===void 0?void 0:_a4[0])),this._make(this.length>1&&matched.length>1?postFns.reduce((elems,fn2)=>fn2(elems),matched):matched)}}}function _matchUntil(nextElem,...postFns){let matches=null,innerMatcher=_getMatcher((nextElem2,elems)=>{let matched=[];return domEach(elems,elem=>{for(let next2;(next2=nextElem2(elem))&&!matches?.(next2,matched.length);elem=next2)matched.push(next2)}),matched})(nextElem,...postFns);return function(selector,filterSelector){matches=typeof selector=="string"?elem=>is2(elem,selector,this.options):selector?getFilterFn(selector):null;let ret=innerMatcher.call(this,filterSelector);return matches=null,ret}}function _removeDuplicates(elems){return elems.length>1?Array.from(new Set(elems)):elems}function closest(selector){var _a4;let set=[];if(!selector)return this._make(set);let selectOpts={xmlMode:this.options.xmlMode,root:(_a4=this._root)===null||_a4===void 0?void 0:_a4[0]},selectFn=typeof selector=="string"?elem=>is2(elem,selector,selectOpts):getFilterFn(selector);return domEach(this,elem=>{for(elem&&!isDocument(elem)&&!isTag2(elem)&&(elem=elem.parent);elem&&isTag2(elem);){if(selectFn(elem,0)){set.includes(elem)||set.push(elem);break}elem=elem.parent}}),this._make(set)}function contents(){let elems=this.toArray().reduce((newElems,elem)=>hasChildren(elem)?newElems.concat(elem.children):newElems,[]);return this._make(elems)}function each(fn){let i=0,len=this.length;for(;i<len&&fn.call(this[i],i,this[i])!==!1;)++i;return this}function map(fn){let elems=[];for(let i=0;i<this.length;i++){let el=this[i],val2=fn.call(el,i,el);val2!=null&&(elems=elems.concat(val2))}return this._make(elems)}function getFilterFn(match){return typeof match=="function"?(el,i)=>match.call(el,i,el):isCheerio(match)?el=>Array.prototype.includes.call(match,el):function(el){return match===el}}function filter3(match){var _a4;return this._make(filterArray(this.toArray(),match,this.options.xmlMode,(_a4=this._root)===null||_a4===void 0?void 0:_a4[0]))}function filterArray(nodes,match,xmlMode,root2){return typeof match=="string"?filter2(match,nodes,{xmlMode,root:root2}):nodes.filter(getFilterFn(match))}function is3(selector){let nodes=this.toArray();return typeof selector=="string"?some(nodes.filter(isTag2),selector,this.options):selector?nodes.some(getFilterFn(selector)):!1}function not(match){let nodes=this.toArray();if(typeof match=="string"){let matches=new Set(filter2(match,nodes,this.options));nodes=nodes.filter(el=>!matches.has(el))}else{let filterFn=getFilterFn(match);nodes=nodes.filter((el,i)=>!filterFn(el,i))}return this._make(nodes)}function has(selectorOrHaystack){return this.filter(typeof selectorOrHaystack=="string"?`:has(${selectorOrHaystack})`:(_,el)=>this._make(el).find(selectorOrHaystack).length>0)}function first(){return this.length>1?this._make(this[0]):this}function last(){return this.length>0?this._make(this[this.length-1]):this}function eq(i){var _a4;return i=+i,i===0&&this.length<=1?this:(i<0&&(i=this.length+i),this._make((_a4=this[i])!==null&&_a4!==void 0?_a4:[]))}function get(i){return i==null?this.toArray():this[i<0?this.length+i:i]}function toArray(){return Array.prototype.slice.call(this)}function index(selectorOrNeedle){let $haystack,needle;return selectorOrNeedle==null?($haystack=this.parent().children(),needle=this[0]):typeof selectorOrNeedle=="string"?($haystack=this._make(selectorOrNeedle),needle=this[0]):($haystack=this,needle=isCheerio(selectorOrNeedle)?selectorOrNeedle[0]:selectorOrNeedle),Array.prototype.indexOf.call($haystack,needle)}function slice(start,end2){return this._make(Array.prototype.slice.call(this,start,end2))}function end(){var _a4;return(_a4=this.prevObject)!==null&&_a4!==void 0?_a4:this._make([])}function add(other,context){let selection=this._make(other,context),contents2=uniqueSort([...this.get(),...selection.get()]);return this._make(contents2)}function addBack(selector){return this.prevObject?this.add(selector?this.prevObject.filter(selector):this.prevObject):this}var reContextSelector,_matcher,_singleMatcher,parent,parents,parentsUntil,next,nextAll,nextUntil,prev,prevAll,prevUntil,siblings,children,init_traversing=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/traversing.js"(){init_esm3();init_esm10();init_utils2();init_static();init_esm6();reContextSelector=/^\s*(?:[+~]|:scope\b)/;__name(find3,"find");__name(_findBySelector,"_findBySelector");__name(_getMatcher,"_getMatcher");_matcher=_getMatcher((fn,elems)=>{let ret=[];for(let i=0;i<elems.length;i++){let value=fn(elems[i]);value.length>0&&(ret=ret.concat(value))}return ret}),_singleMatcher=_getMatcher((fn,elems)=>{let ret=[];for(let i=0;i<elems.length;i++){let value=fn(elems[i]);value!==null&&ret.push(value)}return ret});__name(_matchUntil,"_matchUntil");__name(_removeDuplicates,"_removeDuplicates");parent=_singleMatcher(({parent:parent2})=>parent2&&!isDocument(parent2)?parent2:null,_removeDuplicates),parents=_matcher(elem=>{let matched=[];for(;elem.parent&&!isDocument(elem.parent);)matched.push(elem.parent),elem=elem.parent;return matched},uniqueSort,elems=>elems.reverse()),parentsUntil=_matchUntil(({parent:parent2})=>parent2&&!isDocument(parent2)?parent2:null,uniqueSort,elems=>elems.reverse());__name(closest,"closest");next=_singleMatcher(elem=>nextElementSibling(elem)),nextAll=_matcher(elem=>{let matched=[];for(;elem.next;)elem=elem.next,isTag2(elem)&&matched.push(elem);return matched},_removeDuplicates),nextUntil=_matchUntil(el=>nextElementSibling(el),_removeDuplicates),prev=_singleMatcher(elem=>prevElementSibling(elem)),prevAll=_matcher(elem=>{let matched=[];for(;elem.prev;)elem=elem.prev,isTag2(elem)&&matched.push(elem);return matched},_removeDuplicates),prevUntil=_matchUntil(el=>prevElementSibling(el),_removeDuplicates),siblings=_matcher(elem=>getSiblings(elem).filter(el=>isTag2(el)&&el!==elem),uniqueSort),children=_matcher(elem=>getChildren(elem).filter(isTag2),_removeDuplicates);__name(contents,"contents");__name(each,"each");__name(map,"map");__name(getFilterFn,"getFilterFn");__name(filter3,"filter");__name(filterArray,"filterArray");__name(is3,"is");__name(not,"not");__name(has,"has");__name(first,"first");__name(last,"last");__name(eq,"eq");__name(get,"get");__name(toArray,"toArray");__name(index,"index");__name(slice,"slice");__name(end,"end");__name(add,"add");__name(addBack,"addBack")}});function getParse(parser){return __name(function(content2,options,isDocument2,context){if(typeof Buffer<"u"&&Buffer.isBuffer(content2)&&(content2=content2.toString()),typeof content2=="string")return parser(content2,options,isDocument2,context);let doc=content2;if(!Array.isArray(doc)&&isDocument(doc))return doc;let root2=new Document([]);return update(doc,root2),root2},"parse")}function update(newChilds,parent2){let arr=Array.isArray(newChilds)?newChilds:[newChilds];parent2?parent2.children=arr:parent2=null;for(let i=0;i<arr.length;i++){let node=arr[i];node.parent&&node.parent.children!==arr&&removeElement(node),parent2?(node.prev=arr[i-1]||null,node.next=arr[i+1]||null):node.prev=node.next=null,node.parent=parent2}return parent2}var init_parse4=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/parse.js"(){init_esm6();init_esm3();__name(getParse,"getParse");__name(update,"update")}});var manipulation_exports={};__export(manipulation_exports,{_makeDomArray:()=>_makeDomArray,after:()=>after,append:()=>append2,appendTo:()=>appendTo,before:()=>before,clone:()=>clone,empty:()=>empty,html:()=>html2,insertAfter:()=>insertAfter,insertBefore:()=>insertBefore,prepend:()=>prepend2,prependTo:()=>prependTo,remove:()=>remove,replaceWith:()=>replaceWith,text:()=>text2,toString:()=>toString,unwrap:()=>unwrap,wrap:()=>wrap,wrapAll:()=>wrapAll,wrapInner:()=>wrapInner});function _makeDomArray(elem,clone2){if(elem==null)return[];if(typeof elem=="string")return this._parse(elem,this.options,!1,null).children.slice(0);if("length"in elem){if(elem.length===1)return this._makeDomArray(elem[0],clone2);let result=[];for(let i=0;i<elem.length;i++){let el=elem[i];if(typeof el=="object"){if(el==null)continue;if(!("length"in el)){result.push(clone2?cloneNode(el,!0):el);continue}}result.push(...this._makeDomArray(el,clone2))}return result}return[clone2?cloneNode(elem,!0):elem]}function _insert(concatenator){return function(...elems){let lastIdx=this.length-1;return domEach(this,(el,i)=>{if(!hasChildren(el))return;let domSrc=typeof elems[0]=="function"?elems[0].call(el,i,this._render(el.children)):elems,dom=this._makeDomArray(domSrc,i<lastIdx);concatenator(dom,el.children,el)})}}function uniqueSplice(array,spliceIdx,spliceCount,newElems,parent2){var _a4,_b;let spliceArgs=[spliceIdx,spliceCount,...newElems],prev2=spliceIdx===0?null:array[spliceIdx-1],next2=spliceIdx+spliceCount>=array.length?null:array[spliceIdx+spliceCount];for(let idx=0;idx<newElems.length;++idx){let node=newElems[idx],oldParent=node.parent;if(oldParent){let prevIdx=oldParent.children.indexOf(node);prevIdx!==-1&&(oldParent.children.splice(prevIdx,1),parent2===oldParent&&spliceIdx>prevIdx&&spliceArgs[0]--)}node.parent=parent2,node.prev&&(node.prev.next=(_a4=node.next)!==null&&_a4!==void 0?_a4:null),node.next&&(node.next.prev=(_b=node.prev)!==null&&_b!==void 0?_b:null),node.prev=idx===0?prev2:newElems[idx-1],node.next=idx===newElems.length-1?next2:newElems[idx+1]}return prev2&&(prev2.next=newElems[0]),next2&&(next2.prev=newElems[newElems.length-1]),array.splice(...spliceArgs)}function appendTo(target){return(isCheerio(target)?target:this._make(target)).append(this),this}function prependTo(target){return(isCheerio(target)?target:this._make(target)).prepend(this),this}function _wrap(insert){return function(wrapper){let lastIdx=this.length-1,lastParent=this.parents().last();for(let i=0;i<this.length;i++){let el=this[i],wrap2=typeof wrapper=="function"?wrapper.call(el,i,el):typeof wrapper=="string"&&!isHtml(wrapper)?lastParent.find(wrapper).clone():wrapper,[wrapperDom]=this._makeDomArray(wrap2,i<lastIdx);if(!wrapperDom||!hasChildren(wrapperDom))continue;let elInsertLocation=wrapperDom,j2=0;for(;j2<elInsertLocation.children.length;){let child=elInsertLocation.children[j2];isTag2(child)?(elInsertLocation=child,j2=0):j2++}insert(el,elInsertLocation,[wrapperDom])}return this}}function unwrap(selector){return this.parent(selector).not("body").each((_,el)=>{this._make(el).replaceWith(el.children)}),this}function wrapAll(wrapper){let el=this[0];if(el){let wrap2=this._make(typeof wrapper=="function"?wrapper.call(el,0,el):wrapper).insertBefore(el),elInsertLocation;for(let i=0;i<wrap2.length;i++)wrap2[i].type===esm_exports.Tag&&(elInsertLocation=wrap2[i]);let j2=0;for(;elInsertLocation&&j2<elInsertLocation.children.length;){let child=elInsertLocation.children[j2];child.type===esm_exports.Tag?(elInsertLocation=child,j2=0):j2++}elInsertLocation&&this._make(elInsertLocation).append(this)}return this}function after(...elems){let lastIdx=this.length-1;return domEach(this,(el,i)=>{if(!hasChildren(el)||!el.parent)return;let siblings2=el.parent.children,index2=siblings2.indexOf(el);if(index2===-1)return;let domSrc=typeof elems[0]=="function"?elems[0].call(el,i,this._render(el.children)):elems,dom=this._makeDomArray(domSrc,i<lastIdx);uniqueSplice(siblings2,index2+1,0,dom,el.parent)})}function insertAfter(target){typeof target=="string"&&(target=this._make(target)),this.remove();let clones=[];for(let el of this._makeDomArray(target)){let clonedSelf=this.clone().toArray(),{parent:parent2}=el;if(!parent2)continue;let siblings2=parent2.children,index2=siblings2.indexOf(el);index2!==-1&&(uniqueSplice(siblings2,index2+1,0,clonedSelf,parent2),clones.push(...clonedSelf))}return this._make(clones)}function before(...elems){let lastIdx=this.length-1;return domEach(this,(el,i)=>{if(!hasChildren(el)||!el.parent)return;let siblings2=el.parent.children,index2=siblings2.indexOf(el);if(index2===-1)return;let domSrc=typeof elems[0]=="function"?elems[0].call(el,i,this._render(el.children)):elems,dom=this._makeDomArray(domSrc,i<lastIdx);uniqueSplice(siblings2,index2,0,dom,el.parent)})}function insertBefore(target){let targetArr=this._make(target);this.remove();let clones=[];return domEach(targetArr,el=>{let clonedSelf=this.clone().toArray(),{parent:parent2}=el;if(!parent2)return;let siblings2=parent2.children,index2=siblings2.indexOf(el);index2!==-1&&(uniqueSplice(siblings2,index2,0,clonedSelf,parent2),clones.push(...clonedSelf))}),this._make(clones)}function remove(selector){let elems=selector?this.filter(selector):this;return domEach(elems,el=>{removeElement(el),el.prev=el.next=el.parent=null}),this}function replaceWith(content2){return domEach(this,(el,i)=>{let{parent:parent2}=el;if(!parent2)return;let siblings2=parent2.children,cont=typeof content2=="function"?content2.call(el,i,el):content2,dom=this._makeDomArray(cont);update(dom,null);let index2=siblings2.indexOf(el);uniqueSplice(siblings2,index2,1,dom,parent2),dom.includes(el)||(el.parent=el.prev=el.next=null)})}function empty(){return domEach(this,el=>{if(hasChildren(el)){for(let child of el.children)child.next=child.prev=child.parent=null;el.children.length=0}})}function html2(str){if(str===void 0){let el=this[0];return!el||!hasChildren(el)?null:this._render(el.children)}return domEach(this,el=>{if(!hasChildren(el))return;for(let child of el.children)child.next=child.prev=child.parent=null;let content2=isCheerio(str)?str.toArray():this._parse(`${str}`,this.options,!1,el).children;update(content2,el)})}function toString(){return this._render(this)}function text2(str){return str===void 0?text(this):typeof str=="function"?domEach(this,(el,i)=>this._make(el).text(str.call(el,i,text([el])))):domEach(this,el=>{if(!hasChildren(el))return;for(let child of el.children)child.next=child.prev=child.parent=null;let textNode=new Text2(`${str}`);update(textNode,el)})}function clone(){let clone2=Array.prototype.map.call(this.get(),el=>cloneNode(el,!0)),root2=new Document(clone2);for(let node of clone2)node.parent=root2;return this._make(clone2)}var append2,prepend2,wrap,wrapInner,init_manipulation2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/manipulation.js"(){init_esm3();init_parse4();init_static();init_utils2();init_esm6();init_esm7();__name(_makeDomArray,"_makeDomArray");__name(_insert,"_insert");__name(uniqueSplice,"uniqueSplice");__name(appendTo,"appendTo");__name(prependTo,"prependTo");append2=_insert((dom,children2,parent2)=>{uniqueSplice(children2,children2.length,0,dom,parent2)}),prepend2=_insert((dom,children2,parent2)=>{uniqueSplice(children2,0,0,dom,parent2)});__name(_wrap,"_wrap");wrap=_wrap((el,elInsertLocation,wrapperDom)=>{let{parent:parent2}=el;if(!parent2)return;let siblings2=parent2.children,index2=siblings2.indexOf(el);update([el],elInsertLocation),uniqueSplice(siblings2,index2,0,wrapperDom,parent2)}),wrapInner=_wrap((el,elInsertLocation,wrapperDom)=>{hasChildren(el)&&(update(el.children,elInsertLocation),update(wrapperDom,el))});__name(unwrap,"unwrap");__name(wrapAll,"wrapAll");__name(after,"after");__name(insertAfter,"insertAfter");__name(before,"before");__name(insertBefore,"insertBefore");__name(remove,"remove");__name(replaceWith,"replaceWith");__name(empty,"empty");__name(html2,"html");__name(toString,"toString");__name(text2,"text");__name(clone,"clone")}});var css_exports={};__export(css_exports,{css:()=>css});function css(prop2,val2){if(prop2!=null&&val2!=null||typeof prop2=="object"&&!Array.isArray(prop2))return domEach(this,(el,i)=>{isTag2(el)&&setCss(el,prop2,val2,i)});if(this.length!==0)return getCss(this[0],prop2)}function setCss(el,prop2,value,idx){if(typeof prop2=="string"){let styles=getCss(el),val2=typeof value=="function"?value.call(el,idx,styles[prop2]):value;val2===""?delete styles[prop2]:val2!=null&&(styles[prop2]=val2),el.attribs.style=stringify4(styles)}else if(typeof prop2=="object"){let keys=Object.keys(prop2);for(let i=0;i<keys.length;i++){let k=keys[i];setCss(el,k,prop2[k],i)}}}function getCss(el,prop2){if(!el||!isTag2(el))return;let styles=parse12(el.attribs.style);if(typeof prop2=="string")return styles[prop2];if(Array.isArray(prop2)){let newStyles={};for(let item of prop2)styles[item]!=null&&(newStyles[item]=styles[item]);return newStyles}return styles}function stringify4(obj){return Object.keys(obj).reduce((str,prop2)=>`${str}${str?" ":""}${prop2}: ${obj[prop2]};`,"")}function parse12(styles){if(styles=(styles||"").trim(),!styles)return{};let obj={},key;for(let str of styles.split(";")){let n=str.indexOf(":");if(n<1||n===str.length-1){let trimmed=str.trimEnd();trimmed.length>0&&key!==void 0&&(obj[key]+=`;${trimmed}`)}else key=str.slice(0,n).trim(),obj[key]=str.slice(n+1).trim()}return obj}var init_css=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/css.js"(){init_utils2();init_esm3();__name(css,"css");__name(setCss,"setCss");__name(getCss,"getCss");__name(stringify4,"stringify");__name(parse12,"parse")}});var forms_exports={};__export(forms_exports,{serialize:()=>serialize,serializeArray:()=>serializeArray});function serialize(){return this.serializeArray().map(data2=>`${encodeURIComponent(data2.name)}=${encodeURIComponent(data2.value)}`).join("&").replace(r20,"+")}function serializeArray(){return this.map((_,elem)=>{let $elem=this._make(elem);return isTag2(elem)&&elem.name==="form"?$elem.find(submittableSelector).toArray():$elem.filter(submittableSelector).toArray()}).filter('[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))').map((_,elem)=>{var _a4;let $elem=this._make(elem),name=$elem.attr("name"),value=(_a4=$elem.val())!==null&&_a4!==void 0?_a4:"";return Array.isArray(value)?value.map(val2=>({name,value:val2.replace(rCRLF,`\r
|
|
675
|
+
)`,enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"}}});function ensureIsTag(next2,adapter){return next2===import_boolbase4.default.falseFunc?import_boolbase4.default.falseFunc:elem=>adapter.isTag(elem)&&next2(elem)}function getNextSiblings(elem,adapter){let siblings2=adapter.getSiblings(elem);if(siblings2.length<=1)return[];let elemIndex=siblings2.indexOf(elem);return elemIndex<0||elemIndex===siblings2.length-1?[]:siblings2.slice(elemIndex+1).filter(adapter.isTag)}function copyOptions(options){return{xmlMode:!!options.xmlMode,lowerCaseAttributeNames:!!options.lowerCaseAttributeNames,lowerCaseTags:!!options.lowerCaseTags,quirksMode:!!options.quirksMode,cacheResults:!!options.cacheResults,pseudos:options.pseudos,adapter:options.adapter,equals:options.equals}}var import_boolbase4,PLACEHOLDER_ELEMENT,is,subselects,init_subselects=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js"(){import_boolbase4=__toESM(require_boolbase(),1);init_sort();PLACEHOLDER_ELEMENT={};__name(ensureIsTag,"ensureIsTag");__name(getNextSiblings,"getNextSiblings");__name(copyOptions,"copyOptions");is=__name((next2,token,options,context,compileToken2)=>{let func=compileToken2(token,copyOptions(options),context);return func===import_boolbase4.default.trueFunc?next2:func===import_boolbase4.default.falseFunc?import_boolbase4.default.falseFunc:elem=>func(elem)&&next2(elem)},"is"),subselects={is,matches:is,where:is,not(next2,token,options,context,compileToken2){let func=compileToken2(token,copyOptions(options),context);return func===import_boolbase4.default.falseFunc?next2:func===import_boolbase4.default.trueFunc?import_boolbase4.default.falseFunc:elem=>!func(elem)&&next2(elem)},has(next2,subselect,options,_context,compileToken2){let{adapter}=options,opts=copyOptions(options);opts.relativeSelector=!0;let context=subselect.some(s=>s.some(isTraversal2))?[PLACEHOLDER_ELEMENT]:void 0,compiled=compileToken2(subselect,opts,context);if(compiled===import_boolbase4.default.falseFunc)return import_boolbase4.default.falseFunc;let hasElement=ensureIsTag(compiled,adapter);if(context&&compiled!==import_boolbase4.default.trueFunc){let{shouldTestNextSiblings=!1}=compiled;return elem=>{if(!next2(elem))return!1;context[0]=elem;let childs=adapter.getChildren(elem),nextElements=shouldTestNextSiblings?[...childs,...getNextSiblings(elem,adapter)]:childs;return adapter.existsOne(hasElement,nextElements)}}return elem=>next2(elem)&&adapter.existsOne(hasElement,adapter.getChildren(elem))}}}});function compilePseudoSelector(next2,selector,options,context,compileToken2){var _a4;let{name,data:data2}=selector;if(Array.isArray(data2)){if(!(name in subselects))throw new Error(`Unknown pseudo-class :${name}(${data2})`);return subselects[name](next2,data2,options,context,compileToken2)}let userPseudo=(_a4=options.pseudos)===null||_a4===void 0?void 0:_a4[name],stringPseudo=typeof userPseudo=="string"?userPseudo:aliases[name];if(typeof stringPseudo=="string"){if(data2!=null)throw new Error(`Pseudo ${name} doesn't have any arguments`);let alias=parse12(stringPseudo);return subselects.is(next2,alias,options,context,compileToken2)}if(typeof userPseudo=="function")return verifyPseudoArgs(userPseudo,name,data2,1),elem=>userPseudo(elem,data2)&&next2(elem);if(name in filters)return filters[name](next2,data2,options,context);if(name in pseudos){let pseudo=pseudos[name];return verifyPseudoArgs(pseudo,name,data2,2),elem=>pseudo(elem,options,data2)&&next2(elem)}throw new Error(`Unknown pseudo-class :${name}`)}var init_pseudo_selectors=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/index.js"(){init_es();init_filters();init_pseudos();init_aliases();init_subselects();__name(compilePseudoSelector,"compilePseudoSelector")}});function getElementParent(node,adapter){let parent2=adapter.getParent(node);return parent2&&adapter.isTag(parent2)?parent2:null}function compileGeneralSelector(next2,selector,options,context,compileToken2){let{adapter,equals}=options;switch(selector.type){case SelectorType.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case SelectorType.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case SelectorType.Attribute:{if(selector.namespace!=null)throw new Error("Namespaced attributes are not yet supported by css-select");return(!options.xmlMode||options.lowerCaseAttributeNames)&&(selector.name=selector.name.toLowerCase()),attributeRules[selector.action](next2,selector,options)}case SelectorType.Pseudo:return compilePseudoSelector(next2,selector,options,context,compileToken2);case SelectorType.Tag:{if(selector.namespace!=null)throw new Error("Namespaced tag names are not yet supported by css-select");let{name}=selector;return(!options.xmlMode||options.lowerCaseTags)&&(name=name.toLowerCase()),__name(function(elem){return adapter.getName(elem)===name&&next2(elem)},"tag")}case SelectorType.Descendant:{if(options.cacheResults===!1||typeof WeakSet>"u")return __name(function(elem){let current=elem;for(;current=getElementParent(current,adapter);)if(next2(current))return!0;return!1},"descendant");let isFalseCache=new WeakSet;return __name(function(elem){let current=elem;for(;current=getElementParent(current,adapter);)if(!isFalseCache.has(current)){if(adapter.isTag(current)&&next2(current))return!0;isFalseCache.add(current)}return!1},"cachedDescendant")}case"_flexibleDescendant":return __name(function(elem){let current=elem;do if(next2(current))return!0;while(current=getElementParent(current,adapter));return!1},"flexibleDescendant");case SelectorType.Parent:return __name(function(elem){return adapter.getChildren(elem).some(elem2=>adapter.isTag(elem2)&&next2(elem2))},"parent");case SelectorType.Child:return __name(function(elem){let parent2=adapter.getParent(elem);return parent2!=null&&adapter.isTag(parent2)&&next2(parent2)},"child");case SelectorType.Sibling:return __name(function(elem){let siblings2=adapter.getSiblings(elem);for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&next2(currentSibling))return!0}return!1},"sibling");case SelectorType.Adjacent:return adapter.prevElementSibling?__name(function(elem){let previous=adapter.prevElementSibling(elem);return previous!=null&&next2(previous)},"adjacent"):__name(function(elem){let siblings2=adapter.getSiblings(elem),lastElement;for(let i=0;i<siblings2.length;i++){let currentSibling=siblings2[i];if(equals(elem,currentSibling))break;adapter.isTag(currentSibling)&&(lastElement=currentSibling)}return!!lastElement&&next2(lastElement)},"adjacent");case SelectorType.Universal:{if(selector.namespace!=null&&selector.namespace!=="*")throw new Error("Namespaced universal selectors are not yet supported by css-select");return next2}}}var init_general=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/general.js"(){init_attributes2();init_pseudo_selectors();init_es();__name(getElementParent,"getElementParent");__name(compileGeneralSelector,"compileGeneralSelector")}});function compile3(selector,options,context){let next2=compileUnsafe(selector,options,context);return ensureIsTag(next2,options.adapter)}function compileUnsafe(selector,options,context){let token=typeof selector=="string"?parse12(selector):selector;return compileToken(token,options,context)}function includesScopePseudo(t2){return t2.type===SelectorType.Pseudo&&(t2.name==="scope"||Array.isArray(t2.data)&&t2.data.some(data2=>data2.some(includesScopePseudo)))}function absolutize(token,{adapter},context){let hasContext=!!context?.every(e=>{let parent2=adapter.isTag(e)&&adapter.getParent(e);return e===PLACEHOLDER_ELEMENT||parent2&&adapter.isTag(parent2)});for(let t2 of token){if(!(t2.length>0&&isTraversal2(t2[0])&&t2[0].type!==SelectorType.Descendant))if(hasContext&&!t2.some(includesScopePseudo))t2.unshift(DESCENDANT_TOKEN);else continue;t2.unshift(SCOPE_TOKEN)}}function compileToken(token,options,context){var _a4;token.forEach(sortByProcedure),context=(_a4=options.context)!==null&&_a4!==void 0?_a4:context;let isArrayContext=Array.isArray(context),finalContext=context&&(Array.isArray(context)?context:[context]);if(options.relativeSelector!==!1)absolutize(token,options,finalContext);else if(token.some(t2=>t2.length>0&&isTraversal2(t2[0])))throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");let shouldTestNextSiblings=!1,query=token.map(rules2=>{if(rules2.length>=2){let[first2,second]=rules2;first2.type!==SelectorType.Pseudo||first2.name!=="scope"||(isArrayContext&&second.type===SelectorType.Descendant?rules2[1]=FLEXIBLE_DESCENDANT_TOKEN:(second.type===SelectorType.Adjacent||second.type===SelectorType.Sibling)&&(shouldTestNextSiblings=!0))}return compileRules(rules2,options,finalContext)}).reduce(reduceRules,import_boolbase5.default.falseFunc);return query.shouldTestNextSiblings=shouldTestNextSiblings,query}function compileRules(rules2,options,context){var _a4;return rules2.reduce((previous,rule)=>previous===import_boolbase5.default.falseFunc?import_boolbase5.default.falseFunc:compileGeneralSelector(previous,rule,options,context,compileToken),(_a4=options.rootFunc)!==null&&_a4!==void 0?_a4:import_boolbase5.default.trueFunc)}function reduceRules(a,b){return b===import_boolbase5.default.falseFunc||a===import_boolbase5.default.trueFunc?a:a===import_boolbase5.default.falseFunc||b===import_boolbase5.default.trueFunc?b:__name(function(elem){return a(elem)||b(elem)},"combine")}var import_boolbase5,DESCENDANT_TOKEN,FLEXIBLE_DESCENDANT_TOKEN,SCOPE_TOKEN,init_compile2=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/compile.js"(){init_es();import_boolbase5=__toESM(require_boolbase(),1);init_sort();init_general();init_subselects();__name(compile3,"compile");__name(compileUnsafe,"compileUnsafe");__name(includesScopePseudo,"includesScopePseudo");DESCENDANT_TOKEN={type:SelectorType.Descendant},FLEXIBLE_DESCENDANT_TOKEN={type:"_flexibleDescendant"},SCOPE_TOKEN={type:SelectorType.Pseudo,name:"scope",data:null};__name(absolutize,"absolutize");__name(compileToken,"compileToken");__name(compileRules,"compileRules");__name(reduceRules,"reduceRules")}});function convertOptionFormats(options){var _a4,_b,_c,_d;let opts=options??defaultOptions;return(_a4=opts.adapter)!==null&&_a4!==void 0||(opts.adapter=esm_exports2),(_b=opts.equals)!==null&&_b!==void 0||(opts.equals=(_d=(_c=opts.adapter)===null||_c===void 0?void 0:_c.equals)!==null&&_d!==void 0?_d:defaultEquals),opts}function wrapCompile(func){return __name(function(selector,options,context){let opts=convertOptionFormats(options);return func(selector,opts,context)},"addAdapter")}function getSelectorFunc(searchFunc){return __name(function(query,elements,options){let opts=convertOptionFormats(options);typeof query!="function"&&(query=compileUnsafe(query,opts,elements));let filteredElements=prepareContext(elements,opts.adapter,query.shouldTestNextSiblings);return searchFunc(query,filteredElements,opts)},"select")}function prepareContext(elems,adapter,shouldTestNextSiblings=!1){return shouldTestNextSiblings&&(elems=appendNextSiblings(elems,adapter)),Array.isArray(elems)?adapter.removeSubsets(elems):adapter.getChildren(elems)}function appendNextSiblings(elem,adapter){let elems=Array.isArray(elem)?elem.slice(0):[elem],elemsLength=elems.length;for(let i=0;i<elemsLength;i++){let nextSiblings=getNextSiblings(elems[i],adapter);elems.push(...nextSiblings)}return elems}var import_boolbase6,defaultEquals,defaultOptions,compile4,_compileUnsafe,_compileToken,selectAll,selectOne,init_esm9=__esm({"../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/index.js"(){init_esm6();import_boolbase6=__toESM(require_boolbase(),1);init_compile2();init_subselects();init_pseudo_selectors();defaultEquals=__name((a,b)=>a===b,"defaultEquals"),defaultOptions={adapter:esm_exports2,equals:defaultEquals};__name(convertOptionFormats,"convertOptionFormats");__name(wrapCompile,"wrapCompile");compile4=wrapCompile(compile3),_compileUnsafe=wrapCompile(compileUnsafe),_compileToken=wrapCompile(compileToken);__name(getSelectorFunc,"getSelectorFunc");__name(prepareContext,"prepareContext");__name(appendNextSiblings,"appendNextSiblings");selectAll=getSelectorFunc((query,elems,options)=>query===import_boolbase6.default.falseFunc||!elems||elems.length===0?[]:options.adapter.findAll(query,elems)),selectOne=getSelectorFunc((query,elems,options)=>query===import_boolbase6.default.falseFunc||!elems||elems.length===0?null:options.adapter.findOne(query,elems))}});function isFilter(s){return s.type!=="pseudo"?!1:filterNames.has(s.name)?!0:s.name==="not"&&Array.isArray(s.data)?s.data.some(s2=>s2.some(isFilter)):!1}function getLimit(filter4,data2,partLimit){let num=data2!=null?parseInt(data2,10):NaN;switch(filter4){case"first":return 1;case"nth":case"eq":return isFinite(num)?num>=0?num+1:1/0:0;case"lt":return isFinite(num)?num>=0?Math.min(num,partLimit):1/0:0;case"gt":return isFinite(num)?1/0:0;case"odd":return 2*partLimit;case"even":return 2*partLimit-1;case"last":case"not":return 1/0}}var filterNames,init_positionals=__esm({"../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/positionals.js"(){filterNames=new Set(["first","last","eq","gt","nth","lt","even","odd"]);__name(isFilter,"isFilter");__name(getLimit,"getLimit")}});function getDocumentRoot(node){for(;node.parent;)node=node.parent;return node}function groupSelectors(selectors){let filteredSelectors=[],plainSelectors=[];for(let selector of selectors)selector.some(isFilter)?filteredSelectors.push(selector):plainSelectors.push(selector);return[plainSelectors,filteredSelectors]}var init_helpers2=__esm({"../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/helpers.js"(){init_positionals();__name(getDocumentRoot,"getDocumentRoot");__name(groupSelectors,"groupSelectors")}});function is2(element,selector,options={}){return some([element],selector,options)}function some(elements,selector,options={}){if(typeof selector=="function")return elements.some(selector);let[plain,filtered]=groupSelectors(parse12(selector));return plain.length>0&&elements.some(_compileToken(plain,options))||filtered.some(sel=>filterBySelector(sel,elements,options).length>0)}function filterByPosition(filter4,elems,data2,options){let num=typeof data2=="string"?parseInt(data2,10):NaN;switch(filter4){case"first":case"lt":return elems;case"last":return elems.length>0?[elems[elems.length-1]]:elems;case"nth":case"eq":return isFinite(num)&&Math.abs(num)<elems.length?[num<0?elems[elems.length+num]:elems[num]]:[];case"gt":return isFinite(num)?elems.slice(num+1):[];case"even":return elems.filter((_,i)=>i%2===0);case"odd":return elems.filter((_,i)=>i%2===1);case"not":{let filtered=new Set(filterParsed(data2,elems,options));return elems.filter(e=>!filtered.has(e))}}}function filter2(selector,elements,options={}){return filterParsed(parse12(selector),elements,options)}function filterParsed(selector,elements,options){if(elements.length===0)return[];let[plainSelectors,filteredSelectors]=groupSelectors(selector),found;if(plainSelectors.length){let filtered=filterElements(elements,plainSelectors,options);if(filteredSelectors.length===0)return filtered;filtered.length&&(found=new Set(filtered))}for(let i=0;i<filteredSelectors.length&&found?.size!==elements.length;i++){let filteredSelector=filteredSelectors[i];if((found?elements.filter(e=>isTag2(e)&&!found.has(e)):elements).length===0)break;let filtered=filterBySelector(filteredSelector,elements,options);if(filtered.length)if(found)filtered.forEach(el=>found.add(el));else{if(i===filteredSelectors.length-1)return filtered;found=new Set(filtered)}}return typeof found<"u"?found.size===elements.length?elements:elements.filter(el=>found.has(el)):[]}function filterBySelector(selector,elements,options){var _a4;if(selector.some(isTraversal)){let root2=(_a4=options.root)!==null&&_a4!==void 0?_a4:getDocumentRoot(elements[0]),opts={...options,context:elements,relativeSelector:!1};return selector.push(SCOPE_PSEUDO),findFilterElements(root2,selector,opts,!0,elements.length)}return findFilterElements(elements,selector,options,!1,elements.length)}function select(selector,root2,options={},limit=1/0){if(typeof selector=="function")return find2(root2,selector);let[plain,filtered]=groupSelectors(parse12(selector)),results=filtered.map(sel=>findFilterElements(root2,sel,options,!0,limit));return plain.length&&results.push(findElements(root2,plain,options,limit)),results.length===0?[]:results.length===1?results[0]:uniqueSort(results.reduce((a,b)=>[...a,...b]))}function findFilterElements(root2,selector,options,queryForSelector,totalLimit){let filterIndex=selector.findIndex(isFilter),sub=selector.slice(0,filterIndex),filter4=selector[filterIndex],partLimit=selector.length-1===filterIndex?totalLimit:1/0,limit=getLimit(filter4.name,filter4.data,partLimit);if(limit===0)return[];let elems=(sub.length===0&&!Array.isArray(root2)?getChildren(root2).filter(isTag2):sub.length===0?(Array.isArray(root2)?root2:[root2]).filter(isTag2):queryForSelector||sub.some(isTraversal)?findElements(root2,[sub],options,limit):filterElements(root2,[sub],options)).slice(0,limit),result=filterByPosition(filter4.name,elems,filter4.data,options);if(result.length===0||selector.length===filterIndex+1)return result;let remainingSelector=selector.slice(filterIndex+1),remainingHasTraversal=remainingSelector.some(isTraversal);if(remainingHasTraversal){if(isTraversal(remainingSelector[0])){let{type}=remainingSelector[0];(type===SelectorType.Sibling||type===SelectorType.Adjacent)&&(result=prepareContext(result,esm_exports2,!0)),remainingSelector.unshift(UNIVERSAL_SELECTOR)}options={...options,relativeSelector:!1,rootFunc:__name(el=>result.includes(el),"rootFunc")}}else options.rootFunc&&options.rootFunc!==boolbase7.trueFunc&&(options={...options,rootFunc:boolbase7.trueFunc});return remainingSelector.some(isFilter)?findFilterElements(result,remainingSelector,options,!1,totalLimit):remainingHasTraversal?findElements(result,[remainingSelector],options,totalLimit):filterElements(result,[remainingSelector],options)}function findElements(root2,sel,options,limit){let query=_compileToken(sel,options,root2);return find2(root2,query,limit)}function find2(root2,query,limit=1/0){let elems=prepareContext(root2,esm_exports2,query.shouldTestNextSiblings);return find(node=>isTag2(node)&&query(node),elems,!0,limit)}function filterElements(elements,sel,options){let els=(Array.isArray(elements)?elements:[elements]).filter(isTag2);if(els.length===0)return els;let query=_compileToken(sel,options);return query===boolbase7.trueFunc?els:els.filter(query)}var boolbase7,UNIVERSAL_SELECTOR,SCOPE_PSEUDO,init_esm10=__esm({"../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/index.js"(){init_es();init_esm9();init_esm6();boolbase7=__toESM(require_boolbase(),1);init_helpers2();init_positionals();init_esm9();UNIVERSAL_SELECTOR={type:SelectorType.Universal,namespace:null},SCOPE_PSEUDO={type:SelectorType.Pseudo,name:"scope",data:null};__name(is2,"is");__name(some,"some");__name(filterByPosition,"filterByPosition");__name(filter2,"filter");__name(filterParsed,"filterParsed");__name(filterBySelector,"filterBySelector");__name(select,"select");__name(findFilterElements,"findFilterElements");__name(findElements,"findElements");__name(find2,"find");__name(filterElements,"filterElements")}});var traversing_exports={};__export(traversing_exports,{_findBySelector:()=>_findBySelector,add:()=>add,addBack:()=>addBack,children:()=>children,closest:()=>closest,contents:()=>contents,each:()=>each,end:()=>end,eq:()=>eq,filter:()=>filter3,filterArray:()=>filterArray,find:()=>find3,first:()=>first,get:()=>get,has:()=>has,index:()=>index,is:()=>is3,last:()=>last,map:()=>map,next:()=>next,nextAll:()=>nextAll,nextUntil:()=>nextUntil,not:()=>not,parent:()=>parent,parents:()=>parents,parentsUntil:()=>parentsUntil,prev:()=>prev,prevAll:()=>prevAll,prevUntil:()=>prevUntil,siblings:()=>siblings,slice:()=>slice,toArray:()=>toArray});function find3(selectorOrHaystack){if(!selectorOrHaystack)return this._make([]);if(typeof selectorOrHaystack!="string"){let haystack=isCheerio(selectorOrHaystack)?selectorOrHaystack.toArray():[selectorOrHaystack],context=this.toArray();return this._make(haystack.filter(elem=>context.some(node=>contains(node,elem))))}return this._findBySelector(selectorOrHaystack,Number.POSITIVE_INFINITY)}function _findBySelector(selector,limit){var _a4;let context=this.toArray(),elems=reContextSelector.test(selector)?context:this.children().toArray(),options={context,root:(_a4=this._root)===null||_a4===void 0?void 0:_a4[0],xmlMode:this.options.xmlMode,lowerCaseTags:this.options.lowerCaseTags,lowerCaseAttributeNames:this.options.lowerCaseAttributeNames,pseudos:this.options.pseudos,quirksMode:this.options.quirksMode};return this._make(select(selector,elems,options,limit))}function _getMatcher(matchMap){return function(fn,...postFns){return function(selector){var _a4;let matched=matchMap(fn,this);return selector&&(matched=filterArray(matched,selector,this.options.xmlMode,(_a4=this._root)===null||_a4===void 0?void 0:_a4[0])),this._make(this.length>1&&matched.length>1?postFns.reduce((elems,fn2)=>fn2(elems),matched):matched)}}}function _matchUntil(nextElem,...postFns){let matches=null,innerMatcher=_getMatcher((nextElem2,elems)=>{let matched=[];return domEach(elems,elem=>{for(let next2;(next2=nextElem2(elem))&&!matches?.(next2,matched.length);elem=next2)matched.push(next2)}),matched})(nextElem,...postFns);return function(selector,filterSelector){matches=typeof selector=="string"?elem=>is2(elem,selector,this.options):selector?getFilterFn(selector):null;let ret=innerMatcher.call(this,filterSelector);return matches=null,ret}}function _removeDuplicates(elems){return elems.length>1?Array.from(new Set(elems)):elems}function closest(selector){var _a4;let set=[];if(!selector)return this._make(set);let selectOpts={xmlMode:this.options.xmlMode,root:(_a4=this._root)===null||_a4===void 0?void 0:_a4[0]},selectFn=typeof selector=="string"?elem=>is2(elem,selector,selectOpts):getFilterFn(selector);return domEach(this,elem=>{for(elem&&!isDocument(elem)&&!isTag2(elem)&&(elem=elem.parent);elem&&isTag2(elem);){if(selectFn(elem,0)){set.includes(elem)||set.push(elem);break}elem=elem.parent}}),this._make(set)}function contents(){let elems=this.toArray().reduce((newElems,elem)=>hasChildren(elem)?newElems.concat(elem.children):newElems,[]);return this._make(elems)}function each(fn){let i=0,len=this.length;for(;i<len&&fn.call(this[i],i,this[i])!==!1;)++i;return this}function map(fn){let elems=[];for(let i=0;i<this.length;i++){let el=this[i],val2=fn.call(el,i,el);val2!=null&&(elems=elems.concat(val2))}return this._make(elems)}function getFilterFn(match){return typeof match=="function"?(el,i)=>match.call(el,i,el):isCheerio(match)?el=>Array.prototype.includes.call(match,el):function(el){return match===el}}function filter3(match){var _a4;return this._make(filterArray(this.toArray(),match,this.options.xmlMode,(_a4=this._root)===null||_a4===void 0?void 0:_a4[0]))}function filterArray(nodes,match,xmlMode,root2){return typeof match=="string"?filter2(match,nodes,{xmlMode,root:root2}):nodes.filter(getFilterFn(match))}function is3(selector){let nodes=this.toArray();return typeof selector=="string"?some(nodes.filter(isTag2),selector,this.options):selector?nodes.some(getFilterFn(selector)):!1}function not(match){let nodes=this.toArray();if(typeof match=="string"){let matches=new Set(filter2(match,nodes,this.options));nodes=nodes.filter(el=>!matches.has(el))}else{let filterFn=getFilterFn(match);nodes=nodes.filter((el,i)=>!filterFn(el,i))}return this._make(nodes)}function has(selectorOrHaystack){return this.filter(typeof selectorOrHaystack=="string"?`:has(${selectorOrHaystack})`:(_,el)=>this._make(el).find(selectorOrHaystack).length>0)}function first(){return this.length>1?this._make(this[0]):this}function last(){return this.length>0?this._make(this[this.length-1]):this}function eq(i){var _a4;return i=+i,i===0&&this.length<=1?this:(i<0&&(i=this.length+i),this._make((_a4=this[i])!==null&&_a4!==void 0?_a4:[]))}function get(i){return i==null?this.toArray():this[i<0?this.length+i:i]}function toArray(){return Array.prototype.slice.call(this)}function index(selectorOrNeedle){let $haystack,needle;return selectorOrNeedle==null?($haystack=this.parent().children(),needle=this[0]):typeof selectorOrNeedle=="string"?($haystack=this._make(selectorOrNeedle),needle=this[0]):($haystack=this,needle=isCheerio(selectorOrNeedle)?selectorOrNeedle[0]:selectorOrNeedle),Array.prototype.indexOf.call($haystack,needle)}function slice(start,end2){return this._make(Array.prototype.slice.call(this,start,end2))}function end(){var _a4;return(_a4=this.prevObject)!==null&&_a4!==void 0?_a4:this._make([])}function add(other,context){let selection=this._make(other,context),contents2=uniqueSort([...this.get(),...selection.get()]);return this._make(contents2)}function addBack(selector){return this.prevObject?this.add(selector?this.prevObject.filter(selector):this.prevObject):this}var reContextSelector,_matcher,_singleMatcher,parent,parents,parentsUntil,next,nextAll,nextUntil,prev,prevAll,prevUntil,siblings,children,init_traversing=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/traversing.js"(){init_esm3();init_esm10();init_utils2();init_static();init_esm6();reContextSelector=/^\s*(?:[+~]|:scope\b)/;__name(find3,"find");__name(_findBySelector,"_findBySelector");__name(_getMatcher,"_getMatcher");_matcher=_getMatcher((fn,elems)=>{let ret=[];for(let i=0;i<elems.length;i++){let value=fn(elems[i]);value.length>0&&(ret=ret.concat(value))}return ret}),_singleMatcher=_getMatcher((fn,elems)=>{let ret=[];for(let i=0;i<elems.length;i++){let value=fn(elems[i]);value!==null&&ret.push(value)}return ret});__name(_matchUntil,"_matchUntil");__name(_removeDuplicates,"_removeDuplicates");parent=_singleMatcher(({parent:parent2})=>parent2&&!isDocument(parent2)?parent2:null,_removeDuplicates),parents=_matcher(elem=>{let matched=[];for(;elem.parent&&!isDocument(elem.parent);)matched.push(elem.parent),elem=elem.parent;return matched},uniqueSort,elems=>elems.reverse()),parentsUntil=_matchUntil(({parent:parent2})=>parent2&&!isDocument(parent2)?parent2:null,uniqueSort,elems=>elems.reverse());__name(closest,"closest");next=_singleMatcher(elem=>nextElementSibling(elem)),nextAll=_matcher(elem=>{let matched=[];for(;elem.next;)elem=elem.next,isTag2(elem)&&matched.push(elem);return matched},_removeDuplicates),nextUntil=_matchUntil(el=>nextElementSibling(el),_removeDuplicates),prev=_singleMatcher(elem=>prevElementSibling(elem)),prevAll=_matcher(elem=>{let matched=[];for(;elem.prev;)elem=elem.prev,isTag2(elem)&&matched.push(elem);return matched},_removeDuplicates),prevUntil=_matchUntil(el=>prevElementSibling(el),_removeDuplicates),siblings=_matcher(elem=>getSiblings(elem).filter(el=>isTag2(el)&&el!==elem),uniqueSort),children=_matcher(elem=>getChildren(elem).filter(isTag2),_removeDuplicates);__name(contents,"contents");__name(each,"each");__name(map,"map");__name(getFilterFn,"getFilterFn");__name(filter3,"filter");__name(filterArray,"filterArray");__name(is3,"is");__name(not,"not");__name(has,"has");__name(first,"first");__name(last,"last");__name(eq,"eq");__name(get,"get");__name(toArray,"toArray");__name(index,"index");__name(slice,"slice");__name(end,"end");__name(add,"add");__name(addBack,"addBack")}});function getParse(parser){return __name(function(content2,options,isDocument2,context){if(typeof Buffer<"u"&&Buffer.isBuffer(content2)&&(content2=content2.toString()),typeof content2=="string")return parser(content2,options,isDocument2,context);let doc=content2;if(!Array.isArray(doc)&&isDocument(doc))return doc;let root2=new Document([]);return update(doc,root2),root2},"parse")}function update(newChilds,parent2){let arr=Array.isArray(newChilds)?newChilds:[newChilds];parent2?parent2.children=arr:parent2=null;for(let i=0;i<arr.length;i++){let node=arr[i];node.parent&&node.parent.children!==arr&&removeElement(node),parent2?(node.prev=arr[i-1]||null,node.next=arr[i+1]||null):node.prev=node.next=null,node.parent=parent2}return parent2}var init_parse4=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/parse.js"(){init_esm6();init_esm3();__name(getParse,"getParse");__name(update,"update")}});var manipulation_exports={};__export(manipulation_exports,{_makeDomArray:()=>_makeDomArray,after:()=>after,append:()=>append2,appendTo:()=>appendTo,before:()=>before,clone:()=>clone,empty:()=>empty,html:()=>html2,insertAfter:()=>insertAfter,insertBefore:()=>insertBefore,prepend:()=>prepend2,prependTo:()=>prependTo,remove:()=>remove,replaceWith:()=>replaceWith,text:()=>text2,toString:()=>toString,unwrap:()=>unwrap,wrap:()=>wrap,wrapAll:()=>wrapAll,wrapInner:()=>wrapInner});function _makeDomArray(elem,clone2){if(elem==null)return[];if(typeof elem=="string")return this._parse(elem,this.options,!1,null).children.slice(0);if("length"in elem){if(elem.length===1)return this._makeDomArray(elem[0],clone2);let result=[];for(let i=0;i<elem.length;i++){let el=elem[i];if(typeof el=="object"){if(el==null)continue;if(!("length"in el)){result.push(clone2?cloneNode(el,!0):el);continue}}result.push(...this._makeDomArray(el,clone2))}return result}return[clone2?cloneNode(elem,!0):elem]}function _insert(concatenator){return function(...elems){let lastIdx=this.length-1;return domEach(this,(el,i)=>{if(!hasChildren(el))return;let domSrc=typeof elems[0]=="function"?elems[0].call(el,i,this._render(el.children)):elems,dom=this._makeDomArray(domSrc,i<lastIdx);concatenator(dom,el.children,el)})}}function uniqueSplice(array,spliceIdx,spliceCount,newElems,parent2){var _a4,_b;let spliceArgs=[spliceIdx,spliceCount,...newElems],prev2=spliceIdx===0?null:array[spliceIdx-1],next2=spliceIdx+spliceCount>=array.length?null:array[spliceIdx+spliceCount];for(let idx=0;idx<newElems.length;++idx){let node=newElems[idx],oldParent=node.parent;if(oldParent){let prevIdx=oldParent.children.indexOf(node);prevIdx!==-1&&(oldParent.children.splice(prevIdx,1),parent2===oldParent&&spliceIdx>prevIdx&&spliceArgs[0]--)}node.parent=parent2,node.prev&&(node.prev.next=(_a4=node.next)!==null&&_a4!==void 0?_a4:null),node.next&&(node.next.prev=(_b=node.prev)!==null&&_b!==void 0?_b:null),node.prev=idx===0?prev2:newElems[idx-1],node.next=idx===newElems.length-1?next2:newElems[idx+1]}return prev2&&(prev2.next=newElems[0]),next2&&(next2.prev=newElems[newElems.length-1]),array.splice(...spliceArgs)}function appendTo(target){return(isCheerio(target)?target:this._make(target)).append(this),this}function prependTo(target){return(isCheerio(target)?target:this._make(target)).prepend(this),this}function _wrap(insert){return function(wrapper){let lastIdx=this.length-1,lastParent=this.parents().last();for(let i=0;i<this.length;i++){let el=this[i],wrap2=typeof wrapper=="function"?wrapper.call(el,i,el):typeof wrapper=="string"&&!isHtml(wrapper)?lastParent.find(wrapper).clone():wrapper,[wrapperDom]=this._makeDomArray(wrap2,i<lastIdx);if(!wrapperDom||!hasChildren(wrapperDom))continue;let elInsertLocation=wrapperDom,j2=0;for(;j2<elInsertLocation.children.length;){let child=elInsertLocation.children[j2];isTag2(child)?(elInsertLocation=child,j2=0):j2++}insert(el,elInsertLocation,[wrapperDom])}return this}}function unwrap(selector){return this.parent(selector).not("body").each((_,el)=>{this._make(el).replaceWith(el.children)}),this}function wrapAll(wrapper){let el=this[0];if(el){let wrap2=this._make(typeof wrapper=="function"?wrapper.call(el,0,el):wrapper).insertBefore(el),elInsertLocation;for(let i=0;i<wrap2.length;i++)wrap2[i].type===esm_exports.Tag&&(elInsertLocation=wrap2[i]);let j2=0;for(;elInsertLocation&&j2<elInsertLocation.children.length;){let child=elInsertLocation.children[j2];child.type===esm_exports.Tag?(elInsertLocation=child,j2=0):j2++}elInsertLocation&&this._make(elInsertLocation).append(this)}return this}function after(...elems){let lastIdx=this.length-1;return domEach(this,(el,i)=>{if(!hasChildren(el)||!el.parent)return;let siblings2=el.parent.children,index2=siblings2.indexOf(el);if(index2===-1)return;let domSrc=typeof elems[0]=="function"?elems[0].call(el,i,this._render(el.children)):elems,dom=this._makeDomArray(domSrc,i<lastIdx);uniqueSplice(siblings2,index2+1,0,dom,el.parent)})}function insertAfter(target){typeof target=="string"&&(target=this._make(target)),this.remove();let clones=[];for(let el of this._makeDomArray(target)){let clonedSelf=this.clone().toArray(),{parent:parent2}=el;if(!parent2)continue;let siblings2=parent2.children,index2=siblings2.indexOf(el);index2!==-1&&(uniqueSplice(siblings2,index2+1,0,clonedSelf,parent2),clones.push(...clonedSelf))}return this._make(clones)}function before(...elems){let lastIdx=this.length-1;return domEach(this,(el,i)=>{if(!hasChildren(el)||!el.parent)return;let siblings2=el.parent.children,index2=siblings2.indexOf(el);if(index2===-1)return;let domSrc=typeof elems[0]=="function"?elems[0].call(el,i,this._render(el.children)):elems,dom=this._makeDomArray(domSrc,i<lastIdx);uniqueSplice(siblings2,index2,0,dom,el.parent)})}function insertBefore(target){let targetArr=this._make(target);this.remove();let clones=[];return domEach(targetArr,el=>{let clonedSelf=this.clone().toArray(),{parent:parent2}=el;if(!parent2)return;let siblings2=parent2.children,index2=siblings2.indexOf(el);index2!==-1&&(uniqueSplice(siblings2,index2,0,clonedSelf,parent2),clones.push(...clonedSelf))}),this._make(clones)}function remove(selector){let elems=selector?this.filter(selector):this;return domEach(elems,el=>{removeElement(el),el.prev=el.next=el.parent=null}),this}function replaceWith(content2){return domEach(this,(el,i)=>{let{parent:parent2}=el;if(!parent2)return;let siblings2=parent2.children,cont=typeof content2=="function"?content2.call(el,i,el):content2,dom=this._makeDomArray(cont);update(dom,null);let index2=siblings2.indexOf(el);uniqueSplice(siblings2,index2,1,dom,parent2),dom.includes(el)||(el.parent=el.prev=el.next=null)})}function empty(){return domEach(this,el=>{if(hasChildren(el)){for(let child of el.children)child.next=child.prev=child.parent=null;el.children.length=0}})}function html2(str){if(str===void 0){let el=this[0];return!el||!hasChildren(el)?null:this._render(el.children)}return domEach(this,el=>{if(!hasChildren(el))return;for(let child of el.children)child.next=child.prev=child.parent=null;let content2=isCheerio(str)?str.toArray():this._parse(`${str}`,this.options,!1,el).children;update(content2,el)})}function toString(){return this._render(this)}function text2(str){return str===void 0?text(this):typeof str=="function"?domEach(this,(el,i)=>this._make(el).text(str.call(el,i,text([el])))):domEach(this,el=>{if(!hasChildren(el))return;for(let child of el.children)child.next=child.prev=child.parent=null;let textNode=new Text2(`${str}`);update(textNode,el)})}function clone(){let clone2=Array.prototype.map.call(this.get(),el=>cloneNode(el,!0)),root2=new Document(clone2);for(let node of clone2)node.parent=root2;return this._make(clone2)}var append2,prepend2,wrap,wrapInner,init_manipulation2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/manipulation.js"(){init_esm3();init_parse4();init_static();init_utils2();init_esm6();init_esm7();__name(_makeDomArray,"_makeDomArray");__name(_insert,"_insert");__name(uniqueSplice,"uniqueSplice");__name(appendTo,"appendTo");__name(prependTo,"prependTo");append2=_insert((dom,children2,parent2)=>{uniqueSplice(children2,children2.length,0,dom,parent2)}),prepend2=_insert((dom,children2,parent2)=>{uniqueSplice(children2,0,0,dom,parent2)});__name(_wrap,"_wrap");wrap=_wrap((el,elInsertLocation,wrapperDom)=>{let{parent:parent2}=el;if(!parent2)return;let siblings2=parent2.children,index2=siblings2.indexOf(el);update([el],elInsertLocation),uniqueSplice(siblings2,index2,0,wrapperDom,parent2)}),wrapInner=_wrap((el,elInsertLocation,wrapperDom)=>{hasChildren(el)&&(update(el.children,elInsertLocation),update(wrapperDom,el))});__name(unwrap,"unwrap");__name(wrapAll,"wrapAll");__name(after,"after");__name(insertAfter,"insertAfter");__name(before,"before");__name(insertBefore,"insertBefore");__name(remove,"remove");__name(replaceWith,"replaceWith");__name(empty,"empty");__name(html2,"html");__name(toString,"toString");__name(text2,"text");__name(clone,"clone")}});var css_exports={};__export(css_exports,{css:()=>css});function css(prop2,val2){if(prop2!=null&&val2!=null||typeof prop2=="object"&&!Array.isArray(prop2))return domEach(this,(el,i)=>{isTag2(el)&&setCss(el,prop2,val2,i)});if(this.length!==0)return getCss(this[0],prop2)}function setCss(el,prop2,value,idx){if(typeof prop2=="string"){let styles=getCss(el),val2=typeof value=="function"?value.call(el,idx,styles[prop2]):value;val2===""?delete styles[prop2]:val2!=null&&(styles[prop2]=val2),el.attribs.style=stringify4(styles)}else if(typeof prop2=="object"){let keys=Object.keys(prop2);for(let i=0;i<keys.length;i++){let k=keys[i];setCss(el,k,prop2[k],i)}}}function getCss(el,prop2){if(!el||!isTag2(el))return;let styles=parse14(el.attribs.style);if(typeof prop2=="string")return styles[prop2];if(Array.isArray(prop2)){let newStyles={};for(let item of prop2)styles[item]!=null&&(newStyles[item]=styles[item]);return newStyles}return styles}function stringify4(obj){return Object.keys(obj).reduce((str,prop2)=>`${str}${str?" ":""}${prop2}: ${obj[prop2]};`,"")}function parse14(styles){if(styles=(styles||"").trim(),!styles)return{};let obj={},key;for(let str of styles.split(";")){let n=str.indexOf(":");if(n<1||n===str.length-1){let trimmed=str.trimEnd();trimmed.length>0&&key!==void 0&&(obj[key]+=`;${trimmed}`)}else key=str.slice(0,n).trim(),obj[key]=str.slice(n+1).trim()}return obj}var init_css=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/css.js"(){init_utils2();init_esm3();__name(css,"css");__name(setCss,"setCss");__name(getCss,"getCss");__name(stringify4,"stringify");__name(parse14,"parse")}});var forms_exports={};__export(forms_exports,{serialize:()=>serialize,serializeArray:()=>serializeArray});function serialize(){return this.serializeArray().map(data2=>`${encodeURIComponent(data2.name)}=${encodeURIComponent(data2.value)}`).join("&").replace(r20,"+")}function serializeArray(){return this.map((_,elem)=>{let $elem=this._make(elem);return isTag2(elem)&&elem.name==="form"?$elem.find(submittableSelector).toArray():$elem.filter(submittableSelector).toArray()}).filter('[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))').map((_,elem)=>{var _a4;let $elem=this._make(elem),name=$elem.attr("name"),value=(_a4=$elem.val())!==null&&_a4!==void 0?_a4:"";return Array.isArray(value)?value.map(val2=>({name,value:val2.replace(rCRLF,`\r
|
|
676
676
|
`)})):{name,value:value.replace(rCRLF,`\r
|
|
677
|
-
`)}}).toArray()}var submittableSelector,r20,rCRLF,init_forms2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/forms.js"(){init_esm3();submittableSelector="input,select,textarea,keygen",r20=/%20/g,rCRLF=/\r?\n/g;__name(serialize,"serialize");__name(serializeArray,"serializeArray")}});var extract_exports={};__export(extract_exports,{extract:()=>extract2});function getExtractDescr(descr){var _a4;return typeof descr=="string"?{selector:descr,value:"textContent"}:{selector:descr.selector,value:(_a4=descr.value)!==null&&_a4!==void 0?_a4:"textContent"}}function extract2(map2){let ret={};for(let key in map2){let descr=map2[key],isArray=Array.isArray(descr),{selector,value}=getExtractDescr(isArray?descr[0]:descr),fn=typeof value=="function"?value:typeof value=="string"?el=>this._make(el).prop(value):el=>this._make(el).extract(value);if(isArray)ret[key]=this._findBySelector(selector,Number.POSITIVE_INFINITY).map((_,el)=>fn(el,key,ret)).get();else{let $2=this._findBySelector(selector,1);ret[key]=$2.length>0?fn($2[0],key,ret):void 0}}return ret}var init_extract2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/extract.js"(){__name(getExtractDescr,"getExtractDescr");__name(extract2,"extract")}});var Cheerio,init_cheerio=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/cheerio.js"(){init_attributes();init_traversing();init_manipulation2();init_css();init_forms2();init_extract2();Cheerio=class{static{__name(this,"Cheerio")}constructor(elements,root2,options){if(this.length=0,this.options=options,this._root=root2,elements){for(let idx=0;idx<elements.length;idx++)this[idx]=elements[idx];this.length=elements.length}}};Cheerio.prototype.cheerio="[cheerio object]";Cheerio.prototype.splice=Array.prototype.splice;Cheerio.prototype[Symbol.iterator]=Array.prototype[Symbol.iterator];Object.assign(Cheerio.prototype,attributes_exports,traversing_exports,manipulation_exports,css_exports,forms_exports,extract_exports)}});function getLoad(
|
|
677
|
+
`)}}).toArray()}var submittableSelector,r20,rCRLF,init_forms2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/forms.js"(){init_esm3();submittableSelector="input,select,textarea,keygen",r20=/%20/g,rCRLF=/\r?\n/g;__name(serialize,"serialize");__name(serializeArray,"serializeArray")}});var extract_exports={};__export(extract_exports,{extract:()=>extract2});function getExtractDescr(descr){var _a4;return typeof descr=="string"?{selector:descr,value:"textContent"}:{selector:descr.selector,value:(_a4=descr.value)!==null&&_a4!==void 0?_a4:"textContent"}}function extract2(map2){let ret={};for(let key in map2){let descr=map2[key],isArray=Array.isArray(descr),{selector,value}=getExtractDescr(isArray?descr[0]:descr),fn=typeof value=="function"?value:typeof value=="string"?el=>this._make(el).prop(value):el=>this._make(el).extract(value);if(isArray)ret[key]=this._findBySelector(selector,Number.POSITIVE_INFINITY).map((_,el)=>fn(el,key,ret)).get();else{let $2=this._findBySelector(selector,1);ret[key]=$2.length>0?fn($2[0],key,ret):void 0}}return ret}var init_extract2=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/api/extract.js"(){__name(getExtractDescr,"getExtractDescr");__name(extract2,"extract")}});var Cheerio,init_cheerio=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/cheerio.js"(){init_attributes();init_traversing();init_manipulation2();init_css();init_forms2();init_extract2();Cheerio=class{static{__name(this,"Cheerio")}constructor(elements,root2,options){if(this.length=0,this.options=options,this._root=root2,elements){for(let idx=0;idx<elements.length;idx++)this[idx]=elements[idx];this.length=elements.length}}};Cheerio.prototype.cheerio="[cheerio object]";Cheerio.prototype.splice=Array.prototype.splice;Cheerio.prototype[Symbol.iterator]=Array.prototype[Symbol.iterator];Object.assign(Cheerio.prototype,attributes_exports,traversing_exports,manipulation_exports,css_exports,forms_exports,extract_exports)}});function getLoad(parse15,render4){return __name(function load2(content2,options,isDocument2=!0){if(content2==null)throw new Error("cheerio.load() expects a string");let internalOpts=flattenOptions(options),initialRoot=parse15(content2,internalOpts,isDocument2,null);class LoadedCheerio extends Cheerio{static{__name(this,"LoadedCheerio")}_make(selector,context){let cheerio=initialize(selector,context);return cheerio.prevObject=this,cheerio}_parse(content3,options2,isDocument3,context){return parse15(content3,options2,isDocument3,context)}_render(dom){return render4(dom,this.options)}}function initialize(selector,context,root2=initialRoot,opts){if(selector&&isCheerio(selector))return selector;let options2=flattenOptions(opts,internalOpts),r=typeof root2=="string"?[parse15(root2,options2,!1,null)]:"length"in root2?root2:[root2],rootInstance=isCheerio(r)?r:new LoadedCheerio(r,null,options2);if(rootInstance._root=rootInstance,!selector)return new LoadedCheerio(void 0,rootInstance,options2);let elements=typeof selector=="string"&&isHtml(selector)?parse15(selector,options2,!1,null).children:isNode(selector)?[selector]:Array.isArray(selector)?selector:void 0,instance=new LoadedCheerio(elements,rootInstance,options2);if(elements)return instance;if(typeof selector!="string")throw new TypeError("Unexpected type of selector");let search=selector,searchContext=context?typeof context=="string"?isHtml(context)?new LoadedCheerio([parse15(context,options2,!1,null)],rootInstance,options2):(search=`${context} ${search}`,rootInstance):isCheerio(context)?context:new LoadedCheerio(Array.isArray(context)?context:[context],rootInstance,options2):rootInstance;return searchContext?searchContext.find(search):instance}return __name(initialize,"initialize"),Object.assign(initialize,static_exports,{load:load2,_root:initialRoot,_options:internalOpts,fn:LoadedCheerio.prototype,prototype:LoadedCheerio.prototype}),initialize},"load")}function isNode(obj){return!!obj.name||obj.type===esm_exports.Root||obj.type===esm_exports.Text||obj.type===esm_exports.Comment}var init_load=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/load.js"(){init_options();init_static();init_cheerio();init_utils2();init_esm7();__name(getLoad,"getLoad");__name(isNode,"isNode")}});var load,init_slim=__esm({"../../node_modules/.pnpm/cheerio@1.2.0/node_modules/cheerio/dist/esm/slim.js"(){init_load();init_parse4();init_esm5();init_esm7();init_static();load=getLoad(getParse(parseDocument),esm_default)}});import fs42 from"node:fs";import path44 from"node:path";function applyMigrationManifest(options){let{cwd,manifest}=options,framework=resolveApplyFramework(cwd),written=[],warnings=[],previousArtifacts=readArtifactIndex(cwd);cleanupPreviousArtifacts(cwd,previousArtifacts),resetDir(path44.join(cwd,GENERATED_PAGES_DIR)),resetDir(path44.join(cwd,GENERATED_COMPONENTS_DIR)),resetDir(path44.join(cwd,GENERATED_ROOT)),ensureDir(path44.join(cwd,SCHEMAS_DIR)),ensureDir(path44.join(cwd,FORMS_DIR));let theme=pickThemePalette(manifest),siteName=deriveSiteName(manifest),navPages=selectNavPages(manifest.pages),legalRoutes=selectLegalRoutes(manifest.pages),plannedPages=planPages(manifest.pages);manifest.forms.length>0&&warnings.push("Draft form JSON files were generated, but they still need `fimo forms push` before they can submit live data."),manifest.collections.length>0&&warnings.push("Collection schemas and seed entries were generated but NOT imported. The migration is not complete until you `fimo schemas push` and `fimo entries create` them into Fimo (or mark them unresolved)."),writeFile3(cwd,"design.md",buildDesignDoc(manifest,theme,siteName),written),writeFile3(cwd,"src/index.css",buildThemeCss(theme),written),writeFile3(cwd,path44.join(GENERATED_COMPONENTS_DIR,"MigrationShell.tsx"),buildMigrationShellComponent(),written),writeFile3(cwd,path44.join(GENERATED_COMPONENTS_DIR,"MigrationPageTemplate.tsx"),buildMigrationPageTemplateComponent(),written);for(let plannedPage of plannedPages)writeFile3(cwd,plannedPage.modulePath,buildPageModule(plannedPage,navPages,legalRoutes,siteName),written);writeFile3(cwd,"src/routes.ts",buildRoutesFile(plannedPages,legalRoutes),written),writeFile3(cwd,path44.relative(cwd,resolveProjectConfigPath(cwd)),buildFimoConfig(manifest,plannedPages,legalRoutes,siteName),written);let schemaFiles=writeSchemas(cwd,manifest.collections,written),formFiles=writeForms(cwd,manifest.forms,written),generatedNotes=writeGeneratedNotes(cwd,manifest,siteName,warnings,written);writeCollectionSeeds(cwd,manifest,written);let schemasResult=syncSchemas({cwd,framework,verbose:!1}),formsResult=syncForms({cwd,framework,verbose:!1}),translations2={created:[],updated:[],deleted:[]},artifactIndex={pageFiles:plannedPages.map(page=>toPosix(page.modulePath)),componentFiles:[toPosix(path44.join(GENERATED_COMPONENTS_DIR,"MigrationShell.tsx")),toPosix(path44.join(GENERATED_COMPONENTS_DIR,"MigrationPageTemplate.tsx"))],schemaFiles:schemaFiles.map(toPosix),formFiles:formFiles.map(toPosix),generatedFiles:generatedNotes.map(toPosix)};return writeFile3(cwd,path44.join(GENERATED_ROOT,"artifacts.json"),JSON.stringify(artifactIndex,null,2)+`
|
|
678
678
|
`,written),{written,warnings,pagesWritten:plannedPages.length,schemasWritten:manifest.collections.length,formsWritten:manifest.forms.length,translations:{created:translations2.created.length,updated:translations2.updated.length,deleted:translations2.deleted.length},codegen:{schemas:schemasResult,forms:formsResult}}}function resolveApplyFramework(cwd){let configPath=resolveProjectConfigPath(cwd);if(!fs42.existsSync(configPath))return"react-router";let config;try{config=JSON.parse(fs42.readFileSync(configPath,"utf8"))}catch{return"react-router"}let framework=config.runtime?.framework;if(framework===void 0||framework==="react-router")return"react-router";throw new Error(`migrate apply only supports the React Router URL-draft scaffold, but this project uses ${String(framework)}. Use the source-backed migration workers for a framework-preserving migration.`)}function pickThemePalette(manifest){let colors=unique(manifest.design.tokens.colors.map(color=>normalizeColorToken(color)).filter(color=>!!color)),lightColors=colors.filter(color=>{let luminance=getLuminance(color);return luminance!==null&&luminance>=.74}),darkColors=colors.filter(color=>{let luminance=getLuminance(color);return luminance!==null&&luminance<=.28}),midColors=colors.filter(color=>!lightColors.includes(color)&&!darkColors.includes(color)),background=lightColors[0]??"#f7f1e8",foreground=darkColors[0]??"#1a1612",primary=midColors[0]??colors[1]??"#b56b42",accent=midColors[1]??colors[2]??"#d79f6a",secondary=lightColors[1]??"#efe4d6",radius=manifest.design.tokens.radius[0]??"20px",bodyFont=pickBodyFont(manifest),displayFont=pickDisplayFont(manifest,bodyFont),importFamilies=unique([bodyFont,displayFont].filter(family=>shouldImportFont(family)));return{background,foreground,primary,accent,secondary,border:withAlpha(foreground,.12),input:withAlpha(foreground,.12),muted:secondary,mutedForeground:withAlpha(foreground,.68),ring:primary,radius,bodyFont,displayFont,fontImport:importFamilies.length>0?buildGoogleFontImport(importFamilies):null}}function buildSchemaDefinition(collection){let fields={};for(let field of collection.fields)fields[field]={type:fieldTypeForSchemaField(field)};return{uid:collection.suggestedSchema,name:pluralLabelForSchema(collection),fields}}function buildFormDefinition(form){let fields=Object.fromEntries(form.fields.map(field=>[field.name,{type:normalizeFormFieldType(field.kind),label:field.label||titleize2(field.name),required:field.required||void 0,placeholder:field.placeholder||void 0,...field.options&&field.options.length>0?{options:field.options}:{}}]));return{name:form.name,label:titleize2(form.name),fields}}function writeSchemas(cwd,collections,written){let filePaths=[];for(let collection of collections){let definition=buildSchemaDefinition(collection),relativePath=path44.join(SCHEMAS_DIR,`${definition.uid}.json`);writeFile3(cwd,relativePath,JSON.stringify(definition,null,2)+`
|
|
679
679
|
`,written),filePaths.push(relativePath)}return filePaths}function writeForms(cwd,forms3,written){let filePaths=[];for(let form of forms3){let definition=buildFormDefinition(form),relativePath=path44.join(FORMS_DIR,`${definition.name}.json`);writeFile3(cwd,relativePath,JSON.stringify(definition,null,2)+`
|
|
680
680
|
`,written),filePaths.push(relativePath)}return filePaths}function writeCollectionSeeds(cwd,manifest,written){let entriesDir=path44.join(GENERATED_ROOT,"entries");ensureDir(path44.join(cwd,entriesDir));for(let collection of manifest.collections){let entries2=manifest.pages.filter(page=>collection.sourceRoutes.includes(page.route)).map(page=>({data:buildEntrySeed(cwd,page,collection)}));writeFile3(cwd,path44.join(entriesDir,`${collection.suggestedSchema}.json`),JSON.stringify(entries2,null,2)+`
|
|
@@ -1196,12 +1196,12 @@ Run \`fimo channels <command> --help\` for command-specific help.
|
|
|
1196
1196
|
`)}__name(formatReportHuman,"formatReportHuman");function formatPhaseHuman(phase){let out=[],header=phase.skipped?`\u21B7 ${phase.name} \u2014 skipped (${phase.skipped.reason})`:phase.ok?`\u2713 ${phase.name}`:`\u2717 ${phase.name}`;if(out.push(header),phase.stats){let parts=Object.entries(phase.stats).map(([k,v])=>`${k}: ${v}`);parts.length>0&&out.push(` ${parts.join(", ")}`)}for(let err of phase.errors){let loc=err.file?` (${err.file}${err.line?`:${err.line}`:""}${err.column?`:${err.column}`:""})`:"";out.push(` [${err.kind}] ${err.rule}: ${err.message}${loc}`)}return out.join(`
|
|
1197
1197
|
`)}__name(formatPhaseHuman,"formatPhaseHuman");init_api();init_config();init_auth_errors();init_templates();import fs16 from"node:fs";import path18 from"node:path";var DEP_FIELDS=["dependencies","devDependencies"],DEPENDENCY_LOCKFILES=["pnpm-lock.yaml","package-lock.json","npm-shrinkwrap.json","yarn.lock","bun.lock","bun.lockb"];function resolveDevFimoDependencyForDeploy(cwd){let packagePath=path18.join(cwd,"package.json");if(!fs16.existsSync(packagePath))return null;let original=fs16.readFileSync(packagePath,"utf8"),pkg=JSON.parse(original),fileSpec=findLocalFimoSpec(pkg);if(!fileSpec)return null;let localPackageRoot=resolveFileSpec(fileSpec,cwd);if(isInsideProject(cwd,localPackageRoot))return null;let devRelease=readDevReleaseVersion(localPackageRoot);if(!devRelease.version||!devRelease.devJsonPath)throw new Error(`Found local fimo dependency "${fileSpec}", but no .fimo/dev.json with an exact development package exists above ${localPackageRoot}. Run \`pnpm -F fimo publish-cli -- --id <task-name>\` from that Fimo checkout, then retry.`);return{devJsonPath:devRelease.devJsonPath,packagePath,version:devRelease.version}}__name(resolveDevFimoDependencyForDeploy,"resolveDevFimoDependencyForDeploy");function prepareDevFimoDependencyForDeploy(cwd,selection=resolveDevFimoDependencyForDeploy(cwd)){if(!selection)return null;let original=fs16.readFileSync(selection.packagePath,"utf8"),pkg=JSON.parse(original),lockfiles=snapshotDependencyLockfiles(cwd);if(!rewriteFimoDep(pkg,selection.version))return null;try{fs16.writeFileSync(selection.packagePath,JSON.stringify(pkg,null,2)+`
|
|
1198
1198
|
`);for(let lockfile of lockfiles)fs16.rmSync(lockfile.path)}catch(error){restoreFile(selection.packagePath,Buffer.from(original));for(let lockfile of lockfiles)restoreFile(lockfile.path,lockfile.content,lockfile.mode);throw error}return{...selection,restore:__name(()=>{restoreFile(selection.packagePath,Buffer.from(original));for(let lockfile of lockfiles)restoreFile(lockfile.path,lockfile.content,lockfile.mode)},"restore")}}__name(prepareDevFimoDependencyForDeploy,"prepareDevFimoDependencyForDeploy");function snapshotDependencyLockfiles(cwd){return DEPENDENCY_LOCKFILES.flatMap(name=>{let lockfilePath=path18.join(cwd,name);return fs16.existsSync(lockfilePath)?[{content:fs16.readFileSync(lockfilePath),mode:fs16.statSync(lockfilePath).mode,path:lockfilePath}]:[]})}__name(snapshotDependencyLockfiles,"snapshotDependencyLockfiles");function restoreFile(filePath,content2,mode2){fs16.writeFileSync(filePath,content2,mode2===void 0?void 0:{mode:mode2})}__name(restoreFile,"restoreFile");function findLocalFimoSpec(pkg){for(let field of DEP_FIELDS){let spec=pkg[field]?.fimo;if(typeof spec=="string"&&spec.startsWith("file:"))return spec}return null}__name(findLocalFimoSpec,"findLocalFimoSpec");function resolveFileSpec(spec,cwd){let rawPath=spec.slice(5),packagePath=path18.isAbsolute(rawPath)?rawPath:path18.resolve(cwd,rawPath);return path18.resolve(packagePath)}__name(resolveFileSpec,"resolveFileSpec");function isInsideProject(cwd,targetPath){let relative3=path18.relative(path18.resolve(cwd),path18.resolve(targetPath));return relative3===""||!relative3.startsWith("..")&&!path18.isAbsolute(relative3)}__name(isInsideProject,"isInsideProject");init_environment_checkout();init_git_credential_setup();init_git();init_interactive();init_git();import fs17 from"node:fs";import path20 from"node:path";var LOCKFILE_MANAGERS=[["pnpm-lock.yaml","pnpm"],["bun.lockb","bun"],["bun.lock","bun"],["yarn.lock","yarn"],["package-lock.json","npm"]],LOCKFILES=LOCKFILE_MANAGERS.map(([lockfile])=>lockfile),REMEDIATION='Commit one supported lockfile (pnpm-lock.yaml, yarn.lock, package-lock.json, bun.lock, or bun.lockb) or set an exact "packageManager" in package.json (for example "yarn@1.22.22").';function getPackageManagerPinWarning(cwd){let projectPackage=readPackageJson(path20.join(cwd,"package.json"));if(!projectPackage)return null;let packageManager=projectPackage.packageManager;if(typeof packageManager=="string"&&isExactPackageManager(packageManager))return null;let lockfiles=LOCKFILES.filter(lockfile=>fs17.existsSync(path20.join(cwd,lockfile)));return["package.json does not pin an exact package-manager version.",lockfiles.length===0?"Fimo will default to npm.":lockfiles.length===1?`Fimo will infer the package manager from ${lockfiles[0]}.`:`Fimo found multiple lockfiles (${lockfiles.join(", ")}), so package-manager selection is ambiguous.`,'Add a value such as "packageManager": "yarn@4.5.0" for reproducible local and Fimo installs.'].join(" ")}__name(getPackageManagerPinWarning,"getPackageManagerPinWarning");async function resolvePackageManagerContract(cwd){let projectPackage=readPackageJson(path20.join(cwd,"package.json"));if(!projectPackage)return{status:"not-applicable"};let declared=typeof projectPackage.packageManager=="string"?projectPackage.packageManager.trim():"";if(declared)return isExactPackageManager(declared)?{status:"declared",packageManager:declared}:{status:"unresolved",violation:"not-exact",message:`package.json declares "packageManager": ${JSON.stringify(declared)}, which does not name one reproducible version of a supported package manager (npm, pnpm, yarn, bun). ${REMEDIATION}`};if(!await isGitRepo(cwd))return{status:"not-applicable"};let tracked=await listTrackedLockfiles(cwd);if(tracked.length===1){let[lockfile,manager]=tracked[0];return{status:"inferred",manager,lockfile,warning:`package.json does not pin an exact package-manager version. Fimo will infer ${manager} from the committed ${lockfile}. Set "packageManager" in package.json for a reproducible version.`}}if(tracked.length>1)return{status:"unresolved",violation:"ambiguous-lockfiles",message:`The deployed tree commits several lockfiles (${tracked.map(([lockfile])=>lockfile).join(", ")}) and package.json does not declare which package manager wins. ${REMEDIATION}`};let untracked=LOCKFILES.filter(lockfile=>fs17.existsSync(path20.join(cwd,lockfile)));return untracked.length>0?{status:"unresolved",violation:"lockfile-not-tracked",message:`Git does not track ${untracked.join(", ")}, so the deployed tree carries no package-manager signal and the install may pick the wrong tool or version. ${REMEDIATION}`}:{status:"unresolved",violation:"no-signal",message:`The deployed tree has no package-manager signal: package.json declares no "packageManager" and no supported lockfile is committed. ${REMEDIATION}`}}__name(resolvePackageManagerContract,"resolvePackageManagerContract");async function listTrackedLockfiles(cwd){let stdout=await runGit(["ls-files","--",...LOCKFILES],cwd),tracked=new Set(stdout.split(`
|
|
1199
|
-
`).map(line=>line.trim()).filter(Boolean));return LOCKFILE_MANAGERS.filter(([lockfile])=>tracked.has(lockfile))}__name(listTrackedLockfiles,"listTrackedLockfiles");function readPackageJson(filePath){try{return JSON.parse(fs17.readFileSync(filePath,"utf8"))}catch{return null}}__name(readPackageJson,"readPackageJson");function isExactPackageManager(value){return/^(?:npm|pnpm|yarn|bun)@\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(value.trim())}__name(isExactPackageManager,"isExactPackageManager");init_project_context();init_project();init_dist();import{readFile as readFile3}from"node:fs/promises";import path29 from"node:path";var import_frameworks=__toESM(require_frameworks(),1),import_detect_framework=__toESM(require_detect_framework(),1),import_local_file_system_detector=__toESM(require_local_file_system_detector(),1);import{readFile}from"node:fs/promises";import{resolve}from"node:path";var FRAMEWORK_LIST=import_frameworks.frameworks;function detectorFor(projectRoot){return new import_local_file_system_detector.LocalFileSystemDetector(resolve(projectRoot))}__name(detectorFor,"detectorFor");async function readPackageManifest(projectRoot){try{return JSON.parse(await readFile(resolve(projectRoot,"package.json"),"utf8"))}catch{return{}}}__name(readPackageManifest,"readPackageManifest");function packageNameFor(framework){return[...framework.detectors?.every??[],...framework.detectors?.some??[]].find(detector=>detector.matchPackage)?.matchPackage??framework.dependency}__name(packageNameFor,"packageNameFor");function declaredVersionFor(framework,manifest){if(framework.detectedVersion)return framework.detectedVersion;let packageName=packageNameFor(framework);if(packageName)for(let group of["dependencies","devDependencies","peerDependencies","optionalDependencies"]){let version=manifest[group]?.[packageName];if(version)return version}}__name(declaredVersionFor,"declaredVersionFor");function normalizeFramework(framework,manifest){if(!framework.slug)return null;let declaredVersion=declaredVersionFor(framework,manifest);return{slug:framework.slug==="sveltekit-1"?"sveltekit":framework.slug,name:framework.slug==="sveltekit-1"?"SvelteKit":framework.name,...declaredVersion?{declaredVersion}:{}}}__name(normalizeFramework,"normalizeFramework");async function detectProjectFramework(projectRoot){let[framework,manifest]=await Promise.all([(0,import_detect_framework.detectFrameworkRecord)({fs:detectorFor(projectRoot),frameworkList:FRAMEWORK_LIST}),readPackageManifest(projectRoot)]);return framework?normalizeFramework(framework,manifest):null}__name(detectProjectFramework,"detectProjectFramework");init_project_layout();import{existsSync,readFileSync}from"fs";import{resolve as resolve2}from"path";var defaultConfig={seo:void 0};function getConfigServer(rootDir){try{let configPath=resolveFimoConfigPath(rootDir),content2=readFileSync(configPath,"utf-8"),raw=JSON.parse(content2);return{runtime:raw.runtime,hosting:raw.hosting,seo:raw.seo,i18n:raw.i18n,routes:raw.routes,version:raw.version}}catch{return defaultConfig}}__name(getConfigServer,"getConfigServer");function resolveFimoConfigPath(rootDir){let existing=[CURRENT_PROJECT_LAYOUT.project,LEGACY_PROJECT_LAYOUT.project,CURRENT_PROJECT_LAYOUT.config,LEGACY_PROJECT_LAYOUT.config,LEGACY_AGENT_POLICY_PATH].filter(candidate=>existsSync(resolve2(rootDir,candidate)));return resolve2(rootDir,selectProjectConfigPath(existing))}__name(resolveFimoConfigPath,"resolveFimoConfigPath");import{existsSync as existsSync2,readFileSync as readFileSync2,readdirSync,statSync}from"node:fs";import{join as join3}from"node:path";import{parseSync}from"oxc-parser";function findSourceFiles(dir,files=[]){if(!existsSync2(dir))return files;let entries2=readdirSync(dir);for(let entry of entries2){let fullPath=join3(dir,entry);if(statSync(fullPath).isDirectory()){if(entry==="ui"||entry==="node_modules")continue;findSourceFiles(fullPath,files)}else/\.(ts|tsx|js|jsx|svelte)$/.test(entry)&&files.push(fullPath)}return files}__name(findSourceFiles,"findSourceFiles");function importedNames(body,source,importedName){let names=new Set;for(let statement of body)if(!(statement.type!=="ImportDeclaration"||statement.source.value!==source))for(let specifier of statement.specifiers)specifier.type==="ImportSpecifier"&&specifier.imported.type==="Identifier"&&specifier.imported.name===importedName&&names.add(specifier.local.name);return names}__name(importedNames,"importedNames");function extractFromModule(filePath,code2,parsePath=filePath){let declarations=[],ast=parseSync(parsePath,code2).program,fimoLabelNames=new Set([...importedNames(ast.body,"fimo-react","Label"),...importedNames(ast.body,"fimo/ui","Label")]);function visit2(node){if(!(!node||typeof node!="object")){if(node.type==="CallExpression"){let callee=node.callee;if(callee?.type==="Identifier"&&callee.name==="t"||callee?.type==="MemberExpression"&&callee.computed===!1&&callee.object?.type==="Identifier"&&callee.object.name==="labels"&&callee.property?.type==="Identifier"&&callee.property.name==="t"){let firstArg=(node.arguments||[])[0];firstArg?.type==="Literal"&&typeof firstArg.value=="string"&&declarations.push({key:firstArg.value,file:filePath})}}if(node.type==="JSXOpeningElement"&&node.name?.type==="JSXIdentifier"&&fimoLabelNames.has(node.name.name))for(let attribute of node.attributes??[])attribute?.type==="JSXAttribute"&&attribute.name?.type==="JSXIdentifier"&&attribute.name.name==="value"&&attribute.value?.type==="Literal"&&typeof attribute.value.value=="string"&&declarations.push({key:attribute.value.value,file:filePath});for(let key of Object.keys(node)){let child=node[key];if(Array.isArray(child))for(let item of child)visit2(item);else typeof child=="object"&&child!==null&&visit2(child)}}}return __name(visit2,"visit"),visit2(ast),declarations}__name(extractFromModule,"extractFromModule");var SVELTE_SCRIPT=/<script\b[^>]*>([\s\S]*?)<\/script>/gi,SVELTE_COMMENT=/<!--[\s\S]*?-->/g,SVELTE_T_CALL_KEY=/(?:\blabels\.t|(?<![\w$.])t)\(\s*(['"])([^'"]*)\1/g;function extractFromSvelte(filePath,code2){let declarations=[],labelNames=new Set,markup=code2.replace(SVELTE_SCRIPT,(_script,contents2)=>{let ast=parseSync(`${filePath}.ts`,contents2).program;for(let moduleName of["fimo-sveltekit/components","fimo/sveltekit/components"])for(let name of importedNames(ast.body,moduleName,"Label"))labelNames.add(name);return declarations.push(...extractFromModule(filePath,contents2,`${filePath}.ts`)),""}).replace(SVELTE_COMMENT,"");for(let name of labelNames){let labelKey=new RegExp(`<${name}\\b[^>]*?\\svalue=(?:"([^"]*)"|'([^']*)')`,"g");for(let match of markup.matchAll(labelKey))declarations.push({key:match[1]??match[2],file:filePath})}for(let match of markup.matchAll(SVELTE_T_CALL_KEY))declarations.push({key:match[2],file:filePath});return declarations}__name(extractFromSvelte,"extractFromSvelte");function extractFromFile(filePath){try{let code2=readFileSync2(filePath,"utf-8");return filePath.endsWith(".svelte")?extractFromSvelte(filePath,code2):extractFromModule(filePath,code2)}catch(error){return console.error(`Failed to parse ${filePath}:`,error),[]}}__name(extractFromFile,"extractFromFile");function extractLabelKeys(options={}){let cwd=options.cwd??process.cwd(),srcDir=join3(cwd,"src"),declarations=[],seen=new Set;for(let file of findSourceFiles(srcDir))for(let declaration of extractFromFile(file))seen.has(declaration.key)||(seen.add(declaration.key),declarations.push(declaration));return declarations.sort((a,b)=>a.key.localeCompare(b.key))}__name(extractLabelKeys,"extractLabelKeys");function extractTranslations(options={}){return{keys:extractLabelKeys(options)}}__name(extractTranslations,"extractTranslations");init_sync_forms();init_sync_schemas();init_esm();import fs20 from"node:fs";import path23 from"node:path";init_esm();import fs19 from"node:fs";import path22 from"node:path";function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}__name(isRecord,"isRecord");function fieldList(value){return typeof value=="string"?[value]:Array.isArray(value)?value.filter(item=>typeof item=="string"):[]}__name(fieldList,"fieldList");function queryFields(query){if(!isRecord(query))return[];let fields=new Set;if(isRecord(query.where))for(let field of Object.keys(query.where))field.startsWith("$")||fields.add(field.split(".")[0]);for(let sort of fieldList(query.sort))fields.add(sort.replace(/^-/,"").split(".")[0]);for(let field of[...fieldList(query.fields),...fieldList(query.populate)])fields.add(field.split(".")[0]);return[...fields]}__name(queryFields,"queryFields");function readSchemas(cwd){let directory=path22.join(cwd,"src/schemas");if(!fs19.existsSync(directory))return null;let schemas3=new Map;for(let file of fs19.readdirSync(directory).filter(name=>name.endsWith(".json"))){let fallbackUid=path22.basename(file,".json"),value;try{value=JSON.parse(fs19.readFileSync(path22.join(directory,file),"utf8"))}catch{schemas3.set(fallbackUid,{fields:{},isSingleton:!1,valid:!1});continue}if(!isRecord(value)){schemas3.set(fallbackUid,{fields:{},isSingleton:!1,valid:!1});continue}let uid=typeof value.uid=="string"&&value.uid?value.uid:fallbackUid;schemas3.set(uid,{fields:isRecord(value.fields)?value.fields:{},isSingleton:value.isSingleton===!0,valid:!0})}return schemas3}__name(readSchemas,"readSchemas");function schemaFields(schema){return new Set([...Object.keys(schema.fields),"id","slug"])}__name(schemaFields,"schemaFields");function queryableFields(schema){return new Set([...schemaFields(schema),"createdAt","updatedAt"])}__name(queryableFields,"queryableFields");function validateQuery(query,pointer,schema,params,schemas3){let errors=[],unknownField=queryFields(query).find(field=>!queryableFields(schema).has(field));unknownField&&errors.push(`${pointer}: Query field "${unknownField}" does not exist on the referenced schema.`);for(let expression of pageSourceParamExpressions(query)){let parsed=parsePageParamExpression(expression),binding=parsed?params[parsed.param]:void 0;if(!parsed||!binding||typeof binding.schema!="string")continue;let boundSchema=schemas3.get(binding.schema),field=parsed.field.split(".")[0];boundSchema?.valid&&!schemaFields(boundSchema).has(field)&&errors.push(`${pointer}: ${expression} reads missing field "${field}" from schema "${binding.schema}".`)}return errors}__name(validateQuery,"validateQuery");function validatePageRegistrySchemaReferences(cwd,config,displayPath){let schemas3=readSchemas(cwd);if(!schemas3||!isRecord(config.routes))return[];let errors=[];for(let[routeId2,rawRoute]of Object.entries(config.routes)){if(!isRecord(rawRoute))continue;let params=isRecord(rawRoute.params)?rawRoute.params:{};for(let[param,binding]of Object.entries(params)){let pointer=`${displayPath}#routes.${routeId2}.params.${param}`;if(typeof binding.schema!="string")continue;let schema=schemas3.get(binding.schema);if(!schema){errors.push(`${pointer}.schema: Unknown schema "${binding.schema}".`);continue}if(!schema.valid)continue;schema.isSingleton&&errors.push(`${pointer}.schema: Page params require a Collection, but "${binding.schema}" is a Single.`);let fields=schemaFields(schema);for(let key of["queryField","displayField"]){let field=binding[key];typeof field=="string"&&!fields.has(field)&&errors.push(`${pointer}.${key}: Field "${field}" does not exist on schema "${binding.schema}".`)}if(typeof binding.queryField=="string"&&!["id","slug"].includes(binding.queryField)){let definition=schema.fields[binding.queryField];isRecord(definition)&&(definition.required!==!0&&errors.push(`${pointer}.queryField: Custom URL field "${binding.queryField}" must set "required": true.`),definition.unique!==!0&&errors.push(`${pointer}.queryField: Custom URL field "${binding.queryField}" must set "unique": true.`))}errors.push(...validateQuery(binding.query,`${pointer}.query`,schema,params,schemas3))}if(isRecord(rawRoute.sources))for(let[sourceName,source]of Object.entries(rawRoute.sources)){if(!isRecord(source)||source.type!=="single"&&source.type!=="collection")continue;let pointer=`${displayPath}#routes.${routeId2}.sources.${sourceName}`;if(typeof source.schema!="string")continue;let schema=schemas3.get(source.schema);if(!schema){errors.push(`${pointer}.schema: Unknown schema "${source.schema}".`);continue}schema.valid&&(source.type==="single"&&!schema.isSingleton&&errors.push(`${pointer}.schema: Source expects a Single, but "${source.schema}" is a Collection.`),source.type==="collection"&&schema.isSingleton&&errors.push(`${pointer}.schema: Source expects a Collection, but "${source.schema}" is a Single.`),source.type==="collection"&&errors.push(...validateQuery(source.query,`${pointer}.query`,schema,params,schemas3)))}}return errors}__name(validatePageRegistrySchemaReferences,"validatePageRegistrySchemaReferences");function validateFimoConfig(cwd){let configPath=resolveFimoConfigPath(cwd);if(!fs20.existsSync(configPath))return{errors:[],configChecked:!1};let displayPath=path23.relative(cwd,configPath).replaceAll(path23.sep,"/"),value;try{value=JSON.parse(fs20.readFileSync(configPath,"utf8"))}catch{return{errors:[`${displayPath} must contain valid JSON.`],configChecked:!0}}let parsed=FimoAppConfigSchema.safeParse(value);return parsed.success?{errors:validatePageRegistrySchemaReferences(cwd,value,displayPath),configChecked:!0}:{errors:parsed.error.issues.map(issue=>{let pointer=issue.path.length>0?`#${issue.path.join(".")}`:"";return`${displayPath}${pointer}: ${issue.message}`}),configChecked:!0}}__name(validateFimoConfig,"validateFimoConfig");init_esm();import fs21 from"node:fs";import path24 from"node:path";var FIMO_LOCALE_PARAM="locale";function normalizeRoutePath(path52){let collapsed=(path52.startsWith("/")?path52:`/${path52}`).replace(/\/{2,}/g,"/");return collapsed.length>1?collapsed.replace(/\/+$/,""):collapsed}__name(normalizeRoutePath,"normalizeRoutePath");function splitSegments(path52){return path52.split("/").filter(Boolean)}__name(splitSegments,"splitSegments");function isPlaceholder(segment){return segment.startsWith(":")&&segment.length>1}__name(isPlaceholder,"isPlaceholder");function readPlaceholder(segment){return isPlaceholder(segment)?{name:segment.slice(1).replace(/[?*]$/,""),catchAll:segment.endsWith("*")}:null}__name(readPlaceholder,"readPlaceholder");function resolveParamType(name,descriptor2){return descriptor2?.type?descriptor2.type:name===FIMO_LOCALE_PARAM?"locale":"entry"}__name(resolveParamType,"resolveParamType");function buildLocaleParam(name,descriptor2,index2,issues){if(name!==FIMO_LOCALE_PARAM)return issues.push({param:name,message:`Param "${name}" declares \`"type": "locale"\` but "${FIMO_LOCALE_PARAM}" is the only locale parameter name.`,fix:`Rename the path segment and the descriptor to ":${FIMO_LOCALE_PARAM}", or use \`"type": "entry"\`.`}),null;if(index2!==0)return issues.push({param:name,message:`The ":${FIMO_LOCALE_PARAM}" segment must be the first segment of the path.`,fix:`Move it to the front, for example "/:${FIMO_LOCALE_PARAM}/blog/:slug".`}),null;for(let field of["schema","queryField","displayField","query"])descriptor2?.[field]!==void 0&&issues.push({param:name,message:`Locale param "${name}" must not declare "${field}" \u2014 the locale is read from the URL, never from the CMS.`,fix:`Remove "${field}" from \`params.${name}\`.`});return{type:"locale",name,optional:descriptor2?.optional!==!1}}__name(buildLocaleParam,"buildLocaleParam");function buildEntryParam(name,descriptor2,issues){return name===FIMO_LOCALE_PARAM?(issues.push({param:name,message:`Param "${name}" is reserved for the locale segment and cannot use \`"type": "entry"\`.`,fix:`Drop \`"type": "entry"\` from \`params.${name}\`, or rename the segment.`}),null):descriptor2?(descriptor2.optional!==void 0&&issues.push({param:name,message:`Entry param "${name}" cannot be optional \u2014 only the locale segment can be omitted from a URL.`,fix:`Remove "optional" from \`params.${name}\`.`}),!descriptor2.schema||!descriptor2.queryField?(issues.push({param:name,message:`Entry param "${name}" is missing ${descriptor2.schema?'"queryField"':'"schema"'}.`,fix:`Set \`"${name}": { "schema": "SchemaName", "queryField": "${name}" }\`.`}),null):{type:"entry",name,schema:descriptor2.schema,queryField:descriptor2.queryField,...descriptor2.displayField?{displayField:descriptor2.displayField}:{}}):(issues.push({param:name,message:`":${name}" needs \`params\` metadata before its URLs can be generated.`,fix:`Add \`"params": { "${name}": { "schema": "SchemaName", "queryField": "${name}" } }\`.`}),null)}__name(buildEntryParam,"buildEntryParam");function resolveRouteContract(id,route){let path52=normalizeRoutePath(route.path??"/"),segments=splitSegments(path52),declared=route.params??{},issues=[],params=[],unresolvedParams=[],seen=new Set;segments.forEach((segment,index2)=>{if(!isPlaceholder(segment))return;let placeholder=readPlaceholder(segment);if(!placeholder)return;let{name}=placeholder;if(seen.has(name)){issues.push({param:name,message:`Placeholder ":${name}" appears more than once.`,fix:"Give each placeholder a distinct name."}),unresolvedParams.push(name);return}seen.add(name);let descriptor2=declared[name],resolved=resolveParamType(name,descriptor2)==="locale"?buildLocaleParam(name,descriptor2,index2,issues):buildEntryParam(name,descriptor2,issues);resolved?params.push(resolved):unresolvedParams.push(name)});for(let name of Object.keys(declared))seen.has(name)||issues.push({param:name,message:`Declared param "${name}" has no ":${name}" segment in the path.`,fix:`Add ":${name}" to the path, or remove it from "params".`});let localeParam=params.find(param=>param.type==="locale")??null,canonicalPath=localeParam?normalizeRoutePath(`/${segments.filter(segment=>segment!==`:${FIMO_LOCALE_PARAM}`).join("/")}`):path52;return{id,config:route,path:path52,canonicalPath,params,entryParams:params.filter(param=>param.type==="entry"),localeParam,unresolvedParams,issues}}__name(resolveRouteContract,"resolveRouteContract");function parseRoutesSource(source){let stripped=source.replace(/\/\/.*$/gm,""),seen=new Set,routes=[];function add2(entry){let key=`${entry.path??"<layout>"}|${entry.file}|${entry.isIndex?"index":"route"}|${entry.isLayout?"layout":""}`;seen.has(key)||(seen.add(key),routes.push(entry))}__name(add2,"add");function normalizePath(p2){return p2?`/${p2}`.replace(/^\/\//,"/"):"/"}__name(normalizePath,"normalizePath");for(let match of stripped.matchAll(/\bindex\(\s*['"]([^'"]+)['"](?:\s*,[^)]*)?\)/g))add2({path:"/",file:match[1],isIndex:!0});for(let match of stripped.matchAll(/\broute\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]/g))add2({path:normalizePath(match[1]),file:match[2],isIndex:!1});for(let match of stripped.matchAll(/\blayout\(\s*['"]([^'"]+)['"]/g))add2({path:null,file:match[1],isIndex:!1,isLayout:!0});for(let match of stripped.matchAll(/\{\s*path:\s*['"]([^'"]+)['"][^}]*?file:\s*['"]([^'"]+)['"][^}]*\}/g))add2({path:normalizePath(match[1]),file:match[2],isIndex:!1});for(let match of stripped.matchAll(/\{\s*file:\s*['"]([^'"]+)['"]([^}]*)\}/g)){let file=match[1],rest=match[2],pathMatch=rest.match(/path:\s*['"]([^'"]+)['"]/),isIndex=/index:\s*true/.test(rest);add2({path:pathMatch?normalizePath(pathMatch[1]):"/",file,isIndex})}return routes}__name(parseRoutesSource,"parseRoutesSource");function readJson(filePath){try{return JSON.parse(fs21.readFileSync(filePath,"utf-8"))}catch{return{}}}__name(readJson,"readJson");function loadConfigRoutes(config){let configRoutes=config.routes??{};return Object.entries(configRoutes).map(([id,route])=>({id,path:route.path??"/",label:route.label??null,sources:route.sources??null,seo:route.seo??null,contract:resolveRouteContract(id,route)}))}__name(loadConfigRoutes,"loadConfigRoutes");function validateRouteMetadata(options={}){let cwd=options.cwd??process.cwd(),configFilePath=resolveFimoConfigPath(cwd),configDisplayPath=path24.relative(cwd,configFilePath).replaceAll(path24.sep,"/"),srcDir=path24.resolve(cwd,"src"),routesFilePath=path24.resolve(srcDir,"routes.ts"),errors=[],config=readJson(configFilePath),fileRoutes=[];if(!fs21.existsSync(routesFilePath))errors.push("Missing src/routes.ts.");else{let source=fs21.readFileSync(routesFilePath,"utf-8");fileRoutes=parseRoutesSource(source)}let pathToFile=new Map;for(let fr of fileRoutes)fr.path&&fr.file&&pathToFile.set(normalizeLocaleSpelling(fr.path),fr.file);let i18n=validateI18nConfig(config);errors.push(...i18n.errors);let configRoutes=loadConfigRoutes(config),configPaths=new Set(configRoutes.flatMap(registrablePaths));for(let fileRoute of fileRoutes)fileRoute.isLayout||fileRoute.path&&!configPaths.has(normalizeLocaleSpelling(fileRoute.path))&&errors.push(`Route with path "${fileRoute.path}" (file: "${fileRoute.file}") exists in src/routes.ts but has no matching entry in ${configDisplayPath}.
|
|
1199
|
+
`).map(line=>line.trim()).filter(Boolean));return LOCKFILE_MANAGERS.filter(([lockfile])=>tracked.has(lockfile))}__name(listTrackedLockfiles,"listTrackedLockfiles");function readPackageJson(filePath){try{return JSON.parse(fs17.readFileSync(filePath,"utf8"))}catch{return null}}__name(readPackageJson,"readPackageJson");function isExactPackageManager(value){return/^(?:npm|pnpm|yarn|bun)@\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(value.trim())}__name(isExactPackageManager,"isExactPackageManager");init_project_context();init_project();init_dist();import{readFile as readFile3}from"node:fs/promises";import path29 from"node:path";var import_frameworks=__toESM(require_frameworks(),1),import_detect_framework=__toESM(require_detect_framework(),1),import_local_file_system_detector=__toESM(require_local_file_system_detector(),1);import{readFile}from"node:fs/promises";import{resolve}from"node:path";var FRAMEWORK_LIST=import_frameworks.frameworks;function detectorFor(projectRoot){return new import_local_file_system_detector.LocalFileSystemDetector(resolve(projectRoot))}__name(detectorFor,"detectorFor");async function readPackageManifest(projectRoot){try{return JSON.parse(await readFile(resolve(projectRoot,"package.json"),"utf8"))}catch{return{}}}__name(readPackageManifest,"readPackageManifest");function packageNameFor(framework){return[...framework.detectors?.every??[],...framework.detectors?.some??[]].find(detector=>detector.matchPackage)?.matchPackage??framework.dependency}__name(packageNameFor,"packageNameFor");function declaredVersionFor(framework,manifest){if(framework.detectedVersion)return framework.detectedVersion;let packageName=packageNameFor(framework);if(packageName)for(let group of["dependencies","devDependencies","peerDependencies","optionalDependencies"]){let version=manifest[group]?.[packageName];if(version)return version}}__name(declaredVersionFor,"declaredVersionFor");function normalizeFramework(framework,manifest){if(!framework.slug)return null;let declaredVersion=declaredVersionFor(framework,manifest);return{slug:framework.slug==="sveltekit-1"?"sveltekit":framework.slug,name:framework.slug==="sveltekit-1"?"SvelteKit":framework.name,...declaredVersion?{declaredVersion}:{}}}__name(normalizeFramework,"normalizeFramework");async function detectProjectFramework(projectRoot){let[framework,manifest]=await Promise.all([(0,import_detect_framework.detectFrameworkRecord)({fs:detectorFor(projectRoot),frameworkList:FRAMEWORK_LIST}),readPackageManifest(projectRoot)]);return framework?normalizeFramework(framework,manifest):null}__name(detectProjectFramework,"detectProjectFramework");init_project_layout();import{existsSync,readFileSync}from"fs";import{resolve as resolve2}from"path";var defaultConfig={seo:void 0};function getConfigServer(rootDir){try{let configPath=resolveFimoConfigPath(rootDir),content2=readFileSync(configPath,"utf-8"),raw=JSON.parse(content2);return{runtime:raw.runtime,hosting:raw.hosting,seo:raw.seo,i18n:raw.i18n,routes:raw.routes,version:raw.version}}catch{return defaultConfig}}__name(getConfigServer,"getConfigServer");function resolveFimoConfigPath(rootDir){let existing=[CURRENT_PROJECT_LAYOUT.project,LEGACY_PROJECT_LAYOUT.project,CURRENT_PROJECT_LAYOUT.config,LEGACY_PROJECT_LAYOUT.config,LEGACY_AGENT_POLICY_PATH].filter(candidate=>existsSync(resolve2(rootDir,candidate)));return resolve2(rootDir,selectProjectConfigPath(existing))}__name(resolveFimoConfigPath,"resolveFimoConfigPath");import{existsSync as existsSync2,readFileSync as readFileSync2,readdirSync,statSync}from"node:fs";import{createRequire}from"node:module";import{join as join3}from"node:path";var require2=createRequire(import.meta.url),parseSync;function parse5(filePath,code2){return parseSync??=require2("oxc-parser").parseSync,parseSync(filePath,code2)}__name(parse5,"parse");function findSourceFiles(dir,files=[]){if(!existsSync2(dir))return files;let entries2=readdirSync(dir);for(let entry of entries2){let fullPath=join3(dir,entry);if(statSync(fullPath).isDirectory()){if(entry==="ui"||entry==="node_modules")continue;findSourceFiles(fullPath,files)}else/\.(ts|tsx|js|jsx|svelte)$/.test(entry)&&files.push(fullPath)}return files}__name(findSourceFiles,"findSourceFiles");function importedNames(body,source,importedName){let names=new Set;for(let statement of body)if(!(statement.type!=="ImportDeclaration"||statement.source.value!==source))for(let specifier of statement.specifiers)specifier.type==="ImportSpecifier"&&specifier.imported.type==="Identifier"&&specifier.imported.name===importedName&&names.add(specifier.local.name);return names}__name(importedNames,"importedNames");function extractFromModule(filePath,code2,parsePath=filePath){let declarations=[],ast=parse5(parsePath,code2).program,fimoLabelNames=new Set([...importedNames(ast.body,"fimo-react","Label"),...importedNames(ast.body,"fimo/ui","Label")]);function visit2(node){if(!(!node||typeof node!="object")){if(node.type==="CallExpression"){let callee=node.callee;if(callee?.type==="Identifier"&&callee.name==="t"||callee?.type==="MemberExpression"&&callee.computed===!1&&callee.object?.type==="Identifier"&&callee.object.name==="labels"&&callee.property?.type==="Identifier"&&callee.property.name==="t"){let firstArg=(node.arguments||[])[0];firstArg?.type==="Literal"&&typeof firstArg.value=="string"&&declarations.push({key:firstArg.value,file:filePath})}}if(node.type==="JSXOpeningElement"&&node.name?.type==="JSXIdentifier"&&fimoLabelNames.has(node.name.name))for(let attribute of node.attributes??[])attribute?.type==="JSXAttribute"&&attribute.name?.type==="JSXIdentifier"&&attribute.name.name==="value"&&attribute.value?.type==="Literal"&&typeof attribute.value.value=="string"&&declarations.push({key:attribute.value.value,file:filePath});for(let key of Object.keys(node)){let child=node[key];if(Array.isArray(child))for(let item of child)visit2(item);else typeof child=="object"&&child!==null&&visit2(child)}}}return __name(visit2,"visit"),visit2(ast),declarations}__name(extractFromModule,"extractFromModule");var SVELTE_SCRIPT=/<script\b[^>]*>([\s\S]*?)<\/script>/gi,SVELTE_COMMENT=/<!--[\s\S]*?-->/g,SVELTE_T_CALL_KEY=/(?:\blabels\.t|(?<![\w$.])t)\(\s*(['"])([^'"]*)\1/g;function extractFromSvelte(filePath,code2){let declarations=[],labelNames=new Set,markup=code2.replace(SVELTE_SCRIPT,(_script,contents2)=>{let ast=parse5(`${filePath}.ts`,contents2).program;for(let moduleName of["fimo-sveltekit/components","fimo/sveltekit/components"])for(let name of importedNames(ast.body,moduleName,"Label"))labelNames.add(name);return declarations.push(...extractFromModule(filePath,contents2,`${filePath}.ts`)),""}).replace(SVELTE_COMMENT,"");for(let name of labelNames){let labelKey=new RegExp(`<${name}\\b[^>]*?\\svalue=(?:"([^"]*)"|'([^']*)')`,"g");for(let match of markup.matchAll(labelKey))declarations.push({key:match[1]??match[2],file:filePath})}for(let match of markup.matchAll(SVELTE_T_CALL_KEY))declarations.push({key:match[2],file:filePath});return declarations}__name(extractFromSvelte,"extractFromSvelte");function extractFromFile(filePath){try{let code2=readFileSync2(filePath,"utf-8");return filePath.endsWith(".svelte")?extractFromSvelte(filePath,code2):extractFromModule(filePath,code2)}catch(error){return console.error(`Failed to parse ${filePath}:`,error),[]}}__name(extractFromFile,"extractFromFile");function extractLabelKeys(options={}){let cwd=options.cwd??process.cwd(),srcDir=join3(cwd,"src"),declarations=[],seen=new Set;for(let file of findSourceFiles(srcDir))for(let declaration of extractFromFile(file))seen.has(declaration.key)||(seen.add(declaration.key),declarations.push(declaration));return declarations.sort((a,b)=>a.key.localeCompare(b.key))}__name(extractLabelKeys,"extractLabelKeys");function extractTranslations(options={}){return{keys:extractLabelKeys(options)}}__name(extractTranslations,"extractTranslations");init_sync_forms();init_sync_schemas();init_esm();import fs20 from"node:fs";import path23 from"node:path";init_esm();import fs19 from"node:fs";import path22 from"node:path";function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}__name(isRecord,"isRecord");function fieldList(value){return typeof value=="string"?[value]:Array.isArray(value)?value.filter(item=>typeof item=="string"):[]}__name(fieldList,"fieldList");function queryFields(query){if(!isRecord(query))return[];let fields=new Set;if(isRecord(query.where))for(let field of Object.keys(query.where))field.startsWith("$")||fields.add(field.split(".")[0]);for(let sort of fieldList(query.sort))fields.add(sort.replace(/^-/,"").split(".")[0]);for(let field of[...fieldList(query.fields),...fieldList(query.populate)])fields.add(field.split(".")[0]);return[...fields]}__name(queryFields,"queryFields");function readSchemas(cwd){let directory=path22.join(cwd,"src/schemas");if(!fs19.existsSync(directory))return null;let schemas3=new Map;for(let file of fs19.readdirSync(directory).filter(name=>name.endsWith(".json"))){let fallbackUid=path22.basename(file,".json"),value;try{value=JSON.parse(fs19.readFileSync(path22.join(directory,file),"utf8"))}catch{schemas3.set(fallbackUid,{fields:{},isSingleton:!1,valid:!1});continue}if(!isRecord(value)){schemas3.set(fallbackUid,{fields:{},isSingleton:!1,valid:!1});continue}let uid=typeof value.uid=="string"&&value.uid?value.uid:fallbackUid;schemas3.set(uid,{fields:isRecord(value.fields)?value.fields:{},isSingleton:value.isSingleton===!0,valid:!0})}return schemas3}__name(readSchemas,"readSchemas");function schemaFields(schema){return new Set([...Object.keys(schema.fields),"id","slug"])}__name(schemaFields,"schemaFields");function queryableFields(schema){return new Set([...schemaFields(schema),"createdAt","updatedAt"])}__name(queryableFields,"queryableFields");function validateQuery(query,pointer,schema,params,schemas3){let errors=[],unknownField=queryFields(query).find(field=>!queryableFields(schema).has(field));unknownField&&errors.push(`${pointer}: Query field "${unknownField}" does not exist on the referenced schema.`);for(let expression of pageSourceParamExpressions(query)){let parsed=parsePageParamExpression(expression),binding=parsed?params[parsed.param]:void 0;if(!parsed||!binding||typeof binding.schema!="string")continue;let boundSchema=schemas3.get(binding.schema),field=parsed.field.split(".")[0];boundSchema?.valid&&!schemaFields(boundSchema).has(field)&&errors.push(`${pointer}: ${expression} reads missing field "${field}" from schema "${binding.schema}".`)}return errors}__name(validateQuery,"validateQuery");function validatePageRegistrySchemaReferences(cwd,config,displayPath){let schemas3=readSchemas(cwd);if(!schemas3||!isRecord(config.routes))return[];let errors=[];for(let[routeId2,rawRoute]of Object.entries(config.routes)){if(!isRecord(rawRoute))continue;let params=isRecord(rawRoute.params)?rawRoute.params:{};for(let[param,binding]of Object.entries(params)){let pointer=`${displayPath}#routes.${routeId2}.params.${param}`;if(typeof binding.schema!="string")continue;let schema=schemas3.get(binding.schema);if(!schema){errors.push(`${pointer}.schema: Unknown schema "${binding.schema}".`);continue}if(!schema.valid)continue;schema.isSingleton&&errors.push(`${pointer}.schema: Page params require a Collection, but "${binding.schema}" is a Single.`);let fields=schemaFields(schema);for(let key of["queryField","displayField"]){let field=binding[key];typeof field=="string"&&!fields.has(field)&&errors.push(`${pointer}.${key}: Field "${field}" does not exist on schema "${binding.schema}".`)}if(typeof binding.queryField=="string"&&!["id","slug"].includes(binding.queryField)){let definition=schema.fields[binding.queryField];isRecord(definition)&&(definition.required!==!0&&errors.push(`${pointer}.queryField: Custom URL field "${binding.queryField}" must set "required": true.`),definition.unique!==!0&&errors.push(`${pointer}.queryField: Custom URL field "${binding.queryField}" must set "unique": true.`))}errors.push(...validateQuery(binding.query,`${pointer}.query`,schema,params,schemas3))}if(isRecord(rawRoute.sources))for(let[sourceName,source]of Object.entries(rawRoute.sources)){if(!isRecord(source)||source.type!=="single"&&source.type!=="collection")continue;let pointer=`${displayPath}#routes.${routeId2}.sources.${sourceName}`;if(typeof source.schema!="string")continue;let schema=schemas3.get(source.schema);if(!schema){errors.push(`${pointer}.schema: Unknown schema "${source.schema}".`);continue}schema.valid&&(source.type==="single"&&!schema.isSingleton&&errors.push(`${pointer}.schema: Source expects a Single, but "${source.schema}" is a Collection.`),source.type==="collection"&&schema.isSingleton&&errors.push(`${pointer}.schema: Source expects a Collection, but "${source.schema}" is a Single.`),source.type==="collection"&&errors.push(...validateQuery(source.query,`${pointer}.query`,schema,params,schemas3)))}}return errors}__name(validatePageRegistrySchemaReferences,"validatePageRegistrySchemaReferences");function validateFimoConfig(cwd){let configPath=resolveFimoConfigPath(cwd);if(!fs20.existsSync(configPath))return{errors:[],configChecked:!1};let displayPath=path23.relative(cwd,configPath).replaceAll(path23.sep,"/"),value;try{value=JSON.parse(fs20.readFileSync(configPath,"utf8"))}catch{return{errors:[`${displayPath} must contain valid JSON.`],configChecked:!0}}let parsed=FimoAppConfigSchema.safeParse(value);return parsed.success?{errors:validatePageRegistrySchemaReferences(cwd,value,displayPath),configChecked:!0}:{errors:parsed.error.issues.map(issue=>{let pointer=issue.path.length>0?`#${issue.path.join(".")}`:"";return`${displayPath}${pointer}: ${issue.message}`}),configChecked:!0}}__name(validateFimoConfig,"validateFimoConfig");init_esm();import fs21 from"node:fs";import path24 from"node:path";var FIMO_LOCALE_PARAM="locale";function normalizeRoutePath(path52){let collapsed=(path52.startsWith("/")?path52:`/${path52}`).replace(/\/{2,}/g,"/");return collapsed.length>1?collapsed.replace(/\/+$/,""):collapsed}__name(normalizeRoutePath,"normalizeRoutePath");function splitSegments(path52){return path52.split("/").filter(Boolean)}__name(splitSegments,"splitSegments");function isPlaceholder(segment){return segment.startsWith(":")&&segment.length>1}__name(isPlaceholder,"isPlaceholder");function readPlaceholder(segment){return isPlaceholder(segment)?{name:segment.slice(1).replace(/[?*]$/,""),catchAll:segment.endsWith("*")}:null}__name(readPlaceholder,"readPlaceholder");function resolveParamType(name,descriptor2){return descriptor2?.type?descriptor2.type:name===FIMO_LOCALE_PARAM?"locale":"entry"}__name(resolveParamType,"resolveParamType");function buildLocaleParam(name,descriptor2,index2,issues){if(name!==FIMO_LOCALE_PARAM)return issues.push({param:name,message:`Param "${name}" declares \`"type": "locale"\` but "${FIMO_LOCALE_PARAM}" is the only locale parameter name.`,fix:`Rename the path segment and the descriptor to ":${FIMO_LOCALE_PARAM}", or use \`"type": "entry"\`.`}),null;if(index2!==0)return issues.push({param:name,message:`The ":${FIMO_LOCALE_PARAM}" segment must be the first segment of the path.`,fix:`Move it to the front, for example "/:${FIMO_LOCALE_PARAM}/blog/:slug".`}),null;for(let field of["schema","queryField","displayField","query"])descriptor2?.[field]!==void 0&&issues.push({param:name,message:`Locale param "${name}" must not declare "${field}" \u2014 the locale is read from the URL, never from the CMS.`,fix:`Remove "${field}" from \`params.${name}\`.`});return{type:"locale",name,optional:descriptor2?.optional!==!1}}__name(buildLocaleParam,"buildLocaleParam");function buildEntryParam(name,descriptor2,issues){return name===FIMO_LOCALE_PARAM?(issues.push({param:name,message:`Param "${name}" is reserved for the locale segment and cannot use \`"type": "entry"\`.`,fix:`Drop \`"type": "entry"\` from \`params.${name}\`, or rename the segment.`}),null):descriptor2?(descriptor2.optional!==void 0&&issues.push({param:name,message:`Entry param "${name}" cannot be optional \u2014 only the locale segment can be omitted from a URL.`,fix:`Remove "optional" from \`params.${name}\`.`}),!descriptor2.schema||!descriptor2.queryField?(issues.push({param:name,message:`Entry param "${name}" is missing ${descriptor2.schema?'"queryField"':'"schema"'}.`,fix:`Set \`"${name}": { "schema": "SchemaName", "queryField": "${name}" }\`.`}),null):{type:"entry",name,schema:descriptor2.schema,queryField:descriptor2.queryField,...descriptor2.displayField?{displayField:descriptor2.displayField}:{}}):(issues.push({param:name,message:`":${name}" needs \`params\` metadata before its URLs can be generated.`,fix:`Add \`"params": { "${name}": { "schema": "SchemaName", "queryField": "${name}" } }\`.`}),null)}__name(buildEntryParam,"buildEntryParam");function resolveRouteContract(id,route){let path52=normalizeRoutePath(route.path??"/"),segments=splitSegments(path52),declared=route.params??{},issues=[],params=[],unresolvedParams=[],seen=new Set;segments.forEach((segment,index2)=>{if(!isPlaceholder(segment))return;let placeholder=readPlaceholder(segment);if(!placeholder)return;let{name}=placeholder;if(seen.has(name)){issues.push({param:name,message:`Placeholder ":${name}" appears more than once.`,fix:"Give each placeholder a distinct name."}),unresolvedParams.push(name);return}seen.add(name);let descriptor2=declared[name],resolved=resolveParamType(name,descriptor2)==="locale"?buildLocaleParam(name,descriptor2,index2,issues):buildEntryParam(name,descriptor2,issues);resolved?params.push(resolved):unresolvedParams.push(name)});for(let name of Object.keys(declared))seen.has(name)||issues.push({param:name,message:`Declared param "${name}" has no ":${name}" segment in the path.`,fix:`Add ":${name}" to the path, or remove it from "params".`});let localeParam=params.find(param=>param.type==="locale")??null,canonicalPath=localeParam?normalizeRoutePath(`/${segments.filter(segment=>segment!==`:${FIMO_LOCALE_PARAM}`).join("/")}`):path52;return{id,config:route,path:path52,canonicalPath,params,entryParams:params.filter(param=>param.type==="entry"),localeParam,unresolvedParams,issues}}__name(resolveRouteContract,"resolveRouteContract");function parseRoutesSource(source){let stripped=source.replace(/\/\/.*$/gm,""),seen=new Set,routes=[];function add2(entry){let key=`${entry.path??"<layout>"}|${entry.file}|${entry.isIndex?"index":"route"}|${entry.isLayout?"layout":""}`;seen.has(key)||(seen.add(key),routes.push(entry))}__name(add2,"add");function normalizePath(p2){return p2?`/${p2}`.replace(/^\/\//,"/"):"/"}__name(normalizePath,"normalizePath");for(let match of stripped.matchAll(/\bindex\(\s*['"]([^'"]+)['"](?:\s*,[^)]*)?\)/g))add2({path:"/",file:match[1],isIndex:!0});for(let match of stripped.matchAll(/\broute\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]/g))add2({path:normalizePath(match[1]),file:match[2],isIndex:!1});for(let match of stripped.matchAll(/\blayout\(\s*['"]([^'"]+)['"]/g))add2({path:null,file:match[1],isIndex:!1,isLayout:!0});for(let match of stripped.matchAll(/\{\s*path:\s*['"]([^'"]+)['"][^}]*?file:\s*['"]([^'"]+)['"][^}]*\}/g))add2({path:normalizePath(match[1]),file:match[2],isIndex:!1});for(let match of stripped.matchAll(/\{\s*file:\s*['"]([^'"]+)['"]([^}]*)\}/g)){let file=match[1],rest=match[2],pathMatch=rest.match(/path:\s*['"]([^'"]+)['"]/),isIndex=/index:\s*true/.test(rest);add2({path:pathMatch?normalizePath(pathMatch[1]):"/",file,isIndex})}return routes}__name(parseRoutesSource,"parseRoutesSource");function readJson(filePath){try{return JSON.parse(fs21.readFileSync(filePath,"utf-8"))}catch{return{}}}__name(readJson,"readJson");function loadConfigRoutes(config){let configRoutes=config.routes??{};return Object.entries(configRoutes).map(([id,route])=>({id,path:route.path??"/",label:route.label??null,sources:route.sources??null,seo:route.seo??null,contract:resolveRouteContract(id,route)}))}__name(loadConfigRoutes,"loadConfigRoutes");function validateRouteMetadata(options={}){let cwd=options.cwd??process.cwd(),configFilePath=resolveFimoConfigPath(cwd),configDisplayPath=path24.relative(cwd,configFilePath).replaceAll(path24.sep,"/"),srcDir=path24.resolve(cwd,"src"),routesFilePath=path24.resolve(srcDir,"routes.ts"),errors=[],config=readJson(configFilePath),fileRoutes=[];if(!fs21.existsSync(routesFilePath))errors.push("Missing src/routes.ts.");else{let source=fs21.readFileSync(routesFilePath,"utf-8");fileRoutes=parseRoutesSource(source)}let pathToFile=new Map;for(let fr of fileRoutes)fr.path&&fr.file&&pathToFile.set(normalizeLocaleSpelling(fr.path),fr.file);let i18n=validateI18nConfig(config);errors.push(...i18n.errors);let configRoutes=loadConfigRoutes(config),configPaths=new Set(configRoutes.flatMap(registrablePaths));for(let fileRoute of fileRoutes)fileRoute.isLayout||fileRoute.path&&!configPaths.has(normalizeLocaleSpelling(fileRoute.path))&&errors.push(`Route with path "${fileRoute.path}" (file: "${fileRoute.file}") exists in src/routes.ts but has no matching entry in ${configDisplayPath}.
|
|
1200
1200
|
Fix: add a route entry to ${configDisplayPath} "routes" with a matching "path".`);let filePaths=new Set(fileRoutes.filter(r=>!r.isLayout&&r.path).map(r=>normalizeLocaleSpelling(r.path)));for(let route of configRoutes)registrablePaths(route).some(candidate=>filePaths.has(candidate))||errors.push(`Route "${route.id}" (${route.path}) exists in ${configDisplayPath} but is not registered in src/routes.ts.
|
|
1201
1201
|
Fix: add the route to src/routes.ts. Example: route('${route.path.replace(/^\//,"")}', './pages/YourPage.tsx')`);i18n.routingStrategy==="path-prefix"&&i18n.locales.length>1&&errors.push(...validateLocaleRouteCollisions({configRoutes,fileRoutes,i18n,configDisplayPath,routesSourceUsesLegacyHelper:sourceUsesLegacyFimoRoutes(routesFilePath)}));let routeById=new Map;for(let route of configRoutes){if(routeById.has(route.id)){let previousPath=routeById.get(route.id).path;errors.push(`Duplicate route id "${route.id}" found for paths "${previousPath}" and "${route.path}".`);continue}routeById.set(route.id,route)}for(let route of configRoutes){for(let issue of route.contract.issues)errors.push(`Route "${route.id}" (${route.path}): ${issue.message}
|
|
1202
1202
|
Fix: ${issue.fix}`);errors.push(...validatePageSources(route))}errors.push(...validateRouteShapeCollisions(configRoutes));for(let route of configRoutes){let file=registrablePaths(route).map(candidate=>pathToFile.get(candidate)).find(Boolean);if(!file)continue;let routeModulePath=path24.resolve(srcDir,file);if(!fs21.existsSync(routeModulePath)){errors.push(`Route "${route.id}" (${route.path}) references missing module "${file}".
|
|
1203
1203
|
Fix: create the file at src/${file}.`);continue}if(route.seo){let GLOBAL_VARIABLES=new Set(["siteName","label"]),seoFields=[{name:"title",value:route.seo.title},{name:"description",value:route.seo.description}];for(let field of seoFields){if(typeof field.value!="string")continue;let templatePattern=/\{\{([^}]+)\}\}/g,match;for(;(match=templatePattern.exec(field.value))!==null;){let variable=match[1].trim();if(GLOBAL_VARIABLES.has(variable))continue;let entryParamNames=route.contract.entryParams.map(param=>param.name),availableParams=entryParamNames.length>0?entryParamNames.join(", "):"none";if(variable.includes(".")){let paramKey=variable.split(".")[0];entryParamNames.includes(paramKey)||errors.push(`Route "${route.id}" (${route.path}): SEO ${field.name} references "{{${variable}}}" but "${paramKey}" is not a declared entry param. Available params: ${availableParams}.`)}else errors.push(`Route "${route.id}" (${route.path}): SEO ${field.name} references "{{${variable}}}" which is not a global variable (siteName, label) and not a dotted param reference (e.g., "{{param.field}}"). Available params: ${availableParams}.`)}}}}return{errors,routesChecked:configRoutes.length}}__name(validateRouteMetadata,"validateRouteMetadata");function validatePageSources(route){if(!route.sources)return[];let errors=[],entryParamNames=new Set(route.contract.entryParams.map(param=>param.name));for(let[sourceName,rawSource]of Object.entries(route.sources)){if(!/^[A-Za-z][\w-]*$/.test(sourceName)||!isRecord2(rawSource)){errors.push(`Route "${route.id}" (${route.path}): source "${sourceName}" is not a valid named source.`);continue}if(rawSource.type==="labels"){let match=rawSource.match;(!Array.isArray(match)||match.length===0||match.some(pattern=>{if(typeof pattern!="string")return!0;let wildcard=pattern.indexOf("*");return wildcard!==-1&&!(pattern.length>2&&pattern.endsWith(".*")&&wildcard===pattern.length-1)}))&&errors.push(`Route "${route.id}" (${route.path}): Labels source "${sourceName}" needs exact keys or prefixes ending in .*.`);continue}if(rawSource.type!=="single"&&rawSource.type!=="collection"){errors.push(`Route "${route.id}" (${route.path}): source "${sourceName}" type must be labels, single, or collection.`);continue}if((typeof rawSource.schema!="string"||!rawSource.schema)&&errors.push(`Route "${route.id}" (${route.path}): source "${sourceName}" needs a schema.`),rawSource.type==="collection"&&rawSource.query!==void 0&&!isRecord2(rawSource.query)){errors.push(`Route "${route.id}" (${route.path}): Collection source "${sourceName}" query must be an object.`);continue}for(let expression of pageSourceParamExpressions(rawSource.query)){let param=/^\$params\.([A-Za-z_][\w-]*)\.([A-Za-z_][\w.-]*)$/.exec(expression)?.[1];(!param||!entryParamNames.has(param))&&errors.push(`Route "${route.id}" (${route.path}): source "${sourceName}" references undeclared param "${param??expression}". Fix: use $params.<declared-entry-param>.<field>.`)}}return errors}__name(validatePageSources,"validatePageSources");function validateI18nConfig(config){let rawI18n=isRecord2(config.i18n)?config.i18n:{},errors=[],rawDefaultLocale=typeof rawI18n.defaultLocale=="string"?rawI18n.defaultLocale:"en",defaultLocale=normalizeFimoLocale(rawDefaultLocale);defaultLocale||errors.push(`Invalid i18n.defaultLocale "${rawDefaultLocale}". Use a structurally valid locale tag, for example "en", "es", or "pt-BR".`);let rawLocales=Array.isArray(rawI18n.locales)?rawI18n.locales:defaultLocale?[defaultLocale]:[];rawI18n.locales!==void 0&&!Array.isArray(rawI18n.locales)&&errors.push("i18n.locales must be an array of locale strings.");let locales=[],seenLocales=new Set;for(let rawLocale of rawLocales){if(typeof rawLocale!="string"){errors.push(`Invalid i18n.locales entry ${JSON.stringify(rawLocale)}. Locale entries must be strings.`);continue}let locale=normalizeFimoLocale(rawLocale);if(!locale){errors.push(`Invalid i18n.locales entry "${rawLocale}". Use a structurally valid locale tag, for example "en", "es", or "pt-BR".`);continue}seenLocales.has(locale)||(seenLocales.add(locale),locales.push(locale))}let effectiveDefaultLocale=defaultLocale??"en";seenLocales.has(effectiveDefaultLocale)||(errors.push(`i18n.locales must include i18n.defaultLocale "${effectiveDefaultLocale}".`),locales.unshift(effectiveDefaultLocale));let rawRouting=isRecord2(rawI18n.routing)?rawI18n.routing:{},routingStrategy=typeof rawRouting.strategy=="string"?rawRouting.strategy:"path-prefix";return routingStrategy!=="path-prefix"&&errors.push(`Unsupported i18n.routing.strategy "${routingStrategy}". Supported now: "path-prefix".`),{defaultLocale:effectiveDefaultLocale,locales,routingStrategy,errors}}__name(validateI18nConfig,"validateI18nConfig");function validateRouteShapeCollisions(configRoutes){let errors=[],byShape=new Map;for(let route of configRoutes){let shape=route.contract.canonicalPath.split("/").map(segment=>segment.startsWith(":")?":param":segment).join("/"),previous=byShape.get(shape);if(previous&&(previous.contract.localeParam||route.contract.localeParam)){errors.push(`Routes "${previous.id}" (${previous.path}) and "${route.id}" (${route.path}) both answer "${route.contract.canonicalPath}".
|
|
1204
|
-
Fix: keep one of them, or give them distinct paths \u2014 a locale segment does not make two routes distinct.`);continue}previous||byShape.set(shape,route)}return errors}__name(validateRouteShapeCollisions,"validateRouteShapeCollisions");function validateLocaleRouteCollisions(args){let errors=[],reservedPrefixes=new Set(args.i18n.locales.map(locale=>locale.toLowerCase()));for(let route of args.configRoutes){let first2=firstPathSegment(route.path);first2&&reservedPrefixes.has(first2.toLowerCase())&&errors.push(`Route "${route.id}" (${route.path}) uses reserved locale prefix "${first2}". Declare the locale as "/:locale/..." in ${args.configDisplayPath} and as ":locale?/..." in React Router so the default locale remains unprefixed.`)}if(!args.routesSourceUsesLegacyHelper)for(let route of args.fileRoutes){if(!route.path||route.isLayout)continue;let first2=firstPathSegment(route.path);first2&&normalizeLocaleSpelling(first2)===`:${FIMO_LOCALE_PARAM}`||(first2?.startsWith(":")||first2==="*")&&errors.push(`Route "${route.path}" is a top-level dynamic route in a multi-locale project. It can capture locale URLs like "/${args.i18n.locales[0]}". Put an explicit optional ":locale?" segment first in the React Router path, or keep this route outside the localized route boundary.`)}return errors}__name(validateLocaleRouteCollisions,"validateLocaleRouteCollisions");function sourceUsesLegacyFimoRoutes(routesFilePath){if(!fs21.existsSync(routesFilePath))return!1;let source=fs21.readFileSync(routesFilePath,"utf-8"),importedName=source.match(/import\s*\{(?<imports>[^}]*)\}\s*from\s*['"]fimo\/react-router\/routes['"]/s)?.groups?.imports?.split(",").map(specifier=>specifier.trim().match(/^fimoRoutes(?:\s+as\s+(?<alias>[A-Za-z_$][\w$]*))?$/)?.groups?.alias??(specifier.trim()==="fimoRoutes"?"fimoRoutes":null)).find(name=>!!name);return importedName?new RegExp(`\\b${importedName}\\s*\\(`).test(source):!1}__name(sourceUsesLegacyFimoRoutes,"sourceUsesLegacyFimoRoutes");function normalizeLocaleSpelling(routePath){return routePath.replace(`:${FIMO_LOCALE_PARAM}?`,`:${FIMO_LOCALE_PARAM}`)}__name(normalizeLocaleSpelling,"normalizeLocaleSpelling");function registrablePaths(route){let declared=normalizeLocaleSpelling(route.contract.path);return route.contract.localeParam?.optional?[declared,route.contract.canonicalPath]:[declared]}__name(registrablePaths,"registrablePaths");function firstPathSegment(routePath){return routePath.split("/").filter(Boolean)[0]??null}__name(firstPathSegment,"firstPathSegment");function isRecord2(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}__name(isRecord2,"isRecord");function normalizeFimoLocale(locale){let trimmed=locale?.trim();if(!trimmed)return null;let candidate=trimmed.replace(/_/g,"-");try{return Intl.getCanonicalLocales(candidate)[0]??null}catch{return null}}__name(normalizeFimoLocale,"normalizeFimoLocale");init_esm();import{existsSync as existsSync6,readFileSync as readFileSync6,readdirSync as readdirSync4}from"node:fs";import{basename as basename2,join as join7,resolve as resolve6}from"node:path";var SCHEMAS_REL2="src/schemas",FIELD_TYPES=new Set(FieldTypeSchema.options),RESERVED_FIELD_NAMES=new Set(RESERVED_CONTENT_FIELD_NAMES);function validateSchemas(options={}){let cwd=resolve6(options.cwd??process.cwd()),schemasDir=join7(cwd,SCHEMAS_REL2);if(!existsSync6(schemasDir))return{errors:[],schemasChecked:0};let files=readdirSync4(schemasDir).filter(f=>f.endsWith(".json")).sort(),errors=[],schemaUids=new Set;for(let fileName of files){let schema=readSchemaObject(join7(schemasDir,fileName));schema&&typeof schema.uid=="string"&&schemaUids.add(schema.uid)}for(let fileName of files){let file=join7(SCHEMAS_REL2,fileName);errors.push(...validateSchemaFile(join7(schemasDir,fileName),file,schemaUids))}return{errors,schemasChecked:files.length}}__name(validateSchemas,"validateSchemas");function readSchemaObject(absolutePath){let schema;try{schema=JSON.parse(readFileSync6(absolutePath,"utf-8"))}catch{return null}return typeof schema=="object"&&schema!==null&&!Array.isArray(schema)?schema:null}__name(readSchemaObject,"readSchemaObject");function validateSchemaFile(absolutePath,file,schemaUids=new Set){let schema;try{schema=JSON.parse(readFileSync6(absolutePath,"utf-8"))}catch(error){return[{rule:"schemas/parse",message:`Invalid JSON: ${error instanceof Error?error.message:String(error)}`,file}]}if(typeof schema!="object"||schema===null||Array.isArray(schema))return[{rule:"schemas/shape",message:"Schema must be a JSON object.",file}];let errors=[],{uid,name,fields,i18n,isSingleton,groups}=schema,expectedUid=basename2(file,".json");if(typeof uid!="string"||uid.length===0?errors.push({rule:"schemas/uid",message:`Missing "uid". Set it to the file name: "${expectedUid}".`,file}):uid!==expectedUid?errors.push({rule:"schemas/uid",message:`"uid" is "${uid}" but the file is ${expectedUid}.json \u2014 they must match.`,file}):CONTENT_TYPE_NAME_PATTERN.test(uid)||errors.push({rule:"schemas/type-name",message:`"uid" must use ${CONTENT_TYPE_NAME_PATTERN_DESCRIPTION}.`,file}),(typeof name!="string"||name.length===0)&&errors.push({rule:"schemas/name",message:'Missing "name" (the human-readable label).',file}),isSingleton!==void 0&&typeof isSingleton!="boolean"&&errors.push({rule:"schemas/singleton",message:'"isSingleton" must be a boolean when provided.',file}),i18n!==void 0)if(typeof i18n!="object"||i18n===null||Array.isArray(i18n))errors.push({rule:"schemas/i18n",message:'"i18n" must be an object like { "enabled": false }.',file});else{let keys=Object.keys(i18n);(keys.length!==1||keys[0]!=="enabled"||typeof i18n.enabled!="boolean")&&errors.push({rule:"schemas/i18n",message:'"i18n" only supports one boolean option: { "enabled": true | false }.',file})}let groupIds=new Set;if(groups!==void 0)if(!Array.isArray(groups))errors.push({rule:"schemas/groups",message:'"groups" must be an array.',file});else{let defaults=0;for(let[index2,group]of groups.entries()){let parsed=ContentFieldGroupSchema.safeParse(group);if(!parsed.success){errors.push({rule:"schemas/groups",message:`Group at index ${index2} is invalid: ${parsed.error.issues[0]?.message??"invalid group"}.`,file});continue}groupIds.has(parsed.data.id)&&errors.push({rule:"schemas/groups",message:`Group ID "${parsed.data.id}" is declared more than once.`,file}),groupIds.add(parsed.data.id),parsed.data.default&&(defaults+=1)}defaults>1&&errors.push({rule:"schemas/groups",message:"At most one group may be the default.",file})}if(typeof fields!="object"||fields===null||Array.isArray(fields))return errors.push({rule:"schemas/fields",message:'Missing "fields" object.',file}),errors;let parsedFields={};for(let[fieldName,definition]of Object.entries(fields)){if(!CONTENT_FIELD_NAME_PATTERN.test(fieldName)){errors.push({rule:"schemas/field-name",message:`Field "${fieldName}" must use ${CONTENT_FIELD_NAME_PATTERN_DESCRIPTION}.`,file});continue}if(RESERVED_FIELD_NAMES.has(fieldName)){errors.push({rule:"schemas/reserved-field",message:`Field "${fieldName}" is reserved entry metadata \u2014 the platform manages it automatically. Remove it from the schema${fieldName==="slug"?" (set slug inside entry data on create instead)":""}.`,file});continue}if(typeof definition!="object"||definition===null||Array.isArray(definition)){errors.push({rule:"schemas/field-shape",message:`Field "${fieldName}" must be an object like { "type": "string" }.`,file});continue}let{type}=definition,memberships=Array.isArray(definition.group)?definition.group:definition.group===void 0?[]:[definition.group];new Set(memberships).size!==memberships.length&&errors.push({rule:"schemas/field-group",message:`Field "${fieldName}" lists the same group more than once.`,file});for(let membership of memberships)(typeof membership!="string"||!groupIds.has(membership))&&errors.push({rule:"schemas/field-group",message:`Field "${fieldName}" references unknown group "${String(membership)}".`,file});if((typeof type!="string"||!FIELD_TYPES.has(type))&&errors.push({rule:"schemas/field-type",message:`Field "${fieldName}" has unsupported type "${String(type)}". Allowed: ${[...FIELD_TYPES].join(", ")}.`,file}),"localized"in definition&&errors.push({rule:"schemas/field-i18n",message:`Field "${fieldName}": "localized" is not supported. Use "i18n": false to share one value across locales.`,file}),"i18n"in definition&&(typeof definition.i18n!="boolean"?errors.push({rule:"schemas/field-i18n",message:`Field "${fieldName}": "i18n" must be true or false.`,file}):type==="blocks"&&errors.push({rule:"schemas/field-i18n",message:`Field "${fieldName}": "i18n" is not supported on blocks fields.`,file})),type==="blocks"){let parsed2=ContentFieldDefinitionSchema.safeParse(definition);if(!parsed2.success){for(let issue of parsed2.error.issues)errors.push({rule:"schemas/structured-content-shape",message:`Field "${fieldName}"${issue.path.length>0?` at ${issue.path.join(".")}`:""}: ${issue.message}`,file});continue}parsedFields[fieldName]=parsed2.data,walkContentFields({[fieldName]:parsed2.data},({field,path:path52,structuredDepth,insideStructuredContent})=>{if(insideStructuredContent&&field.group!==void 0&&errors.push({rule:"schemas/field-group",message:`Field "${path52.join(".")}" cannot use "group" inside blocks.`,file}),field.type==="blocks"&&structuredDepth>=MAX_STRUCTURED_CONTENT_DEPTH&&errors.push({rule:"schemas/structured-content-depth",message:`Field "${path52.join(".")}" exceeds the ${MAX_STRUCTURED_CONTENT_DEPTH}-level blocks limit.`,file}),!(!insideStructuredContent||field.type!=="reference")){if(field.targets){errors.push({rule:"schemas/structured-content-reference",message:`Reference field "${path52.join(".")}" must use one fixed "target" inside blocks.`,file});return}field.target&&schemaUids.size>0&&!schemaUids.has(field.target)&&errors.push({rule:"schemas/reference-target",message:`Reference field "${path52.join(".")}" targets unknown schema "${field.target}".`,file})}});continue}let parsed=ContentFieldDefinitionSchema.safeParse(definition);if(parsed.success&&(parsedFields[fieldName]=parsed.data),type==="reference"){let{target,targets,many}=definition;if(targets!==void 0&&target!==void 0)errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" declares both "target" and "targets" \u2014 a field is fixed or polymorphic, never both.`,file});else if(targets!==void 0){let targetList=Array.isArray(targets)?targets:null;if(!targetList||targetList.length===0||new Set(targetList).size!==targetList.length)errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" must declare "targets" as a non-empty array of unique content types.`,file});else for(let candidate of targetList)typeof candidate!="string"||!CONTENT_TYPE_NAME_PATTERN.test(candidate)?errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" has an invalid entry in "targets".`,file}):schemaUids.size>0&&!schemaUids.has(candidate)&&errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" targets unknown schema "${candidate}".`,file})}else typeof target!="string"||!CONTENT_TYPE_NAME_PATTERN.test(target)?errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" must declare a valid "target" content type (or "targets" for a polymorphic field).`,file}):schemaUids.size>0&&!schemaUids.has(target)&&errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" targets unknown schema "${target}".`,file});many!==void 0&&typeof many!="boolean"&&errors.push({rule:"schemas/reference-many",message:`Reference field "${fieldName}" must use a boolean "many" value.`,file})}else for(let referenceOnlyKey of["target","targets","many"])referenceOnlyKey in definition&&errors.push({rule:"schemas/reference-shape",message:`Field "${fieldName}": "${referenceOnlyKey}" is only supported on reference fields.`,file})}for(let problem of collectConditionProblems(parsedFields))errors.push({rule:"schemas/conditions",message:problem.message,file});return errors}__name(validateSchemaFile,"validateSchemaFile");init_api();init_config();init_auth_errors();init_project();import fs22 from"node:fs";import path25 from"node:path";var MIN_DB_LABELS_FIMO_VERSION="0.2.5",MIN_DB_LABELS_TEMPLATE_VERSION=4;function getDbLabelsRuntimeWarning(cwd){if(readExplicitConfigVersion(cwd)<MIN_DB_LABELS_TEMPLATE_VERSION)return null;let projectPackage=readPackageJson2(path25.join(cwd,"package.json")),fimoSpec=findFimoSpec(projectPackage);if(!fimoSpec)return buildWarning("package.json has no fimo dependency");let source=findRuntimeVersion(cwd,fimoSpec);return!source||!isVersionOlder(source.version,MIN_DB_LABELS_FIMO_VERSION)?null:buildWarning(`${source.label} is fimo@${source.version}`)}__name(getDbLabelsRuntimeWarning,"getDbLabelsRuntimeWarning");function readExplicitConfigVersion(cwd){try{let raw=JSON.parse(fs22.readFileSync(resolveProjectConfigPath(cwd),"utf8")),parsed=Number.parseInt(String(raw.version),10);return Number.isFinite(parsed)&&parsed>0?parsed:0}catch{return 0}}__name(readExplicitConfigVersion,"readExplicitConfigVersion");function buildWarning(subject){return[`CRITICAL: ${subject}, but DB-owned labels require fimo >= ${MIN_DB_LABELS_FIMO_VERSION}.`,"Labels changed with `fimo labels` or Fimo Studio may not render in this project until the app runtime is upgraded.","Run `npm install fimo@latest` (or your package manager equivalent), then run `fimo validate` again."].join(" ")}__name(buildWarning,"buildWarning");function findRuntimeVersion(cwd,fimoSpec){let installed=readPackageJson2(path25.join(cwd,"node_modules","fimo","package.json"));if(typeof installed?.version=="string")return{label:"installed node_modules/fimo",version:installed.version};let packageLockVersion=readPackageLockVersion(cwd);if(packageLockVersion)return{label:"package-lock.json",version:packageLockVersion};let exactSpecVersion=parseVersion2(fimoSpec);if(exactSpecVersion)return{label:"package.json dependency",version:exactSpecVersion.normalized};if(fimoSpec.startsWith("file:")){let fileVersion=readFileDependencyVersion(cwd,fimoSpec);if(fileVersion)return{label:"package.json file dependency target",version:fileVersion}}return null}__name(findRuntimeVersion,"findRuntimeVersion");function findFimoSpec(pkg){let dependenciesSpec=pkg?.dependencies?.fimo;if(typeof dependenciesSpec=="string"&&dependenciesSpec.trim())return dependenciesSpec.trim();let devDependenciesSpec=pkg?.devDependencies?.fimo;return typeof devDependenciesSpec=="string"&&devDependenciesSpec.trim()?devDependenciesSpec.trim():null}__name(findFimoSpec,"findFimoSpec");function readFileDependencyVersion(cwd,spec){let rawPath=spec.slice(5),packageRoot=path25.isAbsolute(rawPath)?rawPath:path25.resolve(cwd,rawPath),pkg=readPackageJson2(path25.join(packageRoot,"package.json"));return typeof pkg?.version=="string"?pkg.version:null}__name(readFileDependencyVersion,"readFileDependencyVersion");function readPackageLockVersion(cwd){try{let lock=JSON.parse(fs22.readFileSync(path25.join(cwd,"package-lock.json"),"utf8")),packagesVersion=lock.packages?.["node_modules/fimo"]?.version;if(typeof packagesVersion=="string")return packagesVersion;let dependencyVersion=lock.dependencies?.fimo?.version;return typeof dependencyVersion=="string"?dependencyVersion:null}catch{return null}}__name(readPackageLockVersion,"readPackageLockVersion");function readPackageJson2(filePath){try{return JSON.parse(fs22.readFileSync(filePath,"utf8"))}catch{return null}}__name(readPackageJson2,"readPackageJson");function isVersionOlder(version,minimum){let parsed=parseVersion2(version),parsedMinimum=parseVersion2(minimum);if(!parsed||!parsedMinimum)return!1;for(let key of["major","minor","patch"]){if(parsed[key]<parsedMinimum[key])return!0;if(parsed[key]>parsedMinimum[key])return!1}return!1}__name(isVersionOlder,"isVersionOlder");function parseVersion2(version){let match=version.trim().match(/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/);return match?{major:Number(match[1]),minor:Number(match[2]),patch:Number(match[3]),normalized:`${Number(match[1])}.${Number(match[2])}.${Number(match[3])}`}:null}__name(parseVersion2,"parseVersion");import{execFile as execFile3}from"node:child_process";import fs23 from"node:fs";import path26 from"node:path";import{promisify as promisify3}from"node:util";var execFileAsync3=promisify3(execFile3),LOCKFILE_MANAGERS2={"pnpm-lock.yaml":"pnpm","bun.lock":"bun","bun.lockb":"bun","yarn.lock":"yarn","package-lock.json":"npm"};async function inspectDependencyLifecycleScripts(cwd,execute=executeCommand){let selection=selectPackageManager(cwd);if(!selection)return{status:"warning",message:"Dependency lifecycle-script approval check skipped: no package manager could be selected from package.json or a lockfile."};if(!fs23.existsSync(path26.join(cwd,"node_modules")))return{status:"warning",message:`Dependency lifecycle-script approval check skipped: ${selection.name} has no installed node_modules state to inspect.`};if(selection.name==="yarn")return{status:"warning",message:"Dependency lifecycle-script approval check skipped: Yarn has no stable standalone blocked-script listing command."};if(selection.name==="npm")return{status:"warning",message:"Dependency lifecycle-script approval check skipped: this npm version has no supported read-only blocked-script listing command."};try{let versionResult=await execute(selection.name,["--version"],cwd);if(selection.version&&!matchesRequestedVersion(versionResult.stdout,selection.version))return{status:"warning",message:`Dependency lifecycle-script approval check skipped: the installed ${selection.name} version ${versionResult.stdout.trim()||"unknown"} does not match the exact packageManager pin ${selection.name}@${selection.version}.`};if(selection.name==="pnpm"&&!supportsPnpmIgnoredBuilds(versionResult.stdout))return{status:"warning",message:`Dependency lifecycle-script approval check skipped: pnpm ${versionResult.stdout.trim()||"unknown"} does not support pnpm ignored-builds inspection (requires pnpm 10.1+).`};let args=selection.name==="pnpm"?["ignored-builds"]:["pm","untrusted"],result=await execute(selection.name,args,cwd);return selection.name==="pnpm"?parsePnpmIgnoredBuilds(result.stdout):parseBunUntrusted(result.stdout)}catch(error){return{status:"warning",message:`Dependency lifecycle-script approval check skipped: could not inspect ${selection.name} install state (${error instanceof Error?error.message:String(error)}).`}}}__name(inspectDependencyLifecycleScripts,"inspectDependencyLifecycleScripts");function parsePnpmIgnoredBuilds(output){let lines=output.split(/\r?\n/),section=null,packages=[];for(let line of lines){let trimmed=line.trim();if(/^Automatically ignored builds during installation:/i.test(trimmed)){section="automatic";continue}if(/^Explicitly ignored package builds/i.test(trimmed)){section="explicit";continue}if(section!=="automatic"||trimmed.length===0)continue;let entry=/^\s{2,}(\S.*)$/.exec(line)?.[1]?.trim();if(!entry){section=null;continue}if(/^Cannot identify as no node_modules found$/i.test(entry))return{status:"warning",message:"Dependency lifecycle-script approval check skipped: pnpm could not identify blocked builds because node_modules was not found."};/^None$/i.test(entry)||packages.push(entry.replace(/^[-*]\s+/,""))}return packages.length>0?{status:"blocked",packageManager:"pnpm",packages:[...new Set(packages)]}:{status:"clean",packageManager:"pnpm"}}__name(parsePnpmIgnoredBuilds,"parsePnpmIgnoredBuilds");function parseBunUntrusted(output){let packages=output.split(/\r?\n/).map(line=>line.trim().replace(/^[-*]\s+/,"")).map(line=>/^\.\/node_modules\/(.+?)\s+@[^\s]+$/.exec(line)?.[1]??null).filter(packageName=>packageName!==null);return packages.length>0?{status:"blocked",packageManager:"bun",packages:[...new Set(packages)]}:{status:"clean",packageManager:"bun"}}__name(parseBunUntrusted,"parseBunUntrusted");function selectPackageManager(cwd){let packageJson=readPackageJson3(path26.join(cwd,"package.json")),exact=typeof packageJson?.packageManager=="string"?parseExactPackageManager(packageJson.packageManager):null;if(exact)return exact;let lockfiles=Object.entries(LOCKFILE_MANAGERS2).filter(([lockfile])=>fs23.existsSync(path26.join(cwd,lockfile)));return lockfiles.length!==1?null:{name:lockfiles[0][1]}}__name(selectPackageManager,"selectPackageManager");function parseExactPackageManager(value){let match=/^(pnpm|bun|npm|yarn)@(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)$/.exec(value.trim());return match?{name:match[1],version:match[2]}:null}__name(parseExactPackageManager,"parseExactPackageManager");function supportsPnpmIgnoredBuilds(version){let match=/^(\d+)\.(\d+)\.(\d+)/.exec(version.trim());if(!match)return!1;let major=Number(match[1]),minor=Number(match[2]);return major>10||major===10&&minor>=1}__name(supportsPnpmIgnoredBuilds,"supportsPnpmIgnoredBuilds");function matchesRequestedVersion(actual,requested){return actual.trim()===requested.split("+",1)[0]}__name(matchesRequestedVersion,"matchesRequestedVersion");async function executeCommand(command,args,cwd){let result=await execFileAsync3(command,args,{cwd,encoding:"utf8"});return{stdout:String(result.stdout),stderr:String(result.stderr)}}__name(executeCommand,"executeCommand");function readPackageJson3(filePath){try{return JSON.parse(fs23.readFileSync(filePath,"utf8"))}catch{return null}}__name(readPackageJson3,"readPackageJson");init_project_context();init_project();init_dist();import{existsSync as existsSync8,readFileSync as readFileSync8,readdirSync as readdirSync6,statSync as statSync3}from"node:fs";import{join as join9,resolve as resolve7}from"node:path";import fs24 from"node:fs/promises";import path27 from"node:path";async function pathExists(targetPath){try{return await fs24.access(targetPath),!0}catch{return!1}}__name(pathExists,"pathExists");async function removeDataFiles(dir){let entries2=await fs24.readdir(dir,{withFileTypes:!0});for(let entry of entries2){let fullPath=path27.join(dir,entry.name);entry.isDirectory()?await removeDataFiles(fullPath):entry.name.endsWith(".data")&&await fs24.rm(fullPath)}}__name(removeDataFiles,"removeDataFiles");async function exportStatic(options={}){let cwd=options.cwd??process.cwd(),clientDir=path27.resolve(cwd,"dist/client"),serverDir=path27.resolve(cwd,"dist/server");if(!await pathExists(clientDir))throw new Error("Missing dist/client output. Run `react-router build` first.");await pathExists(serverDir)&&await fs24.rm(serverDir,{recursive:!0,force:!0}),await removeDataFiles(clientDir),console.log("Static export complete.")}__name(exportStatic,"exportStatic");import{existsSync as existsSync7,readFileSync as readFileSync7,readdirSync as readdirSync5,statSync as statSync2}from"fs";import{join as join8}from"path";import{parseSync as parseSync2}from"oxc-parser";var SRC_DIR="src";function getLineAndColumn(code2,offset){let lines=code2.slice(0,offset).split(`
|
|
1204
|
+
Fix: keep one of them, or give them distinct paths \u2014 a locale segment does not make two routes distinct.`);continue}previous||byShape.set(shape,route)}return errors}__name(validateRouteShapeCollisions,"validateRouteShapeCollisions");function validateLocaleRouteCollisions(args){let errors=[],reservedPrefixes=new Set(args.i18n.locales.map(locale=>locale.toLowerCase()));for(let route of args.configRoutes){let first2=firstPathSegment(route.path);first2&&reservedPrefixes.has(first2.toLowerCase())&&errors.push(`Route "${route.id}" (${route.path}) uses reserved locale prefix "${first2}". Declare the locale as "/:locale/..." in ${args.configDisplayPath} and as ":locale?/..." in React Router so the default locale remains unprefixed.`)}if(!args.routesSourceUsesLegacyHelper)for(let route of args.fileRoutes){if(!route.path||route.isLayout)continue;let first2=firstPathSegment(route.path);first2&&normalizeLocaleSpelling(first2)===`:${FIMO_LOCALE_PARAM}`||(first2?.startsWith(":")||first2==="*")&&errors.push(`Route "${route.path}" is a top-level dynamic route in a multi-locale project. It can capture locale URLs like "/${args.i18n.locales[0]}". Put an explicit optional ":locale?" segment first in the React Router path, or keep this route outside the localized route boundary.`)}return errors}__name(validateLocaleRouteCollisions,"validateLocaleRouteCollisions");function sourceUsesLegacyFimoRoutes(routesFilePath){if(!fs21.existsSync(routesFilePath))return!1;let source=fs21.readFileSync(routesFilePath,"utf-8"),importedName=source.match(/import\s*\{(?<imports>[^}]*)\}\s*from\s*['"]fimo\/react-router\/routes['"]/s)?.groups?.imports?.split(",").map(specifier=>specifier.trim().match(/^fimoRoutes(?:\s+as\s+(?<alias>[A-Za-z_$][\w$]*))?$/)?.groups?.alias??(specifier.trim()==="fimoRoutes"?"fimoRoutes":null)).find(name=>!!name);return importedName?new RegExp(`\\b${importedName}\\s*\\(`).test(source):!1}__name(sourceUsesLegacyFimoRoutes,"sourceUsesLegacyFimoRoutes");function normalizeLocaleSpelling(routePath){return routePath.replace(`:${FIMO_LOCALE_PARAM}?`,`:${FIMO_LOCALE_PARAM}`)}__name(normalizeLocaleSpelling,"normalizeLocaleSpelling");function registrablePaths(route){let declared=normalizeLocaleSpelling(route.contract.path);return route.contract.localeParam?.optional?[declared,route.contract.canonicalPath]:[declared]}__name(registrablePaths,"registrablePaths");function firstPathSegment(routePath){return routePath.split("/").filter(Boolean)[0]??null}__name(firstPathSegment,"firstPathSegment");function isRecord2(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}__name(isRecord2,"isRecord");function normalizeFimoLocale(locale){let trimmed=locale?.trim();if(!trimmed)return null;let candidate=trimmed.replace(/_/g,"-");try{return Intl.getCanonicalLocales(candidate)[0]??null}catch{return null}}__name(normalizeFimoLocale,"normalizeFimoLocale");init_esm();import{existsSync as existsSync6,readFileSync as readFileSync6,readdirSync as readdirSync4}from"node:fs";import{basename as basename2,join as join7,resolve as resolve6}from"node:path";var SCHEMAS_REL2="src/schemas",FIELD_TYPES=new Set(FieldTypeSchema.options),RESERVED_FIELD_NAMES=new Set(RESERVED_CONTENT_FIELD_NAMES);function validateSchemas(options={}){let cwd=resolve6(options.cwd??process.cwd()),schemasDir=join7(cwd,SCHEMAS_REL2);if(!existsSync6(schemasDir))return{errors:[],schemasChecked:0};let files=readdirSync4(schemasDir).filter(f=>f.endsWith(".json")).sort(),errors=[],schemaUids=new Set;for(let fileName of files){let schema=readSchemaObject(join7(schemasDir,fileName));schema&&typeof schema.uid=="string"&&schemaUids.add(schema.uid)}for(let fileName of files){let file=join7(SCHEMAS_REL2,fileName);errors.push(...validateSchemaFile(join7(schemasDir,fileName),file,schemaUids))}return{errors,schemasChecked:files.length}}__name(validateSchemas,"validateSchemas");function readSchemaObject(absolutePath){let schema;try{schema=JSON.parse(readFileSync6(absolutePath,"utf-8"))}catch{return null}return typeof schema=="object"&&schema!==null&&!Array.isArray(schema)?schema:null}__name(readSchemaObject,"readSchemaObject");function validateSchemaFile(absolutePath,file,schemaUids=new Set){let schema;try{schema=JSON.parse(readFileSync6(absolutePath,"utf-8"))}catch(error){return[{rule:"schemas/parse",message:`Invalid JSON: ${error instanceof Error?error.message:String(error)}`,file}]}if(typeof schema!="object"||schema===null||Array.isArray(schema))return[{rule:"schemas/shape",message:"Schema must be a JSON object.",file}];let errors=[],{uid,name,fields,i18n,isSingleton,groups}=schema,expectedUid=basename2(file,".json");if(typeof uid!="string"||uid.length===0?errors.push({rule:"schemas/uid",message:`Missing "uid". Set it to the file name: "${expectedUid}".`,file}):uid!==expectedUid?errors.push({rule:"schemas/uid",message:`"uid" is "${uid}" but the file is ${expectedUid}.json \u2014 they must match.`,file}):CONTENT_TYPE_NAME_PATTERN.test(uid)||errors.push({rule:"schemas/type-name",message:`"uid" must use ${CONTENT_TYPE_NAME_PATTERN_DESCRIPTION}.`,file}),(typeof name!="string"||name.length===0)&&errors.push({rule:"schemas/name",message:'Missing "name" (the human-readable label).',file}),isSingleton!==void 0&&typeof isSingleton!="boolean"&&errors.push({rule:"schemas/singleton",message:'"isSingleton" must be a boolean when provided.',file}),i18n!==void 0)if(typeof i18n!="object"||i18n===null||Array.isArray(i18n))errors.push({rule:"schemas/i18n",message:'"i18n" must be an object like { "enabled": false }.',file});else{let keys=Object.keys(i18n);(keys.length!==1||keys[0]!=="enabled"||typeof i18n.enabled!="boolean")&&errors.push({rule:"schemas/i18n",message:'"i18n" only supports one boolean option: { "enabled": true | false }.',file})}let groupIds=new Set;if(groups!==void 0)if(!Array.isArray(groups))errors.push({rule:"schemas/groups",message:'"groups" must be an array.',file});else{let defaults=0;for(let[index2,group]of groups.entries()){let parsed=ContentFieldGroupSchema.safeParse(group);if(!parsed.success){errors.push({rule:"schemas/groups",message:`Group at index ${index2} is invalid: ${parsed.error.issues[0]?.message??"invalid group"}.`,file});continue}groupIds.has(parsed.data.id)&&errors.push({rule:"schemas/groups",message:`Group ID "${parsed.data.id}" is declared more than once.`,file}),groupIds.add(parsed.data.id),parsed.data.default&&(defaults+=1)}defaults>1&&errors.push({rule:"schemas/groups",message:"At most one group may be the default.",file})}if(typeof fields!="object"||fields===null||Array.isArray(fields))return errors.push({rule:"schemas/fields",message:'Missing "fields" object.',file}),errors;let parsedFields={};for(let[fieldName,definition]of Object.entries(fields)){if(!CONTENT_FIELD_NAME_PATTERN.test(fieldName)){errors.push({rule:"schemas/field-name",message:`Field "${fieldName}" must use ${CONTENT_FIELD_NAME_PATTERN_DESCRIPTION}.`,file});continue}if(RESERVED_FIELD_NAMES.has(fieldName)){errors.push({rule:"schemas/reserved-field",message:`Field "${fieldName}" is reserved entry metadata \u2014 the platform manages it automatically. Remove it from the schema${fieldName==="slug"?" (set slug inside entry data on create instead)":""}.`,file});continue}if(typeof definition!="object"||definition===null||Array.isArray(definition)){errors.push({rule:"schemas/field-shape",message:`Field "${fieldName}" must be an object like { "type": "string" }.`,file});continue}let{type}=definition,memberships=Array.isArray(definition.group)?definition.group:definition.group===void 0?[]:[definition.group];new Set(memberships).size!==memberships.length&&errors.push({rule:"schemas/field-group",message:`Field "${fieldName}" lists the same group more than once.`,file});for(let membership of memberships)(typeof membership!="string"||!groupIds.has(membership))&&errors.push({rule:"schemas/field-group",message:`Field "${fieldName}" references unknown group "${String(membership)}".`,file});if((typeof type!="string"||!FIELD_TYPES.has(type))&&errors.push({rule:"schemas/field-type",message:`Field "${fieldName}" has unsupported type "${String(type)}". Allowed: ${[...FIELD_TYPES].join(", ")}.`,file}),"localized"in definition&&errors.push({rule:"schemas/field-i18n",message:`Field "${fieldName}": "localized" is not supported. Use "i18n": false to share one value across locales.`,file}),"i18n"in definition&&(typeof definition.i18n!="boolean"?errors.push({rule:"schemas/field-i18n",message:`Field "${fieldName}": "i18n" must be true or false.`,file}):type==="blocks"&&errors.push({rule:"schemas/field-i18n",message:`Field "${fieldName}": "i18n" is not supported on blocks fields.`,file})),type==="blocks"){let parsed2=ContentFieldDefinitionSchema.safeParse(definition);if(!parsed2.success){for(let issue of parsed2.error.issues)errors.push({rule:"schemas/structured-content-shape",message:`Field "${fieldName}"${issue.path.length>0?` at ${issue.path.join(".")}`:""}: ${issue.message}`,file});continue}parsedFields[fieldName]=parsed2.data,walkContentFields({[fieldName]:parsed2.data},({field,path:path52,structuredDepth,insideStructuredContent})=>{if(insideStructuredContent&&field.group!==void 0&&errors.push({rule:"schemas/field-group",message:`Field "${path52.join(".")}" cannot use "group" inside blocks.`,file}),field.type==="blocks"&&structuredDepth>=MAX_STRUCTURED_CONTENT_DEPTH&&errors.push({rule:"schemas/structured-content-depth",message:`Field "${path52.join(".")}" exceeds the ${MAX_STRUCTURED_CONTENT_DEPTH}-level blocks limit.`,file}),!(!insideStructuredContent||field.type!=="reference")){if(field.targets){errors.push({rule:"schemas/structured-content-reference",message:`Reference field "${path52.join(".")}" must use one fixed "target" inside blocks.`,file});return}field.target&&schemaUids.size>0&&!schemaUids.has(field.target)&&errors.push({rule:"schemas/reference-target",message:`Reference field "${path52.join(".")}" targets unknown schema "${field.target}".`,file})}});continue}let parsed=ContentFieldDefinitionSchema.safeParse(definition);if(parsed.success&&(parsedFields[fieldName]=parsed.data),type==="reference"){let{target,targets,many}=definition;if(targets!==void 0&&target!==void 0)errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" declares both "target" and "targets" \u2014 a field is fixed or polymorphic, never both.`,file});else if(targets!==void 0){let targetList=Array.isArray(targets)?targets:null;if(!targetList||targetList.length===0||new Set(targetList).size!==targetList.length)errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" must declare "targets" as a non-empty array of unique content types.`,file});else for(let candidate of targetList)typeof candidate!="string"||!CONTENT_TYPE_NAME_PATTERN.test(candidate)?errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" has an invalid entry in "targets".`,file}):schemaUids.size>0&&!schemaUids.has(candidate)&&errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" targets unknown schema "${candidate}".`,file})}else typeof target!="string"||!CONTENT_TYPE_NAME_PATTERN.test(target)?errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" must declare a valid "target" content type (or "targets" for a polymorphic field).`,file}):schemaUids.size>0&&!schemaUids.has(target)&&errors.push({rule:"schemas/reference-target",message:`Reference field "${fieldName}" targets unknown schema "${target}".`,file});many!==void 0&&typeof many!="boolean"&&errors.push({rule:"schemas/reference-many",message:`Reference field "${fieldName}" must use a boolean "many" value.`,file})}else for(let referenceOnlyKey of["target","targets","many"])referenceOnlyKey in definition&&errors.push({rule:"schemas/reference-shape",message:`Field "${fieldName}": "${referenceOnlyKey}" is only supported on reference fields.`,file})}for(let problem of collectConditionProblems(parsedFields))errors.push({rule:"schemas/conditions",message:problem.message,file});return errors}__name(validateSchemaFile,"validateSchemaFile");init_api();init_config();init_auth_errors();init_project();import fs22 from"node:fs";import path25 from"node:path";var MIN_DB_LABELS_FIMO_VERSION="0.2.5",MIN_DB_LABELS_TEMPLATE_VERSION=4;function getDbLabelsRuntimeWarning(cwd){if(readExplicitConfigVersion(cwd)<MIN_DB_LABELS_TEMPLATE_VERSION)return null;let projectPackage=readPackageJson2(path25.join(cwd,"package.json")),fimoSpec=findFimoSpec(projectPackage);if(!fimoSpec)return buildWarning("package.json has no fimo dependency");let source=findRuntimeVersion(cwd,fimoSpec);return!source||!isVersionOlder(source.version,MIN_DB_LABELS_FIMO_VERSION)?null:buildWarning(`${source.label} is fimo@${source.version}`)}__name(getDbLabelsRuntimeWarning,"getDbLabelsRuntimeWarning");function readExplicitConfigVersion(cwd){try{let raw=JSON.parse(fs22.readFileSync(resolveProjectConfigPath(cwd),"utf8")),parsed=Number.parseInt(String(raw.version),10);return Number.isFinite(parsed)&&parsed>0?parsed:0}catch{return 0}}__name(readExplicitConfigVersion,"readExplicitConfigVersion");function buildWarning(subject){return[`CRITICAL: ${subject}, but DB-owned labels require fimo >= ${MIN_DB_LABELS_FIMO_VERSION}.`,"Labels changed with `fimo labels` or Fimo Studio may not render in this project until the app runtime is upgraded.","Run `npm install fimo@latest` (or your package manager equivalent), then run `fimo validate` again."].join(" ")}__name(buildWarning,"buildWarning");function findRuntimeVersion(cwd,fimoSpec){let installed=readPackageJson2(path25.join(cwd,"node_modules","fimo","package.json"));if(typeof installed?.version=="string")return{label:"installed node_modules/fimo",version:installed.version};let packageLockVersion=readPackageLockVersion(cwd);if(packageLockVersion)return{label:"package-lock.json",version:packageLockVersion};let exactSpecVersion=parseVersion2(fimoSpec);if(exactSpecVersion)return{label:"package.json dependency",version:exactSpecVersion.normalized};if(fimoSpec.startsWith("file:")){let fileVersion=readFileDependencyVersion(cwd,fimoSpec);if(fileVersion)return{label:"package.json file dependency target",version:fileVersion}}return null}__name(findRuntimeVersion,"findRuntimeVersion");function findFimoSpec(pkg){let dependenciesSpec=pkg?.dependencies?.fimo;if(typeof dependenciesSpec=="string"&&dependenciesSpec.trim())return dependenciesSpec.trim();let devDependenciesSpec=pkg?.devDependencies?.fimo;return typeof devDependenciesSpec=="string"&&devDependenciesSpec.trim()?devDependenciesSpec.trim():null}__name(findFimoSpec,"findFimoSpec");function readFileDependencyVersion(cwd,spec){let rawPath=spec.slice(5),packageRoot=path25.isAbsolute(rawPath)?rawPath:path25.resolve(cwd,rawPath),pkg=readPackageJson2(path25.join(packageRoot,"package.json"));return typeof pkg?.version=="string"?pkg.version:null}__name(readFileDependencyVersion,"readFileDependencyVersion");function readPackageLockVersion(cwd){try{let lock=JSON.parse(fs22.readFileSync(path25.join(cwd,"package-lock.json"),"utf8")),packagesVersion=lock.packages?.["node_modules/fimo"]?.version;if(typeof packagesVersion=="string")return packagesVersion;let dependencyVersion=lock.dependencies?.fimo?.version;return typeof dependencyVersion=="string"?dependencyVersion:null}catch{return null}}__name(readPackageLockVersion,"readPackageLockVersion");function readPackageJson2(filePath){try{return JSON.parse(fs22.readFileSync(filePath,"utf8"))}catch{return null}}__name(readPackageJson2,"readPackageJson");function isVersionOlder(version,minimum){let parsed=parseVersion2(version),parsedMinimum=parseVersion2(minimum);if(!parsed||!parsedMinimum)return!1;for(let key of["major","minor","patch"]){if(parsed[key]<parsedMinimum[key])return!0;if(parsed[key]>parsedMinimum[key])return!1}return!1}__name(isVersionOlder,"isVersionOlder");function parseVersion2(version){let match=version.trim().match(/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/);return match?{major:Number(match[1]),minor:Number(match[2]),patch:Number(match[3]),normalized:`${Number(match[1])}.${Number(match[2])}.${Number(match[3])}`}:null}__name(parseVersion2,"parseVersion");import{execFile as execFile3}from"node:child_process";import fs23 from"node:fs";import path26 from"node:path";import{promisify as promisify3}from"node:util";var execFileAsync3=promisify3(execFile3),LOCKFILE_MANAGERS2={"pnpm-lock.yaml":"pnpm","bun.lock":"bun","bun.lockb":"bun","yarn.lock":"yarn","package-lock.json":"npm"};async function inspectDependencyLifecycleScripts(cwd,execute=executeCommand){let selection=selectPackageManager(cwd);if(!selection)return{status:"warning",message:"Dependency lifecycle-script approval check skipped: no package manager could be selected from package.json or a lockfile."};if(!fs23.existsSync(path26.join(cwd,"node_modules")))return{status:"warning",message:`Dependency lifecycle-script approval check skipped: ${selection.name} has no installed node_modules state to inspect.`};if(selection.name==="yarn")return{status:"warning",message:"Dependency lifecycle-script approval check skipped: Yarn has no stable standalone blocked-script listing command."};if(selection.name==="npm")return{status:"warning",message:"Dependency lifecycle-script approval check skipped: this npm version has no supported read-only blocked-script listing command."};try{let versionResult=await execute(selection.name,["--version"],cwd);if(selection.version&&!matchesRequestedVersion(versionResult.stdout,selection.version))return{status:"warning",message:`Dependency lifecycle-script approval check skipped: the installed ${selection.name} version ${versionResult.stdout.trim()||"unknown"} does not match the exact packageManager pin ${selection.name}@${selection.version}.`};if(selection.name==="pnpm"&&!supportsPnpmIgnoredBuilds(versionResult.stdout))return{status:"warning",message:`Dependency lifecycle-script approval check skipped: pnpm ${versionResult.stdout.trim()||"unknown"} does not support pnpm ignored-builds inspection (requires pnpm 10.1+).`};let args=selection.name==="pnpm"?["ignored-builds"]:["pm","untrusted"],result=await execute(selection.name,args,cwd);return selection.name==="pnpm"?parsePnpmIgnoredBuilds(result.stdout):parseBunUntrusted(result.stdout)}catch(error){return{status:"warning",message:`Dependency lifecycle-script approval check skipped: could not inspect ${selection.name} install state (${error instanceof Error?error.message:String(error)}).`}}}__name(inspectDependencyLifecycleScripts,"inspectDependencyLifecycleScripts");function parsePnpmIgnoredBuilds(output){let lines=output.split(/\r?\n/),section=null,packages=[];for(let line of lines){let trimmed=line.trim();if(/^Automatically ignored builds during installation:/i.test(trimmed)){section="automatic";continue}if(/^Explicitly ignored package builds/i.test(trimmed)){section="explicit";continue}if(section!=="automatic"||trimmed.length===0)continue;let entry=/^\s{2,}(\S.*)$/.exec(line)?.[1]?.trim();if(!entry){section=null;continue}if(/^Cannot identify as no node_modules found$/i.test(entry))return{status:"warning",message:"Dependency lifecycle-script approval check skipped: pnpm could not identify blocked builds because node_modules was not found."};/^None$/i.test(entry)||packages.push(entry.replace(/^[-*]\s+/,""))}return packages.length>0?{status:"blocked",packageManager:"pnpm",packages:[...new Set(packages)]}:{status:"clean",packageManager:"pnpm"}}__name(parsePnpmIgnoredBuilds,"parsePnpmIgnoredBuilds");function parseBunUntrusted(output){let packages=output.split(/\r?\n/).map(line=>line.trim().replace(/^[-*]\s+/,"")).map(line=>/^\.\/node_modules\/(.+?)\s+@[^\s]+$/.exec(line)?.[1]??null).filter(packageName=>packageName!==null);return packages.length>0?{status:"blocked",packageManager:"bun",packages:[...new Set(packages)]}:{status:"clean",packageManager:"bun"}}__name(parseBunUntrusted,"parseBunUntrusted");function selectPackageManager(cwd){let packageJson=readPackageJson3(path26.join(cwd,"package.json")),exact=typeof packageJson?.packageManager=="string"?parseExactPackageManager(packageJson.packageManager):null;if(exact)return exact;let lockfiles=Object.entries(LOCKFILE_MANAGERS2).filter(([lockfile])=>fs23.existsSync(path26.join(cwd,lockfile)));return lockfiles.length!==1?null:{name:lockfiles[0][1]}}__name(selectPackageManager,"selectPackageManager");function parseExactPackageManager(value){let match=/^(pnpm|bun|npm|yarn)@(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)$/.exec(value.trim());return match?{name:match[1],version:match[2]}:null}__name(parseExactPackageManager,"parseExactPackageManager");function supportsPnpmIgnoredBuilds(version){let match=/^(\d+)\.(\d+)\.(\d+)/.exec(version.trim());if(!match)return!1;let major=Number(match[1]),minor=Number(match[2]);return major>10||major===10&&minor>=1}__name(supportsPnpmIgnoredBuilds,"supportsPnpmIgnoredBuilds");function matchesRequestedVersion(actual,requested){return actual.trim()===requested.split("+",1)[0]}__name(matchesRequestedVersion,"matchesRequestedVersion");async function executeCommand(command,args,cwd){let result=await execFileAsync3(command,args,{cwd,encoding:"utf8"});return{stdout:String(result.stdout),stderr:String(result.stderr)}}__name(executeCommand,"executeCommand");function readPackageJson3(filePath){try{return JSON.parse(fs23.readFileSync(filePath,"utf8"))}catch{return null}}__name(readPackageJson3,"readPackageJson");init_project_context();init_project();init_dist();import{existsSync as existsSync8,readFileSync as readFileSync8,readdirSync as readdirSync6,statSync as statSync3}from"node:fs";import{join as join9,resolve as resolve7}from"node:path";import fs24 from"node:fs/promises";import path27 from"node:path";async function pathExists(targetPath){try{return await fs24.access(targetPath),!0}catch{return!1}}__name(pathExists,"pathExists");async function removeDataFiles(dir){let entries2=await fs24.readdir(dir,{withFileTypes:!0});for(let entry of entries2){let fullPath=path27.join(dir,entry.name);entry.isDirectory()?await removeDataFiles(fullPath):entry.name.endsWith(".data")&&await fs24.rm(fullPath)}}__name(removeDataFiles,"removeDataFiles");async function exportStatic(options={}){let cwd=options.cwd??process.cwd(),clientDir=path27.resolve(cwd,"dist/client"),serverDir=path27.resolve(cwd,"dist/server");if(!await pathExists(clientDir))throw new Error("Missing dist/client output. Run `react-router build` first.");await pathExists(serverDir)&&await fs24.rm(serverDir,{recursive:!0,force:!0}),await removeDataFiles(clientDir),console.log("Static export complete.")}__name(exportStatic,"exportStatic");import{existsSync as existsSync7,readFileSync as readFileSync7,readdirSync as readdirSync5,statSync as statSync2}from"fs";import{createRequire as createRequire2}from"node:module";import{join as join8}from"path";var require3=createRequire2(import.meta.url),parseSync2;function parse7(filePath,code2){return parseSync2??=require3("oxc-parser").parseSync,parseSync2(filePath,code2)}__name(parse7,"parse");var SRC_DIR="src";function getLineAndColumn(code2,offset){let lines=code2.slice(0,offset).split(`
|
|
1205
1205
|
`);return{line:lines.length,column:lines[lines.length-1].length+1}}__name(getLineAndColumn,"getLineAndColumn");function isStringLiteral(node){return node?node.type==="Literal"&&typeof node.value=="string"||node.type==="TemplateLiteral"&&(!node.expressions||node.expressions.length===0):!1}__name(isStringLiteral,"isStringLiteral");var DYNAMIC_KEY_MESSAGE=`Dynamic translation key detected. The first argument to t() must be a string literal, not a variable or expression.
|
|
1206
1206
|
|
|
1207
1207
|
This breaks source tracking for inline editing. Translation keys must be statically analyzable.
|
|
@@ -1223,7 +1223,7 @@ This breaks source tracking for inline editing. Translation keys must be statica
|
|
|
1223
1223
|
|
|
1224
1224
|
\u2705 FIX:
|
|
1225
1225
|
t('nav.home')
|
|
1226
|
-
fimo labels set nav.home --value "Home"`;function lintTranslationKeys(filePath,code2){let errors=[],ast;try{ast=
|
|
1226
|
+
fimo labels set nav.home --value "Home"`;function lintTranslationKeys(filePath,code2){let errors=[],ast;try{ast=parse7(filePath,code2).program}catch{return errors}function visit2(node){if(!(!node||typeof node!="object")){if(node.type==="CallExpression"&&node.callee?.type==="Identifier"&&node.callee.name==="t"&&node.arguments?.length>0){if(!isStringLiteral(node.arguments[0])){let{line,column}=getLineAndColumn(code2,node.start);errors.push({file:filePath,line,column,rule:"translation-keys",message:DYNAMIC_KEY_MESSAGE,code:code2.slice(node.start,node.end)})}if(node.arguments.length>1){let{line,column}=getLineAndColumn(code2,node.start);errors.push({file:filePath,line,column,rule:"labels/no-inline-default",message:INLINE_DEFAULT_MESSAGE,code:code2.slice(node.start,node.end)})}}for(let key of Object.keys(node)){let child=node[key];Array.isArray(child)?child.forEach(visit2):child&&typeof child=="object"&&visit2(child)}}}return __name(visit2,"visit"),visit2(ast),errors}__name(lintTranslationKeys,"lintTranslationKeys");function findReactFiles(dir){let files=[];if(!existsSync7(dir))return files;for(let entry of readdirSync5(dir)){let fullPath=join8(dir,entry);if(statSync2(fullPath).isDirectory()){if(entry==="ui"||entry==="node_modules"||entry==="fimo")continue;files.push(...findReactFiles(fullPath))}else(entry.endsWith(".tsx")||entry.endsWith(".jsx"))&&files.push(fullPath)}return files}__name(findReactFiles,"findReactFiles");var isStandalone=process.argv[1]?.includes("lint-translation-keys");if(isStandalone){let reactFiles=[...findReactFiles(join8(SRC_DIR,"components")),...findReactFiles(join8(SRC_DIR,"pages"))],errors=[];for(let file of reactFiles){let code2=readFileSync7(file,"utf-8");errors.push(...lintTranslationKeys(file,code2))}if(errors.length>0){console.error(`
|
|
1227
1227
|
\u{1F6A8} Dynamic translation keys detected!
|
|
1228
1228
|
`),console.error("\u2550".repeat(80));for(let error of errors)console.error(`
|
|
1229
1229
|
\u{1F4CD} ${error.file}:${error.line}:${error.column}
|