@arch-cadre/modules 0.0.54 → 0.0.56
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.mjs +1 -22
- package/dist/client/extension-point.cjs +1 -26
- package/dist/client/extension-point.mjs +1 -15
- package/dist/client/widget-area.cjs +1 -30
- package/dist/client/widget-area.mjs +1 -17
- package/dist/index.cjs +1 -43
- package/dist/index.mjs +1 -4
- package/dist/server/lifecycle.cjs +1 -217
- package/dist/server/lifecycle.mjs +1 -238
- package/dist/server/manage.cjs +1 -140
- package/dist/server/manage.mjs +1 -126
- package/dist/server/registry.cjs +1 -94
- package/dist/server/registry.mjs +1 -99
- package/dist/server/ui.cjs +1 -222
- package/dist/server/ui.mjs +1 -218
- package/dist/server.cjs +1 -60
- package/dist/server.mjs +1 -5
- package/dist/types.cjs +1 -20
- package/dist/types.mjs +1 -14
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));exports.__toESM=s;
|
|
@@ -1,35 +1 @@
|
|
|
1
|
-
"use
|
|
2
|
-
"use client";
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.ExtensionPointClient = ExtensionPointClient;
|
|
8
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var React = _react;
|
|
10
|
-
var _ui = require("../server/ui.cjs");
|
|
11
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
-
function ExtensionPointClient({
|
|
14
|
-
module,
|
|
15
|
-
point,
|
|
16
|
-
className,
|
|
17
|
-
props,
|
|
18
|
-
fallback
|
|
19
|
-
}) {
|
|
20
|
-
const [extensions, setExtensions] = (0, _react.useState)([]);
|
|
21
|
-
(0, _react.useEffect)(() => {
|
|
22
|
-
(0, _ui.getExtensions)(module, point).then(setExtensions);
|
|
23
|
-
}, [module, point]);
|
|
24
|
-
if (extensions.length === 0) return fallback || null;
|
|
25
|
-
return /* @__PURE__ */React.createElement("div", {
|
|
26
|
-
className
|
|
27
|
-
}, extensions.map(ext => {
|
|
28
|
-
const Component = ext.component;
|
|
29
|
-
if (!Component) return null;
|
|
30
|
-
return /* @__PURE__ */React.createElement(Component, {
|
|
31
|
-
key: ext.id,
|
|
32
|
-
...props
|
|
33
|
-
});
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
1
|
+
"use client";const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../server/ui.cjs`);let n=require(`react/jsx-runtime`),r=require(`react`);r=e.__toESM(r);function i({module:e,point:i,className:a,props:o,fallback:s}){let[c,l]=(0,r.useState)([]);return(0,r.useEffect)(()=>{t.getExtensions(e,i).then(l)},[e,i]),c.length===0?s||null:(0,n.jsx)(`div`,{className:a,children:c.map(e=>{let t=e.component;return t?(0,n.jsx)(t,{...o},e.id):null})})}exports.ExtensionPointClient=i;
|
|
@@ -1,22 +1 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
4
|
-
import { getExtensions } from "../server/ui.mjs";
|
|
5
|
-
export function ExtensionPointClient({
|
|
6
|
-
module,
|
|
7
|
-
point,
|
|
8
|
-
className,
|
|
9
|
-
props,
|
|
10
|
-
fallback
|
|
11
|
-
}) {
|
|
12
|
-
const [extensions, setExtensions] = useState([]);
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
getExtensions(module, point).then(setExtensions);
|
|
15
|
-
}, [module, point]);
|
|
16
|
-
if (extensions.length === 0) return fallback || null;
|
|
17
|
-
return /* @__PURE__ */ React.createElement("div", { className }, extensions.map((ext) => {
|
|
18
|
-
const Component = ext.component;
|
|
19
|
-
if (!Component) return null;
|
|
20
|
-
return /* @__PURE__ */ React.createElement(Component, { key: ext.id, ...props });
|
|
21
|
-
}));
|
|
22
|
-
}
|
|
1
|
+
"use client";import{getExtensions as e}from"../server/ui.mjs";import{jsx as t}from"react/jsx-runtime";import{useEffect as n,useState as r}from"react";function i({module:i,point:a,className:o,props:s,fallback:c}){let[l,u]=r([]);return n(()=>{e(i,a).then(u)},[i,a]),l.length===0?c||null:t(`div`,{className:o,children:l.map(e=>{let n=e.component;return n?t(n,{...s},e.id):null})})}export{i as ExtensionPointClient};
|
|
@@ -1,26 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.ExtensionPoint = ExtensionPoint;
|
|
7
|
-
var _ui = require("../server/ui.cjs");
|
|
8
|
-
async function ExtensionPoint({
|
|
9
|
-
module,
|
|
10
|
-
point,
|
|
11
|
-
className,
|
|
12
|
-
props,
|
|
13
|
-
fallback
|
|
14
|
-
}) {
|
|
15
|
-
const extensions = await (0, _ui.getExtensions)(module, point);
|
|
16
|
-
if (extensions.length === 0) return fallback || null;
|
|
17
|
-
return /* @__PURE__ */React.createElement("div", {
|
|
18
|
-
className
|
|
19
|
-
}, extensions.map(ext => {
|
|
20
|
-
const Component = ext.component;
|
|
21
|
-
return /* @__PURE__ */React.createElement(Component, {
|
|
22
|
-
key: ext.id,
|
|
23
|
-
...props
|
|
24
|
-
});
|
|
25
|
-
}));
|
|
26
|
-
}
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../server/ui.cjs`);let t=require(`react/jsx-runtime`);async function n({module:n,point:r,className:i,props:a,fallback:o}){let s=await e.getExtensions(n,r);return s.length===0?o||null:(0,t.jsx)(`div`,{className:i,children:s.map(e=>{let n=e.component;return(0,t.jsx)(n,{...a},e.id)})})}exports.ExtensionPoint=n;
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export async function ExtensionPoint({
|
|
3
|
-
module,
|
|
4
|
-
point,
|
|
5
|
-
className,
|
|
6
|
-
props,
|
|
7
|
-
fallback
|
|
8
|
-
}) {
|
|
9
|
-
const extensions = await getExtensions(module, point);
|
|
10
|
-
if (extensions.length === 0) return fallback || null;
|
|
11
|
-
return /* @__PURE__ */ React.createElement("div", { className }, extensions.map((ext) => {
|
|
12
|
-
const Component = ext.component;
|
|
13
|
-
return /* @__PURE__ */ React.createElement(Component, { key: ext.id, ...props });
|
|
14
|
-
}));
|
|
15
|
-
}
|
|
1
|
+
import{getExtensions as e}from"../server/ui.mjs";import{jsx as t}from"react/jsx-runtime";async function n({module:n,point:r,className:i,props:a,fallback:o}){let s=await e(n,r);return s.length===0?o||null:t(`div`,{className:i,children:s.map(e=>{let n=e.component;return t(n,{...a},e.id)})})}export{n as ExtensionPoint};
|
|
@@ -1,30 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.WidgetArea = WidgetArea;
|
|
7
|
-
var React = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _ui = require("../server/ui.cjs");
|
|
9
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
-
async function WidgetArea({
|
|
12
|
-
area,
|
|
13
|
-
className,
|
|
14
|
-
fallback,
|
|
15
|
-
props
|
|
16
|
-
}) {
|
|
17
|
-
const widgets = await (0, _ui.getModuleWidgets)(area);
|
|
18
|
-
if (widgets.length === 0) {
|
|
19
|
-
return fallback || null;
|
|
20
|
-
}
|
|
21
|
-
return /* @__PURE__ */React.createElement("div", {
|
|
22
|
-
className
|
|
23
|
-
}, widgets.map(widget => {
|
|
24
|
-
const Component = widget.component;
|
|
25
|
-
return /* @__PURE__ */React.createElement(Component, {
|
|
26
|
-
key: widget.id,
|
|
27
|
-
...props
|
|
28
|
-
});
|
|
29
|
-
}));
|
|
30
|
-
}
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../server/ui.cjs`);let n=require(`react/jsx-runtime`),r=require(`react`);r=e.__toESM(r);async function i({area:e,className:r,fallback:i,props:a}){let o=await t.getModuleWidgets(e);return o.length===0?i||null:(0,n.jsx)(`div`,{className:r,children:o.map(e=>{let t=e.component;return(0,n.jsx)(t,{...a},e.id)})})}exports.WidgetArea=i;
|
|
@@ -1,17 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { getModuleWidgets } from "../server/ui.mjs";
|
|
3
|
-
export async function WidgetArea({
|
|
4
|
-
area,
|
|
5
|
-
className,
|
|
6
|
-
fallback,
|
|
7
|
-
props
|
|
8
|
-
}) {
|
|
9
|
-
const widgets = await getModuleWidgets(area);
|
|
10
|
-
if (widgets.length === 0) {
|
|
11
|
-
return fallback || null;
|
|
12
|
-
}
|
|
13
|
-
return /* @__PURE__ */ React.createElement("div", { className }, widgets.map((widget) => {
|
|
14
|
-
const Component = widget.component;
|
|
15
|
-
return /* @__PURE__ */ React.createElement(Component, { key: widget.id, ...props });
|
|
16
|
-
}));
|
|
17
|
-
}
|
|
1
|
+
import{getModuleWidgets as e}from"../server/ui.mjs";import{jsx as t}from"react/jsx-runtime";import"react";async function n({area:n,className:r,fallback:i,props:a}){let o=await e(n);return o.length===0?i||null:t(`div`,{className:r,children:o.map(e=>{let n=e.component;return t(n,{...a},e.id)})})}export{n as WidgetArea};
|
package/dist/index.cjs
CHANGED
|
@@ -1,43 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _exportNames = {
|
|
7
|
-
ExtensionPoint: true,
|
|
8
|
-
ExtensionPointClient: true,
|
|
9
|
-
WidgetArea: true
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "ExtensionPoint", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function () {
|
|
14
|
-
return _extensionPoint.ExtensionPoint;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(exports, "ExtensionPointClient", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: function () {
|
|
20
|
-
return _extensionPointClient.ExtensionPointClient;
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(exports, "WidgetArea", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: function () {
|
|
26
|
-
return _widgetArea.WidgetArea;
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
var _extensionPoint = require("./client/extension-point.cjs");
|
|
30
|
-
var _extensionPointClient = require("./client/extension-point-client.cjs");
|
|
31
|
-
var _widgetArea = require("./client/widget-area.cjs");
|
|
32
|
-
var _types = require("./types.cjs");
|
|
33
|
-
Object.keys(_types).forEach(function (key) {
|
|
34
|
-
if (key === "default" || key === "__esModule") return;
|
|
35
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
36
|
-
if (key in exports && exports[key] === _types[key]) return;
|
|
37
|
-
Object.defineProperty(exports, key, {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function () {
|
|
40
|
-
return _types[key];
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
});
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./types.cjs`),t=require(`./client/extension-point.cjs`),n=require(`./client/extension-point-client.cjs`),r=require(`./client/widget-area.cjs`);exports.ExtensionPoint=t.ExtensionPoint,exports.ExtensionPointClient=n.ExtensionPointClient,exports.ModuleManifestSchema=e.ModuleManifestSchema,exports.WidgetArea=r.WidgetArea;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { ExtensionPointClient } from "./client/extension-point-client.mjs";
|
|
3
|
-
export { WidgetArea } from "./client/widget-area.mjs";
|
|
4
|
-
export * from "./types.mjs";
|
|
1
|
+
import{ModuleManifestSchema as e}from"./types.mjs";import{ExtensionPoint as t}from"./client/extension-point.mjs";import{ExtensionPointClient as n}from"./client/extension-point-client.mjs";import{WidgetArea as r}from"./client/widget-area.mjs";export{t as ExtensionPoint,n as ExtensionPointClient,e as ModuleManifestSchema,r as WidgetArea};
|
|
@@ -1,217 +1 @@
|
|
|
1
|
-
"use
|
|
2
|
-
"use server";
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.initOperationalModules = initOperationalModules;
|
|
8
|
-
exports.pushModuleSchema = pushModuleSchema;
|
|
9
|
-
exports.toggleModuleState = toggleModuleState;
|
|
10
|
-
var _nodeChild_process = require("node:child_process");
|
|
11
|
-
var _promises = _interopRequireDefault(require("node:fs/promises"));
|
|
12
|
-
var _nodePath = _interopRequireDefault(require("node:path"));
|
|
13
|
-
var _nodeUtil = require("node:util");
|
|
14
|
-
var _core = require("@arch-cadre/core");
|
|
15
|
-
var _server = require("@arch-cadre/core/server");
|
|
16
|
-
var _drizzleOrm = require("drizzle-orm");
|
|
17
|
-
var _manage = require("./manage.cjs");
|
|
18
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
-
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
|
|
20
|
-
async function updateStep(moduleId, step) {
|
|
21
|
-
console.log(`[Kernel] "${moduleId}" step: ${step}`);
|
|
22
|
-
await _server.db.update(_core.systemModulesTable).set({
|
|
23
|
-
lastStep: step
|
|
24
|
-
}).where((0, _drizzleOrm.eq)(_core.systemModulesTable.id, moduleId));
|
|
25
|
-
}
|
|
26
|
-
async function resolveSchemaPath(moduleId) {
|
|
27
|
-
const root = process.cwd();
|
|
28
|
-
if (moduleId === "@arch-cadre/core" || moduleId === "core") {
|
|
29
|
-
const p = _nodePath.default.join(root, "node_modules", "@kryo", "core", "dist", "server", "database", "schema.cjs");
|
|
30
|
-
try {
|
|
31
|
-
await _promises.default.access(p);
|
|
32
|
-
return p;
|
|
33
|
-
} catch {
|
|
34
|
-
const devP = _nodePath.default.resolve(root, "../../packages/kryo-core/src/server/database/schema.ts");
|
|
35
|
-
try {
|
|
36
|
-
await _promises.default.access(devP);
|
|
37
|
-
return devP;
|
|
38
|
-
} catch {}
|
|
39
|
-
}
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
const cleanId = moduleId.replace("@arch-cadre/", "");
|
|
43
|
-
const possible = [
|
|
44
|
-
// Local module
|
|
45
|
-
_nodePath.default.join(root, "modules", cleanId, "schema.ts"), _nodePath.default.join(root, "modules", moduleId, "schema.ts"),
|
|
46
|
-
// node_modules (installed or symlinked)
|
|
47
|
-
_nodePath.default.join(root, "node_modules", moduleId, "dist", "schema.cjs"), _nodePath.default.join(root, "node_modules", `@arch-cadre/${cleanId}`, "dist", "schema.cjs"), _nodePath.default.join(root, "node_modules", moduleId, "src", "schema.ts"), _nodePath.default.join(root, "node_modules", `@arch-cadre/${cleanId}`, "src", "schema.ts"),
|
|
48
|
-
// Monorepo packages (searching by various naming conventions)
|
|
49
|
-
_nodePath.default.resolve(root, "../../packages", cleanId, "src", "schema.ts"), _nodePath.default.resolve(root, "../../packages", `kryo-${cleanId}`, "src", "schema.ts"), _nodePath.default.resolve(root, "../../packages", cleanId, "schema.ts")];
|
|
50
|
-
for (const p of possible) {
|
|
51
|
-
try {
|
|
52
|
-
await _promises.default.access(p);
|
|
53
|
-
console.log(`[Kernel:Lifecycle] Resolved schema for ${moduleId} at: ${p}`);
|
|
54
|
-
return p;
|
|
55
|
-
} catch {
|
|
56
|
-
console.warn(`[Kernel:Lifecycle] Unresolved schema for ${moduleId} at: ${p}`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
console.warn(`[Kernel:Lifecycle] Could not resolve schema path for: ${moduleId}`);
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
async function pushModuleSchema(moduleId) {
|
|
63
|
-
const execAsync = (0, _nodeUtil.promisify)(_nodeChild_process.exec);
|
|
64
|
-
console.log(`[Kernel:Lifecycle] Targeted sync for module: ${moduleId}`);
|
|
65
|
-
const root = process.cwd();
|
|
66
|
-
const enabledFromDb = await _server.db.select({
|
|
67
|
-
id: _core.systemModulesTable.id
|
|
68
|
-
}).from(_core.systemModulesTable).where((0, _drizzleOrm.eq)(_core.systemModulesTable.enabled, true));
|
|
69
|
-
const activeModuleIds = new Set(enabledFromDb.map(m => m.id));
|
|
70
|
-
activeModuleIds.add("@arch-cadre/core");
|
|
71
|
-
activeModuleIds.add(moduleId);
|
|
72
|
-
const schemaPaths = [];
|
|
73
|
-
for (const id of Array.from(activeModuleIds)) {
|
|
74
|
-
const p = await resolveSchemaPath(id);
|
|
75
|
-
if (p) schemaPaths.push(p);
|
|
76
|
-
}
|
|
77
|
-
if (schemaPaths.length === 0) {
|
|
78
|
-
console.warn(`[Kernel:Lifecycle] No schema paths resolved for ${moduleId}, skipping push.`);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const configPath = _nodePath.default.join(root, "drizzle.config.ts");
|
|
82
|
-
const drizzleKitBin = _nodePath.default.join(root, "node_modules", ".bin", "drizzle-kit");
|
|
83
|
-
const cmd = `"${drizzleKitBin}" push --force --config=${configPath}`;
|
|
84
|
-
console.log(`[Kernel:Lifecycle] Executing isolated migration. Modules: ${Array.from(activeModuleIds).join(", ")}`);
|
|
85
|
-
try {
|
|
86
|
-
await execAsync(cmd, {
|
|
87
|
-
env: {
|
|
88
|
-
...process.env,
|
|
89
|
-
CI: "true",
|
|
90
|
-
// Pass the calculated schemas to our dynamic drizzle.config.ts
|
|
91
|
-
DRIZZLE_SCHEMA_OVERRIDE: schemaPaths.join(",")
|
|
92
|
-
},
|
|
93
|
-
cwd: root
|
|
94
|
-
});
|
|
95
|
-
console.log(`[Kernel:Lifecycle] Isolated migration successful for ${moduleId}`);
|
|
96
|
-
} catch (e) {
|
|
97
|
-
console.error(`[Kernel:Lifecycle] Isolated migration failed for ${moduleId}:`);
|
|
98
|
-
console.error(e.stdout || e.message);
|
|
99
|
-
throw new Error(`Migration failed: ${moduleId}`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
async function performToggle(moduleId, isEnabled) {
|
|
103
|
-
try {
|
|
104
|
-
const allModules = await (0, _manage.getModules)();
|
|
105
|
-
const manifest = allModules.find(m => m.id === moduleId);
|
|
106
|
-
await updateStep(moduleId, "Validate module...");
|
|
107
|
-
await sleep(500);
|
|
108
|
-
if (!manifest) return;
|
|
109
|
-
if (isEnabled) {
|
|
110
|
-
await updateStep(moduleId, "Queued...");
|
|
111
|
-
await sleep(500);
|
|
112
|
-
if (manifest.dependencies?.length) {
|
|
113
|
-
const pendingDeps = manifest.dependencies.filter(depId => {
|
|
114
|
-
const dep = allModules.find(m => m.id === depId);
|
|
115
|
-
return dep && !dep.enabled && !dep.system;
|
|
116
|
-
});
|
|
117
|
-
if (pendingDeps.length > 0) {
|
|
118
|
-
for (const depId of pendingDeps) {
|
|
119
|
-
await updateStep(moduleId, `Waiting for dependency "${depId}"...`);
|
|
120
|
-
await performToggle(depId, true);
|
|
121
|
-
await sleep(500);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
await updateStep(moduleId, "Initializing...");
|
|
126
|
-
await sleep(500);
|
|
127
|
-
await _server.db.update(_core.systemModulesTable).set({
|
|
128
|
-
enabled: true
|
|
129
|
-
}).where((0, _drizzleOrm.eq)(_core.systemModulesTable.id, moduleId));
|
|
130
|
-
const instance = await (0, _manage.getModuleInstance)(moduleId);
|
|
131
|
-
await updateStep(moduleId, "Migrate database...");
|
|
132
|
-
await sleep(500);
|
|
133
|
-
try {
|
|
134
|
-
if (instance?.onMigrate) {
|
|
135
|
-
await instance.onMigrate();
|
|
136
|
-
} else {
|
|
137
|
-
await pushModuleSchema(moduleId);
|
|
138
|
-
}
|
|
139
|
-
await updateStep(moduleId, "Migration successful");
|
|
140
|
-
} catch (e) {
|
|
141
|
-
console.error(`[Kernel] Migration failed for ${moduleId}:`, e);
|
|
142
|
-
await updateStep(moduleId, `Migration failed: ${e.message}`);
|
|
143
|
-
await sleep(500);
|
|
144
|
-
}
|
|
145
|
-
if (instance?.onEnable) {
|
|
146
|
-
await updateStep(moduleId, "Running setup...");
|
|
147
|
-
await sleep(500);
|
|
148
|
-
await instance.onEnable();
|
|
149
|
-
}
|
|
150
|
-
await updateStep(moduleId, "Finishing...");
|
|
151
|
-
await sleep(500);
|
|
152
|
-
await _server.db.update(_core.systemModulesTable).set({
|
|
153
|
-
installed: true,
|
|
154
|
-
lastStep: null
|
|
155
|
-
}).where((0, _drizzleOrm.eq)(_core.systemModulesTable.id, moduleId));
|
|
156
|
-
} else {
|
|
157
|
-
const dependents = allModules.filter(m => {
|
|
158
|
-
if (!m.enabled || m.id === moduleId) return false;
|
|
159
|
-
if (m.dependencies?.includes(moduleId)) return true;
|
|
160
|
-
if (m.extends?.includes(moduleId)) {
|
|
161
|
-
const otherActiveTargets = m.extends.filter(targetId => {
|
|
162
|
-
if (targetId === moduleId) return false;
|
|
163
|
-
const target = allModules.find(mod => mod.id === targetId);
|
|
164
|
-
return target?.enabled;
|
|
165
|
-
});
|
|
166
|
-
return otherActiveTargets.length === 0;
|
|
167
|
-
}
|
|
168
|
-
return false;
|
|
169
|
-
});
|
|
170
|
-
if (dependents.length > 0) {
|
|
171
|
-
await updateStep(moduleId, `Deactivating dependents...`);
|
|
172
|
-
for (const dep of dependents) {
|
|
173
|
-
await performToggle(dep.id, false);
|
|
174
|
-
await sleep(500);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
await updateStep(moduleId, "Deactivating...");
|
|
178
|
-
const instance = await (0, _manage.getModuleInstance)(moduleId);
|
|
179
|
-
if (instance?.onDisable) await instance.onDisable();
|
|
180
|
-
await _server.db.update(_core.systemModulesTable).set({
|
|
181
|
-
enabled: false,
|
|
182
|
-
installed: false
|
|
183
|
-
}).where((0, _drizzleOrm.eq)(_core.systemModulesTable.id, moduleId));
|
|
184
|
-
await updateStep(moduleId, null);
|
|
185
|
-
}
|
|
186
|
-
} catch (e) {
|
|
187
|
-
console.error(`[Kernel] Fatal error for ${moduleId}:`, e);
|
|
188
|
-
await updateStep(moduleId, `Error: ${e.message}`);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
async function toggleModuleState(moduleId, isEnabled) {
|
|
192
|
-
const allModules = await (0, _manage.getModules)();
|
|
193
|
-
const manifest = allModules.find(m => m.id === moduleId);
|
|
194
|
-
if (!manifest) throw new Error(`Module "${moduleId}" not found`);
|
|
195
|
-
if (manifest.enabled === isEnabled) return {
|
|
196
|
-
success: true
|
|
197
|
-
};
|
|
198
|
-
void performToggle(moduleId, isEnabled);
|
|
199
|
-
return {
|
|
200
|
-
success: true
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
async function initOperationalModules() {
|
|
204
|
-
const allModules = await (0, _manage.getModules)();
|
|
205
|
-
for (const mod of allModules) {
|
|
206
|
-
if (mod.enabled) {
|
|
207
|
-
try {
|
|
208
|
-
const instance = await (0, _manage.getModuleInstance)(mod.id);
|
|
209
|
-
if (instance?.init) {
|
|
210
|
-
await instance.init();
|
|
211
|
-
}
|
|
212
|
-
} catch (e) {
|
|
213
|
-
console.error(`[Kernel] Failed to init module ${mod.id}:`, e);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
1
|
+
"use server";const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`./manage.cjs`);let n=require(`@arch-cadre/core/server`),r=require(`node:fs/promises`);r=e.__toESM(r);let i=require(`node:path`);i=e.__toESM(i);let a=require(`@arch-cadre/core`),o=require(`drizzle-orm`),s=require(`node:child_process`),c=require(`node:util`);const l=e=>new Promise(t=>setTimeout(t,e));async function u(e,t){console.log(`[Kernel] "${e}" step: ${t}`),await n.db.update(a.systemModulesTable).set({lastStep:t}).where((0,o.eq)(a.systemModulesTable.id,e))}async function d(e){let t=process.cwd();if(e===`@arch-cadre/core`||e===`core`){let e=i.default.join(t,`node_modules`,`@kryo`,`core`,`dist`,`server`,`database`,`schema.cjs`);try{return await r.default.access(e),e}catch{let e=i.default.resolve(t,`../../packages/kryo-core/src/server/database/schema.ts`);try{return await r.default.access(e),e}catch{}}return null}let n=e.replace(`@arch-cadre/`,``),a=[i.default.join(t,`modules`,n,`schema.ts`),i.default.join(t,`modules`,e,`schema.ts`),i.default.join(t,`node_modules`,e,`dist`,`schema.cjs`),i.default.join(t,`node_modules`,`@arch-cadre/${n}`,`dist`,`schema.cjs`),i.default.join(t,`node_modules`,e,`src`,`schema.ts`),i.default.join(t,`node_modules`,`@arch-cadre/${n}`,`src`,`schema.ts`),i.default.resolve(t,`../../packages`,n,`src`,`schema.ts`),i.default.resolve(t,`../../packages`,`kryo-${n}`,`src`,`schema.ts`),i.default.resolve(t,`../../packages`,n,`schema.ts`)];for(let t of a)try{return await r.default.access(t),console.log(`[Kernel:Lifecycle] Resolved schema for ${e} at: ${t}`),t}catch{console.warn(`[Kernel:Lifecycle] Unresolved schema for ${e} at: ${t}`)}return console.warn(`[Kernel:Lifecycle] Could not resolve schema path for: ${e}`),null}async function f(e){let t=(0,c.promisify)(s.exec);console.log(`[Kernel:Lifecycle] Targeted sync for module: ${e}`);let r=process.cwd(),l=await n.db.select({id:a.systemModulesTable.id}).from(a.systemModulesTable).where((0,o.eq)(a.systemModulesTable.enabled,!0)),u=new Set(l.map(e=>e.id));u.add(`@arch-cadre/core`),u.add(e);let f=[];for(let e of Array.from(u)){let t=await d(e);t&&f.push(t)}if(f.length===0){console.warn(`[Kernel:Lifecycle] No schema paths resolved for ${e}, skipping push.`);return}let p=i.default.join(r,`drizzle.config.ts`),m=`"${i.default.join(r,`node_modules`,`.bin`,`drizzle-kit`)}" push --force --config=${p}`;console.log(`[Kernel:Lifecycle] Executing isolated migration. Modules: ${Array.from(u).join(`, `)}`);try{await t(m,{env:{...process.env,CI:`true`,DRIZZLE_SCHEMA_OVERRIDE:f.join(`,`)},cwd:r}),console.log(`[Kernel:Lifecycle] Isolated migration successful for ${e}`)}catch(t){throw console.error(`[Kernel:Lifecycle] Isolated migration failed for ${e}:`),console.error(t.stdout||t.message),Error(`Migration failed: ${e}`)}}async function p(e,r){try{let i=await t.getModules(),s=i.find(t=>t.id===e);if(await u(e,`Validate module...`),await l(500),!s)return;if(r){if(await u(e,`Queued...`),await l(500),s.dependencies?.length){let t=s.dependencies.filter(e=>{let t=i.find(t=>t.id===e);return t&&!t.enabled&&!t.system});if(t.length>0)for(let n of t)await u(e,`Waiting for dependency "${n}"...`),await p(n,!0),await l(500)}await u(e,`Initializing...`),await l(500),await n.db.update(a.systemModulesTable).set({enabled:!0}).where((0,o.eq)(a.systemModulesTable.id,e));let r=await t.getModuleInstance(e);await u(e,`Migrate database...`),await l(500);try{r?.onMigrate?await r.onMigrate():await f(e),await u(e,`Migration successful`)}catch(t){console.error(`[Kernel] Migration failed for ${e}:`,t),await u(e,`Migration failed: ${t.message}`),await l(500)}r?.onEnable&&(await u(e,`Running setup...`),await l(500),await r.onEnable()),await u(e,`Finishing...`),await l(500),await n.db.update(a.systemModulesTable).set({installed:!0,lastStep:null}).where((0,o.eq)(a.systemModulesTable.id,e))}else{let r=i.filter(t=>!t.enabled||t.id===e?!1:t.dependencies?.includes(e)?!0:t.extends?.includes(e)?t.extends.filter(t=>t===e?!1:i.find(e=>e.id===t)?.enabled).length===0:!1);if(r.length>0){await u(e,`Deactivating dependents...`);for(let e of r)await p(e.id,!1),await l(500)}await u(e,`Deactivating...`);let s=await t.getModuleInstance(e);s?.onDisable&&await s.onDisable(),await n.db.update(a.systemModulesTable).set({enabled:!1,installed:!1}).where((0,o.eq)(a.systemModulesTable.id,e)),await u(e,null)}}catch(t){console.error(`[Kernel] Fatal error for ${e}:`,t),await u(e,`Error: ${t.message}`)}}async function m(e,n){let r=(await t.getModules()).find(t=>t.id===e);if(!r)throw Error(`Module "${e}" not found`);return r.enabled===n||p(e,n),{success:!0}}async function h(){let e=await t.getModules();for(let n of e)if(n.enabled)try{let e=await t.getModuleInstance(n.id);e?.init&&await e.init()}catch(e){console.error(`[Kernel] Failed to init module ${n.id}:`,e)}}exports.initOperationalModules=h,exports.pushModuleSchema=f,exports.toggleModuleState=m;
|