@n8n/stores 2.33.1 → 2.34.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.
Files changed (67) hide show
  1. package/dist/cloudPlan.store.cjs +5 -241
  2. package/dist/cloudPlan.store.d.cts +72 -66
  3. package/dist/cloudPlan.store.d.mts +72 -66
  4. package/dist/cloudPlan.store.mjs +5 -241
  5. package/dist/cloudPlan2.store.cjs +247 -0
  6. package/dist/cloudPlan2.store.cjs.map +1 -0
  7. package/dist/cloudPlan2.store.mjs +242 -0
  8. package/dist/cloudPlan2.store.mjs.map +1 -0
  9. package/dist/composables/useBasePageRedirectionHelper.cjs +87 -0
  10. package/dist/composables/useBasePageRedirectionHelper.cjs.map +1 -0
  11. package/dist/composables/useBasePageRedirectionHelper.d.cts +16 -0
  12. package/dist/composables/useBasePageRedirectionHelper.d.mts +16 -0
  13. package/dist/composables/useBasePageRedirectionHelper.mjs +87 -0
  14. package/dist/composables/useBasePageRedirectionHelper.mjs.map +1 -0
  15. package/dist/constants2.cjs +1 -0
  16. package/dist/constants2.cjs.map +1 -1
  17. package/dist/constants2.d.cts +1 -0
  18. package/dist/constants2.d.mts +1 -0
  19. package/dist/constants2.mjs +1 -0
  20. package/dist/constants2.mjs.map +1 -1
  21. package/dist/notifications.store.cjs +2 -8
  22. package/dist/notifications.store.cjs.map +1 -1
  23. package/dist/notifications.store.d.cts +4 -25
  24. package/dist/notifications.store.d.mts +3 -24
  25. package/dist/notifications.store.mjs +2 -8
  26. package/dist/notifications.store.mjs.map +1 -1
  27. package/dist/pageRedirection.d.cts +6 -0
  28. package/dist/pageRedirection.d.mts +6 -0
  29. package/dist/rbac.store.d.cts +105 -105
  30. package/dist/rbac.store.d.mts +105 -105
  31. package/dist/roles.store.d.cts +21 -21
  32. package/dist/roles.store.d.mts +21 -21
  33. package/dist/settings.store.d.cts +243 -237
  34. package/dist/settings.store.d.mts +243 -237
  35. package/dist/settings2.store.cjs +5 -5
  36. package/dist/settings2.store.cjs.map +1 -1
  37. package/dist/settings2.store.mjs +5 -5
  38. package/dist/settings2.store.mjs.map +1 -1
  39. package/dist/types/pageRedirection.cjs +0 -0
  40. package/dist/types/pageRedirection.d.cts +2 -0
  41. package/dist/types/pageRedirection.d.mts +2 -0
  42. package/dist/types/pageRedirection.mjs +1 -0
  43. package/dist/useAgentRequestStore.d.cts +6 -6
  44. package/dist/useAgentRequestStore.d.mts +4 -4
  45. package/dist/useRootStore.d.cts +72 -72
  46. package/dist/useRootStore.d.mts +70 -70
  47. package/dist/users.store.cjs +7 -352
  48. package/dist/users.store.d.cts +71 -59
  49. package/dist/users.store.d.mts +71 -59
  50. package/dist/users.store.mjs +7 -349
  51. package/dist/users2.store.cjs +362 -0
  52. package/dist/users2.store.cjs.map +1 -0
  53. package/dist/users2.store.mjs +353 -0
  54. package/dist/users2.store.mjs.map +1 -0
  55. package/dist/versions.store.cjs +11 -0
  56. package/dist/versions.store.d.cts +384 -0
  57. package/dist/versions.store.d.mts +384 -0
  58. package/dist/versions.store.mjs +10 -0
  59. package/dist/versions2.store.cjs +230 -0
  60. package/dist/versions2.store.cjs.map +1 -0
  61. package/dist/versions2.store.mjs +218 -0
  62. package/dist/versions2.store.mjs.map +1 -0
  63. package/package.json +14 -13
  64. package/dist/cloudPlan.store.cjs.map +0 -1
  65. package/dist/cloudPlan.store.mjs.map +0 -1
  66. package/dist/users.store.cjs.map +0 -1
  67. package/dist/users.store.mjs.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { n as UTMCampaign, t as CloudUpdateLinkSourceType } from "../pageRedirection.cjs";
