@arch-cadre/modules 0.0.54 → 0.0.55
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 +1 -0
- package/dist/client/extension-point-client.cjs +1 -35
- 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 +2 -22
- package/dist/client/extension-point-client.mjs.map +1 -0
- package/dist/client/extension-point.cjs +1 -26
- 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 +2 -15
- package/dist/client/extension-point.mjs.map +1 -0
- package/dist/client/widget-area.cjs +1 -30
- 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 +2 -17
- package/dist/client/widget-area.mjs.map +1 -0
- package/dist/index.cjs +1 -43
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +1 -4
- package/dist/server/lifecycle.cjs +1 -217
- 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 +2 -238
- package/dist/server/lifecycle.mjs.map +1 -0
- package/dist/server/manage.cjs +1 -140
- package/dist/server/manage.d.cts +31 -0
- package/dist/server/manage.d.cts.map +1 -0
- package/dist/server/manage.d.mts +31 -0
- package/dist/server/manage.d.mts.map +1 -0
- package/dist/server/manage.mjs +2 -126
- package/dist/server/manage.mjs.map +1 -0
- package/dist/server/registry.cjs +1 -94
- 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 +2 -99
- package/dist/server/registry.mjs.map +1 -0
- package/dist/server/ui.cjs +1 -222
- 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 +2 -218
- package/dist/server/ui.mjs.map +1 -0
- package/dist/server.cjs +1 -60
- package/dist/server.d.cts +6 -0
- package/dist/server.d.mts +6 -0
- package/dist/server.mjs +1 -5
- package/dist/types.cjs +1 -20
- 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 +2 -14
- package/dist/types.mjs.map +1 -0
- package/package.json +6 -6
- package/dist/client/extension-point-client.d.ts +0 -10
- package/dist/client/extension-point.d.ts +0 -9
- package/dist/client/index.cjs +0 -38
- package/dist/client/index.d.ts +0 -3
- package/dist/client/index.mjs +0 -3
- package/dist/client/widget-area.d.ts +0 -9
- package/dist/index.d.ts +0 -4
- package/dist/server/lifecycle.d.ts +0 -5
- package/dist/server/manage.d.ts +0 -12
- package/dist/server/registry.d.ts +0 -1
- package/dist/server/ui.d.ts +0 -12
- package/dist/server.d.ts +0 -5
- package/dist/types.d.ts +0 -113
package/dist/server/registry.cjs
CHANGED
|
@@ -1,94 +1 @@
|
|
|
1
|
-
"use
|
|
2
|
-
"use server";
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.initModules = initModules;
|
|
8
|
-
var _core = require("@arch-cadre/core");
|
|
9
|
-
var _server = require("@arch-cadre/core/server");
|
|
10
|
-
var _drizzleOrm = require("drizzle-orm");
|
|
11
|
-
var _manage = require("./manage.cjs");
|
|
12
|
-
const globalForRegistry = globalThis;
|
|
13
|
-
async function initModules(force = false) {
|
|
14
|
-
if (globalForRegistry.__KRYO_MODULES_INITIALIZED__ && !force) return;
|
|
15
|
-
if (force) {
|
|
16
|
-
console.log("[Kernel:Registry] Forcing re-initialization...");
|
|
17
|
-
_core.eventBus.clearAll();
|
|
18
|
-
}
|
|
19
|
-
console.log("[Kernel:Registry] Synchronizing module listeners...");
|
|
20
|
-
globalForRegistry.__KRYO_MODULES_INITIALIZED__ = true;
|
|
21
|
-
await _core.eventBus.publish("system:modules:init:start", {
|
|
22
|
-
timestamp: Date.now()
|
|
23
|
-
});
|
|
24
|
-
const processedModuleIds = /* @__PURE__ */new Set();
|
|
25
|
-
let hasNewModules = true;
|
|
26
|
-
let iterations = 0;
|
|
27
|
-
const MAX_ITERATIONS = 10;
|
|
28
|
-
while (hasNewModules && iterations < MAX_ITERATIONS) {
|
|
29
|
-
hasNewModules = false;
|
|
30
|
-
iterations++;
|
|
31
|
-
const currentModules = await (0, _manage.getModules)();
|
|
32
|
-
const pendingModules = currentModules.filter(mod => !processedModuleIds.has(mod.id));
|
|
33
|
-
if (pendingModules.length === 0) {
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
for (const mod of pendingModules) {
|
|
37
|
-
try {
|
|
38
|
-
await _server.db.insert(_core.systemModulesTable).values({
|
|
39
|
-
id: mod.id,
|
|
40
|
-
enabled: mod.system ?? false,
|
|
41
|
-
installed: mod.system ?? false,
|
|
42
|
-
system: mod.system ?? false
|
|
43
|
-
}).onConflictDoNothing();
|
|
44
|
-
} catch (_e) {}
|
|
45
|
-
}
|
|
46
|
-
const sortedPending = [...pendingModules].sort((a, b) => a.system === b.system ? 0 : a.system ? -1 : 1);
|
|
47
|
-
for (const mod of sortedPending) {
|
|
48
|
-
processedModuleIds.add(mod.id);
|
|
49
|
-
hasNewModules = true;
|
|
50
|
-
try {
|
|
51
|
-
const enabled = await (0, _manage.isModuleEnabled)(mod.id);
|
|
52
|
-
if (!enabled) continue;
|
|
53
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
54
|
-
if (!instance) {
|
|
55
|
-
console.warn(`[Kernel:Registry] No instance found for module ${mod.id}. Ensure it is registered correctly.`);
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
let dbMod = null;
|
|
59
|
-
try {
|
|
60
|
-
[dbMod] = await _server.db.select().from(_core.systemModulesTable).where((0, _drizzleOrm.eq)(_core.systemModulesTable.id, mod.id));
|
|
61
|
-
} catch (_e) {}
|
|
62
|
-
if (enabled && (!dbMod || !dbMod.installed)) {
|
|
63
|
-
console.log(`[Kernel:Registry] Installing module ${mod.id}...`);
|
|
64
|
-
if (instance.onMigrate) {
|
|
65
|
-
console.log(`[Kernel:Registry] Running onMigrate for ${mod.id}...`);
|
|
66
|
-
await instance.onMigrate();
|
|
67
|
-
}
|
|
68
|
-
console.log(`[Kernel:Registry] Running onEnable for ${mod.id}...`);
|
|
69
|
-
if (instance.onEnable) await instance.onEnable();
|
|
70
|
-
try {
|
|
71
|
-
await _server.db.update(_core.systemModulesTable).set({
|
|
72
|
-
installed: true,
|
|
73
|
-
lastStep: null
|
|
74
|
-
}).where((0, _drizzleOrm.eq)(_core.systemModulesTable.id, mod.id));
|
|
75
|
-
} catch (_e) {}
|
|
76
|
-
}
|
|
77
|
-
if (instance.init) {
|
|
78
|
-
console.log(`[Kernel:Registry] Initializing ${mod.id}...`);
|
|
79
|
-
await instance.init();
|
|
80
|
-
console.log(`[Kernel:Registry] Module ${mod.id} is active.`);
|
|
81
|
-
}
|
|
82
|
-
} catch (error) {
|
|
83
|
-
console.error(`[Kernel:Registry] Critical failure for ${mod.id}:`, error);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (iterations >= MAX_ITERATIONS) {
|
|
88
|
-
console.warn("[Kernel:Registry] Max init iterations reached. Check for circular module registrations.");
|
|
89
|
-
}
|
|
90
|
-
await _core.eventBus.publish("system:modules:init:end", {
|
|
91
|
-
timestamp: Date.now(),
|
|
92
|
-
moduleCount: processedModuleIds.size
|
|
93
|
-
});
|
|
94
|
-
}
|
|
1
|
+
"use server";require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./manage.cjs`);let t=require(`@arch-cadre/core/server`),n=require(`@arch-cadre/core`),r=require(`drizzle-orm`);const i=globalThis;async function a(a=!1){if(i.__KRYO_MODULES_INITIALIZED__&&!a)return;a&&(console.log(`[Kernel:Registry] Forcing re-initialization...`),n.eventBus.clearAll()),console.log(`[Kernel:Registry] Synchronizing module listeners...`),i.__KRYO_MODULES_INITIALIZED__=!0,await n.eventBus.publish(`system:modules:init:start`,{timestamp:Date.now()});let o=new Set,s=!0,c=0;for(;s&&c<10;){s=!1,c++;let i=(await e.getModules()).filter(e=>!o.has(e.id));if(i.length===0)break;for(let e of i)try{await t.db.insert(n.systemModulesTable).values({id:e.id,enabled:e.system??!1,installed:e.system??!1,system:e.system??!1}).onConflictDoNothing()}catch{}let a=[...i].sort((e,t)=>e.system===t.system?0:e.system?-1:1);for(let i of a){o.add(i.id),s=!0;try{let a=await e.isModuleEnabled(i.id);if(!a)continue;let o=await e.getModuleInstance(i.id);if(!o){console.warn(`[Kernel:Registry] No instance found for module ${i.id}. Ensure it is registered correctly.`);continue}let s=null;try{[s]=await t.db.select().from(n.systemModulesTable).where((0,r.eq)(n.systemModulesTable.id,i.id))}catch{}if(a&&(!s||!s.installed)){console.log(`[Kernel:Registry] Installing module ${i.id}...`),o.onMigrate&&(console.log(`[Kernel:Registry] Running onMigrate for ${i.id}...`),await o.onMigrate()),console.log(`[Kernel:Registry] Running onEnable for ${i.id}...`),o.onEnable&&await o.onEnable();try{await t.db.update(n.systemModulesTable).set({installed:!0,lastStep:null}).where((0,r.eq)(n.systemModulesTable.id,i.id))}catch{}}o.init&&(console.log(`[Kernel:Registry] Initializing ${i.id}...`),await o.init(),console.log(`[Kernel:Registry] Module ${i.id} is active.`))}catch(e){console.error(`[Kernel:Registry] Critical failure for ${i.id}:`,e)}}}c>=10&&console.warn(`[Kernel:Registry] Max init iterations reached. Check for circular module registrations.`),await n.eventBus.publish(`system:modules:init:end`,{timestamp:Date.now(),moduleCount:o.size})}exports.initModules=a;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.cts","names":[],"sources":["../../src/server/registry.ts"],"mappings":";iBAWsB,WAAA,CAAY,KAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.mts","names":[],"sources":["../../src/server/registry.ts"],"mappings":";iBAWsB,WAAA,CAAY,KAAA,aAAa,OAAA"}
|
package/dist/server/registry.mjs
CHANGED
|
@@ -1,99 +1,2 @@
|
|
|
1
|
-
"use server";
|
|
2
|
-
|
|
3
|
-
import { db } from "@arch-cadre/core/server";
|
|
4
|
-
import { eq } from "drizzle-orm";
|
|
5
|
-
import { getModuleInstance, getModules, isModuleEnabled } from "./manage.mjs";
|
|
6
|
-
const globalForRegistry = globalThis;
|
|
7
|
-
export async function initModules(force = false) {
|
|
8
|
-
if (globalForRegistry.__KRYO_MODULES_INITIALIZED__ && !force) return;
|
|
9
|
-
if (force) {
|
|
10
|
-
console.log("[Kernel:Registry] Forcing re-initialization...");
|
|
11
|
-
eventBus.clearAll();
|
|
12
|
-
}
|
|
13
|
-
console.log("[Kernel:Registry] Synchronizing module listeners...");
|
|
14
|
-
globalForRegistry.__KRYO_MODULES_INITIALIZED__ = true;
|
|
15
|
-
await eventBus.publish("system:modules:init:start", {
|
|
16
|
-
timestamp: Date.now()
|
|
17
|
-
});
|
|
18
|
-
const processedModuleIds = /* @__PURE__ */ new Set();
|
|
19
|
-
let hasNewModules = true;
|
|
20
|
-
let iterations = 0;
|
|
21
|
-
const MAX_ITERATIONS = 10;
|
|
22
|
-
while (hasNewModules && iterations < MAX_ITERATIONS) {
|
|
23
|
-
hasNewModules = false;
|
|
24
|
-
iterations++;
|
|
25
|
-
const currentModules = await getModules();
|
|
26
|
-
const pendingModules = currentModules.filter(
|
|
27
|
-
(mod) => !processedModuleIds.has(mod.id)
|
|
28
|
-
);
|
|
29
|
-
if (pendingModules.length === 0) {
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
for (const mod of pendingModules) {
|
|
33
|
-
try {
|
|
34
|
-
await db.insert(systemModulesTable).values({
|
|
35
|
-
id: mod.id,
|
|
36
|
-
enabled: mod.system ?? false,
|
|
37
|
-
installed: mod.system ?? false,
|
|
38
|
-
system: mod.system ?? false
|
|
39
|
-
}).onConflictDoNothing();
|
|
40
|
-
} catch (_e) {
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
const sortedPending = [...pendingModules].sort(
|
|
44
|
-
(a, b) => a.system === b.system ? 0 : a.system ? -1 : 1
|
|
45
|
-
);
|
|
46
|
-
for (const mod of sortedPending) {
|
|
47
|
-
processedModuleIds.add(mod.id);
|
|
48
|
-
hasNewModules = true;
|
|
49
|
-
try {
|
|
50
|
-
const enabled = await isModuleEnabled(mod.id);
|
|
51
|
-
if (!enabled) continue;
|
|
52
|
-
const instance = await getModuleInstance(mod.id);
|
|
53
|
-
if (!instance) {
|
|
54
|
-
console.warn(
|
|
55
|
-
`[Kernel:Registry] No instance found for module ${mod.id}. Ensure it is registered correctly.`
|
|
56
|
-
);
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
let dbMod = null;
|
|
60
|
-
try {
|
|
61
|
-
[dbMod] = await db.select().from(systemModulesTable).where(eq(systemModulesTable.id, mod.id));
|
|
62
|
-
} catch (_e) {
|
|
63
|
-
}
|
|
64
|
-
if (enabled && (!dbMod || !dbMod.installed)) {
|
|
65
|
-
console.log(`[Kernel:Registry] Installing module ${mod.id}...`);
|
|
66
|
-
if (instance.onMigrate) {
|
|
67
|
-
console.log(`[Kernel:Registry] Running onMigrate for ${mod.id}...`);
|
|
68
|
-
await instance.onMigrate();
|
|
69
|
-
}
|
|
70
|
-
console.log(`[Kernel:Registry] Running onEnable for ${mod.id}...`);
|
|
71
|
-
if (instance.onEnable) await instance.onEnable();
|
|
72
|
-
try {
|
|
73
|
-
await db.update(systemModulesTable).set({ installed: true, lastStep: null }).where(eq(systemModulesTable.id, mod.id));
|
|
74
|
-
} catch (_e) {
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (instance.init) {
|
|
78
|
-
console.log(`[Kernel:Registry] Initializing ${mod.id}...`);
|
|
79
|
-
await instance.init();
|
|
80
|
-
console.log(`[Kernel:Registry] Module ${mod.id} is active.`);
|
|
81
|
-
}
|
|
82
|
-
} catch (error) {
|
|
83
|
-
console.error(
|
|
84
|
-
`[Kernel:Registry] Critical failure for ${mod.id}:`,
|
|
85
|
-
error
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (iterations >= MAX_ITERATIONS) {
|
|
91
|
-
console.warn(
|
|
92
|
-
"[Kernel:Registry] Max init iterations reached. Check for circular module registrations."
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
await eventBus.publish("system:modules:init:end", {
|
|
96
|
-
timestamp: Date.now(),
|
|
97
|
-
moduleCount: processedModuleIds.size
|
|
98
|
-
});
|
|
99
|
-
}
|
|
1
|
+
"use server";import{getModuleInstance as e,getModules as t,isModuleEnabled as n}from"./manage.mjs";import{db as r}from"@arch-cadre/core/server";import{eventBus as i,systemModulesTable as a}from"@arch-cadre/core";import{eq as o}from"drizzle-orm";const s=globalThis;async function c(c=!1){if(s.__KRYO_MODULES_INITIALIZED__&&!c)return;c&&(console.log(`[Kernel:Registry] Forcing re-initialization...`),i.clearAll()),console.log(`[Kernel:Registry] Synchronizing module listeners...`),s.__KRYO_MODULES_INITIALIZED__=!0,await i.publish(`system:modules:init:start`,{timestamp:Date.now()});let l=new Set,u=!0,d=0;for(;u&&d<10;){u=!1,d++;let i=(await t()).filter(e=>!l.has(e.id));if(i.length===0)break;for(let e of i)try{await r.insert(a).values({id:e.id,enabled:e.system??!1,installed:e.system??!1,system:e.system??!1}).onConflictDoNothing()}catch{}let s=[...i].sort((e,t)=>e.system===t.system?0:e.system?-1:1);for(let t of s){l.add(t.id),u=!0;try{let i=await n(t.id);if(!i)continue;let s=await e(t.id);if(!s){console.warn(`[Kernel:Registry] No instance found for module ${t.id}. Ensure it is registered correctly.`);continue}let c=null;try{[c]=await r.select().from(a).where(o(a.id,t.id))}catch{}if(i&&(!c||!c.installed)){console.log(`[Kernel:Registry] Installing module ${t.id}...`),s.onMigrate&&(console.log(`[Kernel:Registry] Running onMigrate for ${t.id}...`),await s.onMigrate()),console.log(`[Kernel:Registry] Running onEnable for ${t.id}...`),s.onEnable&&await s.onEnable();try{await r.update(a).set({installed:!0,lastStep:null}).where(o(a.id,t.id))}catch{}}s.init&&(console.log(`[Kernel:Registry] Initializing ${t.id}...`),await s.init(),console.log(`[Kernel:Registry] Module ${t.id} is active.`))}catch(e){console.error(`[Kernel:Registry] Critical failure for ${t.id}:`,e)}}}d>=10&&console.warn(`[Kernel:Registry] Max init iterations reached. Check for circular module registrations.`),await i.publish(`system:modules:init:end`,{timestamp:Date.now(),moduleCount:l.size})}export{c as initModules};
|
|
2
|
+
//# sourceMappingURL=registry.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.mjs","names":[],"sources":["../../src/server/registry.ts"],"sourcesContent":["\"use server\";\n\nimport { eventBus, systemModulesTable } from \"@arch-cadre/core\";\nimport { db } from \"@arch-cadre/core/server\";\nimport { eq } from \"drizzle-orm\";\nimport { getModuleInstance, getModules, isModuleEnabled } from \"./manage\";\n\nconst globalForRegistry = globalThis as unknown as {\n __KRYO_MODULES_INITIALIZED__: boolean | undefined;\n};\n\nexport async function initModules(force = false) {\n if (globalForRegistry.__KRYO_MODULES_INITIALIZED__ && !force) return;\n\n if (force) {\n console.log(\"[Kernel:Registry] Forcing re-initialization...\");\n eventBus.clearAll();\n }\n\n console.log(\"[Kernel:Registry] Synchronizing module listeners...\");\n globalForRegistry.__KRYO_MODULES_INITIALIZED__ = true;\n\n await eventBus.publish(\"system:modules:init:start\", {\n timestamp: Date.now(),\n });\n\n const processedModuleIds = new Set<string>();\n let hasNewModules = true;\n let iterations = 0;\n const MAX_ITERATIONS = 10; // Bezpiecznik przed nieskończoną pętlą\n\n while (hasNewModules && iterations < MAX_ITERATIONS) {\n hasNewModules = false;\n iterations++;\n\n // 1. Get ALL currently registered modules (including newly added ones)\n const currentModules = await getModules();\n\n // 2. Filter out modules that are already processed\n const pendingModules = currentModules.filter(\n (mod) => !processedModuleIds.has(mod.id),\n );\n\n if (pendingModules.length === 0) {\n break;\n }\n\n // 3. Synchronize new modules with database\n for (const mod of pendingModules) {\n try {\n await db\n .insert(systemModulesTable)\n .values({\n id: mod.id,\n enabled: mod.system ?? false,\n installed: mod.system ?? false,\n system: mod.system ?? false,\n })\n .onConflictDoNothing();\n } catch (_e) {\n // Table might not exist yet\n }\n }\n\n // 4. Sort pending modules: system modules first\n const sortedPending = [...pendingModules].sort((a, b) =>\n a.system === b.system ? 0 : a.system ? -1 : 1,\n );\n\n // 5. Initialize modules\n for (const mod of sortedPending) {\n // Mark as processed immediately to avoid cycles\n processedModuleIds.add(mod.id);\n hasNewModules = true; // We processed something, so we should check again in case it added more\n\n try {\n const enabled = await isModuleEnabled(mod.id);\n if (!enabled) continue;\n\n const instance = await getModuleInstance(mod.id);\n\n if (!instance) {\n console.warn(\n `[Kernel:Registry] No instance found for module ${mod.id}. Ensure it is registered correctly.`,\n );\n continue;\n }\n\n let dbMod: any = null;\n try {\n [dbMod] = await db\n .select()\n .from(systemModulesTable)\n .where(eq(systemModulesTable.id, mod.id));\n } catch (_e) {\n // Ignore missing table\n }\n\n // onEnable lifecycle\n if (enabled && (!dbMod || !dbMod.installed)) {\n console.log(`[Kernel:Registry] Installing module ${mod.id}...`);\n\n // 1. Run migrations first\n if (instance.onMigrate) {\n console.log(`[Kernel:Registry] Running onMigrate for ${mod.id}...`);\n await instance.onMigrate();\n }\n\n // 2. Run enable hook\n console.log(`[Kernel:Registry] Running onEnable for ${mod.id}...`);\n if (instance.onEnable) await instance.onEnable();\n\n try {\n await db\n .update(systemModulesTable)\n .set({ installed: true, lastStep: null })\n .where(eq(systemModulesTable.id, mod.id));\n } catch (_e) {\n // Ignore missing table\n }\n }\n\n // Operational init\n if (instance.init) {\n console.log(`[Kernel:Registry] Initializing ${mod.id}...`);\n await instance.init();\n console.log(`[Kernel:Registry] Module ${mod.id} is active.`);\n }\n } catch (error) {\n console.error(\n `[Kernel:Registry] Critical failure for ${mod.id}:`,\n error,\n );\n }\n }\n }\n\n if (iterations >= MAX_ITERATIONS) {\n console.warn(\n \"[Kernel:Registry] Max init iterations reached. Check for circular module registrations.\",\n );\n }\n\n await eventBus.publish(\"system:modules:init:end\", {\n timestamp: Date.now(),\n moduleCount: processedModuleIds.size,\n });\n}\n"],"mappings":"qPAOA,MAAM,EAAoB,WAI1B,eAAsB,EAAY,EAAQ,GAAO,CAC/C,GAAI,EAAkB,8BAAgC,CAAC,EAAO,OAE1D,IACF,QAAQ,IAAI,iDAAiD,CAC7D,EAAS,UAAU,EAGrB,QAAQ,IAAI,sDAAsD,CAClE,EAAkB,6BAA+B,GAEjD,MAAM,EAAS,QAAQ,4BAA6B,CAClD,UAAW,KAAK,KAAK,CACtB,CAAC,CAEF,IAAM,EAAqB,IAAI,IAC3B,EAAgB,GAChB,EAAa,EAGjB,KAAO,GAAiB,EAAa,IAAgB,CACnD,EAAgB,GAChB,IAMA,IAAM,GAHiB,MAAM,GAAY,EAGH,OACnC,GAAQ,CAAC,EAAmB,IAAI,EAAI,GAAG,CACzC,CAED,GAAI,EAAe,SAAW,EAC5B,MAIF,IAAK,IAAM,KAAO,EAChB,GAAI,CACF,MAAM,EACH,OAAO,EAAmB,CAC1B,OAAO,CACN,GAAI,EAAI,GACR,QAAS,EAAI,QAAU,GACvB,UAAW,EAAI,QAAU,GACzB,OAAQ,EAAI,QAAU,GACvB,CAAC,CACD,qBAAqB,MACb,EAMf,IAAM,EAAgB,CAAC,GAAG,EAAe,CAAC,MAAM,EAAG,IACjD,EAAE,SAAW,EAAE,OAAS,EAAI,EAAE,OAAS,GAAK,EAC7C,CAGD,IAAK,IAAM,KAAO,EAAe,CAE/B,EAAmB,IAAI,EAAI,GAAG,CAC9B,EAAgB,GAEhB,GAAI,CACF,IAAM,EAAU,MAAM,EAAgB,EAAI,GAAG,CAC7C,GAAI,CAAC,EAAS,SAEd,IAAM,EAAW,MAAM,EAAkB,EAAI,GAAG,CAEhD,GAAI,CAAC,EAAU,CACb,QAAQ,KACN,kDAAkD,EAAI,GAAG,sCAC1D,CACD,SAGF,IAAI,EAAa,KACjB,GAAI,CACF,CAAC,GAAS,MAAM,EACb,QAAQ,CACR,KAAK,EAAmB,CACxB,MAAM,EAAG,EAAmB,GAAI,EAAI,GAAG,CAAC,MAChC,EAKb,GAAI,IAAY,CAAC,GAAS,CAAC,EAAM,WAAY,CAC3C,QAAQ,IAAI,uCAAuC,EAAI,GAAG,KAAK,CAG3D,EAAS,YACX,QAAQ,IAAI,2CAA2C,EAAI,GAAG,KAAK,CACnE,MAAM,EAAS,WAAW,EAI5B,QAAQ,IAAI,0CAA0C,EAAI,GAAG,KAAK,CAC9D,EAAS,UAAU,MAAM,EAAS,UAAU,CAEhD,GAAI,CACF,MAAM,EACH,OAAO,EAAmB,CAC1B,IAAI,CAAE,UAAW,GAAM,SAAU,KAAM,CAAC,CACxC,MAAM,EAAG,EAAmB,GAAI,EAAI,GAAG,CAAC,MAChC,GAMX,EAAS,OACX,QAAQ,IAAI,kCAAkC,EAAI,GAAG,KAAK,CAC1D,MAAM,EAAS,MAAM,CACrB,QAAQ,IAAI,4BAA4B,EAAI,GAAG,aAAa,QAEvD,EAAO,CACd,QAAQ,MACN,0CAA0C,EAAI,GAAG,GACjD,EACD,GAKH,GAAc,IAChB,QAAQ,KACN,0FACD,CAGH,MAAM,EAAS,QAAQ,0BAA2B,CAChD,UAAW,KAAK,KAAK,CACrB,YAAa,EAAmB,KACjC,CAAC"}
|
package/dist/server/ui.cjs
CHANGED
|
@@ -1,222 +1 @@
|
|
|
1
|
-
"use
|
|
2
|
-
"use server";
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.getApiModuleRoutes = getApiModuleRoutes;
|
|
8
|
-
exports.getExtensions = getExtensions;
|
|
9
|
-
exports.getKryoModuleNavigationGrouped = getKryoModuleNavigationGrouped;
|
|
10
|
-
exports.getKryoModuleRoutes = getKryoModuleRoutes;
|
|
11
|
-
exports.getKryoPathPrefix = getKryoPathPrefix;
|
|
12
|
-
exports.getModuleNavigation = getModuleNavigation;
|
|
13
|
-
exports.getModuleNavigationGrouped = getModuleNavigationGrouped;
|
|
14
|
-
exports.getModuleWidgets = getModuleWidgets;
|
|
15
|
-
exports.getPrivateModuleRoutes = getPrivateModuleRoutes;
|
|
16
|
-
exports.getPublicModuleRoutes = getPublicModuleRoutes;
|
|
17
|
-
exports.hasExtension = hasExtension;
|
|
18
|
-
var _server = require("@arch-cadre/core/server");
|
|
19
|
-
var _manage = require("./manage.cjs");
|
|
20
|
-
function filterNavItem(item, userRoles, userPermissions) {
|
|
21
|
-
if (item.roles && item.roles.length > 0) {
|
|
22
|
-
if (!item.roles.some(role => userRoles.includes(role))) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if (item.permissions && item.permissions.length > 0) {
|
|
27
|
-
if (!item.permissions.every(perm => userPermissions.includes(perm))) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (item.items && item.items.length > 0) {
|
|
32
|
-
const filteredSubItems = item.items.map(subItem => filterNavItem(subItem, userRoles, userPermissions)).filter(subItem => subItem !== null);
|
|
33
|
-
return {
|
|
34
|
-
...item,
|
|
35
|
-
items: filteredSubItems
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
return item;
|
|
39
|
-
}
|
|
40
|
-
async function getModuleNavigationGrouped(type) {
|
|
41
|
-
const {
|
|
42
|
-
user
|
|
43
|
-
} = await (0, _server.getCurrentSession)();
|
|
44
|
-
const userRoles = user?.roles || [];
|
|
45
|
-
const userPermissions = user?.permissions || [];
|
|
46
|
-
const modules = await (0, _manage.getModules)();
|
|
47
|
-
const active = modules.filter(m => m.enabled);
|
|
48
|
-
const groups = {};
|
|
49
|
-
for (const mod of active) {
|
|
50
|
-
try {
|
|
51
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
52
|
-
const instanceNav = instance?.navigation?.[type];
|
|
53
|
-
if (instanceNav) {
|
|
54
|
-
for (const [groupName, items] of Object.entries(instanceNav)) {
|
|
55
|
-
if (!groups[groupName]) groups[groupName] = [];
|
|
56
|
-
for (const rawItem of items) {
|
|
57
|
-
const item = filterNavItem(rawItem, userRoles, userPermissions);
|
|
58
|
-
if (item && !groups[groupName].some(existing => existing.url === item.url)) {
|
|
59
|
-
groups[groupName].push(item);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
} catch (_e) {
|
|
65
|
-
console.warn(`[Kernel:UI] Failed to load navigation for module ${mod.id}:`, _e);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return groups;
|
|
69
|
-
}
|
|
70
|
-
async function getKryoPathPrefix() {
|
|
71
|
-
try {
|
|
72
|
-
const config = await (0, _manage.getModuleConfig)("kryo-panel");
|
|
73
|
-
return config?.pathPrefix ?? "/kryo";
|
|
74
|
-
} catch (_e) {
|
|
75
|
-
return "/kryo";
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
async function getKryoModuleNavigationGrouped(type) {
|
|
79
|
-
const groups = await getModuleNavigationGrouped(type);
|
|
80
|
-
const prefix = await getKryoPathPrefix();
|
|
81
|
-
const prefixUrl = url => {
|
|
82
|
-
if (url.startsWith(prefix)) return url;
|
|
83
|
-
return url === "/" ? prefix : `${prefix}${url}`;
|
|
84
|
-
};
|
|
85
|
-
const processItems = items => {
|
|
86
|
-
return items.map(item => ({
|
|
87
|
-
...item,
|
|
88
|
-
url: prefixUrl(item.url),
|
|
89
|
-
items: item.items ? processItems(item.items) : void 0
|
|
90
|
-
}));
|
|
91
|
-
};
|
|
92
|
-
const transformedGroups = {};
|
|
93
|
-
for (const [group, items] of Object.entries(groups)) {
|
|
94
|
-
transformedGroups[group] = processItems(items);
|
|
95
|
-
}
|
|
96
|
-
return transformedGroups;
|
|
97
|
-
}
|
|
98
|
-
async function getModuleNavigation(type) {
|
|
99
|
-
const {
|
|
100
|
-
user
|
|
101
|
-
} = await (0, _server.getCurrentSession)();
|
|
102
|
-
const userRoles = user?.roles || [];
|
|
103
|
-
const userPermissions = user?.permissions || [];
|
|
104
|
-
const modules = await (0, _manage.getModules)();
|
|
105
|
-
const active = modules.filter(m => m.enabled);
|
|
106
|
-
const all = [];
|
|
107
|
-
for (const mod of active) {
|
|
108
|
-
try {
|
|
109
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
110
|
-
if (instance?.navigation?.[type]) {
|
|
111
|
-
const items = instance.navigation[type];
|
|
112
|
-
for (const rawItem of items) {
|
|
113
|
-
const item = filterNavItem(rawItem, userRoles, userPermissions);
|
|
114
|
-
if (item) all.push(item);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
} catch {}
|
|
118
|
-
}
|
|
119
|
-
return all;
|
|
120
|
-
}
|
|
121
|
-
async function getPublicModuleRoutes() {
|
|
122
|
-
const modules = await (0, _manage.getModules)();
|
|
123
|
-
const active = modules.filter(m => m.enabled);
|
|
124
|
-
const allRoutes = [];
|
|
125
|
-
for (const mod of active) {
|
|
126
|
-
try {
|
|
127
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
128
|
-
if (instance?.routes?.public) {
|
|
129
|
-
allRoutes.push(...instance.routes.public);
|
|
130
|
-
}
|
|
131
|
-
} catch {}
|
|
132
|
-
}
|
|
133
|
-
return allRoutes;
|
|
134
|
-
}
|
|
135
|
-
async function getPrivateModuleRoutes() {
|
|
136
|
-
const modules = await (0, _manage.getModules)();
|
|
137
|
-
const active = modules.filter(m => m.enabled);
|
|
138
|
-
const allRoutes = [];
|
|
139
|
-
for (const mod of active) {
|
|
140
|
-
try {
|
|
141
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
142
|
-
if (instance?.routes?.private) {
|
|
143
|
-
allRoutes.push(...instance.routes.private);
|
|
144
|
-
}
|
|
145
|
-
} catch {}
|
|
146
|
-
}
|
|
147
|
-
return allRoutes;
|
|
148
|
-
}
|
|
149
|
-
async function getKryoModuleRoutes() {
|
|
150
|
-
const routes = await getPrivateModuleRoutes();
|
|
151
|
-
const prefix = await getKryoPathPrefix();
|
|
152
|
-
return routes.map(route => ({
|
|
153
|
-
...route,
|
|
154
|
-
path: route.path === "/" ? prefix : `${prefix}${route.path}`
|
|
155
|
-
}));
|
|
156
|
-
}
|
|
157
|
-
async function getApiModuleRoutes() {
|
|
158
|
-
const modules = await (0, _manage.getModules)();
|
|
159
|
-
const active = modules.filter(m => m.enabled);
|
|
160
|
-
const allRoutes = [];
|
|
161
|
-
for (const mod of active) {
|
|
162
|
-
try {
|
|
163
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
164
|
-
if (instance?.routes?.api) {
|
|
165
|
-
allRoutes.push(...instance.routes.api);
|
|
166
|
-
}
|
|
167
|
-
} catch {}
|
|
168
|
-
}
|
|
169
|
-
return allRoutes;
|
|
170
|
-
}
|
|
171
|
-
async function getModuleWidgets(area) {
|
|
172
|
-
const modules = await (0, _manage.getModules)();
|
|
173
|
-
const active = modules.filter(m => m.enabled);
|
|
174
|
-
const widgets = [];
|
|
175
|
-
for (const mod of active) {
|
|
176
|
-
try {
|
|
177
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
178
|
-
if (instance?.widgets) {
|
|
179
|
-
const matching = instance.widgets.filter(w => w.area === area);
|
|
180
|
-
widgets.push(...matching);
|
|
181
|
-
}
|
|
182
|
-
} catch (_e) {}
|
|
183
|
-
}
|
|
184
|
-
return widgets.sort((a, b) => (a.priority || 0) - (b.priority || 0));
|
|
185
|
-
}
|
|
186
|
-
async function getExtensions(targetModule, point) {
|
|
187
|
-
const modules = await (0, _manage.getModules)();
|
|
188
|
-
const active = modules.filter(m => m.enabled);
|
|
189
|
-
const extensions = [];
|
|
190
|
-
for (const mod of active) {
|
|
191
|
-
try {
|
|
192
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
193
|
-
if (instance?.extensions) {
|
|
194
|
-
const matching = instance.extensions.filter(ext => {
|
|
195
|
-
const isTarget = ext.targetModule === targetModule;
|
|
196
|
-
const isPoint = point ? ext.point === point : true;
|
|
197
|
-
return isTarget && isPoint;
|
|
198
|
-
});
|
|
199
|
-
extensions.push(...matching);
|
|
200
|
-
}
|
|
201
|
-
} catch (_e) {}
|
|
202
|
-
}
|
|
203
|
-
return extensions.sort((a, b) => (a.priority || 0) - (b.priority || 0));
|
|
204
|
-
}
|
|
205
|
-
async function hasExtension(targetModule, point) {
|
|
206
|
-
const modules = await (0, _manage.getModules)();
|
|
207
|
-
const active = modules.filter(m => m.enabled);
|
|
208
|
-
for (const mod of active) {
|
|
209
|
-
try {
|
|
210
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
211
|
-
if (instance?.extensions) {
|
|
212
|
-
const matching = instance.extensions.filter(ext => {
|
|
213
|
-
const isTarget = ext.targetModule === targetModule;
|
|
214
|
-
const isPoint = point ? ext.point === point : true;
|
|
215
|
-
return isTarget && isPoint;
|
|
216
|
-
});
|
|
217
|
-
if (matching.length > 0) return true;
|
|
218
|
-
}
|
|
219
|
-
} catch (_e) {}
|
|
220
|
-
}
|
|
221
|
-
return false;
|
|
222
|
-
}
|
|
1
|
+
"use server";require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./manage.cjs`);let t=require(`@arch-cadre/core/server`);function n(e,t,r){if(e.roles&&e.roles.length>0&&!e.roles.some(e=>t.includes(e))||e.permissions&&e.permissions.length>0&&!e.permissions.every(e=>r.includes(e)))return null;if(e.items&&e.items.length>0){let i=e.items.map(e=>n(e,t,r)).filter(e=>e!==null);return{...e,items:i}}return e}async function r(r){let{user:i}=await(0,t.getCurrentSession)(),a=i?.roles||[],o=i?.permissions||[],s=(await e.getModules()).filter(e=>e.enabled),c={};for(let t of s)try{let i=(await e.getModuleInstance(t.id))?.navigation?.[r];if(i)for(let[e,t]of Object.entries(i)){c[e]||(c[e]=[]);for(let r of t){let t=n(r,a,o);t&&!c[e].some(e=>e.url===t.url)&&c[e].push(t)}}}catch(e){console.warn(`[Kernel:UI] Failed to load navigation for module ${t.id}:`,e)}return c}async function i(){try{return(await e.getModuleConfig(`kryo-panel`))?.pathPrefix??`/kryo`}catch{return`/kryo`}}async function a(e){let t=await r(e),n=await i(),a=e=>e.startsWith(n)?e:e===`/`?n:`${n}${e}`,o=e=>e.map(e=>({...e,url:a(e.url),items:e.items?o(e.items):void 0})),s={};for(let[e,n]of Object.entries(t))s[e]=o(n);return s}async function o(r){let{user:i}=await(0,t.getCurrentSession)(),a=i?.roles||[],o=i?.permissions||[],s=(await e.getModules()).filter(e=>e.enabled),c=[];for(let t of s)try{let i=await e.getModuleInstance(t.id);if(i?.navigation?.[r]){let e=i.navigation[r];for(let t of e){let e=n(t,a,o);e&&c.push(e)}}}catch{}return c}async function s(){let t=(await e.getModules()).filter(e=>e.enabled),n=[];for(let r of t)try{let t=await e.getModuleInstance(r.id);t?.routes?.public&&n.push(...t.routes.public)}catch{}return n}async function c(){let t=(await e.getModules()).filter(e=>e.enabled),n=[];for(let r of t)try{let t=await e.getModuleInstance(r.id);t?.routes?.private&&n.push(...t.routes.private)}catch{}return n}async function l(){let e=await c(),t=await i();return e.map(e=>({...e,path:e.path===`/`?t:`${t}${e.path}`}))}async function u(){let t=(await e.getModules()).filter(e=>e.enabled),n=[];for(let r of t)try{let t=await e.getModuleInstance(r.id);t?.routes?.api&&n.push(...t.routes.api)}catch{}return n}async function d(t){let n=(await e.getModules()).filter(e=>e.enabled),r=[];for(let i of n)try{let n=await e.getModuleInstance(i.id);if(n?.widgets){let e=n.widgets.filter(e=>e.area===t);r.push(...e)}}catch{}return r.sort((e,t)=>(e.priority||0)-(t.priority||0))}async function f(t,n){let r=(await e.getModules()).filter(e=>e.enabled),i=[];for(let a of r)try{let r=await e.getModuleInstance(a.id);if(r?.extensions){let e=r.extensions.filter(e=>{let r=e.targetModule===t,i=n?e.point===n:!0;return r&&i});i.push(...e)}}catch{}return i.sort((e,t)=>(e.priority||0)-(t.priority||0))}async function p(t,n){let r=(await e.getModules()).filter(e=>e.enabled);for(let i of r)try{let r=await e.getModuleInstance(i.id);if(r?.extensions&&r.extensions.filter(e=>{let r=e.targetModule===t,i=n?e.point===n:!0;return r&&i}).length>0)return!0}catch{}return!1}exports.getApiModuleRoutes=u,exports.getExtensions=f,exports.getKryoModuleNavigationGrouped=a,exports.getKryoModuleRoutes=l,exports.getKryoPathPrefix=i,exports.getModuleNavigation=o,exports.getModuleNavigationGrouped=r,exports.getModuleWidgets=d,exports.getPrivateModuleRoutes=c,exports.getPublicModuleRoutes=s,exports.hasExtension=p;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ApiRouteDefinition, ModuleExtension, ModuleNavElement, ModuleWidget, PrivateRouteDefinition, PublicRouteDefinition } from "../types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/server/ui.d.ts
|
|
4
|
+
declare function getModuleNavigationGrouped(type: "admin" | "settings"): Promise<Record<string, ModuleNavElement[]>>;
|
|
5
|
+
declare function getKryoPathPrefix(): Promise<string>;
|
|
6
|
+
declare function getKryoModuleNavigationGrouped(type: "admin" | "settings"): Promise<Record<string, ModuleNavElement[]>>;
|
|
7
|
+
declare function getModuleNavigation(type: "public"): Promise<ModuleNavElement[]>;
|
|
8
|
+
declare function getPublicModuleRoutes(): Promise<PublicRouteDefinition[]>;
|
|
9
|
+
declare function getPrivateModuleRoutes(): Promise<PrivateRouteDefinition[]>;
|
|
10
|
+
declare function getKryoModuleRoutes(): Promise<PrivateRouteDefinition[]>;
|
|
11
|
+
declare function getApiModuleRoutes(): Promise<ApiRouteDefinition[]>;
|
|
12
|
+
declare function getModuleWidgets(area: string): Promise<ModuleWidget[]>;
|
|
13
|
+
declare function getExtensions(targetModule: string, point?: string): Promise<ModuleExtension[]>;
|
|
14
|
+
declare function hasExtension(targetModule: string, point?: string): Promise<boolean>;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { getApiModuleRoutes, getExtensions, getKryoModuleNavigationGrouped, getKryoModuleRoutes, getKryoPathPrefix, getModuleNavigation, getModuleNavigationGrouped, getModuleWidgets, getPrivateModuleRoutes, getPublicModuleRoutes, hasExtension };
|
|
17
|
+
//# sourceMappingURL=ui.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.cts","names":[],"sources":["../../src/server/ui.ts"],"mappings":";;;iBAqDsB,0BAAA,CAA2B,IAAA,yBAA0B,OAAA,CAAA,MAAA,SAAA,gBAAA;AAAA,iBAyCrD,iBAAA,CAAA,GAAqB,OAAA;AAAA,iBASrB,8BAAA,CACpB,IAAA,yBAA0B,OAAA,CAAA,MAAA,SAAA,gBAAA;AAAA,iBA4BN,mBAAA,CACpB,IAAA,aACC,OAAA,CAAQ,gBAAA;AAAA,iBAwBW,qBAAA,CAAA,GAAyB,OAAA,CAC7C,qBAAA;AAAA,iBAmBoB,sBAAA,CAAA,GAA0B,OAAA,CAC9C,sBAAA;AAAA,iBAmBoB,mBAAA,CAAA,GAAuB,OAAA,CAAQ,sBAAA;AAAA,iBAU/B,kBAAA,CAAA,GAAsB,OAAA,CAAQ,kBAAA;AAAA,iBAgB9B,gBAAA,CAAiB,IAAA,WAAY,OAAA,CAAA,YAAA;AAAA,iBAqB7B,aAAA,CAAc,YAAA,UAAsB,KAAA,YAAc,OAAA,CAAA,eAAA;AAAA,iBAuBlD,YAAA,CAAa,YAAA,UAAsB,KAAA,YAAc,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ApiRouteDefinition, ModuleExtension, ModuleNavElement, ModuleWidget, PrivateRouteDefinition, PublicRouteDefinition } from "../types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/server/ui.d.ts
|
|
4
|
+
declare function getModuleNavigationGrouped(type: "admin" | "settings"): Promise<Record<string, ModuleNavElement[]>>;
|
|
5
|
+
declare function getKryoPathPrefix(): Promise<string>;
|
|
6
|
+
declare function getKryoModuleNavigationGrouped(type: "admin" | "settings"): Promise<Record<string, ModuleNavElement[]>>;
|
|
7
|
+
declare function getModuleNavigation(type: "public"): Promise<ModuleNavElement[]>;
|
|
8
|
+
declare function getPublicModuleRoutes(): Promise<PublicRouteDefinition[]>;
|
|
9
|
+
declare function getPrivateModuleRoutes(): Promise<PrivateRouteDefinition[]>;
|
|
10
|
+
declare function getKryoModuleRoutes(): Promise<PrivateRouteDefinition[]>;
|
|
11
|
+
declare function getApiModuleRoutes(): Promise<ApiRouteDefinition[]>;
|
|
12
|
+
declare function getModuleWidgets(area: string): Promise<ModuleWidget[]>;
|
|
13
|
+
declare function getExtensions(targetModule: string, point?: string): Promise<ModuleExtension[]>;
|
|
14
|
+
declare function hasExtension(targetModule: string, point?: string): Promise<boolean>;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { getApiModuleRoutes, getExtensions, getKryoModuleNavigationGrouped, getKryoModuleRoutes, getKryoPathPrefix, getModuleNavigation, getModuleNavigationGrouped, getModuleWidgets, getPrivateModuleRoutes, getPublicModuleRoutes, hasExtension };
|
|
17
|
+
//# sourceMappingURL=ui.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.mts","names":[],"sources":["../../src/server/ui.ts"],"mappings":";;;iBAqDsB,0BAAA,CAA2B,IAAA,yBAA0B,OAAA,CAAA,MAAA,SAAA,gBAAA;AAAA,iBAyCrD,iBAAA,CAAA,GAAqB,OAAA;AAAA,iBASrB,8BAAA,CACpB,IAAA,yBAA0B,OAAA,CAAA,MAAA,SAAA,gBAAA;AAAA,iBA4BN,mBAAA,CACpB,IAAA,aACC,OAAA,CAAQ,gBAAA;AAAA,iBAwBW,qBAAA,CAAA,GAAyB,OAAA,CAC7C,qBAAA;AAAA,iBAmBoB,sBAAA,CAAA,GAA0B,OAAA,CAC9C,sBAAA;AAAA,iBAmBoB,mBAAA,CAAA,GAAuB,OAAA,CAAQ,sBAAA;AAAA,iBAU/B,kBAAA,CAAA,GAAsB,OAAA,CAAQ,kBAAA;AAAA,iBAgB9B,gBAAA,CAAiB,IAAA,WAAY,OAAA,CAAA,YAAA;AAAA,iBAqB7B,aAAA,CAAc,YAAA,UAAsB,KAAA,YAAc,OAAA,CAAA,eAAA;AAAA,iBAuBlD,YAAA,CAAa,YAAA,UAAsB,KAAA,YAAc,OAAA"}
|