nextjs-cms 0.9.22 → 0.9.23

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 (185) hide show
  1. package/README.md +65 -13
  2. package/dist/api/actions/files.d.ts +30 -0
  3. package/dist/api/actions/files.d.ts.map +1 -0
  4. package/dist/api/actions/files.js +234 -0
  5. package/dist/api/actions/index.d.ts +4 -0
  6. package/dist/api/actions/index.d.ts.map +1 -0
  7. package/dist/api/actions/index.js +3 -0
  8. package/dist/api/actions/pages.d.ts +297 -0
  9. package/dist/api/actions/pages.d.ts.map +1 -0
  10. package/dist/api/actions/pages.js +1215 -0
  11. package/dist/api/actions/privileges.d.ts +25 -0
  12. package/dist/api/actions/privileges.d.ts.map +1 -0
  13. package/dist/api/actions/privileges.js +98 -0
  14. package/dist/api/client/index.d.ts +4 -0
  15. package/dist/api/client/index.d.ts.map +1 -0
  16. package/dist/api/client/index.js +3 -0
  17. package/dist/api/client.d.ts +30 -0
  18. package/dist/api/client.d.ts.map +1 -0
  19. package/dist/api/client.js +82 -0
  20. package/dist/api/index.d.ts +1 -938
  21. package/dist/api/index.d.ts.map +1 -1
  22. package/dist/api/index.js +0 -13
  23. package/dist/api/plugin/index.d.ts +7 -0
  24. package/dist/api/plugin/index.d.ts.map +1 -0
  25. package/dist/api/plugin/index.js +5 -0
  26. package/dist/api/root.d.ts +18 -1844
  27. package/dist/api/root.d.ts.map +1 -1
  28. package/dist/api/root.js +18 -83
  29. package/dist/api/server/index.d.ts +8 -0
  30. package/dist/api/server/index.d.ts.map +1 -0
  31. package/dist/api/server/index.js +3 -0
  32. package/dist/api/server.d.ts +2748 -0
  33. package/dist/api/server.d.ts.map +1 -0
  34. package/dist/api/server.js +100 -0
  35. package/dist/api/trpc/client.d.ts +19 -3
  36. package/dist/api/trpc/client.d.ts.map +1 -1
  37. package/dist/api/trpc/client.js +55 -1
  38. package/dist/api/trpc/query-client.d.ts +3 -1
  39. package/dist/api/trpc/query-client.d.ts.map +1 -1
  40. package/dist/api/trpc/query-client.js +25 -20
  41. package/dist/api/trpc/root.d.ts +906 -0
  42. package/dist/api/trpc/root.d.ts.map +1 -0
  43. package/dist/api/trpc/root.js +47 -0
  44. package/dist/api/trpc/routers/accountSettings.d.ts +66 -0
  45. package/dist/api/trpc/routers/accountSettings.d.ts.map +1 -0
  46. package/dist/api/trpc/routers/accountSettings.js +200 -0
  47. package/dist/api/trpc/routers/admins.d.ts +112 -0
  48. package/dist/api/trpc/routers/admins.d.ts.map +1 -0
  49. package/dist/api/trpc/routers/admins.js +331 -0
  50. package/dist/api/trpc/routers/auth.d.ts +54 -0
  51. package/dist/api/trpc/routers/auth.d.ts.map +1 -0
  52. package/dist/api/trpc/routers/auth.js +50 -0
  53. package/dist/api/trpc/routers/categorySection.d.ts +105 -0
  54. package/dist/api/trpc/routers/categorySection.d.ts.map +1 -0
  55. package/dist/api/trpc/routers/categorySection.js +49 -0
  56. package/dist/api/trpc/routers/config.d.ts +48 -0
  57. package/dist/api/trpc/routers/config.d.ts.map +1 -0
  58. package/dist/api/trpc/routers/config.js +18 -0
  59. package/dist/api/trpc/routers/cpanel.d.ts +82 -0
  60. package/dist/api/trpc/routers/cpanel.d.ts.map +1 -0
  61. package/dist/api/trpc/routers/cpanel.js +216 -0
  62. package/dist/api/trpc/routers/fields.d.ts +35 -0
  63. package/dist/api/trpc/routers/fields.d.ts.map +1 -0
  64. package/dist/api/trpc/routers/fields.js +81 -0
  65. package/dist/api/trpc/routers/files.d.ts +34 -0
  66. package/dist/api/trpc/routers/files.d.ts.map +1 -0
  67. package/dist/api/trpc/routers/files.js +14 -0
  68. package/dist/api/trpc/routers/gallery.d.ts +35 -0
  69. package/dist/api/trpc/routers/gallery.d.ts.map +1 -0
  70. package/dist/api/trpc/routers/gallery.js +92 -0
  71. package/dist/api/trpc/routers/hasItemsSection.d.ts +194 -0
  72. package/dist/api/trpc/routers/hasItemsSection.d.ts.map +1 -0
  73. package/dist/api/trpc/routers/hasItemsSection.js +86 -0
  74. package/dist/api/trpc/routers/logs.d.ts +59 -0
  75. package/dist/api/trpc/routers/logs.d.ts.map +1 -0
  76. package/dist/api/trpc/routers/logs.js +79 -0
  77. package/dist/api/trpc/routers/navigation.d.ts +65 -0
  78. package/dist/api/trpc/routers/navigation.d.ts.map +1 -0
  79. package/dist/api/trpc/routers/navigation.js +11 -0
  80. package/dist/api/trpc/routers/simpleSection.d.ts +93 -0
  81. package/dist/api/trpc/routers/simpleSection.d.ts.map +1 -0
  82. package/dist/api/trpc/routers/simpleSection.js +54 -0
  83. package/dist/api/trpc/server.d.ts +2789 -5
  84. package/dist/api/trpc/server.d.ts.map +1 -1
  85. package/dist/api/trpc/server.js +91 -52
  86. package/dist/api/trpc/trpc.d.ts +111 -0
  87. package/dist/api/trpc/trpc.d.ts.map +1 -0
  88. package/dist/api/trpc/trpc.js +99 -0
  89. package/dist/api/trpc/utils/async-caller-proxy.d.ts +2 -0
  90. package/dist/api/trpc/utils/async-caller-proxy.d.ts.map +1 -0
  91. package/dist/api/trpc/utils/async-caller-proxy.js +38 -0
  92. package/dist/api/trpc/utils/refresh-token-link.d.ts +6 -0
  93. package/dist/api/trpc/utils/refresh-token-link.d.ts.map +1 -0
  94. package/dist/api/trpc/utils/refresh-token-link.js +81 -0
  95. package/dist/api/trpc/utils/router-types.d.ts +7 -0
  96. package/dist/api/trpc/utils/router-types.d.ts.map +1 -0
  97. package/dist/api/trpc/utils/router-types.js +0 -0
  98. package/dist/api/use-axios-private.d.ts +6 -0
  99. package/dist/api/use-axios-private.d.ts.map +1 -0
  100. package/dist/api/use-axios-private.js +57 -0
  101. package/dist/api/utils/async-caller-proxy.d.ts +2 -0
  102. package/dist/api/utils/async-caller-proxy.d.ts.map +1 -0
  103. package/dist/api/utils/async-caller-proxy.js +36 -0
  104. package/dist/api/utils/lazy-caller-proxy.d.ts +2 -0
  105. package/dist/api/utils/lazy-caller-proxy.d.ts.map +1 -0
  106. package/dist/api/utils/lazy-caller-proxy.js +36 -0
  107. package/dist/api/utils/router-types.d.ts +7 -0
  108. package/dist/api/utils/router-types.d.ts.map +1 -0
  109. package/dist/api/utils/router-types.js +0 -0
  110. package/dist/auth/hooks/index.d.ts +1 -2
  111. package/dist/auth/hooks/index.d.ts.map +1 -1
  112. package/dist/auth/hooks/index.js +1 -2
  113. package/dist/auth/react.d.ts +1 -2
  114. package/dist/auth/react.d.ts.map +1 -1
  115. package/dist/auth/react.js +1 -2
  116. package/dist/auth/trpc.d.ts +1 -1
  117. package/dist/auth/trpc.d.ts.map +1 -1
  118. package/dist/auth/trpc.js +0 -1
  119. package/dist/cli/lib/fix-master-admin.d.ts.map +1 -1
  120. package/dist/cli/lib/fix-master-admin.js +12 -25
  121. package/dist/cli/lib/update-sections.d.ts.map +1 -1
  122. package/dist/cli/lib/update-sections.js +29 -24
  123. package/dist/core/config/config-loader.d.ts +23 -7
  124. package/dist/core/config/config-loader.d.ts.map +1 -1
  125. package/dist/core/config/config-loader.js +26 -9
  126. package/dist/core/fields/select.d.ts +1 -1
  127. package/dist/core/sections/category.d.ts +44 -44
  128. package/dist/core/sections/hasItems.d.ts +44 -44
  129. package/dist/core/sections/section.d.ts +23 -23
  130. package/dist/core/sections/simple.d.ts +8 -8
  131. package/dist/core/types/index.d.ts +17 -0
  132. package/dist/core/types/index.d.ts.map +1 -1
  133. package/dist/index.d.ts +0 -1
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +0 -1
  136. package/dist/plugins/client.d.ts +19 -0
  137. package/dist/plugins/client.d.ts.map +1 -0
  138. package/dist/plugins/client.js +24 -0
  139. package/dist/plugins/define.d.ts +4 -0
  140. package/dist/plugins/define.d.ts.map +1 -0
  141. package/dist/plugins/define.js +3 -0
  142. package/dist/plugins/derive.d.ts +32 -0
  143. package/dist/plugins/derive.d.ts.map +1 -0
  144. package/dist/plugins/derive.js +77 -0
  145. package/dist/plugins/loader.d.ts +51 -7
  146. package/dist/plugins/loader.d.ts.map +1 -1
  147. package/dist/plugins/loader.js +111 -51
  148. package/dist/plugins/manifest.d.ts +28 -0
  149. package/dist/plugins/manifest.d.ts.map +1 -0
  150. package/dist/plugins/manifest.js +83 -0
  151. package/dist/plugins/prefetch.d.ts +16 -0
  152. package/dist/plugins/prefetch.d.ts.map +1 -0
  153. package/dist/plugins/prefetch.js +40 -0
  154. package/dist/plugins/registry.d.ts +22 -0
  155. package/dist/plugins/registry.d.ts.map +1 -0
  156. package/dist/plugins/registry.js +25 -0
  157. package/dist/plugins/server.d.ts +2 -0
  158. package/dist/plugins/server.d.ts.map +1 -1
  159. package/dist/plugins/server.js +2 -0
  160. package/dist/plugins/types.d.ts +9 -0
  161. package/dist/plugins/types.d.ts.map +1 -0
  162. package/dist/plugins/types.js +0 -0
  163. package/dist/translations/base/en.d.ts +1 -0
  164. package/dist/translations/base/en.d.ts.map +1 -1
  165. package/dist/translations/base/en.js +1 -0
  166. package/dist/translations/client.d.ts +16 -4
  167. package/dist/translations/client.d.ts.map +1 -1
  168. package/dist/translations/server.d.ts +16 -4
  169. package/dist/translations/server.d.ts.map +1 -1
  170. package/dist/utils/console-log.d.ts +18 -0
  171. package/dist/utils/console-log.d.ts.map +1 -0
  172. package/dist/utils/console-log.js +28 -0
  173. package/dist/utils/index.d.ts +1 -0
  174. package/dist/utils/index.d.ts.map +1 -1
  175. package/dist/utils/index.js +1 -0
  176. package/dist/utils/log.d.ts +18 -0
  177. package/dist/utils/log.d.ts.map +1 -0
  178. package/dist/utils/log.js +28 -0
  179. package/dist/validators/index.d.ts +1 -0
  180. package/dist/validators/index.d.ts.map +1 -1
  181. package/dist/validators/index.js +1 -0
  182. package/dist/validators/tags.d.ts +4 -0
  183. package/dist/validators/tags.d.ts.map +1 -0
  184. package/dist/validators/tags.js +8 -0
  185. package/package.json +34 -16