2
+
3
+ //#region src/composables/useBasePageRedirectionHelper.d.ts
4
+ type UpgradeRedirectGuard = () => Promise<boolean>;
5
+ declare function useBasePageRedirectionHelper({
6
+ guard
7
+ }: {
8
+ guard: UpgradeRedirectGuard;
9
+ }): {
10
+ goToDashboard: () => Promise<void>;
11
+ goToVersions: () => Promise<void>;
12
+ goToUpgrade: (source: CloudUpdateLinkSourceType, utm_campaign: UTMCampaign, mode?: "open" | "redirect") => Promise<void>;
13
+ };
14
+ //#endregion
15
+ export { UpgradeRedirectGuard, useBasePageRedirectionHelper };
16
+ //# sourceMappingURL=useBasePageRedirectionHelper.d.cts.map
@@ -0,0 +1,16 @@
1
+ import { n as UTMCampaign, t as CloudUpdateLinkSourceType } from "../pageRedirection.mjs";
2
+
3
+ //#region src/composables/useBasePageRedirectionHelper.d.ts
4
+ type UpgradeRedirectGuard = () => Promise<boolean>;
5
+ declare function useBasePageRedirectionHelper({
6
+ guard
7
+ }: {
8
+ guard: UpgradeRedirectGuard;
9
+ }): {
10
+ goToDashboard: () => Promise<void>;
11
+ goToVersions: () => Promise<void>;
12
+ goToUpgrade: (source: CloudUpdateLinkSourceType, utm_campaign: UTMCampaign, mode?: "open" | "redirect") => Promise<void>;
13
+ };
14
+ //#endregion
15
+ export { UpgradeRedirectGuard, useBasePageRedirectionHelper };
16
+ //# sourceMappingURL=useBasePageRedirectionHelper.d.mts.map
@@ -0,0 +1,87 @@
1
+ import "../constants2.mjs";
2
+ import "../metaTagConfig2.mjs";
3
+ import "../useRootStore2.mjs";
4
+ import { t as useSettingsStore } from "../settings2.store.mjs";
5
+ import { t as useCloudPlanStore } from "../cloudPlan2.store.mjs";
6
+ import "../invitation2.api.mjs";
7
+ import "../onboarding2.api.mjs";
8
+ import { t as useUsersStore } from "../users2.store.mjs";
9
+ import { n as useVersionsStore } from "../versions2.store.mjs";
10
+ import { useTelemetry } from "@n8n/composables/useTelemetry";
11
+ import { N8N_PRICING_PAGE_URL } from "@n8n/frontend-constants/urls";
12
+
13
+ //#region src/composables/useBasePageRedirectionHelper.ts
14
+ /**
15
+ * Injectable page-redirection composable. The app-facing `usePageRedirectionHelper`
16
+ * wraps this and supplies the guard, which keeps this base free of any feature
17
+ * dependency.
18
+ *
19
+ * It lives in `@n8n/stores` rather than `@n8n/composables` because its body is
20
+ * store orchestration end to end — all four stores it reads are in this package,
21
+ * and `@n8n/composables` sits *below* the stores tier (see that package's
22
+ * `packageBoundary.test.ts`), so it cannot reach them.
23
+ */
24
+ function useBasePageRedirectionHelper({ guard }) {
25
+ const usersStore = useUsersStore();
26
+ const cloudPlanStore = useCloudPlanStore();
27
+ const versionsStore = useVersionsStore();
28
+ const telemetry = useTelemetry();
29
+ const settingsStore = useSettingsStore();
30
+ /**
31
+ * If the user is an instance owner in the cloud, it generates an auto-login link to the
32
+ * cloud dashboard that redirects the user to the /manage page where they can upgrade to a new n8n version.
33
+ * Otherwise, it redirect them to our docs.
34
+ */
35
+ const goToVersions = async () => {
36
+ if (usersStore.isInstanceOwner && settingsStore.isCloudDeployment) {
37
+ location.href = await cloudPlanStore.generateCloudDashboardAutoLoginLink({ redirectionPath: "/manage" });
38
+ return;
39
+ }
40
+ window.open(versionsStore.infoUrl, "_blank", "noopener");
41
+ };
42
+ const goToDashboard = async () => {
43
+ if (usersStore.isInstanceOwner && settingsStore.isCloudDeployment) {
44
+ const dashboardLink = await cloudPlanStore.generateCloudDashboardAutoLoginLink({ redirectionPath: "/dashboard" });
45
+ location.href = dashboardLink;
46
+ }
47
+ };
48
+ /**
49
+ * If the user is an instance owner in the cloud, it generates an auto-login link to the
50
+ * cloud dashboard that redirects the user to the /account/change-plan page where they upgrade/downgrade the current plan.
51
+ * Otherwise, it redirect them our website.
52
+ */
53
+ const goToUpgrade = async (source, utm_campaign, mode = "open") => {
54
+ if (!await guard()) return;
55
+ const { usageLeft, trialDaysLeft, userIsTrialing } = cloudPlanStore;
56
+ const { executionsLeft, workflowsLeft } = usageLeft;
57
+ const deploymentType = settingsStore.deploymentType;
58
+ telemetry.track("User clicked upgrade CTA", {
59
+ source,
60
+ isTrial: userIsTrialing,
61
+ deploymentType,
62
+ trialDaysLeft,
63
+ executionsLeft,
64
+ workflowsLeft
65
+ });
66
+ const upgradeLink = await generateUpgradeLink(source, utm_campaign);
67
+ if (mode === "open") window.open(upgradeLink, "_blank");
68
+ else location.href = upgradeLink;
69
+ };
70
+ const generateUpgradeLink = async (source, utm_campaign) => {
71
+ let upgradeLink = N8N_PRICING_PAGE_URL;
72
+ if (usersStore.isInstanceOwner && settingsStore.isCloudDeployment) upgradeLink = await cloudPlanStore.generateCloudDashboardAutoLoginLink({ redirectionPath: "/account/change-plan" });
73
+ const url = new URL(upgradeLink);
74
+ if (utm_campaign) url.searchParams.set("utm_campaign", utm_campaign);
75
+ if (source) url.searchParams.set("source", source);
76
+ return url.toString();
77
+ };
78
+ return {
79
+ goToDashboard,
80
+ goToVersions,
81
+ goToUpgrade
82
+ };
83
+ }
84
+
85
+ //#endregion
86
+ export { useBasePageRedirectionHelper };
87
+ //# sourceMappingURL=useBasePageRedirectionHelper.mjs.map
@@ -0,0 +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\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 (usersStore.isInstanceOwner && settingsStore.isCloudDeployment) {\n\t\t\tlocation.href = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath: '/manage',\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\twindow.open(versionsStore.infoUrl, '_blank', 'noopener');\n\t};\n\n\tconst goToDashboard = async () => {\n\t\tif (usersStore.isInstanceOwner && settingsStore.isCloudDeployment) {\n\t\t\tconst dashboardLink = await cloudPlanStore.generateCloudDashboardAutoLoginLink({\n\t\t\t\tredirectionPath: '/dashboard',\n\t\t\t});\n\n\t\t\tlocation.href = dashboardLink;\n\t\t}\n\n\t\treturn;\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 (usersStore.isInstanceOwner && settingsStore.isCloudDeployment) {\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\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;;;;;;CAOxC,MAAM,eAAe,YAAY;AAChC,MAAI,WAAW,mBAAmB,cAAc,mBAAmB;AAClE,YAAS,OAAO,MAAM,eAAe,oCAAoC,EACxE,iBAAiB,WACjB,CAAC;AACF;;AAGD,SAAO,KAAK,cAAc,SAAS,UAAU,WAAW;;CAGzD,MAAM,gBAAgB,YAAY;AACjC,MAAI,WAAW,mBAAmB,cAAc,mBAAmB;GAClE,MAAM,gBAAgB,MAAM,eAAe,oCAAoC,EAC9E,iBAAiB,cACjB,CAAC;AAEF,YAAS,OAAO;;;;;;;;CAYlB,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,WAAW,mBAAmB,cAAc,kBAC/C,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"}
@@ -56,6 +56,7 @@ const STORES = {
56
56
  EXPERIMENT_CREDENTIALS_APP_SELECTION: "credentialsAppSelection",
57
57
  EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers",
58
58
  EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp",
59
+ EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal",
59
60
  SETUP_PANEL: "setupPanel",
60
61
  FOCUSED_NODES: "focusedNodes",
61
62
  FAVORITES: "favorites",
@@ -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\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\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,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,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\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,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"}
@@ -55,6 +55,7 @@ declare const STORES: {
55
55
  readonly EXPERIMENT_CREDENTIALS_APP_SELECTION: "credentialsAppSelection";
56
56
  readonly EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers";
57
57
  readonly EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp";
58
+ readonly EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal";
58
59
  readonly SETUP_PANEL: "setupPanel";
59
60
  readonly FOCUSED_NODES: "focusedNodes";
60
61
  readonly FAVORITES: "favorites";
@@ -55,6 +55,7 @@ declare const STORES: {
55
55
  readonly EXPERIMENT_CREDENTIALS_APP_SELECTION: "credentialsAppSelection";
56
56
  readonly EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers";
57
57
  readonly EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp";
58
+ readonly EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal";
58
59
  readonly SETUP_PANEL: "setupPanel";
59
60
  readonly FOCUSED_NODES: "focusedNodes";
60
61
  readonly FAVORITES: "favorites";
@@ -55,6 +55,7 @@ const STORES = {
55
55
  EXPERIMENT_CREDENTIALS_APP_SELECTION: "credentialsAppSelection",
56
56
  EXPERIMENT_SURFACE_MCP_TO_NEW_CLOUD_USERS: "surfaceMcpToNewCloudUsers",
57
57
  EXPERIMENT_EXPOSE_ALL_WORKFLOWS_TO_MCP: "exposeAllWorkflowsToMcp",
58
+ EXPERIMENT_TRIAL_INTRO_MODAL: "trialIntroModal",
58
59
  SETUP_PANEL: "setupPanel",
59
60
  FOCUSED_NODES: "focusedNodes",
60
61
  FAVORITES: "favorites",
@@ -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\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\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,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,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\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,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"}
@@ -5,25 +5,19 @@ let vue = require("vue");
5
5
 
6
6
  //#region src/notifications.store.ts
7
7
  /**
8
- * Notification state extracted from `ui.store`: the per-view queue of pending
9
- * notifications and the suppression flags read by the toast layer.
8
+ * Notification state extracted from `ui.store`: the suppression flags read by
9
+ * the toast layer.
10
10
  */
11
11
  const useNotificationsStore = (0, pinia.defineStore)(require_constants.STORES.NOTIFICATIONS, () => {
12
- const pendingNotificationsForViews = (0, vue.ref)({});
13
12
  const areNotificationsSuppressed = (0, vue.ref)(false);
14
13
  const allowErrorNotificationsWhenSuppressed = (0, vue.ref)(false);
15
- const setNotificationsForView = (view, notifications) => {
16
- pendingNotificationsForViews.value[view] = notifications;
17
- };
18
14
  const setNotificationsSuppressed = (suppressed, options) => {
19
15
  areNotificationsSuppressed.value = suppressed;
20
16
  allowErrorNotificationsWhenSuppressed.value = suppressed && options?.allowErrors === true;
21
17
  };
22
18
  return {
23
- pendingNotificationsForViews,
24
19
  areNotificationsSuppressed,
25
20
  allowErrorNotificationsWhenSuppressed,
26
- setNotificationsForView,
27
21
  setNotificationsSuppressed
28
22
  };
29
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.store.cjs","names":["STORES"],"sources":["../src/notifications.store.ts"],"sourcesContent":["import type { VIEWS } from '@n8n/frontend-constants/views';\nimport { defineStore } from 'pinia';\nimport { ref, type Component, type Ref, type VNode } from 'vue';\n\nimport { STORES } from './constants';\n\ntype NotificationType = '' | 'success' | 'warning' | 'error' | 'info';\ntype NotificationPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\n/**\n * Notification payload accepted by the toast layer.\n *\n * This mirrors Element Plus' notification options (the shape the toast layer\n * ultimately forwards to `ElNotification`) but is declared inline so this\n * package carries no dependency on `element-plus`. `message` is required; every\n * other field is optional, matching the original `Partial<...>`-based type.\n *\n * Relocated here from `editor-ui`'s `@/Interface` so it can travel with the\n * notifications store; `editor-ui` re-exports it for existing importers.\n */\nexport interface NotificationOptions {\n\tmessage: string | VNode;\n\ttitle?: string;\n\ttype?: NotificationType;\n\ticon?: string | Component;\n\tcustomClass?: string;\n\tduration?: number;\n\tposition?: NotificationPosition;\n\tshowClose?: boolean;\n\tdangerouslyUseHTMLString?: boolean;\n\toffset?: number;\n\tappendTo?: HTMLElement | string;\n\tzIndex?: number;\n\tonClick?: () => void;\n\tonClose?: () => void;\n}\n\n/**\n * Public surface of the notifications store. Declared explicitly so the emitted\n * type declarations reference these named types instead of inlining the\n * structural notification/Vue types, keeping the declarations portable across\n * the package boundary.\n */\nexport interface NotificationsStore {\n\tpendingNotificationsForViews: Ref<Partial<Record<VIEWS, NotificationOptions[]>>>;\n\tareNotificationsSuppressed: Ref<boolean>;\n\tallowErrorNotificationsWhenSuppressed: Ref<boolean>;\n\tsetNotificationsForView: (view: VIEWS, notifications: NotificationOptions[]) => void;\n\tsetNotificationsSuppressed: (suppressed: boolean, options?: { allowErrors?: boolean }) => void;\n}\n\n/**\n * Notification state extracted from `ui.store`: the per-view queue of pending\n * notifications and the suppression flags read by the toast layer.\n */\nexport const useNotificationsStore = defineStore(STORES.NOTIFICATIONS, (): NotificationsStore => {\n\tconst pendingNotificationsForViews = ref<Partial<Record<VIEWS, NotificationOptions[]>>>({});\n\tconst areNotificationsSuppressed = ref(false);\n\tconst allowErrorNotificationsWhenSuppressed = ref(false);\n\n\tconst setNotificationsForView = (view: VIEWS, notifications: NotificationOptions[]) => {\n\t\tpendingNotificationsForViews.value[view] = notifications;\n\t};\n\n\tconst setNotificationsSuppressed = (suppressed: boolean, options?: { allowErrors?: boolean }) => {\n\t\tareNotificationsSuppressed.value = suppressed;\n\t\tallowErrorNotificationsWhenSuppressed.value = suppressed && options?.allowErrors === true;\n\t};\n\n\treturn {\n\t\tpendingNotificationsForViews,\n\t\tareNotificationsSuppressed,\n\t\tallowErrorNotificationsWhenSuppressed,\n\t\tsetNotificationsForView,\n\t\tsetNotificationsSuppressed,\n\t};\n});\n"],"mappings":";;;;;;;;;;AAuDA,MAAa,+CAAoCA,yBAAO,qBAAyC;CAChG,MAAM,4CAAkF,EAAE,CAAC;CAC3F,MAAM,0CAAiC,MAAM;CAC7C,MAAM,qDAA4C,MAAM;CAExD,MAAM,2BAA2B,MAAa,kBAAyC;AACtF,+BAA6B,MAAM,QAAQ;;CAG5C,MAAM,8BAA8B,YAAqB,YAAwC;AAChG,6BAA2B,QAAQ;AACnC,wCAAsC,QAAQ,cAAc,SAAS,gBAAgB;;AAGtF,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA"}
1
+ {"version":3,"file":"notifications.store.cjs","names":["STORES"],"sources":["../src/notifications.store.ts"],"sourcesContent":["import { defineStore } from 'pinia';\nimport { ref, type Ref } from 'vue';\n\nimport { STORES } from './constants';\n\n/**\n * Public surface of the notifications store. Declared explicitly so the emitted\n * type declarations reference these named types instead of inlining the\n * structural Vue ref types, keeping the declarations portable across the package\n * boundary.\n */\nexport interface NotificationsStore {\n\tareNotificationsSuppressed: Ref<boolean>;\n\tallowErrorNotificationsWhenSuppressed: Ref<boolean>;\n\tsetNotificationsSuppressed: (suppressed: boolean, options?: { allowErrors?: boolean }) => void;\n}\n\n/**\n * Notification state extracted from `ui.store`: the suppression flags read by\n * the toast layer.\n */\nexport const useNotificationsStore = defineStore(STORES.NOTIFICATIONS, (): NotificationsStore => {\n\tconst areNotificationsSuppressed = ref(false);\n\tconst allowErrorNotificationsWhenSuppressed = ref(false);\n\n\tconst setNotificationsSuppressed = (suppressed: boolean, options?: { allowErrors?: boolean }) => {\n\t\tareNotificationsSuppressed.value = suppressed;\n\t\tallowErrorNotificationsWhenSuppressed.value = suppressed && options?.allowErrors === true;\n\t};\n\n\treturn {\n\t\tareNotificationsSuppressed,\n\t\tallowErrorNotificationsWhenSuppressed,\n\t\tsetNotificationsSuppressed,\n\t};\n});\n"],"mappings":";;;;;;;;;;AAqBA,MAAa,+CAAoCA,yBAAO,qBAAyC;CAChG,MAAM,0CAAiC,MAAM;CAC7C,MAAM,qDAA4C,MAAM;CAExD,MAAM,8BAA8B,YAAqB,YAAwC;AAChG,6BAA2B,QAAQ;AACnC,wCAAsC,QAAQ,cAAc,SAAS,gBAAgB;;AAGtF,QAAO;EACN;EACA;EACA;EACA;EACA"}
@@ -1,36 +1,15 @@
1
- import { Component, Ref, VNode } from "vue";
2
- import * as pinia4 from "pinia";
3
- import { VIEWS } from "@n8n/frontend-constants/views";
1
+ import { Ref } from "vue";
2
+ import * as pinia2 from "pinia";
4
3
 
5
4
  //#region src/notifications.store.d.ts
6
- type NotificationType = '' | 'success' | 'warning' | 'error' | 'info';
7
- type NotificationPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
8
- interface NotificationOptions {
9
- message: string | VNode;
10
- title?: string;
11
- type?: NotificationType;
12
- icon?: string | Component;
13
- customClass?: string;
14
- duration?: number;
15
- position?: NotificationPosition;
16
- showClose?: boolean;
17
- dangerouslyUseHTMLString?: boolean;
18
- offset?: number;
19
- appendTo?: HTMLElement | string;
20
- zIndex?: number;
21
- onClick?: () => void;
22
- onClose?: () => void;
23
- }
24
5
  interface NotificationsStore {
25
- pendingNotificationsForViews: Ref<Partial<Record<VIEWS, NotificationOptions[]>>>;
26
6
  areNotificationsSuppressed: Ref<boolean>;
27
7
  allowErrorNotificationsWhenSuppressed: Ref<boolean>;
28
- setNotificationsForView: (view: VIEWS, notifications: NotificationOptions[]) => void;
29
8
  setNotificationsSuppressed: (suppressed: boolean, options?: {
30
9
  allowErrors?: boolean;
31
10
  }) => void;
32
11
  }
33
- declare const useNotificationsStore: pinia4.StoreDefinition<"notifications", Pick<NotificationsStore, "pendingNotificationsForViews" | "areNotificationsSuppressed" | "allowErrorNotificationsWhenSuppressed">, Pick<NotificationsStore, never>, Pick<NotificationsStore, "setNotificationsForView" | "setNotificationsSuppressed">>;
12
+ declare const useNotificationsStore: pinia2.StoreDefinition<"notifications", Pick<NotificationsStore, "areNotificationsSuppressed" | "allowErrorNotificationsWhenSuppressed">, Pick<NotificationsStore, never>, Pick<NotificationsStore, "setNotificationsSuppressed">>;
34
13
  //#endregion
35
- export { NotificationOptions, NotificationsStore, useNotificationsStore };
14
+ export { NotificationsStore, useNotificationsStore };
36
15
  //# sourceMappingURL=notifications.store.d.cts.map
@@ -1,36 +1,15 @@
1
1
  import * as pinia0 from "pinia";
2
- import { Component, Ref, VNode } from "vue";
3
- import { VIEWS } from "@n8n/frontend-constants/views";
2
+ import { Ref } from "vue";
4
3
 
5
4
  //#region src/notifications.store.d.ts
6
- type NotificationType = '' | 'success' | 'warning' | 'error' | 'info';
7
- type NotificationPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
8
- interface NotificationOptions {
9
- message: string | VNode;
10
- title?: string;
11
- type?: NotificationType;
12
- icon?: string | Component;
13
- customClass?: string;
14
- duration?: number;
15
- position?: NotificationPosition;
16
- showClose?: boolean;
17
- dangerouslyUseHTMLString?: boolean;
18
- offset?: number;
19
- appendTo?: HTMLElement | string;
20
- zIndex?: number;
21
- onClick?: () => void;
22
- onClose?: () => void;
23
- }
24
5
  interface NotificationsStore {
25
- pendingNotificationsForViews: Ref<Partial<Record<VIEWS, NotificationOptions[]>>>;
26
6
  areNotificationsSuppressed: Ref<boolean>;
27
7
  allowErrorNotificationsWhenSuppressed: Ref<boolean>;
28
- setNotificationsForView: (view: VIEWS, notifications: NotificationOptions[]) => void;
29
8
  setNotificationsSuppressed: (suppressed: boolean, options?: {
30
9
  allowErrors?: boolean;
31
10
  }) => void;
32
11
  }
33
- declare const useNotificationsStore: pinia0.StoreDefinition<"notifications", Pick<NotificationsStore, "pendingNotificationsForViews" | "areNotificationsSuppressed" | "allowErrorNotificationsWhenSuppressed">, Pick<NotificationsStore, never>, Pick<NotificationsStore, "setNotificationsForView" | "setNotificationsSuppressed">>;
12
+ declare const useNotificationsStore: pinia0.StoreDefinition<"notifications", Pick<NotificationsStore, "areNotificationsSuppressed" | "allowErrorNotificationsWhenSuppressed">, Pick<NotificationsStore, never>, Pick<NotificationsStore, "setNotificationsSuppressed">>;
34
13
  //#endregion
35
- export { NotificationOptions, NotificationsStore, useNotificationsStore };
14
+ export { NotificationsStore, useNotificationsStore };
36
15
  //# sourceMappingURL=notifications.store.d.mts.map
@@ -4,25 +4,19 @@ import { ref } from "vue";
4
4
 
5
5
  //#region src/notifications.store.ts
6
6
  /**
7
- * Notification state extracted from `ui.store`: the per-view queue of pending
8
- * notifications and the suppression flags read by the toast layer.
7
+ * Notification state extracted from `ui.store`: the suppression flags read by
8
+ * the toast layer.
9
9
  */
10
10
  const useNotificationsStore = defineStore(STORES.NOTIFICATIONS, () => {
11
- const pendingNotificationsForViews = ref({});
12
11
  const areNotificationsSuppressed = ref(false);
13
12
  const allowErrorNotificationsWhenSuppressed = ref(false);
14
- const setNotificationsForView = (view, notifications) => {
15
- pendingNotificationsForViews.value[view] = notifications;
16
- };
17
13
  const setNotificationsSuppressed = (suppressed, options) => {
18
14
  areNotificationsSuppressed.value = suppressed;
19
15
  allowErrorNotificationsWhenSuppressed.value = suppressed && options?.allowErrors === true;
20
16
  };
21
17
  return {
22
- pendingNotificationsForViews,
23
18
  areNotificationsSuppressed,
24
19
  allowErrorNotificationsWhenSuppressed,
25
- setNotificationsForView,
26
20
  setNotificationsSuppressed
27
21
  };
28
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.store.mjs","names":[],"sources":["../src/notifications.store.ts"],"sourcesContent":["import type { VIEWS } from '@n8n/frontend-constants/views';\nimport { defineStore } from 'pinia';\nimport { ref, type Component, type Ref, type VNode } from 'vue';\n\nimport { STORES } from './constants';\n\ntype NotificationType = '' | 'success' | 'warning' | 'error' | 'info';\ntype NotificationPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\n/**\n * Notification payload accepted by the toast layer.\n *\n * This mirrors Element Plus' notification options (the shape the toast layer\n * ultimately forwards to `ElNotification`) but is declared inline so this\n * package carries no dependency on `element-plus`. `message` is required; every\n * other field is optional, matching the original `Partial<...>`-based type.\n *\n * Relocated here from `editor-ui`'s `@/Interface` so it can travel with the\n * notifications store; `editor-ui` re-exports it for existing importers.\n */\nexport interface NotificationOptions {\n\tmessage: string | VNode;\n\ttitle?: string;\n\ttype?: NotificationType;\n\ticon?: string | Component;\n\tcustomClass?: string;\n\tduration?: number;\n\tposition?: NotificationPosition;\n\tshowClose?: boolean;\n\tdangerouslyUseHTMLString?: boolean;\n\toffset?: number;\n\tappendTo?: HTMLElement | string;\n\tzIndex?: number;\n\tonClick?: () => void;\n\tonClose?: () => void;\n}\n\n/**\n * Public surface of the notifications store. Declared explicitly so the emitted\n * type declarations reference these named types instead of inlining the\n * structural notification/Vue types, keeping the declarations portable across\n * the package boundary.\n */\nexport interface NotificationsStore {\n\tpendingNotificationsForViews: Ref<Partial<Record<VIEWS, NotificationOptions[]>>>;\n\tareNotificationsSuppressed: Ref<boolean>;\n\tallowErrorNotificationsWhenSuppressed: Ref<boolean>;\n\tsetNotificationsForView: (view: VIEWS, notifications: NotificationOptions[]) => void;\n\tsetNotificationsSuppressed: (suppressed: boolean, options?: { allowErrors?: boolean }) => void;\n}\n\n/**\n * Notification state extracted from `ui.store`: the per-view queue of pending\n * notifications and the suppression flags read by the toast layer.\n */\nexport const useNotificationsStore = defineStore(STORES.NOTIFICATIONS, (): NotificationsStore => {\n\tconst pendingNotificationsForViews = ref<Partial<Record<VIEWS, NotificationOptions[]>>>({});\n\tconst areNotificationsSuppressed = ref(false);\n\tconst allowErrorNotificationsWhenSuppressed = ref(false);\n\n\tconst setNotificationsForView = (view: VIEWS, notifications: NotificationOptions[]) => {\n\t\tpendingNotificationsForViews.value[view] = notifications;\n\t};\n\n\tconst setNotificationsSuppressed = (suppressed: boolean, options?: { allowErrors?: boolean }) => {\n\t\tareNotificationsSuppressed.value = suppressed;\n\t\tallowErrorNotificationsWhenSuppressed.value = suppressed && options?.allowErrors === true;\n\t};\n\n\treturn {\n\t\tpendingNotificationsForViews,\n\t\tareNotificationsSuppressed,\n\t\tallowErrorNotificationsWhenSuppressed,\n\t\tsetNotificationsForView,\n\t\tsetNotificationsSuppressed,\n\t};\n});\n"],"mappings":";;;;;;;;;AAuDA,MAAa,wBAAwB,YAAY,OAAO,qBAAyC;CAChG,MAAM,+BAA+B,IAAmD,EAAE,CAAC;CAC3F,MAAM,6BAA6B,IAAI,MAAM;CAC7C,MAAM,wCAAwC,IAAI,MAAM;CAExD,MAAM,2BAA2B,MAAa,kBAAyC;AACtF,+BAA6B,MAAM,QAAQ;;CAG5C,MAAM,8BAA8B,YAAqB,YAAwC;AAChG,6BAA2B,QAAQ;AACnC,wCAAsC,QAAQ,cAAc,SAAS,gBAAgB;;AAGtF,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA"}
1
+ {"version":3,"file":"notifications.store.mjs","names":[],"sources":["../src/notifications.store.ts"],"sourcesContent":["import { defineStore } from 'pinia';\nimport { ref, type Ref } from 'vue';\n\nimport { STORES } from './constants';\n\n/**\n * Public surface of the notifications store. Declared explicitly so the emitted\n * type declarations reference these named types instead of inlining the\n * structural Vue ref types, keeping the declarations portable across the package\n * boundary.\n */\nexport interface NotificationsStore {\n\tareNotificationsSuppressed: Ref<boolean>;\n\tallowErrorNotificationsWhenSuppressed: Ref<boolean>;\n\tsetNotificationsSuppressed: (suppressed: boolean, options?: { allowErrors?: boolean }) => void;\n}\n\n/**\n * Notification state extracted from `ui.store`: the suppression flags read by\n * the toast layer.\n */\nexport const useNotificationsStore = defineStore(STORES.NOTIFICATIONS, (): NotificationsStore => {\n\tconst areNotificationsSuppressed = ref(false);\n\tconst allowErrorNotificationsWhenSuppressed = ref(false);\n\n\tconst setNotificationsSuppressed = (suppressed: boolean, options?: { allowErrors?: boolean }) => {\n\t\tareNotificationsSuppressed.value = suppressed;\n\t\tallowErrorNotificationsWhenSuppressed.value = suppressed && options?.allowErrors === true;\n\t};\n\n\treturn {\n\t\tareNotificationsSuppressed,\n\t\tallowErrorNotificationsWhenSuppressed,\n\t\tsetNotificationsSuppressed,\n\t};\n});\n"],"mappings":";;;;;;;;;AAqBA,MAAa,wBAAwB,YAAY,OAAO,qBAAyC;CAChG,MAAM,6BAA6B,IAAI,MAAM;CAC7C,MAAM,wCAAwC,IAAI,MAAM;CAExD,MAAM,8BAA8B,YAAqB,YAAwC;AAChG,6BAA2B,QAAQ;AACnC,wCAAsC,QAAQ,cAAc,SAAS,gBAAgB;;AAGtF,QAAO;EACN;EACA;EACA;EACA;EACA"}
@@ -0,0 +1,6 @@
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';
4
+ //#endregion
5
+ export { UTMCampaign as n, CloudUpdateLinkSourceType as t };
6
+ //# sourceMappingURL=pageRedirection.d.cts.map
@@ -0,0 +1,6 @@
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';
4
+ //#endregion
5
+ export { UTMCampaign as n, CloudUpdateLinkSourceType as t };
6
+ //# sourceMappingURL=pageRedirection.d.mts.map