@lionweb/utilities 0.5.0-beta.3 → 0.5.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # Changelog
2
+
3
+ ## 0.5.0
4
+
5
+ * Add a function `tsTypesForLanguage` that generates TypeScript types.
6
+ * Receive `asText` and ID checking from `@lionweb/core`.
7
+
@@ -22,5 +22,46 @@ export type HashingIdGenConfig = {
22
22
  * Note that the created ID generator must be given data in the form of a string (`!== undefined`).
23
23
  */
24
24
  export declare const hashingIdGen: (config?: HashingIdGenConfig) => IdGenerator;
25
+ /**
26
+ * Augments the given {@link IdGenerator ID generator} by checking
27
+ * whether it's been given unique {@link GenData data},
28
+ * throwing an error when not.
29
+ */
30
+ export declare const checkUniqueData: (idGen: IdGenerator) => IdGenerator;
31
+ /**
32
+ * Augments the given {@link IdGenerator ID generator} by checking
33
+ * whether it's been given defined ({@code !== undefined}) data,
34
+ * throwing an error when not.
35
+ */
36
+ export declare const checkDefinedData: (idGen: IdGenerator) => IdGenerator;
37
+ /**
38
+ * Augments the given {@link IdGenerator ID generator} by checking
39
+ * whether that returns unique IDs, throwing an error when not.
40
+ */
41
+ export declare const checkUniqueId: (idGen: IdGenerator) => IdGenerator;
42
+ /**
43
+ * Augments the given {@link IdGenerator ID generator} by checking
44
+ * whether it returns valid IDs, meaning [Base64URL](https://www.base64url.com/).
45
+ * (See also [Wikipedia](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).)
46
+ * If a generated ID is not valid, an error is thrown.
47
+ */
48
+ export declare const checkValidId: (idGen: IdGenerator) => IdGenerator;
49
+ /**
50
+ * Type definition for transformers of {@link IdGenerator ID generators}.
51
+ */
52
+ export type IdGenTransformer = (idGen: IdGenerator) => IdGenerator;
53
+ /**
54
+ * Wraps the given ("initial") {@link IdGenerator ID generator}
55
+ * with the given {@link IdGenTransformer ID generator transformers}.
56
+ * In other words:
57
+ *
58
+ * wrap(idGen, trafo1, trafo2, ..., trafoN) === trafoN(...trafo2(trafo1(idGen)))
59
+ */
60
+ export declare const wrapIdGen: (idGen: IdGenerator, ...idGenTransformers: IdGenTransformer[]) => IdGenerator;
61
+ /**
62
+ * Wraps the given ("initial") {@link IdGenerator ID generator} with all
63
+ * {@link IdGenTransformer ID generator checkers} defined above.
64
+ */
65
+ export declare const checkAll: (idGen: IdGenerator) => IdGenerator;
25
66
  export {};
26
67
  //# sourceMappingURL=id-generation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-generation.d.ts","sourceRoot":"","sources":["../src/id-generation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAGzC;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,WACX,CAAA;AAGlB,QAAA,MAAM,oBAAoB,WAAW,CAAA;AAErC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,SAAS,CAAC,EAAE,OAAO,oBAAoB,GAAG,MAAM,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAA;CACpC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,YAAa,kBAAkB,KAAG,WAc1D,CAAA"}
1
+ {"version":3,"file":"id-generation.d.ts","sourceRoot":"","sources":["../src/id-generation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAU,WAAW,EAAC,MAAM,eAAe,CAAA;AAGlD;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,WACX,CAAA;AAGlB,QAAA,MAAM,oBAAoB,WAAW,CAAA;AAErC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,SAAS,CAAC,EAAE,OAAO,oBAAoB,GAAG,MAAM,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAA;CACpC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,YAAa,kBAAkB,KAAG,WAc1D,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAW,WAAW,KAAG,WASpD,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAW,WAAW,KAAG,WAMjD,CAAA;AAGL;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,WAAW,KAAG,WAWlD,CAAA;AAGD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,UAAW,WAAW,KAAG,WAO7C,CAAA;AAGL;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,CAAA;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,UAAW,WAAW,wBAAwB,gBAAgB,EAAE,KAAG,WACtB,CAAA;AAGnE;;;GAGG;AACH,eAAO,MAAM,QAAQ,UAAW,WAAW,KAAG,WAOzC,CAAA"}
@@ -27,4 +27,71 @@ export const hashingIdGen = (config) => {
27
27
  .toString();
28
28
  };
29
29
  };
30
+ /**
31
+ * Augments the given {@link IdGenerator ID generator} by checking
32
+ * whether it's been given unique {@link GenData data},
33
+ * throwing an error when not.
34
+ */
35
+ export const checkUniqueData = (idGen) => {
36
+ const datas = [];
37
+ return (data) => {
38
+ if (datas.indexOf(data) > -1) {
39
+ throw new Error(`duplicate data encountered: "${data}"`);
40
+ }
41
+ datas.push(data);
42
+ return idGen(data);
43
+ };
44
+ };
45
+ /**
46
+ * Augments the given {@link IdGenerator ID generator} by checking
47
+ * whether it's been given defined ({@code !== undefined}) data,
48
+ * throwing an error when not.
49
+ */
50
+ export const checkDefinedData = (idGen) => (data) => {
51
+ if (data === undefined) {
52
+ throw new Error(`expected data`);
53
+ }
54
+ return idGen(data);
55
+ };
56
+ /**
57
+ * Augments the given {@link IdGenerator ID generator} by checking
58
+ * whether that returns unique IDs, throwing an error when not.
59
+ */
60
+ export const checkUniqueId = (idGen) => {
61
+ const ids = [];
62
+ return (data) => {
63
+ const id = idGen(data);
64
+ if (ids.indexOf(id) > -1) {
65
+ throw new Error(`duplicate ID generated: "${id}"`);
66
+ }
67
+ ids.push(id);
68
+ return id;
69
+ };
70
+ };
71
+ /**
72
+ * Augments the given {@link IdGenerator ID generator} by checking
73
+ * whether it returns valid IDs, meaning [Base64URL](https://www.base64url.com/).
74
+ * (See also [Wikipedia](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).)
75
+ * If a generated ID is not valid, an error is thrown.
76
+ */
77
+ export const checkValidId = (idGen) => (data) => {
78
+ const id = idGen(data);
79
+ if (!id.match(/^[A-Za-z0-9_-]+$/)) {
80
+ throw new Error(`generated ID is not valid: ${id}`);
81
+ }
82
+ return id;
83
+ };
84
+ /**
85
+ * Wraps the given ("initial") {@link IdGenerator ID generator}
86
+ * with the given {@link IdGenTransformer ID generator transformers}.
87
+ * In other words:
88
+ *
89
+ * wrap(idGen, trafo1, trafo2, ..., trafoN) === trafoN(...trafo2(trafo1(idGen)))
90
+ */
91
+ export const wrapIdGen = (idGen, ...idGenTransformers) => idGenTransformers.reduce((acc, current) => current(acc), idGen);
92
+ /**
93
+ * Wraps the given ("initial") {@link IdGenerator ID generator} with all
94
+ * {@link IdGenTransformer ID generator checkers} defined above.
95
+ */
96
+ export const checkAll = (idGen) => wrapIdGen(idGen, checkDefinedData, checkUniqueData, checkValidId, checkUniqueId);
30
97
  //# sourceMappingURL=id-generation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-generation.js","sourceRoot":"","sources":["../src/id-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAA;AAKjC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAgB,EAAE,CACvC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;AAGlB,MAAM,oBAAoB,GAAG,QAAQ,CAAA;AAYrC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAe,EAAE;IACrE,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,oBAAoB,CAAA;IAC3D,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAA;IAC/B,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,WAAW,CAAA;IAEhD,OAAO,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;SAC/C;QACD,OAAO,UAAU,CAAC,SAAS,CAAC;aACvB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;aACnB,MAAM,CAAC,QAAQ,CAAC;aAChB,QAAQ,EAAE,CAAA;IACnB,CAAC,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"id-generation.js","sourceRoot":"","sources":["../src/id-generation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,5 @@
1
- export * from "./m3/diagrams/Mermaid-generator.js";
2
- export * from "./m3/diagrams/PlantUML-generator.js";
3
- export * from "./m3/ecore/importer.js";
4
- export * from "./m3/ecore/types.js";
5
- export * from "./m3/schema-generator.js";
6
1
  export * from "./id-generation.js";
7
2
  export * from "./json.js";
3
+ export * from "./m3/index.js";
8
4
  export * from "./serialization-utils.js";
9
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAA;AAClD,cAAc,qCAAqC,CAAA;AACnD,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA"}
package/dist/index.js CHANGED
@@ -1,9 +1,5 @@
1
- export * from "./m3/diagrams/Mermaid-generator.js";
2
- export * from "./m3/diagrams/PlantUML-generator.js";
3
- export * from "./m3/ecore/importer.js";
4
- export * from "./m3/ecore/types.js";
5
- export * from "./m3/schema-generator.js";
6
1
  export * from "./id-generation.js";
7
2
  export * from "./json.js";
3
+ export * from "./m3/index.js";
8
4
  export * from "./serialization-utils.js";
9
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAA;AAClD,cAAc,qCAAqC,CAAA;AACnD,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { asString, indentWith } from "littoral-templates";
2
- import { Concept, ConceptInterface, Containment, entitiesSortedByName, Enumeration, isRef, Link, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
2
+ import { Concept, Containment, entitiesSortedByName, Enumeration, Interface, isRef, Link, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
3
3
  // define some layouting basics/building algebra:
4
4
  const indented = indentWith(` `)(1);
5
5
  const block = (header, elements) => elements.length === 0
@@ -38,7 +38,7 @@ const generateForConcept = ({ name, features, abstract: abstract_, extends: exte
38
38
  isRef(extends_) ? `${extends_.name} <|-- ${name}` : [],
39
39
  ``
40
40
  ];
41
- const generateForConceptInterface = ({ name, features, extends: extends_ }) => [
41
+ const generateForInterface = ({ name, features, extends: extends_ }) => [
42
42
  block(`class ${name}`, nonRelationalFeatures(features).map(generateForNonRelationalFeature)),
43
43
  `<<Interface>> ${name}`,
44
44
  extends_.map(({ name: extendsName }) => `${extendsName} <|-- ${name}`),
@@ -59,12 +59,12 @@ const generateForElement = (element) => {
59
59
  if (element instanceof Concept) {
60
60
  return generateForConcept(element);
61
61
  }
62
- if (element instanceof ConceptInterface) {
63
- return generateForConceptInterface(element);
64
- }
65
62
  if (element instanceof Enumeration) {
66
63
  return generateForEnumeration(element);
67
64
  }
65
+ if (element instanceof Interface) {
66
+ return generateForInterface(element);
67
+ }
68
68
  if (element instanceof PrimitiveType) {
69
69
  return generateForPrimitiveType(element);
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Mermaid-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mermaid-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/Mermaid-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlantUML-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,QAAQ,EAQX,MAAM,eAAe,CAAA;AAMtB;;;GAGG;AACH,eAAO,MAAM,2BAA2B,uBAAsB,QAAQ,WAmBpE,CAAA"}
1
+ {"version":3,"file":"PlantUML-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,QAAQ,EASX,MAAM,eAAe,CAAA;AAMtB;;;GAGG;AACH,eAAO,MAAM,2BAA2B,uBAAsB,QAAQ,WAmBpE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { asString, indentWith } from "littoral-templates";
2
- import { Concept, ConceptInterface, Containment, entitiesSortedByName, Enumeration, isRef, Link, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
2
+ import { Concept, Containment, entitiesSortedByName, Enumeration, Interface, isRef, Link, nameOf, nonRelationalFeatures, PrimitiveType, relationsOf, type, unresolved } from "@lionweb/core";
3
3
  const indented = indentWith(` `)(1);
4
4
  /**
5
5
  * Generates a string with a PlantUML class diagram
@@ -45,7 +45,7 @@ const generateForConcept = ({ name, features, abstract: abstract_, extends: exte
45
45
  fragments.push(`extends`, extends_.name);
46
46
  }
47
47
  if (implements_.length > 0) {
48
- fragments.push(`implements`, implements_.map((conceptInterface) => conceptInterface.name).sort().join(", "));
48
+ fragments.push(`implements`, implements_.map(nameOf).sort().join(", "));
49
49
  }
50
50
  return nonRelationalFeatures_.length === 0
51
51
  ? [
@@ -59,7 +59,7 @@ const generateForConcept = ({ name, features, abstract: abstract_, extends: exte
59
59
  ``
60
60
  ];
61
61
  };
62
- const generateForConceptInterface = ({ name, extends: extends_, features }) => {
62
+ const generateForInterface = ({ name, extends: extends_, features }) => {
63
63
  const nonRelationalFeatures_ = nonRelationalFeatures(features);
64
64
  const fragments = [`interface`, name];
65
65
  if (extends_.length > 0) {
@@ -91,8 +91,8 @@ const generateForElement = (element) => {
91
91
  if (element instanceof Concept) {
92
92
  return generateForConcept(element);
93
93
  }
94
- if (element instanceof ConceptInterface) {
95
- return generateForConceptInterface(element);
94
+ if (element instanceof Interface) {
95
+ return generateForInterface(element);
96
96
  }
97
97
  if (element instanceof PrimitiveType) {
98
98
  return generateForPrimitiveType(element);
@@ -1 +1 @@
1
- {"version":3,"file":"PlantUML-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlantUML-generator.js","sourceRoot":"","sources":["../../../src/m3/diagrams/PlantUML-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAaH,QAAQ,EAOX,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAsB,QAAQ,EAA4B,MAAM,YAAY,CAAA;AAuBnF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aAAc,QAAQ,WAAW,MAAM,KAAG,QAwHxE,CAAA"}
1
+ {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EASH,QAAQ,EAMX,MAAM,eAAe,CAAA;AAStB,OAAO,EAAsB,QAAQ,EAA4B,MAAM,YAAY,CAAA;AAuBnF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aAAc,QAAQ,WAAW,MAAM,KAAG,QAwHxE,CAAA"}
@@ -1,5 +1,5 @@
1
- import { asArray, builtinPrimitives, checkDefinedData, checkUniqueData, checkUniqueId, checkValidId, duplicatesAmong, keyOf, LanguageFactory, namedsOf, qualifiedNameOf, wrapIdGen } from "@lionweb/core";
2
- import { hashingIdGen } from "../../id-generation.js";
1
+ import { asArray, builtinPrimitives, duplicatesAmong, keyOf, LanguageFactory, namedsOf, qualifiedNameOf } from "@lionweb/core";
2
+ import { checkDefinedData, checkUniqueData, checkUniqueId, checkValidId, hashingIdGen, wrapIdGen } from "../../id-generation.js";
3
3
  const localRefPrefix = "#//";
4
4
  /**
5
5
  * "Dereferences" a type descriptor string by removing the optional <pre>"#//"</pre> prefix.
@@ -32,7 +32,7 @@ export const asLionCoreLanguage = (ecoreXml, version) => {
32
32
  }
33
33
  throw new Error(`don't know how to convert an EClassifier with descriptor "${xsiType}"`);
34
34
  };
35
- // TODO (#10) ConceptInterface?
35
+ // TODO (#10) Interface?
36
36
  const convertedEClassifiers = ePackage["eClassifiers"]
37
37
  .map((eClassifier) => [eClassifier, convertEClassifier(eClassifier)]);
38
38
  const eClassifierConversionFor = (eClassifierName) => convertedEClassifiers
@@ -1 +1 @@
1
- {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,iBAAiB,EAGjB,eAAe,EAGf,KAAK,EAGL,eAAe,EACf,QAAQ,EAER,eAAe,EAClB,MAAM,eAAe,CAAA;AACtB,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,SAAS,EACZ,MAAM,wBAAwB,CAAA;AAI/B,MAAM,cAAc,GAAG,KAAK,CAAA;AAC5B;;GAEG;AACH,MAAM,KAAK,GAAG,CAAC,cAAsB,EAAU,EAAE,CAC7C,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC;IACrC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;IACjD,CAAC,CAAC,cAAc,CAAA;AAGxB,MAAM,EAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAC,GAAG,iBAAiB,CAAA;AAE5E,MAAM,sBAAsB,GAAkC;IAC1D,iEAAiE,EAAE,cAAc;IACjF,kEAAkE,EAAE,cAAc;IAClF,mEAAmE,EAAE,eAAe;IACpF,+DAA+D,EAAE,eAAe;CACnF,CAAA;AAGD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAkB,EAAE,OAAe,EAAY,EAAE;IAEhF,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAC3C,2DAA2D;IAC3D,MAAM,OAAO,GAAG,IAAI,eAAe,CAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EACrB,OAAO,EACP,SAAS,CACL,YAAY,EAAE,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,aAAa,CAChB,CACJ,CAAA;IAGD,gGAAgG;IAEhG,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAkB,EAAE;QACpE,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;QAC5C,IAAI,OAAO,KAAK,cAAc,EAAE;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;SAC1D;QACD,IAAI,OAAO,KAAK,aAAa,EAAE;YAC3B,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;SACvD;QACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,OAAO,GAAG,CAAC,CAAA;IAC5F,CAAC,CAAA;IACD,yBAAyB;IAEzB,MAAM,qBAAqB,GACvB,QAAQ,CAAC,cAAc,CAAC;SACnB,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACjB,CAAC,WAAW,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC,CACjD,CAAA;IAET,MAAM,wBAAwB,GAAG,CAAC,eAAuB,EAAkB,EAAE,CACzE,qBAAqB;SAChB,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,eAAe,CAAE,CAAC,CAAC,CAAC,CAAA;IAG3E,6CAA6C;IAE7C,MAAM,yBAAyB,GAAG,CAAC,SAAqB,EAAE,OAA2B,EAAW,EAAE;QAC9F,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;QACjC,QAAQ,QAAQ,EAAE;YACd,KAAK,kBAAkB,CAAC,CAAC;gBACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;gBACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;qBAC7C,MAAM,CACH,QAAQ,IAAI,sBAAsB;oBAC9B,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC;oBAClC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAA;gBACL,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;oBACpC,QAAQ,CAAC,UAAU,EAAE,CAAA;iBACxB;gBACD,OAAO,QAAQ,CAAA;aAClB;YACD,KAAK,kBAAkB,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,CACL,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;oBACvB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;oBACtC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAC3C;qBACI,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAe,CAAC,CAAA;gBACrF,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;oBACpC,IAAI,CAAC,UAAU,EAAE,CAAA;iBACpB;gBACD,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;oBACrC,IAAI,CAAC,UAAU,EAAE,CAAA;iBACpB;gBACD,OAAO,IAAI,CAAA;aACd;YACD;gBACI,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,cAAc,CAAC,CAAA;SACtE;IACL,CAAC,CAAA;IAED,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,OAAO,KAAK,cAAc,EAAE;YAC5B,MAAM,UAAU,GAAG,MAAoB,CAAA;YACvC,UAAU;iBACL,cAAc,CACX,GAAG,OAAO,CAAE,MAAiB,CAAC,mBAAmB,CAAC;iBAC7C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACb,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,CACjD,CACR,CAAA;YACL,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE;gBACzC,MAAkB,CAAC,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAY,CAAA;aACvG;SACJ;QACD,IAAI,OAAO,KAAK,aAAa,EAAE;YAC3B,MAAM,UAAU,GAAG,MAAqB,CAAA;YACxC,UAAU;iBACL,cAAc,CACf,GAAG,OAAO,CAAE,MAAgB,CAAC,SAAS,CAAC;iBAClC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAClF,CAAA;SACR;IACL,CAAC,CAAC,CAAA;IAGF,uDAAuD;IAEvD,OAAO,CAAC,QAAQ;SACX,cAAc,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEhF,0EAA0E;IAE1E,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;SAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE;QACzB,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;IAEN,OAAO,OAAO,CAAC,QAAQ,CAAA;AAC3B,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ export * from "./diagrams/Mermaid-generator.js";
2
+ export * from "./diagrams/PlantUML-generator.js";
3
+ export * from "./ecore/importer.js";
4
+ export * from "./ecore/types.js";
5
+ export * from "./schema-generator.js";
6
+ export * from "./ts-types-generator.js";
7
+ export { asText } from "./textual-syntax.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/m3/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,8 @@
1
+ export * from "./diagrams/Mermaid-generator.js";
2
+ export * from "./diagrams/PlantUML-generator.js";
3
+ export * from "./ecore/importer.js";
4
+ export * from "./ecore/types.js";
5
+ export * from "./schema-generator.js";
6
+ export * from "./ts-types-generator.js";
7
+ export { asText } from "./textual-syntax.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/m3/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { M3Node } from "@lionweb/core";
2
+ declare const asText: (node: M3Node) => string;
3
+ export { asText };
4
+ //# sourceMappingURL=textual-syntax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textual-syntax.d.ts","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"AAAA,OAAO,EASH,MAAM,EAOT,MAAM,eAAe,CAAA;AAetB,QAAA,MAAM,MAAM,SAAU,MAAM,KAAG,MAoD9B,CAAA;AAGD,OAAO,EACH,MAAM,EACT,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { Concept, Containment, Enumeration, EnumerationLiteral, Interface, Language, Link, nameOf, nameSorted, PrimitiveType, Property, unresolved } from "@lionweb/core";
2
+ // TODO use littoral-templates?
3
+ const indent = (str) => str.split("\n").map((line) => ` ${line}`).join("\n");
4
+ const descent = (ts, separator) => nameSorted(ts).map((t) => indent(indent(asText(t)))).join(separator);
5
+ const refAsText = (ref) => ref === unresolved ? `???` : ref.name;
6
+ const asText = (node) => {
7
+ if (node instanceof Concept) {
8
+ return `${node.partition ? `<<partition>> ` : ``}${node.abstract ? `abstract ` : ``}concept ${node.name}${node.extends === undefined ? `` : ` extends ${refAsText(node.extends)}`}${node.implements.length === 0 ? `` : ` implements ${nameSorted(node.implements).map(nameOf).join(", ")}`}${node.features.length === 0 ? `` : `
9
+ features (↓name):
10
+ ${descent(node.features, "\n")}`}`;
11
+ }
12
+ if (node instanceof Interface) {
13
+ return `interface ${node.name}${node.extends.length === 0 ? `` : ` extends ${nameSorted(node.extends).map(nameOf).join(", ")}`}${node.features.length === 0 ? `` : `
14
+ features (↓name):
15
+ ${descent(node.features, "\n")}`}`;
16
+ }
17
+ if (node instanceof Link) {
18
+ return `${node.name}${node instanceof Containment ? `:` : ` ->`} ${refAsText(node.type)}${node.multiple ? `[${node.optional ? `0` : `1`}..*]` : ``}${node.optional && !node.multiple ? `?` : ``}`;
19
+ }
20
+ if (node instanceof Enumeration) {
21
+ return `enumeration ${node.name}${node.literals.length === 0 ? `` : `
22
+ literals:
23
+ ${descent(node.literals, "\n")}`}`;
24
+ }
25
+ if (node instanceof EnumerationLiteral) {
26
+ return `${node.name}`;
27
+ }
28
+ if (node instanceof Language) {
29
+ return `language ${node.name}
30
+ version: ${node.version}${node.dependsOn.length > 0
31
+ ? ` dependsOn:
32
+ ${node.dependsOn.map((language) => ` ${language.key} (${language.version})`).join("\n")}
33
+ `
34
+ : ``}
35
+ entities (↓name):
36
+
37
+ ${descent(node.entities, "\n\n")}
38
+
39
+ `;
40
+ }
41
+ if (node instanceof PrimitiveType) {
42
+ return `primitive type ${node.name}`;
43
+ }
44
+ if (node instanceof Property) {
45
+ return `${node.name}: ${refAsText(node.type)}${node.optional ? `?` : ``}`;
46
+ }
47
+ return `node (key=${node.key}, ID=${node.id}) of class ${node.constructor.name} not handled`;
48
+ };
49
+ export { asText };
50
+ //# sourceMappingURL=textual-syntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Language } from "@lionweb/core";
2
+ export declare enum GenerationOptions {
3
+ assumeSealed = 0
4
+ }
5
+ /**
6
+ * @return string generated TypeScript source code that contains type definitions that match the given {@link Language language}
7
+ * in combination with using the {@link DynamicNode} base type and corresponding facades.
8
+ */
9
+ export declare const tsTypesForLanguage: (language: Language, ...generationOptions: GenerationOptions[]) => string;
10
+ //# sourceMappingURL=ts-types-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-types-generator.d.ts","sourceRoot":"","sources":["../../src/m3/ts-types-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAYH,QAAQ,EASX,MAAM,eAAe,CAAA;AA6EtB,oBAAY,iBAAiB;IACzB,YAAY,IAAA;CACf;AAGD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAAc,QAAQ,wBAAwB,iBAAiB,EAAE,WA6G/F,CAAA"}
@@ -0,0 +1,148 @@
1
+ import { builtinClassifiers, builtinPrimitives, Concept, conceptsOf, Enumeration, Interface, isConcrete, Link, nameOf, nameSorted, PrimitiveType, Property, unresolved } from "@lionweb/core";
2
+ import { asString, indentWith } from "littoral-templates";
3
+ const indent = indentWith(" ")(1);
4
+ /**
5
+ * Include the given `result` only when the `expr` is `true`.
6
+ */
7
+ const cond = (expr, result) => expr ? [result] : [];
8
+ const fieldForFeature = (feature) => {
9
+ if (feature instanceof Link) {
10
+ return fieldForLink(feature);
11
+ }
12
+ if (feature instanceof Property) {
13
+ return fieldForProperty(feature);
14
+ }
15
+ return `${feature.name}: unknown;`;
16
+ };
17
+ const fieldForLink = ({ name, type, optional, multiple }) => `${name}${optional && !multiple ? `?` : ``}: ${type === unresolved ? `unknown` : type.name}${multiple ? `[]` : ``};`;
18
+ // FIXME this doesn't work cross-language
19
+ const tsTypeFor = (datatype) => {
20
+ switch (datatype) {
21
+ case builtinPrimitives.booleanDatatype: return `boolean`;
22
+ case builtinPrimitives.stringDatatype: return `string`;
23
+ case builtinPrimitives.integerDatatype: return `number`;
24
+ case builtinPrimitives.jsonDatatype: return `unknown`;
25
+ case unresolved:
26
+ default:
27
+ return `unknown`;
28
+ }
29
+ };
30
+ const fieldForProperty = ({ name, type, optional }) => `${name}${optional ? `?` : ``}: ${tsTypeFor(type)};`;
31
+ const isINamed = (entity) => entity === builtinClassifiers.inamed;
32
+ const usesINamedDirectly = (entity) => {
33
+ if (entity instanceof Concept) {
34
+ return entity.implements.some(isINamed);
35
+ }
36
+ if (entity instanceof Interface) {
37
+ return entity.extends.some(isINamed);
38
+ }
39
+ return false;
40
+ };
41
+ const typeForEnumeration = (enumeration) => [
42
+ `enum ${enumeration.name} {`,
43
+ indent(enumeration.literals.map(nameOf).join(`, `)),
44
+ `}`,
45
+ ``
46
+ ];
47
+ const typeForPrimitiveType = (datatype) => [
48
+ `export type ${datatype.name} = ${tsTypeFor(datatype)};`,
49
+ ``
50
+ ];
51
+ export var GenerationOptions;
52
+ (function (GenerationOptions) {
53
+ GenerationOptions[GenerationOptions["assumeSealed"] = 0] = "assumeSealed";
54
+ })(GenerationOptions || (GenerationOptions = {}));
55
+ /**
56
+ * @return string generated TypeScript source code that contains type definitions that match the given {@link Language language}
57
+ * in combination with using the {@link DynamicNode} base type and corresponding facades.
58
+ */
59
+ export const tsTypesForLanguage = (language, ...generationOptions) => {
60
+ const typeForConcept = (concept) => {
61
+ const { name } = concept;
62
+ const superTypes = [
63
+ ...(concept.extends ? [concept.extends] : []),
64
+ ...concept.implements
65
+ ];
66
+ const mixinNames = superTypes.length === 0 ? [`DynamicNode`] : superTypes.map(nameOf);
67
+ const subClassifiers = concept.abstract
68
+ ? (generationOptions.indexOf(GenerationOptions.assumeSealed) > -1
69
+ ? conceptsOf(language).filter((entity) => entity.extends === concept)
70
+ : [])
71
+ : [concept];
72
+ const hasBody = !concept.abstract || concept.features.length > 0 || subClassifiers.length > 0;
73
+ return [
74
+ `${concept.abstract ? `/** abstract */ ` : ``}export type ${name} = ${mixinNames.join(` & `)}${hasBody ? ` & {` : `;`}`,
75
+ cond(hasBody, [
76
+ indent([
77
+ cond(subClassifiers.length > 0, `// classifier -> ${subClassifiers.map(nameOf).join(` | `)}`),
78
+ cond(concept.features.length > 0, [
79
+ `settings: {`,
80
+ indent(concept.features.map(fieldForFeature)),
81
+ `};`
82
+ ]),
83
+ ]),
84
+ `};` // (`{` was already rendered as part of the header)
85
+ ]),
86
+ ``
87
+ ];
88
+ };
89
+ const typeForInterface = (intface) => {
90
+ const { name } = intface;
91
+ const mixinNames = intface.extends.length === 0 ? [`DynamicNode`] : intface.extends.map(nameOf);
92
+ const hasBody = intface.features.length > 0;
93
+ return [
94
+ `/** interface */ export type ${name} = ${mixinNames.join(` & `)}${hasBody ? ` & {` : `;`}`,
95
+ cond(hasBody, [
96
+ indent([
97
+ cond(intface.features.length > 0, [
98
+ `settings: {`,
99
+ indent(intface.features.map(fieldForFeature)),
100
+ `};`
101
+ ]),
102
+ ]),
103
+ `};` // (`{` was already rendered as part of the header)
104
+ ]),
105
+ ``
106
+ ];
107
+ };
108
+ // TODO Refactor previous two functions: 1) transform to an instance of a type def. that captures the code to generate, 2) generate from that
109
+ const typeForLanguageEntity = (entity) => {
110
+ // TODO Annotation
111
+ if (entity instanceof Concept) {
112
+ return typeForConcept(entity);
113
+ }
114
+ if (entity instanceof Enumeration) {
115
+ return typeForEnumeration(entity);
116
+ }
117
+ if (entity instanceof Interface) {
118
+ return typeForInterface(entity);
119
+ }
120
+ if (entity instanceof PrimitiveType) {
121
+ return typeForPrimitiveType(entity);
122
+ }
123
+ return [
124
+ `// unhandled language entity <${entity.constructor.name}>"${entity.name}"`,
125
+ ``
126
+ ];
127
+ };
128
+ const globalImports = [
129
+ ...cond(!language.entities.every(usesINamedDirectly), `DynamicNode`),
130
+ ...cond(language.entities.some(usesINamedDirectly), `DynamicINamed as INamed`) // (rename import so we don't have to map just the one)
131
+ ];
132
+ return asString([
133
+ `// Warning: this file is generated!`,
134
+ `// Modifying it by hand it useless at best, and sabotage at worst.`,
135
+ ``,
136
+ `/*
137
+ * language's metadata:
138
+ * name: ${language.name}
139
+ * version: ${language.version}
140
+ */`,
141
+ ``,
142
+ cond(globalImports.length > 0, `import {${globalImports.join(`, `)}} from "@lionweb/core";`),
143
+ ``,
144
+ nameSorted(language.entities).map(typeForLanguageEntity),
145
+ `export type ${language.name}Node = ${nameSorted(language.entities.filter(isConcrete)).map(nameOf).join(` | `)};`
146
+ ]);
147
+ };
148
+ //# sourceMappingURL=ts-types-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-types-generator.js","sourceRoot":"","sources":["../../src/m3/ts-types-generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/utilities",
3
- "version": "0.5.0-beta.3",
3
+ "version": "0.5.0-beta.6",
4
4
  "description": "LionWeb utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "url": "https://github.com/LionWeb-io/lionweb-typescript/issues"
16
16
  },
17
17
  "dependencies": {
18
- "@lionweb/core": "0.5.0-beta.3",
18
+ "@lionweb/core": "0.5.0-beta.6",
19
19
  "littoral-templates": "0.2.2",
20
20
  "nanoid": "4.0.2"
21
21
  },