@uniformdev/uniform-mcp 20.33.1-alpha.54 → 20.34.2-alpha.67

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
@@ -5184,7 +5184,7 @@ to {
5184
5184
  `;await er();function $4e(t){let e=fue({nodes:[gd,hd,BZ,rb,ob,dse,npe,tpe,rpe,kf]});return e.update(()=>{cse("skip-dom-selection"),lfe(t,hfe)},{discrete:!0}),e.getEditorState().toJSON()}function N4e({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=Cot({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===yot){let f=t.getParentInfo(e);if(f?.parentId){let m=t.getNodeProperty(f.parentId,vot);if(m?.value!==Sne)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 Cot=({twee:t,targetNode:e,propertyId:n,propertyType:r,propertyEdit:o})=>{if(r==="richText")return $4e(o.newValue??"");if(r==="number")return Number(o.newValue);if(n===got){if(xot(e.value.type))throw new Error("Enrichment tags are not allowed in system components.");if(t.getParentInfo(e.nodeId)?.parentId===bot)throw new Error("Enrichment tags are not allowed in personalization variants.")}return o.treatNewValueAsJson?JSON.parse(o.newValue):o.newValue};async function WL({twee:t,slotUpdates:e,propertyUpdates:n,localeUpdates:r,nameUpdate:o,slugUpdate:i,descriptionUpdate:a,currentEditorLocale:l,referenceData:c}){let d=[];o&&(t.updateRootNode({update:{_name:o}}),d.push({summary:"Updated name",success:!0})),i&&(t.updateRootNode({update:{_slug:i}}),d.push({summary:"Updated slug",success:!0})),a&&(t.updateRootMetadata({description:a}),d.push({summary:"Updated description",success:!0}));let f=await c.fetchDefinitions();await Tot({slotUpdates:e,twee:t,definitions:f,referenceData:c,results:d});let m=d.some(g=>!g.success);if(e.moveComponentInstances?.forEach(g=>{if(!wS(g.componentId)){d.push({summary:`Skipped moving component ${g.componentId} because component IDs are UUIDs, and the value provided is not a valid UUID`,success:!1});return}if(!wS(g.newParentComponentId)){d.push({summary:`Skipped moving component ${g.componentId} because the new parent component ID is not a valid UUID`,success:!1});return}m?d.push({summary:`Skipped moving component ${g.componentId} because previous actions failed`,success:!1}):(t.moveNode({movedNodeId:g.componentId,parentNodeId:g.newParentComponentId,parentSlot:g.newSlotName,targetIndexInSlot:g.newSlotIndex}),d.push({summary:`Moved component ${g.componentId} to ${g.newParentComponentId} in slot ${g.newSlotName} at index ${g.newSlotIndex}`,success:!0}))}),m=d.some(g=>!g.success),e.duplicateComponentInstances)for(let g of e.duplicateComponentInstances)if(m)d.push({summary:`Skipped duplicating component ${g} because previous actions failed`,success:!1});else{let y=await t.duplicateNode(g,c.resolvePatternData);d.push({summary:`Duplicated component ${g}. The new duplicate has ID ${y} and is placed immediately after the original component in the same slot.`,success:!0})}return m=d.some(g=>!g.success),e.deleteComponentInstances?.forEach(g=>{if(!wS(g)){d.push({summary:`Skipped deleting component ${g} because component IDs are UUIDs, and the value provided is not a valid UUID`,success:!1});return}m?d.push({summary:`Skipped deleting component ${g} because previous actions failed`,success:!1}):(t.deleteNode(g,!1),d.push({summary:`Deleted component ${g}`,success:!0}))}),m=d.some(g=>!g.success),r?.enableLocales?.forEach(g=>{m?d.push({summary:`Skipped enabling locale ${g} because previous actions failed`,success:!1}):(t.enableLocale(g),d.push({summary:`Enabled locale ${g}`,success:!0}))}),m=d.some(g=>!g.success),r?.disableLocales?.forEach(g=>{m?d.push({summary:`Skipped disabling locale ${g} because previous actions failed`,success:!1}):(t.disableLocale(g),d.push({summary:`Disabled locale ${g}`,success:!0}))}),m=d.some(g=>!g.success),m?n.length>0&&d.push({summary:`Skipped ${n.length} property updates because previous actions failed`,success:!1}):(await _ot({propertyUpdates:n,twee:t,currentEditorLocale:l,referenceData:c,definitions:f,results:d})).forEach(y=>{if(!y.result.success)return;let b="componentId"in y.update?y.update.componentId:t.rootNodeId,C=yne({twee:t,nodeId:b,currentEditorLocale:y.currentLocale,definition:y.propertyDefinition}),S=(t.getNodeById(t.rootNodeId)?.value)._locales??[];if(C&&!S.includes(C)){d.push({summary:`The ${C} locale is not enabled on this entity. Please enable it before setting values in this locale.`,success:!1});return}if(y.result.action!=="nothing")try{N4e({twee:t,nodeId:b,propertyId:y.propertyDefinition.id,propertyType:y.propertyDefinition.type,locale:C,propertyEdit:y.result}),d.push({summary:`Updated value of ${y.propertyDefinition.id} on ${b}${C?` in ${C}`:""}`,success:!0})}catch(w){d.push({summary:`Failed to update value of ${y.propertyDefinition.id} on ${b}${C?` in ${C}`:""}: ${w instanceof Error?w.message:"Unknown error"}`,success:!1})}if("overridable"in y.update&&y.update.overridable!==void 0)if(y.propertyDefinition.type===Sot)d.push({summary:`Cannot set overridability for block property '${y.propertyDefinition.id}' - blocks do not support overrides`,success:!1});else{let w=y.update.overridable;t.updateNode({nodeId:b,updateComponent:E=>{E._overridability??={},E._overridability.parameters??={},E._overridability.parameters[y.propertyDefinition.id]=w}}),d.push({summary:`Updated overridability for ${b}`,success:!0})}}),{success:d.every(g=>g.success),actionsTaken:d}}async function Tot({slotUpdates:t,twee:e,definitions:n,referenceData:r,results:o}){(await Promise.allSettled(t.createComponentInstances?.map(async a=>{let l=e.getNodeById(a.parentComponentId);if(!l)throw new Error(`Parent component with ID ${a.parentComponentId} not found`);let c=n[l.value.type];if(!c)throw new Error(`Definition for parent component type ${l.value.type} not found`);let d=c.slots?.find(h=>h.id===a.slotName);if(!d)throw new Error(`Slot ${a.slotName} not found on component type ${l.value.type}`);let f=Yk({twee:e,parentSlotDefinition:d,nodeId:a.parentComponentId,componentDefinitionsIndex:n});if(!f)throw new Error(`Can't find allowed components inherited slot for ${a.slotName}`);let m=gne(f);if(a.instanceType==="component"){if(!a.componentType)throw new Error("componentType is required when inserting a component instance");if(!Gk({type:a.componentType},m,!1))throw new Error(`Component type ${a.componentType} is not allowed in slot ${a.slotName}`);e.insertNode({node:{type:a.componentType},overrideNodeId:a.newComponentInstanceUuid,parentNodeId:a.parentComponentId,parentSlot:a.slotName,targetIndexInSlot:a.slotIndex}),o.push({summary:`Inserted component ${a.componentType} in slot ${a.slotName} ${a.slotIndex!==void 0?`at index ${a.slotIndex}`:""}`,success:!0})}else{if(!a.componentPatternId)throw new Error("componentPatternId is required when inserting a component pattern instance");let h=await r.resolvePatternData(a.componentPatternId);if(!h)throw new Error(`Pattern definition with ID ${a.componentPatternId} not found`);if(!Gk({type:h.type,_pattern:a.componentPatternId},m,!1))throw new Error(`Pattern ${a.componentPatternId} is not allowed in slot ${a.slotName}`);e.insertPattern({pattern:h,patternInstanceId:a.newComponentInstanceUuid,parentNodeId:a.parentComponentId,parentSlot:a.slotName,targetIndexInSlot:a.slotIndex}),o.push({summary:`Inserted pattern ${h._name} in slot ${a.slotName} ${a.slotIndex!==void 0?`at index ${a.slotIndex}`:""}`,success:!0})}})??[])).forEach((a,l)=>{if(a.status==="rejected"){let c=t.createComponentInstances?.[l];console.error("Error inserting component",a.reason),o.push({summary:`Failed to insert component ${c?.newComponentInstanceUuid}: ${"message"in a.reason?a.reason.message:"Unknown error"}`,success:!1})}})}async function _ot({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,C=y??{id:g,type:"unknown"};if(d.editInstructions===void 0)return{result:{success:!0,newValue:"",treatNewValueAsJson:!1,action:"nothing"},update:d,propertyDefinition:C};if(d.editInstructions==="")return{result:{success:!0,newValue:"",treatNewValueAsJson:!1,action:"clearValue"},update:d,propertyDefinition:C};if(!y)throw new Error(`Property with ID ${g} not found`);let S=wot({property:e.getNodeProperty(f,g),locale:b,conditionIndex:-1}),w,E=e.getNodeProperty(f,Eot);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:S,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)}import{CANVAS_BLOCK_PARAM_TYPE as Tc,CANVAS_ENRICHMENT_TAG_PARAM as l3e,CANVAS_LOCALE_TAG_PARAM as aT,CANVAS_LOCALIZATION_SLOT as eq,CANVAS_LOCALIZATION_TYPE as uit,CANVAS_PERSONALIZATION_PARAM as sT,CANVAS_PERSONALIZE_SLOT as u3e,CANVAS_SLOT_SECTION_SLOT as cit,CANVAS_SLOT_SECTION_TYPE as tq,CANVAS_TEST_SLOT as c3e,CANVAS_TEST_VARIANT_PARAM as d3e,CANVAS_VIZ_CONTROL_PARAM as p0,convertToBindExpression as dit,createVariableReference as fit,getEffectivePropertyValue as f3e,walkNodeTree as m0}from"@uniformdev/canvas";var h0=J(jZ(),1),m3e=J(TS(),1);import{produce as _o}from"immer";import{bindVariablesToObject as Mot}from"@uniformdev/canvas";var rT="Untitled",I4e=60;function F4e({value:t,isNew:e,contentType:n}){let{result:r}=Mot({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: ${Aot(r)}`:`${rT} image`;if(r.length>0)return i?.type==="date"?Pot(r)?Iot(r):"Invalid date":f0(r)}else{if(typeof r=="number"||typeof r=="boolean")return r.toString();if(typeof r<"u"&&r!==null){if(i?.type==="link")return Rot(r);if(nne(r))return f0(jk(r.root));if(i?.type==="datetime"&&r){let a=r;return a.datetime&&B4e(a.datetime)?Fot(a.datetime):"Invalid datetime"}else return f0(Bot(r).description)}}return e?`New entry: ${n.name}`:rT}function Rot(t){return t?t.type==="projectMapNode"?t.path.length>0?`Link to ${f0(t.path)}`:`Link to project map node (${t.nodeId})`:t.path.length>0?`Link to ${f0(t.path)}`:`${rT} link`:`${rT} link`}function Aot(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]} (${f0(n)})`:`${e} (${f0(n)})`}catch{return t}}function f0(t){let e=t.split(" ").filter(i=>i).reverse();if(e.length<1)return rT;let n="",r=e.pop(),o=()=>n.length+(r?.length??0)+(n.length>0?1:0);for(;r&&o()<I4e;)n+=n.length>0?` ${r}`:r,r=e.pop();return n.length<1?`${t.slice(0,I4e)}...`:e.length>0?`${n}...`:n}var kot=/^[1-9][0-9]{3}-[0-1][0-9]-[0-3][0-9]$/;function Pot(t){return kot.test(t)?B4e(t):!1}function B4e(t){let e=new Date(t);return e instanceof Date&&!isNaN(Number(e))}function Iot(t){return new Date(t).toLocaleDateString()}function Fot(t){return new Date(t).toLocaleString()}function Bot(t){let e=KZ(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 Vot=["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 KZ(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=KZ(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 Vot)if(r in n){let o=KZ(n[r]);if(o)return o}}import{CANVAS_SLOT_SECTION_SLOT as Uot,walkNodeTree as jot}from"@uniformdev/canvas";var oT="|";function KL(t,e){if(!t)return e??wi();let n=t.split(oT),r=(e??wi()).split(oT);return n.at(-1)===r[0]&&n.pop(),n.concat(r).join(oT)}function V4e(t){let e=t.indexOf(oT);if(e<0)throw new Error(`Cannot remove pattern instance ID from ${t}`);return t.substring(e+1)}function GL(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=KL(i.currentParentPatternInstanceId,r._id);r._id=d}let c=i?.currentParentPatternInstanceId;l&&(c=r._id),"_overrides"in r&&r._overrides&&z4e(r._overrides,c,a),"_patternOverrides"in r&&r._patternOverrides&&z4e(r._patternOverrides,c,a),l&&o({currentParentPatternInstanceId:r._id})},{initialContext:{currentParentPatternInstanceId:e}})}var z4e=(t,e,n)=>{Object.entries(t).forEach(([r,o])=>{let i=n?r:KL(e,r);Object.entries(o.slots??{}).forEach(([a,l])=>{l.forEach(c=>{let{partOfNestedPattern:d}=YL(r??"");GL(c,a===Uot&&!d?void 0:e,!0)})}),i&&(delete t[r],t[i]=o)})};function YL(t){let e=t.split(oT);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 G4e}from"@uniformdev/canvas";import{CANVAS_VIZ_CONTROL_PARAM as Got}from"@uniformdev/canvas";import{CANVAS_ENRICHMENT_TAG_PARAM as U4e,CANVAS_INTENT_TAG_PARAM as Hot,CANVAS_LOCALE_TAG_PARAM as Wot,CANVAS_PERSONALIZATION_PARAM as j4e,CANVAS_TEST_VARIANT_PARAM as Kot,CANVAS_VIZ_CONTROL_PARAM as H4e}from"@uniformdev/canvas";var W4e=[{id:Hot,name:"Intent Tag",type:"intentTag"},{id:Wot,name:"Locale Visibility",type:"localeSelect"},{id:j4e,name:"Personalization Criteria",type:j4e},{id:U4e,name:"Enrichment Tags",type:U4e,helpText:"Seeing this component will increase a visitor's score in these enrichments."},{id:Kot,name:"A/B Test",type:"testVariant"},{id:H4e,name:"Visibility Control",type:H4e}];var Yot=W4e.reduce((t,e)=>(e.id===Got||t.add(e.id),t),new Set);function gC(t,e){return Yot.has(e)?"yes":t?.parameters?.[e]??"no"}function GZ(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 K4e({applyOverrideToNode:t}){let e=new Set,n={};return{visitNode(r){e.add(r._id),GZ(n,r._overrides),GZ(n,r._patternOverrides);let o=n[r._id];o&&(o.parameters&&Object.keys(o.parameters).forEach(i=>{gC(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 YZ(t){let{beforeApplyParameterOverride:e,beforeApplyDataResourceOverride:n}=t??{};return K4e({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[G4e]??=[],r.slots[G4e]=[...o.slots[i]??[]]}}})}import{CANVAS_SLOT_SECTION_SLOT as Zot,CANVAS_SLOT_SECTION_TYPE as qot}from"@uniformdev/canvas";var Y4e=({preserveOwnSlotSections:t=!1,preserveChildrenSlotSections:e=!1}={})=>n=>{if(n.node.type!==qot)return;let{partOfPattern:r,partOfNestedPattern:o}=YL(n.node._id??"");!r&&!o&&t||r&&!o&&e||Jot(n)},Jot=({node:t,type:e,actions:n})=>{e!=="entry"&&(n.insertAfter(t.slots?.[Zot]??[]),n.remove())};import{walkNodeTree as eit}from"@uniformdev/canvas";import{produce as tit}from"immer";import{CANVAS_SLOT_SECTION_SLOT as Z4e,walkNodeTree as Xot}from"@uniformdev/canvas";import{produce as Qot}from"immer";function ZL(t,e,n,r=wi()){if(!t._pattern)throw new Error("Not a pattern");let o={};return Xot(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!==Z4e?(i._id=V4e(c),i._id=KL(r,i._id)):(l.replace({...o[c],_id:o[c]._id}),l.stopProcessingDescendants())}if(d){let m=Qot(d,h=>{h.slots&&Object.entries(h.slots).forEach(([g,y])=>{if(g!==Z4e)throw new Error("Only slot section items are supported for duplication");y.forEach((b,C)=>{if(!b._id)return;let S=qL(b,e,n);o[b._id]=S,y[C]=S})})});n?.(i._id,m,c)}}),r}function qL(t,e,n){return tit(t,r=>{eit(r,({type:o,node:i,actions:{stopProcessingDescendants:a}})=>{o==="component"&&i._pattern?(ZL(i,e,n),a()):i._id=wi()})})}import{produce as nit}from"immer";function q4e(t,e=wi()){return nit(t,n=>(n._pattern?ZL(n,n._overrides??{},(r,o,i)=>{delete n._overrides[i],n._overrides[r]=o},e):n._id=e,n))}function JL({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 ZZ({locale:t,conditionIndex:e,conditionDefinition:n,property:r,newPropertyValue:o}){t===void 0?e<0?r.value=o:(r.conditions??=[],J4e(r.conditions,e,n,o)):e<0?(r.locales??={},r.locales[t]=o):(r.localesConditions??={},r.localesConditions[t]??=[],J4e(r.localesConditions[t],e,n,o))}function J4e(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??rit(t)}}function rit(t){let e=new Set(t.map(r=>r.id)),n=0;for(;e.has(n);)n++;return n}function X4e(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 oit,convertEntryToPutEntry as Ajt,getPropertiesValue as Ijt}from"@uniformdev/canvas";function Q4e(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 e3e(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 iT(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 t3e(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??oit,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 qZ(t,e){let{parameters:n,...r}=t;return{...r,_id:e??r._id??"unknown",fields:n}}function JZ(t){let{fields:e,...n}=t;return{...n,parameters:e}}import{CANVAS_VIZ_LOCALE_RULE as iit}from"@uniformdev/canvas";import{produce as ait}from"immer";function n3e(t,e,n){let r=ait(t.criteria,o=>r3e(o,e,n));return r&&{...t,criteria:r}}function r3e(t,e,n){if(!t)return t;let r=!1;for(let o of t.clauses)if("clauses"in o){let i=r3e(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===iit){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 o3e=J(jZ(),1);function XZ(t,e){try{return(0,o3e.get)(t,e)}catch{return}}function QZ(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 sit}from"@uniformdev/canvas";import{produce as lit}from"immer";function i3e(t,e){let n=lit(t.criteria,r=>a3e(r,e));return n&&{...t,criteria:n}}function a3e(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=a3e(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===sit){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 s3e(t,e){let n=ES();if(process.env.NODE_ENV==="development"&&!e){let r=new Error().stack?.split(`
5185
5185
  `).slice(2).join(`
5186
5186
  `).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 _u=(0,m3e.default)(),pit=!0,mit="Twee",Ud=class t{#e={};rootNodeId;#r={};#o={};#n;#i={};#t=s3e(mit,pit);#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=_o(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??wi(),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 qZ(this.exportSubtree(e),e)}getNodeChildren(e){let n=this.#r[e];if(n)return n}getNodeProperty(e,n){return XZ(this.#o,[e,n])}getNodeProperties(e){return this.#o[e]??{}}insertNode({node:e,parentNodeId:n,parentSlot:r,targetIndexInSlot:o,overrideNodeId:i}){let a=i??wi(),l={nodeId:a,parentId:n,value:t.#E(e),isExpandedInUI:!0,propertyValueLocalizability:{}};return this.#S({node:l,parentNodeId:n,parentSlot:r,targetIndexInSlot:o}),this.#m({nodeId:a,destinationParentId:n,destinationSlotName:r}),this.pristine=!1,this.#t.emit("nodeChanged",{changedNode:l,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??wi();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=X4e(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=_o(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]=_o(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=[];m0(r,({node:l})=>{l._id&&o.push(l._id)}),m0(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=_u(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 m0(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=>{m0(m,({node:h})=>{l(h)})})})}),await Promise.all(c),this.#T(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,aT)?.value===e&&!o.partOfPattern&&n.push(o.nodeId);let a=this.getNodeProperties(o.nodeId);Object.entries(a).forEach(([c,d])=>{let f=d;c!==p0&&(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,p0);if(l?.value){let c=i3e(l.value,e);c===null?n.push(o.nodeId):this.updateNodeProperty({nodeId:o.nodeId,property:p0,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===uit&&!d.partOfPattern){let m=this.getNodeChildren(d.nodeId)?.[eq]??[],h=m.map(b=>this.getNodeProperty(b,aT)),g=h.findIndex(b=>b?.value===n);if(g>=0){let b=m[g];Hh(a,b).actions.push({type:"deleteLocalizedNode"})}let y=h.findIndex(b=>b?.value===e);if(y>=0){let b=m[y];Hh(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=gC(d.value._overridability,m)==="yes";if(!(g||y))return;if(m===p0){let $=n3e(h.value,e,n);$===null?Hh(a,d.nodeId).actions.push({type:"deleteLocalizedNode"}):$&&Hh(a,d.nodeId).actions.push({type:"updateVisibilityCriteria",targetValue:$})}let C=h.locales?.[e],S=h.locales?.[n];(!C||!S||!ba(C,S))&&(C!==void 0?Hh(a,d.nodeId).actions.push({type:"copyPropertyValue",propertyId:m,sourceValue:C,targetValue:S,conditionIndex:-1}):S!==void 0&&Hh(a,d.nodeId).actions.push({type:"deletePropertyValue",propertyId:m,sourceValue:C,targetValue:S,conditionIndex:-1}));let w=h.localesConditions?.[e],E=h.localesConditions?.[n];w?.forEach(($,M)=>{let O=h.localesConditions?.[n]?.[M];(!$||!O||!ba($,O))&&Hh(a,d.nodeId).actions.push({type:"copyPropertyValue",propertyId:m,sourceValue:$.value,targetValue:O,conditionIndex:M,conditionDefinition:$.when})});let _=w?.length??0,N=E?.length??0;if(_<N){let $=Hh(a,d.nodeId);for(let M=_;M<N;M++)$.actions.push({type:"deletePropertyValue",propertyId:m,sourceValue:w?.[M],targetValue:E?.[M],conditionIndex:M})}})},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:aT,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:eq,targetIndexInSlot:c.targetIndexInSlot});break}case"updateVisibilityCriteria":{this.updateNodeProperty({nodeId:a,property:p0,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=_o(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=_o(this.#n,C=>{C[e]??={},C[e].dataResources??={},C[e].dataResources[y.name]=y.value})),h.value._dataResources??={},h.value._dataResources[y.name]=y.value;break;case"remove":b&&(this.#n=_o(this.#n,C=>{delete C[e]?.dataResources?.[y.name]})),delete h.value._dataResources?.[y.name];break;case"reset":{let C=this.#i[e]?.dataResources?.[y.name];h.value._dataResources&&(C&&Object.keys(C).length>0?h.value._dataResources[y.name]=C:delete h.value._dataResources[y.name]),this.#n=_o(this.#n,S=>{delete S[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=_o(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=XZ(this.#o,g);if(!y&&r==null)return;let b=f3e({locale:i,property:y,conditionIndex:d}),C=i?y?.localesConditions?.[i]?.[d]:y?.conditions?.[d],S=typeof r=="function"?_o(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=_o(E,$=>{S===void 0&&d<0?_=!JL({locale:i,property:$,conditionIndex:d}):f===null&&d>=0?_=!JL({locale:i,property:$,conditionIndex:d}):ZZ({locale:i,property:$,newPropertyValue:S,conditionIndex:d,conditionDefinition:f??C?.when??{clauses:[]}})}),_&&(E=void 0);let N=h&&gC(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=_o(this.#i,M=>{M[e]??={parameters:{},dataResources:{}},M[e].parameters[n]=y??null}))),!c&&N){let $=this.#n[e]?.parameters?.[n];this.#n=_o(this.#n,M=>{let A=S==null||E===void 0?null:S,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=_o(k,H=>{f===null&&d>=0?JL({locale:i,property:H,conditionIndex:d}):ZZ({locale:i,property:H,newPropertyValue:A,conditionIndex:d,conditionDefinition:f??C?.when??{clauses:[]}})});(0,h0.set)(M,`/${e}/parameters/${n}`,F)}),$||this.#t.emit("propertyOverrideCreated",{nodeId:e,property:n})}S===null?(0,h0.remove)(this.#o,g):(this.#o[e]??={},(0,h0.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||gC(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=_o(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=f3e({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=_o(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=_u(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=p3e(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=_u(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===Tc&&Array.isArray(y.value)){let b=y.value,C=[];b.forEach(S=>{let w=this.exportSubtree(S,n);C.push(qZ(w,S))}),m[g]={value:C,type:Tc},h=!0}else{let b=p3e(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 C=_u(b),S=c.value;S.slots=S.slots||{},(0,h0.set)(c,["value","slots",m,y.toString(10)],C.value),a.push(C)})})}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===tq&&(this.#n=_o(this.#n,c=>{c[n]=c[n]??{},c[n].slots={[cit]:l.map(d=>({_id:d,type:this.#e[d].value.type}))}})),this.#e[e]=_o(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??wi(),value:{type:o.type,_dataResources:o._dataResources},isBlock:!0,parentId:e,propertyValueLocalizability:{}},c=this.getNodeProperty(i.nodeId,n);if(c&&c.type!==Tc)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=_u(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===Tc&&Array.isArray(h.value)){let g=h.value,y=[];g.forEach(b=>{this.#l({nodeId:l.nodeId,componentTree:JZ(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:Tc,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:Tc,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)??wi();if(this.#e[b]&&!l)throw new Error(`Node with ID '${b}' already exists. Nodes must have unique IDs.`);let C={nodeId:b,value:h,partOfPattern:g,partOfNestedPattern:y,isBlock:a,propertyValueLocalizability:Object.entries(d??{}).reduce((S,[w,E])=>(S[w]=s6({definition:void 0,currentValue:E,lastUserChoice:void 0}),S),{})};return g&&(C.partOfPattern=g),this.#e[C.nodeId]=C,d&&Object.entries(d).forEach(([S,w])=>{let{connectedData:E,..._}=w,N=E?fit(dit(E)):w.value;if(w?.type===Tc&&Array.isArray(N)){let $=N,M=[];$?.forEach(O=>{let A={...O,_id:i?wi():O._id??wi()};if(this.#e[A._id])throw new Error(`Block node with ID '${A._id}' already exists. Block nodes must have unique IDs.`);return M.push(A._id),this.#e[A._id]={nodeId:A._id,value:{type:Tc},propertyValueLocalizability:{}},this.#l({componentTree:JZ(A),nodeId:A._id,allowReplacement:!0}),this.#e[A._id].isBlock=!0,this.#e[A._id].parentId=C.nodeId,this.#e[A._id]}),N=M}this.#o[C.nodeId]=this.#o[C.nodeId]??{},(0,h0.set)(this.#o,[C.nodeId,S],{..._,value:N})}),c&&Object.entries(c).forEach(([S,w])=>{let E=w.map(_=>{if(this.#e[_._id??""]?.isBlock)return;let N=this.#l({componentTree:_,partOfPattern:h.type===tq?void 0:g,partOfNestedPattern:h.type===tq?void 0:y,resetUids:i});return this.#e[N].parentId=C.nodeId,N});this.#r[C.nodeId]=this.#r[C.nodeId]??{},this.#r[C.nodeId][S]=E.filter(_=>_)}),C.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=_u(e);return this.#v({composition:r}),GL(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=_u(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!==Tc)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 _o(e,r=>{delete r.slots,delete r.parameters})}#T(e,n,r){let i={...this.#g(),...r},a;if(this.#n=_o(this.#n,c=>{this.#i=_o(this.#i,d=>{a=qL(e,i,(f,m,h)=>{c[f]=m,d[f]=this.#i[h]})})}),!a)throw new Error("Failed to duplicate component");a=_o(a,c=>{c._overrides=_u(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:Tc,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=_o(this.#i,i=>{let a=YZ({beforeApplyParameterOverride(d,f,m){i[d._id]??={parameters:{},dataResources:{}},i[d._id].parameters[f]=_u(m)},beforeApplyDataResourceOverride(d,f,m){d._dataResources?.[f]?.ignorePatternParameterDefault||(i[d._id]??={parameters:{},dataResources:{}},i[d._id].dataResources[f]=_u(m))}}),l=YZ({beforeApplyParameterOverride(d,f,m,h){i[d._id]?.parameters[f]||(i[d._id]??={parameters:{},dataResources:{}},i[d._id].parameters[f]=_u(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]=_u(h))}});if(n){let{_overrides:d,...f}=e;m0(f,({node:m})=>{a.visitNode(m)})}let c=n?l:a;m0(e,({node:d})=>{c.visitNode(d)})});let o=Y4e({preserveOwnSlotSections:!0,preserveChildrenSlotSections:r});m0(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===Tc)??[];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===u3e,l=i===u3e,c=o===c3e,d=i===c3e,f=i===eq,m=this.getNodeProperty(e,l3e);l&&m&&this.updateNodeProperty({nodeId:e,property:l3e,value:void 0,source:"other",locale:void 0,conditionIndex:-1});let h=this.getNodeProperty(e,sT);!l&&h&&this.updateNodeProperty({nodeId:e,property:sT,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,sT)?.value?.name,setName:b=>this.updateNodeProperty({nodeId:e,property:sT,value:C=>C&&typeof C=="object"&&C!==null?{...C,name:b}:{name:b,crit:[]},source:"other",locale:void 0,conditionIndex:-1,type:sT})}),d&&!c&&this.#C({nodeId:e,siblingIds:this.getNodeChildren(n)?.[r]??[],selectExistingName:b=>this.getNodeProperty(b,d3e)?.value?.id,setName:b=>this.updateNodeProperty({nodeId:e,property:d3e,value:C=>C&&typeof C=="object"&&C!==null?{...C,id:b}:{id:b},source:"other",locale:void 0,conditionIndex:-1,type:"testVariant"})});let g=this.getNodeProperty(e,aT);!f&&g&&this.updateNodeProperty({nodeId:e,property:aT,value:void 0,source:"other",locale:void 0,conditionIndex:-1});let y=this.getNodeProperty(e,p0);(l||f||d)&&y&&this.updateNodeProperty({nodeId:e,property:p0,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=QZ(e,c,d);do f=QZ(e,c,d),d++;while(a(f));o(f)}};function p3e(t){return t?.value===void 0&&!t?.conditions&&!t?.locales&&!t?.localesConditions?null:t}function Hh(t,e){return hit(t,e,()=>({nodeId:e,actions:[]}))}function hit(t,e,n){return t.has(e)||t.set(e,n()),t.get(e)}import{CANVAS_DRAFT_STATE as nO,CanvasClient as bit}from"@uniformdev/canvas";import{produce as xit}from"immer";function h3e(t){return t.reduce((e,n)=>(e[n._id]={id:n._id,type:n.type,name:n._name},e),{})}import{CANVAS_DRAFT_STATE as b3e,CanvasClient as nq,ContentClient as x3e,ProjectClient as C3e}from"@uniformdev/canvas";var g3e=J(P4e());var v3e=(0,g3e.default)(6),XL=class t extends Error{constructor(n,r,o,i,a,l){super(`${n}
5187
- ${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 QL=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??v3e,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 git(()=>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 XL(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 git(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 eO=class extends QL{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 y3e={name:"@uniformdev/uniform-mcp",version:"20.33.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",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.1.4"}};function lT(){return new eO({...pt,apiHost:pt.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${y3e.version}`,uniformClient:"mcp"}})}function S3e(){let t,e,n;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new C3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let o=await new nq(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 nq(pt).getCompositionList({limit:1e3,pattern:!0,patternType:"component",resolveData:!1,skipPatternResolution:!0,skipOverridesResolution:!0,state:b3e});return n=h3e(o.compositions.map(i=>i.composition)),n},resolvePatternData:async r=>(await new nq(pt).getCompositionById({compositionId:r,state:b3e,skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.composition,getToolClient:async()=>lT(),getDimensionGuidance:async()=>{}}}function w3e(){let t,e;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new C3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let r=await new x3e(pt).getContentTypes({limit:1e3});return e=Object.fromEntries(r.contentTypes.map(o=>[o.id,Q4e(o)])),e},fetchPatterns:async()=>({}),resolvePatternData:async n=>{let o=(await new x3e(pt).getEntries({entryIDs:[n],skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.entries[0];return iT(o).composition},getToolClient:async()=>lT(),getDimensionGuidance:async()=>{}}}import{LocaleClient as yit}from"@uniformdev/canvas";async function tO(t){if(!t||t.length===0)return;let r=(await new yit(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 rO({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new bit(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};if(t==="duplicate"){if(c=await a.getCompositionById({compositionId:e,state:nO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");let m=crypto.randomUUID(),h=q4e(c.composition,m),g=xit(h,y=>{y._name=`${y._name} (copy)`,y._slug&&(y._slug=`${y._slug}-copy${y._slug?.endsWith("/")?"/":""}`)});l=new Ud(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 Ud({_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:nO,pattern:!1};await a.updateComposition(m),d=e}}if(d){if(c=await a.getCompositionById({compositionId:e,state:nO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");l=new Ud(c.composition)}if(t==="delete"&&await a.removeComposition({compositionId:e}),l){await tO(n?.localeUpdates?.enableLocales),f=await WL({twee:l,descriptionUpdate:void 0,slugUpdate:void 0,nameUpdate:n?.name,propertyUpdates:n?.parameterUpdates??[],localeUpdates:n?.localeUpdates,slotUpdates:n??{},currentEditorLocale:void 0,referenceData:S3e()});let m=l.exportTree(),h=l.exportMetadata(),g={composition:m,projectId:pt.projectId,state:nO,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 oO(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}async function iO(t,e){return await lT().invoke("createFilterExpression",{...t,entityType:e})}var Cit={action:rq.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:rq.string().uuid().describe("UUID of the composition instance to create, update, delete, or duplicate"),patternId:rq.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:cne.describe("Modification instructions for the composition. Omit for delete and duplicate.").optional()};function E3e(t){t.tool("compositionAction","Creates, updates, or deletes a Uniform Composition",Cit,async e=>await rO({...e,isPattern:!1,getEditUrl:oO,patternId:e.patternId}))}import{z as Wo}from"zod";var Sit=Wo.object({field:Wo.string(),operator:Wo.string(),value:Wo.string().or(Wo.array(Wo.string()))}),wit=Wo.object({filter:Wo.array(Sit),error:Wo.string().describe("An error message if the filter expression could not be created, otherwise an empty string"),sort:Wo.array(Wo.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:Wo.number().min(1).max(100),offset:Wo.number().min(0),keyword:Wo.string(),locale:Wo.string().optional()}),Cp=Wo.object({searchExpressionPrompt:Wo.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".
5187
+ ${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 QL=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??v3e,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 git(()=>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 XL(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 git(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 eO=class extends QL{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 y3e={name:"@uniformdev/uniform-mcp",version:"20.34.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",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.1.4"}};function lT(){return new eO({...pt,apiHost:pt.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${y3e.version}`,uniformClient:"mcp"}})}function S3e(){let t,e,n;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new C3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let o=await new nq(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 nq(pt).getCompositionList({limit:1e3,pattern:!0,patternType:"component",resolveData:!1,skipPatternResolution:!0,skipOverridesResolution:!0,state:b3e});return n=h3e(o.compositions.map(i=>i.composition)),n},resolvePatternData:async r=>(await new nq(pt).getCompositionById({compositionId:r,state:b3e,skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.composition,getToolClient:async()=>lT(),getDimensionGuidance:async()=>{}}}function w3e(){let t,e;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new C3e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let r=await new x3e(pt).getContentTypes({limit:1e3});return e=Object.fromEntries(r.contentTypes.map(o=>[o.id,Q4e(o)])),e},fetchPatterns:async()=>({}),resolvePatternData:async n=>{let o=(await new x3e(pt).getEntries({entryIDs:[n],skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.entries[0];return iT(o).composition},getToolClient:async()=>lT(),getDimensionGuidance:async()=>{}}}import{LocaleClient as yit}from"@uniformdev/canvas";async function tO(t){if(!t||t.length===0)return;let r=(await new yit(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 rO({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new bit(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};if(t==="duplicate"){if(c=await a.getCompositionById({compositionId:e,state:nO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");let m=crypto.randomUUID(),h=q4e(c.composition,m),g=xit(h,y=>{y._name=`${y._name} (copy)`,y._slug&&(y._slug=`${y._slug}-copy${y._slug?.endsWith("/")?"/":""}`)});l=new Ud(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 Ud({_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:nO,pattern:!1};await a.updateComposition(m),d=e}}if(d){if(c=await a.getCompositionById({compositionId:e,state:nO,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");l=new Ud(c.composition)}if(t==="delete"&&await a.removeComposition({compositionId:e}),l){await tO(n?.localeUpdates?.enableLocales),f=await WL({twee:l,descriptionUpdate:void 0,slugUpdate:void 0,nameUpdate:n?.name,propertyUpdates:n?.parameterUpdates??[],localeUpdates:n?.localeUpdates,slotUpdates:n??{},currentEditorLocale:void 0,referenceData:S3e()});let m=l.exportTree(),h=l.exportMetadata(),g={composition:m,projectId:pt.projectId,state:nO,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 oO(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}async function iO(t,e){return await lT().invoke("createFilterExpression",{...t,entityType:e})}var Cit={action:rq.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:rq.string().uuid().describe("UUID of the composition instance to create, update, delete, or duplicate"),patternId:rq.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:cne.describe("Modification instructions for the composition. Omit for delete and duplicate.").optional()};function E3e(t){t.tool("compositionAction","Creates, updates, or deletes a Uniform Composition",Cit,async e=>await rO({...e,isPattern:!1,getEditUrl:oO,patternId:e.patternId}))}import{z as Wo}from"zod";var Sit=Wo.object({field:Wo.string(),operator:Wo.string(),value:Wo.string().or(Wo.array(Wo.string()))}),wit=Wo.object({filter:Wo.array(Sit),error:Wo.string().describe("An error message if the filter expression could not be created, otherwise an empty string"),sort:Wo.array(Wo.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:Wo.number().min(1).max(100),offset:Wo.number().min(0),keyword:Wo.string(),locale:Wo.string().optional()}),Cp=Wo.object({searchExpressionPrompt:Wo.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".
5188
5188
  You can specify multiple criteria (AND only).
5189
5189
  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:Wo.string().describe("The username of the current user. If you do not know the username, use an empty string"),locale:Wo.string().describe("The current locale. If there is no current locale, use an empty string")}),hWt={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:Cp.extend({entityType:Wo.enum(["composition","entry","componentPattern","compositionPattern","entryPattern"]).describe("The entity type we are creating a filter for")}),outputSchema:wit,runsAt:"server",timeout:10,callable:!0};import{z as Yat}from"zod";var Sp=class extends Error{},aO=class extends Sp{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},sO=class extends Sp{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},lO=class extends Sp{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},_c=class extends Sp{},vC=class extends Sp{constructor(e){super(`Invalid unit ${e}`)}},Ko=class extends Sp{},Dc=class extends Sp{constructor(){super("Zone is an abstract class")}};var ze="numeric",$c="short",Bl="long",Wh={year:ze,month:ze,day:ze},uT={year:ze,month:$c,day:ze},oq={year:ze,month:$c,day:ze,weekday:$c},cT={year:ze,month:Bl,day:ze},dT={year:ze,month:Bl,day:ze,weekday:Bl},fT={hour:ze,minute:ze},pT={hour:ze,minute:ze,second:ze},mT={hour:ze,minute:ze,second:ze,timeZoneName:$c},hT={hour:ze,minute:ze,second:ze,timeZoneName:Bl},gT={hour:ze,minute:ze,hourCycle:"h23"},vT={hour:ze,minute:ze,second:ze,hourCycle:"h23"},yT={hour:ze,minute:ze,second:ze,hourCycle:"h23",timeZoneName:$c},bT={hour:ze,minute:ze,second:ze,hourCycle:"h23",timeZoneName:Bl},xT={year:ze,month:ze,day:ze,hour:ze,minute:ze},CT={year:ze,month:ze,day:ze,hour:ze,minute:ze,second:ze},ST={year:ze,month:$c,day:ze,hour:ze,minute:ze},wT={year:ze,month:$c,day:ze,hour:ze,minute:ze,second:ze},iq={year:ze,month:$c,day:ze,weekday:$c,hour:ze,minute:ze},ET={year:ze,month:Bl,day:ze,hour:ze,minute:ze,timeZoneName:$c},TT={year:ze,month:Bl,day:ze,hour:ze,minute:ze,second:ze,timeZoneName:$c},_T={year:ze,month:Bl,day:ze,weekday:Bl,hour:ze,minute:ze,timeZoneName:Bl},DT={year:ze,month:Bl,day:ze,weekday:Bl,hour:ze,minute:ze,second:ze,timeZoneName:Bl};var al=class{get type(){throw new Dc}get name(){throw new Dc}get ianaName(){return this.name}get isUniversal(){throw new Dc}offsetName(e,n){throw new Dc}formatOffset(e,n){throw new Dc}offset(e){throw new Dc}equals(e){throw new Dc}get isValid(){throw new Dc}};var aq=null,Kh=class t extends al{static get instance(){return aq===null&&(aq=new t),aq}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return cO(e,n,r)}formatOffset(e,n){return Gh(this.offset(e),n)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}};var fO={};function Eit(t){return fO[t]||(fO[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"})),fO[t]}var Tit={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function _it(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 Dit(t,e){let n=t.formatToParts(e),r=[];for(let o=0;o<n.length;o++){let{type:i,value:a}=n[o],l=Tit[i];i==="era"?r[l]=a:Mt(l)||(r[l]=parseInt(a,10))}return r}var dO={},Ua=class t extends al{static create(e){return dO[e]||(dO[e]=new t(e)),dO[e]}static resetCache(){dO={},fO={}}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 cO(e,n,r,this.name)}formatOffset(e,n){return Gh(this.offset(e),n)}offset(e){let n=new Date(e);if(isNaN(n))return NaN;let r=Eit(this.name),[o,i,a,l,c,d,f]=r.formatToParts?Dit(r,n):_it(r,n);l==="BC"&&(o=-Math.abs(o)+1);let h=yC({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 T3e={};function $it(t,e={}){let n=JSON.stringify([t,e]),r=T3e[n];return r||(r=new Intl.ListFormat(t,e),T3e[n]=r),r}var sq={};function lq(t,e={}){let n=JSON.stringify([t,e]),r=sq[n];return r||(r=new Intl.DateTimeFormat(t,e),sq[n]=r),r}var uq={};function Nit(t,e={}){let n=JSON.stringify([t,e]),r=uq[n];return r||(r=new Intl.NumberFormat(t,e),uq[n]=r),r}var cq={};function Lit(t,e={}){let{base:n,...r}=e,o=JSON.stringify([t,r]),i=cq[o];return i||(i=new Intl.RelativeTimeFormat(t,e),cq[o]=i),i}var $T=null;function Oit(){return $T||($T=new Intl.DateTimeFormat().resolvedOptions().locale,$T)}var _3e={};function Mit(t){let e=_3e[t];if(!e){let n=new Intl.Locale(t);e="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,_3e[t]=e}return e}function Rit(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=lq(t).resolvedOptions(),o=t}catch{let c=t.substring(0,n);r=lq(c).resolvedOptions(),o=c}let{numberingSystem:i,calendar:a}=r;return[o,i,a]}}function Ait(t,e,n){return(n||e)&&(t.includes("-u-")||(t+="-u"),n&&(t+=`-ca-${n}`),e&&(t+=`-nu-${e}`)),t}function kit(t){let e=[];for(let n=1;n<=12;n++){let r=gn.utc(2009,n,1);e.push(t(r))}return e}function Pit(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 pO(t,e,n,r){let o=t.listingMode();return o==="error"?null:o==="en"?n(e):r(e)}function Iit(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 dq=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=Nit(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):bC(e,3);return go(n,this.padTo)}}},fq=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&&Ua.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=lq(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()}},pq=class{constructor(e,n,r){this.opts={style:"long",...r},!n&&mO()&&(this.rtf=Lit(e,r))}format(e,n){return this.rtf?this.rtf.format(e,n):D3e(n,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,n){return this.rtf?this.rtf.formatToParts(e,n):[]}},Fit={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":Oit()),c=n||Vn.defaultNumberingSystem,d=r||Vn.defaultOutputCalendar,f=NT(o)||Vn.defaultWeekSettings;return new t(l,c,d,f,a)}static resetCache(){$T=null,sq={},uq={},cq={}}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]=Rit(e);this.locale=a,this.numberingSystem=n||l||null,this.outputCalendar=r||c||null,this.weekSettings=o,this.intl=Ait(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=Iit(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,NT(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 pO(this,e,mq,()=>{let r=n?{month:e,day:"numeric"}:{month:e},o=n?"format":"standalone";return this.monthsCache[o][e]||(this.monthsCache[o][e]=kit(i=>this.extract(i,r,"month"))),this.monthsCache[o][e]})}weekdays(e,n=!1){return pO(this,e,hq,()=>{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]=Pit(i=>this.extract(i,r,"weekday"))),this.weekdaysCache[o][e]})}meridiems(){return pO(this,void 0,()=>gq,()=>{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 pO(this,e,vq,()=>{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 dq(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,n={}){return new fq(e,this.intl,n)}relFormatter(e={}){return new pq(this.intl,this.isEnglish(),e)}listFormatter(e={}){return $it(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:hO()?Mit(this.locale):Fit}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 bq=null,Hi=class t extends al{static get utcInstance(){return bq===null&&(bq=new t(0)),bq}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(g0(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Gh(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Gh(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,n){return Gh(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 xC=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 Nc(t,e){let n;if(Mt(t)||t===null)return e;if(t instanceof al)return t;if($3e(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Kh.instance:r==="utc"||r==="gmt"?Hi.utcInstance:Hi.parseSpecifier(r)||Ua.create(t)}else return jd(t)?Hi.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new xC(t)}var N3e=()=>Date.now(),L3e="system",O3e=null,M3e=null,R3e=null,A3e=60,k3e,P3e=null,Vn=class{static get now(){return N3e}static set now(e){N3e=e}static set defaultZone(e){L3e=e}static get defaultZone(){return Nc(L3e,Kh.instance)}static get defaultLocale(){return O3e}static set defaultLocale(e){O3e=e}static get defaultNumberingSystem(){return M3e}static set defaultNumberingSystem(e){M3e=e}static get defaultOutputCalendar(){return R3e}static set defaultOutputCalendar(e){R3e=e}static get defaultWeekSettings(){return P3e}static set defaultWeekSettings(e){P3e=NT(e)}static get twoDigitCutoffYear(){return A3e}static set twoDigitCutoffYear(e){A3e=e%100}static get throwOnInvalid(){return k3e}static set throwOnInvalid(e){k3e=e}static resetCaches(){Jn.resetCache(),Ua.resetCache()}};var Wi=class{constructor(e,n){this.reason=e,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}};var I3e=[0,31,59,90,120,151,181,212,243,273,304,334],F3e=[0,31,60,91,121,152,182,213,244,274,305,335];function Du(t,e){return new Wi("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function gO(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 B3e(t,e,n){return n+(y0(t)?F3e:I3e)[e-1]}function z3e(t,e){let n=y0(t)?F3e:I3e,r=n.findIndex(i=>i<e),o=e-n[r];return{month:r+1,day:o}}function vO(t,e){return(t-e+7)%7+1}function LT(t,e=4,n=1){let{year:r,month:o,day:i}=t,a=B3e(r,o,i),l=vO(gO(r,o,i),n),c=Math.floor((a-l+14-e)/7),d;return c<1?(d=r-1,c=v0(d,e,n)):c>v0(r,e,n)?(d=r+1,c=1):d=r,{weekYear:d,weekNumber:c,weekday:l,...MT(t)}}function xq(t,e=4,n=1){let{weekYear:r,weekNumber:o,weekday:i}=t,a=vO(gO(r,1,e),n),l=Yh(r),c=o*7+i-a-7+e,d;c<1?(d=r-1,c+=Yh(d)):c>l?(d=r+1,c-=Yh(r)):d=r;let{month:f,day:m}=z3e(d,c);return{year:d,month:f,day:m,...MT(t)}}function yO(t){let{year:e,month:n,day:r}=t,o=B3e(e,n,r);return{year:e,ordinal:o,...MT(t)}}function Cq(t){let{year:e,ordinal:n}=t,{month:r,day:o}=z3e(e,n);return{year:e,month:r,day:o,...MT(t)}}function Sq(t,e){if(!Mt(t.localWeekday)||!Mt(t.localWeekNumber)||!Mt(t.localWeekYear)){if(!Mt(t.weekday)||!Mt(t.weekNumber)||!Mt(t.weekYear))throw new _c("Cannot mix locale-based week fields with ISO-based week fields");return Mt(t.localWeekday)||(t.weekday=t.localWeekday),Mt(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Mt(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 V3e(t,e=4,n=1){let r=OT(t.weekYear),o=zl(t.weekNumber,1,v0(t.weekYear,e,n)),i=zl(t.weekday,1,7);return r?o?i?!1:Du("weekday",t.weekday):Du("week",t.weekNumber):Du("weekYear",t.weekYear)}function U3e(t){let e=OT(t.year),n=zl(t.ordinal,1,Yh(t.year));return e?n?!1:Du("ordinal",t.ordinal):Du("year",t.year)}function wq(t){let e=OT(t.year),n=zl(t.month,1,12),r=zl(t.day,1,CC(t.year,t.month));return e?n?r?!1:Du("day",t.day):Du("month",t.month):Du("year",t.year)}function Eq(t){let{hour:e,minute:n,second:r,millisecond:o}=t,i=zl(e,0,23)||e===24&&n===0&&r===0&&o===0,a=zl(n,0,59),l=zl(r,0,59),c=zl(o,0,999);return i?a?l?c?!1:Du("millisecond",o):Du("second",r):Du("minute",n):Du("hour",e)}function Mt(t){return typeof t>"u"}function jd(t){return typeof t=="number"}function OT(t){return typeof t=="number"&&t%1===0}function $3e(t){return typeof t=="string"}function H3e(t){return Object.prototype.toString.call(t)==="[object Date]"}function mO(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function hO(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function W3e(t){return Array.isArray(t)?t:[t]}function Tq(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 K3e(t,e){return e.reduce((n,r)=>(n[r]=t[r],n),{})}function Zh(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function NT(t){if(t==null)return null;if(typeof t!="object")throw new Ko("Week settings must be an object");if(!zl(t.firstDay,1,7)||!zl(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!zl(e,1,7)))throw new Ko("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function zl(t,e,n){return OT(t)&&t>=e&&t<=n}function Bit(t,e){return t-e*Math.floor(t/e)}function go(t,e=2){let n=t<0,r;return n?r="-"+(""+-t).padStart(e,"0"):r=(""+t).padStart(e,"0"),r}function wp(t){if(!(Mt(t)||t===null||t===""))return parseInt(t,10)}function qh(t){if(!(Mt(t)||t===null||t===""))return parseFloat(t)}function RT(t){if(!(Mt(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function bC(t,e,n=!1){let r=10**e;return(n?Math.trunc:Math.round)(t*r)/r}function y0(t){return t%4===0&&(t%100!==0||t%400===0)}function Yh(t){return y0(t)?366:365}function CC(t,e){let n=Bit(e-1,12)+1,r=t+(e-n)/12;return n===2?y0(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function yC(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 j3e(t,e,n){return-vO(gO(t,1,e),n)+e-1}function v0(t,e=4,n=1){let r=j3e(t,e,n),o=j3e(t+1,e,n);return(Yh(t)-r+o)/7}function AT(t){return t>99?t:t>Vn.twoDigitCutoffYear?1900+t:2e3+t}function cO(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 g0(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 _q(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ko(`Invalid unit value ${t}`);return e}function SC(t,e){let n={};for(let r in t)if(Zh(t,r)){let o=t[r];if(o==null)continue;n[e(r)]=_q(o)}return n}function Gh(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}${go(n,2)}:${go(r,2)}`;case"narrow":return`${o}${n}${r>0?`:${r}`:""}`;case"techie":return`${o}${go(n,2)}${go(r,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function MT(t){return K3e(t,["hour","minute","second","millisecond"])}var zit=["January","February","March","April","May","June","July","August","September","October","November","December"],Dq=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Vit=["J","F","M","A","M","J","J","A","S","O","N","D"];function mq(t){switch(t){case"narrow":return[...Vit];case"short":return[...Dq];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 $q=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Nq=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Uit=["M","T","W","T","F","S","S"];function hq(t){switch(t){case"narrow":return[...Uit];case"short":return[...Nq];case"long":return[...$q];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var gq=["AM","PM"],jit=["Before Christ","Anno Domini"],Hit=["BC","AD"],Wit=["B","A"];function vq(t){switch(t){case"narrow":return[...Wit];case"short":return[...Hit];case"long":return[...jit];default:return null}}function G3e(t){return gq[t.hour<12?0:1]}function Y3e(t,e){return hq(e)[t.weekday-1]}function Z3e(t,e){return mq(e)[t.month-1]}function q3e(t,e){return vq(e)[t.year<0?0:1]}function D3e(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 J3e(t,e){let n="";for(let r of t)r.literal?n+=r.val:n+=e(r.val);return n}var Kit={D:Wh,DD:uT,DDD:cT,DDDD:dT,t:fT,tt:pT,ttt:mT,tttt:hT,T:gT,TT:vT,TTT:yT,TTTT:bT,f:xT,ff:ST,fff:ET,ffff:_T,F:CT,FF:wT,FFF:TT,FFFF:DT},Ki=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 Kit[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 go(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?G3e(e):i({hour:"numeric",hourCycle:"h12"},"dayperiod"),c=(g,y)=>r?Z3e(e,g):i(y?{month:g}:{month:g,day:"numeric"},"month"),d=(g,y)=>r?Y3e(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?q3e(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 J3e(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 J3e(i,o(l))}};var Q3e=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function EC(...t){let e=t.reduce((n,r)=>n+r.source,"");return RegExp(`^${e}$`)}function TC(...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 _C(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 ewe(...t){return(e,n)=>{let r={},o;for(o=0;o<t.length;o++)r[t[o]]=wp(e[n+o]);return[r,null,n+o]}}var twe=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Git=`(?:${twe.source}?(?:\\[(${Q3e.source})\\])?)?`,Lq=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,nwe=RegExp(`${Lq.source}${Git}`),Oq=RegExp(`(?:T${nwe.source})?`),Yit=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Zit=/(\d{4})-?W(\d\d)(?:-?(\d))?/,qit=/(\d{4})-?(\d{3})/,Jit=ewe("weekYear","weekNumber","weekDay"),Xit=ewe("year","ordinal"),Qit=/(\d{4})-(\d\d)-(\d\d)/,rwe=RegExp(`${Lq.source} ?(?:${twe.source}|(${Q3e.source}))?`),eat=RegExp(`(?: ${rwe.source})?`);function wC(t,e,n){let r=t[e];return Mt(r)?n:wp(r)}function tat(t,e){return[{year:wC(t,e),month:wC(t,e+1,1),day:wC(t,e+2,1)},null,e+3]}function DC(t,e){return[{hours:wC(t,e,0),minutes:wC(t,e+1,0),seconds:wC(t,e+2,0),milliseconds:RT(t[e+3])},null,e+4]}function kT(t,e){let n=!t[e]&&!t[e+1],r=g0(t[e+1],t[e+2]),o=n?null:Hi.instance(r);return[{},o,e+3]}function PT(t,e){let n=t[e]?Ua.create(t[e]):null;return[{},n,e+1]}var nat=RegExp(`^T?${Lq.source}$`),rat=/^-?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 oat(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(qh(n)),months:h(qh(r)),weeks:h(qh(o)),days:h(qh(i)),hours:h(qh(a)),minutes:h(qh(l)),seconds:h(qh(c),c==="-0"),milliseconds:h(RT(d),m)}]}var iat={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 Mq(t,e,n,r,o,i,a){let l={year:e.length===2?AT(wp(e)):wp(e),month:Dq.indexOf(n)+1,day:wp(r),hour:wp(o),minute:wp(i)};return a&&(l.second=wp(a)),t&&(l.weekday=t.length>3?$q.indexOf(t)+1:Nq.indexOf(t)+1),l}var aat=/^(?:(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 sat(t){let[,e,n,r,o,i,a,l,c,d,f,m]=t,h=Mq(e,o,r,n,i,a,l),g;return c?g=iat[c]:d?g=0:g=g0(f,m),[h,new Hi(g)]}function lat(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var uat=/^(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$/,cat=/^(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$/,dat=/^(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 X3e(t){let[,e,n,r,o,i,a,l]=t;return[Mq(e,o,r,n,i,a,l),Hi.utcInstance]}function fat(t){let[,e,n,r,o,i,a,l]=t;return[Mq(e,l,n,r,o,i,a),Hi.utcInstance]}var pat=EC(Yit,Oq),mat=EC(Zit,Oq),hat=EC(qit,Oq),gat=EC(nwe),owe=TC(tat,DC,kT,PT),vat=TC(Jit,DC,kT,PT),yat=TC(Xit,DC,kT,PT),bat=TC(DC,kT,PT);function iwe(t){return _C(t,[pat,owe],[mat,vat],[hat,yat],[gat,bat])}function awe(t){return _C(lat(t),[aat,sat])}function swe(t){return _C(t,[uat,X3e],[cat,X3e],[dat,fat])}function lwe(t){return _C(t,[rat,oat])}var xat=TC(DC);function uwe(t){return _C(t,[nat,xat])}var Cat=EC(Qit,eat),Sat=EC(rwe),wat=TC(DC,kT,PT);function cwe(t){return _C(t,[Cat,owe],[Sat,wat])}var dwe="Invalid Duration",pwe={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}},Eat={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},...pwe},$u=146097/400,$C=146097/4800,Tat={years:{quarters:4,months:12,weeks:$u/7,days:$u,hours:$u*24,minutes:$u*24*60,seconds:$u*24*60*60,milliseconds:$u*24*60*60*1e3},quarters:{months:3,weeks:$u/28,days:$u/4,hours:$u*24/4,minutes:$u*24*60/4,seconds:$u*24*60*60/4,milliseconds:$u*24*60*60*1e3/4},months:{weeks:$C/7,days:$C,hours:$C*24,minutes:$C*24*60,seconds:$C*24*60*60,milliseconds:$C*24*60*60*1e3},...pwe},b0=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],_at=b0.slice(0).reverse();function Jh(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 vo(r)}function mwe(t,e){let n=e.milliseconds??0;for(let r of _at.slice(1))e[r]&&(n+=e[r]*t[r].milliseconds);return n}function fwe(t,e){let n=mwe(t,e)<0?-1:1;b0.reduceRight((r,o)=>{if(Mt(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),b0.reduce((r,o)=>{if(Mt(e[o]))return r;if(r){let i=e[r]%1;e[r]-=i,e[o]+=i*t[r][o]}return o},null)}function Dat(t){let e={};for(let[n,r]of Object.entries(t))r!==0&&(e[n]=r);return e}var vo=class t{constructor(e){let n=e.conversionAccuracy==="longterm"||!1,r=n?Tat:Eat;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 Ko(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:SC(e,t.normalizeUnit),loc:Jn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(e){if(jd(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ko(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,n){let[r]=lwe(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]=uwe(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 Ko("need to specify a reason the Duration is invalid");let r=e instanceof Wi?e:new Wi(e,n);if(Vn.throwOnInvalid)throw new lO(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 vC(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?Ki.create(this.loc,r).formatDurationFromString(this,e):dwe}toHuman(e={}){if(!this.isValid)return dwe;let n=b0.map(r=>{let o=this.values[r];return Mt(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+=bC(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?mwe(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 b0)(Zh(n.values,o)||Zh(this.values,o))&&(r[o]=n.get(o)+this.get(o));return Jh(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]=_q(e(this.values[r],r));return Jh(this,{values:n},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let n={...this.values,...SC(e,t.normalizeUnit)};return Jh(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 Jh(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return fwe(this.matrix,e),Jh(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Dat(this.normalize().shiftToAll().toObject());return Jh(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 b0)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;jd(o[a])&&(l+=o[a]);let c=Math.trunc(l);n[a]=c,r[a]=(l*1e3-c*1e3)/1e3}else jd(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 fwe(this.matrix,n),Jh(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 Jh(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 b0)if(!n(this.values[r],e.values[r]))return!1;return!0}};var NC="Invalid Interval";function $at(t,e){return!t||!t.isValid?Ep.invalid("missing or invalid start"):!e||!e.isValid?Ep.invalid("missing or invalid end"):e<t?Ep.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 Ep=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 Ko("need to specify a reason the Interval is invalid");let r=e instanceof Wi?e:new Wi(e,n);if(Vn.throwOnInvalid)throw new sO(r);return new t({invalid:r})}static fromDateTimes(e,n){let r=LC(e),o=LC(n),i=$at(r,o);return i??new t({start:r,end:o})}static after(e,n){let r=vo.fromDurationLike(n),o=LC(e);return t.fromDateTimes(o,o.plus(r))}static before(e,n){let r=vo.fromDurationLike(n),o=LC(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=vo.fromISO(o,n);if(d.isValid)return t.after(i,d)}else if(c){let d=vo.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(LC).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=vo.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()})`:NC}[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=Wh,n={}){return this.isValid?Ki.create(this.s.loc.clone(n),e).formatInterval(this):NC}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:NC}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:NC}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:NC}toFormat(e,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${n}${this.e.toFormat(e)}`:NC}toDuration(e,n){return this.isValid?this.e.diff(this.s,e,n):vo.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}};var Tp=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 Ua.isValidZone(e)}static normalizeZone(e){return Nc(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:mO(),localeWeek:hO()}}};function hwe(t,e){let n=o=>o.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(e)-n(t);return Math.floor(vo.fromMillis(r).as("days"))}function Nat(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=hwe(c,d);return(f-f%7)/7}],["days",hwe]],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 gwe(t,e,n,r){let[o,i,a,l]=Nat(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=vo.fromObject(i,r);return d.length>0?vo.fromMillis(c,r).shiftTo(...d).plus(f):f}var Rq={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"},vwe={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]},Lat=Rq.hanidec.replace(/[\[|\]]/g,"").split("");function ywe(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(Rq.hanidec)!==-1)e+=Lat.indexOf(t[n]);else for(let o in vwe){let[i,a]=vwe[o];r>=i&&r<=a&&(e+=r-i)}}return parseInt(e,10)}else return e}function Nu({numberingSystem:t},e=""){return new RegExp(`${Rq[t||"latn"]}${e}`)}var Oat="missing Intl.DateTimeFormat.formatToParts support";function Un(t,e=n=>n){return{regex:t,deser:([n])=>e(ywe(n))}}var Mat="\xA0",Cwe=`[ ${Mat}]`,Swe=new RegExp(Cwe,"g");function Rat(t){return t.replace(/\./g,"\\.?").replace(Swe,Cwe)}function bwe(t){return t.replace(/\./g,"").replace(Swe," ").toLowerCase()}function Lc(t,e){return t===null?null:{regex:RegExp(t.map(Rat).join("|")),deser:([n])=>t.findIndex(r=>bwe(n)===bwe(r))+e}}function xwe(t,e){return{regex:t,deser:([,n,r])=>g0(n,r),groups:e}}function bO(t){return{regex:t,deser:([e])=>e}}function Aat(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function kat(t,e){let n=Nu(e),r=Nu(e,"{2}"),o=Nu(e,"{3}"),i=Nu(e,"{4}"),a=Nu(e,"{6}"),l=Nu(e,"{1,2}"),c=Nu(e,"{1,3}"),d=Nu(e,"{1,6}"),f=Nu(e,"{1,9}"),m=Nu(e,"{2,4}"),h=Nu(e,"{4,6}"),g=C=>({regex:RegExp(Aat(C.val)),deser:([S])=>S,literal:!0}),b=(C=>{if(t.literal)return g(C);switch(C.val){case"G":return Lc(e.eras("short"),0);case"GG":return Lc(e.eras("long"),0);case"y":return Un(d);case"yy":return Un(m,AT);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 Lc(e.months("short",!0),1);case"MMMM":return Lc(e.months("long",!0),1);case"L":return Un(l);case"LL":return Un(r);case"LLL":return Lc(e.months("short",!1),1);case"LLLL":return Lc(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 bO(f);case"uu":return bO(l);case"uuu":return Un(n);case"a":return Lc(e.meridiems(),0);case"kkkk":return Un(i);case"kk":return Un(m,AT);case"W":return Un(l);case"WW":return Un(r);case"E":case"c":return Un(n);case"EEE":return Lc(e.weekdays("short",!1),1);case"EEEE":return Lc(e.weekdays("long",!1),1);case"ccc":return Lc(e.weekdays("short",!0),1);case"cccc":return Lc(e.weekdays("long",!0),1);case"Z":case"ZZ":return xwe(new RegExp(`([+-]${l.source})(?::(${r.source}))?`),2);case"ZZZ":return xwe(new RegExp(`([+-]${l.source})(${r.source})?`),2);case"z":return bO(/[a-z_+-/]{1,256}?/i);case" ":return bO(/[^\S\n\r]/);default:return g(C)}})(t)||{invalidReason:Oat};return b.token=t,b}var Pat={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 Iat(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=Pat[a];if(typeof l=="object"&&(l=l[i]),l)return{literal:!1,val:l}}function Fat(t){return[`^${t.map(n=>n.regex).reduce((n,r)=>`${n}(${r.source})`,"")}$`,t]}function Bat(t,e,n){let r=t.match(e);if(r){let o={},i=1;for(let a in n)if(Zh(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 Mt(t.z)||(n=Ua.create(t.z)),Mt(t.Z)||(n||(n=new Hi(t.Z)),r=t.Z),Mt(t.q)||(t.M=(t.q-1)*3+1),Mt(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),Mt(t.u)||(t.S=RT(t.u)),[Object.keys(t).reduce((i,a)=>{let l=e(a);return l&&(i[l]=t[a]),i},{}),n,r]}var Aq=null;function Vat(){return Aq||(Aq=gn.fromMillis(1555555555555)),Aq}function Uat(t,e){if(t.literal)return t;let n=Ki.macroTokenToFormatOpts(t.val),r=Iq(n,e);return r==null||r.includes(void 0)?t:r}function kq(t,e){return Array.prototype.concat(...t.map(n=>Uat(n,e)))}function Pq(t,e,n){let r=kq(Ki.parseFormat(n),t),o=r.map(a=>kat(a,t)),i=o.find(a=>a.invalidReason);if(i)return{input:e,tokens:r,invalidReason:i.invalidReason};{let[a,l]=Fat(o),c=RegExp(a,"i"),[d,f]=Bat(e,c,l),[m,h,g]=f?zat(f):[null,null,void 0];if(Zh(f,"a")&&Zh(f,"H"))throw new _c("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 wwe(t,e,n){let{result:r,zone:o,specificOffset:i,invalidReason:a}=Pq(t,e,n);return[r,o,i,a]}function Iq(t,e){if(!t)return null;let r=Ki.create(e,t).dtFormatter(Vat()),o=r.formatToParts(),i=r.resolvedOptions();return o.map(a=>Iat(a,t,i))}var Fq="Invalid DateTime",Ewe=864e13;function xO(t){return new Wi("unsupported zone",`the zone "${t.name}" is not supported`)}function Bq(t){return t.weekData===null&&(t.weekData=LT(t.c)),t.weekData}function zq(t){return t.localWeekData===null&&(t.localWeekData=LT(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function x0(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 Owe(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 CO(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 wO(t,e,n){return Owe(yC(t),e,n)}function Twe(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,CC(r,o))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=vo.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=yC(i),[c,d]=Owe(l,n,t.zone);return a!==0&&(c+=a,d=t.zone.offset(c)),{ts:c,o:d}}function IT(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 Wi("unparsable",`the input "${o}" can't be parsed as ${r}`))}function SO(t,e,n=!0){return t.isValid?Ki.create(Jn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Vq(t,e){let n=t.c.year>9999||t.c.year<0,r="";return n&&t.c.year>=0&&(r+="+"),r+=go(t.c.year,n?6:4),e?(r+="-",r+=go(t.c.month),r+="-",r+=go(t.c.day)):(r+=go(t.c.month),r+=go(t.c.day)),r}function _we(t,e,n,r,o,i){let a=go(t.c.hour);return e?(a+=":",a+=go(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!n)&&(a+=":")):a+=go(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!n)&&(a+=go(t.c.second),(t.c.millisecond!==0||!r)&&(a+=".",a+=go(t.c.millisecond,3))),o&&(t.isOffsetFixed&&t.offset===0&&!i?a+="Z":t.o<0?(a+="-",a+=go(Math.trunc(-t.o/60)),a+=":",a+=go(Math.trunc(-t.o%60))):(a+="+",a+=go(Math.trunc(t.o/60)),a+=":",a+=go(Math.trunc(t.o%60)))),i&&(a+="["+t.zone.ianaName+"]"),a}var Mwe={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},Hat={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Rwe=["year","month","day","hour","minute","second","millisecond"],Wat=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Kat=["year","ordinal","hour","minute","second","millisecond"];function Gat(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 vC(t);return e}function Dwe(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Gat(t)}}function $we(t,e){let n=Nc(e.zone,Vn.defaultZone),r=Jn.fromObject(e),o=Vn.now(),i,a;if(Mt(t.year))i=o;else{for(let d of Rwe)Mt(t[d])&&(t[d]=Mwe[d]);let l=wq(t)||Eq(t);if(l)return gn.invalid(l);let c=n.offset(o);[i,a]=wO(t,c,n)}return new gn({ts:i,zone:n,loc:r,o:a})}function Nwe(t,e,n){let r=Mt(n.round)?!0:n.round,o=(a,l)=>(a=bC(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 Lwe(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 Wi("invalid input"):null)||(n.isValid?null:xO(n));this.ts=Mt(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=CO(this.ts,l),r=Number.isNaN(o.year)?new Wi("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]=Lwe(arguments),[r,o,i,a,l,c,d]=n;return $we({year:r,month:o,day:i,hour:a,minute:l,second:c,millisecond:d},e)}static utc(){let[e,n]=Lwe(arguments),[r,o,i,a,l,c,d]=n;return e.zone=Hi.utcInstance,$we({year:r,month:o,day:i,hour:a,minute:l,second:c,millisecond:d},e)}static fromJSDate(e,n={}){let r=H3e(e)?e.valueOf():NaN;if(Number.isNaN(r))return t.invalid("invalid input");let o=Nc(n.zone,Vn.defaultZone);return o.isValid?new t({ts:r,zone:o,loc:Jn.fromObject(n)}):t.invalid(xO(o))}static fromMillis(e,n={}){if(jd(e))return e<-Ewe||e>Ewe?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nc(n.zone,Vn.defaultZone),loc:Jn.fromObject(n)});throw new Ko(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,n={}){if(jd(e))return new t({ts:e*1e3,zone:Nc(n.zone,Vn.defaultZone),loc:Jn.fromObject(n)});throw new Ko("fromSeconds requires a numerical input")}static fromObject(e,n={}){e=e||{};let r=Nc(n.zone,Vn.defaultZone);if(!r.isValid)return t.invalid(xO(r));let o=Jn.fromObject(n),i=SC(e,Dwe),{minDaysInFirstWeek:a,startOfWeek:l}=Sq(i,o),c=Vn.now(),d=Mt(n.specificOffset)?r.offset(c):n.specificOffset,f=!Mt(i.ordinal),m=!Mt(i.year),h=!Mt(i.month)||!Mt(i.day),g=m||h,y=i.weekYear||i.weekNumber;if((g||f)&&y)throw new _c("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&f)throw new _c("Can't mix ordinal dates with month/day");let b=y||i.weekday&&!g,C,S,w=CO(c,d);b?(C=Wat,S=jat,w=LT(w,a,l)):f?(C=Kat,S=Hat,w=yO(w)):(C=Rwe,S=Mwe);let E=!1;for(let k of C){let F=i[k];Mt(F)?E?i[k]=S[k]:i[k]=w[k]:E=!0}let _=b?V3e(i,a,l):f?U3e(i):wq(i),N=_||Eq(i);if(N)return t.invalid(N);let $=b?xq(i,a,l):f?Cq(i):i,[M,O]=wO($,d,r),A=new t({ts:M,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]=iwe(e);return IT(r,o,n,"ISO 8601",e)}static fromRFC2822(e,n={}){let[r,o]=awe(e);return IT(r,o,n,"RFC 2822",e)}static fromHTTP(e,n={}){let[r,o]=swe(e);return IT(r,o,n,"HTTP",n)}static fromFormat(e,n,r={}){if(Mt(e)||Mt(n))throw new Ko("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]=wwe(a,e,n);return f?t.invalid(f):IT(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]=cwe(e);return IT(r,o,n,"SQL",e)}static invalid(e,n=null){if(!e)throw new Ko("need to specify a reason the DateTime is invalid");let r=e instanceof Wi?e:new Wi(e,n);if(Vn.throwOnInvalid)throw new aO(r);return new t({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,n={}){let r=Iq(e,Jn.fromObject(n));return r?r.map(o=>o?o.val:null).join(""):null}static expandFormat(e,n={}){return kq(Ki.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?Bq(this).weekYear:NaN}get weekNumber(){return this.isValid?Bq(this).weekNumber:NaN}get weekday(){return this.isValid?Bq(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?zq(this).weekday:NaN}get localWeekNumber(){return this.isValid?zq(this).weekNumber:NaN}get localWeekYear(){return this.isValid?zq(this).weekYear:NaN}get ordinal(){return this.isValid?yO(this.c).ordinal:NaN}get monthShort(){return this.isValid?Tp.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Tp.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Tp.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Tp.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=yC(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=CO(c,a),m=CO(d,l);return f.hour===m.hour&&f.minute===m.minute&&f.second===m.second&&f.millisecond===m.millisecond?[x0(this,{ts:c}),x0(this,{ts:d})]:[this]}get isInLeapYear(){return y0(this.year)}get daysInMonth(){return CC(this.year,this.month)}get daysInYear(){return this.isValid?Yh(this.year):NaN}get weeksInWeekYear(){return this.isValid?v0(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?v0(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:n,numberingSystem:r,calendar:o}=Ki.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:o}}toUTC(e=0,n={}){return this.setZone(Hi.instance(e),n)}toLocal(){return this.setZone(Vn.defaultZone)}setZone(e,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(e=Nc(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]=wO(a,i,e)}return x0(this,{ts:o,zone:e})}else return t.invalid(xO(e))}reconfigure({locale:e,numberingSystem:n,outputCalendar:r}={}){let o=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:r});return x0(this,{loc:o})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let n=SC(e,Dwe),{minDaysInFirstWeek:r,startOfWeek:o}=Sq(n,this.loc),i=!Mt(n.weekYear)||!Mt(n.weekNumber)||!Mt(n.weekday),a=!Mt(n.ordinal),l=!Mt(n.year),c=!Mt(n.month)||!Mt(n.day),d=l||c,f=n.weekYear||n.weekNumber;if((d||a)&&f)throw new _c("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new _c("Can't mix ordinal dates with month/day");let m;i?m=xq({...LT(this.c,r,o),...n},r,o):Mt(n.ordinal)?(m={...this.toObject(),...n},Mt(n.day)&&(m.day=Math.min(CC(m.year,m.month),m.day))):m=Cq({...yO(this.c),...n});let[h,g]=wO(m,this.o,this.zone);return x0(this,{ts:h,o:g})}plus(e){if(!this.isValid)return this;let n=vo.fromDurationLike(e);return x0(this,Twe(this,n))}minus(e){if(!this.isValid)return this;let n=vo.fromDurationLike(e).negate();return x0(this,Twe(this,n))}startOf(e,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;let r={},o=vo.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?Ki.create(this.loc.redefaultToEN(n)).formatDateTimeFromString(this,e):Fq}toLocaleString(e=Wh,n={}){return this.isValid?Ki.create(this.loc.clone(n),e).formatDateTime(this):Fq}toLocaleParts(e={}){return this.isValid?Ki.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=Vq(this,a);return l+="T",l+=_we(this,a,n,r,o,i),l}toISODate({format:e="extended"}={}){return this.isValid?Vq(this,e==="extended"):null}toISOWeekDate(){return SO(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":"")+_we(this,a==="extended",n,e,r,i):null}toRFC2822(){return SO(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return SO(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Vq(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")),SO(this,o,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Fq}[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 vo.invalid("created by diffing an invalid DateTime");let o={locale:this.locale,numberingSystem:this.numberingSystem,...r},i=W3e(n).map(vo.normalizeUnit),a=e.valueOf()>this.valueOf(),l=a?this:e,c=a?e:this,d=gwe(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?Ep.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),Nwe(n,this.plus(r),{...e,numeric:"always",units:o,unit:i})}toRelativeCalendar(e={}){return this.isValid?Nwe(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 Ko("min requires all arguments be DateTimes");return Tq(e,n=>n.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ko("max requires all arguments be DateTimes");return Tq(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 Pq(a,e,n)}static fromStringExplain(e,n,r={}){return t.fromFormatExplain(e,n,r)}static get DATE_SHORT(){return Wh}static get DATE_MED(){return uT}static get DATE_MED_WITH_WEEKDAY(){return oq}static get DATE_FULL(){return cT}static get DATE_HUGE(){return dT}static get TIME_SIMPLE(){return fT}static get TIME_WITH_SECONDS(){return pT}static get TIME_WITH_SHORT_OFFSET(){return mT}static get TIME_WITH_LONG_OFFSET(){return hT}static get TIME_24_SIMPLE(){return gT}static get TIME_24_WITH_SECONDS(){return vT}static get TIME_24_WITH_SHORT_OFFSET(){return yT}static get TIME_24_WITH_LONG_OFFSET(){return bT}static get DATETIME_SHORT(){return xT}static get DATETIME_SHORT_WITH_SECONDS(){return CT}static get DATETIME_MED(){return ST}static get DATETIME_MED_WITH_SECONDS(){return wT}static get DATETIME_MED_WITH_WEEKDAY(){return iq}static get DATETIME_FULL(){return ET}static get DATETIME_FULL_WITH_SECONDS(){return TT}static get DATETIME_HUGE(){return _T}static get DATETIME_HUGE_WITH_SECONDS(){return DT}};function LC(t){if(gn.isDateTime(t))return t;if(t&&t.valueOf&&jd(t.valueOf()))return gn.fromJSDate(t);if(t&&typeof t=="object")return gn.fromObject(t);throw new Ko(`Unknown datetime argument: ${t}, of type ${typeof t}`)}function EO(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 Awe,CanvasClient as kwe}from"@uniformdev/canvas";async function TO({instanceType:t,searchExpressionPrompt:e,username:n,locale:r,getEditUrl:o}){let i=new kwe(pt),a=await iO({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?EO(m):void 0,orderBy:Array.isArray(f)?f:f?[f]:void 0,locale:r,skipPatternResolution:!0,state:Awe})).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 _O({id:t}){let n=await new kwe(pt).getCompositionById({skipDataResolution:!0,withComponentIDs:!0,skipOverridesResolution:!0,skipPatternResolution:!1,compositionId:t,state:Awe});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}var Zat={id:Yat.string()};function Pwe(t){t.tool("compositionList","Lists available Uniform compositions",Cp.shape,async e=>await TO({...e,instanceType:"composition",getEditUrl:oO})),t.tool("compositionGet","Gets the full contents of a Uniform composition",Zat,async e=>await _O(e))}import{ContentClient as qat}from"@uniformdev/canvas";import{z as Bwe}from"zod";import{z as FT}from"zod";var Iwe=FT.object({name:FT.string().describe('Title-cased display name of the component. Ex: "Hero"'),id:FT.string().describe("Public ID of the content type, the camelCase version of name, using only alphanumeric characters"),description:FT.string().describe("Describe the purpose of the content type in 1-2 sentences."),fields:FT.array(Q_).describe("The fields of the content type. The key is the publicId of the field.").optional()});function Fwe(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 DO(t){return`${pt.baseWebUrl}/dashboards/canvas/content-types/${t}`}var Jat={action:Bwe.enum(["create","update","delete"]).describe("The action to perform"),publicId:Bwe.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),contentType:Iwe.describe("Full content type definition to create. Omit for update or delete.").optional(),patches:J_.describe("JSON patch to apply to the existing component definition. Omit for create or delete.").optional()};function zwe(t){t.tool("contentTypeAction","Creates, updates, or deletes a Uniform Content Type definition",Jat,async({publicId:e,action:n,contentType:r,patches:o})=>{let i=new qat(pt),a=!1;if(n==="create"){if(!r)throw new Error("Content type definition is required for create");let l=Fwe(r);l.fields&&(a=_y(l.fields),Dy(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=q_(c,o);if(f.fields){a=_y(f.fields);let m=f.fields?.filter(h=>h.type==="richText").map(h=>h.id).filter(h=>!d?.includes(h));Dy(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:DO(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 Vwe}from"@uniformdev/canvas";import{z as Xat}from"zod";var Qat={id:Xat.string()};function Uwe(t){t.tool("contentTypeList","Lists all Uniform Content Type definitions",async()=>{let r=(await new Vwe(pt).getContentTypes()).contentTypes.map(o=>({id:o.id,name:o.name,description:o.description,editUrl:DO(o.id)}));return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("contentTypeGet","Gets a Uniform Content Type definition details (fields, etc.)",Qat,async({id:e})=>{let o=(await new Vwe(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 jwe(t){t.tool("createUuid","Creates a new random UUID",async()=>({content:[{type:"text",text:crypto.randomUUID()}]}))}import{z as Uq}from"zod";import{CANVAS_DRAFT_STATE as $O,ContentClient as est,convertEntryToPutEntry as tst,getEffectivePropertyValue as nst}from"@uniformdev/canvas";async function rst(t,e,n){let o=(await e.fetchDefinitions())[t.entry.type];if(!o)throw new Error("insanity");let i=e3e(o),a;i.entryName&&(a=t.entry._overrides?.[t.entry._id].parameters?.[i.entryName]??t.entry.fields?.[i.entryName]);let l=nst({conditionIndex:-1,locale:void 0,greedyLocaleMatching:!0,property:a}),c=F4e({value:l,isNew:n,contentType:i});t.entry._name=c}async function NO({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new est(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:$O,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=iT({...h,entry:y});l=new Ud(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:$O,entry:{type:n.type,_id:e,fields:{},_pattern:o}}),d=e):l=new Ud({_id:e,_name:"New Entry",type:n.type,_overridability:{hideLockedParameters:!0}})}if(d){if(c=(await a.getEntries({entryIDs:[e],pattern:r,state:$O,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0})).entries[0],!c)throw new Error("Entry not found");let h=iT(c);l=new Ud(h.composition)}t==="delete"&&await a.deleteEntry({entryId:e});let m=w3e();if(l){t!=="duplicate"&&(await tO(n?.localeUpdates?.enableLocales),f=await WL({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??[],slotUpdates:{},localeUpdates:n?.localeUpdates,currentEditorLocale:void 0,referenceData:m}));let h=l.exportTree(),g=l.exportMetadata(),y=tst(t3e(h,c??{projectId:pt.projectId,pattern:r},g,$O,c?.releaseId,c?.editionId));r||await rst(y,m,t==="create"),await a.upsertEntry(y)}return{content:[{type:"text",text:JSON.stringify({...f,editUrl:i(e)},null,2)}]}}function LO(t){return`${pt.baseWebUrl}/dashboards/canvas/entries/${t}`}var ost={action:Uq.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:Uq.string().uuid().describe("UUID of the entry to create, update, delete, or duplicate"),patternId:Uq.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:dne.describe("Modification instructions for the entry. Omit for delete and duplicate.").optional()};function Hwe(t){t.tool("entryAction","Creates, updates, or deletes a Uniform Entry",ost,async e=>await NO({...e,isPattern:!1,getEditUrl:LO,patternId:e.patternId}))}import{z as ist}from"zod";import{CANVAS_DRAFT_STATE as Wwe,ContentClient as Kwe}from"@uniformdev/canvas";async function OO({isPattern:t,searchExpressionPrompt:e,username:n,locale:r,getEditUrl:o}){let i=new Kwe(pt),a=await iO({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:Wwe,search:d,filters:m?EO(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 MO({id:t,isPattern:e}){let r=await new Kwe(pt).getEntries({skipDataResolution:!0,withComponentIDs:!0,skipOverridesResolution:!0,skipPatternResolution:!1,pattern:e,entryIDs:[t],state:Wwe});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 ast={id:ist.string()};function Gwe(t){t.tool("entryList","Lists available Uniform entries",Cp.shape,async e=>await OO({...e,isPattern:!1,getEditUrl:LO})),t.tool("entryGet","Gets the full contents of a Uniform entry",ast,async e=>await MO({...e,isPattern:!1}))}import{z as Ywe}from"zod";function RO(t){return`${pt.baseWebUrl}/dashboards/canvas/entry-patterns/${t}`}var sst={action:Ywe.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:Ywe.string().uuid().describe("UUID of the entry pattern to create, update, delete, or duplicate"),instructions:fne.describe("Modification instructions for the entry pattern. Omit for delete and duplicate.").optional()};function Zwe(t){t.tool("entryPatternAction","Creates, updates, or deletes a Uniform Entry Pattern",sst,async e=>await NO({...e,isPattern:!0,getEditUrl:RO,patternId:void 0}))}import{z as lst}from"zod";var ust={id:lst.string()};function qwe(t){t.tool("entryPatternList","Lists available Uniform entry patterns",Cp.shape,async e=>await OO({...e,isPattern:!0,getEditUrl:RO})),t.tool("entryPatternGet","Gets the full contents of a Uniform entry pattern",ust,async e=>await MO({...e,isPattern:!0}))}import{ProjectClient as cst}from"@uniformdev/canvas";async function dst(){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 Jwe(t){t.tool("getUniformEnvironment","Get the connected Uniform Project name, edit URL, and current user",{},async()=>{try{let e=new cst(pt),[n,r]=await Promise.all([e.get({projectId:pt.projectId}),dst()]),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 fst}from"@uniformdev/canvas";function Xwe(t){t.tool("localeList","Lists all registered Uniform locales",async()=>{let n=await new fst(pt).get();return{content:[{type:"text",text:JSON.stringify({locales:n.results,editUrl:`${pt.baseWebUrl}/settings/localization`},null,2)}]}})}import{z as Qwe}from"zod";function AO(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}var pst={action:Qwe.enum(["create","update","delete","duplicate"]).describe("The action to perform"),id:Qwe.string().uuid().describe("UUID of the pattern instance to create, update, delete, or duplicate"),instructions:une.describe("Modification instructions for the pattern. Omit for delete and duplicate.").optional()};function eEe(t){t.tool("patternAction","Creates, updates, or deletes a Uniform Component Pattern or Composition Pattern",pst,async e=>await rO({...e,isPattern:!0,getEditUrl:AO,patternId:void 0}))}import{z as tEe}from"zod";var mst={instanceType:tEe.enum(["componentPattern","compositionPattern"]),...Cp.shape},hst={id:tEe.string()};function nEe(t){t.tool("patternList","Lists available Uniform component patterns or composition patterns",mst,async e=>await TO({...e,getEditUrl:AO})),t.tool("patternGet","Gets the full contents of a Uniform component pattern or composition pattern",hst,async e=>await _O(e))}var ja=new gst({name:"Uniform MCP",version:"1.0.0"});ane(ja);lne(ja);zwe(ja);Uwe(ja);Hwe(ja);Gwe(ja);qwe(ja);Zwe(ja);nEe(ja);eEe(ja);E3e(ja);Pwe(ja);jwe(ja);Jwe(ja);Xwe(ja);var yst=new vst;await ja.connect(yst);process.stderr.write(`Uniform MCP server started
5190
5190
  `);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/uniform-mcp",
3
- "version": "20.33.1-alpha.54+03ae0b17d0",
3
+ "version": "20.34.2-alpha.67+d830718b43",
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.33.1-alpha.54+03ae0b17d0",
25
+ "@uniformdev/canvas": "20.34.2-alpha.67+d830718b43",
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.33.1-alpha.54+03ae0b17d0",
38
- "@uniformdev/files": "20.33.1-alpha.54+03ae0b17d0",
39
- "@uniformdev/mesh-edgehancer-sdk": "20.33.1-alpha.54+03ae0b17d0",
40
- "@uniformdev/richtext": "20.33.1-alpha.54+03ae0b17d0",
37
+ "@uniformdev/design-system": "20.34.2-alpha.67+d830718b43",
38
+ "@uniformdev/files": "20.34.2-alpha.67+d830718b43",
39
+ "@uniformdev/mesh-edgehancer-sdk": "20.34.2-alpha.67+d830718b43",
40
+ "@uniformdev/richtext": "20.34.2-alpha.67+d830718b43",
41
41
  "vitest": "^3.1.4"
42
42
  },
43
- "gitHead": "03ae0b17d098f1a09099ea76cf7625dec9a54b21"
43
+ "gitHead": "d830718b43d1c26a8f6c22434975882eae4cbb3d"
44
44
  }