@kelceyp/caw-server 0.0.20 → 0.0.21

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/main.js CHANGED
@@ -458,7 +458,7 @@ globstar while`,$,X,K,w,T),this.matchOne($.slice(X),K.slice(w),q))return this.de
458
458
  CREATE UNIQUE INDEX entities_name_unique
459
459
  ON entities(store_id, parent_folder_id, name)
460
460
  WHERE deleted_at IS NULL AND name IS NOT NULL
461
- `.execute($),await $.schema.createIndex("entities_store_id_idx").on("entities").columns(["store_id"]).execute(),await $.schema.createIndex("entities_parent_folder_id_idx").on("entities").columns(["parent_folder_id"]).execute(),await $.schema.createTable("folders").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).execute(),await $.schema.createTable("documents").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).addColumn("published_version_id","integer",(K)=>K.references("document_versions.id")).execute(),await $.schema.createTable("document_drafts").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).addColumn("content","text").addColumn("updated_at","text",(K)=>K.notNull()).execute(),await $.schema.createTable("document_versions").addColumn("id","integer",(K)=>K.primaryKey().autoIncrement()).addColumn("entity_id","integer",(K)=>K.notNull().references("entities.id").onDelete("cascade")).addColumn("version_number","integer",(K)=>K.notNull()).addColumn("content","text").addColumn("published_at","text",(K)=>K.notNull()).execute(),await $.schema.createIndex("document_versions_entity_version_unique").on("document_versions").columns(["entity_id","version_number"]).unique().execute(),await $.schema.createIndex("document_versions_entity_id_idx").on("document_versions").columns(["entity_id"]).execute(),await $.schema.createTable("document_edit_state").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).addColumn("client_id","text",(K)=>K.notNull()).addColumn("started_at","text",(K)=>K.notNull()).addColumn("last_activity_at","text",(K)=>K.notNull()).execute(),await $.schema.createTable("field_definitions").addColumn("id","integer",(K)=>K.primaryKey().autoIncrement()).addColumn("store_id","integer",(K)=>K.notNull().references("stores.id").onDelete("cascade")).addColumn("object_id","text",(K)=>K.notNull()).addColumn("entity_type_id","integer",(K)=>K.notNull().references("entity_types.id")).addColumn("type_code","text",(K)=>K.notNull()).addColumn("seq","integer",(K)=>K.notNull()).addColumn("owner_entity_id","integer",(K)=>K.references("entities.id").onDelete("cascade")).addColumn("name","text",(K)=>K.notNull()).addColumn("label","text").addColumn("description","text").addColumn("primitive_type","text",(K)=>K.notNull()).addColumn("required","integer",(K)=>K.notNull().defaultTo(0)).addColumn("multiplicity","text",(K)=>K.notNull().defaultTo("single")).addColumn("config","text").addColumn("is_system","integer",(K)=>K.notNull().defaultTo(0)).addColumn("ordinal","integer").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await $.schema.createIndex("idx_field_def_object_id_unique").on("field_definitions").columns(["store_id","object_id"]).unique().execute(),await $.schema.createIndex("idx_field_def_store_type_seq").on("field_definitions").columns(["store_id","type_code","seq"]).unique().execute(),await $.schema.createIndex("idx_field_def_owner").on("field_definitions").columns(["owner_entity_id"]).execute(),await $.schema.createIndex("idx_field_def_owner_name").on("field_definitions").columns(["owner_entity_id","name"]).execute(),await $.schema.createTable("field_values").addColumn("id","integer",(K)=>K.primaryKey().autoIncrement()).addColumn("entity_id","integer",(K)=>K.notNull().references("entities.id").onDelete("cascade")).addColumn("field_definition_id","integer",(K)=>K.notNull().references("field_definitions.id").onDelete("cascade")).addColumn("value","text").addColumn("ordinal","integer").addColumn("updated_at","text",(K)=>K.notNull()).execute(),await $.schema.createIndex("idx_field_values_entity").on("field_values").columns(["entity_id"]).execute(),await $.schema.createIndex("idx_field_values_entity_def").on("field_values").columns(["entity_id","field_definition_id"]).execute()};var n46=()=>new Date().toISOString(),M1=n46;var o46=[{code:"f",name:"Folder",subtype:null},{code:"f",name:"Document Root Folder",subtype:"root_d"},{code:"f",name:"Template Root Folder",subtype:"root_t"},{code:"d",name:"Document",subtype:null},{code:"t",name:"Template",subtype:null},{code:"n",name:"field_definition",subtype:null}],Ue=async($)=>{return(await $.selectFrom("entity_types").select("id").limit(1).execute()).length>0},a46=async($,K,q=null)=>{return(await $.selectFrom("entity_types").select("id").where("code","=",K).where((z)=>q?z("subtype","=",q):z("subtype","is",null)).executeTakeFirstOrThrow()).id},Be=async($,K,q,Y)=>{let z=M1(),P=await a46($,"f",Y==="d"?"root_d":"root_t");if(!await $.selectFrom("sequences").select("next_value").where("scope_type","=","store").where("scope_id","=",K).where("type_code","=","f").executeTakeFirst())await $.insertInto("sequences").values({scope_type:"store",scope_id:K,type_code:"f",next_value:1}).execute();let H=await $.selectFrom("sequences").select("next_value").where("scope_type","=","store").where("scope_id","=",K).where("type_code","=","f").executeTakeFirst();await $.updateTable("sequences").set((w)=>({next_value:w("next_value","+",1)})).where("scope_type","=","store").where("scope_id","=",K).where("type_code","=","f").execute();let Z=`${q}f${H.next_value}`,O=await $.insertInto("entities").values({store_id:K,object_id:Z,entity_type_id:P,type_code:"f",seq:H.next_value,parent_folder_id:null,parent_object_id:null,name:null,created_at:z,updated_at:z}).returning("id").executeTakeFirstOrThrow();await $.insertInto("folders").values({entity_id:O.id}).execute();let X=Y==="d"?"document":"template";return O.id},r46=async($)=>{for(let K of o46)await $.insertInto("entity_types").values(K).execute()},s46=async($)=>{let K=await $.selectFrom("sequences").select("next_value").where("scope_type","=","global").where("scope_id","is",null).where("type_code","=","s").executeTakeFirstOrThrow();await $.updateTable("sequences").set((J)=>({next_value:J("next_value","+",1)})).where("scope_type","=","global").where("scope_id","is",null).where("type_code","=","s").execute();let q=`S${K.next_value}`,Y=M1(),z=await $.insertInto("stores").values({id:K.next_value,object_id:q,type:"local",code:"B",name:"Shared",created_at:Y,updated_at:Y}).returning("id").executeTakeFirstOrThrow();await Be($,z.id,"B","d"),await Be($,z.id,"B","t")},le=async($)=>{await r46($),await $.insertInto("sequences").values([{scope_type:"global",scope_id:null,type_code:"s",next_value:1},{scope_type:"global",scope_id:null,type_code:"p",next_value:1}]).execute(),await s46($)};var x0=H1(ie(),1),t46=($,K)=>{if($)throw new Error(K)},Qe=($,K)=>{if(x0.default.null($)||x0.default.undefined($))throw new Error(`${K} is required`)},e46=($,K)=>{if(Qe($,K),x0.default.empty($))throw new Error(`${K} cannot be empty`)},$36=($,K,...q)=>{if($)throw K(...q)},K36={condition:t46,nullish:Qe,empty:e46,factory:$36},r=K36;var UW6=typeof Bun!=="undefined",lW6=async($)=>{if(UW6){let{Database:K}=await import("bun:sqlite"),{BunSqliteDialect:q}=await Promise.resolve().then(() => H1(NJ8(),1)),Y=new K($);return Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA foreign_keys = ON"),new W5({dialect:new q({database:Y})})}else{let q=new(await import("better-sqlite3")).default($);return q.pragma("journal_mode = WAL"),q.pragma("foreign_keys = ON"),new W5({dialect:new kS({database:q})})}},FW6=($,K)=>{if(!pW6($)){if(!K)throw new Error(`Database file not found: ${$}`);cW6(BW6($),{recursive:!0})}},iW6=async($,K)=>{if(!await pe($)){if(!K)throw new Error("Database schema not found");await ce($)}},QW6=async($,K)=>{if(!await Ue($)){if(!K)throw new Error("Database seed data not found");await le($)}},dW6=($)=>{let{kyselyFactory:K=lW6}=$??{};return Object.freeze({getDb:async(Y,z)=>{if(r.nullish(Y,"databaseFilepath"),Y!==":memory:")FW6(Y,z);let J=await K(Y);return await iW6(J,z),await QW6(J,z),J}})},hJ8={create:dW6};var nW6=($)=>{let{id:K,name:q,createdAt:Y,updatedAt:z}=$,Z=Object.freeze({getObjectId:()=>K,getName:()=>q,getCreatedAt:()=>Y,getUpdatedAt:()=>z}),w=Object.freeze({setName:(T)=>{q=T},setUpdatedAt:(T)=>{z=T}});return{entityFns:Z,mutationFns:w}},w5=Object.freeze({create:nW6});var oW6=($)=>{let{id:K,name:q,path:Y,createdAt:z,updatedAt:J}=$,{entityFns:P,mutationFns:W}=w5.create({id:K,name:q,createdAt:z,updatedAt:J}),H=()=>Y,O=Object.freeze({...P,getPath:H,toJSON:()=>({objectId:P.getObjectId(),name:P.getName(),path:H(),createdAt:P.getCreatedAt(),updatedAt:P.getUpdatedAt()})}),w=Object.freeze({...W,setPath:(T)=>{Y=T}});return{entity:O,mutationApi:w}},CJ8=Object.freeze({create:oW6});var aW6=($,K,q)=>{return Object.freeze({getEntity:()=>$,getMutationApi:()=>K,getPk:()=>q})},T6=Object.freeze({create:aW6});var rW6=async($,K,q,Y)=>{if(!await $.selectFrom("sequences").select("next_value").where("scope_type","=",K).where("scope_id",q===null?"is":"=",q).where("type_code","=",Y).executeTakeFirst())await $.insertInto("sequences").values({scope_type:K,scope_id:q,type_code:Y,next_value:1}).execute();let J=await $.selectFrom("sequences").select("next_value").where("scope_type","=",K).where("scope_id",q===null?"is":"=",q).where("type_code","=",Y).executeTakeFirstOrThrow();return await $.updateTable("sequences").set((P)=>({next_value:P("next_value","+",1)})).where("scope_type","=",K).where("scope_id",q===null?"is":"=",q).where("type_code","=",Y).execute(),J.next_value},v9=Object.freeze({nextSeq:rW6});var sW6=($)=>$.object_id,RJ8=($)=>{if(!$||$.length<2||$[0]!=="P")return null;let K=parseInt($.slice(1),10);return isNaN(K)?null:K},_f=($)=>{let K=sW6($),q=$.id,{entity:Y,mutationApi:z}=CJ8.create({id:K,name:$.name,path:$.path,createdAt:$.created_at,updatedAt:$.updated_at});return{entity:Y,mutationApi:z,id:K,pk:q}},tW6=()=>{let $=new Map;return Object.freeze({createProject:async(P,W,{name:H,path:Z},O)=>{let X=M1(),w=await v9.nextSeq(P,"global",null,"p"),T=`P${w}`,G=await P.insertInto("projects").values({id:w,object_id:T,name:H,path:Z,created_at:X,updated_at:X}).returningAll().executeTakeFirstOrThrow(),{entity:v,mutationApi:f,id:V,pk:h}=_f(G);return O(()=>{$.set(V,T6.create(v,f,h))}),v},readProject:async(P,W,H)=>{let Z=$.get(H);if(Z)return Z.getEntity();let O=RJ8(H);if(O===null)return null;let X=await P.selectFrom("projects").selectAll().where("id","=",O).executeTakeFirst();if(!X)return null;let{entity:w,mutationApi:T,id:G,pk:v}=_f(X);return $.set(G,T6.create(w,T,v)),w},readProjectByObjectId:async(P,W,H)=>{let Z=$.get(H);if(Z)return Z.getEntity();let O=RJ8(H);if(O===null)return null;let X=await P.selectFrom("projects").selectAll().where("id","=",O).executeTakeFirst();if(!X)return null;let{entity:w,mutationApi:T,id:G,pk:v}=_f(X);return $.set(G,T6.create(w,T,v)),w},readProjectByPath:async(P,W,H)=>{let Z=await P.selectFrom("projects").selectAll().where("path","=",H).executeTakeFirst();if(!Z)return null;let{entity:O,mutationApi:X,id:w,pk:T}=_f(Z),G=$.get(w);if(G)return G.getEntity();return $.set(w,T6.create(O,X,T)),O},evictProject:(P)=>{$.delete(P)}})},DJ8=Object.freeze({create:tW6});var eW6=()=>{let $=new Map,K=new Map;return Object.freeze({get:(X)=>$.get(X),getByPk:(X)=>{let w=K.get(X);return w?$.get(w):void 0},has:(X)=>$.has(X),set:(X,w)=>{$.set(X,w),K.set(w.getPk(),X)},remove:(X)=>{let w=$.get(X);if(w)K.delete(w.getPk());$.delete(X)},getIdByPk:(X)=>K.get(X),setIdByPk:(X,w)=>K.set(X,w),clear:()=>{$.clear(),K.clear()},entries:()=>$.entries()})},Nw=Object.freeze({create:eW6});var bJ8=H1(C$(),1);var $H6=async($,K,q,Y=null)=>{return(await $.selectFrom("entity_types").select("id").where("code","=",q).where((J)=>Y?J("subtype","=",Y):J("subtype","is",null)).executeTakeFirstOrThrow()).id},$Y=Object.freeze({readEntityTypeId:$H6});var KH6=($)=>{let{id:K,name:q,parentId:Y,path:z,createdAt:J,updatedAt:P,publishedVersionNumber:W,hasDraft:H,draftContent:Z,publishedContent:O}=$,{entityFns:X,mutationFns:w}=w5.create({id:K,name:q,createdAt:J,updatedAt:P}),T=new Map,G=W??null,v=H??!1,f=Z??null,V=O??null,h=null,E8=Object.freeze({...X,getParentId:()=>Y,getPath:()=>z,getField:(S6)=>{return T.get(S6)},getFields:()=>{let S6={};for(let[R3,V8]of T.entries())S6[R3]=V8;return S6},getPublishedVersionNumber:()=>G,hasDraftContent:()=>v,getDraftContent:()=>f,getPublishedContent:()=>V,getEditState:()=>h,hasPublished:()=>G>0,isBeingEdited:()=>h!==null,getVersionCount:()=>G??0,getIsFolder:()=>!1}),l$=Object.freeze({...w,setParentId:(S6)=>{Y=S6},setPath:(S6)=>{z=S6},setField:(S6,R3)=>{T.set(S6,R3)},removeField:(S6)=>{T.delete(S6)},setPublishedVersionNumber:(S6)=>{G=S6},setHasDraft:(S6)=>{v=S6},setDraftContent:(S6)=>{f=S6},setPublishedContent:(S6)=>{V=S6},setEditState:(S6)=>{h=S6}});return{entityFns:E8,mutationFns:l$}},XW=Object.freeze({create:KH6});var SJ8=($)=>{let{entityFns:K,mutationFns:q}=XW.create($),Y=()=>K.getParentId()===null,z=()=>!0,P=Object.freeze({...K,isRoot:Y,getIsFolder:z,toJSON:()=>({id:K.getObjectId(),parentId:K.getParentId(),name:K.getName(),path:K.getPath(),createdAt:K.getCreatedAt(),updatedAt:K.getUpdatedAt(),isFolder:z(),isRoot:Y()})}),W=Object.freeze({...q});return{entity:P,mutationApi:W}},qH6=($,K,q,Y)=>{return SJ8({id:K,parentId:q,name:$.name,path:Y,createdAt:$.created_at,updatedAt:$.updated_at})},Qz=Object.freeze({create:SJ8,createFromRow:qH6});var EJ8=($)=>{let{entityFns:K,mutationFns:q}=XW.create($),Y=()=>"d",J=Object.freeze({...K,getTypeCode:Y,toJSON:()=>({id:K.getObjectId(),parentId:K.getParentId(),name:K.getName(),path:K.getPath(),publishedVersionNumber:K.getPublishedVersionNumber(),hasDraft:K.hasDraftContent(),draftContent:K.getDraftContent(),publishedContent:K.getPublishedContent(),editState:K.getEditState(),createdAt:K.getCreatedAt(),updatedAt:K.getUpdatedAt(),versionCount:K.getVersionCount(),isFolder:K.getIsFolder(),type:Y(),hasPublished:K.hasPublished(),isBeingEdited:K.isBeingEdited()})}),P=Object.freeze({...q});return{entity:J,mutationApi:P}},YH6=($,K,q,Y,z,J,P=null,W=null)=>{return EJ8({id:K,parentId:q,name:$.name,path:Y,publishedVersionNumber:z,hasDraft:J,draftContent:P,publishedContent:W,createdAt:$.created_at,updatedAt:$.updated_at})},wW=Object.freeze({create:EJ8,createFromRow:YH6});var LJ8=($)=>{let{entityFns:K,mutationFns:q}=XW.create($),Y=()=>"t",J=Object.freeze({...K,getTypeCode:Y,toJSON:()=>({id:K.getObjectId(),parentId:K.getParentId(),name:K.getName(),path:K.getPath(),publishedVersionNumber:K.getPublishedVersionNumber(),hasDraft:K.hasDraftContent(),draftContent:K.getDraftContent(),publishedContent:K.getPublishedContent(),editState:K.getEditState(),createdAt:K.getCreatedAt(),updatedAt:K.getUpdatedAt(),versionCount:K.getVersionCount(),isFolder:K.getIsFolder(),type:Y(),hasPublished:K.hasPublished(),isBeingEdited:K.isBeingEdited()})}),P=Object.freeze({...q});return{entity:J,mutationApi:P}},zH6=($,K,q,Y,z,J,P=null,W=null)=>{return LJ8({id:K,parentId:q,name:$.name,path:Y,publishedVersionNumber:z,hasDraft:J,draftContent:P,publishedContent:W,createdAt:$.created_at,updatedAt:$.updated_at})},TW=Object.freeze({create:LJ8,createFromRow:zH6});var JH6=($)=>{let{id:K,name:q,ownerEntityId:Y,label:z,description:J,primitiveType:P,required:W,multiplicity:H,isSystem:Z,createdAt:O,updatedAt:X}=$,{entityFns:w,mutationFns:T}=w5.create({id:K,name:q,createdAt:O,updatedAt:X}),G=()=>Y,v=()=>z,f=()=>J,V=()=>P,h=()=>W,A=()=>H,N=()=>Z,I=Object.freeze({...w,getOwnerEntityId:G,getLabel:v,getDescription:f,getPrimitiveType:V,getRequired:h,getMultiplicity:A,getIsSystem:N,toJSON:()=>({id:w.getObjectId(),ownerEntityId:G(),name:w.getName(),label:v(),description:f(),primitiveType:V(),required:h(),multiplicity:A(),isSystem:N(),createdAt:w.getCreatedAt(),updatedAt:w.getUpdatedAt()})}),D=Object.freeze({...T});return{entity:I,mutationApi:D}},Tx=Object.freeze({create:JH6});var PH6=({definition:$,values:K=[]})=>{let q=$,Y=[...K];if(q.getMultiplicity()==="single"&&Y.length>1)throw new Error(`Field "${q.getName()}" is single-valued but received ${Y.length} values`);let z=(T=0)=>{return Y[T]},J=()=>{return[...Y]},P=()=>{return q},W=()=>{return q.getMultiplicity()==="multi"};return Object.freeze({getValue:z,getValues:J,getDefinition:P,isMultiValued:W,isRequired:()=>{return q.getRequired()},getType:()=>{return q.getPrimitiveType()},getLabel:()=>{return q.getLabel()||q.getName()},getName:()=>{return q.getName()},toJSON:()=>{if(W())return Y;else return Y[0]}})},jx=Object.freeze({create:PH6});var hw=($,K)=>{let q=new Error($);return q.code=K,q.isDomainError=!0,q},WH6=($,K="NOT_FOUND")=>hw($,K),HH6=($,K="CONFLICT")=>hw($,K),ZH6=($,K="VALIDATION_ERROR")=>hw($,K),OH6=($,K="UNAUTHORIZED")=>hw($,K),n=Object.freeze({create:hw,notFound:WH6,conflict:HH6,validation:ZH6,unauthorized:OH6});var XH6=($)=>{let K=$.trim();r.factory(!K,n.validation,"Folder name cannot be empty","EMPTY_NAME"),r.factory(K.length>255,n.validation,"Folder name cannot exceed 255 characters","NAME_TOO_LONG");let q=/[/\\:*?"<>|]/;return r.factory(q.test(K),n.validation,'Folder name contains invalid characters: /\\:*?"<>|',"INVALID_CHARS"),K},wH6=($)=>{return $.getParentId()===null},fK=Object.freeze({validateFolderName:XH6,isRootFolder:wH6});var TH6=($)=>{if(!$||$.length<3)return null;let K=$[0],q=$[1],Y=parseInt($.slice(2),10);if(isNaN(Y))return null;return{storeCode:K,typeCode:q,seq:Y}},jH6=($,K,q)=>`${$}${K}${q}`,vH6=($,K)=>{r.factory($!==K,n.validation,`Store code mismatch: expected ${K}, got ${$}`,"STORE_CODE_MISMATCH")},IJ8=Object.freeze({parseId:TH6,buildId:jH6,validateStoreCode:vH6});var{parseId:P1,buildId:ff,validateStoreCode:GH6}=IJ8,{validateFolderName:xJ8,isRootFolder:Zy1}=fK,Oy1=bJ8.default("caw:stores:db"),jW=3600000,_H6=({id:$,code:K,name:q,pk:Y,folderCache:z,createdAt:J,updatedAt:P})=>{let W=new Map,{entityFns:H,mutationFns:Z}=w5.create({id:$,name:q,createdAt:J,updatedAt:P}),O=()=>new Set([K]),X=()=>"local",w=()=>K,T=()=>Y,G=()=>({id:$,code:K,name:H.getName(),createdAt:H.getCreatedAt(),updatedAt:H.getUpdatedAt(),type:"local"}),v=(C)=>{GH6(C,K)},f=async(C,u)=>{if(!u)return null;if(z){let m=z.get(u);if(m)return m.getPk()}if(!P1(u))r.factory(!0,n.validation,`Invalid parent folder ID: ${u}`,"INVALID_ID");let b=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("object_id","=",u).where("deleted_at","is",null).executeTakeFirst();return b?b.id:null},V=async(C,u)=>{let E=await C.selectFrom("entities").select(["name","parent_folder_id","parent_object_id","object_id"]).where("id","=",u).where("deleted_at","is",null).executeTakeFirst();r.factory(!E,n.notFound,`Entity not found for PK ${u}`,"ENTITY_NOT_FOUND");let b=E.object_id,m=z?z.get(b):null;if(m){let f8=m.getEntity();if(f8.getName()===E.name&&f8.getParentId()===E.parent_object_id)return f8.getPath()}if(E.name===null)return"";if(!E.parent_object_id)return E.name;let c=z?z.get(E.parent_object_id):null;if(c){let M8=c.getEntity().getPath();return M8?`${M8}/${E.name}`:E.name}let o=[E.name],P8=E.parent_folder_id;while(P8!==null){let f8=W.get(P8),M8=f8&&z?z.get(f8):null;if(M8){let $6=M8.getEntity().getPath();if($6){let E6=$6.split("/").filter((r1)=>r1);o.unshift(...E6)}break}let N8=await C.selectFrom("entities").select(["name","parent_folder_id"]).where("id","=",P8).where("deleted_at","is",null).executeTakeFirst();if(r.factory(!N8,n.notFound,`Folder not found for PK ${P8}`,"FOLDER_NOT_FOUND"),N8.name!==null)o.unshift(N8.name);P8=N8.parent_folder_id}return o.join("/")},h=async(C,u)=>{let E=[],b=[u];while(b.length>0){let m=b.shift(),c=await C.selectFrom("entities").select(["id","type_code"]).where("store_id","=",Y).where("parent_folder_id","=",m).where("deleted_at","is",null).execute();for(let o of c)if(E.push(o.id),o.type_code==="f")b.push(o.id)}return E},A=async(C,u,E,b)=>{let m=M1(),c=await $Y.readEntityTypeId(C,{},"f",b),o=await v9.nextSeq(C,"store",Y,"f"),P8=await f(C,u),f8=ff(K,"f",o),M8=await C.insertInto("entities").values({store_id:Y,object_id:f8,entity_type_id:c,type_code:"f",seq:o,parent_folder_id:P8,parent_object_id:u,name:E,created_at:m,updated_at:m}).returningAll().executeTakeFirstOrThrow();return await C.insertInto("folders").values({entity_id:M8.id}).execute(),{row:M8,id:f8}},N=(C)=>{let u=null;if(C.owner_entity_id!==null)u=W.get(C.owner_entity_id)??null;let{entity:E,mutationApi:b}=Tx.create({id:C.object_id,name:C.name,ownerEntityId:u,label:C.label,description:C.description,primitiveType:C.primitive_type,required:C.required===1,multiplicity:C.multiplicity,isSystem:C.is_system===1,createdAt:C.created_at,updatedAt:C.updated_at});return{entity:E,mutationApi:b,pk:C.id}},S=async(C,u)=>{let E=await C.selectFrom("field_values as fv").innerJoin("field_definitions as fd","fd.id","fv.field_definition_id").select(["fv.id as value_id","fv.value","fd.id as def_id","fd.object_id as def_object_id","fd.name as def_name","fd.label as def_label","fd.description as def_description","fd.primitive_type as def_primitive_type","fd.required as def_required","fd.multiplicity as def_multiplicity","fd.is_system as def_is_system","fd.owner_entity_id as def_owner_entity_id","fd.created_at as def_created_at","fd.updated_at as def_updated_at"]).where("fv.entity_id","=",u).execute(),b=new Map;for(let c of E){let o=c.def_id;if(!b.has(o))b.set(o,{definition:{id:c.def_object_id,name:c.def_name,label:c.def_label,description:c.def_description,primitiveType:c.def_primitive_type,required:c.def_required===1,multiplicity:c.def_multiplicity,isSystem:c.def_is_system===1,ownerEntityId:c.def_owner_entity_id?W.get(c.def_owner_entity_id):null,createdAt:c.def_created_at,updatedAt:c.def_updated_at},values:[]});b.get(o).values.push(c.value)}let m=[];for(let{definition:c,values:o}of b.values()){let{entity:P8}=Tx.create(c),f8=jx.create({definition:P8,values:o});m.push(f8)}return m},I=async(C,u)=>{let E=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("seq","=",1).where("type_code","=","n").executeTakeFirst();if(!E)return null;if(E.owner_entity_id){let m=await C.selectFrom("entities").select("object_id").where("id","=",E.owner_entity_id).executeTakeFirst();if(m)W.set(E.owner_entity_id,m.object_id)}let b=`${K}n1`;return W.set(E.id,b),N(E)},D=async(C,u,{storeCode:E,parentId:b,name:m,subtype:c})=>{if(E!==void 0)v(E);if(m!==null&&m!==void 0)xJ8(m);let{row:o,id:P8}=await A(C,b,m,c||null),f8=o.id;W.set(f8,P8);let M8=await V(C,f8),{entity:N8,mutationApi:y8}=Qz.createFromRow(o,P8,b,M8);return{entity:N8,mutationApi:y8,pk:f8}},B=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities").innerJoin("folders","folders.entity_id","entities.id").selectAll("entities").where("entities.store_id","=",Y).where("entities.seq","=",b.seq).where("entities.type_code","=","f").where("entities.deleted_at","is",null).executeTakeFirst();if(!m)return null;let{id:c,parent_object_id:o}=m;W.set(c,E);let P8=await V(C,c),f8=await S(C,c),{entity:M8,mutationApi:N8}=Qz.createFromRow(m,E,o,P8);for(let y8 of f8)N8.setField(y8.getDefinition().getName(),y8);return{entity:M8,mutationApi:N8,pk:c}},g=async(C,u,{id:E,name:b,parentId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid folder ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=","f").where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Folder not found: ${E}`,"FOLDER_NOT_FOUND");let P8=o.id,f8={name:o.name,parentId:o.parent_object_id,path:null};if(W.set(P8,E),f8.path=await V(C,P8),b!==void 0)xJ8(b);let M8={};if(b!==void 0)M8.name=b;if(m!==void 0){let W4=await f(C,m);M8.parent_folder_id=W4,M8.parent_object_id=m}M8.updated_at=M1();let N8=await C.updateTable("entities").set(M8).where("id","=",P8).returningAll().executeTakeFirstOrThrow(),y8=await V(C,P8),$6=await S(C,P8),{entity:E6,mutationApi:r1}=Qz.createFromRow(N8,E,N8.parent_object_id,y8);for(let W4 of $6)r1.setField(W4.getDefinition().getName(),W4);return{entity:E6,mutationApi:r1,pk:P8,oldValues:f8}},R=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid folder ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","f").where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Folder not found: ${E}`,"FOLDER_NOT_FOUND");let c=m.id;W.set(c,E);let o=await V(C,c),P8=await h(C,c),f8=M1();await C.updateTable("entities").set({deleted_at:f8}).where("id","in",[c,...P8]).execute();let M8=[];for(let N8 of P8){let y8=await C.selectFrom("entities").select("object_id").where("id","=",N8).executeTakeFirst();if(y8)M8.push(y8.object_id)}return{id:E,deleted:!0,descendantCount:P8.length,path:o,descendantIds:M8,deletedPks:[c,...P8]}},y=async(C,u,E,b,m=null)=>{let c=await f(C,E),o=C.selectFrom("entities").select("object_id").where("store_id","=",Y).where("parent_folder_id",c===null?"is":"=",c).where("name","=",b).where("deleted_at","is",null);if(m)o=o.where("object_id","!=",m);return!!await o.executeTakeFirst()},t=async(C,u,E,b)=>{let m=await f(C,E),c=await C.selectFrom("entities").innerJoin("folders","folders.entity_id","entities.id").selectAll("entities").where("entities.store_id","=",Y).where("entities.parent_folder_id",m===null?"is":"=",m).where("entities.name","=",b).where("entities.deleted_at","is",null).executeTakeFirst();if(!c)return null;let{id:o,object_id:P8}=c;W.set(o,P8);let f8=await V(C,o),M8=await S(C,o),{entity:N8,mutationApi:y8}=Qz.createFromRow(c,P8,E,f8);for(let $6 of M8)y8.setField($6.getDefinition().getName(),$6);return{entity:N8,mutationApi:y8,pk:o}},K8=async(C,u,{folderId:E,type:b})=>{let m;if(E){if(m=await f(C,E),m===null)return[]}else if(b){let f8=await I8(C,u,b);if(!f8)return[];m=f8.pk}else m=null;let c=C.selectFrom("entities").selectAll().where("store_id","=",Y).where("parent_folder_id",m===null?"is":"=",m).where("deleted_at","is",null);if(b)c=c.where("type_code","=","f").innerJoin("folders","folders.entity_id","entities.id");let o=await c.execute(),P8=[];for(let f8 of o){let{id:M8,object_id:N8}=f8;W.set(M8,N8);let y8=await V(C,M8),$6=await S(C,M8),{entity:E6,mutationApi:r1}=Qz.createFromRow(f8,N8,f8.parent_object_id,y8);for(let W4 of $6)r1.setField(W4.getDefinition().getName(),W4);P8.push({entity:E6,mutationApi:r1,pk:M8})}return P8},R8=async(C,u,{path:E,type:b})=>{let m=(E??"").trim(),c=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("type_code","=","f").where("deleted_at","is",null).execute();for(let o of c){let P8=await B(C,u,{id:o.object_id});if(P8&&P8.entity.getPath()===m)return P8}return null},I8=async(C,u,E,b)=>{if(b!==void 0)v(b);let m=E==="d"?"root_d":"root_t",c=await $Y.readEntityTypeId(C,u,"f",m),o=await C.selectFrom("entities").innerJoin("folders","folders.entity_id","entities.id").selectAll("entities").where("entities.store_id","=",Y).where("entities.entity_type_id","=",c).where("entities.deleted_at","is",null).executeTakeFirst();if(!o)return null;let{id:P8,object_id:f8}=o;W.set(P8,f8);let M8=await V(C,P8),N8=await S(C,P8),{entity:y8,mutationApi:$6}=Qz.createFromRow(o,f8,o.parent_object_id,M8);for(let E6 of N8)$6.setField(E6.getDefinition().getName(),E6);return{entity:y8,mutationApi:$6,pk:P8}},E8=async(C,u,{storeCode:E,ownerEntityId:b,name:m,label:c,description:o,primitiveType:P8,required:f8,multiplicity:M8,isSystem:N8=!1})=>{if(E!==void 0)v(E);r.factory(P8!=="string"&&P8!=="object_ref",n.validation,`Invalid primitiveType: ${P8}`,"INVALID_PRIMITIVE_TYPE"),r.factory(M8!=="single"&&M8!=="multi",n.validation,`Invalid multiplicity: ${M8}`,"INVALID_MULTIPLICITY");let y8=M1(),$6=await $Y.readEntityTypeId(C,u,"n",null),E6=await v9.nextSeq(C,"store",Y,"n"),r1=ff(K,"n",E6),W4=b?await f(C,b):null,S3=await C.insertInto("field_definitions").values({store_id:Y,object_id:r1,entity_type_id:$6,type_code:"n",seq:E6,owner_entity_id:W4,name:m,label:c,description:o,primitive_type:P8,required:f8?1:0,multiplicity:M8,is_system:N8?1:0,created_at:y8,updated_at:y8}).returningAll().executeTakeFirstOrThrow(),H4=S3.id;return W.set(H4,r1),N(S3)},t8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","n").executeTakeFirst();if(!m)return null;if(m.owner_entity_id){let c=await C.selectFrom("entities").select("object_id").where("id","=",m.owner_entity_id).executeTakeFirst();if(c)W.set(m.owner_entity_id,c.object_id)}return W.set(m.id,E),N(m)},g8=async(C,u,E,b)=>{let m=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("name","=",E).where("owner_entity_id",b===null?"is":"=",b).executeTakeFirst();if(!m)return null;if(m.owner_entity_id){let c=await C.selectFrom("entities").select("object_id").where("id","=",m.owner_entity_id).executeTakeFirst();if(c)W.set(m.owner_entity_id,c.object_id)}return W.set(m.id,m.object_id),N(m)},m8=async(C,u,{fieldDefinitionId:E,fieldName:b,ownerEntityPk:m})=>{if(E){let o=await t8(C,u,{id:E});if(o)return o}if(b&&m){let o=await g8(C,u,b,m);if(o)return o}if(b){let o=await g8(C,u,b,null);if(o)return o}let c=await I(C);return r.factory(!c,n.notFound,"No field definition found and no default available","NO_FIELD_DEFINITION"),c},V6=async(C,u,{ownerEntityPk:E,includeSystem:b=!0})=>{let m=C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("owner_entity_id",E===null?"is":"=",E);if(!b)m=m.where("is_system","=",0);let c=await m.execute(),o=[];for(let P8 of c){if(P8.owner_entity_id){let f8=await C.selectFrom("entities").select("object_id").where("id","=",P8.owner_entity_id).executeTakeFirst();if(f8)W.set(P8.owner_entity_id,f8.object_id)}W.set(P8.id,P8.object_id),o.push(N(P8))}return o},C3=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid definition ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","n").executeTakeFirst();r.factory(!m,n.notFound,`Field definition not found: ${E}`,"DEFINITION_NOT_FOUND"),r.factory(m.is_system===1,n.validation,`Cannot delete system field definition: ${E}`,"SYSTEM_DEFINITION");let c=m.id;if(await C.deleteFrom("field_definitions").where("id","=",c).execute(),m.owner_entity_id){let P8=await C.selectFrom("entities").select("object_id").where("id","=",m.owner_entity_id).executeTakeFirst();if(P8)W.set(m.owner_entity_id,P8.object_id)}let{entity:o}=N(m);return o},P3=async(C,u,{entityId:E,fieldDefinitionId:b,fieldName:m,value:c,values:o})=>{let P8=P1(E);r.factory(!P8,n.validation,`Invalid entity ID: ${E}`,"INVALID_ID");let f8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("seq","=",P8.seq).where("type_code","=",P8.typeCode).where("deleted_at","is",null).executeTakeFirst();r.factory(!f8,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND");let M8=f8.id,{entity:N8,pk:y8}=await m8(C,u,{fieldDefinitionId:b,fieldName:m,ownerEntityPk:M8}),$6=N8.getMultiplicity(),E6;if($6==="single")if(o&&Array.isArray(o))r.factory(o.length>1||o.length===0,n.validation,`Field '${N8.getName()}' is single-valued but received ${o.length} values`,"MULTIPLICITY_VIOLATION"),E6=[o[0]];else r.factory(c===void 0,n.validation,"Single-valued field requires value parameter","VALUE_REQUIRED"),E6=[c];else if(o&&Array.isArray(o))E6=o;else if(c!==void 0)E6=[c];else r.factory(!0,n.validation,"Multi-valued field requires either value or values parameter","VALUE_OR_VALUES_REQUIRED");await C.deleteFrom("field_values").where("entity_id","=",M8).where("field_definition_id","=",y8).execute();let r1=M1();for(let qC of E6)await C.insertInto("field_values").values({entity_id:M8,field_definition_id:y8,value:qC,updated_at:r1}).execute();let W4=E6,S3=jx.create({definition:N8,values:W4}),H4;if(P8.typeCode==="f")H4=await B(C,u,{id:E});else if(P8.typeCode==="d")H4=await $1(C,u,{id:E});else if(P8.typeCode==="t")H4=await d4(C,u,{id:E});return r.factory(!H4,n.notFound,`Entity not found after field update: ${E}`,"ENTITY_NOT_FOUND"),{...H4,field:S3,fieldName:N8.getName()}},E4=async(C,u,{entityId:E,fieldDefinitionId:b,fieldName:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid entity ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=",c.typeCode).where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND");let P8=o.id,{entity:f8,pk:M8}=await m8(C,u,{fieldDefinitionId:b,fieldName:m,ownerEntityPk:P8});await C.deleteFrom("field_values").where("entity_id","=",P8).where("field_definition_id","=",M8).execute();let N8;if(c.typeCode==="f")N8=await B(C,u,{id:E});else if(c.typeCode==="d")N8=await $1(C,u,{id:E});else if(c.typeCode==="t")N8=await d4(C,u,{id:E});return r.factory(!N8,n.notFound,`Entity not found after field delete: ${E}`,"ENTITY_NOT_FOUND"),{...N8,fieldName:f8.getName()}},a3=async(C,u,{storeCode:E,parentId:b,name:m,initialContent:c})=>{if(E!==void 0)v(E);let o=M1(),P8=await $Y.readEntityTypeId(C,u,"d",null),f8=await v9.nextSeq(C,"store",Y,"d"),M8=ff(K,"d",f8),N8=await f(C,b),y8=await C.insertInto("entities").values({store_id:Y,object_id:M8,entity_type_id:P8,type_code:"d",seq:f8,parent_folder_id:N8,parent_object_id:b,name:m,created_at:o,updated_at:o}).returningAll().executeTakeFirstOrThrow();await C.insertInto("documents").values({entity_id:y8.id,published_version_id:null}).execute();let $6=c!==null&&c!==void 0;if($6)await C.insertInto("document_drafts").values({entity_id:y8.id,content:c,updated_at:o}).execute();let E6=y8.id;W.set(E6,M8);let r1=await V(C,E6),{entity:W4,mutationApi:S3}=wW.createFromRow(y8,M8,b,r1,null,$6,$6?c:null,null);return{entity:W4,mutationApi:S3,pk:E6}},$1=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","e.deleted_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;let c=m.entity_id;W.set(c,E);let o=await V(C,c),P8=await S(C,c),{entity:f8,mutationApi:M8}=wW.createFromRow(m,m.object_id,m.parent_object_id,o,m.published_version_number,m.has_draft===1,m.draft_content??null,m.published_content??null);for(let N8 of P8)M8.setField(N8.getDefinition().getName(),N8);if(m.edit_client_id)M8.setEditState({clientId:m.edit_client_id,startedAt:m.edit_started_at,lastActivityAt:m.edit_activity});return{entity:f8,mutationApi:M8,pk:c}},l$=async(C,u,{id:E,name:b,parentId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=","d").where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Document not found: ${E}`,"DOCUMENT_NOT_FOUND");let P8=o.id,f8={name:o.name,parentId:o.parent_object_id,path:null};W.set(P8,E),f8.path=await V(C,P8);let N8={updated_at:M1()};if(b!==void 0)N8.name=b;if(m!==void 0){let H4=await f(C,m);N8.parent_folder_id=H4,N8.parent_object_id=m}let y8=await C.updateTable("entities").set(N8).where("id","=",P8).returningAll().executeTakeFirstOrThrow(),$6=await C.selectFrom("documents as d").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","d.entity_id").select(["dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("d.entity_id","=",P8).executeTakeFirst(),E6=await V(C,P8),r1=await S(C,P8),{entity:W4,mutationApi:S3}=wW.createFromRow(y8,E,y8.parent_object_id,E6,$6.published_version_number,$6.has_draft===1,$6.draft_content??null,$6.published_content??null);for(let H4 of r1)S3.setField(H4.getDefinition().getName(),H4);return{entity:W4,mutationApi:S3,pk:P8,oldValues:f8}},S6=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","d").where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Document not found: ${E}`,"DOCUMENT_NOT_FOUND");let c=m.id;W.set(c,E);let o=await V(C,c),P8=M1();return await C.updateTable("entities").set({deleted_at:P8}).where("id","=",c).execute(),{id:E,deleted:!0,path:o}},R3=async(C,u,{id:E,content:b,clientId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid document ID: ${E}`,"INVALID_ID"),r.factory(!m,n.validation,"clientId is required","MISSING_CLIENT_ID");let o=M1(),P8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","d").where("seq","=",c.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!P8,n.notFound,`Document not found: ${E}`,"NOT_FOUND");let f8=P8.id;await C.insertInto("document_drafts").values({entity_id:f8,content:b,updated_at:o}).onConflict(($6)=>$6.column("entity_id").doUpdateSet({content:b,updated_at:o})).execute();let N8=!await P6(C,u,{id:E,clientId:m}),y8=await $1(C,u,{id:E});return r.factory(!y8,n.notFound,`Document not found after draft save: ${E}`,"DOCUMENT_NOT_FOUND"),{...y8,lockLost:N8}},V8=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let m=M1(),c=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","dd.content"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();r.factory(!c,n.notFound,`No draft found for document: ${E}`,"DRAFT_NOT_FOUND");let o=c.entity_id,f8=((await C.selectFrom("document_versions").select(C.fn.max("version_number").as("max_version")).where("entity_id","=",o).executeTakeFirst())?.max_version||0)+1,M8=await C.insertInto("document_versions").values({entity_id:o,version_number:f8,content:c.content,published_at:m}).returningAll().executeTakeFirstOrThrow();await C.updateTable("documents").set({published_version_id:M8.id}).where("entity_id","=",o).execute(),await C.deleteFrom("document_drafts").where("entity_id","=",o).execute(),await C.deleteFrom("document_edit_state").where("entity_id","=",o).execute();let N8=await $1(C,u,{id:E});return r.factory(!N8,n.notFound,`Document not found after publish: ${E}`,"DOCUMENT_NOT_FOUND"),N8},A8=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","d").where("seq","=",b.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Document not found: ${E}`,"NOT_FOUND"),await C.deleteFrom("document_drafts").where("entity_id","=",m.id).execute();let c=await $1(C,u,{id:E});return r.factory(!c,n.notFound,`Document not found after discard: ${E}`,"DOCUMENT_NOT_FOUND"),c},x8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.object_id","dd.content","dd.updated_at"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;return{entityId:m.object_id,content:m.content,updatedAt:m.updated_at}},u8=async(C,u,{id:E,versionNumber:b})=>{let m=P1(E);if(!m)return null;let c=await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["e.object_id","dv.version_number","dv.content","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",m.seq).where("e.deleted_at","is",null).where("dv.version_number","=",b).executeTakeFirst();if(!c)return null;return{entityId:c.object_id,versionNumber:c.version_number,content:c.content,publishedAt:c.published_at}},J6=async(C,u,{id:E})=>{let b=P1(E);if(!b)return[];return(await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["dv.version_number","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).orderBy("dv.version_number","desc").execute()).map((c)=>({versionNumber:c.version_number,publishedAt:c.published_at}))},n6=async(C,u,E,b)=>{let m=await f(C,E),c=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.parent_folder_id",m===null?"is":"=",m).where("e.name","=",b).where("e.deleted_at","is",null).executeTakeFirst();if(!c)return null;let o=c.entity_id;W.set(o,c.object_id);let P8=await V(C,o),f8=await S(C,o),{entity:M8,mutationApi:N8}=wW.createFromRow(c,c.object_id,c.parent_object_id,P8,c.published_version_number,c.has_draft===1,c.draft_content??null,c.published_content??null);for(let y8 of f8)N8.setField(y8.getDefinition().getName(),y8);return{entity:M8,mutationApi:N8,pk:o}},N4=async(C,u,{parentId:E})=>{let b=await f(C,E),m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.parent_folder_id",b===null?"is":"=",b).where("e.deleted_at","is",null).execute(),c=[];for(let o of m){let P8=o.entity_id;W.set(P8,o.object_id);let f8=await V(C,P8),M8=await S(C,P8),{entity:N8,mutationApi:y8}=wW.createFromRow(o,o.object_id,o.parent_object_id,f8,o.published_version_number,o.has_draft===1,o.draft_content??null,o.published_content??null);for(let $6 of M8)y8.setField($6.getDefinition().getName(),$6);if(o.edit_client_id)y8.setEditState({clientId:o.edit_client_id,startedAt:o.edit_started_at,lastActivityAt:o.edit_activity});c.push({entity:N8,mutationApi:y8,pk:P8})}return c},D3=async(C,u,{storeCode:E,parentId:b,name:m,initialContent:c})=>{if(E!==void 0)v(E);let o=M1(),P8=await $Y.readEntityTypeId(C,u,"t",null),f8=await v9.nextSeq(C,"store",Y,"t"),M8=ff(K,"t",f8),N8=await f(C,b),y8=await C.insertInto("entities").values({store_id:Y,object_id:M8,entity_type_id:P8,type_code:"t",seq:f8,parent_folder_id:N8,parent_object_id:b,name:m,created_at:o,updated_at:o}).returningAll().executeTakeFirstOrThrow();await C.insertInto("documents").values({entity_id:y8.id,published_version_id:null}).execute();let $6=c!==null&&c!==void 0;if($6)await C.insertInto("document_drafts").values({entity_id:y8.id,content:c,updated_at:o}).execute();let E6=y8.id;W.set(E6,M8);let r1=await V(C,E6),{entity:W4,mutationApi:S3}=TW.createFromRow(y8,M8,b,r1,null,$6,$6?c:null,null);return{entity:W4,mutationApi:S3,pk:E6}},d4=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","e.deleted_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;let c=m.entity_id;W.set(c,E);let o=await V(C,c),P8=await S(C,c),{entity:f8,mutationApi:M8}=TW.createFromRow(m,m.object_id,m.parent_object_id,o,m.published_version_number,m.has_draft===1,m.draft_content??null,m.published_content??null);for(let N8 of P8)M8.setField(N8.getDefinition().getName(),N8);if(m.edit_client_id)M8.setEditState({clientId:m.edit_client_id,startedAt:m.edit_started_at,lastActivityAt:m.edit_activity});return{entity:f8,mutationApi:M8,pk:c}},Z8=async(C,u,{id:E,name:b,parentId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=","t").where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Template not found: ${E}`,"TEMPLATE_NOT_FOUND");let P8=o.id,f8={name:o.name,parentId:o.parent_object_id,path:null};W.set(P8,E),f8.path=await V(C,P8);let N8={updated_at:M1()};if(b!==void 0)N8.name=b;if(m!==void 0){let H4=await f(C,m);N8.parent_folder_id=H4,N8.parent_object_id=m}let y8=await C.updateTable("entities").set(N8).where("id","=",P8).returningAll().executeTakeFirstOrThrow(),$6=await C.selectFrom("documents as d").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","d.entity_id").select(["dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("d.entity_id","=",P8).executeTakeFirst(),E6=await V(C,P8),r1=await S(C,P8),{entity:W4,mutationApi:S3}=TW.createFromRow(y8,E,y8.parent_object_id,E6,$6.published_version_number,$6.has_draft===1,$6.draft_content??null,$6.published_content??null);for(let H4 of r1)S3.setField(H4.getDefinition().getName(),H4);return{entity:W4,mutationApi:S3,pk:P8,oldValues:f8}},X8=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","t").where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Template not found: ${E}`,"TEMPLATE_NOT_FOUND");let c=m.id;W.set(c,E);let o=await V(C,c),P8=M1();return await C.updateTable("entities").set({deleted_at:P8}).where("id","=",c).execute(),{id:E,deleted:!0,path:o}},U=async(C,u,{id:E,content:b,clientId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid template ID: ${E}`,"INVALID_ID"),r.factory(!m,n.validation,"clientId is required","MISSING_CLIENT_ID");let o=M1(),P8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","t").where("seq","=",c.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!P8,n.notFound,`Template not found: ${E}`,"NOT_FOUND");let f8=P8.id;await C.insertInto("document_drafts").values({entity_id:f8,content:b,updated_at:o}).onConflict(($6)=>$6.column("entity_id").doUpdateSet({content:b,updated_at:o})).execute();let N8=!await P6(C,u,{id:E,clientId:m}),y8=await d4(C,u,{id:E});return r.factory(!y8,n.notFound,`Template not found after draft save: ${E}`,"TEMPLATE_NOT_FOUND"),{...y8,lockLost:N8}},a=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let m=M1(),c=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","dd.content"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();r.factory(!c,n.notFound,`No draft found for template: ${E}`,"DRAFT_NOT_FOUND");let o=c.entity_id,f8=((await C.selectFrom("document_versions").select(C.fn.max("version_number").as("max_version")).where("entity_id","=",o).executeTakeFirst())?.max_version||0)+1,M8=await C.insertInto("document_versions").values({entity_id:o,version_number:f8,content:c.content,published_at:m}).returningAll().executeTakeFirstOrThrow();await C.updateTable("documents").set({published_version_id:M8.id}).where("entity_id","=",o).execute(),await C.deleteFrom("document_drafts").where("entity_id","=",o).execute(),await C.deleteFrom("document_edit_state").where("entity_id","=",o).execute();let N8=await d4(C,u,{id:E});return r.factory(!N8,n.notFound,`Template not found after publish: ${E}`,"TEMPLATE_NOT_FOUND"),N8},i=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","t").where("seq","=",b.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Template not found: ${E}`,"NOT_FOUND"),await C.deleteFrom("document_drafts").where("entity_id","=",m.id).execute();let c=await d4(C,u,{id:E});return r.factory(!c,n.notFound,`Template not found after discard: ${E}`,"TEMPLATE_NOT_FOUND"),c},W8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.object_id","dd.content","dd.updated_at"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;return{entityId:m.object_id,content:m.content,updatedAt:m.updated_at}},e=async(C,u,{id:E,versionNumber:b})=>{let m=P1(E);if(!m)return null;let c=await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["e.object_id","dv.version_number","dv.content","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",m.seq).where("e.deleted_at","is",null).where("dv.version_number","=",b).executeTakeFirst();if(!c)return null;return{entityId:c.object_id,versionNumber:c.version_number,content:c.content,publishedAt:c.published_at}},$8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return[];return(await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["dv.version_number","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).orderBy("dv.version_number","desc").execute()).map((c)=>({versionNumber:c.version_number,publishedAt:c.published_at}))},J8=async(C,u,E,b)=>{let m=await f(C,E),c=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.parent_folder_id",m===null?"is":"=",m).where("e.name","=",b).where("e.deleted_at","is",null).executeTakeFirst();if(!c)return null;let o=c.entity_id;W.set(o,c.object_id);let P8=await V(C,o),f8=await S(C,o),{entity:M8,mutationApi:N8}=TW.createFromRow(c,c.object_id,c.parent_object_id,P8,c.published_version_number,c.has_draft===1,c.draft_content??null,c.published_content??null);for(let y8 of f8)N8.setField(y8.getDefinition().getName(),y8);return{entity:M8,mutationApi:N8,pk:o}},G8=async(C,u,{parentId:E})=>{let b=await f(C,E),m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.parent_folder_id",b===null?"is":"=",b).where("e.deleted_at","is",null).execute(),c=[];for(let o of m){let P8=o.entity_id;W.set(P8,o.object_id);let f8=await V(C,P8),M8=await S(C,P8),{entity:N8,mutationApi:y8}=TW.createFromRow(o,o.object_id,o.parent_object_id,f8,o.published_version_number,o.has_draft===1,o.draft_content??null,o.published_content??null);for(let $6 of M8)y8.setField($6.getDefinition().getName(),$6);if(o.edit_client_id)y8.setEditState({clientId:o.edit_client_id,startedAt:o.edit_started_at,lastActivityAt:o.edit_activity});c.push({entity:N8,mutationApi:y8,pk:P8})}return c},s8=async(C,u,{id:E,clientId:b})=>{let m=P1(E);r.factory(!m,n.validation,`Invalid ID: ${E}`,"INVALID_ID");let c=M1(),o=new Date(Date.now()-jW).toISOString(),P8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=",m.typeCode).where("seq","=",m.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!P8,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND");let f8=P8.id,M8=await C.selectFrom("document_edit_state").selectAll().where("entity_id","=",f8).executeTakeFirst();if(M8)if(M8.client_id===b)return await C.updateTable("document_edit_state").set({started_at:c,last_activity_at:c}).where("entity_id","=",f8).execute(),{success:!0};else if(M8.last_activity_at<o)return await C.updateTable("document_edit_state").set({client_id:b,started_at:c,last_activity_at:c}).where("entity_id","=",f8).execute(),{success:!0};else return{success:!1,meta:{lockedBy:M8.client_id,lockedSince:M8.started_at,timeoutSeconds:jW/1000}};else return await C.insertInto("document_edit_state").values({entity_id:f8,client_id:b,started_at:c,last_activity_at:c}).execute(),{success:!0}},P6=async(C,u,{id:E,clientId:b})=>{let m=P1(E);if(!m)return!1;let c=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=",m.typeCode).where("seq","=",m.seq).executeTakeFirst();if(!c)return!1;return((await C.updateTable("document_edit_state").set({last_activity_at:M1()}).where("entity_id","=",c.id).where("client_id","=",b).execute())[0]?.numUpdatedRows||0)>0},q8=Object.freeze({...H,getCodes:O,getType:X,getCode:w,getPk:T,toJSON:G,createFolder:D,readFolder:B,updateFolder:g,deleteFolder:R,isDuplicateNameInParent:y,findFolderByName:t,listFolderContents:K8,getFolderByPath:R8,readRootFolderForType:I8,createDocument:a3,readDocument:$1,updateDocument:l$,deleteDocument:S6,saveDraft:R3,readDraft:x8,publishDocument:V8,discardDraft:A8,readVersion:u8,getVersions:J6,findDocumentByName:n6,listDocuments:N4,createTemplate:D3,readTemplate:d4,updateTemplate:Z8,deleteTemplate:X8,saveTemplateDraft:U,readTemplateDraft:W8,publishTemplate:a,discardTemplateDraft:i,readTemplateVersion:e,getTemplateVersions:$8,findTemplateByName:J8,listTemplates:G8,createFieldDefinition:E8,readFieldDefinition:t8,readDefaultFieldDefinition:I,findFieldDefinitionByName:g8,resolveFieldDefinition:m8,getFieldDefinitionsForOwner:V6,deleteFieldDefinition:C3,setFieldValue:P3,deleteFieldValue:E4,setEditState:s8,clearEditState:async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=",b.typeCode).where("seq","=",b.seq).executeTakeFirst();r.factory(!m,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND"),await C.deleteFrom("document_edit_state").where("entity_id","=",m.id).execute()},getEditState:async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("document_edit_state as es","es.entity_id","e.id").select(["es.client_id","es.started_at","es.last_activity_at"]).where("e.store_id","=",Y).where("e.type_code","=",b.typeCode).where("e.seq","=",b.seq).executeTakeFirst();if(!m)return null;return{clientId:m.client_id,startedAt:m.started_at,lastActivityAt:m.last_activity_at}}}),j8=Object.freeze({...Z});return{store:q8,mutationApi:j8}},gJ8=Object.freeze({create:_H6});var fH6=({inner:$,folderCache:K,documentCache:q,templateCache:Y,fieldDefinitionCache:z})=>{let J=async(U,a,i,W8)=>{let e=await $.createFolder(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{K.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},P=async(U,a,{id:i})=>{let W8=K.get(i);if(W8)return W8.getEntity();let e=await $.readFolder(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return K.set(i,T6.create($8,J8,G8)),$8},W=async(U,a,i,W8)=>{let{id:e}=i,$8=K.get(e),J8=await $.updateFolder(U,a,i),G8=i.name!==void 0&&i.name!==J8.oldValues.name||i.parentId!==void 0&&i.parentId!==J8.oldValues.parentId;return W8(()=>{if($8){let P6=$8.getMutationApi();if(i.name!==void 0)P6.setName(i.name);if(i.parentId!==void 0)P6.setParentId(i.parentId);P6.setUpdatedAt(J8.entity.getUpdatedAt()),P6.setPath(J8.entity.getPath())}else{let{entity:P6,mutationApi:O8,pk:T8}=J8;K.set(e,T6.create(P6,O8,T8))}if(G8){let O8=J8.oldValues.path+"/";for(let[T8,q8]of K.entries())if(q8.getEntity().getPath().startsWith(O8))K.remove(T8)}}),{entity:$8?$8.getEntity():J8.entity,oldValues:J8.oldValues}},H=async(U,a,{id:i},W8)=>{let e=K.get(i),$8=e?e.getEntity().getPath():null,J8=await $.deleteFolder(U,a,{id:i});return W8(()=>{K.remove(i);for(let G8 of J8.descendantIds||[])K.remove(G8)}),{...J8,path:$8}},Z=async(U,a,i)=>{let W8=await $.listFolderContents(U,a,i);for(let e of W8)K.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},O=async(U,a,i)=>{let W8=await $.getFolderByPath(U,a,i);if(!W8)return null;let{entity:e,mutationApi:$8,pk:J8}=W8;return K.set(e.getObjectId(),T6.create(e,$8,J8)),e},X=async(U,a,i,W8)=>{let e=await $.findFolderByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return K.set($8.getObjectId(),T6.create($8,J8,G8)),$8},w=async(U,a,i)=>{let W8=await $.readRootFolderForType(U,a,i);if(!W8)return null;let{entity:e,mutationApi:$8,pk:J8}=W8;return K.set(e.getObjectId(),T6.create(e,$8,J8)),e},T=async(U,a,i,W8,e)=>{return $.isDuplicateNameInParent(U,a,i,W8,e)},G=async(U,a,i,W8)=>{let e=await $.createDocument(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{q.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},v=async(U,a,{id:i})=>{let W8=q.get(i);if(W8)return W8.getEntity();let e=await $.readDocument(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return q.set(i,T6.create($8,J8,G8)),$8},f=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.updateDocument(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();if(i.name!==void 0)G8.setName(i.name);if(i.parentId!==void 0)G8.setParentId(i.parentId);G8.setUpdatedAt(J8.entity.getUpdatedAt()),G8.setPath(J8.entity.getPath())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;q.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},V=async(U,a,{id:i},W8)=>{let e=q.get(i),$8=e?e.getEntity().getPath():null,J8=await $.deleteDocument(U,a,{id:i});return W8(()=>{q.remove(i)}),{...J8,path:$8}},h=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.saveDraft(U,a,i);W8(()=>{if($8){let s8=$8.getMutationApi();s8.setDraftContent(J8.entity.getDraftContent()),s8.setHasDraft(J8.entity.hasDraftContent()),s8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:s8,mutationApi:P6,pk:O8}=J8;q.set(e,T6.create(s8,P6,O8))}});let G8=$8?$8.getEntity():J8.entity;if(J8.lockLost!==void 0)return{entity:G8,lockLost:J8.lockLost};return G8},A=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.publishDocument(U,a,i);if($8){let G8=$8.getMutationApi();return G8.setPublishedVersionNumber(J8.entity.getPublishedVersionNumber()),G8.setPublishedContent(J8.entity.getPublishedContent()),G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt()),$8.getEntity()}else return W8(()=>{let{entity:G8,mutationApi:s8,pk:P6}=J8;q.set(e,T6.create(G8,s8,P6))}),J8.entity},N=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.discardDraft(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;q.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},S=async(U,a,i)=>{return $.readDraft(U,a,i)},I=async(U,a,i)=>{return $.readVersion(U,a,i)},D=async(U,a,i)=>{return $.getVersions(U,a,i)},B=async(U,a,i,W8)=>{let e=await $.findDocumentByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return q.set($8.getObjectId(),T6.create($8,J8,G8)),$8},g=async(U,a,i)=>{let W8=await $.listDocuments(U,a,i);for(let e of W8)q.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},R=async(U,a,i,W8)=>{let{id:e}=i,$8=await $.setEditState(U,a,i);return W8(()=>{let J8=e.charAt(1);if(J8==="d")q.remove(e);else if(J8==="t")Y.remove(e)}),$8},y=async(U,a,i)=>{return $.getEditState(U,a,i)},t=async(U,a,i,W8)=>{let{id:e}=i;await $.clearEditState(U,a,i),W8(()=>{let $8=e.charAt(1);if($8==="d")q.remove(e);else if($8==="t")Y.remove(e)})},K8=async(U,a,i,W8)=>{let e=await $.createTemplate(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{Y.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},R8=async(U,a,{id:i})=>{let W8=Y.get(i);if(W8)return W8.getEntity();let e=await $.readTemplate(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return Y.set(i,T6.create($8,J8,G8)),$8},I8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.updateTemplate(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();if(i.name!==void 0)G8.setName(i.name);if(i.parentId!==void 0)G8.setParentId(i.parentId);G8.setUpdatedAt(J8.entity.getUpdatedAt()),G8.setPath(J8.entity.getPath())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;Y.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},E8=async(U,a,{id:i},W8)=>{let e=Y.get(i),$8=e?e.getEntity().getPath():null,J8=await $.deleteTemplate(U,a,{id:i});return W8(()=>{Y.remove(i)}),{...J8,path:$8}},t8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.saveTemplateDraft(U,a,i);W8(()=>{if($8){let s8=$8.getMutationApi();s8.setDraftContent(J8.entity.getDraftContent()),s8.setHasDraft(J8.entity.hasDraftContent()),s8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:s8,mutationApi:P6,pk:O8}=J8;Y.set(e,T6.create(s8,P6,O8))}});let G8=$8?$8.getEntity():J8.entity;if(J8.lockLost!==void 0)return{entity:G8,lockLost:J8.lockLost};return G8},g8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.publishTemplate(U,a,i);if($8){let G8=$8.getMutationApi();return G8.setPublishedVersionNumber(J8.entity.getPublishedVersionNumber()),G8.setPublishedContent(J8.entity.getPublishedContent()),G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt()),$8.getEntity()}else return W8(()=>{let{entity:G8,mutationApi:s8,pk:P6}=J8;Y.set(e,T6.create(G8,s8,P6))}),J8.entity},m8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.discardTemplateDraft(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;Y.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},V6=async(U,a,i)=>{return $.readTemplateDraft(U,a,i)},C3=async(U,a,i)=>{return $.readTemplateVersion(U,a,i)},P3=async(U,a,i)=>{return $.getTemplateVersions(U,a,i)},E4=async(U,a,i,W8)=>{let e=await $.findTemplateByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return Y.set($8.getObjectId(),T6.create($8,J8,G8)),$8},a3=async(U,a,i)=>{let W8=await $.listTemplates(U,a,i);for(let e of W8)Y.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},$1=async(U,a,i)=>{return $.setTemplateEditState(U,a,i)},l$=async(U,a,i)=>{return $.getTemplateEditState(U,a,i)},S6=async(U,a,i,W8)=>{return $.clearTemplateEditState(U,a,i,W8)},R3=async(U,a,i,W8)=>{let e=await $.createFieldDefinition(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{z.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},V8=async(U,a,{id:i})=>{let W8=z.get(i);if(W8)return W8.getEntity();let e=await $.readFieldDefinition(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return z.set(i,T6.create($8,J8,G8)),$8},A8=async(U,a,i,W8)=>{let e=await $.findFieldDefinitionByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return z.set($8.getObjectId(),T6.create($8,J8,G8)),$8},x8=async(U,a,i)=>{let W8=await $.getFieldDefinitionsForOwner(U,a,i);for(let e of W8)z.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},u8=async(U,a)=>{let i=`${$.getCode()}n1`,W8=z.get(i);if(W8)return W8.getEntity();let e=await $.readDefaultFieldDefinition(U,a),{entity:$8,mutationApi:J8,pk:G8}=e;return z.set($8.getObjectId(),T6.create($8,J8,G8)),$8},J6=async(U,a,i)=>{let W8=await $.resolveFieldDefinition(U,a,i),{entity:e,mutationApi:$8,pk:J8}=W8;return z.set(e.getObjectId(),T6.create(e,$8,J8)),e},n6=async(U,a,{id:i},W8)=>{let e=await $.deleteFieldDefinition(U,a,{id:i});return W8(()=>{z.remove(i)}),e},N4=async(U,a,i,W8)=>{let{entityId:e}=i,$8=await $.setFieldValue(U,a,i);return W8(()=>{let J8=K.get(e)||q.get(e)||Y.get(e);if(J8){let G8=J8.getMutationApi(),s8=$8.entity.getField($8.fieldName);G8.setField($8.fieldName,s8)}}),$8.entity},D3=async(U,a,i)=>{return $.getFieldValue(U,a,i)},d4=async(U,a,i,W8)=>{let{entityId:e}=i,$8=await $.deleteFieldValue(U,a,i);W8(()=>{let J8=K.get(e)||q.get(e)||Y.get(e);if(J8)J8.getMutationApi().removeField($8.fieldName)})},Z8=(U)=>{K.remove(U)};return Object.freeze({getObjectId:$.getObjectId,getName:$.getName,getCreatedAt:$.getCreatedAt,getUpdatedAt:$.getUpdatedAt,getCodes:$.getCodes,getType:$.getType,getCode:$.getCode,getPk:$.getPk,toJSON:$.toJSON,createFolder:J,readFolder:P,updateFolder:W,deleteFolder:H,listFolderContents:Z,getFolderByPath:O,findFolderByName:X,readRootFolderForType:w,isDuplicateNameInParent:T,createDocument:G,readDocument:v,updateDocument:f,deleteDocument:V,saveDraft:h,readDraft:S,publishDocument:A,discardDraft:N,readVersion:I,getVersions:D,findDocumentByName:B,listDocuments:g,setEditState:R,getEditState:y,clearEditState:t,createTemplate:K8,readTemplate:R8,updateTemplate:I8,deleteTemplate:E8,saveTemplateDraft:t8,readTemplateDraft:V6,publishTemplate:g8,discardTemplateDraft:m8,readTemplateVersion:C3,getTemplateVersions:P3,findTemplateByName:E4,listTemplates:a3,setTemplateEditState:$1,getTemplateEditState:l$,clearTemplateEditState:S6,createFieldDefinition:R3,readFieldDefinition:V8,findFieldDefinitionByName:A8,getFieldDefinitionsForOwner:x8,readDefaultFieldDefinition:u8,resolveFieldDefinition:J6,deleteFieldDefinition:n6,setFieldValue:N4,getFieldValue:D3,deleteFieldValue:d4,evictFolder:Z8})},yJ8=Object.freeze({create:fH6});var VH6=($)=>{let K=new Map;return $.forEach((J)=>K.set(J,new Set)),Object.freeze({subscribe:(J,P)=>{return K.get(J)?.add(P),()=>K.get(J)?.delete(P)},subscribeAll:(J)=>{let P=[];for(let[W,H]of K){let Z=`on${W.charAt(0).toUpperCase()}${W.slice(1)}`;if(J[Z])H.add(J[Z]),P.push(()=>H.delete(J[Z]))}return()=>P.forEach((W)=>W())},notify:(J,P)=>{K.get(J)?.forEach((W)=>{try{W(P)}catch(H){console.error(`Error in ${J} handler:`,H)}})}})},uJ8=Object.freeze({create:VH6});var M6=Object.freeze({FOLDER_CREATED:"folderCreated",FOLDER_RENAMED:"folderRenamed",FOLDER_MOVED:"folderMoved",FOLDER_DELETED:"folderDeleted",DOCUMENT_CREATED:"documentCreated",DOCUMENT_RENAMED:"documentRenamed",DOCUMENT_MOVED:"documentMoved",DOCUMENT_DELETED:"documentDeleted",DOCUMENT_PUBLISHED:"documentPublished",DRAFT_SAVED:"draftSaved",DRAFT_DISCARDED:"draftDiscarded",TEMPLATE_CREATED:"templateCreated",TEMPLATE_RENAMED:"templateRenamed",TEMPLATE_MOVED:"templateMoved",TEMPLATE_DELETED:"templateDeleted",TEMPLATE_PUBLISHED:"templatePublished",TEMPLATE_DRAFT_SAVED:"templateDraftSaved",TEMPLATE_DRAFT_DISCARDED:"templateDraftDiscarded",EDIT_STATE_ACQUIRED:"editStateAcquired",EDIT_STATE_REFRESHED:"editStateRefreshed",EDIT_STATE_CLEARED:"editStateCleared"});var AH6=({inner:$,storeCode:K})=>{let q=uJ8.create([M6.FOLDER_CREATED,M6.FOLDER_RENAMED,M6.FOLDER_MOVED,M6.FOLDER_DELETED,M6.DOCUMENT_CREATED,M6.DOCUMENT_RENAMED,M6.DOCUMENT_MOVED,M6.DOCUMENT_DELETED,M6.DOCUMENT_PUBLISHED,M6.DRAFT_SAVED,M6.DRAFT_DISCARDED,M6.TEMPLATE_CREATED,M6.TEMPLATE_RENAMED,M6.TEMPLATE_MOVED,M6.TEMPLATE_DELETED,M6.TEMPLATE_PUBLISHED,M6.TEMPLATE_DRAFT_SAVED,M6.TEMPLATE_DRAFT_DISCARDED]),Y=async(Z8,X8,U)=>{let a=await $.readFolder(Z8,X8,{id:U});if(!a)return null;let i=await Z8.selectFrom("entities").innerJoin("entity_types","entities.entity_type_id","entity_types.id").select(["entity_types.code as entity_type_code","entity_types.subtype as entity_type_subtype"]).where("entities.object_id","=",U).executeTakeFirst();if(i?.entity_type_code==="f"&&i?.entity_type_subtype==="root_d")return"d";if(i?.entity_type_code==="f"&&i?.entity_type_subtype==="root_t")return"t";let W8=await $.readRootFolderForType(Z8,X8,"d"),e=await $.readRootFolderForType(Z8,X8,"t"),$8=a;while($8&&$8.getParentId()!==null){let J8=await $.readFolder(Z8,X8,{id:$8.getParentId()});if(!J8)break;$8=J8}if($8&&$8.getObjectId()===W8?.getObjectId())return"d";else if($8&&$8.getObjectId()===e?.getObjectId())return"t";return null},z=async(Z8,X8,U,a)=>{let{parentId:i,name:W8,subtype:e}=U,$8=await $.createFolder(Z8,X8,U,a),J8=null;if(e==="root_d")J8="d";else if(e==="root_t")J8="t";else{let G8=await $.readRootFolderForType(Z8,X8,"d"),s8=await $.readRootFolderForType(Z8,X8,"t");if(i===G8?.getObjectId())J8="d";else if(i===s8?.getObjectId())J8="t";else if(i){let P6=await $.readFolder(Z8,X8,{id:i});if(P6){let O8=P6;while(O8&&O8.getParentId()!==null){let T8=await $.readFolder(Z8,X8,{id:O8.getParentId()});if(!T8)break;O8=T8}if(O8&&O8.getObjectId()===G8?.getObjectId())J8="d";else if(O8&&O8.getObjectId()===s8?.getObjectId())J8="t"}}}return a(()=>{q.notify(M6.FOLDER_CREATED,{id:$8.getObjectId(),storeCode:K,name:$8.getName(),path:$8.getPath(),parentFolderId:i,contentType:J8})}),$8},J=async(Z8,X8,U)=>{return $.readFolder(Z8,X8,U)},P=async(Z8,X8,U,a)=>{let{id:i,name:W8,parentId:e}=U,$8=await $.updateFolder(Z8,X8,U,a),J8=$8.entity,G8=$8.oldValues.name,s8=$8.oldValues.parentId,P6=await Y(Z8,X8,i);if(W8!==void 0&&W8!==G8)a(()=>{q.notify(M6.FOLDER_RENAMED,{id:i,storeCode:K,parentFolderId:J8.getParentId(),contentType:P6,oldName:G8,newName:W8,path:J8.getPath()})});if(e!==void 0&&e!==s8)a(()=>{q.notify(M6.FOLDER_MOVED,{id:i,storeCode:K,contentType:P6,oldParentFolderId:s8,parentFolderId:e,path:J8.getPath()})});return J8},W=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readFolder(Z8,X8,{id:i}))?.getParentId(),$8=await Y(Z8,X8,i),J8=await $.deleteFolder(Z8,X8,U,a);return a(()=>{q.notify(M6.FOLDER_DELETED,{id:i,storeCode:K,parentFolderId:e,contentType:$8,path:J8.path,descendantCount:J8.descendantIds?.length||0})}),J8},H=async(Z8,X8,U)=>{return $.listFolderContents(Z8,X8,U)},Z=async(Z8,X8,U)=>{return $.getFolderByPath(Z8,X8,U)},O=async(Z8,X8,U,a)=>{return $.findFolderByName(Z8,X8,U,a)},X=async(Z8,X8,U)=>{return $.readRootFolderForType(Z8,X8,U)},w=async(Z8,X8,U,a,i)=>{return $.isDuplicateNameInParent(Z8,X8,U,a,i)},T=async(Z8,X8,U,a)=>{let{parentId:i,name:W8}=U,e=await $.createDocument(Z8,X8,U,a);return a(()=>{q.notify(M6.DOCUMENT_CREATED,{storeCode:K,id:e.getObjectId(),type:"d",parentFolderId:i,name:e.getName(),path:e.getPath()})}),e},G=async(Z8,X8,U)=>{return $.readDocument(Z8,X8,U)},v=async(Z8,X8,U,a)=>{let{id:i,name:W8,parentId:e}=U,$8=await $.readDocument(Z8,X8,{id:i}),J8=$8?.getName(),G8=$8?.getParentId(),s8=await $.updateDocument(Z8,X8,U,a);if(W8!==void 0&&W8!==J8)a(()=>{q.notify(M6.DOCUMENT_RENAMED,{storeCode:K,id:i,type:"d",parentFolderId:s8.getParentId(),oldName:J8,newName:W8,path:s8.getPath()})});if(e!==void 0&&e!==G8)a(()=>{q.notify(M6.DOCUMENT_MOVED,{storeCode:K,id:i,type:"d",oldParentFolderId:G8,parentFolderId:e,path:s8.getPath()})});return s8},f=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readDocument(Z8,X8,{id:i}))?.getParentId(),$8=await $.deleteDocument(Z8,X8,U,a);return a(()=>{q.notify(M6.DOCUMENT_DELETED,{storeCode:K,id:i,type:"d",parentFolderId:e,path:$8.path})}),$8},V=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readDocument(Z8,X8,{id:i}))?.getParentId(),$8=await $.saveDraft(Z8,X8,U,a);return a(()=>{let J8=$8.lockLost!==void 0?$8.entity:$8;q.notify(M6.DRAFT_SAVED,{storeCode:K,id:i,type:"d",parentFolderId:e,updatedAt:J8?J8.getUpdatedAt():null,lockLost:$8.lockLost})}),$8},h=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.publishDocument(Z8,X8,U,a);return a(()=>{q.notify(M6.DOCUMENT_PUBLISHED,{storeCode:K,id:i,type:"d",parentFolderId:W8.getParentId(),versionNumber:W8.getPublishedVersionNumber()})}),{entityId:i,versionNumber:W8.getPublishedVersionNumber(),content:W8.getPublishedContent(),publishedAt:W8.getUpdatedAt()}},A=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.discardDraft(Z8,X8,U,a);return a(()=>{q.notify(M6.DRAFT_DISCARDED,{storeCode:K,id:i})}),W8},N=async(Z8,X8,U)=>{return $.readDraft(Z8,X8,U)},S=async(Z8,X8,U)=>{return $.readVersion(Z8,X8,U)},I=async(Z8,X8,U)=>{return $.getVersions(Z8,X8,U)},D=async(Z8,X8,U,a)=>{return $.findDocumentByName(Z8,X8,U,a)},B=async(Z8,X8,U)=>{return $.listDocuments(Z8,X8,U)},g=async(Z8,X8,U,a)=>{return $.setEditState(Z8,X8,U,a)},R=async(Z8,X8,U)=>{return $.getEditState(Z8,X8,U)},y=async(Z8,X8,U,a)=>{return $.clearEditState(Z8,X8,U,a)},t=async(Z8,X8,U,a)=>{let{parentId:i,name:W8}=U,e=await $.createTemplate(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_CREATED,{storeCode:K,id:e.getObjectId(),type:"t",parentFolderId:i,name:e.getName(),path:e.getPath()})}),e},K8=async(Z8,X8,U)=>{return $.readTemplate(Z8,X8,U)},R8=async(Z8,X8,U,a)=>{let{id:i,name:W8,parentId:e}=U,$8=await $.readTemplate(Z8,X8,{id:i}),J8=$8?.getName(),G8=$8?.getParentId(),s8=await $.updateTemplate(Z8,X8,U,a);if(W8!==void 0&&W8!==J8)a(()=>{q.notify(M6.TEMPLATE_RENAMED,{storeCode:K,id:i,type:"t",parentFolderId:s8.getParentId(),oldName:J8,newName:W8,path:s8.getPath()})});if(e!==void 0&&e!==G8)a(()=>{q.notify(M6.TEMPLATE_MOVED,{storeCode:K,id:i,type:"t",oldParentFolderId:G8,parentFolderId:e,path:s8.getPath()})});return s8},I8=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readTemplate(Z8,X8,{id:i}))?.getParentId(),$8=await $.deleteTemplate(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_DELETED,{storeCode:K,id:i,type:"t",parentFolderId:e,path:$8.path})}),$8},E8=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readTemplate(Z8,X8,{id:i}))?.getParentId(),$8=await $.saveTemplateDraft(Z8,X8,U,a);return a(()=>{let J8=$8.lockLost!==void 0?$8.entity:$8;q.notify(M6.TEMPLATE_DRAFT_SAVED,{storeCode:K,id:i,type:"t",parentFolderId:e,updatedAt:J8?J8.getUpdatedAt():null,lockLost:$8.lockLost})}),$8},t8=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.publishTemplate(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_PUBLISHED,{storeCode:K,id:i,type:"t",parentFolderId:W8.getParentId(),versionNumber:W8.getPublishedVersionNumber()})}),{entityId:i,versionNumber:W8.getPublishedVersionNumber(),content:W8.getPublishedContent(),publishedAt:W8.getUpdatedAt()}},g8=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.discardTemplateDraft(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_DRAFT_DISCARDED,{storeCode:K,id:i})}),W8},m8=async(Z8,X8,U)=>{return $.readTemplateDraft(Z8,X8,U)},V6=async(Z8,X8,U)=>{return $.readTemplateVersion(Z8,X8,U)},C3=async(Z8,X8,U)=>{return $.getTemplateVersions(Z8,X8,U)},P3=async(Z8,X8,U,a)=>{return $.findTemplateByName(Z8,X8,U,a)},E4=async(Z8,X8,U)=>{return $.listTemplates(Z8,X8,U)},a3=async(Z8,X8,U)=>{return $.setTemplateEditState(Z8,X8,U)},$1=async(Z8,X8,U)=>{return $.getTemplateEditState(Z8,X8,U)},l$=async(Z8,X8,U,a)=>{return $.clearTemplateEditState(Z8,X8,U,a)},S6=async(Z8,X8,U,a)=>{return $.createFieldDefinition(Z8,X8,U,a)},R3=async(Z8,X8,U)=>{return $.readFieldDefinition(Z8,X8,U)},V8=async(Z8,X8,U,a)=>{return $.findFieldDefinitionByName(Z8,X8,U,a)},A8=async(Z8,X8,U)=>{return $.getFieldDefinitionsForOwner(Z8,X8,U)},x8=async(Z8,X8)=>{return $.readDefaultFieldDefinition(Z8,X8)},u8=async(Z8,X8,U)=>{return $.resolveFieldDefinition(Z8,X8,U)},J6=async(Z8,X8,U,a)=>{return $.deleteFieldDefinition(Z8,X8,U,a)},n6=async(Z8,X8,U,a)=>{return $.setFieldValue(Z8,X8,U,a)},N4=async(Z8,X8,U)=>{return $.getFieldValue(Z8,X8,U)},D3=async(Z8,X8,U,a)=>{return $.deleteFieldValue(Z8,X8,U,a)};return Object.freeze({getObjectId:$.getObjectId,getName:$.getName,getCreatedAt:$.getCreatedAt,getUpdatedAt:$.getUpdatedAt,getCodes:$.getCodes,getType:$.getType,getCode:$.getCode,getPk:$.getPk,toJSON:$.toJSON,createFolder:z,readFolder:J,updateFolder:P,deleteFolder:W,listFolderContents:H,getFolderByPath:Z,findFolderByName:O,readRootFolderForType:X,isDuplicateNameInParent:w,createDocument:T,readDocument:G,updateDocument:v,deleteDocument:f,saveDraft:V,readDraft:N,publishDocument:h,discardDraft:A,readVersion:S,getVersions:I,findDocumentByName:D,listDocuments:B,setEditState:g,getEditState:R,clearEditState:y,createTemplate:t,readTemplate:K8,updateTemplate:R8,deleteTemplate:I8,saveTemplateDraft:E8,readTemplateDraft:m8,publishTemplate:t8,discardTemplateDraft:g8,readTemplateVersion:V6,getTemplateVersions:C3,findTemplateByName:P3,listTemplates:E4,setTemplateEditState:a3,getTemplateEditState:$1,clearTemplateEditState:l$,createFieldDefinition:S6,readFieldDefinition:R3,findFieldDefinitionByName:V8,getFieldDefinitionsForOwner:A8,readDefaultFieldDefinition:x8,resolveFieldDefinition:u8,deleteFieldDefinition:J6,setFieldValue:n6,getFieldValue:N4,deleteFieldValue:D3,evictFolder:$.evictFolder,subscribe:q.subscribe,subscribeAll:q.subscribeAll})},mJ8=Object.freeze({create:AH6});var kH6=($)=>{let{id:K,code:q,name:Y,pk:z,createdAt:J,updatedAt:P}=$,W=Nw.create(),H=Nw.create(),Z=Nw.create(),O=Nw.create(),{store:X,mutationApi:w}=gJ8.create({id:K,code:q,name:Y,pk:z,createdAt:J,updatedAt:P,folderCache:W}),T=yJ8.create({inner:X,folderCache:W,documentCache:H,templateCache:Z,fieldDefinitionCache:O});return{store:mJ8.create({inner:T,storeCode:q}),mutationApi:w}},pJ8=Object.freeze({create:kH6});var MH6=({id:$,name:K,createdAt:q,updatedAt:Y,children:z=[]})=>{let J=[...z],P=new Map,{entityFns:W,mutationFns:H}=w5.create({id:$,name:K,createdAt:q,updatedAt:Y}),Z=()=>{P.clear();for(let O8 of J){let T8=O8.getCodes();for(let q8 of T8)P.set(q8,O8)}};Z();let O=()=>"demux",X=()=>J.map((O8)=>O8.getObjectId()),w=()=>[...J],T=()=>{return new Set(P.keys())},G=()=>({id:$,name:K,createdAt:q,updatedAt:Y,type:"demux",childIds:X()}),v=(O8)=>{J.push(O8),Z()},f=(O8)=>{return P.get(O8)??null},V=async(O8,T8,{store:q8,storeCode:j8,parentId:C,name:u,subtype:E},b)=>{let m=q8??j8;r.factory(!m,n.validation,"store parameter is required","MISSING_STORE_CODE");let c=f(m);return r.factory(!c,n.notFound,`No child store with code: ${m}`,"STORE_NOT_FOUND"),c.createFolder(O8,T8,{storeCode:m,parentId:C,name:u,subtype:E},b)},h=async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readFolder(O8,T8,{id:q8})},s8=Object.freeze({...W,getType:O,getCodes:T,getChildIds:X,getChildren:w,toJSON:G,createFolder:V,readFolder:h,updateFolder:async(O8,T8,{id:q8,name:j8,parentId:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.updateFolder(O8,T8,{id:q8,name:j8,parentId:C},u)},deleteFolder:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteFolder(O8,T8,{id:q8},j8)},evictFolder:(O8)=>{let T8=O8?.[0],q8=f(T8);if(q8)q8.evictFolder(O8)},getFolder:async(O8,T8,{id:q8})=>{return h(O8,T8,{id:q8})},listFolderContents:async(O8,T8,{folderId:q8,store:j8,storeCode:C,type:u})=>{let E;if(q8!==null&&q8!==void 0)E=q8[0];else{let c=j8??C;r.factory(!c,n.validation,"store required when folderId is null","STORE_CODE_REQUIRED"),E=c}let b=f(E);r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND");let m={...T8,storeCode:E};return b.listFolderContents(O8,m,{folderId:q8,type:u})},getFolderByPath:async(O8,T8,{path:q8,type:j8,store:C,storeCode:u})=>{let E=C??u;r.factory(!E,n.validation,"store required for getFolderByPath","STORE_CODE_REQUIRED");let b=f(E);if(!b)return null;let m={...T8,storeCode:E};return b.getFolderByPath(O8,m,{path:q8,type:j8})},isDuplicateNameInParent:async(O8,T8,q8,j8,C=null)=>{let u;if(q8)u=q8[0];else{let b=J[0];if(!b)r.factory(!0,n.notFound,"No child stores available","STORE_NOT_FOUND");u=[...b.getCodes()][0]}let E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.isDuplicateNameInParent(O8,T8,q8,j8,C)},findFolderByName:async(O8,T8,q8,j8)=>{let C=q8[0],u=f(C);if(!u)return null;return u.findFolderByName(O8,T8,q8,j8)},readRootFolderForType:async(O8,T8,q8,j8)=>{let C=f(j8);return r.factory(!C,n.notFound,`No child store with code: ${j8}`,"STORE_NOT_FOUND"),C.readRootFolderForType(O8,T8,q8,j8)},createFieldDefinition:async(O8,T8,{storeCode:q8,ownerEntityId:j8,name:C,label:u,description:E,primitiveType:b,required:m,multiplicity:c,isSystem:o},P8)=>{let f8=f(q8);return r.factory(!f8,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),f8.createFieldDefinition(O8,T8,{storeCode:q8,ownerEntityId:j8,name:C,label:u,description:E,primitiveType:b,required:m,multiplicity:c,isSystem:o},P8)},readFieldDefinition:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readFieldDefinition(O8,T8,{id:q8})},readDefaultFieldDefinition:async(O8,T8,q8)=>{let j8=f(q8);return r.factory(!j8,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),j8.readDefaultFieldDefinition(O8,T8)},getFieldDefinitionsForOwner:async(O8,T8,{storeCode:q8,ownerEntityPk:j8,includeSystem:C})=>{let u=f(q8);return r.factory(!u,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),u.getFieldDefinitionsForOwner(O8,T8,{ownerEntityPk:j8,includeSystem:C})},deleteFieldDefinition:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteFieldDefinition(O8,T8,{id:q8},j8)},setFieldValue:async(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C,value:u,values:E},b)=>{let m=q8?.[0],c=f(m);return r.factory(!c,n.notFound,`No child store with code: ${m}`,"STORE_NOT_FOUND"),c.setFieldValue(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C,value:u,values:E},b)},deleteFieldValue:async(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.deleteFieldValue(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C},u)},createDocument:async(O8,T8,{storeCode:q8,...j8},C)=>{let u=f(q8);return r.factory(!u,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),u.createDocument(O8,T8,{storeCode:q8,...j8},C)},readDocument:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readDocument(O8,T8,{id:q8})},updateDocument:async(O8,T8,{id:q8,...j8},C)=>{let u=q8?.[0],E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.updateDocument(O8,T8,{id:q8,...j8},C)},deleteDocument:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteDocument(O8,T8,{id:q8},j8)},saveDraft:async(O8,T8,{id:q8,content:j8,clientId:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.saveDraft(O8,T8,{id:q8,content:j8,clientId:C},u)},readDraft:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readDraft(O8,T8,{id:q8})},publishDocument:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.publishDocument(O8,T8,{id:q8},j8)},discardDraft:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.discardDraft(O8,T8,{id:q8},j8)},setEditState:async(O8,T8,{id:q8,clientId:j8},C)=>{let u=q8?.[0],E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.setEditState(O8,T8,{id:q8,clientId:j8},C)},clearEditState:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.clearEditState(O8,T8,{id:q8},j8)},getEditState:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.getEditState(O8,T8,{id:q8})},readVersion:async(O8,T8,{id:q8,versionNumber:j8})=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.readVersion(O8,T8,{id:q8,versionNumber:j8})},getVersions:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return[];return C.getVersions(O8,T8,{id:q8})},findDocumentByName:async(O8,T8,q8,j8)=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.findDocumentByName(O8,T8,q8,j8)},listDocuments:async(O8,T8,{parentId:q8,storeCode:j8})=>{let C,u;if(q8)C=q8[0],u=q8;else{r.factory(!j8,n.validation,"storeCode required when parentId is null","MISSING_STORE_CODE"),C=j8;let b=f(C);r.factory(!b,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND");try{u=(await b.readRootFolderForType(O8,T8,"d",C)).getObjectId()}catch(m){u=null}}let E=f(C);return r.factory(!E,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),E.listDocuments(O8,T8,{parentId:u})},createTemplate:async(O8,T8,{storeCode:q8,...j8},C)=>{let u=f(q8);return r.factory(!u,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),u.createTemplate(O8,T8,{storeCode:q8,...j8},C)},readTemplate:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readTemplate(O8,T8,{id:q8})},updateTemplate:async(O8,T8,{id:q8,...j8},C)=>{let u=q8?.[0],E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.updateTemplate(O8,T8,{id:q8,...j8},C)},deleteTemplate:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteTemplate(O8,T8,{id:q8},j8)},saveTemplateDraft:async(O8,T8,{id:q8,content:j8,clientId:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.saveTemplateDraft(O8,T8,{id:q8,content:j8,clientId:C},u)},readTemplateDraft:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readTemplateDraft(O8,T8,{id:q8})},publishTemplate:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.publishTemplate(O8,T8,{id:q8},j8)},discardTemplateDraft:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.discardTemplateDraft(O8,T8,{id:q8},j8)},readTemplateVersion:async(O8,T8,{id:q8,versionNumber:j8})=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.readTemplateVersion(O8,T8,{id:q8,versionNumber:j8})},getTemplateVersions:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return[];return C.getTemplateVersions(O8,T8,{id:q8})},findTemplateByName:async(O8,T8,q8,j8)=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.findTemplateByName(O8,T8,q8,j8)},listTemplates:async(O8,T8,{parentId:q8,storeCode:j8})=>{let C,u;if(q8)C=q8[0],u=q8;else{r.factory(!j8,n.validation,"storeCode required when parentId is null","MISSING_STORE_CODE"),C=j8;let b=f(C);r.factory(!b,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND");try{u=(await b.readRootFolderForType(O8,T8,"t",C)).getObjectId()}catch(m){u=null}}let E=f(C);return r.factory(!E,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),E.listTemplates(O8,T8,{parentId:u})},subscribe:(O8,T8)=>{let q8=J.map((j8)=>j8.subscribe(O8,T8));return()=>q8.forEach((j8)=>j8())},subscribeAll:(O8)=>{let T8=J.map((q8)=>q8.subscribeAll(O8));return()=>T8.forEach((q8)=>q8())}}),P6=Object.freeze({...H,addChild:v});return{store:s8,mutationApi:P6}},cJ8=Object.freeze({create:MH6});var Cw=($)=>{if(!$||$.length<2||$[0]!=="S")return null;let K=parseInt($.slice(1),10);return isNaN(K)?null:K},Gx=($)=>$.object_id,vx=($)=>{let K=Gx($),q=$.id,{store:Y,mutationApi:z}=pJ8.create({id:K,code:$.code,name:$.name,createdAt:$.created_at,updatedAt:$.updated_at,pk:q});return{store:Y,mutationApi:z,id:K,pk:q}},BJ8=($,K)=>{let q=Gx($),Y=$.id,{store:z,mutationApi:J}=cJ8.create({id:q,name:$.name,createdAt:$.created_at,updatedAt:$.updated_at,children:K});return{store:z,mutationApi:J,id:q,pk:Y}},NH6=async($,K,q,Y,z)=>{let J=await $Y.readEntityTypeId($,K,"n",null),P=await v9.nextSeq($,"store",q,"n"),W=`${Y}n${P}`,H=M1();await $.insertInto("field_definitions").values({store_id:q,object_id:W,entity_type_id:J,type_code:"n",seq:P,owner_entity_id:null,name:"default",label:"Default Field",description:"Auto-created for ad-hoc fields without explicit definitions",primitive_type:"string",required:0,multiplicity:"single",config:null,is_system:1,ordinal:null,created_at:H,updated_at:H}).execute()},hH6=()=>{let $=new Map,K=new Map,q=async(O,X,{code:w,name:T},G)=>{let v=M1(),f=await v9.nextSeq(O,"global",null,"s"),V=`S${f}`,h=await O.insertInto("stores").values({id:f,object_id:V,type:"local",code:w,name:T,created_at:v,updated_at:v}).returningAll().executeTakeFirstOrThrow(),{store:A,mutationApi:N,id:S,pk:I}=vx(h);return await NH6(O,X,I,w,G),G(()=>{$.set(S,T6.create(A,N,I)),K.set(I,S)}),A},Y=async(O,X,{name:w},T)=>{let G=M1(),v=await v9.nextSeq(O,"global",null,"s"),f=`S${v}`,V=await O.insertInto("stores").values({id:v,object_id:f,type:"demux",code:null,name:w,created_at:G,updated_at:G}).returningAll().executeTakeFirstOrThrow(),{store:h,mutationApi:A,id:N,pk:S}=BJ8(V,[]);return T(()=>{$.set(N,T6.create(h,A,S)),K.set(S,N)}),h},z=async(O,X,w)=>{let T=$.get(w);if(T)return T.getEntity();let G=Cw(w);if(G===null)return null;let v=await O.selectFrom("stores").selectAll().where("id","=",G).executeTakeFirst();if(!v)return null;let f,V,h,A;if(v.type==="local"){let N=vx(v);f=N.store,V=N.mutationApi,h=N.id,A=N.pk}else{let N=await O.selectFrom("store_children").innerJoin("stores","stores.id","store_children.child_store_id").select(["stores.object_id"]).where("store_children.parent_store_id","=",v.id).execute(),S=[];for(let D of N){let B=await z(O,X,D.object_id);if(B)S.push(B)}let I=BJ8(v,S);f=I.store,V=I.mutationApi,h=I.id,A=I.pk}return $.set(h,T6.create(f,V,A)),K.set(A,h),f};return Object.freeze({createLocalStore:q,createDemuxStore:Y,readStore:z,readSharedStore:async(O,X)=>{let w=await O.selectFrom("stores").selectAll().where("code","=","B").executeTakeFirstOrThrow(),T=Gx(w),G=$.get(T);if(G)return G.getEntity();let{store:v,mutationApi:f,pk:V}=vx(w);return $.set(T,T6.create(v,f,V)),K.set(V,T),v},readRootStoreForProject:async(O,X,w)=>{let T=w&&w.length>=2&&w[0]==="P"?parseInt(w.slice(1),10):null;r.factory(T===null||isNaN(T),n.validation,`Invalid project ID: ${w}`,"INVALID_PROJECT_ID");let G=await O.selectFrom("project_stores").innerJoin("stores","stores.id","project_stores.store_id").select(["stores.object_id"]).where("project_stores.project_id","=",T).where("project_stores.is_root","=",1).executeTakeFirst();return r.factory(!G,n.notFound,`Root store not found for project: ${w}`,"ROOT_STORE_NOT_FOUND"),await z(O,X,G.object_id)},addChildToDemux:async(O,X,{demuxId:w,childId:T},G)=>{let v=$.get(w),f=$.get(T),V,h;if(v)V=v.getPk();else{let A=Cw(w);r.factory(A===null,n.validation,`Invalid demux store ID: ${w}`,"INVALID_ID");let N=await O.selectFrom("stores").select("id").where("id","=",A).executeTakeFirst();r.factory(!N,n.notFound,`Demux store not found: ${w}`,"STORE_NOT_FOUND"),V=N.id}if(f)h=f.getPk();else{let A=Cw(T);r.factory(A===null,n.validation,`Invalid child store ID: ${T}`,"INVALID_ID");let N=await O.selectFrom("stores").select("id").where("id","=",A).executeTakeFirst();r.factory(!N,n.notFound,`Child store not found: ${T}`,"STORE_NOT_FOUND"),h=N.id}await O.insertInto("store_children").values({parent_store_id:V,child_store_id:h}).execute(),G(()=>{let A=$.get(w),N=$.get(T);if(A&&N)A.getMutationApi().addChild(N.getEntity())})},addStoresToProject:async(O,X,{projectId:w,rootStoreId:T,storeIds:G})=>{let v=w&&w.length>=2&&w[0]==="P"?parseInt(w.slice(1),10):null;r.factory(v===null||isNaN(v),n.validation,`Invalid project ID: ${w}`,"INVALID_PROJECT_ID");let f=await O.selectFrom("projects").select("id").where("id","=",v).executeTakeFirst();r.factory(!f,n.notFound,`Project not found: ${w}`,"PROJECT_NOT_FOUND");let V=f.id,h=$.get(T),A;if(h)A=h.getPk();else{let N=Cw(T);r.factory(N===null,n.validation,`Invalid root store ID: ${T}`,"INVALID_ID");let S=await O.selectFrom("stores").select("id").where("id","=",N).executeTakeFirst();r.factory(!S,n.notFound,`Root store not found: ${T}`,"STORE_NOT_FOUND"),A=S.id}for(let N of G){let S=$.get(N),I;if(S)I=S.getPk();else{let D=Cw(N);r.factory(D===null,n.validation,`Invalid store ID: ${N}`,"INVALID_ID");let B=await O.selectFrom("stores").select("id").where("id","=",D).executeTakeFirst();r.factory(!B,n.notFound,`Store not found: ${N}`,"STORE_NOT_FOUND"),I=B.id}await O.insertInto("project_stores").values({project_id:V,store_id:I,is_root:I===A?1:0}).execute()}},evictStore:(O)=>{let X=$.get(O);if(X)K.delete(X.getPk());$.delete(O)}})},UJ8=Object.freeze({create:hH6});var CH6=({store:$})=>{let K=async(Z,O,X,w,T,G)=>{let v=X.split("/").filter((h)=>h.trim());r.factory(v.length===0,n.validation,"Path cannot be empty or contain only slashes","EMPTY_PATH");let f=await $.readRootFolderForType(Z,O,w,T);for(let h=0;h<v.length-1;h++){let A=fK.validateFolderName(v[h]),N=await $.findFolderByName(Z,O,f.getObjectId(),A);if(N)f=N;else f=await $.createFolder(Z,O,{storeCode:T,parentId:f.getObjectId(),name:A},G)}let V=fK.validateFolderName(v[v.length-1]);return{parentObjectId:f.getObjectId(),name:V}},q=async(Z,O,{store:X,path:w,type:T},G)=>{r.factory(!w||w==="/",n.validation,"Path cannot be empty","EMPTY_PATH"),r.factory(T!=="d"&&T!=="t",n.validation,'Type must be "d" or "t"',"INVALID_TYPE"),r.factory(!X,n.validation,"store is required","MISSING_STORE_CODE");let{parentObjectId:v,name:f}=await K(Z,O,w,T,X,G),V=await $.isDuplicateNameInParent(Z,O,v,f);return r.factory(V,n.conflict,`Folder "${f}" already exists in parent`,"DUPLICATE_NAME"),await $.createFolder(Z,O,{storeCode:X,parentId:v,name:f},G)},Y=async(Z,O,{id:X})=>{return await $.readFolder(Z,O,{id:X})};return Object.freeze({resolvePath:K,createFolder:q,readFolder:Y,renameFolder:async(Z,O,{id:X,name:w},T)=>{let G=await Y(Z,O,{id:X});r.factory(!G,n.notFound,`Folder not found: ${X}`,"FOLDER_NOT_FOUND"),r.factory(fK.isRootFolder(G),n.validation,"Cannot rename root folder","CANNOT_RENAME_ROOT");let v=fK.validateFolderName(w),f=await $.isDuplicateNameInParent(Z,O,G.getParentId(),v,X);return r.factory(f,n.conflict,`Folder "${v}" already exists in parent`,"DUPLICATE_NAME"),await $.updateFolder(Z,O,{id:X,name:v},T)},moveFolder:async(Z,O,{id:X,parentId:w},T)=>{let G=await Y(Z,O,{id:X});r.factory(!G,n.notFound,`Folder not found: ${X}`,"FOLDER_NOT_FOUND"),r.factory(fK.isRootFolder(G),n.validation,"Cannot move root folder","CANNOT_MOVE_ROOT");let v=await Y(Z,O,{id:w});r.factory(!v,n.notFound,`Parent folder not found: ${w}`,"PARENT_NOT_FOUND"),r.factory(!X||X.length<1,n.validation,"Invalid folder ID format","INVALID_ID_FORMAT"),r.factory(!w||w.length<1,n.validation,"Invalid parent ID format","INVALID_PARENT_ID_FORMAT");let f=X[0],V=w[0];r.factory(f!==V,n.validation,"Cannot move folders between stores","CROSS_STORE_MOVE"),r.factory(X===w,n.validation,"Cannot move folder into itself","SELF_MOVE");let h=w;while(h!==null){r.factory(h===X,n.validation,"Cannot move folder into its own descendant","CYCLE_DETECTED");let N=await $.readFolder(Z,O,{id:h});if(!N)break;h=N.getParentId()}let A=await $.isDuplicateNameInParent(Z,O,w,G.getName(),X);return r.factory(A,n.conflict,`Folder "${G.getName()}" already exists in target parent`,"DUPLICATE_NAME"),await $.updateFolder(Z,O,{id:X,parentId:w},T)},deleteFolder:async(Z,O,{id:X},w)=>{let T=await Y(Z,O,{id:X});return r.factory(!T,n.notFound,`Folder not found: ${X}`,"FOLDER_NOT_FOUND"),r.factory(fK.isRootFolder(T),n.validation,"Cannot delete root folder","CANNOT_DELETE_ROOT"),await $.deleteFolder(Z,O,{id:X},w)},getFolderByPath:async(Z,O,{path:X,type:w,storeCode:T})=>{return await $.getFolderByPath(Z,O,{path:X,type:w,storeCode:T})},listFolderContents:async(Z,O,{folderId:X,type:w,storeCode:T})=>{return await $.listFolderContents(Z,O,{folderId:X,type:w,storeCode:T})}})},lJ8=Object.freeze({create:CH6});var RH6=({store:$})=>{let K=async(W,H,{store:Z,ownerEntityId:O,name:X,label:w,description:T,primitiveType:G,required:v,multiplicity:f,isSystem:V=!1},h)=>{r.factory(!Z,n.validation,"store is required","MISSING_STORE_CODE"),r.factory(G!=="string"&&G!=="object_ref",n.validation,`Invalid primitiveType: ${G}. Must be 'string' or 'object_ref'`,"INVALID_PRIMITIVE_TYPE"),r.factory(f!=="single"&&f!=="multi",n.validation,`Invalid multiplicity: ${f}. Must be 'single' or 'multi'`,"INVALID_MULTIPLICITY");let A=/^[a-zA-Z0-9_]+$/;return r.factory(!X||!A.test(X),n.validation,`Invalid name: ${X}. Must contain only alphanumeric characters and underscores`,"INVALID_NAME"),await $.createFieldDefinition(W,H,{storeCode:Z,ownerEntityId:O,name:X,label:w,description:T,primitiveType:G,required:v,multiplicity:f,isSystem:V},h)},q=async(W,H,{id:Z})=>{return r.factory(!Z||Z.length<3,n.validation,"Invalid field definition ID","INVALID_ID"),await $.readFieldDefinition(W,H,{id:Z})};return Object.freeze({createFieldDefinition:K,readFieldDefinition:q,getFieldDefinitionsForOwner:async(W,H,{store:Z,ownerEntityId:O,includeSystem:X=!0})=>{r.factory(!Z,n.validation,"store is required","MISSING_STORE_CODE");let w=null;if(O)w=null;return await $.getFieldDefinitionsForOwner(W,H,{storeCode:Z,ownerEntityPk:w,includeSystem:X})},deleteFieldDefinition:async(W,H,{id:Z},O)=>{let X=await q(W,H,{id:Z});return r.factory(!X,n.notFound,`Field definition not found: ${Z}`,"DEFINITION_NOT_FOUND"),r.factory(X.getIsSystem(),n.validation,`Cannot delete system field definition: ${Z}`,"SYSTEM_DEFINITION"),await $.deleteFieldDefinition(W,H,{id:Z},O)},setFieldValue:async(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X,value:w,values:T},G)=>{return r.factory(!Z,n.validation,"entityId is required","MISSING_ENTITY_ID"),r.factory(!O&&!X,n.validation,"Either fieldDefinitionId or fieldName must be provided","MISSING_FIELD_IDENTIFIER"),r.factory(w!==void 0&&T!==void 0,n.validation,"Cannot provide both value and values","AMBIGUOUS_VALUE"),r.factory(w===void 0&&T===void 0,n.validation,"Either value or values must be provided","MISSING_VALUE"),await $.setFieldValue(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X,value:w,values:T},G)},deleteFieldValue:async(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X},w)=>{return r.factory(!Z,n.validation,"entityId is required","MISSING_ENTITY_ID"),r.factory(!O&&!X,n.validation,"Either fieldDefinitionId or fieldName must be provided","MISSING_FIELD_IDENTIFIER"),await $.deleteFieldValue(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X},w)}})},FJ8=Object.freeze({create:RH6});var DH6=({store:$,folderService:K,entityName:q})=>{let Y=async(V,h,{store:A,path:N,type:S,content:I},D)=>{r.factory(!N||N==="/",n.validation,"Path cannot be empty","EMPTY_PATH"),r.factory(!A,n.validation,"store is required","MISSING_STORE_CODE");let B=N.split("/").filter((K8)=>K8.trim()),g=B[B.length-1],R=B.slice(0,-1).join("/")||null,y;if(R){let K8=await K.resolvePath(V,h,R,S,A,D),R8=await $.findFolderByName(V,h,K8.parentObjectId,K8.name);if(R8)y=R8.getObjectId();else y=(await $.createFolder(V,h,{storeCode:A,parentId:K8.parentObjectId,name:K8.name},D)).getObjectId()}else y=(await $.readRootFolderForType(V,h,S,A)).getObjectId();let t=await $.findDocumentByName(V,h,y,g);return r.factory(t,n.conflict,`${q} "${g}" already exists in folder`,"DUPLICATE_NAME"),await $.createDocument(V,h,{storeCode:A,parentId:y,name:g,initialContent:I},D)},z=async(V,h,{id:A})=>{let N=await $.readDocument(V,h,{id:A});return r.factory(!N,n.notFound,`${q} not found: ${A}`,"NOT_FOUND"),N};return Object.freeze({create:Y,read:z,readByPath:async(V,h,{path:A,type:N,storeCode:S})=>{let I=A.split("/").filter((R)=>R.trim()),D=I[I.length-1],B=I.slice(0,-1).join("/")||null,g;if(B){let R=await $.getFolderByPath(V,h,{path:B,type:N,storeCode:S});if(!R)return null;g=R.getObjectId()}else g=(await $.readRootFolderForType(V,h,N,S)).getObjectId();return await $.findDocumentByName(V,h,g,D)},updatePath:async(V,h,{id:A,path:N,type:S},I)=>{r.factory(!N||N==="/",n.validation,"Path cannot be empty","EMPTY_PATH");let D=await z(V,h,{id:A}),B=N.split("/").filter((I8)=>I8.trim()),g=B[B.length-1],R=B.slice(0,-1).join("/")||null,y=A[0],t;if(R){let I8=await K.resolvePath(V,h,R,S,y,I),E8=await $.findFolderByName(V,h,I8.parentObjectId,I8.name);if(E8)t=E8.getObjectId();else t=(await $.createFolder(V,h,{storeCode:y,parentId:I8.parentObjectId,name:I8.name},I)).getObjectId()}else t=(await $.readRootFolderForType(V,h,S,y)).getObjectId();let K8=g!==D.getName(),R8=t!==D.getParentId();if(!K8&&!R8)return D;if(K8||R8){let I8=await $.findDocumentByName(V,h,t,g);r.factory(I8&&I8.getObjectId()!==A,n.conflict,`${q} "${g}" already exists in target folder`,"DUPLICATE_NAME")}return await $.updateDocument(V,h,{id:A,name:K8?g:void 0,parentId:R8?t:void 0},I)},del:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.deleteDocument(V,h,{id:A},N)},saveDraft:async(V,h,{id:A,content:N,clientId:S},I)=>{return await z(V,h,{id:A}),await $.saveDraft(V,h,{id:A,content:N,clientId:S},I)},readDraft:async(V,h,{id:A})=>{await z(V,h,{id:A});let N=await $.readDraft(V,h,{id:A});return r.factory(!N,n.notFound,`No draft found for ${q}: ${A}`,"DRAFT_NOT_FOUND"),N},publish:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.publishDocument(V,h,{id:A},N)},discardDraft:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.discardDraft(V,h,{id:A},N)},readVersion:async(V,h,{id:A,versionNumber:N})=>{await z(V,h,{id:A});let S=await $.readVersion(V,h,{id:A,versionNumber:N});return r.factory(!S,n.notFound,`Version ${N} not found for ${q}: ${A}`,"VERSION_NOT_FOUND"),S},getVersions:async(V,h,{id:A})=>{return await z(V,h,{id:A}),await $.getVersions(V,h,{id:A})},setEditState:async(V,h,{id:A,clientId:N},S)=>{return await z(V,h,{id:A}),await $.setEditState(V,h,{id:A,clientId:N},S)},clearEditState:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.clearEditState(V,h,{id:A},N)},getEditState:async(V,h,{id:A})=>{return await z(V,h,{id:A}),await $.getEditState(V,h,{id:A})}})},Vf=Object.freeze({create:DH6});var SH6=({store:$,folderService:K})=>{let q=Vf.create({store:$,folderService:K,entityName:"Document"}),Y="d";return Object.freeze({createDocument:async(A,N,{store:S,path:I,type:D,content:B},g)=>{return r.factory(D!=="d",n.validation,'type must be "d" for documents',"INVALID_TYPE"),await q.create(A,N,{store:S,path:I,type:D,content:B},g)},readDocument:async(A,N,{id:S})=>{return await q.read(A,N,{id:S})},readDocumentByPath:async(A,N,{path:S,type:I,storeCode:D})=>{return r.factory(I!=="d",n.validation,'type must be "d" for documents',"INVALID_TYPE"),await q.readByPath(A,N,{path:S,type:I,storeCode:D})},updateDocumentPath:async(A,N,{id:S,path:I,type:D},B)=>{return r.factory(D!=="d",n.validation,'type must be "d" for documents',"INVALID_TYPE"),await q.updatePath(A,N,{id:S,path:I,type:D},B)},deleteDocument:async(A,N,{id:S},I)=>{return await q.del(A,N,{id:S},I)},saveDraft:async(A,N,{id:S,content:I,clientId:D},B)=>{return await q.saveDraft(A,N,{id:S,content:I,clientId:D},B)},readDraft:async(A,N,{id:S})=>{return await q.readDraft(A,N,{id:S})},publishDocument:async(A,N,{id:S},I)=>{return await q.publish(A,N,{id:S},I)},discardDraft:async(A,N,{id:S},I)=>{return await q.discardDraft(A,N,{id:S},I)},readVersion:async(A,N,{id:S,versionNumber:I})=>{return await q.readVersion(A,N,{id:S,versionNumber:I})},getVersions:async(A,N,{id:S})=>{return await q.getVersions(A,N,{id:S})},setEditState:async(A,N,{id:S,clientId:I},D)=>{return await q.setEditState(A,N,{id:S,clientId:I},D)},clearEditState:async(A,N,{id:S},I)=>{return await q.clearEditState(A,N,{id:S},I)},getEditState:async(A,N,{id:S})=>{return await q.getEditState(A,N,{id:S})},listDocuments:async(A,N,{parentId:S,storeCode:I})=>{return await $.listDocuments(A,N,{parentId:S,storeCode:I})}})},iJ8=Object.freeze({create:SH6});var jO8=H1(HH8(),1),vO8=H1(Rb(),1),GO8=($)=>{if(!$)return{parameters:{},target:null,targetPath:null,body:""};let K=jO8.default($),q=K.data?.parameters||{},Y=K.data?.target||null,z=K.data?.targetPath||null,J=K.content;return{parameters:q,target:Y,targetPath:z,body:J}},j_6=($)=>{if(!$)return new Set;let K=new Set;try{let q=vO8.default.parse($),Y=(z)=>{if(!z)return;if(z.type==="PathExpression"){if(!z.data&&z.parts.length>0){let J=z.parts.join(".");if(!J.startsWith("@"))K.add(J)}}if(z.program)Y(z.program);if(z.inverse)Y(z.inverse);if(z.body)z.body.forEach(Y);if(z.params)z.params.forEach(Y);if(z.hash?.pairs)z.hash.pairs.forEach((J)=>Y(J.value));if(z.path)Y(z.path)};Y(q)}catch(q){throw new Error(`Invalid Handlebars template: ${q.message}`)}return K},v_6=($)=>{if(!$)return{parameters:{},target:null,targetPath:null};let{parameters:K,target:q,targetPath:Y}=GO8($);return{parameters:K,target:q,targetPath:Y}},v5=Object.freeze({parseFrontMatter:GO8,extractVariables:j_6,getParameters:v_6});var Db=H1(Rb(),1);import G_6 from"crypto";var __6=({store:$,folderService:K})=>{let Y=((I)=>{return Object.freeze({findDocumentByName:(...D)=>I.findTemplateByName(...D),createDocument:(...D)=>I.createTemplate(...D),readDocument:(...D)=>I.readTemplate(...D),updateDocument:(...D)=>I.updateTemplate(...D),deleteDocument:(...D)=>I.deleteTemplate(...D),saveDraft:(...D)=>I.saveTemplateDraft(...D),readDraft:(...D)=>I.readTemplateDraft(...D),publishDocument:(...D)=>I.publishTemplate(...D),discardDraft:(...D)=>I.discardTemplateDraft(...D),readVersion:(...D)=>I.readTemplateVersion(...D),getVersions:(...D)=>I.getTemplateVersions(...D),findFolderByName:(...D)=>I.findFolderByName(...D),createFolder:(...D)=>I.createFolder(...D),readRootFolderForType:(...D)=>I.readRootFolderForType(...D),getFolderByPath:(...D)=>I.getFolderByPath(...D),setEditState:(...D)=>I.setEditState(...D),clearEditState:(...D)=>I.clearEditState(...D),getEditState:(...D)=>I.getEditState(...D)})})($),z=Vf.create({store:Y,folderService:K,entityName:"Template"}),J="t",P=async(I,D,{store:B,path:g,type:R,content:y},t)=>{return r.factory(R!=="t",n.validation,'type must be "t" for templates',"INVALID_TYPE"),await z.create(I,D,{store:B,path:g,type:R,content:y},t)},W=async(I,D,{id:B})=>{return await z.read(I,D,{id:B})};return Object.freeze({createTemplate:P,readTemplate:W,readTemplateByPath:async(I,D,{path:B,type:g,storeCode:R})=>{return r.factory(g!=="t",n.validation,'type must be "t" for templates',"INVALID_TYPE"),await z.readByPath(I,D,{path:B,type:g,storeCode:R})},updateTemplatePath:async(I,D,{id:B,path:g,type:R},y)=>{return r.factory(R!=="t",n.validation,'type must be "t" for templates',"INVALID_TYPE"),await z.updatePath(I,D,{id:B,path:g,type:R},y)},deleteTemplate:async(I,D,{id:B},g)=>{return await z.del(I,D,{id:B},g)},saveDraft:async(I,D,{id:B,content:g,clientId:R},y)=>{return await z.saveDraft(I,D,{id:B,content:g,clientId:R},y)},readDraft:async(I,D,{id:B})=>{return await z.readDraft(I,D,{id:B})},publishTemplate:async(I,D,{id:B},g)=>{return await z.publish(I,D,{id:B},g)},discardDraft:async(I,D,{id:B},g)=>{return await z.discardDraft(I,D,{id:B},g)},readVersion:async(I,D,{id:B,versionNumber:g})=>{return await z.readVersion(I,D,{id:B,versionNumber:g})},getVersions:async(I,D,{id:B})=>{return await z.getVersions(I,D,{id:B})},setEditState:async(I,D,{id:B,clientId:g},R)=>{return await z.setEditState(I,D,{id:B,clientId:g},R)},clearEditState:async(I,D,{id:B},g)=>{return await z.clearEditState(I,D,{id:B},g)},getEditState:async(I,D,{id:B})=>{return await z.getEditState(I,D,{id:B})},renderTemplate:async(I,D,{id:B,params:g={},target:R="stdout",targetOptions:y={}},t,K8,R8)=>{let I8=await W(I,D,{id:B});r.factory(!I8,n.notFound,"Template not found","NOT_FOUND");let E8=I8.getPublishedContent();r.factory(!E8,n.validation,"Template has no published content","NO_PUBLISHED_CONTENT");let{body:t8}=v5.parseFrontMatter(E8),g8;try{g8=Db.default.compile(t8)(g)}catch(m8){throw n.validation(`Failed to render template: ${m8.message}`,"RENDER_ERROR")}switch(R){case"stdout":return{success:!0,target:"stdout",content:g8};case"clipboard":return await K8.copyToClipboard(g8),{success:!0,target:"clipboard",content:g8,message:"Content copied to clipboard"};case"document":{let{path:m8,publish:V6,storeCode:C3="A"}=y;r.factory(!m8,n.validation,"targetOptions.path is required for document target","MISSING_PATH");let P3=G_6.randomUUID(),E4=await R8.readDocumentByPath(I,D,{path:m8,type:"d",storeCode:C3}),a3=!1;if(!E4)E4=await R8.createDocument(I,D,{store:C3,path:m8,type:"d",content:g8},t),a3=!0;else await R8.saveDraft(I,D,{id:E4.getObjectId(),content:g8,clientId:P3},t);let $1=!1;if(V6)await R8.publishDocument(I,D,{id:E4.getObjectId()},t),$1=!0;return{success:!0,target:"document",documentId:E4.getObjectId(),created:a3,published:$1,path:m8}}case"file":throw n.validation("File target not yet implemented","NOT_IMPLEMENTED");default:throw n.validation(`Unknown target: ${R}`,"INVALID_TARGET")}},listTemplates:async(I,D,{parentId:B,storeCode:g})=>{return await $.listTemplates(I,D,{parentId:B,storeCode:g})}})},_O8=Object.freeze({create:__6});import iw from"node:fs";import fO8 from"node:os";import Qf from"node:path";var f_6=({projectStore:$,storeStore:K})=>{return Object.freeze({createProject:async(J,P,{name:W,path:H},Z)=>{if(await $.readProjectByPath(J,P,H)){let v=new Error("Project with this path already exists");throw v.code="DUPLICATE_PATH",v}let X=await $.createProject(J,P,{name:W,path:H},Z),w=await K.createLocalStore(J,P,{code:"A",name:"Project"},Z);await w.createFolder(J,P,{parentId:null,name:null,subtype:"root_d"},Z),await w.createFolder(J,P,{parentId:null,name:null,subtype:"root_t"},Z);let T=await K.readSharedStore(J,P),G=await K.createDemuxStore(J,P,{name:W},Z);return await K.addChildToDemux(J,P,{demuxId:G.getObjectId(),childId:w.getObjectId()},Z),await K.addChildToDemux(J,P,{demuxId:G.getObjectId(),childId:T.getObjectId()},Z),await K.addStoresToProject(J,P,{projectId:X.getObjectId(),rootStoreId:G.getObjectId(),storeIds:[G.getObjectId(),w.getObjectId(),T.getObjectId()]}),X},validateProjectPath:(J)=>{if(!J||typeof J!=="string"){let w=new Error("Path is required and must be a non-empty string");throw w.code="VALIDATION_ERROR",w}let P;if(J==="~")P=fO8.homedir();else if(J.startsWith("~/"))P=Qf.join(fO8.homedir(),J.slice(2));else P=J;let W=iw.existsSync(P),H=!1,Z=!1,O=!1;if(W)try{if(H=iw.statSync(P).isDirectory(),H){let T=Qf.join(P,".git");try{Z=iw.statSync(T).isDirectory()}catch{Z=!1}let G=Qf.join(P,".claude");try{O=iw.statSync(G).isDirectory()}catch{O=!1}}}catch(w){H=!1}let X=Qf.basename(P);return{path:P,exists:W,isDirectory:H,hasGit:Z,hasClaude:O,suggestedName:X}},listProjects:async(J)=>{let P=await J.selectFrom("projects").selectAll().where("name","!=","__system__").orderBy("created_at","desc").execute();return await Promise.all(P.map(async(H)=>{let O=(await J.selectFrom("project_stores").innerJoin("stores","stores.id","project_stores.store_id").select(["stores.object_id","stores.code","stores.name","stores.type"]).where("project_stores.project_id","=",H.id).where("stores.type","=","local").execute()).map((X)=>({id:X.code==="B"?"store:B":`store:${X.code}:${H.object_id}`,code:X.code,name:X.name}));return{objectId:H.object_id,name:H.name,path:H.path,createdAt:H.created_at,updatedAt:H.updated_at,children:O}}))}})},df=Object.freeze({create:f_6});var V_6=()=>{let $=[];return{enqueuePostCommitHook:(K)=>{$.push(K)},flush:()=>{for(let K of $)try{K()}catch(q){console.error("Post-commit hook failed:",q)}}}},A_6=({db:$,folderService:K,fieldService:q,documentService:Y,templateService:z,projectService:J})=>{let P=async(V8)=>{let A8=V_6(),x8;return await $.transaction().execute(async(u8)=>{x8=await V8(u8,A8)}),A8.flush(),x8};return Object.freeze({createFolder:async(V8,{store:A8,path:x8,type:u8})=>{return P(async(J6,n6)=>{return await K.createFolder(J6,V8,{store:A8,path:x8,type:u8},n6.enqueuePostCommitHook)})},renameFolder:async(V8,{id:A8,name:x8})=>{return P(async(u8,J6)=>{return await K.renameFolder(u8,V8,{id:A8,name:x8},J6.enqueuePostCommitHook)})},moveFolder:async(V8,{id:A8,parentId:x8})=>{return P(async(u8,J6)=>{return await K.moveFolder(u8,V8,{id:A8,parentId:x8},J6.enqueuePostCommitHook)})},deleteFolder:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await K.deleteFolder(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},createProject:async(V8,{name:A8,path:x8})=>{return P(async(u8,J6)=>{return await J.createProject(u8,V8,{name:A8,path:x8},J6.enqueuePostCommitHook)})},createFieldDefinition:async(V8,{store:A8,ownerEntityId:x8,name:u8,label:J6,description:n6,primitiveType:N4,required:D3,multiplicity:d4,isSystem:Z8})=>{return P(async(X8,U)=>{return await q.createFieldDefinition(X8,V8,{store:A8,ownerEntityId:x8,name:u8,label:J6,description:n6,primitiveType:N4,required:D3,multiplicity:d4,isSystem:Z8},U.enqueuePostCommitHook)})},readFieldDefinition:async(V8,{id:A8})=>{return await q.readFieldDefinition($,V8,{id:A8})},getFieldDefinitionsForOwner:async(V8,{store:A8,ownerEntityId:x8,includeSystem:u8})=>{return await q.getFieldDefinitionsForOwner($,V8,{store:A8,ownerEntityId:x8,includeSystem:u8})},setFieldValue:async(V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8,value:J6,values:n6})=>{return P(async(N4,D3)=>{return await q.setFieldValue(N4,V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8,value:J6,values:n6},D3.enqueuePostCommitHook)})},deleteFieldValue:async(V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8})=>{return P(async(J6,n6)=>{return await q.deleteFieldValue(J6,V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8},n6.enqueuePostCommitHook)})},deleteFieldDefinition:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await q.deleteFieldDefinition(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},createDocument:async(V8,{store:A8,path:x8,type:u8,content:J6})=>{return P(async(n6,N4)=>{return await Y.createDocument(n6,V8,{store:A8,path:x8,type:u8,content:J6},N4.enqueuePostCommitHook)})},readDocument:async(V8,{id:A8})=>{return await Y.readDocument($,V8,{id:A8})},updateDocumentPath:async(V8,{id:A8,path:x8,type:u8})=>{return P(async(J6,n6)=>{return await Y.updateDocumentPath(J6,V8,{id:A8,path:x8,type:u8},n6.enqueuePostCommitHook)})},deleteDocument:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.deleteDocument(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},saveDraft:async(V8,{id:A8,content:x8,clientId:u8})=>{return P(async(J6,n6)=>{return await Y.saveDraft(J6,V8,{id:A8,content:x8,clientId:u8},n6.enqueuePostCommitHook)})},readDraft:async(V8,{id:A8})=>{return await Y.readDraft($,V8,{id:A8})},publishDocument:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.publishDocument(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},discardDraft:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.discardDraft(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},readVersion:async(V8,{id:A8,versionNumber:x8})=>{return await Y.readVersion($,V8,{id:A8,versionNumber:x8})},getVersions:async(V8,{id:A8})=>{return await Y.getVersions($,V8,{id:A8})},setEditState:async(V8,{id:A8,clientId:x8})=>{return P(async(u8,J6)=>{return await Y.setEditState(u8,V8,{id:A8,clientId:x8},J6.enqueuePostCommitHook)})},clearEditState:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.clearEditState(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},getEditState:async(V8,{id:A8})=>{return await Y.getEditState($,V8,{id:A8})},createTemplate:async(V8,{store:A8,path:x8,type:u8,content:J6})=>{return P(async(n6,N4)=>{return await z.createTemplate(n6,V8,{store:A8,path:x8,type:u8,content:J6},N4.enqueuePostCommitHook)})},readTemplate:async(V8,{id:A8})=>{return await z.readTemplate($,V8,{id:A8})},updateTemplatePath:async(V8,{id:A8,path:x8,type:u8})=>{return P(async(J6,n6)=>{return await z.updateTemplatePath(J6,V8,{id:A8,path:x8,type:u8},n6.enqueuePostCommitHook)})},deleteTemplate:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.deleteTemplate(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},saveTemplateDraft:async(V8,{id:A8,content:x8,clientId:u8})=>{return P(async(J6,n6)=>{return await z.saveDraft(J6,V8,{id:A8,content:x8,clientId:u8},n6.enqueuePostCommitHook)})},publishTemplate:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.publishTemplate(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},discardTemplateDraft:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.discardDraft(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},readTemplateDraft:async(V8,{id:A8})=>{return await z.readDraft($,V8,{id:A8})},readTemplateVersion:async(V8,{id:A8,versionNumber:x8})=>{return await z.readVersion($,V8,{id:A8,versionNumber:x8})},getTemplateVersions:async(V8,{id:A8})=>{return await z.getVersions($,V8,{id:A8})},setTemplateEditState:async(V8,{id:A8,clientId:x8})=>{return P(async(u8,J6)=>{return await z.setEditState(u8,V8,{id:A8,clientId:x8},J6.enqueuePostCommitHook)})},clearTemplateEditState:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.clearEditState(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},getTemplateEditState:async(V8,{id:A8})=>{return await z.getEditState($,V8,{id:A8})},renderTemplate:async(V8,{id:A8,params:x8,target:u8,targetOptions:J6},n6,N4)=>{return P(async(D3,d4)=>{return await z.renderTemplate(D3,V8,{id:A8,params:x8,target:u8,targetOptions:J6},d4.enqueuePostCommitHook,n6,N4)})}})},Sb=Object.freeze({create:A_6});var SE8=H1(CE8(),1),EE8=H1(C$(),1);import v$ from"fs/promises";import G$ from"path";import{createWriteStream as pr6}from"fs";import cr6 from"crypto";var dK=EE8.default("caw:export"),RE8=".caw-exports",DE8=".tmp",Br6=1,Ur6=({store:$,folderService:K,documentService:q,templateService:Y})=>{let z=()=>{let T=new Date,G=T.getFullYear(),v=String(T.getMonth()+1).padStart(2,"0"),f=String(T.getDate()).padStart(2,"0"),V=String(T.getHours()).padStart(2,"0"),h=String(T.getMinutes()).padStart(2,"0"),A=String(T.getSeconds()).padStart(2,"0");return`${G}-${v}-${f}-${V}${h}${A}`},J=async(T)=>{let G=G$.join(T,RE8),v=G$.join(G,DE8);try{return await v$.mkdir(G,{recursive:!0}),await v$.mkdir(v,{recursive:!0}),G}catch(f){if(f.code==="EACCES")throw n.validation("Permission denied creating export directory","EXPORT_ERROR");if(f.code==="ENOSPC")throw n.validation("Insufficient disk space","EXPORT_ERROR");throw dK("Error creating export directory: [%s] %s",f.code||"UNKNOWN",f.message),n.validation(`Failed to create export directory: ${f.message} (${f.code||"UNKNOWN"})`,"EXPORT_ERROR")}},P=async(T,G,v,f)=>{let V=[],h=async(A,N)=>{let S=await K.listFolderContents(T,G,{folderId:A,type:v,storeCode:f});for(let I of S)if(I.getParentId()!==null)V.push({entity:I,depth:N,contentType:v}),await h(I.getObjectId(),N+1)};return await h(null,0),V},W=async(T,G,v)=>{let f=[],V=[],h=async(A)=>{let N=await q.listDocuments(T,G,{parentId:A,storeCode:v});for(let I of N){let D=I.getPublishedVersionNumber();if(D!==null){let B=await q.readVersion(T,G,{id:I.getObjectId(),versionNumber:D});f.push({entity:I,version:B})}else V.push(I)}let S=await K.listFolderContents(T,G,{folderId:A,type:"d",storeCode:v});for(let I of S)await h(I.getObjectId())};return await h(null),{published:f,draftOnly:V}},H=async(T,G,v)=>{let f=[],V=[],h=async(A)=>{let N=await Y.listTemplates(T,G,{parentId:A,storeCode:v});for(let I of N){let D=I.getPublishedVersionNumber();if(D!==null){let B=await Y.readVersion(T,G,{id:I.getObjectId(),versionNumber:D});f.push({entity:I,version:B})}else V.push(I)}let S=await K.listFolderContents(T,G,{folderId:A,type:"t",storeCode:v});for(let I of S)await h(I.getObjectId())};return await h(null),{published:f,draftOnly:V}},Z=async(T)=>{try{await v$.rm(T,{recursive:!0,force:!0})}catch(G){dK("Warning: Failed to cleanup temp directory: %s",G.message)}};return Object.freeze({listExports:async(T,G,{projectPath:v})=>{let f=G$.join(v,RE8);try{let V=await v$.readdir(f),h=[];for(let A of V)if(A.endsWith(".zip")){let N=G$.join(f,A),S=await v$.stat(N);h.push({filename:A,timestamp:S.mtime.toISOString(),size:S.size})}return dK("Found %d export files",h.length),h}catch(V){if(V.code==="ENOENT")return[];throw V}},exportPreview:async(T,G,{storeCode:v})=>{let f=await P(T,G,"d",v),V=await P(T,G,"t",v),{published:h,draftOnly:A}=await W(T,G,v),{published:N,draftOnly:S}=await H(T,G,v),I={folders:[...f,...V].map((R)=>({id:R.entity.getObjectId(),path:R.entity.getPath(),name:R.entity.getName()})),documents:h.map((R)=>({id:R.entity.getObjectId(),path:R.entity.getPath(),name:R.entity.getName()})),templates:N.map((R)=>({id:R.entity.getObjectId(),path:R.entity.getPath(),name:R.entity.getName()}))},D={documents:A.map((R)=>({id:R.getObjectId(),path:R.getPath(),name:R.getName()})),templates:S.map((R)=>({id:R.getObjectId(),path:R.getPath(),name:R.getName()}))},B=I.folders.length+I.documents.length+I.templates.length,g=D.documents.length+D.templates.length;return dK("Preview: %d published, %d draft-only",B,g),{toExport:I,draftOnly:D}},exportDocuments:async(T,G,{storeCode:v,projectPath:f})=>{dK("Starting export for store %s",v);let V=await J(f),h=cr6.randomUUID(),A=G$.join(V,DE8,h);await v$.mkdir(A,{recursive:!0});try{let N=await P(T,G,"d",v),S=await P(T,G,"t",v),I=[...N,...S],{published:D,draftOnly:B}=await W(T,G,v),{published:g,draftOnly:R}=await H(T,G,v);dK("Found %d folders, %d documents, %d templates",I.length,D.length,g.length);let y=[...I.map((g8)=>({id:g8.entity.getObjectId(),type:"folder",path:g8.entity.getPath(),contentType:g8.contentType})),...D.map((g8)=>({id:g8.entity.getObjectId(),type:"document",path:g8.entity.getPath()})),...g.map((g8)=>({id:g8.entity.getObjectId(),type:"template",path:g8.entity.getPath()}))],t={version:Br6,exportedAt:new Date().toISOString(),entities:y};await v$.writeFile(G$.join(A,"manifest.json"),JSON.stringify(t,null,2),"utf-8");for(let g8 of I){let m8=g8.contentType==="d"?"documents":"templates",V6=G$.join(A,m8,g8.entity.getPath());await v$.mkdir(V6,{recursive:!0})}await v$.mkdir(G$.join(A,"documents"),{recursive:!0}),await v$.mkdir(G$.join(A,"templates"),{recursive:!0});for(let g8 of D){let m8=G$.join(A,"documents",g8.entity.getPath()),V6=g8.version.content;await v$.mkdir(G$.dirname(m8),{recursive:!0}),await v$.writeFile(m8,V6,"utf-8")}for(let g8 of g){let m8=G$.join(A,"templates",g8.entity.getPath()),V6=g8.version.content;await v$.mkdir(G$.dirname(m8),{recursive:!0}),await v$.writeFile(m8,V6,"utf-8")}for(let g8 of y)if(g8.type!=="folder"){let m8=g8.type==="document"?"documents":"templates",V6=G$.join(A,m8,g8.path);try{await v$.access(V6)}catch(C3){throw n.validation(`Manifest entry missing file: ${g8.path}`,"EXPORT_VALIDATION_FAILED")}}let K8=`caw-export-${z()}.zip`,R8=G$.join(V,K8),I8=pr6(R8),E8=SE8.default("zip",{zlib:{level:9}});E8.on("error",async(g8)=>{throw await Z(A),dK("Zip creation error: %s",g8.message),n.validation(`Export failed: ${g8.message}`,"EXPORT_ERROR")}),E8.pipe(I8),E8.directory(A,!1),await E8.finalize(),await new Promise((g8,m8)=>{I8.on("close",g8),I8.on("error",m8),setTimeout(()=>{m8(new Error("Zip creation timeout"))},60000)}),dK("Created zip: %s (%d bytes)",K8,E8.pointer()),await Z(A);let t8=y.length;return dK("Export complete: %s (%d entities)",K8,t8),{success:!0,filename:K8,path:R8,counts:{folders:I.length,documents:D.length,templates:g.length},draftOnlySkipped:{documents:B.length,templates:R.length}}}catch(N){throw await Z(A),N}}})},LE8=Object.freeze({create:Ur6});var XL8=H1(ZL8(),1),wL8=H1(C$(),1);import JJ from"fs/promises";import hY from"path";import js6 from"crypto";var S1=wL8.default("caw:import"),TB=".caw-exports",OL8=".tmp",vs6=1,Gs6=/\b([A-Z][dtfn]\d+)\b/g,_s6=({store:$,folderService:K,documentService:q,templateService:Y})=>{let z=(Z,O)=>{if(!Z)return Z;return Z.replace(Gs6,(X,w)=>{return O[w]??X})},J=async(Z)=>{try{await JJ.rm(Z,{recursive:!0,force:!0})}catch(O){S1("Warning: Failed to cleanup temp directory: %s",O.message)}},P=async(Z,O,{storeCode:X})=>{let w=await K.listFolderContents(Z,O,{folderId:null,type:"d",storeCode:X}),T=await K.listFolderContents(Z,O,{folderId:null,type:"t",storeCode:X}),G=await q.listDocuments(Z,O,{parentId:null,storeCode:X}),v=await Y.listTemplates(Z,O,{parentId:null,storeCode:X}),f=w.length===0&&T.length===0&&G.length===0&&v.length===0;return S1("Store %s empty check: %s",X,f),f},W=async(Z,O,{manifest:X,tempPath:w,storeCode:T})=>{return S1("Starting transaction..."),await Z.transaction().execute(async(G)=>{let v={},f=(B)=>{},V=X.entities.filter((B)=>B.type==="folder");S1("Phase 1: Creating %d folders",V.length);for(let B of V){let g=B.contentType||"d",R=await K.createFolder(G,O,{store:T,path:B.path,type:g},f);v[B.id]=R.getObjectId()}S1("Phase 1 complete - created %d folders",V.length);let h=X.entities.filter((B)=>B.type==="document"),A=[];S1("Phase 2: Reading %d documents",h.length);for(let B of h){let g=hY.join(w,"documents",B.path),R=await JJ.readFile(g,"utf-8");A.push({oldId:B.id,path:B.path,content:R})}S1("Phase 2 complete - read %d documents",A.length),S1("Phase 3: Creating %d document entities",A.length);let N=[];for(let B of A){let g=await q.createDocument(G,O,{store:T,path:B.path,type:"d"},f);v[B.oldId]=g.getObjectId(),N.push({document:g,originalContent:B.content})}S1("Phase 3 complete - created %d document entities",N.length);let S=X.entities.filter((B)=>B.type==="template"),I=[];S1("Phase 4: Reading %d templates",S.length);for(let B of S){let g=hY.join(w,"templates",B.path),R=await JJ.readFile(g,"utf-8");I.push({oldId:B.id,path:B.path,content:R})}S1("Phase 4 complete - read %d templates",I.length),S1("Phase 5: Creating %d template entities",I.length);let D=[];for(let B of I){let g=await Y.createTemplate(G,O,{store:T,path:B.path,type:"t"},f);v[B.oldId]=g.getObjectId(),D.push({template:g,originalContent:B.content})}S1("Phase 5 complete - created %d template entities",D.length),S1("Phase 6: Remapping and saving content for %d documents",N.length);for(let{document:B,originalContent:g}of N){let R=z(g,v);await q.saveDraft(G,O,{id:B.getObjectId(),content:R,clientId:"import-service"},f),await q.publishDocument(G,O,{id:B.getObjectId()},f)}S1("Phase 6 complete - saved and published %d documents",N.length),S1("Phase 7: Remapping and saving content for %d templates",D.length);for(let{template:B,originalContent:g}of D){let R=z(g,v);await Y.saveDraft(G,O,{id:B.getObjectId(),content:R,clientId:"import-service"},f),await Y.publishTemplate(G,O,{id:B.getObjectId()},f)}return S1("Phase 7 complete - saved and published %d templates",D.length),S1("Transaction committed successfully"),{success:!0,counts:{folders:V.length,documents:N.length,templates:D.length},remapped:v}})};return Object.freeze({isStoreEmpty:P,importDocuments:async(Z,O,{filename:X,storeCode:w,projectPath:T})=>{S1("Starting import from %s to store %s",X,w);let G=hY.join(T,TB,X);try{await JJ.access(G),S1("Zip file found: %s",G)}catch(A){throw n.notFound(`Export file not found: ${X}`,"EXPORT_NOT_FOUND")}S1("Validating zip and manifest...");let v=await P(Z,O,{storeCode:w});if(!v)throw n.conflict("Store not empty - import requires empty store","STORE_NOT_EMPTY");S1("Store empty check: %s",v);let f=js6.randomUUID(),V=hY.join(T,TB,OL8,f),h=hY.join(T,TB,OL8);await JJ.mkdir(h,{recursive:!0});try{new XL8.default(G).extractAllTo(V,!0),S1("Extracted zip to: %s",V)}catch(A){throw n.validation("Corrupted or invalid zip file","IMPORT_VALIDATION_FAILED")}try{let A=hY.join(V,"manifest.json"),N;try{let D=await JJ.readFile(A,"utf-8");N=JSON.parse(D)}catch(D){throw n.validation(`Failed to read manifest: ${D.message}`,"MANIFEST_READ_FAILED")}if(N.version!==vs6)throw n.validation(`Unsupported manifest version: ${N.version}`,"UNSUPPORTED_VERSION");if(!N.entities||!Array.isArray(N.entities))throw n.validation("Invalid manifest structure","MANIFEST_READ_FAILED");S1("Manifest valid: version=%d, entities=%d",N.version,N.entities.length);for(let D of N.entities)if(D.type!=="folder"){let B=D.type==="document"?hY.join(V,"documents",D.path):hY.join(V,"templates",D.path);try{await JJ.access(B)}catch(g){throw n.validation(`Missing file for manifest entry: ${D.path}`,"IMPORT_VALIDATION_FAILED")}}S1("All content files validated");let S=await W(Z,O,{manifest:N,tempPath:V,storeCode:w}),I=S.counts.folders+S.counts.documents+S.counts.templates;return S1("Import complete: %d entities imported",I),S}finally{await J(V)}}})},TL8=Object.freeze({create:_s6});var fs6=($)=>{let{name:K,interval:q,execute:Y}=$,z=null,J=!1,P=null,W=null,H=0,Z=null,V=Object.freeze({getName:()=>K,getInterval:()=>q,getIsRunning:()=>J,getLastRun:()=>P,getLastError:()=>W,getRunCount:()=>H,getNextRun:()=>Z}),h=async()=>{try{await Y(),P=new Date().toISOString(),W=null,H++}catch(D){console.error(`[CronJob] ${K} failed:`,D),W={message:D.message,timestamp:new Date().toISOString()}}if(J)Z=new Date(Date.now()+q).toISOString()},A=()=>{if(z!==null)return;z=setInterval(h,q),J=!0,Z=new Date(Date.now()+q).toISOString()},N=()=>{if(z===null)return;clearInterval(z),z=null,J=!1,Z=null},I=Object.freeze({start:A,stop:N,restart:()=>{N(),A()}});return{jobFns:V,controlFns:I}},vM=Object.freeze({create:fs6});var jL8=H1(C$(),1),Vs6=jL8.default("caw:cron:cleanup-edit-states"),vL8=async($)=>{let K=new Date(Date.now()-jW).toISOString();try{let q=await $.deleteFrom("document_edit_state").where("last_activity_at","<",K).execute(),Y=Number(q[0]?.numDeletedRows??0);if(Y>0)Vs6("Cleaned up %d expired edit locks (older than %d minutes)",Y,jW/60000);return{expired:Y}}catch(q){throw console.error("[Cleanup] Failed to cleanup expired edit locks:",q),q}};var As6=({db:$})=>{let{jobFns:K,controlFns:q}=vM.create({name:"cleanup-stale-edit-states",interval:900000,execute:async()=>{await vL8($)}});return{job:Object.freeze(K),control:q}},GL8=Object.freeze({create:As6});var ks6=({db:$})=>{let K=new Map,q=(Z,O)=>{let{job:X,control:w}=Z.create(O);K.set(X.getName(),{job:X,control:w})},Y=(Z)=>{let O=K.get(Z);if(!O)throw new Error(`Job not found: ${Z}`);let X=O.job.getIsRunning();return O.control.start(),{name:Z,status:X?"already-running":"started",isRunning:O.job.getIsRunning()}},z=(Z)=>{let O=K.get(Z);if(!O)throw new Error(`Job not found: ${Z}`);let X=O.job.getIsRunning();return O.control.stop(),{name:Z,status:X?"stopped":"already-stopped",isRunning:O.job.getIsRunning()}},J=(Z)=>{let O=K.get(Z);if(!O)throw new Error(`Job not found: ${Z}`);return O.control.restart(),{name:Z,status:"restarted",isRunning:O.job.getIsRunning()}},P=()=>{let Z=[];for(let[O,{job:X}]of K.entries())Z.push({name:X.getName(),interval:X.getInterval(),isRunning:X.getIsRunning(),lastRun:X.getLastRun(),lastError:X.getLastError(),runCount:X.getRunCount(),nextRun:X.getNextRun()});return Z},W=()=>{for(let[Z,{control:O}]of K.entries())O.start()},H=()=>{for(let[Z,{control:O}]of K.entries())O.stop()};return q(GL8,{db:$}),Object.freeze({register:q,start:Y,stop:z,restart:J,list:P,startAll:W,stopAll:H})},_L8=Object.freeze({create:ks6});import ty8 from"node:process";import AL8 from"node:process";import Rs6 from"node:os";import Ds6 from"node:fs";import hs6 from"node:fs";import fL8 from"node:fs";var jB;function Ms6(){try{return fL8.statSync("/.dockerenv"),!0}catch{return!1}}function Ns6(){try{return fL8.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function vB(){if(jB===void 0)jB=Ms6()||Ns6();return jB}var GB,Cs6=()=>{try{return hs6.statSync("/run/.containerenv"),!0}catch{return!1}};function GM(){if(GB===void 0)GB=Cs6()||vB();return GB}var VL8=()=>{if(AL8.platform!=="linux")return!1;if(Rs6.release().toLowerCase().includes("microsoft")){if(GM())return!1;return!0}try{return Ds6.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!GM():!1}catch{return!1}},kL8=AL8.env.__IS_WSL_TEST__?VL8:VL8();import _B from"node:process";function fB(){if(_B.platform!=="linux")return!1;if(_B.env.WAYLAND_DISPLAY)return!0;if(_B.env.XDG_SESSION_TYPE==="wayland")return!0;return!1}function k4($){if(typeof $!=="object"||$===null)return!1;let K=Object.getPrototypeOf($);return(K===null||K===Object.prototype||Object.getPrototypeOf(K)===null)&&!(Symbol.toStringTag in $)&&!(Symbol.iterator in $)}import{fileURLToPath as Ss6}from"node:url";var qZ=($,K)=>{let q=AB(Es6($));if(typeof q!=="string")throw new TypeError(`${K} must be a string or a file URL: ${q}.`);return q},Es6=($)=>VB($)?$.toString():$,VB=($)=>typeof $!=="string"&&$&&Object.getPrototypeOf($)===String.prototype,AB=($)=>$ instanceof URL?Ss6($):$;var _M=($,K=[],q={})=>{let Y=qZ($,"First argument"),[z,J]=k4(K)?[[],K]:[K,q];if(!Array.isArray(z))throw new TypeError(`Second argument must be either an array of arguments or an options object: ${z}`);if(z.some((H)=>typeof H==="object"&&H!==null))throw new TypeError(`Second argument must be an array of strings: ${z}`);let P=z.map(String),W=P.find((H)=>H.includes("\x00"));if(W!==void 0)throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${W}`);if(!k4(J))throw new TypeError(`Last argument must be an options object: ${J}`);return[Y,P,J]};import{ChildProcess as us6}from"node:child_process";import{StringDecoder as Ls6}from"node:string_decoder";var{toString:ML8}=Object.prototype,NL8=($)=>ML8.call($)==="[object ArrayBuffer]",Q4=($)=>ML8.call($)==="[object Uint8Array]",nK=($)=>new Uint8Array($.buffer,$.byteOffset,$.byteLength),Is6=new TextEncoder,hL8=($)=>Is6.encode($),xs6=new TextDecoder,fM=($)=>xs6.decode($),CL8=($,K)=>{return bs6($,K).join("")},bs6=($,K)=>{if(K==="utf8"&&$.every((J)=>typeof J==="string"))return $;let q=new Ls6(K),Y=$.map((J)=>typeof J==="string"?hL8(J):J).map((J)=>q.write(J)),z=q.end();return z===""?Y:[...Y,z]},Rj=($)=>{if($.length===1&&Q4($[0]))return $[0];return kB(gs6($))},gs6=($)=>$.map((K)=>typeof K==="string"?hL8(K):K),kB=($)=>{let K=new Uint8Array(ys6($)),q=0;for(let Y of $)K.set(Y,q),q+=Y.length;return K},ys6=($)=>{let K=0;for(let q of $)K+=q.length;return K};var EL8=($)=>Array.isArray($)&&Array.isArray($.raw),LL8=($,K)=>{let q=[];for(let[J,P]of $.entries())q=ms6({templates:$,expressions:K,tokens:q,index:J,template:P});if(q.length===0)throw new TypeError("Template script must not be empty");let[Y,...z]=q;return[Y,z,{}]},ms6=({templates:$,expressions:K,tokens:q,index:Y,template:z})=>{if(z===void 0)throw new TypeError(`Invalid backslash sequence: ${$.raw[Y]}`);let{nextTokens:J,leadingWhitespaces:P,trailingWhitespaces:W}=ps6(z,$.raw[Y]),H=DL8(q,J,P);if(Y===K.length)return H;let Z=K[Y],O=Array.isArray(Z)?Z.map((X)=>SL8(X)):[SL8(Z)];return DL8(H,O,W)},ps6=($,K)=>{if(K.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let q=[],Y=0,z=RL8.has(K[0]);for(let P=0,W=0;P<$.length;P+=1,W+=1){let H=K[W];if(RL8.has(H)){if(Y!==P)q.push($.slice(Y,P));Y=P+1}else if(H==="\\"){let Z=K[W+1];if(Z===`
461
+ `.execute($),await $.schema.createIndex("entities_store_id_idx").on("entities").columns(["store_id"]).execute(),await $.schema.createIndex("entities_parent_folder_id_idx").on("entities").columns(["parent_folder_id"]).execute(),await $.schema.createTable("folders").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).execute(),await $.schema.createTable("documents").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).addColumn("published_version_id","integer",(K)=>K.references("document_versions.id")).execute(),await $.schema.createTable("document_drafts").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).addColumn("content","text").addColumn("updated_at","text",(K)=>K.notNull()).execute(),await $.schema.createTable("document_versions").addColumn("id","integer",(K)=>K.primaryKey().autoIncrement()).addColumn("entity_id","integer",(K)=>K.notNull().references("entities.id").onDelete("cascade")).addColumn("version_number","integer",(K)=>K.notNull()).addColumn("content","text").addColumn("published_at","text",(K)=>K.notNull()).execute(),await $.schema.createIndex("document_versions_entity_version_unique").on("document_versions").columns(["entity_id","version_number"]).unique().execute(),await $.schema.createIndex("document_versions_entity_id_idx").on("document_versions").columns(["entity_id"]).execute(),await $.schema.createTable("document_edit_state").addColumn("entity_id","integer",(K)=>K.primaryKey().references("entities.id").onDelete("cascade")).addColumn("client_id","text",(K)=>K.notNull()).addColumn("started_at","text",(K)=>K.notNull()).addColumn("last_activity_at","text",(K)=>K.notNull()).execute(),await $.schema.createTable("field_definitions").addColumn("id","integer",(K)=>K.primaryKey().autoIncrement()).addColumn("store_id","integer",(K)=>K.notNull().references("stores.id").onDelete("cascade")).addColumn("object_id","text",(K)=>K.notNull()).addColumn("entity_type_id","integer",(K)=>K.notNull().references("entity_types.id")).addColumn("type_code","text",(K)=>K.notNull()).addColumn("seq","integer",(K)=>K.notNull()).addColumn("owner_entity_id","integer",(K)=>K.references("entities.id").onDelete("cascade")).addColumn("name","text",(K)=>K.notNull()).addColumn("label","text").addColumn("description","text").addColumn("primitive_type","text",(K)=>K.notNull()).addColumn("required","integer",(K)=>K.notNull().defaultTo(0)).addColumn("multiplicity","text",(K)=>K.notNull().defaultTo("single")).addColumn("config","text").addColumn("is_system","integer",(K)=>K.notNull().defaultTo(0)).addColumn("ordinal","integer").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await $.schema.createIndex("idx_field_def_object_id_unique").on("field_definitions").columns(["store_id","object_id"]).unique().execute(),await $.schema.createIndex("idx_field_def_store_type_seq").on("field_definitions").columns(["store_id","type_code","seq"]).unique().execute(),await $.schema.createIndex("idx_field_def_owner").on("field_definitions").columns(["owner_entity_id"]).execute(),await $.schema.createIndex("idx_field_def_owner_name").on("field_definitions").columns(["owner_entity_id","name"]).execute(),await $.schema.createTable("field_values").addColumn("id","integer",(K)=>K.primaryKey().autoIncrement()).addColumn("entity_id","integer",(K)=>K.notNull().references("entities.id").onDelete("cascade")).addColumn("field_definition_id","integer",(K)=>K.notNull().references("field_definitions.id").onDelete("cascade")).addColumn("value","text").addColumn("ordinal","integer").addColumn("updated_at","text",(K)=>K.notNull()).execute(),await $.schema.createIndex("idx_field_values_entity").on("field_values").columns(["entity_id"]).execute(),await $.schema.createIndex("idx_field_values_entity_def").on("field_values").columns(["entity_id","field_definition_id"]).execute()};var n46=()=>new Date().toISOString(),M1=n46;var o46=[{code:"f",name:"Folder",subtype:null},{code:"f",name:"Document Root Folder",subtype:"root_d"},{code:"f",name:"Template Root Folder",subtype:"root_t"},{code:"d",name:"Document",subtype:null},{code:"t",name:"Template",subtype:null},{code:"n",name:"field_definition",subtype:null}],Ue=async($)=>{return(await $.selectFrom("entity_types").select("id").limit(1).execute()).length>0},a46=async($,K,q=null)=>{return(await $.selectFrom("entity_types").select("id").where("code","=",K).where((z)=>q?z("subtype","=",q):z("subtype","is",null)).executeTakeFirstOrThrow()).id},Be=async($,K,q,Y)=>{let z=M1(),P=await a46($,"f",Y==="d"?"root_d":"root_t");if(!await $.selectFrom("sequences").select("next_value").where("scope_type","=","store").where("scope_id","=",K).where("type_code","=","f").executeTakeFirst())await $.insertInto("sequences").values({scope_type:"store",scope_id:K,type_code:"f",next_value:1}).execute();let H=await $.selectFrom("sequences").select("next_value").where("scope_type","=","store").where("scope_id","=",K).where("type_code","=","f").executeTakeFirst();await $.updateTable("sequences").set((w)=>({next_value:w("next_value","+",1)})).where("scope_type","=","store").where("scope_id","=",K).where("type_code","=","f").execute();let Z=`${q}f${H.next_value}`,O=await $.insertInto("entities").values({store_id:K,object_id:Z,entity_type_id:P,type_code:"f",seq:H.next_value,parent_folder_id:null,parent_object_id:null,name:null,created_at:z,updated_at:z}).returning("id").executeTakeFirstOrThrow();await $.insertInto("folders").values({entity_id:O.id}).execute();let X=Y==="d"?"document":"template";return O.id},r46=async($)=>{for(let K of o46)await $.insertInto("entity_types").values(K).execute()},s46=async($)=>{let K=await $.selectFrom("sequences").select("next_value").where("scope_type","=","global").where("scope_id","is",null).where("type_code","=","s").executeTakeFirstOrThrow();await $.updateTable("sequences").set((J)=>({next_value:J("next_value","+",1)})).where("scope_type","=","global").where("scope_id","is",null).where("type_code","=","s").execute();let q=`S${K.next_value}`,Y=M1(),z=await $.insertInto("stores").values({id:K.next_value,object_id:q,type:"local",code:"B",name:"Shared",created_at:Y,updated_at:Y}).returning("id").executeTakeFirstOrThrow();await Be($,z.id,"B","d"),await Be($,z.id,"B","t")},le=async($)=>{await r46($),await $.insertInto("sequences").values([{scope_type:"global",scope_id:null,type_code:"s",next_value:1},{scope_type:"global",scope_id:null,type_code:"p",next_value:1}]).execute(),await s46($)};var x0=H1(ie(),1),t46=($,K)=>{if($)throw new Error(K)},Qe=($,K)=>{if(x0.default.null($)||x0.default.undefined($))throw new Error(`${K} is required`)},e46=($,K)=>{if(Qe($,K),x0.default.empty($))throw new Error(`${K} cannot be empty`)},$36=($,K,...q)=>{if($)throw K(...q)},K36={condition:t46,nullish:Qe,empty:e46,factory:$36},r=K36;var UW6=typeof Bun!=="undefined",lW6=async($)=>{if(UW6){let{Database:K}=await import("bun:sqlite"),{BunSqliteDialect:q}=await Promise.resolve().then(() => H1(NJ8(),1)),Y=new K($);return Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA foreign_keys = ON"),new W5({dialect:new q({database:Y})})}else{let q=new(await import("better-sqlite3")).default($);return q.pragma("journal_mode = WAL"),q.pragma("foreign_keys = ON"),new W5({dialect:new kS({database:q})})}},FW6=($,K)=>{if(!pW6($)){if(!K)throw new Error(`Database file not found: ${$}`);cW6(BW6($),{recursive:!0})}},iW6=async($,K)=>{if(!await pe($)){if(!K)throw new Error("Database schema not found");await ce($)}},QW6=async($,K)=>{if(!await Ue($)){if(!K)throw new Error("Database seed data not found");await le($)}},dW6=($)=>{let{kyselyFactory:K=lW6}=$??{};return Object.freeze({getDb:async(Y,z)=>{if(r.nullish(Y,"databaseFilepath"),Y!==":memory:")FW6(Y,z);let J=await K(Y);return await iW6(J,z),await QW6(J,z),J}})},hJ8={create:dW6};var nW6=($)=>{let{id:K,name:q,createdAt:Y,updatedAt:z}=$,Z=Object.freeze({getObjectId:()=>K,getName:()=>q,getCreatedAt:()=>Y,getUpdatedAt:()=>z}),w=Object.freeze({setName:(T)=>{q=T},setUpdatedAt:(T)=>{z=T}});return{entityFns:Z,mutationFns:w}},w5=Object.freeze({create:nW6});var oW6=($)=>{let{id:K,name:q,path:Y,createdAt:z,updatedAt:J}=$,{entityFns:P,mutationFns:W}=w5.create({id:K,name:q,createdAt:z,updatedAt:J}),H=()=>Y,O=Object.freeze({...P,getPath:H,toJSON:()=>({objectId:P.getObjectId(),name:P.getName(),path:H(),createdAt:P.getCreatedAt(),updatedAt:P.getUpdatedAt()})}),w=Object.freeze({...W,setPath:(T)=>{Y=T}});return{entity:O,mutationApi:w}},CJ8=Object.freeze({create:oW6});var aW6=($,K,q)=>{return Object.freeze({getEntity:()=>$,getMutationApi:()=>K,getPk:()=>q})},T6=Object.freeze({create:aW6});var rW6=async($,K,q,Y)=>{if(!await $.selectFrom("sequences").select("next_value").where("scope_type","=",K).where("scope_id",q===null?"is":"=",q).where("type_code","=",Y).executeTakeFirst())await $.insertInto("sequences").values({scope_type:K,scope_id:q,type_code:Y,next_value:1}).execute();let J=await $.selectFrom("sequences").select("next_value").where("scope_type","=",K).where("scope_id",q===null?"is":"=",q).where("type_code","=",Y).executeTakeFirstOrThrow();return await $.updateTable("sequences").set((P)=>({next_value:P("next_value","+",1)})).where("scope_type","=",K).where("scope_id",q===null?"is":"=",q).where("type_code","=",Y).execute(),J.next_value},v9=Object.freeze({nextSeq:rW6});var sW6=($)=>$.object_id,RJ8=($)=>{if(!$||$.length<2||$[0]!=="P")return null;let K=parseInt($.slice(1),10);return isNaN(K)?null:K},_f=($)=>{let K=sW6($),q=$.id,{entity:Y,mutationApi:z}=CJ8.create({id:K,name:$.name,path:$.path,createdAt:$.created_at,updatedAt:$.updated_at});return{entity:Y,mutationApi:z,id:K,pk:q}},tW6=()=>{let $=new Map;return Object.freeze({createProject:async(P,W,{name:H,path:Z},O)=>{let X=M1(),w=await v9.nextSeq(P,"global",null,"p"),T=`P${w}`,G=await P.insertInto("projects").values({id:w,object_id:T,name:H,path:Z,created_at:X,updated_at:X}).returningAll().executeTakeFirstOrThrow(),{entity:v,mutationApi:f,id:V,pk:h}=_f(G);return O(()=>{$.set(V,T6.create(v,f,h))}),v},readProject:async(P,W,H)=>{let Z=$.get(H);if(Z)return Z.getEntity();let O=RJ8(H);if(O===null)return null;let X=await P.selectFrom("projects").selectAll().where("id","=",O).executeTakeFirst();if(!X)return null;let{entity:w,mutationApi:T,id:G,pk:v}=_f(X);return $.set(G,T6.create(w,T,v)),w},readProjectByObjectId:async(P,W,H)=>{let Z=$.get(H);if(Z)return Z.getEntity();let O=RJ8(H);if(O===null)return null;let X=await P.selectFrom("projects").selectAll().where("id","=",O).executeTakeFirst();if(!X)return null;let{entity:w,mutationApi:T,id:G,pk:v}=_f(X);return $.set(G,T6.create(w,T,v)),w},readProjectByPath:async(P,W,H)=>{let Z=await P.selectFrom("projects").selectAll().where("path","=",H).executeTakeFirst();if(!Z)return null;let{entity:O,mutationApi:X,id:w,pk:T}=_f(Z),G=$.get(w);if(G)return G.getEntity();return $.set(w,T6.create(O,X,T)),O},evictProject:(P)=>{$.delete(P)}})},DJ8=Object.freeze({create:tW6});var eW6=()=>{let $=new Map,K=new Map;return Object.freeze({get:(X)=>$.get(X),getByPk:(X)=>{let w=K.get(X);return w?$.get(w):void 0},has:(X)=>$.has(X),set:(X,w)=>{$.set(X,w),K.set(w.getPk(),X)},remove:(X)=>{let w=$.get(X);if(w)K.delete(w.getPk());$.delete(X)},getIdByPk:(X)=>K.get(X),setIdByPk:(X,w)=>K.set(X,w),clear:()=>{$.clear(),K.clear()},entries:()=>$.entries()})},Nw=Object.freeze({create:eW6});var bJ8=H1(C$(),1);var $H6=async($,K,q,Y=null)=>{return(await $.selectFrom("entity_types").select("id").where("code","=",q).where((J)=>Y?J("subtype","=",Y):J("subtype","is",null)).executeTakeFirstOrThrow()).id},$Y=Object.freeze({readEntityTypeId:$H6});var KH6=($)=>{let{id:K,name:q,parentId:Y,path:z,createdAt:J,updatedAt:P,publishedVersionNumber:W,hasDraft:H,draftContent:Z,publishedContent:O}=$,{entityFns:X,mutationFns:w}=w5.create({id:K,name:q,createdAt:J,updatedAt:P}),T=new Map,G=W??null,v=H??!1,f=Z??null,V=O??null,h=null,E8=Object.freeze({...X,getParentId:()=>Y,getPath:()=>z,getField:(S6)=>{return T.get(S6)},getFields:()=>{let S6={};for(let[R3,V8]of T.entries())S6[R3]=V8;return S6},getPublishedVersionNumber:()=>G,hasDraftContent:()=>v,getDraftContent:()=>f,getPublishedContent:()=>V,getEditState:()=>h,hasPublished:()=>G>0,isBeingEdited:()=>h!==null,getVersionCount:()=>G??0,getIsFolder:()=>!1}),l$=Object.freeze({...w,setParentId:(S6)=>{Y=S6},setPath:(S6)=>{z=S6},setField:(S6,R3)=>{T.set(S6,R3)},removeField:(S6)=>{T.delete(S6)},setPublishedVersionNumber:(S6)=>{G=S6},setHasDraft:(S6)=>{v=S6},setDraftContent:(S6)=>{f=S6},setPublishedContent:(S6)=>{V=S6},setEditState:(S6)=>{h=S6}});return{entityFns:E8,mutationFns:l$}},XW=Object.freeze({create:KH6});var SJ8=($)=>{let{entityFns:K,mutationFns:q}=XW.create($),Y=()=>K.getParentId()===null,z=()=>!0,P=Object.freeze({...K,isRoot:Y,getIsFolder:z,toJSON:()=>({id:K.getObjectId(),parentId:K.getParentId(),name:K.getName(),path:K.getPath(),createdAt:K.getCreatedAt(),updatedAt:K.getUpdatedAt(),isFolder:z(),isRoot:Y()})}),W=Object.freeze({...q});return{entity:P,mutationApi:W}},qH6=($,K,q,Y)=>{return SJ8({id:K,parentId:q,name:$.name,path:Y,createdAt:$.created_at,updatedAt:$.updated_at})},Qz=Object.freeze({create:SJ8,createFromRow:qH6});var EJ8=($)=>{let{entityFns:K,mutationFns:q}=XW.create($),Y=()=>"d",J=Object.freeze({...K,getTypeCode:Y,toJSON:()=>({id:K.getObjectId(),parentId:K.getParentId(),name:K.getName(),path:K.getPath(),publishedVersionNumber:K.getPublishedVersionNumber(),hasDraft:K.hasDraftContent(),draftContent:K.getDraftContent(),publishedContent:K.getPublishedContent(),editState:K.getEditState(),createdAt:K.getCreatedAt(),updatedAt:K.getUpdatedAt(),versionCount:K.getVersionCount(),isFolder:K.getIsFolder(),type:Y(),hasPublished:K.hasPublished(),isBeingEdited:K.isBeingEdited()})}),P=Object.freeze({...q});return{entity:J,mutationApi:P}},YH6=($,K,q,Y,z,J,P=null,W=null)=>{return EJ8({id:K,parentId:q,name:$.name,path:Y,publishedVersionNumber:z,hasDraft:J,draftContent:P,publishedContent:W,createdAt:$.created_at,updatedAt:$.updated_at})},wW=Object.freeze({create:EJ8,createFromRow:YH6});var LJ8=($)=>{let{entityFns:K,mutationFns:q}=XW.create($),Y=()=>"t",J=Object.freeze({...K,getTypeCode:Y,toJSON:()=>({id:K.getObjectId(),parentId:K.getParentId(),name:K.getName(),path:K.getPath(),publishedVersionNumber:K.getPublishedVersionNumber(),hasDraft:K.hasDraftContent(),draftContent:K.getDraftContent(),publishedContent:K.getPublishedContent(),editState:K.getEditState(),createdAt:K.getCreatedAt(),updatedAt:K.getUpdatedAt(),versionCount:K.getVersionCount(),isFolder:K.getIsFolder(),type:Y(),hasPublished:K.hasPublished(),isBeingEdited:K.isBeingEdited()})}),P=Object.freeze({...q});return{entity:J,mutationApi:P}},zH6=($,K,q,Y,z,J,P=null,W=null)=>{return LJ8({id:K,parentId:q,name:$.name,path:Y,publishedVersionNumber:z,hasDraft:J,draftContent:P,publishedContent:W,createdAt:$.created_at,updatedAt:$.updated_at})},TW=Object.freeze({create:LJ8,createFromRow:zH6});var JH6=($)=>{let{id:K,name:q,ownerEntityId:Y,label:z,description:J,primitiveType:P,required:W,multiplicity:H,isSystem:Z,createdAt:O,updatedAt:X}=$,{entityFns:w,mutationFns:T}=w5.create({id:K,name:q,createdAt:O,updatedAt:X}),G=()=>Y,v=()=>z,f=()=>J,V=()=>P,h=()=>W,A=()=>H,N=()=>Z,I=Object.freeze({...w,getOwnerEntityId:G,getLabel:v,getDescription:f,getPrimitiveType:V,getRequired:h,getMultiplicity:A,getIsSystem:N,toJSON:()=>({id:w.getObjectId(),ownerEntityId:G(),name:w.getName(),label:v(),description:f(),primitiveType:V(),required:h(),multiplicity:A(),isSystem:N(),createdAt:w.getCreatedAt(),updatedAt:w.getUpdatedAt()})}),D=Object.freeze({...T});return{entity:I,mutationApi:D}},Tx=Object.freeze({create:JH6});var PH6=({definition:$,values:K=[]})=>{let q=$,Y=[...K];if(q.getMultiplicity()==="single"&&Y.length>1)throw new Error(`Field "${q.getName()}" is single-valued but received ${Y.length} values`);let z=(T=0)=>{return Y[T]},J=()=>{return[...Y]},P=()=>{return q},W=()=>{return q.getMultiplicity()==="multi"};return Object.freeze({getValue:z,getValues:J,getDefinition:P,isMultiValued:W,isRequired:()=>{return q.getRequired()},getType:()=>{return q.getPrimitiveType()},getLabel:()=>{return q.getLabel()||q.getName()},getName:()=>{return q.getName()},toJSON:()=>{if(W())return Y;else return Y[0]}})},jx=Object.freeze({create:PH6});var hw=($,K)=>{let q=new Error($);return q.code=K,q.isDomainError=!0,q},WH6=($,K="NOT_FOUND")=>hw($,K),HH6=($,K="CONFLICT")=>hw($,K),ZH6=($,K="VALIDATION_ERROR")=>hw($,K),OH6=($,K="UNAUTHORIZED")=>hw($,K),n=Object.freeze({create:hw,notFound:WH6,conflict:HH6,validation:ZH6,unauthorized:OH6});var XH6=($)=>{let K=$.trim();r.factory(!K,n.validation,"Folder name cannot be empty","EMPTY_NAME"),r.factory(K.length>255,n.validation,"Folder name cannot exceed 255 characters","NAME_TOO_LONG");let q=/[/\\:*?"<>|]/;return r.factory(q.test(K),n.validation,'Folder name contains invalid characters: /\\:*?"<>|',"INVALID_CHARS"),K},wH6=($)=>{return $.getParentId()===null},fK=Object.freeze({validateFolderName:XH6,isRootFolder:wH6});var TH6=($)=>{if(!$||$.length<3)return null;let K=$[0],q=$[1],Y=parseInt($.slice(2),10);if(isNaN(Y))return null;return{storeCode:K,typeCode:q,seq:Y}},jH6=($,K,q)=>`${$}${K}${q}`,vH6=($,K)=>{r.factory($!==K,n.validation,`Store code mismatch: expected ${K}, got ${$}`,"STORE_CODE_MISMATCH")},IJ8=Object.freeze({parseId:TH6,buildId:jH6,validateStoreCode:vH6});var{parseId:P1,buildId:ff,validateStoreCode:GH6}=IJ8,{validateFolderName:xJ8,isRootFolder:Zy1}=fK,Oy1=bJ8.default("caw:stores:db"),jW=3600000,_H6=({id:$,code:K,name:q,pk:Y,folderCache:z,createdAt:J,updatedAt:P})=>{let W=new Map,{entityFns:H,mutationFns:Z}=w5.create({id:$,name:q,createdAt:J,updatedAt:P}),O=()=>new Set([K]),X=()=>"local",w=()=>K,T=()=>Y,G=()=>({id:$,code:K,name:H.getName(),createdAt:H.getCreatedAt(),updatedAt:H.getUpdatedAt(),type:"local"}),v=(C)=>{GH6(C,K)},f=async(C,u)=>{if(!u)return null;if(z){let m=z.get(u);if(m)return m.getPk()}if(!P1(u))r.factory(!0,n.validation,`Invalid parent folder ID: ${u}`,"INVALID_ID");let b=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("object_id","=",u).where("deleted_at","is",null).executeTakeFirst();return b?b.id:null},V=async(C,u)=>{let E=await C.selectFrom("entities").select(["name","parent_folder_id","parent_object_id","object_id"]).where("id","=",u).where("deleted_at","is",null).executeTakeFirst();r.factory(!E,n.notFound,`Entity not found for PK ${u}`,"ENTITY_NOT_FOUND");let b=E.object_id,m=z?z.get(b):null;if(m){let f8=m.getEntity();if(f8.getName()===E.name&&f8.getParentId()===E.parent_object_id)return f8.getPath()}if(E.name===null)return"";if(!E.parent_object_id)return E.name;let c=z?z.get(E.parent_object_id):null;if(c){let M8=c.getEntity().getPath();return M8?`${M8}/${E.name}`:E.name}let o=[E.name],P8=E.parent_folder_id;while(P8!==null){let f8=W.get(P8),M8=f8&&z?z.get(f8):null;if(M8){let $6=M8.getEntity().getPath();if($6){let E6=$6.split("/").filter((r1)=>r1);o.unshift(...E6)}break}let N8=await C.selectFrom("entities").select(["name","parent_folder_id"]).where("id","=",P8).where("deleted_at","is",null).executeTakeFirst();if(r.factory(!N8,n.notFound,`Folder not found for PK ${P8}`,"FOLDER_NOT_FOUND"),N8.name!==null)o.unshift(N8.name);P8=N8.parent_folder_id}return o.join("/")},h=async(C,u)=>{let E=[],b=[u];while(b.length>0){let m=b.shift(),c=await C.selectFrom("entities").select(["id","type_code"]).where("store_id","=",Y).where("parent_folder_id","=",m).where("deleted_at","is",null).execute();for(let o of c)if(E.push(o.id),o.type_code==="f")b.push(o.id)}return E},A=async(C,u,E,b)=>{let m=M1(),c=await $Y.readEntityTypeId(C,{},"f",b),o=await v9.nextSeq(C,"store",Y,"f"),P8=await f(C,u),f8=ff(K,"f",o),M8=await C.insertInto("entities").values({store_id:Y,object_id:f8,entity_type_id:c,type_code:"f",seq:o,parent_folder_id:P8,parent_object_id:u,name:E,created_at:m,updated_at:m}).returningAll().executeTakeFirstOrThrow();return await C.insertInto("folders").values({entity_id:M8.id}).execute(),{row:M8,id:f8}},N=(C)=>{let u=null;if(C.owner_entity_id!==null)u=W.get(C.owner_entity_id)??null;let{entity:E,mutationApi:b}=Tx.create({id:C.object_id,name:C.name,ownerEntityId:u,label:C.label,description:C.description,primitiveType:C.primitive_type,required:C.required===1,multiplicity:C.multiplicity,isSystem:C.is_system===1,createdAt:C.created_at,updatedAt:C.updated_at});return{entity:E,mutationApi:b,pk:C.id}},S=async(C,u)=>{let E=await C.selectFrom("field_values as fv").innerJoin("field_definitions as fd","fd.id","fv.field_definition_id").select(["fv.id as value_id","fv.value","fd.id as def_id","fd.object_id as def_object_id","fd.name as def_name","fd.label as def_label","fd.description as def_description","fd.primitive_type as def_primitive_type","fd.required as def_required","fd.multiplicity as def_multiplicity","fd.is_system as def_is_system","fd.owner_entity_id as def_owner_entity_id","fd.created_at as def_created_at","fd.updated_at as def_updated_at"]).where("fv.entity_id","=",u).execute(),b=new Map;for(let c of E){let o=c.def_id;if(!b.has(o))b.set(o,{definition:{id:c.def_object_id,name:c.def_name,label:c.def_label,description:c.def_description,primitiveType:c.def_primitive_type,required:c.def_required===1,multiplicity:c.def_multiplicity,isSystem:c.def_is_system===1,ownerEntityId:c.def_owner_entity_id?W.get(c.def_owner_entity_id):null,createdAt:c.def_created_at,updatedAt:c.def_updated_at},values:[]});b.get(o).values.push(c.value)}let m=[];for(let{definition:c,values:o}of b.values()){let{entity:P8}=Tx.create(c),f8=jx.create({definition:P8,values:o});m.push(f8)}return m},I=async(C,u)=>{let E=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("seq","=",1).where("type_code","=","n").executeTakeFirst();if(!E)return null;if(E.owner_entity_id){let m=await C.selectFrom("entities").select("object_id").where("id","=",E.owner_entity_id).executeTakeFirst();if(m)W.set(E.owner_entity_id,m.object_id)}let b=`${K}n1`;return W.set(E.id,b),N(E)},D=async(C,u,{storeCode:E,parentId:b,name:m,subtype:c})=>{if(E!==void 0)v(E);if(m!==null&&m!==void 0)xJ8(m);let{row:o,id:P8}=await A(C,b,m,c||null),f8=o.id;W.set(f8,P8);let M8=await V(C,f8),{entity:N8,mutationApi:y8}=Qz.createFromRow(o,P8,b,M8);return{entity:N8,mutationApi:y8,pk:f8}},B=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities").innerJoin("folders","folders.entity_id","entities.id").selectAll("entities").where("entities.store_id","=",Y).where("entities.seq","=",b.seq).where("entities.type_code","=","f").where("entities.deleted_at","is",null).executeTakeFirst();if(!m)return null;let{id:c,parent_object_id:o}=m;W.set(c,E);let P8=await V(C,c),f8=await S(C,c),{entity:M8,mutationApi:N8}=Qz.createFromRow(m,E,o,P8);for(let y8 of f8)N8.setField(y8.getDefinition().getName(),y8);return{entity:M8,mutationApi:N8,pk:c}},g=async(C,u,{id:E,name:b,parentId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid folder ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=","f").where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Folder not found: ${E}`,"FOLDER_NOT_FOUND");let P8=o.id,f8={name:o.name,parentId:o.parent_object_id,path:null};if(W.set(P8,E),f8.path=await V(C,P8),b!==void 0)xJ8(b);let M8={};if(b!==void 0)M8.name=b;if(m!==void 0){let W4=await f(C,m);M8.parent_folder_id=W4,M8.parent_object_id=m}M8.updated_at=M1();let N8=await C.updateTable("entities").set(M8).where("id","=",P8).returningAll().executeTakeFirstOrThrow(),y8=await V(C,P8),$6=await S(C,P8),{entity:E6,mutationApi:r1}=Qz.createFromRow(N8,E,N8.parent_object_id,y8);for(let W4 of $6)r1.setField(W4.getDefinition().getName(),W4);return{entity:E6,mutationApi:r1,pk:P8,oldValues:f8}},R=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid folder ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","f").where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Folder not found: ${E}`,"FOLDER_NOT_FOUND");let c=m.id;W.set(c,E);let o=await V(C,c),P8=await h(C,c),f8=M1();await C.updateTable("entities").set({deleted_at:f8}).where("id","in",[c,...P8]).execute();let M8=[];for(let N8 of P8){let y8=await C.selectFrom("entities").select("object_id").where("id","=",N8).executeTakeFirst();if(y8)M8.push(y8.object_id)}return{id:E,deleted:!0,descendantCount:P8.length,path:o,descendantIds:M8,deletedPks:[c,...P8]}},y=async(C,u,E,b,m=null)=>{let c=await f(C,E),o=C.selectFrom("entities").select("object_id").where("store_id","=",Y).where("parent_folder_id",c===null?"is":"=",c).where("name","=",b).where("deleted_at","is",null);if(m)o=o.where("object_id","!=",m);return!!await o.executeTakeFirst()},t=async(C,u,E,b)=>{let m=await f(C,E),c=await C.selectFrom("entities").innerJoin("folders","folders.entity_id","entities.id").selectAll("entities").where("entities.store_id","=",Y).where("entities.parent_folder_id",m===null?"is":"=",m).where("entities.name","=",b).where("entities.deleted_at","is",null).executeTakeFirst();if(!c)return null;let{id:o,object_id:P8}=c;W.set(o,P8);let f8=await V(C,o),M8=await S(C,o),{entity:N8,mutationApi:y8}=Qz.createFromRow(c,P8,E,f8);for(let $6 of M8)y8.setField($6.getDefinition().getName(),$6);return{entity:N8,mutationApi:y8,pk:o}},K8=async(C,u,{folderId:E,type:b})=>{let m;if(E){if(m=await f(C,E),m===null)return[]}else if(b){let f8=await I8(C,u,b);if(!f8)return[];m=f8.pk}else m=null;let c=C.selectFrom("entities").selectAll().where("store_id","=",Y).where("parent_folder_id",m===null?"is":"=",m).where("deleted_at","is",null);if(b)c=c.where("type_code","=","f").innerJoin("folders","folders.entity_id","entities.id");let o=await c.execute(),P8=[];for(let f8 of o){let{id:M8,object_id:N8}=f8;W.set(M8,N8);let y8=await V(C,M8),$6=await S(C,M8),{entity:E6,mutationApi:r1}=Qz.createFromRow(f8,N8,f8.parent_object_id,y8);for(let W4 of $6)r1.setField(W4.getDefinition().getName(),W4);P8.push({entity:E6,mutationApi:r1,pk:M8})}return P8},R8=async(C,u,{path:E,type:b})=>{let m=(E??"").trim(),c=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("type_code","=","f").where("deleted_at","is",null).execute();for(let o of c){let P8=await B(C,u,{id:o.object_id});if(P8&&P8.entity.getPath()===m)return P8}return null},I8=async(C,u,E,b)=>{if(b!==void 0)v(b);let m=E==="d"?"root_d":"root_t",c=await $Y.readEntityTypeId(C,u,"f",m),o=await C.selectFrom("entities").innerJoin("folders","folders.entity_id","entities.id").selectAll("entities").where("entities.store_id","=",Y).where("entities.entity_type_id","=",c).where("entities.deleted_at","is",null).executeTakeFirst();if(!o)return null;let{id:P8,object_id:f8}=o;W.set(P8,f8);let M8=await V(C,P8),N8=await S(C,P8),{entity:y8,mutationApi:$6}=Qz.createFromRow(o,f8,o.parent_object_id,M8);for(let E6 of N8)$6.setField(E6.getDefinition().getName(),E6);return{entity:y8,mutationApi:$6,pk:P8}},E8=async(C,u,{storeCode:E,ownerEntityId:b,name:m,label:c,description:o,primitiveType:P8,required:f8,multiplicity:M8,isSystem:N8=!1})=>{if(E!==void 0)v(E);r.factory(P8!=="string"&&P8!=="object_ref",n.validation,`Invalid primitiveType: ${P8}`,"INVALID_PRIMITIVE_TYPE"),r.factory(M8!=="single"&&M8!=="multi",n.validation,`Invalid multiplicity: ${M8}`,"INVALID_MULTIPLICITY");let y8=M1(),$6=await $Y.readEntityTypeId(C,u,"n",null),E6=await v9.nextSeq(C,"store",Y,"n"),r1=ff(K,"n",E6),W4=b?await f(C,b):null,S3=await C.insertInto("field_definitions").values({store_id:Y,object_id:r1,entity_type_id:$6,type_code:"n",seq:E6,owner_entity_id:W4,name:m,label:c,description:o,primitive_type:P8,required:f8?1:0,multiplicity:M8,is_system:N8?1:0,created_at:y8,updated_at:y8}).returningAll().executeTakeFirstOrThrow(),H4=S3.id;return W.set(H4,r1),N(S3)},t8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","n").executeTakeFirst();if(!m)return null;if(m.owner_entity_id){let c=await C.selectFrom("entities").select("object_id").where("id","=",m.owner_entity_id).executeTakeFirst();if(c)W.set(m.owner_entity_id,c.object_id)}return W.set(m.id,E),N(m)},g8=async(C,u,E,b)=>{let m=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("name","=",E).where("owner_entity_id",b===null?"is":"=",b).executeTakeFirst();if(!m)return null;if(m.owner_entity_id){let c=await C.selectFrom("entities").select("object_id").where("id","=",m.owner_entity_id).executeTakeFirst();if(c)W.set(m.owner_entity_id,c.object_id)}return W.set(m.id,m.object_id),N(m)},m8=async(C,u,{fieldDefinitionId:E,fieldName:b,ownerEntityPk:m})=>{if(E){let o=await t8(C,u,{id:E});if(o)return o}if(b&&m){let o=await g8(C,u,b,m);if(o)return o}if(b){let o=await g8(C,u,b,null);if(o)return o}let c=await I(C);return r.factory(!c,n.notFound,"No field definition found and no default available","NO_FIELD_DEFINITION"),c},V6=async(C,u,{ownerEntityPk:E,includeSystem:b=!0})=>{let m=C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("owner_entity_id",E===null?"is":"=",E);if(!b)m=m.where("is_system","=",0);let c=await m.execute(),o=[];for(let P8 of c){if(P8.owner_entity_id){let f8=await C.selectFrom("entities").select("object_id").where("id","=",P8.owner_entity_id).executeTakeFirst();if(f8)W.set(P8.owner_entity_id,f8.object_id)}W.set(P8.id,P8.object_id),o.push(N(P8))}return o},C3=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid definition ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("field_definitions").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","n").executeTakeFirst();r.factory(!m,n.notFound,`Field definition not found: ${E}`,"DEFINITION_NOT_FOUND"),r.factory(m.is_system===1,n.validation,`Cannot delete system field definition: ${E}`,"SYSTEM_DEFINITION");let c=m.id;if(await C.deleteFrom("field_definitions").where("id","=",c).execute(),m.owner_entity_id){let P8=await C.selectFrom("entities").select("object_id").where("id","=",m.owner_entity_id).executeTakeFirst();if(P8)W.set(m.owner_entity_id,P8.object_id)}let{entity:o}=N(m);return o},P3=async(C,u,{entityId:E,fieldDefinitionId:b,fieldName:m,value:c,values:o})=>{let P8=P1(E);r.factory(!P8,n.validation,`Invalid entity ID: ${E}`,"INVALID_ID");let f8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("seq","=",P8.seq).where("type_code","=",P8.typeCode).where("deleted_at","is",null).executeTakeFirst();r.factory(!f8,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND");let M8=f8.id,{entity:N8,pk:y8}=await m8(C,u,{fieldDefinitionId:b,fieldName:m,ownerEntityPk:M8}),$6=N8.getMultiplicity(),E6;if($6==="single")if(o&&Array.isArray(o))r.factory(o.length>1||o.length===0,n.validation,`Field '${N8.getName()}' is single-valued but received ${o.length} values`,"MULTIPLICITY_VIOLATION"),E6=[o[0]];else r.factory(c===void 0,n.validation,"Single-valued field requires value parameter","VALUE_REQUIRED"),E6=[c];else if(o&&Array.isArray(o))E6=o;else if(c!==void 0)E6=[c];else r.factory(!0,n.validation,"Multi-valued field requires either value or values parameter","VALUE_OR_VALUES_REQUIRED");await C.deleteFrom("field_values").where("entity_id","=",M8).where("field_definition_id","=",y8).execute();let r1=M1();for(let qC of E6)await C.insertInto("field_values").values({entity_id:M8,field_definition_id:y8,value:qC,updated_at:r1}).execute();let W4=E6,S3=jx.create({definition:N8,values:W4}),H4;if(P8.typeCode==="f")H4=await B(C,u,{id:E});else if(P8.typeCode==="d")H4=await $1(C,u,{id:E});else if(P8.typeCode==="t")H4=await d4(C,u,{id:E});return r.factory(!H4,n.notFound,`Entity not found after field update: ${E}`,"ENTITY_NOT_FOUND"),{...H4,field:S3,fieldName:N8.getName()}},E4=async(C,u,{entityId:E,fieldDefinitionId:b,fieldName:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid entity ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=",c.typeCode).where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND");let P8=o.id,{entity:f8,pk:M8}=await m8(C,u,{fieldDefinitionId:b,fieldName:m,ownerEntityPk:P8});await C.deleteFrom("field_values").where("entity_id","=",P8).where("field_definition_id","=",M8).execute();let N8;if(c.typeCode==="f")N8=await B(C,u,{id:E});else if(c.typeCode==="d")N8=await $1(C,u,{id:E});else if(c.typeCode==="t")N8=await d4(C,u,{id:E});return r.factory(!N8,n.notFound,`Entity not found after field delete: ${E}`,"ENTITY_NOT_FOUND"),{...N8,fieldName:f8.getName()}},a3=async(C,u,{storeCode:E,parentId:b,name:m,initialContent:c})=>{if(E!==void 0)v(E);let o=M1(),P8=await $Y.readEntityTypeId(C,u,"d",null),f8=await v9.nextSeq(C,"store",Y,"d"),M8=ff(K,"d",f8),N8=await f(C,b),y8=await C.insertInto("entities").values({store_id:Y,object_id:M8,entity_type_id:P8,type_code:"d",seq:f8,parent_folder_id:N8,parent_object_id:b,name:m,created_at:o,updated_at:o}).returningAll().executeTakeFirstOrThrow();await C.insertInto("documents").values({entity_id:y8.id,published_version_id:null}).execute();let $6=c!==null&&c!==void 0;if($6)await C.insertInto("document_drafts").values({entity_id:y8.id,content:c,updated_at:o}).execute();let E6=y8.id;W.set(E6,M8);let r1=await V(C,E6),{entity:W4,mutationApi:S3}=wW.createFromRow(y8,M8,b,r1,null,$6,$6?c:null,null);return{entity:W4,mutationApi:S3,pk:E6}},$1=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","e.deleted_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;let c=m.entity_id;W.set(c,E);let o=await V(C,c),P8=await S(C,c),{entity:f8,mutationApi:M8}=wW.createFromRow(m,m.object_id,m.parent_object_id,o,m.published_version_number,m.has_draft===1,m.draft_content??null,m.published_content??null);for(let N8 of P8)M8.setField(N8.getDefinition().getName(),N8);if(m.edit_client_id)M8.setEditState({clientId:m.edit_client_id,startedAt:m.edit_started_at,lastActivityAt:m.edit_activity});return{entity:f8,mutationApi:M8,pk:c}},l$=async(C,u,{id:E,name:b,parentId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=","d").where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Document not found: ${E}`,"DOCUMENT_NOT_FOUND");let P8=o.id,f8={name:o.name,parentId:o.parent_object_id,path:null};W.set(P8,E),f8.path=await V(C,P8);let N8={updated_at:M1()};if(b!==void 0)N8.name=b;if(m!==void 0){let H4=await f(C,m);N8.parent_folder_id=H4,N8.parent_object_id=m}let y8=await C.updateTable("entities").set(N8).where("id","=",P8).returningAll().executeTakeFirstOrThrow(),$6=await C.selectFrom("documents as d").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","d.entity_id").select(["dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("d.entity_id","=",P8).executeTakeFirst(),E6=await V(C,P8),r1=await S(C,P8),{entity:W4,mutationApi:S3}=wW.createFromRow(y8,E,y8.parent_object_id,E6,$6.published_version_number,$6.has_draft===1,$6.draft_content??null,$6.published_content??null);for(let H4 of r1)S3.setField(H4.getDefinition().getName(),H4);return{entity:W4,mutationApi:S3,pk:P8,oldValues:f8}},S6=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","d").where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Document not found: ${E}`,"DOCUMENT_NOT_FOUND");let c=m.id;W.set(c,E);let o=await V(C,c),P8=M1();return await C.updateTable("entities").set({deleted_at:P8}).where("id","=",c).execute(),{id:E,deleted:!0,path:o}},R3=async(C,u,{id:E,content:b,clientId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid document ID: ${E}`,"INVALID_ID"),r.factory(!m,n.validation,"clientId is required","MISSING_CLIENT_ID");let o=M1(),P8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","d").where("seq","=",c.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!P8,n.notFound,`Document not found: ${E}`,"NOT_FOUND");let f8=P8.id;await C.insertInto("document_drafts").values({entity_id:f8,content:b,updated_at:o}).onConflict(($6)=>$6.column("entity_id").doUpdateSet({content:b,updated_at:o})).execute();let N8=!await P6(C,u,{id:E,clientId:m}),y8=await $1(C,u,{id:E});return r.factory(!y8,n.notFound,`Document not found after draft save: ${E}`,"DOCUMENT_NOT_FOUND"),{...y8,lockLost:N8}},V8=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let m=M1(),c=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","dd.content"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();r.factory(!c,n.notFound,`No draft found for document: ${E}`,"DRAFT_NOT_FOUND");let o=c.entity_id,f8=((await C.selectFrom("document_versions").select(C.fn.max("version_number").as("max_version")).where("entity_id","=",o).executeTakeFirst())?.max_version||0)+1,M8=await C.insertInto("document_versions").values({entity_id:o,version_number:f8,content:c.content,published_at:m}).returningAll().executeTakeFirstOrThrow();await C.updateTable("documents").set({published_version_id:M8.id}).where("entity_id","=",o).execute(),await C.deleteFrom("document_drafts").where("entity_id","=",o).execute(),await C.deleteFrom("document_edit_state").where("entity_id","=",o).execute();let N8=await $1(C,u,{id:E});return r.factory(!N8,n.notFound,`Document not found after publish: ${E}`,"DOCUMENT_NOT_FOUND"),N8},A8=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid document ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","d").where("seq","=",b.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Document not found: ${E}`,"NOT_FOUND"),await C.deleteFrom("document_drafts").where("entity_id","=",m.id).execute();let c=await $1(C,u,{id:E});return r.factory(!c,n.notFound,`Document not found after discard: ${E}`,"DOCUMENT_NOT_FOUND"),c},x8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.object_id","dd.content","dd.updated_at"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;return{entityId:m.object_id,content:m.content,updatedAt:m.updated_at}},u8=async(C,u,{id:E,versionNumber:b})=>{let m=P1(E);if(!m)return null;let c=await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["e.object_id","dv.version_number","dv.content","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",m.seq).where("e.deleted_at","is",null).where("dv.version_number","=",b).executeTakeFirst();if(!c)return null;return{entityId:c.object_id,versionNumber:c.version_number,content:c.content,publishedAt:c.published_at}},J6=async(C,u,{id:E})=>{let b=P1(E);if(!b)return[];return(await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["dv.version_number","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.seq","=",b.seq).where("e.deleted_at","is",null).orderBy("dv.version_number","desc").execute()).map((c)=>({versionNumber:c.version_number,publishedAt:c.published_at}))},n6=async(C,u,E,b)=>{let m=await f(C,E),c=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.parent_folder_id",m===null?"is":"=",m).where("e.name","=",b).where("e.deleted_at","is",null).executeTakeFirst();if(!c)return null;let o=c.entity_id;W.set(o,c.object_id);let P8=await V(C,o),f8=await S(C,o),{entity:M8,mutationApi:N8}=wW.createFromRow(c,c.object_id,c.parent_object_id,P8,c.published_version_number,c.has_draft===1,c.draft_content??null,c.published_content??null);for(let y8 of f8)N8.setField(y8.getDefinition().getName(),y8);return{entity:M8,mutationApi:N8,pk:o}},N4=async(C,u,{parentId:E})=>{let b=await f(C,E),m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","d").where("e.parent_folder_id",b===null?"is":"=",b).where("e.deleted_at","is",null).execute(),c=[];for(let o of m){let P8=o.entity_id;W.set(P8,o.object_id);let f8=await V(C,P8),M8=await S(C,P8),{entity:N8,mutationApi:y8}=wW.createFromRow(o,o.object_id,o.parent_object_id,f8,o.published_version_number,o.has_draft===1,o.draft_content??null,o.published_content??null);for(let $6 of M8)y8.setField($6.getDefinition().getName(),$6);if(o.edit_client_id)y8.setEditState({clientId:o.edit_client_id,startedAt:o.edit_started_at,lastActivityAt:o.edit_activity});c.push({entity:N8,mutationApi:y8,pk:P8})}return c},D3=async(C,u,{storeCode:E,parentId:b,name:m,initialContent:c})=>{if(E!==void 0)v(E);let o=M1(),P8=await $Y.readEntityTypeId(C,u,"t",null),f8=await v9.nextSeq(C,"store",Y,"t"),M8=ff(K,"t",f8),N8=await f(C,b),y8=await C.insertInto("entities").values({store_id:Y,object_id:M8,entity_type_id:P8,type_code:"t",seq:f8,parent_folder_id:N8,parent_object_id:b,name:m,created_at:o,updated_at:o}).returningAll().executeTakeFirstOrThrow();await C.insertInto("documents").values({entity_id:y8.id,published_version_id:null}).execute();let $6=c!==null&&c!==void 0;if($6)await C.insertInto("document_drafts").values({entity_id:y8.id,content:c,updated_at:o}).execute();let E6=y8.id;W.set(E6,M8);let r1=await V(C,E6),{entity:W4,mutationApi:S3}=TW.createFromRow(y8,M8,b,r1,null,$6,$6?c:null,null);return{entity:W4,mutationApi:S3,pk:E6}},d4=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","e.deleted_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;let c=m.entity_id;W.set(c,E);let o=await V(C,c),P8=await S(C,c),{entity:f8,mutationApi:M8}=TW.createFromRow(m,m.object_id,m.parent_object_id,o,m.published_version_number,m.has_draft===1,m.draft_content??null,m.published_content??null);for(let N8 of P8)M8.setField(N8.getDefinition().getName(),N8);if(m.edit_client_id)M8.setEditState({clientId:m.edit_client_id,startedAt:m.edit_started_at,lastActivityAt:m.edit_activity});return{entity:f8,mutationApi:M8,pk:c}},Z8=async(C,u,{id:E,name:b,parentId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let o=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",c.seq).where("type_code","=","t").where("deleted_at","is",null).executeTakeFirst();r.factory(!o,n.notFound,`Template not found: ${E}`,"TEMPLATE_NOT_FOUND");let P8=o.id,f8={name:o.name,parentId:o.parent_object_id,path:null};W.set(P8,E),f8.path=await V(C,P8);let N8={updated_at:M1()};if(b!==void 0)N8.name=b;if(m!==void 0){let H4=await f(C,m);N8.parent_folder_id=H4,N8.parent_object_id=m}let y8=await C.updateTable("entities").set(N8).where("id","=",P8).returningAll().executeTakeFirstOrThrow(),$6=await C.selectFrom("documents as d").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","d.entity_id").select(["dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("d.entity_id","=",P8).executeTakeFirst(),E6=await V(C,P8),r1=await S(C,P8),{entity:W4,mutationApi:S3}=TW.createFromRow(y8,E,y8.parent_object_id,E6,$6.published_version_number,$6.has_draft===1,$6.draft_content??null,$6.published_content??null);for(let H4 of r1)S3.setField(H4.getDefinition().getName(),H4);return{entity:W4,mutationApi:S3,pk:P8,oldValues:f8}},X8=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").selectAll().where("store_id","=",Y).where("seq","=",b.seq).where("type_code","=","t").where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Template not found: ${E}`,"TEMPLATE_NOT_FOUND");let c=m.id;W.set(c,E);let o=await V(C,c),P8=M1();return await C.updateTable("entities").set({deleted_at:P8}).where("id","=",c).execute(),{id:E,deleted:!0,path:o}},U=async(C,u,{id:E,content:b,clientId:m})=>{let c=P1(E);r.factory(!c,n.validation,`Invalid template ID: ${E}`,"INVALID_ID"),r.factory(!m,n.validation,"clientId is required","MISSING_CLIENT_ID");let o=M1(),P8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","t").where("seq","=",c.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!P8,n.notFound,`Template not found: ${E}`,"NOT_FOUND");let f8=P8.id;await C.insertInto("document_drafts").values({entity_id:f8,content:b,updated_at:o}).onConflict(($6)=>$6.column("entity_id").doUpdateSet({content:b,updated_at:o})).execute();let N8=!await P6(C,u,{id:E,clientId:m}),y8=await d4(C,u,{id:E});return r.factory(!y8,n.notFound,`Template not found after draft save: ${E}`,"TEMPLATE_NOT_FOUND"),{...y8,lockLost:N8}},a=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let m=M1(),c=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","dd.content"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();r.factory(!c,n.notFound,`No draft found for template: ${E}`,"DRAFT_NOT_FOUND");let o=c.entity_id,f8=((await C.selectFrom("document_versions").select(C.fn.max("version_number").as("max_version")).where("entity_id","=",o).executeTakeFirst())?.max_version||0)+1,M8=await C.insertInto("document_versions").values({entity_id:o,version_number:f8,content:c.content,published_at:m}).returningAll().executeTakeFirstOrThrow();await C.updateTable("documents").set({published_version_id:M8.id}).where("entity_id","=",o).execute(),await C.deleteFrom("document_drafts").where("entity_id","=",o).execute(),await C.deleteFrom("document_edit_state").where("entity_id","=",o).execute();let N8=await d4(C,u,{id:E});return r.factory(!N8,n.notFound,`Template not found after publish: ${E}`,"TEMPLATE_NOT_FOUND"),N8},i=async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid template ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=","t").where("seq","=",b.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!m,n.notFound,`Template not found: ${E}`,"NOT_FOUND"),await C.deleteFrom("document_drafts").where("entity_id","=",m.id).execute();let c=await d4(C,u,{id:E});return r.factory(!c,n.notFound,`Template not found after discard: ${E}`,"TEMPLATE_NOT_FOUND"),c},W8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.object_id","dd.content","dd.updated_at"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).executeTakeFirst();if(!m)return null;return{entityId:m.object_id,content:m.content,updatedAt:m.updated_at}},e=async(C,u,{id:E,versionNumber:b})=>{let m=P1(E);if(!m)return null;let c=await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["e.object_id","dv.version_number","dv.content","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",m.seq).where("e.deleted_at","is",null).where("dv.version_number","=",b).executeTakeFirst();if(!c)return null;return{entityId:c.object_id,versionNumber:c.version_number,content:c.content,publishedAt:c.published_at}},$8=async(C,u,{id:E})=>{let b=P1(E);if(!b)return[];return(await C.selectFrom("entities as e").innerJoin("document_versions as dv","dv.entity_id","e.id").select(["dv.version_number","dv.published_at"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.seq","=",b.seq).where("e.deleted_at","is",null).orderBy("dv.version_number","desc").execute()).map((c)=>({versionNumber:c.version_number,publishedAt:c.published_at}))},J8=async(C,u,E,b)=>{let m=await f(C,E),c=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft")]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.parent_folder_id",m===null?"is":"=",m).where("e.name","=",b).where("e.deleted_at","is",null).executeTakeFirst();if(!c)return null;let o=c.entity_id;W.set(o,c.object_id);let P8=await V(C,o),f8=await S(C,o),{entity:M8,mutationApi:N8}=TW.createFromRow(c,c.object_id,c.parent_object_id,P8,c.published_version_number,c.has_draft===1,c.draft_content??null,c.published_content??null);for(let y8 of f8)N8.setField(y8.getDefinition().getName(),y8);return{entity:M8,mutationApi:N8,pk:o}},G8=async(C,u,{parentId:E})=>{let b=await f(C,E),m=await C.selectFrom("entities as e").innerJoin("documents as d","d.entity_id","e.id").leftJoin("document_versions as dv","dv.id","d.published_version_id").leftJoin("document_drafts as dd","dd.entity_id","e.id").leftJoin("document_edit_state as es","es.entity_id","e.id").select(["e.id as entity_id","e.object_id","e.parent_folder_id","e.parent_object_id","e.name","e.created_at","e.updated_at","dv.version_number as published_version_number","dv.content as published_content","dd.content as draft_content",Z3.raw("CASE WHEN dd.entity_id IS NOT NULL THEN 1 ELSE 0 END").as("has_draft"),"es.client_id as edit_client_id","es.started_at as edit_started_at","es.last_activity_at as edit_activity"]).where("e.store_id","=",Y).where("e.type_code","=","t").where("e.parent_folder_id",b===null?"is":"=",b).where("e.deleted_at","is",null).execute(),c=[];for(let o of m){let P8=o.entity_id;W.set(P8,o.object_id);let f8=await V(C,P8),M8=await S(C,P8),{entity:N8,mutationApi:y8}=TW.createFromRow(o,o.object_id,o.parent_object_id,f8,o.published_version_number,o.has_draft===1,o.draft_content??null,o.published_content??null);for(let $6 of M8)y8.setField($6.getDefinition().getName(),$6);if(o.edit_client_id)y8.setEditState({clientId:o.edit_client_id,startedAt:o.edit_started_at,lastActivityAt:o.edit_activity});c.push({entity:N8,mutationApi:y8,pk:P8})}return c},s8=async(C,u,{id:E,clientId:b})=>{let m=P1(E);r.factory(!m,n.validation,`Invalid ID: ${E}`,"INVALID_ID");let c=M1(),o=new Date(Date.now()-jW).toISOString(),P8=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=",m.typeCode).where("seq","=",m.seq).where("deleted_at","is",null).executeTakeFirst();r.factory(!P8,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND");let f8=P8.id,M8=await C.selectFrom("document_edit_state").selectAll().where("entity_id","=",f8).executeTakeFirst();if(M8)if(M8.client_id===b)return await C.updateTable("document_edit_state").set({started_at:c,last_activity_at:c}).where("entity_id","=",f8).execute(),{success:!0};else if(M8.last_activity_at<o)return await C.updateTable("document_edit_state").set({client_id:b,started_at:c,last_activity_at:c}).where("entity_id","=",f8).execute(),{success:!0};else return{success:!1,meta:{lockedBy:M8.client_id,lockedSince:M8.started_at,timeoutSeconds:jW/1000}};else return await C.insertInto("document_edit_state").values({entity_id:f8,client_id:b,started_at:c,last_activity_at:c}).execute(),{success:!0}},P6=async(C,u,{id:E,clientId:b})=>{let m=P1(E);if(!m)return!1;let c=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=",m.typeCode).where("seq","=",m.seq).executeTakeFirst();if(!c)return!1;return((await C.updateTable("document_edit_state").set({last_activity_at:M1()}).where("entity_id","=",c.id).where("client_id","=",b).execute())[0]?.numUpdatedRows||0)>0},q8=Object.freeze({...H,getCodes:O,getType:X,getCode:w,getPk:T,toJSON:G,createFolder:D,readFolder:B,updateFolder:g,deleteFolder:R,isDuplicateNameInParent:y,findFolderByName:t,listFolderContents:K8,getFolderByPath:R8,readRootFolderForType:I8,createDocument:a3,readDocument:$1,updateDocument:l$,deleteDocument:S6,saveDraft:R3,readDraft:x8,publishDocument:V8,discardDraft:A8,readVersion:u8,getVersions:J6,findDocumentByName:n6,listDocuments:N4,createTemplate:D3,readTemplate:d4,updateTemplate:Z8,deleteTemplate:X8,saveTemplateDraft:U,readTemplateDraft:W8,publishTemplate:a,discardTemplateDraft:i,readTemplateVersion:e,getTemplateVersions:$8,findTemplateByName:J8,listTemplates:G8,createFieldDefinition:E8,readFieldDefinition:t8,readDefaultFieldDefinition:I,findFieldDefinitionByName:g8,resolveFieldDefinition:m8,getFieldDefinitionsForOwner:V6,deleteFieldDefinition:C3,setFieldValue:P3,deleteFieldValue:E4,setEditState:s8,clearEditState:async(C,u,{id:E})=>{let b=P1(E);r.factory(!b,n.validation,`Invalid ID: ${E}`,"INVALID_ID");let m=await C.selectFrom("entities").select("id").where("store_id","=",Y).where("type_code","=",b.typeCode).where("seq","=",b.seq).executeTakeFirst();r.factory(!m,n.notFound,`Entity not found: ${E}`,"ENTITY_NOT_FOUND"),await C.deleteFrom("document_edit_state").where("entity_id","=",m.id).execute()},getEditState:async(C,u,{id:E})=>{let b=P1(E);if(!b)return null;let m=await C.selectFrom("entities as e").innerJoin("document_edit_state as es","es.entity_id","e.id").select(["es.client_id","es.started_at","es.last_activity_at"]).where("e.store_id","=",Y).where("e.type_code","=",b.typeCode).where("e.seq","=",b.seq).executeTakeFirst();if(!m)return null;return{clientId:m.client_id,startedAt:m.started_at,lastActivityAt:m.last_activity_at}}}),j8=Object.freeze({...Z});return{store:q8,mutationApi:j8}},gJ8=Object.freeze({create:_H6});var fH6=({inner:$,folderCache:K,documentCache:q,templateCache:Y,fieldDefinitionCache:z})=>{let J=async(U,a,i,W8)=>{let e=await $.createFolder(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{K.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},P=async(U,a,{id:i})=>{let W8=K.get(i);if(W8)return W8.getEntity();let e=await $.readFolder(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return K.set(i,T6.create($8,J8,G8)),$8},W=async(U,a,i,W8)=>{let{id:e}=i,$8=K.get(e),J8=await $.updateFolder(U,a,i),G8=i.name!==void 0&&i.name!==J8.oldValues.name||i.parentId!==void 0&&i.parentId!==J8.oldValues.parentId;return W8(()=>{if($8){let P6=$8.getMutationApi();if(i.name!==void 0)P6.setName(i.name);if(i.parentId!==void 0)P6.setParentId(i.parentId);P6.setUpdatedAt(J8.entity.getUpdatedAt()),P6.setPath(J8.entity.getPath())}else{let{entity:P6,mutationApi:O8,pk:T8}=J8;K.set(e,T6.create(P6,O8,T8))}if(G8){let O8=J8.oldValues.path+"/";for(let[T8,q8]of K.entries())if(q8.getEntity().getPath().startsWith(O8))K.remove(T8)}}),{entity:$8?$8.getEntity():J8.entity,oldValues:J8.oldValues}},H=async(U,a,{id:i},W8)=>{let e=K.get(i),$8=e?e.getEntity().getPath():null,J8=await $.deleteFolder(U,a,{id:i});return W8(()=>{K.remove(i);for(let G8 of J8.descendantIds||[])K.remove(G8)}),{...J8,path:$8}},Z=async(U,a,i)=>{let W8=await $.listFolderContents(U,a,i);for(let e of W8)K.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},O=async(U,a,i)=>{let W8=await $.getFolderByPath(U,a,i);if(!W8)return null;let{entity:e,mutationApi:$8,pk:J8}=W8;return K.set(e.getObjectId(),T6.create(e,$8,J8)),e},X=async(U,a,i,W8)=>{let e=await $.findFolderByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return K.set($8.getObjectId(),T6.create($8,J8,G8)),$8},w=async(U,a,i)=>{let W8=await $.readRootFolderForType(U,a,i);if(!W8)return null;let{entity:e,mutationApi:$8,pk:J8}=W8;return K.set(e.getObjectId(),T6.create(e,$8,J8)),e},T=async(U,a,i,W8,e)=>{return $.isDuplicateNameInParent(U,a,i,W8,e)},G=async(U,a,i,W8)=>{let e=await $.createDocument(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{q.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},v=async(U,a,{id:i})=>{let W8=q.get(i);if(W8)return W8.getEntity();let e=await $.readDocument(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return q.set(i,T6.create($8,J8,G8)),$8},f=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.updateDocument(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();if(i.name!==void 0)G8.setName(i.name);if(i.parentId!==void 0)G8.setParentId(i.parentId);G8.setUpdatedAt(J8.entity.getUpdatedAt()),G8.setPath(J8.entity.getPath())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;q.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},V=async(U,a,{id:i},W8)=>{let e=q.get(i),$8=e?e.getEntity().getPath():null,J8=await $.deleteDocument(U,a,{id:i});return W8(()=>{q.remove(i)}),{...J8,path:$8}},h=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.saveDraft(U,a,i);W8(()=>{if($8){let s8=$8.getMutationApi();s8.setDraftContent(J8.entity.getDraftContent()),s8.setHasDraft(J8.entity.hasDraftContent()),s8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:s8,mutationApi:P6,pk:O8}=J8;q.set(e,T6.create(s8,P6,O8))}});let G8=$8?$8.getEntity():J8.entity;if(J8.lockLost!==void 0)return{entity:G8,lockLost:J8.lockLost};return G8},A=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.publishDocument(U,a,i);if($8){let G8=$8.getMutationApi();return G8.setPublishedVersionNumber(J8.entity.getPublishedVersionNumber()),G8.setPublishedContent(J8.entity.getPublishedContent()),G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt()),$8.getEntity()}else return W8(()=>{let{entity:G8,mutationApi:s8,pk:P6}=J8;q.set(e,T6.create(G8,s8,P6))}),J8.entity},N=async(U,a,i,W8)=>{let{id:e}=i,$8=q.get(e),J8=await $.discardDraft(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;q.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},S=async(U,a,i)=>{return $.readDraft(U,a,i)},I=async(U,a,i)=>{return $.readVersion(U,a,i)},D=async(U,a,i)=>{return $.getVersions(U,a,i)},B=async(U,a,i,W8)=>{let e=await $.findDocumentByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return q.set($8.getObjectId(),T6.create($8,J8,G8)),$8},g=async(U,a,i)=>{let W8=await $.listDocuments(U,a,i);for(let e of W8)q.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},R=async(U,a,i,W8)=>{let{id:e}=i,$8=await $.setEditState(U,a,i);return W8(()=>{let J8=e.charAt(1);if(J8==="d")q.remove(e);else if(J8==="t")Y.remove(e)}),$8},y=async(U,a,i)=>{return $.getEditState(U,a,i)},t=async(U,a,i,W8)=>{let{id:e}=i;await $.clearEditState(U,a,i),W8(()=>{let $8=e.charAt(1);if($8==="d")q.remove(e);else if($8==="t")Y.remove(e)})},K8=async(U,a,i,W8)=>{let e=await $.createTemplate(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{Y.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},R8=async(U,a,{id:i})=>{let W8=Y.get(i);if(W8)return W8.getEntity();let e=await $.readTemplate(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return Y.set(i,T6.create($8,J8,G8)),$8},I8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.updateTemplate(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();if(i.name!==void 0)G8.setName(i.name);if(i.parentId!==void 0)G8.setParentId(i.parentId);G8.setUpdatedAt(J8.entity.getUpdatedAt()),G8.setPath(J8.entity.getPath())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;Y.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},E8=async(U,a,{id:i},W8)=>{let e=Y.get(i),$8=e?e.getEntity().getPath():null,J8=await $.deleteTemplate(U,a,{id:i});return W8(()=>{Y.remove(i)}),{...J8,path:$8}},t8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.saveTemplateDraft(U,a,i);W8(()=>{if($8){let s8=$8.getMutationApi();s8.setDraftContent(J8.entity.getDraftContent()),s8.setHasDraft(J8.entity.hasDraftContent()),s8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:s8,mutationApi:P6,pk:O8}=J8;Y.set(e,T6.create(s8,P6,O8))}});let G8=$8?$8.getEntity():J8.entity;if(J8.lockLost!==void 0)return{entity:G8,lockLost:J8.lockLost};return G8},g8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.publishTemplate(U,a,i);if($8){let G8=$8.getMutationApi();return G8.setPublishedVersionNumber(J8.entity.getPublishedVersionNumber()),G8.setPublishedContent(J8.entity.getPublishedContent()),G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt()),$8.getEntity()}else return W8(()=>{let{entity:G8,mutationApi:s8,pk:P6}=J8;Y.set(e,T6.create(G8,s8,P6))}),J8.entity},m8=async(U,a,i,W8)=>{let{id:e}=i,$8=Y.get(e),J8=await $.discardTemplateDraft(U,a,i);return W8(()=>{if($8){let G8=$8.getMutationApi();G8.setDraftContent(null),G8.setHasDraft(!1),G8.setUpdatedAt(J8.entity.getUpdatedAt())}else{let{entity:G8,mutationApi:s8,pk:P6}=J8;Y.set(e,T6.create(G8,s8,P6))}}),$8?$8.getEntity():J8.entity},V6=async(U,a,i)=>{return $.readTemplateDraft(U,a,i)},C3=async(U,a,i)=>{return $.readTemplateVersion(U,a,i)},P3=async(U,a,i)=>{return $.getTemplateVersions(U,a,i)},E4=async(U,a,i,W8)=>{let e=await $.findTemplateByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return Y.set($8.getObjectId(),T6.create($8,J8,G8)),$8},a3=async(U,a,i)=>{let W8=await $.listTemplates(U,a,i);for(let e of W8)Y.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},$1=async(U,a,i)=>{return $.setTemplateEditState(U,a,i)},l$=async(U,a,i)=>{return $.getTemplateEditState(U,a,i)},S6=async(U,a,i,W8)=>{return $.clearTemplateEditState(U,a,i,W8)},R3=async(U,a,i,W8)=>{let e=await $.createFieldDefinition(U,a,i),{entity:$8,mutationApi:J8,pk:G8}=e;return W8(()=>{z.set($8.getObjectId(),T6.create($8,J8,G8))}),$8},V8=async(U,a,{id:i})=>{let W8=z.get(i);if(W8)return W8.getEntity();let e=await $.readFieldDefinition(U,a,{id:i});if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return z.set(i,T6.create($8,J8,G8)),$8},A8=async(U,a,i,W8)=>{let e=await $.findFieldDefinitionByName(U,a,i,W8);if(!e)return null;let{entity:$8,mutationApi:J8,pk:G8}=e;return z.set($8.getObjectId(),T6.create($8,J8,G8)),$8},x8=async(U,a,i)=>{let W8=await $.getFieldDefinitionsForOwner(U,a,i);for(let e of W8)z.set(e.entity.getObjectId(),T6.create(e.entity,e.mutationApi,e.pk));return W8.map((e)=>e.entity)},u8=async(U,a)=>{let i=`${$.getCode()}n1`,W8=z.get(i);if(W8)return W8.getEntity();let e=await $.readDefaultFieldDefinition(U,a),{entity:$8,mutationApi:J8,pk:G8}=e;return z.set($8.getObjectId(),T6.create($8,J8,G8)),$8},J6=async(U,a,i)=>{let W8=await $.resolveFieldDefinition(U,a,i),{entity:e,mutationApi:$8,pk:J8}=W8;return z.set(e.getObjectId(),T6.create(e,$8,J8)),e},n6=async(U,a,{id:i},W8)=>{let e=await $.deleteFieldDefinition(U,a,{id:i});return W8(()=>{z.remove(i)}),e},N4=async(U,a,i,W8)=>{let{entityId:e}=i,$8=await $.setFieldValue(U,a,i);return W8(()=>{let J8=K.get(e)||q.get(e)||Y.get(e);if(J8){let G8=J8.getMutationApi(),s8=$8.entity.getField($8.fieldName);G8.setField($8.fieldName,s8)}}),$8.entity},D3=async(U,a,i)=>{return $.getFieldValue(U,a,i)},d4=async(U,a,i,W8)=>{let{entityId:e}=i,$8=await $.deleteFieldValue(U,a,i);W8(()=>{let J8=K.get(e)||q.get(e)||Y.get(e);if(J8)J8.getMutationApi().removeField($8.fieldName)})},Z8=(U)=>{K.remove(U)};return Object.freeze({getObjectId:$.getObjectId,getName:$.getName,getCreatedAt:$.getCreatedAt,getUpdatedAt:$.getUpdatedAt,getCodes:$.getCodes,getType:$.getType,getCode:$.getCode,getPk:$.getPk,toJSON:$.toJSON,createFolder:J,readFolder:P,updateFolder:W,deleteFolder:H,listFolderContents:Z,getFolderByPath:O,findFolderByName:X,readRootFolderForType:w,isDuplicateNameInParent:T,createDocument:G,readDocument:v,updateDocument:f,deleteDocument:V,saveDraft:h,readDraft:S,publishDocument:A,discardDraft:N,readVersion:I,getVersions:D,findDocumentByName:B,listDocuments:g,setEditState:R,getEditState:y,clearEditState:t,createTemplate:K8,readTemplate:R8,updateTemplate:I8,deleteTemplate:E8,saveTemplateDraft:t8,readTemplateDraft:V6,publishTemplate:g8,discardTemplateDraft:m8,readTemplateVersion:C3,getTemplateVersions:P3,findTemplateByName:E4,listTemplates:a3,setTemplateEditState:$1,getTemplateEditState:l$,clearTemplateEditState:S6,createFieldDefinition:R3,readFieldDefinition:V8,findFieldDefinitionByName:A8,getFieldDefinitionsForOwner:x8,readDefaultFieldDefinition:u8,resolveFieldDefinition:J6,deleteFieldDefinition:n6,setFieldValue:N4,getFieldValue:D3,deleteFieldValue:d4,evictFolder:Z8})},yJ8=Object.freeze({create:fH6});var VH6=($)=>{let K=new Map;return $.forEach((J)=>K.set(J,new Set)),Object.freeze({subscribe:(J,P)=>{return K.get(J)?.add(P),()=>K.get(J)?.delete(P)},subscribeAll:(J)=>{let P=[];for(let[W,H]of K){let Z=`on${W.charAt(0).toUpperCase()}${W.slice(1)}`;if(J[Z])H.add(J[Z]),P.push(()=>H.delete(J[Z]))}return()=>P.forEach((W)=>W())},notify:(J,P)=>{K.get(J)?.forEach((W)=>{try{W(P)}catch(H){console.error(`Error in ${J} handler:`,H)}})}})},uJ8=Object.freeze({create:VH6});var M6=Object.freeze({FOLDER_CREATED:"folderCreated",FOLDER_RENAMED:"folderRenamed",FOLDER_MOVED:"folderMoved",FOLDER_DELETED:"folderDeleted",DOCUMENT_CREATED:"documentCreated",DOCUMENT_RENAMED:"documentRenamed",DOCUMENT_MOVED:"documentMoved",DOCUMENT_DELETED:"documentDeleted",DOCUMENT_PUBLISHED:"documentPublished",DRAFT_SAVED:"draftSaved",DRAFT_DISCARDED:"draftDiscarded",TEMPLATE_CREATED:"templateCreated",TEMPLATE_RENAMED:"templateRenamed",TEMPLATE_MOVED:"templateMoved",TEMPLATE_DELETED:"templateDeleted",TEMPLATE_PUBLISHED:"templatePublished",TEMPLATE_DRAFT_SAVED:"templateDraftSaved",TEMPLATE_DRAFT_DISCARDED:"templateDraftDiscarded",EDIT_STATE_ACQUIRED:"editStateAcquired",EDIT_STATE_REFRESHED:"editStateRefreshed",EDIT_STATE_CLEARED:"editStateCleared"});var AH6=({inner:$,storeCode:K})=>{let q=uJ8.create([M6.FOLDER_CREATED,M6.FOLDER_RENAMED,M6.FOLDER_MOVED,M6.FOLDER_DELETED,M6.DOCUMENT_CREATED,M6.DOCUMENT_RENAMED,M6.DOCUMENT_MOVED,M6.DOCUMENT_DELETED,M6.DOCUMENT_PUBLISHED,M6.DRAFT_SAVED,M6.DRAFT_DISCARDED,M6.TEMPLATE_CREATED,M6.TEMPLATE_RENAMED,M6.TEMPLATE_MOVED,M6.TEMPLATE_DELETED,M6.TEMPLATE_PUBLISHED,M6.TEMPLATE_DRAFT_SAVED,M6.TEMPLATE_DRAFT_DISCARDED]),Y=async(Z8,X8,U)=>{let a=await $.readFolder(Z8,X8,{id:U});if(!a)return null;let i=await Z8.selectFrom("entities").innerJoin("entity_types","entities.entity_type_id","entity_types.id").select(["entity_types.code as entity_type_code","entity_types.subtype as entity_type_subtype"]).where("entities.object_id","=",U).executeTakeFirst();if(i?.entity_type_code==="f"&&i?.entity_type_subtype==="root_d")return"d";if(i?.entity_type_code==="f"&&i?.entity_type_subtype==="root_t")return"t";let W8=await $.readRootFolderForType(Z8,X8,"d"),e=await $.readRootFolderForType(Z8,X8,"t"),$8=a;while($8&&$8.getParentId()!==null){let J8=await $.readFolder(Z8,X8,{id:$8.getParentId()});if(!J8)break;$8=J8}if($8&&$8.getObjectId()===W8?.getObjectId())return"d";else if($8&&$8.getObjectId()===e?.getObjectId())return"t";return null},z=async(Z8,X8,U,a)=>{let{parentId:i,name:W8,subtype:e}=U,$8=await $.createFolder(Z8,X8,U,a),J8=null;if(e==="root_d")J8="d";else if(e==="root_t")J8="t";else{let G8=await $.readRootFolderForType(Z8,X8,"d"),s8=await $.readRootFolderForType(Z8,X8,"t");if(i===G8?.getObjectId())J8="d";else if(i===s8?.getObjectId())J8="t";else if(i){let P6=await $.readFolder(Z8,X8,{id:i});if(P6){let O8=P6;while(O8&&O8.getParentId()!==null){let T8=await $.readFolder(Z8,X8,{id:O8.getParentId()});if(!T8)break;O8=T8}if(O8&&O8.getObjectId()===G8?.getObjectId())J8="d";else if(O8&&O8.getObjectId()===s8?.getObjectId())J8="t"}}}return a(()=>{q.notify(M6.FOLDER_CREATED,{id:$8.getObjectId(),storeCode:K,name:$8.getName(),path:$8.getPath(),parentFolderId:i,contentType:J8})}),$8},J=async(Z8,X8,U)=>{return $.readFolder(Z8,X8,U)},P=async(Z8,X8,U,a)=>{let{id:i,name:W8,parentId:e}=U,$8=await $.updateFolder(Z8,X8,U,a),J8=$8.entity,G8=$8.oldValues.name,s8=$8.oldValues.parentId,P6=await Y(Z8,X8,i);if(W8!==void 0&&W8!==G8)a(()=>{q.notify(M6.FOLDER_RENAMED,{id:i,storeCode:K,parentFolderId:J8.getParentId(),contentType:P6,oldName:G8,newName:W8,path:J8.getPath()})});if(e!==void 0&&e!==s8)a(()=>{q.notify(M6.FOLDER_MOVED,{id:i,storeCode:K,contentType:P6,oldParentFolderId:s8,parentFolderId:e,path:J8.getPath()})});return J8},W=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readFolder(Z8,X8,{id:i}))?.getParentId(),$8=await Y(Z8,X8,i),J8=await $.deleteFolder(Z8,X8,U,a);return a(()=>{q.notify(M6.FOLDER_DELETED,{id:i,storeCode:K,parentFolderId:e,contentType:$8,path:J8.path,descendantCount:J8.descendantIds?.length||0})}),J8},H=async(Z8,X8,U)=>{return $.listFolderContents(Z8,X8,U)},Z=async(Z8,X8,U)=>{return $.getFolderByPath(Z8,X8,U)},O=async(Z8,X8,U,a)=>{return $.findFolderByName(Z8,X8,U,a)},X=async(Z8,X8,U)=>{return $.readRootFolderForType(Z8,X8,U)},w=async(Z8,X8,U,a,i)=>{return $.isDuplicateNameInParent(Z8,X8,U,a,i)},T=async(Z8,X8,U,a)=>{let{parentId:i,name:W8}=U,e=await $.createDocument(Z8,X8,U,a);return a(()=>{q.notify(M6.DOCUMENT_CREATED,{storeCode:K,id:e.getObjectId(),type:"d",parentFolderId:i,name:e.getName(),path:e.getPath()})}),e},G=async(Z8,X8,U)=>{return $.readDocument(Z8,X8,U)},v=async(Z8,X8,U,a)=>{let{id:i,name:W8,parentId:e}=U,$8=await $.readDocument(Z8,X8,{id:i}),J8=$8?.getName(),G8=$8?.getParentId(),s8=await $.updateDocument(Z8,X8,U,a);if(W8!==void 0&&W8!==J8)a(()=>{q.notify(M6.DOCUMENT_RENAMED,{storeCode:K,id:i,type:"d",parentFolderId:s8.getParentId(),oldName:J8,newName:W8,path:s8.getPath()})});if(e!==void 0&&e!==G8)a(()=>{q.notify(M6.DOCUMENT_MOVED,{storeCode:K,id:i,type:"d",oldParentFolderId:G8,parentFolderId:e,path:s8.getPath()})});return s8},f=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readDocument(Z8,X8,{id:i}))?.getParentId(),$8=await $.deleteDocument(Z8,X8,U,a);return a(()=>{q.notify(M6.DOCUMENT_DELETED,{storeCode:K,id:i,type:"d",parentFolderId:e,path:$8.path})}),$8},V=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readDocument(Z8,X8,{id:i}))?.getParentId(),$8=await $.saveDraft(Z8,X8,U,a);return a(()=>{let J8=$8.lockLost!==void 0?$8.entity:$8;q.notify(M6.DRAFT_SAVED,{storeCode:K,id:i,type:"d",parentFolderId:e,updatedAt:J8?J8.getUpdatedAt():null,lockLost:$8.lockLost})}),$8},h=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.publishDocument(Z8,X8,U,a);return a(()=>{q.notify(M6.DOCUMENT_PUBLISHED,{storeCode:K,id:i,type:"d",parentFolderId:W8.getParentId(),versionNumber:W8.getPublishedVersionNumber()})}),{entityId:i,versionNumber:W8.getPublishedVersionNumber(),content:W8.getPublishedContent(),publishedAt:W8.getUpdatedAt()}},A=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.discardDraft(Z8,X8,U,a);return a(()=>{q.notify(M6.DRAFT_DISCARDED,{storeCode:K,id:i})}),W8},N=async(Z8,X8,U)=>{return $.readDraft(Z8,X8,U)},S=async(Z8,X8,U)=>{return $.readVersion(Z8,X8,U)},I=async(Z8,X8,U)=>{return $.getVersions(Z8,X8,U)},D=async(Z8,X8,U,a)=>{return $.findDocumentByName(Z8,X8,U,a)},B=async(Z8,X8,U)=>{return $.listDocuments(Z8,X8,U)},g=async(Z8,X8,U,a)=>{return $.setEditState(Z8,X8,U,a)},R=async(Z8,X8,U)=>{return $.getEditState(Z8,X8,U)},y=async(Z8,X8,U,a)=>{return $.clearEditState(Z8,X8,U,a)},t=async(Z8,X8,U,a)=>{let{parentId:i,name:W8}=U,e=await $.createTemplate(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_CREATED,{storeCode:K,id:e.getObjectId(),type:"t",parentFolderId:i,name:e.getName(),path:e.getPath()})}),e},K8=async(Z8,X8,U)=>{return $.readTemplate(Z8,X8,U)},R8=async(Z8,X8,U,a)=>{let{id:i,name:W8,parentId:e}=U,$8=await $.readTemplate(Z8,X8,{id:i}),J8=$8?.getName(),G8=$8?.getParentId(),s8=await $.updateTemplate(Z8,X8,U,a);if(W8!==void 0&&W8!==J8)a(()=>{q.notify(M6.TEMPLATE_RENAMED,{storeCode:K,id:i,type:"t",parentFolderId:s8.getParentId(),oldName:J8,newName:W8,path:s8.getPath()})});if(e!==void 0&&e!==G8)a(()=>{q.notify(M6.TEMPLATE_MOVED,{storeCode:K,id:i,type:"t",oldParentFolderId:G8,parentFolderId:e,path:s8.getPath()})});return s8},I8=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readTemplate(Z8,X8,{id:i}))?.getParentId(),$8=await $.deleteTemplate(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_DELETED,{storeCode:K,id:i,type:"t",parentFolderId:e,path:$8.path})}),$8},E8=async(Z8,X8,U,a)=>{let{id:i}=U,e=(await $.readTemplate(Z8,X8,{id:i}))?.getParentId(),$8=await $.saveTemplateDraft(Z8,X8,U,a);return a(()=>{let J8=$8.lockLost!==void 0?$8.entity:$8;q.notify(M6.TEMPLATE_DRAFT_SAVED,{storeCode:K,id:i,type:"t",parentFolderId:e,updatedAt:J8?J8.getUpdatedAt():null,lockLost:$8.lockLost})}),$8},t8=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.publishTemplate(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_PUBLISHED,{storeCode:K,id:i,type:"t",parentFolderId:W8.getParentId(),versionNumber:W8.getPublishedVersionNumber()})}),{entityId:i,versionNumber:W8.getPublishedVersionNumber(),content:W8.getPublishedContent(),publishedAt:W8.getUpdatedAt()}},g8=async(Z8,X8,U,a)=>{let{id:i}=U,W8=await $.discardTemplateDraft(Z8,X8,U,a);return a(()=>{q.notify(M6.TEMPLATE_DRAFT_DISCARDED,{storeCode:K,id:i})}),W8},m8=async(Z8,X8,U)=>{return $.readTemplateDraft(Z8,X8,U)},V6=async(Z8,X8,U)=>{return $.readTemplateVersion(Z8,X8,U)},C3=async(Z8,X8,U)=>{return $.getTemplateVersions(Z8,X8,U)},P3=async(Z8,X8,U,a)=>{return $.findTemplateByName(Z8,X8,U,a)},E4=async(Z8,X8,U)=>{return $.listTemplates(Z8,X8,U)},a3=async(Z8,X8,U)=>{return $.setTemplateEditState(Z8,X8,U)},$1=async(Z8,X8,U)=>{return $.getTemplateEditState(Z8,X8,U)},l$=async(Z8,X8,U,a)=>{return $.clearTemplateEditState(Z8,X8,U,a)},S6=async(Z8,X8,U,a)=>{return $.createFieldDefinition(Z8,X8,U,a)},R3=async(Z8,X8,U)=>{return $.readFieldDefinition(Z8,X8,U)},V8=async(Z8,X8,U,a)=>{return $.findFieldDefinitionByName(Z8,X8,U,a)},A8=async(Z8,X8,U)=>{return $.getFieldDefinitionsForOwner(Z8,X8,U)},x8=async(Z8,X8)=>{return $.readDefaultFieldDefinition(Z8,X8)},u8=async(Z8,X8,U)=>{return $.resolveFieldDefinition(Z8,X8,U)},J6=async(Z8,X8,U,a)=>{return $.deleteFieldDefinition(Z8,X8,U,a)},n6=async(Z8,X8,U,a)=>{return $.setFieldValue(Z8,X8,U,a)},N4=async(Z8,X8,U)=>{return $.getFieldValue(Z8,X8,U)},D3=async(Z8,X8,U,a)=>{return $.deleteFieldValue(Z8,X8,U,a)};return Object.freeze({getObjectId:$.getObjectId,getName:$.getName,getCreatedAt:$.getCreatedAt,getUpdatedAt:$.getUpdatedAt,getCodes:$.getCodes,getType:$.getType,getCode:$.getCode,getPk:$.getPk,toJSON:$.toJSON,createFolder:z,readFolder:J,updateFolder:P,deleteFolder:W,listFolderContents:H,getFolderByPath:Z,findFolderByName:O,readRootFolderForType:X,isDuplicateNameInParent:w,createDocument:T,readDocument:G,updateDocument:v,deleteDocument:f,saveDraft:V,readDraft:N,publishDocument:h,discardDraft:A,readVersion:S,getVersions:I,findDocumentByName:D,listDocuments:B,setEditState:g,getEditState:R,clearEditState:y,createTemplate:t,readTemplate:K8,updateTemplate:R8,deleteTemplate:I8,saveTemplateDraft:E8,readTemplateDraft:m8,publishTemplate:t8,discardTemplateDraft:g8,readTemplateVersion:V6,getTemplateVersions:C3,findTemplateByName:P3,listTemplates:E4,setTemplateEditState:a3,getTemplateEditState:$1,clearTemplateEditState:l$,createFieldDefinition:S6,readFieldDefinition:R3,findFieldDefinitionByName:V8,getFieldDefinitionsForOwner:A8,readDefaultFieldDefinition:x8,resolveFieldDefinition:u8,deleteFieldDefinition:J6,setFieldValue:n6,getFieldValue:N4,deleteFieldValue:D3,evictFolder:$.evictFolder,subscribe:q.subscribe,subscribeAll:q.subscribeAll})},mJ8=Object.freeze({create:AH6});var kH6=($)=>{let{id:K,code:q,name:Y,pk:z,createdAt:J,updatedAt:P}=$,W=Nw.create(),H=Nw.create(),Z=Nw.create(),O=Nw.create(),{store:X,mutationApi:w}=gJ8.create({id:K,code:q,name:Y,pk:z,createdAt:J,updatedAt:P,folderCache:W}),T=yJ8.create({inner:X,folderCache:W,documentCache:H,templateCache:Z,fieldDefinitionCache:O});return{store:mJ8.create({inner:T,storeCode:q}),mutationApi:w}},pJ8=Object.freeze({create:kH6});var MH6=({id:$,name:K,createdAt:q,updatedAt:Y,children:z=[]})=>{let J=[...z],P=new Map,{entityFns:W,mutationFns:H}=w5.create({id:$,name:K,createdAt:q,updatedAt:Y}),Z=()=>{P.clear();for(let O8 of J){let T8=O8.getCodes();for(let q8 of T8)P.set(q8,O8)}};Z();let O=()=>"demux",X=()=>J.map((O8)=>O8.getObjectId()),w=()=>[...J],T=()=>{return new Set(P.keys())},G=()=>({id:$,name:K,createdAt:q,updatedAt:Y,type:"demux",childIds:X()}),v=(O8)=>{J.push(O8),Z()},f=(O8)=>{return P.get(O8)??null},V=async(O8,T8,{store:q8,storeCode:j8,parentId:C,name:u,subtype:E},b)=>{let m=q8??j8;r.factory(!m,n.validation,"store parameter is required","MISSING_STORE_CODE");let c=f(m);return r.factory(!c,n.notFound,`No child store with code: ${m}`,"STORE_NOT_FOUND"),c.createFolder(O8,T8,{storeCode:m,parentId:C,name:u,subtype:E},b)},h=async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readFolder(O8,T8,{id:q8})},s8=Object.freeze({...W,getType:O,getCodes:T,getChildIds:X,getChildren:w,toJSON:G,createFolder:V,readFolder:h,updateFolder:async(O8,T8,{id:q8,name:j8,parentId:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.updateFolder(O8,T8,{id:q8,name:j8,parentId:C},u)},deleteFolder:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteFolder(O8,T8,{id:q8},j8)},evictFolder:(O8)=>{let T8=O8?.[0],q8=f(T8);if(q8)q8.evictFolder(O8)},getFolder:async(O8,T8,{id:q8})=>{return h(O8,T8,{id:q8})},listFolderContents:async(O8,T8,{folderId:q8,store:j8,storeCode:C,type:u})=>{let E;if(q8!==null&&q8!==void 0)E=q8[0];else{let c=j8??C;r.factory(!c,n.validation,"store required when folderId is null","STORE_CODE_REQUIRED"),E=c}let b=f(E);r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND");let m={...T8,storeCode:E};return b.listFolderContents(O8,m,{folderId:q8,type:u})},getFolderByPath:async(O8,T8,{path:q8,type:j8,store:C,storeCode:u})=>{let E=C??u;r.factory(!E,n.validation,"store required for getFolderByPath","STORE_CODE_REQUIRED");let b=f(E);if(!b)return null;let m={...T8,storeCode:E};return b.getFolderByPath(O8,m,{path:q8,type:j8})},isDuplicateNameInParent:async(O8,T8,q8,j8,C=null)=>{let u;if(q8)u=q8[0];else{let b=J[0];if(!b)r.factory(!0,n.notFound,"No child stores available","STORE_NOT_FOUND");u=[...b.getCodes()][0]}let E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.isDuplicateNameInParent(O8,T8,q8,j8,C)},findFolderByName:async(O8,T8,q8,j8)=>{let C=q8[0],u=f(C);if(!u)return null;return u.findFolderByName(O8,T8,q8,j8)},readRootFolderForType:async(O8,T8,q8,j8)=>{let C=f(j8);return r.factory(!C,n.notFound,`No child store with code: ${j8}`,"STORE_NOT_FOUND"),C.readRootFolderForType(O8,T8,q8,j8)},createFieldDefinition:async(O8,T8,{storeCode:q8,ownerEntityId:j8,name:C,label:u,description:E,primitiveType:b,required:m,multiplicity:c,isSystem:o},P8)=>{let f8=f(q8);return r.factory(!f8,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),f8.createFieldDefinition(O8,T8,{storeCode:q8,ownerEntityId:j8,name:C,label:u,description:E,primitiveType:b,required:m,multiplicity:c,isSystem:o},P8)},readFieldDefinition:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readFieldDefinition(O8,T8,{id:q8})},readDefaultFieldDefinition:async(O8,T8,q8)=>{let j8=f(q8);return r.factory(!j8,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),j8.readDefaultFieldDefinition(O8,T8)},getFieldDefinitionsForOwner:async(O8,T8,{storeCode:q8,ownerEntityPk:j8,includeSystem:C})=>{let u=f(q8);return r.factory(!u,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),u.getFieldDefinitionsForOwner(O8,T8,{ownerEntityPk:j8,includeSystem:C})},deleteFieldDefinition:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteFieldDefinition(O8,T8,{id:q8},j8)},setFieldValue:async(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C,value:u,values:E},b)=>{let m=q8?.[0],c=f(m);return r.factory(!c,n.notFound,`No child store with code: ${m}`,"STORE_NOT_FOUND"),c.setFieldValue(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C,value:u,values:E},b)},deleteFieldValue:async(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.deleteFieldValue(O8,T8,{entityId:q8,fieldDefinitionId:j8,fieldName:C},u)},createDocument:async(O8,T8,{storeCode:q8,...j8},C)=>{let u=f(q8);return r.factory(!u,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),u.createDocument(O8,T8,{storeCode:q8,...j8},C)},readDocument:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readDocument(O8,T8,{id:q8})},updateDocument:async(O8,T8,{id:q8,...j8},C)=>{let u=q8?.[0],E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.updateDocument(O8,T8,{id:q8,...j8},C)},deleteDocument:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteDocument(O8,T8,{id:q8},j8)},saveDraft:async(O8,T8,{id:q8,content:j8,clientId:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.saveDraft(O8,T8,{id:q8,content:j8,clientId:C},u)},readDraft:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readDraft(O8,T8,{id:q8})},publishDocument:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.publishDocument(O8,T8,{id:q8},j8)},discardDraft:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.discardDraft(O8,T8,{id:q8},j8)},setEditState:async(O8,T8,{id:q8,clientId:j8},C)=>{let u=q8?.[0],E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.setEditState(O8,T8,{id:q8,clientId:j8},C)},clearEditState:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.clearEditState(O8,T8,{id:q8},j8)},getEditState:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.getEditState(O8,T8,{id:q8})},readVersion:async(O8,T8,{id:q8,versionNumber:j8})=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.readVersion(O8,T8,{id:q8,versionNumber:j8})},getVersions:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return[];return C.getVersions(O8,T8,{id:q8})},findDocumentByName:async(O8,T8,q8,j8)=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.findDocumentByName(O8,T8,q8,j8)},listDocuments:async(O8,T8,{parentId:q8,storeCode:j8})=>{let C,u;if(q8)C=q8[0],u=q8;else{r.factory(!j8,n.validation,"storeCode required when parentId is null","MISSING_STORE_CODE"),C=j8;let b=f(C);r.factory(!b,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND");try{u=(await b.readRootFolderForType(O8,T8,"d",C)).getObjectId()}catch(m){u=null}}let E=f(C);return r.factory(!E,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),E.listDocuments(O8,T8,{parentId:u})},createTemplate:async(O8,T8,{storeCode:q8,...j8},C)=>{let u=f(q8);return r.factory(!u,n.notFound,`No child store with code: ${q8}`,"STORE_NOT_FOUND"),u.createTemplate(O8,T8,{storeCode:q8,...j8},C)},readTemplate:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readTemplate(O8,T8,{id:q8})},updateTemplate:async(O8,T8,{id:q8,...j8},C)=>{let u=q8?.[0],E=f(u);return r.factory(!E,n.notFound,`No child store with code: ${u}`,"STORE_NOT_FOUND"),E.updateTemplate(O8,T8,{id:q8,...j8},C)},deleteTemplate:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.deleteTemplate(O8,T8,{id:q8},j8)},saveTemplateDraft:async(O8,T8,{id:q8,content:j8,clientId:C},u)=>{let E=q8?.[0],b=f(E);return r.factory(!b,n.notFound,`No child store with code: ${E}`,"STORE_NOT_FOUND"),b.saveTemplateDraft(O8,T8,{id:q8,content:j8,clientId:C},u)},readTemplateDraft:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return null;return C.readTemplateDraft(O8,T8,{id:q8})},publishTemplate:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.publishTemplate(O8,T8,{id:q8},j8)},discardTemplateDraft:async(O8,T8,{id:q8},j8)=>{let C=q8?.[0],u=f(C);return r.factory(!u,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),u.discardTemplateDraft(O8,T8,{id:q8},j8)},readTemplateVersion:async(O8,T8,{id:q8,versionNumber:j8})=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.readTemplateVersion(O8,T8,{id:q8,versionNumber:j8})},getTemplateVersions:async(O8,T8,{id:q8})=>{let j8=q8?.[0],C=f(j8);if(!C)return[];return C.getTemplateVersions(O8,T8,{id:q8})},findTemplateByName:async(O8,T8,q8,j8)=>{let C=q8?.[0],u=f(C);if(!u)return null;return u.findTemplateByName(O8,T8,q8,j8)},listTemplates:async(O8,T8,{parentId:q8,storeCode:j8})=>{let C,u;if(q8)C=q8[0],u=q8;else{r.factory(!j8,n.validation,"storeCode required when parentId is null","MISSING_STORE_CODE"),C=j8;let b=f(C);r.factory(!b,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND");try{u=(await b.readRootFolderForType(O8,T8,"t",C)).getObjectId()}catch(m){u=null}}let E=f(C);return r.factory(!E,n.notFound,`No child store with code: ${C}`,"STORE_NOT_FOUND"),E.listTemplates(O8,T8,{parentId:u})},subscribe:(O8,T8)=>{let q8=J.map((j8)=>j8.subscribe(O8,T8));return()=>q8.forEach((j8)=>j8())},subscribeAll:(O8)=>{let T8=J.map((q8)=>q8.subscribeAll(O8));return()=>T8.forEach((q8)=>q8())}}),P6=Object.freeze({...H,addChild:v});return{store:s8,mutationApi:P6}},cJ8=Object.freeze({create:MH6});var Cw=($)=>{if(!$||$.length<2||$[0]!=="S")return null;let K=parseInt($.slice(1),10);return isNaN(K)?null:K},Gx=($)=>$.object_id,vx=($)=>{let K=Gx($),q=$.id,{store:Y,mutationApi:z}=pJ8.create({id:K,code:$.code,name:$.name,createdAt:$.created_at,updatedAt:$.updated_at,pk:q});return{store:Y,mutationApi:z,id:K,pk:q}},BJ8=($,K)=>{let q=Gx($),Y=$.id,{store:z,mutationApi:J}=cJ8.create({id:q,name:$.name,createdAt:$.created_at,updatedAt:$.updated_at,children:K});return{store:z,mutationApi:J,id:q,pk:Y}},NH6=async($,K,q,Y,z)=>{let J=await $Y.readEntityTypeId($,K,"n",null),P=await v9.nextSeq($,"store",q,"n"),W=`${Y}n${P}`,H=M1();await $.insertInto("field_definitions").values({store_id:q,object_id:W,entity_type_id:J,type_code:"n",seq:P,owner_entity_id:null,name:"default",label:"Default Field",description:"Auto-created for ad-hoc fields without explicit definitions",primitive_type:"string",required:0,multiplicity:"single",config:null,is_system:1,ordinal:null,created_at:H,updated_at:H}).execute()},hH6=()=>{let $=new Map,K=new Map,q=async(O,X,{code:w,name:T},G)=>{let v=M1(),f=await v9.nextSeq(O,"global",null,"s"),V=`S${f}`,h=await O.insertInto("stores").values({id:f,object_id:V,type:"local",code:w,name:T,created_at:v,updated_at:v}).returningAll().executeTakeFirstOrThrow(),{store:A,mutationApi:N,id:S,pk:I}=vx(h);return await NH6(O,X,I,w,G),G(()=>{$.set(S,T6.create(A,N,I)),K.set(I,S)}),A},Y=async(O,X,{name:w},T)=>{let G=M1(),v=await v9.nextSeq(O,"global",null,"s"),f=`S${v}`,V=await O.insertInto("stores").values({id:v,object_id:f,type:"demux",code:null,name:w,created_at:G,updated_at:G}).returningAll().executeTakeFirstOrThrow(),{store:h,mutationApi:A,id:N,pk:S}=BJ8(V,[]);return T(()=>{$.set(N,T6.create(h,A,S)),K.set(S,N)}),h},z=async(O,X,w)=>{let T=$.get(w);if(T)return T.getEntity();let G=Cw(w);if(G===null)return null;let v=await O.selectFrom("stores").selectAll().where("id","=",G).executeTakeFirst();if(!v)return null;let f,V,h,A;if(v.type==="local"){let N=vx(v);f=N.store,V=N.mutationApi,h=N.id,A=N.pk}else{let N=await O.selectFrom("store_children").innerJoin("stores","stores.id","store_children.child_store_id").select(["stores.object_id"]).where("store_children.parent_store_id","=",v.id).execute(),S=[];for(let D of N){let B=await z(O,X,D.object_id);if(B)S.push(B)}let I=BJ8(v,S);f=I.store,V=I.mutationApi,h=I.id,A=I.pk}return $.set(h,T6.create(f,V,A)),K.set(A,h),f};return Object.freeze({createLocalStore:q,createDemuxStore:Y,readStore:z,readSharedStore:async(O,X)=>{let w=await O.selectFrom("stores").selectAll().where("code","=","B").executeTakeFirstOrThrow(),T=Gx(w),G=$.get(T);if(G)return G.getEntity();let{store:v,mutationApi:f,pk:V}=vx(w);return $.set(T,T6.create(v,f,V)),K.set(V,T),v},readRootStoreForProject:async(O,X,w)=>{let T=w&&w.length>=2&&w[0]==="P"?parseInt(w.slice(1),10):null;r.factory(T===null||isNaN(T),n.validation,`Invalid project ID: ${w}`,"INVALID_PROJECT_ID");let G=await O.selectFrom("project_stores").innerJoin("stores","stores.id","project_stores.store_id").select(["stores.object_id"]).where("project_stores.project_id","=",T).where("project_stores.is_root","=",1).executeTakeFirst();return r.factory(!G,n.notFound,`Root store not found for project: ${w}`,"ROOT_STORE_NOT_FOUND"),await z(O,X,G.object_id)},addChildToDemux:async(O,X,{demuxId:w,childId:T},G)=>{let v=$.get(w),f=$.get(T),V,h;if(v)V=v.getPk();else{let A=Cw(w);r.factory(A===null,n.validation,`Invalid demux store ID: ${w}`,"INVALID_ID");let N=await O.selectFrom("stores").select("id").where("id","=",A).executeTakeFirst();r.factory(!N,n.notFound,`Demux store not found: ${w}`,"STORE_NOT_FOUND"),V=N.id}if(f)h=f.getPk();else{let A=Cw(T);r.factory(A===null,n.validation,`Invalid child store ID: ${T}`,"INVALID_ID");let N=await O.selectFrom("stores").select("id").where("id","=",A).executeTakeFirst();r.factory(!N,n.notFound,`Child store not found: ${T}`,"STORE_NOT_FOUND"),h=N.id}await O.insertInto("store_children").values({parent_store_id:V,child_store_id:h}).execute(),G(()=>{let A=$.get(w),N=$.get(T);if(A&&N)A.getMutationApi().addChild(N.getEntity())})},addStoresToProject:async(O,X,{projectId:w,rootStoreId:T,storeIds:G})=>{let v=w&&w.length>=2&&w[0]==="P"?parseInt(w.slice(1),10):null;r.factory(v===null||isNaN(v),n.validation,`Invalid project ID: ${w}`,"INVALID_PROJECT_ID");let f=await O.selectFrom("projects").select("id").where("id","=",v).executeTakeFirst();r.factory(!f,n.notFound,`Project not found: ${w}`,"PROJECT_NOT_FOUND");let V=f.id,h=$.get(T),A;if(h)A=h.getPk();else{let N=Cw(T);r.factory(N===null,n.validation,`Invalid root store ID: ${T}`,"INVALID_ID");let S=await O.selectFrom("stores").select("id").where("id","=",N).executeTakeFirst();r.factory(!S,n.notFound,`Root store not found: ${T}`,"STORE_NOT_FOUND"),A=S.id}for(let N of G){let S=$.get(N),I;if(S)I=S.getPk();else{let D=Cw(N);r.factory(D===null,n.validation,`Invalid store ID: ${N}`,"INVALID_ID");let B=await O.selectFrom("stores").select("id").where("id","=",D).executeTakeFirst();r.factory(!B,n.notFound,`Store not found: ${N}`,"STORE_NOT_FOUND"),I=B.id}await O.insertInto("project_stores").values({project_id:V,store_id:I,is_root:I===A?1:0}).execute()}},evictStore:(O)=>{let X=$.get(O);if(X)K.delete(X.getPk());$.delete(O)}})},UJ8=Object.freeze({create:hH6});var CH6=({store:$})=>{let K=async(Z,O,X,w,T,G)=>{let v=X.split("/").filter((h)=>h.trim());r.factory(v.length===0,n.validation,"Path cannot be empty or contain only slashes","EMPTY_PATH");let f=await $.readRootFolderForType(Z,O,w,T);for(let h=0;h<v.length-1;h++){let A=fK.validateFolderName(v[h]),N=await $.findFolderByName(Z,O,f.getObjectId(),A);if(N)f=N;else f=await $.createFolder(Z,O,{storeCode:T,parentId:f.getObjectId(),name:A},G)}let V=fK.validateFolderName(v[v.length-1]);return{parentObjectId:f.getObjectId(),name:V}},q=async(Z,O,{store:X,path:w,type:T},G)=>{r.factory(!w||w==="/",n.validation,"Path cannot be empty","EMPTY_PATH"),r.factory(T!=="d"&&T!=="t",n.validation,'Type must be "d" or "t"',"INVALID_TYPE"),r.factory(!X,n.validation,"store is required","MISSING_STORE_CODE");let{parentObjectId:v,name:f}=await K(Z,O,w,T,X,G),V=await $.isDuplicateNameInParent(Z,O,v,f);return r.factory(V,n.conflict,`Folder "${f}" already exists in parent`,"DUPLICATE_NAME"),await $.createFolder(Z,O,{storeCode:X,parentId:v,name:f},G)},Y=async(Z,O,{id:X})=>{return await $.readFolder(Z,O,{id:X})};return Object.freeze({resolvePath:K,createFolder:q,readFolder:Y,renameFolder:async(Z,O,{id:X,name:w},T)=>{let G=await Y(Z,O,{id:X});r.factory(!G,n.notFound,`Folder not found: ${X}`,"FOLDER_NOT_FOUND"),r.factory(fK.isRootFolder(G),n.validation,"Cannot rename root folder","CANNOT_RENAME_ROOT");let v=fK.validateFolderName(w),f=await $.isDuplicateNameInParent(Z,O,G.getParentId(),v,X);return r.factory(f,n.conflict,`Folder "${v}" already exists in parent`,"DUPLICATE_NAME"),await $.updateFolder(Z,O,{id:X,name:v},T)},moveFolder:async(Z,O,{id:X,parentId:w},T)=>{let G=await Y(Z,O,{id:X});r.factory(!G,n.notFound,`Folder not found: ${X}`,"FOLDER_NOT_FOUND"),r.factory(fK.isRootFolder(G),n.validation,"Cannot move root folder","CANNOT_MOVE_ROOT");let v=await Y(Z,O,{id:w});r.factory(!v,n.notFound,`Parent folder not found: ${w}`,"PARENT_NOT_FOUND"),r.factory(!X||X.length<1,n.validation,"Invalid folder ID format","INVALID_ID_FORMAT"),r.factory(!w||w.length<1,n.validation,"Invalid parent ID format","INVALID_PARENT_ID_FORMAT");let f=X[0],V=w[0];r.factory(f!==V,n.validation,"Cannot move folders between stores","CROSS_STORE_MOVE"),r.factory(X===w,n.validation,"Cannot move folder into itself","SELF_MOVE");let h=w;while(h!==null){r.factory(h===X,n.validation,"Cannot move folder into its own descendant","CYCLE_DETECTED");let N=await $.readFolder(Z,O,{id:h});if(!N)break;h=N.getParentId()}let A=await $.isDuplicateNameInParent(Z,O,w,G.getName(),X);return r.factory(A,n.conflict,`Folder "${G.getName()}" already exists in target parent`,"DUPLICATE_NAME"),await $.updateFolder(Z,O,{id:X,parentId:w},T)},deleteFolder:async(Z,O,{id:X},w)=>{let T=await Y(Z,O,{id:X});return r.factory(!T,n.notFound,`Folder not found: ${X}`,"FOLDER_NOT_FOUND"),r.factory(fK.isRootFolder(T),n.validation,"Cannot delete root folder","CANNOT_DELETE_ROOT"),await $.deleteFolder(Z,O,{id:X},w)},getFolderByPath:async(Z,O,{path:X,type:w,storeCode:T})=>{return await $.getFolderByPath(Z,O,{path:X,type:w,storeCode:T})},listFolderContents:async(Z,O,{folderId:X,type:w,storeCode:T})=>{return await $.listFolderContents(Z,O,{folderId:X,type:w,storeCode:T})}})},lJ8=Object.freeze({create:CH6});var RH6=({store:$})=>{let K=async(W,H,{store:Z,ownerEntityId:O,name:X,label:w,description:T,primitiveType:G,required:v,multiplicity:f,isSystem:V=!1},h)=>{r.factory(!Z,n.validation,"store is required","MISSING_STORE_CODE"),r.factory(G!=="string"&&G!=="object_ref",n.validation,`Invalid primitiveType: ${G}. Must be 'string' or 'object_ref'`,"INVALID_PRIMITIVE_TYPE"),r.factory(f!=="single"&&f!=="multi",n.validation,`Invalid multiplicity: ${f}. Must be 'single' or 'multi'`,"INVALID_MULTIPLICITY");let A=/^[a-zA-Z0-9_]+$/;return r.factory(!X||!A.test(X),n.validation,`Invalid name: ${X}. Must contain only alphanumeric characters and underscores`,"INVALID_NAME"),await $.createFieldDefinition(W,H,{storeCode:Z,ownerEntityId:O,name:X,label:w,description:T,primitiveType:G,required:v,multiplicity:f,isSystem:V},h)},q=async(W,H,{id:Z})=>{return r.factory(!Z||Z.length<3,n.validation,"Invalid field definition ID","INVALID_ID"),await $.readFieldDefinition(W,H,{id:Z})};return Object.freeze({createFieldDefinition:K,readFieldDefinition:q,getFieldDefinitionsForOwner:async(W,H,{store:Z,ownerEntityId:O,includeSystem:X=!0})=>{r.factory(!Z,n.validation,"store is required","MISSING_STORE_CODE");let w=null;if(O)w=null;return await $.getFieldDefinitionsForOwner(W,H,{storeCode:Z,ownerEntityPk:w,includeSystem:X})},deleteFieldDefinition:async(W,H,{id:Z},O)=>{let X=await q(W,H,{id:Z});return r.factory(!X,n.notFound,`Field definition not found: ${Z}`,"DEFINITION_NOT_FOUND"),r.factory(X.getIsSystem(),n.validation,`Cannot delete system field definition: ${Z}`,"SYSTEM_DEFINITION"),await $.deleteFieldDefinition(W,H,{id:Z},O)},setFieldValue:async(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X,value:w,values:T},G)=>{return r.factory(!Z,n.validation,"entityId is required","MISSING_ENTITY_ID"),r.factory(!O&&!X,n.validation,"Either fieldDefinitionId or fieldName must be provided","MISSING_FIELD_IDENTIFIER"),r.factory(w!==void 0&&T!==void 0,n.validation,"Cannot provide both value and values","AMBIGUOUS_VALUE"),r.factory(w===void 0&&T===void 0,n.validation,"Either value or values must be provided","MISSING_VALUE"),await $.setFieldValue(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X,value:w,values:T},G)},deleteFieldValue:async(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X},w)=>{return r.factory(!Z,n.validation,"entityId is required","MISSING_ENTITY_ID"),r.factory(!O&&!X,n.validation,"Either fieldDefinitionId or fieldName must be provided","MISSING_FIELD_IDENTIFIER"),await $.deleteFieldValue(W,H,{entityId:Z,fieldDefinitionId:O,fieldName:X},w)}})},FJ8=Object.freeze({create:RH6});var DH6=({store:$,folderService:K,entityName:q})=>{let Y=async(V,h,{store:A,path:N,type:S,content:I},D)=>{r.factory(!N||N==="/",n.validation,"Path cannot be empty","EMPTY_PATH"),r.factory(!A,n.validation,"store is required","MISSING_STORE_CODE");let B=N.split("/").filter((K8)=>K8.trim()),g=B[B.length-1],R=B.slice(0,-1).join("/")||null,y;if(R){let K8=await K.resolvePath(V,h,R,S,A,D),R8=await $.findFolderByName(V,h,K8.parentObjectId,K8.name);if(R8)y=R8.getObjectId();else y=(await $.createFolder(V,h,{storeCode:A,parentId:K8.parentObjectId,name:K8.name},D)).getObjectId()}else y=(await $.readRootFolderForType(V,h,S,A)).getObjectId();let t=await $.findDocumentByName(V,h,y,g);return r.factory(t,n.conflict,`${q} "${g}" already exists in folder`,"DUPLICATE_NAME"),await $.createDocument(V,h,{storeCode:A,parentId:y,name:g,initialContent:I},D)},z=async(V,h,{id:A})=>{let N=await $.readDocument(V,h,{id:A});return r.factory(!N,n.notFound,`${q} not found: ${A}`,"NOT_FOUND"),N};return Object.freeze({create:Y,read:z,readByPath:async(V,h,{path:A,type:N,storeCode:S})=>{let I=A.split("/").filter((R)=>R.trim()),D=I[I.length-1],B=I.slice(0,-1).join("/")||null,g;if(B){let R=await $.getFolderByPath(V,h,{path:B,type:N,storeCode:S});if(!R)return null;g=R.getObjectId()}else g=(await $.readRootFolderForType(V,h,N,S)).getObjectId();return await $.findDocumentByName(V,h,g,D)},updatePath:async(V,h,{id:A,path:N,type:S},I)=>{r.factory(!N||N==="/",n.validation,"Path cannot be empty","EMPTY_PATH");let D=await z(V,h,{id:A}),B=N.split("/").filter((I8)=>I8.trim()),g=B[B.length-1],R=B.slice(0,-1).join("/")||null,y=A[0],t;if(R){let I8=await K.resolvePath(V,h,R,S,y,I),E8=await $.findFolderByName(V,h,I8.parentObjectId,I8.name);if(E8)t=E8.getObjectId();else t=(await $.createFolder(V,h,{storeCode:y,parentId:I8.parentObjectId,name:I8.name},I)).getObjectId()}else t=(await $.readRootFolderForType(V,h,S,y)).getObjectId();let K8=g!==D.getName(),R8=t!==D.getParentId();if(!K8&&!R8)return D;if(K8||R8){let I8=await $.findDocumentByName(V,h,t,g);r.factory(I8&&I8.getObjectId()!==A,n.conflict,`${q} "${g}" already exists in target folder`,"DUPLICATE_NAME")}return await $.updateDocument(V,h,{id:A,name:K8?g:void 0,parentId:R8?t:void 0},I)},del:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.deleteDocument(V,h,{id:A},N)},saveDraft:async(V,h,{id:A,content:N,clientId:S},I)=>{return await z(V,h,{id:A}),await $.saveDraft(V,h,{id:A,content:N,clientId:S},I)},readDraft:async(V,h,{id:A})=>{await z(V,h,{id:A});let N=await $.readDraft(V,h,{id:A});return r.factory(!N,n.notFound,`No draft found for ${q}: ${A}`,"DRAFT_NOT_FOUND"),N},publish:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.publishDocument(V,h,{id:A},N)},discardDraft:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.discardDraft(V,h,{id:A},N)},readVersion:async(V,h,{id:A,versionNumber:N})=>{await z(V,h,{id:A});let S=await $.readVersion(V,h,{id:A,versionNumber:N});return r.factory(!S,n.notFound,`Version ${N} not found for ${q}: ${A}`,"VERSION_NOT_FOUND"),S},getVersions:async(V,h,{id:A})=>{return await z(V,h,{id:A}),await $.getVersions(V,h,{id:A})},setEditState:async(V,h,{id:A,clientId:N},S)=>{return await z(V,h,{id:A}),await $.setEditState(V,h,{id:A,clientId:N},S)},clearEditState:async(V,h,{id:A},N)=>{return await z(V,h,{id:A}),await $.clearEditState(V,h,{id:A},N)},getEditState:async(V,h,{id:A})=>{return await z(V,h,{id:A}),await $.getEditState(V,h,{id:A})}})},Vf=Object.freeze({create:DH6});var SH6=({store:$,folderService:K})=>{let q=Vf.create({store:$,folderService:K,entityName:"Document"}),Y="d";return Object.freeze({createDocument:async(A,N,{store:S,path:I,type:D,content:B},g)=>{return r.factory(D!=="d",n.validation,'type must be "d" for documents',"INVALID_TYPE"),await q.create(A,N,{store:S,path:I,type:D,content:B},g)},readDocument:async(A,N,{id:S})=>{return await q.read(A,N,{id:S})},readDocumentByPath:async(A,N,{path:S,type:I,storeCode:D})=>{return r.factory(I!=="d",n.validation,'type must be "d" for documents',"INVALID_TYPE"),await q.readByPath(A,N,{path:S,type:I,storeCode:D})},updateDocumentPath:async(A,N,{id:S,path:I,type:D},B)=>{return r.factory(D!=="d",n.validation,'type must be "d" for documents',"INVALID_TYPE"),await q.updatePath(A,N,{id:S,path:I,type:D},B)},deleteDocument:async(A,N,{id:S},I)=>{return await q.del(A,N,{id:S},I)},saveDraft:async(A,N,{id:S,content:I,clientId:D},B)=>{return await q.saveDraft(A,N,{id:S,content:I,clientId:D},B)},readDraft:async(A,N,{id:S})=>{return await q.readDraft(A,N,{id:S})},publishDocument:async(A,N,{id:S},I)=>{return await q.publish(A,N,{id:S},I)},discardDraft:async(A,N,{id:S},I)=>{return await q.discardDraft(A,N,{id:S},I)},readVersion:async(A,N,{id:S,versionNumber:I})=>{return await q.readVersion(A,N,{id:S,versionNumber:I})},getVersions:async(A,N,{id:S})=>{return await q.getVersions(A,N,{id:S})},setEditState:async(A,N,{id:S,clientId:I},D)=>{return await q.setEditState(A,N,{id:S,clientId:I},D)},clearEditState:async(A,N,{id:S},I)=>{return await q.clearEditState(A,N,{id:S},I)},getEditState:async(A,N,{id:S})=>{return await q.getEditState(A,N,{id:S})},listDocuments:async(A,N,{parentId:S,storeCode:I})=>{return await $.listDocuments(A,N,{parentId:S,storeCode:I})}})},iJ8=Object.freeze({create:SH6});var jO8=H1(HH8(),1),vO8=H1(Rb(),1),GO8=($)=>{if(!$)return{parameters:{},target:null,targetPath:null,body:""};let K=jO8.default($),q=K.data?.parameters||{},Y=K.data?.target||null,z=K.data?.targetPath||null,J=K.content;return{parameters:q,target:Y,targetPath:z,body:J}},j_6=($)=>{if(!$)return new Set;let K=new Set;try{let q=vO8.default.parse($),Y=(z)=>{if(!z)return;if(z.type==="PathExpression"){if(!z.data&&z.parts.length>0){let J=z.parts.join(".");if(!J.startsWith("@"))K.add(J)}}if(z.program)Y(z.program);if(z.inverse)Y(z.inverse);if(z.body)z.body.forEach(Y);if(z.params)z.params.forEach(Y);if(z.hash?.pairs)z.hash.pairs.forEach((J)=>Y(J.value));if(z.path)Y(z.path)};Y(q)}catch(q){throw new Error(`Invalid Handlebars template: ${q.message}`)}return K},v_6=($)=>{if(!$)return{parameters:{},target:null,targetPath:null};let{parameters:K,target:q,targetPath:Y}=GO8($);return{parameters:K,target:q,targetPath:Y}},v5=Object.freeze({parseFrontMatter:GO8,extractVariables:j_6,getParameters:v_6});var Db=H1(Rb(),1);import G_6 from"crypto";var __6=({store:$,folderService:K})=>{let Y=((I)=>{return Object.freeze({findDocumentByName:(...D)=>I.findTemplateByName(...D),createDocument:(...D)=>I.createTemplate(...D),readDocument:(...D)=>I.readTemplate(...D),updateDocument:(...D)=>I.updateTemplate(...D),deleteDocument:(...D)=>I.deleteTemplate(...D),saveDraft:(...D)=>I.saveTemplateDraft(...D),readDraft:(...D)=>I.readTemplateDraft(...D),publishDocument:(...D)=>I.publishTemplate(...D),discardDraft:(...D)=>I.discardTemplateDraft(...D),readVersion:(...D)=>I.readTemplateVersion(...D),getVersions:(...D)=>I.getTemplateVersions(...D),findFolderByName:(...D)=>I.findFolderByName(...D),createFolder:(...D)=>I.createFolder(...D),readRootFolderForType:(...D)=>I.readRootFolderForType(...D),getFolderByPath:(...D)=>I.getFolderByPath(...D),setEditState:(...D)=>I.setEditState(...D),clearEditState:(...D)=>I.clearEditState(...D),getEditState:(...D)=>I.getEditState(...D)})})($),z=Vf.create({store:Y,folderService:K,entityName:"Template"}),J="t",P=async(I,D,{store:B,path:g,type:R,content:y},t)=>{return r.factory(R!=="t",n.validation,'type must be "t" for templates',"INVALID_TYPE"),await z.create(I,D,{store:B,path:g,type:R,content:y},t)},W=async(I,D,{id:B})=>{return await z.read(I,D,{id:B})};return Object.freeze({createTemplate:P,readTemplate:W,readTemplateByPath:async(I,D,{path:B,type:g,storeCode:R})=>{return r.factory(g!=="t",n.validation,'type must be "t" for templates',"INVALID_TYPE"),await z.readByPath(I,D,{path:B,type:g,storeCode:R})},updateTemplatePath:async(I,D,{id:B,path:g,type:R},y)=>{return r.factory(R!=="t",n.validation,'type must be "t" for templates',"INVALID_TYPE"),await z.updatePath(I,D,{id:B,path:g,type:R},y)},deleteTemplate:async(I,D,{id:B},g)=>{return await z.del(I,D,{id:B},g)},saveDraft:async(I,D,{id:B,content:g,clientId:R},y)=>{return await z.saveDraft(I,D,{id:B,content:g,clientId:R},y)},readDraft:async(I,D,{id:B})=>{return await z.readDraft(I,D,{id:B})},publishTemplate:async(I,D,{id:B},g)=>{return await z.publish(I,D,{id:B},g)},discardDraft:async(I,D,{id:B},g)=>{return await z.discardDraft(I,D,{id:B},g)},readVersion:async(I,D,{id:B,versionNumber:g})=>{return await z.readVersion(I,D,{id:B,versionNumber:g})},getVersions:async(I,D,{id:B})=>{return await z.getVersions(I,D,{id:B})},setEditState:async(I,D,{id:B,clientId:g},R)=>{return await z.setEditState(I,D,{id:B,clientId:g},R)},clearEditState:async(I,D,{id:B},g)=>{return await z.clearEditState(I,D,{id:B},g)},getEditState:async(I,D,{id:B})=>{return await z.getEditState(I,D,{id:B})},renderTemplate:async(I,D,{id:B,params:g={},target:R="stdout",targetOptions:y={}},t,K8,R8)=>{let I8=await W(I,D,{id:B});r.factory(!I8,n.notFound,"Template not found","NOT_FOUND");let E8=I8.getPublishedContent();r.factory(!E8,n.validation,"Template has no published content","NO_PUBLISHED_CONTENT");let{body:t8}=v5.parseFrontMatter(E8),g8;try{g8=Db.default.compile(t8,{noEscape:!0})(g)}catch(m8){throw n.validation(`Failed to render template: ${m8.message}`,"RENDER_ERROR")}switch(R){case"stdout":return{success:!0,target:"stdout",content:g8};case"clipboard":return await K8.copyToClipboard(g8),{success:!0,target:"clipboard",content:g8,message:"Content copied to clipboard"};case"document":{let{path:m8,publish:V6,storeCode:C3="A"}=y;r.factory(!m8,n.validation,"targetOptions.path is required for document target","MISSING_PATH");let P3=G_6.randomUUID(),E4=await R8.readDocumentByPath(I,D,{path:m8,type:"d",storeCode:C3}),a3=!1;if(!E4)E4=await R8.createDocument(I,D,{store:C3,path:m8,type:"d",content:g8},t),a3=!0;else await R8.saveDraft(I,D,{id:E4.getObjectId(),content:g8,clientId:P3},t);let $1=!1;if(V6)await R8.publishDocument(I,D,{id:E4.getObjectId()},t),$1=!0;return{success:!0,target:"document",documentId:E4.getObjectId(),created:a3,published:$1,path:m8}}case"file":throw n.validation("File target not yet implemented","NOT_IMPLEMENTED");default:throw n.validation(`Unknown target: ${R}`,"INVALID_TARGET")}},listTemplates:async(I,D,{parentId:B,storeCode:g})=>{return await $.listTemplates(I,D,{parentId:B,storeCode:g})}})},_O8=Object.freeze({create:__6});import iw from"node:fs";import fO8 from"node:os";import Qf from"node:path";var f_6=({projectStore:$,storeStore:K})=>{return Object.freeze({createProject:async(J,P,{name:W,path:H},Z)=>{if(await $.readProjectByPath(J,P,H)){let v=new Error("Project with this path already exists");throw v.code="DUPLICATE_PATH",v}let X=await $.createProject(J,P,{name:W,path:H},Z),w=await K.createLocalStore(J,P,{code:"A",name:"Project"},Z);await w.createFolder(J,P,{parentId:null,name:null,subtype:"root_d"},Z),await w.createFolder(J,P,{parentId:null,name:null,subtype:"root_t"},Z);let T=await K.readSharedStore(J,P),G=await K.createDemuxStore(J,P,{name:W},Z);return await K.addChildToDemux(J,P,{demuxId:G.getObjectId(),childId:w.getObjectId()},Z),await K.addChildToDemux(J,P,{demuxId:G.getObjectId(),childId:T.getObjectId()},Z),await K.addStoresToProject(J,P,{projectId:X.getObjectId(),rootStoreId:G.getObjectId(),storeIds:[G.getObjectId(),w.getObjectId(),T.getObjectId()]}),X},validateProjectPath:(J)=>{if(!J||typeof J!=="string"){let w=new Error("Path is required and must be a non-empty string");throw w.code="VALIDATION_ERROR",w}let P;if(J==="~")P=fO8.homedir();else if(J.startsWith("~/"))P=Qf.join(fO8.homedir(),J.slice(2));else P=J;let W=iw.existsSync(P),H=!1,Z=!1,O=!1;if(W)try{if(H=iw.statSync(P).isDirectory(),H){let T=Qf.join(P,".git");try{Z=iw.statSync(T).isDirectory()}catch{Z=!1}let G=Qf.join(P,".claude");try{O=iw.statSync(G).isDirectory()}catch{O=!1}}}catch(w){H=!1}let X=Qf.basename(P);return{path:P,exists:W,isDirectory:H,hasGit:Z,hasClaude:O,suggestedName:X}},listProjects:async(J)=>{let P=await J.selectFrom("projects").selectAll().where("name","!=","__system__").orderBy("created_at","desc").execute();return await Promise.all(P.map(async(H)=>{let O=(await J.selectFrom("project_stores").innerJoin("stores","stores.id","project_stores.store_id").select(["stores.object_id","stores.code","stores.name","stores.type"]).where("project_stores.project_id","=",H.id).where("stores.type","=","local").execute()).map((X)=>({id:X.code==="B"?"store:B":`store:${X.code}:${H.object_id}`,code:X.code,name:X.name}));return{objectId:H.object_id,name:H.name,path:H.path,createdAt:H.created_at,updatedAt:H.updated_at,children:O}}))}})},df=Object.freeze({create:f_6});var V_6=()=>{let $=[];return{enqueuePostCommitHook:(K)=>{$.push(K)},flush:()=>{for(let K of $)try{K()}catch(q){console.error("Post-commit hook failed:",q)}}}},A_6=({db:$,folderService:K,fieldService:q,documentService:Y,templateService:z,projectService:J})=>{let P=async(V8)=>{let A8=V_6(),x8;return await $.transaction().execute(async(u8)=>{x8=await V8(u8,A8)}),A8.flush(),x8};return Object.freeze({createFolder:async(V8,{store:A8,path:x8,type:u8})=>{return P(async(J6,n6)=>{return await K.createFolder(J6,V8,{store:A8,path:x8,type:u8},n6.enqueuePostCommitHook)})},renameFolder:async(V8,{id:A8,name:x8})=>{return P(async(u8,J6)=>{return await K.renameFolder(u8,V8,{id:A8,name:x8},J6.enqueuePostCommitHook)})},moveFolder:async(V8,{id:A8,parentId:x8})=>{return P(async(u8,J6)=>{return await K.moveFolder(u8,V8,{id:A8,parentId:x8},J6.enqueuePostCommitHook)})},deleteFolder:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await K.deleteFolder(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},createProject:async(V8,{name:A8,path:x8})=>{return P(async(u8,J6)=>{return await J.createProject(u8,V8,{name:A8,path:x8},J6.enqueuePostCommitHook)})},createFieldDefinition:async(V8,{store:A8,ownerEntityId:x8,name:u8,label:J6,description:n6,primitiveType:N4,required:D3,multiplicity:d4,isSystem:Z8})=>{return P(async(X8,U)=>{return await q.createFieldDefinition(X8,V8,{store:A8,ownerEntityId:x8,name:u8,label:J6,description:n6,primitiveType:N4,required:D3,multiplicity:d4,isSystem:Z8},U.enqueuePostCommitHook)})},readFieldDefinition:async(V8,{id:A8})=>{return await q.readFieldDefinition($,V8,{id:A8})},getFieldDefinitionsForOwner:async(V8,{store:A8,ownerEntityId:x8,includeSystem:u8})=>{return await q.getFieldDefinitionsForOwner($,V8,{store:A8,ownerEntityId:x8,includeSystem:u8})},setFieldValue:async(V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8,value:J6,values:n6})=>{return P(async(N4,D3)=>{return await q.setFieldValue(N4,V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8,value:J6,values:n6},D3.enqueuePostCommitHook)})},deleteFieldValue:async(V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8})=>{return P(async(J6,n6)=>{return await q.deleteFieldValue(J6,V8,{entityId:A8,fieldDefinitionId:x8,fieldName:u8},n6.enqueuePostCommitHook)})},deleteFieldDefinition:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await q.deleteFieldDefinition(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},createDocument:async(V8,{store:A8,path:x8,type:u8,content:J6})=>{return P(async(n6,N4)=>{return await Y.createDocument(n6,V8,{store:A8,path:x8,type:u8,content:J6},N4.enqueuePostCommitHook)})},readDocument:async(V8,{id:A8})=>{return await Y.readDocument($,V8,{id:A8})},updateDocumentPath:async(V8,{id:A8,path:x8,type:u8})=>{return P(async(J6,n6)=>{return await Y.updateDocumentPath(J6,V8,{id:A8,path:x8,type:u8},n6.enqueuePostCommitHook)})},deleteDocument:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.deleteDocument(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},saveDraft:async(V8,{id:A8,content:x8,clientId:u8})=>{return P(async(J6,n6)=>{return await Y.saveDraft(J6,V8,{id:A8,content:x8,clientId:u8},n6.enqueuePostCommitHook)})},readDraft:async(V8,{id:A8})=>{return await Y.readDraft($,V8,{id:A8})},publishDocument:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.publishDocument(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},discardDraft:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.discardDraft(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},readVersion:async(V8,{id:A8,versionNumber:x8})=>{return await Y.readVersion($,V8,{id:A8,versionNumber:x8})},getVersions:async(V8,{id:A8})=>{return await Y.getVersions($,V8,{id:A8})},setEditState:async(V8,{id:A8,clientId:x8})=>{return P(async(u8,J6)=>{return await Y.setEditState(u8,V8,{id:A8,clientId:x8},J6.enqueuePostCommitHook)})},clearEditState:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await Y.clearEditState(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},getEditState:async(V8,{id:A8})=>{return await Y.getEditState($,V8,{id:A8})},createTemplate:async(V8,{store:A8,path:x8,type:u8,content:J6})=>{return P(async(n6,N4)=>{return await z.createTemplate(n6,V8,{store:A8,path:x8,type:u8,content:J6},N4.enqueuePostCommitHook)})},readTemplate:async(V8,{id:A8})=>{return await z.readTemplate($,V8,{id:A8})},updateTemplatePath:async(V8,{id:A8,path:x8,type:u8})=>{return P(async(J6,n6)=>{return await z.updateTemplatePath(J6,V8,{id:A8,path:x8,type:u8},n6.enqueuePostCommitHook)})},deleteTemplate:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.deleteTemplate(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},saveTemplateDraft:async(V8,{id:A8,content:x8,clientId:u8})=>{return P(async(J6,n6)=>{return await z.saveDraft(J6,V8,{id:A8,content:x8,clientId:u8},n6.enqueuePostCommitHook)})},publishTemplate:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.publishTemplate(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},discardTemplateDraft:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.discardDraft(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},readTemplateDraft:async(V8,{id:A8})=>{return await z.readDraft($,V8,{id:A8})},readTemplateVersion:async(V8,{id:A8,versionNumber:x8})=>{return await z.readVersion($,V8,{id:A8,versionNumber:x8})},getTemplateVersions:async(V8,{id:A8})=>{return await z.getVersions($,V8,{id:A8})},setTemplateEditState:async(V8,{id:A8,clientId:x8})=>{return P(async(u8,J6)=>{return await z.setEditState(u8,V8,{id:A8,clientId:x8},J6.enqueuePostCommitHook)})},clearTemplateEditState:async(V8,{id:A8})=>{return P(async(x8,u8)=>{return await z.clearEditState(x8,V8,{id:A8},u8.enqueuePostCommitHook)})},getTemplateEditState:async(V8,{id:A8})=>{return await z.getEditState($,V8,{id:A8})},renderTemplate:async(V8,{id:A8,params:x8,target:u8,targetOptions:J6},n6,N4)=>{return P(async(D3,d4)=>{return await z.renderTemplate(D3,V8,{id:A8,params:x8,target:u8,targetOptions:J6},d4.enqueuePostCommitHook,n6,N4)})}})},Sb=Object.freeze({create:A_6});var SE8=H1(CE8(),1),EE8=H1(C$(),1);import v$ from"fs/promises";import G$ from"path";import{createWriteStream as pr6}from"fs";import cr6 from"crypto";var dK=EE8.default("caw:export"),RE8=".caw-exports",DE8=".tmp",Br6=1,Ur6=({store:$,folderService:K,documentService:q,templateService:Y})=>{let z=()=>{let T=new Date,G=T.getFullYear(),v=String(T.getMonth()+1).padStart(2,"0"),f=String(T.getDate()).padStart(2,"0"),V=String(T.getHours()).padStart(2,"0"),h=String(T.getMinutes()).padStart(2,"0"),A=String(T.getSeconds()).padStart(2,"0");return`${G}-${v}-${f}-${V}${h}${A}`},J=async(T)=>{let G=G$.join(T,RE8),v=G$.join(G,DE8);try{return await v$.mkdir(G,{recursive:!0}),await v$.mkdir(v,{recursive:!0}),G}catch(f){if(f.code==="EACCES")throw n.validation("Permission denied creating export directory","EXPORT_ERROR");if(f.code==="ENOSPC")throw n.validation("Insufficient disk space","EXPORT_ERROR");throw dK("Error creating export directory: [%s] %s",f.code||"UNKNOWN",f.message),n.validation(`Failed to create export directory: ${f.message} (${f.code||"UNKNOWN"})`,"EXPORT_ERROR")}},P=async(T,G,v,f)=>{let V=[],h=async(A,N)=>{let S=await K.listFolderContents(T,G,{folderId:A,type:v,storeCode:f});for(let I of S)if(I.getParentId()!==null)V.push({entity:I,depth:N,contentType:v}),await h(I.getObjectId(),N+1)};return await h(null,0),V},W=async(T,G,v)=>{let f=[],V=[],h=async(A)=>{let N=await q.listDocuments(T,G,{parentId:A,storeCode:v});for(let I of N){let D=I.getPublishedVersionNumber();if(D!==null){let B=await q.readVersion(T,G,{id:I.getObjectId(),versionNumber:D});f.push({entity:I,version:B})}else V.push(I)}let S=await K.listFolderContents(T,G,{folderId:A,type:"d",storeCode:v});for(let I of S)await h(I.getObjectId())};return await h(null),{published:f,draftOnly:V}},H=async(T,G,v)=>{let f=[],V=[],h=async(A)=>{let N=await Y.listTemplates(T,G,{parentId:A,storeCode:v});for(let I of N){let D=I.getPublishedVersionNumber();if(D!==null){let B=await Y.readVersion(T,G,{id:I.getObjectId(),versionNumber:D});f.push({entity:I,version:B})}else V.push(I)}let S=await K.listFolderContents(T,G,{folderId:A,type:"t",storeCode:v});for(let I of S)await h(I.getObjectId())};return await h(null),{published:f,draftOnly:V}},Z=async(T)=>{try{await v$.rm(T,{recursive:!0,force:!0})}catch(G){dK("Warning: Failed to cleanup temp directory: %s",G.message)}};return Object.freeze({listExports:async(T,G,{projectPath:v})=>{let f=G$.join(v,RE8);try{let V=await v$.readdir(f),h=[];for(let A of V)if(A.endsWith(".zip")){let N=G$.join(f,A),S=await v$.stat(N);h.push({filename:A,timestamp:S.mtime.toISOString(),size:S.size})}return dK("Found %d export files",h.length),h}catch(V){if(V.code==="ENOENT")return[];throw V}},exportPreview:async(T,G,{storeCode:v})=>{let f=await P(T,G,"d",v),V=await P(T,G,"t",v),{published:h,draftOnly:A}=await W(T,G,v),{published:N,draftOnly:S}=await H(T,G,v),I={folders:[...f,...V].map((R)=>({id:R.entity.getObjectId(),path:R.entity.getPath(),name:R.entity.getName()})),documents:h.map((R)=>({id:R.entity.getObjectId(),path:R.entity.getPath(),name:R.entity.getName()})),templates:N.map((R)=>({id:R.entity.getObjectId(),path:R.entity.getPath(),name:R.entity.getName()}))},D={documents:A.map((R)=>({id:R.getObjectId(),path:R.getPath(),name:R.getName()})),templates:S.map((R)=>({id:R.getObjectId(),path:R.getPath(),name:R.getName()}))},B=I.folders.length+I.documents.length+I.templates.length,g=D.documents.length+D.templates.length;return dK("Preview: %d published, %d draft-only",B,g),{toExport:I,draftOnly:D}},exportDocuments:async(T,G,{storeCode:v,projectPath:f})=>{dK("Starting export for store %s",v);let V=await J(f),h=cr6.randomUUID(),A=G$.join(V,DE8,h);await v$.mkdir(A,{recursive:!0});try{let N=await P(T,G,"d",v),S=await P(T,G,"t",v),I=[...N,...S],{published:D,draftOnly:B}=await W(T,G,v),{published:g,draftOnly:R}=await H(T,G,v);dK("Found %d folders, %d documents, %d templates",I.length,D.length,g.length);let y=[...I.map((g8)=>({id:g8.entity.getObjectId(),type:"folder",path:g8.entity.getPath(),contentType:g8.contentType})),...D.map((g8)=>({id:g8.entity.getObjectId(),type:"document",path:g8.entity.getPath()})),...g.map((g8)=>({id:g8.entity.getObjectId(),type:"template",path:g8.entity.getPath()}))],t={version:Br6,exportedAt:new Date().toISOString(),entities:y};await v$.writeFile(G$.join(A,"manifest.json"),JSON.stringify(t,null,2),"utf-8");for(let g8 of I){let m8=g8.contentType==="d"?"documents":"templates",V6=G$.join(A,m8,g8.entity.getPath());await v$.mkdir(V6,{recursive:!0})}await v$.mkdir(G$.join(A,"documents"),{recursive:!0}),await v$.mkdir(G$.join(A,"templates"),{recursive:!0});for(let g8 of D){let m8=G$.join(A,"documents",g8.entity.getPath()),V6=g8.version.content;await v$.mkdir(G$.dirname(m8),{recursive:!0}),await v$.writeFile(m8,V6,"utf-8")}for(let g8 of g){let m8=G$.join(A,"templates",g8.entity.getPath()),V6=g8.version.content;await v$.mkdir(G$.dirname(m8),{recursive:!0}),await v$.writeFile(m8,V6,"utf-8")}for(let g8 of y)if(g8.type!=="folder"){let m8=g8.type==="document"?"documents":"templates",V6=G$.join(A,m8,g8.path);try{await v$.access(V6)}catch(C3){throw n.validation(`Manifest entry missing file: ${g8.path}`,"EXPORT_VALIDATION_FAILED")}}let K8=`caw-export-${z()}.zip`,R8=G$.join(V,K8),I8=pr6(R8),E8=SE8.default("zip",{zlib:{level:9}});E8.on("error",async(g8)=>{throw await Z(A),dK("Zip creation error: %s",g8.message),n.validation(`Export failed: ${g8.message}`,"EXPORT_ERROR")}),E8.pipe(I8),E8.directory(A,!1),await E8.finalize(),await new Promise((g8,m8)=>{I8.on("close",g8),I8.on("error",m8),setTimeout(()=>{m8(new Error("Zip creation timeout"))},60000)}),dK("Created zip: %s (%d bytes)",K8,E8.pointer()),await Z(A);let t8=y.length;return dK("Export complete: %s (%d entities)",K8,t8),{success:!0,filename:K8,path:R8,counts:{folders:I.length,documents:D.length,templates:g.length},draftOnlySkipped:{documents:B.length,templates:R.length}}}catch(N){throw await Z(A),N}}})},LE8=Object.freeze({create:Ur6});var XL8=H1(ZL8(),1),wL8=H1(C$(),1);import JJ from"fs/promises";import hY from"path";import js6 from"crypto";var S1=wL8.default("caw:import"),TB=".caw-exports",OL8=".tmp",vs6=1,Gs6=/\b([A-Z][dtfn]\d+)\b/g,_s6=({store:$,folderService:K,documentService:q,templateService:Y})=>{let z=(Z,O)=>{if(!Z)return Z;return Z.replace(Gs6,(X,w)=>{return O[w]??X})},J=async(Z)=>{try{await JJ.rm(Z,{recursive:!0,force:!0})}catch(O){S1("Warning: Failed to cleanup temp directory: %s",O.message)}},P=async(Z,O,{storeCode:X})=>{let w=await K.listFolderContents(Z,O,{folderId:null,type:"d",storeCode:X}),T=await K.listFolderContents(Z,O,{folderId:null,type:"t",storeCode:X}),G=await q.listDocuments(Z,O,{parentId:null,storeCode:X}),v=await Y.listTemplates(Z,O,{parentId:null,storeCode:X}),f=w.length===0&&T.length===0&&G.length===0&&v.length===0;return S1("Store %s empty check: %s",X,f),f},W=async(Z,O,{manifest:X,tempPath:w,storeCode:T})=>{return S1("Starting transaction..."),await Z.transaction().execute(async(G)=>{let v={},f=(B)=>{},V=X.entities.filter((B)=>B.type==="folder");S1("Phase 1: Creating %d folders",V.length);for(let B of V){let g=B.contentType||"d",R=await K.createFolder(G,O,{store:T,path:B.path,type:g},f);v[B.id]=R.getObjectId()}S1("Phase 1 complete - created %d folders",V.length);let h=X.entities.filter((B)=>B.type==="document"),A=[];S1("Phase 2: Reading %d documents",h.length);for(let B of h){let g=hY.join(w,"documents",B.path),R=await JJ.readFile(g,"utf-8");A.push({oldId:B.id,path:B.path,content:R})}S1("Phase 2 complete - read %d documents",A.length),S1("Phase 3: Creating %d document entities",A.length);let N=[];for(let B of A){let g=await q.createDocument(G,O,{store:T,path:B.path,type:"d"},f);v[B.oldId]=g.getObjectId(),N.push({document:g,originalContent:B.content})}S1("Phase 3 complete - created %d document entities",N.length);let S=X.entities.filter((B)=>B.type==="template"),I=[];S1("Phase 4: Reading %d templates",S.length);for(let B of S){let g=hY.join(w,"templates",B.path),R=await JJ.readFile(g,"utf-8");I.push({oldId:B.id,path:B.path,content:R})}S1("Phase 4 complete - read %d templates",I.length),S1("Phase 5: Creating %d template entities",I.length);let D=[];for(let B of I){let g=await Y.createTemplate(G,O,{store:T,path:B.path,type:"t"},f);v[B.oldId]=g.getObjectId(),D.push({template:g,originalContent:B.content})}S1("Phase 5 complete - created %d template entities",D.length),S1("Phase 6: Remapping and saving content for %d documents",N.length);for(let{document:B,originalContent:g}of N){let R=z(g,v);await q.saveDraft(G,O,{id:B.getObjectId(),content:R,clientId:"import-service"},f),await q.publishDocument(G,O,{id:B.getObjectId()},f)}S1("Phase 6 complete - saved and published %d documents",N.length),S1("Phase 7: Remapping and saving content for %d templates",D.length);for(let{template:B,originalContent:g}of D){let R=z(g,v);await Y.saveDraft(G,O,{id:B.getObjectId(),content:R,clientId:"import-service"},f),await Y.publishTemplate(G,O,{id:B.getObjectId()},f)}return S1("Phase 7 complete - saved and published %d templates",D.length),S1("Transaction committed successfully"),{success:!0,counts:{folders:V.length,documents:N.length,templates:D.length},remapped:v}})};return Object.freeze({isStoreEmpty:P,importDocuments:async(Z,O,{filename:X,storeCode:w,projectPath:T})=>{S1("Starting import from %s to store %s",X,w);let G=hY.join(T,TB,X);try{await JJ.access(G),S1("Zip file found: %s",G)}catch(A){throw n.notFound(`Export file not found: ${X}`,"EXPORT_NOT_FOUND")}S1("Validating zip and manifest...");let v=await P(Z,O,{storeCode:w});if(!v)throw n.conflict("Store not empty - import requires empty store","STORE_NOT_EMPTY");S1("Store empty check: %s",v);let f=js6.randomUUID(),V=hY.join(T,TB,OL8,f),h=hY.join(T,TB,OL8);await JJ.mkdir(h,{recursive:!0});try{new XL8.default(G).extractAllTo(V,!0),S1("Extracted zip to: %s",V)}catch(A){throw n.validation("Corrupted or invalid zip file","IMPORT_VALIDATION_FAILED")}try{let A=hY.join(V,"manifest.json"),N;try{let D=await JJ.readFile(A,"utf-8");N=JSON.parse(D)}catch(D){throw n.validation(`Failed to read manifest: ${D.message}`,"MANIFEST_READ_FAILED")}if(N.version!==vs6)throw n.validation(`Unsupported manifest version: ${N.version}`,"UNSUPPORTED_VERSION");if(!N.entities||!Array.isArray(N.entities))throw n.validation("Invalid manifest structure","MANIFEST_READ_FAILED");S1("Manifest valid: version=%d, entities=%d",N.version,N.entities.length);for(let D of N.entities)if(D.type!=="folder"){let B=D.type==="document"?hY.join(V,"documents",D.path):hY.join(V,"templates",D.path);try{await JJ.access(B)}catch(g){throw n.validation(`Missing file for manifest entry: ${D.path}`,"IMPORT_VALIDATION_FAILED")}}S1("All content files validated");let S=await W(Z,O,{manifest:N,tempPath:V,storeCode:w}),I=S.counts.folders+S.counts.documents+S.counts.templates;return S1("Import complete: %d entities imported",I),S}finally{await J(V)}}})},TL8=Object.freeze({create:_s6});var fs6=($)=>{let{name:K,interval:q,execute:Y}=$,z=null,J=!1,P=null,W=null,H=0,Z=null,V=Object.freeze({getName:()=>K,getInterval:()=>q,getIsRunning:()=>J,getLastRun:()=>P,getLastError:()=>W,getRunCount:()=>H,getNextRun:()=>Z}),h=async()=>{try{await Y(),P=new Date().toISOString(),W=null,H++}catch(D){console.error(`[CronJob] ${K} failed:`,D),W={message:D.message,timestamp:new Date().toISOString()}}if(J)Z=new Date(Date.now()+q).toISOString()},A=()=>{if(z!==null)return;z=setInterval(h,q),J=!0,Z=new Date(Date.now()+q).toISOString()},N=()=>{if(z===null)return;clearInterval(z),z=null,J=!1,Z=null},I=Object.freeze({start:A,stop:N,restart:()=>{N(),A()}});return{jobFns:V,controlFns:I}},vM=Object.freeze({create:fs6});var jL8=H1(C$(),1),Vs6=jL8.default("caw:cron:cleanup-edit-states"),vL8=async($)=>{let K=new Date(Date.now()-jW).toISOString();try{let q=await $.deleteFrom("document_edit_state").where("last_activity_at","<",K).execute(),Y=Number(q[0]?.numDeletedRows??0);if(Y>0)Vs6("Cleaned up %d expired edit locks (older than %d minutes)",Y,jW/60000);return{expired:Y}}catch(q){throw console.error("[Cleanup] Failed to cleanup expired edit locks:",q),q}};var As6=({db:$})=>{let{jobFns:K,controlFns:q}=vM.create({name:"cleanup-stale-edit-states",interval:900000,execute:async()=>{await vL8($)}});return{job:Object.freeze(K),control:q}},GL8=Object.freeze({create:As6});var ks6=({db:$})=>{let K=new Map,q=(Z,O)=>{let{job:X,control:w}=Z.create(O);K.set(X.getName(),{job:X,control:w})},Y=(Z)=>{let O=K.get(Z);if(!O)throw new Error(`Job not found: ${Z}`);let X=O.job.getIsRunning();return O.control.start(),{name:Z,status:X?"already-running":"started",isRunning:O.job.getIsRunning()}},z=(Z)=>{let O=K.get(Z);if(!O)throw new Error(`Job not found: ${Z}`);let X=O.job.getIsRunning();return O.control.stop(),{name:Z,status:X?"stopped":"already-stopped",isRunning:O.job.getIsRunning()}},J=(Z)=>{let O=K.get(Z);if(!O)throw new Error(`Job not found: ${Z}`);return O.control.restart(),{name:Z,status:"restarted",isRunning:O.job.getIsRunning()}},P=()=>{let Z=[];for(let[O,{job:X}]of K.entries())Z.push({name:X.getName(),interval:X.getInterval(),isRunning:X.getIsRunning(),lastRun:X.getLastRun(),lastError:X.getLastError(),runCount:X.getRunCount(),nextRun:X.getNextRun()});return Z},W=()=>{for(let[Z,{control:O}]of K.entries())O.start()},H=()=>{for(let[Z,{control:O}]of K.entries())O.stop()};return q(GL8,{db:$}),Object.freeze({register:q,start:Y,stop:z,restart:J,list:P,startAll:W,stopAll:H})},_L8=Object.freeze({create:ks6});import ty8 from"node:process";import AL8 from"node:process";import Rs6 from"node:os";import Ds6 from"node:fs";import hs6 from"node:fs";import fL8 from"node:fs";var jB;function Ms6(){try{return fL8.statSync("/.dockerenv"),!0}catch{return!1}}function Ns6(){try{return fL8.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function vB(){if(jB===void 0)jB=Ms6()||Ns6();return jB}var GB,Cs6=()=>{try{return hs6.statSync("/run/.containerenv"),!0}catch{return!1}};function GM(){if(GB===void 0)GB=Cs6()||vB();return GB}var VL8=()=>{if(AL8.platform!=="linux")return!1;if(Rs6.release().toLowerCase().includes("microsoft")){if(GM())return!1;return!0}try{return Ds6.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!GM():!1}catch{return!1}},kL8=AL8.env.__IS_WSL_TEST__?VL8:VL8();import _B from"node:process";function fB(){if(_B.platform!=="linux")return!1;if(_B.env.WAYLAND_DISPLAY)return!0;if(_B.env.XDG_SESSION_TYPE==="wayland")return!0;return!1}function k4($){if(typeof $!=="object"||$===null)return!1;let K=Object.getPrototypeOf($);return(K===null||K===Object.prototype||Object.getPrototypeOf(K)===null)&&!(Symbol.toStringTag in $)&&!(Symbol.iterator in $)}import{fileURLToPath as Ss6}from"node:url";var qZ=($,K)=>{let q=AB(Es6($));if(typeof q!=="string")throw new TypeError(`${K} must be a string or a file URL: ${q}.`);return q},Es6=($)=>VB($)?$.toString():$,VB=($)=>typeof $!=="string"&&$&&Object.getPrototypeOf($)===String.prototype,AB=($)=>$ instanceof URL?Ss6($):$;var _M=($,K=[],q={})=>{let Y=qZ($,"First argument"),[z,J]=k4(K)?[[],K]:[K,q];if(!Array.isArray(z))throw new TypeError(`Second argument must be either an array of arguments or an options object: ${z}`);if(z.some((H)=>typeof H==="object"&&H!==null))throw new TypeError(`Second argument must be an array of strings: ${z}`);let P=z.map(String),W=P.find((H)=>H.includes("\x00"));if(W!==void 0)throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${W}`);if(!k4(J))throw new TypeError(`Last argument must be an options object: ${J}`);return[Y,P,J]};import{ChildProcess as us6}from"node:child_process";import{StringDecoder as Ls6}from"node:string_decoder";var{toString:ML8}=Object.prototype,NL8=($)=>ML8.call($)==="[object ArrayBuffer]",Q4=($)=>ML8.call($)==="[object Uint8Array]",nK=($)=>new Uint8Array($.buffer,$.byteOffset,$.byteLength),Is6=new TextEncoder,hL8=($)=>Is6.encode($),xs6=new TextDecoder,fM=($)=>xs6.decode($),CL8=($,K)=>{return bs6($,K).join("")},bs6=($,K)=>{if(K==="utf8"&&$.every((J)=>typeof J==="string"))return $;let q=new Ls6(K),Y=$.map((J)=>typeof J==="string"?hL8(J):J).map((J)=>q.write(J)),z=q.end();return z===""?Y:[...Y,z]},Rj=($)=>{if($.length===1&&Q4($[0]))return $[0];return kB(gs6($))},gs6=($)=>$.map((K)=>typeof K==="string"?hL8(K):K),kB=($)=>{let K=new Uint8Array(ys6($)),q=0;for(let Y of $)K.set(Y,q),q+=Y.length;return K},ys6=($)=>{let K=0;for(let q of $)K+=q.length;return K};var EL8=($)=>Array.isArray($)&&Array.isArray($.raw),LL8=($,K)=>{let q=[];for(let[J,P]of $.entries())q=ms6({templates:$,expressions:K,tokens:q,index:J,template:P});if(q.length===0)throw new TypeError("Template script must not be empty");let[Y,...z]=q;return[Y,z,{}]},ms6=({templates:$,expressions:K,tokens:q,index:Y,template:z})=>{if(z===void 0)throw new TypeError(`Invalid backslash sequence: ${$.raw[Y]}`);let{nextTokens:J,leadingWhitespaces:P,trailingWhitespaces:W}=ps6(z,$.raw[Y]),H=DL8(q,J,P);if(Y===K.length)return H;let Z=K[Y],O=Array.isArray(Z)?Z.map((X)=>SL8(X)):[SL8(Z)];return DL8(H,O,W)},ps6=($,K)=>{if(K.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let q=[],Y=0,z=RL8.has(K[0]);for(let P=0,W=0;P<$.length;P+=1,W+=1){let H=K[W];if(RL8.has(H)){if(Y!==P)q.push($.slice(Y,P));Y=P+1}else if(H==="\\"){let Z=K[W+1];if(Z===`
462
462
  `)P-=1,W+=1;else if(Z==="u"&&K[W+2]==="{")W=K.indexOf("}",W+3);else W+=cs6[Z]??1}}let J=Y===$.length;if(!J)q.push($.slice(Y));return{nextTokens:q,leadingWhitespaces:z,trailingWhitespaces:J}},RL8=new Set([" ","\t","\r",`
463
463
  `]),cs6={x:3,u:5},DL8=($,K,q)=>q||$.length===0||K.length===0?[...$,...K]:[...$.slice(0,-1),`${$.at(-1)}${K[0]}`,...K.slice(1)],SL8=($)=>{let K=typeof $;if(K==="string")return $;if(K==="number")return String($);if(k4($)&&(("stdout"in $)||("isMaxBuffer"in $)))return Bs6($);if($ instanceof us6||Object.prototype.toString.call($)==="[object Promise]")throw new TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.");throw new TypeError(`Unexpected "${K}" in template expression`)},Bs6=({stdout:$})=>{if(typeof $==="string")return $;if(Q4($))return fM($);if($===void 0)throw new TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`);throw new TypeError(`Unexpected "${typeof $}" stdout in template expression`)};import{spawnSync as o11}from"node:child_process";import{debuglog as Us6}from"node:util";import MB from"node:process";var E9=($)=>VM.includes($),VM=[MB.stdin,MB.stdout,MB.stderr],p7=["stdin","stdout","stderr"],AM=($)=>p7[$]??`stdio[${$}]`;var xL8=($)=>{let K={...$};for(let q of CB)K[q]=NB($,q);return K},NB=($,K)=>{let q=Array.from({length:ls6($)+1}),Y=Fs6($[K],q,K);return os6(Y,K)},ls6=({stdio:$})=>Array.isArray($)?Math.max($.length,p7.length):p7.length,Fs6=($,K,q)=>k4($)?is6($,K,q):K.fill($),is6=($,K,q)=>{for(let Y of Object.keys($).sort(Qs6))for(let z of ds6(Y,q,K))K[z]=$[Y];return K},Qs6=($,K)=>IL8($)<IL8(K)?1:-1,IL8=($)=>{if($==="stdout"||$==="stderr")return 0;return $==="all"?2:1},ds6=($,K,q)=>{if($==="ipc")return[q.length-1];let Y=hB($);if(Y===void 0||Y===0)throw new TypeError(`"${K}.${$}" is invalid.
464
464
  It must be "${K}.stdout", "${K}.stderr", "${K}.all", "${K}.ipc", or "${K}.fd3", "${K}.fd4" (and so on).`);if(Y>=q.length)throw new TypeError(`"${K}.${$}" is invalid: that file descriptor does not exist.
@@ -3072,7 +3072,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
3072
3072
  monaco.config({ paths: { vs: '...' } })
3073
3073
 
3074
3074
  For more please check the link https://github.com/suren-atoyan/monaco-loader#config
3075
- `},sR0=rR0(xM6)(aR0),oR0={config:_M6};var tR0=function J(){for(var Z=arguments.length,Q=new Array(Z),U=0;U<Z;U++)Q[U]=arguments[U];return function(K){return Q.reduceRight(function(X,Y){return Y(X)},K)}};function Pn(J,Z){return Object.keys(Z).forEach(function(Q){if(Z[Q]instanceof Object){if(J[Q])Object.assign(Z[Q],Pn(J[Q],Z[Q]))}}),jn(jn({},J),Z)}var hM6={type:"cancelation",msg:"operation is manually canceled"};function sv(J){var Z=!1,Q=new Promise(function(U,K){J.then(function(X){return Z?K(hM6):U(X)}),J.catch(K)});return Q.cancel=function(){return Z=!0},Q}var yM6=["monaco"],gM6=dR0.create({config:iR0,isInitialized:!1,resolve:null,reject:null,monaco:null}),eR0=pR0(gM6,2),tD=eR0[0],av=eR0[1];function mM6(J){var Z=oR0.config(J),Q=Z.monaco,U=uR0(Z,yM6);av(function(K){return{config:Pn(K.config,U),monaco:Q}})}function uM6(){var J=tD(function(Z){var{monaco:Q,isInitialized:U,resolve:K}=Z;return{monaco:Q,isInitialized:U,resolve:K}});if(!J.isInitialized){if(av({isInitialized:!0}),J.monaco)return J.resolve(J.monaco),sv(Vn);if(window.monaco&&window.monaco.editor)return JN0(window.monaco),J.resolve(window.monaco),sv(Vn);tR0(pM6,lM6)(dM6)}return sv(Vn)}function pM6(J){return document.body.appendChild(J)}function cM6(J){var Z=document.createElement("script");return J&&(Z.src=J),Z}function lM6(J){var Z=tD(function(U){var{config:K,reject:X}=U;return{config:K,reject:X}}),Q=cM6("".concat(Z.config.paths.vs,"/loader.js"));return Q.onload=function(){return J()},Q.onerror=Z.reject,Q}function dM6(){var J=tD(function(Q){var{config:U,resolve:K,reject:X}=Q;return{config:U,resolve:K,reject:X}}),Z=window.require;Z.config(J.config),Z(["vs/editor/editor.main"],function(Q){var U=Q.m||Q;JN0(U),J.resolve(U)},function(Q){J.reject(Q)})}function JN0(J){if(!tD().monaco)av({monaco:J})}function iM6(){return tD(function(J){var Z=J.monaco;return Z})}var Vn=new Promise(function(J,Z){return av({resolve:J,reject:Z})}),iF={config:mM6,init:uM6,__getMonacoInstance:iM6};var ZN0=J6(n6(),1),dZ=J6(n6(),1);var QN0=J6(n6(),1),tv=J6(n6(),1),UN0=J6(n6(),1),XN0=J6(n6(),1),ev=J6(n6(),1),zO6=J6(n6(),1);var GN0=J6(n6(),1),$4=J6(n6(),1);var Jk=J6(n6(),1),rM6={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},Tn=rM6,nM6={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},sM6=nM6;function aM6({children:J}){return UN0.default.createElement("div",{style:sM6.container},J)}var oM6=aM6,tM6=oM6;function eM6({width:J,height:Z,isEditorReady:Q,loading:U,_ref:K,className:X,wrapperProps:Y}){return tv.default.createElement("section",{style:{...Tn.wrapper,width:J,height:Z},...Y},!Q&&tv.default.createElement(tM6,null,U),tv.default.createElement("div",{ref:K,style:{...Tn.fullWidth,...!Q&&Tn.hide},className:X}))}var JO6=eM6,KN0=QN0.memo(JO6);function ZO6(J){XN0.useEffect(J,[])}var YN0=ZO6;function QO6(J,Z,Q=!0){let U=ev.useRef(!0);ev.useEffect(U.current||!Q?()=>{U.current=!1}:J,Z)}var OK=QO6;function eD(){}function hL(J,Z,Q,U){return UO6(J,U)||KO6(J,Z,Q,U)}function UO6(J,Z){return J.editor.getModel(zN0(J,Z))}function KO6(J,Z,Q,U){return J.editor.createModel(Z,Q,U?zN0(J,U):void 0)}function zN0(J,Z){return J.Uri.parse(Z)}function XO6({original:J,modified:Z,language:Q,originalLanguage:U,modifiedLanguage:K,originalModelPath:X,modifiedModelPath:Y,keepCurrentOriginalModel:z=!1,keepCurrentModifiedModel:G=!1,theme:W="light",loading:H="Loading...",options:q={},height:F="100%",width:M="100%",className:L,wrapperProps:A={},beforeMount:I=eD,onMount:R=eD}){let[N,E]=dZ.useState(!1),[V,j]=dZ.useState(!0),T=dZ.useRef(null),C=dZ.useRef(null),$=dZ.useRef(null),b=dZ.useRef(R),h=dZ.useRef(I),_=dZ.useRef(!1);YN0(()=>{let x=iF.init();return x.then((y)=>(C.current=y)&&j(!1)).catch((y)=>y?.type!=="cancelation"&&console.error("Monaco initialization: error:",y)),()=>T.current?f():x.cancel()}),OK(()=>{if(T.current&&C.current){let x=T.current.getOriginalEditor(),y=hL(C.current,J||"",U||Q||"text",X||"");y!==x.getModel()&&x.setModel(y)}},[X],N),OK(()=>{if(T.current&&C.current){let x=T.current.getModifiedEditor(),y=hL(C.current,Z||"",K||Q||"text",Y||"");y!==x.getModel()&&x.setModel(y)}},[Y],N),OK(()=>{let x=T.current.getModifiedEditor();x.getOption(C.current.editor.EditorOption.readOnly)?x.setValue(Z||""):Z!==x.getValue()&&(x.executeEdits("",[{range:x.getModel().getFullModelRange(),text:Z||"",forceMoveMarkers:!0}]),x.pushUndoStop())},[Z],N),OK(()=>{T.current?.getModel()?.original.setValue(J||"")},[J],N),OK(()=>{let{original:x,modified:y}=T.current.getModel();C.current.editor.setModelLanguage(x,U||Q||"text"),C.current.editor.setModelLanguage(y,K||Q||"text")},[Q,U,K],N),OK(()=>{C.current?.editor.setTheme(W)},[W],N),OK(()=>{T.current?.updateOptions(q)},[q],N);let S=dZ.useCallback(()=>{if(!C.current)return;h.current(C.current);let x=hL(C.current,J||"",U||Q||"text",X||""),y=hL(C.current,Z||"",K||Q||"text",Y||"");T.current?.setModel({original:x,modified:y})},[Q,Z,K,J,U,X,Y]),v=dZ.useCallback(()=>{!_.current&&$.current&&(T.current=C.current.editor.createDiffEditor($.current,{automaticLayout:!0,...q}),S(),C.current?.editor.setTheme(W),E(!0),_.current=!0)},[q,W,S]);dZ.useEffect(()=>{N&&b.current(T.current,C.current)},[N]),dZ.useEffect(()=>{!V&&!N&&v()},[V,N,v]);function f(){let x=T.current?.getModel();z||x?.original?.dispose(),G||x?.modified?.dispose(),T.current?.dispose()}return dZ.default.createElement(KN0,{width:M,height:F,isEditorReady:N,loading:H,_ref:$,className:L,wrapperProps:A})}var YO6=XO6,_R8=ZN0.memo(YO6);function GO6(J){let Z=Jk.useRef();return Jk.useEffect(()=>{Z.current=J},[J]),Z.current}var WO6=GO6,ov=new Map;function HO6({defaultValue:J,defaultLanguage:Z,defaultPath:Q,value:U,language:K,path:X,theme:Y="light",line:z,loading:G="Loading...",options:W={},overrideServices:H={},saveViewState:q=!0,keepCurrentModel:F=!1,width:M="100%",height:L="100%",className:A,wrapperProps:I={},beforeMount:R=eD,onMount:N=eD,onChange:E,onValidate:V=eD}){let[j,T]=$4.useState(!1),[C,$]=$4.useState(!0),b=$4.useRef(null),h=$4.useRef(null),_=$4.useRef(null),S=$4.useRef(N),v=$4.useRef(R),f=$4.useRef(),x=$4.useRef(U),y=WO6(X),m=$4.useRef(!1),g=$4.useRef(!1);YN0(()=>{let l=iF.init();return l.then((a)=>(b.current=a)&&$(!1)).catch((a)=>a?.type!=="cancelation"&&console.error("Monaco initialization: error:",a)),()=>h.current?i():l.cancel()}),OK(()=>{let l=hL(b.current,J||U||"",Z||K||"",X||Q||"");l!==h.current?.getModel()&&(q&&ov.set(y,h.current?.saveViewState()),h.current?.setModel(l),q&&h.current?.restoreViewState(ov.get(X)))},[X],j),OK(()=>{h.current?.updateOptions(W)},[W],j),OK(()=>{!h.current||U===void 0||(h.current.getOption(b.current.editor.EditorOption.readOnly)?h.current.setValue(U):U!==h.current.getValue()&&(g.current=!0,h.current.executeEdits("",[{range:h.current.getModel().getFullModelRange(),text:U,forceMoveMarkers:!0}]),h.current.pushUndoStop(),g.current=!1))},[U],j),OK(()=>{let l=h.current?.getModel();l&&K&&b.current?.editor.setModelLanguage(l,K)},[K],j),OK(()=>{z!==void 0&&h.current?.revealLine(z)},[z],j),OK(()=>{b.current?.editor.setTheme(Y)},[Y],j);let p=$4.useCallback(()=>{if(!(!_.current||!b.current)&&!m.current){v.current(b.current);let l=X||Q,a=hL(b.current,U||J||"",Z||K||"",l||"");h.current=b.current?.editor.create(_.current,{model:a,automaticLayout:!0,...W},H),q&&h.current.restoreViewState(ov.get(l)),b.current.editor.setTheme(Y),z!==void 0&&h.current.revealLine(z),T(!0),m.current=!0}},[J,Z,Q,U,K,X,W,H,q,Y,z]);$4.useEffect(()=>{j&&S.current(h.current,b.current)},[j]),$4.useEffect(()=>{!C&&!j&&p()},[C,j,p]),x.current=U,$4.useEffect(()=>{j&&E&&(f.current?.dispose(),f.current=h.current?.onDidChangeModelContent((l)=>{g.current||E(h.current.getValue(),l)}))},[j,E]),$4.useEffect(()=>{if(j){let l=b.current.editor.onDidChangeMarkers((a)=>{let e=h.current.getModel()?.uri;if(e&&a.find((G0)=>G0.path===e.path)){let G0=b.current.editor.getModelMarkers({resource:e});V?.(G0)}});return()=>{l?.dispose()}}return()=>{}},[j,V]);function i(){f.current?.dispose(),F?q&&ov.set(X,h.current.saveViewState()):h.current.getModel()?.dispose(),h.current.dispose()}return $4.default.createElement(KN0,{width:M,height:L,isEditorReady:j,loading:G,_ref:_,className:A,wrapperProps:I})}var qO6=HO6,FO6=GN0.memo(qO6),WN0=FO6;var Cn=J6(MJ(),1),BO6=(J)=>{if(!J)return"markdown";let Z=J.toLowerCase();if(Z.endsWith(".md")||Z.endsWith(".markdown"))return"markdown";if(Z.endsWith(".json"))return"json";if(Z.endsWith(".ts"))return"typescript";if(Z.endsWith(".tsx"))return"typescript";if(Z.endsWith(".js"))return"javascript";if(Z.endsWith(".jsx"))return"javascript";if(Z.endsWith(".yml")||Z.endsWith(".yaml"))return"yaml";if(Z.endsWith(".html"))return"html";if(Z.endsWith(".css"))return"css";if(Z.endsWith(".mmd"))return"plaintext";if(Z.endsWith(".txt"))return"plaintext";return"markdown"},Jw=sQ.memo(({value:J,onChange:Z,onBlur:Q,path:U="",height:K="100%",className:X="",debounceMs:Y=100,autoFocus:z=!0})=>{let G=sQ.useMemo(()=>BO6(U),[U]),W=sQ.useRef(Z);W.current=Z;let H=sQ.useRef(Q);H.current=Q;let q=sQ.useRef(null),F=sQ.useRef(null);sQ.useEffect(()=>{return()=>{if(F.current)clearTimeout(F.current);if(q.current?._blurDisposable)q.current._blurDisposable.dispose()}},[]);let M=sQ.useCallback((N)=>{N.editor.defineTheme("caw-light",{base:"vs",inherit:!0,rules:[],colors:{"editor.background":"#f9f8f6"}})},[]),L=sQ.useCallback((N)=>{if(q.current=N,z)N.focus(),N.setPosition({lineNumber:1,column:1});let E=N.onDidBlurEditorWidget(()=>{if(H.current)H.current()});q.current._blurDisposable=E},[z]),A=sQ.useCallback((N)=>{let E=N??"";if(!Y||Y<=0){if(W.current)W.current(E);return}if(F.current)clearTimeout(F.current);F.current=setTimeout(()=>{if(W.current)W.current(E)},Y)},[Y]),I=K==="100%"?void 0:{height:K},R=K==="100%"?`h-full rounded-md overflow-hidden border border-border ${X}`:`rounded-md overflow-hidden border border-border ${X}`;return Cn.jsxDEV("div",{className:R,style:I,children:Cn.jsxDEV(WN0,{height:"100%",language:G,value:J,onChange:A,beforeMount:M,onMount:L,theme:"caw-light",options:{fontSize:14,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",minimap:{enabled:!1},smoothScrolling:!0,scrollBeyondLastLine:!1,automaticLayout:!0,wordWrap:"on",lineNumbers:"on",padding:{top:12,bottom:12},cursorBlinking:"smooth",cursorSmoothCaretAnimation:"on",multiCursorModifier:"ctrlCmd",stickyScroll:{enabled:!0},overviewRulerLanes:0,hideCursorInOverviewRuler:!0,glyphMargin:!1,renderWhitespace:"boundary",lineDecorationsWidth:0,quickSuggestions:!1,wordBasedSuggestions:"off",suggestOnTriggerCharacters:!1,inlineSuggest:{enabled:!1},hover:{enabled:!1}}},void 0,!1,void 0,this)},void 0,!1,void 0,this)});Jw.displayName="MonacoEditor";var pz=J6(n6(),1),ns0=J6(MJ(),1),is0=!1,rs0=()=>{if(typeof crypto!=="undefined"&&typeof crypto.randomUUID==="function")return crypto.randomUUID();return"mmd-"+Math.random().toString(36).slice(2)+"-"+Date.now()},Da6=(J)=>{return(J??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},QR=({markdown:J,className:Z=""})=>{let[Q,U]=pz.useState(""),K=pz.useRef(null),X=pz.useRef(0),Y=pz.useRef(0);return pz.useEffect(()=>{let z=!1,G=++X.current;return(async()=>{try{let[{marked:W},H]=await Promise.all([Promise.resolve().then(() => (SN0(),CN0)),Promise.resolve().then(() => (Hk(),pN0))]),q=H.default||H,F=new W.Renderer;F.code=({text:A,lang:I})=>{let R=((I??"").trim().split(" ")[0]??"").toLowerCase(),N=Da6(A);if(R==="mermaid")return`<pre class="mermaid" data-mermaid-id="${rs0()}">${N}</pre>`;return`<pre><code class="language-${R}">${N}</code></pre>`};let M=await W.parse(J??"",{renderer:F}),L=q.sanitize(M,{ADD_TAGS:["pre"],ADD_ATTR:["class","data-mermaid-id"]});if(!z&&G===X.current)U(L)}catch(W){if(console.error("Markdown parse error:",W),!z&&G===X.current)U("")}})(),()=>{z=!0}},[J]),pz.useEffect(()=>{if(!Q)return;let z=!1,G=++Y.current;return(async()=>{let W=K.current;if(!W)return;let H=Array.from(W.querySelectorAll("pre.mermaid[data-mermaid-id]")),F=Array.from(W.querySelectorAll("pre > code.language-mermaid")).map((L)=>L.parentElement).filter(Boolean),M=[...H,...F];if(M.length===0)return;try{let L=await Promise.resolve().then(() => (ds0(),ls0)),A=L.default||L;if(!is0)A.initialize({startOnLoad:!1,theme:"default"}),is0=!0;let I=M.map(async(N)=>{let E=(N.textContent??"").trim();if(!E)return{el:N,svg:null,error:null};let V=N.getAttribute("data-mermaid-id")||rs0();try{let{svg:j}=await A.render(`render-${V}`,E);return{el:N,svg:j,error:null}}catch(j){return{el:N,svg:null,error:j}}}),R=await Promise.all(I);if(z||G!==Y.current)return;for(let{el:N,svg:E,error:V}of R){if(!N)continue;if(V||!E){console.warn("Mermaid render error:",V),N.classList.add("mermaid-error");continue}try{let j=document.createElement("div");j.className="mermaid-diagram",j.innerHTML=E,N.replaceWith(j)}catch(j){console.warn("Mermaid DOM replace error:",j),N.classList.add("mermaid-error")}}}catch(L){console.error("Mermaid initialization error:",L)}})(),()=>{z=!0}},[Q]),ns0.jsxDEV("div",{ref:K,className:`prose prose-sm max-w-none ${Z}`,dangerouslySetInnerHTML:{__html:Q}},void 0,!1,void 0,this)};var KY="",XY={"Content-Type":"application/json"};var ss0=async(J,{type:Z,path:Q,content:U,store:K})=>{let X=await fetch(`${KY}/api/p/${J}/documents`,{method:"POST",headers:XY,body:JSON.stringify({type:Z,path:Q,content:U,store:K})});return hJ(X,"Failed to create document")},as0=async(J,Z,{includeDraft:Q}={})=>{let U=new URLSearchParams;if(Q)U.set("includeDraft","true");let K=U.toString(),X=`${KY}/api/p/${J}/documents/${Z}${K?`?${K}`:""}`,Y=await fetch(X,{headers:XY});return hJ(Y,"Failed to fetch document")},os0=async(J,Z,Q,U)=>{let K=await fetch(`${KY}/api/p/${J}/documents/${Z}/draft`,{method:"PUT",headers:XY,body:JSON.stringify({content:Q,clientId:U})});return hJ(K,"Failed to save draft")},ts0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/publish`,{method:"POST",headers:XY});return hJ(Q,"Failed to publish document")},es0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/draft`,{method:"DELETE",headers:XY});return hJ(Q,"Failed to discard draft")},Ja0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/versions`,{headers:XY});return hJ(Q,"Failed to fetch versions")},Za0=async(J,Z,Q)=>{let U=await fetch(`${KY}/api/p/${J}/documents/${Z}/versions/${Q}`,{headers:XY});return hJ(U,"Failed to fetch version")},Qa0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}`,{method:"DELETE",headers:XY});return hJ(Q,"Failed to delete document")},Ua0=async(J,Z,Q)=>{let U=await fetch(`${KY}/api/p/${J}/documents/${Z}`,{method:"PATCH",headers:XY,body:JSON.stringify({path:Q})});return hJ(U,"Failed to update document path")},Ka0=async(J,Z,Q)=>{let U=await fetch(`${KY}/api/p/${J}/documents/${Z}/edit-state`,{method:"POST",headers:XY,body:JSON.stringify({clientId:Q})});if(U.status===409)return U.json();return hJ(U,"Failed to set edit state")},HU0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/edit-state`,{method:"DELETE",headers:XY});return hJ(Q,"Failed to clear edit state")};var R8=J6(MJ(),1),Xa0=({projectId:J,selectedId:Z,selectedItemData:Q,versions:U,draftContent:K,serverContent:X,isDirty:Y,hasDraft:z,isEditing:G,setIsEditing:W,viewingVersion:H,versionContent:q,showVersions:F,setShowVersions:M,showRename:L,setShowRename:A,renameFilename:I,setRenameFilename:R,actionError:N,setActionError:E,saveStatus:V,handleEditorChange:j,handleViewVersion:T,handleBackToEdit:C,handlePublish:$,handleDiscardDraft:b,handleRetry:h,handleOpenRename:_,handleRename:S,handleCopyContent:v,handleCopyIds:f,setShowDeleteConfirm:x,publishMutation:y,discardMutation:m,updatePathMutation:g,debouncedSave:p,collectedIds:i,showToast:l,typeName:a,triggerEditMode:e,setTriggerEditMode:G0})=>{let[U0,O0]=bK.useState(new Set),[X0,E0]=bK.useState(new Set),[W0,q0]=bK.useState(!1),z0=bK.useRef(!1),K0=Z&&U0.has(Z),Y0=bK.useMemo(()=>{if(!Q||!Q.editState)return!1;let t=cY();return Q.editState.clientId!==t},[Q])&&!X0.has(Z),P0=()=>{E0((t)=>new Set([...t,Z]))},F0=async()=>{if(!Z||!J)return;try{let t=cY(),N0=await Ka0(J,Z,t);if(!N0.success){E(`Document is currently being edited. Try again in ${Math.ceil(N0.meta?.timeoutSeconds/60)} minutes.`);return}O0((f0)=>new Set([...f0,Z])),z0.current=!1}catch(t){E(t.message)}},m0=async()=>{if(!Z)return;if(O0((t)=>{let N0=new Set(t);return N0.delete(Z),N0}),J)try{await HU0(J,Z)}catch(t){console.error("Failed to clear edit state:",t)}};bK.useEffect(()=>{if(!Q||!Z)return;let t=Q.editState,N0=cY();if(t&&t.clientId===N0){let f0=new Date(t.lastActivityAt),l0=new Date(Date.now()-3600000);if(f0>=l0)O0((k0)=>new Set([...k0,Z]))}else O0((f0)=>{if(f0.has(Z)){let l0=new Set(f0);return l0.delete(Z),l0}return f0})},[Q,Z]),bK.useEffect(()=>{if(e)F0(),G0(!1)},[e]),bK.useEffect(()=>{return()=>{if(Z&&U0.has(Z)){if(O0((t)=>{let N0=new Set(t);return N0.delete(Z),N0}),J)HU0(J,Z).catch((t)=>{console.error("Failed to clear edit state on navigation:",t)})}}},[Z]);let J0=async()=>{await m0(),await $()},z6=async()=>{if(i&&i.length>0)try{let t=await Promise.all(i.map(async(N0)=>{let l0=await(await fetch(`/api/p/${J}/documents/${N0}`,{headers:{"Content-Type":"application/json"}})).json(),k0=l0.draftContent??l0.publishedContent??"";return`=== [${N0}] - ${l0.path||N0} ===
3075
+ `},sR0=rR0(xM6)(aR0),oR0={config:_M6};var tR0=function J(){for(var Z=arguments.length,Q=new Array(Z),U=0;U<Z;U++)Q[U]=arguments[U];return function(K){return Q.reduceRight(function(X,Y){return Y(X)},K)}};function Pn(J,Z){return Object.keys(Z).forEach(function(Q){if(Z[Q]instanceof Object){if(J[Q])Object.assign(Z[Q],Pn(J[Q],Z[Q]))}}),jn(jn({},J),Z)}var hM6={type:"cancelation",msg:"operation is manually canceled"};function sv(J){var Z=!1,Q=new Promise(function(U,K){J.then(function(X){return Z?K(hM6):U(X)}),J.catch(K)});return Q.cancel=function(){return Z=!0},Q}var yM6=["monaco"],gM6=dR0.create({config:iR0,isInitialized:!1,resolve:null,reject:null,monaco:null}),eR0=pR0(gM6,2),tD=eR0[0],av=eR0[1];function mM6(J){var Z=oR0.config(J),Q=Z.monaco,U=uR0(Z,yM6);av(function(K){return{config:Pn(K.config,U),monaco:Q}})}function uM6(){var J=tD(function(Z){var{monaco:Q,isInitialized:U,resolve:K}=Z;return{monaco:Q,isInitialized:U,resolve:K}});if(!J.isInitialized){if(av({isInitialized:!0}),J.monaco)return J.resolve(J.monaco),sv(Vn);if(window.monaco&&window.monaco.editor)return JN0(window.monaco),J.resolve(window.monaco),sv(Vn);tR0(pM6,lM6)(dM6)}return sv(Vn)}function pM6(J){return document.body.appendChild(J)}function cM6(J){var Z=document.createElement("script");return J&&(Z.src=J),Z}function lM6(J){var Z=tD(function(U){var{config:K,reject:X}=U;return{config:K,reject:X}}),Q=cM6("".concat(Z.config.paths.vs,"/loader.js"));return Q.onload=function(){return J()},Q.onerror=Z.reject,Q}function dM6(){var J=tD(function(Q){var{config:U,resolve:K,reject:X}=Q;return{config:U,resolve:K,reject:X}}),Z=window.require;Z.config(J.config),Z(["vs/editor/editor.main"],function(Q){var U=Q.m||Q;JN0(U),J.resolve(U)},function(Q){J.reject(Q)})}function JN0(J){if(!tD().monaco)av({monaco:J})}function iM6(){return tD(function(J){var Z=J.monaco;return Z})}var Vn=new Promise(function(J,Z){return av({resolve:J,reject:Z})}),iF={config:mM6,init:uM6,__getMonacoInstance:iM6};var ZN0=J6(n6(),1),dZ=J6(n6(),1);var QN0=J6(n6(),1),tv=J6(n6(),1),UN0=J6(n6(),1),XN0=J6(n6(),1),ev=J6(n6(),1),zO6=J6(n6(),1);var GN0=J6(n6(),1),$4=J6(n6(),1);var Jk=J6(n6(),1),rM6={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},Tn=rM6,nM6={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},sM6=nM6;function aM6({children:J}){return UN0.default.createElement("div",{style:sM6.container},J)}var oM6=aM6,tM6=oM6;function eM6({width:J,height:Z,isEditorReady:Q,loading:U,_ref:K,className:X,wrapperProps:Y}){return tv.default.createElement("section",{style:{...Tn.wrapper,width:J,height:Z},...Y},!Q&&tv.default.createElement(tM6,null,U),tv.default.createElement("div",{ref:K,style:{...Tn.fullWidth,...!Q&&Tn.hide},className:X}))}var JO6=eM6,KN0=QN0.memo(JO6);function ZO6(J){XN0.useEffect(J,[])}var YN0=ZO6;function QO6(J,Z,Q=!0){let U=ev.useRef(!0);ev.useEffect(U.current||!Q?()=>{U.current=!1}:J,Z)}var OK=QO6;function eD(){}function hL(J,Z,Q,U){return UO6(J,U)||KO6(J,Z,Q,U)}function UO6(J,Z){return J.editor.getModel(zN0(J,Z))}function KO6(J,Z,Q,U){return J.editor.createModel(Z,Q,U?zN0(J,U):void 0)}function zN0(J,Z){return J.Uri.parse(Z)}function XO6({original:J,modified:Z,language:Q,originalLanguage:U,modifiedLanguage:K,originalModelPath:X,modifiedModelPath:Y,keepCurrentOriginalModel:z=!1,keepCurrentModifiedModel:G=!1,theme:W="light",loading:H="Loading...",options:q={},height:F="100%",width:M="100%",className:L,wrapperProps:A={},beforeMount:I=eD,onMount:R=eD}){let[N,E]=dZ.useState(!1),[V,j]=dZ.useState(!0),T=dZ.useRef(null),C=dZ.useRef(null),$=dZ.useRef(null),b=dZ.useRef(R),h=dZ.useRef(I),_=dZ.useRef(!1);YN0(()=>{let x=iF.init();return x.then((y)=>(C.current=y)&&j(!1)).catch((y)=>y?.type!=="cancelation"&&console.error("Monaco initialization: error:",y)),()=>T.current?f():x.cancel()}),OK(()=>{if(T.current&&C.current){let x=T.current.getOriginalEditor(),y=hL(C.current,J||"",U||Q||"text",X||"");y!==x.getModel()&&x.setModel(y)}},[X],N),OK(()=>{if(T.current&&C.current){let x=T.current.getModifiedEditor(),y=hL(C.current,Z||"",K||Q||"text",Y||"");y!==x.getModel()&&x.setModel(y)}},[Y],N),OK(()=>{let x=T.current.getModifiedEditor();x.getOption(C.current.editor.EditorOption.readOnly)?x.setValue(Z||""):Z!==x.getValue()&&(x.executeEdits("",[{range:x.getModel().getFullModelRange(),text:Z||"",forceMoveMarkers:!0}]),x.pushUndoStop())},[Z],N),OK(()=>{T.current?.getModel()?.original.setValue(J||"")},[J],N),OK(()=>{let{original:x,modified:y}=T.current.getModel();C.current.editor.setModelLanguage(x,U||Q||"text"),C.current.editor.setModelLanguage(y,K||Q||"text")},[Q,U,K],N),OK(()=>{C.current?.editor.setTheme(W)},[W],N),OK(()=>{T.current?.updateOptions(q)},[q],N);let S=dZ.useCallback(()=>{if(!C.current)return;h.current(C.current);let x=hL(C.current,J||"",U||Q||"text",X||""),y=hL(C.current,Z||"",K||Q||"text",Y||"");T.current?.setModel({original:x,modified:y})},[Q,Z,K,J,U,X,Y]),v=dZ.useCallback(()=>{!_.current&&$.current&&(T.current=C.current.editor.createDiffEditor($.current,{automaticLayout:!0,...q}),S(),C.current?.editor.setTheme(W),E(!0),_.current=!0)},[q,W,S]);dZ.useEffect(()=>{N&&b.current(T.current,C.current)},[N]),dZ.useEffect(()=>{!V&&!N&&v()},[V,N,v]);function f(){let x=T.current?.getModel();z||x?.original?.dispose(),G||x?.modified?.dispose(),T.current?.dispose()}return dZ.default.createElement(KN0,{width:M,height:F,isEditorReady:N,loading:H,_ref:$,className:L,wrapperProps:A})}var YO6=XO6,_R8=ZN0.memo(YO6);function GO6(J){let Z=Jk.useRef();return Jk.useEffect(()=>{Z.current=J},[J]),Z.current}var WO6=GO6,ov=new Map;function HO6({defaultValue:J,defaultLanguage:Z,defaultPath:Q,value:U,language:K,path:X,theme:Y="light",line:z,loading:G="Loading...",options:W={},overrideServices:H={},saveViewState:q=!0,keepCurrentModel:F=!1,width:M="100%",height:L="100%",className:A,wrapperProps:I={},beforeMount:R=eD,onMount:N=eD,onChange:E,onValidate:V=eD}){let[j,T]=$4.useState(!1),[C,$]=$4.useState(!0),b=$4.useRef(null),h=$4.useRef(null),_=$4.useRef(null),S=$4.useRef(N),v=$4.useRef(R),f=$4.useRef(),x=$4.useRef(U),y=WO6(X),m=$4.useRef(!1),g=$4.useRef(!1);YN0(()=>{let l=iF.init();return l.then((a)=>(b.current=a)&&$(!1)).catch((a)=>a?.type!=="cancelation"&&console.error("Monaco initialization: error:",a)),()=>h.current?i():l.cancel()}),OK(()=>{let l=hL(b.current,J||U||"",Z||K||"",X||Q||"");l!==h.current?.getModel()&&(q&&ov.set(y,h.current?.saveViewState()),h.current?.setModel(l),q&&h.current?.restoreViewState(ov.get(X)))},[X],j),OK(()=>{h.current?.updateOptions(W)},[W],j),OK(()=>{!h.current||U===void 0||(h.current.getOption(b.current.editor.EditorOption.readOnly)?h.current.setValue(U):U!==h.current.getValue()&&(g.current=!0,h.current.executeEdits("",[{range:h.current.getModel().getFullModelRange(),text:U,forceMoveMarkers:!0}]),h.current.pushUndoStop(),g.current=!1))},[U],j),OK(()=>{let l=h.current?.getModel();l&&K&&b.current?.editor.setModelLanguage(l,K)},[K],j),OK(()=>{z!==void 0&&h.current?.revealLine(z)},[z],j),OK(()=>{b.current?.editor.setTheme(Y)},[Y],j);let p=$4.useCallback(()=>{if(!(!_.current||!b.current)&&!m.current){v.current(b.current);let l=X||Q,a=hL(b.current,U||J||"",Z||K||"",l||"");h.current=b.current?.editor.create(_.current,{model:a,automaticLayout:!0,...W},H),q&&h.current.restoreViewState(ov.get(l)),b.current.editor.setTheme(Y),z!==void 0&&h.current.revealLine(z),T(!0),m.current=!0}},[J,Z,Q,U,K,X,W,H,q,Y,z]);$4.useEffect(()=>{j&&S.current(h.current,b.current)},[j]),$4.useEffect(()=>{!C&&!j&&p()},[C,j,p]),x.current=U,$4.useEffect(()=>{j&&E&&(f.current?.dispose(),f.current=h.current?.onDidChangeModelContent((l)=>{g.current||E(h.current.getValue(),l)}))},[j,E]),$4.useEffect(()=>{if(j){let l=b.current.editor.onDidChangeMarkers((a)=>{let e=h.current.getModel()?.uri;if(e&&a.find((G0)=>G0.path===e.path)){let G0=b.current.editor.getModelMarkers({resource:e});V?.(G0)}});return()=>{l?.dispose()}}return()=>{}},[j,V]);function i(){f.current?.dispose(),F?q&&ov.set(X,h.current.saveViewState()):h.current.getModel()?.dispose(),h.current.dispose()}return $4.default.createElement(KN0,{width:M,height:L,isEditorReady:j,loading:G,_ref:_,className:A,wrapperProps:I})}var qO6=HO6,FO6=GN0.memo(qO6),WN0=FO6;var Cn=J6(MJ(),1),BO6=(J)=>{if(!J)return"markdown";let Z=J.toLowerCase();if(Z.endsWith(".md")||Z.endsWith(".markdown"))return"markdown";if(Z.endsWith(".json"))return"json";if(Z.endsWith(".ts"))return"typescript";if(Z.endsWith(".tsx"))return"typescript";if(Z.endsWith(".js"))return"javascript";if(Z.endsWith(".jsx"))return"javascript";if(Z.endsWith(".yml")||Z.endsWith(".yaml"))return"yaml";if(Z.endsWith(".html"))return"html";if(Z.endsWith(".css"))return"css";if(Z.endsWith(".mmd"))return"plaintext";if(Z.endsWith(".txt"))return"plaintext";return"markdown"},Jw=sQ.memo(({value:J,onChange:Z,onBlur:Q,path:U="",height:K="100%",className:X="",debounceMs:Y=0,autoFocus:z=!0})=>{let G=sQ.useMemo(()=>BO6(U),[U]),W=sQ.useRef(Z);W.current=Z;let H=sQ.useRef(Q);H.current=Q;let q=sQ.useRef(null),F=sQ.useRef(null);sQ.useEffect(()=>{return()=>{if(F.current)clearTimeout(F.current);if(q.current?._blurDisposable)q.current._blurDisposable.dispose()}},[]);let M=sQ.useCallback((N)=>{N.editor.defineTheme("caw-light",{base:"vs",inherit:!0,rules:[],colors:{"editor.background":"#f9f8f6"}})},[]),L=sQ.useCallback((N)=>{if(q.current=N,z)N.focus(),N.setPosition({lineNumber:1,column:1});let E=N.onDidBlurEditorWidget(()=>{if(H.current)H.current()});q.current._blurDisposable=E},[z]),A=sQ.useCallback((N)=>{let E=N??"";if(!Y||Y<=0){if(W.current)W.current(E);return}if(F.current)clearTimeout(F.current);F.current=setTimeout(()=>{if(W.current)W.current(E)},Y)},[Y]),I=K==="100%"?void 0:{height:K},R=K==="100%"?`h-full rounded-md overflow-hidden border border-border ${X}`:`rounded-md overflow-hidden border border-border ${X}`;return Cn.jsxDEV("div",{className:R,style:I,children:Cn.jsxDEV(WN0,{height:"100%",language:G,path:U,value:J,onChange:A,beforeMount:M,onMount:L,theme:"caw-light",options:{fontSize:14,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",minimap:{enabled:!1},smoothScrolling:!0,scrollBeyondLastLine:!1,automaticLayout:!0,wordWrap:"on",lineNumbers:"on",padding:{top:12,bottom:12},cursorBlinking:"smooth",cursorSmoothCaretAnimation:"on",multiCursorModifier:"ctrlCmd",stickyScroll:{enabled:!0},overviewRulerLanes:0,hideCursorInOverviewRuler:!0,glyphMargin:!1,renderWhitespace:"boundary",lineDecorationsWidth:0,quickSuggestions:!1,wordBasedSuggestions:"off",suggestOnTriggerCharacters:!1,inlineSuggest:{enabled:!1},hover:{enabled:!1}}},void 0,!1,void 0,this)},void 0,!1,void 0,this)});Jw.displayName="MonacoEditor";var pz=J6(n6(),1),ns0=J6(MJ(),1),is0=!1,rs0=()=>{if(typeof crypto!=="undefined"&&typeof crypto.randomUUID==="function")return crypto.randomUUID();return"mmd-"+Math.random().toString(36).slice(2)+"-"+Date.now()},Da6=(J)=>{return(J??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},QR=({markdown:J,className:Z=""})=>{let[Q,U]=pz.useState(""),K=pz.useRef(null),X=pz.useRef(0),Y=pz.useRef(0);return pz.useEffect(()=>{let z=!1,G=++X.current;return(async()=>{try{let[{marked:W},H]=await Promise.all([Promise.resolve().then(() => (SN0(),CN0)),Promise.resolve().then(() => (Hk(),pN0))]),q=H.default||H,F=new W.Renderer;F.code=({text:A,lang:I})=>{let R=((I??"").trim().split(" ")[0]??"").toLowerCase(),N=Da6(A);if(R==="mermaid")return`<pre class="mermaid" data-mermaid-id="${rs0()}">${N}</pre>`;return`<pre><code class="language-${R}">${N}</code></pre>`};let M=await W.parse(J??"",{renderer:F}),L=q.sanitize(M,{ADD_TAGS:["pre"],ADD_ATTR:["class","data-mermaid-id"]});if(!z&&G===X.current)U(L)}catch(W){if(console.error("Markdown parse error:",W),!z&&G===X.current)U("")}})(),()=>{z=!0}},[J]),pz.useEffect(()=>{if(!Q)return;let z=!1,G=++Y.current;return(async()=>{let W=K.current;if(!W)return;let H=Array.from(W.querySelectorAll("pre.mermaid[data-mermaid-id]")),F=Array.from(W.querySelectorAll("pre > code.language-mermaid")).map((L)=>L.parentElement).filter(Boolean),M=[...H,...F];if(M.length===0)return;try{let L=await Promise.resolve().then(() => (ds0(),ls0)),A=L.default||L;if(!is0)A.initialize({startOnLoad:!1,theme:"default"}),is0=!0;let I=M.map(async(N)=>{let E=(N.textContent??"").trim();if(!E)return{el:N,svg:null,error:null};let V=N.getAttribute("data-mermaid-id")||rs0();try{let{svg:j}=await A.render(`render-${V}`,E);return{el:N,svg:j,error:null}}catch(j){return{el:N,svg:null,error:j}}}),R=await Promise.all(I);if(z||G!==Y.current)return;for(let{el:N,svg:E,error:V}of R){if(!N)continue;if(V||!E){console.warn("Mermaid render error:",V),N.classList.add("mermaid-error");continue}try{let j=document.createElement("div");j.className="mermaid-diagram",j.innerHTML=E,N.replaceWith(j)}catch(j){console.warn("Mermaid DOM replace error:",j),N.classList.add("mermaid-error")}}}catch(L){console.error("Mermaid initialization error:",L)}})(),()=>{z=!0}},[Q]),ns0.jsxDEV("div",{ref:K,className:`prose prose-sm max-w-none ${Z}`,dangerouslySetInnerHTML:{__html:Q}},void 0,!1,void 0,this)};var KY="",XY={"Content-Type":"application/json"};var ss0=async(J,{type:Z,path:Q,content:U,store:K})=>{let X=await fetch(`${KY}/api/p/${J}/documents`,{method:"POST",headers:XY,body:JSON.stringify({type:Z,path:Q,content:U,store:K})});return hJ(X,"Failed to create document")},as0=async(J,Z,{includeDraft:Q}={})=>{let U=new URLSearchParams;if(Q)U.set("includeDraft","true");let K=U.toString(),X=`${KY}/api/p/${J}/documents/${Z}${K?`?${K}`:""}`,Y=await fetch(X,{headers:XY});return hJ(Y,"Failed to fetch document")},os0=async(J,Z,Q,U)=>{let K=await fetch(`${KY}/api/p/${J}/documents/${Z}/draft`,{method:"PUT",headers:XY,body:JSON.stringify({content:Q,clientId:U})});return hJ(K,"Failed to save draft")},ts0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/publish`,{method:"POST",headers:XY});return hJ(Q,"Failed to publish document")},es0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/draft`,{method:"DELETE",headers:XY});return hJ(Q,"Failed to discard draft")},Ja0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/versions`,{headers:XY});return hJ(Q,"Failed to fetch versions")},Za0=async(J,Z,Q)=>{let U=await fetch(`${KY}/api/p/${J}/documents/${Z}/versions/${Q}`,{headers:XY});return hJ(U,"Failed to fetch version")},Qa0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}`,{method:"DELETE",headers:XY});return hJ(Q,"Failed to delete document")},Ua0=async(J,Z,Q)=>{let U=await fetch(`${KY}/api/p/${J}/documents/${Z}`,{method:"PATCH",headers:XY,body:JSON.stringify({path:Q})});return hJ(U,"Failed to update document path")},Ka0=async(J,Z,Q)=>{let U=await fetch(`${KY}/api/p/${J}/documents/${Z}/edit-state`,{method:"POST",headers:XY,body:JSON.stringify({clientId:Q})});if(U.status===409)return U.json();return hJ(U,"Failed to set edit state")},HU0=async(J,Z)=>{let Q=await fetch(`${KY}/api/p/${J}/documents/${Z}/edit-state`,{method:"DELETE",headers:XY});return hJ(Q,"Failed to clear edit state")};var R8=J6(MJ(),1),Xa0=({projectId:J,selectedId:Z,selectedItemData:Q,versions:U,draftContent:K,serverContent:X,isDirty:Y,hasDraft:z,isEditing:G,setIsEditing:W,viewingVersion:H,versionContent:q,showVersions:F,setShowVersions:M,showRename:L,setShowRename:A,renameFilename:I,setRenameFilename:R,actionError:N,setActionError:E,saveStatus:V,handleEditorChange:j,handleViewVersion:T,handleBackToEdit:C,handlePublish:$,handleDiscardDraft:b,handleRetry:h,handleOpenRename:_,handleRename:S,handleCopyContent:v,handleCopyIds:f,setShowDeleteConfirm:x,publishMutation:y,discardMutation:m,updatePathMutation:g,debouncedSave:p,collectedIds:i,showToast:l,typeName:a,triggerEditMode:e,setTriggerEditMode:G0})=>{let[U0,O0]=bK.useState(new Set),[X0,E0]=bK.useState(new Set),[W0,q0]=bK.useState(!1),z0=bK.useRef(!1),K0=Z&&U0.has(Z),Y0=bK.useMemo(()=>{if(!Q||!Q.editState)return!1;let t=cY();return Q.editState.clientId!==t},[Q])&&!X0.has(Z),P0=()=>{E0((t)=>new Set([...t,Z]))},F0=async()=>{if(!Z||!J)return;try{let t=cY(),N0=await Ka0(J,Z,t);if(!N0.success){E(`Document is currently being edited. Try again in ${Math.ceil(N0.meta?.timeoutSeconds/60)} minutes.`);return}O0((f0)=>new Set([...f0,Z])),z0.current=!1}catch(t){E(t.message)}},m0=async()=>{if(!Z)return;if(O0((t)=>{let N0=new Set(t);return N0.delete(Z),N0}),J)try{await HU0(J,Z)}catch(t){console.error("Failed to clear edit state:",t)}};bK.useEffect(()=>{if(!Q||!Z)return;let t=Q.editState,N0=cY();if(t&&t.clientId===N0){let f0=new Date(t.lastActivityAt),l0=new Date(Date.now()-3600000);if(f0>=l0)O0((k0)=>new Set([...k0,Z]))}else O0((f0)=>{if(f0.has(Z)){let l0=new Set(f0);return l0.delete(Z),l0}return f0})},[Q,Z]),bK.useEffect(()=>{if(e)F0(),G0(!1)},[e]),bK.useEffect(()=>{return()=>{if(Z&&U0.has(Z)){if(O0((t)=>{let N0=new Set(t);return N0.delete(Z),N0}),J)HU0(J,Z).catch((t)=>{console.error("Failed to clear edit state on navigation:",t)})}}},[Z]);let J0=async()=>{await m0(),await $()},z6=async()=>{if(i&&i.length>0)try{let t=await Promise.all(i.map(async(N0)=>{let l0=await(await fetch(`/api/p/${J}/documents/${N0}`,{headers:{"Content-Type":"application/json"}})).json(),k0=l0.draftContent??l0.publishedContent??"";return`=== [${N0}] - ${l0.path||N0} ===
3076
3076
  ${k0}`}));await navigator.clipboard.writeText(t.join(`
3077
3077
 
3078
3078
  `)),l("Contents copied")}catch(t){E("Failed to copy contents")}else v()};return R8.jsxDEV("div",{className:"flex-1 flex flex-col min-h-0",children:[R8.jsxDEV("div",{className:"flex items-center gap-2 mb-3",children:[!H&&R8.jsxDEV(D8,{variant:"outline",size:"sm",onClick:()=>K0?m0():F0(),children:K0?R8.jsxDEV(R8.Fragment,{children:[R8.jsxDEV(NH,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"View"]},void 0,!0,void 0,this):R8.jsxDEV(R8.Fragment,{children:[R8.jsxDEV(q5,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"Edit"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),!H&&R8.jsxDEV(D8,{onClick:_,variant:"outline",size:"sm",children:[R8.jsxDEV(M1,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"Rename"]},void 0,!0,void 0,this),!H&&(Y||z||V==="saving")&&R8.jsxDEV(D8,{onClick:J0,disabled:y.isPending,variant:"outline",size:"sm",children:[R8.jsxDEV(CY,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),y.isPending?"Publishing...":"Publish"]},void 0,!0,void 0,this),!H&&z&&R8.jsxDEV(D8,{onClick:b,disabled:m.isPending,variant:"outline",size:"sm",children:[R8.jsxDEV(O1,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),m.isPending?"Discarding...":"Discard"]},void 0,!0,void 0,this),!H&&R8.jsxDEV(D8,{onClick:()=>x(!0),variant:"destructive",size:"sm",children:[R8.jsxDEV(O1,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"Delete"]},void 0,!0,void 0,this),R8.jsxDEV(D8,{onClick:z6,variant:"outline",size:"sm",title:"Copy contents to clipboard",children:[R8.jsxDEV(WK,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"Copy"]},void 0,!0,void 0,this),R8.jsxDEV(D8,{onClick:f,variant:"outline",size:"sm",title:"Copy IDs to clipboard",children:[R8.jsxDEV(NG,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"IDs"]},void 0,!0,void 0,this),R8.jsxDEV("div",{className:"flex-1"},void 0,!1,void 0,this),R8.jsxDEV("div",{className:"flex items-center gap-4",children:[K0&&!H&&R8.jsxDEV(dv,{status:V,onRetry:h},void 0,!1,void 0,this),R8.jsxDEV("div",{className:"text-right",children:[R8.jsxDEV("div",{className:"font-medium text-base text-foreground",children:Q.path},void 0,!1,void 0,this),R8.jsxDEV("div",{className:"flex gap-1 justify-end",children:[z&&R8.jsxDEV("span",{className:"text-xs px-1.5 py-0.5 rounded bg-amber-100 text-amber-800",children:["v",U.length+1," draft"]},void 0,!0,void 0,this),Q.hasPublished&&R8.jsxDEV("span",{className:"text-xs px-1.5 py-0.5 rounded bg-green-100 text-green-800",children:["v",U.length," published"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R8.jsxDEV(D8,{variant:"ghost",size:"icon",onClick:()=>M(!F),title:"Version History",children:R8.jsxDEV(EH,{className:"w-4 h-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y0&&R8.jsxDEV("div",{className:"mb-3 p-3 border border-orange-300 rounded-md bg-orange-50",children:R8.jsxDEV("div",{className:"flex items-center justify-between",children:[R8.jsxDEV("div",{className:"flex items-center gap-2 text-orange-800",children:[R8.jsxDEV(q5,{className:"w-4 h-4"},void 0,!1,void 0,this),R8.jsxDEV("span",{className:"text-sm font-medium",children:"This document is currently being edited"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R8.jsxDEV(D8,{variant:"ghost",size:"sm",onClick:P0,children:R8.jsxDEV(FQ,{className:"w-4 h-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),W0&&R8.jsxDEV("div",{className:"mb-3 p-4 border border-red-300 rounded-md bg-red-50",children:R8.jsxDEV("div",{className:"flex items-start gap-3",children:[R8.jsxDEV(D7,{className:"w-5 h-5 text-red-600 shrink-0 mt-0.5"},void 0,!1,void 0,this),R8.jsxDEV("div",{className:"flex-1",children:[R8.jsxDEV("p",{className:"text-sm font-medium text-red-800 mb-2",children:"Your edit session has expired"},void 0,!1,void 0,this),R8.jsxDEV("p",{className:"text-sm text-red-700 mb-3",children:"Another user may have taken over editing, or your session timed out after 1 hour of inactivity. Your changes are still visible below."},void 0,!1,void 0,this),R8.jsxDEV("div",{className:"flex gap-2",children:[R8.jsxDEV(D8,{variant:"outline",size:"sm",onClick:()=>{navigator.clipboard.writeText(K),E(null)},children:[R8.jsxDEV(WK,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"Copy My Changes"]},void 0,!0,void 0,this),R8.jsxDEV(D8,{variant:"outline",size:"sm",onClick:()=>{q0(!1),O0((t)=>{let N0=new Set(t);return N0.delete(Z),N0}),window.location.reload()},children:[R8.jsxDEV(jF,{className:"w-4 h-4 mr-1"},void 0,!1,void 0,this),"Reload Document"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),N&&R8.jsxDEV("div",{className:"mb-3 p-3 border border-destructive rounded-md bg-destructive/10 flex items-center justify-between",children:[R8.jsxDEV("div",{className:"flex items-center gap-2 text-destructive",children:[R8.jsxDEV(D7,{className:"w-4 h-4"},void 0,!1,void 0,this),R8.jsxDEV("span",{className:"text-sm",children:N},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R8.jsxDEV(D8,{variant:"ghost",size:"icon",onClick:()=>E(null),className:"h-6 w-6",children:R8.jsxDEV(FQ,{className:"w-4 h-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),L&&R8.jsxDEV("div",{className:"mb-3 p-3 border border-border rounded-md bg-muted",children:[R8.jsxDEV("div",{className:"flex items-center gap-2 text-foreground mb-2",children:[R8.jsxDEV(q5,{className:"w-4 h-4"},void 0,!1,void 0,this),R8.jsxDEV("span",{className:"font-medium",children:"Rename document"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R8.jsxDEV("input",{type:"text",value:I,onChange:(t)=>R(t.target.value),placeholder:"New filename",className:"w-full px-3 py-2 text-sm border border-border rounded bg-background text-foreground mb-3",autoFocus:!0,onKeyDown:(t)=>{if(t.key==="Enter")S();if(t.key==="Escape")A(!1)}},void 0,!1,void 0,this),R8.jsxDEV("div",{className:"flex gap-2",children:[R8.jsxDEV(D8,{onClick:S,variant:"default",size:"sm",disabled:g.isPending||!I.trim(),children:g.isPending?"Renaming...":"Rename"},void 0,!1,void 0,this),R8.jsxDEV(D8,{onClick:()=>A(!1),variant:"outline",size:"sm",children:"Cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),F&&R8.jsxDEV("div",{className:"mb-3 p-3 bg-muted rounded-md",children:[R8.jsxDEV("h4",{className:"text-sm font-medium mb-2",children:"Version History"},void 0,!1,void 0,this),U.length===0?R8.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"No published versions yet."},void 0,!1,void 0,this):R8.jsxDEV("div",{className:"space-y-1",children:U.map((t)=>R8.jsxDEV("button",{onClick:()=>T(t.versionNumber),className:`w-full text-left px-2 py-1 text-sm rounded hover:bg-accent ${H===t.versionNumber?"bg-accent":""}`,children:["v",t.versionNumber," - ",new Date(t.publishedAt).toLocaleString()]},t.versionNumber,!0,void 0,this))},void 0,!1,void 0,this),H&&R8.jsxDEV(D8,{variant:"outline",size:"sm",onClick:C,className:"mt-2",children:"Back to Edit"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H?R8.jsxDEV("div",{className:"flex-1 min-h-0 p-4 border border-border rounded-md bg-muted overflow-auto",children:[R8.jsxDEV("div",{className:"text-xs text-muted-foreground mb-3",children:["Viewing version ",H," (read-only)"]},void 0,!0,void 0,this),R8.jsxDEV(QR,{markdown:q??""},void 0,!1,void 0,this)]},void 0,!0,void 0,this):K0?R8.jsxDEV("div",{className:"flex-1 min-h-0",children:R8.jsxDEV(Jw,{value:K,onChange:j,onBlur:()=>p.flush(),path:Q.path,height:"100%"},void 0,!1,void 0,this)},void 0,!1,void 0,this):R8.jsxDEV("div",{className:"flex-1 min-h-0 p-4 border border-border rounded-md bg-muted scrollbar-styled overflow-auto",children:Q.draftContent||Q.publishedContent?R8.jsxDEV(QR,{markdown:Q.draftContent??Q.publishedContent},void 0,!1,void 0,this):R8.jsxDEV("p",{className:"text-muted-foreground italic",children:"No content yet. Click Edit to start."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};var Ya0=(J,Z)=>{return F1({queryKey:["document",Z],queryFn:()=>as0(J,Z),enabled:!!J&&!!Z})},za0=(J)=>{let Z=k9();return o7({mutationFn:({id:Q,content:U,clientId:K})=>os0(J,Q,U,K),onSuccess:(Q,{id:U})=>{Z.invalidateQueries({queryKey:["document",U]}),Z.invalidateQueries({queryKey:["documents"]}),Z.invalidateQueries({queryKey:["folderContents"]})}})},Ga0=(J)=>{let Z=k9();return o7({mutationFn:({id:Q})=>ts0(J,Q),onSuccess:(Q,{id:U})=>{Z.invalidateQueries({queryKey:["document",U]}),Z.invalidateQueries({queryKey:["documents"]}),Z.invalidateQueries({queryKey:["versions",U]}),Z.invalidateQueries({queryKey:["folderContents"]})}})},Wa0=(J)=>{let Z=k9();return o7({mutationFn:({id:Q})=>es0(J,Q),onSuccess:(Q,{id:U})=>{Z.invalidateQueries({queryKey:["document",U]}),Z.invalidateQueries({queryKey:["documents"]}),Z.invalidateQueries({queryKey:["folderContents"]})}})},Ha0=(J,Z)=>{return F1({queryKey:["versions",Z],queryFn:()=>Ja0(J,Z),enabled:!!J&&!!Z})},qa0=(J)=>{let Z=k9();return o7({mutationFn:({id:Q})=>Qa0(J,Q),onSuccess:(Q,{id:U})=>{Z.invalidateQueries({queryKey:["document",U]}),Z.invalidateQueries({queryKey:["documents"]}),Z.invalidateQueries({queryKey:["versions",U]}),Z.invalidateQueries({queryKey:["folderContents"]})}})},Fa0=(J)=>{let Z=k9();return o7({mutationFn:({type:Q,path:U,content:K,store:X})=>ss0(J,{type:Q,path:U,content:K,store:X}),onSuccess:()=>{Z.invalidateQueries({queryKey:["documents"]}),Z.invalidateQueries({queryKey:["folderContents"]})}})},Ba0=(J)=>{let Z=k9();return o7({mutationFn:({id:Q,path:U})=>Ua0(J,Q,U),onSuccess:(Q,{id:U})=>{Z.invalidateQueries({queryKey:["document",U]}),Z.invalidateQueries({queryKey:["documents"]}),Z.invalidateQueries({queryKey:["folderContents"]})}})};var qU0=iv({type:"d",typeName:"Document",typeNamePlural:"Documents",DetailPanel:Xa0,hooks:{useItem:Ya0,useCreate:Fa0,useSaveDraft:za0,usePublish:Ga0,useDiscard:Wa0,useVersions:Ha0,useDelete:qa0,useUpdatePath:Ba0,getVersion:Za0},enableCollectionMode:!0});var l4=J6(n6(),1);var Du=J6(n6(),1);var gJ=J6(n6(),1),EV=(J)=>J.type==="checkbox",NM=(J)=>J instanceof Date,d5=(J)=>J==null,Pa0=(J)=>typeof J==="object",XZ=(J)=>!d5(J)&&!Array.isArray(J)&&Pa0(J)&&!NM(J),Va0=(J)=>XZ(J)&&J.target?EV(J.target)?J.target.checked:J.target.value:J,wa6=(J)=>J.substring(0,J.search(/\.\d+(\.|$)/))||J,Ta0=(J,Z)=>J.has(wa6(Z)),Ea6=(J)=>{let Z=J.constructor&&J.constructor.prototype;return XZ(Z)&&Z.hasOwnProperty("isPrototypeOf")},LU0=typeof window!=="undefined"&&typeof window.HTMLElement!=="undefined"&&typeof document!=="undefined";function fZ(J){let Z,Q=Array.isArray(J),U=typeof FileList!=="undefined"?J instanceof FileList:!1;if(J instanceof Date)Z=new Date(J);else if(!(LU0&&(J instanceof Blob||U))&&(Q||XZ(J))){if(Z=Q?[]:Object.create(Object.getPrototypeOf(J)),!Q&&!Ea6(J))Z=J;else for(let K in J)if(J.hasOwnProperty(K))Z[K]=fZ(J[K])}else return J;return Z}var Ym=(J)=>/^\w*$/.test(J),_4=(J)=>J===void 0,AU0=(J)=>Array.isArray(J)?J.filter(Boolean):[],IU0=(J)=>AU0(J.replace(/["|']|\]/g,"").split(/\.|\[/)),E8=(J,Z,Q)=>{if(!Z||!XZ(J))return Q;let U=(Ym(Z)?[Z]:IU0(Z)).reduce((K,X)=>d5(K)?K:K[X],J);return _4(U)||U===J?_4(J[Z])?Q:J[Z]:U},xK=(J)=>typeof J==="boolean",Q7=(J,Z,Q)=>{let U=-1,K=Ym(Z)?[Z]:IU0(Z),X=K.length,Y=X-1;while(++U<X){let z=K[U],G=Q;if(U!==Y){let W=J[z];G=XZ(W)||Array.isArray(W)?W:!isNaN(+K[U+1])?[]:{}}if(z==="__proto__"||z==="constructor"||z==="prototype")return;J[z]=G,J=J[z]}},Um={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},YY={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},hW={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},RU0=gJ.default.createContext(null);RU0.displayName="HookFormContext";var jV=()=>gJ.default.useContext(RU0),Ca0=(J)=>{let{children:Z,...Q}=J;return gJ.default.createElement(RU0.Provider,{value:Q},Z)},Sa0=(J,Z,Q,U=!0)=>{let K={defaultValues:Z._defaultValues};for(let X in J)Object.defineProperty(K,X,{get:()=>{let Y=X;if(Z._proxyFormState[Y]!==YY.all)Z._proxyFormState[Y]=!U||YY.all;return Q&&(Q[Y]=!0),J[Y]}});return K},NU0=typeof window!=="undefined"?gJ.default.useLayoutEffect:gJ.default.useEffect;function ja6(J){let Z=jV(),{control:Q=Z.control,disabled:U,name:K,exact:X}=J||{},[Y,z]=gJ.default.useState(Q._formState),G=gJ.default.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return NU0(()=>Q._subscribe({name:K,formState:G.current,exact:X,callback:(W)=>{!U&&z({...Q._formState,...W})}}),[K,U,X]),gJ.default.useEffect(()=>{G.current.isValid&&Q._setValid(!0)},[Q]),gJ.default.useMemo(()=>Sa0(Y,Q,G.current,!1),[Y,Q])}var hK=(J)=>typeof J==="string",BU0=(J,Z,Q,U,K)=>{if(hK(J))return U&&Z.watch.add(J),E8(Q,J,K);if(Array.isArray(J))return J.map((X)=>(U&&Z.watch.add(X),E8(Q,X)));return U&&(Z.watchAll=!0),Q},MU0=(J)=>d5(J)||!Pa0(J);function zY(J,Z,Q=new WeakSet){if(MU0(J)||MU0(Z))return Object.is(J,Z);if(NM(J)&&NM(Z))return J.getTime()===Z.getTime();let U=Object.keys(J),K=Object.keys(Z);if(U.length!==K.length)return!1;if(Q.has(J)||Q.has(Z))return!0;Q.add(J),Q.add(Z);for(let X of U){let Y=J[X];if(!K.includes(X))return!1;if(X!=="ref"){let z=Z[X];if(NM(Y)&&NM(z)||XZ(Y)&&XZ(z)||Array.isArray(Y)&&Array.isArray(z)?!zY(Y,z,Q):!Object.is(Y,z))return!1}}return!0}function Pa6(J){let Z=jV(),{control:Q=Z.control,name:U,defaultValue:K,disabled:X,exact:Y,compute:z}=J||{},G=gJ.default.useRef(K),W=gJ.default.useRef(z),H=gJ.default.useRef(void 0),q=gJ.default.useRef(Q),F=gJ.default.useRef(U);W.current=z;let[M,L]=gJ.default.useState(()=>{let V=Q._getWatch(U,G.current);return W.current?W.current(V):V}),A=gJ.default.useCallback((V)=>{let j=BU0(U,Q._names,V||Q._formValues,!1,G.current);return W.current?W.current(j):j},[Q._formValues,Q._names,U]),I=gJ.default.useCallback((V)=>{if(!X){let j=BU0(U,Q._names,V||Q._formValues,!1,G.current);if(W.current){let T=W.current(j);if(!zY(T,H.current))L(T),H.current=T}else L(j)}},[Q._formValues,Q._names,X,U]);NU0(()=>{if(q.current!==Q||!zY(F.current,U))q.current=Q,F.current=U,I();return Q._subscribe({name:U,formState:{values:!0},exact:Y,callback:(V)=>{I(V.values)}})},[Q,Y,U,I]),gJ.default.useEffect(()=>Q._removeUnmounted());let R=q.current!==Q,N=F.current,E=gJ.default.useMemo(()=>{if(X)return null;let V=!R&&!zY(N,U);return R||V?A():null},[X,R,U,N,A]);return E!==null?E:M}function Va6(J){let Z=jV(),{name:Q,disabled:U,control:K=Z.control,shouldUnregister:X,defaultValue:Y,exact:z=!0}=J,G=Ta0(K._names.array,Q),W=gJ.default.useMemo(()=>E8(K._formValues,Q,E8(K._defaultValues,Q,Y)),[K,Q,Y]),H=Pa6({control:K,name:Q,defaultValue:W,exact:z}),q=ja6({control:K,name:Q,exact:z}),F=gJ.default.useRef(J),M=gJ.default.useRef(void 0),L=gJ.default.useRef(K.register(Q,{...J.rules,value:H,...xK(J.disabled)?{disabled:J.disabled}:{}}));F.current=J;let A=gJ.default.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!E8(q.errors,Q)},isDirty:{enumerable:!0,get:()=>!!E8(q.dirtyFields,Q)},isTouched:{enumerable:!0,get:()=>!!E8(q.touchedFields,Q)},isValidating:{enumerable:!0,get:()=>!!E8(q.validatingFields,Q)},error:{enumerable:!0,get:()=>E8(q.errors,Q)}}),[q,Q]),I=gJ.default.useCallback((V)=>L.current.onChange({target:{value:Va0(V),name:Q},type:Um.CHANGE}),[Q]),R=gJ.default.useCallback(()=>L.current.onBlur({target:{value:E8(K._formValues,Q),name:Q},type:Um.BLUR}),[Q,K._formValues]),N=gJ.default.useCallback((V)=>{let j=E8(K._fields,Q);if(j&&V)j._f.ref={focus:()=>V.focus&&V.focus(),select:()=>V.select&&V.select(),setCustomValidity:(T)=>V.setCustomValidity(T),reportValidity:()=>V.reportValidity()}},[K._fields,Q]),E=gJ.default.useMemo(()=>({name:Q,value:H,...xK(U)||q.disabled?{disabled:q.disabled||U}:{},onChange:I,onBlur:R,ref:N}),[Q,U,q.disabled,I,R,N,H]);return gJ.default.useEffect(()=>{let V=K._options.shouldUnregister||X,j=M.current;if(j&&j!==Q&&!G)K.unregister(j);K.register(Q,{...F.current.rules,...xK(F.current.disabled)?{disabled:F.current.disabled}:{}});let T=(C,$)=>{let b=E8(K._fields,C);if(b&&b._f)b._f.mount=$};if(T(Q,!0),V){let C=fZ(E8(K._options.defaultValues,Q,F.current.defaultValue));if(Q7(K._defaultValues,Q,C),_4(E8(K._formValues,Q)))Q7(K._formValues,Q,C)}return!G&&K.register(Q),M.current=Q,()=>{(G?V&&!K._state.action:V)?K.unregister(Q):T(Q,!1)}},[Q,K,G,X]),gJ.default.useEffect(()=>{K._setDisabledField({disabled:U,name:Q})},[U,Q,K]),gJ.default.useMemo(()=>({field:E,formState:q,fieldState:A}),[E,q,A])}var $a0=(J)=>J.render(Va6(J));var zm=(J,Z,Q,U,K)=>Z?{...Q[J],types:{...Q[J]&&Q[J].types?Q[J].types:{},[U]:K||!0}}:{},DV=(J)=>Array.isArray(J)?J:[J],Ma0=()=>{let J=[];return{get observers(){return J},next:(K)=>{for(let X of J)X.next&&X.next(K)},subscribe:(K)=>{return J.push(K),{unsubscribe:()=>{J=J.filter((X)=>X!==K)}}},unsubscribe:()=>{J=[]}}};function va0(J,Z){let Q={};for(let U in J)if(J.hasOwnProperty(U)){let K=J[U],X=Z[U];if(K&&XZ(K)&&X){let Y=va0(K,X);if(XZ(Y))Q[U]=Y}else if(J[U])Q[U]=X}return Q}var iU=(J)=>XZ(J)&&!Object.keys(J).length,DU0=(J)=>J.type==="file",GY=(J)=>typeof J==="function",Km=(J)=>{if(!LU0)return!1;let Z=J?J.ownerDocument:0;return J instanceof(Z&&Z.defaultView?Z.defaultView.HTMLElement:HTMLElement)},ka0=(J)=>J.type==="select-multiple",wU0=(J)=>J.type==="radio",Ta6=(J)=>wU0(J)||EV(J),FU0=(J)=>Km(J)&&J.isConnected;function Ca6(J,Z){let Q=Z.slice(0,-1).length,U=0;while(U<Q)J=_4(J)?U++:J[Z[U++]];return J}function Sa6(J){for(let Z in J)if(J.hasOwnProperty(Z)&&!_4(J[Z]))return!1;return!0}function KZ(J,Z){let Q=Array.isArray(Z)?Z:Ym(Z)?[Z]:IU0(Z),U=Q.length===1?J:Ca6(J,Q),K=Q.length-1,X=Q[K];if(U)delete U[X];if(K!==0&&(XZ(U)&&iU(U)||Array.isArray(U)&&Sa6(U)))KZ(J,Q.slice(0,-1));return J}var $a6=(J)=>{for(let Z in J)if(GY(J[Z]))return!0;return!1};function fa0(J){return Array.isArray(J)||XZ(J)&&!$a6(J)}function OU0(J,Z={}){for(let Q in J){let U=J[Q];if(fa0(U))Z[Q]=Array.isArray(U)?[]:{},OU0(U,Z[Q]);else if(!_4(U))Z[Q]=!0}return Z}function KR(J,Z,Q){if(!Q)Q=OU0(Z);for(let U in J){let K=J[U];if(fa0(K))if(_4(Z)||MU0(Q[U]))Q[U]=OU0(K,Array.isArray(K)?[]:{});else KR(K,d5(Z)?{}:Z[U],Q[U]);else{let X=Z[U];Q[U]=!zY(K,X)}}return Q}var Oa0={value:!1,isValid:!1},La0={value:!0,isValid:!0},_a0=(J)=>{if(Array.isArray(J)){if(J.length>1){let Z=J.filter((Q)=>Q&&Q.checked&&!Q.disabled).map((Q)=>Q.value);return{value:Z,isValid:!!Z.length}}return J[0].checked&&!J[0].disabled?J[0].attributes&&!_4(J[0].attributes.value)?_4(J[0].value)||J[0].value===""?La0:{value:J[0].value,isValid:!0}:La0:Oa0}return Oa0},ba0=(J,{valueAsNumber:Z,valueAsDate:Q,setValueAs:U})=>_4(J)?J:Z?J===""?NaN:J?+J:J:Q&&hK(J)?new Date(J):U?U(J):J,Aa0={isValid:!1,value:null},xa0=(J)=>Array.isArray(J)?J.reduce((Z,Q)=>Q&&Q.checked&&!Q.disabled?{isValid:!0,value:Q.value}:Z,Aa0):Aa0;function Ia0(J){let Z=J.ref;if(DU0(Z))return Z.files;if(wU0(Z))return xa0(J.refs).value;if(ka0(Z))return[...Z.selectedOptions].map(({value:Q})=>Q);if(EV(Z))return _a0(J.refs).value;return ba0(_4(Z.value)?J.ref.value:Z.value,J)}var va6=(J,Z,Q,U)=>{let K={};for(let X of J){let Y=E8(Z,X);Y&&Q7(K,X,Y._f)}return{criteriaMode:Q,names:[...J],fields:K,shouldUseNativeValidation:U}},Xm=(J)=>J instanceof RegExp,NV=(J)=>_4(J)?J:Xm(J)?J.source:XZ(J)?Xm(J.value)?J.value.source:J.value:J,Ra0=(J)=>({isOnSubmit:!J||J===YY.onSubmit,isOnBlur:J===YY.onBlur,isOnChange:J===YY.onChange,isOnAll:J===YY.all,isOnTouch:J===YY.onTouched}),Na0="AsyncFunction",ka6=(J)=>!!J&&!!J.validate&&!!(GY(J.validate)&&J.validate.constructor.name===Na0||XZ(J.validate)&&Object.values(J.validate).find((Z)=>Z.constructor.name===Na0)),fa6=(J)=>J.mount&&(J.required||J.min||J.max||J.maxLength||J.minLength||J.pattern||J.validate),Da0=(J,Z,Q)=>!Q&&(Z.watchAll||Z.watch.has(J)||[...Z.watch].some((U)=>J.startsWith(U)&&/^\.\w+/.test(J.slice(U.length)))),wV=(J,Z,Q,U)=>{for(let K of Q||Object.keys(J)){let X=E8(J,K);if(X){let{_f:Y,...z}=X;if(Y){if(Y.refs&&Y.refs[0]&&Z(Y.refs[0],K)&&!U)return!0;else if(Y.ref&&Z(Y.ref,Y.name)&&!U)return!0;else if(wV(z,Z))break}else if(XZ(z)){if(wV(z,Z))break}}}return};function wa0(J,Z,Q){let U=E8(J,Q);if(U||Ym(Q))return{error:U,name:Q};let K=Q.split(".");while(K.length){let X=K.join("."),Y=E8(Z,X),z=E8(J,X);if(Y&&!Array.isArray(Y)&&Q!==X)return{name:Q};if(z&&z.type)return{name:X,error:z};if(z&&z.root&&z.root.type)return{name:`${X}.root`,error:z.root};K.pop()}return{name:Q}}var _a6=(J,Z,Q,U)=>{Q(J);let{name:K,...X}=J;return iU(X)||Object.keys(X).length>=Object.keys(Z).length||Object.keys(X).find((Y)=>Z[Y]===(!U||YY.all))},ba6=(J,Z,Q)=>!J||!Z||J===Z||DV(J).some((U)=>U&&(Q?U===Z:U.startsWith(Z)||Z.startsWith(U))),xa6=(J,Z,Q,U,K)=>{if(K.isOnAll)return!1;else if(!Q&&K.isOnTouch)return!(Z||J);else if(Q?U.isOnBlur:K.isOnBlur)return!J;else if(Q?U.isOnChange:K.isOnChange)return J;return!0},ha6=(J,Z)=>!AU0(E8(J,Z)).length&&KZ(J,Z),ya6=(J,Z,Q)=>{let U=DV(E8(J,Q));return Q7(U,"root",Z[Q]),Q7(J,Q,U),J};function Ea0(J,Z,Q="validate"){if(hK(J)||Array.isArray(J)&&J.every(hK)||xK(J)&&!J)return{type:Q,message:hK(J)?J:"",ref:Z}}var UR=(J)=>XZ(J)&&!Xm(J)?J:{value:J,message:""},ja0=async(J,Z,Q,U,K,X)=>{let{ref:Y,refs:z,required:G,maxLength:W,minLength:H,min:q,max:F,pattern:M,validate:L,name:A,valueAsNumber:I,mount:R}=J._f,N=E8(Q,A);if(!R||Z.has(A))return{};let E=z?z[0]:Y,V=(S)=>{if(K&&E.reportValidity)E.setCustomValidity(xK(S)?"":S||""),E.reportValidity()},j={},T=wU0(Y),C=EV(Y),$=T||C,b=(I||DU0(Y))&&_4(Y.value)&&_4(N)||Km(Y)&&Y.value===""||N===""||Array.isArray(N)&&!N.length,h=zm.bind(null,A,U,j),_=(S,v,f,x=hW.maxLength,y=hW.minLength)=>{let m=S?v:f;j[A]={type:S?x:y,message:m,ref:Y,...h(S?x:y,m)}};if(X?!Array.isArray(N)||!N.length:G&&(!$&&(b||d5(N))||xK(N)&&!N||C&&!_a0(z).isValid||T&&!xa0(z).isValid)){let{value:S,message:v}=hK(G)?{value:!!G,message:G}:UR(G);if(S){if(j[A]={type:hW.required,message:v,ref:E,...h(hW.required,v)},!U)return V(v),j}}if(!b&&(!d5(q)||!d5(F))){let S,v,f=UR(F),x=UR(q);if(!d5(N)&&!isNaN(N)){let y=Y.valueAsNumber||(N?+N:N);if(!d5(f.value))S=y>f.value;if(!d5(x.value))v=y<x.value}else{let y=Y.valueAsDate||new Date(N),m=(i)=>new Date(new Date().toDateString()+" "+i),g=Y.type=="time",p=Y.type=="week";if(hK(f.value)&&N)S=g?m(N)>m(f.value):p?N>f.value:y>new Date(f.value);if(hK(x.value)&&N)v=g?m(N)<m(x.value):p?N<x.value:y<new Date(x.value)}if(S||v){if(_(!!S,f.message,x.message,hW.max,hW.min),!U)return V(j[A].message),j}}if((W||H)&&!b&&(hK(N)||X&&Array.isArray(N))){let S=UR(W),v=UR(H),f=!d5(S.value)&&N.length>+S.value,x=!d5(v.value)&&N.length<+v.value;if(f||x){if(_(f,S.message,v.message),!U)return V(j[A].message),j}}if(M&&!b&&hK(N)){let{value:S,message:v}=UR(M);if(Xm(S)&&!N.match(S)){if(j[A]={type:hW.pattern,message:v,ref:Y,...h(hW.pattern,v)},!U)return V(v),j}}if(L){if(GY(L)){let S=await L(N,Q),v=Ea0(S,E);if(v){if(j[A]={...v,...h(hW.validate,v.message)},!U)return V(v.message),j}}else if(XZ(L)){let S={};for(let v in L){if(!iU(S)&&!U)break;let f=Ea0(await L[v](N,Q),E,v);if(f){if(S={...f,...h(v,f.message)},V(f.message),U)j[A]=S}}if(!iU(S)){if(j[A]={ref:E,...S},!U)return j}}}return V(!0),j},ga6={mode:YY.onSubmit,reValidateMode:YY.onChange,shouldFocusError:!0};function ma6(J={}){let Z={...ga6,...J},Q={submitCount:0,isDirty:!1,isReady:!1,isLoading:GY(Z.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:Z.errors||{},disabled:Z.disabled||!1},U={},K=XZ(Z.defaultValues)||XZ(Z.values)?fZ(Z.defaultValues||Z.values)||{}:{},X=Z.shouldUnregister?{}:fZ(K),Y={action:!1,mount:!1,watch:!1},z={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},G,W=0,H={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},q={...H},F={array:Ma0(),state:Ma0()},M=Z.criteriaMode===YY.all,L=(t)=>(N0)=>{clearTimeout(W),W=setTimeout(t,N0)},A=async(t)=>{if(!Z.disabled&&(H.isValid||q.isValid||t)){let N0=Z.resolver?iU((await C()).errors):await b(U,!0);if(N0!==Q.isValid)F.state.next({isValid:N0})}},I=(t,N0)=>{if(!Z.disabled&&(H.isValidating||H.validatingFields||q.isValidating||q.validatingFields))(t||Array.from(z.mount)).forEach((f0)=>{if(f0)N0?Q7(Q.validatingFields,f0,N0):KZ(Q.validatingFields,f0)}),F.state.next({validatingFields:Q.validatingFields,isValidating:!iU(Q.validatingFields)})},R=(t,N0=[],f0,l0,k0=!0,_0=!0)=>{if(l0&&f0&&!Z.disabled){if(Y.action=!0,_0&&Array.isArray(E8(U,t))){let g0=f0(E8(U,t),l0.argA,l0.argB);k0&&Q7(U,t,g0)}if(_0&&Array.isArray(E8(Q.errors,t))){let g0=f0(E8(Q.errors,t),l0.argA,l0.argB);k0&&Q7(Q.errors,t,g0),ha6(Q.errors,t)}if((H.touchedFields||q.touchedFields)&&_0&&Array.isArray(E8(Q.touchedFields,t))){let g0=f0(E8(Q.touchedFields,t),l0.argA,l0.argB);k0&&Q7(Q.touchedFields,t,g0)}if(H.dirtyFields||q.dirtyFields)Q.dirtyFields=KR(K,X);F.state.next({name:t,isDirty:_(t,N0),dirtyFields:Q.dirtyFields,errors:Q.errors,isValid:Q.isValid})}else Q7(X,t,N0)},N=(t,N0)=>{Q7(Q.errors,t,N0),F.state.next({errors:Q.errors})},E=(t)=>{Q.errors=t,F.state.next({errors:Q.errors,isValid:!1})},V=(t,N0,f0,l0)=>{let k0=E8(U,t);if(k0){let _0=E8(X,t,_4(f0)?E8(K,t):f0);_4(_0)||l0&&l0.defaultChecked||N0?Q7(X,t,N0?_0:Ia0(k0._f)):f(t,_0),Y.mount&&!Y.action&&A()}},j=(t,N0,f0,l0,k0)=>{let _0=!1,g0=!1,h0={name:t};if(!Z.disabled){if(!f0||l0){if(H.isDirty||q.isDirty)g0=Q.isDirty,Q.isDirty=h0.isDirty=_(),_0=g0!==h0.isDirty;let t0=zY(E8(K,t),N0);g0=!!E8(Q.dirtyFields,t),t0?KZ(Q.dirtyFields,t):Q7(Q.dirtyFields,t,!0),h0.dirtyFields=Q.dirtyFields,_0=_0||(H.dirtyFields||q.dirtyFields)&&g0!==!t0}if(f0){let t0=E8(Q.touchedFields,t);if(!t0)Q7(Q.touchedFields,t,f0),h0.touchedFields=Q.touchedFields,_0=_0||(H.touchedFields||q.touchedFields)&&t0!==f0}_0&&k0&&F.state.next(h0)}return _0?h0:{}},T=(t,N0,f0,l0)=>{let k0=E8(Q.errors,t),_0=(H.isValid||q.isValid)&&xK(N0)&&Q.isValid!==N0;if(Z.delayError&&f0)G=L(()=>N(t,f0)),G(Z.delayError);else clearTimeout(W),G=null,f0?Q7(Q.errors,t,f0):KZ(Q.errors,t);if((f0?!zY(k0,f0):k0)||!iU(l0)||_0){let g0={...l0,..._0&&xK(N0)?{isValid:N0}:{},errors:Q.errors,name:t};Q={...Q,...g0},F.state.next(g0)}},C=async(t)=>{I(t,!0);let N0=await Z.resolver(X,Z.context,va6(t||z.mount,U,Z.criteriaMode,Z.shouldUseNativeValidation));return I(t),N0},$=async(t)=>{let{errors:N0}=await C(t);if(t)for(let f0 of t){let l0=E8(N0,f0);l0?Q7(Q.errors,f0,l0):KZ(Q.errors,f0)}else Q.errors=N0;return N0},b=async(t,N0,f0={valid:!0})=>{for(let l0 in t){let k0=t[l0];if(k0){let{_f:_0,...g0}=k0;if(_0){let h0=z.array.has(_0.name),t0=k0._f&&ka6(k0._f);if(t0&&H.validatingFields)I([_0.name],!0);let C0=await ja0(k0,z.disabled,X,M,Z.shouldUseNativeValidation&&!N0,h0);if(t0&&H.validatingFields)I([_0.name]);if(C0[_0.name]){if(f0.valid=!1,N0)break}!N0&&(E8(C0,_0.name)?h0?ya6(Q.errors,C0,_0.name):Q7(Q.errors,_0.name,C0[_0.name]):KZ(Q.errors,_0.name))}!iU(g0)&&await b(g0,N0,f0)}}return f0.valid},h=()=>{for(let t of z.unMount){let N0=E8(U,t);N0&&(N0._f.refs?N0._f.refs.every((f0)=>!FU0(f0)):!FU0(N0._f.ref))&&X0(t)}z.unMount=new Set},_=(t,N0)=>!Z.disabled&&(t&&N0&&Q7(X,t,N0),!zY(i(),K)),S=(t,N0,f0)=>BU0(t,z,{...Y.mount?X:_4(N0)?K:hK(t)?{[t]:N0}:N0},f0,N0),v=(t)=>AU0(E8(Y.mount?X:K,t,Z.shouldUnregister?E8(K,t,[]):[])),f=(t,N0,f0={})=>{let l0=E8(U,t),k0=N0;if(l0){let _0=l0._f;if(_0){if(!_0.disabled&&Q7(X,t,ba0(N0,_0)),k0=Km(_0.ref)&&d5(N0)?"":N0,ka0(_0.ref))[..._0.ref.options].forEach((g0)=>g0.selected=k0.includes(g0.value));else if(_0.refs)if(EV(_0.ref))_0.refs.forEach((g0)=>{if(!g0.defaultChecked||!g0.disabled)if(Array.isArray(k0))g0.checked=!!k0.find((h0)=>h0===g0.value);else g0.checked=k0===g0.value||!!k0});else _0.refs.forEach((g0)=>g0.checked=g0.value===k0);else if(DU0(_0.ref))_0.ref.value="";else if(_0.ref.value=k0,!_0.ref.type)F.state.next({name:t,values:fZ(X)})}}(f0.shouldDirty||f0.shouldTouch)&&j(t,k0,f0.shouldTouch,f0.shouldDirty,!0),f0.shouldValidate&&p(t)},x=(t,N0,f0)=>{for(let l0 in N0){if(!N0.hasOwnProperty(l0))return;let k0=N0[l0],_0=t+"."+l0,g0=E8(U,_0);(z.array.has(t)||XZ(k0)||g0&&!g0._f)&&!NM(k0)?x(_0,k0,f0):f(_0,k0,f0)}},y=(t,N0,f0={})=>{let l0=E8(U,t),k0=z.array.has(t),_0=fZ(N0);if(Q7(X,t,_0),k0){if(F.array.next({name:t,values:fZ(X)}),(H.isDirty||H.dirtyFields||q.isDirty||q.dirtyFields)&&f0.shouldDirty)F.state.next({name:t,dirtyFields:KR(K,X),isDirty:_(t,_0)})}else l0&&!l0._f&&!d5(_0)?x(t,_0,f0):f(t,_0,f0);Da0(t,z)&&F.state.next({...Q,name:t}),F.state.next({name:Y.mount?t:void 0,values:fZ(X)})},m=async(t)=>{Y.mount=!0;let N0=t.target,f0=N0.name,l0=!0,k0=E8(U,f0),_0=(t0)=>{l0=Number.isNaN(t0)||NM(t0)&&isNaN(t0.getTime())||zY(t0,E8(X,f0,t0))},g0=Ra0(Z.mode),h0=Ra0(Z.reValidateMode);if(k0){let t0,C0,y0=N0.type?Ia0(k0._f):Va0(t),o=t.type===Um.BLUR||t.type===Um.FOCUS_OUT,w0=!fa6(k0._f)&&!Z.resolver&&!E8(Q.errors,f0)&&!k0._f.deps||xa6(o,E8(Q.touchedFields,f0),Q.isSubmitted,h0,g0),d=Da0(f0,z,o);if(Q7(X,f0,y0),o){if(!N0||!N0.readOnly)k0._f.onBlur&&k0._f.onBlur(t),G&&G(0)}else if(k0._f.onChange)k0._f.onChange(t);let L0=j(f0,y0,o),I0=!iU(L0)||d;if(!o&&F.state.next({name:f0,type:t.type,values:fZ(X)}),w0){if(H.isValid||q.isValid){if(Z.mode==="onBlur"){if(o)A()}else if(!o)A()}return I0&&F.state.next({name:f0,...d?{}:L0})}if(!o&&d&&F.state.next({...Q}),Z.resolver){let{errors:T0}=await C([f0]);if(_0(y0),l0){let $0=wa0(Q.errors,U,f0),v0=wa0(T0,U,$0.name||f0);t0=v0.error,f0=v0.name,C0=iU(T0)}}else if(I([f0],!0),t0=(await ja0(k0,z.disabled,X,M,Z.shouldUseNativeValidation))[f0],I([f0]),_0(y0),l0){if(t0)C0=!1;else if(H.isValid||q.isValid)C0=await b(U,!0)}if(l0)k0._f.deps&&(!Array.isArray(k0._f.deps)||k0._f.deps.length>0)&&p(k0._f.deps),T(f0,C0,t0,L0)}},g=(t,N0)=>{if(E8(Q.errors,N0)&&t.focus)return t.focus(),1;return},p=async(t,N0={})=>{let f0,l0,k0=DV(t);if(Z.resolver){let _0=await $(_4(t)?t:k0);f0=iU(_0),l0=t?!k0.some((g0)=>E8(_0,g0)):f0}else if(t)l0=(await Promise.all(k0.map(async(_0)=>{let g0=E8(U,_0);return await b(g0&&g0._f?{[_0]:g0}:g0)}))).every(Boolean),!(!l0&&!Q.isValid)&&A();else l0=f0=await b(U);return F.state.next({...!hK(t)||(H.isValid||q.isValid)&&f0!==Q.isValid?{}:{name:t},...Z.resolver||!t?{isValid:f0}:{},errors:Q.errors}),N0.shouldFocus&&!l0&&wV(U,g,t?k0:z.mount),l0},i=(t,N0)=>{let f0={...Y.mount?X:K};if(N0)f0=va0(N0.dirtyFields?Q.dirtyFields:Q.touchedFields,f0);return _4(t)?f0:hK(t)?E8(f0,t):t.map((l0)=>E8(f0,l0))},l=(t,N0)=>({invalid:!!E8((N0||Q).errors,t),isDirty:!!E8((N0||Q).dirtyFields,t),error:E8((N0||Q).errors,t),isValidating:!!E8(Q.validatingFields,t),isTouched:!!E8((N0||Q).touchedFields,t)}),a=(t)=>{t&&DV(t).forEach((N0)=>KZ(Q.errors,N0)),F.state.next({errors:t?Q.errors:{}})},e=(t,N0,f0)=>{let l0=(E8(U,t,{_f:{}})._f||{}).ref,k0=E8(Q.errors,t)||{},{ref:_0,message:g0,type:h0,...t0}=k0;Q7(Q.errors,t,{...t0,...N0,ref:l0}),F.state.next({name:t,errors:Q.errors,isValid:!1}),f0&&f0.shouldFocus&&l0&&l0.focus&&l0.focus()},G0=(t,N0)=>GY(t)?F.state.subscribe({next:(f0)=>("values"in f0)&&t(S(void 0,N0),f0)}):S(t,N0,!0),U0=(t)=>F.state.subscribe({next:(N0)=>{if(ba6(t.name,N0.name,t.exact)&&_a6(N0,t.formState||H,m0,t.reRenderRoot))t.callback({values:{...X},...Q,...N0,defaultValues:K})}}).unsubscribe,O0=(t)=>{return Y.mount=!0,q={...q,...t.formState},U0({...t,formState:q})},X0=(t,N0={})=>{for(let f0 of t?DV(t):z.mount){if(z.mount.delete(f0),z.array.delete(f0),!N0.keepValue)KZ(U,f0),KZ(X,f0);!N0.keepError&&KZ(Q.errors,f0),!N0.keepDirty&&KZ(Q.dirtyFields,f0),!N0.keepTouched&&KZ(Q.touchedFields,f0),!N0.keepIsValidating&&KZ(Q.validatingFields,f0),!Z.shouldUnregister&&!N0.keepDefaultValue&&KZ(K,f0)}F.state.next({values:fZ(X)}),F.state.next({...Q,...!N0.keepDirty?{}:{isDirty:_()}}),!N0.keepIsValid&&A()},E0=({disabled:t,name:N0})=>{if(xK(t)&&Y.mount||!!t||z.disabled.has(N0))t?z.disabled.add(N0):z.disabled.delete(N0)},W0=(t,N0={})=>{let f0=E8(U,t),l0=xK(N0.disabled)||xK(Z.disabled);if(Q7(U,t,{...f0||{},_f:{...f0&&f0._f?f0._f:{ref:{name:t}},name:t,mount:!0,...N0}}),z.mount.add(t),f0)E0({disabled:xK(N0.disabled)?N0.disabled:Z.disabled,name:t});else V(t,!0,N0.value);return{...l0?{disabled:N0.disabled||Z.disabled}:{},...Z.progressive?{required:!!N0.required,min:NV(N0.min),max:NV(N0.max),minLength:NV(N0.minLength),maxLength:NV(N0.maxLength),pattern:NV(N0.pattern)}:{},name:t,onChange:m,onBlur:m,ref:(k0)=>{if(k0){W0(t,N0),f0=E8(U,t);let _0=_4(k0.value)?k0.querySelectorAll?k0.querySelectorAll("input,select,textarea")[0]||k0:k0:k0,g0=Ta6(_0),h0=f0._f.refs||[];if(g0?h0.find((t0)=>t0===_0):_0===f0._f.ref)return;Q7(U,t,{_f:{...f0._f,...g0?{refs:[...h0.filter(FU0),_0,...Array.isArray(E8(K,t))?[{}]:[]],ref:{type:_0.type,name:t}}:{ref:_0}}}),V(t,!1,void 0,_0)}else{if(f0=E8(U,t,{}),f0._f)f0._f.mount=!1;(Z.shouldUnregister||N0.shouldUnregister)&&!(Ta0(z.array,t)&&Y.action)&&z.unMount.add(t)}}}},q0=()=>Z.shouldFocusError&&wV(U,g,z.mount),z0=(t)=>{if(xK(t))F.state.next({disabled:t}),wV(U,(N0,f0)=>{let l0=E8(U,f0);if(l0){if(N0.disabled=l0._f.disabled||t,Array.isArray(l0._f.refs))l0._f.refs.forEach((k0)=>{k0.disabled=l0._f.disabled||t})}},0,!1)},K0=(t,N0)=>async(f0)=>{let l0=void 0;if(f0)f0.preventDefault&&f0.preventDefault(),f0.persist&&f0.persist();let k0=fZ(X);if(F.state.next({isSubmitting:!0}),Z.resolver){let{errors:_0,values:g0}=await C();Q.errors=_0,k0=fZ(g0)}else await b(U);if(z.disabled.size)for(let _0 of z.disabled)KZ(k0,_0);if(KZ(Q.errors,"root"),iU(Q.errors)){F.state.next({errors:{}});try{await t(k0,f0)}catch(_0){l0=_0}}else{if(N0)await N0({...Q.errors},f0);q0(),setTimeout(q0)}if(F.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:iU(Q.errors)&&!l0,submitCount:Q.submitCount+1,errors:Q.errors}),l0)throw l0},R0=(t,N0={})=>{if(E8(U,t)){if(_4(N0.defaultValue))y(t,fZ(E8(K,t)));else y(t,N0.defaultValue),Q7(K,t,fZ(N0.defaultValue));if(!N0.keepTouched)KZ(Q.touchedFields,t);if(!N0.keepDirty)KZ(Q.dirtyFields,t),Q.isDirty=N0.defaultValue?_(t,fZ(E8(K,t))):_();if(!N0.keepError)KZ(Q.errors,t),H.isValid&&A();F.state.next({...Q})}},Y0=(t,N0={})=>{let f0=t?fZ(t):K,l0=fZ(f0),k0=iU(t),_0=k0?K:l0;if(!N0.keepDefaultValues)K=f0;if(!N0.keepValues){if(N0.keepDirtyValues){let g0=new Set([...z.mount,...Object.keys(KR(K,X))]);for(let h0 of Array.from(g0))E8(Q.dirtyFields,h0)?Q7(_0,h0,E8(X,h0)):y(h0,E8(_0,h0))}else{if(LU0&&_4(t))for(let g0 of z.mount){let h0=E8(U,g0);if(h0&&h0._f){let t0=Array.isArray(h0._f.refs)?h0._f.refs[0]:h0._f.ref;if(Km(t0)){let C0=t0.closest("form");if(C0){C0.reset();break}}}}if(N0.keepFieldsRef)for(let g0 of z.mount)y(g0,E8(_0,g0));else U={}}X=Z.shouldUnregister?N0.keepDefaultValues?fZ(K):{}:fZ(_0),F.array.next({values:{..._0}}),F.state.next({values:{..._0}})}z={mount:N0.keepDirtyValues?z.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},Y.mount=!H.isValid||!!N0.keepIsValid||!!N0.keepDirtyValues||!Z.shouldUnregister&&!iU(_0),Y.watch=!!Z.shouldUnregister,F.state.next({submitCount:N0.keepSubmitCount?Q.submitCount:0,isDirty:k0?!1:N0.keepDirty?Q.isDirty:!!(N0.keepDefaultValues&&!zY(t,K)),isSubmitted:N0.keepIsSubmitted?Q.isSubmitted:!1,dirtyFields:k0?{}:N0.keepDirtyValues?N0.keepDefaultValues&&X?KR(K,X):Q.dirtyFields:N0.keepDefaultValues&&t?KR(K,t):N0.keepDirty?Q.dirtyFields:{},touchedFields:N0.keepTouched?Q.touchedFields:{},errors:N0.keepErrors?Q.errors:{},isSubmitSuccessful:N0.keepIsSubmitSuccessful?Q.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:K})},P0=(t,N0)=>Y0(GY(t)?t(X):t,N0),F0=(t,N0={})=>{let f0=E8(U,t),l0=f0&&f0._f;if(l0){let k0=l0.refs?l0.refs[0]:l0.ref;if(k0.focus)k0.focus(),N0.shouldSelect&&GY(k0.select)&&k0.select()}},m0=(t)=>{Q={...Q,...t}},z6={control:{register:W0,unregister:X0,getFieldState:l,handleSubmit:K0,setError:e,_subscribe:U0,_runSchema:C,_focusError:q0,_getWatch:S,_getDirty:_,_setValid:A,_setFieldArray:R,_setDisabledField:E0,_setErrors:E,_getFieldArray:v,_reset:Y0,_resetDefaultValues:()=>GY(Z.defaultValues)&&Z.defaultValues().then((t)=>{P0(t,Z.resetOptions),F.state.next({isLoading:!1})}),_removeUnmounted:h,_disableForm:z0,_subjects:F,_proxyFormState:H,get _fields(){return U},get _formValues(){return X},get _state(){return Y},set _state(t){Y=t},get _defaultValues(){return K},get _names(){return z},set _names(t){z=t},get _formState(){return Q},get _options(){return Z},set _options(t){Z={...Z,...t}}},subscribe:O0,trigger:p,register:W0,handleSubmit:K0,watch:G0,setValue:y,getValues:i,reset:P0,resetField:R0,clearErrors:a,unregister:X0,setError:e,setFocus:F0,getFieldState:l};return{...z6,formControl:z6}}function ha0(J={}){let Z=gJ.default.useRef(void 0),Q=gJ.default.useRef(void 0),[U,K]=gJ.default.useState({isDirty:!1,isValidating:!1,isLoading:GY(J.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:J.errors||{},disabled:J.disabled||!1,isReady:!1,defaultValues:GY(J.defaultValues)?void 0:J.defaultValues});if(!Z.current)if(J.formControl){if(Z.current={...J.formControl,formState:U},J.defaultValues&&!GY(J.defaultValues))J.formControl.reset(J.defaultValues,J.resetOptions)}else{let{formControl:Y,...z}=ma6(J);Z.current={...z,formState:U}}let X=Z.current.control;return X._options=J,NU0(()=>{let Y=X._subscribe({formState:X._proxyFormState,callback:()=>K({...X._formState}),reRenderRoot:!0});return K((z)=>({...z,isReady:!0})),X._formState.isReady=!0,Y},[X]),gJ.default.useEffect(()=>X._disableForm(J.disabled),[X,J.disabled]),gJ.default.useEffect(()=>{if(J.mode)X._options.mode=J.mode;if(J.reValidateMode)X._options.reValidateMode=J.reValidateMode},[X,J.mode,J.reValidateMode]),gJ.default.useEffect(()=>{if(J.errors)X._setErrors(J.errors),X._focusError()},[X,J.errors]),gJ.default.useEffect(()=>{J.shouldUnregister&&X._subjects.state.next({values:X._getWatch()})},[X,J.shouldUnregister]),gJ.default.useEffect(()=>{if(X._proxyFormState.isDirty){let Y=X._getDirty();if(Y!==U.isDirty)X._subjects.state.next({isDirty:Y})}},[X,U.isDirty]),gJ.default.useEffect(()=>{var Y;if(J.values&&!zY(J.values,Q.current)){if(X._reset(J.values,{keepFieldsRef:!0,...X._options.resetOptions}),!((Y=X._options.resetOptions)===null||Y===void 0?void 0:Y.keepIsValid))X._setValid();Q.current=J.values,K((z)=>({...z}))}else X._resetDefaultValues()},[X,J.values]),gJ.default.useEffect(()=>{if(!X._state.mount)X._setValid(),X._state.mount=!0;if(X._state.watch)X._state.watch=!1,X._subjects.state.next({...X._formState});X._removeUnmounted()}),Z.current.formState=Sa0(U,X),Z.current}var uW={};ZJ(uW,{xid:()=>ke6,void:()=>U08,uuidv7:()=>je6,uuidv6:()=>Ee6,uuidv4:()=>we6,uuid:()=>De6,util:()=>W8,url:()=>Pe6,uppercase:()=>aV,unknown:()=>RR,union:()=>GY0,undefined:()=>Z08,ulid:()=>ve6,uint64:()=>ee6,uint32:()=>ae6,tuple:()=>bo0,trim:()=>QT,treeifyError:()=>_U0,transform:()=>qY0,toUpperCase:()=>KT,toLowerCase:()=>UT,toJSONSchema:()=>E10,templateLiteral:()=>N08,symbol:()=>J08,superRefine:()=>Yt0,success:()=>A08,stringbool:()=>C08,stringFormat:()=>ce6,string:()=>m10,strictObject:()=>z08,startsWith:()=>tV,slugify:()=>XT,size:()=>rV,setErrorMap:()=>k08,set:()=>F08,safeParseAsync:()=>v10,safeParse:()=>$10,safeEncodeAsync:()=>y10,safeEncode:()=>x10,safeDecodeAsync:()=>g10,safeDecode:()=>h10,registry:()=>vm,regexes:()=>sX,regex:()=>nV,refine:()=>Xt0,record:()=>xo0,readonly:()=>eo0,property:()=>M10,promise:()=>D08,prettifyError:()=>bU0,preprocess:()=>$08,prefault:()=>io0,positive:()=>H10,pipe:()=>zu,partialRecord:()=>H08,parseAsync:()=>S10,parse:()=>C10,overwrite:()=>lz,optional:()=>Xu,object:()=>Y08,number:()=>No0,nullish:()=>L08,nullable:()=>Yu,null:()=>Po0,normalize:()=>ZT,nonpositive:()=>F10,nonoptional:()=>ro0,nonnegative:()=>B10,never:()=>YY0,negative:()=>q10,nativeEnum:()=>B08,nanoid:()=>Ce6,nan:()=>I08,multipleOf:()=>VM,minSize:()=>TM,minLength:()=>C2,mime:()=>JT,meta:()=>V08,maxSize:()=>OR,maxLength:()=>LR,map:()=>q08,mac:()=>be6,lte:()=>aX,lt:()=>yW,lowercase:()=>sV,looseObject:()=>G08,locales:()=>cV,literal:()=>M08,length:()=>AR,lazy:()=>Qt0,ksuid:()=>fe6,keyof:()=>X08,jwt:()=>pe6,json:()=>S08,iso:()=>Uu,ipv6:()=>xe6,ipv4:()=>_e6,intersection:()=>fo0,int64:()=>te6,int32:()=>se6,int:()=>u10,instanceof:()=>T08,includes:()=>oV,httpUrl:()=>Ve6,hostname:()=>le6,hex:()=>de6,hash:()=>ie6,guid:()=>Ne6,gte:()=>r5,gt:()=>gW,globalRegistry:()=>nU,getErrorMap:()=>f08,function:()=>w08,formatError:()=>fV,float64:()=>ne6,float32:()=>re6,flattenError:()=>kV,file:()=>O08,enum:()=>HY0,endsWith:()=>eV,encodeAsync:()=>_10,encode:()=>k10,emoji:()=>Te6,email:()=>Re6,e164:()=>ue6,discriminatedUnion:()=>W08,describe:()=>P08,decodeAsync:()=>b10,decode:()=>f10,date:()=>K08,custom:()=>j08,cuid2:()=>$e6,cuid:()=>Se6,core:()=>dz,config:()=>YZ,coerce:()=>AY0,codec:()=>R08,clone:()=>rU,cidrv6:()=>ye6,cidrv4:()=>he6,check:()=>E08,catch:()=>ao0,boolean:()=>Do0,bigint:()=>oe6,base64url:()=>me6,base64:()=>ge6,array:()=>Hu,any:()=>Q08,_function:()=>w08,_default:()=>lo0,_ZodString:()=>p10,ZodXID:()=>s10,ZodVoid:()=>So0,ZodUnknown:()=>To0,ZodUnion:()=>zY0,ZodUndefined:()=>Eo0,ZodUUID:()=>mW,ZodURL:()=>Gu,ZodULID:()=>n10,ZodType:()=>pJ,ZodTuple:()=>_o0,ZodTransform:()=>uo0,ZodTemplateLiteral:()=>Jt0,ZodSymbol:()=>wo0,ZodSuccess:()=>no0,ZodStringFormat:()=>T7,ZodString:()=>zT,ZodSet:()=>yo0,ZodRecord:()=>WY0,ZodRealError:()=>n5,ZodReadonly:()=>to0,ZodPromise:()=>Ut0,ZodPrefault:()=>do0,ZodPipe:()=>MY0,ZodOptional:()=>FY0,ZodObject:()=>qu,ZodNumberFormat:()=>NR,ZodNumber:()=>WT,ZodNullable:()=>po0,ZodNull:()=>jo0,ZodNonOptional:()=>BY0,ZodNever:()=>Co0,ZodNanoID:()=>d10,ZodNaN:()=>oo0,ZodMap:()=>ho0,ZodMAC:()=>Ro0,ZodLiteral:()=>go0,ZodLazy:()=>Zt0,ZodKSUID:()=>a10,ZodJWT:()=>KY0,ZodIssueCode:()=>v08,ZodIntersection:()=>ko0,ZodISOTime:()=>Zu,ZodISODuration:()=>Qu,ZodISODateTime:()=>em,ZodISODate:()=>Ju,ZodIPv6:()=>t10,ZodIPv4:()=>o10,ZodGUID:()=>Ku,ZodFunction:()=>Kt0,ZodFirstPartyTypeKind:()=>LY0,ZodFile:()=>mo0,ZodError:()=>Ae6,ZodEnum:()=>YT,ZodEmoji:()=>l10,ZodEmail:()=>c10,ZodE164:()=>UY0,ZodDiscriminatedUnion:()=>vo0,ZodDefault:()=>co0,ZodDate:()=>Wu,ZodCustomStringFormat:()=>GT,ZodCustom:()=>Fu,ZodCodec:()=>OY0,ZodCatch:()=>so0,ZodCUID2:()=>r10,ZodCUID:()=>i10,ZodCIDRv6:()=>JY0,ZodCIDRv4:()=>e10,ZodBoolean:()=>HT,ZodBigIntFormat:()=>XY0,ZodBigInt:()=>qT,ZodBase64URL:()=>QY0,ZodBase64:()=>ZY0,ZodArray:()=>$o0,ZodAny:()=>Vo0,TimePrecision:()=>xX0,NEVER:()=>EU0,$output:()=>vX0,$input:()=>kX0,$brand:()=>jU0});var dz={};ZJ(dz,{version:()=>v50,util:()=>W8,treeifyError:()=>_U0,toJSONSchema:()=>E10,toDotPath:()=>ca0,safeParseAsync:()=>hU0,safeParse:()=>xU0,safeEncodeAsync:()=>Ro6,safeEncode:()=>Ao6,safeDecodeAsync:()=>No6,safeDecode:()=>Io6,registry:()=>vm,regexes:()=>sX,prettifyError:()=>bU0,parseAsync:()=>qR,parse:()=>WR,meta:()=>D10,locales:()=>cV,isValidJWT:()=>zo0,isValidBase64URL:()=>Yo0,isValidBase64:()=>e50,globalRegistry:()=>nU,globalConfig:()=>PV,formatError:()=>fV,flattenError:()=>kV,encodeAsync:()=>Oo6,encode:()=>Bo6,describe:()=>N10,decodeAsync:()=>Lo6,decode:()=>Mo6,config:()=>YZ,clone:()=>rU,_xid:()=>pm,_void:()=>Y10,_uuidv7:()=>xm,_uuidv6:()=>bm,_uuidv4:()=>_m,_uuid:()=>fm,_url:()=>iV,_uppercase:()=>aV,_unknown:()=>K10,_union:()=>nt6,_undefined:()=>Z10,_ulid:()=>um,_uint64:()=>eX0,_uint32:()=>rX0,_tuple:()=>ot6,_trim:()=>QT,_transform:()=>Ke6,_toUpperCase:()=>KT,_toLowerCase:()=>UT,_templateLiteral:()=>Be6,_symbol:()=>J10,_superRefine:()=>R10,_success:()=>We6,_stringbool:()=>w10,_stringFormat:()=>IR,_string:()=>fX0,_startsWith:()=>tV,_slugify:()=>XT,_size:()=>rV,_set:()=>Je6,_safeParseAsync:()=>BR,_safeParse:()=>FR,_safeEncodeAsync:()=>Lm,_safeEncode:()=>Mm,_safeDecodeAsync:()=>Am,_safeDecode:()=>Om,_regex:()=>nV,_refine:()=>I10,_record:()=>tt6,_readonly:()=>Fe6,_property:()=>M10,_promise:()=>Oe6,_positive:()=>H10,_pipe:()=>qe6,_parseAsync:()=>HR,_parse:()=>GR,_overwrite:()=>lz,_optional:()=>Xe6,_number:()=>uX0,_nullable:()=>Ye6,_null:()=>Q10,_normalize:()=>ZT,_nonpositive:()=>F10,_nonoptional:()=>Ge6,_nonnegative:()=>B10,_never:()=>X10,_negative:()=>q10,_nativeEnum:()=>Qe6,_nanoid:()=>ym,_nan:()=>W10,_multipleOf:()=>VM,_minSize:()=>TM,_minLength:()=>C2,_min:()=>r5,_mime:()=>JT,_maxSize:()=>OR,_maxLength:()=>LR,_max:()=>aX,_map:()=>et6,_mac:()=>bX0,_lte:()=>aX,_lt:()=>yW,_lowercase:()=>sV,_literal:()=>Ue6,_length:()=>AR,_lazy:()=>Me6,_ksuid:()=>cm,_jwt:()=>om,_isoTime:()=>gX0,_isoDuration:()=>mX0,_isoDateTime:()=>hX0,_isoDate:()=>yX0,_ipv6:()=>dm,_ipv4:()=>lm,_intersection:()=>at6,_int64:()=>tX0,_int32:()=>iX0,_int:()=>cX0,_includes:()=>oV,_guid:()=>dV,_gte:()=>r5,_gt:()=>gW,_float64:()=>dX0,_float32:()=>lX0,_file:()=>L10,_enum:()=>Ze6,_endsWith:()=>eV,_encodeAsync:()=>Fm,_encode:()=>Hm,_emoji:()=>hm,_email:()=>km,_e164:()=>am,_discriminatedUnion:()=>st6,_default:()=>ze6,_decodeAsync:()=>Bm,_decode:()=>qm,_date:()=>z10,_custom:()=>A10,_cuid2:()=>mm,_cuid:()=>gm,_coercedString:()=>_X0,_coercedNumber:()=>pX0,_coercedDate:()=>G10,_coercedBoolean:()=>sX0,_coercedBigint:()=>oX0,_cidrv6:()=>rm,_cidrv4:()=>im,_check:()=>Oo0,_catch:()=>He6,_boolean:()=>nX0,_bigint:()=>aX0,_base64url:()=>sm,_base64:()=>nm,_array:()=>O10,_any:()=>U10,TimePrecision:()=>xX0,NEVER:()=>EU0,JSONSchemaGenerator:()=>tm,JSONSchema:()=>Lo0,Doc:()=>Dm,$output:()=>vX0,$input:()=>kX0,$constructor:()=>q6,$brand:()=>jU0,$ZodXID:()=>p50,$ZodVoid:()=>BK0,$ZodUnknown:()=>qK0,$ZodUnion:()=>Sm,$ZodUndefined:()=>GK0,$ZodUUID:()=>_50,$ZodURL:()=>x50,$ZodULID:()=>u50,$ZodType:()=>SJ,$ZodTuple:()=>$m,$ZodTransform:()=>PK0,$ZodTemplateLiteral:()=>xK0,$ZodSymbol:()=>zK0,$ZodSuccess:()=>vK0,$ZodStringFormat:()=>O7,$ZodString:()=>PM,$ZodSet:()=>DK0,$ZodRegistry:()=>lV,$ZodRecord:()=>RK0,$ZodRealError:()=>i5,$ZodReadonly:()=>bK0,$ZodPromise:()=>yK0,$ZodPrefault:()=>SK0,$ZodPipe:()=>_K0,$ZodOptional:()=>VK0,$ZodObjectJIT:()=>LK0,$ZodObject:()=>Ho0,$ZodNumberFormat:()=>XK0,$ZodNumber:()=>Tm,$ZodNullable:()=>TK0,$ZodNull:()=>WK0,$ZodNonOptional:()=>$K0,$ZodNever:()=>FK0,$ZodNanoID:()=>y50,$ZodNaN:()=>fK0,$ZodMap:()=>NK0,$ZodMAC:()=>a50,$ZodLiteral:()=>EK0,$ZodLazy:()=>gK0,$ZodKSUID:()=>c50,$ZodJWT:()=>UK0,$ZodIntersection:()=>IK0,$ZodISOTime:()=>i50,$ZodISODuration:()=>r50,$ZodISODateTime:()=>l50,$ZodISODate:()=>d50,$ZodIPv6:()=>s50,$ZodIPv4:()=>n50,$ZodGUID:()=>f50,$ZodFunction:()=>hK0,$ZodFile:()=>jK0,$ZodError:()=>EM,$ZodEnum:()=>wK0,$ZodEncodeError:()=>DM,$ZodEmoji:()=>h50,$ZodEmail:()=>b50,$ZodE164:()=>QK0,$ZodDiscriminatedUnion:()=>AK0,$ZodDefault:()=>CK0,$ZodDate:()=>MK0,$ZodCustomStringFormat:()=>KK0,$ZodCustom:()=>mK0,$ZodCodec:()=>hV,$ZodCheckUpperCase:()=>j50,$ZodCheckStringFormat:()=>MR,$ZodCheckStartsWith:()=>V50,$ZodCheckSizeEquals:()=>I50,$ZodCheckRegex:()=>w50,$ZodCheckProperty:()=>C50,$ZodCheckOverwrite:()=>$50,$ZodCheckNumberFormat:()=>M50,$ZodCheckMultipleOf:()=>B50,$ZodCheckMinSize:()=>A50,$ZodCheckMinLength:()=>N50,$ZodCheckMimeType:()=>S50,$ZodCheckMaxSize:()=>L50,$ZodCheckMaxLength:()=>R50,$ZodCheckLowerCase:()=>E50,$ZodCheckLessThan:()=>Rm,$ZodCheckLengthEquals:()=>D50,$ZodCheckIncludes:()=>P50,$ZodCheckGreaterThan:()=>Nm,$ZodCheckEndsWith:()=>T50,$ZodCheckBigIntFormat:()=>O50,$ZodCheck:()=>V7,$ZodCatch:()=>kK0,$ZodCUID2:()=>m50,$ZodCUID:()=>g50,$ZodCIDRv6:()=>t50,$ZodCIDRv4:()=>o50,$ZodBoolean:()=>xV,$ZodBigIntFormat:()=>YK0,$ZodBigInt:()=>Cm,$ZodBase64URL:()=>ZK0,$ZodBase64:()=>JK0,$ZodAsyncError:()=>cz,$ZodArray:()=>OK0,$ZodAny:()=>HK0});var EU0=Object.freeze({status:"aborted"});function q6(J,Z,Q){function U(z,G){if(!z._zod)Object.defineProperty(z,"_zod",{value:{def:G,constr:Y,traits:new Set},enumerable:!1});if(z._zod.traits.has(J))return;z._zod.traits.add(J),Z(z,G);let W=Y.prototype,H=Object.keys(W);for(let q=0;q<H.length;q++){let F=H[q];if(!(F in z))z[F]=W[F].bind(z)}}let K=Q?.Parent??Object;class X extends K{}Object.defineProperty(X,"name",{value:J});function Y(z){var G;let W=Q?.Parent?new X:this;U(W,z),(G=W._zod).deferred??(G.deferred=[]);for(let H of W._zod.deferred)H();return W}return Object.defineProperty(Y,"init",{value:U}),Object.defineProperty(Y,Symbol.hasInstance,{value:(z)=>{if(Q?.Parent&&z instanceof Q.Parent)return!0;return z?._zod?.traits?.has(J)}}),Object.defineProperty(Y,"name",{value:J}),Y}var jU0=Symbol("zod_brand");class cz extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class DM extends Error{constructor(J){super(`Encountered unidirectional transform during encode: ${J}`);this.name="ZodEncodeError"}}var PV={};function YZ(J){if(J)Object.assign(PV,J);return PV}var W8={};ZJ(W8,{unwrapMessage:()=>VV,uint8ArrayToHex:()=>qo6,uint8ArrayToBase64url:()=>Wo6,uint8ArrayToBase64:()=>ma0,stringifyPrimitive:()=>Y8,slugify:()=>TU0,shallowClone:()=>SU0,safeExtend:()=>Uo6,required:()=>Yo6,randomString:()=>aa6,propertyKeyTypes:()=>SV,promiseAllObject:()=>sa6,primitiveTypes:()=>$U0,prefixIssues:()=>yK,pick:()=>Jo6,partial:()=>Xo6,optionalKeys:()=>vU0,omit:()=>Zo6,objectClone:()=>ia6,numKeys:()=>oa6,nullish:()=>E2,normalizeParams:()=>G8,mergeDefs:()=>P2,merge:()=>Ko6,jsonStringifyReplacer:()=>XR,joinValues:()=>$6,issue:()=>zR,isPlainObject:()=>V2,isObject:()=>wM,hexToUint8Array:()=>Ho6,getSizableOrigin:()=>$V,getParsedType:()=>ta6,getLengthableOrigin:()=>vV,getEnumValues:()=>TV,getElementAtPath:()=>na6,floatSafeRemainder:()=>VU0,finalizeIssue:()=>gK,extend:()=>Qo6,escapeRegex:()=>nX,esc:()=>Gm,defineLazy:()=>q9,createTransparentProxy:()=>ea6,cloneDef:()=>ra6,clone:()=>rU,cleanRegex:()=>CV,cleanEnum:()=>zo6,captureStackTrace:()=>Wm,cached:()=>YR,base64urlToUint8Array:()=>Go6,base64ToUint8Array:()=>ga0,assignProp:()=>j2,assertNotEqual:()=>pa6,assertNever:()=>la6,assertIs:()=>ca6,assertEqual:()=>ua6,assert:()=>da6,allowsEval:()=>CU0,aborted:()=>T2,NUMBER_FORMAT_RANGES:()=>kU0,Class:()=>ua0,BIGINT_FORMAT_RANGES:()=>fU0});function ua6(J){return J}function pa6(J){return J}function ca6(J){}function la6(J){throw new Error}function da6(J){}function TV(J){let Z=Object.values(J).filter((U)=>typeof U==="number");return Object.entries(J).filter(([U,K])=>Z.indexOf(+U)===-1).map(([U,K])=>K)}function $6(J,Z="|"){return J.map((Q)=>Y8(Q)).join(Z)}function XR(J,Z){if(typeof Z==="bigint")return Z.toString();return Z}function YR(J){return{get value(){{let Q=J();return Object.defineProperty(this,"value",{value:Q}),Q}throw new Error("cached value already set")}}}function E2(J){return J===null||J===void 0}function CV(J){let Z=J.startsWith("^")?1:0,Q=J.endsWith("$")?J.length-1:J.length;return J.slice(Z,Q)}function VU0(J,Z){let Q=(J.toString().split(".")[1]||"").length,U=Z.toString(),K=(U.split(".")[1]||"").length;if(K===0&&/\d?e-\d?/.test(U)){let G=U.match(/\d?e-(\d?)/);if(G?.[1])K=Number.parseInt(G[1])}let X=Q>K?Q:K,Y=Number.parseInt(J.toFixed(X).replace(".","")),z=Number.parseInt(Z.toFixed(X).replace(".",""));return Y%z/10**X}var ya0=Symbol("evaluating");function q9(J,Z,Q){let U=void 0;Object.defineProperty(J,Z,{get(){if(U===ya0)return;if(U===void 0)U=ya0,U=Q();return U},set(K){Object.defineProperty(J,Z,{value:K})},configurable:!0})}function ia6(J){return Object.create(Object.getPrototypeOf(J),Object.getOwnPropertyDescriptors(J))}function j2(J,Z,Q){Object.defineProperty(J,Z,{value:Q,writable:!0,enumerable:!0,configurable:!0})}function P2(...J){let Z={};for(let Q of J){let U=Object.getOwnPropertyDescriptors(Q);Object.assign(Z,U)}return Object.defineProperties({},Z)}function ra6(J){return P2(J._zod.def)}function na6(J,Z){if(!Z)return J;return Z.reduce((Q,U)=>Q?.[U],J)}function sa6(J){let Z=Object.keys(J),Q=Z.map((U)=>J[U]);return Promise.all(Q).then((U)=>{let K={};for(let X=0;X<Z.length;X++)K[Z[X]]=U[X];return K})}function aa6(J=10){let Q="";for(let U=0;U<J;U++)Q+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return Q}function Gm(J){return JSON.stringify(J)}function TU0(J){return J.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Wm="captureStackTrace"in Error?Error.captureStackTrace:(...J)=>{};function wM(J){return typeof J==="object"&&J!==null&&!Array.isArray(J)}var CU0=YR(()=>{if(typeof navigator!=="undefined"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(J){return!1}});function V2(J){if(wM(J)===!1)return!1;let Z=J.constructor;if(Z===void 0)return!0;if(typeof Z!=="function")return!0;let Q=Z.prototype;if(wM(Q)===!1)return!1;if(Object.prototype.hasOwnProperty.call(Q,"isPrototypeOf")===!1)return!1;return!0}function SU0(J){if(V2(J))return{...J};if(Array.isArray(J))return[...J];return J}function oa6(J){let Z=0;for(let Q in J)if(Object.prototype.hasOwnProperty.call(J,Q))Z++;return Z}var ta6=(J)=>{let Z=typeof J;switch(Z){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(J)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(J))return"array";if(J===null)return"null";if(J.then&&typeof J.then==="function"&&J.catch&&typeof J.catch==="function")return"promise";if(typeof Map!=="undefined"&&J instanceof Map)return"map";if(typeof Set!=="undefined"&&J instanceof Set)return"set";if(typeof Date!=="undefined"&&J instanceof Date)return"date";if(typeof File!=="undefined"&&J instanceof File)return"file";return"object";default:throw new Error(`Unknown data type: ${Z}`)}},SV=new Set(["string","number","symbol"]),$U0=new Set(["string","number","bigint","boolean","symbol","undefined"]);function nX(J){return J.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function rU(J,Z,Q){let U=new J._zod.constr(Z??J._zod.def);if(!Z||Q?.parent)U._zod.parent=J;return U}function G8(J){let Z=J;if(!Z)return{};if(typeof Z==="string")return{error:()=>Z};if(Z?.message!==void 0){if(Z?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");Z.error=Z.message}if(delete Z.message,typeof Z.error==="string")return{...Z,error:()=>Z.error};return Z}function ea6(J){let Z;return new Proxy({},{get(Q,U,K){return Z??(Z=J()),Reflect.get(Z,U,K)},set(Q,U,K,X){return Z??(Z=J()),Reflect.set(Z,U,K,X)},has(Q,U){return Z??(Z=J()),Reflect.has(Z,U)},deleteProperty(Q,U){return Z??(Z=J()),Reflect.deleteProperty(Z,U)},ownKeys(Q){return Z??(Z=J()),Reflect.ownKeys(Z)},getOwnPropertyDescriptor(Q,U){return Z??(Z=J()),Reflect.getOwnPropertyDescriptor(Z,U)},defineProperty(Q,U,K){return Z??(Z=J()),Reflect.defineProperty(Z,U,K)}})}function Y8(J){if(typeof J==="bigint")return J.toString()+"n";if(typeof J==="string")return`"${J}"`;return`${J}`}function vU0(J){return Object.keys(J).filter((Z)=>{return J[Z]._zod.optin==="optional"&&J[Z]._zod.optout==="optional"})}var kU0={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},fU0={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Jo6(J,Z){let Q=J._zod.def,U=P2(J._zod.def,{get shape(){let K={};for(let X in Z){if(!(X in Q.shape))throw new Error(`Unrecognized key: "${X}"`);if(!Z[X])continue;K[X]=Q.shape[X]}return j2(this,"shape",K),K},checks:[]});return rU(J,U)}function Zo6(J,Z){let Q=J._zod.def,U=P2(J._zod.def,{get shape(){let K={...J._zod.def.shape};for(let X in Z){if(!(X in Q.shape))throw new Error(`Unrecognized key: "${X}"`);if(!Z[X])continue;delete K[X]}return j2(this,"shape",K),K},checks:[]});return rU(J,U)}function Qo6(J,Z){if(!V2(Z))throw new Error("Invalid input to extend: expected a plain object");let Q=J._zod.def.checks;if(Q&&Q.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");let K=P2(J._zod.def,{get shape(){let X={...J._zod.def.shape,...Z};return j2(this,"shape",X),X},checks:[]});return rU(J,K)}function Uo6(J,Z){if(!V2(Z))throw new Error("Invalid input to safeExtend: expected a plain object");let Q={...J._zod.def,get shape(){let U={...J._zod.def.shape,...Z};return j2(this,"shape",U),U},checks:J._zod.def.checks};return rU(J,Q)}function Ko6(J,Z){let Q=P2(J._zod.def,{get shape(){let U={...J._zod.def.shape,...Z._zod.def.shape};return j2(this,"shape",U),U},get catchall(){return Z._zod.def.catchall},checks:[]});return rU(J,Q)}function Xo6(J,Z,Q){let U=P2(Z._zod.def,{get shape(){let K=Z._zod.def.shape,X={...K};if(Q)for(let Y in Q){if(!(Y in K))throw new Error(`Unrecognized key: "${Y}"`);if(!Q[Y])continue;X[Y]=J?new J({type:"optional",innerType:K[Y]}):K[Y]}else for(let Y in K)X[Y]=J?new J({type:"optional",innerType:K[Y]}):K[Y];return j2(this,"shape",X),X},checks:[]});return rU(Z,U)}function Yo6(J,Z,Q){let U=P2(Z._zod.def,{get shape(){let K=Z._zod.def.shape,X={...K};if(Q)for(let Y in Q){if(!(Y in X))throw new Error(`Unrecognized key: "${Y}"`);if(!Q[Y])continue;X[Y]=new J({type:"nonoptional",innerType:K[Y]})}else for(let Y in K)X[Y]=new J({type:"nonoptional",innerType:K[Y]});return j2(this,"shape",X),X},checks:[]});return rU(Z,U)}function T2(J,Z=0){if(J.aborted===!0)return!0;for(let Q=Z;Q<J.issues.length;Q++)if(J.issues[Q]?.continue!==!0)return!0;return!1}function yK(J,Z){return Z.map((Q)=>{var U;return(U=Q).path??(U.path=[]),Q.path.unshift(J),Q})}function VV(J){return typeof J==="string"?J:J?.message}function gK(J,Z,Q){let U={...J,path:J.path??[]};if(!J.message){let K=VV(J.inst?._zod.def?.error?.(J))??VV(Z?.error?.(J))??VV(Q.customError?.(J))??VV(Q.localeError?.(J))??"Invalid input";U.message=K}if(delete U.inst,delete U.continue,!Z?.reportInput)delete U.input;return U}function $V(J){if(J instanceof Set)return"set";if(J instanceof Map)return"map";if(J instanceof File)return"file";return"unknown"}function vV(J){if(Array.isArray(J))return"array";if(typeof J==="string")return"string";return"unknown"}function zR(...J){let[Z,Q,U]=J;if(typeof Z==="string")return{message:Z,code:"custom",input:Q,inst:U};return{...Z}}function zo6(J){return Object.entries(J).filter(([Z,Q])=>{return Number.isNaN(Number.parseInt(Z,10))}).map((Z)=>Z[1])}function ga0(J){let Z=atob(J),Q=new Uint8Array(Z.length);for(let U=0;U<Z.length;U++)Q[U]=Z.charCodeAt(U);return Q}function ma0(J){let Z="";for(let Q=0;Q<J.length;Q++)Z+=String.fromCharCode(J[Q]);return btoa(Z)}function Go6(J){let Z=J.replace(/-/g,"+").replace(/_/g,"/"),Q="=".repeat((4-Z.length%4)%4);return ga0(Z+Q)}function Wo6(J){return ma0(J).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Ho6(J){let Z=J.replace(/^0x/,"");if(Z.length%2!==0)throw new Error("Invalid hex string length");let Q=new Uint8Array(Z.length/2);for(let U=0;U<Z.length;U+=2)Q[U/2]=Number.parseInt(Z.slice(U,U+2),16);return Q}function qo6(J){return Array.from(J).map((Z)=>Z.toString(16).padStart(2,"0")).join("")}class ua0{constructor(...J){}}var pa0=(J,Z)=>{J.name="$ZodError",Object.defineProperty(J,"_zod",{value:J._zod,enumerable:!1}),Object.defineProperty(J,"issues",{value:Z,enumerable:!1}),J.message=JSON.stringify(Z,XR,2),Object.defineProperty(J,"toString",{value:()=>J.message,enumerable:!1})},EM=q6("$ZodError",pa0),i5=q6("$ZodError",pa0,{Parent:Error});function kV(J,Z=(Q)=>Q.message){let Q={},U=[];for(let K of J.issues)if(K.path.length>0)Q[K.path[0]]=Q[K.path[0]]||[],Q[K.path[0]].push(Z(K));else U.push(Z(K));return{formErrors:U,fieldErrors:Q}}function fV(J,Z=(Q)=>Q.message){let Q={_errors:[]},U=(K)=>{for(let X of K.issues)if(X.code==="invalid_union"&&X.errors.length)X.errors.map((Y)=>U({issues:Y}));else if(X.code==="invalid_key")U({issues:X.issues});else if(X.code==="invalid_element")U({issues:X.issues});else if(X.path.length===0)Q._errors.push(Z(X));else{let Y=Q,z=0;while(z<X.path.length){let G=X.path[z];if(z!==X.path.length-1)Y[G]=Y[G]||{_errors:[]};else Y[G]=Y[G]||{_errors:[]},Y[G]._errors.push(Z(X));Y=Y[G],z++}}};return U(J),Q}function _U0(J,Z=(Q)=>Q.message){let Q={errors:[]},U=(K,X=[])=>{var Y,z;for(let G of K.issues)if(G.code==="invalid_union"&&G.errors.length)G.errors.map((W)=>U({issues:W},G.path));else if(G.code==="invalid_key")U({issues:G.issues},G.path);else if(G.code==="invalid_element")U({issues:G.issues},G.path);else{let W=[...X,...G.path];if(W.length===0){Q.errors.push(Z(G));continue}let H=Q,q=0;while(q<W.length){let F=W[q],M=q===W.length-1;if(typeof F==="string")H.properties??(H.properties={}),(Y=H.properties)[F]??(Y[F]={errors:[]}),H=H.properties[F];else H.items??(H.items=[]),(z=H.items)[F]??(z[F]={errors:[]}),H=H.items[F];if(M)H.errors.push(Z(G));q++}}};return U(J),Q}function ca0(J){let Z=[],Q=J.map((U)=>typeof U==="object"?U.key:U);for(let U of Q)if(typeof U==="number")Z.push(`[${U}]`);else if(typeof U==="symbol")Z.push(`[${JSON.stringify(String(U))}]`);else if(/[^\w$]/.test(U))Z.push(`[${JSON.stringify(U)}]`);else{if(Z.length)Z.push(".");Z.push(U)}return Z.join("")}function bU0(J){let Z=[],Q=[...J.issues].sort((U,K)=>(U.path??[]).length-(K.path??[]).length);for(let U of Q)if(Z.push(`✖ ${U.message}`),U.path?.length)Z.push(` → at ${ca0(U.path)}`);return Z.join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kelceyp/caw-server",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "CAW server - REST API, MCP server, WebSocket bridge, and core features",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",