UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2,648 lines 120 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainSidebar-C5ZrVVEP.js","assets/_plugin-vue_export-helper-BwBpWJRZ.js","assets/src-DgvumQTi.js","assets/preload-helper-CR0ecmWK.js","assets/truncate-B1HVeveJ.js","assets/_MapCache-ficiegRb.js","assets/vue.runtime.esm-bundler-tP5dCd7J.js","assets/chunk-6z4oVpB-.js","assets/CalendarDate-zWqgZMlk.js","assets/sanitize-html-Cc45ZKm8.js","assets/empty-BuGRxzl4.js","assets/path-browserify-BtCDmZ3_.js","assets/en-CF30SCh2.js","assets/src-CMoPZtHv.css","assets/nodeCreator.store-FJrC_Pu6.js","assets/constants-BbpucWL4.js","assets/merge-k8vSyyXH.js","assets/builder.store-sBTWwxRU.js","assets/_baseOrderBy-B_6CV8x6.js","assets/dateformat-CM9k0--B.js","assets/useDebounce-Bnb8W2LR.js","assets/nodeIcon-DI2Acud1.js","assets/useRunWorkflow-BQJbxiOd.js","assets/useCanvasOperations-CAHezq7d.js","assets/usePinnedData-CL2qWhwp.js","assets/folders.store-BjAwtSH4.js","assets/executions.store-CXjGPxs0.js","assets/retry-dP46utx2.js","assets/uniqBy-BwIeMDu6.js","assets/sortByProperty-CV1aCzkS.js","assets/ProjectIcon-A2WPT9dM.js","assets/ProjectIcon-DT95ZcDW.css","assets/BottomMenu-D7MBdxcf.js","assets/versions.store-BwdT833-.js","assets/KeyboardShortcutTooltip-B4E72qs1.js","assets/KeyboardShortcutTooltip-pRLqnHdh.css","assets/useCommandBar-DX5Sf1tf.js","assets/NodeIcon-BVhrZNYI.js","assets/NodeIcon-BDxr0f30.css","assets/usePageRedirectionHelper-fGNB6ZKK.js","assets/chat.store-BGFxJU_3.js","assets/fileUtils-D_SiS8no.js","assets/constants-DLTaaipl.js","assets/dataTable.store-B4A4ieSD.js","assets/CredentialIcon-FEnE25SA.js","assets/CredentialIcon-bZrcXcyJ.css","assets/useRecentResources-BAGmp8Wq.js","assets/useCommandBar-eK4Fv9lH.css","assets/BottomMenu-CRVyIu-B.css","assets/useKeybindings-CKeFso4-.js","assets/useSettingsItems-C56tO9uy.js","assets/personalizedTemplatesV3.store-DKnHj23X.js","assets/sourceControl.eventBus-Bry8gLG7.js","assets/MainSidebar-CEsQ8o1Y.css","assets/DataTableView-rLuMoWkz.js","assets/orderBy-EuatZUAl.js","assets/TimeAgo-CWvYoS88.js","assets/smartDecimal-DK6-_VSq.js","assets/EnterpriseEdition.ee-UkQT-fFo.js","assets/ResourceFiltersDropdown-Zlm_bvSW.js","assets/ProjectSharing-IDL3ExN3.js","assets/ProjectSharing-5AaqsE7p.css","assets/ResourceFiltersDropdown-Cma1Lj9J.css","assets/PageViewLayout-BHSzOio1.js","assets/PageViewLayout-Cn6FD0Wt.css","assets/ResourcesListLayout-Bn_Simhk.js","assets/readyToRun.store-CsvyRJzn.js","assets/ResourcesListLayout-DLAMdJD5.css","assets/ProjectHeader-BTEy4evb.js","assets/ProjectHeader-DMoL829v.css","assets/DataTableActions-DPBh8vkF.js","assets/InsightsSummary-C8OjRO2B.js","assets/insights.constants-C8GITe6H.js","assets/insights.utils-B7OXsqrQ.js","assets/InsightsSummary-CnaRV949.css","assets/insights.store-BBo4cRMD.js","assets/DataTableView-ByKnlVtU.css","assets/DataTableDetailsView-Y7mEpv8T.js","assets/date-picker-B6nJ4qMb.js","assets/SelectedItemsInfo-D0fA_2Cw.js","assets/SelectedItemsInfo-DDbNnY7M.css","assets/useClipboard-CyG-SBdG.js","assets/ProjectBreadcrumb-C7tWU5jd.js","assets/ProjectBreadcrumb-CAEDvzuN.css","assets/DataTableDetailsView-CV4twGRm.css","assets/AddDataTableModal-DCAGS6g7.js","assets/dialog-D5O6wJX0.js","assets/radio-BeejvdFG.js","assets/_initCloneObject-Al9ZJ6PX.js","assets/Modal-CaRDt4OG.js","assets/Modal-DNkRJkUt.css","assets/AddDataTableModal-CZuODwEx.css","assets/InsightsDashboard-CvoL2zTR.js","assets/InsightsDashboard-CttFeZVb.css","assets/SettingsMCPView-wp8DNJKO.js","assets/banners.store-C9sgKjcT.js","assets/banners-UK5wWFEI.css","assets/sso.store-Ba2eVE3K.js","assets/roles.store-DcLW4g80.js","assets/WorkflowLocation-BSRxq9Yd.js","assets/WorkflowLocation-6rp_-CuW.css","assets/useMcp-DzTrtFvb.js","assets/mcp.store-Da5JCu0N.js","assets/mcp.constants-DQPD3Ntp.js","assets/SettingsMCPView-DIdodQTu.css","assets/MCPConnectWorkflowsModal-BBuNA5p_.js","assets/MCPConnectWorkflowsModal-CS2q8ice.css","assets/ChatSidebar-BD5s-qKe.js","assets/ChatAgentAvatar-DMLTyAJz.js","assets/ChatAgentAvatar-B68ZZ295.css","assets/ChatSidebar-DcNxY7Pt.css","assets/ChatView-B-FlkLG5.js","assets/VueMarkdown-D9lDzMKr.js","assets/useCustomAgent-DBhdLpPp.js","assets/useCustomAgent-tUoLIUar.css","assets/ChatFile-Dtf_b24Y.js","assets/ChatFile-DP6aSB_w.css","assets/ChatLayout-CIrtU9sd.js","assets/ChatLayout-CxM-3LAt.css","assets/ChatView-DrZ9gYjI.css","assets/ChatWorkflowAgentsView-CvTzrqVB.js","assets/SkeletonAgentCard-DRQYpdJw.js","assets/SkeletonAgentCard-zoEiPx0y.css","assets/ChatWorkflowAgentsView-BBfu-g98.css","assets/ChatPersonalAgentsView-BbxzXpMk.js","assets/ChatPersonalAgentsView-BiiyFIRl.css","assets/SettingsChatHubView-CHfhhMux.js","assets/SettingsChatHubView-zBt63VWY.css","assets/ToolsSelectorModal-BULcpsyv.js","assets/ToolsSelectorModal-B2z9ibQ0.css","assets/AgentEditorModal-D0zSOaNC.js","assets/AgentEditorModal-CnYw6elM.css","assets/CredentialSelectorModal-C95nx2mf.js","assets/CredentialPicker-C5gvgCLr.js","assets/CredentialPicker-CWT-qPMn.css","assets/CredentialSelectorModal-CKQNdS8g.css","assets/ModelByIdSelectorModal-vamZu1bJ.js","assets/ModelByIdSelectorModal-CF6s_557.css","assets/ProviderSettingsModal-BMHpVZVk.js","assets/TagsDropdown-LwHy1RX4.js","assets/TagsDropdown-Do1UB2LF.css","assets/ProviderSettingsModal-D_yY-993.css","assets/WorkflowsView-m1VCW6Gk.js","assets/usage.store-CzHvJOo_.js","assets/Draggable-04Tfmp_H.js","assets/Draggable-DfBtatxg.css","assets/WorkflowActivationErrorMessage-v37Lr_Ej.js","assets/WorkflowActivator-D3SAdw0t.js","assets/useWorkflowActivate-BhSS_xpK.js","assets/WorkflowActivator-BGcCOUCH.css","assets/aiTemplatesStarterCollection.store-DkHa_nSs.js","assets/readyToRunWorkflows.store-B6Onw3Wt.js","assets/TemplateCard-DcldzIe3.js","assets/TemplateCard-DxDBlS6p.css","assets/ProjectCardBadge-Dxz7K_4f.js","assets/ProjectCardBadge-XPHWNQHG.css","assets/EmptySharedSectionActionBox-dyxL2wTS.js","assets/WorkflowTagsDropdown-DEysJMrX.js","assets/WorkflowsView-C-PD10oe.css","assets/CredentialsView-CKWNcDc1.js","assets/pickBy-BFBQe_6R.js","assets/externalSecrets.ee.store-D27nc9Y2.js","assets/CredentialsView-BDOl2A0w.css","assets/ProjectSettings-CbYXdz34.js","assets/Alert-C3_SkWnL.js","assets/Alert-BA2uuWjw.css","assets/userRoleProvisioning.store-CCk1ab9D.js","assets/ProjectSettings-vir6puPd.css","assets/ExecutionsView-CJ28SmsB.js","assets/AnimatedSpinner-wiGFgffA.js","assets/AnimatedSpinner-CoP6Lyme.css","assets/dateFormatter-DDfPHI9I.js","assets/ExecutionsTime-BLYKUkCX.js","assets/AnnotationTagsDropdown.ee-CF7otrg2.js","assets/ExecutionsTime-BNPL8OYf.css","assets/useExecutionHelpers-BhJEW8lu.js","assets/ExecutionsView-D5X7zhxf.css","assets/ProjectVariables-CD8pxK-V.js","assets/ProjectVariables-CVX3Lygi.css","assets/ChangePasswordView-C7HtAXCU.js","assets/AuthView-TY21M5Xw.js","assets/AuthView-Dg9ZkCud.css","assets/ErrorView-BZ4-H-jz.js","assets/ErrorView-D2OMvGTk.css","assets/EntityNotFound-B97Lu2MP.js","assets/EntityNotFound-D6gi5ngN.css","assets/EntityUnAuthorised-Fbr1TiEL.js","assets/EntityUnAuthorised-D3XTbU6Y.css","assets/OAuthConsentView-CpHIbM7w.js","assets/OAuthConsentView-CXZbBKS5.css","assets/ForgotMyPasswordView-798fFqrK.js","assets/MainHeader-cPpOfg9e.js","assets/usePushConnection-DTJahVkB.js","assets/assistant.store-bS9AHOoo.js","assets/schemaPreview.store-BFprwUEe.js","assets/PushConnectionTracker-TnOaTBdr.js","assets/SaveButton-DJxU0D7G.js","assets/SaveButton-Dc01Y2MA.css","assets/useBeforeUnload-Dmmheunz.js","assets/useWorkflowsCache-K84an3SQ.js","assets/utils-C2GPI2gK.js","assets/MainHeader-CSaAWCWj.css","assets/LogsPanel-B6drfj46.js","assets/RunData-B4jIonVZ.js","assets/NDVEmptyState-CpUQ-969.js","assets/NDVEmptyState-Bho0_Ev8.css","assets/vue-json-pretty-DGKuDe33.js","assets/chatPanel.store-4qGv1TCZ.js","assets/RunDataHtml-CkjC7YuF.js","assets/RunDataHtml-Bu3RZcuV.css","assets/RunData-CGWkR8tE.css","assets/core-BbiIkN91.js","assets/core-6W4wWNc1.js","assets/xml-B6veOr9z.js","assets/useLogsTreeExpand-WR32ACA6.js","assets/useLogsTreeExpand-nZMKe2ps.css","assets/LogsPanel-3_gUGXJV.js","assets/LogsPanel-Ca8kVF-E.css","assets/DemoFooter-gHjxnkES.js","assets/NodeView-BuBc8ewU.js","assets/ParameterInputList-B4xJHjua.js","assets/exports-hpMZaOPT.js","assets/vue-Dg_43WEg.js","assets/VirtualSchema-D2LnRq9K.js","assets/useTelemetryContext-5Wb7vBCv.js","assets/useTelemetryContext-BpnKRIT7.css","assets/nodeTransforms-Lk_uXh7p.js","assets/TextWithHighlights-DjzuDrgO.js","assets/TextWithHighlights-BgbTzzK2.css","assets/VirtualSchema-CwutU4vj.css","assets/ParameterInputList-C1BdtAjc.css","assets/useCanvasMapping-xYnYeFUG.js","assets/NodeSettings-iHP6f-9G.js","assets/col-Cd5kWzv_.js","assets/CommunityNodeUpdateInfo-Cd_-b5Xu.js","assets/semver-CVsBQkSJ.js","assets/CommunityNodeUpdateInfo-kPDiipF5.css","assets/useActions-O8-gYbRP.js","assets/NodeSettings-BIOqhOCE.css","assets/useCanvasMapping-CyDAqgNV.css","assets/useExecutionData-4UjwITsD.js","assets/useExecutionDebugging-B73NIPYJ.js","assets/NodeView-AuBajxDh.css","assets/WorkflowExecutionsView-C8x85knP.js","assets/useIntersectionObserver-DXKoRNFj.js","assets/WorkflowExecutionsInfoAccordion-De8z4J-p.js","assets/WorkflowExecutionsInfoAccordion-CEOvJ-SX.css","assets/WorkflowExecutionsView-DG7ADJ0A.css","assets/WorkflowExecutionsLandingPage-9K4zURpY.js","assets/WorkflowExecutionsLandingPage-DMldlKod.css","assets/WorkflowExecutionsPreview-B6gUOskt.js","assets/WorkflowPreview-CMqGPBQJ.js","assets/WorkflowPreview-CYpzxJej.css","assets/WorkflowExecutionsPreview-BkXT82z5.css","assets/SettingsView-BkT_E3Ih.js","assets/SettingsView-6sirGv9l.css","assets/SettingsLdapView-Bg7EBXEG.js","assets/table-DzZuElSR.js","assets/SettingsLdapView-BuamZyhu.css","assets/SettingsPersonalView-ypZCgyx4.js","assets/auth.eventBus-B77G38R7.js","assets/SettingsPersonalView-DEpYU3TT.css","assets/SettingsUsersView-Dc-g7Os1.js","assets/SettingsUsersView-CfJcVjkl.css","assets/ResolversView-m_3rxS8y.js","assets/useCredentialResolvers-hAbB1CCv.js","assets/ResolversView-Bl6WIGF0.css","assets/SettingsCommunityNodesView-DxSUt_OC.js","assets/SettingsCommunityNodesView-m7kLUpJK.css","assets/SettingsApiView-DhXs2Y-_.js","assets/apiKeys.store-DnaeefCk.js","assets/SettingsApiView-Dtl_N9mK.css","assets/SettingsLogStreamingView-C2j3foZA.js","assets/logStreaming.store-Bz455qU8.js","assets/SettingsLogStreamingView-xo-rTSA0.css","assets/SetupView-DKxgJ4GN.js","assets/SigninView-UAhsgCqK.js","assets/SigninView-BQgsTN8o.css","assets/SignupView-DRVyeE5O.js","assets/TemplatesCollectionView-Df8X9jlG.js","assets/TemplatesView-oCiQur38.js","assets/TemplatesView-iSPzXjQB.css","assets/TemplateList-Bhr0TAFO.js","assets/TemplateList-CNUtq0N7.css","assets/TemplateDetails-DaX1NwUb.js","assets/TemplateDetails-DfyKyMyy.css","assets/templateActions-D7NBFcji.js","assets/templateTransforms-CdDWSirY.js","assets/TemplatesCollectionView-klb8FT9y.css","assets/TemplatesWorkflowView-wTii7YBP.js","assets/TemplatesWorkflowView-CBjRBbmw.css","assets/SetupWorkflowFromTemplateView-EmiFjoiF.js","assets/SetupTemplateFormStep-BnqPLZOK.js","assets/SetupTemplateFormStep-n3VY06cx.css","assets/SetupWorkflowFromTemplateView-CU2iGJTa.css","assets/TemplatesSearchView-CmLLM9IN.js","assets/TemplatesSearchView-BfT0LMil.css","assets/SettingsUsageAndPlan-B9CGe_bx.js","assets/SettingsUsageAndPlan-CX3b3V8W.css","assets/SettingsSso-pyuyn9zD.js","assets/CopyInput-DKOPkUXT.js","assets/CopyInput-BiDmlr9B.css","assets/SettingsSso-DPkEVc10.css","assets/SignoutView-CmT3zceq.js","assets/SamlOnboarding-CZRtCHdx.js","assets/SettingsSourceControl-BgHM1q8f.js","assets/SettingsSourceControl-DEs9MNB6.css","assets/SettingsExternalSecrets-DpysvZkb.js","assets/ExternalSecretsProviderConnectionSwitch.ee-DJrPUTjV.js","assets/ExternalSecretsProviderConnectionSwitch-dpp96SMy.css","assets/SettingsExternalSecrets-CaiOf7cD.css","assets/WorkerView-DXyrg8WH.js","assets/chart-CE3HWIkr.js","assets/dist-DP_8je0B.js","assets/WorkerView-dRylOW7G.css","assets/WorkflowHistory-ChsTl1xO.js","assets/WorkflowHistory-BBHdNsOb.css","assets/WorkflowOnboardingView-DpmvepH9.js","assets/EvaluationsView-DXaAjsX4.js","assets/evaluation.constants-CJqUkQ3G.js","assets/evaluation-CGxdCHrN.css","assets/EvaluationsView-CmcDUAS_.css","assets/TestRunDetailView-DDbCuy5Q.js","assets/TestRunDetailView-CVGty0j0.css","assets/EvaluationsRootView-DDDzM_6p.js","assets/EvaluationsRootView-D22182Fd.css","assets/PrebuiltAgentTemplatesView-D-PTeVl8.js","assets/PrebuiltAgentTemplatesView-jF7HvWnL.css","assets/MigrationRules-PJwNVPfC.js","assets/SeverityTag-Zfb28dUc.js","assets/SeverityTag-C0hCvHeU.css","assets/MigrationRules-wMqorxjv.css","assets/MigrationRuleDetail-BHMsvA_3.js","assets/MigrationRuleDetail-4tgkxxhX.css","assets/ProjectRolesView-SHPe5Zla.js","assets/ProjectRolesView-CZqQ656d.css","assets/ProjectRoleView-D96quN06.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, Gt as unref, L as h, M as createVNode, P as defineComponent, T as createBlock, bt as withCtx, et as openBlock, j as createTextVNode, ot as resolveComponent } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
import { _t as useI18n, mt as i18n, vt as I18nT } from "./_MapCache-ficiegRb.js";
import { t as __vitePreload } from "./preload-helper-CR0ecmWK.js";
import { g as isNavigationFailure, h as createWebHistory, m as createRouter, p as RouterView } from "./truncate-B1HVeveJ.js";
import { Cr as shouldEnableMfa, Dr as useUsersStore, Er as hasRole, Nt as useNodeTypesStore, O as useTelemetry, Sr as isAuthenticated, Tr as useRBACStore, Xi as tryToParseNumber, Xn as useProjectsStore, Zn as useSourceControlStore, b as useExternalHooks, br as isEnterpriseFeatureEnabled, c as useTemplatesStore, ca as register, fs as v4_default, gs as useSettingsStore, h as useNpsSurveyStore, j as usePostHog, oa as useUIStore, p as useCloudPlanStore, v as useToast, vr as hasPermission, wr as hasScope, xr as isDefaultUser, yr as isGuest } from "./builder.store-sBTWwxRU.js";
import { C as require_range, S as require_syntax, _ as require_has_symbols, a as require_callBound, b as require_gopd, c as require_has_property_descriptors, d as require_hasown, o as require_call_bind, u as require_get_intrinsic, w as require_es_object_atoms, x as require_type, y as require_es_define_property } from "./empty-BuGRxzl4.js";
import { n as require_object_inspect } from "./sanitize-html-Cc45ZKm8.js";
import { Ba as require_shams, Fa as require_safe_regex_test$1, Gr as PROJECT_DATA_TABLES, Ia as require_is_regex, Io as EDITABLE_CANVAS_VIEWS, La as require_call_bound, Ni as require_define_properties, Nr as DATA_TABLE_VIEW, Oo as getResourcePermissions, Or as DATA_TABLE_DETAILS, Pa as require_is_callable, Ra as require_callBound$1, Ro as VIEWS, bc as EnterpriseEditionFeature, vc as TEMPLATE_SETUP_EXPERIENCE, wr as ADD_DATA_TABLE_MODAL_KEY, za as require_call_bind$1 } from "./constants-BbpucWL4.js";
import { a as MfaRequiredError, r as useRootStore } from "./_baseOrderBy-B_6CV8x6.js";
import { _ as useCalloutHelpers } from "./nodeCreator.store-FJrC_Pu6.js";
import { t as useVersionsStore } from "./versions.store-BwdT833-.js";
import { t as useBannersStore } from "./banners.store-C9sgKjcT.js";
import { t as useDataTableStore } from "./dataTable.store-B4A4ieSD.js";
import { t as useRolesStore } from "./roles.store-DcLW4g80.js";
import { n as useSSOStore } from "./sso.store-Ba2eVE3K.js";
import { t as useInsightsStore } from "./insights.store-BBo4cRMD.js";
import { i as MCP_CONNECT_WORKFLOWS_MODAL_KEY, s as MCP_SETTINGS_VIEW } from "./mcp.constants-DQPD3Ntp.js";
import { a as CHAT_PERSONAL_AGENTS_VIEW, c as CHAT_SETTINGS_VIEW, d as CHAT_WORKFLOW_AGENTS_VIEW, i as CHAT_MODEL_BY_ID_SELECTOR_MODAL_KEY, n as CHAT_CONVERSATION_VIEW, o as CHAT_PROVIDER_SETTINGS_MODAL_KEY, p as TOOLS_SELECTOR_MODAL_KEY, r as CHAT_CREDENTIAL_SELECTOR_MODAL_KEY, t as AGENT_EDITOR_MODAL_KEY, u as CHAT_VIEW } from "./constants-DLTaaipl.js";
import { t as useRecentResources } from "./useRecentResources-BAGmp8Wq.js";
const useEnvFeatureFlag = () => {
	const settingsStore = useSettingsStore();
	return { check: computed(() => (flag) => {
		const key = `N8N_ENV_FEAT_${flag}`;
		const settingsProvidedEnvFeatFlag = settingsStore.settings.envFeatureFlags?.[key];
		if (settingsProvidedEnvFeatFlag !== void 0) return settingsProvidedEnvFeatFlag !== "false" && !!settingsProvidedEnvFeatFlag;
		const buildTimeValue = {
			"BASE_URL": "/%7B%7BBASE_PATH%7D%7D/",
			"DEV": false,
			"MODE": "production",
			"PROD": true,
			"SSR": false,
			"VUE_APP_PUBLIC_PATH": "/{{BASE_PATH}}/"
		}[key];
		if (buildTimeValue !== void 0) return buildTimeValue !== "false" && !!buildTimeValue;
		return false;
	}) };
};
var nanoid = (size = 21) => crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
	byte &= 63;
	if (byte < 36) id += byte.toString(36);
	else if (byte < 62) id += (byte - 26).toString(36).toUpperCase();
	else if (byte > 62) id += "-";
	else id += "_";
	return id;
}, "");
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$1();
	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$1();
	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();
	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-C5ZrVVEP.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,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53]));
