@lionweb/cli 0.5.0-beta.7 → 0.5.0-beta.8

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/CHANGELOG.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  ## 0.5.0
4
4
 
5
+ * Make language-related functionality "multi-lingual", i.e. a serialization chunk can contain multiple `Language`s.
5
6
  * Improve extraction functionality: only catch JSON-parsing exceptions.
6
7
  * Configure single CLI entrypoint.
7
8
 
@@ -1,14 +1,14 @@
1
1
  import { writeFileSync } from "fs";
2
2
  import { extname } from "path";
3
- import { deserializeLanguage } from "@lionweb/core";
3
+ import { deserializeLanguages } from "@lionweb/core";
4
4
  import { generateMermaidForLanguage, generatePlantUmlForLanguage, readFileAsJson } from "@lionweb/utilities";
5
5
  export const diagramFromSerialization = async (path) => {
6
6
  try {
7
7
  const json = readFileAsJson(path);
8
8
  const extlessPath = path.substring(0, path.length - extname(path).length);
9
- const language = deserializeLanguage(json);
10
- writeFileSync(extlessPath + ".puml", generatePlantUmlForLanguage(language));
11
- writeFileSync(extlessPath + ".md", generateMermaidForLanguage(language));
9
+ const languages = deserializeLanguages(json);
10
+ writeFileSync(extlessPath + ".puml", languages.map(generatePlantUmlForLanguage).join("\n\n"));
11
+ writeFileSync(extlessPath + ".md", languages.map(generateMermaidForLanguage).join("\n\n"));
12
12
  console.log(`generated diagrams: "${path}" -> "${extlessPath}"`);
13
13
  }
14
14
  catch (_) {
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-generator.js","sourceRoot":"","sources":["../../src/m3/diagram-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAA;AAChC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAC,mBAAmB,EAAqB,MAAM,eAAe,CAAA;AACrE,OAAO,EAAC,0BAA0B,EAAE,2BAA2B,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAA;AAG1G,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC3D,IAAI;QACA,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAuB,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC1C,aAAa,CAAC,WAAW,GAAG,OAAO,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC3E,aAAa,CAAC,WAAW,GAAG,KAAK,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS,WAAW,GAAG,CAAC,CAAA;KACnE;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,8DAA8D,CAAC,CAAA;KACxF;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"diagram-generator.js","sourceRoot":"","sources":["../../src/m3/diagram-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAA;AAChC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAC,oBAAoB,EAAqB,MAAM,eAAe,CAAA;AACtE,OAAO,EAAC,0BAA0B,EAAE,2BAA2B,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAA;AAG1G,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC3D,IAAI;QACA,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAuB,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;QACzE,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAC5C,aAAa,CAAC,WAAW,GAAG,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7F,aAAa,CAAC,WAAW,GAAG,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1F,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS,WAAW,GAAG,CAAC,CAAA;KACnE;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,8DAA8D,CAAC,CAAA;KACxF;AACL,CAAC,CAAA"}
@@ -1,14 +1,14 @@
1
1
  import { extname } from "path";
2
2
  import { writeFileSync } from "fs";
3
3
  import { GenerationOptions, readFileAsJson, tsTypesForLanguage } from "@lionweb/utilities";
4
- import { deserializeLanguage } from "@lionweb/core";
4
+ import { deserializeLanguages } from "@lionweb/core";
5
5
  const generateTsTypesFromSerialization = async (path, generationOptions) => {
6
6
  try {
7
7
  const json = readFileAsJson(path);
8
8
  const extlessPath = path.substring(0, path.length - extname(path).length);
9
- const language = deserializeLanguage(json);
9
+ const languages = deserializeLanguages(json);
10
10
  const tsFilePath = extlessPath + "-types.ts";
11
- writeFileSync(tsFilePath, tsTypesForLanguage(language, ...generationOptions));
11
+ writeFileSync(tsFilePath, languages.map((language) => tsTypesForLanguage(language, ...generationOptions)).join("\n\n"));
12
12
  console.log(`generated TS types: "${path}" -> "${tsFilePath}"`);
13
13
  }
14
14
  catch (_) {
@@ -1 +1 @@
1
- {"version":3,"file":"ts-types-generator.js","sourceRoot":"","sources":["../../src/m3/ts-types-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAA;AAEhC,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAA;AACxF,OAAO,EAAC,mBAAmB,EAAqB,MAAM,eAAe,CAAA;AAGrE,MAAM,gCAAgC,GAAG,KAAK,EAAE,IAAY,EAAE,iBAAsC,EAAE,EAAE;IACpG,IAAI;QACA,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAuB,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAA;QAC5C,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAA;QAC7E,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS,UAAU,GAAG,CAAC,CAAA;KAClE;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,8DAA8D,CAAC,CAAA;KACxF;AACL,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE;IACxD,MAAM,iBAAiB,GAAG,IAAI;SACzB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACrC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC3C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACxD,8DAA8D;SACrD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAE,iBAAyB,CAAC,MAAM,CAAC,CAAC,CAAA,CAAI,wDAAwD;IAEpH,IAAI;SACC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACtC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAA;AACrF,CAAC,CAAA"}
1
+ {"version":3,"file":"ts-types-generator.js","sourceRoot":"","sources":["../../src/m3/ts-types-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAA;AAEhC,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAA;AACxF,OAAO,EAAC,oBAAoB,EAAqB,MAAM,eAAe,CAAA;AAGtE,MAAM,gCAAgC,GAAG,KAAK,EAAE,IAAY,EAAE,iBAAsC,EAAE,EAAE;IACpG,IAAI;QACA,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAuB,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;QACzE,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAA;QAC5C,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QACvH,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS,UAAU,GAAG,CAAC,CAAA;KAClE;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,8DAA8D,CAAC,CAAA;KACxF;AACL,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE;IACxD,MAAM,iBAAiB,GAAG,IAAI;SACzB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACrC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC3C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACxD,8DAA8D;SACrD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAE,iBAAyB,CAAC,MAAM,CAAC,CAAC,CAAA,CAAI,wDAAwD;IAEpH,IAAI;SACC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACtC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAA;AACrF,CAAC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { writeFileSync } from "fs";
2
2
  import { extname } from "path";
3
- import { currentSerializationFormatVersion, deserializeLanguage, lioncoreKey } from "@lionweb/core";
3
+ import { currentSerializationFormatVersion, deserializeLanguages, lioncoreKey } from "@lionweb/core";
4
4
  import { asText, readFileAsJson, shortenedSerialization, sortedSerialization, writeJsonAsFile } from "@lionweb/utilities";
5
5
  const isRecord = (json) => typeof json === "object" && !Array.isArray(json);
6
- const isSerializedLanguage = (json) => isRecord(json)
6
+ const isSerializedLanguages = (json) => isRecord(json)
7
7
  && json["serializationFormatVersion"] === currentSerializationFormatVersion
8
8
  && "languages" in json
9
9
  && Array.isArray(json["languages"])
@@ -23,8 +23,8 @@ export const extractFromSerialization = async (path) => {
23
23
  const sortedJson = sortedSerialization(json);
24
24
  writeJsonAsFile(extlessPath + ".sorted.json", sortedJson);
25
25
  writeJsonAsFile(extlessPath + ".shortened.json", shortenedSerialization(json)); // (could also sort)
26
- if (isSerializedLanguage(json)) {
27
- writeFileSync(extlessPath + ".txt", asText(deserializeLanguage(json)));
26
+ if (isSerializedLanguages(json)) {
27
+ writeFileSync(extlessPath + ".txt", deserializeLanguages(json).map(asText).join("\n\n"));
28
28
  }
29
29
  console.log(`extracted: "${path}" -> "${extlessPath}"`);
30
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"serialization-extractor.js","sourceRoot":"","sources":["../src/serialization-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAA;AAChC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAC,iCAAiC,EAAE,mBAAmB,EAAE,WAAW,EAAqB,MAAM,eAAe,CAAA;AACrH,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAGvH,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAmC,EAAE,CAChE,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEpD,MAAM,oBAAoB,GAAG,CAAC,IAAa,EAAW,EAAE,CACjD,QAAQ,CAAC,IAAI,CAAC;OACd,IAAI,CAAC,4BAA4B,CAAC,KAAK,iCAAiC;OACxE,WAAW,IAAI,IAAI;OACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;OAChC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,CAAA;AAGlG,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IACrC,IAAI;QACA,OAAO,cAAc,CAAC,IAAI,CAAuB,CAAA;KACpD;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,4BAA4B,CAAC,CAAA;QACnD,MAAM,CAAC,CAAA;KACV;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IACzE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC5C,eAAe,CAAC,WAAW,GAAG,cAAc,EAAE,UAAU,CAAC,CAAA;IACzD,eAAe,CAAC,WAAW,GAAG,iBAAiB,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAA,CAAG,oBAAoB;IACrG,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;QAC5B,aAAa,CAAC,WAAW,GAAG,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACzE;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,WAAW,GAAG,CAAC,CAAA;AAC3D,CAAC,CAAA"}
1
+ {"version":3,"file":"serialization-extractor.js","sourceRoot":"","sources":["../src/serialization-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAA;AAChC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAC,iCAAiC,EAAE,oBAAoB,EAAE,WAAW,EAAqB,MAAM,eAAe,CAAA;AACtH,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAGvH,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAmC,EAAE,CAChE,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEpD,MAAM,qBAAqB,GAAG,CAAC,IAAa,EAAW,EAAE,CAClD,QAAQ,CAAC,IAAI,CAAC;OACd,IAAI,CAAC,4BAA4B,CAAC,KAAK,iCAAiC;OACxE,WAAW,IAAI,IAAI;OACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;OAChC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,CAAA;AAGlG,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IACrC,IAAI;QACA,OAAO,cAAc,CAAC,IAAI,CAAuB,CAAA;KACpD;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,4BAA4B,CAAC,CAAA;QACnD,MAAM,CAAC,CAAA;KACV;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IACzE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC5C,eAAe,CAAC,WAAW,GAAG,cAAc,EAAE,UAAU,CAAC,CAAA;IACzD,eAAe,CAAC,WAAW,GAAG,iBAAiB,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAA,CAAG,oBAAoB;IACrG,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;QAC7B,aAAa,CAAC,WAAW,GAAG,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;KAC3F;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,WAAW,GAAG,CAAC,CAAA;AAC3D,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/cli",
3
- "version": "0.5.0-beta.7",
3
+ "version": "0.5.0-beta.8",
4
4
  "description": "LionWeb CLI for {Java|Type}Script",
5
5
  "bin": "./dist/lionweb-cli.js",
6
6
  "main": "dist/index.js",
@@ -16,8 +16,8 @@
16
16
  "url": "https://github.com/LionWeb-io/lionweb-typescript/issues"
17
17
  },
18
18
  "dependencies": {
19
- "@lionweb/core": "0.5.0-beta.7",
20
- "@lionweb/utilities": "0.5.0-beta.7"
19
+ "@lionweb/core": "0.5.0-beta.8",
20
+ "@lionweb/utilities": "0.5.0-beta.8"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "20.6.3",