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