var DataTableView = async () => await __vitePreload(() => import("./DataTableView-rLuMoWkz.js"), __vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,55,56,57,30,31,58,59,60,61,62,63,64,65,66,25,67,68,69,70,43,71,72,73,74,75,76]));
var DataTableDetailsView = async () => await __vitePreload(() => import("./DataTableDetailsView-Y7mEpv8T.js"), __vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,78,55,30,31,79,80,81,70,43,82,83,84]));
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-DCAGS6g7.js"), __vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,87,88,89,90,43,91])),
		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-C5ZrVVEP.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,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53]));
var InsightsDashboard = async () => await __vitePreload(() => import("./InsightsDashboard-CvoL2zTR.js"), __vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,55,57,30,31,33,39,60,61,71,72,73,74,75,93]));
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-wp8DNJKO.js"), __vite__mapDeps([94,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,56,95,96,97,98,33,37,38,81,42,99,100,101,102,103,43,75,73,72,46,104]));
const MCPModule = {
	id: "mcp",
	name: "MCP Server",
	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 } },
		get available() {
			return hasPermission(["rbac"], { rbac: { scope: [
				"mcp:oauth",
				"mcpApiKey:create",
				"mcpApiKey:rotate"
			] } });
		}
	}],
	modals: [{
		key: MCP_CONNECT_WORKFLOWS_MODAL_KEY,
		component: async () => await __vitePreload(() => import("./MCPConnectWorkflowsModal-BBuNA5p_.js"), __vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,86,23,24,25,26,95,96,97,98,33,89,90,37,38,42,99,100,102,103,43,75,73,72,46,106])),
		initialState: { open: false }
	}]
};
var ChatSidebar = async () => await __vitePreload(() => import("./ChatSidebar-BD5s-qKe.js"), __vite__mapDeps([107,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,39,40,41,42,43,44,45,46,47,48,49,50,108,109,110]));
var ChatView = async () => await __vitePreload(() => import("./ChatView-B-FlkLG5.js"), __vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,112,113,37,21,38,40,27,41,42,108,44,45,109,114,115,116,81,117,118,119]));
var ChatWorkflowAgentsView = async () => await __vitePreload(() => import("./ChatWorkflowAgentsView-CvTzrqVB.js"), __vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,27,41,40,42,117,118,108,44,45,109,121,122,123]));
var ChatPersonalAgentsView = async () => await __vitePreload(() => import("./ChatPersonalAgentsView-BbxzXpMk.js"), __vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,27,41,40,42,117,118,108,44,45,109,121,122,125]));
var SettingsChatHubView = async () => await __vitePreload(() => import("./SettingsChatHubView-CHfhhMux.js"), __vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,56,27,41,40,42,44,45,127]));
var modules = [
	InsightsModule,
	DataTableModule,
	MCPModule,
	{
		id: "chat-hub",
		name: "Chat",
		description: "Chat with LLM models or your n8n AI agents.",
		icon: "chat",
		modals: [
			{
				key: TOOLS_SELECTOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./ToolsSelectorModal-BULcpsyv.js"), __vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,89,90,37,21,38,129])),
				initialState: {
					open: false,
					data: {
						selected: [],
						onConfirm: () => {}
					}
				}
			},
			{
				key: AGENT_EDITOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./AgentEditorModal-D0zSOaNC.js"), __vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,113,37,21,38,40,27,41,42,108,44,45,109,114,89,90,131])),
				initialState: {
					open: false,
					data: {
						credentials: {},
						onClose: () => {},
						onCreateCustomAgent: () => {}
					}
				}
			},
			{
				key: CHAT_CREDENTIAL_SELECTOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./CredentialSelectorModal-C95nx2mf.js"), __vite__mapDeps([132,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,89,90,42,44,45,133,134,135])),
				initialState: {
					open: false,
					data: {
						provider: null,
						initialValue: null,
						onSelect: () => {}
					}
				}
			},
			{
				key: CHAT_MODEL_BY_ID_SELECTOR_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./ModelByIdSelectorModal-vamZu1bJ.js"), __vite__mapDeps([136,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,89,90,42,44,45,137])),
				initialState: {
					open: false,
					data: {
						provider: null,
						initialValue: null,
						onSelect: () => {}
					}
				}
			},
			{
				key: CHAT_PROVIDER_SETTINGS_MODAL_KEY,
				component: async () => await __vitePreload(() => import("./ProviderSettingsModal-BMHpVZVk.js"), __vite__mapDeps([138,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,27,89,90,41,40,42,133,134,139,140,141])),
				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_WORKFLOW_AGENTS_VIEW,
				path: "/home/chat/workflow-agents",
				components: {
					default: ChatWorkflowAgentsView,
					sidebar: ChatSidebar
				},
				meta: {
					middleware: ["authenticated"],
					getProperties() {
						return { feature: "chat-hub" };
					}
				}
			},
			{
				name: CHAT_PERSONAL_AGENTS_VIEW,
				path: "/home/chat/personal-agents",
				components: {
					default: ChatPersonalAgentsView,
					sidebar: ChatSidebar
				},
				meta: {
					middleware: ["authenticated"],
					getProperties() {
						return { feature: "chat-hub" };
					}
				}
			},
			{
				path: "chat",
				name: CHAT_SETTINGS_VIEW,
				components: { settingsView: SettingsChatHubView },
				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 } },
			get available() {
				return hasPermission(["rbac"], { rbac: { scope: "chatHub:manage" } });
			}
		}]
	}
];
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 if (!cloudPlanStore.isTrialUpgradeOnSidebar) 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 && hasPermission(["rbac"], { rbac: { scope: "dataTable:list" } })) 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-C5ZrVVEP.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,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53]));
var WorkflowsView = async () => await __vitePreload(() => import("./WorkflowsView-m1VCW6Gk.js"), __vite__mapDeps([142,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,55,56,57,30,31,143,144,145,58,37,38,146,147,148,82,83,25,149,59,60,61,62,63,64,65,66,67,68,69,150,51,151,152,153,101,102,103,154,155,156,71,72,73,74,75,139,140,157,158]));
var CredentialsView = async () => await __vitePreload(() => import("./CredentialsView-CKWNcDc1.js"), __vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,55,160,56,57,30,31,58,59,60,61,62,63,64,65,66,25,67,68,69,154,155,156,44,45,71,72,73,74,75,161,162]));
var ProjectSettings = async () => await __vitePreload(() => import("./ProjectSettings-CbYXdz34.js"), __vite__mapDeps([163,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,87,55,164,165,30,31,166,98,33,39,68,66,25,69,60,61,167]));
var ExecutionsView = async () => await __vitePreload(() => import("./ExecutionsView-CJ28SmsB.js"), __vite__mapDeps([168,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,78,57,30,31,33,169,170,79,80,39,171,68,66,25,69,172,173,139,140,157,174,175,26,71,72,73,74,75,176]));
var ProjectVariables = async () => await __vitePreload(() => import("./ProjectVariables-CD8pxK-V.js"), __vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,55,160,57,30,31,33,58,59,60,61,62,63,64,65,66,25,67,81,39,68,69,71,72,73,74,75,178]));
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) => {
			if (useSettingsStore().isChatFeatureEnabled && hasRole(["global:chatUser"])) return next({ name: CHAT_VIEW });
			const insightsStore = useInsightsStore();
			if (insightsStore.isSummaryEnabled) insightsStore.weeklySummary.execute();
			next();
		},
		children: commonChildRoutes.map((route, idx) => ({
			...route,
			name: commonChildRouteExtensions.home[idx].name,
			middleware: ["authenticated"]
		}))
	},
	{
		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-C7HtAXCU.js"), __vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,97,180,181]));
var ErrorView = async () => await __vitePreload(() => import("./ErrorView-BZ4-H-jz.js"), __vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,183]));
var EntityNotFound = async () => await __vitePreload(() => import("./EntityNotFound-B97Lu2MP.js"), __vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10,11,12,13,185]));
var EntityUnAuthorised = async () => await __vitePreload(() => import("./EntityUnAuthorised-Fbr1TiEL.js"), __vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10,11,12,13,187]));
var OAuthConsentView = async () => await __vitePreload(() => import("./OAuthConsentView-CpHIbM7w.js"), __vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,103,189]));
var ForgotMyPasswordView = async () => await __vitePreload(() => import("./ForgotMyPasswordView-798fFqrK.js"), __vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,97,180,181]));
var MainHeader = async () => await __vitePreload(() => import("./MainHeader-cPpOfg9e.js"), __vite__mapDeps([191,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,56,192,95,96,193,194,150,66,30,31,97,98,33,58,34,35,37,38,195,196,197,146,147,148,82,83,149,198,39,199,42,101,103,43,75,73,72,46,139,140,157,200,201]));
var MainSidebar = async () => await __vitePreload(() => import("./MainSidebar-C5ZrVVEP.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,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53]));
var LogsPanel = async () => await __vitePreload(() => import("./LogsPanel-B6drfj46.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,203,22,23,24,25,26,27,28,204,205,206,193,81,194,207,175,171,161,208,209,210,211,212,213,214,169,170,37,38,215,112,216,115,116,34,35,49,41,217]));
var DemoFooter = async () => await __vitePreload(() => import("./DemoFooter-gHjxnkES.js"), __vite__mapDeps([218,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,203,22,23,24,25,26,27,28,204,205,206,193,81,194,207,175,171,161,208,209,210,211,212,213,214,169,170,37,38,215,112,216,115,116,34,35,49,41,217]));
var NodeView = async () => await __vitePreload(() => import("./NodeView-BuBc8ewU.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,203,22,23,24,25,26,27,28,204,205,206,193,81,194,207,175,171,161,208,209,210,220,221,222,78,86,223,144,145,37,38,224,225,226,227,228,229,112,230,231,232,233,43,234,235,236,237,238,34,35,49,239,33,198,39,150,151,240,241,52,242]));
var WorkflowExecutionsView = async () => await __vitePreload(() => import("./WorkflowExecutionsView-C8x85knP.js"), __vite__mapDeps([243,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,78,23,24,25,26,33,244,39,171,172,173,139,140,157,174,245,246,175,247]));
var WorkflowExecutionsLandingPage = async () => await __vitePreload(() => import("./WorkflowExecutionsLandingPage-9K4zURpY.js"), __vite__mapDeps([248,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,245,246,249]));
var WorkflowExecutionsPreview = async () => await __vitePreload(() => import("./WorkflowExecutionsPreview-B6gUOskt.js"), __vite__mapDeps([250,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,33,251,26,252,39,171,241,175,173,139,140,253]));
var SettingsView = async () => await __vitePreload(() => import("./SettingsView-BkT_E3Ih.js"), __vite__mapDeps([254,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,50,255]));
var SettingsLdapView = async () => await __vitePreload(() => import("./SettingsLdapView-Bg7EBXEG.js"), __vite__mapDeps([256,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,222,17,18,19,20,257,88,97,33,39,258]));
var SettingsPersonalView = async () => await __vitePreload(() => import("./SettingsPersonalView-ypZCgyx4.js"), __vite__mapDeps([259,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,97,260,261]));
var SettingsUsersView = async () => await __vitePreload(() => import("./SettingsUsersView-Dc-g7Os1.js"), __vite__mapDeps([262,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,87,164,165,97,166,33,58,81,39,171,263]));
var SettingsResolversView = async () => await __vitePreload(() => import("./ResolversView-m_3rxS8y.js"), __vite__mapDeps([264,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,56,265,266]));
var SettingsCommunityNodesView = async () => await __vitePreload(() => import("./SettingsCommunityNodesView-DxSUt_OC.js"), __vite__mapDeps([267,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,235,192,95,96,193,194,150,66,268]));
var SettingsApiView = async () => await __vitePreload(() => import("./SettingsApiView-DhXs2Y-_.js"), __vite__mapDeps([269,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,233,270,33,39,271]));
var SettingsLogStreamingView = async () => await __vitePreload(() => import("./SettingsLogStreamingView-C2j3foZA.js"), __vite__mapDeps([272,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,233,273,33,39,274]));
var SetupView = async () => await __vitePreload(() => import("./SetupView-DKxgJ4GN.js"), __vite__mapDeps([275,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,97,180,181]));
var SigninView = async () => await __vitePreload(() => import("./SigninView-UAhsgCqK.js"), __vite__mapDeps([276,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,97,260,180,181,277]));
var SignupView = async () => await __vitePreload(() => import("./SignupView-DRVyeE5O.js"), __vite__mapDeps([278,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,97,180,181]));
var TemplatesCollectionView = async () => await __vitePreload(() => import("./TemplatesCollectionView-Df8X9jlG.js"), __vite__mapDeps([279,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,56,280,281,37,21,38,282,283,226,284,285,286,287,288]));
var TemplatesWorkflowView = async () => await __vitePreload(() => import("./TemplatesWorkflowView-wTii7YBP.js"), __vite__mapDeps([289,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,56,280,281,37,21,38,251,26,252,226,284,285,286,287,290]));
var SetupWorkflowFromTemplateView = async () => await __vitePreload(() => import("./SetupWorkflowFromTemplateView-EmiFjoiF.js"), __vite__mapDeps([291,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,280,281,37,21,38,292,226,133,134,287,293,286,294]));
var TemplatesSearchView = async () => await __vitePreload(() => import("./TemplatesSearchView-CmLLM9IN.js"), __vite__mapDeps([295,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,55,56,280,281,37,21,38,282,283,296]));
var SettingsUsageAndPlan = async () => await __vitePreload(() => import("./SettingsUsageAndPlan-B9CGe_bx.js"), __vite__mapDeps([297,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,86,143,33,39,298]));
var SettingsSso = async () => await __vitePreload(() => import("./SettingsSso-pyuyn9zD.js"), __vite__mapDeps([299,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,221,17,18,19,20,86,97,166,33,300,81,301,39,302]));
var SignoutView = async () => await __vitePreload(() => import("./SignoutView-CmT3zceq.js"), __vite__mapDeps([303,4,5,6,7,15,10,16,17,18,19,20]));
var SamlOnboarding = async () => await __vitePreload(() => import("./SamlOnboarding-CZRtCHdx.js"), __vite__mapDeps([304,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,97,180,181]));
var SettingsSourceControl = async () => await __vitePreload(() => import("./SettingsSourceControl-BgHM1q8f.js"), __vite__mapDeps([305,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,33,300,81,301,39,306]));
var SettingsExternalSecrets = async () => await __vitePreload(() => import("./SettingsExternalSecrets-DpysvZkb.js"), __vite__mapDeps([307,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,33,39,308,161,309,310]));
var WorkerView = async () => await __vitePreload(() => import("./WorkerView-DXyrg8WH.js"), __vite__mapDeps([311,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,312,22,23,24,25,26,27,313,192,95,96,193,194,150,66,29,33,195,81,39,314]));
var WorkflowHistory = async () => await __vitePreload(() => import("./WorkflowHistory-ChsTl1xO.js"), __vite__mapDeps([315,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,33,251,26,252,244,39,148,200,316]));
var WorkflowOnboardingView = async () => await __vitePreload(() => import("./WorkflowOnboardingView-DpmvepH9.js"), __vite__mapDeps([317,4,5,6,7,15,10,16,17,18,19,20]));
var EvaluationsView = async () => await __vitePreload(() => import("./EvaluationsView-DXaAjsX4.js"), __vite__mapDeps([318,1,2,3,4,5,6,7,8,9,10,11,12,13,312,15,16,17,18,19,20,257,88,55,313,169,170,171,319,320,321]));
var TestRunDetailView = async () => await __vitePreload(() => import("./TestRunDetailView-DDbCuy5Q.js"), __vite__mapDeps([322,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,257,88,55,199,171,319,320,323]));
var EvaluationRootView = async () => await __vitePreload(() => import("./EvaluationsRootView-DDDzM_6p.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,23,24,25,26,143,33,39,325]));
var PrebuiltAgentTemplatesView = async () => await __vitePreload(() => import("./PrebuiltAgentTemplatesView-D-PTeVl8.js"), __vite__mapDeps([326,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,37,38,63,64,327]));
var MigrationReportView = async () => await __vitePreload(() => import("./MigrationRules-PJwNVPfC.js"), __vite__mapDeps([328,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,18,55,329,330,331]));
var MigrationRuleReportView = async () => await __vitePreload(() => import("./MigrationRuleDetail-BHMsvA_3.js"), __vite__mapDeps([332,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,55,56,30,31,329,330,58,59,60,61,62,333]));
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"]
		},
		beforeEnter: (to) => {
			const newWorkflowId = nanoid();
			return {
				name: VIEWS.WORKFLOW,
				params: { name: newWorkflowId },
				query: {
					...to.query,
					new: "true"
				}
			};
		}
	},
	{
		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: "resolvers",
				name: VIEWS.RESOLVERS,
				components: { settingsView: SettingsResolversView },
				meta: {
					middleware: ["authenticated", "custom"],
					middlewareOptions: { custom: () => {
						const { check } = useEnvFeatureFlag();
						return check.value("DYNAMIC_CREDENTIALS");
					} },
					telemetry: {
						pageCategory: "settings",
						getProperties() {
							return { feature: "resolvers" };
						}
					}
				}
			},
			{
				path: "project-roles",
				components: { settingsView: RouterView },
				children: [
					{
						path: "",
						name: VIEWS.PROJECT_ROLES_SETTINGS,
						component: async () => await __vitePreload(() => import("./ProjectRolesView-SHPe5Zla.js"), __vite__mapDeps([334,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,98,33,39,335]))
					},
					{
						path: "new",
						name: VIEWS.PROJECT_NEW_ROLE,
						component: async () => await __vitePreload(() => import("./ProjectRoleView-D96quN06.js"), __vite__mapDeps([336,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,98,337]))
					},
					{
						path: "edit/:roleSlug",
						name: VIEWS.PROJECT_ROLE_SETTINGS,
						component: async () => await __vitePreload(() => import("./ProjectRoleView-D96quN06.js"), __vite__mapDeps([336,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,98,337]))
					}
				],
				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", "rbac"],
					middlewareOptions: { rbac: { scope: ["apiKey:manage"] } },
					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, useEnvFeatureFlag as r, router_default as t };