@donartcha/openlag 0.1.2 → 0.1.3

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 (62) hide show
  1. package/dist/assets/{arc-BJpiUvSh.js → arc-CQVyn5E3.js} +1 -1
  2. package/dist/assets/{architectureDiagram-3BPJPVTR-Dc7Q7uiQ.js → architectureDiagram-3BPJPVTR-BK7dvXUP.js} +1 -1
  3. package/dist/assets/{blockDiagram-GPEHLZMM-dYx8zJHa.js → blockDiagram-GPEHLZMM-CZACUlID.js} +1 -1
  4. package/dist/assets/{c4Diagram-AAUBKEIU-DEW1mepT.js → c4Diagram-AAUBKEIU-BaIdnoVu.js} +1 -1
  5. package/dist/assets/channel-cdJUve2-.js +1 -0
  6. package/dist/assets/{chunk-2J33WTMH-DI5V_htM.js → chunk-2J33WTMH-I6mjZe22.js} +1 -1
  7. package/dist/assets/{chunk-4BX2VUAB-Dpc1Oo7a.js → chunk-4BX2VUAB-Bni2aQg6.js} +1 -1
  8. package/dist/assets/{chunk-55IACEB6-BVCvy2y7.js → chunk-55IACEB6-BVvD3auX.js} +1 -1
  9. package/dist/assets/{chunk-727SXJPM-CiQJMcWK.js → chunk-727SXJPM-BvRYlYfC.js} +1 -1
  10. package/dist/assets/{chunk-AQP2D5EJ-CfIJf1-T.js → chunk-AQP2D5EJ-DODUUYy0.js} +1 -1
  11. package/dist/assets/{chunk-FMBD7UC4-CSSwZdAo.js → chunk-FMBD7UC4-CSnOrzk-.js} +1 -1
  12. package/dist/assets/{chunk-ND2GUHAM-CpsO12XK.js → chunk-ND2GUHAM-Cwj-8YlS.js} +1 -1
  13. package/dist/assets/{chunk-QZHKN3VN-CWuoRpFf.js → chunk-QZHKN3VN-DvvnV7FS.js} +1 -1
  14. package/dist/assets/classDiagram-4FO5ZUOK-cojzztnL.js +1 -0
  15. package/dist/assets/classDiagram-v2-Q7XG4LA2-cojzztnL.js +1 -0
  16. package/dist/assets/{cose-bilkent-S5V4N54A-COfB4T0K.js → cose-bilkent-S5V4N54A-CpzWWErA.js} +1 -1
  17. package/dist/assets/{dagre-BM42HDAG-C1H0EKAG.js → dagre-BM42HDAG-BoDP4qSL.js} +1 -1
  18. package/dist/assets/{diagram-2AECGRRQ-D6sEKSEZ.js → diagram-2AECGRRQ-DHIQUqF0.js} +1 -1
  19. package/dist/assets/{diagram-5GNKFQAL-Brd_bOCT.js → diagram-5GNKFQAL-xlx_pjV_.js} +1 -1
  20. package/dist/assets/{diagram-KO2AKTUF-Dt0MCanV.js → diagram-KO2AKTUF-B8MO1HgW.js} +1 -1
  21. package/dist/assets/{diagram-LMA3HP47-DQrGF35P.js → diagram-LMA3HP47-CRSJknuZ.js} +1 -1
  22. package/dist/assets/{diagram-OG6HWLK6-Dm7seF-q.js → diagram-OG6HWLK6-CeTvy4fY.js} +1 -1
  23. package/dist/assets/{erDiagram-TEJ5UH35-U6Gl6mUU.js → erDiagram-TEJ5UH35-DFtC0ScP.js} +1 -1
  24. package/dist/assets/{flowDiagram-I6XJVG4X-C7K7oK1X.js → flowDiagram-I6XJVG4X-DMRa3J_m.js} +1 -1
  25. package/dist/assets/{ganttDiagram-6RSMTGT7-CNvz6W3E.js → ganttDiagram-6RSMTGT7-Bxuykf6p.js} +1 -1
  26. package/dist/assets/{gitGraphDiagram-PVQCEYII-CyhbUvLq.js → gitGraphDiagram-PVQCEYII-CXTm84QI.js} +1 -1
  27. package/dist/assets/index-D02phRy3.css +1 -0
  28. package/dist/assets/index-Dvw-BZIp.js +734 -0
  29. package/dist/assets/{infoDiagram-5YYISTIA-DyHSE0hy.js → infoDiagram-5YYISTIA-D2tvLdtC.js} +1 -1
  30. package/dist/assets/{ishikawaDiagram-YF4QCWOH-fjlmrHx3.js → ishikawaDiagram-YF4QCWOH-D0jVP7EP.js} +1 -1
  31. package/dist/assets/{journeyDiagram-JHISSGLW-DOoASPaf.js → journeyDiagram-JHISSGLW-Ca5D6tBE.js} +1 -1
  32. package/dist/assets/{kanban-definition-UN3LZRKU-BEiKB1N_.js → kanban-definition-UN3LZRKU-BQ6UUXz2.js} +1 -1
  33. package/dist/assets/{linear-CPWtktbJ.js → linear-ARjH3_jK.js} +1 -1
  34. package/dist/assets/{mindmap-definition-RKZ34NQL-DliBjc9v.js → mindmap-definition-RKZ34NQL-CRRCJeZm.js} +1 -1
  35. package/dist/assets/{pieDiagram-4H26LBE5-CDu9kWU3.js → pieDiagram-4H26LBE5-BwtLTkTI.js} +1 -1
  36. package/dist/assets/{quadrantDiagram-W4KKPZXB-CEp1tT5r.js → quadrantDiagram-W4KKPZXB-BZ6VcAAZ.js} +1 -1
  37. package/dist/assets/{requirementDiagram-4Y6WPE33-BD2uboSV.js → requirementDiagram-4Y6WPE33-CmuAE86r.js} +1 -1
  38. package/dist/assets/{sankeyDiagram-5OEKKPKP-ZNgAHRIH.js → sankeyDiagram-5OEKKPKP-DRMutNq4.js} +1 -1
  39. package/dist/assets/{sequenceDiagram-3UESZ5HK-BrBpCFjG.js → sequenceDiagram-3UESZ5HK-DXssdhHI.js} +1 -1
  40. package/dist/assets/{stateDiagram-AJRCARHV-CDZcNxGe.js → stateDiagram-AJRCARHV-jyjJA7Vx.js} +1 -1
  41. package/dist/assets/stateDiagram-v2-BHNVJYJU-CmxCW1S9.js +1 -0
  42. package/dist/assets/{timeline-definition-PNZ67QCA-BszoRXfI.js → timeline-definition-PNZ67QCA-CMZ7Ow2L.js} +1 -1
  43. package/dist/assets/{vennDiagram-CIIHVFJN-CqnUhalx.js → vennDiagram-CIIHVFJN-GcmWlOLV.js} +1 -1
  44. package/dist/assets/{wardley-L42UT6IY-Cw8Z6Ke3.js → wardley-L42UT6IY-DbIT5rBc.js} +1 -1
  45. package/dist/assets/{wardleyDiagram-YWT4CUSO-TUrrIhGl.js → wardleyDiagram-YWT4CUSO-gYWXw-3o.js} +1 -1
  46. package/dist/assets/{xychartDiagram-2RQKCTM6-DWvpHqB8.js → xychartDiagram-2RQKCTM6-BVhFPdW8.js} +1 -1
  47. package/dist/cli/openlag.js +34 -3
  48. package/dist/index.html +3 -3
  49. package/index.html +1 -1
  50. package/package.json +2 -2
  51. package/scripts/cli/generate.ts +14 -2
  52. package/scripts/cli/init.ts +27 -4
  53. package/src/App.tsx +3 -2
  54. package/src/components/DocumentationView.tsx +92 -440
  55. package/src/components/GraphView.tsx +26 -3
  56. package/src/store.ts +6 -2
  57. package/dist/assets/channel-CfEECmqT.js +0 -1
  58. package/dist/assets/classDiagram-4FO5ZUOK-CqWhRzlO.js +0 -1
  59. package/dist/assets/classDiagram-v2-Q7XG4LA2-CqWhRzlO.js +0 -1
  60. package/dist/assets/index-By2WPc1i.js +0 -729
  61. package/dist/assets/index-CBSt31g-.css +0 -1
  62. package/dist/assets/stateDiagram-v2-BHNVJYJU-MAgBD3Ln.js +0 -1
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@donartcha/openlag",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Architecture as Code traceability graph generator",
5
5
  "type": "module",
