n8n-editor-ui
Version:
Workflow Editor UI for n8n
2,648 lines • 120 kB
JavaScript
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 };