@arch-cadre/modules 0.0.6
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/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/client/extension-point-client.cjs +28 -0
- package/dist/client/extension-point-client.d.cts +20 -0
- package/dist/client/extension-point-client.d.cts.map +1 -0
- package/dist/client/extension-point-client.d.mts +20 -0
- package/dist/client/extension-point-client.d.mts.map +1 -0
- package/dist/client/extension-point-client.mjs +27 -0
- package/dist/client/extension-point-client.mjs.map +1 -0
- package/dist/client/extension-point.cjs +21 -0
- package/dist/client/extension-point.d.cts +21 -0
- package/dist/client/extension-point.d.cts.map +1 -0
- package/dist/client/extension-point.d.mts +21 -0
- package/dist/client/extension-point.d.mts.map +1 -0
- package/dist/client/extension-point.mjs +20 -0
- package/dist/client/extension-point.mjs.map +1 -0
- package/dist/client/widget-area.cjs +21 -0
- package/dist/client/widget-area.d.cts +19 -0
- package/dist/client/widget-area.d.cts.map +1 -0
- package/dist/client/widget-area.d.mts +19 -0
- package/dist/client/widget-area.d.mts.map +1 -0
- package/dist/client/widget-area.mjs +20 -0
- package/dist/client/widget-area.mjs.map +1 -0
- package/dist/index.cjs +22 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +7 -0
- package/dist/server/lifecycle.cjs +192 -0
- package/dist/server/lifecycle.d.cts +9 -0
- package/dist/server/lifecycle.d.cts.map +1 -0
- package/dist/server/lifecycle.d.mts +9 -0
- package/dist/server/lifecycle.d.mts.map +1 -0
- package/dist/server/lifecycle.mjs +190 -0
- package/dist/server/lifecycle.mjs.map +1 -0
- package/dist/server/manage.cjs +123 -0
- package/dist/server/manage.d.cts +35 -0
- package/dist/server/manage.d.cts.map +1 -0
- package/dist/server/manage.d.mts +35 -0
- package/dist/server/manage.d.mts.map +1 -0
- package/dist/server/manage.mjs +117 -0
- package/dist/server/manage.mjs.map +1 -0
- package/dist/server/registry.cjs +86 -0
- package/dist/server/registry.d.cts +5 -0
- package/dist/server/registry.d.cts.map +1 -0
- package/dist/server/registry.d.mts +5 -0
- package/dist/server/registry.d.mts.map +1 -0
- package/dist/server/registry.mjs +86 -0
- package/dist/server/registry.mjs.map +1 -0
- package/dist/server/ui.cjs +188 -0
- package/dist/server/ui.d.cts +17 -0
- package/dist/server/ui.d.cts.map +1 -0
- package/dist/server/ui.d.mts +17 -0
- package/dist/server/ui.d.mts.map +1 -0
- package/dist/server/ui.mjs +178 -0
- package/dist/server/ui.mjs.map +1 -0
- package/dist/server.cjs +30 -0
- package/dist/server.d.cts +6 -0
- package/dist/server.d.mts +6 -0
- package/dist/server.mjs +7 -0
- package/dist/types.cjs +19 -0
- package/dist/types.d.cts +117 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +117 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +19 -0
- package/dist/types.mjs.map +1 -0
- package/package.json +48 -0
package/dist/types.d.cts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { SystemEvent, UserPermission, UserRole } from "@kryo/core";
|
|
2
|
+
import { Metadata } from "next";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
|
|
5
|
+
//#region src/types.d.ts
|
|
6
|
+
type SidebarGroupType = {
|
|
7
|
+
title: string;
|
|
8
|
+
items: SidebarMenuType;
|
|
9
|
+
};
|
|
10
|
+
type SidebarMenuItemType<T = Record<string, string>> = {
|
|
11
|
+
id?: string;
|
|
12
|
+
title: string;
|
|
13
|
+
icon?: string;
|
|
14
|
+
url: string;
|
|
15
|
+
roles?: string[];
|
|
16
|
+
permissions?: string[];
|
|
17
|
+
badge?: string | number | null | undefined;
|
|
18
|
+
badgeVariant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
|
|
19
|
+
} & T;
|
|
20
|
+
type SidebarMenuType = SidebarMenuItemType<{
|
|
21
|
+
items?: SidebarMenuItemType[];
|
|
22
|
+
}>[];
|
|
23
|
+
declare const ModuleManifestSchema: z.ZodObject<{
|
|
24
|
+
id: z.ZodString;
|
|
25
|
+
name: z.ZodString;
|
|
26
|
+
version: z.ZodString;
|
|
27
|
+
description: z.ZodOptional<z.ZodString>;
|
|
28
|
+
dependencies: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
29
|
+
extends: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
30
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
31
|
+
system: z.ZodDefault<z.ZodBoolean>;
|
|
32
|
+
npmDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
|
+
npmDevDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
type ModuleManifest = z.infer<typeof ModuleManifestSchema>;
|
|
36
|
+
interface ModuleExtension {
|
|
37
|
+
id: string;
|
|
38
|
+
targetModule: string;
|
|
39
|
+
point: string;
|
|
40
|
+
component: React.ComponentType<any>;
|
|
41
|
+
priority?: number;
|
|
42
|
+
metadata?: any;
|
|
43
|
+
}
|
|
44
|
+
interface ModulePageProps {
|
|
45
|
+
params: any;
|
|
46
|
+
searchParams: any;
|
|
47
|
+
}
|
|
48
|
+
interface ModuleRouteDefinition {
|
|
49
|
+
id?: string;
|
|
50
|
+
roles?: UserRole[];
|
|
51
|
+
permissions?: UserPermission[];
|
|
52
|
+
component: React.ComponentType<any>;
|
|
53
|
+
layout?: React.ComponentType<{
|
|
54
|
+
children: React.ReactNode;
|
|
55
|
+
}>;
|
|
56
|
+
generateMetadata?: (props: ModulePageProps) => Promise<Metadata> | Metadata;
|
|
57
|
+
}
|
|
58
|
+
interface ModuleWidget {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
area: "dashboard-stats" | "dashboard-main" | "sidebar-bottom" | string;
|
|
62
|
+
component: React.ComponentType<any>;
|
|
63
|
+
priority?: number;
|
|
64
|
+
}
|
|
65
|
+
interface IModule {
|
|
66
|
+
manifest: ModuleManifest;
|
|
67
|
+
schema?: any;
|
|
68
|
+
onMigrate?: () => Promise<void>;
|
|
69
|
+
onEnable?: () => Promise<void>;
|
|
70
|
+
onDisable?: () => Promise<void>;
|
|
71
|
+
init?: () => Promise<void>;
|
|
72
|
+
widgets?: ModuleWidget[];
|
|
73
|
+
extensions?: ModuleExtension[];
|
|
74
|
+
navigation?: ModuleNavigation;
|
|
75
|
+
routes?: {
|
|
76
|
+
public?: PublicRouteDefinition[];
|
|
77
|
+
private?: PrivateRouteDefinition[];
|
|
78
|
+
api?: ApiRouteDefinition[];
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Element menu zarejestrowany przez moduł.
|
|
83
|
+
*/
|
|
84
|
+
type ModuleNavElement = SidebarMenuItemType<{
|
|
85
|
+
items?: SidebarMenuItemType[];
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Mapa nawigacji modułu.
|
|
89
|
+
* Klucz: Nazwa grupy (np. "CMS", "Platform", "Journal")
|
|
90
|
+
* Vartość: Tablica elementów menu trafiających do tej grupy.
|
|
91
|
+
*/
|
|
92
|
+
type ModuleNavigationGroupMap = Record<string, ModuleNavElement[]>;
|
|
93
|
+
interface PublicRouteDefinition extends ModuleRouteDefinition {
|
|
94
|
+
path: string;
|
|
95
|
+
auth?: boolean;
|
|
96
|
+
}
|
|
97
|
+
interface PrivateRouteDefinition extends ModuleRouteDefinition {
|
|
98
|
+
path: string;
|
|
99
|
+
auth?: boolean;
|
|
100
|
+
}
|
|
101
|
+
interface ApiRouteDefinition {
|
|
102
|
+
id?: string;
|
|
103
|
+
path: string;
|
|
104
|
+
handler: (request: Request, context: any) => Promise<Response> | Response;
|
|
105
|
+
auth?: boolean;
|
|
106
|
+
roles?: UserRole[];
|
|
107
|
+
permissions?: UserPermission[];
|
|
108
|
+
}
|
|
109
|
+
interface ModuleNavigation {
|
|
110
|
+
public?: ModuleNavElement[];
|
|
111
|
+
admin?: ModuleNavigationGroupMap;
|
|
112
|
+
settings?: ModuleNavigationGroupMap;
|
|
113
|
+
globalRoutes?: (PublicRouteDefinition | PrivateRouteDefinition | ApiRouteDefinition)[];
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
export { ApiRouteDefinition, IModule, ModuleExtension, ModuleManifest, ModuleManifestSchema, ModuleNavElement, ModuleNavigation, ModuleNavigationGroupMap, ModulePageProps, ModuleRouteDefinition, ModuleWidget, PrivateRouteDefinition, PublicRouteDefinition, SidebarGroupType, SidebarMenuItemType, SidebarMenuType, type SystemEvent };
|
|
117
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;KAMY,gBAAA;EACV,KAAA;EACA,KAAA,EAAO,eAAA;AAAA;AAAA,KAGG,mBAAA,KAAwB,MAAA;EAClC,EAAA;EACA,KAAA;EACA,IAAA;EACA,GAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA;EACA,YAAA;AAAA,IAOE,CAAA;AAAA,KAEQ,eAAA,GAAkB,mBAAA;EAC5B,KAAA,GAAQ,mBAAA;AAAA;AAAA,cAGG,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;KAarB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,UAI3B,eAAA;EACf,EAAA;EACA,YAAA;EACA,KAAA;EACA,SAAA,EAAW,KAAA,CAAM,aAAA;EACjB,QAAA;EACA,QAAA;AAAA;AAAA,UAGe,eAAA;EACf,MAAA;EACA,YAAA;AAAA;AAAA,UAGe,qBAAA;EACf,EAAA;EACA,KAAA,GAAQ,QAAA;EACR,WAAA,GAAc,cAAA;EACd,SAAA,EAAW,KAAA,CAAM,aAAA;EACjB,MAAA,GAAS,KAAA,CAAM,aAAA;IAAgB,QAAA,EAAU,KAAA,CAAM,SAAA;EAAA;EAC/C,gBAAA,IAAoB,KAAA,EAAO,eAAA,KAAoB,OAAA,CAAQ,QAAA,IAAY,QAAA;AAAA;AAAA,UAKpD,YAAA;EACf,EAAA;EACA,IAAA;EACA,IAAA;EACA,SAAA,EAAW,KAAA,CAAM,aAAA;EACjB,QAAA;AAAA;AAAA,UAGe,OAAA;EACf,QAAA,EAAU,cAAA;EACV,MAAA;EACA,SAAA,SAAkB,OAAA;EAClB,QAAA,SAAiB,OAAA;EACjB,SAAA,SAAkB,OAAA;EAClB,IAAA,SAAa,OAAA;EACb,OAAA,GAAU,YAAA;EACV,UAAA,GAAa,eAAA;EACb,UAAA,GAAa,gBAAA;EACb,MAAA;IACE,MAAA,GAAS,qBAAA;IACT,OAAA,GAAU,sBAAA;IACV,GAAA,GAAM,kBAAA;EAAA;AAAA;;;;KASE,gBAAA,GAAmB,mBAAA;EAC7B,KAAA,GAAQ,mBAAA;AAAA;;;;;;KAQE,wBAAA,GAA2B,MAAA,SAAe,gBAAA;AAAA,UAErC,qBAAA,SAA8B,qBAAA;EAC7C,IAAA;EACA,IAAA;AAAA;AAAA,UAGe,sBAAA,SAA+B,qBAAA;EAC9C,IAAA;EACA,IAAA;AAAA;AAAA,UAGe,kBAAA;EACf,EAAA;EACA,IAAA;EACA,OAAA,GAAU,OAAA,EAAS,OAAA,EAAS,OAAA,UAAiB,OAAA,CAAQ,QAAA,IAAY,QAAA;EACjE,IAAA;EACA,KAAA,GAAQ,QAAA;EACR,WAAA,GAAc,cAAA;AAAA;AAAA,UAGC,gBAAA;EACf,MAAA,GAAS,gBAAA;EACT,KAAA,GAAQ,wBAAA;EACR,QAAA,GAAW,wBAAA;EACX,YAAA,IACI,qBAAA,GACA,sBAAA,GACA,kBAAA;AAAA"}
|
package/dist/types.d.mts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { SystemEvent, UserPermission, UserRole } from "@kryo/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { Metadata } from "next";
|
|
4
|
+
|
|
5
|
+
//#region src/types.d.ts
|
|
6
|
+
type SidebarGroupType = {
|
|
7
|
+
title: string;
|
|
8
|
+
items: SidebarMenuType;
|
|
9
|
+
};
|
|
10
|
+
type SidebarMenuItemType<T = Record<string, string>> = {
|
|
11
|
+
id?: string;
|
|
12
|
+
title: string;
|
|
13
|
+
icon?: string;
|
|
14
|
+
url: string;
|
|
15
|
+
roles?: string[];
|
|
16
|
+
permissions?: string[];
|
|
17
|
+
badge?: string | number | null | undefined;
|
|
18
|
+
badgeVariant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
|
|
19
|
+
} & T;
|
|
20
|
+
type SidebarMenuType = SidebarMenuItemType<{
|
|
21
|
+
items?: SidebarMenuItemType[];
|
|
22
|
+
}>[];
|
|
23
|
+
declare const ModuleManifestSchema: z.ZodObject<{
|
|
24
|
+
id: z.ZodString;
|
|
25
|
+
name: z.ZodString;
|
|
26
|
+
version: z.ZodString;
|
|
27
|
+
description: z.ZodOptional<z.ZodString>;
|
|
28
|
+
dependencies: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
29
|
+
extends: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
30
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
31
|
+
system: z.ZodDefault<z.ZodBoolean>;
|
|
32
|
+
npmDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
|
+
npmDevDependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
type ModuleManifest = z.infer<typeof ModuleManifestSchema>;
|
|
36
|
+
interface ModuleExtension {
|
|
37
|
+
id: string;
|
|
38
|
+
targetModule: string;
|
|
39
|
+
point: string;
|
|
40
|
+
component: React.ComponentType<any>;
|
|
41
|
+
priority?: number;
|
|
42
|
+
metadata?: any;
|
|
43
|
+
}
|
|
44
|
+
interface ModulePageProps {
|
|
45
|
+
params: any;
|
|
46
|
+
searchParams: any;
|
|
47
|
+
}
|
|
48
|
+
interface ModuleRouteDefinition {
|
|
49
|
+
id?: string;
|
|
50
|
+
roles?: UserRole[];
|
|
51
|
+
permissions?: UserPermission[];
|
|
52
|
+
component: React.ComponentType<any>;
|
|
53
|
+
layout?: React.ComponentType<{
|
|
54
|
+
children: React.ReactNode;
|
|
55
|
+
}>;
|
|
56
|
+
generateMetadata?: (props: ModulePageProps) => Promise<Metadata> | Metadata;
|
|
57
|
+
}
|
|
58
|
+
interface ModuleWidget {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
area: "dashboard-stats" | "dashboard-main" | "sidebar-bottom" | string;
|
|
62
|
+
component: React.ComponentType<any>;
|
|
63
|
+
priority?: number;
|
|
64
|
+
}
|
|
65
|
+
interface IModule {
|
|
66
|
+
manifest: ModuleManifest;
|
|
67
|
+
schema?: any;
|
|
68
|
+
onMigrate?: () => Promise<void>;
|
|
69
|
+
onEnable?: () => Promise<void>;
|
|
70
|
+
onDisable?: () => Promise<void>;
|
|
71
|
+
init?: () => Promise<void>;
|
|
72
|
+
widgets?: ModuleWidget[];
|
|
73
|
+
extensions?: ModuleExtension[];
|
|
74
|
+
navigation?: ModuleNavigation;
|
|
75
|
+
routes?: {
|
|
76
|
+
public?: PublicRouteDefinition[];
|
|
77
|
+
private?: PrivateRouteDefinition[];
|
|
78
|
+
api?: ApiRouteDefinition[];
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Element menu zarejestrowany przez moduł.
|
|
83
|
+
*/
|
|
84
|
+
type ModuleNavElement = SidebarMenuItemType<{
|
|
85
|
+
items?: SidebarMenuItemType[];
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Mapa nawigacji modułu.
|
|
89
|
+
* Klucz: Nazwa grupy (np. "CMS", "Platform", "Journal")
|
|
90
|
+
* Vartość: Tablica elementów menu trafiających do tej grupy.
|
|
91
|
+
*/
|
|
92
|
+
type ModuleNavigationGroupMap = Record<string, ModuleNavElement[]>;
|
|
93
|
+
interface PublicRouteDefinition extends ModuleRouteDefinition {
|
|
94
|
+
path: string;
|
|
95
|
+
auth?: boolean;
|
|
96
|
+
}
|
|
97
|
+
interface PrivateRouteDefinition extends ModuleRouteDefinition {
|
|
98
|
+
path: string;
|
|
99
|
+
auth?: boolean;
|
|
100
|
+
}
|
|
101
|
+
interface ApiRouteDefinition {
|
|
102
|
+
id?: string;
|
|
103
|
+
path: string;
|
|
104
|
+
handler: (request: Request, context: any) => Promise<Response> | Response;
|
|
105
|
+
auth?: boolean;
|
|
106
|
+
roles?: UserRole[];
|
|
107
|
+
permissions?: UserPermission[];
|
|
108
|
+
}
|
|
109
|
+
interface ModuleNavigation {
|
|
110
|
+
public?: ModuleNavElement[];
|
|
111
|
+
admin?: ModuleNavigationGroupMap;
|
|
112
|
+
settings?: ModuleNavigationGroupMap;
|
|
113
|
+
globalRoutes?: (PublicRouteDefinition | PrivateRouteDefinition | ApiRouteDefinition)[];
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
export { ApiRouteDefinition, IModule, ModuleExtension, ModuleManifest, ModuleManifestSchema, ModuleNavElement, ModuleNavigation, ModuleNavigationGroupMap, ModulePageProps, ModuleRouteDefinition, ModuleWidget, PrivateRouteDefinition, PublicRouteDefinition, SidebarGroupType, SidebarMenuItemType, SidebarMenuType, type SystemEvent };
|
|
117
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;KAMY,gBAAA;EACV,KAAA;EACA,KAAA,EAAO,eAAA;AAAA;AAAA,KAGG,mBAAA,KAAwB,MAAA;EAClC,EAAA;EACA,KAAA;EACA,IAAA;EACA,GAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA;EACA,YAAA;AAAA,IAOE,CAAA;AAAA,KAEQ,eAAA,GAAkB,mBAAA;EAC5B,KAAA,GAAQ,mBAAA;AAAA;AAAA,cAGG,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;KAarB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,UAI3B,eAAA;EACf,EAAA;EACA,YAAA;EACA,KAAA;EACA,SAAA,EAAW,KAAA,CAAM,aAAA;EACjB,QAAA;EACA,QAAA;AAAA;AAAA,UAGe,eAAA;EACf,MAAA;EACA,YAAA;AAAA;AAAA,UAGe,qBAAA;EACf,EAAA;EACA,KAAA,GAAQ,QAAA;EACR,WAAA,GAAc,cAAA;EACd,SAAA,EAAW,KAAA,CAAM,aAAA;EACjB,MAAA,GAAS,KAAA,CAAM,aAAA;IAAgB,QAAA,EAAU,KAAA,CAAM,SAAA;EAAA;EAC/C,gBAAA,IAAoB,KAAA,EAAO,eAAA,KAAoB,OAAA,CAAQ,QAAA,IAAY,QAAA;AAAA;AAAA,UAKpD,YAAA;EACf,EAAA;EACA,IAAA;EACA,IAAA;EACA,SAAA,EAAW,KAAA,CAAM,aAAA;EACjB,QAAA;AAAA;AAAA,UAGe,OAAA;EACf,QAAA,EAAU,cAAA;EACV,MAAA;EACA,SAAA,SAAkB,OAAA;EAClB,QAAA,SAAiB,OAAA;EACjB,SAAA,SAAkB,OAAA;EAClB,IAAA,SAAa,OAAA;EACb,OAAA,GAAU,YAAA;EACV,UAAA,GAAa,eAAA;EACb,UAAA,GAAa,gBAAA;EACb,MAAA;IACE,MAAA,GAAS,qBAAA;IACT,OAAA,GAAU,sBAAA;IACV,GAAA,GAAM,kBAAA;EAAA;AAAA;;;;KASE,gBAAA,GAAmB,mBAAA;EAC7B,KAAA,GAAQ,mBAAA;AAAA;;;;;;KAQE,wBAAA,GAA2B,MAAA,SAAe,gBAAA;AAAA,UAErC,qBAAA,SAA8B,qBAAA;EAC7C,IAAA;EACA,IAAA;AAAA;AAAA,UAGe,sBAAA,SAA+B,qBAAA;EAC9C,IAAA;EACA,IAAA;AAAA;AAAA,UAGe,kBAAA;EACf,EAAA;EACA,IAAA;EACA,OAAA,GAAU,OAAA,EAAS,OAAA,EAAS,OAAA,UAAiB,OAAA,CAAQ,QAAA,IAAY,QAAA;EACjE,IAAA;EACA,KAAA,GAAQ,QAAA;EACR,WAAA,GAAc,cAAA;AAAA;AAAA,UAGC,gBAAA;EACf,MAAA,GAAS,gBAAA;EACT,KAAA,GAAQ,wBAAA;EACR,QAAA,GAAW,wBAAA;EACX,YAAA,IACI,qBAAA,GACA,sBAAA,GACA,kBAAA;AAAA"}
|
package/dist/types.mjs
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/types.ts
|
|
4
|
+
const ModuleManifestSchema = z.object({
|
|
5
|
+
id: z.string(),
|
|
6
|
+
name: z.string(),
|
|
7
|
+
version: z.string(),
|
|
8
|
+
description: z.string().optional(),
|
|
9
|
+
dependencies: z.array(z.string()).default([]),
|
|
10
|
+
extends: z.array(z.string()).default([]),
|
|
11
|
+
enabled: z.boolean().default(true),
|
|
12
|
+
system: z.boolean().default(false),
|
|
13
|
+
npmDependencies: z.array(z.string()).optional(),
|
|
14
|
+
npmDevDependencies: z.array(z.string()).optional()
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { ModuleManifestSchema };
|
|
19
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { SystemEvent, UserPermission, UserRole } from \"@kryo/core\";\nexport type { SystemEvent };\n\nimport type { Metadata } from \"next\";\nimport { z } from \"zod\";\n// import type { SidebarMenuItemType } from \"@kryo/core\";\nexport type SidebarGroupType = {\n title: string;\n items: SidebarMenuType;\n};\n\nexport type SidebarMenuItemType<T = Record<string, string>> = {\n id?: string;\n title: string;\n icon?: string;\n url: string;\n roles?: string[];\n permissions?: string[];\n badge?: string | number | null | undefined;\n badgeVariant?:\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | null\n | undefined;\n} & T;\n\nexport type SidebarMenuType = SidebarMenuItemType<{\n items?: SidebarMenuItemType[];\n}>[];\n\nexport const ModuleManifestSchema = z.object({\n id: z.string(),\n name: z.string(),\n version: z.string(),\n description: z.string().optional(),\n dependencies: z.array(z.string()).default([]),\n extends: z.array(z.string()).default([]), // NOWE: Lista modułów, które ten moduł rozszerza\n enabled: z.boolean().default(true),\n system: z.boolean().default(false),\n npmDependencies: z.array(z.string()).optional(),\n npmDevDependencies: z.array(z.string()).optional(),\n});\n\nexport type ModuleManifest = z.infer<typeof ModuleManifestSchema>;\n\n// --- NOWA STRUKTURA ROZSZERZEŃ ---\n\nexport interface ModuleExtension {\n id: string;\n targetModule: string; // ID modułu rozszerzanego\n point: string; // Miejsce rozszerzenia (np. \"post-editor-sidebar\")\n component: React.ComponentType<any>;\n priority?: number;\n metadata?: any;\n}\n\nexport interface ModulePageProps {\n params: any;\n searchParams: any;\n}\n\nexport interface ModuleRouteDefinition {\n id?: string;\n roles?: UserRole[];\n permissions?: UserPermission[];\n component: React.ComponentType<any>;\n layout?: React.ComponentType<{ children: React.ReactNode }>;\n generateMetadata?: (props: ModulePageProps) => Promise<Metadata> | Metadata;\n}\n\n// --- NOWA STRUKTURA WIDGETÓW ---\n\nexport interface ModuleWidget {\n id: string;\n name: string;\n area: \"dashboard-stats\" | \"dashboard-main\" | \"sidebar-bottom\" | string;\n component: React.ComponentType<any>;\n priority?: number;\n}\n\nexport interface IModule {\n manifest: ModuleManifest;\n schema?: any; // NOWE: Eksportowany schemat Drizzle\n onMigrate?: () => Promise<void>; // NOWE: Hook do migracji specyficznych dla modułu\n onEnable?: () => Promise<void>;\n onDisable?: () => Promise<void>;\n init?: () => Promise<void>;\n widgets?: ModuleWidget[];\n extensions?: ModuleExtension[]; // NOWE: Rejestracja rozszerzeń innych modułów\n navigation?: ModuleNavigation;\n routes?: {\n public?: PublicRouteDefinition[];\n private?: PrivateRouteDefinition[];\n api?: ApiRouteDefinition[];\n };\n}\n\n// --- Reszta bez zmian ---\n\n/**\n * Element menu zarejestrowany przez moduł.\n */\nexport type ModuleNavElement = SidebarMenuItemType<{\n items?: SidebarMenuItemType[];\n}>;\n\n/**\n * Mapa nawigacji modułu.\n * Klucz: Nazwa grupy (np. \"CMS\", \"Platform\", \"Journal\")\n * Vartość: Tablica elementów menu trafiających do tej grupy.\n */\nexport type ModuleNavigationGroupMap = Record<string, ModuleNavElement[]>;\n\nexport interface PublicRouteDefinition extends ModuleRouteDefinition {\n path: string; // np. \"/blog/:slug\"\n auth?: boolean;\n}\n\nexport interface PrivateRouteDefinition extends ModuleRouteDefinition {\n path: string; // np. \"/settings\" ale w systemie działa to jako \"/kryo/settings\"\n auth?: boolean;\n}\n\nexport interface ApiRouteDefinition {\n id?: string;\n path: string; // np. \"/api/my-module/data\"\n handler: (request: Request, context: any) => Promise<Response> | Response;\n auth?: boolean;\n roles?: UserRole[];\n permissions?: UserPermission[];\n}\n\nexport interface ModuleNavigation {\n public?: ModuleNavElement[];\n admin?: ModuleNavigationGroupMap;\n settings?: ModuleNavigationGroupMap;\n globalRoutes?: (\n | PublicRouteDefinition\n | PrivateRouteDefinition\n | ApiRouteDefinition\n )[];\n}\n"],"mappings":";;;AAgCA,MAAa,uBAAuB,EAAE,OAAO;CAC3C,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ;CACnB,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CAC7C,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CACxC,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ,MAAM;CAClC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CAC/C,oBAAoB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACnD,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@arch-cadre/modules",
|
|
3
|
+
"version": "0.0.6",
|
|
4
|
+
"description": "Core Modules for Kryo framework",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"types": "./dist/index.d.cts",
|
|
7
|
+
"main": "./dist/index.cjs",
|
|
8
|
+
"module": "./dist/index.mjs",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.cjs"
|
|
13
|
+
},
|
|
14
|
+
"./server": {
|
|
15
|
+
"import": "./dist/server.mjs",
|
|
16
|
+
"require": "./dist/server.cjs"
|
|
17
|
+
},
|
|
18
|
+
"./package.json": "./package.json"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"release": "npm publish --access public --no-git-checks",
|
|
25
|
+
"dev": "tsdown --watch",
|
|
26
|
+
"build": "tsdown"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@arch-cadre/core": "^0.0.6",
|
|
30
|
+
"server-only": "^0.0.1",
|
|
31
|
+
"zod": "^4.1.12"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"@arch-cadre/core": "^0.0.6",
|
|
35
|
+
"drizzle-orm": "1.0.0-beta.6-4414a19",
|
|
36
|
+
"next": ">=15.0.0",
|
|
37
|
+
"react": "^19.0.0",
|
|
38
|
+
"react-dom": "^19.0.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@arch-cadre/core": "^0.0.6",
|
|
42
|
+
"@biomejs/biome": "2.3.8",
|
|
43
|
+
"@types/react": "^19",
|
|
44
|
+
"@types/react-dom": "^19",
|
|
45
|
+
"tsdown": "^0.20.3",
|
|
46
|
+
"typescript": "^5"
|
|
47
|
+
}
|
|
48
|
+
}
|