@uniformdev/uniform-mcp 20.26.3-alpha.7 → 20.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.mjs +1 -1
  2. package/package.json +7 -7
package/dist/index.mjs CHANGED
@@ -5175,7 +5175,7 @@ to {
5175
5175
  `;await er();function YSe(t){let e=Ole({nodes:[pd,fd,hZ,X1,Q1,Mae,Sfe,Cfe,wfe,Mf]});return e.update(()=>{Lae("skip-dom-selection"),$de(t,kde)},{discrete:!0}),e.getEditorState().toJSON()}function ZSe({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=Znt({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.`);t.updateNodeProperty({nodeId:e,property:n,value:()=>c,source:"ai",locale:o,conditionIndex:a,type:r})}}var Znt=({twee:t,targetNode:e,propertyId:n,propertyType:r,propertyEdit:o})=>{if(r==="richText")return YSe(o.newValue??"");if(r==="number")return Number(o.newValue);if(n===Wnt){if(Ynt(e.value.type))throw new Error("Enrichment tags are not allowed in system components.");if(t.getParentInfo(e.nodeId)?.parentId===Gnt)throw new Error("Enrichment tags are not allowed in personalization variants.")}return o.treatNewValueAsJson?JSON.parse(o.newValue):o.newValue};async function LL({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 Jnt({slotUpdates:e,twee:t,definitions:f,referenceData:c,results:d});let m=d.some(g=>!g.success);return e.deletedComponentsInSlots?.forEach(g=>{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),e.moveComponentsInSlots?.forEach(g=>{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.duplicateComponentsInSlots?.forEach(g=>{m?d.push({summary:`Skipped duplicating component ${g} because previous actions failed`,success:!1}):(t.duplicateNode(g,c.resolvePatternData),d.push({summary:`Duplicated 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 Xnt({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=qte({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{ZSe({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){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 Jnt({slotUpdates:t,twee:e,definitions:n,referenceData:r,results:o}){(await Promise.allSettled(t.newComponentsInSlots?.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=Mk({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=Yte(f);if(a.instanceType==="component"){if(!a.componentType)throw new Error("componentType is required when inserting a component instance");if(!Lk({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(!Lk({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.newComponentsInSlots?.[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 Xnt({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(E=>E.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=qnt({property:e.getNodeProperty(f,g),locale:b,conditionIndex:-1}),w=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});if(!w.success)throw new Error(w.summary??"Failed to edit property");return{result:w,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 Sc,CANVAS_ENRICHMENT_TAG_PARAM as R4e,CANVAS_LOCALE_TAG_PARAM as JE,CANVAS_LOCALIZATION_SLOT as OZ,CANVAS_LOCALIZATION_TYPE as Brt,CANVAS_PERSONALIZATION_PARAM as XE,CANVAS_PERSONALIZE_SLOT as A4e,CANVAS_SLOT_SECTION_SLOT as zrt,CANVAS_SLOT_SECTION_TYPE as RZ,CANVAS_TEST_SLOT as k4e,CANVAS_TEST_VARIANT_PARAM as P4e,CANVAS_VIZ_CONTROL_PARAM as u0,convertToBindExpression as Vrt,createVariableReference as Hrt,getEffectivePropertyValue as I4e,walkNodeTree as c0}from"@uniformdev/canvas";var qSe=Object.prototype.hasOwnProperty;function YE(t,e){var n,r;if(t===e)return!0;if(t&&e&&(n=t.constructor)===e.constructor){if(n===Date)return t.getTime()===e.getTime();if(n===RegExp)return t.toString()===e.toString();if(n===Array){if((r=t.length)===e.length)for(;r--&&YE(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(qSe.call(t,n)&&++r&&!qSe.call(e,n)||!(n in e)||!YE(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}var d0=J(bZ(),1),B4e=J(t4e(),1);import{produce as To}from"immer";import ort from"crypto";var OL=new Uint8Array(256),ML=OL.length;function xZ(){return ML>OL.length-16&&(ort.randomFillSync(OL),ML=0),OL.slice(ML,ML+=16)}var ua=[];for(let t=0;t<256;++t)ua.push((t+256).toString(16).slice(1));function n4e(t,e=0){return ua[t[e+0]]+ua[t[e+1]]+ua[t[e+2]]+ua[t[e+3]]+"-"+ua[t[e+4]]+ua[t[e+5]]+"-"+ua[t[e+6]]+ua[t[e+7]]+"-"+ua[t[e+8]]+ua[t[e+9]]+"-"+ua[t[e+10]]+ua[t[e+11]]+ua[t[e+12]]+ua[t[e+13]]+ua[t[e+14]]+ua[t[e+15]]}import irt from"crypto";var CZ={randomUUID:irt.randomUUID};function art(t,e,n){if(CZ.randomUUID&&!e&&!t)return CZ.randomUUID();t=t||{};let r=t.random||(t.rng||xZ)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){n=n||0;for(let o=0;o<16;++o)e[n+o]=r[o];return e}return n4e(r)}var Ba=art;import{bindVariablesToObject as urt}from"@uniformdev/canvas";var ZE="Untitled",s4e=60;function l4e({value:t,isNew:e,contentType:n}){let{result:r}=urt({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: ${drt(r)}`:`${ZE} image`;if(r.length>0)return i?.type==="date"?prt(r)?mrt(r):"Invalid date":l0(r)}else{if(typeof r=="number"||typeof r=="boolean")return r.toString();if(typeof r<"u"&&r!==null){if(i?.type==="link")return crt(r);if(Pte(r))return l0($k(r.root));if(i?.type==="datetime"&&r){let a=r;return a.datetime&&u4e(a.datetime)?hrt(a.datetime):"Invalid datetime"}else return l0(grt(r).description)}}return e?`New entry: ${n.name}`:ZE}function crt(t){return t?t.type==="projectMapNode"?t.path.length>0?`Link to ${l0(t.path)}`:`Link to project map node (${t.nodeId})`:t.path.length>0?`Link to ${l0(t.path)}`:`${ZE} link`:`${ZE} link`}function drt(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]} (${l0(n)})`:`${e} (${l0(n)})`}catch{return t}}function l0(t){let e=t.split(" ").filter(i=>i).reverse();if(e.length<1)return ZE;let n="",r=e.pop(),o=()=>n.length+(r?.length??0)+(n.length>0?1:0);for(;r&&o()<s4e;)n+=n.length>0?` ${r}`:r,r=e.pop();return n.length<1?`${t.slice(0,s4e)}...`:e.length>0?`${n}...`:n}var frt=/^[1-9][0-9]{3}-[0-1][0-9]-[0-3][0-9]$/;function prt(t){return frt.test(t)?u4e(t):!1}function u4e(t){let e=new Date(t);return e instanceof Date&&!isNaN(Number(e))}function mrt(t){return new Date(t).toLocaleDateString()}function hrt(t){return new Date(t).toLocaleString()}function grt(t){let e=EZ(t);return e?{description:e,named:!0}:{description:vrt(t).valuePreview,named:!1}}function vrt(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 yrt=["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 EZ(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=EZ(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 yrt)if(r in n){let o=EZ(n[r]);if(o)return o}}import{CANVAS_SLOT_SECTION_SLOT as brt,walkNodeTree as xrt}from"@uniformdev/canvas";var qE="|";function RL(t,e){if(!t)return e??Ba();let n=t.split(qE),r=(e??Ba()).split(qE);return n.at(-1)===r[0]&&n.pop(),n.concat(r).join(qE)}function d4e(t){let e=t.indexOf(qE);if(e<0)throw new Error(`Cannot remove pattern instance ID from ${t}`);return t.substring(e+1)}function AL(t,e,n=!1){xrt(t,({node:r,actions:{setDescendantsContext:o},context:i})=>{let a=!n&&!i?.currentParentPatternInstanceId,l="_pattern"in r&&!!r._pattern;if(i?.currentParentPatternInstanceId){let d=RL(i.currentParentPatternInstanceId,r._id);r._id=d}let c=i?.currentParentPatternInstanceId;l&&(c=r._id),"_overrides"in r&&r._overrides&&c4e(r._overrides,c,a),"_patternOverrides"in r&&r._patternOverrides&&c4e(r._patternOverrides,c,a),l&&o({currentParentPatternInstanceId:r._id})},{initialContext:{currentParentPatternInstanceId:e}})}var c4e=(t,e,n)=>{Object.entries(t).forEach(([r,o])=>{let i=n?r:RL(e,r);Object.entries(o.slots??{}).forEach(([a,l])=>{l.forEach(c=>{let{partOfNestedPattern:d}=kL(r??"");AL(c,a===brt&&!d?void 0:e,!0)})}),i&&(delete t[r],t[i]=o)})};function kL(t){let e=t.split(qE);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 v4e}from"@uniformdev/canvas";import{CANVAS_VIZ_CONTROL_PARAM as Ert}from"@uniformdev/canvas";import{CANVAS_ENRICHMENT_TAG_PARAM as f4e,CANVAS_INTENT_TAG_PARAM as Crt,CANVAS_LOCALE_TAG_PARAM as Srt,CANVAS_PERSONALIZATION_PARAM as p4e,CANVAS_TEST_VARIANT_PARAM as wrt,CANVAS_VIZ_CONTROL_PARAM as m4e}from"@uniformdev/canvas";var h4e=[{id:Crt,name:"Intent Tag",type:"intentTag"},{id:Srt,name:"Locale Visibility",type:"localeSelect"},{id:p4e,name:"Personalization Criteria",type:p4e},{id:f4e,name:"Enrichment Tags",type:f4e,helpText:"Seeing this component will increase a visitor's score in these enrichments."},{id:wrt,name:"A/B Test",type:"testVariant"},{id:m4e,name:"Visibility Control",type:m4e}];var Trt=h4e.reduce((t,e)=>(e.id===Ert||t.add(e.id),t),new Set);function fC(t,e){return Trt.has(e)?"yes":t?.parameters?.[e]??"no"}function TZ(t,e){e&&Object.entries(e).forEach(([n,r])=>{let o=t[n];if((r.parameters||o?.parameters)&&(t[n]??={},t[n].parameters={...r?.parameters,...o?.parameters}),(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 g4e({applyOverrideToNode:t}){let e=new Set,n={};return{visitNode(r){e.add(r._id),TZ(n,r._overrides),TZ(n,r._patternOverrides);let o=n[r._id];o&&(o.parameters&&Object.keys(o.parameters).forEach(i=>{fC(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 _Z(t){let{beforeApplyParameterOverride:e,beforeApplyDataResourceOverride:n}=t??{};return g4e({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[v4e]??=[],r.slots[v4e]=[...o.slots[i]??[]]}}})}import{CANVAS_SLOT_SECTION_SLOT as _rt,CANVAS_SLOT_SECTION_TYPE as Drt}from"@uniformdev/canvas";var y4e=({preserveOwnSlotSections:t=!1,preserveChildrenSlotSections:e=!1}={})=>n=>{if(n.node.type!==Drt)return;let{partOfPattern:r,partOfNestedPattern:o}=kL(n.node._id??"");!r&&!o&&t||r&&!o&&e||$rt(n)},$rt=({node:t,type:e,actions:n})=>{e!=="entry"&&(n.insertAfter(t.slots?.[_rt]??[]),n.remove())};import{walkNodeTree as Mrt}from"@uniformdev/canvas";import{produce as Ort}from"immer";import{CANVAS_SLOT_SECTION_SLOT as b4e,walkNodeTree as Nrt}from"@uniformdev/canvas";import{produce as Lrt}from"immer";function x4e(t,e,n,r=Ba()){if(!t._pattern)throw new Error("Not a pattern");let o={};return Nrt(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!==b4e?(i._id=d4e(c),i._id=RL(r,i._id)):(l.replace({...o[c],_id:o[c]._id}),l.stopProcessingDescendants())}if(d){let m=Lrt(d,h=>{h.slots&&Object.entries(h.slots).forEach(([g,y])=>{if(g!==b4e)throw new Error("Only slot section items are supported for duplication");y.forEach((b,C)=>{if(!b._id)return;let S=PL(b,e,n);o[b._id]=S,y[C]=S})})});n?.(i._id,m,c)}}),r}function PL(t,e,n){return Ort(t,r=>{Mrt(r,({type:o,node:i,actions:{stopProcessingDescendants:a}})=>{o==="component"&&i._pattern?(x4e(i,e,n),a()):i._id=Ba()})})}function IL({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 DZ({locale:t,conditionIndex:e,conditionDefinition:n,property:r,newPropertyValue:o}){t===void 0?e<0?r.value=o:(r.conditions??=[],C4e(r.conditions,e,n,o)):e<0?(r.locales??={},r.locales[t]=o):(r.localesConditions??={},r.localesConditions[t]??=[],C4e(r.localesConditions[t],e,n,o))}function C4e(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??Rrt(t)}}function Rrt(t){let e=new Set(t.map(r=>r.id)),n=0;for(;e.has(n);)n++;return n}function S4e(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 Art,convertEntryToPutEntry as MVt,getPropertiesValue as AVt}from"@uniformdev/canvas";function w4e(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 E4e(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 FL(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 T4e(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??Art,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 $Z(t,e){let{parameters:n,...r}=t;return{...r,_id:e??r._id??"unknown",fields:n}}function NZ(t){let{fields:e,...n}=t;return{...n,parameters:e}}import{CANVAS_VIZ_LOCALE_RULE as krt}from"@uniformdev/canvas";import{produce as Prt}from"immer";function _4e(t,e,n){let r=Prt(t.criteria,o=>D4e(o,e,n));return r&&{...t,criteria:r}}function D4e(t,e,n){if(!t)return t;let r=!1;for(let o of t.clauses)if("clauses"in o){let i=D4e(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===krt){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 $4e=J(bZ(),1);function LZ(t,e){try{return(0,$4e.get)(t,e)}catch{return}}function MZ(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 Irt}from"@uniformdev/canvas";import{produce as Frt}from"immer";function N4e(t,e){let n=Frt(t.criteria,r=>L4e(r,e));return n&&{...t,criteria:n}}function L4e(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=L4e(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===Irt){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 M4e(t){return{all:t=t||new Map,on:function(e,n){var r=t.get(e);r?r.push(n):t.set(e,[n])},off:function(e,n){var r=t.get(e);r&&(n?r.splice(r.indexOf(n)>>>0,1):t.set(e,[]))},emit:function(e,n){var r=t.get(e);r&&r.slice().map(function(o){o(n)}),(r=t.get("*"))&&r.slice().map(function(o){o(e,n)})}}}function O4e(t,e){let n=M4e();if(process.env.NODE_ENV==="development"&&!e){let r=new Error().stack?.split(`
5176
5176
  `).slice(2).join(`
5177
5177
  `).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 wu=(0,B4e.default)(),jrt=!0,Urt="Twee",Vh=class t{#e={};rootNodeId;#r={};#o={};#n;#i={};#t=O4e(Urt,jrt);#u;#c;#h;#d;#s;#a;#y;constructor(e,n){let{metadata:r,startDirty:o}=n||{};this.#s=r??{},this.#a={_name:e?._name??"",_slug:e?._slug??null},this.#d=!o,this.#y=n?.temp_disableDataResourceOverrideCreation??!1;let i=To(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??Ba(),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 $Z(this.exportSubtree(e),e)}getNodeChildren(e){let n=this.#r[e];if(n)return n}getNodeProperty(e,n){return LZ(this.#o,[e,n])}getNodeProperties(e){return this.#o[e]??{}}insertNode({node:e,parentNodeId:n,parentSlot:r,targetIndexInSlot:o,overrideNodeId:i}){let a=i??Ba(),l={nodeId:a,parentId:n,value:t.#T(e),isExpandedInUI:!0,propertyValueLocalizability:{}};return this.#w({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.#E({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??Ba();if(this.#e[a])throw new Error(`Node with ID '${a}' already exists. Pattern nodes must have unique IDs.`);let l=this.#x(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=S4e(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=To(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.#x(n,e,!0);this.#e[i]=To(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=[];c0(r,({node:l})=>{l._id&&o.push(l._id)}),c0(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=wu(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.#C(f,d._id);Object.assign(d,m)})())},c=[];return c0(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=>{c0(m,({node:h})=>{l(h)})})})}),await Promise.all(c),this.#_(a.componentData,{parentId:e,parentName:n,parentType:o.pasteAs==="block"?"block":"slot",targetIndexInParent:r},a.overrides)}enableLocale(e){this.updateNode({nodeId:this.rootNodeId,updateComponent:n=>{let r=n;r._locales??=[];let o=[...new Set([...r._locales,...Array.isArray(e)?e:[e]])];r._locales=o}})}disableLocale(e){this.updateNode({nodeId:this.rootNodeId,updateComponent:o=>{let i=o;i._locales=i._locales?.filter(a=>a!==e)}});let n=[],r=o=>{this.getNodeProperty(o.nodeId,JE)?.value===e&&!o.partOfPattern&&n.push(o.nodeId);let a=this.getNodeProperties(o.nodeId);Object.entries(a).forEach(([c,d])=>{let f=d;c!==u0&&(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,u0);if(l?.value){let c=N4e(l.value,e);c===null?n.push(o.nodeId):this.updateNodeProperty({nodeId:o.nodeId,property:u0,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===Brt&&!d.partOfPattern){let m=this.getNodeChildren(d.nodeId)?.[OZ]??[],h=m.map(b=>this.getNodeProperty(b,JE)),g=h.findIndex(b=>b?.value===n);if(g>=0){let b=m[g];zh(a,b).actions.push({type:"deleteLocalizedNode"})}let y=h.findIndex(b=>b?.value===e);if(y>=0){let b=m[y];zh(a,b).actions.push({type:"duplicateLocalizedNode",targetIndexInSlot:g})}}if(a.get(d.nodeId)?.actions.some(m=>m.type==="deleteLocalizedNode"))return;let f=i?{[i]:this.getNodeProperty(d.nodeId,i)}:this.getNodeProperties(d.nodeId);Object.entries(f).forEach(([m,h])=>{if(h===void 0)return;let g=!d.partOfPattern,y=fC(d.value._overridability,m)==="yes";if(!(g||y))return;if(m===u0){let $=_4e(h.value,e,n);$===null?zh(a,d.nodeId).actions.push({type:"deleteLocalizedNode"}):$&&zh(a,d.nodeId).actions.push({type:"updateVisibilityCriteria",targetValue:$})}let C=h.locales?.[e],S=h.locales?.[n];(!C||!S||!YE(C,S))&&(C!==void 0?zh(a,d.nodeId).actions.push({type:"copyPropertyValue",propertyId:m,sourceValue:C,targetValue:S,conditionIndex:-1}):S!==void 0&&zh(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(($,O)=>{let M=h.localesConditions?.[n]?.[O];(!$||!M||!YE($,M))&&zh(a,d.nodeId).actions.push({type:"copyPropertyValue",propertyId:m,sourceValue:$.value,targetValue:M,conditionIndex:O,conditionDefinition:$.when})});let _=w?.length??0,N=E?.length??0;if(_<N){let $=zh(a,d.nodeId);for(let O=_;O<N;O++)$.actions.push({type:"deletePropertyValue",propertyId:m,sourceValue:w?.[O],targetValue:E?.[O],conditionIndex:O})}})},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:JE,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:OZ,targetIndexInSlot:c.targetIndexInSlot});break}case"updateVisibilityCriteria":{this.updateNodeProperty({nodeId:a,property:u0,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=To(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=this.#y||a?!1:h.nodeId!==this.rootNodeId&&h.value._pattern;switch(y.type){case"set":b&&(this.#n=To(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=To(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=To(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=To(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=LZ(this.#o,g);if(!y&&r==null)return;let b=I4e({locale:i,property:y,conditionIndex:d}),C=i?y?.localesConditions?.[i]?.[d]:y?.conditions?.[d],S=typeof r=="function"?To(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=To(E,$=>{S===void 0&&d<0?_=!IL({locale:i,property:$,conditionIndex:d}):f===null&&d>=0?_=!IL({locale:i,property:$,conditionIndex:d}):DZ({locale:i,property:$,newPropertyValue:S,conditionIndex:d,conditionDefinition:f??C?.when??{clauses:[]}})}),_&&(E=void 0);let N=h&&fC(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=To(this.#i,O=>{O[e]??={parameters:{},dataResources:{}},O[e].parameters[n]=y??null}))),!c&&N){let $=this.#n[e]?.parameters?.[n];this.#n=To(this.#n,O=>{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=To(k,U=>{f===null&&d>=0?IL({locale:i,property:U,conditionIndex:d}):DZ({locale:i,property:U,newPropertyValue:A,conditionIndex:d,conditionDefinition:f??C?.when??{clauses:[]}})});(0,d0.set)(O,`/${e}/parameters/${n}`,F)}),$||this.#t.emit("propertyOverrideCreated",{nodeId:e,property:n})}S===null?(0,d0.remove)(this.#o,g):(this.#o[e]??={},(0,d0.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||fC(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=To(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=I4e({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.#b(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.#b(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}#b(e,n){this.#n=To(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=wu(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=F4e(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=wu(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===Sc&&Array.isArray(y.value)){let b=y.value,C=[];b.forEach(S=>{let w=this.exportSubtree(S,n);C.push($Z(w,S))}),m[g]={value:C,type:Sc},h=!0}else{let b=F4e(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=wu(b),S=c.value;S.slots=S.slots||{},(0,d0.set)(c,["value","slots",m,y.toString(10)],C.value),a.push(C)})})}return i.value}#w({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.`);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===RZ&&(this.#n=To(this.#n,c=>{c[n]=c[n]??{},c[n].slots={[zrt]:l.map(d=>({_id:d,type:this.#e[d].value.type}))}})),this.#e[e]=To(this.#e[e],c=>{c.parentId=n})}#E({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??Ba(),value:{type:o.type,_dataResources:o._dataResources},isBlock:!0,parentId:e,propertyValueLocalizability:{}},c=this.getNodeProperty(i.nodeId,n);if(c&&c.type!==Sc)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=wu(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===Sc&&Array.isArray(h.value)){let g=h.value,y=[];g.forEach(b=>{this.#l({nodeId:l.nodeId,componentTree:NZ(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:Sc,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:Sc,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)??Ba();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]=q_({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?Hrt(Vrt(E)):w.value;if(w?.type===Sc&&Array.isArray(N)){let $=N,O=[];$?.forEach(M=>{let A={...M,_id:i?Ba():M._id??Ba()};if(this.#e[A._id])throw new Error(`Block node with ID '${A._id}' already exists. Block nodes must have unique IDs.`);return O.push(A._id),this.#e[A._id]={nodeId:A._id,value:{type:Sc},propertyValueLocalizability:{}},this.#l({componentTree:NZ(A),nodeId:A._id,allowReplacement:!0}),this.#e[A._id].isBlock=!0,this.#e[A._id].parentId=C.nodeId,this.#e[A._id]}),N=O}this.#o[C.nodeId]=this.#o[C.nodeId]??{},(0,d0.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===RZ?void 0:g,partOfNestedPattern:h.type===RZ?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}#x(e,n,r){let o=this.#C(e,n);return this.#l({componentTree:o,nodeId:n,allowReplacement:r})}#C(e,n){let r=wu(e);return this.#v({composition:r}),AL(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=wu(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!==Sc)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#T(e){return To(e,r=>{delete r.slots,delete r.parameters})}#_(e,n,r){let i={...this.#g(),...r},a;if(this.#n=To(this.#n,c=>{this.#i=To(this.#i,d=>{a=PL(e,i,(f,m,h)=>{c[f]=m,d[f]=this.#i[h]})})}),!a)throw new Error("Failed to duplicate component");a=To(a,c=>{c._overrides=wu(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:Sc,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=To(this.#i,i=>{let a=_Z({beforeApplyParameterOverride(d,f,m){i[d._id]??={parameters:{},dataResources:{}},i[d._id].parameters[f]=wu(m)},beforeApplyDataResourceOverride(d,f,m){d._dataResources?.[f]?.ignorePatternParameterDefault||(i[d._id]??={parameters:{},dataResources:{}},i[d._id].dataResources[f]=wu(m))}}),l=_Z({beforeApplyParameterOverride(d,f,m,h){i[d._id]?.parameters[f]||(i[d._id]??={parameters:{},dataResources:{}},i[d._id].parameters[f]=wu(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]=wu(h))}});if(n){let{_overrides:d,...f}=e;c0(f,({node:m})=>{a.visitNode(m)})}let c=n?l:a;c0(e,({node:d})=>{c.visitNode(d)})});let o=y4e({preserveOwnSlotSections:!0,preserveChildrenSlotSections:r});c0(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===Sc)??[];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===A4e,l=i===A4e,c=o===k4e,d=i===k4e,f=i===OZ,m=this.getNodeProperty(e,R4e);l&&m&&this.updateNodeProperty({nodeId:e,property:R4e,value:void 0,source:"other",locale:void 0,conditionIndex:-1});let h=this.getNodeProperty(e,XE);!l&&h&&this.updateNodeProperty({nodeId:e,property:XE,value:void 0,source:"other",locale:void 0,conditionIndex:-1}),l&&!a&&this.#S({nodeId:e,siblingIds:this.getNodeChildren(n)?.[r]??[],selectExistingName:b=>this.getNodeProperty(b,XE)?.value?.name,setName:b=>this.updateNodeProperty({nodeId:e,property:XE,value:C=>C&&typeof C=="object"&&C!==null?{...C,name:b}:{name:b,crit:[]},source:"other",locale:void 0,conditionIndex:-1,type:XE})}),d&&!c&&this.#S({nodeId:e,siblingIds:this.getNodeChildren(n)?.[r]??[],selectExistingName:b=>this.getNodeProperty(b,P4e)?.value?.id,setName:b=>this.updateNodeProperty({nodeId:e,property:P4e,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,JE);!f&&g&&this.updateNodeProperty({nodeId:e,property:JE,value:void 0,source:"other",locale:void 0,conditionIndex:-1});let y=this.getNodeProperty(e,u0);(l||f||d)&&y&&this.updateNodeProperty({nodeId:e,property:u0,value:void 0,source:"other",locale:void 0,conditionIndex:-1})}#S({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=MZ(e,c,d);do f=MZ(e,c,d),d++;while(a(f));o(f)}};function F4e(t){return t?.value===void 0&&!t?.conditions&&!t?.locales&&!t?.localesConditions?null:t}function zh(t,e){return Krt(t,e,()=>({nodeId:e,actions:[]}))}function Krt(t,e,n){return t.has(e)||t.set(e,n()),t.get(e)}import{CANVAS_DRAFT_STATE as kZ,CanvasClient as Zrt}from"@uniformdev/canvas";function z4e(t){return t.reduce((e,n)=>(e[n._id]={id:n._id,type:n.type,name:n._name},e),{})}import{CANVAS_DRAFT_STATE as U4e,CanvasClient as AZ,ContentClient as K4e,ProjectClient as W4e}from"@uniformdev/canvas";var V4e=J(a4e());var H4e=(0,V4e.default)(6),BL=class t extends Error{constructor(n,r,o,i,a,l){super(`${n}
5178
- ${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 zL=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??H4e,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 Wrt(()=>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 BL(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 Wrt(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 VL=class extends zL{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 j4e={name:"@uniformdev/uniform-mcp",version:"20.26.2",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 QE(){return new VL({...pt,apiHost:pt.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${j4e.version}`,uniformClient:"mcp"}})}function G4e(){let t,e,n;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new W4e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let o=await new AZ(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 AZ(pt).getCompositionList({limit:1e3,pattern:!0,patternType:"component",resolveData:!1,skipPatternResolution:!0,skipOverridesResolution:!0,state:U4e});return n=z4e(o.compositions.map(i=>i.composition)),n},resolvePatternData:async r=>(await new AZ(pt).getCompositionById({compositionId:r,state:U4e,skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.composition,getToolClient:async()=>QE()}}function Y4e(){let t,e;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new W4e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let r=await new K4e(pt).getContentTypes({limit:1e3});return e=Object.fromEntries(r.contentTypes.map(o=>[o.id,w4e(o)])),e},fetchPatterns:async()=>({}),resolvePatternData:async n=>{let o=(await new K4e(pt).getEntries({entryIDs:[n],skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.entries[0];return FL(o).composition},getToolClient:async()=>QE()}}import{LocaleClient as Yrt}from"@uniformdev/canvas";async function HL(t){if(!t||t.length===0)return;let r=(await new Yrt(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 jL({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new Zrt(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};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 Vh({_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:kZ,pattern:!1};await a.updateComposition(m),d=e}}if(d){if(c=await a.getCompositionById({compositionId:e,state:kZ,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");l=new Vh(c.composition)}if(t==="delete"&&await a.removeComposition({compositionId:e}),l){await HL(n?.localeUpdates?.enableLocales),f=await LL({twee:l,descriptionUpdate:void 0,slugUpdate:void 0,nameUpdate:n?.name,propertyUpdates:n?.parameterUpdates??[],localeUpdates:n?.localeUpdates,slotUpdates:n??{newComponentsInSlots:[],deletedComponentsInSlots:[]},currentEditorLocale:void 0,referenceData:G4e()});let m=l.exportTree(),h=l.exportMetadata(),g={composition:m,projectId:pt.projectId,state:kZ,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 UL(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}async function KL(t,e){return await QE().invoke("createFilterExpression",{...t,entityType:e})}var qrt={action:PZ.enum(["create","update","delete"]).describe("The action to perform"),id:PZ.string().uuid().describe("UUID of the composition instance to create, update, or delete"),patternId:PZ.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:Ute.describe("Modification instructions for the composition. Omit for delete.").optional()};function Z4e(t){t.tool("compositionAction","Creates, updates, or deletes a Uniform Composition",qrt,async e=>await jL({...e,isPattern:!1,getEditUrl:UL,patternId:e.patternId}))}import{z as Uo}from"zod";var Jrt=Uo.object({field:Uo.string(),operator:Uo.string(),value:Uo.string().or(Uo.array(Uo.string()))}),Xrt=Uo.object({filter:Uo.array(Jrt),error:Uo.string().describe("An error message if the filter expression could not be created, otherwise an empty string"),sort:Uo.array(Uo.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:Uo.number().min(1).max(100),offset:Uo.number().min(0),keyword:Uo.string(),locale:Uo.string().optional()}),vp=Uo.object({searchExpressionPrompt:Uo.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".
5178
+ ${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 zL=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??H4e,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 Wrt(()=>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 BL(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 Wrt(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 VL=class extends zL{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 j4e={name:"@uniformdev/uniform-mcp",version:"20.27.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 QE(){return new VL({...pt,apiHost:pt.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${j4e.version}`,uniformClient:"mcp"}})}function G4e(){let t,e,n;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new W4e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let o=await new AZ(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 AZ(pt).getCompositionList({limit:1e3,pattern:!0,patternType:"component",resolveData:!1,skipPatternResolution:!0,skipOverridesResolution:!0,state:U4e});return n=z4e(o.compositions.map(i=>i.composition)),n},resolvePatternData:async r=>(await new AZ(pt).getCompositionById({compositionId:r,state:U4e,skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.composition,getToolClient:async()=>QE()}}function Y4e(){let t,e;return{fetchProjectGuidance:async()=>(t!==void 0||(t=(await new W4e(pt).get({projectId:pt.projectId}))?.guidance),t),fetchDefinitions:async()=>{if(e!==void 0)return e;let r=await new K4e(pt).getContentTypes({limit:1e3});return e=Object.fromEntries(r.contentTypes.map(o=>[o.id,w4e(o)])),e},fetchPatterns:async()=>({}),resolvePatternData:async n=>{let o=(await new K4e(pt).getEntries({entryIDs:[n],skipPatternResolution:!1,skipOverridesResolution:!0,withComponentIDs:!0,skipDataResolution:!0,withWorkflowDefinition:!0,releaseId:void 0}))?.entries[0];return FL(o).composition},getToolClient:async()=>QE()}}import{LocaleClient as Yrt}from"@uniformdev/canvas";async function HL(t){if(!t||t.length===0)return;let r=(await new Yrt(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 jL({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new Zrt(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};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 Vh({_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:kZ,pattern:!1};await a.updateComposition(m),d=e}}if(d){if(c=await a.getCompositionById({compositionId:e,state:kZ,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0}),!c)throw new Error("Composition not found");l=new Vh(c.composition)}if(t==="delete"&&await a.removeComposition({compositionId:e}),l){await HL(n?.localeUpdates?.enableLocales),f=await LL({twee:l,descriptionUpdate:void 0,slugUpdate:void 0,nameUpdate:n?.name,propertyUpdates:n?.parameterUpdates??[],localeUpdates:n?.localeUpdates,slotUpdates:n??{newComponentsInSlots:[],deletedComponentsInSlots:[]},currentEditorLocale:void 0,referenceData:G4e()});let m=l.exportTree(),h=l.exportMetadata(),g={composition:m,projectId:pt.projectId,state:kZ,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 UL(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}async function KL(t,e){return await QE().invoke("createFilterExpression",{...t,entityType:e})}var qrt={action:PZ.enum(["create","update","delete"]).describe("The action to perform"),id:PZ.string().uuid().describe("UUID of the composition instance to create, update, or delete"),patternId:PZ.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:Ute.describe("Modification instructions for the composition. Omit for delete.").optional()};function Z4e(t){t.tool("compositionAction","Creates, updates, or deletes a Uniform Composition",qrt,async e=>await jL({...e,isPattern:!1,getEditUrl:UL,patternId:e.patternId}))}import{z as Uo}from"zod";var Jrt=Uo.object({field:Uo.string(),operator:Uo.string(),value:Uo.string().or(Uo.array(Uo.string()))}),Xrt=Uo.object({filter:Uo.array(Jrt),error:Uo.string().describe("An error message if the filter expression could not be created, otherwise an empty string"),sort:Uo.array(Uo.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:Uo.number().min(1).max(100),offset:Uo.number().min(0),keyword:Uo.string(),locale:Uo.string().optional()}),vp=Uo.object({searchExpressionPrompt:Uo.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".
5179
5179
  You can specify multiple criteria (AND only).
5180
5180
  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:Uo.string().describe("The username of the current user. If you do not know the username, use an empty string"),locale:Uo.string().describe("The current locale. If there is no current locale, use an empty string")}),djt={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:vp.extend({entityType:Uo.enum(["composition","entry","componentPattern","compositionPattern","entryPattern"]).describe("The entity type we are creating a filter for")}),outputSchema:Xrt,runsAt:"server",timeout:10,callable:!0};import{z as wit}from"zod";var yp=class extends Error{},WL=class extends yp{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},GL=class extends yp{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},YL=class extends yp{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},wc=class extends yp{},pC=class extends yp{constructor(e){super(`Invalid unit ${e}`)}},Ko=class extends yp{},Ec=class extends yp{constructor(){super("Zone is an abstract class")}};var ze="numeric",Tc="short",Pl="long",Hh={year:ze,month:ze,day:ze},eT={year:ze,month:Tc,day:ze},IZ={year:ze,month:Tc,day:ze,weekday:Tc},tT={year:ze,month:Pl,day:ze},nT={year:ze,month:Pl,day:ze,weekday:Pl},rT={hour:ze,minute:ze},oT={hour:ze,minute:ze,second:ze},iT={hour:ze,minute:ze,second:ze,timeZoneName:Tc},aT={hour:ze,minute:ze,second:ze,timeZoneName:Pl},sT={hour:ze,minute:ze,hourCycle:"h23"},lT={hour:ze,minute:ze,second:ze,hourCycle:"h23"},uT={hour:ze,minute:ze,second:ze,hourCycle:"h23",timeZoneName:Tc},cT={hour:ze,minute:ze,second:ze,hourCycle:"h23",timeZoneName:Pl},dT={year:ze,month:ze,day:ze,hour:ze,minute:ze},fT={year:ze,month:ze,day:ze,hour:ze,minute:ze,second:ze},pT={year:ze,month:Tc,day:ze,hour:ze,minute:ze},mT={year:ze,month:Tc,day:ze,hour:ze,minute:ze,second:ze},FZ={year:ze,month:Tc,day:ze,weekday:Tc,hour:ze,minute:ze},hT={year:ze,month:Pl,day:ze,hour:ze,minute:ze,timeZoneName:Tc},gT={year:ze,month:Pl,day:ze,hour:ze,minute:ze,second:ze,timeZoneName:Tc},vT={year:ze,month:Pl,day:ze,weekday:Pl,hour:ze,minute:ze,timeZoneName:Pl},yT={year:ze,month:Pl,day:ze,weekday:Pl,hour:ze,minute:ze,second:ze,timeZoneName:Pl};var ol=class{get type(){throw new Ec}get name(){throw new Ec}get ianaName(){return this.name}get isUniversal(){throw new Ec}offsetName(e,n){throw new Ec}formatOffset(e,n){throw new Ec}offset(e){throw new Ec}equals(e){throw new Ec}get isValid(){throw new Ec}};var BZ=null,jh=class t extends ol{static get instance(){return BZ===null&&(BZ=new t),BZ}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:n,locale:r}){return qL(e,n,r)}formatOffset(e,n){return Uh(this.offset(e),n)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}};var XL={};function Qrt(t){return XL[t]||(XL[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"})),XL[t]}var eot={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function tot(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 not(t,e){let n=t.formatToParts(e),r=[];for(let o=0;o<n.length;o++){let{type:i,value:a}=n[o],l=eot[i];i==="era"?r[l]=a:Ot(l)||(r[l]=parseInt(a,10))}return r}var JL={},za=class t extends ol{static create(e){return JL[e]||(JL[e]=new t(e)),JL[e]}static resetCache(){JL={},XL={}}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 qL(e,n,r,this.name)}formatOffset(e,n){return Uh(this.offset(e),n)}offset(e){let n=new Date(e);if(isNaN(n))return NaN;let r=Qrt(this.name),[o,i,a,l,c,d,f]=r.formatToParts?not(r,n):tot(r,n);l==="BC"&&(o=-Math.abs(o)+1);let h=mC({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 q4e={};function rot(t,e={}){let n=JSON.stringify([t,e]),r=q4e[n];return r||(r=new Intl.ListFormat(t,e),q4e[n]=r),r}var zZ={};function VZ(t,e={}){let n=JSON.stringify([t,e]),r=zZ[n];return r||(r=new Intl.DateTimeFormat(t,e),zZ[n]=r),r}var HZ={};function oot(t,e={}){let n=JSON.stringify([t,e]),r=HZ[n];return r||(r=new Intl.NumberFormat(t,e),HZ[n]=r),r}var jZ={};function iot(t,e={}){let{base:n,...r}=e,o=JSON.stringify([t,r]),i=jZ[o];return i||(i=new Intl.RelativeTimeFormat(t,e),jZ[o]=i),i}var bT=null;function aot(){return bT||(bT=new Intl.DateTimeFormat().resolvedOptions().locale,bT)}var J4e={};function sot(t){let e=J4e[t];if(!e){let n=new Intl.Locale(t);e="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,J4e[t]=e}return e}function lot(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=VZ(t).resolvedOptions(),o=t}catch{let c=t.substring(0,n);r=VZ(c).resolvedOptions(),o=c}let{numberingSystem:i,calendar:a}=r;return[o,i,a]}}function uot(t,e,n){return(n||e)&&(t.includes("-u-")||(t+="-u"),n&&(t+=`-ca-${n}`),e&&(t+=`-nu-${e}`)),t}function cot(t){let e=[];for(let n=1;n<=12;n++){let r=gn.utc(2009,n,1);e.push(t(r))}return e}function dot(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 QL(t,e,n,r){let o=t.listingMode();return o==="error"?null:o==="en"?n(e):r(e)}function fot(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 UZ=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=oot(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):hC(e,3);return ho(n,this.padTo)}}},KZ=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&&za.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=VZ(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()}},WZ=class{constructor(e,n,r){this.opts={style:"long",...r},!n&&eM()&&(this.rtf=iot(e,r))}format(e,n){return this.rtf?this.rtf.format(e,n):X4e(n,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,n){return this.rtf?this.rtf.formatToParts(e,n):[]}},pot={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":aot()),c=n||Vn.defaultNumberingSystem,d=r||Vn.defaultOutputCalendar,f=xT(o)||Vn.defaultWeekSettings;return new t(l,c,d,f,a)}static resetCache(){bT=null,zZ={},HZ={},jZ={}}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]=lot(e);this.locale=a,this.numberingSystem=n||l||null,this.outputCalendar=r||c||null,this.weekSettings=o,this.intl=uot(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=fot(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,xT(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 QL(this,e,GZ,()=>{let r=n?{month:e,day:"numeric"}:{month:e},o=n?"format":"standalone";return this.monthsCache[o][e]||(this.monthsCache[o][e]=cot(i=>this.extract(i,r,"month"))),this.monthsCache[o][e]})}weekdays(e,n=!1){return QL(this,e,YZ,()=>{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]=dot(i=>this.extract(i,r,"weekday"))),this.weekdaysCache[o][e]})}meridiems(){return QL(this,void 0,()=>ZZ,()=>{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 QL(this,e,qZ,()=>{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 UZ(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,n={}){return new KZ(e,this.intl,n)}relFormatter(e={}){return new WZ(this.intl,this.isEnglish(),e)}listFormatter(e={}){return rot(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:tM()?sot(this.locale):pot}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 XZ=null,Hi=class t extends ol{static get utcInstance(){return XZ===null&&(XZ=new t(0)),XZ}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(f0(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Uh(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Uh(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,n){return Uh(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 gC=class extends ol{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 _c(t,e){let n;if(Ot(t)||t===null)return e;if(t instanceof ol)return t;if(Q4e(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?jh.instance:r==="utc"||r==="gmt"?Hi.utcInstance:Hi.parseSpecifier(r)||za.create(t)}else return Bd(t)?Hi.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new gC(t)}var e3e=()=>Date.now(),t3e="system",n3e=null,r3e=null,o3e=null,i3e=60,a3e,s3e=null,Vn=class{static get now(){return e3e}static set now(e){e3e=e}static set defaultZone(e){t3e=e}static get defaultZone(){return _c(t3e,jh.instance)}static get defaultLocale(){return n3e}static set defaultLocale(e){n3e=e}static get defaultNumberingSystem(){return r3e}static set defaultNumberingSystem(e){r3e=e}static get defaultOutputCalendar(){return o3e}static set defaultOutputCalendar(e){o3e=e}static get defaultWeekSettings(){return s3e}static set defaultWeekSettings(e){s3e=xT(e)}static get twoDigitCutoffYear(){return i3e}static set twoDigitCutoffYear(e){i3e=e%100}static get throwOnInvalid(){return a3e}static set throwOnInvalid(e){a3e=e}static resetCaches(){Jn.resetCache(),za.resetCache()}};var ji=class{constructor(e,n){this.reason=e,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}};var l3e=[0,31,59,90,120,151,181,212,243,273,304,334],u3e=[0,31,60,91,121,152,182,213,244,274,305,335];function Eu(t,e){return new ji("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function nM(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 c3e(t,e,n){return n+(m0(t)?u3e:l3e)[e-1]}function d3e(t,e){let n=m0(t)?u3e:l3e,r=n.findIndex(i=>i<e),o=e-n[r];return{month:r+1,day:o}}function rM(t,e){return(t-e+7)%7+1}function CT(t,e=4,n=1){let{year:r,month:o,day:i}=t,a=c3e(r,o,i),l=rM(nM(r,o,i),n),c=Math.floor((a-l+14-e)/7),d;return c<1?(d=r-1,c=p0(d,e,n)):c>p0(r,e,n)?(d=r+1,c=1):d=r,{weekYear:d,weekNumber:c,weekday:l,...wT(t)}}function QZ(t,e=4,n=1){let{weekYear:r,weekNumber:o,weekday:i}=t,a=rM(nM(r,1,e),n),l=Kh(r),c=o*7+i-a-7+e,d;c<1?(d=r-1,c+=Kh(d)):c>l?(d=r+1,c-=Kh(r)):d=r;let{month:f,day:m}=d3e(d,c);return{year:d,month:f,day:m,...wT(t)}}function oM(t){let{year:e,month:n,day:r}=t,o=c3e(e,n,r);return{year:e,ordinal:o,...wT(t)}}function eq(t){let{year:e,ordinal:n}=t,{month:r,day:o}=d3e(e,n);return{year:e,month:r,day:o,...wT(t)}}function tq(t,e){if(!Ot(t.localWeekday)||!Ot(t.localWeekNumber)||!Ot(t.localWeekYear)){if(!Ot(t.weekday)||!Ot(t.weekNumber)||!Ot(t.weekYear))throw new wc("Cannot mix locale-based week fields with ISO-based week fields");return Ot(t.localWeekday)||(t.weekday=t.localWeekday),Ot(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),Ot(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 f3e(t,e=4,n=1){let r=ST(t.weekYear),o=Il(t.weekNumber,1,p0(t.weekYear,e,n)),i=Il(t.weekday,1,7);return r?o?i?!1:Eu("weekday",t.weekday):Eu("week",t.weekNumber):Eu("weekYear",t.weekYear)}function p3e(t){let e=ST(t.year),n=Il(t.ordinal,1,Kh(t.year));return e?n?!1:Eu("ordinal",t.ordinal):Eu("year",t.year)}function nq(t){let e=ST(t.year),n=Il(t.month,1,12),r=Il(t.day,1,vC(t.year,t.month));return e?n?r?!1:Eu("day",t.day):Eu("month",t.month):Eu("year",t.year)}function rq(t){let{hour:e,minute:n,second:r,millisecond:o}=t,i=Il(e,0,23)||e===24&&n===0&&r===0&&o===0,a=Il(n,0,59),l=Il(r,0,59),c=Il(o,0,999);return i?a?l?c?!1:Eu("millisecond",o):Eu("second",r):Eu("minute",n):Eu("hour",e)}function Ot(t){return typeof t>"u"}function Bd(t){return typeof t=="number"}function ST(t){return typeof t=="number"&&t%1===0}function Q4e(t){return typeof t=="string"}function h3e(t){return Object.prototype.toString.call(t)==="[object Date]"}function eM(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function tM(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function g3e(t){return Array.isArray(t)?t:[t]}function oq(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 v3e(t,e){return e.reduce((n,r)=>(n[r]=t[r],n),{})}function Wh(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function xT(t){if(t==null)return null;if(typeof t!="object")throw new Ko("Week settings must be an object");if(!Il(t.firstDay,1,7)||!Il(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!Il(e,1,7)))throw new Ko("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function Il(t,e,n){return ST(t)&&t>=e&&t<=n}function mot(t,e){return t-e*Math.floor(t/e)}function ho(t,e=2){let n=t<0,r;return n?r="-"+(""+-t).padStart(e,"0"):r=(""+t).padStart(e,"0"),r}function bp(t){if(!(Ot(t)||t===null||t===""))return parseInt(t,10)}function Gh(t){if(!(Ot(t)||t===null||t===""))return parseFloat(t)}function ET(t){if(!(Ot(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function hC(t,e,n=!1){let r=10**e;return(n?Math.trunc:Math.round)(t*r)/r}function m0(t){return t%4===0&&(t%100!==0||t%400===0)}function Kh(t){return m0(t)?366:365}function vC(t,e){let n=mot(e-1,12)+1,r=t+(e-n)/12;return n===2?m0(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function mC(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 m3e(t,e,n){return-rM(nM(t,1,e),n)+e-1}function p0(t,e=4,n=1){let r=m3e(t,e,n),o=m3e(t+1,e,n);return(Kh(t)-r+o)/7}function TT(t){return t>99?t:t>Vn.twoDigitCutoffYear?1900+t:2e3+t}function qL(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 f0(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 iq(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ko(`Invalid unit value ${t}`);return e}function yC(t,e){let n={};for(let r in t)if(Wh(t,r)){let o=t[r];if(o==null)continue;n[e(r)]=iq(o)}return n}function Uh(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}${ho(n,2)}:${ho(r,2)}`;case"narrow":return`${o}${n}${r>0?`:${r}`:""}`;case"techie":return`${o}${ho(n,2)}${ho(r,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function wT(t){return v3e(t,["hour","minute","second","millisecond"])}var hot=["January","February","March","April","May","June","July","August","September","October","November","December"],aq=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],got=["J","F","M","A","M","J","J","A","S","O","N","D"];function GZ(t){switch(t){case"narrow":return[...got];case"short":return[...aq];case"long":return[...hot];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 sq=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],lq=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],vot=["M","T","W","T","F","S","S"];function YZ(t){switch(t){case"narrow":return[...vot];case"short":return[...lq];case"long":return[...sq];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var ZZ=["AM","PM"],yot=["Before Christ","Anno Domini"],bot=["BC","AD"],xot=["B","A"];function qZ(t){switch(t){case"narrow":return[...xot];case"short":return[...bot];case"long":return[...yot];default:return null}}function y3e(t){return ZZ[t.hour<12?0:1]}function b3e(t,e){return YZ(e)[t.weekday-1]}function x3e(t,e){return GZ(e)[t.month-1]}function C3e(t,e){return qZ(e)[t.year<0?0:1]}function X4e(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 S3e(t,e){let n="";for(let r of t)r.literal?n+=r.val:n+=e(r.val);return n}var Cot={D:Hh,DD:eT,DDD:tT,DDDD:nT,t:rT,tt:oT,ttt:iT,tttt:aT,T:sT,TT:lT,TTT:uT,TTTT:cT,f:dT,ff:pT,fff:hT,ffff:vT,F:fT,FF:mT,FFF:gT,FFFF:yT},Ui=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 Cot[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 ho(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?y3e(e):i({hour:"numeric",hourCycle:"h12"},"dayperiod"),c=(g,y)=>r?x3e(e,g):i(y?{month:g}:{month:g,day:"numeric"},"month"),d=(g,y)=>r?b3e(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?C3e(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 S3e(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 S3e(i,o(l))}};var E3e=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function xC(...t){let e=t.reduce((n,r)=>n+r.source,"");return RegExp(`^${e}$`)}function CC(...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 SC(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 T3e(...t){return(e,n)=>{let r={},o;for(o=0;o<t.length;o++)r[t[o]]=bp(e[n+o]);return[r,null,n+o]}}var _3e=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Sot=`(?:${_3e.source}?(?:\\[(${E3e.source})\\])?)?`,uq=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,D3e=RegExp(`${uq.source}${Sot}`),cq=RegExp(`(?:T${D3e.source})?`),wot=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Eot=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Tot=/(\d{4})-?(\d{3})/,_ot=T3e("weekYear","weekNumber","weekDay"),Dot=T3e("year","ordinal"),$ot=/(\d{4})-(\d\d)-(\d\d)/,$3e=RegExp(`${uq.source} ?(?:${_3e.source}|(${E3e.source}))?`),Not=RegExp(`(?: ${$3e.source})?`);function bC(t,e,n){let r=t[e];return Ot(r)?n:bp(r)}function Lot(t,e){return[{year:bC(t,e),month:bC(t,e+1,1),day:bC(t,e+2,1)},null,e+3]}function wC(t,e){return[{hours:bC(t,e,0),minutes:bC(t,e+1,0),seconds:bC(t,e+2,0),milliseconds:ET(t[e+3])},null,e+4]}function _T(t,e){let n=!t[e]&&!t[e+1],r=f0(t[e+1],t[e+2]),o=n?null:Hi.instance(r);return[{},o,e+3]}function DT(t,e){let n=t[e]?za.create(t[e]):null;return[{},n,e+1]}var Mot=RegExp(`^T?${uq.source}$`),Oot=/^-?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 Rot(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(Gh(n)),months:h(Gh(r)),weeks:h(Gh(o)),days:h(Gh(i)),hours:h(Gh(a)),minutes:h(Gh(l)),seconds:h(Gh(c),c==="-0"),milliseconds:h(ET(d),m)}]}var Aot={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 dq(t,e,n,r,o,i,a){let l={year:e.length===2?TT(bp(e)):bp(e),month:aq.indexOf(n)+1,day:bp(r),hour:bp(o),minute:bp(i)};return a&&(l.second=bp(a)),t&&(l.weekday=t.length>3?sq.indexOf(t)+1:lq.indexOf(t)+1),l}var kot=/^(?:(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 Pot(t){let[,e,n,r,o,i,a,l,c,d,f,m]=t,h=dq(e,o,r,n,i,a,l),g;return c?g=Aot[c]:d?g=0:g=f0(f,m),[h,new Hi(g)]}function Iot(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Fot=/^(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$/,Bot=/^(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$/,zot=/^(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 w3e(t){let[,e,n,r,o,i,a,l]=t;return[dq(e,o,r,n,i,a,l),Hi.utcInstance]}function Vot(t){let[,e,n,r,o,i,a,l]=t;return[dq(e,l,n,r,o,i,a),Hi.utcInstance]}var Hot=xC(wot,cq),jot=xC(Eot,cq),Uot=xC(Tot,cq),Kot=xC(D3e),N3e=CC(Lot,wC,_T,DT),Wot=CC(_ot,wC,_T,DT),Got=CC(Dot,wC,_T,DT),Yot=CC(wC,_T,DT);function L3e(t){return SC(t,[Hot,N3e],[jot,Wot],[Uot,Got],[Kot,Yot])}function M3e(t){return SC(Iot(t),[kot,Pot])}function O3e(t){return SC(t,[Fot,w3e],[Bot,w3e],[zot,Vot])}function R3e(t){return SC(t,[Oot,Rot])}var Zot=CC(wC);function A3e(t){return SC(t,[Mot,Zot])}var qot=xC($ot,Not),Jot=xC($3e),Xot=CC(wC,_T,DT);function k3e(t){return SC(t,[qot,N3e],[Jot,Xot])}var P3e="Invalid Duration",F3e={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}},Qot={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},...F3e},Tu=146097/400,EC=146097/4800,eit={years:{quarters:4,months:12,weeks:Tu/7,days:Tu,hours:Tu*24,minutes:Tu*24*60,seconds:Tu*24*60*60,milliseconds:Tu*24*60*60*1e3},quarters:{months:3,weeks:Tu/28,days:Tu/4,hours:Tu*24/4,minutes:Tu*24*60/4,seconds:Tu*24*60*60/4,milliseconds:Tu*24*60*60*1e3/4},months:{weeks:EC/7,days:EC,hours:EC*24,minutes:EC*24*60,seconds:EC*24*60*60,milliseconds:EC*24*60*60*1e3},...F3e},h0=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],tit=h0.slice(0).reverse();function Yh(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 go(r)}function B3e(t,e){let n=e.milliseconds??0;for(let r of tit.slice(1))e[r]&&(n+=e[r]*t[r].milliseconds);return n}function I3e(t,e){let n=B3e(t,e)<0?-1:1;h0.reduceRight((r,o)=>{if(Ot(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),h0.reduce((r,o)=>{if(Ot(e[o]))return r;if(r){let i=e[r]%1;e[r]-=i,e[o]+=i*t[r][o]}return o},null)}function nit(t){let e={};for(let[n,r]of Object.entries(t))r!==0&&(e[n]=r);return e}var go=class t{constructor(e){let n=e.conversionAccuracy==="longterm"||!1,r=n?eit:Qot;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:yC(e,t.normalizeUnit),loc:Jn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(e){if(Bd(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]=R3e(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]=A3e(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 ji?e:new ji(e,n);if(Vn.throwOnInvalid)throw new YL(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 pC(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?Ui.create(this.loc,r).formatDurationFromString(this,e):P3e}toHuman(e={}){if(!this.isValid)return P3e;let n=h0.map(r=>{let o=this.values[r];return Ot(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+=hC(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?B3e(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 h0)(Wh(n.values,o)||Wh(this.values,o))&&(r[o]=n.get(o)+this.get(o));return Yh(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]=iq(e(this.values[r],r));return Yh(this,{values:n},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let n={...this.values,...yC(e,t.normalizeUnit)};return Yh(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 Yh(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return I3e(this.matrix,e),Yh(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=nit(this.normalize().shiftToAll().toObject());return Yh(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 h0)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;Bd(o[a])&&(l+=o[a]);let c=Math.trunc(l);n[a]=c,r[a]=(l*1e3-c*1e3)/1e3}else Bd(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 I3e(this.matrix,n),Yh(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 Yh(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 h0)if(!n(this.values[r],e.values[r]))return!1;return!0}};var TC="Invalid Interval";function rit(t,e){return!t||!t.isValid?xp.invalid("missing or invalid start"):!e||!e.isValid?xp.invalid("missing or invalid end"):e<t?xp.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 xp=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 ji?e:new ji(e,n);if(Vn.throwOnInvalid)throw new GL(r);return new t({invalid:r})}static fromDateTimes(e,n){let r=_C(e),o=_C(n),i=rit(r,o);return i??new t({start:r,end:o})}static after(e,n){let r=go.fromDurationLike(n),o=_C(e);return t.fromDateTimes(o,o.plus(r))}static before(e,n){let r=go.fromDurationLike(n),o=_C(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=go.fromISO(o,n);if(d.isValid)return t.after(i,d)}else if(c){let d=go.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(_C).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=go.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()})`:TC}[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=Hh,n={}){return this.isValid?Ui.create(this.s.loc.clone(n),e).formatInterval(this):TC}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:TC}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:TC}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:TC}toFormat(e,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${n}${this.e.toFormat(e)}`:TC}toDuration(e,n){return this.isValid?this.e.diff(this.s,e,n):go.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}};var Cp=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 za.isValidZone(e)}static normalizeZone(e){return _c(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:eM(),localeWeek:tM()}}};function z3e(t,e){let n=o=>o.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(e)-n(t);return Math.floor(go.fromMillis(r).as("days"))}function oit(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=z3e(c,d);return(f-f%7)/7}],["days",z3e]],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 V3e(t,e,n,r){let[o,i,a,l]=oit(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=go.fromObject(i,r);return d.length>0?go.fromMillis(c,r).shiftTo(...d).plus(f):f}var fq={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"},H3e={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]},iit=fq.hanidec.replace(/[\[|\]]/g,"").split("");function j3e(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(fq.hanidec)!==-1)e+=iit.indexOf(t[n]);else for(let o in H3e){let[i,a]=H3e[o];r>=i&&r<=a&&(e+=r-i)}}return parseInt(e,10)}else return e}function _u({numberingSystem:t},e=""){return new RegExp(`${fq[t||"latn"]}${e}`)}var ait="missing Intl.DateTimeFormat.formatToParts support";function Hn(t,e=n=>n){return{regex:t,deser:([n])=>e(j3e(n))}}var sit="\xA0",W3e=`[ ${sit}]`,G3e=new RegExp(W3e,"g");function lit(t){return t.replace(/\./g,"\\.?").replace(G3e,W3e)}function U3e(t){return t.replace(/\./g,"").replace(G3e," ").toLowerCase()}function Dc(t,e){return t===null?null:{regex:RegExp(t.map(lit).join("|")),deser:([n])=>t.findIndex(r=>U3e(n)===U3e(r))+e}}function K3e(t,e){return{regex:t,deser:([,n,r])=>f0(n,r),groups:e}}function iM(t){return{regex:t,deser:([e])=>e}}function uit(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function cit(t,e){let n=_u(e),r=_u(e,"{2}"),o=_u(e,"{3}"),i=_u(e,"{4}"),a=_u(e,"{6}"),l=_u(e,"{1,2}"),c=_u(e,"{1,3}"),d=_u(e,"{1,6}"),f=_u(e,"{1,9}"),m=_u(e,"{2,4}"),h=_u(e,"{4,6}"),g=C=>({regex:RegExp(uit(C.val)),deser:([S])=>S,literal:!0}),b=(C=>{if(t.literal)return g(C);switch(C.val){case"G":return Dc(e.eras("short"),0);case"GG":return Dc(e.eras("long"),0);case"y":return Hn(d);case"yy":return Hn(m,TT);case"yyyy":return Hn(i);case"yyyyy":return Hn(h);case"yyyyyy":return Hn(a);case"M":return Hn(l);case"MM":return Hn(r);case"MMM":return Dc(e.months("short",!0),1);case"MMMM":return Dc(e.months("long",!0),1);case"L":return Hn(l);case"LL":return Hn(r);case"LLL":return Dc(e.months("short",!1),1);case"LLLL":return Dc(e.months("long",!1),1);case"d":return Hn(l);case"dd":return Hn(r);case"o":return Hn(c);case"ooo":return Hn(o);case"HH":return Hn(r);case"H":return Hn(l);case"hh":return Hn(r);case"h":return Hn(l);case"mm":return Hn(r);case"m":return Hn(l);case"q":return Hn(l);case"qq":return Hn(r);case"s":return Hn(l);case"ss":return Hn(r);case"S":return Hn(c);case"SSS":return Hn(o);case"u":return iM(f);case"uu":return iM(l);case"uuu":return Hn(n);case"a":return Dc(e.meridiems(),0);case"kkkk":return Hn(i);case"kk":return Hn(m,TT);case"W":return Hn(l);case"WW":return Hn(r);case"E":case"c":return Hn(n);case"EEE":return Dc(e.weekdays("short",!1),1);case"EEEE":return Dc(e.weekdays("long",!1),1);case"ccc":return Dc(e.weekdays("short",!0),1);case"cccc":return Dc(e.weekdays("long",!0),1);case"Z":case"ZZ":return K3e(new RegExp(`([+-]${l.source})(?::(${r.source}))?`),2);case"ZZZ":return K3e(new RegExp(`([+-]${l.source})(${r.source})?`),2);case"z":return iM(/[a-z_+-/]{1,256}?/i);case" ":return iM(/[^\S\n\r]/);default:return g(C)}})(t)||{invalidReason:ait};return b.token=t,b}var dit={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 fit(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=dit[a];if(typeof l=="object"&&(l=l[i]),l)return{literal:!1,val:l}}function pit(t){return[`^${t.map(n=>n.regex).reduce((n,r)=>`${n}(${r.source})`,"")}$`,t]}function mit(t,e,n){let r=t.match(e);if(r){let o={},i=1;for(let a in n)if(Wh(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 hit(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 Ot(t.z)||(n=za.create(t.z)),Ot(t.Z)||(n||(n=new Hi(t.Z)),r=t.Z),Ot(t.q)||(t.M=(t.q-1)*3+1),Ot(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),Ot(t.u)||(t.S=ET(t.u)),[Object.keys(t).reduce((i,a)=>{let l=e(a);return l&&(i[l]=t[a]),i},{}),n,r]}var pq=null;function git(){return pq||(pq=gn.fromMillis(1555555555555)),pq}function vit(t,e){if(t.literal)return t;let n=Ui.macroTokenToFormatOpts(t.val),r=gq(n,e);return r==null||r.includes(void 0)?t:r}function mq(t,e){return Array.prototype.concat(...t.map(n=>vit(n,e)))}function hq(t,e,n){let r=mq(Ui.parseFormat(n),t),o=r.map(a=>cit(a,t)),i=o.find(a=>a.invalidReason);if(i)return{input:e,tokens:r,invalidReason:i.invalidReason};{let[a,l]=pit(o),c=RegExp(a,"i"),[d,f]=mit(e,c,l),[m,h,g]=f?hit(f):[null,null,void 0];if(Wh(f,"a")&&Wh(f,"H"))throw new wc("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 Y3e(t,e,n){let{result:r,zone:o,specificOffset:i,invalidReason:a}=hq(t,e,n);return[r,o,i,a]}function gq(t,e){if(!t)return null;let r=Ui.create(e,t).dtFormatter(git()),o=r.formatToParts(),i=r.resolvedOptions();return o.map(a=>fit(a,t,i))}var vq="Invalid DateTime",Z3e=864e13;function aM(t){return new ji("unsupported zone",`the zone "${t.name}" is not supported`)}function yq(t){return t.weekData===null&&(t.weekData=CT(t.c)),t.weekData}function bq(t){return t.localWeekData===null&&(t.localWeekData=CT(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function g0(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 nwe(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 sM(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 uM(t,e,n){return nwe(mC(t),e,n)}function q3e(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,vC(r,o))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=go.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=mC(i),[c,d]=nwe(l,n,t.zone);return a!==0&&(c+=a,d=t.zone.offset(c)),{ts:c,o:d}}function $T(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 ji("unparsable",`the input "${o}" can't be parsed as ${r}`))}function lM(t,e,n=!0){return t.isValid?Ui.create(Jn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function xq(t,e){let n=t.c.year>9999||t.c.year<0,r="";return n&&t.c.year>=0&&(r+="+"),r+=ho(t.c.year,n?6:4),e?(r+="-",r+=ho(t.c.month),r+="-",r+=ho(t.c.day)):(r+=ho(t.c.month),r+=ho(t.c.day)),r}function J3e(t,e,n,r,o,i){let a=ho(t.c.hour);return e?(a+=":",a+=ho(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!n)&&(a+=":")):a+=ho(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!n)&&(a+=ho(t.c.second),(t.c.millisecond!==0||!r)&&(a+=".",a+=ho(t.c.millisecond,3))),o&&(t.isOffsetFixed&&t.offset===0&&!i?a+="Z":t.o<0?(a+="-",a+=ho(Math.trunc(-t.o/60)),a+=":",a+=ho(Math.trunc(-t.o%60))):(a+="+",a+=ho(Math.trunc(t.o/60)),a+=":",a+=ho(Math.trunc(t.o%60)))),i&&(a+="["+t.zone.ianaName+"]"),a}var rwe={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},yit={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},bit={ordinal:1,hour:0,minute:0,second:0,millisecond:0},owe=["year","month","day","hour","minute","second","millisecond"],xit=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Cit=["year","ordinal","hour","minute","second","millisecond"];function Sit(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 pC(t);return e}function X3e(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Sit(t)}}function Q3e(t,e){let n=_c(e.zone,Vn.defaultZone),r=Jn.fromObject(e),o=Vn.now(),i,a;if(Ot(t.year))i=o;else{for(let d of owe)Ot(t[d])&&(t[d]=rwe[d]);let l=nq(t)||rq(t);if(l)return gn.invalid(l);let c=n.offset(o);[i,a]=uM(t,c,n)}return new gn({ts:i,zone:n,loc:r,o:a})}function ewe(t,e,n){let r=Ot(n.round)?!0:n.round,o=(a,l)=>(a=hC(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 twe(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 ji("invalid input"):null)||(n.isValid?null:aM(n));this.ts=Ot(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=sM(this.ts,l),r=Number.isNaN(o.year)?new ji("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]=twe(arguments),[r,o,i,a,l,c,d]=n;return Q3e({year:r,month:o,day:i,hour:a,minute:l,second:c,millisecond:d},e)}static utc(){let[e,n]=twe(arguments),[r,o,i,a,l,c,d]=n;return e.zone=Hi.utcInstance,Q3e({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=_c(n.zone,Vn.defaultZone);return o.isValid?new t({ts:r,zone:o,loc:Jn.fromObject(n)}):t.invalid(aM(o))}static fromMillis(e,n={}){if(Bd(e))return e<-Z3e||e>Z3e?t.invalid("Timestamp out of range"):new t({ts:e,zone:_c(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(Bd(e))return new t({ts:e*1e3,zone:_c(n.zone,Vn.defaultZone),loc:Jn.fromObject(n)});throw new Ko("fromSeconds requires a numerical input")}static fromObject(e,n={}){e=e||{};let r=_c(n.zone,Vn.defaultZone);if(!r.isValid)return t.invalid(aM(r));let o=Jn.fromObject(n),i=yC(e,X3e),{minDaysInFirstWeek:a,startOfWeek:l}=tq(i,o),c=Vn.now(),d=Ot(n.specificOffset)?r.offset(c):n.specificOffset,f=!Ot(i.ordinal),m=!Ot(i.year),h=!Ot(i.month)||!Ot(i.day),g=m||h,y=i.weekYear||i.weekNumber;if((g||f)&&y)throw new wc("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(h&&f)throw new wc("Can't mix ordinal dates with month/day");let b=y||i.weekday&&!g,C,S,w=sM(c,d);b?(C=xit,S=yit,w=CT(w,a,l)):f?(C=Cit,S=bit,w=oM(w)):(C=owe,S=rwe);let E=!1;for(let k of C){let F=i[k];Ot(F)?E?i[k]=S[k]:i[k]=w[k]:E=!0}let _=b?f3e(i,a,l):f?p3e(i):nq(i),N=_||rq(i);if(N)return t.invalid(N);let $=b?QZ(i,a,l):f?eq(i):i,[O,M]=uM($,d,r),A=new t({ts:O,zone:r,o:M,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]=L3e(e);return $T(r,o,n,"ISO 8601",e)}static fromRFC2822(e,n={}){let[r,o]=M3e(e);return $T(r,o,n,"RFC 2822",e)}static fromHTTP(e,n={}){let[r,o]=O3e(e);return $T(r,o,n,"HTTP",n)}static fromFormat(e,n,r={}){if(Ot(e)||Ot(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]=Y3e(a,e,n);return f?t.invalid(f):$T(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]=k3e(e);return $T(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 ji?e:new ji(e,n);if(Vn.throwOnInvalid)throw new WL(r);return new t({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,n={}){let r=gq(e,Jn.fromObject(n));return r?r.map(o=>o?o.val:null).join(""):null}static expandFormat(e,n={}){return mq(Ui.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?yq(this).weekYear:NaN}get weekNumber(){return this.isValid?yq(this).weekNumber:NaN}get weekday(){return this.isValid?yq(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?bq(this).weekday:NaN}get localWeekNumber(){return this.isValid?bq(this).weekNumber:NaN}get localWeekYear(){return this.isValid?bq(this).weekYear:NaN}get ordinal(){return this.isValid?oM(this.c).ordinal:NaN}get monthShort(){return this.isValid?Cp.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Cp.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Cp.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Cp.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=mC(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=sM(c,a),m=sM(d,l);return f.hour===m.hour&&f.minute===m.minute&&f.second===m.second&&f.millisecond===m.millisecond?[g0(this,{ts:c}),g0(this,{ts:d})]:[this]}get isInLeapYear(){return m0(this.year)}get daysInMonth(){return vC(this.year,this.month)}get daysInYear(){return this.isValid?Kh(this.year):NaN}get weeksInWeekYear(){return this.isValid?p0(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?p0(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:n,numberingSystem:r,calendar:o}=Ui.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=_c(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]=uM(a,i,e)}return g0(this,{ts:o,zone:e})}else return t.invalid(aM(e))}reconfigure({locale:e,numberingSystem:n,outputCalendar:r}={}){let o=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:r});return g0(this,{loc:o})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let n=yC(e,X3e),{minDaysInFirstWeek:r,startOfWeek:o}=tq(n,this.loc),i=!Ot(n.weekYear)||!Ot(n.weekNumber)||!Ot(n.weekday),a=!Ot(n.ordinal),l=!Ot(n.year),c=!Ot(n.month)||!Ot(n.day),d=l||c,f=n.weekYear||n.weekNumber;if((d||a)&&f)throw new wc("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new wc("Can't mix ordinal dates with month/day");let m;i?m=QZ({...CT(this.c,r,o),...n},r,o):Ot(n.ordinal)?(m={...this.toObject(),...n},Ot(n.day)&&(m.day=Math.min(vC(m.year,m.month),m.day))):m=eq({...oM(this.c),...n});let[h,g]=uM(m,this.o,this.zone);return g0(this,{ts:h,o:g})}plus(e){if(!this.isValid)return this;let n=go.fromDurationLike(e);return g0(this,q3e(this,n))}minus(e){if(!this.isValid)return this;let n=go.fromDurationLike(e).negate();return g0(this,q3e(this,n))}startOf(e,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;let r={},o=go.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?Ui.create(this.loc.redefaultToEN(n)).formatDateTimeFromString(this,e):vq}toLocaleString(e=Hh,n={}){return this.isValid?Ui.create(this.loc.clone(n),e).formatDateTime(this):vq}toLocaleParts(e={}){return this.isValid?Ui.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=xq(this,a);return l+="T",l+=J3e(this,a,n,r,o,i),l}toISODate({format:e="extended"}={}){return this.isValid?xq(this,e==="extended"):null}toISOWeekDate(){return lM(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":"")+J3e(this,a==="extended",n,e,r,i):null}toRFC2822(){return lM(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return lM(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?xq(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")),lM(this,o,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():vq}[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 go.invalid("created by diffing an invalid DateTime");let o={locale:this.locale,numberingSystem:this.numberingSystem,...r},i=g3e(n).map(go.normalizeUnit),a=e.valueOf()>this.valueOf(),l=a?this:e,c=a?e:this,d=V3e(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?xp.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),ewe(n,this.plus(r),{...e,numeric:"always",units:o,unit:i})}toRelativeCalendar(e={}){return this.isValid?ewe(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 oq(e,n=>n.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ko("max requires all arguments be DateTimes");return oq(e,n=>n.valueOf(),Math.max)}static fromFormatExplain(e,n,r={}){let{locale:o=null,numberingSystem:i=null}=r,a=Jn.fromOpts({locale:o,numberingSystem:i,defaultToEN:!0});return hq(a,e,n)}static fromStringExplain(e,n,r={}){return t.fromFormatExplain(e,n,r)}static get DATE_SHORT(){return Hh}static get DATE_MED(){return eT}static get DATE_MED_WITH_WEEKDAY(){return IZ}static get DATE_FULL(){return tT}static get DATE_HUGE(){return nT}static get TIME_SIMPLE(){return rT}static get TIME_WITH_SECONDS(){return oT}static get TIME_WITH_SHORT_OFFSET(){return iT}static get TIME_WITH_LONG_OFFSET(){return aT}static get TIME_24_SIMPLE(){return sT}static get TIME_24_WITH_SECONDS(){return lT}static get TIME_24_WITH_SHORT_OFFSET(){return uT}static get TIME_24_WITH_LONG_OFFSET(){return cT}static get DATETIME_SHORT(){return dT}static get DATETIME_SHORT_WITH_SECONDS(){return fT}static get DATETIME_MED(){return pT}static get DATETIME_MED_WITH_SECONDS(){return mT}static get DATETIME_MED_WITH_WEEKDAY(){return FZ}static get DATETIME_FULL(){return hT}static get DATETIME_FULL_WITH_SECONDS(){return gT}static get DATETIME_HUGE(){return vT}static get DATETIME_HUGE_WITH_SECONDS(){return yT}};function _C(t){if(gn.isDateTime(t))return t;if(t&&t.valueOf&&Bd(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 cM(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 iwe,CanvasClient as awe}from"@uniformdev/canvas";async function dM({instanceType:t,searchExpressionPrompt:e,username:n,locale:r,getEditUrl:o}){let i=new awe(pt),a=await KL({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?cM(m):void 0,orderBy:Array.isArray(f)?f:f?[f]:void 0,locale:r,skipPatternResolution:!0,state:iwe})).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 fM({id:t}){let n=await new awe(pt).getCompositionById({skipDataResolution:!0,withComponentIDs:!0,skipOverridesResolution:!0,skipPatternResolution:!1,compositionId:t,state:iwe});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}var Eit={id:wit.string()};function swe(t){t.tool("compositionList","Lists available Uniform compositions",vp.shape,async e=>await dM({...e,instanceType:"composition",getEditUrl:UL})),t.tool("compositionGet","Gets the full contents of a Uniform composition",Eit,async e=>await fM(e))}import{ContentClient as Tit}from"@uniformdev/canvas";import{z as cwe}from"zod";import{z as NT}from"zod";var lwe=NT.object({name:NT.string().describe('Title-cased display name of the component. Ex: "Hero"'),id:NT.string().describe("Public ID of the content type, the camelCase version of name, using only alphanumeric characters"),description:NT.string().describe("Describe the purpose of the content type in 1-2 sentences."),fields:NT.array(U_).describe("The fields of the content type. The key is the publicId of the field.").optional()});function uwe(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 pM(t){return`${pt.baseWebUrl}/dashboards/canvas/content-types/${t}`}var _it={action:cwe.enum(["create","update","delete"]).describe("The action to perform"),publicId:cwe.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),contentType:lwe.describe("Full content type definition to create. Omit for update or delete.").optional(),patches:H_.describe("JSON patch to apply to the existing component definition. Omit for create or delete.").optional()};function dwe(t){t.tool("contentTypeAction","Creates, updates, or deletes a Uniform Content Type definition",_it,async({publicId:e,action:n,contentType:r,patches:o})=>{let i=new Tit(pt),a=!1;if(n==="create"){if(!r)throw new Error("Content type definition is required for create");let l=uwe(r);l.fields&&(a=Sy(l.fields),wy(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=V_(c,o);if(f.fields){a=Sy(f.fields);let m=f.fields?.filter(h=>h.type==="richText").map(h=>h.id).filter(h=>!d?.includes(h));wy(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:pM(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 fwe}from"@uniformdev/canvas";import{z as Dit}from"zod";var $it={id:Dit.string()};function pwe(t){t.tool("contentTypeList","Lists all Uniform Content Type definitions",async()=>{let r=(await new fwe(pt).getContentTypes()).contentTypes.map(o=>({id:o.id,name:o.name,description:o.description,editUrl:pM(o.id)}));return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("contentTypeGet","Gets a Uniform Content Type definition details (fields, etc.)",$it,async({id:e})=>{let o=(await new fwe(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 mwe(t){t.tool("createUuid","Creates a new random UUID",async()=>({content:[{type:"text",text:crypto.randomUUID()}]}))}import{z as Sq}from"zod";import{CANVAS_DRAFT_STATE as Cq,ContentClient as Nit,convertEntryToPutEntry as Lit,getEffectivePropertyValue as Mit}from"@uniformdev/canvas";async function Oit(t,e,n){let o=(await e.fetchDefinitions())[t.entry.type];if(!o)throw new Error("insanity");let i=E4e(o),a;i.entryName&&(a=t.entry._overrides?.[t.entry._id].parameters?.[i.entryName]??t.entry.fields?.[i.entryName]);let l=Mit({conditionIndex:-1,locale:void 0,greedyLocaleMatching:!0,property:a}),c=l4e({value:l,isNew:n,contentType:i});t.entry._name=c}async function mM({action:t,id:e,instructions:n,isPattern:r,patternId:o,getEditUrl:i}){let a=new Nit(pt),l,c,d=t==="update"?e:void 0,f={success:!0,actionsTaken:[]};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:Cq,entry:{type:n.type,_id:e,fields:{},_pattern:o}}),d=e):l=new Vh({_id:e,_name:"New Entry",type:n.type,_overridability:{hideLockedParameters:!0}})}if(d){if(c=(await a.getEntries({entryIDs:[e],pattern:r,state:Cq,skipDataResolution:!0,skipPatternResolution:!1,withComponentIDs:!0,skipOverridesResolution:!0})).entries[0],!c)throw new Error("Entry not found");let m=FL(c);l=new Vh(m.composition)}if(t==="delete"&&await a.deleteEntry({entryId:e}),l){await HL(n?.localeUpdates?.enableLocales);let m=Y4e();f=await LL({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=Lit(T4e(h,c??{projectId:pt.projectId,pattern:r},g,Cq,c?.releaseId,c?.editionId));r||await Oit(y,m,t==="create"),await a.upsertEntry(y)}return{content:[{type:"text",text:JSON.stringify({...f,editUrl:i(e)},null,2)}]}}function hM(t){return`${pt.baseWebUrl}/dashboards/canvas/entries/${t}`}var Rit={action:Sq.enum(["create","update","delete"]).describe("The action to perform"),id:Sq.string().uuid().describe("UUID of the entry to create, update, or delete"),patternId:Sq.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:Kte.describe("Modification instructions for the entry. Omit for delete.").optional()};function hwe(t){t.tool("entryAction","Creates, updates, or deletes a Uniform Entry",Rit,async e=>await mM({...e,isPattern:!1,getEditUrl:hM,patternId:e.patternId}))}import{z as Ait}from"zod";import{CANVAS_DRAFT_STATE as gwe,ContentClient as vwe}from"@uniformdev/canvas";async function gM({isPattern:t,searchExpressionPrompt:e,username:n,locale:r,getEditUrl:o}){let i=new vwe(pt),a=await KL({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:gwe,search:d,filters:m?cM(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 vM({id:t,isPattern:e}){let r=await new vwe(pt).getEntries({skipDataResolution:!0,withComponentIDs:!0,skipOverridesResolution:!0,skipPatternResolution:!1,pattern:e,entryIDs:[t],state:gwe});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 kit={id:Ait.string()};function ywe(t){t.tool("entryList","Lists available Uniform entries",vp.shape,async e=>await gM({...e,isPattern:!1,getEditUrl:hM})),t.tool("entryGet","Gets the full contents of a Uniform entry",kit,async e=>await vM({...e,isPattern:!1}))}import{z as bwe}from"zod";function yM(t){return`${pt.baseWebUrl}/dashboards/canvas/entry-patterns/${t}`}var Pit={action:bwe.enum(["create","update","delete"]).describe("The action to perform"),id:bwe.string().uuid().describe("UUID of the entry pattern to create, update, or delete"),instructions:Wte.describe("Modification instructions for the entry pattern. Omit for delete.").optional()};function xwe(t){t.tool("entryPatternAction","Creates, updates, or deletes a Uniform Entry Pattern",Pit,async e=>await mM({...e,isPattern:!0,getEditUrl:yM,patternId:void 0}))}import{z as Iit}from"zod";var Fit={id:Iit.string()};function Cwe(t){t.tool("entryPatternList","Lists available Uniform entry patterns",vp.shape,async e=>await gM({...e,isPattern:!0,getEditUrl:yM})),t.tool("entryPatternGet","Gets the full contents of a Uniform entry pattern",Fit,async e=>await vM({...e,isPattern:!0}))}import{ProjectClient as Bit}from"@uniformdev/canvas";async function zit(){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 Swe(t){t.tool("getUniformEnvironment","Get the connected Uniform Project name, edit URL, and current user",{},async()=>{try{let e=new Bit(pt),[n,r]=await Promise.all([e.get({projectId:pt.projectId}),zit()]),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 Vit}from"@uniformdev/canvas";function wwe(t){t.tool("localeList","Lists all registered Uniform locales",async()=>{let n=await new Vit(pt).get();return{content:[{type:"text",text:JSON.stringify({locales:n.results,editUrl:`${pt.baseWebUrl}/settings/localization`},null,2)}]}})}import{z as Ewe}from"zod";function bM(t){return`${pt.baseWebUrl}/dashboards/canvas/edit/${t}`}var Hit={action:Ewe.enum(["create","update","delete"]).describe("The action to perform"),id:Ewe.string().uuid().describe("UUID of the pattern instance to create, update, or delete"),instructions:jte.describe("Modification instructions for the pattern. Omit for delete.").optional()};function Twe(t){t.tool("patternAction","Creates, updates, or deletes a Uniform Component Pattern or Composition Pattern",Hit,async e=>await jL({...e,isPattern:!0,getEditUrl:bM,patternId:void 0}))}import{z as _we}from"zod";var jit={instanceType:_we.enum(["componentPattern","compositionPattern"]),...vp.shape},Uit={id:_we.string()};function Dwe(t){t.tool("patternList","Lists available Uniform component patterns or composition patterns",jit,async e=>await dM({...e,getEditUrl:bM})),t.tool("patternGet","Gets the full contents of a Uniform component pattern or composition pattern",Uit,async e=>await fM(e))}var Va=new Kit({name:"Uniform MCP",version:"1.0.0"});zte(Va);Hte(Va);dwe(Va);pwe(Va);hwe(Va);ywe(Va);Cwe(Va);xwe(Va);Dwe(Va);Twe(Va);Z4e(Va);swe(Va);mwe(Va);Swe(Va);wwe(Va);var Git=new Wit;await Va.connect(Git);process.stderr.write(`Uniform MCP server started
5181
5181
  `);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/uniform-mcp",
3
- "version": "20.26.3-alpha.7+2e8db29af3",
3
+ "version": "20.27.1",
4
4
  "description": "Uniform MCP Server",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "bin": {
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@modelcontextprotocol/sdk": "^1.12.0",
25
- "@uniformdev/canvas": "20.26.3-alpha.7+2e8db29af3",
25
+ "@uniformdev/canvas": "20.27.1",
26
26
  "fast-json-patch": "^3.1.1",
27
27
  "immer": "10.1.1",
28
28
  "zod": "3.23.8"
@@ -34,11 +34,11 @@
34
34
  "access": "public"
35
35
  },
36
36
  "devDependencies": {
37
- "@uniformdev/design-system": "20.26.3-alpha.7+2e8db29af3",
38
- "@uniformdev/files": "20.26.3-alpha.7+2e8db29af3",
39
- "@uniformdev/mesh-edgehancer-sdk": "20.26.3-alpha.7+2e8db29af3",
40
- "@uniformdev/richtext": "20.26.3-alpha.7+2e8db29af3",
37
+ "@uniformdev/design-system": "20.27.1",
38
+ "@uniformdev/files": "20.27.1",
39
+ "@uniformdev/mesh-edgehancer-sdk": "20.27.1",
40
+ "@uniformdev/richtext": "20.27.1",
41
41
  "vitest": "^3.1.4"
42
42
  },
43
- "gitHead": "2e8db29af31430de36e78f47cffc374433450419"
43
+ "gitHead": "b9f3e377c61ae30c4bcd3db5636faf07631de2e1"
44
44
  }