UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2,827 lines 129 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainSidebar-DOYbjNAp.js","assets/_plugin-vue_export-helper-BwBpWJRZ.js","assets/src-BW7zuOU1.js","assets/preload-helper-CR0ecmWK.js","assets/icon-MZ_3fB_h.js","assets/vue.runtime.esm-bundler-tP5dCd7J.js","assets/chunk-6z4oVpB-.js","assets/truncate-Dc5upPom.js","assets/_MapCache-B159LOu5.js","assets/CalendarDate-DxkU3CHY.js","assets/sanitize-html-CgpOSgtK.js","assets/empty-4-N75rxI.js","assets/path-browserify-B5h_dP_u.js","assets/en-b3uD8cvU.js","assets/src-DZdTuyXH.css","assets/nodeCreator.store-DfjyHcRR.js","assets/constants-CX1ozgFz.js","assets/merge-BArJwbQo.js","assets/useTelemetry-C797TaYa.js","assets/_baseOrderBy-DL6Sy5xK.js","assets/dateformat-CMLc6OKJ.js","assets/useDebounce-RgPaX171.js","assets/useExternalHooks-CYMS6JpD.js","assets/nodeIcon-CdzjV7EE.js","assets/templates.store-CSx5YxpE.js","assets/cloudPlan.store-nppjm48S.js","assets/useToast-ZaUhbG9w.js","assets/useStyles-DhM0cpS7.js","assets/sortByProperty-DeupcrDk.js","assets/versions.store-BYh7N-zv.js","assets/MainSidebarUserArea-BZJJYvAQ.js","assets/MainSidebarUserArea-yJKeCkOz.css","assets/useBugReporting-B_5-Tujg.js","assets/usePageRedirectionHelper-DY-ECTME.js","assets/useKeybindings-CFy7jL6I.js","assets/personalizedTemplatesV3.store-CrBjsVbu.js","assets/constants-D2fYduVh.js","assets/sourceControl.eventBus-CqqWQrr5.js","assets/MainSidebar-Cxu_1AUX.css","assets/DataTableView-CYbmhdXf.js","assets/useMessage-C1bozAQq.js","assets/overlay-CftFqN-S.js","assets/orderBy-Fs5qTlOh.js","assets/TimeAgo-B1zSnI1Z.js","assets/smartDecimal-Bnk1P3MO.js","assets/ProjectIcon-C-YEsNSL.js","assets/ProjectIcon-DT95ZcDW.css","assets/EnterpriseEdition.ee-_Do-JHQ3.js","assets/ResourceFiltersDropdown-DGkbEdGa.js","assets/ProjectSharing-DT7-6UH6.js","assets/ProjectSharing-5AaqsE7p.css","assets/ResourceFiltersDropdown-BACE5ZTX.css","assets/PageViewLayout-DM7e7tnO.js","assets/PageViewLayout-Cn6FD0Wt.css","assets/ResourcesListLayout-85XVcB-O.js","assets/readyToRun.store-jtzPXHZP.js","assets/folders.store-zKqujIOj.js","assets/ResourcesListLayout-B5k0oRW7.css","assets/ProjectHeader-CUMujzbL.js","assets/ProjectHeader-DMoL829v.css","assets/DataTableActions-BlHDLmnh.js","assets/dataTable.store-DbXbbBi8.js","assets/InsightsSummary-DXhBhOa6.js","assets/insights.constants-BoP_B6zb.js","assets/insights.utils-DKMDXq77.js","assets/InsightsSummary-CnaRV949.css","assets/insights.store-4r_2y-MI.js","assets/DataTableView-ByKnlVtU.css","assets/DataTableDetailsView-DzmbL9W0.js","assets/date-picker-DHibgWOB.js","assets/SelectedItemsInfo-C9f8-C1F.js","assets/SelectedItemsInfo-DDbNnY7M.css","assets/useClipboard-B4OWL4sL.js","assets/ProjectBreadcrumb-2dL4CZDD.js","assets/ProjectBreadcrumb-CAEDvzuN.css","assets/DataTableDetailsView-BmITjGF6.css","assets/AddDataTableModal-CpXIaEAK.js","assets/dialog-DlumiPST.js","assets/radio-BiGj7Bdg.js","assets/_initCloneObject-CsLP82Or.js","assets/Modal-DgSM6to-.js","assets/Modal-DNkRJkUt.css","assets/AddDataTableModal-CZuODwEx.css","assets/InsightsDashboard-CV0kd5hv.js","assets/InsightsDashboard-CttFeZVb.css","assets/SettingsMCPView-jo9EZF6Y.js","assets/useCanvasOperations-B_GKebCJ.js","assets/usePinnedData-BPdJqXOY.js","assets/focusPanel.store-Dys3muoU.js","assets/executions.store-Cu3L65gQ.js","assets/retry-CalJieID.js","assets/banners.store-Bucfp6Le.js","assets/banners-UK5wWFEI.css","assets/sso.store-B_c2j1dV.js","assets/npsSurvey.store-BuKohzKX.js","assets/roles.store-BDtQtMoj.js","assets/NodeIcon-DywH900v.js","assets/NodeIcon-eaW3atZy.css","assets/fileUtils-BIVczUdz.js","assets/chat.store-VUDdXt4K.js","assets/useMcp-Bf6ZiLU4.js","assets/mcp.store-0cRlt4hy.js","assets/mcp.constants-BEZmLv14.js","assets/CredentialIcon-DJSoDYWS.js","assets/CredentialIcon-bZrcXcyJ.css","assets/useRecentResources-kKbG_n-r.js","assets/SettingsMCPView-BL9rkSWq.css","assets/ChatSidebar-DBf-LmE8.js","assets/ModalDrawer-2VV07hhq.js","assets/ModalDrawer-B-12esvU.css","assets/ChatAgentAvatar-C3dUgLPz.js","assets/ChatAgentAvatar-BQdWaF20.css","assets/useChatHubSidebarState-XHgTWB-4.js","assets/ChatSidebar-plErV6K1.css","assets/ChatView-Cg2NAUCj.js","assets/VueMarkdown-DxrTzpPH.js","assets/ToolsSelector-B54A5Koo.js","assets/ToolsSelector-Dl-rjIne.css","assets/ChatFile-BbL40HHy.js","assets/ChatFile-DMzpEB1j.css","assets/ChatSidebarOpener-DTZUxSbg.js","assets/ChatSidebarOpener-CxM-3LAt.css","assets/ChatView-pVwhJG-6.css","assets/ChatAgentsView-DENbuNZr.js","assets/ChatAgentsView-bU9DF47q.css","assets/ToolsSelectorModal-BODQbEZi.js","assets/ToolsSelectorModal-B2z9ibQ0.css","assets/AgentEditorModal-CwTvZ0MT.js","assets/AgentEditorModal-Dupcj7sL.css","assets/CredentialSelectorModal-Ca1p8H5b.js","assets/CredentialPicker-BurvsUA1.js","assets/CredentialPicker-CUNAJHH6.css","assets/CredentialSelectorModal-CKQNdS8g.css","assets/ModelByIdSelectorModal-B-kXhM9Z.js","assets/ModelByIdSelectorModal-CF6s_557.css","assets/ProviderSettingsModal-CobMGlJf.js","assets/TagsDropdown-DTjAxVZ8.js","assets/TagsDropdown-Do1UB2LF.css","assets/ProviderSettingsModal-CZ44KI4I.css","assets/WorkflowsView-j5_QVP8k.js","assets/usage.store-Bq6YYURO.js","assets/Draggable-sZwW_gr6.js","assets/Draggable-DfBtatxg.css","assets/WorkflowActivator-ATbuRvSH.js","assets/useWorkflowActivate-Bjltj_L5.js","assets/useWorkflowSaving-D0h-y5mZ.js","assets/WorkflowActivator-DSgMORP6.css","assets/aiTemplatesStarterCollection.store-BO0oOiKJ.js","assets/readyToRunWorkflows.store-DDLQfSjH.js","assets/TemplateCard-DVLVZ99y.js","assets/TemplateCard-DxDBlS6p.css","assets/ProjectCardBadge-D5kiyGzf.js","assets/ProjectCardBadge-XPHWNQHG.css","assets/EmptySharedSectionActionBox-BMxxqTF4.js","assets/WorkflowTagsDropdown-BoaThxuZ.js","assets/WorkflowsView-CLgqCjRp.css","assets/CredentialsView-BRa706yR.js","assets/pickBy-x8MmAeZc.js","assets/externalSecrets.ee.store-BwtOvUyU.js","assets/CredentialsView-BDOl2A0w.css","assets/ProjectSettings-ePpvJlxj.js","assets/Alert-B0QporwB.js","assets/Alert-BA2uuWjw.css","assets/userRoleProvisioning.store-CG5CAkga.js","assets/ProjectSettings-vir6puPd.css","assets/ExecutionsView-ShPxLAra.js","assets/AnimatedSpinner-BKvs0-tV.js","assets/AnimatedSpinner-CoP6Lyme.css","assets/dateFormatter-BKQyEZlN.js","assets/ExecutionsTime-HVPlGvJI.js","assets/AnnotationTagsDropdown.ee-BrFsvdAc.js","assets/ExecutionsTime-BpajgDjV.css","assets/useExecutionHelpers-BqOSbeyu.js","assets/ExecutionsView-DP5OXlS4.css","assets/ProjectVariables-B72uYW4F.js","assets/ProjectVariables-CVX3Lygi.css","assets/ChangePasswordView-BD-064CV.js","assets/AuthView-DDyHoJhx.js","assets/AuthView-Dg9ZkCud.css","assets/ErrorView-Bs8I2RAS.js","assets/ErrorView-D2OMvGTk.css","assets/EntityNotFound-ZTIfWY7r.js","assets/EntityNotFound-D6gi5ngN.css","assets/EntityUnAuthorised-GVQGWnp6.js","assets/EntityUnAuthorised-D3XTbU6Y.css","assets/OAuthConsentView-Dea7moR6.js","assets/OAuthConsentView-CXZbBKS5.css","assets/ForgotMyPasswordView-Nt8nYf2l.js","assets/MainHeader-BuKk_R6q.js","assets/useRunWorkflow-B0MrxSlI.js","assets/FileSaver.min-BZ3jw69B.js","assets/usePushConnection-D94lEH4R.js","assets/assistant.store-CES0bOwj.js","assets/schemaPreview.store-Ck-1EjtJ.js","assets/KeyboardShortcutTooltip-Bbdv20lT.js","assets/KeyboardShortcutTooltip-pRLqnHdh.css","assets/PushConnectionTracker-CLhax07T.js","assets/SaveButton-sh797fsH.js","assets/SaveButton-Dc01Y2MA.css","assets/useBeforeUnload-BoGCO-VB.js","assets/useWorkflowsCache-9n4bGfxL.js","assets/MainHeader-BgS_7Hqu.css","assets/LogsPanel-D8JcKeBp.js","assets/isEmpty-DE57Hvb_.js","assets/uniqBy-BAsCSiRe.js","assets/NDVEmptyState-D6DVufbQ.js","assets/NDVEmptyState-Bho0_Ev8.css","assets/vue-json-pretty-DsYkKELy.js","assets/chatPanel.store-DxVV7Zn2.js","assets/RunDataHtml-QefKJgzk.js","assets/RunDataHtml-Bu3RZcuV.css","assets/isEmpty-CeINuAYx.css","assets/core-DNyEixOf.js","assets/core-B834MECE.js","assets/xml-BP5i5VLm.js","assets/LogsPanel-JcMNvg2r.js","assets/useLogsTreeExpand-Dm3JA5_m.js","assets/useLogsTreeExpand-nZMKe2ps.css","assets/LogsPanel-xSodDRmo.css","assets/DemoFooter-B17ZFzvK.js","assets/NodeView-ChBMYGJn.js","assets/ParameterInputList-Bsq4jEFq.js","assets/exports-0lA49Fnw.js","assets/vue-CLRzcfGh.js","assets/VirtualSchema-CXi2cQ39.js","assets/useTelemetryContext-CHWzGKT9.js","assets/useTelemetryContext-BpnKRIT7.css","assets/nodeTransforms-0T6NES_R.js","assets/TextWithHighlights-bwDYVgOs.js","assets/TextWithHighlights-BgbTzzK2.css","assets/VirtualSchema-Bc7tO5Io.css","assets/ParameterInputList-D15tY-ER.css","assets/useCanvasMapping-CGEC1VDO.js","assets/NodeSettings-DUdVI_8H.js","assets/col-BYqH0g4Y.js","assets/CommunityNodeUpdateInfo-DRQanjaS.js","assets/semver-CSrR6yZm.js","assets/CommunityNodeUpdateInfo-kPDiipF5.css","assets/useActions-Bc_58LkU.js","assets/NodeSettings-BZYlEBNh.css","assets/useCanvasMapping-CALjZe_x.css","assets/useExecutionData-eh3o7g7B.js","assets/useExecutionDebugging-D8S6IXvb.js","assets/NodeView-CnbgHMAv.css","assets/WorkflowExecutionsView-BS3q9sGB.js","assets/useIntersectionObserver-DX3d3xXy.js","assets/WorkflowExecutionsInfoAccordion-ndGGbZZU.js","assets/WorkflowExecutionsInfoAccordion-CEOvJ-SX.css","assets/WorkflowExecutionsView-J4lWGYW8.css","assets/WorkflowExecutionsLandingPage-DXkkpO0F.js","assets/WorkflowExecutionsLandingPage-DMldlKod.css","assets/WorkflowExecutionsPreview-xm4L-xBQ.js","assets/WorkflowPreview-CT8D6JjJ.js","assets/WorkflowPreview-CYpzxJej.css","assets/WorkflowExecutionsPreview-BkXT82z5.css","assets/SettingsView-CS3Pyqpr.js","assets/SettingsView-6sirGv9l.css","assets/SettingsLdapView--aVLvL8q.js","assets/table-3IQJse9O.js","assets/SettingsLdapView-BuamZyhu.css","assets/SettingsPersonalView-Bhkvx-3E.js","assets/auth.eventBus-fuf0VCBp.js","assets/SettingsPersonalView-DEpYU3TT.css","assets/SettingsUsersView-BqphI-fZ.js","assets/SettingsUsersView-CfJcVjkl.css","assets/SettingsCommunityNodesView-1maD2w7I.js","assets/SettingsCommunityNodesView-m7kLUpJK.css","assets/SettingsApiView-DNG_upYF.js","assets/apiKeys.store-OqWehu-f.js","assets/SettingsApiView-Dtl_N9mK.css","assets/SettingsLogStreamingView-BzNU4UEM.js","assets/logStreaming.store-BYIB7tU5.js","assets/SettingsLogStreamingView-xo-rTSA0.css","assets/SetupView-B7Hd7eRc.js","assets/SigninView-DDSimbYv.js","assets/SigninView-BQgsTN8o.css","assets/SignupView-CzTI_rlY.js","assets/TemplatesCollectionView-DyA6x7e7.js","assets/TemplatesView-BNSs3pSH.js","assets/TemplatesView-iSPzXjQB.css","assets/TemplateList-CITOLDPz.js","assets/TemplateList-CNUtq0N7.css","assets/TemplateDetails-1UgzUcnT.js","assets/TemplateDetails-DfyKyMyy.css","assets/templateActions-B2TfmgoC.js","assets/templateTransforms-CmHAnc2d.js","assets/TemplatesCollectionView-klb8FT9y.css","assets/TemplatesWorkflowView-CkwIzCbg.js","assets/TemplatesWorkflowView-CBjRBbmw.css","assets/SetupWorkflowFromTemplateView-BNbX8eDP.js","assets/SetupTemplateFormStep-BKYxNyTe.js","assets/SetupTemplateFormStep-n3VY06cx.css","assets/SetupWorkflowFromTemplateView-CU2iGJTa.css","assets/TemplatesSearchView-AZGrUHxt.js","assets/TemplatesSearchView-BfT0LMil.css","assets/SettingsUsageAndPlan-BQh0-fFq.js","assets/SettingsUsageAndPlan-CX3b3V8W.css","assets/SettingsSso-GsGW161J.js","assets/CopyInput-B-PxgATn.js","assets/CopyInput-BiDmlr9B.css","assets/SettingsSso-DPkEVc10.css","assets/SignoutView-BISPgbyd.js","assets/SamlOnboarding-BFScr_jy.js","assets/SettingsSourceControl-BNEttc8G.js","assets/SettingsSourceControl-DEs9MNB6.css","assets/SettingsExternalSecrets-B_IARxBy.js","assets/ExternalSecretsProviderConnectionSwitch.ee-D520nYjH.js","assets/ExternalSecretsProviderConnectionSwitch-dpp96SMy.css","assets/SettingsExternalSecrets-CaiOf7cD.css","assets/WorkerView-1QHe-EwK.js","assets/chart-DnsWbmwc.js","assets/dist-BbucLhyg.js","assets/WorkerView-4m_NaoAx.css","assets/WorkflowHistory-DgyJDSpy.js","assets/WorkflowHistory-BmerBiKz.css","assets/WorkflowOnboardingView-BuzqMVa-.js","assets/EvaluationsView-Bcwkxj9k.js","assets/evaluation.constants-CUNvWc-a.js","assets/evaluation-CGxdCHrN.css","assets/EvaluationsView-CmcDUAS_.css","assets/TestRunDetailView-C-xyOndW.js","assets/TestRunDetailView-CVGty0j0.css","assets/EvaluationsRootView-B_SZ8izU.js","assets/EvaluationsRootView-D22182Fd.css","assets/PrebuiltAgentTemplatesView-Bn1Rv64d.js","assets/PrebuiltAgentTemplatesView-jF7HvWnL.css","assets/MigrationRules-Ql4Iwh3V.js","assets/SeverityTag-Dr-8La-G.js","assets/SeverityTag-C0hCvHeU.css","assets/MigrationRules-wMqorxjv.css","assets/MigrationRuleDetail-CcmCpTPN.js","assets/MigrationRuleDetail-4tgkxxhX.css","assets/ProjectRolesView-D_NHXAxE.js","assets/ProjectRolesView-CZqQ656d.css","assets/ProjectRoleView-DO5KycF7.js","assets/ProjectRoleView-Ds9qdhh9.css"])))=>i.map(i=>d[i]);
import { o as __toESM, t as __commonJSMin } from "./chunk-6z4oVpB-.js";
import { C as computed, Cn as toDisplayString, D as createElementBlock, E as createCommentVNode, Gt as unref, It as ref, L as h, M as createVNode, P as defineComponent, T as createBlock, Z as onMounted, bt as withCtx, et as openBlock, j as createTextVNode, ot as resolveComponent, vn as normalizeClass, w as createBaseVNode } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
import { _t as I18nT, gt as useI18n, pt as i18n } from "./_MapCache-B159LOu5.js";
import { Ct as N8nActionBox_default, Hn as N8nButton_default, Vn as N8nText_default, et as N8nActionToggle_default, mt as N8nTooltip_default, s as N8nDataTableServer_default, tt as N8nLoading_default, zn as N8nHeading_default } from "./src-BW7zuOU1.js";
import { t as __vitePreload } from "./preload-helper-CR0ecmWK.js";
import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
import { g as isNavigationFailure, h as createWebHistory, m as createRouter, p as RouterView } from "./truncate-Dc5upPom.js";
import { _ as require_syntax, a as require_call_bound, b as require_type, g as require_gopd, h as require_es_define_property, o as require_get_intrinsic, p as require_has_symbols, s as require_hasown, v as require_range, y as require_es_object_atoms } from "./empty-4-N75rxI.js";
import { $n as hasScope, Dn as useSourceControlStore, En as useProjectsStore, Fi as useUIStore, Ho as useSettingsStore, Ht as useCredentialsStore, Jn as isGuest, Li as register, Qn as shouldEnableMfa, Ro as v4_default, Ti as tryToParseNumber, Tn as useDocumentTitle, Xn as isDefaultUser, Yn as isEnterpriseFeatureEnabled, Zn as isAuthenticated, at as useNodeTypesStore, er as useRBACStore, i as usePostHog, nr as useUsersStore, t as useTelemetry, tr as hasRole } from "./useTelemetry-C797TaYa.js";
import { t as useToast } from "./useToast-ZaUhbG9w.js";
import { n as require_object_inspect } from "./sanitize-html-CgpOSgtK.js";
import { Ba as require_callBound$1, Do as getResourcePermissions, Dr as ADD_DATA_TABLE_MODAL_KEY, Fi as require_define_properties, Ha as require_has_property_descriptors, Ii as require_callBound, Io as VIEWS, Ir as DATA_TABLE_VIEW, Jr as PROJECT_DATA_TABLES, La as require_is_callable, Li as require_call_bind$1, Po as EDITABLE_CANVAS_VIEWS, Qr as PROVIDER_CREDENTIAL_TYPE_MAP, Ra as require_safe_regex_test$1, Ua as require_shams, Va as require_call_bind, dc as TEMPLATE_SETUP_EXPERIENCE, jr as DATA_TABLE_DETAILS, pc as EnterpriseEditionFeature, za as require_is_regex } from "./constants-CX1ozgFz.js";
import { a as MfaRequiredError, r as useRootStore } from "./_baseOrderBy-DL6Sy5xK.js";
import { t as useExternalHooks } from "./useExternalHooks-CYMS6JpD.js";
import { t as useNpsSurveyStore } from "./npsSurvey.store-BuKohzKX.js";
import { t as useCloudPlanStore } from "./cloudPlan.store-nppjm48S.js";
import { t as useTemplatesStore } from "./templates.store-CSx5YxpE.js";
import { _ as useCalloutHelpers } from "./nodeCreator.store-DfjyHcRR.js";
import { t as useVersionsStore } from "./versions.store-BYh7N-zv.js";
import { t as useBannersStore } from "./banners.store-Bucfp6Le.js";
import { t as useDataTableStore } from "./dataTable.store-DbXbbBi8.js";
import { t as CredentialIcon_default } from "./CredentialIcon-DJSoDYWS.js";
import { t as TimeAgo_default } from "./TimeAgo-B1zSnI1Z.js";
import { t as useRolesStore } from "./roles.store-BDtQtMoj.js";
import { n as useSSOStore } from "./sso.store-B_c2j1dV.js";
import { t as useInsightsStore } from "./insights.store-4r_2y-MI.js";
import { r as MCP_SETTINGS_VIEW } from "./mcp.constants-BEZmLv14.js";
import { a as CHAT_MODEL_BY_ID_SELECTOR_MODAL_KEY, d as TOOLS_SELECTOR_MODAL_KEY, f as providerDisplayNames, i as CHAT_CREDENTIAL_SELECTOR_MODAL_KEY, l as CHAT_VIEW, n as CHAT_AGENTS_VIEW, o as CHAT_PROVIDER_SETTINGS_MODAL_KEY, r as CHAT_CONVERSATION_VIEW, s as CHAT_SETTINGS_VIEW, t as AGENT_EDITOR_MODAL_KEY } from "./constants-D2fYduVh.js";
import { t as useChatStore } from "./chat.store-VUDdXt4K.js";
import { t as useRecentResources } from "./useRecentResources-kKbG_n-r.js";
const authenticatedMiddleware = async (to, _from, next, options) => {
	const url = new URL(window.location.href);
	url.searchParams.delete("redirect");
	const redirect = to.query.redirect ?? encodeURIComponent(`${url.pathname}${url.search}`);
	if (!isAuthenticated(options)) return next({
		name: VIEWS.SIGNIN,
		query: { redirect }
	});
	if (shouldEnableMfa()) {
		if (to.name !== VIEWS.PERSONAL_SETTINGS) return next({
			name: VIEWS.PERSONAL_SETTINGS,
			query: { redirect }
		});
		return;
	}
};
const enterpriseMiddleware = async (_to, _from, next, options) => {
	if (!isEnterpriseFeatureEnabled(options)) return next({ name: VIEWS.HOMEPAGE });
};
const guestMiddleware = async (to, _from, next) => {
	if (!isGuest()) {
		const redirect = to.query.redirect ?? "";
		if (redirect.startsWith("/")) return next(redirect);
		try {
			if (new URL(redirect).origin === window.location.origin) return next(redirect);
		} catch {}
		return next({ name: VIEWS.HOMEPAGE });
	}
};
function inferProjectIdFromRoute(to) {
	const routeParts = to.path.split("/");
	const projectsIndex = routeParts.indexOf("projects");
	return routeParts[projectsIndex !== -1 ? projectsIndex + 1 : -1];
}
function inferResourceTypeFromRoute(to) {
	const routeParts = to.path.split("/");
	const routeMap = {
		workflow: "workflows",
		credential: "credentials",
		user: "users",
		variable: "variables",
		sourceControl: "source-control",
		externalSecret: "external-secrets"
	};
	const isResource = (key) => routeParts.includes(routeMap[key]);
	for (const resource of Object.keys(routeMap)) if (isResource(resource)) return resource;
}
function inferResourceIdFromRoute(to) {
	return to.params.id ?? to.params.name;
}
const rbacMiddleware = async (to, _from, next, { scope, options }) => {
	const projectId = inferProjectIdFromRoute(to);
	const resourceType = inferResourceTypeFromRoute(to);
	if (!hasScope({
		scope,
		projectId,
		resourceType,
		resourceId: resourceType ? inferResourceIdFromRoute(to) : void 0,
		options
	})) return next({ name: VIEWS.HOMEPAGE });
};
const roleMiddleware = async (_to, _from, next, checkRoles) => {
	if (!hasRole(checkRoles)) return next({ name: VIEWS.HOMEPAGE });
};
const customMiddleware = async (to, from, next, isValid) => {
	if (!isValid({
		to,
		from,
		next
	})) return next({ name: VIEWS.HOMEPAGE });
};
const defaultUserMiddleware = async (_to, _from, next) => {
	if (!isDefaultUser()) return next({ name: VIEWS.HOMEPAGE });
};
const middleware = {
	authenticated: authenticatedMiddleware,
	custom: customMiddleware,
	defaultUser: defaultUserMiddleware,
	enterprise: enterpriseMiddleware,
	guest: guestMiddleware,
	rbac: rbacMiddleware,
	role: roleMiddleware
};
var require_isNaN = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = Number.isNaN || function isNaN$2(a) {
		return a !== a;
	};
}));
var require_isFinite = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $isNaN$4 = require_isNaN();
	module.exports = function(x) {
		return (typeof x === "number" || typeof x === "bigint") && !$isNaN$4(x) && x !== Infinity && x !== -Infinity;
	};
}));
var require_isInteger = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var GetIntrinsic$6 = require_get_intrinsic();
	var $abs = GetIntrinsic$6("%Math.abs%");
	var $floor$1 = GetIntrinsic$6("%Math.floor%");
	var $isNaN$3 = require_isNaN();
	var $isFinite$1 = require_isFinite();
	module.exports = function isInteger$2(argument) {
		if (typeof argument !== "number" || $isNaN$3(argument) || !$isFinite$1(argument)) return false;
		var absValue = $abs(argument);
		return $floor$1(absValue) === absValue;
	};
}));
var require_has_proto = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var test = {
		__proto__: null,
		foo: {}
	};
	var $Object$1 = Object;
	module.exports = function hasProto$1() {
		return { __proto__: test }.foo === test.foo && !(test instanceof $Object$1);
	};
}));
var require_ArrayCreate = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var GetIntrinsic$5 = require_get_intrinsic();
	var $ArrayPrototype = GetIntrinsic$5("%Array.prototype%");
	var $RangeError = require_range();
	var $SyntaxError$2 = require_syntax();
	var $TypeError$30 = require_type();
	var isInteger$1 = require_isInteger();
	var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
	var hasProto = require_has_proto()();
	var $setProto = GetIntrinsic$5("%Object.setPrototypeOf%", true) || (hasProto ? function(O, proto) {
		O.__proto__ = proto;
		return O;
	} : null);
	module.exports = function ArrayCreate$1(length) {
		if (!isInteger$1(length) || length < 0) throw new $TypeError$30("Assertion failed: `length` must be an integer Number >= 0");
		if (length > MAX_ARRAY_LENGTH) throw new $RangeError("length is greater than (2**32 - 1)");
		var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype;
		var A = [];
		if (proto !== $ArrayPrototype) {
			if (!$setProto) throw new $SyntaxError$2("ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]");
			$setProto(A, proto);
		}
		if (length !== 0) A.length = length;
		return A;
	};
}));
var require_IsArray$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $Array = require_get_intrinsic()("%Array%");
	var toStr$2 = !$Array.isArray && require_callBound()("Object.prototype.toString");
	module.exports = $Array.isArray || function IsArray$1(argument) {
		return toStr$2(argument) === "[object Array]";
	};
}));
var require_IsArray = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = require_IsArray$1();
}));
var require_Call = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var GetIntrinsic$4 = require_get_intrinsic();
	var callBound$6 = require_callBound();
	var $TypeError$29 = require_type();
	var IsArray = require_IsArray();
	var $apply = GetIntrinsic$4("%Reflect.apply%", true) || callBound$6("Function.prototype.apply");
	module.exports = function Call$1(F, V) {
		var argumentsList = arguments.length > 2 ? arguments[2] : [];
		if (!IsArray(argumentsList)) throw new $TypeError$29("Assertion failed: optional `argumentsList`, if provided, must be a List");
		return $apply(F, V, argumentsList);
	};
}));
var require_StringToBigInt = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $BigInt = require_get_intrinsic()("%BigInt%", true);
	var $TypeError$28 = require_type();
	var $SyntaxError$1 = require_syntax();
	module.exports = function StringToBigInt$1(argument) {
		if (typeof argument !== "string") throw new $TypeError$28("`argument` must be a string");
		if (!$BigInt) throw new $SyntaxError$1("BigInts are not supported in this environment");
		try {
			return $BigInt(argument);
		} catch (e) {
			return;
		}
	};
}));
var require_isPrimitive$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function isPrimitive$4(value) {
		return value === null || typeof value !== "function" && typeof value !== "object";
	};
}));
var require_isPrimitive = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function isPrimitive$4(value) {
		return value === null || typeof value !== "function" && typeof value !== "object";
	};
}));
var require_is_date_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var callBound$5 = require_call_bound();
	var getDay = callBound$5("Date.prototype.getDay");
	var tryDateObject = function tryDateGetDayCall(value) {
		try {
			getDay(value);
			return true;
		} catch (e) {
			return false;
		}
	};
	var toStr$1 = callBound$5("Object.prototype.toString");
	var dateClass = "[object Date]";
	var hasToStringTag = require_shams()();
	module.exports = function isDateObject(value) {
		if (typeof value !== "object" || value === null) return false;
		return hasToStringTag ? tryDateObject(value) : toStr$1(value) === dateClass;
	};
}));
var require_is_symbol = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var callBound$4 = require_call_bound();
	var $toString = callBound$4("Object.prototype.toString");
	var hasSymbols$1 = require_has_symbols()();
	var safeRegexTest = require_safe_regex_test$1();
	if (hasSymbols$1) {
		var $symToStr = callBound$4("Symbol.prototype.toString");
		var isSymString = safeRegexTest(/^Symbol\(.*\)$/);
		var isSymbolObject = function isRealSymbolObject(value) {
			if (typeof value.valueOf() !== "symbol") return false;
			return isSymString($symToStr(value));
		};
		module.exports = function isSymbol$1(value) {
			if (typeof value === "symbol") return true;
			if (!value || typeof value !== "object" || $toString(value) !== "[object Symbol]") return false;
			try {
				return isSymbolObject(value);
			} catch (e) {
				return false;
			}
		};
	} else module.exports = function isSymbol$1(value) {
		return false;
	};
}));
var require_es2015 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var hasSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "symbol";
	var isPrimitive$3 = require_isPrimitive();
	var isCallable = require_is_callable();
	var isDate = require_is_date_object();
	var isSymbol = require_is_symbol();
	var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {
		if (typeof O === "undefined" || O === null) throw new TypeError("Cannot call method on " + O);
		if (typeof hint !== "string" || hint !== "number" && hint !== "string") throw new TypeError("hint must be \"string\" or \"number\"");
		var methodNames = hint === "string" ? ["toString", "valueOf"] : ["valueOf", "toString"];
		var method, result, i;
		for (i = 0; i < methodNames.length; ++i) {
			method = O[methodNames[i]];
			if (isCallable(method)) {
				result = method.call(O);
				if (isPrimitive$3(result)) return result;
			}
		}
		throw new TypeError("No default value");
	};
	var GetMethod = function GetMethod$1(O, P) {
		var func = O[P];
		if (func !== null && typeof func !== "undefined") {
			if (!isCallable(func)) throw new TypeError(func + " returned for property " + P + " of object " + O + " is not a function");
			return func;
		}
	};
	module.exports = function ToPrimitive$3(input) {
		if (isPrimitive$3(input)) return input;
		var hint = "default";
		if (arguments.length > 1) {
			if (arguments[1] === String) hint = "string";
			else if (arguments[1] === Number) hint = "number";
		}
		var exoticToPrim;
		if (hasSymbols) {
			if (Symbol.toPrimitive) exoticToPrim = GetMethod(input, Symbol.toPrimitive);
			else if (isSymbol(input)) exoticToPrim = Symbol.prototype.valueOf;
		}
		if (typeof exoticToPrim !== "undefined") {
			var result = exoticToPrim.call(input, hint);
			if (isPrimitive$3(result)) return result;
			throw new TypeError("unable to convert exotic object to primitive");
		}
		if (hint === "default" && (isDate(input) || isSymbol(input))) hint = "string";
		return ordinaryToPrimitive(input, hint === "default" ? "number" : hint);
	};
}));
var require_ToPrimitive = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var toPrimitive = require_es2015();
	module.exports = function ToPrimitive$3(input) {
		if (arguments.length > 1) return toPrimitive(input, arguments[1]);
		return toPrimitive(input);
	};
}));
var require_safe_regex_test = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var callBound$3 = require_callBound$1();
	var isRegex = require_is_regex();
	var $exec = callBound$3("RegExp.prototype.exec");
	var $TypeError$27 = require_type();
	module.exports = function regexTester$1(regex$1) {
		if (!isRegex(regex$1)) throw new $TypeError$27("`regex` must be a RegExp");
		return function test$1(s) {
			return $exec(regex$1, s) !== null;
		};
	};
}));
var require_RequireObjectCoercible = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$26 = require_type();
	module.exports = function RequireObjectCoercible$3(value) {
		if (value == null) throw new $TypeError$26(arguments.length > 0 && arguments[1] || "Cannot call method on " + value);
		return value;
	};
}));
var require_ToString$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $String$1 = require_get_intrinsic()("%String%");
	var $TypeError$25 = require_type();
	module.exports = function ToString$4(argument) {
		if (typeof argument === "symbol") throw new $TypeError$25("Cannot convert a Symbol value to a string");
		return $String$1(argument);
	};
}));
var require_implementation$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var RequireObjectCoercible$2 = require_RequireObjectCoercible();
	var ToString$3 = require_ToString$1();
	var $replace = require_callBound$1()("String.prototype.replace");
	var mvsIsWS = /^\s$/.test("᠎");
	var leftWhitespace = mvsIsWS ? /^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/ : /^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/;
	var rightWhitespace = mvsIsWS ? /[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/ : /[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/;
	module.exports = function trim() {
		return $replace($replace(ToString$3(RequireObjectCoercible$2(this)), leftWhitespace, ""), rightWhitespace, "");
	};
}));
var require_polyfill$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var implementation$5 = require_implementation$2();
	var zeroWidthSpace = "​";
	var mongolianVowelSeparator = "᠎";
	module.exports = function getPolyfill$6() {
		if (String.prototype.trim && zeroWidthSpace.trim() === zeroWidthSpace && mongolianVowelSeparator.trim() === mongolianVowelSeparator && ("_" + mongolianVowelSeparator).trim() === "_" + mongolianVowelSeparator && (mongolianVowelSeparator + "_").trim() === mongolianVowelSeparator + "_") return String.prototype.trim;
		return implementation$5;
	};
}));
var require_shim$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var define$4 = require_define_properties();
	var getPolyfill$5 = require_polyfill$2();
	module.exports = function shimStringTrim() {
		var polyfill$1 = getPolyfill$5();
		define$4(String.prototype, { trim: polyfill$1 }, { trim: function testTrim() {
			return String.prototype.trim !== polyfill$1;
		} });
		return polyfill$1;
	};
}));
var require_string_prototype = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var callBind$2 = require_call_bind();
	var define$3 = require_define_properties();
	var RequireObjectCoercible$1 = require_RequireObjectCoercible();
	var implementation$4 = require_implementation$2();
	var getPolyfill$4 = require_polyfill$2();
	var shim$2 = require_shim$2();
	var bound$2 = callBind$2(getPolyfill$4());
	var boundMethod = function trim(receiver) {
		RequireObjectCoercible$1(receiver);
		return bound$2(receiver);
	};
	define$3(boundMethod, {
		getPolyfill: getPolyfill$4,
		implementation: implementation$4,
		shim: shim$2
	});
	module.exports = boundMethod;
}));
var require_StringToNumber = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var GetIntrinsic$3 = require_get_intrinsic();
	var $Number$3 = GetIntrinsic$3("%Number%");
	var $RegExp = GetIntrinsic$3("%RegExp%");
	var $TypeError$24 = require_type();
	var $parseInteger = GetIntrinsic$3("%parseInt%");
	var callBound$2 = require_callBound();
	var regexTester = require_safe_regex_test();
	var $strSlice = callBound$2("String.prototype.slice");
	var isBinary = regexTester(/^0b[01]+$/i);
	var isOctal = regexTester(/^0o[0-7]+$/i);
	var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);
	var hasNonWS = regexTester(new $RegExp("[" + [
		"…",
		"​",
		"￾"
	].join("") + "]", "g"));
	var $trim = require_string_prototype();
	module.exports = function StringToNumber$1(argument) {
		if (typeof argument !== "string") throw new $TypeError$24("Assertion failed: `argument` is not a String");
		if (isBinary(argument)) return $Number$3($parseInteger($strSlice(argument, 2), 2));
		if (isOctal(argument)) return $Number$3($parseInteger($strSlice(argument, 2), 8));
		if (hasNonWS(argument) || isInvalidHexLiteral(argument)) return NaN;
		var trimmed = $trim(argument);
		if (trimmed !== argument) return StringToNumber$1(trimmed);
		return $Number$3(argument);
	};
}));
var require_ToNumber = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var GetIntrinsic$2 = require_get_intrinsic();
	var $TypeError$23 = require_type();
	var $Number$2 = GetIntrinsic$2("%Number%");
	var isPrimitive$2 = require_isPrimitive$1();
	var ToPrimitive$2 = require_ToPrimitive();
	var StringToNumber = require_StringToNumber();
	module.exports = function ToNumber$3(argument) {
		var value = isPrimitive$2(argument) ? argument : ToPrimitive$2(argument, $Number$2);
		if (typeof value === "symbol") throw new $TypeError$23("Cannot convert a Symbol value to a number");
		if (typeof value === "bigint") throw new $TypeError$23("Conversion from 'BigInt' to 'number' is not allowed.");
		if (typeof value === "string") return StringToNumber(value);
		return $Number$2(value);
	};
}));
var require_ToNumeric = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $Number$1 = require_get_intrinsic()("%Number%");
	var isPrimitive$1 = require_isPrimitive$1();
	var ToPrimitive$1 = require_ToPrimitive();
	var ToNumber$2 = require_ToNumber();
	module.exports = function ToNumeric$1(argument) {
		var primValue = isPrimitive$1(argument) ? argument : ToPrimitive$1(argument, $Number$1);
		if (typeof primValue === "bigint") return primValue;
		return ToNumber$2(primValue);
	};
}));
var require_lessThan$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$22 = require_type();
	module.exports = function BigIntLessThan$1(x, y) {
		if (typeof x !== "bigint" || typeof y !== "bigint") throw new $TypeError$22("Assertion failed: `x` and `y` arguments must be BigInts");
		return x < y;
	};
}));
var require_lessThan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$21 = require_type();
	var isNaN$1 = require_isNaN();
	module.exports = function NumberLessThan$1(x, y) {
		if (typeof x !== "number" || typeof y !== "number") throw new $TypeError$21("Assertion failed: `x` and `y` arguments must be Numbers");
		if (isNaN$1(x) || isNaN$1(y)) return;
		return x < y;
	};
}));
var require_IsLessThan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var GetIntrinsic$1 = require_get_intrinsic();
	var $Number = GetIntrinsic$1("%Number%");
	var $TypeError$20 = require_type();
	var min = GetIntrinsic$1("%Math.min%");
	var $isNaN$2 = require_isNaN();
	var $charCodeAt = require_callBound()("String.prototype.charCodeAt");
	var StringToBigInt = require_StringToBigInt();
	var ToNumeric = require_ToNumeric();
	var ToPrimitive = require_ToPrimitive();
	var BigIntLessThan = require_lessThan$1();
	var NumberLessThan = require_lessThan();
	module.exports = function IsLessThan$1(x, y, LeftFirst) {
		if (typeof LeftFirst !== "boolean") throw new $TypeError$20("Assertion failed: LeftFirst argument must be a Boolean");
		var px;
		var py;
		if (LeftFirst) {
			px = ToPrimitive(x, $Number);
			py = ToPrimitive(y, $Number);
		} else {
			py = ToPrimitive(y, $Number);
			px = ToPrimitive(x, $Number);
		}
		if (typeof px === "string" && typeof py === "string") {
			var lx = px.length;
			var ly = py.length;
			for (var i = 0; i < min(lx, ly); i++) {
				var cx = $charCodeAt(px, i);
				var cy = $charCodeAt(py, i);
				if (cx < cy) return true;
				if (cx > cy) return false;
			}
			return lx < ly;
		}
		var nx;
		var ny;
		if (typeof px === "bigint" && typeof py === "string") {
			ny = StringToBigInt(py);
			if (typeof ny === "undefined") return;
			return BigIntLessThan(px, ny);
		}
		if (typeof px === "string" && typeof py === "bigint") {
			nx = StringToBigInt(px);
			if (typeof nx === "undefined") return;
			return BigIntLessThan(nx, py);
		}
		nx = ToNumeric(px);
		ny = ToNumeric(py);
		if (typeof nx === typeof ny) return typeof nx === "number" ? NumberLessThan(nx, ny) : BigIntLessThan(nx, ny);
		if ($isNaN$2(nx) || $isNaN$2(ny)) return;
		if (nx === -Infinity || ny === Infinity) return true;
		if (nx === Infinity || ny === -Infinity) return false;
		return nx < ny;
	};
}));
var require_ToString = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $String = require_get_intrinsic()("%String%");
	var $TypeError$19 = require_type();
	module.exports = function ToString$4(argument) {
		if (typeof argument === "symbol") throw new $TypeError$19("Cannot convert a Symbol value to a string");
		return $String(argument);
	};
}));
var require_CompareArrayElements = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$18 = require_type();
	var Call = require_Call();
	var IsLessThan = require_IsLessThan();
	var ToNumber$1 = require_ToNumber();
	var ToString$2 = require_ToString();
	var isNaN = require_isNaN();
	module.exports = function CompareArrayElements$1(x, y, compareFn) {
		if (typeof compareFn !== "function" && typeof compareFn !== "undefined") throw new $TypeError$18("Assertion failed: `compareFn` must be a function or undefined");
		if (typeof x === "undefined" && typeof y === "undefined") return 0;
		if (typeof x === "undefined") return 1;
		if (typeof y === "undefined") return -1;
		if (typeof compareFn !== "undefined") {
			var v = ToNumber$1(Call(compareFn, void 0, [x, y]));
			if (isNaN(v)) return 0;
			return v;
		}
		var xString = ToString$2(x);
		var yString = ToString$2(y);
		if (IsLessThan(xString, yString, true)) return -1;
		if (IsLessThan(yString, xString, true)) return 1;
		return 0;
	};
}));
var require_IsPropertyKey = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function IsPropertyKey$6(argument) {
		return typeof argument === "string" || typeof argument === "symbol";
	};
}));
var require_property_descriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$17 = require_type();
	var hasOwn$5 = require_hasown();
	var allowed = {
		__proto__: null,
		"[[Configurable]]": true,
		"[[Enumerable]]": true,
		"[[Get]]": true,
		"[[Set]]": true,
		"[[Value]]": true,
		"[[Writable]]": true
	};
	module.exports = function isPropertyDescriptor$7(Desc) {
		if (!Desc || typeof Desc !== "object") return false;
		for (var key in Desc) if (hasOwn$5(Desc, key) && !allowed[key]) return false;
		var isData = hasOwn$5(Desc, "[[Value]]") || hasOwn$5(Desc, "[[Writable]]");
		var IsAccessor = hasOwn$5(Desc, "[[Get]]") || hasOwn$5(Desc, "[[Set]]");
		if (isData && IsAccessor) throw new $TypeError$17("Property Descriptors may not be both accessor and data descriptors");
		return true;
	};
}));
var require_IsAccessorDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$16 = require_type();
	var hasOwn$4 = require_hasown();
	var isPropertyDescriptor$6 = require_property_descriptor();
	module.exports = function IsAccessorDescriptor$3(Desc) {
		if (typeof Desc === "undefined") return false;
		if (!isPropertyDescriptor$6(Desc)) throw new $TypeError$16("Assertion failed: `Desc` must be a Property Descriptor");
		if (!hasOwn$4(Desc, "[[Get]]") && !hasOwn$4(Desc, "[[Set]]")) return false;
		return true;
	};
}));
var require_IsExtensible = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var GetIntrinsic = require_get_intrinsic();
	var $preventExtensions = GetIntrinsic("%Object.preventExtensions%", true);
	var $isExtensible = GetIntrinsic("%Object.isExtensible%", true);
	var isPrimitive = require_isPrimitive$1();
	module.exports = $preventExtensions ? function IsExtensible$1(obj) {
		return !isPrimitive(obj) && $isExtensible(obj);
	} : function IsExtensible$1(obj) {
		return !isPrimitive(obj);
	};
}));
var require_Type$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function Type$9(x) {
		if (x === null) return "Null";
		if (typeof x === "undefined") return "Undefined";
		if (typeof x === "function" || typeof x === "object") return "Object";
		if (typeof x === "number") return "Number";
		if (typeof x === "boolean") return "Boolean";
		if (typeof x === "string") return "String";
	};
}));
var require_Type = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var ES5Type = require_Type$1();
	module.exports = function Type$9(x) {
		if (typeof x === "symbol") return "Symbol";
		if (typeof x === "bigint") return "BigInt";
		return ES5Type(x);
	};
}));
var require_ToBoolean = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function ToBoolean$1(value) {
		return !!value;
	};
}));
var require_IsCallable$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = require_is_callable();
}));
var require_ToPropertyDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var hasOwn$3 = require_hasown();
	var $TypeError$15 = require_type();
	var Type$8 = require_Type();
	var ToBoolean = require_ToBoolean();
	var IsCallable$2 = require_IsCallable$1();
	module.exports = function ToPropertyDescriptor$1(Obj) {
		if (Type$8(Obj) !== "Object") throw new $TypeError$15("ToPropertyDescriptor requires an object");
		var desc = {};
		if (hasOwn$3(Obj, "enumerable")) desc["[[Enumerable]]"] = ToBoolean(Obj.enumerable);
		if (hasOwn$3(Obj, "configurable")) desc["[[Configurable]]"] = ToBoolean(Obj.configurable);
		if (hasOwn$3(Obj, "value")) desc["[[Value]]"] = Obj.value;
		if (hasOwn$3(Obj, "writable")) desc["[[Writable]]"] = ToBoolean(Obj.writable);
		if (hasOwn$3(Obj, "get")) {
			var getter = Obj.get;
			if (typeof getter !== "undefined" && !IsCallable$2(getter)) throw new $TypeError$15("getter must be a function");
			desc["[[Get]]"] = getter;
		}
		if (hasOwn$3(Obj, "set")) {
			var setter = Obj.set;
			if (typeof setter !== "undefined" && !IsCallable$2(setter)) throw new $TypeError$15("setter must be a function");
			desc["[[Set]]"] = setter;
		}
		if ((hasOwn$3(desc, "[[Get]]") || hasOwn$3(desc, "[[Set]]")) && (hasOwn$3(desc, "[[Value]]") || hasOwn$3(desc, "[[Writable]]"))) throw new $TypeError$15("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");
		return desc;
	};
}));
var require_SameValue = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $isNaN$1 = require_isNaN();
	module.exports = function SameValue$2(x, y) {
		if (x === y) {
			if (x === 0) return 1 / x === 1 / y;
			return true;
		}
		return $isNaN$1(x) && $isNaN$1(y);
	};
}));
var require_DefineOwnProperty = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var hasPropertyDescriptors = require_has_property_descriptors();
	var $defineProperty = require_es_define_property();
	var hasArrayLengthDefineBug = hasPropertyDescriptors.hasArrayLengthDefineBug();
	var isArray = hasArrayLengthDefineBug && require_IsArray$1();
	var $isEnumerable = require_callBound()("Object.prototype.propertyIsEnumerable");
	module.exports = function DefineOwnProperty$1(IsDataDescriptor$2, SameValue$2, FromPropertyDescriptor$1, O, P, desc) {
		if (!$defineProperty) {
			if (!IsDataDescriptor$2(desc)) return false;
			if (!desc["[[Configurable]]"] || !desc["[[Writable]]"]) return false;
			if (P in O && $isEnumerable(O, P) !== !!desc["[[Enumerable]]"]) return false;
			var V = desc["[[Value]]"];
			O[P] = V;
			return SameValue$2(O[P], V);
		}
		if (hasArrayLengthDefineBug && P === "length" && "[[Value]]" in desc && isArray(O) && O.length !== desc["[[Value]]"]) {
			O.length = desc["[[Value]]"];
			return O.length === desc["[[Value]]"];
		}
		$defineProperty(O, P, FromPropertyDescriptor$1(desc));
		return true;
	};
}));
var require_isFullyPopulatedPropertyDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var isPropertyDescriptor$5 = require_property_descriptor();
	module.exports = function isFullyPopulatedPropertyDescriptor$1(ES, Desc) {
		return isPropertyDescriptor$5(Desc) && typeof Desc === "object" && "[[Enumerable]]" in Desc && "[[Configurable]]" in Desc && (ES.IsAccessorDescriptor(Desc) || ES.IsDataDescriptor(Desc));
	};
}));
var require_fromPropertyDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function fromPropertyDescriptor$1(Desc) {
		if (typeof Desc === "undefined") return Desc;
		var obj = {};
		if ("[[Value]]" in Desc) obj.value = Desc["[[Value]]"];
		if ("[[Writable]]" in Desc) obj.writable = !!Desc["[[Writable]]"];
		if ("[[Get]]" in Desc) obj.get = Desc["[[Get]]"];
		if ("[[Set]]" in Desc) obj.set = Desc["[[Set]]"];
		if ("[[Enumerable]]" in Desc) obj.enumerable = !!Desc["[[Enumerable]]"];
		if ("[[Configurable]]" in Desc) obj.configurable = !!Desc["[[Configurable]]"];
		return obj;
	};
}));
var require_FromPropertyDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$14 = require_type();
	var isPropertyDescriptor$4 = require_property_descriptor();
	var fromPropertyDescriptor = require_fromPropertyDescriptor();
	module.exports = function FromPropertyDescriptor$1(Desc) {
		if (typeof Desc !== "undefined" && !isPropertyDescriptor$4(Desc)) throw new $TypeError$14("Assertion failed: `Desc` must be a Property Descriptor");
		return fromPropertyDescriptor(Desc);
	};
}));
var require_IsDataDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$13 = require_type();
	var hasOwn$2 = require_hasown();
	var isPropertyDescriptor$3 = require_property_descriptor();
	module.exports = function IsDataDescriptor$2(Desc) {
		if (typeof Desc === "undefined") return false;
		if (!isPropertyDescriptor$3(Desc)) throw new $TypeError$13("Assertion failed: `Desc` must be a Property Descriptor");
		if (!hasOwn$2(Desc, "[[Value]]") && !hasOwn$2(Desc, "[[Writable]]")) return false;
		return true;
	};
}));
var require_IsGenericDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$12 = require_type();
	var IsAccessorDescriptor$2 = require_IsAccessorDescriptor();
	var IsDataDescriptor$1 = require_IsDataDescriptor();
	var isPropertyDescriptor$2 = require_property_descriptor();
	module.exports = function IsGenericDescriptor$1(Desc) {
		if (typeof Desc === "undefined") return false;
		if (!isPropertyDescriptor$2(Desc)) throw new $TypeError$12("Assertion failed: `Desc` must be a Property Descriptor");
		if (!IsAccessorDescriptor$2(Desc) && !IsDataDescriptor$1(Desc)) return true;
		return false;
	};
}));
var require_ValidateAndApplyPropertyDescriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$11 = require_type();
	var DefineOwnProperty = require_DefineOwnProperty();
	var isFullyPopulatedPropertyDescriptor = require_isFullyPopulatedPropertyDescriptor();
	var isPropertyDescriptor$1 = require_property_descriptor();
	var FromPropertyDescriptor = require_FromPropertyDescriptor();
	var IsAccessorDescriptor$1 = require_IsAccessorDescriptor();
	var IsDataDescriptor = require_IsDataDescriptor();
	var IsGenericDescriptor = require_IsGenericDescriptor();
	var IsPropertyKey$5 = require_IsPropertyKey();
	var SameValue$1 = require_SameValue();
	var Type$7 = require_Type();
	module.exports = function ValidateAndApplyPropertyDescriptor$1(O, P, extensible, Desc, current) {
		var oType = Type$7(O);
		if (oType !== "Undefined" && oType !== "Object") throw new $TypeError$11("Assertion failed: O must be undefined or an Object");
		if (!IsPropertyKey$5(P)) throw new $TypeError$11("Assertion failed: P must be a Property Key");
		if (typeof extensible !== "boolean") throw new $TypeError$11("Assertion failed: extensible must be a Boolean");
		if (!isPropertyDescriptor$1(Desc)) throw new $TypeError$11("Assertion failed: Desc must be a Property Descriptor");
		if (typeof current !== "undefined" && !isPropertyDescriptor$1(current)) throw new $TypeError$11("Assertion failed: current must be a Property Descriptor, or undefined");
		if (typeof current === "undefined") {
			if (!extensible) return false;
			if (oType === "Undefined") return true;
			if (IsAccessorDescriptor$1(Desc)) return DefineOwnProperty(IsDataDescriptor, SameValue$1, FromPropertyDescriptor, O, P, Desc);
			return DefineOwnProperty(IsDataDescriptor, SameValue$1, FromPropertyDescriptor, O, P, {
				"[[Configurable]]": !!Desc["[[Configurable]]"],
				"[[Enumerable]]": !!Desc["[[Enumerable]]"],
				"[[Value]]": Desc["[[Value]]"],
				"[[Writable]]": !!Desc["[[Writable]]"]
			});
		}
		if (!isFullyPopulatedPropertyDescriptor({
			IsAccessorDescriptor: IsAccessorDescriptor$1,
			IsDataDescriptor
		}, current)) throw new $TypeError$11("`current`, when present, must be a fully populated and valid Property Descriptor");
		if (!current["[[Configurable]]"]) {
			if ("[[Configurable]]" in Desc && Desc["[[Configurable]]"]) return false;
			if ("[[Enumerable]]" in Desc && !SameValue$1(Desc["[[Enumerable]]"], current["[[Enumerable]]"])) return false;
			if (!IsGenericDescriptor(Desc) && !SameValue$1(IsAccessorDescriptor$1(Desc), IsAccessorDescriptor$1(current))) return false;
			if (IsAccessorDescriptor$1(current)) {
				if ("[[Get]]" in Desc && !SameValue$1(Desc["[[Get]]"], current["[[Get]]"])) return false;
				if ("[[Set]]" in Desc && !SameValue$1(Desc["[[Set]]"], current["[[Set]]"])) return false;
			} else if (!current["[[Writable]]"]) {
				if ("[[Writable]]" in Desc && Desc["[[Writable]]"]) return false;
				if ("[[Value]]" in Desc && !SameValue$1(Desc["[[Value]]"], current["[[Value]]"])) return false;
			}
		}
		if (oType !== "Undefined") {
			var configurable;
			var enumerable;
			if (IsDataDescriptor(current) && IsAccessorDescriptor$1(Desc)) {
				configurable = ("[[Configurable]]" in Desc ? Desc : current)["[[Configurable]]"];
				enumerable = ("[[Enumerable]]" in Desc ? Desc : current)["[[Enumerable]]"];
				return DefineOwnProperty(IsDataDescriptor, SameValue$1, FromPropertyDescriptor, O, P, {
					"[[Configurable]]": !!configurable,
					"[[Enumerable]]": !!enumerable,
					"[[Get]]": ("[[Get]]" in Desc ? Desc : current)["[[Get]]"],
					"[[Set]]": ("[[Set]]" in Desc ? Desc : current)["[[Set]]"]
				});
			} else if (IsAccessorDescriptor$1(current) && IsDataDescriptor(Desc)) {
				configurable = ("[[Configurable]]" in Desc ? Desc : current)["[[Configurable]]"];
				enumerable = ("[[Enumerable]]" in Desc ? Desc : current)["[[Enumerable]]"];
				return DefineOwnProperty(IsDataDescriptor, SameValue$1, FromPropertyDescriptor, O, P, {
					"[[Configurable]]": !!configurable,
					"[[Enumerable]]": !!enumerable,
					"[[Value]]": ("[[Value]]" in Desc ? Desc : current)["[[Value]]"],
					"[[Writable]]": !!("[[Writable]]" in Desc ? Desc : current)["[[Writable]]"]
				});
			}
			return DefineOwnProperty(IsDataDescriptor, SameValue$1, FromPropertyDescriptor, O, P, Desc);
		}
		return true;
	};
}));
var require_OrdinaryDefineOwnProperty = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $gOPD = require_gopd();
	var $SyntaxError = require_syntax();
	var $TypeError$10 = require_type();
	var isPropertyDescriptor = require_property_descriptor();
	var IsAccessorDescriptor = require_IsAccessorDescriptor();
	var IsExtensible = require_IsExtensible();
	var IsPropertyKey$4 = require_IsPropertyKey();
	var ToPropertyDescriptor = require_ToPropertyDescriptor();
	var SameValue = require_SameValue();
	var Type$6 = require_Type();
	var ValidateAndApplyPropertyDescriptor = require_ValidateAndApplyPropertyDescriptor();
	module.exports = function OrdinaryDefineOwnProperty$1(O, P, Desc) {
		if (Type$6(O) !== "Object") throw new $TypeError$10("Assertion failed: O must be an Object");
		if (!IsPropertyKey$4(P)) throw new $TypeError$10("Assertion failed: P must be a Property Key");
		if (!isPropertyDescriptor(Desc)) throw new $TypeError$10("Assertion failed: Desc must be a Property Descriptor");
		if (!$gOPD) {
			if (IsAccessorDescriptor(Desc)) throw new $SyntaxError("This environment does not support accessor property descriptors.");
			var creatingNormalDataProperty = !(P in O) && Desc["[[Writable]]"] && Desc["[[Enumerable]]"] && Desc["[[Configurable]]"] && "[[Value]]" in Desc;
			var settingExistingDataProperty = P in O && (!("[[Configurable]]" in Desc) || Desc["[[Configurable]]"]) && (!("[[Enumerable]]" in Desc) || Desc["[[Enumerable]]"]) && (!("[[Writable]]" in Desc) || Desc["[[Writable]]"]) && "[[Value]]" in Desc;
			if (creatingNormalDataProperty || settingExistingDataProperty) {
				O[P] = Desc["[[Value]]"];
				return SameValue(O[P], Desc["[[Value]]"]);
			}
			throw new $SyntaxError("This environment does not support defining non-writable, non-enumerable, or non-configurable properties");
		}
		var desc = $gOPD(O, P);
		var current = desc && ToPropertyDescriptor(desc);
		return ValidateAndApplyPropertyDescriptor(O, P, IsExtensible(O), Desc, current);
	};
}));
var require_CreateDataProperty = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$9 = require_type();
	var IsPropertyKey$3 = require_IsPropertyKey();
	var OrdinaryDefineOwnProperty = require_OrdinaryDefineOwnProperty();
	var Type$5 = require_Type();
	module.exports = function CreateDataProperty$1(O, P, V) {
		if (Type$5(O) !== "Object") throw new $TypeError$9("Assertion failed: Type(O) is not Object");
		if (!IsPropertyKey$3(P)) throw new $TypeError$9("Assertion failed: IsPropertyKey(P) is not true");
		return OrdinaryDefineOwnProperty(O, P, {
			"[[Configurable]]": true,
			"[[Enumerable]]": true,
			"[[Value]]": V,
			"[[Writable]]": true
		});
	};
}));
var require_CreateDataPropertyOrThrow = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$8 = require_type();
	var CreateDataProperty = require_CreateDataProperty();
	var IsPropertyKey$2 = require_IsPropertyKey();
	var Type$4 = require_Type();
	module.exports = function CreateDataPropertyOrThrow$1(O, P, V) {
		if (Type$4(O) !== "Object") throw new $TypeError$8("Assertion failed: Type(O) is not Object");
		if (!IsPropertyKey$2(P)) throw new $TypeError$8("Assertion failed: IsPropertyKey(P) is not true");
		if (!CreateDataProperty(O, P, V)) throw new $TypeError$8("unable to create data property");
	};
}));
var require_Get = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$7 = require_type();
	var inspect = require_object_inspect();
	var IsPropertyKey$1 = require_IsPropertyKey();
	var Type$3 = require_Type();
	module.exports = function Get$2(O, P) {
		if (Type$3(O) !== "Object") throw new $TypeError$7("Assertion failed: Type(O) is not Object");
		if (!IsPropertyKey$1(P)) throw new $TypeError$7("Assertion failed: IsPropertyKey(P) is not true, got " + inspect(P));
		return O[P];
	};
}));
var require_maxSafeInteger = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = Number.MAX_SAFE_INTEGER || 9007199254740991;
}));
var require_floor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $floor = Math.floor;
	module.exports = function floor$1(x) {
		if (typeof x === "bigint") return x;
		return $floor(x);
	};
}));
var require_truncate = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var floor = require_floor();
	var $TypeError$6 = require_type();
	module.exports = function truncate$1(x) {
		if (typeof x !== "number" && typeof x !== "bigint") throw new $TypeError$6("argument must be a Number or a BigInt");
		var result = x < 0 ? -floor(-x) : floor(x);
		return result === 0 ? 0 : result;
	};
}));
var require_ToIntegerOrInfinity = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var ToNumber = require_ToNumber();
	var truncate = require_truncate();
	var $isNaN = require_isNaN();
	var $isFinite = require_isFinite();
	module.exports = function ToIntegerOrInfinity$1(value) {
		var number = ToNumber(value);
		if ($isNaN(number) || number === 0) return 0;
		if (!$isFinite(number)) return number;
		return truncate(number);
	};
}));
var require_ToLength = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var MAX_SAFE_INTEGER = require_maxSafeInteger();
	var ToIntegerOrInfinity = require_ToIntegerOrInfinity();
	module.exports = function ToLength$1(argument) {
		var len = ToIntegerOrInfinity(argument);
		if (len <= 0) return 0;
		if (len > MAX_SAFE_INTEGER) return MAX_SAFE_INTEGER;
		return len;
	};
}));
var require_LengthOfArrayLike = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$5 = require_type();
	var Get$1 = require_Get();
	var ToLength = require_ToLength();
	var Type$2 = require_Type();
	module.exports = function LengthOfArrayLike$1(obj) {
		if (Type$2(obj) !== "Object") throw new $TypeError$5("Assertion failed: `obj` must be an Object");
		return ToLength(Get$1(obj, "length"));
	};
}));
var require_HasProperty = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$4 = require_type();
	var IsPropertyKey = require_IsPropertyKey();
	var Type$1 = require_Type();
	module.exports = function HasProperty$1(O, P) {
		if (Type$1(O) !== "Object") throw new $TypeError$4("Assertion failed: `O` must be an Object");
		if (!IsPropertyKey(P)) throw new $TypeError$4("Assertion failed: `P` must be a Property Key");
		return P in O;
	};
}));
var require_IsCallable = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = require_is_callable();
}));
var require_isObject = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function isObject$1(x) {
		return !!x && (typeof x === "function" || typeof x === "object");
	};
}));
var require_isPropertyKey = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = function isPropertyKey$1(argument) {
		return typeof argument === "string" || typeof argument === "symbol";
	};
}));
var require_HasOwnProperty = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $TypeError$3 = require_type();
	var hasOwn$1 = require_hasown();
	var isObject = require_isObject();
	var isPropertyKey = require_isPropertyKey();
	module.exports = function HasOwnProperty$1(O, P) {
		if (!isObject(O)) throw new $TypeError$3("Assertion failed: `O` must be an Object");
		if (!isPropertyKey(P)) throw new $TypeError$3("Assertion failed: `P` must be a Property Key");
		return hasOwn$1(O, P);
	};
}));
var require_functions_have_names = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var functionsHaveNames$2 = function functionsHaveNames$3() {
		return typeof function f() {}.name === "string";
	};
	var gOPD = Object.getOwnPropertyDescriptor;
	if (gOPD) try {
		gOPD([], "length");
	} catch (e) {
		gOPD = null;
	}
	functionsHaveNames$2.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {
		if (!functionsHaveNames$2() || !gOPD) return false;
		var desc = gOPD(function() {}, "name");
		return !!desc && !!desc.configurable;
	};
	var $bind = Function.prototype.bind;
	functionsHaveNames$2.boundFunctionsHaveNames = function boundFunctionsHaveNames() {
		return functionsHaveNames$2() && typeof $bind === "function" && function f() {}.bind().name !== "";
	};
	module.exports = functionsHaveNames$2;
}));
var require_implementation$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var IsCallable$1 = require_IsCallable();
	var HasOwnProperty = require_HasOwnProperty();
	var functionsHaveNames$1 = require_functions_have_names()();
	var callBound$1 = require_callBound$1();
	var $functionToString = callBound$1("Function.prototype.toString");
	var $stringMatch = callBound$1("String.prototype.match");
	var toStr = callBound$1("Object.prototype.toString");
	var classRegex = /^class /;
	var isClass = function isClassConstructor(fn) {
		if (IsCallable$1(fn)) return false;
		if (typeof fn !== "function") return false;
		try {
			return !!$stringMatch($functionToString(fn), classRegex);
		} catch (e) {}
		return false;
	};
	var regex = /\s*function\s+([^(\s]*)\s*/;
	var isIE68 = !(0 in [,]);
	var objectClass = "[object Object]";
	var ddaClass = "[object HTMLAllCollection]";
	var functionProto = Function.prototype;
	var isDDA = function isDocumentDotAll() {
		return false;
	};
	if (typeof document === "object") {
		var all = document.all;
		if (toStr(all) === toStr(document.all)) isDDA = function isDocumentDotAll(value) {
			if ((isIE68 || !value) && (typeof value === "undefined" || typeof value === "object")) try {
				var str = toStr(value);
				return (str === ddaClass || str === objectClass) && value("") == null;
			} catch (e) {}
			return false;
		};
	}
	module.exports = function getName() {
		if (isDDA(this) || !isClass(this) && !IsCallable$1(this)) throw new TypeError("Function.prototype.name sham getter called on non-function");
		if (functionsHaveNames$1 && HasOwnProperty(this, "name")) return this.name;
		if (this === functionProto) return "";
		var match = $stringMatch($functionToString(this), regex);
		return match && match[1];
	};
}));
var require_polyfill$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var implementation$3 = require_implementation$1();
	module.exports = function getPolyfill$6() {
		return implementation$3;
	};
}));
var require_shim$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var supportsDescriptors = require_define_properties().supportsDescriptors;
	var functionsHaveNames = require_functions_have_names()();
	var getPolyfill$3 = require_polyfill$1();
	var defineProperty = Object.defineProperty;
	var TypeErr = TypeError;
	module.exports = function shimName() {
		var polyfill$1 = getPolyfill$3();
		if (functionsHaveNames) return polyfill$1;
		if (!supportsDescriptors) throw new TypeErr("Shimming Function.prototype.name support requires ES5 property descriptor support.");
		var functionProto$1 = Function.prototype;
		defineProperty(functionProto$1, "name", {
			configurable: true,
			enumerable: false,
			get: function() {
				var name = polyfill$1.call(this);
				if (this !== functionProto$1) defineProperty(this, "name", {
					configurable: true,
					enumerable: false,
					value: name,
					writable: false
				});
				return name;
			}
		});
		return polyfill$1;
	};
}));
var require_function_prototype = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var define$2 = require_define_properties();
	var callBind$1 = require_call_bind();
	var implementation$2 = require_implementation$1();
	var getPolyfill$2 = require_polyfill$1();
	var shim$1 = require_shim$1();
	var bound$1 = callBind$1(implementation$2);
	define$2(bound$1, {
		getPolyfill: getPolyfill$2,
		implementation: implementation$2,
		shim: shim$1
	});
	module.exports = bound$1;
}));
var require_isAbstractClosure = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var functionName = require_function_prototype();
	var anon = functionName(function() {});
	module.exports = function isAbstractClosure$1(x) {
		return typeof x === "function" && (!x.prototype || functionName(x) === anon);
	};
}));
var require_SortIndexedProperties = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var callBound = require_callBound();
	var $TypeError$2 = require_type();
	var Get = require_Get();
	var HasProperty = require_HasProperty();
	var ToString$1 = require_ToString();
	var Type = require_Type();
	var isAbstractClosure = require_isAbstractClosure();
	var isInteger = require_isInteger();
	var $push = callBound("Array.prototype.push");
	var $sort = callBound("Array.prototype.sort");
	module.exports = function SortIndexedProperties$1(obj, len, SortCompare, holes) {
		if (Type(obj) !== "Object") throw new $TypeError$2("Assertion failed: Type(obj) is not Object");
		if (!isInteger(len) || len < 0) throw new $TypeError$2("Assertion failed: `len` must be an integer >= 0");
		if (!isAbstractClosure(SortCompare) || SortCompare.length !== 2) throw new $TypeError$2("Assertion failed: `SortCompare` must be an abstract closure taking 2 arguments");
		if (holes !== "skip-holes" && holes !== "read-through-holes") throw new $TypeError$2("Assertion failed: `holes` must be either `skip-holes` or `read-through-holes`");
		var items = [];
		var k = 0;
		while (k < len) {
			var Pk = ToString$1(k);
			if (holes === "skip-holes" ? HasProperty(obj, Pk) : true) $push(items, Get(obj, Pk));
			k += 1;
		}
		$sort(items, SortCompare);
		return items;
	};
}));
var require_ToObject$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var $Object = require_es_object_atoms();
	var RequireObjectCoercible = require_RequireObjectCoercible();
	module.exports = function ToObject$1(value) {
		RequireObjectCoercible(value);
		return $Object(value);
	};
}));
var require_ToObject = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	module.exports = require_ToObject$1();
}));
var require_implementation = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var ArrayCreate = require_ArrayCreate();
	var CompareArrayElements = require_CompareArrayElements();
	var CreateDataPropertyOrThrow = require_CreateDataPropertyOrThrow();
	var IsCallable = require_IsCallable$1();
	var LengthOfArrayLike = require_LengthOfArrayLike();
	var SortIndexedProperties = require_SortIndexedProperties();
	var ToObject = require_ToObject();
	var ToString = require_ToString();
	var $TypeError$1 = require_type();
	module.exports = function toSorted(comparefn) {
		if (typeof comparefn !== "undefined" && !IsCallable(comparefn)) throw new $TypeError$1("`comparefn` must be a function");
		var O = ToObject(this);
		var len = LengthOfArrayLike(O);
		var A = ArrayCreate(len);
		var SortCompare = function(x, y) {
			return CompareArrayElements(x, y, comparefn);
		};
		var sortedList = SortIndexedProperties(O, len, SortCompare, "read-through-holes");
		var j = 0;
		while (j < len) {
			CreateDataPropertyOrThrow(A, ToString(j), sortedList[j]);
			j += 1;
		}
		return A;
	};
}));
var require_polyfill = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var implementation$1 = require_implementation();
	module.exports = function getPolyfill$6() {
		return Array.prototype.toSorted || implementation$1;
	};
}));
var require_es_shim_unscopables = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var hasOwn = require_hasown();
	var hasUnscopables = typeof Symbol === "function" && typeof Symbol.unscopables === "symbol";
	var map = hasUnscopables && Array.prototype[Symbol.unscopables];
	var $TypeError = TypeError;
	module.exports = function shimUnscopables$1(method) {
		if (typeof method !== "string" || !method) throw new $TypeError("method must be a non-empty string");
		if (!hasOwn(Array.prototype, method)) throw new $TypeError("method must be on Array.prototype");
		if (hasUnscopables && map) map[method] = true;
	};
}));
var require_shim = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var define$1 = require_define_properties();
	var shimUnscopables = require_es_shim_unscopables();
	var getPolyfill$1 = require_polyfill();
	module.exports = function shim$3() {
		var polyfill$1 = getPolyfill$1();
		define$1(Array.prototype, { toSorted: polyfill$1 }, { toSorted: function() {
			return Array.prototype.toSorted !== polyfill$1;
		} });
		shimUnscopables("toSorted");
		return polyfill$1;
	};
}));
(/* @__PURE__ */ __commonJSMin(((exports, module) => {
	var define = require_define_properties();
	var callBind = require_call_bind$1();
	var implementation = require_implementation();
	var getPolyfill = require_polyfill();
	var polyfill = getPolyfill();
	var shim = require_shim();
	var bound = callBind(polyfill);
	define(bound, {
		getPolyfill,
		implementation,
		shim
	});
	module.exports = bound;
})))();
if (!("randomUUID" in crypto)) Object.defineProperty(crypto, "randomUUID", { value: v4_default });
var SourceControlInitializationErrorMessage_default = /* @__PURE__ */ defineComponent({
	__name: "SourceControlInitializationErrorMessage",
	setup(__props) {
		const i18n$3 = useI18n();
		return (_ctx, _cache) => {
			const _component_RouterLink = resolveComponent("RouterLink");
			return openBlock(), createBlock(unref(I18nT), {
				keypath: "settings.sourceControl.connection.error.message",
				tag: "div",
				scope: "global"
			}, {
				link: withCtx(() => [createVNode(_component_RouterLink, { to: { name: unref(VIEWS).SOURCE_CONTROL } }, {
					default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n$3).baseText("settings.sourceControl.connection.error.link")), 1)]),
					_: 1
				}, 8, ["to"])]),
				_: 1
			});
		};
	}
});
var i18n$2 = useI18n();
var MainSidebar$3 = async () => await __vitePreload(() => import("./MainSidebar-DOYbjNAp.js"), __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));
var DataTableView = async () => await __vitePreload(() => import("./DataTableView-CYbmhdXf.js"), __vite__mapDeps([39,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,25,56,57,58,59,60,61,62,63,64,65,66,67]));
var DataTableDetailsView = async () => await __vitePreload(() => import("./DataTableDetailsView-DzmbL9W0.js"), __vite__mapDeps([68,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,69,40,26,22,27,41,42,45,46,70,71,72,60,61,73,74,75]));
const DataTableModule = {
	id: "data-table",
	name: "Data Table",
	description: "Manage and store data efficiently with the Data Table module.",
	icon: "database",
	modals: [{
		key: ADD_DATA_TABLE_MODAL_KEY,
		component: async () => await __vitePreload(() => import("./AddDataTableModal-CpXIaEAK.js"), __vite__mapDeps([76,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,26,22,27,78,79,80,81,61,82])),
		initialState: { open: false }
	}],
	routes: [
		{
			name: DATA_TABLE_VIEW,
			path: "/home/datatables",
			components: {
				default: DataTableView,
				sidebar: MainSidebar$3
			},
			meta: { middleware: ["authenticated", "custom"] },
			beforeEnter: (_to, _from, next) => {
				const insightsStore = useInsightsStore();
				if (insightsStore.isSummaryEnabled) insightsStore.weeklySummary.execute();
				next();
			}
		},
		{
			name: PROJECT_DATA_TABLES,
			path: "datatables/:new(new)?",
			props: true,
			components: {
				default: DataTableView,
				sidebar: MainSidebar$3
			},
			meta: {
				projectRoute: true,
				middleware: ["authenticated", "custom"]
			}
		},
		{
			name: DATA_TABLE_DETAILS,
			path: "datatables/:id",
			props: true,
			components: {
				default: DataTableDetailsView,
				sidebar: MainSidebar$3
			},
			meta: {
				projectRoute: true,
				middleware: ["authenticated", "custom"]
			}
		}
	],
	projectTabs: {
		overview: [{
			label: i18n$2.baseText("dataTable.dataTables"),
			value: DATA_TABLE_VIEW,
			to: { name: DATA_TABLE_VIEW }
		}],
		project: [{
			label: i18n$2.baseText("dataTable.dataTables"),
			value: PROJECT_DATA_TABLES,
			dynamicRoute: {
				name: PROJECT_DATA_TABLES,
				includeProjectId: true
			}
		}]
	},
	resources: [{
		key: "dataTable",
		displayName: "Data Table"
	}]
};
var resources = /* @__PURE__ */ new Map();
function registerResource(metadata) {
	resources.set(metadata.key, metadata);
}
var MainSidebar$2 = async () => await __vitePreload(() => import("./MainSidebar-DOYbjNAp.js"), __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));
var InsightsDashboard = async () => await __vitePreload(() => import("./InsightsDashboard-CV0kd5hv.js"), __vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,26,22,27,42,44,45,46,29,33,25,49,50,62,63,64,65,66,84]));
const InsightsModule = {
	id: "insights",
	name: "Insights",
	description: "Provides insights and analytics features for projects.",
	icon: "chart-column-decreasing",
	routes: [{
		path: "/insights",
		beforeEnter() {
			return useInsightsStore().isInsightsEnabled || { name: VIEWS.NOT_FOUND };
		},
		components: {
			default: RouterView,
			sidebar: MainSidebar$2
		},
		meta: {
			middleware: ["authenticated", "rbac"],
			middlewareOptions: { rbac: { scope: ["insights:list"] } }
		},
		children: [{
			path: ":insightType?",
			name: VIEWS.INSIGHTS,
			beforeEnter(to) {
				if (to.params.insightType) return true;
				return Object.assign(to, { params: {
					...to.params,
					insightType: "total"
				} });
			},
			component: InsightsDashboard,
			props: true
		}]
	}]
};
var i18n$1 = useI18n();
var SettingsMCPView = async () => await __vitePreload(() => import("./SettingsMCPView-jo9EZF6Y.js"), __vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,86,72,87,88,56,89,43,90,45,46,91,92,93,94,95,29,96,97,98,99,36,100,101,102,61,103,104,66,64,63,105,106]));
const MCPModule = {
	id: "mcp",
	name: "MCP Access",
	description: "Access your n8n instance through MCP clients",
	icon: "mcp",
	routes: [{
		path: "mcp",
		name: MCP_SETTINGS_VIEW,
		components: { settingsView: SettingsMCPView },
		meta: {
			middleware: ["authenticated", "custom"],
			telemetry: { pageCategory: "settings" }
		}
	}],
	settingsPages: [{
		id: "settings-mcp",
		icon: "mcp",
		label: i18n$1.baseText("settings.mcp"),
		position: "top",
		route: { to: { name: MCP_SETTINGS_VIEW } }
	}]
};
var _hoisted_1 = { key: 0 };
var TRUNCATE_MODELS_AFTER = 4;
var ChatProvidersTable_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
	__name: "ChatProvidersTable",
	props: {
		settings: {},
		loading: { type: Boolean },
		disabled: { type: Boolean }
	},
	emits: ["editProvider", "refresh"],
	setup(__props, { emit: __emit }) {
		const props = __props;
		const emit = __emit;
		const i18n$3 = useI18n();
		const tableHeaders = ref([
			{
				title: i18n$3.baseText("settings.chatHub.providers.table.provider"),
				key: "provider",
				width: 80,
				disableSort: true,
				value() {}
			},
			{
				title: i18n$3.baseText("settings.chatHub.providers.table.models"),
				key: "models",
				width: 300,
				disableSort: true,
				value() {}
			},
			{
				title: i18n$3.baseText("settings.chatHub.providers.table.updatedAt"),
				key: "updatedAt",
				disableSort: true,
				width: 80,
				value() {}
			},
			{
				title: "",
				key: "actions",
				align: "end",
				width: 50,
				disableSort: true,
				value() {}
			}
		]);
		const tableActions = computed(() => [{
			label: i18n$3.baseText("settings.chatHub.providers.table.action.editProvider"),
			value: "editProvider",
			disabled: props.disabled
		}]);
		const settingItems = computed(() => {
			return props.settings ? Object.values(props.settings) : [];
		});
		const modelsText = (settings) => {
			if (!settings.enabled) return i18n$3.baseText("settings.chatHub.providers.table.models.disabled");
			else if (settings.allowedModels.length === 0) return i18n$3.baseText("settings.chatHub.providers.table.models.allModels");
			else {
				if (settings.allowedModels.length > TRUNCATE_MODELS_AFTER) return settings.allowedModels.slice(0, TRUNCATE_MODELS_AFTER).map((m) => m.displayName).join(", ") + i18n$3.baseText("settings.chatHub.providers.table.models.more", { interpolate: { count: settings.allowedModels.length - TRUNCATE_MODELS_AFTER } });
				return settings.allowedModels.map((m) => m.displayName).join(", ");
			}
		};
		const onTableAction = (action, settings) => {
			switch (action) {
				case "editProvider":
					emit("editProvider", settings);
					break;
				default: break;
			}
		};
		return (_ctx, _cache) => {
			return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.tableContainer) }, [props.loading ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(unref(N8nLoading_default), {
				loading: props.loading,
				variant: "h1",
				class: normalizeClass(_ctx.$style.header)
			}, null, 8, ["loading", "class"]), createVNode(unref(N8nLoading_default), {
				loading: props.loading,
				variant: "p",
				rows: 5,
				"shrink-last": false
			}, null, 8, ["loading"])])) : (openBlock(), createElementBlock("div", {
				key: 1,
				class: normalizeClass(_ctx.$style.container)
			}, [createBaseVNode("div", { class: normalizeClass(_ctx.$style.header) }, [createVNode(unref(N8nHeading_default), {
				size: "medium",
				bold: true
			}, {
				default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n$3).baseText("settings.chatHub.providers.table.title")), 1)]),
				_: 1
			}), createBaseVNode("div", { class: normalizeClass(_ctx.$style.actions) }, [createVNode(unref(N8nTooltip_default), { content: unref(i18n$3).baseText("settings.chatHub.providers.table.refresh.tooltip") }, {
				default: withCtx(() => [createVNode(unref(N8nButton_default), {
					size: "small",
					type: "tertiary",
					icon: "refresh-cw",
					square: true,
					onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("refresh"))
				})]),
				_: 1
			}, 8, ["content"])], 2)], 2), !props.settings ? (openBlock(), createBlock(unref(N8nActionBox_default), {
				key: 0,
				heading: unref(i18n$3).baseText("settings.chatHub.providers.table.empty.title"),
				description: unref(i18n$3).baseText("settings.chatHub.providers.table.empty.description")
			}, null, 8, ["heading", "description"])) : (openBlock(), createBlock(unref(N8nDataTableServer_default), {
				key: 1,
				class: normalizeClass(_ctx.$style.chatProvidersTable),
				headers: tableHeaders.value,
				items: settingItems.value,
				"items-length": settingItems.value.length
			}, {
				[`item.provider`]: withCtx(({ item }) => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.providerCell) }, [item.provider in unref(PROVIDER_CREDENTIAL_TYPE_MAP) ? (openBlock(), createBlock(CredentialIcon_default, {
					key: 0,
					"credential-type-name": unref(PROVIDER_CREDENTIAL_TYPE_MAP)[item.provider],
					size: 16,
					class: normalizeClass(_ctx.$style.menuIcon)
				}, null, 8, ["credential-type-name", "class"])) : createCommentVNode("", true), createVNode(unref(N8nText_default), { bold: "" }, {
					default: withCtx(() => [createTextVNode(toDisplayString(unref(providerDisplayNames)[item.provider]), 1)]),
					_: 2
				}, 1024)], 2)]),
				[`item.models`]: withCtx(({ item }) => [item.allowedModels?.length && item.allowedModels?.length > TRUNCATE_MODELS_AFTER ? (openBlock(), createBlock(unref(N8nTooltip_default), {
					key: 0,
					content: item.allowedModels?.map((m) => m.displayName).join(", ")
				}, {
					default: withCtx(() => [createVNode(unref(N8nText_default), { color: item.enabled ? "text-base" : "primary" }, {
						default: withCtx(() => [createTextVNode(toDisplayString(modelsText(item)), 1)]),
						_: 2
					}, 1032, ["color"])]),
					_: 2
				}, 1032, ["content"])) : (openBlock(), createBlock(unref(N8nText_default), {
					key: 1,
					color: item.enabled ? "text-base" : "primary"
				}, {
					default: withCtx(() => [createTextVNode(toDisplayString(modelsText(item)), 1)]),
					_: 2
				}, 1032, ["color"]))]),
				[`item.updatedAt`]: withCtx(({ item }) => [createBaseVNode("span", null, [item.updatedAt ? (openBlock(), createBlock(TimeAgo_default, {
					key: 0,
					date: item.updatedAt
				}, null, 8, ["date"])) : (openBlock(), createBlock(unref(N8nText_default), { key: 1 }, {
					default: withCtx(() => _cache[1] || (_cache[1] = [createTextVNode("-")])),
					_: 1
				}))])]),
				[`item.actions`]: withCtx(({ item }) => [createVNode(unref(N8nActionToggle_default), {
					placement: "bottom",
					actions: tableActions.value,
					theme: "dark",
					onAction: ($event) => onTableAction($event, item)
				}, null, 8, ["actions", "onAction"])]),
				_: 2
			}, 1032, [
				"class",
				"headers",
				"items",
				"items-length"
			]))], 2))], 2);
		};
	}
});
var ChatProvidersTable_vue_vue_type_style_index_0_lang_module_default = {
	container: "_container_i795b_123",
	tableContainer: "_tableContainer_i795b_128",
	actions: "_actions_i795b_132",
	header: "_header_i795b_138",
	chatProvidersTable: "_chatProvidersTable_i795b_145",
	menuIcon: "_menuIcon_i795b_149",
	providerCell: "_providerCell_i795b_153"
};
var ChatProvidersTable_default = /* @__PURE__ */ __plugin_vue_export_helper_default(ChatProvidersTable_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": ChatProvidersTable_vue_vue_type_style_index_0_lang_module_default }]]);
var SettingsChatHubView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
	__name: "SettingsChatHubView",
	setup(__props) {
		const i18n$3 = useI18n();
		const toast = useToast();
		const documentTitle = useDocumentTitle();
		const chatStore = useChatStore();
		const usersStore = useUsersStore();
		const settingsStore = useSettingsStore();
		const credentialsStore = useCredentialsStore();
		const uiStore = useUIStore();
		const telemetry = useTelemetry();
		const isOwner = computed(() => usersStore.isInstanceOwner);
		const isAdmin = computed(() => usersStore.isAdmin);
		const disabled = computed(() => !isOwner.value && !isAdmin.value);
		const fetchSettings = async () => {
			try {
				await chatStore.fetchAllChatSettings();
			} catch (error) {
				toast.showError(error, i18n$3.baseText("settings.chatHub.providers.fetching.error"));
			}
		};
		function onEditProvider(settings) {
			uiStore.openModalWithData({
				name: CHAT_PROVIDER_SETTINGS_MODAL_KEY,
				data: {
					provider: settings.provider,
					disabled: disabled.value,
					onNewCredential: (provider) => {
						const credentialType = PROVIDER_CREDENTIAL_TYPE_MAP[provider];
						telemetry.track("User opened Credential modal", {
							credential_type: credentialType,
							source: "chat_hub_settings",
							new_credential: true,
							workflow_id: null
						});
						uiStore.openNewCredential(credentialType);
					},
					onConfirm: async (updatedSettings) => {
						try {
							await chatStore.updateProviderSettings(updatedSettings);
							toast.showMessage({
								title: i18n$3.baseText("settings.chatHub.providers.updated.success"),
								type: "success"
							});
							await settingsStore.getModuleSettings();
						} catch (error) {
							toast.showError(error, i18n$3.baseText("settings.chatHub.providers.updated.error"));
						}
					},
					onCancel: () => {}
				}
			});
		}
		async function onRefreshWorkflows() {
			await fetchSettings();
		}
		onMounted(async () => {
			documentTitle.set(i18n$3.baseText("settings.chatHub"));
			if (!settingsStore.isChatFeatureEnabled) return;
			await Promise.all([
				fetchSettings(),
				credentialsStore.fetchAllCredentials(),
				credentialsStore.fetchCredentialTypes(false)
			]);
		});
		return (_ctx, _cache) => {
			return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.container) }, [createVNode(unref(N8nHeading_default), {
				size: "2xlarge",
				class: normalizeClass(_ctx.$style.title)
			}, {
				default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n$3).baseText("settings.chatHub")), 1)]),
				_: 1
			}, 8, ["class"]), createBaseVNode("div", { class: normalizeClass(_ctx.$style.container) }, [createVNode(ChatProvidersTable_default, {
				"data-test-id": "chat-providers-table",
				settings: unref(chatStore).settings,
				loading: unref(chatStore).settingsLoading,
				disabled: disabled.value,
				onEditProvider,
				onRefresh: onRefreshWorkflows
			}, null, 8, [
				"settings",
				"loading",
				"disabled"
			])], 2)], 2);
		};
	}
});
var SettingsChatHubView_vue_vue_type_style_index_0_lang_module_default = {
	container: "_container_1g3bj_123",
	title: "_title_1g3bj_129"
};
var SettingsChatHubView_default = /* @__PURE__ */ __plugin_vue_export_helper_default(SettingsChatHubView_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": SettingsChatHubView_vue_vue_type_style_index_0_lang_module_default }]]);
var ChatSidebar = async () => await __vitePreload(() => import("./ChatSidebar-DBf-LmE8.js"), __vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,108,109,40,26,22,27,90,30,31,98,99,36,110,103,104,111,112,113]));
var ChatView = async () => await __vitePreload(() => import("./ChatView-Cg2NAUCj.js"), __vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,115,116,96,23,97,99,90,98,36,110,103,104,111,117,118,119,72,120,112,121,122]));
var ChatAgentsView = async () => await __vitePreload(() => import("./ChatAgentsView-DENbuNZr.js"), __vite__mapDeps([123,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,90,98,99,36,120,112,121,110,103,104,111,124]));
var modules = [
	InsightsModule,
	DataTableModule,
	MCPModule,
	{
		id: "chat-hub",
		name: "Chat",
		description: "Interact with various LLM models or your n8n AI agents.",
		icon: "chat",
		modals: [
			{
				key: TOOLS_SELECTOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./ToolsSelectorModal-BODQbEZi.js"), __vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,80,27,81,96,23,97,126])),
				initialState: {
					open: false,
					data: {
						selected: [],
						onConfirm: () => {}
					}
				}
			},
			{
				key: AGENT_EDITOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./AgentEditorModal-CwTvZ0MT.js"), __vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,40,26,22,27,116,96,23,97,99,90,98,36,110,103,104,111,117,80,81,128])),
				initialState: {
					open: false,
					data: {
						credentials: {},
						onClose: () => {},
						onCreateCustomAgent: () => {}
					}
				}
			},
			{
				key: CHAT_CREDENTIAL_SELECTOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./CredentialSelectorModal-Ca1p8H5b.js"), __vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,40,26,22,27,80,81,36,103,104,130,131,132])),
				initialState: {
					open: false,
					data: {
						provider: null,
						initialValue: null,
						onSelect: () => {},
						onCreateNew: () => {}
					}
				}
			},
			{
				key: CHAT_MODEL_BY_ID_SELECTOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./ModelByIdSelectorModal-B-kXhM9Z.js"), __vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,80,27,81,36,103,104,134])),
				initialState: {
					open: false,
					data: {
						provider: null,
						initialValue: null,
						onSelect: () => {}
					}
				}
			},
			{
				key: CHAT_PROVIDER_SETTINGS_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./ProviderSettingsModal-CobMGlJf.js"), __vite__mapDeps([135,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,26,22,27,90,80,81,98,99,36,130,131,136,137,138])),
				initialState: {
					open: false,
					data: {
						provider: null,
						disabled: false,
						onConfirm: () => {},
						onCancel: () => {}
					}
				}
			}
		],
		routes: [
			{
				name: CHAT_VIEW,
				path: "/home/chat",
				components: {
					default: ChatView,
					sidebar: ChatSidebar
				},
				meta: {
					middleware: ["authenticated"],
					getProperties() {
						return { feature: "chat-hub" };
					}
				}
			},
			{
				name: CHAT_CONVERSATION_VIEW,
				path: "/home/chat/:id",
				components: {
					default: ChatView,
					sidebar: ChatSidebar
				},
				meta: {
					middleware: ["authenticated"],
					getProperties() {
						return { feature: "chat-hub" };
					}
				}
			},
			{
				name: CHAT_AGENTS_VIEW,
				path: "/home/chat/agents",
				components: {
					default: ChatAgentsView,
					sidebar: ChatSidebar
				},
				meta: {
					middleware: ["authenticated"],
					getProperties() {
						return { feature: "chat-hub" };
					}
				}
			},
			{
				path: "chat",
				name: CHAT_SETTINGS_VIEW,
				components: { settingsView: SettingsChatHubView_default },
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: ["chatHub:manage"] } },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "chat-hub" };
						}
					}
				}
			}
		],
		projectTabs: {
			overview: [],
			project: []
		},
		resources: [{
			key: "chat",
			displayName: "Chat"
		}],
		settingsPages: [{
			id: "settings-chat-hub",
			icon: "message-circle",
			label: i18n.baseText("settings.chatHub"),
			position: "top",
			route: { to: { name: CHAT_SETTINGS_VIEW } }
		}]
	}
];
const registerModuleResources = () => {
	modules.forEach((module$1) => {
		module$1.resources?.forEach((resource) => {
			registerResource(resource);
		});
	});
};
const registerModuleProjectTabs = () => {
	const uiStore = useUIStore();
	modules.forEach((module$1) => {
		if (module$1.projectTabs) {
			if (module$1.projectTabs.overview) uiStore.registerCustomTabs("overview", module$1.id, module$1.projectTabs.overview);
			if (module$1.projectTabs.project) uiStore.registerCustomTabs("project", module$1.id, module$1.projectTabs.project);
			if (module$1.projectTabs.shared) uiStore.registerCustomTabs("shared", module$1.id, module$1.projectTabs.shared);
		}
	});
};
const registerModuleSettingsPages = () => {
	const uiStore = useUIStore();
	modules.forEach((module$1) => {
		if (module$1.settingsPages && module$1.settingsPages.length > 0) uiStore.registerSettingsPages(module$1.id, module$1.settingsPages);
	});
};
var checkModuleAvailability = (options) => {
	if (!options?.to?.meta?.moduleName || typeof options.to.meta.moduleName !== "string") return true;
	return useSettingsStore().isModuleActive(options.to.meta.moduleName);
};
const registerModuleModals = () => {
	modules.forEach((module$1) => {
		module$1.modals?.forEach((modalDef) => {
			register(modalDef);
		});
	});
	useUIStore().initializeModalsFromRegistry();
};
const registerModuleRoutes = (router$1) => {
	modules.forEach((module$1) => {
		module$1.routes?.forEach((route) => {
			const enhancedRoute = {
				...route,
				meta: {
					...route.meta,
					moduleName: module$1.id,
					...route.meta?.middleware?.includes("custom") && { middlewareOptions: {
						...route.meta?.middlewareOptions,
						custom: checkModuleAvailability
					} }
				}
			};
			if (route.meta?.projectRoute) router$1.addRoute(VIEWS.PROJECT_DETAILS, enhancedRoute);
			else if (route.meta?.telemetry && route.meta.telemetry.pageCategory === "settings") router$1.addRoute(VIEWS.SETTINGS, enhancedRoute);
			else router$1.addRoute(enhancedRoute);
		});
	});
};
const state = { initialized: false };
var authenticatedFeaturesInitialized = false;
async function initializeCore() {
	if (state.initialized) return;
	const settingsStore = useSettingsStore();
	const versionsStore = useVersionsStore();
	const usersStore = useUsersStore();
	const ssoStore = useSSOStore();
	const toast = useToast();
	const i18n$3 = useI18n();
	registerAuthenticationHooks();
	try {
		await settingsStore.initialize();
	} catch (error) {
		console.error("Failed to initialize settings store", error);
		toast.showToast({
			title: i18n$3.baseText("startupError"),
			message: i18n$3.baseText("startupError.message"),
			type: "error",
			duration: 0
		});
	}
	ssoStore.initialize({
		authenticationMethod: settingsStore.userManagement.authenticationMethod,
		config: settingsStore.settings.sso,
		features: {
			saml: settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Saml],
			ldap: settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Ldap],
			oidc: settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Oidc]
		}
	});
	versionsStore.initialize(settingsStore.settings.versionNotifications);
	if (!settingsStore.isPreviewMode) await usersStore.initialize();
	useExternalHooks().run("app.mount");
	state.initialized = true;
}
async function initializeAuthenticatedFeatures(initialized = authenticatedFeaturesInitialized, routeName) {
	if (initialized) return;
	const usersStore = useUsersStore();
	if (!usersStore.currentUser) return;
	const i18n$3 = useI18n();
	const toast = useToast();
	const sourceControlStore = useSourceControlStore();
	const settingsStore = useSettingsStore();
	const rootStore = useRootStore();
	const nodeTypesStore = useNodeTypesStore();
	const cloudPlanStore = useCloudPlanStore();
	const projectsStore = useProjectsStore();
	const rolesStore = useRolesStore();
	const bannersStore = useBannersStore();
	const versionsStore = useVersionsStore();
	const dataTableStore = useDataTableStore();
	if (!settingsStore.isPreviewMode) usersStore.setUserQuota(settingsStore.userManagement.quota);
	if (sourceControlStore.isEnterpriseSourceControlEnabled) try {
		await sourceControlStore.getPreferences();
	} catch (e) {
		toast.showMessage({
			title: i18n$3.baseText("settings.sourceControl.connection.error"),
			message: h(SourceControlInitializationErrorMessage_default),
			type: "error",
			duration: 0
		});
		console.error("Failed to initialize source control store", e);
	}
	if (rootStore.defaultLocale !== "en") await nodeTypesStore.getNodeTranslationHeaders();
	if (settingsStore.isEnterpriseFeatureEnabled.showNonProdBanner) bannersStore.pushBannerToStack("NON_PRODUCTION_LICENSE");
	if (settingsStore.settings.banners && !settingsStore.settings.banners.dismissed.includes("V1") && settingsStore.settings.versionCli.startsWith("1.")) bannersStore.pushBannerToStack("V1");
	if (settingsStore.isCloudDeployment) cloudPlanStore.initialize().then(() => {
		if (cloudPlanStore.userIsTrialing) if (cloudPlanStore.trialExpired) bannersStore.pushBannerToStack("TRIAL_OVER");
		else bannersStore.pushBannerToStack("TRIAL");
		else if (cloudPlanStore.currentUserCloudInfo?.confirmed === false) bannersStore.pushBannerToStack("EMAIL_CONFIRMATION");
	}).catch((error) => {
		console.error("Failed to initialize cloud plan store:", error);
	});
	if (settingsStore.isDataTableFeatureEnabled) dataTableStore.fetchDataTableSize().then(({ quotaStatus }) => {
		if (quotaStatus === "error") bannersStore.pushBannerToStack("DATA_TABLE_STORAGE_LIMIT_ERROR");
		else if (quotaStatus === "warn") bannersStore.pushBannerToStack("DATA_TABLE_STORAGE_LIMIT_WARNING");
	}).catch((error) => {
		console.error("Failed to fetch data table limits:", error);
	});
	if (!settingsStore.isPreviewMode && routeName !== VIEWS.DEMO) versionsStore.checkForNewVersions();
	await Promise.all([
		projectsStore.getMyProjects(),
		projectsStore.getPersonalProject(),
		projectsStore.getProjectsCount(),
		rolesStore.fetchRoles()
	]);
	registerModuleResources();
	registerModuleProjectTabs();
	registerModuleModals();
	registerModuleSettingsPages();
	authenticatedFeaturesInitialized = true;
}
function registerAuthenticationHooks() {
	const rootStore = useRootStore();
	const usersStore = useUsersStore();
	const cloudPlanStore = useCloudPlanStore();
	const postHogStore = usePostHog();
	const bannersStore = useBannersStore();
	const npsSurveyStore = useNpsSurveyStore();
	const telemetry = useTelemetry();
	const RBACStore = useRBACStore();
	const settingsStore = useSettingsStore();
	usersStore.registerLoginHook(async (user) => {
		await settingsStore.getSettings();
		RBACStore.setGlobalScopes(user.globalScopes ?? []);
		telemetry.identify(rootStore.instanceId, user.id, rootStore.versionCli);
		postHogStore.init(user.featureFlags);
		npsSurveyStore.setupNpsSurveyOnLogin(user.id, user.settings);
		settingsStore.getModuleSettings();
		bannersStore.loadDynamicBanners();
	});
	usersStore.registerLogoutHook(() => {
		bannersStore.clearBannerStack();
		npsSurveyStore.resetNpsSurveyOnLogOut();
		postHogStore.reset();
		cloudPlanStore.reset();
		telemetry.reset();
		RBACStore.setGlobalScopes([]);
	});
}
var MainSidebar$1 = async () => await __vitePreload(() => import("./MainSidebar-DOYbjNAp.js"), __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));
var WorkflowsView = async () => await __vitePreload(() => import("./WorkflowsView-j5_QVP8k.js"), __vite__mapDeps([139,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,40,26,27,41,42,43,44,45,46,94,140,141,142,47,96,97,143,144,145,88,73,74,56,146,48,49,50,51,52,53,54,55,57,58,59,147,35,148,149,150,100,101,102,151,152,153,62,63,64,65,66,136,137,154,155]));
var CredentialsView = async () => await __vitePreload(() => import("./CredentialsView-BRa706yR.js"), __vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,42,157,43,44,45,46,47,48,49,50,51,52,53,54,55,25,56,57,58,59,151,152,153,103,104,62,63,64,65,66,158,159]));
var ProjectSettings = async () => await __vitePreload(() => import("./ProjectSettings-ePpvJlxj.js"), __vite__mapDeps([160,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,26,22,27,78,42,161,162,45,46,163,95,29,33,25,58,55,56,59,49,50,164]));
var ExecutionsView = async () => await __vitePreload(() => import("./ExecutionsView-ShPxLAra.js"), __vite__mapDeps([165,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,69,40,26,22,27,41,44,45,46,29,166,167,70,71,33,25,168,58,55,56,59,169,170,136,137,154,171,172,89,62,63,64,65,66,173]));
var ProjectVariables = async () => await __vitePreload(() => import("./ProjectVariables-B72uYW4F.js"), __vite__mapDeps([174,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,42,157,44,45,46,29,47,48,49,50,51,52,53,54,55,25,56,57,72,33,58,59,62,63,64,65,66,175]));
var checkProjectAvailability = (to) => {
	if (!to?.params.projectId) return true;
	return !!useProjectsStore().myProjects.find((p) => to?.params.projectId === p.id);
};
var commonChildRoutes = [
	{
		path: "workflows",
		components: {
			default: WorkflowsView,
			sidebar: MainSidebar$1
		},
		meta: {
			middleware: ["authenticated", "custom"],
			middlewareOptions: { custom: (options) => checkProjectAvailability(options?.to) }
		}
	},
	{
		path: "credentials/:credentialId?",
		props: true,
		components: {
			default: CredentialsView,
			sidebar: MainSidebar$1
		},
		meta: {
			middleware: ["authenticated", "custom"],
			middlewareOptions: { custom: (options) => checkProjectAvailability(options?.to) }
		}
	},
	{
		path: "executions",
		components: {
			default: ExecutionsView,
			sidebar: MainSidebar$1
		},
		meta: {
			middleware: ["authenticated", "custom"],
			middlewareOptions: { custom: (options) => checkProjectAvailability(options?.to) }
		}
	},
	{
		path: "folders/:folderId?/workflows",
		components: {
			default: WorkflowsView,
			sidebar: MainSidebar$1
		},
		meta: {
			middleware: ["authenticated", "custom"],
			middlewareOptions: { custom: (options) => checkProjectAvailability(options?.to) }
		}
	},
	{
		path: "variables",
		components: {
			default: ProjectVariables,
			sidebar: MainSidebar$1
		},
		meta: {
			middleware: ["authenticated", "custom"],
			middlewareOptions: { custom: (options) => checkProjectAvailability(options?.to) }
		}
	}
];
var commonChildRouteExtensions = {
	home: [
		{ name: VIEWS.WORKFLOWS },
		{ name: VIEWS.CREDENTIALS },
		{ name: VIEWS.EXECUTIONS },
		{ name: VIEWS.FOLDERS },
		{ name: VIEWS.HOME_VARIABLES }
	],
	projects: [
		{ name: VIEWS.PROJECTS_WORKFLOWS },
		{ name: VIEWS.PROJECTS_CREDENTIALS },
		{ name: VIEWS.PROJECTS_EXECUTIONS },
		{ name: VIEWS.PROJECTS_FOLDERS },
		{ name: VIEWS.PROJECTS_VARIABLES }
	]
};
const projectsRoutes = [
	{
		path: "/projects",
		name: VIEWS.PROJECTS,
		meta: { middleware: ["authenticated"] },
		redirect: "/home/workflows",
		children: [{
			name: VIEWS.PROJECT_DETAILS,
			path: ":projectId",
			meta: { middleware: ["authenticated"] },
			redirect: { name: VIEWS.PROJECTS_WORKFLOWS },
			children: commonChildRoutes.map((route, idx) => ({
				...route,
				name: commonChildRouteExtensions.projects[idx].name
			})).concat([{
				path: "settings",
				name: VIEWS.PROJECT_SETTINGS,
				components: {
					default: ProjectSettings,
					sidebar: MainSidebar$1
				},
				meta: {
					middleware: ["authenticated", "custom"],
					middlewareOptions: { custom: (options) => {
						return !!getResourcePermissions(useProjectsStore().myProjects.find((p) => p.id === options?.to.params.projectId)?.scopes).project.update;
					} }
				}
			}])
		}]
	},
	{
		path: "/home",
		name: VIEWS.HOMEPAGE,
		meta: { middleware: ["authenticated"] },
		redirect: "/home/workflows",
		beforeEnter: (_to, _from, next) => {
			const insightsStore = useInsightsStore();
			if (insightsStore.isSummaryEnabled) insightsStore.weeklySummary.execute();
			next();
		},
		children: commonChildRoutes.map((route, idx) => ({
			...route,
			name: commonChildRouteExtensions.home[idx].name
		}))
	},
	{
		path: "/shared",
		name: VIEWS.SHARED_WITH_ME,
		meta: { middleware: ["authenticated"] },
		redirect: "/shared/workflows",
		children: [{
			path: "workflows",
			name: VIEWS.SHARED_WORKFLOWS,
			components: {
				default: WorkflowsView,
				sidebar: MainSidebar$1
			},
			meta: {
				middleware: ["authenticated", "custom"],
				middlewareOptions: { custom: (options) => checkProjectAvailability(options?.to) }
			}
		}, {
			path: "credentials/:credentialId?",
			props: true,
			name: VIEWS.SHARED_CREDENTIALS,
			components: {
				default: CredentialsView,
				sidebar: MainSidebar$1
			},
			meta: {
				middleware: ["authenticated", "custom"],
				middlewareOptions: { custom: (options) => checkProjectAvailability(options?.to) }
			}
		}]
	},
	{
		path: "/workflows",
		redirect: "/home/workflows"
	},
	{
		path: "/credentials",
		redirect: "/home/credentials"
	},
	{
		path: "/executions",
		redirect: "/home/executions"
	},
	{
		path: "/variables",
		redirect: "/home/variables"
	}
];
var ChangePasswordView = async () => await __vitePreload(() => import("./ChangePasswordView-BD-064CV.js"), __vite__mapDeps([176,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,93,177,178]));
var ErrorView = async () => await __vitePreload(() => import("./ErrorView-Bs8I2RAS.js"), __vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,180]));
var EntityNotFound = async () => await __vitePreload(() => import("./EntityNotFound-ZTIfWY7r.js"), __vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10,11,12,13,14,182]));
var EntityUnAuthorised = async () => await __vitePreload(() => import("./EntityUnAuthorised-GVQGWnp6.js"), __vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10,11,12,13,14,184]));
var OAuthConsentView = async () => await __vitePreload(() => import("./OAuthConsentView-Dea7moR6.js"), __vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,102,186]));
var ForgotMyPasswordView = async () => await __vitePreload(() => import("./ForgotMyPasswordView-Nt8nYf2l.js"), __vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,93,177,178]));
var MainHeader = async () => await __vitePreload(() => import("./MainHeader-BuKk_R6q.js"), __vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,189,26,27,86,72,87,88,56,89,90,145,40,41,94,190,191,91,92,192,193,147,55,45,46,29,47,194,195,196,197,198,143,144,73,74,146,199,33,200,100,102,136,137,154,201]));
var MainSidebar = async () => await __vitePreload(() => import("./MainSidebar-DOYbjNAp.js"), __vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]));
var LogsPanel = async () => await __vitePreload(() => import("./LogsPanel-D8JcKeBp.js"), __vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,203,189,26,27,86,72,87,88,56,89,90,145,40,41,94,190,204,205,206,207,192,193,208,172,168,158,209,210,211,212,213,214,115,215,118,119,216,166,167,96,97,217,194,195,34,98,218]));
var DemoFooter = async () => await __vitePreload(() => import("./DemoFooter-B17ZFzvK.js"), __vite__mapDeps([219,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,203,189,26,27,86,72,87,88,56,89,90,145,40,41,94,190,204,205,206,207,192,193,208,172,168,158,209,210,211,212,213,214,115,215,118,119,216,166,167,96,97,217,194,195,34,98,218]));
var NodeView = async () => await __vitePreload(() => import("./NodeView-ChBMYGJn.js"), __vite__mapDeps([220,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,203,189,26,27,86,72,87,88,56,89,90,145,40,41,94,190,204,205,206,207,192,193,208,172,168,158,209,210,211,221,222,223,69,77,224,141,142,96,97,225,226,227,228,229,230,115,231,232,233,234,61,235,236,237,238,239,194,195,34,240,29,199,33,147,148,241,242,37,243]));
var WorkflowExecutionsView = async () => await __vitePreload(() => import("./WorkflowExecutionsView-BS3q9sGB.js"), __vite__mapDeps([244,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,69,40,26,27,41,86,72,87,88,56,89,94,29,245,33,145,168,169,170,136,137,154,171,246,247,172,248]));
var WorkflowExecutionsLandingPage = async () => await __vitePreload(() => import("./WorkflowExecutionsLandingPage-DXkkpO0F.js"), __vite__mapDeps([249,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,94,145,88,24,25,246,247,250]));
var WorkflowExecutionsPreview = async () => await __vitePreload(() => import("./WorkflowExecutionsPreview-xm4L-xBQ.js"), __vite__mapDeps([251,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,29,252,89,253,33,25,168,242,172,170,136,137,254]));
var SettingsView = async () => await __vitePreload(() => import("./SettingsView-CS3Pyqpr.js"), __vite__mapDeps([255,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,256]));
var SettingsLdapView = async () => await __vitePreload(() => import("./SettingsLdapView--aVLvL8q.js"), __vite__mapDeps([257,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,223,18,19,20,21,40,26,22,27,41,258,79,93,29,33,25,259]));
var SettingsPersonalView = async () => await __vitePreload(() => import("./SettingsPersonalView-Bhkvx-3E.js"), __vite__mapDeps([260,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,93,25,261,262]));
var SettingsUsersView = async () => await __vitePreload(() => import("./SettingsUsersView-BqphI-fZ.js"), __vite__mapDeps([263,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,78,161,162,93,163,29,47,72,33,25,168,264]));
var SettingsCommunityNodesView = async () => await __vitePreload(() => import("./SettingsCommunityNodesView-1maD2w7I.js"), __vite__mapDeps([265,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,189,26,27,86,72,87,88,56,89,90,145,40,41,94,236,191,91,92,192,193,147,55,266]));
var SettingsApiView = async () => await __vitePreload(() => import("./SettingsApiView-DNG_upYF.js"), __vite__mapDeps([267,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,234,40,26,22,27,41,268,29,33,25,269]));
var SettingsLogStreamingView = async () => await __vitePreload(() => import("./SettingsLogStreamingView-BzNU4UEM.js"), __vite__mapDeps([270,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,234,40,26,22,27,41,271,29,33,25,272]));
var SetupView = async () => await __vitePreload(() => import("./SetupView-B7Hd7eRc.js"), __vite__mapDeps([273,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,93,177,178]));
var SigninView = async () => await __vitePreload(() => import("./SigninView-DDSimbYv.js"), __vite__mapDeps([274,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,93,261,177,178,275]));
var SignupView = async () => await __vitePreload(() => import("./SignupView-CzTI_rlY.js"), __vite__mapDeps([276,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,93,177,178]));
var TemplatesCollectionView = async () => await __vitePreload(() => import("./TemplatesCollectionView-DyA6x7e7.js"), __vite__mapDeps([277,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,43,278,279,96,23,97,280,281,22,25,227,24,282,283,284,285,286]));
var TemplatesWorkflowView = async () => await __vitePreload(() => import("./TemplatesWorkflowView-CkwIzCbg.js"), __vite__mapDeps([287,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,43,278,279,96,23,97,252,89,253,25,227,24,282,283,284,285,288]));
var SetupWorkflowFromTemplateView = async () => await __vitePreload(() => import("./SetupWorkflowFromTemplateView-BNbX8eDP.js"), __vite__mapDeps([289,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,278,279,96,23,97,22,25,290,227,130,131,285,291,24,284,292]));
var TemplatesSearchView = async () => await __vitePreload(() => import("./TemplatesSearchView-AZGrUHxt.js"), __vite__mapDeps([293,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,42,43,278,279,96,23,97,280,281,25,24,294]));
var SettingsUsageAndPlan = async () => await __vitePreload(() => import("./SettingsUsageAndPlan-BQh0-fFq.js"), __vite__mapDeps([295,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,77,41,26,22,27,140,29,33,25,296]));
var SettingsSso = async () => await __vitePreload(() => import("./SettingsSso-GsGW161J.js"), __vite__mapDeps([297,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,222,18,19,20,21,77,41,40,26,22,27,93,163,29,298,72,299,33,25,300]));
var SignoutView = async () => await __vitePreload(() => import("./SignoutView-BISPgbyd.js"), __vite__mapDeps([301,4,5,6,7,8,16,11,17,18,19,20,21,26,22,27]));
var SamlOnboarding = async () => await __vitePreload(() => import("./SamlOnboarding-BFScr_jy.js"), __vite__mapDeps([302,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,93,177,178]));
var SettingsSourceControl = async () => await __vitePreload(() => import("./SettingsSourceControl-BNEttc8G.js"), __vite__mapDeps([303,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,29,298,72,299,33,25,304]));
var SettingsExternalSecrets = async () => await __vitePreload(() => import("./SettingsExternalSecrets-B_IARxBy.js"), __vite__mapDeps([305,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,29,33,25,306,158,307,308]));
var WorkerView = async () => await __vitePreload(() => import("./WorkerView-1QHe-EwK.js"), __vite__mapDeps([309,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,310,189,26,27,86,72,87,88,56,89,90,145,40,41,94,311,191,91,92,192,193,147,55,28,29,196,33,312]));
var WorkflowHistory = async () => await __vitePreload(() => import("./WorkflowHistory-DgyJDSpy.js"), __vite__mapDeps([313,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,190,29,252,89,253,245,33,25,314]));
var WorkflowOnboardingView = async () => await __vitePreload(() => import("./WorkflowOnboardingView-BuzqMVa-.js"), __vite__mapDeps([315,8,5,6,16,7,11,17,18,19,20,21,25,24]));
var EvaluationsView = async () => await __vitePreload(() => import("./EvaluationsView-Bcwkxj9k.js"), __vite__mapDeps([316,1,2,3,4,5,6,7,8,9,10,11,12,13,14,310,16,17,18,19,20,21,26,22,27,258,79,42,311,166,167,168,317,318,319]));
var TestRunDetailView = async () => await __vitePreload(() => import("./TestRunDetailView-C-xyOndW.js"), __vite__mapDeps([320,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,26,22,27,258,79,42,200,168,317,318,321]));
var EvaluationRootView = async () => await __vitePreload(() => import("./EvaluationsRootView-B_SZ8izU.js"), __vite__mapDeps([322,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,86,72,87,88,56,89,140,29,33,323]));
var PrebuiltAgentTemplatesView = async () => await __vitePreload(() => import("./PrebuiltAgentTemplatesView-Bn1Rv64d.js"), __vite__mapDeps([324,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,96,97,52,53,325]));
var MigrationReportView = async () => await __vitePreload(() => import("./MigrationRules-Ql4Iwh3V.js"), __vite__mapDeps([326,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,19,42,327,328,329]));
var MigrationRuleReportView = async () => await __vitePreload(() => import("./MigrationRuleDetail-CcmCpTPN.js"), __vite__mapDeps([330,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,42,43,45,46,327,328,47,48,49,50,51,331]));
function getTemplatesRedirect(defaultRedirect) {
	if (!useSettingsStore().isTemplatesEnabled) return { name: `${defaultRedirect}` || VIEWS.NOT_FOUND };
	return false;
}
const routes = [
	{
		path: "/",
		redirect: "/home/workflows",
		meta: { middleware: ["authenticated"] }
	},
	{
		path: "/collections/:id",
		name: VIEWS.COLLECTION,
		components: {
			default: TemplatesCollectionView,
			sidebar: MainSidebar
		},
		meta: {
			templatesEnabled: true,
			telemetry: { getProperties(route) {
				const templatesStore = useTemplatesStore();
				return {
					collection_id: route.params.id,
					wf_template_repo_session_id: templatesStore.currentSessionId
				};
			} },
			getRedirect: getTemplatesRedirect,
			middleware: ["authenticated"]
		}
	},
	{
		path: "/templates/agents",
		name: VIEWS.PRE_BUILT_AGENT_TEMPLATES,
		components: {
			default: PrebuiltAgentTemplatesView,
			sidebar: MainSidebar
		},
		meta: {
			templatesEnabled: true,
			getRedirect: getTemplatesRedirect,
			middleware: ["authenticated"]
		},
		beforeEnter: (_to, _from, next) => {
			const calloutHelpers = useCalloutHelpers();
			const templatesStore = useTemplatesStore();
			if (!calloutHelpers.isPreBuiltAgentsCalloutVisible.value) window.location.href = templatesStore.websiteTemplateRepositoryURL;
			else next();
		}
	},
	{
		path: "/templates/:id",
		name: VIEWS.TEMPLATE,
		components: {
			default: TemplatesWorkflowView,
			sidebar: MainSidebar
		},
		meta: {
			templatesEnabled: true,
			getRedirect: getTemplatesRedirect,
			telemetry: { getProperties(route) {
				const templatesStore = useTemplatesStore();
				return {
					template_id: tryToParseNumber(Array.isArray(route.params.id) ? route.params.id[0] : route.params.id),
					wf_template_repo_session_id: templatesStore.currentSessionId
				};
			} },
			middleware: ["authenticated"]
		}
	},
	{
		path: "/templates/:id/setup",
		name: VIEWS.TEMPLATE_SETUP,
		components: {
			default: SetupWorkflowFromTemplateView,
			sidebar: MainSidebar
		},
		meta: {
			templatesEnabled: true,
			getRedirect: getTemplatesRedirect,
			telemetry: { getProperties(route) {
				const templatesStore = useTemplatesStore();
				return {
					template_id: tryToParseNumber(Array.isArray(route.params.id) ? route.params.id[0] : route.params.id),
					wf_template_repo_session_id: templatesStore.currentSessionId
				};
			} },
			middleware: ["authenticated"]
		},
		beforeEnter: (to, _from, next) => {
			if (usePostHog().getVariant(TEMPLATE_SETUP_EXPERIENCE.name) === TEMPLATE_SETUP_EXPERIENCE.variant) next({
				name: VIEWS.TEMPLATE_IMPORT,
				params: { id: to.params.id }
			});
			else next();
		}
	},
	{
		path: "/templates/",
		name: VIEWS.TEMPLATES,
		components: {
			default: TemplatesSearchView,
			sidebar: MainSidebar
		},
		meta: {
			templatesEnabled: true,
			getRedirect: getTemplatesRedirect,
			scrollOffset: 0,
			telemetry: { getProperties() {
				return { wf_template_repo_session_id: useTemplatesStore().currentSessionId };
			} },
			setScrollPosition(pos) {
				this.scrollOffset = pos;
			},
			middleware: ["authenticated"]
		},
		beforeEnter: (_to, _from, next) => {
			const templatesStore = useTemplatesStore();
			if (!templatesStore.hasCustomTemplatesHost) window.location.href = templatesStore.websiteTemplateRepositoryURL;
			else next();
		}
	},
	{
		path: "/workflow/:name/debug/:executionId",
		name: VIEWS.EXECUTION_DEBUG,
		components: {
			default: NodeView,
			header: MainHeader,
			sidebar: MainSidebar,
			footer: LogsPanel
		},
		meta: {
			nodeView: true,
			keepWorkflowAlive: true,
			middleware: ["authenticated", "enterprise"],
			middlewareOptions: { enterprise: { feature: [EnterpriseEditionFeature.DebugInEditor] } }
		}
	},
	{
		path: "/workflow/:name/executions",
		name: VIEWS.WORKFLOW_EXECUTIONS,
		components: {
			default: WorkflowExecutionsView,
			header: MainHeader,
			sidebar: MainSidebar
		},
		meta: {
			keepWorkflowAlive: true,
			middleware: ["authenticated"]
		},
		children: [{
			path: "",
			name: VIEWS.EXECUTION_HOME,
			components: { executionPreview: WorkflowExecutionsLandingPage },
			meta: {
				keepWorkflowAlive: true,
				middleware: ["authenticated"]
			}
		}, {
			path: ":executionId/:nodeId?",
			name: VIEWS.EXECUTION_PREVIEW,
			components: { executionPreview: WorkflowExecutionsPreview },
			meta: {
				keepWorkflowAlive: true,
				middleware: ["authenticated"]
			}
		}]
	},
	{
		path: "/workflow/:name/evaluation",
		name: VIEWS.EVALUATION,
		components: {
			default: EvaluationRootView,
			header: MainHeader,
			sidebar: MainSidebar
		},
		props: { default: true },
		meta: {
			keepWorkflowAlive: true,
			middleware: ["authenticated"]
		},
		children: [{
			path: "",
			name: VIEWS.EVALUATION_EDIT,
			component: EvaluationsView,
			props: true
		}, {
			path: "test-runs/:runId",
			name: VIEWS.EVALUATION_RUNS_DETAIL,
			component: TestRunDetailView,
			props: true
		}]
	},
	{
		path: "/workflow/:workflowId/history/:versionId?",
		name: VIEWS.WORKFLOW_HISTORY,
		components: {
			default: WorkflowHistory,
			sidebar: MainSidebar
		},
		meta: { middleware: ["authenticated"] }
	},
	{
		path: "/workflows/templates/:id",
		name: VIEWS.TEMPLATE_IMPORT,
		components: {
			default: NodeView,
			header: MainHeader,
			sidebar: MainSidebar
		},
		meta: {
			templatesEnabled: true,
			keepWorkflowAlive: true,
			getRedirect: getTemplatesRedirect,
			middleware: ["authenticated"]
		}
	},
	{
		path: "/workflows/onboarding/:id",
		name: VIEWS.WORKFLOW_ONBOARDING,
		components: {
			default: WorkflowOnboardingView,
			header: MainHeader,
			sidebar: MainSidebar
		},
		meta: {
			templatesEnabled: true,
			keepWorkflowAlive: true,
			getRedirect: () => getTemplatesRedirect(VIEWS.NEW_WORKFLOW),
			middleware: ["authenticated"]
		}
	},
	{
		path: "/workflow/new",
		name: VIEWS.NEW_WORKFLOW,
		components: {
			default: NodeView,
			header: MainHeader,
			sidebar: MainSidebar,
			footer: LogsPanel
		},
		meta: {
			nodeView: true,
			keepWorkflowAlive: true,
			middleware: ["authenticated"]
		}
	},
	{
		path: "/workflows/demo",
		name: VIEWS.DEMO,
		components: {
			default: NodeView,
			footer: DemoFooter
		},
		meta: {
			middleware: ["authenticated"],
			middlewareOptions: { authenticated: { bypass: () => {
				return useSettingsStore().isPreviewMode;
			} } }
		}
	},
	{
		path: "/workflow/:name/:nodeId?",
		name: VIEWS.WORKFLOW,
		components: {
			default: NodeView,
			header: MainHeader,
			sidebar: MainSidebar,
			footer: LogsPanel
		},
		meta: {
			nodeView: true,
			keepWorkflowAlive: true,
			middleware: ["authenticated"]
		}
	},
	{
		path: "/workflow",
		redirect: "/workflow/new"
	},
	{
		path: "/signin",
		name: VIEWS.SIGNIN,
		components: { default: SigninView },
		meta: {
			telemetry: { pageCategory: "auth" },
			middleware: ["guest"]
		}
	},
	{
		path: "/signup",
		name: VIEWS.SIGNUP,
		components: { default: SignupView },
		meta: {
			telemetry: { pageCategory: "auth" },
			middleware: ["guest"]
		}
	},
	{
		path: "/signout",
		name: VIEWS.SIGNOUT,
		components: { default: SignoutView },
		meta: {
			telemetry: { pageCategory: "auth" },
			middleware: ["authenticated"]
		}
	},
	{
		path: "/oauth/consent",
		name: VIEWS.OAUTH_CONSENT,
		components: { default: OAuthConsentView },
		meta: { middleware: ["authenticated"] }
	},
	{
		path: "/setup",
		name: VIEWS.SETUP,
		components: { default: SetupView },
		meta: {
			middleware: ["defaultUser"],
			telemetry: { pageCategory: "auth" }
		}
	},
	{
		path: "/forgot-password",
		name: VIEWS.FORGOT_PASSWORD,
		components: { default: ForgotMyPasswordView },
		meta: {
			middleware: ["guest"],
			telemetry: { pageCategory: "auth" }
		}
	},
	{
		path: "/change-password",
		name: VIEWS.CHANGE_PASSWORD,
		components: { default: ChangePasswordView },
		meta: {
			middleware: ["guest"],
			telemetry: { pageCategory: "auth" }
		}
	},
	{
		path: "/settings",
		name: VIEWS.SETTINGS,
		component: SettingsView,
		props: true,
		redirect: () => {
			if (useSettingsStore().settings.hideUsagePage) return { name: VIEWS.PERSONAL_SETTINGS };
			return { name: VIEWS.USAGE };
		},
		children: [
			{
				path: "usage",
				name: VIEWS.USAGE,
				components: { settingsView: SettingsUsageAndPlan },
				meta: {
					middleware: ["authenticated", "custom"],
					middlewareOptions: { custom: () => {
						return !useSettingsStore().settings.hideUsagePage;
					} },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "usage" };
						}
					}
				}
			},
			{
				path: "migration-report",
				components: { settingsView: RouterView },
				children: [{
					path: "",
					name: VIEWS.MIGRATION_REPORT,
					component: MigrationReportView
				}, {
					path: ":migrationRuleId",
					name: VIEWS.MIGRATION_RULE_REPORT,
					component: MigrationRuleReportView,
					props: true
				}],
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: ["breakingChanges:list"] } },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "migration-report" };
						}
					}
				}
			},
			{
				path: "personal",
				name: VIEWS.PERSONAL_SETTINGS,
				components: { settingsView: SettingsPersonalView },
				meta: {
					middleware: ["authenticated"],
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "personal" };
						}
					}
				}
			},
			{
				path: "users",
				name: VIEWS.USERS_SETTINGS,
				components: { settingsView: SettingsUsersView },
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: ["user:create", "user:update"] } },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "users" };
						}
					}
				}
			},
			{
				path: "project-roles",
				components: { settingsView: RouterView },
				children: [
					{
						path: "",
						name: VIEWS.PROJECT_ROLES_SETTINGS,
						component: async () => await __vitePreload(() => import("./ProjectRolesView-D_NHXAxE.js"), __vite__mapDeps([332,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,95,29,33,25,333]))
					},
					{
						path: "new",
						name: VIEWS.PROJECT_NEW_ROLE,
						component: async () => await __vitePreload(() => import("./ProjectRoleView-DO5KycF7.js"), __vite__mapDeps([334,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,95,335]))
					},
					{
						path: "edit/:roleSlug",
						name: VIEWS.PROJECT_ROLE_SETTINGS,
						component: async () => await __vitePreload(() => import("./ProjectRoleView-DO5KycF7.js"), __vite__mapDeps([334,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,40,26,22,27,41,95,335]))
					}
				],
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: ["role:manage"] } },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "project-roles" };
						}
					}
				}
			},
			{
				path: "api",
				name: VIEWS.API_SETTINGS,
				components: { settingsView: SettingsApiView },
				meta: {
					middleware: ["authenticated"],
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "api" };
						}
					}
				}
			},
			{
				path: "environments",
				name: VIEWS.SOURCE_CONTROL,
				components: { settingsView: SettingsSourceControl },
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: "sourceControl:manage" } },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "environments" };
						}
					}
				}
			},
			{
				path: "external-secrets",
				name: VIEWS.EXTERNAL_SECRETS_SETTINGS,
				components: { settingsView: SettingsExternalSecrets },
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: ["externalSecretsProvider:list", "externalSecretsProvider:update"] } },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "external-secrets" };
						}
					}
				}
			},
			{
				path: "sso",
				name: VIEWS.SSO_SETTINGS,
				components: { settingsView: SettingsSso },
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: "saml:manage" } },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "sso" };
						}
					}
				}
			},
			{
				path: "log-streaming",
				name: VIEWS.LOG_STREAMING_SETTINGS,
				components: { settingsView: SettingsLogStreamingView },
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: "logStreaming:manage" } },
					telemetry: { pageCategory: "settings" }
				}
			},
			{
				path: "workers",
				name: VIEWS.WORKER_VIEW,
				components: { settingsView: WorkerView },
				meta: { middleware: ["authenticated"] }
			},
			{
				path: "community-nodes",
				name: VIEWS.COMMUNITY_NODES,
				components: { settingsView: SettingsCommunityNodesView },
				meta: {
					middleware: [
						"authenticated",
						"rbac",
						"custom"
					],
					middlewareOptions: {
						rbac: { scope: ["communityPackage:list", "communityPackage:update"] },
						custom: () => {
							return useSettingsStore().isCommunityNodesFeatureEnabled;
						}
					},
					telemetry: { pageCategory: "settings" }
				}
			},
			{
				path: "ldap",
				name: VIEWS.LDAP_SETTINGS,
				components: { settingsView: SettingsLdapView },
				meta: {
					middleware: ["authenticated", "rbac"],
					middlewareOptions: { rbac: { scope: "ldap:manage" } }
				}
			}
		]
	},
	{
		path: "/saml/onboarding",
		name: VIEWS.SAML_ONBOARDING,
		components: { default: SamlOnboarding },
		meta: {
			middleware: ["authenticated", "custom"],
			middlewareOptions: { custom: () => {
				const settingsStore = useSettingsStore();
				return useSSOStore().isEnterpriseSamlEnabled && !settingsStore.isCloudDeployment;
			} },
			telemetry: { pageCategory: "auth" }
		}
	},
	...projectsRoutes,
	{
		path: "/entity-not-found/:entityType(credential|workflow)",
		props: true,
		name: VIEWS.ENTITY_NOT_FOUND,
		components: {
			default: EntityNotFound,
			sidebar: MainSidebar
		}
	},
	{
		path: "/entity-not-authorized/:entityType(credential|workflow)",
		props: true,
		name: VIEWS.ENTITY_UNAUTHORIZED,
		components: {
			default: EntityUnAuthorised,
			sidebar: MainSidebar
		}
	},
	{
		path: "/:pathMatch(.*)*",
		name: VIEWS.NOT_FOUND,
		component: ErrorView,
		props: {
			messageKey: "error.pageNotFound",
			errorCode: 404,
			redirectTextKey: "error.goBack",
			redirectPage: VIEWS.HOMEPAGE
		},
		meta: {
			nodeView: true,
			telemetry: { disabled: true }
		}
	}
];
function withCanvasReadOnlyMeta(route) {
	if (!route.meta) route.meta = {};
	route.meta.readOnlyCanvas = !EDITABLE_CANVAS_VIEWS.includes(route?.name ?? "");
	if (route.children) route.children = route.children.map(withCanvasReadOnlyMeta);
	return route;
}
var router = createRouter({
	history: createWebHistory(window.BASE_PATH ?? "/"),
	scrollBehavior(to, _, savedPosition) {
		if (savedPosition === null && to.name === VIEWS.TEMPLATES && to.meta?.setScrollPosition) to.meta.setScrollPosition(0);
	},
	routes: routes.map(withCanvasReadOnlyMeta)
});
router.beforeEach(async (to, from, next) => {
	try {
		await initializeCore();
		await initializeAuthenticatedFeatures(void 0, to.name);
		if (useSettingsStore().showSetupPage) {
			if (to.name === VIEWS.SETUP) return next();
			return next({ name: VIEWS.SETUP });
		}
		const routeMiddleware = to.meta?.middleware ?? [];
		const routeMiddlewareOptions = to.meta?.middlewareOptions ?? {};
		for (const middlewareName of routeMiddleware) {
			let nextCalled = false;
			const middlewareNext = ((location) => {
				next(location);
				nextCalled = true;
			});
			const middlewareOptions = routeMiddlewareOptions[middlewareName];
			const middlewareFn = middleware[middlewareName];
			await middlewareFn(to, from, middlewareNext, middlewareOptions);
			if (nextCalled) return;
		}
		return next();
	} catch (failure) {
		const settingsStore = useSettingsStore();
		if (failure instanceof MfaRequiredError && settingsStore.isMFAEnforced) if (to.name !== VIEWS.PERSONAL_SETTINGS) return next({ name: VIEWS.PERSONAL_SETTINGS });
		else return next();
		if (isNavigationFailure(failure)) console.log(failure);
		else console.error(failure);
	}
});
router.afterEach((to, from) => {
	try {
		const telemetry = useTelemetry();
		const uiStore = useUIStore();
		const templatesStore = useTemplatesStore();
		useExternalHooks().run("main.routeChange", {
			from,
			to
		});
		uiStore.currentView = to.name ?? "";
		if (to.meta?.templatesEnabled) templatesStore.setSessionId();
		else templatesStore.resetSessionId();
		telemetry.page(to);
		const { trackResourceOpened } = useRecentResources();
		trackResourceOpened(to);
	} catch (failure) {
		if (isNavigationFailure(failure)) console.log(failure);
		else console.error(failure);
	}
});
var router_default = router;
export { registerModuleRoutes as n, router_default as t };