6
6
  "license": "MPL-2.0",
7
7
  "bin": {
8
- "openlag": "./bin/openlag.js"
8
+ "openlag": "bin/openlag.js"
9
9
  },
10
10
  "files": [
11
11
  "bin",
@@ -10,6 +10,7 @@ interface StaticState {
10
10
  systemVersions: SystemVersion[];
11
11
  graphs: Record<string, GraphSnapshot>;
12
12
  changes: Change[];
13
+ metadata?: { name: string; description: string; [key: string]: any };
13
14
  }
14
15
 
15
16
  function isDescendant(currentVersionId: string, artifactVersionId: string, versions: Version[]): boolean {
@@ -32,11 +33,22 @@ export function generateData(docsDir: string, outputDir: string, silent = false)
32
33
 
33
34
  const parsedData = parseOpenLagDocs(docsDir);
34
35
 
36
+ let metadata = { name: "OpenLAG Project", description: "Architecture documentation." };
37
+ const metadataPath = path.join(docsDir, '..', 'metadata.json');
38
+ if (fs.existsSync(metadataPath)) {
39
+ try {
40
+ metadata = JSON.parse(fs.readFileSync(metadataPath, 'utf-8'));
41
+ } catch {
42
+ if (!silent) console.warn(chalk.yellow("⚠️ Could not parse metadata.json"));
43
+ }
44
+ }
45
+
35
46
  const state: StaticState = {
36
47
  versions: parsedData.versions,
37
48
  systemVersions: parsedData.systemVersions,
38
49
  graphs: {},
39
- changes: parsedData.changes
50
+ changes: parsedData.changes,
51
+ metadata
40
52
  };
41
53
 
42
54
  const allArtifacts = parsedData.artifacts;
@@ -74,7 +86,7 @@ export function watchData(docsDir: string, outputDir: string) {
74
86
  try {
75
87
  generateData(docsDir, outputDir, true);
76
88
  console.log(chalk.dim(`[${new Date().toLocaleTimeString()}] `) + chalk.green("Regenerated graph-data.json"));
77
- } catch (e) {
89
+ } catch (e) {
78
90
  console.error(chalk.red("❌ Error during regeneration:"), e);
79
91
  }
80
92
  };
@@ -11,11 +11,18 @@ export async function initProject(projectName?: string, projectDesc?: string, in
11
11
  const name = projectName || process.env.PROJECT_NAME || 'My OpenLAG Project';
12
12
  const desc = projectDesc || process.env.PROJECT_DESCRIPTION || 'Living Architecture documentation for my system.';
13
13
 
14
- const ROOT_DIR = process.cwd();
14
+ let ROOT_DIR = process.cwd();
15
+ if (projectName) {
16
+ ROOT_DIR = path.join(process.cwd(), projectName);
17
+ if (!fs.existsSync(ROOT_DIR)) {
18
+ fs.mkdirSync(ROOT_DIR, { recursive: true });
19
+ console.log(chalk.green(`✅ Created project directory: ${projectName}`));
20
+ }
21
+ }
15
22
 
16
23
  console.log(chalk.blue(`🛠️ Initializing OpenLAG for: `) + chalk.bold(name));
17
24
 
18
- // 1. Update metadata.json
25
+ // 1. Update or Create metadata.json
19
26
  const metadataPath = path.join(ROOT_DIR, 'metadata.json');
20
27
  if (fs.existsSync(metadataPath)) {
21
28
  const metadata = JSON.parse(fs.readFileSync(metadataPath, 'utf-8'));
@@ -23,15 +30,31 @@ export async function initProject(projectName?: string, projectDesc?: string, in
23
30
  metadata.description = desc;
24
31
  fs.writeFileSync(metadataPath, JSON.stringify(metadata, null, 2));
25
32
  console.log(chalk.green('✅ Updated metadata.json'));
33
+ } else {
34
+ const metadata = {
35
+ name: name,
36
+ description: desc
37
+ };
38
+ fs.writeFileSync(metadataPath, JSON.stringify(metadata, null, 2));
39
+ console.log(chalk.green('✅ Created metadata.json'));
26
40
  }
27
41
 
28
- // 2. Update index.html title
42
+ // 2. Update index.html title if exists, or create a basic one?
43
+ // Wait, openlag is used as a tool inside an app? Or is it a scaffold?
29
44
  const htmlPath = path.join(ROOT_DIR, 'index.html');
30
45
  if (fs.existsSync(htmlPath)) {
31
46
  let html = fs.readFileSync(htmlPath, 'utf-8');
32
47
  html = html.replace(/<title>.*?<\/title>/, `<title>${name} | OpenLAG</title>`);
48
+
49
+ const descMetaRegex = /<meta name="description" content=".*?"\s*\/?>/;
50
+ if (descMetaRegex.test(html)) {
51
+ html = html.replace(descMetaRegex, `<meta name="description" content="${desc}" />`);
52
+ } else {
53
+ html = html.replace(/<\/title>/, `</title>\n <meta name="description" content="${desc}" />`);
54
+ }
55
+
33
56
  fs.writeFileSync(htmlPath, html);
34
- console.log(chalk.green('✅ Updated index.html title'));
57
+ console.log(chalk.green('✅ Updated index.html title and description'));
35
58
  }
36
59
 
37
60
  // 3. Initialize /docs if empty or missing
package/src/App.tsx CHANGED
@@ -17,7 +17,8 @@ export default function App() {
17
17
  activeView,
18
18
  setView,
19
19
  isLoading,
20
- systemVersions
20
+ systemVersions,
21
+ metadata
21
22
  } = useStore();
22
23
 
23
24
  useEffect(() => {
@@ -87,7 +88,7 @@ export default function App() {
87
88
  {/* Top Header */}
88
89
  <header className="h-16 bg-[#0f0f0f] border-b border-white/10 flex items-center px-8 justify-between shrink-0 z-10">
89
90
  <div className="font-serif text-xl italic tracking-tight flex items-center gap-2">
90
- OpenLAG <span className="text-xs font-mono opacity-50 ml-2 not-italic">| Lifecycle Engine</span>
91
+ OpenLAG <span className="text-xs font-mono opacity-50 ml-2 not-italic">| {metadata?.name || 'Lifecycle Engine'}</span>
91
92
  </div>
92
93
 
93
94
  <div className="flex items-center gap-6">