@@ -13,6 +13,23 @@ export type SidebarItemProps = {
13
13
  item: NavItem;
14
14
  closeSideBar?: () => void;
15
15
  };
16
+ export type SidebarPluginLeaf = {
17
+ kind: 'leaf';
18
+ title: string;
19
+ path: string;
20
+ icon?: string;
21
+ };
22
+ export type SidebarPluginGroup = {
23
+ kind: 'group';
24
+ title: string;
25
+ icon?: string;
26
+ children: NavItem[];
27
+ };
28
+ export type SidebarPluginItem = SidebarPluginLeaf | SidebarPluginGroup;
29
+ export type SidebarPluginGroupProps = {
30
+ group: SidebarPluginGroup;
31
+ closeSideBar?: () => void;
32
+ };
16
33
  export type EmailItem = {
17
34
  email: string;
18
35
  domain: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './api/index.js';
2
1
  export * from './auth/index.js';
3
2
  export * from './core/index.js';
4
3
  export * from './db/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export * from './api/index.js';
2
1
  export * from './auth/index.js';
3
2
  export * from './core/index.js';
4
3
  export * from './db/index.js';
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { ReactNode } from 'react';
3
+ export declare function PluginTRPCProvider({ trpc, children }: {
4
+ trpc: unknown;
5
+ children: ReactNode;
6
+ }): React.JSX.Element;
7
+ /**
8
+ * Read the host app's tRPC React client from inside a plugin client component.
9
+ *
10
+ * Must be rendered under `NextjsCmsProvider` (the host app's `<NextjsCmsProvider>` does this automatically).
11
+ * Plugins pass a structural type describing the procedures they call, e.g.:
12
+ *
13
+ * ```ts
14
+ * type TrpcLike = { myPlugin?: { getData: { useQuery: () => { data?: unknown } } } }
15
+ * const trpc = usePluginTRPC<TrpcLike>()
16
+ * ```
17
+ */
18
+ export declare function usePluginTRPC<TTRPC>(): TTRPC;
19
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/plugins/client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,qBAE5F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,KAOhB,KAAK,CACvB"}
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import React, { createContext, useContext } from 'react';
3
+ const PluginTRPCContext = createContext(null);
4
+ export function PluginTRPCProvider({ trpc, children }) {
5
+ return React.createElement(PluginTRPCContext.Provider, { value: trpc }, children);
6
+ }
7
+ /**
8
+ * Read the host app's tRPC React client from inside a plugin client component.
9
+ *
10
+ * Must be rendered under `NextjsCmsProvider` (the host app's `<NextjsCmsProvider>` does this automatically).
11
+ * Plugins pass a structural type describing the procedures they call, e.g.:
12
+ *
13
+ * ```ts
14
+ * type TrpcLike = { myPlugin?: { getData: { useQuery: () => { data?: unknown } } } }
15
+ * const trpc = usePluginTRPC<TrpcLike>()
16
+ * ```
17
+ */
18
+ export function usePluginTRPC() {
19
+ const trpc = useContext(PluginTRPCContext);
20
+ if (!trpc) {
21
+ throw new Error('usePluginTRPC must be used inside NextjsCmsProvider.');
22
+ }
23
+ return trpc;
24
+ }
@@ -0,0 +1,4 @@
1
+ import type { CMSPluginMultiRoute, CMSPluginSingleRoute } from './loader.js';
2
+ export declare function definePlugin(plugin: CMSPluginSingleRoute): CMSPluginSingleRoute;
3
+ export declare function definePlugin(plugin: CMSPluginMultiRoute): CMSPluginMultiRoute;
4
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/plugins/define.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvF,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAA;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export function definePlugin(plugin) {
2
+ return plugin;
3
+ }
@@ -0,0 +1,32 @@
1
+ export declare const PLUGIN_PACKAGE_PREFIX = "@nextjscms/plugin-";
2
+ /**
3
+ * Derive a plugin's canonical internal name from its npm package name.
4
+ *
5
+ * Convention: every plugin package MUST be named "@nextjscms/plugin-<slug>"
6
+ * (kebab-case slug). The derived name is "plugin_<slug_in_snake_case>".
7
+ *
8
+ * Examples:
9
+ * "@nextjscms/plugin-cpanel-dashboard" → "plugin_cpanel_dashboard"
10
+ * "@nextjscms/plugin-google-analytics" → "plugin_google_analytics"
11
+ *
12
+ * Throws on packages that do not follow the convention.
13
+ */
14
+ export declare function derivePluginName(pluginPackage: string): string;
15
+ /**
16
+ * Derive a plugin's tRPC router key (camelCase) from its npm package name.
17
+ * Used as the key in the merged tRPC router (e.g. `trpc.cpanelDashboard.*`).
18
+ *
19
+ * Examples:
20
+ * "@nextjscms/plugin-cpanel-dashboard" → "cpanelDashboard"
21
+ * "@nextjscms/plugin-google-analytics" → "googleAnalytics"
22
+ */
23
+ export declare function derivePluginRouterKey(pluginPackage: string): string;
24
+ /**
25
+ * Helper for plugin routers: derive the plugin's canonical name by reading
26
+ * its own package.json. Pass `import.meta.url` from the plugin's router file.
27
+ *
28
+ * Walks up from the calling module's directory until it finds a package.json
29
+ * with a "name" field, then applies {@link derivePluginName}.
30
+ */
31
+ export declare function extractPluginName(importMetaUrl: string): string;
32
+ //# sourceMappingURL=derive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/plugins/derive.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,uBAAuB,CAAA;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAe9D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAanE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAmB/D"}
@@ -0,0 +1,77 @@
1
+ import path from 'path';
2
+ import fs from 'fs';
3
+ import { fileURLToPath } from 'url';
4
+ export const PLUGIN_PACKAGE_PREFIX = '@nextjscms/plugin-';
5
+ /**
6
+ * Derive a plugin's canonical internal name from its npm package name.
7
+ *
8
+ * Convention: every plugin package MUST be named "@nextjscms/plugin-<slug>"
9
+ * (kebab-case slug). The derived name is "plugin_<slug_in_snake_case>".
10
+ *
11
+ * Examples:
12
+ * "@nextjscms/plugin-cpanel-dashboard" → "plugin_cpanel_dashboard"
13
+ * "@nextjscms/plugin-google-analytics" → "plugin_google_analytics"
14
+ *
15
+ * Throws on packages that do not follow the convention.
16
+ */
17
+ export function derivePluginName(pluginPackage) {
18
+ if (!pluginPackage.startsWith(PLUGIN_PACKAGE_PREFIX)) {
19
+ throw new Error(`[plugins] Invalid plugin package "${pluginPackage}". ` +
20
+ `Plugin packages must be named "${PLUGIN_PACKAGE_PREFIX}<slug>".`);
21
+ }
22
+ const slug = pluginPackage.slice(PLUGIN_PACKAGE_PREFIX.length);
23
+ if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(slug)) {
24
+ throw new Error(`[plugins] Invalid plugin slug in "${pluginPackage}". ` +
25
+ `Slug must be lowercase kebab-case (a-z, 0-9, hyphen).`);
26
+ }
27
+ return `plugin_${slug.replace(/-/g, '_')}`;
28
+ }
29
+ /**
30
+ * Derive a plugin's tRPC router key (camelCase) from its npm package name.
31
+ * Used as the key in the merged tRPC router (e.g. `trpc.cpanelDashboard.*`).
32
+ *
33
+ * Examples:
34
+ * "@nextjscms/plugin-cpanel-dashboard" → "cpanelDashboard"
35
+ * "@nextjscms/plugin-google-analytics" → "googleAnalytics"
36
+ */
37
+ export function derivePluginRouterKey(pluginPackage) {
38
+ if (!pluginPackage.startsWith(PLUGIN_PACKAGE_PREFIX)) {
39
+ throw new Error(`[plugins] Invalid plugin package "${pluginPackage}". ` +
40
+ `Plugin packages must be named "${PLUGIN_PACKAGE_PREFIX}<slug>".`);
41
+ }
42
+ const slug = pluginPackage.slice(PLUGIN_PACKAGE_PREFIX.length);
43
+ const [first, ...rest] = slug.split('-').filter(Boolean);
44
+ if (!first) {
45
+ throw new Error(`[plugins] Invalid plugin slug in "${pluginPackage}".`);
46
+ }
47
+ return first + rest.map((part) => part[0]?.toUpperCase() + part.slice(1)).join('');
48
+ }
49
+ /**
50
+ * Helper for plugin routers: derive the plugin's canonical name by reading
51
+ * its own package.json. Pass `import.meta.url` from the plugin's router file.
52
+ *
53
+ * Walks up from the calling module's directory until it finds a package.json
54
+ * with a "name" field, then applies {@link derivePluginName}.
55
+ */
56
+ export function extractPluginName(importMetaUrl) {
57
+ const startDir = path.dirname(fileURLToPath(importMetaUrl));
58
+ let dir = startDir;
59
+ while (true) {
60
+ const candidate = path.join(dir, 'package.json');
61
+ if (fs.existsSync(candidate)) {
62
+ try {
63
+ const parsed = JSON.parse(fs.readFileSync(candidate, 'utf8'));
64
+ if (parsed.name)
65
+ return derivePluginName(parsed.name);
66
+ }
67
+ catch {
68
+ // continue walking
69
+ }
70
+ }
71
+ const parent = path.dirname(dir);
72
+ if (parent === dir) {
73
+ throw new Error(`[plugins] extractPluginName: could not find package.json starting from "${startDir}".`);
74
+ }
75
+ dir = parent;
76
+ }
77
+ }
@@ -10,12 +10,10 @@ export interface CMSPlugin {
10
10
  */
11
11
  title: MultilingualString;
12
12
  /**
13
- * The internal name of the plugin.
14
- * It should start with 'plugin_' and be in snake_case.
15
- * @example 'plugin_cpanel_emails'
13
+ * Optional sidebar icon for the plugin group (multi-route, when `groupRoutes !== false`).
14
+ * Single-route plugins use the route's own `icon` instead.
16
15
  */
17
- name: string;
18
- registryName: string;
16
+ icon?: IconName;
19
17
  version?: string;
20
18
  router?: any;
21
19
  routes?: PluginRoute[];
@@ -24,9 +22,16 @@ export interface CMSPlugin {
24
22
  export interface PluginInitContext {
25
23
  config: PluginConfigEntry;
26
24
  }
25
+ /**
26
+ * A plugin instance after loading. The canonical "name" is derived from the
27
+ * plugin's npm package name (see {@link derivePluginName}), not authored.
28
+ */
29
+ export interface ResolvedPlugin extends CMSPlugin {
30
+ name: string;
31
+ }
27
32
  export interface LoadedPlugin {
28
33
  config: PluginConfigEntry;
29
- plugin: CMSPlugin;
34
+ plugin: ResolvedPlugin;
30
35
  moduleName: string;
31
36
  routerKey: string;
32
37
  }
@@ -44,6 +49,13 @@ export interface PluginRoute {
44
49
  title: MultilingualString;
45
50
  icon?: IconName | undefined;
46
51
  component?: string;
52
+ /**
53
+ * Dot-paths into the host's tRPC router (e.g. `'cpanelEmails.getEmails'`) that the
54
+ * host should prefetch on the server before rendering the plugin's component. The
55
+ * results are placed into the React Query cache and hydrated into the client tree
56
+ * via the host-rendered `<HydrateClient>` boundary.
57
+ */
58
+ prefetch?: string | string[];
47
59
  }
48
60
  export type PluginRouteWithoutComponent = Omit<PluginRoute, 'component'> & {
49
61
  component?: never;
@@ -54,7 +66,6 @@ export type PluginRouteWithComponent = PluginRoute & {
54
66
  export interface LoadedPluginRoute extends PluginRoute {
55
67
  pluginId: string;
56
68
  pluginName: string;
57
- pluginRegistryName: string;
58
69
  }
59
70
  type CMSPluginBase = Omit<CMSPlugin, 'routes'>;
60
71
  export type CMSPluginSingleRoute = CMSPluginBase & {
@@ -69,6 +80,39 @@ export declare const loadPluginModule: (pluginPackage: string) => Promise<unknow
69
80
  export declare function loadPlugins(): Promise<LoadedPlugin[]>;
70
81
  export declare function getPluginRoutes(): Promise<LoadedPluginRoute[]>;
71
82
  export declare function findPluginRouteByPath(path: string): Promise<LoadedPluginRoute | null>;
83
+ /**
84
+ * Sidebar entry for a plugin: either a single leaf (single-route plugin or
85
+ * multi-route with `groupRoutes: false`) or a collapsible group containing the
86
+ * plugin's routes as children (multi-route, `groupRoutes !== false`).
87
+ */
88
+ export type PluginNavLeaf = {
89
+ kind: 'leaf';
90
+ title: MultilingualString;
91
+ path: string;
92
+ icon?: IconName;
93
+ pluginName: string;
94
+ };
95
+ export type PluginNavGroup = {
96
+ kind: 'group';
97
+ title: MultilingualString;
98
+ icon?: IconName;
99
+ pluginName: string;
100
+ children: {
101
+ title: MultilingualString;
102
+ path: string;
103
+ icon?: IconName;
104
+ }[];
105
+ };
106
+ export type PluginNavItem = PluginNavLeaf | PluginNavGroup;
107
+ /**
108
+ * Returns the navigation structure for all loaded plugins, accounting for
109
+ * `groupRoutes` and per-plugin `override` resolution. Single-route plugins emit
110
+ * one leaf. Multi-route plugins emit a group (default) or one leaf per route
111
+ * when `groupRoutes: false`.
112
+ *
113
+ * Pure data — does not filter by privilege. The sidebar layer applies that.
114
+ */
115
+ export declare function getPluginNavigation(): Promise<PluginNavItem[]>;
72
116
  /**
73
117
  * Gets the dashboard override plugin route if configured.
74
118
  * @returns The LoadedPluginRoute for the dashboard override, or null if not configured
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,WAAW,SAAS;IACtB;;;;;OAKG;IACH,KAAK,EAAE,kBAAkB,CAAA;IACzB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC1D;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,iBAAiB,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,CAAA;IAC/D,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,OAAO,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,KAAK,EAAE,kBAAkB,CAAA;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAEhG,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;CAC7B;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAE9C,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IAC/C,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAAC,CAAA;CAC9F,CAAA;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAA;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAAA;AA2C9E,eAAO,MAAM,gBAAgB,GAAU,eAAe,MAAM,KAAG,OAAO,CAAC,OAAO,CAwB7E,CAAA;AA+CD,wBAAsB,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAyE3D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA8BpE;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAI3F;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAI9E;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAIpD,MAAM,WAAW,SAAS;IACtB;;;;;OAKG;IACH,KAAK,EAAE,kBAAkB,CAAA;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC1D;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,iBAAiB,CAAA;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC7C,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,CAAA;IAC/D,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,OAAO,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,KAAK,EAAE,kBAAkB,CAAA;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAEhG,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACrB;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAE9C,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IAC/C,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAAC,CAAA;CAC9F,CAAA;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAA;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAAA;AAgC9E,eAAO,MAAM,gBAAgB,GAAU,eAAe,MAAM,KAAG,OAAO,CAAC,OAAO,CA2B7E,CAAA;AAkFD,wBAAsB,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CA2E3D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2BpE;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAI3F;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,kBAAkB,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,kBAAkB,CAAA;IACzB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;KAAE,EAAE,CAAA;CAC3E,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,cAAc,CAAA;AAE1D;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAkCpE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAI9E;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF"}
@@ -5,30 +5,24 @@ if (typeof window !== 'undefined') {
5
5
  import { createRequire } from 'module';
6
6
  import path from 'path';
7
7
  import { getCMSConfig, getConfigImportVersion } from '../core/config/index.js';
8
- import chalk from 'chalk';
8
+ import { derivePluginName, derivePluginRouterKey } from './derive.js';
9
+ import { logWarn, logError, logInfo } from '../utils/console-log.js';
9
10
  export function definePlugin(plugin) {
10
11
  return plugin;
11
12
  }
12
- const deriveRouterKey = (packageName) => {
13
- const baseName = packageName.split('/').pop() ?? packageName;
14
- const withoutPrefix = baseName.startsWith('plugin-') ? baseName.slice('plugin-'.length) : baseName;
15
- const parts = withoutPrefix.split(/[-_]/g).filter(Boolean);
16
- const [first, ...rest] = parts;
17
- let key = first ? first + rest.map((part) => part[0]?.toUpperCase() + part.slice(1)).join('') : withoutPrefix;
18
- if (!key) {
19
- key = baseName.replace(/[^A-Za-z0-9_]/g, '_');
20
- }
21
- if (!/^[A-Za-z_]/.test(key)) {
22
- key = `plugin${key ? key[0]?.toUpperCase() + key.slice(1) : ''}`;
23
- }
24
- return key;
25
- };
26
13
  let cachedPlugins = null;
27
14
  let cachedConfigVersion = -1;
28
15
  let loadPromise = null;
29
16
  let jitiInstance = null;
30
17
  const appRequire = createRequire(path.join(process.cwd(), 'package.json'));
31
18
  const pkgRequire = createRequire(import.meta.url);
19
+ let serverOnlyEmptyPath = null;
20
+ const getServerOnlyEmptyPath = () => {
21
+ if (!serverOnlyEmptyPath) {
22
+ serverOnlyEmptyPath = path.join(path.dirname(pkgRequire.resolve('server-only')), 'empty.js');
23
+ }
24
+ return serverOnlyEmptyPath;
25
+ };
32
26
  const resolvePluginPath = (pluginPackage) => {
33
27
  try {
34
28
  return appRequire.resolve(pluginPackage);
@@ -54,6 +48,9 @@ export const loadPluginModule = async (pluginPackage) => {
54
48
  fsCache: true,
55
49
  moduleCache: true,
56
50
  rebuildFsCache: true,
51
+ alias: {
52
+ 'server-only': getServerOnlyEmptyPath(),
53
+ },
57
54
  // Optional: nicer debugging in stack traces (off by default in jiti)
58
55
  // sourceMaps: true,
59
56
  });
@@ -70,31 +67,59 @@ function resolvePluginInstance(registration, mod) {
70
67
  ? mod.default()
71
68
  : (mod.default ?? mod.plugin);
72
69
  if (!candidate) {
73
- console.warn(`[plugins] Plugin "${registration.package}" did not return a plugin instance`);
70
+ logWarn('plugins', `Plugin "${registration.package}" did not return a plugin instance.`);
74
71
  return null;
75
72
  }
76
- if (!candidate.name || !candidate.title) {
77
- console.warn(`[plugins] Plugin "${registration.package}" is missing required "name" or "title". Skipping.`);
73
+ if (!candidate.title) {
74
+ logWarn('plugins', `Plugin "${registration.package}" is missing required "title". Skipping.`);
78
75
  return null;
79
76
  }
80
- // Apply config-level title override if provided
81
- const resolvedTitle = registration.title ?? candidate.title;
82
- // Apply route-level title overrides if provided
83
- // For single-route plugins, the config-level title also applies to the route
84
- const isSingleRoute = (candidate.routes?.length ?? 0) <= 1;
85
- const resolvedRoutes = (candidate.routes ?? []).map((route) => {
86
- const routeOverride = registration.routes?.[route.path];
87
- // Priority: route-specific override > config title (single-route only) > route default
88
- const effectiveTitle = routeOverride?.title ?? (isSingleRoute ? registration.title : undefined) ?? route.title;
89
- return {
90
- ...route,
91
- title: effectiveTitle,
92
- };
77
+ const name = derivePluginName(registration.package);
78
+ const pkg = registration.package;
79
+ const override = registration.override;
80
+ const declaredRoutes = candidate.routes ?? [];
81
+ const isSingleRoute = declaredRoutes.length <= 1;
82
+ const groupRoutes = registration.groupRoutes ?? true;
83
+ // Validate override.routes keys against declared paths
84
+ if (override?.routes) {
85
+ const declaredPaths = new Set(declaredRoutes.map((r) => r.path));
86
+ for (const path of Object.keys(override.routes)) {
87
+ if (!declaredPaths.has(path)) {
88
+ const known = Array.from(declaredPaths).join(', ') || '(none)';
89
+ logWarn('plugins', `override.routes["${path}"] in "${pkg}" does not match any declared route. Known paths: ${known}`);
90
+ }
91
+ }
92
+ }
93
+ // Warn on ineffective override shapes
94
+ if (!isSingleRoute && groupRoutes === false && (override?.title || override?.icon)) {
95
+ logWarn('plugins', `override.title / override.icon set for "${pkg}" but groupRoutes is false — group label is not rendered, so these have no effect.`);
96
+ }
97
+ // Resolve route titles/icons
98
+ const resolvedRoutes = declaredRoutes.map((route) => {
99
+ let title = route.title;
100
+ let icon = route.icon;
101
+ // Single-route: plugin-level override applies to the route itself.
102
+ if (isSingleRoute) {
103
+ if (override?.title)
104
+ title = override.title;
105
+ if (override?.icon)
106
+ icon = override.icon;
107
+ }
108
+ // Per-route override always wins over plugin-level.
109
+ const routeOverride = override?.routes?.[route.path];
110
+ if (routeOverride?.title)
111
+ title = routeOverride.title;
112
+ if (routeOverride?.icon)
113
+ icon = routeOverride.icon;
114
+ return { ...route, title, icon };
93
115
  });
116
+ // Resolve plugin-level title/icon — only used as group label for multi-route grouped plugins.
117
+ const resolvedPluginTitle = !isSingleRoute && override?.title ? override.title : candidate.title;
118
+ const resolvedPluginIcon = !isSingleRoute && override?.icon ? override.icon : candidate.icon;
94
119
  return {
95
- title: resolvedTitle,
96
- name: candidate.name,
97
- registryName: candidate.registryName,
120
+ title: resolvedPluginTitle,
121
+ icon: resolvedPluginIcon,
122
+ name,
98
123
  version: candidate.version,
99
124
  router: candidate.router,
100
125
  routes: resolvedRoutes,
@@ -113,13 +138,15 @@ export async function loadPlugins() {
113
138
  const config = await getCMSConfig();
114
139
  const registrations = config.plugins ?? [];
115
140
  const seenPackages = new Set();
116
- const seenRouterKeys = new Set();
141
+ const seenNames = new Set();
117
142
  const loaded = [];
118
143
  for (const registration of registrations) {
119
144
  if (!registration.package) {
120
- console.warn(`[plugins] Plugin registration is missing "package" field.`);
121
- console.warn(`[plugins] Please check your cms.config.ts file.`);
122
- console.warn(`[plugins] Skipping this plugin registration.`);
145
+ logWarn('plugins', 'Plugin registration is missing "package" field — check your cms.config.ts. Skipping.');
146
+ continue;
147
+ }
148
+ if (seenPackages.has(registration.package)) {
149
+ logError('plugins', `Duplicate plugin package "${registration.package}" registered. Skipping duplicate.`);
123
150
  continue;
124
151
  }
125
152
  const mod = await loadPluginModule(registration.package);
@@ -128,30 +155,25 @@ export async function loadPlugins() {
128
155
  const plugin = resolvePluginInstance(registration, mod);
129
156
  if (!plugin)
130
157
  continue;
131
- const routerKey = deriveRouterKey(registration.package);
132
- if (seenPackages.has(registration.package)) {
133
- console.error(`[plugins] Duplicate plugin package "${registration.package}" registered. Skipping duplicate.`);
134
- continue;
135
- }
136
- if (seenRouterKeys.has(routerKey)) {
137
- console.error(`[plugins] Duplicate plugin router key "${routerKey}" derived from "${registration.package}". Skipping.`);
158
+ if (seenNames.has(plugin.name)) {
159
+ logError('plugins', `Duplicate plugin name "${plugin.name}" derived from "${registration.package}". Skipping.`);
138
160
  continue;
139
161
  }
140
162
  seenPackages.add(registration.package);
141
- seenRouterKeys.add(routerKey);
163
+ seenNames.add(plugin.name);
142
164
  if (typeof plugin.init === 'function') {
143
165
  try {
144
166
  await plugin.init({ config: registration });
145
167
  }
146
168
  catch (error) {
147
- console.error(`[plugins] Plugin "${registration.package}" init failed:`, error);
169
+ logError('plugins', `Plugin "${registration.package}" init failed.`, error);
148
170
  }
149
171
  }
150
172
  loaded.push({
151
173
  config: registration,
152
174
  plugin,
153
175
  moduleName: registration.package,
154
- routerKey,
176
+ routerKey: derivePluginRouterKey(registration.package),
155
177
  });
156
178
  }
157
179
  cachedPlugins = loaded;
@@ -172,17 +194,16 @@ export async function getPluginRoutes() {
172
194
  const requireComponent = routes.length > 1;
173
195
  return routes.map((route) => {
174
196
  if (requireComponent && !route.component) {
175
- console.warn(chalk.red(`[plugins] Route "${route.path}" from "${entry.config.package}" should set "component" because the plugin defines multiple routes.`));
197
+ logWarn('plugins', `Route "${route.path}" from "${entry.config.package}" should set "component" because the plugin defines multiple routes.`);
176
198
  }
177
199
  if (!requireComponent && route.component) {
178
- console.warn(chalk.gray(`[plugins] Route "${route.path}" from "${entry.config.package}" should omit "component" and export a default component, because the plugin defines a single route.`));
200
+ logInfo('plugins', `Route "${route.path}" from "${entry.config.package}" should omit "component" and export a default component, because the plugin defines a single route.`);
179
201
  }
180
202
  return {
181
203
  ...route,
182
204
  title: route.title,
183
205
  pluginId: entry.config.package,
184
206
  pluginName: entry.plugin.name,
185
- pluginRegistryName: entry.plugin.registryName,
186
207
  };
187
208
  });
188
209
  });
@@ -192,6 +213,45 @@ export async function findPluginRouteByPath(path) {
192
213
  const routes = await getPluginRoutes();
193
214
  return routes.find((route) => route.path === normalized) ?? null;
194
215
  }
216
+ /**
217
+ * Returns the navigation structure for all loaded plugins, accounting for
218
+ * `groupRoutes` and per-plugin `override` resolution. Single-route plugins emit
219
+ * one leaf. Multi-route plugins emit a group (default) or one leaf per route
220
+ * when `groupRoutes: false`.
221
+ *
222
+ * Pure data — does not filter by privilege. The sidebar layer applies that.
223
+ */
224
+ export async function getPluginNavigation() {
225
+ const loaded = await loadPlugins();
226
+ const items = [];
227
+ for (const entry of loaded) {
228
+ const routes = entry.plugin.routes ?? [];
229
+ if (routes.length === 0)
230
+ continue;
231
+ const isSingleRoute = routes.length === 1;
232
+ const groupRoutes = entry.config.groupRoutes ?? true;
233
+ if (isSingleRoute || !groupRoutes) {
234
+ for (const route of routes) {
235
+ items.push({
236
+ kind: 'leaf',
237
+ title: route.title,
238
+ path: route.path,
239
+ icon: route.icon,
240
+ pluginName: entry.plugin.name,
241
+ });
242
+ }
243
+ continue;
244
+ }
245
+ items.push({
246
+ kind: 'group',
247
+ title: entry.plugin.title,
248
+ icon: entry.plugin.icon,
249
+ pluginName: entry.plugin.name,
250
+ children: routes.map((r) => ({ title: r.title, path: r.path, icon: r.icon })),
251
+ });
252
+ }
253
+ return items;
254
+ }
195
255
  /**
196
256
  * Gets the dashboard override plugin route if configured.
197
257
  * @returns The LoadedPluginRoute for the dashboard override, or null if not configured
@@ -0,0 +1,28 @@
1
+ import type { PluginConfigEntry } from '../core/config/config-loader.js';
2
+ import type { MultilingualString } from '../translations/language-utils.js';
3
+ import type { IconName } from 'lucide-react/dynamic';
4
+ export interface PluginManifestRoute {
5
+ path: string;
6
+ title: MultilingualString;
7
+ icon?: IconName;
8
+ component?: string;
9
+ }
10
+ export interface PluginManifest {
11
+ name: string;
12
+ registryName: string;
13
+ title: MultilingualString;
14
+ routes?: PluginManifestRoute[];
15
+ }
16
+ export interface LoadedPluginManifestRoute extends PluginManifestRoute {
17
+ pluginId: string;
18
+ pluginName: string;
19
+ pluginRegistryName: string;
20
+ }
21
+ export interface LoadedPluginManifest {
22
+ config: PluginConfigEntry;
23
+ manifest: PluginManifest;
24
+ moduleName: string;
25
+ }
26
+ export declare function getPluginManifests(): Promise<LoadedPluginManifest[]>;
27
+ export declare function getPluginRouteManifests(): Promise<LoadedPluginManifestRoute[]>;
28
+ //# sourceMappingURL=manifest.d.ts.map