@uniformdev/uniform-mcp 20.36.1-alpha.1 → 20.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.mjs +1 -1
  2. package/package.json +7 -7
package/dist/index.mjs CHANGED
@@ -5281,7 +5281,7 @@ to {
5281
5281
  `;await tr();function A4e(t){let e=vue({nodes:[bd,yd,GZ,ub,cb,gse,spe,ape,lpe,Ff]});return e.update(()=>{hse("skip-dom-selection"),pfe(t,xfe)},{discrete:!0}),e.getEditorState().toJSON()}function k4e({twee:t,nodeId:e,propertyId:n,propertyType:r,locale:o,propertyEdit:i,conditionIndex:a=-1}){let l=t.getNodeById(e);if(!l)throw new Error(`Node with ID ${e} not found`);if(i.action==="clearValue")t.updateNodeProperty({nodeId:e,property:n,value:null,source:"ai",locale:o,conditionIndex:-1});else if(i.action==="resetOverride")t.resetPatternPropertyOverride(e,n,o);else if(i.action==="setValue"){let c=Tot({twee:t,targetNode:l,propertyId:n,propertyType:r,propertyEdit:i}),d=t.getNodeProperty(e,n);if(!o&&d?.locales)throw new Error(`The ${n} property is localized in ${Object.keys(d.locales).join(", ")}, but no locale was provided when setting its value. Please provide an explicit locale.`);if(n===Sot){let f=t.getParentInfo(e);if(f?.parentId){let m=t.getNodeProperty(f.parentId,Cot);if(m?.value!==Dne)throw new Error(`Cannot edit personalization criteria when the parent personalization component is not using the Strongest Variation Match selection method. Current selection method: ${m?.value||"Top-down criteria matching"}.`)}}t.updateNodeProperty({nodeId:e,property:n,value:()=>c,source:"ai",locale:o,conditionIndex:a,type:r})}}var Tot=({twee:t,targetNode:e,propertyId:n,propertyType:r,propertyEdit:o})=>{if(r==="richText")return A4e(o.newValue??"");if(r==="number")return Number(o.newValue);if(n===xot){if(Eot(e.value.type))throw new Error("Enrichment tags are not allowed in system components.");if(t.getParentInfo(e.nodeId)?.parentId===wot)throw new Error("Enrichment tags are not allowed in personalization variants.")}return o.treatNewValueAsJson?JSON.parse(o.newValue):o.newValue};async function ZL({twee:t,slotUpdates:e,propertyUpdates:n,dataResourceUpdates:r,localeUpdates:o,nameUpdate:i,slugUpdate:a,descriptionUpdate:l,currentEditorLocale:c,referenceData:d,dataSourceVariant:f,isEditingPattern:m}){let h=[];i&&(t.updateRootNode({update:{_name:i}}),h.push({summary:"Updated name",success:!0})),a&&(t.updateRootNode({update:{_slug:a}}),h.push({summary:"Updated slug",success:!0})),l&&(t.updateRootMetadata({description:l}),h.push({summary:"Updated description",success:!0}));let g=await d.fetchDefinitions();await Not({slotUpdates:e,twee:t,definitions:g,referenceData:d,results:h,isEditingPattern:m});let y=h.some(S=>!S.success);if(y?e.moveComponentInstances?.forEach(S=>{h.push({summary:`Skipped moving component ${S.componentId} because previous actions failed`,success:!1})}):await Lot({slotUpdates:e,twee:t,definitions:g,results:h,isEditingPattern:m}),y=h.some(S=>!S.success),e.duplicateComponentInstances)for(let S of e.duplicateComponentInstances)if(y)h.push({summary:`Skipped duplicating component ${S} because previous actions failed`,success:!1});else{let C=await t.duplicateNode(S,d.resolvePatternData);h.push({summary:`Duplicated component ${S}. The new duplicate has ID ${C} and is placed immediately after the original component in the same slot.`,success:!0})}return y=h.some(S=>!S.success),e.deleteComponentInstances?.forEach(S=>{y?h.push({summary:`Skipped deleting component ${S} because previous actions failed`,success:!1}):(t.deleteNode(S,!1),h.push({summary:`Deleted component ${S}`,success:!0}))}),y=h.some(S=>!S.success),o?.enableLocales?.forEach(S=>{y?h.push({summary:`Skipped enabling locale ${S} because previous actions failed`,success:!1}):(t.enableLocale(S),h.push({summary:`Enabled locale ${S}`,success:!0}))}),y=h.some(S=>!S.success),o?.disableLocales?.forEach(S=>{y?h.push({summary:`Skipped disabling locale ${S} because previous actions failed`,success:!1}):(t.disableLocale(S),h.push({summary:`Disabled locale ${S}`,success:!0}))}),y=h.some(S=>!S.success),y?n.length>0&&h.push({summary:`Skipped ${n.length} property updates because previous actions failed`,success:!1}):(await Oot({propertyUpdates:n,twee:t,currentEditorLocale:c,referenceData:d,definitions:g,results:h})).forEach(C=>{if(!C.result.success)return;let w="componentId"in C.update?C.update.componentId:t.rootNodeId,E=Sne({twee:t,nodeId:w,currentEditorLocale:C.currentLocale,definition:C.propertyDefinition}),_=(t.getNodeById(t.rootNodeId)?.value)._locales??[];if(E&&!_.includes(E)){h.push({summary:`The ${E} locale is not enabled on this entity. Please enable it before setting values in this locale.`,success:!1});return}if(C.result.action!=="nothing")try{k4e({twee:t,nodeId:w,propertyId:C.propertyDefinition.id,propertyType:C.propertyDefinition.type,locale:E,propertyEdit:C.result}),h.push({summary:`Updated value of ${C.propertyDefinition.id} on ${w}${E?` in ${E}`:""}`,success:!0})}catch(N){h.push({summary:`Failed to update value of ${C.propertyDefinition.id} on ${w}${E?` in ${E}`:""}: ${N instanceof Error?N.message:"Unknown error"}`,success:!1})}if("overridable"in C.update&&C.update.overridable!==void 0)if(C.propertyDefinition.type===_ot)h.push({summary:`Cannot set overridability for block property '${C.propertyDefinition.id}' - blocks do not support overrides`,success:!1});else{let N=C.update.overridable;t.updateNode({nodeId:w,updateComponent:$=>{$._overridability??={},$._overridability.parameters??={},$._overridability.parameters[C.propertyDefinition.id]=N}}),h.push({summary:`Updated overridability for ${w}`,success:!0})}}),y=h.some(S=>!S.success),y?r.length>0&&h.push({summary:`Skipped ${r.length} data resource updates because previous actions failed`,success:!1}):(await Rot({dataResourceUpdates:r,twee:t,referenceData:d,results:h,dataSourceVariant:f})).forEach(C=>{if(!C.result.success)return;let w=C.update.componentId;if(C.result.action==="resetOverride")t.updateNode({nodeId:w,updateDataResources:[{type:"reset",name:C.update.dataResourceName}]}),h.push({summary:`Reset data resource to pattern default for ${C.update.dataResourceName} on ${w}`,success:!0});else if(C.result.action==="setValue")try{wne({twee:t,nodeId:w,dataResourceName:C.update.dataResourceName,dataType:C.dataType,dataResourceEdit:C.result}),h.push({summary:`Updated data resource ${C.update.dataResourceName} on ${w}`,success:!0})}catch(E){h.push({summary:`Failed to update data resource ${C.update.dataResourceName} on ${w}: ${E instanceof Error?E.message:"Unknown error"}`,success:!1})}}),{success:h.every(S=>S.success),actionsTaken:h}}async function Not({slotUpdates:t,twee:e,definitions:n,referenceData:r,results:o,isEditingPattern:i}){(await Promise.allSettled(t.createComponentInstances?.map(async l=>{let c=e.getNodeById(l.parentComponentId);if(!c)throw new Error(`Parent component with ID ${l.parentComponentId} not found`);let d=n[c.value.type];if(!d)throw new Error(`Definition for parent component type ${c.value.type} not found`);let f=d.slots?.find(g=>g.id===l.slotName);if(!f)throw new Error(`Slot ${l.slotName} not found on component type ${c.value.type}`);let m=u6({twee:e,parentSlotDefinition:f,nodeId:l.parentComponentId,componentDefinitionsIndex:n});if(!m)throw new Error(`Can't find allowed components inherited slot for ${l.slotName}`);let h=nP(m);if(l.instanceType==="component"){if(!l.componentType)throw new Error("componentType is required when inserting a component instance");if(!l6({type:l.componentType},h,i))throw new Error(`Component type ${l.componentType} is not allowed in slot ${l.slotName}`);e.insertNode({node:{type:l.componentType},overrideNodeId:l.newComponentInstanceUuid,parentNodeId:l.parentComponentId,parentSlot:l.slotName,targetIndexInSlot:l.slotIndex}),o.push({summary:`Inserted component ${l.componentType} in slot ${l.slotName} ${l.slotIndex!==void 0?`at index ${l.slotIndex}`:""}`,success:!0})}else{if(!l.componentPatternId)throw new Error("componentPatternId is required when inserting a component pattern instance");let g=await r.resolvePatternData(l.componentPatternId);if(!g)throw new Error(`Pattern definition with ID ${l.componentPatternId} not found`);if(!l6({type:g.type,_pattern:l.componentPatternId},h,!1))throw new Error(`Pattern ${l.componentPatternId} is not allowed in slot ${l.slotName}`);e.insertPattern({pattern:g,patternInstanceId:l.newComponentInstanceUuid,parentNodeId:l.parentComponentId,parentSlot:l.slotName,targetIndexInSlot:l.slotIndex}),o.push({summary:`Inserted pattern ${g._name} in slot ${l.slotName} ${l.slotIndex!==void 0?`at index ${l.slotIndex}`:""}`,success:!0})}})??[])).forEach((l,c)=>{if(l.status==="rejected"){let d=t.createComponentInstances?.[c];console.error("Error inserting component",l.reason),o.push({summary:`Failed to insert component ${d?.newComponentInstanceUuid}: ${"message"in l.reason?l.reason.message:"Unknown error"}`,success:!1})}})}async function Lot({slotUpdates:t,twee:e,definitions:n,results:r,isEditingPattern:o}){(await Promise.allSettled(t.moveComponentInstances?.map(async a=>{let l=e.getNodeById(a.componentId);if(!l)throw new Error(`Component to move with ID ${a.componentId} not found`);let c=e.getNodeById(a.newParentComponentId);if(!c)throw new Error(`Destination component with ID ${a.newParentComponentId} not found`);let d=n[c.value.type];if(!d)throw new Error(`Definition for destination component type ${c.value.type} not found`);let f=d.slots?.find(g=>g.id===a.newSlotName);if(!f)throw new Error(`Slot ${a.newSlotName} not found on component type ${c.value.type}`);let m=u6({twee:e,parentSlotDefinition:f,nodeId:a.newParentComponentId,componentDefinitionsIndex:n});if(!m)throw new Error(`Can't find allowed components inherited slot for ${a.newSlotName}`);let h=nP(m);if(!l6({type:l.value.type,_pattern:l.value._pattern},h,o))throw new Error(l.value._pattern?`Pattern ${l.value._pattern} is not allowed in slot ${a.newSlotName}`:`Component ${l.value.type} is not allowed in slot ${a.newSlotName}`);e.moveNode({movedNodeId:a.componentId,parentNodeId:a.newParentComponentId,parentSlot:a.newSlotName,targetIndexInSlot:a.newSlotIndex}),r.push({summary:`Moved component ${a.componentId} to ${a.newParentComponentId} in slot ${a.newSlotName} at index ${a.newSlotIndex}`,success:!0})})??[])).forEach((a,l)=>{if(a.status==="rejected"){let c=t.moveComponentInstances?.[l];console.error("Error moving component",a.reason),r.push({summary:`Failed to move component ${c?.componentId}: ${"message"in a.reason?a.reason.message:"Unknown error"}`,success:!1})}})}async function Oot({propertyUpdates:t,twee:e,currentEditorLocale:n,referenceData:r,definitions:o,results:i}){if(t.length===0)return[];let[a,l]=await Promise.all([r.fetchProjectGuidance(),r.getToolClient()]),c=await Promise.allSettled(t.map(async d=>(async()=>{let f="componentId"in d?d.componentId:e.rootNodeId,m=e.getNodeById(f);if(!m)throw new Error(`Component instance with ID ${f} not found`);let h=o[m.value.type];if(!h)throw new Error(`Definition with ID ${m.value.type} not found`);let g="fieldId"in d?d.fieldId:d.parameterId,y=h.parameters?.find(N=>N.id===g),b=d.locale??n,S=y??{id:g,type:"unknown"};if(d.editInstructions===void 0)return{result:{success:!0,newValue:"",treatNewValueAsJson:!1,action:"nothing"},update:d,propertyDefinition:S};if(d.editInstructions==="")return{result:{success:!0,newValue:"",treatNewValueAsJson:!1,action:"clearValue"},update:d,propertyDefinition:S};if(!y)throw new Error(`Property with ID ${g} not found`);let C=Dot({property:e.getNodeProperty(f,g),locale:b,conditionIndex:-1}),w,E=e.getNodeProperty(f,$ot);E?.value?.dim&&(w=await r.getDimensionGuidance(E.value.dim));let _=await l.invoke("createPropertyEdit",{edit:d.editInstructions,propertyDefinition:{id:g,name:y.name,type:y.type,guidance:y.guidance,typeConfig:y.typeConfig},outputLocale:b,documentContext:void 0,currentValue:C,projectGuidance:a,componentGuidance:h.description,audienceGuidance:w});if(!_.success)throw new Error(_.summary??"Failed to edit property");return{result:_,update:d,propertyDefinition:y,currentLocale:b}})()));return c.forEach((d,f)=>{if(d.status==="rejected"){let m=t[f],h="fieldId"in m?m.fieldId:m.parameterId;i.push({summary:`Failed to edit property ${h}: ${"message"in d.reason?d.reason.message:"Unknown error"}`,success:!1})}}),c.filter(d=>d.status==="fulfilled").map(d=>d.value)}async function Rot({dataResourceUpdates:t,twee:e,referenceData:n,results:r,dataSourceVariant:o}){if(t.length===0)return[];let i=await n.getToolClient(),a=await Promise.allSettled(t.map(async l=>(async()=>{let c=l.componentId,d=e.getNodeById(c);if(!d)throw new Error(`Component instance with ID ${c} not found`);if(l.editInstructions===void 0)return{result:{success:!0,newValue:{},action:"nothing"},update:l,dataType:"unknown"};if(l.editInstructions==="")return{result:{success:!0,newValue:{},action:"setValue"},update:l,dataType:"unknown"};let f=d.value._dataResources?.[l.dataResourceName],m=d.value._patternDataResources?.[l.dataResourceName];if(!m)throw new Error(`Pattern data resource ${l.dataResourceName} does not exist on the ${d.value._pattern} pattern`);let h=f?.variables??m.variables,g=m.type,y=await i.invoke("createDataResourceEdit",{edit:l.editInstructions,dataType:g,currentValue:h,dataSourceVariant:o});if(!y.success)throw new Error(y.summary??"Failed to edit data resource");return{result:y,update:l,dataType:g}})()));return a.forEach((l,c)=>{if(l.status==="rejected"){let d=t[c];r.push({summary:`Failed to edit data resource ${d.dataResourceName}: ${"message"in l.reason?l.reason.message:"Unknown error"}`,success:!1})}}),a.filter(l=>l.status==="fulfilled").map(l=>l.value)}import{CANVAS_BLOCK_PARAM_TYPE as _c,CANVAS_ENRICHMENT_TAG_PARAM as h3e,CANVAS_LOCALE_TAG_PARAM as uT,CANVAS_LOCALIZATION_SLOT as cq,CANVAS_LOCALIZATION_TYPE as yit,CANVAS_PERSONALIZATION_PARAM as cT,CANVAS_PERSONALIZE_SLOT as g3e,CANVAS_SLOT_SECTION_SLOT as bit,CANVAS_SLOT_SECTION_TYPE as oO,CANVAS_TEST_SLOT as v3e,CANVAS_TEST_VARIANT_PARAM as y3e,CANVAS_VIZ_CONTROL_PARAM as b0,convertToBindExpression as xit,createVariableReference as Cit,getEffectivePropertyValue as b3e,walkNodeTree as x0}from"@uniformdev/canvas";var C0=X(XZ(),1),C3e=X($S(),1);import{produce as Do}from"immer";import Pot from"crypto";var XL=new Uint8Array(256),qL=XL.length;function JZ(){return qL>XL.length-16&&(Pot.randomFillSync(XL),qL=0),XL.slice(qL,qL+=16)}var fa=[];for(let t=0;t<256;++t)fa.push((t+256).toString(16).slice(1));function B4e(t,e=0){return fa[t[e+0]]+fa[t[e+1]]+fa[t[e+2]]+fa[t[e+3]]+"-"+fa[t[e+4]]+fa[t[e+5]]+"-"+fa[t[e+6]]+fa[t[e+7]]+"-"+fa[t[e+8]]+fa[t[e+9]]+"-"+fa[t[e+10]]+fa[t[e+11]]+fa[t[e+12]]+fa[t[e+13]]+fa[t[e+14]]+fa[t[e+15]]}import Iot from"crypto";var QZ={randomUUID:Iot.randomUUID};function Fot(t,e,n){if(QZ.randomUUID&&!e&&!t)return QZ.randomUUID();t=t||{};let r=t.random||(t.rng||JZ)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){n=n||0;for(let o=0;o<16;++o)e[n+o]=r[o];return e}return B4e(r)}var Hi=Fot;import{bindVariablesToObject as Vot}from"@uniformdev/canvas";var aT="Untitled",H4e=60;function W4e({value:t,isNew:e,contentType:n}){let{result:r}=Vot({value:t,handleBinding:()=>"{token}",variables:{}}),o=n.entryName??"",i=(n.fields??[]).find(a=>a.id===o);if(typeof r=="string"){if(i?.type==="image")return r.length>0?`Image: ${jot(r)}`:`${aT} image`;if(r.length>0)return i?.type==="date"?Wot(r)?Kot(r):"Invalid date":y0(r)}else{if(typeof r=="number"||typeof r=="boolean")return r.toString();if(typeof r<"u"&&r!==null){if(i?.type==="link")return Uot(r);if(une(r))return y0(eP(r.root));if(i?.type==="datetime"&&r){let a=r;return a.datetime&&K4e(a.datetime)?Got(a.datetime):"Invalid datetime"}else return y0(Yot(r).description)}}return e?`New entry: ${n.name}`:aT}function Uot(t){return t?t.type==="projectMapNode"?t.path.length>0?`Link to ${y0(t.path)}`:`Link to project map node (${t.nodeId})`:t.path.length>0?`Link to ${y0(t.path)}`:`${aT} link`:`${aT} link`}function jot(t){try{let{pathname:e,hostname:n}=new URL(t),r=e.split("/").filter(o=>o);return r.length>2?`/${r[0]}/.../${r[r.length-1]} (${y0(n)})`:`${e} (${y0(n)})`}catch{return t}}function y0(t){let e=t.split(" ").filter(i=>i).reverse();if(e.length<1)return aT;let n="",r=e.pop(),o=()=>n.length+(r?.length??0)+(n.length>0?1:0);for(;r&&o()<H4e;)n+=n.length>0?` ${r}`:r,r=e.pop();return n.length<1?`${t.slice(0,H4e)}...`:e.length>0?`${n}...`:n}var Hot=/^[1-9][0-9]{3}-[0-1][0-9]-[0-3][0-9]$/;function Wot(t){return Hot.test(t)?K4e(t):!1}function K4e(t){let e=new Date(t);return e instanceof Date&&!isNaN(Number(e))}function Kot(t){return new Date(t).toLocaleDateString()}function Got(t){return new Date(t).toLocaleString()}function Yot(t){let e=nq(t);return e?{description:e,named:!0}:{description:Zot(t).valuePreview,named:!1}}function Zot(t){if(typeof t>"u")return{valueIcon:"close-o",valuePreview:"undefined"};if(t===null)return{valueIcon:"close-o",valuePreview:"null"};if(Array.isArray(t))return{valuePreview:`array with ${t.length} item${t.length!==1?"s":""}`,valueIcon:"list"};if(typeof t=="boolean")return{valuePreview:t.toString(),valueIcon:t?"check-r":"close-r"};if(typeof t=="number"||typeof t=="bigint")return{valuePreview:t.toString(10),valueIcon:"number-input"};if(typeof t=="object"){let e=Object.keys(t);return{valuePreview:`object with ${e.length} ${e.length!==1?"properties":"property"}`,valueIcon:"shape-hexagon"}}return{valuePreview:t,valueIcon:"text-input"}}var qot=["displayName","name","_name","title","heading","label","parameters","fields","properties","entry","slug","_slug","alt","alt_description","description","results","items","entries","hits","value","id","objectID","identifier"];function nq(t){if(typeof t=="string")return t;if(typeof t=="number")return t.toString(10);if(typeof t=="boolean")return t.toString();if(typeof t!="object"||t===null)return;if(Array.isArray(t)){if(t.length===0)return;let r=nq(t[0]);return r?t.length===1?r:`${r} and ${t.length-1} other${t.length>2?"s":""}`:void 0}let n=t;for(let r of qot)if(r in n){let o=nq(n[r]);if(o)return o}}import{CANVAS_SLOT_SECTION_SLOT as Xot,walkNodeTree as Jot}from"@uniformdev/canvas";var sT="|";function JL(t,e){if(!t)return e??Hi();let n=t.split(sT),r=(e??Hi()).split(sT);return n.at(-1)===r[0]&&n.pop(),n.concat(r).join(sT)}function Y4e(t){let e=t.indexOf(sT);if(e<0)throw new Error(`Cannot remove pattern instance ID from ${t}`);return t.substring(e+1)}function QL(t,e,n=!1){Jot(t,({node:r,actions:{setDescendantsContext:o},context:i})=>{let a=!n&&!i?.currentParentPatternInstanceId,l="_pattern"in r&&!!r._pattern;if(i?.currentParentPatternInstanceId){let d=JL(i.currentParentPatternInstanceId,r._id);r._id=d}let c=i?.currentParentPatternInstanceId;l&&(c=r._id),"_overrides"in r&&r._overrides&&G4e(r._overrides,c,a),"_patternOverrides"in r&&r._patternOverrides&&G4e(r._patternOverrides,c,a),l&&o({currentParentPatternInstanceId:r._id})},{initialContext:{currentParentPatternInstanceId:e}})}var G4e=(t,e,n)=>{Object.entries(t).forEach(([r,o])=>{let i=n?r:JL(e,r);Object.entries(o.slots??{}).forEach(([a,l])=>{l.forEach(c=>{let{partOfNestedPattern:d}=eO(r??"");QL(c,a===Xot&&!d?void 0:e,!0)})}),i&&(delete t[r],t[i]=o)})};function eO(t){let e=t.split(sT);return e.length===1?{partOfPattern:void 0,partOfNestedPattern:void 0}:e.length===2?{partOfPattern:e[0],partOfNestedPattern:void 0}:{partOfPattern:e[0],partOfNestedPattern:e[e.length-2]}}import{CANVAS_SLOT_SECTION_SLOT as e3e}from"@uniformdev/canvas";import{CANVAS_VIZ_CONTROL_PARAM as nit}from"@uniformdev/canvas";import{CANVAS_ENRICHMENT_TAG_PARAM as Z4e,CANVAS_INTENT_TAG_PARAM as Qot,CANVAS_LOCALE_TAG_PARAM as eit,CANVAS_PERSONALIZATION_PARAM as q4e,CANVAS_TEST_VARIANT_PARAM as tit,CANVAS_VIZ_CONTROL_PARAM as X4e}from"@uniformdev/canvas";var J4e=[{id:Qot,name:"Intent Tag",type:"intentTag"},{id:eit,name:"Locale Visibility",type:"localeSelect"},{id:q4e,name:"Personalization Criteria",type:q4e},{id:Z4e,name:"Enrichment Tags",type:Z4e,helpText:"Seeing this component will increase a visitor's score in these enrichments."},{id:tit,name:"A/B Test",type:"testVariant"},{id:X4e,name:"Visibility Control",type:X4e}];var rit=J4e.reduce((t,e)=>(e.id===nit||t.add(e.id),t),new Set);function SC(t,e){return rit.has(e)?"yes":t?.parameters?.[e]??"no"}function rq(t,e){e&&Object.entries(e).forEach(([n,r])=>{let o=t[n];if(r.parameters||o?.parameters){t[n]??={};let i={...r?.parameters};Object.entries(o?.parameters??{}).forEach(([a,l])=>{let c=i[a];if(!c)i[a]=l;else if(l.locales||l.localesConditions||c.locales||c.localesConditions){let d={...c,...l};(l.locales||c.locales)&&(d.locales={...c.locales,...l.locales}),(l.localesConditions||c.localesConditions)&&(d.localesConditions={...c.localesConditions,...l.localesConditions}),i[a]=d}else i[a]={...c,...l}}),t[n].parameters=i}if((r.dataResources||o?.dataResources)&&(t[n]??={},t[n].dataResources={...r?.dataResources,...o?.dataResources}),r.slots||o?.slots){t[n]??={};let i=Object.entries(o?.slots??{}).reduce((a,[l,c])=>(a[l]&&Array.isArray(a[l])?a[l]=[...c,...a[l]]:a[l]=c,a),r.slots??{});t[n].slots=i}(r.variant!==void 0||o?.variant!==void 0)&&(t[n]=t[n]??{},t[n].variant=o?.variant??r?.variant)})}function Q4e({applyOverrideToNode:t}){let e=new Set,n={};return{visitNode(r){e.add(r._id),rq(n,r._overrides),rq(n,r._patternOverrides);let o=n[r._id];o&&(o.parameters&&Object.keys(o.parameters).forEach(i=>{SC(r._overridability,i)==="no"&&(console.log(`[Override] Cleaned override from ${r._id} parameter ${i} because it is not overridable`),delete n[r._id].parameters?.[i])}),o.dataResources&&Object.keys(o.dataResources).forEach(i=>{r._patternDataResources?.[i]?.isPatternParameter||(console.log(`[Override] Cleaned override from ${r._id} data resource ${i} because it is not overridable`),delete n[r._id].dataResources?.[i])}),o.variant!==void 0&&(r._overridability?.variants||delete o.variant),t({node:r,overrides:o}))},overrides:n}}function oq(t){let{beforeApplyParameterOverride:e,beforeApplyDataResourceOverride:n}=t??{};return Q4e({applyOverrideToNode({node:r,overrides:o}){if(Object.entries(o.parameters??{}).map(([i,a])=>{r.parameters=r.parameters??{},e?.(r,i,a,r.parameters[i]);let l=r.parameters[i]??={type:a.type};a.locales||a.localesConditions?(l.locales??={},delete l.value,delete l.conditions,new Set([...Object.keys(a.locales??{}),...Object.keys(a.localesConditions??{})]).forEach(f=>{delete l.locales?.[f],delete l.localesConditions?.[f];let m=a.locales?.[f],h=a.localesConditions?.[f];m!=null&&(l.locales??={},l.locales[f]=m),h!=null&&(l.localesConditions??={},l.localesConditions[f]=h)}),l.locales&&Object.keys(l.locales).length===0&&delete l.locales,l.localesConditions&&Object.keys(l.localesConditions).length===0&&delete l.localesConditions):(delete l.locales,delete l.localesConditions,delete l.conditions,delete l.value,a.value!==null&&a.value!==void 0&&(l.value=a.value,l.connectedData=a.connectedData),a.conditions!==null&&a.conditions!==void 0&&(l.conditions=a.conditions)),!l.locales&&!l.localesConditions&&!l.conditions&&l.value===void 0&&delete r.parameters[i]}),Object.entries(o.dataResources??{}).forEach(([i,a])=>{n?.(r,i,a,r._dataResources?.[i]),r._dataResources??={},r._dataResources[i]=a}),o.variant!==void 0&&(r.variant=o.variant),o.slots){r.slots??={};let i=Object.keys(o.slots)[0];r.slots[e3e]??=[],r.slots[e3e]=[...o.slots[i]??[]]}}})}import{CANVAS_SLOT_SECTION_SLOT as oit,CANVAS_SLOT_SECTION_TYPE as iit}from"@uniformdev/canvas";var t3e=({preserveOwnSlotSections:t=!1,preserveChildrenSlotSections:e=!1}={})=>n=>{if(n.node.type!==iit)return;let{partOfPattern:r,partOfNestedPattern:o}=eO(n.node._id??"");!r&&!o&&t||r&&!o&&e||ait(n)},ait=({node:t,type:e,actions:n})=>{e!=="entry"&&(n.insertAfter(t.slots?.[oit]??[]),n.remove())};import{walkNodeTree as uit}from"@uniformdev/canvas";import{produce as cit}from"immer";import{CANVAS_SLOT_SECTION_SLOT as n3e,walkNodeTree as sit}from"@uniformdev/canvas";import{produce as lit}from"immer";function tO(t,e,n,r=Hi()){if(!t._pattern)throw new Error("Not a pattern");let o={};return sit(t,({node:i,ancestorsAndSelf:a,actions:l})=>{let c=i._id,d=e[c];if(a.length===1)i._id=r;else{let m=a[0];m.type!=="slot"||m.parentSlot!==n3e?(i._id=Y4e(c),i._id=JL(r,i._id)):(l.replace({...o[c],_id:o[c]._id}),l.stopProcessingDescendants())}if(d){let m=lit(d,h=>{h.slots&&Object.entries(h.slots).forEach(([g,y])=>{if(g!==n3e)throw new Error("Only slot section items are supported for duplication");y.forEach((b,S)=>{if(!b._id)return;let C=nO(b,e,n);o[b._id]=C,y[S]=C})})});n?.(i._id,m,c)}}),r}function nO(t,e,n){return cit(t,r=>{uit(r,({type:o,node:i,actions:{stopProcessingDescendants:a}})=>{o==="component"&&i._pattern?(tO(i,e,n),a()):i._id=Hi()})})}import{produce as dit}from"immer";function r3e(t,e=Hi()){return dit(t,n=>(n._pattern?tO(n,n._overrides??{},(r,o,i)=>{delete n._overrides[i],n._overrides[r]=o},e):n._id=e,n))}function rO({locale:t,conditionIndex:e,property:n}){if(t===void 0)if(e<0){if(delete n.value,!n.conditions?.length)return!1}else n.conditions?.splice(e,1);else e<0?delete n.locales?.[t]:n.localesConditions?.[t]?.splice(e,1);if(n.localesConditions){for(let[r,o]of Object.entries(n.localesConditions))if(o.length===0){delete n.localesConditions[r];break}Object.keys(n.localesConditions).length===0&&delete n.localesConditions}return n.locales&&Object.keys(n.locales).length===0&&delete n.locales,n.conditions&&n.conditions.length===0&&delete n.conditions,!!(n.value!==void 0||n.locales||n.conditions||n.localesConditions)}function iq({locale:t,conditionIndex:e,conditionDefinition:n,property:r,newPropertyValue:o}){t===void 0?e<0?r.value=o:(r.conditions??=[],o3e(r.conditions,e,n,o)):e<0?(r.locales??={},r.locales[t]=o):(r.localesConditions??={},r.localesConditions[t]??=[],o3e(r.localesConditions[t],e,n,o))}function o3e(t,e,n,r){if(e<0)throw new Error("Condition index must be greater than or equal to 0");let o=t[e];t[e]={when:n??o?.when??{clauses:[]},value:r===void 0?null:r,id:o?.id??fit(t)}}function fit(t){let e=new Set(t.map(r=>r.id)),n=0;for(;e.has(n);)n++;return n}function i3e(t){let e=!1,n={};return"_pattern"in t&&t._patternDataResources&&Object.entries(t._patternDataResources).forEach(([r,o])=>{e=!0,n[r]={...o,source:"patternDataResource"}}),t._dataResources&&Object.entries(t._dataResources).forEach(([r,o])=>{n[r]?n[r].isPatternParameter&&(e=!0,n[r]={...o,source:"dataResource"}):(e=!0,n[r]={...o,source:"dataResource"})}),e?n:void 0}import{CANVAS_DRAFT_STATE as pit,convertEntryToPutEntry as Ijt,getPropertiesValue as zjt}from"@uniformdev/canvas";function a3e(t){let{fields:e,entryName:n,type:r="contentType",thumbnailField:o,...i}=t;return{...i,titleParameter:n,thumbnailParameter:o,parameters:e,canBeComposition:r==="block",permissions:t.permissions,useTeamPermissions:t.useTeamPermissions??!0,workflowId:t.workflowId}}function s3e(t){return{id:t.id,name:t.name,entryName:t.titleParameter,thumbnailField:t.thumbnailParameter,fields:t.parameters,icon:t.icon,description:t.description,slugSettings:t.slugSettings,type:t.canBeComposition?"block":"contentType",created:t.created,updated:t.updated,permissions:t.permissions,useTeamPermissions:t.useTeamPermissions,workflowId:t.workflowId||void 0}}function lT(t){let{entry:{fields:e,...n},...r}=t;return{created:"",modified:"",composition:{_id:"",...n,_name:t.entry._name??"Untitled",parameters:e,_overridability:t.entry._overridability,_overrides:t.entry._overrides,_pattern:t.entry._pattern,_patternError:t.entry._patternError},pattern:!!t.pattern,previewImageUrl:t.entry._thumbnail,...r}}function l3e(t,e,n,r,o,i,a){let l=a??e.projectId;if(!l)throw new Error("projectId is required in currentEntry or explicitly");return{created:e.created??"",modified:e.modified??"",projectId:l,state:r??e.state??pit,releaseId:o??e.releaseId,workflowId:n?.workflowId??e.workflowId,workflowStageId:n?.workflowStageId??e.workflowStageId,editionId:i,editionName:n?.editionName??e.editionName,editionPriority:n?.editionPriority??e.editionPriority,pattern:e.pattern,entry:{type:t.type,_id:t._id,_name:t._name,_slug:t._slug??"",fields:t.parameters,_thumbnail:n?.previewImageUrl??void 0,_dataResources:t._dataResources,_pattern:t._pattern,_patternError:t._patternError,_overridability:t._overridability,_overrides:t._overrides,_locales:t._locales,_author:t._author,_authorSubject:t._authorSubject,_creator:t._creator,_creatorSubject:t._creatorSubject,_patternDataResources:t._patternDataResources}}}function aq(t,e){let{parameters:n,...r}=t;return{...r,_id:e??r._id??"unknown",fields:n}}function sq(t){let{fields:e,...n}=t;return{...n,parameters:e}}import{CANVAS_VIZ_LOCALE_RULE as mit}from"@uniformdev/canvas";import{produce as hit}from"immer";function u3e(t,e,n){let r=hit(t.criteria,o=>c3e(o,e,n));return r&&{...t,criteria:r}}function c3e(t,e,n){if(!t)return t;let r=!1;for(let o of t.clauses)if("clauses"in o){let i=c3e(o,e,n);if(i===null){if(t.op!=="|")return null;t.clauses.splice(t.clauses.indexOf(o),1),r=!0}else i!==void 0&&(t.clauses[t.clauses.indexOf(o)]=i,r=!0)}else if(o.rule===mit){let i=Array.isArray(o.value)?o.value:[o.value],a=i.includes(e),l=i.includes(n);if(!a&&!l||a&&l)continue;if(i.length===1&&l&&!a)return null;a&&!l&&(o.value=i.concat(n),r=!0)}return r?t:void 0}var d3e=X(XZ(),1);function lq(t,e){try{return(0,d3e.get)(t,e)}catch{return}}function uq(t,e,n=0){let r=t.slice(n*4,n*4+4);if(!r)throw new Error("Failed to generate a default variation name");return`${e.startsWith("$")?e.slice(1):e}-${r}`}import{CANVAS_VIZ_LOCALE_RULE as git}from"@uniformdev/canvas";import{produce as vit}from"immer";function f3e(t,e){let n=vit(t.criteria,r=>p3e(r,e));return n&&{...t,criteria:n}}function p3e(t,e){if(!t)return t;for(let n=t.clauses.length-1;n>=0;n--){let r=t.clauses[n];if("clauses"in r){let o=p3e(r,e);if(o)t.clauses[n]=o;else if(t.clauses.splice(n,1),o===null&&t.op!=="|")return null}else if(r.rule===git){let o=Array.isArray(r.value)?r.value:[r.value],i=o.indexOf(e);if(i!==-1)if(Array.isArray(r.value)&&r.value.length>1)o.splice(i,1);else if(r.op.startsWith("!"))t.clauses.splice(n,1);else return null}}if(t.clauses.length!==0)return t}function m3e(t,e){let n=DS();if(process.env.NODE_ENV==="development"&&!e){let r=new Error().stack?.split(`
5282
5282
  `).slice(2).join(`
5283
5283
  `).trimStart();n.on("*",(o,i)=>{console.debug(`\u26A1\uFE0F ${t}:${String(o)}`,{args:i,stack:r,subs:n.all.get(String(o))?.length??0})})}return n}var Du=(0,C3e.default)(),Sit=!0,wit="Twee",Wd=class t{#e={};rootNodeId;#r={};#o={};#n;#i={};#t=m3e(wit,Sit);#u;#c;#h;#d;#s;#a;constructor(e,n){let{metadata:r,startDirty:o}=n||{};this.#s=r??{},this.#a={_name:e?._name??"",_slug:e?._slug??null},this.#d=!o;let i=Do(e,a=>{this.#v({composition:a,ignoreRootOverrides:!0,preserveChildrenSlotSections:!0}),delete a._author,delete a._authorSubject,delete a._creator,delete a._creatorSubject});this.rootNodeId=i._id??Hi(),this.#u=this.rootNodeId,this.#l({componentTree:i,nodeId:this.rootNodeId}),this.#n=i._overrides??{}}events=this.#t;exportTree(e){return this.exportSubtree(this.rootNodeId,e)}exportMetadata(){return this.#s}exportRootNodeMetadata(){return this.#a}get pristine(){return this.#d}set pristine(e){this.#d!==e&&(this.#d=e,this.#t.emit("pristineChanged",{pristine:e}))}get selectedBlockIdStack(){return this.#c}set selectedBlockIdStack(e){this.#c=e,this.#t.emit("selectedBlockChanged",{selectedBlockIds:this.#c})}get selectedNodeId(){return this.#u}set selectedNodeId(e){this.#u!==e&&(this.#u=e,this.selectedParameterId=void 0,this.#t.emit("selectedNodeChanged",{selectedNodeId:e}))}get selectedParameterId(){return this.#h}set selectedParameterId(e){this.#h!==e&&(this.#h=e,this.#t.emit("selectedParameterChanged",{selectedParameterId:e}))}pushSelectedBlockId(e){this.selectedBlockIdStack=this.selectedBlockIdStack??[],this.selectedBlockIdStack?.push(e),this.#t.emit("selectedBlockChanged",{selectedBlockIds:this.selectedBlockIdStack})}popSelectedBlockId(){this.#c?.pop(),this.#t.emit("selectedBlockChanged",{selectedBlockIds:this.selectedBlockIdStack})}getNodeById(e){return this.#e[e]}getNodesIndex(){return this.#e}getBlockNodeValueById(e){return aq(this.exportSubtree(e),e)}getNodeChildren(e){let n=this.#r[e];if(n)return n}getNodeProperty(e,n){return lq(this.#o,[e,n])}getNodeProperties(e){return this.#o[e]??{}}insertNode({node:e,parentNodeId:n,parentSlot:r,targetIndexInSlot:o,overrideNodeId:i}){let a=i??Hi();if(!this.#T(n))throw new Error("Cannot insert component into a read-only pattern slot unless it is within a slot section");let c={nodeId:a,parentId:n,value:t.#E(e),isExpandedInUI:!0,propertyValueLocalizability:{}};return this.#S({node:c,parentNodeId:n,parentSlot:r,targetIndexInSlot:o}),this.#m({nodeId:a,destinationParentId:n,destinationSlotName:r}),this.pristine=!1,this.#t.emit("nodeChanged",{changedNode:c,oldValue:void 0,type:"new"}),this.#t.emit("childrenChanged",{parentId:n,slotOrBlockName:r,newChildIds:this.#r[n][r],type:"slot"}),a}upsertBlockNode({nodeId:e,property:n,index:r,entry:o}){let i=this.#w({nodeId:e,property:n,index:r,entry:o});return this.pristine=!1,this.#t.emit("childrenChanged",{parentId:e,slotOrBlockName:n,newChildIds:this.#o[e]?.[n]?.value,type:"block"}),i}updateRootMetadata(e){let n={...this.#s};this.#s={...this.#s,...e},this.pristine=!1,this.#t.emit("metadataChanged",{metadata:this.#s,oldValue:n})}updateRootNode({update:e,doNotSetDirty:n}){let r={...this.#a};this.#a={...this.#a,...e},n||(this.pristine=!1),this.#t.emit("rootNodeMetadataChanged",{metadata:this.#a,oldValue:r})}insertPattern({parentNodeId:e,parentSlot:n,pattern:r,targetIndexInSlot:o,patternInstanceId:i}){let a=i??Hi();if(this.#e[a])throw new Error(`Node with ID '${a}' already exists. Pattern nodes must have unique IDs. Did you mean to move or duplicate this pattern instead?`);let l=this.#b(r,a,!1);return this.#f({nodeId:l,parentNodeId:e,parentSlot:n,targetIndexInSlot:o}),this.#m({nodeId:l,destinationParentId:e,destinationSlotName:n}),this.pristine=!1,this.visitNodeAndDescendants(l,c=>{this.#t.emit("nodeChanged",{changedNode:c,oldValue:void 0,type:"new"})}),this.#t.emit("childrenChanged",{parentId:e,slotOrBlockName:n,newChildIds:this.#r[e][n],type:"slot"}),l}unlinkPattern(e){let n=this.#e[e];if(!n)throw new Error(`Node ${e} does not exist`);if(!n.value._pattern)throw new Error(`Node ${e} is not a pattern`);let r=n.value._patternDataResources||n.value._dataResources,o=i3e(n.value),i=l=>{l.partOfNestedPattern||(this.updateNode({nodeId:l.nodeId,updateComponent:c=>{delete c._pattern,delete c._patternError,delete c._overrides},updateMetadata:c=>{delete c.partOfPattern,delete c.partOfNestedPattern},doNotSetDirty:!0,ignoreOverrides:!0}),this.#n[l.nodeId]&&(this.#n=Do(this.#n,c=>{delete c[l.nodeId]})))};this.visitNodeAndDescendants(e,i);let a=l=>{l.partOfNestedPattern&&this.updateNode({nodeId:l.nodeId,updateMetadata:c=>{c.partOfPattern=c.partOfNestedPattern,delete c.partOfNestedPattern},doNotSetDirty:!0,ignoreOverrides:!0})};this.visitNodeAndDescendants(e,a),r&&(this.updateNode({nodeId:this.rootNodeId,updateDataResources:l=>Object.entries(o??{}).filter(([c])=>!(c in(l??{}))).map(([c,d])=>{let{source:f,...m}=d;return{type:"set",name:c,value:m}})}),this.updateNode({nodeId:n.nodeId,updateComponent:l=>{delete l._patternDataResources},updateDataResources:"removeAll",doNotSetDirty:!0,ignoreOverrides:!0})),this.pristine=!1}convertToPattern({existingNodeId:e,pattern:n}){let r=this.#e[e],o=r?.parentId;if(!r)throw new Error(`Node ${e} does not exist`);let i=this.#b(n,e,!0);this.#e[i]=Do(this.#e[i],l=>{l.parentId=o}),this.pristine=!1;let a=this.#e[i];this.#t.emit("nodeChanged",{changedNode:a,oldValue:r,type:"new"}),Object.entries(this.#r[i]??{}).forEach(([l,c])=>{this.#t.emit("childrenChanged",{newChildIds:c,parentId:i,slotOrBlockName:l,type:"slot"})})}copyNodeToClipboard(e){let n=this.exportSubtree(e,{keepPatternData:!1}),r=this.exportSubtree(e,{keepPatternData:!0}),o=[];x0(r,({node:l})=>{l._id&&o.push(l._id)}),x0(n,({node:l})=>{l._id&&(l._overrides&&delete l._overrides,"_name"in l&&delete l._name,"_slug"in l&&delete l._slug)});let i=this.#g(),a=Object.entries(i??{}).reduce((l,[c,d])=>(o.some(f=>c.includes(f))&&(l[c]=d),l),{});return{format:"uniform/copied-component-subtree-1.0",componentData:n,overrides:Object.keys(a).length?a:void 0,pasteAs:this.getNodeById(e)?.isBlock?"block":void 0}}async pasteNodeFromClipboard({parentNodeId:e,parentSlot:n,targetIndexInParent:r,clipboard:o,resolvePattern:i}){let a=Du(o),l=async d=>{d._pattern&&c.push((async()=>{let f=await i(d._pattern);if(!f){console.debug(`Pasted pattern ${d._pattern} not found, skipping`);return}let m=this.#x(f,d._id);Object.assign(d,m)})())},c=[];return x0(a.componentData,({node:d})=>{l(d)}),a.overrides&&Object.values(a.overrides).forEach(d=>{d.slots&&Object.values(d.slots).forEach(f=>{f.forEach(m=>{x0(m,({node:h})=>{l(h)})})})}),await Promise.all(c),this.#_(a.componentData,{parentId:e,parentName:n,parentType:o.pasteAs==="block"?"block":"slot",targetIndexInParent:r},a.overrides)}enableLocale(e){this.updateNode({nodeId:this.rootNodeId,updateComponent:n=>{let r=n;r._locales??=[];let o=[...new Set([...r._locales,...Array.isArray(e)?e:[e]])];r._locales=o}})}disableLocale(e){this.updateNode({nodeId:this.rootNodeId,updateComponent:o=>{let i=o;i._locales=i._locales?.filter(a=>a!==e)}});let n=[],r=o=>{this.getNodeProperty(o.nodeId,uT)?.value===e&&!o.partOfPattern&&n.push(o.nodeId);let a=this.getNodeProperties(o.nodeId);Object.entries(a).forEach(([c,d])=>{let f=d;c!==b0&&(o.partOfPattern?this.isPatternPropertyOverridden(o.nodeId,c,e)&&this.resetPatternPropertyOverride(o.nodeId,c,e):(f?.localesConditions?.[e]?.forEach((m,h)=>{this.updateNodeProperty({nodeId:o.nodeId,property:c,value:void 0,source:"other",locale:e,conditionIndex:h,conditionDefinition:null})}),f?.locales?.[e]!==void 0&&this.updateNodeProperty({nodeId:o.nodeId,property:c,value:void 0,source:"other",locale:e,conditionIndex:-1})))});let l=this.getNodeProperty(o.nodeId,b0);if(l?.value){let c=f3e(l.value,e);c===null?n.push(o.nodeId):this.updateNodeProperty({nodeId:o.nodeId,property:b0,value:c?()=>c:void 0,source:"other",locale:void 0,conditionIndex:-1})}};this.visitNodeAndDescendants(this.rootNodeId,r),n.forEach(o=>{this.deleteNode(o)})}copyValuesToLocalePlan({sourceLocale:e,destinationLocale:n,doNotCopyDescendants:r=!1,startingNodeId:o=this.rootNodeId,specificPropertyId:i}){let a=new Map,l=d=>{if(d.value.type===yit&&!d.partOfPattern){let m=this.getNodeChildren(d.nodeId)?.[cq]??[],h=m.map(b=>this.getNodeProperty(b,uT)),g=h.findIndex(b=>b?.value===n);if(g>=0){let b=m[g];Zh(a,b).actions.push({type:"deleteLocalizedNode"})}let y=h.findIndex(b=>b?.value===e);if(y>=0){let b=m[y];Zh(a,b).actions.push({type:"duplicateLocalizedNode",targetIndexInSlot:g})}}if(a.get(d.nodeId)?.actions.some(m=>m.type==="deleteLocalizedNode"))return;let f=i?{[i]:this.getNodeProperty(d.nodeId,i)}:this.getNodeProperties(d.nodeId);Object.entries(f).forEach(([m,h])=>{if(h===void 0)return;let g=!d.partOfPattern,y=SC(d.value._overridability,m)==="yes";if(!(g||y))return;if(m===b0){let $=u3e(h.value,e,n);$===null?Zh(a,d.nodeId).actions.push({type:"deleteLocalizedNode"}):$&&Zh(a,d.nodeId).actions.push({type:"updateVisibilityCriteria",targetValue:$})}let S=h.locales?.[e],C=h.locales?.[n];(!S||!C||!xa(S,C))&&(S!==void 0?Zh(a,d.nodeId).actions.push({type:"copyPropertyValue",propertyId:m,sourceValue:S,targetValue:C,conditionIndex:-1}):C!==void 0&&Zh(a,d.nodeId).actions.push({type:"deletePropertyValue",propertyId:m,sourceValue:S,targetValue:C,conditionIndex:-1}));let w=h.localesConditions?.[e],E=h.localesConditions?.[n];w?.forEach(($,R)=>{let O=h.localesConditions?.[n]?.[R];(!$||!O||!xa($,O))&&Zh(a,d.nodeId).actions.push({type:"copyPropertyValue",propertyId:m,sourceValue:$.value,targetValue:O,conditionIndex:R,conditionDefinition:$.when})});let _=w?.length??0,N=E?.length??0;if(_<N){let $=Zh(a,d.nodeId);for(let R=_;R<N;R++)$.actions.push({type:"deletePropertyValue",propertyId:m,sourceValue:w?.[R],targetValue:E?.[R],conditionIndex:R})}})},c=this.#e[o];if(!c)throw new Error(`Node ${o} does not exist`);return l(c),!i&&!r&&this.visitDescendants(c.nodeId,l),{nodePlans:Array.from(a.values()),sourceLocale:e,destinationLocale:n}}async copyValuesToLocaleExecute({resolvePattern:e,plan:{sourceLocale:n,destinationLocale:r,nodePlans:o}}){let i=`copyLocaleExecute: ${r}`;console.time(i);for(let{nodeId:a,actions:l}of o)for(let c of l)switch(c.type){case"copyPropertyValue":{this.updateNodeProperty({nodeId:a,property:c.propertyId,source:"other",locale:r,value:()=>c.sourceValue,type:this.getNodeProperty(a,c.propertyId)?.type,conditionIndex:c.conditionIndex,conditionDefinition:c.conditionDefinition});break}case"deletePropertyValue":{this.updateNodeProperty({nodeId:a,property:c.propertyId,source:"other",locale:r,value:void 0,conditionIndex:c.conditionIndex,conditionDefinition:null});break}case"deleteLocalizedNode":{this.deleteNode(a);break}case"duplicateLocalizedNode":{let d=await this.duplicateNode(a,e);this.updateNodeProperty({nodeId:d,locale:void 0,conditionIndex:-1,type:"localeSelect",property:uT,source:"other",value:()=>r});let f=this.copyValuesToLocalePlan({sourceLocale:n,destinationLocale:r,startingNodeId:d});this.copyValuesToLocaleExecute({plan:f,resolvePattern:e}),c.targetIndexInSlot!==void 0&&this.moveNode({movedNodeId:d,parentNodeId:this.#e[a].parentId,parentSlot:cq,targetIndexInSlot:c.targetIndexInSlot});break}case"updateVisibilityCriteria":{this.updateNodeProperty({nodeId:a,property:b0,source:"other",locale:void 0,conditionIndex:-1,value:()=>c.targetValue});break}default:throw new Error(`Unhandled action type ${c.type}`)}console.timeEnd(i)}updateNode({nodeId:e,updateComponent:n,updateDataResources:r,updateMetadata:o,doNotSetDirty:i,ignoreOverrides:a}){let l=this.#e[e];if(!l)throw new Error(`Update target node ID ${e} did not exist!`);let c=Do(l,h=>{if(o&&(o(h),h.nodeId=e,h.value=l.value,h.parentId=l.parentId),n){if(n(h.value),"slots"in h.value)throw new Error("Do not set `slots` on a Twee node, insert child nodes instead.");if("parameters"in h.value)throw new Error("Do not set `parameters` on a Twee node, use updateProperties option instead.")}if(r){let g=typeof r=="function"?r(h.value._dataResources):r;if(g==="removeAll")delete h.value._dataResources;else for(let y of g){let b=a?!1:h.nodeId!==this.rootNodeId&&h.value._pattern;switch(y.type){case"set":b&&(this.#n=Do(this.#n,S=>{S[e]??={},S[e].dataResources??={},S[e].dataResources[y.name]=y.value})),h.value._dataResources??={},h.value._dataResources[y.name]=y.value;break;case"remove":b&&(this.#n=Do(this.#n,S=>{delete S[e]?.dataResources?.[y.name]})),delete h.value._dataResources?.[y.name];break;case"reset":{let S=this.#i[e]?.dataResources?.[y.name];h.value._dataResources&&(S&&Object.keys(S).length>0?h.value._dataResources[y.name]=S:delete h.value._dataResources[y.name]),this.#n=Do(this.#n,C=>{delete C[e]?.dataResources?.[y.name]})}break;default:throw new Error(`Unhandled data resource action ${y?.type}`)}}}}),d=!!(l.partOfPattern&&!l.value._patternError),f=l.value.variant!==c.value.variant,m=l.value._overridability?.variants??!1;!a&&d&&f&&m&&(this.#n=Do(this.#n,h=>{h[e]??={},h[e].variant=c.value.variant})),this.#e[e]=c,i||(this.pristine=!1),this.#t.emit("nodeChanged",{changedNode:c,type:"update",oldValue:l})}updateNodeProperty({nodeId:e,property:n,value:r,source:o,locale:i,type:a,doNotSetDirty:l=!1,ignoreOverrides:c=!1,conditionIndex:d,conditionDefinition:f}){let m=this.#e[e];if(!m)throw new Error(`Update target node ID ${e} did not exist!`);if(d<0&&f)throw new Error("Condition definition provided for non-conditional value");let h=!!(m.partOfPattern&&!m.value._patternError),g=[e,n],y=lq(this.#o,g);if(!y&&r==null)return;let b=b3e({locale:i,property:y,conditionIndex:d}),S=i?y?.localesConditions?.[i]?.[d]:y?.conditions?.[d],C=typeof r=="function"?Do(b,$=>r($)):r,w=a??y?.type;if(!w)throw new Error(`Cannot add parameter ${n} to node ${e} without specifying a type`);let E={...y,type:w},_=!1;E=Do(E,$=>{C===void 0&&d<0?_=!rO({locale:i,property:$,conditionIndex:d}):f===null&&d>=0?_=!rO({locale:i,property:$,conditionIndex:d}):iq({locale:i,property:$,newPropertyValue:C,conditionIndex:d,conditionDefinition:f??S?.when??{clauses:[]}})}),_&&(E=void 0);let N=h&&SC(m.value._overridability,n)==="yes";if(h&&!N&&!c)throw new Error(`Cannot override parameter ${n} on node ${e} because it is not marked as overridable on the pattern (${m.partOfPattern})`);if(N&&(this.#i[e]?.parameters?.[n]||(this.#i=Do(this.#i,R=>{R[e]??={parameters:{},dataResources:{}},R[e].parameters[n]=y??null}))),!c&&N){let $=this.#n[e]?.parameters?.[n];this.#n=Do(this.#n,R=>{let A=C==null||E===void 0?null:C,k=$??{type:E?.type??y?.type??"unknown",value:y?.value,conditions:y?.conditions,locales:i&&y?.locales?.[i]?{[i]:y.locales[i]}:void 0,localesConditions:i&&y?.localesConditions?.[i]?{[i]:y.localesConditions[i]}:void 0},F=Do(k,H=>{f===null&&d>=0?rO({locale:i,property:H,conditionIndex:d}):iq({locale:i,property:H,newPropertyValue:A,conditionIndex:d,conditionDefinition:f??S?.when??{clauses:[]}})});(0,C0.set)(R,`/${e}/parameters/${n}`,F)}),$||this.#t.emit("propertyOverrideCreated",{nodeId:e,property:n})}C===null?(0,C0.remove)(this.#o,g):(this.#o[e]??={},(0,C0.set)(this.#o,g,E)),l||(this.pristine=!1),this.#t.emit("nodeParameterChanged",{nodeId:e,parameter:n,locale:i,conditionIndex:d,value:E,previousValue:y,type:r?y?"update":"new":"delete",conditionDefinition:f,source:o})}isPatternPropertyOverridden(e,n,r,o){let i=this.getNodeById(e);if(!i||SC(i.value._overridability,n)==="no")return!1;let a=this.#n[e]?.parameters?.[n];return a?r?(o===void 0||o===!0)&&a.localesConditions?.[r]!==void 0||(o===void 0||o===!1)&&a.locales?.[r]!==void 0:(o===void 0||o===!0)&&a.conditions!==void 0||(o===void 0||o===!1)&&a.value!==void 0:!1}getPatternPropertyOverrideDefaultValue(e,n,r){let o=this.#i[e]?.parameters?.[n];if(!o)return{exists:!1};if(r&&o.locales?.[r])return{exists:!0,value:o,sourceLocale:r};if(o.value)return{exists:!0,value:o,sourceLocale:void 0};let i=Object.keys(o.locales??{})[0];return i?{exists:!0,value:o,sourceLocale:i}:{exists:!1}}resetPatternPropertyOverride(e,n,r){let o=[-1];this.#n=Do(this.#n,a=>{let l=a[e]?.parameters?.[n];if(l)if(r){delete l.locales?.[r];let c=l.localesConditions?.[r];c&&(c.forEach((d,f)=>{o.push(f)}),delete l.localesConditions?.[r]),l.locales&&Object.keys(l.locales).length===0&&delete l.locales,l.localesConditions&&Object.keys(l.localesConditions).length===0&&delete l.localesConditions,Object.keys(l.locales??{}).length===0&&Object.keys(l.localesConditions??{}).length===0&&delete a[e]?.parameters?.[n]}else{let c=l.conditions;c&&c.forEach((d,f)=>{o.push(f)}),delete a[e].parameters?.[n]}});let i=this.getPatternPropertyOverrideDefaultValue(e,n,r);!i.exists||i.value===null?this.updateNodeProperty({nodeId:e,property:n,value:void 0,source:"reset",locale:r,ignoreOverrides:!0,doNotSetDirty:!1,conditionIndex:-1}):o.forEach(a=>{let l=b3e({locale:i.sourceLocale,property:i.value,conditionIndex:a,strict:!0});this.updateNodeProperty({nodeId:e,property:n,value:l===void 0?void 0:()=>l,source:"reset",locale:r,type:i.value?.type,ignoreOverrides:!0,doNotSetDirty:!1,conditionIndex:a,conditionDefinition:(r?i.value?.localesConditions?.[r]?.[a]?.when:i.value?.conditions?.[a]?.when)??null})}),this.#t.emit("propertyOverrideReset",{nodeId:e,property:n,usedPatternDefault:i!==void 0})}async duplicateNode(e,n){let r=this.getParentInfo(e);if(!r)throw new Error("Cannot duplicate root node or parentless block");let o=this.copyNodeToClipboard(e);return await this.pasteNodeFromClipboard({parentNodeId:r.parentId,parentSlot:r.parentName,resolvePattern:n,targetIndexInParent:r.targetIndexInParent+1,clipboard:o})}moveNode({movedNodeId:e,parentNodeId:n,parentSlot:r,targetIndexInSlot:o}){if(!this.#e[e])throw new Error(`Cannot move node ${e} - it does not exist`);let a=this.getParentInfo(e);if(!a)throw new Error("Cannot move root node");this.#r[a.parentId][a.parentName].splice(a.targetIndexInParent,1),this.#y(a.parentId,e),this.#f({nodeId:e,parentNodeId:n,parentSlot:r,targetIndexInSlot:o}),this.#m({nodeId:e,destinationParentId:n,destinationSlotName:r,sourceSlotName:a.parentName}),this.pristine=!1,this.#t.emit("childrenChanged",{parentId:n,slotOrBlockName:r,newChildIds:this.#r[n][r],type:"slot"}),this.#t.emit("childrenChanged",{parentId:a.parentId,slotOrBlockName:a.parentName,newChildIds:this.#r[a.parentId][a.parentName],type:"slot"})}deleteNode(e,n){let r=this.getParentInfo(e);if(!r&&!n)throw new Error("Cannot delete root node");r&&!n&&(this.#r[r.parentId][r.parentName].splice(r.targetIndexInParent,1),this.#r[r.parentId][r.parentName].length===0&&delete this.#r[r.parentId][r.parentName],this.selectedNodeId===e&&(this.selectedNodeId=r.parentId),this.#y(r.parentId,e),this.#t.emit("childrenChanged",{parentId:r.parentId,slotOrBlockName:r.parentName,newChildIds:this.#r[r.parentId][r.parentName]??[],type:"slot"})),delete this.#e[e],this.#t.emit("nodeDeleted",{deletedNodeId:e}),this.pristine=!1}#y(e,n){this.#n=Do(this.#n,r=>{let o=r[e]?.slots;o&&Object.keys(o).forEach(i=>{o[i]=o[i].filter(({_id:a})=>a!==n),o[i].length===0&&delete o[i]})})}#g(){if(Object.keys(this.#n).length>0){let e=Du(this.#n);return Object.entries(e).forEach(([r,o])=>{let i=!0;if(!this.#e[r]){delete e[r];return}if(o.parameters){let a=Object.entries(o.parameters);a.forEach(([l,c])=>{let d=x3e(c);d?(o.parameters[l]=d,i=!1):delete o.parameters[l]}),a.length===0&&delete o.parameters}o.slots&&Object.entries(o.slots).forEach(([l,c])=>{if(c.length){let d=c.filter(f=>f._id).map(f=>this.exportSubtree(f._id));d?(o.slots[l]=d,i=!1):delete o.slots[l]}else delete o.slots[l]}),o.variant!==void 0&&(i=!1),o.dataResources&&Object.keys(o.dataResources).length>0&&(i=!1),i&&delete e[r]}),Object.keys(e).length===0&&(e=void 0),e}}exportSubtree(e,n){let{keepPatternData:r=!1}=n??{},o=this.#e[e];if(!o)throw new Error(`Node ${e} to export is not found`);let i=Du(o);if(e===this.rootNodeId){let c=this.#g();c?i.value._overrides=c:delete i.value._overrides;let d=i.value;d._name=this.#a._name,this.#a._slug&&(d._slug=this.#a._slug)}let a=[i],l=new Set;for(;a.length>0;){let c=a.pop();if(l.has(c.nodeId))throw new Error("Circular reference detected in the composition tree with node ID "+c.nodeId);if(l.add(c.nodeId),c.value._id=c.nodeId,!r&&(delete c.value._patternDataResources,delete c.value._patternOverrides,c.value._pattern&&c.value._dataResources)){let m=!1;Object.keys(c.value._dataResources).forEach(h=>{i.value._overrides?.[c.nodeId]?.dataResources?.[h]?delete c.value._dataResources[h]:m=!0}),m||delete c.value._dataResources}let d=this.#o[c.nodeId];if(d&&(r||!c.partOfPattern)){let m={},h=!1;Object.entries(d).forEach(([g,y])=>{if(y?.type===_c&&Array.isArray(y.value)){let b=y.value,S=[];b.forEach(C=>{let w=this.exportSubtree(C,n);S.push(aq(w,C))}),m[g]={value:S,type:_c},h=!0}else{let b=x3e(y);b&&(m[g]=b,h=!0)}}),h&&(c.value.parameters=m)}let f=this.#r[c.nodeId];!f||c.partOfPattern&&!r||Object.entries(f).forEach(([m,h])=>{h.forEach((g,y)=>{let b=this.#e[g];if(!b)throw new Error("Insanity detected.");let S=Du(b),C=c.value;C.slots=C.slots||{},(0,C0.set)(c,["value","slots",m,y.toString(10)],S.value),a.push(S)})})}return i.value}#S({parentNodeId:e,parentSlot:n,targetIndexInSlot:r,node:o}){if(!this.#e[e])throw new Error("Parent ID to insert under did not exist!");if(this.#e[o.nodeId])throw new Error(`Node with ID '${o.nodeId}' already exists. Nodes must have unique IDs. Did you mean to move or duplicate this node instead?`);this.#e[o.nodeId]=o,this.#f({nodeId:o.nodeId,parentNodeId:e,parentSlot:n,targetIndexInSlot:r})}#f({nodeId:e,parentNodeId:n,parentSlot:r,targetIndexInSlot:o}){let i=this.#e[n],a=this.#r[n]??={},l=a[r]??=[];typeof o<"u"?l.splice(o,0,e):l.push(e),i?.value.type===oO&&(this.#n=Do(this.#n,c=>{c[n]=c[n]??{},c[n].slots={[bit]:l.map(d=>({_id:d,type:this.#e[d].value.type}))}})),this.#e[e]=Do(this.#e[e],c=>{c.parentId=n})}#w({nodeId:e,property:n,index:r,entry:o}){let i=this.getNodeById(e);if(!i)throw new Error("Node doesn't exist");let l={nodeId:o._id??Hi(),value:{type:o.type,_dataResources:o._dataResources},isBlock:!0,parentId:e,propertyValueLocalizability:{}},c=this.getNodeProperty(i.nodeId,n);if(c&&c.type!==_c)throw new Error("Parameter already exists and isn't a block parameter");let d=this.#e[l.nodeId];this.#e[l.nodeId]=l;let f=Du(this.getNodeProperty(i.nodeId,n)?.value?.filter(m=>this.getNodeById(m))??[]);if(typeof r<"u"){if(r<0)throw new Error("parameter index cannot be less than 0");let m=-1;if(f.forEach((h,g)=>{h===l.nodeId&&(m=g)}),r>f.length+(m===-1?1:0))throw new Error(`Parameter index ${r} outside current index bounds.`);m>-1&&m!==r&&(f=f.filter(h=>h!==l.nodeId),f.splice(r,0,l.nodeId))}else f.push(l.nodeId);return Object.entries(o?.fields??{}).forEach(([m,h])=>{if(h.type===_c&&Array.isArray(h.value)){let g=h.value,y=[];g.forEach(b=>{this.#l({nodeId:l.nodeId,componentTree:sq(b)}),y.push(b._id)}),this.updateNodeProperty({nodeId:l.nodeId,property:m,type:h.type,value:()=>y,source:"other",locale:void 0,conditionIndex:-1})}else this.updateNodeProperty({nodeId:l.nodeId,property:m,type:h.type,value:()=>h.value,source:"other",locale:void 0,conditionIndex:-1})}),this.updateNodeProperty({nodeId:i.nodeId,property:n,type:_c,value:()=>f,source:"other",locale:void 0,conditionIndex:-1}),this.#t.emit("nodeChanged",{changedNode:i,oldValue:void 0,type:d?"update":"new"}),this.#t.emit("nodeParameterChanged",{nodeId:i.nodeId,parameter:n,previousValue:c,source:"other",type:d?"update":"new",locale:void 0,conditionIndex:-1,conditionDefinition:void 0,value:{type:_c,value:f}}),{blockIds:f}}#l({componentTree:e,nodeId:n,partOfPattern:r,partOfNestedPattern:o,resetUids:i,isBlock:a,allowReplacement:l}){let{slots:c,parameters:d,_id:f,_overrides:m,...h}=e,g=r??h._pattern,y=h._pattern&&h._pattern!==g?h._pattern:o,b=n??(i?void 0:f)??Hi();if(this.#e[b]&&!l)throw new Error(`Node with ID '${b}' already exists. Nodes must have unique IDs.`);let S={nodeId:b,value:h,partOfPattern:g,partOfNestedPattern:y,isBlock:a,propertyValueLocalizability:Object.entries(d??{}).reduce((C,[w,E])=>(C[w]=d6({definition:void 0,currentValue:E,lastUserChoice:void 0}),C),{})};return g&&(S.partOfPattern=g),this.#e[S.nodeId]=S,d&&Object.entries(d).forEach(([C,w])=>{let{connectedData:E,..._}=w,N=E?Cit(xit(E)):w.value;if(w?.type===_c&&Array.isArray(N)){let $=N,R=[];$?.forEach(O=>{let A={...O,_id:i?Hi():O._id??Hi()};if(this.#e[A._id])throw new Error(`Block node with ID '${A._id}' already exists. Block nodes must have unique IDs.`);return R.push(A._id),this.#e[A._id]={nodeId:A._id,value:{type:_c},propertyValueLocalizability:{}},this.#l({componentTree:sq(A),nodeId:A._id,allowReplacement:!0}),this.#e[A._id].isBlock=!0,this.#e[A._id].parentId=S.nodeId,this.#e[A._id]}),N=R}this.#o[S.nodeId]=this.#o[S.nodeId]??{},(0,C0.set)(this.#o,[S.nodeId,C],{..._,value:N})}),c&&Object.entries(c).forEach(([C,w])=>{let E=w.map(_=>{if(this.#e[_._id??""]?.isBlock)return;let N=this.#l({componentTree:_,partOfPattern:h.type===oO?void 0:g,partOfNestedPattern:h.type===oO?void 0:y,resetUids:i});return this.#e[N].parentId=S.nodeId,N});this.#r[S.nodeId]=this.#r[S.nodeId]??{},this.#r[S.nodeId][C]=E.filter(_=>_)}),S.nodeId}#b(e,n,r){let o=this.#x(e,n);return this.#l({componentTree:o,nodeId:n,allowReplacement:r})}#x(e,n){let r=Du(e);return this.#v({composition:r}),QL(r,n),r._pattern=e._id,delete r._id,delete r._name,delete r._slug,delete r._overrides,delete r._locales,delete r._author,delete r._authorSubject,delete r._creator,delete r._creatorSubject,r._dataResources&&(r._patternDataResources=Du(r._dataResources),delete r._dataResources),r}getParentInfo(e){let{parentId:n,isBlock:r}=this.#e[e]??{};if(!n)return;let o=this.#e[n];if(o)if(r)for(let[i,a]of Object.entries(this.#o[n]??{})){if(a?.type!==_c)continue;let l=Array.isArray(a.value)?a.value:[],c=l.indexOf(e);if(c>=0)return{value:o.value,parentId:n,parentName:i,targetIndexInParent:c,parentChildIds:l,parentType:"block"}}else{let i=this.#r[n];if(!i&&!r)throw new Error("Sanity failed; parent had no children!");for(let[a,l]of Object.entries(i??{})){let c=l.indexOf(e);if(c>=0)return{value:o.value,parentId:n,parentName:a,targetIndexInParent:c,parentChildIds:l,parentType:"slot"}}return}}static#E(e){return Do(e,r=>{delete r.slots,delete r.parameters})}#T(e){let n=e;for(;n;){let r=this.getNodeById(n);if(!r)break;if(r.value._pattern)return!1;if(r.value.type===oO||!r.partOfPattern)return!0;n=r.parentId}return!0}#_(e,n,r){let i={...this.#g(),...r},a;if(this.#n=Do(this.#n,c=>{this.#i=Do(this.#i,d=>{a=nO(e,i,(f,m,h)=>{c[f]=m,d[f]=this.#i[h]})})}),!a)throw new Error("Failed to duplicate component");a=Do(a,c=>{c._overrides=Du(this.#n),this.#v({composition:c,preserveChildrenSlotSections:!0})});let l=this.#l({componentTree:a,isBlock:n.parentType==="block"});if(n.parentType==="block"){let c=this.getNodeProperty(n.parentId,n.parentName)?.value??[],d=[...c.slice(0,n.targetIndexInParent),l,...c.slice(n.targetIndexInParent)];this.updateNodeProperty({nodeId:n.parentId,property:n.parentName,type:_c,value:()=>d,locale:void 0,conditionIndex:-1,source:"other"}),this.#e[l].parentId=n.parentId,this.#t.emit("nodeChanged",{changedNode:this.getNodeById(l),type:"new",oldValue:void 0}),this.#t.emit("childrenChanged",{parentId:n.parentId,slotOrBlockName:n.parentName,newChildIds:d,type:"block"})}else{this.#f({nodeId:l,parentNodeId:n.parentId,parentSlot:n.parentName,targetIndexInSlot:n.targetIndexInParent}),this.#m({nodeId:l,destinationParentId:n.parentId,destinationSlotName:n.parentName}),this.#t.emit("childrenChanged",{parentId:n.parentId,slotOrBlockName:n.parentName,newChildIds:this.#r[n.parentId][n.parentName],type:"slot"});let c=d=>{this.#t.emit("nodeChanged",{changedNode:d,type:"new",oldValue:void 0})};this.visitNodeAndDescendants(l,c)}return this.pristine=!1,l}#v({composition:e,ignoreRootOverrides:n,preserveChildrenSlotSections:r}){this.#i=Do(this.#i,i=>{let a=oq({beforeApplyParameterOverride(d,f,m){i[d._id]??={parameters:{},dataResources:{}},i[d._id].parameters[f]=Du(m)},beforeApplyDataResourceOverride(d,f,m){d._dataResources?.[f]?.ignorePatternParameterDefault||(i[d._id]??={parameters:{},dataResources:{}},i[d._id].dataResources[f]=Du(m))}}),l=oq({beforeApplyParameterOverride(d,f,m,h){i[d._id]?.parameters[f]||(i[d._id]??={parameters:{},dataResources:{}},i[d._id].parameters[f]=Du(h??null))},beforeApplyDataResourceOverride(d,f,m,h){d._dataResources?.[f]?.ignorePatternParameterDefault||i[d._id]?.dataResources[f]||(i[d._id]??={parameters:{},dataResources:{}},i[d._id].dataResources[f]=Du(h))}});if(n){let{_overrides:d,...f}=e;x0(f,({node:m})=>{a.visitNode(m)})}let c=n?l:a;x0(e,({node:d})=>{c.visitNode(d)})});let o=t3e({preserveOwnSlotSections:!0,preserveChildrenSlotSections:r});x0(e,i=>{o(i)})}visitNodeAndDescendants(e,n){let r=this.getNodeById(e);if(!r)throw new Error("Insanity detected.");n(r),this.visitDescendants(e,n)}visitDescendants(e,n){let r=this.#p(e,new Set);for(let o of r)n(...o)}async visitDescendantsAsync(e,n){let r=this.#p(e,new Set);for(let o of r)await n(...o)}*#p(e,n){let r=this.#e[e],o=this.#r[e]??{},i=Object.entries(this.#o[e]??{}).filter(([,a])=>a?.type===_c)??[];if(!r)throw new Error("Insanity detected.");n.add(e);for(let[a,l]of i){let c=l.value??[];for(let d=0;d<c.length;d++){let f=c[d],m=this.#e[f];if(m){if(n.has(f)){console.error(`Detected parent/child cycle in composition, ID ${f} exists more than once. The traversal of descendants will be aborted for the cycle subtree.`);continue}yield[m,r,a,d];for(let h of this.#p(f,n))yield h}}}for(let[a,l]of Object.entries(o))for(let c=0;c<l.length;c++){let d=l[c],f=this.#e[d];if(f){if(n.has(d)){console.error(`Detected parent/child cycle in composition, ID ${d} exists more than once. The traversal of descendants will be aborted for the cycle subtree.`);continue}yield[f,r,a,c];for(let m of this.#p(d,n))yield m}}}#m({nodeId:e,destinationParentId:n,destinationSlotName:r,sourceSlotName:o}){let i=r,a=o===g3e,l=i===g3e,c=o===v3e,d=i===v3e,f=i===cq,m=this.getNodeProperty(e,h3e);l&&m&&this.updateNodeProperty({nodeId:e,property:h3e,value:void 0,source:"other",locale:void 0,conditionIndex:-1});let h=this.getNodeProperty(e,cT);!l&&h&&this.updateNodeProperty({nodeId:e,property:cT,value:void 0,source:"other",locale:void 0,conditionIndex:-1}),l&&!a&&this.#C({nodeId:e,siblingIds:this.getNodeChildren(n)?.[r]??[],selectExistingName:b=>this.getNodeProperty(b,cT)?.value?.name,setName:b=>this.updateNodeProperty({nodeId:e,property:cT,value:S=>S&&typeof S=="object"&&S!==null?{...S,name:b}:{name:b,crit:[]},source:"other",locale:void 0,conditionIndex:-1,type:cT})}),d&&!c&&this.#C({nodeId:e,siblingIds:this.getNodeChildren(n)?.[r]??[],selectExistingName:b=>this.getNodeProperty(b,y3e)?.value?.id,setName:b=>this.updateNodeProperty({nodeId:e,property:y3e,value:S=>S&&typeof S=="object"&&S!==null?{...S,id:b}:{id:b},source:"other",locale:void 0,conditionIndex:-1,type:"testVariant"})});let g=this.getNodeProperty(e,uT);!f&&g&&this.updateNodeProperty({nodeId:e,property:uT,value:void 0,source:"other",locale:void 0,conditionIndex:-1});let y=this.getNodeProperty(e,b0);(l||f||d)&&y&&this.updateNodeProperty({nodeId:e,property:b0,value:void 0,source:"other",locale:void 0,conditionIndex:-1})}#C({nodeId:e,siblingIds:n,selectExistingName:r,setName:o}){let i=r(e),a=m=>n.some(h=>h===e?!1:r(h)===m),l=i&&a(i);if(i&&!l)return;let c=this.getNodeById(e)?.value.type;if(!c)throw new Error("Insanity detected.");let d=0,f=uq(e,c,d);do f=uq(e,c,d),d++;while(a(f));o(f)}};function x3e(t){return t?.value===void 0&&!t?.conditions&&!t?.locales&&!t?.localesConditions?null:t}function Zh(t,e){return Eit(t,e,()=>({nodeId:e,actions:[]}))}function Eit(t,e,n){return t.has(e)||t.set(e,n()),t.get(e)}import{CANVAS_DRAFT_STATE as uO,CanvasClient as $it}from"@uniformdev/canvas";import{produce as Nit}from"immer";function S3e(t){return t.reduce((e,n)=>(e[n._id]={id:n._id,type:n.type,name:n._name},e),{})}import{CANVAS_DRAFT_STATE as _3e,CanvasClient as dq,ContentClient as D3e,ProjectClient as $3e}from"@uniformdev/canvas";var w3e=X(j4e());var E3e=(0,w3e.default)(6),iO=class t extends Error{constructor(n,r,o,i,a,l){super(`${n}
5284
- ${i}${a?" "+a:""} (${r} ${o}${l?` Request ID: ${l}`:""})`);this.errorMessage=n;this.fetchMethod=r;this.fetchUri=o;this.statusCode=i;this.statusText=a;this.requestId=l;Object.setPrototypeOf(this,t.prototype)}};var aO=class t{options;constructor(e){if(!e.apiKey&&!e.bearerToken)throw new Error("You must provide an API key or a bearer token");let n=e.fetch;if(!n)if(typeof window<"u")n=window.fetch.bind(window);else if(typeof fetch<"u")n=fetch;else throw new Error("You must provide or polyfill a fetch implementation when not in a browser");this.options={...e,fetch:n,apiHost:this.ensureApiHost(e.apiHost),apiKey:e.apiKey??null,projectId:e.projectId??null,bearerToken:e.bearerToken??null,limitPolicy:e.limitPolicy??E3e,bypassCache:e.bypassCache??!1}}async apiClient(e,n){return(await this.apiClientWithResponse(e,n)).body}async apiClientWithResponse(e,n){return this.options.limitPolicy(async()=>{let r=this.options.apiKey?{"x-api-key":this.options.apiKey}:{Authorization:`Bearer ${this.options.bearerToken}`};this.options.bypassCache&&(r["x-bypass-cache"]="true");let{fetch:o,signal:i}=this.options,l=await Tit(()=>o(e.toString(),{...n,signal:i,headers:{...n?.headers,...r}}));if(!l.ok){let c="";try{let d=await l.text();try{let f=JSON.parse(d);f.errorMessage?c=Array.isArray(f.errorMessage)?f.errorMessage.join(", "):f.errorMessage:c=d}catch{c=d}}catch{c="General error"}throw new iO(c,n?.method??"GET",e.toString(),l.status,l.statusText,t.getRequestId(l))}return n?.expectNoContent?{response:l,body:null}:{response:l,body:await l.json()}})}createUrl(e,n,r){let o=new URL(`${r??this.options.apiHost}${e}`);return Object.entries(n??{}).forEach(([i,a])=>{typeof a<"u"&&a!==null&&o.searchParams.append(i,Array.isArray(a)?a.join(","):a?.toString()??"")}),o}ensureApiHost(e){if(!e)return"https://uniform.app";if(!e?.startsWith("http"))throw new Error('Your apiHost must start with "http"');if(e.indexOf("/",8)>-1)throw new Error("Your apiHost must not contain a path element after the domain");if(e.indexOf("?")>-1)throw new Error("Your apiHost must not contain a query string");return e?.endsWith("/")&&(e=e.substring(0,e.length-1)),e}static getRequestId(e){let n=e.headers.get("apigw-requestid");if(n)return n}};async function Tit(t){let n=5,r;for(;n>0&&(r=await t(),r.status===429);){let o=0;try{let l=r.clone(),c=l.headers.get("date"),d=c?new Date(c).getTime():void 0,m=(await l.json())?.info?.reset;typeof d=="number"&&typeof m=="number"&&(o=Math.max(0,Math.min(Math.round(1.1*(m-d)),1e4)))}catch{}let i=Math.pow(2,5-n)*333,a=i+Math.round(Math.random()*(i/2))*(Math.random()>.5?1:-1);await new Promise(l=>setTimeout(l,o+a)),n-=1}return r}var sO=class extends aO{telemetryContext;constructor(e){e.apiHost||(e.apiHost="https://ai.uniform.global"),super(e),this.telemetryContext=e.telemetryContext}async invoke(e,n){let r={};if(this.telemetryContext){let{threadId:i,uniformClient:a,userAgent:l}=this.telemetryContext;i&&(r["x-thread-id"]=i),a&&(r["x-uniform-client"]=a),l&&(r["user-agent"]=l)}return(await this.apiClientWithResponse(new URL(`/projects/${this.options.projectId}/tools/${e}`,this.options.apiHost),{method:"POST",body:n?JSON.stringify(n):void 0,headers:Object.keys(r).length>0?r:void 0})).body}};var T3e={name:"@uniformdev/uniform-mcp",version:"20.36.0",description:"Uniform MCP Server",license:"SEE LICENSE IN LICENSE.txt",bin:{"uniform-mcp":"./dist/index.mjs"},exports:{types:"./dist/index.d.mts",import:"./dist/index.mjs"},sideEffects:!1,scripts:{build:"tsup",dev:"tsup --watch",clean:"rimraf dist",test:"vitest run",lint:'eslint "src/**/*.{js,ts,tsx}"',format:'prettier --write "src/**/*.{js,ts,tsx}"',mcp:"node dist/index.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.12.0","@uniformdev/canvas":"workspace:*","fast-json-patch":"^3.1.1",immer:"10.1.1",zod:"3.23.8"},files:["/dist"],publishConfig:{access:"public"},devDependencies:{"@uniformdev/design-system":"workspace:*","@uniformdev/files":"workspace:*","@uniformdev/mesh-edgehancer-sdk":"workspace:*","@uniformdev/richtext":"workspace:*",vitest:"3.2.4"}};function dT(){return new sO({...pt,apiHost:pt.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${T3e.version}`,uniformClient:"mcp"}})}function N3e(){let t,e,n;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new $3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let o=await new dq(pt).getComponentDefinitions({limit:1e3,includeSystem:!0});return e=Object.fromEntries(o.componentDefinitions.map(i=>[i.id,i])),e},fetchPatterns:async()=>{if(n!==void 0)return n;let o=await new dq(pt).getCompositionList({limit:1e3,pattern:!0,patternType:"component",resolveData:!1,skipPatternResolution:!0,skipOverridesResolution:!0,state:_3e});return n=S3e(o.compositions.map(i=>i.composition)),n},resolvePatternData:async r=>(await new dq(pt).getCompositionById({compositionId:r,state:_3e,skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.composition,getToolClient:async()=>dT(),getDimensionGuidance:async()=>{}}}function L3e(){let t,e;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new $3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let r=await new D3e(pt).getContentTypes({limit:1e3});return e=Object.fromEntries(r.contentTypes.map(o=>[o.id,a3e(o)])),e},fetchPatterns:async()=>({}),resolvePatternData:async n=>{let o=(await new D3e(pt).getEntries({entryIDs:[n],skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.entries[0];return lT(o).composition},getToolClient:async()=>dT(),getDimensionGuidance:async()=>{}}}import{LocaleClient as Dit}from"@uniformdev/canvas";async function lO(t){if(!t||t.length===0)return;let r=(await new Dit(pt).get()).results.map(i=>i.locale),o=t.filter(i=>!r.includes(i));if(o.length>0)throw new Error(`The following locales are not registered in your project: ${o.join(", ")}`)}async function cO({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new $it(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};if(t==="duplicate"){if(c=await a.getCompositionById({compositionId:e,state:uO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");let m=crypto.randomUUID(),h=r3e(c.composition,m),g=Nit(h,y=>{y._name=`${y._name} (copy)`,y._slug&&(y._slug=`${y._slug}-copy${y._slug?.endsWith("/")?"/":""}`)});l=new Wd(g),e=m}else if(t==="create"){if(!n)throw new Error("Instructions are required for create");if(!n.name)throw new Error("Name is required for create");if(!n.type)throw new Error("Type is required for create");if(!o)l=new Wd({_id:e,_name:n.name,type:n.type,_overridability:{hideLockedParameters:!0}});else{let m={composition:{_id:e,_name:n.name,type:n.type,_pattern:o},projectId:pt.projectId,state:uO,pattern:!1};await a.updateComposition(m),d=e}}if(d){if(c=await a.getCompositionById({compositionId:e,state:uO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");l=new Wd(c.composition)}if(t==="delete"&&await a.removeComposition({compositionId:e}),l){await lO(n?.localeUpdates?.enableLocales),f=await ZL({twee:l,descriptionUpdate:void 0,slugUpdate:void 0,nameUpdate:n?.name,propertyUpdates:n?.parameterUpdates??[],dataResourceUpdates:n?.dataResourceUpdates??[],localeUpdates:n?.localeUpdates,slotUpdates:n??{},currentEditorLocale:void 0,referenceData:N3e(),isEditingPattern:r});let m=l.exportTree(),h=l.exportMetadata(),g={composition:m,projectId:pt.projectId,state:uO,pattern:r,releaseId:c?.releaseId,editionId:c?.editionId,...h};await a.updateComposition(g)}return{content:[{type:"text",text:JSON.stringify({...f,editUrl:i(e)},null,2)}]}}function dO(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}async function fO(t,e){return await dT().invoke("createFilterExpression",{...t,entityType:e})}var Lit={action:fT.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:fT.string().uuid().describe("UUID of the composition instance to create, update, delete, or duplicate"),patternId:fT.string().uuid().describe("Composition pattern ID to create the composition from. Omit when not creating, or when creating a composition without a composition pattern.").optional(),instructions:vne.describe("Modification instructions for the composition. Omit for delete and duplicate.").optional()};function O3e(t){t.tool("compositionAction","Creates, updates, or deletes a Uniform Composition",Lit,async e=>await cO({...e,isPattern:!1,getEditUrl:dO,patternId:e.patternId}))}import*as Yr from"zod";var Oit=Yr.object({field:Yr.string(),operator:Yr.string(),value:Yr.string().or(Yr.array(Yr.string()))}),Rit=Yr.object({filter:Yr.array(Oit),error:Yr.string().describe("An error message if the filter expression could not be created, otherwise an empty string"),sort:Yr.array(Yr.enum(["created_at_ASC","created_at_DESC","updated_at_ASC","updated_at_DESC","author_ASC","author_DESC","creator_ASC","creator_DESC","name_ASC","name_DESC","slug_ASC","slug_DESC"])),limit:Yr.number().min(1).max(100),offset:Yr.number().min(0),keyword:Yr.string(),locale:Yr.string().optional()}),Ep=Yr.object({searchExpressionPrompt:Yr.string().describe(`Describe what you are looking for, for example "created by me in the last week" or "type is article and headline contains breaking news" or "keyword search for breaking news".
5284
+ ${i}${a?" "+a:""} (${r} ${o}${l?` Request ID: ${l}`:""})`);this.errorMessage=n;this.fetchMethod=r;this.fetchUri=o;this.statusCode=i;this.statusText=a;this.requestId=l;Object.setPrototypeOf(this,t.prototype)}};var aO=class t{options;constructor(e){if(!e.apiKey&&!e.bearerToken)throw new Error("You must provide an API key or a bearer token");let n=e.fetch;if(!n)if(typeof window<"u")n=window.fetch.bind(window);else if(typeof fetch<"u")n=fetch;else throw new Error("You must provide or polyfill a fetch implementation when not in a browser");this.options={...e,fetch:n,apiHost:this.ensureApiHost(e.apiHost),apiKey:e.apiKey??null,projectId:e.projectId??null,bearerToken:e.bearerToken??null,limitPolicy:e.limitPolicy??E3e,bypassCache:e.bypassCache??!1}}async apiClient(e,n){return(await this.apiClientWithResponse(e,n)).body}async apiClientWithResponse(e,n){return this.options.limitPolicy(async()=>{let r=this.options.apiKey?{"x-api-key":this.options.apiKey}:{Authorization:`Bearer ${this.options.bearerToken}`};this.options.bypassCache&&(r["x-bypass-cache"]="true");let{fetch:o,signal:i}=this.options,l=await Tit(()=>o(e.toString(),{...n,signal:i,headers:{...n?.headers,...r}}));if(!l.ok){let c="";try{let d=await l.text();try{let f=JSON.parse(d);f.errorMessage?c=Array.isArray(f.errorMessage)?f.errorMessage.join(", "):f.errorMessage:c=d}catch{c=d}}catch{c="General error"}throw new iO(c,n?.method??"GET",e.toString(),l.status,l.statusText,t.getRequestId(l))}return n?.expectNoContent?{response:l,body:null}:{response:l,body:await l.json()}})}createUrl(e,n,r){let o=new URL(`${r??this.options.apiHost}${e}`);return Object.entries(n??{}).forEach(([i,a])=>{typeof a<"u"&&a!==null&&o.searchParams.append(i,Array.isArray(a)?a.join(","):a?.toString()??"")}),o}ensureApiHost(e){if(!e)return"https://uniform.app";if(!e?.startsWith("http"))throw new Error('Your apiHost must start with "http"');if(e.indexOf("/",8)>-1)throw new Error("Your apiHost must not contain a path element after the domain");if(e.indexOf("?")>-1)throw new Error("Your apiHost must not contain a query string");return e?.endsWith("/")&&(e=e.substring(0,e.length-1)),e}static getRequestId(e){let n=e.headers.get("apigw-requestid");if(n)return n}};async function Tit(t){let n=5,r;for(;n>0&&(r=await t(),r.status===429);){let o=0;try{let l=r.clone(),c=l.headers.get("date"),d=c?new Date(c).getTime():void 0,m=(await l.json())?.info?.reset;typeof d=="number"&&typeof m=="number"&&(o=Math.max(0,Math.min(Math.round(1.1*(m-d)),1e4)))}catch{}let i=Math.pow(2,5-n)*333,a=i+Math.round(Math.random()*(i/2))*(Math.random()>.5?1:-1);await new Promise(l=>setTimeout(l,o+a)),n-=1}return r}var sO=class extends aO{telemetryContext;constructor(e){e.apiHost||(e.apiHost="https://ai.uniform.global"),super(e),this.telemetryContext=e.telemetryContext}async invoke(e,n){let r={};if(this.telemetryContext){let{threadId:i,uniformClient:a,userAgent:l}=this.telemetryContext;i&&(r["x-thread-id"]=i),a&&(r["x-uniform-client"]=a),l&&(r["user-agent"]=l)}return(await this.apiClientWithResponse(new URL(`/projects/${this.options.projectId}/tools/${e}`,this.options.apiHost),{method:"POST",body:n?JSON.stringify(n):void 0,headers:Object.keys(r).length>0?r:void 0})).body}};var T3e={name:"@uniformdev/uniform-mcp",version:"20.36.1",description:"Uniform MCP Server",license:"SEE LICENSE IN LICENSE.txt",bin:{"uniform-mcp":"./dist/index.mjs"},exports:{types:"./dist/index.d.mts",import:"./dist/index.mjs"},sideEffects:!1,scripts:{build:"tsup",dev:"tsup --watch",clean:"rimraf dist",test:"vitest run",lint:'eslint "src/**/*.{js,ts,tsx}"',format:'prettier --write "src/**/*.{js,ts,tsx}"',mcp:"node dist/index.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.12.0","@uniformdev/canvas":"workspace:*","fast-json-patch":"^3.1.1",immer:"10.1.1",zod:"3.23.8"},files:["/dist"],publishConfig:{access:"public"},devDependencies:{"@uniformdev/design-system":"workspace:*","@uniformdev/files":"workspace:*","@uniformdev/mesh-edgehancer-sdk":"workspace:*","@uniformdev/richtext":"workspace:*",vitest:"3.2.4"}};function dT(){return new sO({...pt,apiHost:pt.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${T3e.version}`,uniformClient:"mcp"}})}function N3e(){let t,e,n;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new $3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let o=await new dq(pt).getComponentDefinitions({limit:1e3,includeSystem:!0});return e=Object.fromEntries(o.componentDefinitions.map(i=>[i.id,i])),e},fetchPatterns:async()=>{if(n!==void 0)return n;let o=await new dq(pt).getCompositionList({limit:1e3,pattern:!0,patternType:"component",resolveData:!1,skipPatternResolution:!0,skipOverridesResolution:!0,state:_3e});return n=S3e(o.compositions.map(i=>i.composition)),n},resolvePatternData:async r=>(await new dq(pt).getCompositionById({compositionId:r,state:_3e,skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.composition,getToolClient:async()=>dT(),getDimensionGuidance:async()=>{}}}function L3e(){let t,e;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new $3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let r=await new D3e(pt).getContentTypes({limit:1e3});return e=Object.fromEntries(r.contentTypes.map(o=>[o.id,a3e(o)])),e},fetchPatterns:async()=>({}),resolvePatternData:async n=>{let o=(await new D3e(pt).getEntries({entryIDs:[n],skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.entries[0];return lT(o).composition},getToolClient:async()=>dT(),getDimensionGuidance:async()=>{}}}import{LocaleClient as Dit}from"@uniformdev/canvas";async function lO(t){if(!t||t.length===0)return;let r=(await new Dit(pt).get()).results.map(i=>i.locale),o=t.filter(i=>!r.includes(i));if(o.length>0)throw new Error(`The following locales are not registered in your project: ${o.join(", ")}`)}async function cO({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new $it(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};if(t==="duplicate"){if(c=await a.getCompositionById({compositionId:e,state:uO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");let m=crypto.randomUUID(),h=r3e(c.composition,m),g=Nit(h,y=>{y._name=`${y._name} (copy)`,y._slug&&(y._slug=`${y._slug}-copy${y._slug?.endsWith("/")?"/":""}`)});l=new Wd(g),e=m}else if(t==="create"){if(!n)throw new Error("Instructions are required for create");if(!n.name)throw new Error("Name is required for create");if(!n.type)throw new Error("Type is required for create");if(!o)l=new Wd({_id:e,_name:n.name,type:n.type,_overridability:{hideLockedParameters:!0}});else{let m={composition:{_id:e,_name:n.name,type:n.type,_pattern:o},projectId:pt.projectId,state:uO,pattern:!1};await a.updateComposition(m),d=e}}if(d){if(c=await a.getCompositionById({compositionId:e,state:uO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");l=new Wd(c.composition)}if(t==="delete"&&await a.removeComposition({compositionId:e}),l){await lO(n?.localeUpdates?.enableLocales),f=await ZL({twee:l,descriptionUpdate:void 0,slugUpdate:void 0,nameUpdate:n?.name,propertyUpdates:n?.parameterUpdates??[],dataResourceUpdates:n?.dataResourceUpdates??[],localeUpdates:n?.localeUpdates,slotUpdates:n??{},currentEditorLocale:void 0,referenceData:N3e(),isEditingPattern:r});let m=l.exportTree(),h=l.exportMetadata(),g={composition:m,projectId:pt.projectId,state:uO,pattern:r,releaseId:c?.releaseId,editionId:c?.editionId,...h};await a.updateComposition(g)}return{content:[{type:"text",text:JSON.stringify({...f,editUrl:i(e)},null,2)}]}}function dO(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}async function fO(t,e){return await dT().invoke("createFilterExpression",{...t,entityType:e})}var Lit={action:fT.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:fT.string().uuid().describe("UUID of the composition instance to create, update, delete, or duplicate"),patternId:fT.string().uuid().describe("Composition pattern ID to create the composition from. Omit when not creating, or when creating a composition without a composition pattern.").optional(),instructions:vne.describe("Modification instructions for the composition. Omit for delete and duplicate.").optional()};function O3e(t){t.tool("compositionAction","Creates, updates, or deletes a Uniform Composition",Lit,async e=>await cO({...e,isPattern:!1,getEditUrl:dO,patternId:e.patternId}))}import*as Yr from"zod";var Oit=Yr.object({field:Yr.string(),operator:Yr.string(),value:Yr.string().or(Yr.array(Yr.string()))}),Rit=Yr.object({filter:Yr.array(Oit),error:Yr.string().describe("An error message if the filter expression could not be created, otherwise an empty string"),sort:Yr.array(Yr.enum(["created_at_ASC","created_at_DESC","updated_at_ASC","updated_at_DESC","author_ASC","author_DESC","creator_ASC","creator_DESC","name_ASC","name_DESC","slug_ASC","slug_DESC"])),limit:Yr.number().min(1).max(100),offset:Yr.number().min(0),keyword:Yr.string(),locale:Yr.string().optional()}),Ep=Yr.object({searchExpressionPrompt:Yr.string().describe(`Describe what you are looking for, for example "created by me in the last week" or "type is article and headline contains breaking news" or "keyword search for breaking news".
5285
5285
  You can specify multiple criteria (AND only).
5286
5286
  You can filter by date, number, or string properties on the definition, as well as name, created, modified, author, slug, enabled locales, type, and publish status.`),username:Yr.string().describe("The username of the current user. If you do not know the username, use an empty string"),locale:Yr.string().describe("The current locale. If there is no current locale, use an empty string")}),gWt={displayName:"Create filter expression",description:"Creates a Uniform search filter expression for searching entries, patterns, or compositions from a user prompt. Meant to be a callable tool only.",inputSchema:Ep.extend({entityType:Yr.enum(["composition","entry","componentPattern","compositionPattern","entryPattern"]).describe("The entity type we are creating a filter for")}),outputSchema:Rit,runsAt:"server",timeout:10,callable:!0};import*as jwe from"zod";var Tp=class extends Error{},pO=class extends Tp{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},mO=class extends Tp{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},hO=class extends Tp{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Dc=class extends Tp{},wC=class extends Tp{constructor(e){super(`Invalid unit ${e}`)}},Go=class extends Tp{},$c=class extends Tp{constructor(){super("Zone is an abstract class")}};var ze="numeric",Nc="short",zl="long",qh={year:ze,month:ze,day:ze},pT={year:ze,month:Nc,day:ze},fq={year:ze,month:Nc,day:ze,weekday:Nc},mT={year:ze,month:zl,day:ze},hT={year:ze,month:zl,day:ze,weekday:zl},gT={hour:ze,minute:ze},vT={hour:ze,minute:ze,second:ze},yT={hour:ze,minute:ze,second:ze,timeZoneName:Nc},bT={hour:ze,minute:ze,second:ze,timeZoneName:zl},xT={hour:ze,minute:ze,hourCycle:"h23"},CT={hour:ze,minute:ze,second:ze,hourCycle:"h23"},ST={hour:ze,minute:ze,second:ze,hourCycle:"h23",timeZoneName:Nc},wT={hour:ze,minute:ze,second:ze,hourCycle:"h23",timeZoneName:zl},ET={year:ze,month:ze,day:ze,hour:ze,minute:ze},TT={year:ze,month:ze,day:ze,hour:ze,minute:ze,second:ze},_T={year:ze,month:Nc,day:ze,hour:ze,minute:ze},DT={year:ze,month:Nc,day:ze,hour:ze,minute:ze,second:ze},pq={year:ze,month:Nc,day:ze,weekday:Nc,hour:ze,minute:ze},$T={year:ze,month:zl,day:ze,hour:ze,minute:ze,timeZoneName:Nc},NT={year:ze,month:zl,day:ze,hour:ze,minute:ze,second:ze,timeZoneName:Nc},LT={year:ze,month:zl,day:ze,weekday:zl,hour:ze,minute:ze,timeZoneName:zl},OT={year:ze,month:zl,day:ze,weekday:zl,hour:ze,minute:ze,second:ze,timeZoneName:zl};var al=class{get type(){throw new $c}get name(){throw new $c}get ianaName(){return this.name}get isUniversal(){throw new $c}offsetName(e,n){throw new $c}formatOffset(e,n){throw new $c}offset(e){throw new $c}equals(e){throw new $c}get isValid(){throw new $c}};var mq=null,Xh=class t extends al{static get instance(){return mq===null&&(mq=new t),mq}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return vO(e,n,r)}formatOffset(e,n){return Jh(this.offset(e),n)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}};var bO={};function Mit(t){return bO[t]||(bO[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),bO[t]}var Ait={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function kit(t,e){let n=t.format(e).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,o,i,a,l,c,d,f]=r;return[a,o,i,l,c,d,f]}function Pit(t,e){let n=t.formatToParts(e),r=[];for(let o=0;o<n.length;o++){let{type:i,value:a}=n[o],l=Ait[i];i==="era"?r[l]=a:Rt(l)||(r[l]=parseInt(a,10))}return r}var yO={},ja=class t extends al{static create(e){return yO[e]||(yO[e]=new t(e)),yO[e]}static resetCache(){yO={},bO={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return vO(e,n,r,this.name)}formatOffset(e,n){return Jh(this.offset(e),n)}offset(e){let n=new Date(e);if(isNaN(n))return NaN;let r=Mit(this.name),[o,i,a,l,c,d,f]=r.formatToParts?Pit(r,n):kit(r,n);l==="BC"&&(o=-Math.abs(o)+1);let h=EC({year:o,month:i,day:a,hour:c===24?0:c,minute:d,second:f,millisecond:0}),g=+n,y=g%1e3;return g-=y>=0?y:1e3+y,(h-g)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}};var R3e={};function Iit(t,e={}){let n=JSON.stringify([t,e]),r=R3e[n];return r||(r=new Intl.ListFormat(t,e),R3e[n]=r),r}var hq={};function gq(t,e={}){let n=JSON.stringify([t,e]),r=hq[n];return r||(r=new Intl.DateTimeFormat(t,e),hq[n]=r),r}var vq={};function Fit(t,e={}){let n=JSON.stringify([t,e]),r=vq[n];return r||(r=new Intl.NumberFormat(t,e),vq[n]=r),r}var yq={};function Bit(t,e={}){let{base:n,...r}=e,o=JSON.stringify([t,r]),i=yq[o];return i||(i=new Intl.RelativeTimeFormat(t,e),yq[o]=i),i}var RT=null;function zit(){return RT||(RT=new Intl.DateTimeFormat().resolvedOptions().locale,RT)}var M3e={};function Vit(t){let e=M3e[t];if(!e){let n=new Intl.Locale(t);e="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,M3e[t]=e}return e}function Uit(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let n=t.indexOf("-u-");if(n===-1)return[t];{let r,o;try{r=gq(t).resolvedOptions(),o=t}catch{let c=t.substring(0,n);r=gq(c).resolvedOptions(),o=c}let{numberingSystem:i,calendar:a}=r;return[o,i,a]}}function jit(t,e,n){return(n||e)&&(t.includes("-u-")||(t+="-u"),n&&(t+=`-ca-${n}`),e&&(t+=`-nu-${e}`)),t}function Hit(t){let e=[];for(let n=1;n<=12;n++){let r=gn.utc(2009,n,1);e.push(t(r))}return e}function Wit(t){let e=[];for(let n=1;n<=7;n++){let r=gn.utc(2016,11,13+n);e.push(t(r))}return e}function xO(t,e,n,r){let o=t.listingMode();return o==="error"?null:o==="en"?n(e):r(e)}function Kit(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var bq=class{constructor(e,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;let{padTo:o,floor:i,...a}=r;if(!n||Object.keys(a).length>0){let l={useGrouping:!1,...r};r.padTo>0&&(l.minimumIntegerDigits=r.padTo),this.inf=Fit(e,l)}}format(e){if(this.inf){let n=this.floor?Math.floor(e):e;return this.inf.format(n)}else{let n=this.floor?Math.floor(e):TC(e,3);return vo(n,this.padTo)}}},xq=class{constructor(e,n,r){this.opts=r,this.originalZone=void 0;let o;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),l=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&ja.create(l).valid?(o=l,this.dt=e):(o="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,o=e.zone.name):(o="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let i={...this.opts};i.timeZone=i.timeZone||o,this.dtf=gq(n,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(n=>{if(n.type==="timeZoneName"){let r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Cq=class{constructor(e,n,r){this.opts={style:"long",...r},!n&&CO()&&(this.rtf=Bit(e,r))}format(e,n){return this.rtf?this.rtf.format(e,n):A3e(n,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,n){return this.rtf?this.rtf.formatToParts(e,n):[]}},Git={firstDay:1,minimalDays:4,weekend:[6,7]},Jn=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,n,r,o,i=!1){let a=e||Vn.defaultLocale,l=a||(i?"en-US":zit()),c=n||Vn.defaultNumberingSystem,d=r||Vn.defaultOutputCalendar,f=MT(o)||Vn.defaultWeekSettings;return new t(l,c,d,f,a)}static resetCache(){RT=null,hq={},vq={},yq={}}static fromObject({locale:e,numberingSystem:n,outputCalendar:r,weekSettings:o}={}){return t.create(e,n,r,o)}constructor(e,n,r,o,i){let[a,l,c]=Uit(e);this.locale=a,this.numberingSystem=n||l||null,this.outputCalendar=r||c||null,this.weekSettings=o,this.intl=jit(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Kit(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&n?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,MT(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,n=!1){return xO(this,e,Sq,()=>{let r=n?{month:e,day:"numeric"}:{month:e},o=n?"format":"standalone";return this.monthsCache[o][e]||(this.monthsCache[o][e]=Hit(i=>this.extract(i,r,"month"))),this.monthsCache[o][e]})}weekdays(e,n=!1){return xO(this,e,wq,()=>{let r=n?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},o=n?"format":"standalone";return this.weekdaysCache[o][e]||(this.weekdaysCache[o][e]=Wit(i=>this.extract(i,r,"weekday"))),this.weekdaysCache[o][e]})}meridiems(){return xO(this,void 0,()=>Eq,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[gn.utc(2016,11,13,9),gn.utc(2016,11,13,19)].map(n=>this.extract(n,e,"dayperiod"))}return this.meridiemCache})}eras(e){return xO(this,e,Tq,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[gn.utc(-40,1,1),gn.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[e]})}extract(e,n,r){let o=this.dtFormatter(e,n),i=o.formatToParts(),a=i.find(l=>l.type.toLowerCase()===r);return a?a.value:null}numberFormatter(e={}){return new bq(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,n={}){return new xq(e,this.intl,n)}relFormatter(e={}){return new Cq(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Iit(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:SO()?Vit(this.locale):Git}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}};var Dq=null,Wi=class t extends al{static get utcInstance(){return Dq===null&&(Dq=new t(0)),Dq}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let n=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new t(S0(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Jh(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Jh(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,n){return Jh(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}};var _C=class extends al{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Lc(t,e){let n;if(Rt(t)||t===null)return e;if(t instanceof al)return t;if(k3e(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Xh.instance:r==="utc"||r==="gmt"?Wi.utcInstance:Wi.parseSpecifier(r)||ja.create(t)}else return Kd(t)?Wi.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new _C(t)}var P3e=()=>Date.now(),I3e="system",F3e=null,B3e=null,z3e=null,V3e=60,U3e,j3e=null,Vn=class{static get now(){return P3e}static set now(e){P3e=e}static set defaultZone(e){I3e=e}static get defaultZone(){return Lc(I3e,Xh.instance)}static get defaultLocale(){return F3e}static set defaultLocale(e){F3e=e}static get defaultNumberingSystem(){return B3e}static set defaultNumberingSystem(e){B3e=e}static get defaultOutputCalendar(){return z3e}static set defaultOutputCalendar(e){z3e=e}static get defaultWeekSettings(){return j3e}static set defaultWeekSettings(e){j3e=MT(e)}static get twoDigitCutoffYear(){return V3e}static set twoDigitCutoffYear(e){V3e=e%100}static get throwOnInvalid(){return U3e}static set throwOnInvalid(e){U3e=e}static resetCaches(){Jn.resetCache(),ja.resetCache()}};var Ki=class{constructor(e,n){this.reason=e,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}};var H3e=[0,31,59,90,120,151,181,212,243,273,304,334],W3e=[0,31,60,91,121,152,182,213,244,274,305,335];function $u(t,e){return new Ki("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function wO(t,e,n){let r=new Date(Date.UTC(t,e-1,n));t<100&&t>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let o=r.getUTCDay();return o===0?7:o}function K3e(t,e,n){return n+(E0(t)?W3e:H3e)[e-1]}function G3e(t,e){let n=E0(t)?W3e:H3e,r=n.findIndex(i=>i<e),o=e-n[r];return{month:r+1,day:o}}function EO(t,e){return(t-e+7)%7+1}function AT(t,e=4,n=1){let{year:r,month:o,day:i}=t,a=K3e(r,o,i),l=EO(wO(r,o,i),n),c=Math.floor((a-l+14-e)/7),d;return c<1?(d=r-1,c=w0(d,e,n)):c>w0(r,e,n)?(d=r+1,c=1):d=r,{weekYear:d,weekNumber:c,weekday:l,...PT(t)}}function $q(t,e=4,n=1){let{weekYear:r,weekNumber:o,weekday:i}=t,a=EO(wO(r,1,e),n),l=Qh(r),c=o*7+i-a-7+e,d;c<1?(d=r-1,c+=Qh(d)):c>l?(d=r+1,c-=Qh(r)):d=r;let{month:f,day:m}=G3e(d,c);return{year:d,month:f,day:m,...PT(t)}}function TO(t){let{year:e,month:n,day:r}=t,o=K3e(e,n,r);return{year:e,ordinal:o,...PT(t)}}function Nq(t){let{year:e,ordinal:n}=t,{month:r,day:o}=G3e(e,n);return{year:e,month:r,day:o,...PT(t)}}function Lq(t,e){if(!Rt(t.localWeekday)||!Rt(t.localWeekNumber)||!Rt(t.localWeekYear)){if(!Rt(t.weekday)||!Rt(t.weekNumber)||!Rt(t.weekYear))throw new Dc("Cannot mix locale-based week fields with ISO-based week fields");return Rt(t.localWeekday)||(t.weekday=t.localWeekday),Rt(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Rt(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function Y3e(t,e=4,n=1){let r=kT(t.weekYear),o=Vl(t.weekNumber,1,w0(t.weekYear,e,n)),i=Vl(t.weekday,1,7);return r?o?i?!1:$u("weekday",t.weekday):$u("week",t.weekNumber):$u("weekYear",t.weekYear)}function Z3e(t){let e=kT(t.year),n=Vl(t.ordinal,1,Qh(t.year));return e?n?!1:$u("ordinal",t.ordinal):$u("year",t.year)}function Oq(t){let e=kT(t.year),n=Vl(t.month,1,12),r=Vl(t.day,1,DC(t.year,t.month));return e?n?r?!1:$u("day",t.day):$u("month",t.month):$u("year",t.year)}function Rq(t){let{hour:e,minute:n,second:r,millisecond:o}=t,i=Vl(e,0,23)||e===24&&n===0&&r===0&&o===0,a=Vl(n,0,59),l=Vl(r,0,59),c=Vl(o,0,999);return i?a?l?c?!1:$u("millisecond",o):$u("second",r):$u("minute",n):$u("hour",e)}function Rt(t){return typeof t>"u"}function Kd(t){return typeof t=="number"}function kT(t){return typeof t=="number"&&t%1===0}function k3e(t){return typeof t=="string"}function X3e(t){return Object.prototype.toString.call(t)==="[object Date]"}function CO(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function SO(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function J3e(t){return Array.isArray(t)?t:[t]}function Mq(t,e,n){if(t.length!==0)return t.reduce((r,o)=>{let i=[e(o),o];return r&&n(r[0],i[0])===r[0]?r:i},null)[1]}function Q3e(t,e){return e.reduce((n,r)=>(n[r]=t[r],n),{})}function eg(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function MT(t){if(t==null)return null;if(typeof t!="object")throw new Go("Week settings must be an object");if(!Vl(t.firstDay,1,7)||!Vl(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!Vl(e,1,7)))throw new Go("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function Vl(t,e,n){return kT(t)&&t>=e&&t<=n}function Yit(t,e){return t-e*Math.floor(t/e)}function vo(t,e=2){let n=t<0,r;return n?r="-"+(""+-t).padStart(e,"0"):r=(""+t).padStart(e,"0"),r}function _p(t){if(!(Rt(t)||t===null||t===""))return parseInt(t,10)}function tg(t){if(!(Rt(t)||t===null||t===""))return parseFloat(t)}function IT(t){if(!(Rt(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function TC(t,e,n=!1){let r=10**e;return(n?Math.trunc:Math.round)(t*r)/r}function E0(t){return t%4===0&&(t%100!==0||t%400===0)}function Qh(t){return E0(t)?366:365}function DC(t,e){let n=Yit(e-1,12)+1,r=t+(e-n)/12;return n===2?E0(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function EC(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function q3e(t,e,n){return-EO(wO(t,1,e),n)+e-1}function w0(t,e=4,n=1){let r=q3e(t,e,n),o=q3e(t+1,e,n);return(Qh(t)-r+o)/7}function FT(t){return t>99?t:t>Vn.twoDigitCutoffYear?1900+t:2e3+t}function vO(t,e,n,r=null){let o=new Date(t),i={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(i.timeZone=r);let a={timeZoneName:e,...i},l=new Intl.DateTimeFormat(n,a).formatToParts(o).find(c=>c.type.toLowerCase()==="timezonename");return l?l.value:null}function S0(t,e){let n=parseInt(t,10);Number.isNaN(n)&&(n=0);let r=parseInt(e,10)||0,o=n<0||Object.is(n,-0)?-r:r;return n*60+o}function Aq(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Go(`Invalid unit value ${t}`);return e}function $C(t,e){let n={};for(let r in t)if(eg(t,r)){let o=t[r];if(o==null)continue;n[e(r)]=Aq(o)}return n}function Jh(t,e){let n=Math.trunc(Math.abs(t/60)),r=Math.trunc(Math.abs(t%60)),o=t>=0?"+":"-";switch(e){case"short":return`${o}${vo(n,2)}:${vo(r,2)}`;case"narrow":return`${o}${n}${r>0?`:${r}`:""}`;case"techie":return`${o}${vo(n,2)}${vo(r,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function PT(t){return Q3e(t,["hour","minute","second","millisecond"])}var Zit=["January","February","March","April","May","June","July","August","September","October","November","December"],kq=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],qit=["J","F","M","A","M","J","J","A","S","O","N","D"];function Sq(t){switch(t){case"narrow":return[...qit];case"short":return[...kq];case"long":return[...Zit];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var Pq=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Iq=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Xit=["M","T","W","T","F","S","S"];function wq(t){switch(t){case"narrow":return[...Xit];case"short":return[...Iq];case"long":return[...Pq];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Eq=["AM","PM"],Jit=["Before Christ","Anno Domini"],Qit=["BC","AD"],eat=["B","A"];function Tq(t){switch(t){case"narrow":return[...eat];case"short":return[...Qit];case"long":return[...Jit];default:return null}}function ewe(t){return Eq[t.hour<12?0:1]}function twe(t,e){return wq(e)[t.weekday-1]}function nwe(t,e){return Sq(e)[t.month-1]}function rwe(t,e){return Tq(e)[t.year<0?0:1]}function A3e(t,e,n="always",r=!1){let o={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},i=["hours","minutes","seconds"].indexOf(t)===-1;if(n==="auto"&&i){let m=t==="days";switch(e){case 1:return m?"tomorrow":`next ${o[t][0]}`;case-1:return m?"yesterday":`last ${o[t][0]}`;case 0:return m?"today":`this ${o[t][0]}`;default:}}let a=Object.is(e,-0)||e<0,l=Math.abs(e),c=l===1,d=o[t],f=r?c?d[1]:d[2]||d[1]:c?o[t][0]:t;return a?`${l} ${f} ago`:`in ${l} ${f}`}function owe(t,e){let n="";for(let r of t)r.literal?n+=r.val:n+=e(r.val);return n}var tat={D:qh,DD:pT,DDD:mT,DDDD:hT,t:gT,tt:vT,ttt:yT,tttt:bT,T:xT,TT:CT,TTT:ST,TTTT:wT,f:ET,ff:_T,fff:$T,ffff:LT,F:TT,FF:DT,FFF:NT,FFFF:OT},Gi=class t{static create(e,n={}){return new t(e,n)}static parseFormat(e){let n=null,r="",o=!1,i=[];for(let a=0;a<e.length;a++){let l=e.charAt(a);l==="'"?(r.length>0&&i.push({literal:o||/^\s+$/.test(r),val:r}),n=null,r="",o=!o):o||l===n?r+=l:(r.length>0&&i.push({literal:/^\s+$/.test(r),val:r}),r=l,n=l)}return r.length>0&&i.push({literal:o||/^\s+$/.test(r),val:r}),i}static macroTokenToFormatOpts(e){return tat[e]}constructor(e,n){this.opts=n,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...n}).format()}dtFormatter(e,n={}){return this.loc.dtFormatter(e,{...this.opts,...n})}formatDateTime(e,n){return this.dtFormatter(e,n).format()}formatDateTimeParts(e,n){return this.dtFormatter(e,n).formatToParts()}formatInterval(e,n){return this.dtFormatter(e.start,n).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,n){return this.dtFormatter(e,n).resolvedOptions()}num(e,n=0){if(this.opts.forceSimple)return vo(e,n);let r={...this.opts};return n>0&&(r.padTo=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,n){let r=this.loc.listingMode()==="en",o=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",i=(g,y)=>this.loc.extract(e,g,y),a=g=>e.isOffsetFixed&&e.offset===0&&g.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,g.format):"",l=()=>r?ewe(e):i({hour:"numeric",hourCycle:"h12"},"dayperiod"),c=(g,y)=>r?nwe(e,g):i(y?{month:g}:{month:g,day:"numeric"},"month"),d=(g,y)=>r?twe(e,g):i(y?{weekday:g}:{weekday:g,month:"long",day:"numeric"},"weekday"),f=g=>{let y=t.macroTokenToFormatOpts(g);return y?this.formatWithSystemDefault(e,y):g},m=g=>r?rwe(e,g):i({era:g},"era"),h=g=>{switch(g){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return l();case"d":return o?i({day:"numeric"},"day"):this.num(e.day);case"dd":return o?i({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return d("short",!0);case"cccc":return d("long",!0);case"ccccc":return d("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return d("short",!1);case"EEEE":return d("long",!1);case"EEEEE":return d("narrow",!1);case"L":return o?i({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return o?i({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return o?i({month:"numeric"},"month"):this.num(e.month);case"MM":return o?i({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return o?i({year:"numeric"},"year"):this.num(e.year);case"yy":return o?i({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return o?i({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return o?i({year:"numeric"},"year"):this.num(e.year,6);case"G":return m("short");case"GG":return m("long");case"GGGGG":return m("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return f(g)}};return owe(t.parseFormat(n),h)}formatDurationFromString(e,n){let r=c=>{switch(c[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},o=c=>d=>{let f=r(d);return f?this.num(c.get(f),d.length):d},i=t.parseFormat(n),a=i.reduce((c,{literal:d,val:f})=>d?c:c.concat(f),[]),l=e.shiftTo(...a.map(r).filter(c=>c));return owe(i,o(l))}};var awe=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function LC(...t){let e=t.reduce((n,r)=>n+r.source,"");return RegExp(`^${e}$`)}function OC(...t){return e=>t.reduce(([n,r,o],i)=>{let[a,l,c]=i(e,o);return[{...n,...a},l||r,c]},[{},null,1]).slice(0,2)}function RC(t,...e){if(t==null)return[null,null];for(let[n,r]of e){let o=n.exec(t);if(o)return r(o)}return[null,null]}function swe(...t){return(e,n)=>{let r={},o;for(o=0;o<t.length;o++)r[t[o]]=_p(e[n+o]);return[r,null,n+o]}}var lwe=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,nat=`(?:${lwe.source}?(?:\\[(${awe.source})\\])?)?`,Fq=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,uwe=RegExp(`${Fq.source}${nat}`),Bq=RegExp(`(?:T${uwe.source})?`),rat=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,oat=/(\d{4})-?W(\d\d)(?:-?(\d))?/,iat=/(\d{4})-?(\d{3})/,aat=swe("weekYear","weekNumber","weekDay"),sat=swe("year","ordinal"),lat=/(\d{4})-(\d\d)-(\d\d)/,cwe=RegExp(`${Fq.source} ?(?:${lwe.source}|(${awe.source}))?`),uat=RegExp(`(?: ${cwe.source})?`);function NC(t,e,n){let r=t[e];return Rt(r)?n:_p(r)}function cat(t,e){return[{year:NC(t,e),month:NC(t,e+1,1),day:NC(t,e+2,1)},null,e+3]}function MC(t,e){return[{hours:NC(t,e,0),minutes:NC(t,e+1,0),seconds:NC(t,e+2,0),milliseconds:IT(t[e+3])},null,e+4]}function BT(t,e){let n=!t[e]&&!t[e+1],r=S0(t[e+1],t[e+2]),o=n?null:Wi.instance(r);return[{},o,e+3]}function zT(t,e){let n=t[e]?ja.create(t[e]):null;return[{},n,e+1]}var dat=RegExp(`^T?${Fq.source}$`),fat=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function pat(t){let[e,n,r,o,i,a,l,c,d]=t,f=e[0]==="-",m=c&&c[0]==="-",h=(g,y=!1)=>g!==void 0&&(y||g&&f)?-g:g;return[{years:h(tg(n)),months:h(tg(r)),weeks:h(tg(o)),days:h(tg(i)),hours:h(tg(a)),minutes:h(tg(l)),seconds:h(tg(c),c==="-0"),milliseconds:h(IT(d),m)}]}var mat={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function zq(t,e,n,r,o,i,a){let l={year:e.length===2?FT(_p(e)):_p(e),month:kq.indexOf(n)+1,day:_p(r),hour:_p(o),minute:_p(i)};return a&&(l.second=_p(a)),t&&(l.weekday=t.length>3?Pq.indexOf(t)+1:Iq.indexOf(t)+1),l}var hat=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function gat(t){let[,e,n,r,o,i,a,l,c,d,f,m]=t,h=zq(e,o,r,n,i,a,l),g;return c?g=mat[c]:d?g=0:g=S0(f,m),[h,new Wi(g)]}function vat(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var yat=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,bat=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,xat=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function iwe(t){let[,e,n,r,o,i,a,l]=t;return[zq(e,o,r,n,i,a,l),Wi.utcInstance]}function Cat(t){let[,e,n,r,o,i,a,l]=t;return[zq(e,l,n,r,o,i,a),Wi.utcInstance]}var Sat=LC(rat,Bq),wat=LC(oat,Bq),Eat=LC(iat,Bq),Tat=LC(uwe),dwe=OC(cat,MC,BT,zT),_at=OC(aat,MC,BT,zT),Dat=OC(sat,MC,BT,zT),$at=OC(MC,BT,zT);function fwe(t){return RC(t,[Sat,dwe],[wat,_at],[Eat,Dat],[Tat,$at])}function pwe(t){return RC(vat(t),[hat,gat])}function mwe(t){return RC(t,[yat,iwe],[bat,iwe],[xat,Cat])}function hwe(t){return RC(t,[fat,pat])}var Nat=OC(MC);function gwe(t){return RC(t,[dat,Nat])}var Lat=LC(lat,uat),Oat=LC(cwe),Rat=OC(MC,BT,zT);function vwe(t){return RC(t,[Lat,dwe],[Oat,Rat])}var ywe="Invalid Duration",xwe={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Mat={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...xwe},Nu=146097/400,AC=146097/4800,Aat={years:{quarters:4,months:12,weeks:Nu/7,days:Nu,hours:Nu*24,minutes:Nu*24*60,seconds:Nu*24*60*60,milliseconds:Nu*24*60*60*1e3},quarters:{months:3,weeks:Nu/28,days:Nu/4,hours:Nu*24/4,minutes:Nu*24*60/4,seconds:Nu*24*60*60/4,milliseconds:Nu*24*60*60*1e3/4},months:{weeks:AC/7,days:AC,hours:AC*24,minutes:AC*24*60,seconds:AC*24*60*60,milliseconds:AC*24*60*60*1e3},...xwe},T0=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],kat=T0.slice(0).reverse();function ng(t,e,n=!1){let r={values:n?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new yo(r)}function Cwe(t,e){let n=e.milliseconds??0;for(let r of kat.slice(1))e[r]&&(n+=e[r]*t[r].milliseconds);return n}function bwe(t,e){let n=Cwe(t,e)<0?-1:1;T0.reduceRight((r,o)=>{if(Rt(e[o]))return r;if(r){let i=e[r]*n,a=t[o][r],l=Math.floor(i/a);e[o]+=l*n,e[r]-=l*a*n}return o},null),T0.reduce((r,o)=>{if(Rt(e[o]))return r;if(r){let i=e[r]%1;e[r]-=i,e[o]+=i*t[r][o]}return o},null)}function Pat(t){let e={};for(let[n,r]of Object.entries(t))r!==0&&(e[n]=r);return e}var yo=class t{constructor(e){let n=e.conversionAccuracy==="longterm"||!1,r=n?Aat:Mat;e.matrix&&(r=e.matrix),this.values=e.values,this.loc=e.loc||Jn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(e,n){return t.fromObject({milliseconds:e},n)}static fromObject(e,n={}){if(e==null||typeof e!="object")throw new Go(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:$C(e,t.normalizeUnit),loc:Jn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(e){if(Kd(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Go(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,n){let[r]=hwe(e);return r?t.fromObject(r,n):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,n){let[r]=gwe(e);return r?t.fromObject(r,n):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,n=null){if(!e)throw new Go("need to specify a reason the Duration is invalid");let r=e instanceof Ki?e:new Ki(e,n);if(Vn.throwOnInvalid)throw new hO(r);return new t({invalid:r})}static normalizeUnit(e){let n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!n)throw new wC(e);return n}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,n={}){let r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Gi.create(this.loc,r).formatDurationFromString(this,e):ywe}toHuman(e={}){if(!this.isValid)return ywe;let n=T0.map(r=>{let o=this.values[r];return Rt(o)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:r.slice(0,-1)}).format(o)}).filter(r=>r);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=TC(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let n=this.toMillis();return n<0||n>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},gn.fromMillis(n,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Cwe(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let n=t.fromDurationLike(e),r={};for(let o of T0)(eg(n.values,o)||eg(this.values,o))&&(r[o]=n.get(o)+this.get(o));return ng(this,{values:r},!0)}minus(e){if(!this.isValid)return this;let n=t.fromDurationLike(e);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;let n={};for(let r of Object.keys(this.values))n[r]=Aq(e(this.values[r],r));return ng(this,{values:n},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let n={...this.values,...$C(e,t.normalizeUnit)};return ng(this,{values:n})}reconfigure({locale:e,numberingSystem:n,conversionAccuracy:r,matrix:o}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:n}),matrix:o,conversionAccuracy:r};return ng(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return bwe(this.matrix,e),ng(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Pat(this.normalize().shiftToAll().toObject());return ng(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>t.normalizeUnit(a));let n={},r={},o=this.toObject(),i;for(let a of T0)if(e.indexOf(a)>=0){i=a;let l=0;for(let d in r)l+=this.matrix[d][a]*r[d],r[d]=0;Kd(o[a])&&(l+=o[a]);let c=Math.trunc(l);n[a]=c,r[a]=(l*1e3-c*1e3)/1e3}else Kd(o[a])&&(r[a]=o[a]);for(let a in r)r[a]!==0&&(n[i]+=a===i?r[a]:r[a]/this.matrix[i][a]);return bwe(this.matrix,n),ng(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let n of Object.keys(this.values))e[n]=this.values[n]===0?0:-this.values[n];return ng(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function n(r,o){return r===void 0||r===0?o===void 0||o===0:r===o}for(let r of T0)if(!n(this.values[r],e.values[r]))return!1;return!0}};var kC="Invalid Interval";function Iat(t,e){return!t||!t.isValid?Dp.invalid("missing or invalid start"):!e||!e.isValid?Dp.invalid("missing or invalid end"):e<t?Dp.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var Dp=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,n=null){if(!e)throw new Go("need to specify a reason the Interval is invalid");let r=e instanceof Ki?e:new Ki(e,n);if(Vn.throwOnInvalid)throw new mO(r);return new t({invalid:r})}static fromDateTimes(e,n){let r=PC(e),o=PC(n),i=Iat(r,o);return i??new t({start:r,end:o})}static after(e,n){let r=yo.fromDurationLike(n),o=PC(e);return t.fromDateTimes(o,o.plus(r))}static before(e,n){let r=yo.fromDurationLike(n),o=PC(e);return t.fromDateTimes(o.minus(r),o)}static fromISO(e,n){let[r,o]=(e||"").split("/",2);if(r&&o){let i,a;try{i=gn.fromISO(r,n),a=i.isValid}catch{a=!1}let l,c;try{l=gn.fromISO(o,n),c=l.isValid}catch{c=!1}if(a&&c)return t.fromDateTimes(i,l);if(a){let d=yo.fromISO(o,n);if(d.isValid)return t.after(i,d)}else if(c){let d=yo.fromISO(r,n);if(d.isValid)return t.before(l,d)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",n){if(!this.isValid)return NaN;let r=this.start.startOf(e,n),o;return n?.useLocaleWeeks?o=this.end.reconfigure({locale:r.locale}):o=this.end,o=o.startOf(e,n),Math.floor(o.diff(r,e).get(e))+(o.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:n}={}){return this.isValid?t.fromDateTimes(e||this.s,n||this.e):this}splitAt(...e){if(!this.isValid)return[];let n=e.map(PC).filter(a=>this.contains(a)).sort((a,l)=>a.toMillis()-l.toMillis()),r=[],{s:o}=this,i=0;for(;o<this.e;){let a=n[i]||this.e,l=+a>+this.e?this.e:a;r.push(t.fromDateTimes(o,l)),o=l,i+=1}return r}splitBy(e){let n=yo.fromDurationLike(e);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,o=1,i,a=[];for(;r<this.e;){let l=this.start.plus(n.mapUnits(c=>c*o));i=+l>+this.e?this.e:l,a.push(t.fromDateTimes(r,i)),r=i,o+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let n=this.s>e.s?this.s:e.s,r=this.e<e.e?this.e:e.e;return n>=r?null:t.fromDateTimes(n,r)}union(e){if(!this.isValid)return this;let n=this.s<e.s?this.s:e.s,r=this.e>e.e?this.e:e.e;return t.fromDateTimes(n,r)}static merge(e){let[n,r]=e.sort((o,i)=>o.s-i.s).reduce(([o,i],a)=>i?i.overlaps(a)||i.abutsStart(a)?[o,i.union(a)]:[o.concat([i]),a]:[o,a],[[],null]);return r&&n.push(r),n}static xor(e){let n=null,r=0,o=[],i=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),a=Array.prototype.concat(...i),l=a.sort((c,d)=>c.time-d.time);for(let c of l)r+=c.type==="s"?1:-1,r===1?n=c.time:(n&&+n!=+c.time&&o.push(t.fromDateTimes(n,c.time)),n=null);return t.merge(o)}difference(...e){return t.xor([this].concat(e)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:kC}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=qh,n={}){return this.isValid?Gi.create(this.s.loc.clone(n),e).formatInterval(this):kC}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:kC}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:kC}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:kC}toFormat(e,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${n}${this.e.toFormat(e)}`:kC}toDuration(e,n){return this.isValid?this.e.diff(this.s,e,n):yo.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}};var $p=class{static hasDST(e=Vn.defaultZone){let n=gn.now().setZone(e).set({month:12});return!e.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(e){return ja.isValidZone(e)}static normalizeZone(e){return Lc(e,Vn.defaultZone)}static getStartOfWeek({locale:e=null,locObj:n=null}={}){return(n||Jn.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:n=null}={}){return(n||Jn.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:n=null}={}){return(n||Jn.create(e)).getWeekendDays().slice()}static months(e="long",{locale:n=null,numberingSystem:r=null,locObj:o=null,outputCalendar:i="gregory"}={}){return(o||Jn.create(n,r,i)).months(e)}static monthsFormat(e="long",{locale:n=null,numberingSystem:r=null,locObj:o=null,outputCalendar:i="gregory"}={}){return(o||Jn.create(n,r,i)).months(e,!0)}static weekdays(e="long",{locale:n=null,numberingSystem:r=null,locObj:o=null}={}){return(o||Jn.create(n,r,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:n=null,numberingSystem:r=null,locObj:o=null}={}){return(o||Jn.create(n,r,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Jn.create(e).meridiems()}static eras(e="short",{locale:n=null}={}){return Jn.create(n,null,"gregory").eras(e)}static features(){return{relative:CO(),localeWeek:SO()}}};function Swe(t,e){let n=o=>o.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(e)-n(t);return Math.floor(yo.fromMillis(r).as("days"))}function Fat(t,e,n){let r=[["years",(c,d)=>d.year-c.year],["quarters",(c,d)=>d.quarter-c.quarter+(d.year-c.year)*4],["months",(c,d)=>d.month-c.month+(d.year-c.year)*12],["weeks",(c,d)=>{let f=Swe(c,d);return(f-f%7)/7}],["days",Swe]],o={},i=t,a,l;for(let[c,d]of r)n.indexOf(c)>=0&&(a=c,o[c]=d(t,e),l=i.plus(o),l>e?(o[c]--,t=i.plus(o),t>e&&(l=t,o[c]--,t=i.plus(o))):t=l);return[t,o,l,a]}function wwe(t,e,n,r){let[o,i,a,l]=Fat(t,e,n),c=e-o,d=n.filter(m=>["hours","minutes","seconds","milliseconds"].indexOf(m)>=0);d.length===0&&(a<e&&(a=o.plus({[l]:1})),a!==o&&(i[l]=(i[l]||0)+c/(a-o)));let f=yo.fromObject(i,r);return d.length>0?yo.fromMillis(c,r).shiftTo(...d).plus(f):f}var Vq={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},Ewe={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Bat=Vq.hanidec.replace(/[\[|\]]/g,"").split("");function Twe(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);if(t[n].search(Vq.hanidec)!==-1)e+=Bat.indexOf(t[n]);else for(let o in Ewe){let[i,a]=Ewe[o];r>=i&&r<=a&&(e+=r-i)}}return parseInt(e,10)}else return e}function Lu({numberingSystem:t},e=""){return new RegExp(`${Vq[t||"latn"]}${e}`)}var zat="missing Intl.DateTimeFormat.formatToParts support";function Un(t,e=n=>n){return{regex:t,deser:([n])=>e(Twe(n))}}var Vat="\xA0",$we=`[ ${Vat}]`,Nwe=new RegExp($we,"g");function Uat(t){return t.replace(/\./g,"\\.?").replace(Nwe,$we)}function _we(t){return t.replace(/\./g,"").replace(Nwe," ").toLowerCase()}function Oc(t,e){return t===null?null:{regex:RegExp(t.map(Uat).join("|")),deser:([n])=>t.findIndex(r=>_we(n)===_we(r))+e}}function Dwe(t,e){return{regex:t,deser:([,n,r])=>S0(n,r),groups:e}}function _O(t){return{regex:t,deser:([e])=>e}}function jat(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Hat(t,e){let n=Lu(e),r=Lu(e,"{2}"),o=Lu(e,"{3}"),i=Lu(e,"{4}"),a=Lu(e,"{6}"),l=Lu(e,"{1,2}"),c=Lu(e,"{1,3}"),d=Lu(e,"{1,6}"),f=Lu(e,"{1,9}"),m=Lu(e,"{2,4}"),h=Lu(e,"{4,6}"),g=S=>({regex:RegExp(jat(S.val)),deser:([C])=>C,literal:!0}),b=(S=>{if(t.literal)return g(S);switch(S.val){case"G":return Oc(e.eras("short"),0);case"GG":return Oc(e.eras("long"),0);case"y":return Un(d);case"yy":return Un(m,FT);case"yyyy":return Un(i);case"yyyyy":return Un(h);case"yyyyyy":return Un(a);case"M":return Un(l);case"MM":return Un(r);case"MMM":return Oc(e.months("short",!0),1);case"MMMM":return Oc(e.months("long",!0),1);case"L":return Un(l);case"LL":return Un(r);case"LLL":return Oc(e.months("short",!1),1);case"LLLL":return Oc(e.months("long",!1),1);case"d":return Un(l);case"dd":return Un(r);case"o":return Un(c);case"ooo":return Un(o);case"HH":return Un(r);case"H":return Un(l);case"hh":return Un(r);case"h":return Un(l);case"mm":return Un(r);case"m":return Un(l);case"q":return Un(l);case"qq":return Un(r);case"s":return Un(l);case"ss":return Un(r);case"S":return Un(c);case"SSS":return Un(o);case"u":return _O(f);case"uu":return _O(l);case"uuu":return Un(n);case"a":return Oc(e.meridiems(),0);case"kkkk":return Un(i);case"kk":return Un(m,FT);case"W":return Un(l);case"WW":return Un(r);case"E":case"c":return Un(n);case"EEE":return Oc(e.weekdays("short",!1),1);case"EEEE":return Oc(e.weekdays("long",!1),1);case"ccc":return Oc(e.weekdays("short",!0),1);case"cccc":return Oc(e.weekdays("long",!0),1);case"Z":case"ZZ":return Dwe(new RegExp(`([+-]${l.source})(?::(${r.source}))?`),2);case"ZZZ":return Dwe(new RegExp(`([+-]${l.source})(${r.source})?`),2);case"z":return _O(/[a-z_+-/]{1,256}?/i);case" ":return _O(/[^\S\n\r]/);default:return g(S)}})(t)||{invalidReason:zat};return b.token=t,b}var Wat={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function Kat(t,e,n){let{type:r,value:o}=t;if(r==="literal"){let c=/^\s+$/.test(o);return{literal:!c,val:c?" ":o}}let i=e[r],a=r;r==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let l=Wat[a];if(typeof l=="object"&&(l=l[i]),l)return{literal:!1,val:l}}function Gat(t){return[`^${t.map(n=>n.regex).reduce((n,r)=>`${n}(${r.source})`,"")}$`,t]}function Yat(t,e,n){let r=t.match(e);if(r){let o={},i=1;for(let a in n)if(eg(n,a)){let l=n[a],c=l.groups?l.groups+1:1;!l.literal&&l.token&&(o[l.token.val[0]]=l.deser(r.slice(i,i+c))),i+=c}return[r,o]}else return[r,{}]}function Zat(t){let e=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},n=null,r;return Rt(t.z)||(n=ja.create(t.z)),Rt(t.Z)||(n||(n=new Wi(t.Z)),r=t.Z),Rt(t.q)||(t.M=(t.q-1)*3+1),Rt(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),Rt(t.u)||(t.S=IT(t.u)),[Object.keys(t).reduce((i,a)=>{let l=e(a);return l&&(i[l]=t[a]),i},{}),n,r]}var Uq=null;function qat(){return Uq||(Uq=gn.fromMillis(1555555555555)),Uq}function Xat(t,e){if(t.literal)return t;let n=Gi.macroTokenToFormatOpts(t.val),r=Wq(n,e);return r==null||r.includes(void 0)?t:r}function jq(t,e){return Array.prototype.concat(...t.map(n=>Xat(n,e)))}function Hq(t,e,n){let r=jq(Gi.parseFormat(n),t),o=r.map(a=>Hat(a,t)),i=o.find(a=>a.invalidReason);if(i)return{input:e,tokens:r,invalidReason:i.invalidReason};{let[a,l]=Gat(o),c=RegExp(a,"i"),[d,f]=Yat(e,c,l),[m,h,g]=f?Zat(f):[null,null,void 0];if(eg(f,"a")&&eg(f,"H"))throw new Dc("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:r,regex:c,rawMatches:d,matches:f,result:m,zone:h,specificOffset:g}}}function Lwe(t,e,n){let{result:r,zone:o,specificOffset:i,invalidReason:a}=Hq(t,e,n);return[r,o,i,a]}function Wq(t,e){if(!t)return null;let r=Gi.create(e,t).dtFormatter(qat()),o=r.formatToParts(),i=r.resolvedOptions();return o.map(a=>Kat(a,t,i))}var Kq="Invalid DateTime",Owe=864e13;function DO(t){return new Ki("unsupported zone",`the zone "${t.name}" is not supported`)}function Gq(t){return t.weekData===null&&(t.weekData=AT(t.c)),t.weekData}function Yq(t){return t.localWeekData===null&&(t.localWeekData=AT(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function _0(t,e){let n={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new gn({...n,...e,old:n})}function Fwe(t,e,n){let r=t-e*60*1e3,o=n.offset(r);if(e===o)return[r,e];r-=(o-e)*60*1e3;let i=n.offset(r);return o===i?[r,o]:[t-Math.min(o,i)*60*1e3,Math.max(o,i)]}function $O(t,e){t+=e*60*1e3;let n=new Date(t);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function LO(t,e,n){return Fwe(EC(t),e,n)}function Rwe(t,e){let n=t.o,r=t.c.year+Math.trunc(e.years),o=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,i={...t.c,year:r,month:o,day:Math.min(t.c.day,DC(r,o))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=yo.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),l=EC(i),[c,d]=Fwe(l,n,t.zone);return a!==0&&(c+=a,d=t.zone.offset(c)),{ts:c,o:d}}function VT(t,e,n,r,o,i){let{setZone:a,zone:l}=n;if(t&&Object.keys(t).length!==0||e){let c=e||l,d=gn.fromObject(t,{...n,zone:c,specificOffset:i});return a?d:d.setZone(l)}else return gn.invalid(new Ki("unparsable",`the input "${o}" can't be parsed as ${r}`))}function NO(t,e,n=!0){return t.isValid?Gi.create(Jn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Zq(t,e){let n=t.c.year>9999||t.c.year<0,r="";return n&&t.c.year>=0&&(r+="+"),r+=vo(t.c.year,n?6:4),e?(r+="-",r+=vo(t.c.month),r+="-",r+=vo(t.c.day)):(r+=vo(t.c.month),r+=vo(t.c.day)),r}function Mwe(t,e,n,r,o,i){let a=vo(t.c.hour);return e?(a+=":",a+=vo(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!n)&&(a+=":")):a+=vo(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!n)&&(a+=vo(t.c.second),(t.c.millisecond!==0||!r)&&(a+=".",a+=vo(t.c.millisecond,3))),o&&(t.isOffsetFixed&&t.offset===0&&!i?a+="Z":t.o<0?(a+="-",a+=vo(Math.trunc(-t.o/60)),a+=":",a+=vo(Math.trunc(-t.o%60))):(a+="+",a+=vo(Math.trunc(t.o/60)),a+=":",a+=vo(Math.trunc(t.o%60)))),i&&(a+="["+t.zone.ianaName+"]"),a}var Bwe={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Jat={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Qat={ordinal:1,hour:0,minute:0,second:0,millisecond:0},zwe=["year","month","day","hour","minute","second","millisecond"],est=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],tst=["year","ordinal","hour","minute","second","millisecond"];function nst(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new wC(t);return e}function Awe(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return nst(t)}}function kwe(t,e){let n=Lc(e.zone,Vn.defaultZone),r=Jn.fromObject(e),o=Vn.now(),i,a;if(Rt(t.year))i=o;else{for(let d of zwe)Rt(t[d])&&(t[d]=Bwe[d]);let l=Oq(t)||Rq(t);if(l)return gn.invalid(l);let c=n.offset(o);[i,a]=LO(t,c,n)}return new gn({ts:i,zone:n,loc:r,o:a})}function Pwe(t,e,n){let r=Rt(n.round)?!0:n.round,o=(a,l)=>(a=TC(a,r||n.calendary?0:2,!0),e.loc.clone(n).relFormatter(n).format(a,l)),i=a=>n.calendary?e.hasSame(t,a)?0:e.startOf(a).diff(t.startOf(a),a).get(a):e.diff(t,a).get(a);if(n.unit)return o(i(n.unit),n.unit);for(let a of n.units){let l=i(a);if(Math.abs(l)>=1)return o(l,a)}return o(t>e?-0:0,n.units[n.units.length-1])}function Iwe(t){let e={},n;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],n=Array.from(t).slice(0,t.length-1)):n=Array.from(t),[e,n]}var gn=class t{constructor(e){let n=e.zone||Vn.defaultZone,r=e.invalid||(Number.isNaN(e.ts)?new Ki("invalid input"):null)||(n.isValid?null:DO(n));this.ts=Rt(e.ts)?Vn.now():e.ts;let o=null,i=null;if(!r)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(n))[o,i]=[e.old.c,e.old.o];else{let l=n.offset(this.ts);o=$O(this.ts,l),r=Number.isNaN(o.year)?new Ki("invalid input"):null,o=r?null:o,i=r?null:l}this._zone=n,this.loc=e.loc||Jn.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=o,this.o=i,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,n]=Iwe(arguments),[r,o,i,a,l,c,d]=n;return kwe({year:r,month:o,day:i,hour:a,minute:l,second:c,millisecond:d},e)}static utc(){let[e,n]=Iwe(arguments),[r,o,i,a,l,c,d]=n;return e.zone=Wi.utcInstance,kwe({year:r,month:o,day:i,hour:a,minute:l,second:c,millisecond:d},e)}static fromJSDate(e,n={}){let r=X3e(e)?e.valueOf():NaN;if(Number.isNaN(r))return t.invalid("invalid input");let o=Lc(n.zone,Vn.defaultZone);return o.isValid?new t({ts:r,zone:o,loc:Jn.fromObject(n)}):t.invalid(DO(o))}static fromMillis(e,n={}){if(Kd(e))return e<-Owe||e>Owe?t.invalid("Timestamp out of range"):new t({ts:e,zone:Lc(n.zone,Vn.defaultZone),loc:Jn.fromObject(n)});throw new Go(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,n={}){if(Kd(e))return new t({ts:e*1e3,zone:Lc(n.zone,Vn.defaultZone),loc:Jn.fromObject(n)});throw new Go("fromSeconds requires a numerical input")}static fromObject(e,n={}){e=e||{};let r=Lc(n.zone,Vn.defaultZone);if(!r.isValid)return t.invalid(DO(r));let o=Jn.fromObject(n),i=$C(e,Awe),{minDaysInFirstWeek:a,startOfWeek:l}=Lq(i,o),c=Vn.now(),d=Rt(n.specificOffset)?r.offset(c):n.specificOffset,f=!Rt(i.ordinal),m=!Rt(i.year),h=!Rt(i.month)||!Rt(i.day),g=m||h,y=i.weekYear||i.weekNumber;if((g||f)&&y)throw new Dc("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&f)throw new Dc("Can't mix ordinal dates with month/day");let b=y||i.weekday&&!g,S,C,w=$O(c,d);b?(S=est,C=Jat,w=AT(w,a,l)):f?(S=tst,C=Qat,w=TO(w)):(S=zwe,C=Bwe);let E=!1;for(let k of S){let F=i[k];Rt(F)?E?i[k]=C[k]:i[k]=w[k]:E=!0}let _=b?Y3e(i,a,l):f?Z3e(i):Oq(i),N=_||Rq(i);if(N)return t.invalid(N);let $=b?$q(i,a,l):f?Nq(i):i,[R,O]=LO($,d,r),A=new t({ts:R,zone:r,o:O,loc:o});return i.weekday&&g&&e.weekday!==A.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${i.weekday} and a date of ${A.toISO()}`):A}static fromISO(e,n={}){let[r,o]=fwe(e);return VT(r,o,n,"ISO 8601",e)}static fromRFC2822(e,n={}){let[r,o]=pwe(e);return VT(r,o,n,"RFC 2822",e)}static fromHTTP(e,n={}){let[r,o]=mwe(e);return VT(r,o,n,"HTTP",n)}static fromFormat(e,n,r={}){if(Rt(e)||Rt(n))throw new Go("fromFormat requires an input string and a format");let{locale:o=null,numberingSystem:i=null}=r,a=Jn.fromOpts({locale:o,numberingSystem:i,defaultToEN:!0}),[l,c,d,f]=Lwe(a,e,n);return f?t.invalid(f):VT(l,c,r,`format ${n}`,e,d)}static fromString(e,n,r={}){return t.fromFormat(e,n,r)}static fromSQL(e,n={}){let[r,o]=vwe(e);return VT(r,o,n,"SQL",e)}static invalid(e,n=null){if(!e)throw new Go("need to specify a reason the DateTime is invalid");let r=e instanceof Ki?e:new Ki(e,n);if(Vn.throwOnInvalid)throw new pO(r);return new t({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,n={}){let r=Wq(e,Jn.fromObject(n));return r?r.map(o=>o?o.val:null).join(""):null}static expandFormat(e,n={}){return jq(Gi.parseFormat(e),Jn.fromObject(n)).map(o=>o.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Gq(this).weekYear:NaN}get weekNumber(){return this.isValid?Gq(this).weekNumber:NaN}get weekday(){return this.isValid?Gq(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Yq(this).weekday:NaN}get localWeekNumber(){return this.isValid?Yq(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Yq(this).weekYear:NaN}get ordinal(){return this.isValid?TO(this.c).ordinal:NaN}get monthShort(){return this.isValid?$p.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$p.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$p.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$p.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,n=6e4,r=EC(this.c),o=this.zone.offset(r-e),i=this.zone.offset(r+e),a=this.zone.offset(r-o*n),l=this.zone.offset(r-i*n);if(a===l)return[this];let c=r-a*n,d=r-l*n,f=$O(c,a),m=$O(d,l);return f.hour===m.hour&&f.minute===m.minute&&f.second===m.second&&f.millisecond===m.millisecond?[_0(this,{ts:c}),_0(this,{ts:d})]:[this]}get isInLeapYear(){return E0(this.year)}get daysInMonth(){return DC(this.year,this.month)}get daysInYear(){return this.isValid?Qh(this.year):NaN}get weeksInWeekYear(){return this.isValid?w0(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?w0(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:n,numberingSystem:r,calendar:o}=Gi.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:o}}toUTC(e=0,n={}){return this.setZone(Wi.instance(e),n)}toLocal(){return this.setZone(Vn.defaultZone)}setZone(e,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(e=Lc(e,Vn.defaultZone),e.equals(this.zone))return this;if(e.isValid){let o=this.ts;if(n||r){let i=e.offset(this.ts),a=this.toObject();[o]=LO(a,i,e)}return _0(this,{ts:o,zone:e})}else return t.invalid(DO(e))}reconfigure({locale:e,numberingSystem:n,outputCalendar:r}={}){let o=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:r});return _0(this,{loc:o})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let n=$C(e,Awe),{minDaysInFirstWeek:r,startOfWeek:o}=Lq(n,this.loc),i=!Rt(n.weekYear)||!Rt(n.weekNumber)||!Rt(n.weekday),a=!Rt(n.ordinal),l=!Rt(n.year),c=!Rt(n.month)||!Rt(n.day),d=l||c,f=n.weekYear||n.weekNumber;if((d||a)&&f)throw new Dc("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Dc("Can't mix ordinal dates with month/day");let m;i?m=$q({...AT(this.c,r,o),...n},r,o):Rt(n.ordinal)?(m={...this.toObject(),...n},Rt(n.day)&&(m.day=Math.min(DC(m.year,m.month),m.day))):m=Nq({...TO(this.c),...n});let[h,g]=LO(m,this.o,this.zone);return _0(this,{ts:h,o:g})}plus(e){if(!this.isValid)return this;let n=yo.fromDurationLike(e);return _0(this,Rwe(this,n))}minus(e){if(!this.isValid)return this;let n=yo.fromDurationLike(e).negate();return _0(this,Rwe(this,n))}startOf(e,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;let r={},o=yo.normalizeUnit(e);switch(o){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break;case"milliseconds":break}if(o==="weeks")if(n){let i=this.loc.getStartOfWeek(),{weekday:a}=this;a<i&&(r.weekNumber=this.weekNumber-1),r.weekday=i}else r.weekday=1;if(o==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e,n){return this.isValid?this.plus({[e]:1}).startOf(e,n).minus(1):this}toFormat(e,n={}){return this.isValid?Gi.create(this.loc.redefaultToEN(n)).formatDateTimeFromString(this,e):Kq}toLocaleString(e=qh,n={}){return this.isValid?Gi.create(this.loc.clone(n),e).formatDateTime(this):Kq}toLocaleParts(e={}){return this.isValid?Gi.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:n=!1,suppressMilliseconds:r=!1,includeOffset:o=!0,extendedZone:i=!1}={}){if(!this.isValid)return null;let a=e==="extended",l=Zq(this,a);return l+="T",l+=Mwe(this,a,n,r,o,i),l}toISODate({format:e="extended"}={}){return this.isValid?Zq(this,e==="extended"):null}toISOWeekDate(){return NO(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:o=!1,extendedZone:i=!1,format:a="extended"}={}){return this.isValid?(o?"T":"")+Mwe(this,a==="extended",n,e,r,i):null}toRFC2822(){return NO(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return NO(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Zq(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let o="HH:mm:ss.SSS";return(n||e)&&(r&&(o+=" "),n?o+="z":e&&(o+="ZZ")),NO(this,o,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Kq}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let n={...this.c};return e.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,n="milliseconds",r={}){if(!this.isValid||!e.isValid)return yo.invalid("created by diffing an invalid DateTime");let o={locale:this.locale,numberingSystem:this.numberingSystem,...r},i=J3e(n).map(yo.normalizeUnit),a=e.valueOf()>this.valueOf(),l=a?this:e,c=a?e:this,d=wwe(l,c,i,o);return a?d.negate():d}diffNow(e="milliseconds",n={}){return this.diff(t.now(),e,n)}until(e){return this.isValid?Dp.fromDateTimes(this,e):this}hasSame(e,n,r){if(!this.isValid)return!1;let o=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(n,r)<=o&&o<=i.endOf(n,r)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let n=e.base||t.fromObject({},{zone:this.zone}),r=e.padding?this<n?-e.padding:e.padding:0,o=["years","months","days","hours","minutes","seconds"],i=e.unit;return Array.isArray(e.unit)&&(o=e.unit,i=void 0),Pwe(n,this.plus(r),{...e,numeric:"always",units:o,unit:i})}toRelativeCalendar(e={}){return this.isValid?Pwe(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Go("min requires all arguments be DateTimes");return Mq(e,n=>n.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Go("max requires all arguments be DateTimes");return Mq(e,n=>n.valueOf(),Math.max)}static fromFormatExplain(e,n,r={}){let{locale:o=null,numberingSystem:i=null}=r,a=Jn.fromOpts({locale:o,numberingSystem:i,defaultToEN:!0});return Hq(a,e,n)}static fromStringExplain(e,n,r={}){return t.fromFormatExplain(e,n,r)}static get DATE_SHORT(){return qh}static get DATE_MED(){return pT}static get DATE_MED_WITH_WEEKDAY(){return fq}static get DATE_FULL(){return mT}static get DATE_HUGE(){return hT}static get TIME_SIMPLE(){return gT}static get TIME_WITH_SECONDS(){return vT}static get TIME_WITH_SHORT_OFFSET(){return yT}static get TIME_WITH_LONG_OFFSET(){return bT}static get TIME_24_SIMPLE(){return xT}static get TIME_24_WITH_SECONDS(){return CT}static get TIME_24_WITH_SHORT_OFFSET(){return ST}static get TIME_24_WITH_LONG_OFFSET(){return wT}static get DATETIME_SHORT(){return ET}static get DATETIME_SHORT_WITH_SECONDS(){return TT}static get DATETIME_MED(){return _T}static get DATETIME_MED_WITH_SECONDS(){return DT}static get DATETIME_MED_WITH_WEEKDAY(){return pq}static get DATETIME_FULL(){return $T}static get DATETIME_FULL_WITH_SECONDS(){return NT}static get DATETIME_HUGE(){return LT}static get DATETIME_HUGE_WITH_SECONDS(){return OT}};function PC(t){if(gn.isDateTime(t))return t;if(t&&t.valueOf&&Kd(t.valueOf()))return gn.fromJSDate(t);if(t&&typeof t=="object")return gn.fromObject(t);throw new Go(`Unknown datetime argument: ${t}, of type ${typeof t}`)}function OO(t){return t.reduce((e,{field:n,operator:r,value:o})=>{if(!n||!r)return e;if(n==="updated_at"&&(n="modified"),n==="created_at"&&(n="created"),r==="def")return{...e,[`${n}[def]`]:"true"};if(r==="ndef")return{...e,[`${n}[def]`]:"false"};if(r==="checked")return{...e,[`${n}[eq]`]:"true"};if(r==="nchecked")return{...e,[`${n}[eq]`]:"false"};if(typeof o>"u"||o===null||o===""||Array.isArray(o)&&o.length<1)return e;if(r==="between"||r==="sys-date-between")if(Array.isArray(o)&&o.length===2){if(r==="between")return{...e,[`${n}[gte]`]:o[0],[`${n}[lte]`]:o[1]};{let i=gn.fromISO(o[0],{zone:"system"}).setZone("utc").toISO(),a=gn.fromISO(o[1],{zone:"system"}).plus({day:1}).setZone("utc").toISO();return i&&a?{...e,[`${n}[gte]`]:i,[`${n}[lt]`]:a}:e}}else return e;if(r==="sys-date-eq")if(typeof o=="string"){let i=gn.fromISO(o,{zone:"system"}).setZone("utc").toISO(),a=gn.fromISO(o,{zone:"system"}).plus({day:1}).setZone("utc").toISO();return i&&a?{...e,[`${n}[gte]`]:i,[`${n}[lt]`]:a}:e}else return e;if(r==="sys-date-gt")if(typeof o=="string"){let i=gn.fromISO(o,{zone:"system"}).plus({day:1}).setZone("utc").toISO();return i?{...e,[`${n}[gte]`]:i}:e}else return e;if(r==="sys-date-gte")if(typeof o=="string"){let i=gn.fromISO(o,{zone:"system"}).setZone("utc").toISO();return i?{...e,[`${n}[gte]`]:i}:e}else return e;if(r==="sys-date-lt")if(typeof o=="string"){let i=gn.fromISO(o,{zone:"system"}).setZone("utc").toISO();return i?{...e,[`${n}[lt]`]:i}:e}else return e;if(r==="sys-date-lte")if(typeof o=="string"){let i=gn.fromISO(o,{zone:"system"}).plus({day:1}).setZone("utc").toISO();return i?{...e,[`${n}[lt]`]:i}:e}else return e;if(r==="starts"&&typeof o=="string")return{...e,[`${n}[starts]`]:o.replaceAll(/[^a-zA-Z0-9_.\s-]/g,"").toLowerCase()};if(n==="workflowStageId"){let i=t.some(a=>a.field==="workflowId");if(r==="eq"||r==="neq"){let a=[];return Array.isArray(o)?a=o.map(c=>c.split("_")[1]):a=o.split("_"),{...e,...i?{}:{"workflowId[eq]":a[0]},[`${n}[${r}]`]:a[1]}}if(Array.isArray(o)){let a=o.map(d=>{let f=d.split("_")[0],m=d.split("_")[1];return{workflowId:f,workflowStage:m}}),l=a.map(d=>d.workflowId).join(","),c=a.map(d=>d.workflowStage).join(",");return{...e,...i?{}:{[`workflowId[${r}]`]:l},[`${n}[${r}]`]:c}}}return{...e,[`${n}[${r}]`]:Array.isArray(o)?o.join(","):o}},{})}import{CANVAS_DRAFT_STATE as Vwe,CanvasClient as Uwe}from"@uniformdev/canvas";async function RO({instanceType:t,searchExpressionPrompt:e,username:n,locale:r,getEditUrl:o}){let i=new Uwe(pt),a=await fO({searchExpressionPrompt:e,username:n,locale:r},t),{limit:l,offset:c,keyword:d,sort:f,filter:m}=a,g=(await i.getCompositionList({patternType:t==="composition"?void 0:t==="componentPattern"?"component":"composition",pattern:t!=="composition",resolveData:!1,withComponentIDs:!0,skipOverridesResolution:!0,limit:l,offset:c,search:d,filters:m?OO(m):void 0,orderBy:Array.isArray(f)?f:f?[f]:void 0,locale:r,skipPatternResolution:!0,state:Vwe})).compositions.map(y=>({id:y.composition._id,name:y.composition._name,componentType:y.composition.type,editUrl:o(y.composition._id)}));return{content:[{type:"text",text:JSON.stringify({results:g,criteria:a},null,2)}]}}async function MO({id:t}){let n=await new Uwe(pt).getCompositionById({skipDataResolution:!0,withComponentIDs:!0,skipOverridesResolution:!0,skipPatternResolution:!1,compositionId:t,state:Vwe});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}var rst={id:jwe.string()};function Hwe(t){t.tool("compositionList","Lists available Uniform compositions",Ep.shape,async e=>await RO({...e,instanceType:"composition",getEditUrl:dO})),t.tool("compositionGet","Gets the full contents of a Uniform composition",rst,async e=>await MO(e))}import{ContentClient as ost}from"@uniformdev/canvas";import*as kO from"zod";import*as rg from"zod";var Wwe=rg.object({name:rg.string().describe('Title-cased display name of the component. Ex: "Hero"'),id:rg.string().describe("Public ID of the content type, the camelCase version of name, using only alphanumeric characters"),description:rg.string().describe("Describe the purpose of the content type in 1-2 sentences."),fields:rg.array(r6).describe("The fields of the content type. The key is the publicId of the field.").optional()});function Kwe(t){let e=t.fields?.find(r=>r.type==="asset"&&typeof r.typeConfig=="object"&&r.typeConfig!==null&&"allowedTypes"in r.typeConfig&&Array.isArray(r.typeConfig.allowedTypes)&&r.typeConfig.allowedTypes?.includes("image"))?.id,n=t.fields?.find(r=>r.type==="text")?.id;return{...t,thumbnailField:e,entryName:n}}function AO(t){return`${pt.baseWebUrl}/dashboards/canvas/content-types/${t}`}var ist={action:kO.enum(["create","update","delete"]).describe("The action to perform"),publicId:kO.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),contentType:Wwe.describe("Full content type definition to create. Omit for update or delete.").optional(),patches:t6.describe("JSON patch to apply to the existing component definition. Omit for create or delete.").optional()};function Gwe(t){t.tool("contentTypeAction","Creates, updates, or deletes a Uniform Content Type definition",ist,async({publicId:e,action:n,contentType:r,patches:o})=>{let i=new ost(pt),a=!1;if(n==="create"){if(!r)throw new Error("Content type definition is required for create");let l=Kwe(r);l.fields&&(a=Ry(l.fields),My(l.fields)),await i.upsertContentType({contentType:l})}if(n==="update"){if(!o)throw new Error("Patches are required for update");let c=(await i.getContentTypes()).contentTypes.find(m=>m.id===e);if(!c)throw new Error(`Content Type with public ID ${e} does not exist, try creating it instead`);let d=c.fields?.filter(m=>m.type==="richText").map(m=>m.id),f=e6(c,o);if(f.fields){a=Ry(f.fields);let m=f.fields?.filter(h=>h.type==="richText").map(h=>h.id).filter(h=>!d?.includes(h));My(f.fields,m)}await i.upsertContentType({contentType:f})}return n==="delete"&&await i.deleteContentType({contentTypeId:e}),{content:[{type:"text",text:JSON.stringify({success:!0,editUrl:AO(e),warning:a?"Issues with field group order were fixed. Ensure definition data is re-fetched before any future updates.":void 0},null,2)}]}})}import{ContentClient as Ywe}from"@uniformdev/canvas";import*as Zwe from"zod";var ast={id:Zwe.string()};function qwe(t){t.tool("contentTypeList","Lists all Uniform Content Type definitions",async()=>{let r=(await new Ywe(pt).getContentTypes()).contentTypes.map(o=>({id:o.id,name:o.name,description:o.description,editUrl:AO(o.id)}));return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("contentTypeGet","Gets a Uniform Content Type definition details (fields, etc.)",ast,async({id:e})=>{let o=(await new Ywe(pt).getContentTypes()).contentTypes.find(i=>i.id===e);if(!o)throw new Error(`Content Type with ID ${e} not found`);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}})}function Xwe(t){t.tool("createUuid","Creates a new random UUID",async()=>({content:[{type:"text",text:crypto.randomUUID()}]}))}import*as UT from"zod";import{CANVAS_DRAFT_STATE as PO,ContentClient as sst,convertEntryToPutEntry as lst,getEffectivePropertyValue as ust}from"@uniformdev/canvas";async function cst(t,e,n){let o=(await e.fetchDefinitions())[t.entry.type];if(!o)throw new Error("insanity");let i=s3e(o),a;i.entryName&&(a=t.entry._overrides?.[t.entry._id].parameters?.[i.entryName]??t.entry.fields?.[i.entryName]);let l=ust({conditionIndex:-1,locale:void 0,greedyLocaleMatching:!0,property:a}),c=W4e({value:l,isNew:n,contentType:i});t.entry._name=c}async function IO({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new sst(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};if(t==="duplicate"){let h=(await a.getEntries({entryIDs:[e],pattern:r,state:PO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0})).entries[0];if(!h)throw new Error("Entry not found");let g=crypto.randomUUID(),y={...h.entry,_id:g,_name:`${h.entry._name} (copy)`};y._slug&&(y._slug=`${y._slug}-copy${y._slug?.endsWith("/")?"/":""}`),delete y._thumbnail;let b=lT({...h,entry:y});l=new Wd(b.composition),e=g}else if(t==="create"){if(!n)throw new Error("Instructions are required for create");if(!n.type)throw new Error("Type is required for create");o?(await a.upsertEntry({state:PO,entry:{type:n.type,_id:e,fields:{},_pattern:o}}),d=e):l=new Wd({_id:e,_name:"New Entry",type:n.type,_overridability:{hideLockedParameters:!0}})}if(d){if(c=(await a.getEntries({entryIDs:[e],pattern:r,state:PO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0})).entries[0],!c)throw new Error("Entry not found");let h=lT(c);l=new Wd(h.composition)}t==="delete"&&await a.deleteEntry({entryId:e});let m=L3e();if(l){t!=="duplicate"&&(await lO(n?.localeUpdates?.enableLocales),f=await ZL({twee:l,descriptionUpdate:void 0,slugUpdate:n&&"slug"in n?n.slug:void 0,nameUpdate:n&&"name"in n?n.name:void 0,propertyUpdates:n?.fieldUpdates??[],dataResourceUpdates:(n&&"dataResourceUpdates"in n?n.dataResourceUpdates:[])??[],slotUpdates:{},localeUpdates:n?.localeUpdates,currentEditorLocale:void 0,referenceData:m,isEditingPattern:r}));let h=l.exportTree(),g=l.exportMetadata(),y=lst(l3e(h,c??{projectId:pt.projectId,pattern:r},g,PO,c?.releaseId,c?.editionId));r||await cst(y,m,t==="create"),await a.upsertEntry(y)}return{content:[{type:"text",text:JSON.stringify({...f,editUrl:i(e)},null,2)}]}}function FO(t){return`${pt.baseWebUrl}/dashboards/canvas/entries/${t}`}var dst={action:UT.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:UT.string().uuid().describe("UUID of the entry to create, update, delete, or duplicate"),patternId:UT.string().uuid().describe("Entry pattern ID to create the entry from. Omit when not creating, or when creating an entry without an entry pattern.").optional(),instructions:yne.describe("Modification instructions for the entry. Omit for delete and duplicate.").optional()};function Jwe(t){t.tool("entryAction","Creates, updates, or deletes a Uniform Entry",dst,async e=>await IO({...e,isPattern:!1,getEditUrl:FO,patternId:e.patternId}))}import*as tEe from"zod";import{CANVAS_DRAFT_STATE as Qwe,ContentClient as eEe}from"@uniformdev/canvas";async function BO({isPattern:t,searchExpressionPrompt:e,username:n,locale:r,getEditUrl:o}){let i=new eEe(pt),a=await fO({searchExpressionPrompt:e,username:n,locale:r},t?"entryPattern":"entry"),{limit:l,offset:c,keyword:d,sort:f,filter:m}=a,g=(await i.getEntries({limit:l,offset:c,pattern:t,skipDataResolution:!0,withTotalCount:!0,skipPatternResolution:!0,skipOverridesResolution:!0,state:Qwe,search:d,filters:m?OO(m):void 0,orderBy:Array.isArray(f)?f:f?[f]:void 0,locale:r})).entries.map(y=>({id:y.entry._id,name:y.entry._name??"",contentType:y.entry.type,editUrl:o(y.entry._id)}));return{content:[{type:"text",text:JSON.stringify({results:g,criteria:a},null,2)}]}}async function zO({id:t,isPattern:e}){let r=await new eEe(pt).getEntries({skipDataResolution:!0,withComponentIDs:!0,skipOverridesResolution:!0,skipPatternResolution:!1,pattern:e,entryIDs:[t],state:Qwe});if(r.entries.length===0)throw new Error(`Entry with ID ${t} not found`);return{content:[{type:"text",text:JSON.stringify(r.entries[0],null,2)}]}}var fst={id:tEe.string()};function nEe(t){t.tool("entryList","Lists available Uniform entries",Ep.shape,async e=>await BO({...e,isPattern:!1,getEditUrl:FO})),t.tool("entryGet","Gets the full contents of a Uniform entry",fst,async e=>await zO({...e,isPattern:!1}))}import*as UO from"zod";function VO(t){return`${pt.baseWebUrl}/dashboards/canvas/entry-patterns/${t}`}var pst={action:UO.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:UO.string().uuid().describe("UUID of the entry pattern to create, update, delete, or duplicate"),instructions:bne.describe("Modification instructions for the entry pattern. Omit for delete and duplicate.").optional()};function rEe(t){t.tool("entryPatternAction","Creates, updates, or deletes a Uniform Entry Pattern",pst,async e=>await IO({...e,isPattern:!0,getEditUrl:VO,patternId:void 0}))}import*as oEe from"zod";var mst={id:oEe.string()};function iEe(t){t.tool("entryPatternList","Lists available Uniform entry patterns",Ep.shape,async e=>await BO({...e,isPattern:!0,getEditUrl:VO})),t.tool("entryPatternGet","Gets the full contents of a Uniform entry pattern",mst,async e=>await zO({...e,isPattern:!0}))}import{ProjectClient as hst}from"@uniformdev/canvas";async function gst(){let t=await fetch(`${pt.apiHost}/api/v1/member-profile`,{headers:{"x-api-key":pt.apiKey,"Content-Type":"application/json"}});if(!t.ok)throw new Error(`Failed to fetch user profile: ${t.status} ${t.statusText}`);return(await t.json()).name}function aEe(t){t.tool("getUniformEnvironment","Get the connected Uniform Project name, edit URL, and current user",{},async()=>{try{let e=new hst(pt),[n,r]=await Promise.all([e.get({projectId:pt.projectId}),gst()]),o={projectName:n.name,teamName:n.teamName,projectUrl:pt.baseWebUrl,currentIdentity:r};return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}catch(e){return{content:[{type:"text",text:JSON.stringify({error:"Failed to fetch project information",details:e instanceof Error?e.message:"Unknown error"},null,2)}]}}})}import{LocaleClient as vst}from"@uniformdev/canvas";function sEe(t){t.tool("localeList","Lists all registered Uniform locales",async()=>{let n=await new vst(pt).get();return{content:[{type:"text",text:JSON.stringify({locales:n.results,editUrl:`${pt.baseWebUrl}/settings/localization`},null,2)}]}})}import*as HO from"zod";function jO(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}var yst={action:HO.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:HO.string().uuid().describe("UUID of the pattern instance to create, update, delete, or duplicate"),instructions:gne.describe("Modification instructions for the pattern. Omit for delete and duplicate.").optional()};function lEe(t){t.tool("patternAction","Creates, updates, or deletes a Uniform Component Pattern or Composition Pattern",yst,async e=>await cO({...e,isPattern:!0,getEditUrl:jO,patternId:void 0}))}import*as WO from"zod";var bst={instanceType:WO.enum(["componentPattern","compositionPattern"]),...Ep.shape},xst={id:WO.string()};function uEe(t){t.tool("patternList","Lists available Uniform component patterns or composition patterns",bst,async e=>await RO({...e,getEditUrl:jO})),t.tool("patternGet","Gets the full contents of a Uniform component pattern or composition pattern",xst,async e=>await MO(e))}var Ha=new Cst({name:"Uniform MCP",version:"1.0.0"});fne(Ha);hne(Ha);Gwe(Ha);qwe(Ha);Jwe(Ha);nEe(Ha);iEe(Ha);rEe(Ha);uEe(Ha);lEe(Ha);O3e(Ha);Hwe(Ha);Xwe(Ha);aEe(Ha);sEe(Ha);var wst=new Sst;await Ha.connect(wst);process.stderr.write(`Uniform MCP server started
5287
5287
  `);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/uniform-mcp",
3
- "version": "20.36.1-alpha.1+38de886ef3",
3
+ "version": "20.36.1",
4
4
  "description": "Uniform MCP Server",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "bin": {
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@modelcontextprotocol/sdk": "^1.12.0",
25
- "@uniformdev/canvas": "20.36.1-alpha.1+38de886ef3",
25
+ "@uniformdev/canvas": "20.36.1",
26
26
  "fast-json-patch": "^3.1.1",
27
27
  "immer": "10.1.1",
28
28
  "zod": "3.23.8"
@@ -34,11 +34,11 @@
34
34
  "access": "public"
35
35
  },
36
36
  "devDependencies": {
37
- "@uniformdev/design-system": "20.36.1-alpha.1+38de886ef3",
38
- "@uniformdev/files": "20.36.1-alpha.1+38de886ef3",
39
- "@uniformdev/mesh-edgehancer-sdk": "20.36.1-alpha.1+38de886ef3",
40
- "@uniformdev/richtext": "20.36.1-alpha.1+38de886ef3",
37
+ "@uniformdev/design-system": "20.36.1",
38
+ "@uniformdev/files": "20.36.1",
39
+ "@uniformdev/mesh-edgehancer-sdk": "20.36.1",
40
+ "@uniformdev/richtext": "20.36.1",
41
41
  "vitest": "3.2.4"
42
42
  },
43
- "gitHead": "38de886ef32586054df84137f0abe58fc968f146"
43
+ "gitHead": "cced31b4edaff96f2eec23f2336ee0873663066a"
44
44
  }