@n8n/stores 2.36.5 → 2.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cloudPlan.store.d.cts +66 -66
- package/dist/cloudPlan.store.d.mts +66 -66
- package/dist/composables/useBasePageRedirectionHelper.cjs +28 -8
- package/dist/composables/useBasePageRedirectionHelper.cjs.map +1 -1
- package/dist/composables/useBasePageRedirectionHelper.d.cts +7 -0
- package/dist/composables/useBasePageRedirectionHelper.d.mts +7 -0
- package/dist/composables/useBasePageRedirectionHelper.mjs +28 -8
- package/dist/composables/useBasePageRedirectionHelper.mjs.map +1 -1
- package/dist/constants2.cjs +1 -0
- package/dist/constants2.cjs.map +1 -1
- package/dist/constants2.d.cts +1 -0
- package/dist/constants2.d.mts +1 -0
- package/dist/constants2.mjs +1 -0
- package/dist/constants2.mjs.map +1 -1
- package/dist/notifications.store.d.cts +2 -2
- package/dist/pageRedirection.d.cts +2 -2
- package/dist/pageRedirection.d.mts +2 -2
- package/dist/rbac.store.cjs +1 -0
- package/dist/rbac.store.cjs.map +1 -1
- package/dist/rbac.store.d.cts +39 -33
- package/dist/rbac.store.d.mts +39 -33
- package/dist/rbac.store.mjs +1 -0
- package/dist/rbac.store.mjs.map +1 -1
- package/dist/roles.store.d.cts +21 -21
- package/dist/roles.store.d.mts +21 -21
- package/dist/settings.store.d.cts +256 -250
- package/dist/settings.store.d.mts +256 -250
- package/dist/settings2.store.cjs +9 -0
- package/dist/settings2.store.cjs.map +1 -1
- package/dist/settings2.store.mjs +9 -0
- package/dist/settings2.store.mjs.map +1 -1
- package/dist/useAgentRequestStore.d.cts +2 -2
- package/dist/useAgentRequestStore.d.mts +2 -2
- package/dist/useRootStore.d.cts +75 -75
- package/dist/useRootStore.d.mts +75 -75
- package/dist/users.store.d.cts +51 -51
- package/dist/users.store.d.mts +51 -51
- package/dist/versions.store.d.cts +30 -30
- package/dist/versions.store.d.mts +30 -30
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBasePageRedirectionHelper.cjs","names":["useUsersStore","useCloudPlanStore","useVersionsStore","useSettingsStore","N8N_PRICING_PAGE_URL"],"sources":["../../src/composables/useBasePageRedirectionHelper.ts"],"sourcesContent":["import { useTelemetry } from '@n8n/composables/useTelemetry';\nimport { N8N_PRICING_PAGE_URL } from '@n8n/frontend-constants/urls';\n\nimport { useCloudPlanStore } from '../cloudPlan.store';\nimport { useSettingsStore } from '../settings.store';\nimport type { CloudUpdateLinkSourceType, UTMCampaign } from '../types/pageRedirection';\nimport { useUsersStore } from '../users.store';\nimport { useVersionsStore } from '../versions.store';\n\n/**\n * Guard consulted before an upgrade redirect. Resolves `true` to proceed, `false`\n * to abort. Required and injected by the caller, so this composable carries no\n * feature dependency of its own (e.g. the AI builder streaming confirmation).\n */\nexport type UpgradeRedirectGuard = () => Promise<boolean>;\n\n/**\n * Injectable page-redirection composable. The app-facing `usePageRedirectionHelper`\n * wraps this and supplies the guard, which keeps this base free of any feature\n * dependency.\n *\n * It lives in `@n8n/stores` rather than `@n8n/composables` because its body is\n * store orchestration end to end — all four stores it reads are in this package,\n * and `@n8n/composables` sits *below* the stores tier (see that package's\n * `packageBoundary.test.ts`), so it cannot reach them.\n */\nexport function useBasePageRedirectionHelper({ guard }: { guard: UpgradeRedirectGuard }) {\n\tconst usersStore = useUsersStore();\n\tconst cloudPlanStore = useCloudPlanStore();\n\tconst versionsStore = useVersionsStore();\n\tconst telemetry = useTelemetry();\n\tconst settingsStore = useSettingsStore();\n\n\
|
|
1
|
+
{"version":3,"file":"useBasePageRedirectionHelper.cjs","names":["useUsersStore","useCloudPlanStore","useVersionsStore","useSettingsStore","N8N_PRICING_PAGE_URL"],"sources":["../../src/composables/useBasePageRedirectionHelper.ts"],"sourcesContent":["import { useTelemetry } from '@n8n/composables/useTelemetry';\nimport { N8N_PRICING_PAGE_URL } from '@n8n/frontend-constants/urls';\n\nimport { useCloudPlanStore } from '../cloudPlan.store';\nimport { useSettingsStore } from '../settings.store';\nimport type { CloudUpdateLinkSourceType, UTMCampaign } from '../types/pageRedirection';\nimport { useUsersStore } from '../users.store';\nimport { useVersionsStore } from '../versions.store';\n\n/**\n * Guard consulted before an upgrade redirect. Resolves `true` to proceed, `false`\n * to abort. Required and injected by the caller, so this composable carries no\n * feature dependency of its own (e.g. the AI builder streaming confirmation).\n */\nexport type UpgradeRedirectGuard = () => Promise<boolean>;\n\n/**\n * Injectable page-redirection composable. The app-facing `usePageRedirectionHelper`\n * wraps this and supplies the guard, which keeps this base free of any feature\n * dependency.\n *\n * It lives in `@n8n/stores` rather than `@n8n/composables` because its body is\n * store orchestration end to end — all four stores it reads are in this package,\n * and `@n8n/composables` sits *below* the stores tier (see that package's\n * `packageBoundary.test.ts`), so it cannot reach them.\n */\nexport function useBasePageRedirectionHelper({ guard }: { guard: UpgradeRedirectGuard }) {\n\tconst usersStore = useUsersStore();\n\tconst cloudPlanStore = useCloudPlanStore();\n\tconst versionsStore = useVersionsStore();\n\tconst telemetry = useTelemetry();\n\tconst settingsStore = useSettingsStore();\n\n\tconst canAutoLoginToCloudDashboard = () =>\n\t\tusersStore.isInstanceOwner && settingsStore.isCloudDeployment;\n\n\t/**\n\t * `open` reserves the tab in the click so later navigation is not treated as a popup.\n\t */\n\tconst goToCloudDashboard = async ({\n\t\tredirectionPath,\n\t\tmode = 'redirect',\n\t}: {\n\t\tredirectionPath: string;\n\t\tmode?: 'open' | 'redirect';\n\t}): Promise<boolean> => {\n\t\tif (!canAutoLoginToCloudDashboard()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (mode === 'redirect') {\n\t\t\tlocation.href = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath,\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\n\t\tconst tab = window.open('', '_blank');\n\t\tif (tab) tab.opener = null;\n\t\ttry {\n\t\t\tconst link = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath,\n\t\t\t});\n\t\t\tif (tab) {\n\t\t\t\ttab.location.href = link;\n\t\t\t} else {\n\t\t\t\tlocation.href = link;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\ttab?.close();\n\t\t\tthrow error;\n\t\t}\n\t\treturn true;\n\t};\n\n\t/**\n\t * If the user is an instance owner in the cloud, it generates an auto-login link to the\n\t * cloud dashboard that redirects the user to the /manage page where they can upgrade to a new n8n version.\n\t * Otherwise, it redirect them to our docs.\n\t */\n\tconst goToVersions = async () => {\n\t\tif (!canAutoLoginToCloudDashboard()) {\n\t\t\twindow.open(versionsStore.infoUrl, '_blank', 'noopener');\n\t\t\treturn;\n\t\t}\n\n\t\tawait goToCloudDashboard({ redirectionPath: '/manage' });\n\t};\n\n\tconst goToDashboard = async () => {\n\t\tawait goToCloudDashboard({ redirectionPath: '/dashboard' });\n\t};\n\n\t/**\n\t * If the user is an instance owner in the cloud, it generates an auto-login link to the\n\t * cloud dashboard that redirects the user to the /account/change-plan page where they upgrade/downgrade the current plan.\n\t * Otherwise, it redirect them our website.\n\t */\n\n\tconst goToUpgrade = async (\n\t\tsource: CloudUpdateLinkSourceType,\n\t\tutm_campaign: UTMCampaign,\n\t\tmode: 'open' | 'redirect' = 'open',\n\t) => {\n\t\tconst shouldProceed = await guard();\n\t\tif (!shouldProceed) return;\n\n\t\tconst { usageLeft, trialDaysLeft, userIsTrialing } = cloudPlanStore;\n\t\tconst { executionsLeft, workflowsLeft } = usageLeft;\n\t\tconst deploymentType = settingsStore.deploymentType;\n\n\t\ttelemetry.track('User clicked upgrade CTA', {\n\t\t\tsource,\n\t\t\tisTrial: userIsTrialing,\n\t\t\tdeploymentType,\n\t\t\ttrialDaysLeft,\n\t\t\texecutionsLeft,\n\t\t\tworkflowsLeft,\n\t\t});\n\n\t\tconst upgradeLink = await generateUpgradeLink(source, utm_campaign);\n\n\t\tif (mode === 'open') {\n\t\t\twindow.open(upgradeLink, '_blank');\n\t\t} else {\n\t\t\tlocation.href = upgradeLink;\n\t\t}\n\t};\n\n\tconst generateUpgradeLink = async (source: string, utm_campaign: string) => {\n\t\tlet upgradeLink = N8N_PRICING_PAGE_URL;\n\n\t\tif (canAutoLoginToCloudDashboard()) {\n\t\t\tupgradeLink = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath: '/account/change-plan',\n\t\t\t});\n\t\t}\n\n\t\tconst url = new URL(upgradeLink);\n\n\t\tif (utm_campaign) {\n\t\t\turl.searchParams.set('utm_campaign', utm_campaign);\n\t\t}\n\n\t\tif (source) {\n\t\t\turl.searchParams.set('source', source);\n\t\t}\n\n\t\treturn url.toString();\n\t};\n\n\treturn {\n\t\tgoToCloudDashboard,\n\t\tgoToDashboard,\n\t\tgoToVersions,\n\t\tgoToUpgrade,\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0BA,SAAgB,6BAA6B,EAAE,SAA0C;CACxF,MAAM,aAAaA,mCAAe;CAClC,MAAM,iBAAiBC,2CAAmB;CAC1C,MAAM,gBAAgBC,yCAAkB;CACxC,MAAM,8DAA0B;CAChC,MAAM,gBAAgBC,yCAAkB;CAExC,MAAM,qCACL,WAAW,mBAAmB,cAAc;;;;CAK7C,MAAM,qBAAqB,OAAO,EACjC,iBACA,OAAO,iBAIgB;AACvB,MAAI,CAAC,8BAA8B,CAClC,QAAO;AAGR,MAAI,SAAS,YAAY;AACxB,YAAS,OAAO,MAAM,eAAe,oCAAoC,EACxE,iBACA,CAAC;AACF,UAAO;;EAGR,MAAM,MAAM,OAAO,KAAK,IAAI,SAAS;AACrC,MAAI,IAAK,KAAI,SAAS;AACtB,MAAI;GACH,MAAM,OAAO,MAAM,eAAe,oCAAoC,EACrE,iBACA,CAAC;AACF,OAAI,IACH,KAAI,SAAS,OAAO;OAEpB,UAAS,OAAO;WAET,OAAO;AACf,QAAK,OAAO;AACZ,SAAM;;AAEP,SAAO;;;;;;;CAQR,MAAM,eAAe,YAAY;AAChC,MAAI,CAAC,8BAA8B,EAAE;AACpC,UAAO,KAAK,cAAc,SAAS,UAAU,WAAW;AACxD;;AAGD,QAAM,mBAAmB,EAAE,iBAAiB,WAAW,CAAC;;CAGzD,MAAM,gBAAgB,YAAY;AACjC,QAAM,mBAAmB,EAAE,iBAAiB,cAAc,CAAC;;;;;;;CAS5D,MAAM,cAAc,OACnB,QACA,cACA,OAA4B,WACxB;AAEJ,MAAI,CADkB,MAAM,OAAO,CACf;EAEpB,MAAM,EAAE,WAAW,eAAe,mBAAmB;EACrD,MAAM,EAAE,gBAAgB,kBAAkB;EAC1C,MAAM,iBAAiB,cAAc;AAErC,YAAU,MAAM,4BAA4B;GAC3C;GACA,SAAS;GACT;GACA;GACA;GACA;GACA,CAAC;EAEF,MAAM,cAAc,MAAM,oBAAoB,QAAQ,aAAa;AAEnE,MAAI,SAAS,OACZ,QAAO,KAAK,aAAa,SAAS;MAElC,UAAS,OAAO;;CAIlB,MAAM,sBAAsB,OAAO,QAAgB,iBAAyB;EAC3E,IAAI,cAAcC;AAElB,MAAI,8BAA8B,CACjC,eAAc,MAAM,eAAe,oCAAoC,EACtE,iBAAiB,wBACjB,CAAC;EAGH,MAAM,MAAM,IAAI,IAAI,YAAY;AAEhC,MAAI,aACH,KAAI,aAAa,IAAI,gBAAgB,aAAa;AAGnD,MAAI,OACH,KAAI,aAAa,IAAI,UAAU,OAAO;AAGvC,SAAO,IAAI,UAAU;;AAGtB,QAAO;EACN;EACA;EACA;EACA;EACA"}
|
|
@@ -7,6 +7,13 @@ declare function useBasePageRedirectionHelper({
|
|
|
7
7
|
}: {
|
|
8
8
|
guard: UpgradeRedirectGuard;
|
|
9
9
|
}): {
|
|
10
|
+
goToCloudDashboard: ({
|
|
11
|
+
redirectionPath,
|
|
12
|
+
mode
|
|
13
|
+
}: {
|
|
14
|
+
redirectionPath: string;
|
|
15
|
+
mode?: "open" | "redirect";
|
|
16
|
+
}) => Promise<boolean>;
|
|
10
17
|
goToDashboard: () => Promise<void>;
|
|
11
18
|
goToVersions: () => Promise<void>;
|
|
12
19
|
goToUpgrade: (source: CloudUpdateLinkSourceType, utm_campaign: UTMCampaign, mode?: "open" | "redirect") => Promise<void>;
|
|
@@ -7,6 +7,13 @@ declare function useBasePageRedirectionHelper({
|
|
|
7
7
|
}: {
|
|
8
8
|
guard: UpgradeRedirectGuard;
|
|
9
9
|
}): {
|
|
10
|
+
goToCloudDashboard: ({
|
|
11
|
+
redirectionPath,
|
|
12
|
+
mode
|
|
13
|
+
}: {
|
|
14
|
+
redirectionPath: string;
|
|
15
|
+
mode?: "open" | "redirect";
|
|
16
|
+
}) => Promise<boolean>;
|
|
10
17
|
goToDashboard: () => Promise<void>;
|
|
11
18
|
goToVersions: () => Promise<void>;
|
|
12
19
|
goToUpgrade: (source: CloudUpdateLinkSourceType, utm_campaign: UTMCampaign, mode?: "open" | "redirect") => Promise<void>;
|
|
@@ -27,23 +27,42 @@ function useBasePageRedirectionHelper({ guard }) {
|
|
|
27
27
|
const versionsStore = useVersionsStore();
|
|
28
28
|
const telemetry = useTelemetry();
|
|
29
29
|
const settingsStore = useSettingsStore();
|
|
30
|
+
const canAutoLoginToCloudDashboard = () => usersStore.isInstanceOwner && settingsStore.isCloudDeployment;
|
|
31
|
+
/**
|
|
32
|
+
* `open` reserves the tab in the click so later navigation is not treated as a popup.
|
|
33
|
+
*/
|
|
34
|
+
const goToCloudDashboard = async ({ redirectionPath, mode = "redirect" }) => {
|
|
35
|
+
if (!canAutoLoginToCloudDashboard()) return false;
|
|
36
|
+
if (mode === "redirect") {
|
|
37
|
+
location.href = await cloudPlanStore.generateCloudDashboardAutoLoginLink({ redirectionPath });
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
const tab = window.open("", "_blank");
|
|
41
|
+
if (tab) tab.opener = null;
|
|
42
|
+
try {
|
|
43
|
+
const link = await cloudPlanStore.generateCloudDashboardAutoLoginLink({ redirectionPath });
|
|
44
|
+
if (tab) tab.location.href = link;
|
|
45
|
+
else location.href = link;
|
|
46
|
+
} catch (error) {
|
|
47
|
+
tab?.close();
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
};
|
|
30
52
|
/**
|
|
31
53
|
* If the user is an instance owner in the cloud, it generates an auto-login link to the
|
|
32
54
|
* cloud dashboard that redirects the user to the /manage page where they can upgrade to a new n8n version.
|
|
33
55
|
* Otherwise, it redirect them to our docs.
|
|
34
56
|
*/
|
|
35
57
|
const goToVersions = async () => {
|
|
36
|
-
if (
|
|
37
|
-
|
|
58
|
+
if (!canAutoLoginToCloudDashboard()) {
|
|
59
|
+
window.open(versionsStore.infoUrl, "_blank", "noopener");
|
|
38
60
|
return;
|
|
39
61
|
}
|
|
40
|
-
|
|
62
|
+
await goToCloudDashboard({ redirectionPath: "/manage" });
|
|
41
63
|
};
|
|
42
64
|
const goToDashboard = async () => {
|
|
43
|
-
|
|
44
|
-
const dashboardLink = await cloudPlanStore.generateCloudDashboardAutoLoginLink({ redirectionPath: "/dashboard" });
|
|
45
|
-
location.href = dashboardLink;
|
|
46
|
-
}
|
|
65
|
+
await goToCloudDashboard({ redirectionPath: "/dashboard" });
|
|
47
66
|
};
|
|
48
67
|
/**
|
|
49
68
|
* If the user is an instance owner in the cloud, it generates an auto-login link to the
|
|
@@ -69,13 +88,14 @@ function useBasePageRedirectionHelper({ guard }) {
|
|
|
69
88
|
};
|
|
70
89
|
const generateUpgradeLink = async (source, utm_campaign) => {
|
|
71
90
|
let upgradeLink = N8N_PRICING_PAGE_URL;
|
|
72
|
-
if (
|
|
91
|
+
if (canAutoLoginToCloudDashboard()) upgradeLink = await cloudPlanStore.generateCloudDashboardAutoLoginLink({ redirectionPath: "/account/change-plan" });
|
|
73
92
|
const url = new URL(upgradeLink);
|
|
74
93
|
if (utm_campaign) url.searchParams.set("utm_campaign", utm_campaign);
|
|
75
94
|
if (source) url.searchParams.set("source", source);
|
|
76
95
|
return url.toString();
|
|
77
96
|
};
|
|
78
97
|
return {
|
|
98
|
+
goToCloudDashboard,
|
|
79
99
|
goToDashboard,
|
|
80
100
|
goToVersions,
|
|
81
101
|
goToUpgrade
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBasePageRedirectionHelper.mjs","names":[],"sources":["../../src/composables/useBasePageRedirectionHelper.ts"],"sourcesContent":["import { useTelemetry } from '@n8n/composables/useTelemetry';\nimport { N8N_PRICING_PAGE_URL } from '@n8n/frontend-constants/urls';\n\nimport { useCloudPlanStore } from '../cloudPlan.store';\nimport { useSettingsStore } from '../settings.store';\nimport type { CloudUpdateLinkSourceType, UTMCampaign } from '../types/pageRedirection';\nimport { useUsersStore } from '../users.store';\nimport { useVersionsStore } from '../versions.store';\n\n/**\n * Guard consulted before an upgrade redirect. Resolves `true` to proceed, `false`\n * to abort. Required and injected by the caller, so this composable carries no\n * feature dependency of its own (e.g. the AI builder streaming confirmation).\n */\nexport type UpgradeRedirectGuard = () => Promise<boolean>;\n\n/**\n * Injectable page-redirection composable. The app-facing `usePageRedirectionHelper`\n * wraps this and supplies the guard, which keeps this base free of any feature\n * dependency.\n *\n * It lives in `@n8n/stores` rather than `@n8n/composables` because its body is\n * store orchestration end to end — all four stores it reads are in this package,\n * and `@n8n/composables` sits *below* the stores tier (see that package's\n * `packageBoundary.test.ts`), so it cannot reach them.\n */\nexport function useBasePageRedirectionHelper({ guard }: { guard: UpgradeRedirectGuard }) {\n\tconst usersStore = useUsersStore();\n\tconst cloudPlanStore = useCloudPlanStore();\n\tconst versionsStore = useVersionsStore();\n\tconst telemetry = useTelemetry();\n\tconst settingsStore = useSettingsStore();\n\n\
|
|
1
|
+
{"version":3,"file":"useBasePageRedirectionHelper.mjs","names":[],"sources":["../../src/composables/useBasePageRedirectionHelper.ts"],"sourcesContent":["import { useTelemetry } from '@n8n/composables/useTelemetry';\nimport { N8N_PRICING_PAGE_URL } from '@n8n/frontend-constants/urls';\n\nimport { useCloudPlanStore } from '../cloudPlan.store';\nimport { useSettingsStore } from '../settings.store';\nimport type { CloudUpdateLinkSourceType, UTMCampaign } from '../types/pageRedirection';\nimport { useUsersStore } from '../users.store';\nimport { useVersionsStore } from '../versions.store';\n\n/**\n * Guard consulted before an upgrade redirect. Resolves `true` to proceed, `false`\n * to abort. Required and injected by the caller, so this composable carries no\n * feature dependency of its own (e.g. the AI builder streaming confirmation).\n */\nexport type UpgradeRedirectGuard = () => Promise<boolean>;\n\n/**\n * Injectable page-redirection composable. The app-facing `usePageRedirectionHelper`\n * wraps this and supplies the guard, which keeps this base free of any feature\n * dependency.\n *\n * It lives in `@n8n/stores` rather than `@n8n/composables` because its body is\n * store orchestration end to end — all four stores it reads are in this package,\n * and `@n8n/composables` sits *below* the stores tier (see that package's\n * `packageBoundary.test.ts`), so it cannot reach them.\n */\nexport function useBasePageRedirectionHelper({ guard }: { guard: UpgradeRedirectGuard }) {\n\tconst usersStore = useUsersStore();\n\tconst cloudPlanStore = useCloudPlanStore();\n\tconst versionsStore = useVersionsStore();\n\tconst telemetry = useTelemetry();\n\tconst settingsStore = useSettingsStore();\n\n\tconst canAutoLoginToCloudDashboard = () =>\n\t\tusersStore.isInstanceOwner && settingsStore.isCloudDeployment;\n\n\t/**\n\t * `open` reserves the tab in the click so later navigation is not treated as a popup.\n\t */\n\tconst goToCloudDashboard = async ({\n\t\tredirectionPath,\n\t\tmode = 'redirect',\n\t}: {\n\t\tredirectionPath: string;\n\t\tmode?: 'open' | 'redirect';\n\t}): Promise<boolean> => {\n\t\tif (!canAutoLoginToCloudDashboard()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (mode === 'redirect') {\n\t\t\tlocation.href = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath,\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\n\t\tconst tab = window.open('', '_blank');\n\t\tif (tab) tab.opener = null;\n\t\ttry {\n\t\t\tconst link = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath,\n\t\t\t});\n\t\t\tif (tab) {\n\t\t\t\ttab.location.href = link;\n\t\t\t} else {\n\t\t\t\tlocation.href = link;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\ttab?.close();\n\t\t\tthrow error;\n\t\t}\n\t\treturn true;\n\t};\n\n\t/**\n\t * If the user is an instance owner in the cloud, it generates an auto-login link to the\n\t * cloud dashboard that redirects the user to the /manage page where they can upgrade to a new n8n version.\n\t * Otherwise, it redirect them to our docs.\n\t */\n\tconst goToVersions = async () => {\n\t\tif (!canAutoLoginToCloudDashboard()) {\n\t\t\twindow.open(versionsStore.infoUrl, '_blank', 'noopener');\n\t\t\treturn;\n\t\t}\n\n\t\tawait goToCloudDashboard({ redirectionPath: '/manage' });\n\t};\n\n\tconst goToDashboard = async () => {\n\t\tawait goToCloudDashboard({ redirectionPath: '/dashboard' });\n\t};\n\n\t/**\n\t * If the user is an instance owner in the cloud, it generates an auto-login link to the\n\t * cloud dashboard that redirects the user to the /account/change-plan page where they upgrade/downgrade the current plan.\n\t * Otherwise, it redirect them our website.\n\t */\n\n\tconst goToUpgrade = async (\n\t\tsource: CloudUpdateLinkSourceType,\n\t\tutm_campaign: UTMCampaign,\n\t\tmode: 'open' | 'redirect' = 'open',\n\t) => {\n\t\tconst shouldProceed = await guard();\n\t\tif (!shouldProceed) return;\n\n\t\tconst { usageLeft, trialDaysLeft, userIsTrialing } = cloudPlanStore;\n\t\tconst { executionsLeft, workflowsLeft } = usageLeft;\n\t\tconst deploymentType = settingsStore.deploymentType;\n\n\t\ttelemetry.track('User clicked upgrade CTA', {\n\t\t\tsource,\n\t\t\tisTrial: userIsTrialing,\n\t\t\tdeploymentType,\n\t\t\ttrialDaysLeft,\n\t\t\texecutionsLeft,\n\t\t\tworkflowsLeft,\n\t\t});\n\n\t\tconst upgradeLink = await generateUpgradeLink(source, utm_campaign);\n\n\t\tif (mode === 'open') {\n\t\t\twindow.open(upgradeLink, '_blank');\n\t\t} else {\n\t\t\tlocation.href = upgradeLink;\n\t\t}\n\t};\n\n\tconst generateUpgradeLink = async (source: string, utm_campaign: string) => {\n\t\tlet upgradeLink = N8N_PRICING_PAGE_URL;\n\n\t\tif (canAutoLoginToCloudDashboard()) {\n\t\t\tupgradeLink = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath: '/account/change-plan',\n\t\t\t});\n\t\t}\n\n\t\tconst url = new URL(upgradeLink);\n\n\t\tif (utm_campaign) {\n\t\t\turl.searchParams.set('utm_campaign', utm_campaign);\n\t\t}\n\n\t\tif (source) {\n\t\t\turl.searchParams.set('source', source);\n\t\t}\n\n\t\treturn url.toString();\n\t};\n\n\treturn {\n\t\tgoToCloudDashboard,\n\t\tgoToDashboard,\n\t\tgoToVersions,\n\t\tgoToUpgrade,\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0BA,SAAgB,6BAA6B,EAAE,SAA0C;CACxF,MAAM,aAAa,eAAe;CAClC,MAAM,iBAAiB,mBAAmB;CAC1C,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,YAAY,cAAc;CAChC,MAAM,gBAAgB,kBAAkB;CAExC,MAAM,qCACL,WAAW,mBAAmB,cAAc;;;;CAK7C,MAAM,qBAAqB,OAAO,EACjC,iBACA,OAAO,iBAIgB;AACvB,MAAI,CAAC,8BAA8B,CAClC,QAAO;AAGR,MAAI,SAAS,YAAY;AACxB,YAAS,OAAO,MAAM,eAAe,oCAAoC,EACxE,iBACA,CAAC;AACF,UAAO;;EAGR,MAAM,MAAM,OAAO,KAAK,IAAI,SAAS;AACrC,MAAI,IAAK,KAAI,SAAS;AACtB,MAAI;GACH,MAAM,OAAO,MAAM,eAAe,oCAAoC,EACrE,iBACA,CAAC;AACF,OAAI,IACH,KAAI,SAAS,OAAO;OAEpB,UAAS,OAAO;WAET,OAAO;AACf,QAAK,OAAO;AACZ,SAAM;;AAEP,SAAO;;;;;;;CAQR,MAAM,eAAe,YAAY;AAChC,MAAI,CAAC,8BAA8B,EAAE;AACpC,UAAO,KAAK,cAAc,SAAS,UAAU,WAAW;AACxD;;AAGD,QAAM,mBAAmB,EAAE,iBAAiB,WAAW,CAAC;;CAGzD,MAAM,gBAAgB,YAAY;AACjC,QAAM,mBAAmB,EAAE,iBAAiB,cAAc,CAAC;;;;;;;CAS5D,MAAM,cAAc,OACnB,QACA,cACA,OAA4B,WACxB;AAEJ,MAAI,CADkB,MAAM,OAAO,CACf;EAEpB,MAAM,EAAE,WAAW,eAAe,mBAAmB;EACrD,MAAM,EAAE,gBAAgB,kBAAkB;EAC1C,MAAM,iBAAiB,cAAc;AAErC,YAAU,MAAM,4BAA4B;GAC3C;GACA,SAAS;GACT;GACA;GACA;GACA;GACA,CAAC;EAEF,MAAM,cAAc,MAAM,oBAAoB,QAAQ,aAAa;AAEnE,MAAI,SAAS,OACZ,QAAO,KAAK,aAAa,SAAS;MAElC,UAAS,OAAO;;CAIlB,MAAM,sBAAsB,OAAO,QAAgB,iBAAyB;EAC3E,IAAI,cAAc;AAElB,MAAI,8BAA8B,CACjC,eAAc,MAAM,eAAe,oCAAoC,EACtE,iBAAiB,wBACjB,CAAC;EAGH,MAAM,MAAM,IAAI,IAAI,YAAY;AAEhC,MAAI,aACH,KAAI,aAAa,IAAI,gBAAgB,aAAa;AAGnD,MAAI,OACH,KAAI,aAAa,IAAI,UAAU,OAAO;AAGvC,SAAO,IAAI,UAAU;;AAGtB,QAAO;EACN;EACA;EACA;EACA;EACA"}
|
package/dist/constants2.cjs
CHANGED
|
@@ -58,6 +58,7 @@ const STORES = {
|
|
|
58
58
|
EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers",
|
|
59
59
|
EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp",
|
|
60
60
|
EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal",
|
|
61
|
+
EXPERIMENT_INSTANCE_AI_FREE_NUDGE: "instanceAiFreeNudge",
|
|
61
62
|
SETUP_PANEL: "setupPanel",
|
|
62
63
|
FOCUSED_NODES: "focusedNodes",
|
|
63
64
|
FAVORITES: "favorites",
|
package/dist/constants2.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants2.cjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const STORES = {\n\tCOMMUNITY_NODES: 'communityNodes',\n\tROOT: 'root',\n\tSETTINGS: 'settings',\n\tNOTIFICATIONS: 'notifications',\n\tUI: 'ui',\n\tUSERS: 'users',\n\tWORKFLOWS: 'workflows',\n\tWORKFLOWS_LIST: 'workflowsList',\n\tWORKFLOWS_V2: 'workflowsV2',\n\tWORKFLOWS_EE: 'workflowsEE',\n\tWORKFLOW_DOCUMENTS: 'workflowDocuments',\n\tEXECUTION_DATA: 'executionData',\n\tWORKFLOW_EXECUTION_STATES: 'workflowExecutionStates',\n\tEXECUTIONS: 'executions',\n\tNDV: 'ndv',\n\tTEMPLATES: 'templates',\n\tNODE_TYPES: 'nodeTypes',\n\tCREDENTIALS: 'credentials',\n\tTAGS: 'tags',\n\tANNOTATION_TAGS: 'annotationTags',\n\tVERSIONS: 'versions',\n\tNODE_CREATOR: 'nodeCreator',\n\tWEBHOOKS: 'webhooks',\n\tHISTORY: 'history',\n\tCLOUD_PLAN: 'cloudPlan',\n\tRBAC: 'rbac',\n\tPUSH: 'push',\n\tCOLLABORATION: 'collaboration',\n\tASSISTANT: 'assistant',\n\tBUILDER: 'builder',\n\tCHAT_PANEL: 'chatPanel',\n\tCHAT_PANEL_STATE: 'chatPanelState',\n\tBECOME_TEMPLATE_CREATOR: 'becomeTemplateCreator',\n\tPROJECTS: 'projects',\n\tAPI_KEYS: 'apiKeys',\n\tEVALUATION: 'evaluation',\n\tEVAL_COLLECTIONS: 'evalCollections',\n\tAGENT_EVALS: 'agentEvals',\n\tFOLDERS: 'folders',\n\tMODULES: 'modules',\n\tFOCUS_PANEL: 'focusPanel',\n\tAI_TEMPLATES_STARTER_COLLECTION: 'aiTemplatesStarterCollection',\n\tPERSONALIZED_TEMPLATES: 'personalizedTemplates',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS: 'readyToRunWorkflows',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS_V2: 'readyToRunWorkflowsV2',\n\tEXPERIMENT_TEMPLATE_RECO_V2: 'templateRecoV2',\n\tPERSONALIZED_TEMPLATES_V3: 'personalizedTemplatesV3',\n\tREADY_TO_RUN: 'readyToRun',\n\tTEMPLATES_DATA_QUALITY: 'templatesDataQuality',\n\tBANNERS: 'banners',\n\tCONSENT: 'consent',\n\tCHAT_HUB: 'chatHub',\n\tCHAT_HUB_PANEL: 'chatHubPanel',\n\tEXPERIMENT_CREDENTIALS_APP_SELECTION: 'credentialsAppSelection',\n\tEXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: 'surfaceMcpToNewCloudUsers',\n\tEXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: 'exposeAllWorkflowsToMcp',\n\tEXPERIMENT_TRIAL_INTRO_MODAL: 'trialIntroModal',\n\tSETUP_PANEL: 'setupPanel',\n\tFOCUSED_NODES: 'focusedNodes',\n\tFAVORITES: 'favorites',\n\tAI_GATEWAY: 'aiGateway',\n\tEVALUATIONS_WIZARD_SIDEPANEL: 'evaluationsWizardSidepanel',\n} as const;\n"],"mappings":";;AAAA,MAAa,SAAS;CACrB,iBAAiB;CACjB,MAAM;CACN,UAAU;CACV,eAAe;CACf,IAAI;CACJ,OAAO;CACP,WAAW;CACX,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,oBAAoB;CACpB,gBAAgB;CAChB,2BAA2B;CAC3B,YAAY;CACZ,KAAK;CACL,WAAW;CACX,YAAY;CACZ,aAAa;CACb,MAAM;CACN,iBAAiB;CACjB,UAAU;CACV,cAAc;CACd,UAAU;CACV,SAAS;CACT,YAAY;CACZ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,SAAS;CACT,YAAY;CACZ,kBAAkB;CAClB,yBAAyB;CACzB,UAAU;CACV,UAAU;CACV,YAAY;CACZ,kBAAkB;CAClB,aAAa;CACb,SAAS;CACT,SAAS;CACT,aAAa;CACb,iCAAiC;CACjC,wBAAwB;CACxB,mCAAmC;CACnC,sCAAsC;CACtC,6BAA6B;CAC7B,2BAA2B;CAC3B,cAAc;CACd,wBAAwB;CACxB,SAAS;CACT,SAAS;CACT,UAAU;CACV,gBAAgB;CAChB,sCAAsC;CACtC,2CAA2C;CAC3C,wCAAwC;CACxC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,WAAW;CACX,YAAY;CACZ,8BAA8B;CAC9B"}
|
|
1
|
+
{"version":3,"file":"constants2.cjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const STORES = {\n\tCOMMUNITY_NODES: 'communityNodes',\n\tROOT: 'root',\n\tSETTINGS: 'settings',\n\tNOTIFICATIONS: 'notifications',\n\tUI: 'ui',\n\tUSERS: 'users',\n\tWORKFLOWS: 'workflows',\n\tWORKFLOWS_LIST: 'workflowsList',\n\tWORKFLOWS_V2: 'workflowsV2',\n\tWORKFLOWS_EE: 'workflowsEE',\n\tWORKFLOW_DOCUMENTS: 'workflowDocuments',\n\tEXECUTION_DATA: 'executionData',\n\tWORKFLOW_EXECUTION_STATES: 'workflowExecutionStates',\n\tEXECUTIONS: 'executions',\n\tNDV: 'ndv',\n\tTEMPLATES: 'templates',\n\tNODE_TYPES: 'nodeTypes',\n\tCREDENTIALS: 'credentials',\n\tTAGS: 'tags',\n\tANNOTATION_TAGS: 'annotationTags',\n\tVERSIONS: 'versions',\n\tNODE_CREATOR: 'nodeCreator',\n\tWEBHOOKS: 'webhooks',\n\tHISTORY: 'history',\n\tCLOUD_PLAN: 'cloudPlan',\n\tRBAC: 'rbac',\n\tPUSH: 'push',\n\tCOLLABORATION: 'collaboration',\n\tASSISTANT: 'assistant',\n\tBUILDER: 'builder',\n\tCHAT_PANEL: 'chatPanel',\n\tCHAT_PANEL_STATE: 'chatPanelState',\n\tBECOME_TEMPLATE_CREATOR: 'becomeTemplateCreator',\n\tPROJECTS: 'projects',\n\tAPI_KEYS: 'apiKeys',\n\tEVALUATION: 'evaluation',\n\tEVAL_COLLECTIONS: 'evalCollections',\n\tAGENT_EVALS: 'agentEvals',\n\tFOLDERS: 'folders',\n\tMODULES: 'modules',\n\tFOCUS_PANEL: 'focusPanel',\n\tAI_TEMPLATES_STARTER_COLLECTION: 'aiTemplatesStarterCollection',\n\tPERSONALIZED_TEMPLATES: 'personalizedTemplates',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS: 'readyToRunWorkflows',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS_V2: 'readyToRunWorkflowsV2',\n\tEXPERIMENT_TEMPLATE_RECO_V2: 'templateRecoV2',\n\tPERSONALIZED_TEMPLATES_V3: 'personalizedTemplatesV3',\n\tREADY_TO_RUN: 'readyToRun',\n\tTEMPLATES_DATA_QUALITY: 'templatesDataQuality',\n\tBANNERS: 'banners',\n\tCONSENT: 'consent',\n\tCHAT_HUB: 'chatHub',\n\tCHAT_HUB_PANEL: 'chatHubPanel',\n\tEXPERIMENT_CREDENTIALS_APP_SELECTION: 'credentialsAppSelection',\n\tEXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: 'surfaceMcpToNewCloudUsers',\n\tEXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: 'exposeAllWorkflowsToMcp',\n\tEXPERIMENT_TRIAL_INTRO_MODAL: 'trialIntroModal',\n\tEXPERIMENT_INSTANCE_AI_FREE_NUDGE: 'instanceAiFreeNudge',\n\tSETUP_PANEL: 'setupPanel',\n\tFOCUSED_NODES: 'focusedNodes',\n\tFAVORITES: 'favorites',\n\tAI_GATEWAY: 'aiGateway',\n\tEVALUATIONS_WIZARD_SIDEPANEL: 'evaluationsWizardSidepanel',\n} as const;\n"],"mappings":";;AAAA,MAAa,SAAS;CACrB,iBAAiB;CACjB,MAAM;CACN,UAAU;CACV,eAAe;CACf,IAAI;CACJ,OAAO;CACP,WAAW;CACX,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,oBAAoB;CACpB,gBAAgB;CAChB,2BAA2B;CAC3B,YAAY;CACZ,KAAK;CACL,WAAW;CACX,YAAY;CACZ,aAAa;CACb,MAAM;CACN,iBAAiB;CACjB,UAAU;CACV,cAAc;CACd,UAAU;CACV,SAAS;CACT,YAAY;CACZ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,SAAS;CACT,YAAY;CACZ,kBAAkB;CAClB,yBAAyB;CACzB,UAAU;CACV,UAAU;CACV,YAAY;CACZ,kBAAkB;CAClB,aAAa;CACb,SAAS;CACT,SAAS;CACT,aAAa;CACb,iCAAiC;CACjC,wBAAwB;CACxB,mCAAmC;CACnC,sCAAsC;CACtC,6BAA6B;CAC7B,2BAA2B;CAC3B,cAAc;CACd,wBAAwB;CACxB,SAAS;CACT,SAAS;CACT,UAAU;CACV,gBAAgB;CAChB,sCAAsC;CACtC,2CAA2C;CAC3C,wCAAwC;CACxC,8BAA8B;CAC9B,mCAAmC;CACnC,aAAa;CACb,eAAe;CACf,WAAW;CACX,YAAY;CACZ,8BAA8B;CAC9B"}
|
package/dist/constants2.d.cts
CHANGED
|
@@ -57,6 +57,7 @@ declare const STORES: {
|
|
|
57
57
|
readonly EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers";
|
|
58
58
|
readonly EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp";
|
|
59
59
|
readonly EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal";
|
|
60
|
+
readonly EXPERIMENT_INSTANCE_AI_FREE_NUDGE: "instanceAiFreeNudge";
|
|
60
61
|
readonly SETUP_PANEL: "setupPanel";
|
|
61
62
|
readonly FOCUSED_NODES: "focusedNodes";
|
|
62
63
|
readonly FAVORITES: "favorites";
|
package/dist/constants2.d.mts
CHANGED
|
@@ -57,6 +57,7 @@ declare const STORES: {
|
|
|
57
57
|
readonly EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers";
|
|
58
58
|
readonly EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp";
|
|
59
59
|
readonly EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal";
|
|
60
|
+
readonly EXPERIMENT_INSTANCE_AI_FREE_NUDGE: "instanceAiFreeNudge";
|
|
60
61
|
readonly SETUP_PANEL: "setupPanel";
|
|
61
62
|
readonly FOCUSED_NODES: "focusedNodes";
|
|
62
63
|
readonly FAVORITES: "favorites";
|
package/dist/constants2.mjs
CHANGED
|
@@ -57,6 +57,7 @@ const STORES = {
|
|
|
57
57
|
EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers",
|
|
58
58
|
EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp",
|
|
59
59
|
EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal",
|
|
60
|
+
EXPERIMENT_INSTANCE_AI_FREE_NUDGE: "instanceAiFreeNudge",
|
|
60
61
|
SETUP_PANEL: "setupPanel",
|
|
61
62
|
FOCUSED_NODES: "focusedNodes",
|
|
62
63
|
FAVORITES: "favorites",
|
package/dist/constants2.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants2.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const STORES = {\n\tCOMMUNITY_NODES: 'communityNodes',\n\tROOT: 'root',\n\tSETTINGS: 'settings',\n\tNOTIFICATIONS: 'notifications',\n\tUI: 'ui',\n\tUSERS: 'users',\n\tWORKFLOWS: 'workflows',\n\tWORKFLOWS_LIST: 'workflowsList',\n\tWORKFLOWS_V2: 'workflowsV2',\n\tWORKFLOWS_EE: 'workflowsEE',\n\tWORKFLOW_DOCUMENTS: 'workflowDocuments',\n\tEXECUTION_DATA: 'executionData',\n\tWORKFLOW_EXECUTION_STATES: 'workflowExecutionStates',\n\tEXECUTIONS: 'executions',\n\tNDV: 'ndv',\n\tTEMPLATES: 'templates',\n\tNODE_TYPES: 'nodeTypes',\n\tCREDENTIALS: 'credentials',\n\tTAGS: 'tags',\n\tANNOTATION_TAGS: 'annotationTags',\n\tVERSIONS: 'versions',\n\tNODE_CREATOR: 'nodeCreator',\n\tWEBHOOKS: 'webhooks',\n\tHISTORY: 'history',\n\tCLOUD_PLAN: 'cloudPlan',\n\tRBAC: 'rbac',\n\tPUSH: 'push',\n\tCOLLABORATION: 'collaboration',\n\tASSISTANT: 'assistant',\n\tBUILDER: 'builder',\n\tCHAT_PANEL: 'chatPanel',\n\tCHAT_PANEL_STATE: 'chatPanelState',\n\tBECOME_TEMPLATE_CREATOR: 'becomeTemplateCreator',\n\tPROJECTS: 'projects',\n\tAPI_KEYS: 'apiKeys',\n\tEVALUATION: 'evaluation',\n\tEVAL_COLLECTIONS: 'evalCollections',\n\tAGENT_EVALS: 'agentEvals',\n\tFOLDERS: 'folders',\n\tMODULES: 'modules',\n\tFOCUS_PANEL: 'focusPanel',\n\tAI_TEMPLATES_STARTER_COLLECTION: 'aiTemplatesStarterCollection',\n\tPERSONALIZED_TEMPLATES: 'personalizedTemplates',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS: 'readyToRunWorkflows',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS_V2: 'readyToRunWorkflowsV2',\n\tEXPERIMENT_TEMPLATE_RECO_V2: 'templateRecoV2',\n\tPERSONALIZED_TEMPLATES_V3: 'personalizedTemplatesV3',\n\tREADY_TO_RUN: 'readyToRun',\n\tTEMPLATES_DATA_QUALITY: 'templatesDataQuality',\n\tBANNERS: 'banners',\n\tCONSENT: 'consent',\n\tCHAT_HUB: 'chatHub',\n\tCHAT_HUB_PANEL: 'chatHubPanel',\n\tEXPERIMENT_CREDENTIALS_APP_SELECTION: 'credentialsAppSelection',\n\tEXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: 'surfaceMcpToNewCloudUsers',\n\tEXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: 'exposeAllWorkflowsToMcp',\n\tEXPERIMENT_TRIAL_INTRO_MODAL: 'trialIntroModal',\n\tSETUP_PANEL: 'setupPanel',\n\tFOCUSED_NODES: 'focusedNodes',\n\tFAVORITES: 'favorites',\n\tAI_GATEWAY: 'aiGateway',\n\tEVALUATIONS_WIZARD_SIDEPANEL: 'evaluationsWizardSidepanel',\n} as const;\n"],"mappings":";AAAA,MAAa,SAAS;CACrB,iBAAiB;CACjB,MAAM;CACN,UAAU;CACV,eAAe;CACf,IAAI;CACJ,OAAO;CACP,WAAW;CACX,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,oBAAoB;CACpB,gBAAgB;CAChB,2BAA2B;CAC3B,YAAY;CACZ,KAAK;CACL,WAAW;CACX,YAAY;CACZ,aAAa;CACb,MAAM;CACN,iBAAiB;CACjB,UAAU;CACV,cAAc;CACd,UAAU;CACV,SAAS;CACT,YAAY;CACZ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,SAAS;CACT,YAAY;CACZ,kBAAkB;CAClB,yBAAyB;CACzB,UAAU;CACV,UAAU;CACV,YAAY;CACZ,kBAAkB;CAClB,aAAa;CACb,SAAS;CACT,SAAS;CACT,aAAa;CACb,iCAAiC;CACjC,wBAAwB;CACxB,mCAAmC;CACnC,sCAAsC;CACtC,6BAA6B;CAC7B,2BAA2B;CAC3B,cAAc;CACd,wBAAwB;CACxB,SAAS;CACT,SAAS;CACT,UAAU;CACV,gBAAgB;CAChB,sCAAsC;CACtC,2CAA2C;CAC3C,wCAAwC;CACxC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,WAAW;CACX,YAAY;CACZ,8BAA8B;CAC9B"}
|
|
1
|
+
{"version":3,"file":"constants2.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const STORES = {\n\tCOMMUNITY_NODES: 'communityNodes',\n\tROOT: 'root',\n\tSETTINGS: 'settings',\n\tNOTIFICATIONS: 'notifications',\n\tUI: 'ui',\n\tUSERS: 'users',\n\tWORKFLOWS: 'workflows',\n\tWORKFLOWS_LIST: 'workflowsList',\n\tWORKFLOWS_V2: 'workflowsV2',\n\tWORKFLOWS_EE: 'workflowsEE',\n\tWORKFLOW_DOCUMENTS: 'workflowDocuments',\n\tEXECUTION_DATA: 'executionData',\n\tWORKFLOW_EXECUTION_STATES: 'workflowExecutionStates',\n\tEXECUTIONS: 'executions',\n\tNDV: 'ndv',\n\tTEMPLATES: 'templates',\n\tNODE_TYPES: 'nodeTypes',\n\tCREDENTIALS: 'credentials',\n\tTAGS: 'tags',\n\tANNOTATION_TAGS: 'annotationTags',\n\tVERSIONS: 'versions',\n\tNODE_CREATOR: 'nodeCreator',\n\tWEBHOOKS: 'webhooks',\n\tHISTORY: 'history',\n\tCLOUD_PLAN: 'cloudPlan',\n\tRBAC: 'rbac',\n\tPUSH: 'push',\n\tCOLLABORATION: 'collaboration',\n\tASSISTANT: 'assistant',\n\tBUILDER: 'builder',\n\tCHAT_PANEL: 'chatPanel',\n\tCHAT_PANEL_STATE: 'chatPanelState',\n\tBECOME_TEMPLATE_CREATOR: 'becomeTemplateCreator',\n\tPROJECTS: 'projects',\n\tAPI_KEYS: 'apiKeys',\n\tEVALUATION: 'evaluation',\n\tEVAL_COLLECTIONS: 'evalCollections',\n\tAGENT_EVALS: 'agentEvals',\n\tFOLDERS: 'folders',\n\tMODULES: 'modules',\n\tFOCUS_PANEL: 'focusPanel',\n\tAI_TEMPLATES_STARTER_COLLECTION: 'aiTemplatesStarterCollection',\n\tPERSONALIZED_TEMPLATES: 'personalizedTemplates',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS: 'readyToRunWorkflows',\n\tEXPERIMENT_READY_TO_RUN_WORKFLOWS_V2: 'readyToRunWorkflowsV2',\n\tEXPERIMENT_TEMPLATE_RECO_V2: 'templateRecoV2',\n\tPERSONALIZED_TEMPLATES_V3: 'personalizedTemplatesV3',\n\tREADY_TO_RUN: 'readyToRun',\n\tTEMPLATES_DATA_QUALITY: 'templatesDataQuality',\n\tBANNERS: 'banners',\n\tCONSENT: 'consent',\n\tCHAT_HUB: 'chatHub',\n\tCHAT_HUB_PANEL: 'chatHubPanel',\n\tEXPERIMENT_CREDENTIALS_APP_SELECTION: 'credentialsAppSelection',\n\tEXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: 'surfaceMcpToNewCloudUsers',\n\tEXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: 'exposeAllWorkflowsToMcp',\n\tEXPERIMENT_TRIAL_INTRO_MODAL: 'trialIntroModal',\n\tEXPERIMENT_INSTANCE_AI_FREE_NUDGE: 'instanceAiFreeNudge',\n\tSETUP_PANEL: 'setupPanel',\n\tFOCUSED_NODES: 'focusedNodes',\n\tFAVORITES: 'favorites',\n\tAI_GATEWAY: 'aiGateway',\n\tEVALUATIONS_WIZARD_SIDEPANEL: 'evaluationsWizardSidepanel',\n} as const;\n"],"mappings":";AAAA,MAAa,SAAS;CACrB,iBAAiB;CACjB,MAAM;CACN,UAAU;CACV,eAAe;CACf,IAAI;CACJ,OAAO;CACP,WAAW;CACX,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,oBAAoB;CACpB,gBAAgB;CAChB,2BAA2B;CAC3B,YAAY;CACZ,KAAK;CACL,WAAW;CACX,YAAY;CACZ,aAAa;CACb,MAAM;CACN,iBAAiB;CACjB,UAAU;CACV,cAAc;CACd,UAAU;CACV,SAAS;CACT,YAAY;CACZ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,SAAS;CACT,YAAY;CACZ,kBAAkB;CAClB,yBAAyB;CACzB,UAAU;CACV,UAAU;CACV,YAAY;CACZ,kBAAkB;CAClB,aAAa;CACb,SAAS;CACT,SAAS;CACT,aAAa;CACb,iCAAiC;CACjC,wBAAwB;CACxB,mCAAmC;CACnC,sCAAsC;CACtC,6BAA6B;CAC7B,2BAA2B;CAC3B,cAAc;CACd,wBAAwB;CACxB,SAAS;CACT,SAAS;CACT,UAAU;CACV,gBAAgB;CAChB,sCAAsC;CACtC,2CAA2C;CAC3C,wCAAwC;CACxC,8BAA8B;CAC9B,mCAAmC;CACnC,aAAa;CACb,eAAe;CACf,WAAW;CACX,YAAY;CACZ,8BAA8B;CAC9B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Ref } from "vue";
|
|
2
|
-
import * as
|
|
2
|
+
import * as pinia5 from "pinia";
|
|
3
3
|
|
|
4
4
|
//#region src/notifications.store.d.ts
|
|
5
5
|
interface NotificationsStore {
|
|
@@ -9,7 +9,7 @@ interface NotificationsStore {
|
|
|
9
9
|
allowErrors?: boolean;
|
|
10
10
|
}) => void;
|
|
11
11
|
}
|
|
12
|
-
declare const useNotificationsStore:
|
|
12
|
+
declare const useNotificationsStore: pinia5.StoreDefinition<"notifications", Pick<NotificationsStore, "areNotificationsSuppressed" | "allowErrorNotificationsWhenSuppressed">, Pick<NotificationsStore, never>, Pick<NotificationsStore, "setNotificationsSuppressed">>;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { NotificationsStore, useNotificationsStore };
|
|
15
15
|
//# sourceMappingURL=notifications.store.d.cts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/types/pageRedirection.d.ts
|
|
2
|
-
type CloudUpdateLinkSourceType = 'advanced-permissions' | 'canvas-nav' | 'concurrency' | 'custom-data-filter' | 'workflow_sharing' | 'credential_sharing' | 'settings-n8n-api' | 'audit-logs' | 'ldap' | 'log-streaming' | 'source-control' | 'sso' | 'usage_page' | 'settings-users' | 'variables' | 'community-nodes' | 'workflow-history' | 'worker-view' | 'external-secrets' | 'rbac' | 'debug' | 'insights' | 'evaluations' | 'ai-builder-sidebar' | 'ai-builder-canvas' | 'custom-roles' | 'custom-roles-selector' | 'custom-roles-list' | 'main-sidebar' | 'chat-hub' | 'empty-state-builder-prompt' | 'instance-ai' | 'data-redaction' | 'workflow-settings' | 'trial-welcome-modal';
|
|
3
|
-
type UTMCampaign = 'upgrade-custom-data-filter' | 'upgrade-concurrency' | 'upgrade-workflow-sharing' | 'upgrade-credentials-sharing' | 'upgrade-api' | 'upgrade-audit-logs' | 'upgrade-ldap' | 'upgrade-log-streaming' | 'upgrade-source-control' | 'upgrade-sso' | 'open' | 'upgrade-users' | 'upgrade-variables' | 'upgrade-community-nodes' | 'upgrade-workflow-history' | 'upgrade-advanced-permissions' | 'upgrade-worker-view' | 'upgrade-external-secrets' | 'upgrade-rbac' | 'upgrade-debug' | 'upgrade-insights' | 'upgrade-evaluations' | 'upgrade-builder' | 'upgrade-custom-roles' | 'upgrade-canvas-nav' | 'upgrade-main-sidebar' | 'upgrade-instance-ai' | 'upgrade-data-redaction';
|
|
2
|
+
type CloudUpdateLinkSourceType = 'advanced-permissions' | 'canvas-nav' | 'concurrency' | 'custom-data-filter' | 'workflow_sharing' | 'credential_sharing' | 'settings-n8n-api' | 'audit-logs' | 'ldap' | 'log-streaming' | 'source-control' | 'sso' | 'usage_page' | 'settings-users' | 'variables' | 'community-nodes' | 'workflow-history' | 'worker-view' | 'external-secrets' | 'rbac' | 'debug' | 'insights' | 'evaluations' | 'ai-builder-sidebar' | 'ai-builder-canvas' | 'custom-roles' | 'custom-roles-selector' | 'custom-roles-list' | 'main-sidebar' | 'chat-hub' | 'empty-state-builder-prompt' | 'instance-ai' | 'data-redaction' | 'workflow-settings' | 'trial-welcome-modal' | 'ai-gateway-top-up';
|
|
3
|
+
type UTMCampaign = 'upgrade-custom-data-filter' | 'upgrade-concurrency' | 'upgrade-workflow-sharing' | 'upgrade-credentials-sharing' | 'upgrade-api' | 'upgrade-audit-logs' | 'upgrade-ldap' | 'upgrade-log-streaming' | 'upgrade-source-control' | 'upgrade-sso' | 'open' | 'upgrade-users' | 'upgrade-variables' | 'upgrade-community-nodes' | 'upgrade-workflow-history' | 'upgrade-advanced-permissions' | 'upgrade-worker-view' | 'upgrade-external-secrets' | 'upgrade-rbac' | 'upgrade-debug' | 'upgrade-insights' | 'upgrade-evaluations' | 'upgrade-builder' | 'upgrade-custom-roles' | 'upgrade-canvas-nav' | 'upgrade-main-sidebar' | 'upgrade-instance-ai' | 'upgrade-data-redaction' | 'upgrade-ai-gateway-top-up';
|
|
4
4
|
//#endregion
|
|
5
5
|
export { UTMCampaign as n, CloudUpdateLinkSourceType as t };
|
|
6
6
|
//# sourceMappingURL=pageRedirection.d.cts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/types/pageRedirection.d.ts
|
|
2
|
-
type CloudUpdateLinkSourceType = 'advanced-permissions' | 'canvas-nav' | 'concurrency' | 'custom-data-filter' | 'workflow_sharing' | 'credential_sharing' | 'settings-n8n-api' | 'audit-logs' | 'ldap' | 'log-streaming' | 'source-control' | 'sso' | 'usage_page' | 'settings-users' | 'variables' | 'community-nodes' | 'workflow-history' | 'worker-view' | 'external-secrets' | 'rbac' | 'debug' | 'insights' | 'evaluations' | 'ai-builder-sidebar' | 'ai-builder-canvas' | 'custom-roles' | 'custom-roles-selector' | 'custom-roles-list' | 'main-sidebar' | 'chat-hub' | 'empty-state-builder-prompt' | 'instance-ai' | 'data-redaction' | 'workflow-settings' | 'trial-welcome-modal';
|
|
3
|
-
type UTMCampaign = 'upgrade-custom-data-filter' | 'upgrade-concurrency' | 'upgrade-workflow-sharing' | 'upgrade-credentials-sharing' | 'upgrade-api' | 'upgrade-audit-logs' | 'upgrade-ldap' | 'upgrade-log-streaming' | 'upgrade-source-control' | 'upgrade-sso' | 'open' | 'upgrade-users' | 'upgrade-variables' | 'upgrade-community-nodes' | 'upgrade-workflow-history' | 'upgrade-advanced-permissions' | 'upgrade-worker-view' | 'upgrade-external-secrets' | 'upgrade-rbac' | 'upgrade-debug' | 'upgrade-insights' | 'upgrade-evaluations' | 'upgrade-builder' | 'upgrade-custom-roles' | 'upgrade-canvas-nav' | 'upgrade-main-sidebar' | 'upgrade-instance-ai' | 'upgrade-data-redaction';
|
|
2
|
+
type CloudUpdateLinkSourceType = 'advanced-permissions' | 'canvas-nav' | 'concurrency' | 'custom-data-filter' | 'workflow_sharing' | 'credential_sharing' | 'settings-n8n-api' | 'audit-logs' | 'ldap' | 'log-streaming' | 'source-control' | 'sso' | 'usage_page' | 'settings-users' | 'variables' | 'community-nodes' | 'workflow-history' | 'worker-view' | 'external-secrets' | 'rbac' | 'debug' | 'insights' | 'evaluations' | 'ai-builder-sidebar' | 'ai-builder-canvas' | 'custom-roles' | 'custom-roles-selector' | 'custom-roles-list' | 'main-sidebar' | 'chat-hub' | 'empty-state-builder-prompt' | 'instance-ai' | 'data-redaction' | 'workflow-settings' | 'trial-welcome-modal' | 'ai-gateway-top-up';
|
|
3
|
+
type UTMCampaign = 'upgrade-custom-data-filter' | 'upgrade-concurrency' | 'upgrade-workflow-sharing' | 'upgrade-credentials-sharing' | 'upgrade-api' | 'upgrade-audit-logs' | 'upgrade-ldap' | 'upgrade-log-streaming' | 'upgrade-source-control' | 'upgrade-sso' | 'open' | 'upgrade-users' | 'upgrade-variables' | 'upgrade-community-nodes' | 'upgrade-workflow-history' | 'upgrade-advanced-permissions' | 'upgrade-worker-view' | 'upgrade-external-secrets' | 'upgrade-rbac' | 'upgrade-debug' | 'upgrade-insights' | 'upgrade-evaluations' | 'upgrade-builder' | 'upgrade-custom-roles' | 'upgrade-canvas-nav' | 'upgrade-main-sidebar' | 'upgrade-instance-ai' | 'upgrade-data-redaction' | 'upgrade-ai-gateway-top-up';
|
|
4
4
|
//#endregion
|
|
5
5
|
export { UTMCampaign as n, CloudUpdateLinkSourceType as t };
|
|
6
6
|
//# sourceMappingURL=pageRedirection.d.mts.map
|
package/dist/rbac.store.cjs
CHANGED
package/dist/rbac.store.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.store.cjs","names":["STORES"],"sources":["../src/rbac.store.ts"],"sourcesContent":["import type { Role } from '@n8n/api-types';\nimport { hasScope as genericHasScope } from '@n8n/permissions';\nimport type { ScopeOptions, Scope, Resource } from '@n8n/permissions';\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\n\nimport { STORES } from './constants';\n\nexport const useRBACStore = defineStore(STORES.RBAC, () => {\n\tconst globalRoles = ref<Role[]>([]);\n\tconst rolesByProjectId = ref<Record<string, string[]>>({});\n\n\tconst globalScopes = ref<Scope[]>([]);\n\tconst scopesByProjectId = ref<Record<string, Scope[]>>({});\n\tconst scopesByResourceId = ref<Record<Resource, Record<string, Scope[]>>>({\n\t\tagent: {},\n\t\taiAssistant: {},\n\t\tworkflow: {},\n\t\ttag: {},\n\t\tannotationTag: {},\n\t\tuser: {},\n\t\tcredential: {},\n\t\tvariable: {},\n\t\tprojectVariable: {},\n\t\tsourceControl: {},\n\t\texternalSecretsProvider: {},\n\t\texternalSecret: {},\n\t\tproject: {},\n\t\torchestration: {},\n\t\tworkersView: {},\n\t\teventBusDestination: {},\n\t\tauditLogs: {},\n\t\tbanner: {},\n\t\tcommunity: {},\n\t\tcommunityPackage: {},\n\t\tldap: {},\n\t\tlicense: {},\n\t\tlogStreaming: {},\n\t\tsaml: {},\n\t\toidc: {},\n\t\tprovisioning: {},\n\t\tsecurityAudit: {},\n\t\tfolder: {},\n\t\tinsights: {},\n\t\tdataTable: {},\n\t\texecution: {},\n\t\ttestRun: {},\n\t\tworkflowTags: {},\n\t\trole: {},\n\t\tmcp: {},\n\t\tmcpApiKey: {},\n\t\tchatHub: {},\n\t\tchatHubAgent: {},\n\t\tbreakingChanges: {},\n\t\tapiKey: {},\n\t\tencryptionKey: {},\n\t\tcredentialResolver: {},\n\t\tinstanceAi: {},\n\t\tsecuritySettings: {},\n\t\troleMappingRule: {},\n\t\totel: {},\n\t});\n\n\tfunction addGlobalRole(role: Role) {\n\t\tif (!globalRoles.value.includes(role)) {\n\t\t\tglobalRoles.value.push(role);\n\t\t}\n\t}\n\n\tfunction hasRole(role: Role) {\n\t\treturn globalRoles.value.includes(role);\n\t}\n\n\tfunction addGlobalScope(scope: Scope) {\n\t\tif (!globalScopes.value.includes(scope)) {\n\t\t\tglobalScopes.value.push(scope);\n\t\t}\n\t}\n\n\tfunction setGlobalScopes(scopes: Scope[]) {\n\t\tglobalScopes.value = scopes;\n\t}\n\n\tfunction addProjectScope(\n\t\tscope: Scope,\n\t\tcontext: {\n\t\t\tprojectId: string;\n\t\t},\n\t) {\n\t\tif (!scopesByProjectId.value[context.projectId]) {\n\t\t\tscopesByProjectId.value[context.projectId] = [];\n\t\t}\n\n\t\tif (!scopesByProjectId.value[context.projectId].includes(scope)) {\n\t\t\tscopesByProjectId.value[context.projectId].push(scope);\n\t\t}\n\t}\n\n\tfunction addResourceScope(\n\t\tscope: Scope,\n\t\tcontext: {\n\t\t\tresourceType: Resource;\n\t\t\tresourceId: string;\n\t\t},\n\t) {\n\t\tconst scopesByResourceType = scopesByResourceId.value[context.resourceType];\n\t\tif (!scopesByResourceType[context.resourceId]) {\n\t\t\tscopesByResourceType[context.resourceId] = [];\n\t\t}\n\n\t\tif (!scopesByResourceType[context.resourceId].includes(scope)) {\n\t\t\tscopesByResourceType[context.resourceId].push(scope);\n\t\t}\n\t}\n\n\tfunction hasScope(\n\t\tscope: Scope | Scope[],\n\t\tcontext?: {\n\t\t\tresourceType?: Resource;\n\t\t\tresourceId?: string;\n\t\t\tprojectId?: string;\n\t\t},\n\t\toptions?: ScopeOptions,\n\t): boolean {\n\t\treturn genericHasScope(\n\t\t\tscope,\n\t\t\t{\n\t\t\t\tglobal: globalScopes.value,\n\t\t\t\tproject: context?.projectId ? scopesByProjectId.value[context.projectId] : [],\n\t\t\t\tresource:\n\t\t\t\t\tcontext?.resourceType && context?.resourceId\n\t\t\t\t\t\t? scopesByResourceId.value[context.resourceType][context.resourceId]\n\t\t\t\t\t\t: [],\n\t\t\t},\n\t\t\tundefined,\n\t\t\toptions,\n\t\t);\n\t}\n\n\treturn {\n\t\tglobalRoles,\n\t\trolesByProjectId,\n\t\tglobalScopes,\n\t\tscopesByProjectId,\n\t\tscopesByResourceId,\n\t\taddGlobalRole,\n\t\thasRole,\n\t\taddGlobalScope,\n\t\tsetGlobalScopes,\n\t\taddProjectScope,\n\t\taddResourceScope,\n\t\thasScope,\n\t};\n});\n"],"mappings":";;;;;;;AAQA,MAAa,sCAA2BA,yBAAO,YAAY;CAC1D,MAAM,2BAA0B,EAAE,CAAC;CACnC,MAAM,gCAAiD,EAAE,CAAC;CAE1D,MAAM,4BAA4B,EAAE,CAAC;CACrC,MAAM,iCAAiD,EAAE,CAAC;CAC1D,MAAM,kCAAoE;EACzE,OAAO,EAAE;EACT,aAAa,EAAE;EACf,UAAU,EAAE;EACZ,KAAK,EAAE;EACP,eAAe,EAAE;EACjB,MAAM,EAAE;EACR,YAAY,EAAE;EACd,UAAU,EAAE;EACZ,iBAAiB,EAAE;EACnB,eAAe,EAAE;EACjB,yBAAyB,EAAE;EAC3B,gBAAgB,EAAE;EAClB,SAAS,EAAE;EACX,eAAe,EAAE;EACjB,aAAa,EAAE;EACf,qBAAqB,EAAE;EACvB,WAAW,EAAE;EACb,QAAQ,EAAE;EACV,WAAW,EAAE;EACb,kBAAkB,EAAE;EACpB,MAAM,EAAE;EACR,SAAS,EAAE;EACX,cAAc,EAAE;EAChB,MAAM,EAAE;EACR,MAAM,EAAE;EACR,cAAc,EAAE;EAChB,eAAe,EAAE;EACjB,QAAQ,EAAE;EACV,UAAU,EAAE;EACZ,WAAW,EAAE;EACb,WAAW,EAAE;EACb,SAAS,EAAE;EACX,cAAc,EAAE;EAChB,MAAM,EAAE;EACR,KAAK,EAAE;EACP,WAAW,EAAE;EACb,SAAS,EAAE;EACX,cAAc,EAAE;EAChB,iBAAiB,EAAE;EACnB,QAAQ,EAAE;EACV,eAAe,EAAE;EACjB,oBAAoB,EAAE;EACtB,YAAY,EAAE;EACd,kBAAkB,EAAE;EACpB,iBAAiB,EAAE;EACnB,MAAM,EAAE;EACR,CAAC;CAEF,SAAS,cAAc,MAAY;AAClC,MAAI,CAAC,YAAY,MAAM,SAAS,KAAK,CACpC,aAAY,MAAM,KAAK,KAAK;;CAI9B,SAAS,QAAQ,MAAY;AAC5B,SAAO,YAAY,MAAM,SAAS,KAAK;;CAGxC,SAAS,eAAe,OAAc;AACrC,MAAI,CAAC,aAAa,MAAM,SAAS,MAAM,CACtC,cAAa,MAAM,KAAK,MAAM;;CAIhC,SAAS,gBAAgB,QAAiB;AACzC,eAAa,QAAQ;;CAGtB,SAAS,gBACR,OACA,SAGC;AACD,MAAI,CAAC,kBAAkB,MAAM,QAAQ,WACpC,mBAAkB,MAAM,QAAQ,aAAa,EAAE;AAGhD,MAAI,CAAC,kBAAkB,MAAM,QAAQ,WAAW,SAAS,MAAM,CAC9D,mBAAkB,MAAM,QAAQ,WAAW,KAAK,MAAM;;CAIxD,SAAS,iBACR,OACA,SAIC;EACD,MAAM,uBAAuB,mBAAmB,MAAM,QAAQ;AAC9D,MAAI,CAAC,qBAAqB,QAAQ,YACjC,sBAAqB,QAAQ,cAAc,EAAE;AAG9C,MAAI,CAAC,qBAAqB,QAAQ,YAAY,SAAS,MAAM,CAC5D,sBAAqB,QAAQ,YAAY,KAAK,MAAM;;CAItD,SAAS,SACR,OACA,SAKA,SACU;AACV,yCACC,OACA;GACC,QAAQ,aAAa;GACrB,SAAS,SAAS,YAAY,kBAAkB,MAAM,QAAQ,aAAa,EAAE;GAC7E,UACC,SAAS,gBAAgB,SAAS,aAC/B,mBAAmB,MAAM,QAAQ,cAAc,QAAQ,cACvD,EAAE;GACN,EACD,QACA,QACA;;AAGF,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
|
|
1
|
+
{"version":3,"file":"rbac.store.cjs","names":["STORES"],"sources":["../src/rbac.store.ts"],"sourcesContent":["import type { Role } from '@n8n/api-types';\nimport { hasScope as genericHasScope } from '@n8n/permissions';\nimport type { ScopeOptions, Scope, Resource } from '@n8n/permissions';\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\n\nimport { STORES } from './constants';\n\nexport const useRBACStore = defineStore(STORES.RBAC, () => {\n\tconst globalRoles = ref<Role[]>([]);\n\tconst rolesByProjectId = ref<Record<string, string[]>>({});\n\n\tconst globalScopes = ref<Scope[]>([]);\n\tconst scopesByProjectId = ref<Record<string, Scope[]>>({});\n\tconst scopesByResourceId = ref<Record<Resource, Record<string, Scope[]>>>({\n\t\tagent: {},\n\t\taiAssistant: {},\n\t\tworkflow: {},\n\t\ttag: {},\n\t\tannotationTag: {},\n\t\tuser: {},\n\t\tcredential: {},\n\t\tvariable: {},\n\t\tprojectVariable: {},\n\t\tsourceControl: {},\n\t\tgitConnection: {},\n\t\texternalSecretsProvider: {},\n\t\texternalSecret: {},\n\t\tproject: {},\n\t\torchestration: {},\n\t\tworkersView: {},\n\t\teventBusDestination: {},\n\t\tauditLogs: {},\n\t\tbanner: {},\n\t\tcommunity: {},\n\t\tcommunityPackage: {},\n\t\tldap: {},\n\t\tlicense: {},\n\t\tlogStreaming: {},\n\t\tsaml: {},\n\t\toidc: {},\n\t\tprovisioning: {},\n\t\tsecurityAudit: {},\n\t\tfolder: {},\n\t\tinsights: {},\n\t\tdataTable: {},\n\t\texecution: {},\n\t\ttestRun: {},\n\t\tworkflowTags: {},\n\t\trole: {},\n\t\tmcp: {},\n\t\tmcpApiKey: {},\n\t\tchatHub: {},\n\t\tchatHubAgent: {},\n\t\tbreakingChanges: {},\n\t\tapiKey: {},\n\t\tencryptionKey: {},\n\t\tcredentialResolver: {},\n\t\tinstanceAi: {},\n\t\tsecuritySettings: {},\n\t\troleMappingRule: {},\n\t\totel: {},\n\t});\n\n\tfunction addGlobalRole(role: Role) {\n\t\tif (!globalRoles.value.includes(role)) {\n\t\t\tglobalRoles.value.push(role);\n\t\t}\n\t}\n\n\tfunction hasRole(role: Role) {\n\t\treturn globalRoles.value.includes(role);\n\t}\n\n\tfunction addGlobalScope(scope: Scope) {\n\t\tif (!globalScopes.value.includes(scope)) {\n\t\t\tglobalScopes.value.push(scope);\n\t\t}\n\t}\n\n\tfunction setGlobalScopes(scopes: Scope[]) {\n\t\tglobalScopes.value = scopes;\n\t}\n\n\tfunction addProjectScope(\n\t\tscope: Scope,\n\t\tcontext: {\n\t\t\tprojectId: string;\n\t\t},\n\t) {\n\t\tif (!scopesByProjectId.value[context.projectId]) {\n\t\t\tscopesByProjectId.value[context.projectId] = [];\n\t\t}\n\n\t\tif (!scopesByProjectId.value[context.projectId].includes(scope)) {\n\t\t\tscopesByProjectId.value[context.projectId].push(scope);\n\t\t}\n\t}\n\n\tfunction addResourceScope(\n\t\tscope: Scope,\n\t\tcontext: {\n\t\t\tresourceType: Resource;\n\t\t\tresourceId: string;\n\t\t},\n\t) {\n\t\tconst scopesByResourceType = scopesByResourceId.value[context.resourceType];\n\t\tif (!scopesByResourceType[context.resourceId]) {\n\t\t\tscopesByResourceType[context.resourceId] = [];\n\t\t}\n\n\t\tif (!scopesByResourceType[context.resourceId].includes(scope)) {\n\t\t\tscopesByResourceType[context.resourceId].push(scope);\n\t\t}\n\t}\n\n\tfunction hasScope(\n\t\tscope: Scope | Scope[],\n\t\tcontext?: {\n\t\t\tresourceType?: Resource;\n\t\t\tresourceId?: string;\n\t\t\tprojectId?: string;\n\t\t},\n\t\toptions?: ScopeOptions,\n\t): boolean {\n\t\treturn genericHasScope(\n\t\t\tscope,\n\t\t\t{\n\t\t\t\tglobal: globalScopes.value,\n\t\t\t\tproject: context?.projectId ? scopesByProjectId.value[context.projectId] : [],\n\t\t\t\tresource:\n\t\t\t\t\tcontext?.resourceType && context?.resourceId\n\t\t\t\t\t\t? scopesByResourceId.value[context.resourceType][context.resourceId]\n\t\t\t\t\t\t: [],\n\t\t\t},\n\t\t\tundefined,\n\t\t\toptions,\n\t\t);\n\t}\n\n\treturn {\n\t\tglobalRoles,\n\t\trolesByProjectId,\n\t\tglobalScopes,\n\t\tscopesByProjectId,\n\t\tscopesByResourceId,\n\t\taddGlobalRole,\n\t\thasRole,\n\t\taddGlobalScope,\n\t\tsetGlobalScopes,\n\t\taddProjectScope,\n\t\taddResourceScope,\n\t\thasScope,\n\t};\n});\n"],"mappings":";;;;;;;AAQA,MAAa,sCAA2BA,yBAAO,YAAY;CAC1D,MAAM,2BAA0B,EAAE,CAAC;CACnC,MAAM,gCAAiD,EAAE,CAAC;CAE1D,MAAM,4BAA4B,EAAE,CAAC;CACrC,MAAM,iCAAiD,EAAE,CAAC;CAC1D,MAAM,kCAAoE;EACzE,OAAO,EAAE;EACT,aAAa,EAAE;EACf,UAAU,EAAE;EACZ,KAAK,EAAE;EACP,eAAe,EAAE;EACjB,MAAM,EAAE;EACR,YAAY,EAAE;EACd,UAAU,EAAE;EACZ,iBAAiB,EAAE;EACnB,eAAe,EAAE;EACjB,eAAe,EAAE;EACjB,yBAAyB,EAAE;EAC3B,gBAAgB,EAAE;EAClB,SAAS,EAAE;EACX,eAAe,EAAE;EACjB,aAAa,EAAE;EACf,qBAAqB,EAAE;EACvB,WAAW,EAAE;EACb,QAAQ,EAAE;EACV,WAAW,EAAE;EACb,kBAAkB,EAAE;EACpB,MAAM,EAAE;EACR,SAAS,EAAE;EACX,cAAc,EAAE;EAChB,MAAM,EAAE;EACR,MAAM,EAAE;EACR,cAAc,EAAE;EAChB,eAAe,EAAE;EACjB,QAAQ,EAAE;EACV,UAAU,EAAE;EACZ,WAAW,EAAE;EACb,WAAW,EAAE;EACb,SAAS,EAAE;EACX,cAAc,EAAE;EAChB,MAAM,EAAE;EACR,KAAK,EAAE;EACP,WAAW,EAAE;EACb,SAAS,EAAE;EACX,cAAc,EAAE;EAChB,iBAAiB,EAAE;EACnB,QAAQ,EAAE;EACV,eAAe,EAAE;EACjB,oBAAoB,EAAE;EACtB,YAAY,EAAE;EACd,kBAAkB,EAAE;EACpB,iBAAiB,EAAE;EACnB,MAAM,EAAE;EACR,CAAC;CAEF,SAAS,cAAc,MAAY;AAClC,MAAI,CAAC,YAAY,MAAM,SAAS,KAAK,CACpC,aAAY,MAAM,KAAK,KAAK;;CAI9B,SAAS,QAAQ,MAAY;AAC5B,SAAO,YAAY,MAAM,SAAS,KAAK;;CAGxC,SAAS,eAAe,OAAc;AACrC,MAAI,CAAC,aAAa,MAAM,SAAS,MAAM,CACtC,cAAa,MAAM,KAAK,MAAM;;CAIhC,SAAS,gBAAgB,QAAiB;AACzC,eAAa,QAAQ;;CAGtB,SAAS,gBACR,OACA,SAGC;AACD,MAAI,CAAC,kBAAkB,MAAM,QAAQ,WACpC,mBAAkB,MAAM,QAAQ,aAAa,EAAE;AAGhD,MAAI,CAAC,kBAAkB,MAAM,QAAQ,WAAW,SAAS,MAAM,CAC9D,mBAAkB,MAAM,QAAQ,WAAW,KAAK,MAAM;;CAIxD,SAAS,iBACR,OACA,SAIC;EACD,MAAM,uBAAuB,mBAAmB,MAAM,QAAQ;AAC9D,MAAI,CAAC,qBAAqB,QAAQ,YACjC,sBAAqB,QAAQ,cAAc,EAAE;AAG9C,MAAI,CAAC,qBAAqB,QAAQ,YAAY,SAAS,MAAM,CAC5D,sBAAqB,QAAQ,YAAY,KAAK,MAAM;;CAItD,SAAS,SACR,OACA,SAKA,SACU;AACV,yCACC,OACA;GACC,QAAQ,aAAa;GACrB,SAAS,SAAS,YAAY,kBAAkB,MAAM,QAAQ,aAAa,EAAE;GAC7E,UACC,SAAS,gBAAgB,SAAS,aAC/B,mBAAmB,MAAM,QAAQ,cAAc,QAAQ,cACvD,EAAE;GACN,EACD,QACA,QACA;;AAGF,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
|
package/dist/rbac.store.d.cts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as vue0 from "vue";
|
|
2
|
+
import * as pinia0 from "pinia";
|
|
3
3
|
import { Role } from "@n8n/api-types";
|
|
4
4
|
import { Resource, Scope, ScopeOptions } from "@n8n/permissions";
|
|
5
5
|
|
|
6
6
|
//#region src/rbac.store.d.ts
|
|
7
|
-
declare const useRBACStore:
|
|
8
|
-
globalRoles:
|
|
9
|
-
rolesByProjectId:
|
|
10
|
-
globalScopes:
|
|
11
|
-
scopesByProjectId:
|
|
12
|
-
scopesByResourceId:
|
|
7
|
+
declare const useRBACStore: pinia0.StoreDefinition<"rbac", Pick<{
|
|
8
|
+
globalRoles: vue0.Ref<Role[], Role[]>;
|
|
9
|
+
rolesByProjectId: vue0.Ref<Record<string, string[]>, Record<string, string[]>>;
|
|
10
|
+
globalScopes: vue0.Ref<Scope[], Scope[]>;
|
|
11
|
+
scopesByProjectId: vue0.Ref<Record<string, Scope[]>, Record<string, Scope[]>>;
|
|
12
|
+
scopesByResourceId: vue0.Ref<{
|
|
13
13
|
chatHub: Record<string, Scope[]>;
|
|
14
14
|
logStreaming: Record<string, Scope[]>;
|
|
15
15
|
aiAssistant: Record<string, Scope[]>;
|
|
@@ -24,7 +24,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
24
24
|
insights: Record<string, Scope[]>;
|
|
25
25
|
mcp: Record<string, Scope[]>;
|
|
26
26
|
otel: Record<string, Scope[]>;
|
|
27
|
-
|
|
27
|
+
role: Record<string, Scope[]>;
|
|
28
28
|
agent: Record<string, Scope[]>;
|
|
29
29
|
annotationTag: Record<string, Scope[]>;
|
|
30
30
|
banner: Record<string, Scope[]>;
|
|
@@ -37,6 +37,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
37
37
|
project: Record<string, Scope[]>;
|
|
38
38
|
securityAudit: Record<string, Scope[]>;
|
|
39
39
|
securitySettings: Record<string, Scope[]>;
|
|
40
|
+
gitConnection: Record<string, Scope[]>;
|
|
40
41
|
tag: Record<string, Scope[]>;
|
|
41
42
|
user: Record<string, Scope[]>;
|
|
42
43
|
variable: Record<string, Scope[]>;
|
|
@@ -48,15 +49,15 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
48
49
|
execution: Record<string, Scope[]>;
|
|
49
50
|
testRun: Record<string, Scope[]>;
|
|
50
51
|
workflowTags: Record<string, Scope[]>;
|
|
51
|
-
role: Record<string, Scope[]>;
|
|
52
52
|
mcpApiKey: Record<string, Scope[]>;
|
|
53
53
|
chatHubAgent: Record<string, Scope[]>;
|
|
54
54
|
breakingChanges: Record<string, Scope[]>;
|
|
55
|
+
apiKey: Record<string, Scope[]>;
|
|
55
56
|
encryptionKey: Record<string, Scope[]>;
|
|
56
57
|
credentialResolver: Record<string, Scope[]>;
|
|
57
58
|
instanceAi: Record<string, Scope[]>;
|
|
58
59
|
roleMappingRule: Record<string, Scope[]>;
|
|
59
|
-
}, Record<"chatHub" | "logStreaming" | "aiAssistant" | "license" | "ldap" | "saml" | "oidc" | "sourceControl" | "auditLogs" | "provisioning" | "community" | "insights" | "mcp" | "otel" | "
|
|
60
|
+
}, Record<"chatHub" | "logStreaming" | "aiAssistant" | "license" | "ldap" | "saml" | "oidc" | "sourceControl" | "auditLogs" | "provisioning" | "community" | "insights" | "mcp" | "otel" | "role" | "agent" | "annotationTag" | "banner" | "communityPackage" | "credential" | "externalSecretsProvider" | "externalSecret" | "eventBusDestination" | "orchestration" | "project" | "securityAudit" | "securitySettings" | "gitConnection" | "tag" | "user" | "variable" | "projectVariable" | "workersView" | "workflow" | "folder" | "dataTable" | "execution" | "testRun" | "workflowTags" | "mcpApiKey" | "chatHubAgent" | "breakingChanges" | "apiKey" | "encryptionKey" | "credentialResolver" | "instanceAi" | "roleMappingRule", Record<string, Scope[]>> | {
|
|
60
61
|
chatHub: Record<string, Scope[]>;
|
|
61
62
|
logStreaming: Record<string, Scope[]>;
|
|
62
63
|
aiAssistant: Record<string, Scope[]>;
|
|
@@ -71,7 +72,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
71
72
|
insights: Record<string, Scope[]>;
|
|
72
73
|
mcp: Record<string, Scope[]>;
|
|
73
74
|
otel: Record<string, Scope[]>;
|
|
74
|
-
|
|
75
|
+
role: Record<string, Scope[]>;
|
|
75
76
|
agent: Record<string, Scope[]>;
|
|
76
77
|
annotationTag: Record<string, Scope[]>;
|
|
77
78
|
banner: Record<string, Scope[]>;
|
|
@@ -84,6 +85,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
84
85
|
project: Record<string, Scope[]>;
|
|
85
86
|
securityAudit: Record<string, Scope[]>;
|
|
86
87
|
securitySettings: Record<string, Scope[]>;
|
|
88
|
+
gitConnection: Record<string, Scope[]>;
|
|
87
89
|
tag: Record<string, Scope[]>;
|
|
88
90
|
user: Record<string, Scope[]>;
|
|
89
91
|
variable: Record<string, Scope[]>;
|
|
@@ -95,10 +97,10 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
95
97
|
execution: Record<string, Scope[]>;
|
|
96
98
|
testRun: Record<string, Scope[]>;
|
|
97
99
|
workflowTags: Record<string, Scope[]>;
|
|
98
|
-
role: Record<string, Scope[]>;
|
|
99
100
|
mcpApiKey: Record<string, Scope[]>;
|
|
100
101
|
chatHubAgent: Record<string, Scope[]>;
|
|
101
102
|
breakingChanges: Record<string, Scope[]>;
|
|
103
|
+
apiKey: Record<string, Scope[]>;
|
|
102
104
|
encryptionKey: Record<string, Scope[]>;
|
|
103
105
|
credentialResolver: Record<string, Scope[]>;
|
|
104
106
|
instanceAi: Record<string, Scope[]>;
|
|
@@ -121,11 +123,11 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
121
123
|
projectId?: string;
|
|
122
124
|
}, options?: ScopeOptions) => boolean;
|
|
123
125
|
}, "globalRoles" | "rolesByProjectId" | "globalScopes" | "scopesByProjectId" | "scopesByResourceId">, Pick<{
|
|
124
|
-
globalRoles:
|
|
125
|
-
rolesByProjectId:
|
|
126
|
-
globalScopes:
|
|
127
|
-
scopesByProjectId:
|
|
128
|
-
scopesByResourceId:
|
|
126
|
+
globalRoles: vue0.Ref<Role[], Role[]>;
|
|
127
|
+
rolesByProjectId: vue0.Ref<Record<string, string[]>, Record<string, string[]>>;
|
|
128
|
+
globalScopes: vue0.Ref<Scope[], Scope[]>;
|
|
129
|
+
scopesByProjectId: vue0.Ref<Record<string, Scope[]>, Record<string, Scope[]>>;
|
|
130
|
+
scopesByResourceId: vue0.Ref<{
|
|
129
131
|
chatHub: Record<string, Scope[]>;
|
|
130
132
|
logStreaming: Record<string, Scope[]>;
|
|
131
133
|
aiAssistant: Record<string, Scope[]>;
|
|
@@ -140,7 +142,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
140
142
|
insights: Record<string, Scope[]>;
|
|
141
143
|
mcp: Record<string, Scope[]>;
|
|
142
144
|
otel: Record<string, Scope[]>;
|
|
143
|
-
|
|
145
|
+
role: Record<string, Scope[]>;
|
|
144
146
|
agent: Record<string, Scope[]>;
|
|
145
147
|
annotationTag: Record<string, Scope[]>;
|
|
146
148
|
banner: Record<string, Scope[]>;
|
|
@@ -153,6 +155,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
153
155
|
project: Record<string, Scope[]>;
|
|
154
156
|
securityAudit: Record<string, Scope[]>;
|
|
155
157
|
securitySettings: Record<string, Scope[]>;
|
|
158
|
+
gitConnection: Record<string, Scope[]>;
|
|
156
159
|
tag: Record<string, Scope[]>;
|
|
157
160
|
user: Record<string, Scope[]>;
|
|
158
161
|
variable: Record<string, Scope[]>;
|
|
@@ -164,15 +167,15 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
164
167
|
execution: Record<string, Scope[]>;
|
|
165
168
|
testRun: Record<string, Scope[]>;
|
|
166
169
|
workflowTags: Record<string, Scope[]>;
|
|
167
|
-
role: Record<string, Scope[]>;
|
|
168
170
|
mcpApiKey: Record<string, Scope[]>;
|
|
169
171
|
chatHubAgent: Record<string, Scope[]>;
|
|
170
172
|
breakingChanges: Record<string, Scope[]>;
|
|
173
|
+
apiKey: Record<string, Scope[]>;
|
|
171
174
|
encryptionKey: Record<string, Scope[]>;
|
|
172
175
|
credentialResolver: Record<string, Scope[]>;
|
|
173
176
|
instanceAi: Record<string, Scope[]>;
|
|
174
177
|
roleMappingRule: Record<string, Scope[]>;
|
|
175
|
-
}, Record<"chatHub" | "logStreaming" | "aiAssistant" | "license" | "ldap" | "saml" | "oidc" | "sourceControl" | "auditLogs" | "provisioning" | "community" | "insights" | "mcp" | "otel" | "
|
|
178
|
+
}, Record<"chatHub" | "logStreaming" | "aiAssistant" | "license" | "ldap" | "saml" | "oidc" | "sourceControl" | "auditLogs" | "provisioning" | "community" | "insights" | "mcp" | "otel" | "role" | "agent" | "annotationTag" | "banner" | "communityPackage" | "credential" | "externalSecretsProvider" | "externalSecret" | "eventBusDestination" | "orchestration" | "project" | "securityAudit" | "securitySettings" | "gitConnection" | "tag" | "user" | "variable" | "projectVariable" | "workersView" | "workflow" | "folder" | "dataTable" | "execution" | "testRun" | "workflowTags" | "mcpApiKey" | "chatHubAgent" | "breakingChanges" | "apiKey" | "encryptionKey" | "credentialResolver" | "instanceAi" | "roleMappingRule", Record<string, Scope[]>> | {
|
|
176
179
|
chatHub: Record<string, Scope[]>;
|
|
177
180
|
logStreaming: Record<string, Scope[]>;
|
|
178
181
|
aiAssistant: Record<string, Scope[]>;
|
|
@@ -187,7 +190,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
187
190
|
insights: Record<string, Scope[]>;
|
|
188
191
|
mcp: Record<string, Scope[]>;
|
|
189
192
|
otel: Record<string, Scope[]>;
|
|
190
|
-
|
|
193
|
+
role: Record<string, Scope[]>;
|
|
191
194
|
agent: Record<string, Scope[]>;
|
|
192
195
|
annotationTag: Record<string, Scope[]>;
|
|
193
196
|
banner: Record<string, Scope[]>;
|
|
@@ -200,6 +203,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
200
203
|
project: Record<string, Scope[]>;
|
|
201
204
|
securityAudit: Record<string, Scope[]>;
|
|
202
205
|
securitySettings: Record<string, Scope[]>;
|
|
206
|
+
gitConnection: Record<string, Scope[]>;
|
|
203
207
|
tag: Record<string, Scope[]>;
|
|
204
208
|
user: Record<string, Scope[]>;
|
|
205
209
|
variable: Record<string, Scope[]>;
|
|
@@ -211,10 +215,10 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
211
215
|
execution: Record<string, Scope[]>;
|
|
212
216
|
testRun: Record<string, Scope[]>;
|
|
213
217
|
workflowTags: Record<string, Scope[]>;
|
|
214
|
-
role: Record<string, Scope[]>;
|
|
215
218
|
mcpApiKey: Record<string, Scope[]>;
|
|
216
219
|
chatHubAgent: Record<string, Scope[]>;
|
|
217
220
|
breakingChanges: Record<string, Scope[]>;
|
|
221
|
+
apiKey: Record<string, Scope[]>;
|
|
218
222
|
encryptionKey: Record<string, Scope[]>;
|
|
219
223
|
credentialResolver: Record<string, Scope[]>;
|
|
220
224
|
instanceAi: Record<string, Scope[]>;
|
|
@@ -237,11 +241,11 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
237
241
|
projectId?: string;
|
|
238
242
|
}, options?: ScopeOptions) => boolean;
|
|
239
243
|
}, never>, Pick<{
|
|
240
|
-
globalRoles:
|
|
241
|
-
rolesByProjectId:
|
|
242
|
-
globalScopes:
|
|
243
|
-
scopesByProjectId:
|
|
244
|
-
scopesByResourceId:
|
|
244
|
+
globalRoles: vue0.Ref<Role[], Role[]>;
|
|
245
|
+
rolesByProjectId: vue0.Ref<Record<string, string[]>, Record<string, string[]>>;
|
|
246
|
+
globalScopes: vue0.Ref<Scope[], Scope[]>;
|
|
247
|
+
scopesByProjectId: vue0.Ref<Record<string, Scope[]>, Record<string, Scope[]>>;
|
|
248
|
+
scopesByResourceId: vue0.Ref<{
|
|
245
249
|
chatHub: Record<string, Scope[]>;
|
|
246
250
|
logStreaming: Record<string, Scope[]>;
|
|
247
251
|
aiAssistant: Record<string, Scope[]>;
|
|
@@ -256,7 +260,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
256
260
|
insights: Record<string, Scope[]>;
|
|
257
261
|
mcp: Record<string, Scope[]>;
|
|
258
262
|
otel: Record<string, Scope[]>;
|
|
259
|
-
|
|
263
|
+
role: Record<string, Scope[]>;
|
|
260
264
|
agent: Record<string, Scope[]>;
|
|
261
265
|
annotationTag: Record<string, Scope[]>;
|
|
262
266
|
banner: Record<string, Scope[]>;
|
|
@@ -269,6 +273,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
269
273
|
project: Record<string, Scope[]>;
|
|
270
274
|
securityAudit: Record<string, Scope[]>;
|
|
271
275
|
securitySettings: Record<string, Scope[]>;
|
|
276
|
+
gitConnection: Record<string, Scope[]>;
|
|
272
277
|
tag: Record<string, Scope[]>;
|
|
273
278
|
user: Record<string, Scope[]>;
|
|
274
279
|
variable: Record<string, Scope[]>;
|
|
@@ -280,15 +285,15 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
280
285
|
execution: Record<string, Scope[]>;
|
|
281
286
|
testRun: Record<string, Scope[]>;
|
|
282
287
|
workflowTags: Record<string, Scope[]>;
|
|
283
|
-
role: Record<string, Scope[]>;
|
|
284
288
|
mcpApiKey: Record<string, Scope[]>;
|
|
285
289
|
chatHubAgent: Record<string, Scope[]>;
|
|
286
290
|
breakingChanges: Record<string, Scope[]>;
|
|
291
|
+
apiKey: Record<string, Scope[]>;
|
|
287
292
|
encryptionKey: Record<string, Scope[]>;
|
|
288
293
|
credentialResolver: Record<string, Scope[]>;
|
|
289
294
|
instanceAi: Record<string, Scope[]>;
|
|
290
295
|
roleMappingRule: Record<string, Scope[]>;
|
|
291
|
-
}, Record<"chatHub" | "logStreaming" | "aiAssistant" | "license" | "ldap" | "saml" | "oidc" | "sourceControl" | "auditLogs" | "provisioning" | "community" | "insights" | "mcp" | "otel" | "
|
|
296
|
+
}, Record<"chatHub" | "logStreaming" | "aiAssistant" | "license" | "ldap" | "saml" | "oidc" | "sourceControl" | "auditLogs" | "provisioning" | "community" | "insights" | "mcp" | "otel" | "role" | "agent" | "annotationTag" | "banner" | "communityPackage" | "credential" | "externalSecretsProvider" | "externalSecret" | "eventBusDestination" | "orchestration" | "project" | "securityAudit" | "securitySettings" | "gitConnection" | "tag" | "user" | "variable" | "projectVariable" | "workersView" | "workflow" | "folder" | "dataTable" | "execution" | "testRun" | "workflowTags" | "mcpApiKey" | "chatHubAgent" | "breakingChanges" | "apiKey" | "encryptionKey" | "credentialResolver" | "instanceAi" | "roleMappingRule", Record<string, Scope[]>> | {
|
|
292
297
|
chatHub: Record<string, Scope[]>;
|
|
293
298
|
logStreaming: Record<string, Scope[]>;
|
|
294
299
|
aiAssistant: Record<string, Scope[]>;
|
|
@@ -303,7 +308,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
303
308
|
insights: Record<string, Scope[]>;
|
|
304
309
|
mcp: Record<string, Scope[]>;
|
|
305
310
|
otel: Record<string, Scope[]>;
|
|
306
|
-
|
|
311
|
+
role: Record<string, Scope[]>;
|
|
307
312
|
agent: Record<string, Scope[]>;
|
|
308
313
|
annotationTag: Record<string, Scope[]>;
|
|
309
314
|
banner: Record<string, Scope[]>;
|
|
@@ -316,6 +321,7 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
316
321
|
project: Record<string, Scope[]>;
|
|
317
322
|
securityAudit: Record<string, Scope[]>;
|
|
318
323
|
securitySettings: Record<string, Scope[]>;
|
|
324
|
+
gitConnection: Record<string, Scope[]>;
|
|
319
325
|
tag: Record<string, Scope[]>;
|
|
320
326
|
user: Record<string, Scope[]>;
|
|
321
327
|
variable: Record<string, Scope[]>;
|
|
@@ -327,10 +333,10 @@ declare const useRBACStore: pinia1.StoreDefinition<"rbac", Pick<{
|
|
|
327
333
|
execution: Record<string, Scope[]>;
|
|
328
334
|
testRun: Record<string, Scope[]>;
|
|
329
335
|
workflowTags: Record<string, Scope[]>;
|
|
330
|
-
role: Record<string, Scope[]>;
|
|
331
336
|
mcpApiKey: Record<string, Scope[]>;
|
|
332
337
|
chatHubAgent: Record<string, Scope[]>;
|
|
333
338
|
breakingChanges: Record<string, Scope[]>;
|
|
339
|
+
apiKey: Record<string, Scope[]>;
|
|
334
340
|
encryptionKey: Record<string, Scope[]>;
|
|
335
341
|
credentialResolver: Record<string, Scope[]>;
|
|
336
342
|
instanceAi: Record<string, Scope[]>;
|