@lionweb/utilities 0.5.0-beta.6 → 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.
Files changed (41) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/hashing.d.ts +69 -0
  3. package/dist/hashing.d.ts.map +1 -0
  4. package/dist/{id-generation.js → hashing.js} +25 -26
  5. package/dist/hashing.js.map +1 -0
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/m3/ecore/importer.d.ts.map +1 -1
  11. package/dist/m3/ecore/importer.js +4 -3
  12. package/dist/m3/ecore/importer.js.map +1 -1
  13. package/dist/m3/index.d.ts +1 -1
  14. package/dist/m3/index.d.ts.map +1 -1
  15. package/dist/m3/index.js +1 -1
  16. package/dist/m3/index.js.map +1 -1
  17. package/dist/m3/schema-generator.js +1 -1
  18. package/dist/m3/schema-generator.js.map +1 -1
  19. package/dist/m3/textual-syntax.d.ts.map +1 -1
  20. package/dist/m3/textual-syntax.js +7 -2
  21. package/dist/m3/textual-syntax.js.map +1 -1
  22. package/dist/m3/ts-generation/text-generation-utils.d.ts +7 -0
  23. package/dist/m3/ts-generation/text-generation-utils.d.ts.map +1 -0
  24. package/dist/m3/ts-generation/text-generation-utils.js +7 -0
  25. package/dist/m3/ts-generation/text-generation-utils.js.map +1 -0
  26. package/dist/m3/ts-generation/ts-types-generator.d.ts.map +1 -0
  27. package/dist/m3/{ts-types-generator.js → ts-generation/ts-types-generator.js} +33 -48
  28. package/dist/m3/ts-generation/ts-types-generator.js.map +1 -0
  29. package/dist/m3/ts-generation/type-def.d.ts +20 -0
  30. package/dist/m3/ts-generation/type-def.d.ts.map +1 -0
  31. package/dist/m3/ts-generation/type-def.js +27 -0
  32. package/dist/m3/ts-generation/type-def.js.map +1 -0
  33. package/dist/serialization-utils.js +2 -2
  34. package/dist/serialization-utils.js.map +1 -1
  35. package/package.json +2 -2
  36. package/dist/id-generation.d.ts +0 -67
  37. package/dist/id-generation.d.ts.map +0 -1
  38. package/dist/id-generation.js.map +0 -1
  39. package/dist/m3/ts-types-generator.d.ts.map +0 -1
  40. package/dist/m3/ts-types-generator.js.map +0 -1
  41. /package/dist/m3/{ts-types-generator.d.ts → ts-generation/ts-types-generator.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  ## 0.5.0
4
4
 
5
+ * Implement textual syntax for `Annotation`s.
6
+ * _Breaking change:_ Change ID generation to hashing (`hasher` function).
7
+ * (Make small, cosmetic fix in `asText` function.)
5
8
  * Add a function `tsTypesForLanguage` that generates TypeScript types.
6
9
  * Receive `asText` and ID checking from `@lionweb/core`.
7
10
 
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Type def. for a hashing function string → string.
3
+ */
4
+ export type StringHasher = (str: string) => string;
5
+ /**
6
+ * Hasher based on the {@link https://zelark.github.io/nano-id-cc/ `nanoid` NPM package}.
7
+ */
8
+ export declare const nanoIdGen: () => StringHasher;
9
+ declare const defaultHashAlgorithm = "SHA256";
10
+ /**
11
+ * Type definition for objects that configure a
12
+ * {@link StringHasher hasher}.
13
+ */
14
+ export type StringHasherConfig = {
15
+ algorithm?: typeof defaultHashAlgorithm | string;
16
+ salt?: string;
17
+ encoding?: "base64url" | "base64";
18
+ };
19
+ /**
20
+ * Creates a {@link StringHasher hasher},
21
+ * optionally using a {@link StringHasherConfig configuration object}.
22
+ * The default is:
23
+ * - uses the *SHA256* hashing algorithm
24
+ * - without salt prefix string
25
+ */
26
+ export declare const hasher: (config?: StringHasherConfig) => StringHasher;
27
+ /**
28
+ * Augments the given {@link StringHasher hasher} by checking
29
+ * whether it's been given unique strings,
30
+ * throwing an error when not.
31
+ */
32
+ export declare const checkUniqueData: (hasher: StringHasher) => StringHasher;
33
+ /**
34
+ * Augments the given {@link StringHasher hasher} by checking
35
+ * whether it's been given defined ({@code !== undefined}) data,
36
+ * throwing an error when not.
37
+ */
38
+ export declare const checkDefinedData: (hasher: StringHasher) => StringHasher;
39
+ /**
40
+ * Augments the given {@link StringHasher hasher} by checking
41
+ * whether that returns unique IDs, throwing an error when not.
42
+ */
43
+ export declare const checkUniqueId: (hasher: StringHasher) => StringHasher;
44
+ /**
45
+ * Augments the given {@link StringHasher hasher} by checking
46
+ * whether it returns valid IDs, meaning [Base64URL](https://www.base64url.com/).
47
+ * (See also [Wikipedia](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).)
48
+ * If a generated ID is not valid, an error is thrown.
49
+ */
50
+ export declare const checkValidId: (hasher: StringHasher) => StringHasher;
51
+ /**
52
+ * Type definition for transformers of {@link StringHasher hashers}.
53
+ */
54
+ export type StringHasherTransformer = (hasher: StringHasher) => StringHasher;
55
+ /**
56
+ * Wraps the given ("initial") {@link StringHasher hasher}
57
+ * with the given {@link HasherTransformer hasher transfomers}.
58
+ * In other words:
59
+ *
60
+ * chain(hasher, trafo1, trafo2, ..., trafoN) === trafoN(...trafo2(trafo1(hasher)))
61
+ */
62
+ export declare const chain: (hasher: StringHasher, ...hasherTransformers: StringHasherTransformer[]) => StringHasher;
63
+ /**
64
+ * Wraps the given ("initial") {@link StringHasher hasher} with all
65
+ * {@link HasherTransformer hasher transfomers} defined above.
66
+ */
67
+ export declare const checkAll: (hasher: StringHasher) => StringHasher;
68
+ export {};
69
+ //# sourceMappingURL=hashing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../src/hashing.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;AAGlD;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,YACX,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;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,YAAa,kBAAkB,KAAG,YAcpD,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAY,YAAY,KAAG,YAStD,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WAAY,YAAY,KAAG,YAMnD,CAAA;AAGL;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,YAAY,KAAG,YAWpD,CAAA;AAGD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WAAY,YAAY,KAAG,YAO/C,CAAA;AAGL;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,YAAY,CAAA;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,WAAY,YAAY,yBAAyB,uBAAuB,EAAE,KAAG,YAC1B,CAAA;AAGrE;;;GAGG;AACH,eAAO,MAAM,QAAQ,WAAY,YAAY,KAAG,YAO3C,CAAA"}
@@ -1,19 +1,18 @@
1
1
  import { nanoid } from "nanoid";
2
2
  import { createHash } from "crypto";
3
3
  /**
4
- * ID generator based on the {@link https://zelark.github.io/nano-id-cc/ `nanoid` NPM package}.
4
+ * Hasher based on the {@link https://zelark.github.io/nano-id-cc/ `nanoid` NPM package}.
5
5
  */
6
6
  export const nanoIdGen = () => () => nanoid();
7
7
  const defaultHashAlgorithm = "SHA256";
8
8
  /**
9
- * Creates a {@link IdGenerator hashing ID generator},
10
- * optionally using a {@link HashingIdGenConfig configuration object}.
9
+ * Creates a {@link StringHasher hasher},
10
+ * optionally using a {@link StringHasherConfig configuration object}.
11
11
  * The default is:
12
12
  * - uses the *SHA256* hashing algorithm
13
13
  * - without salt prefix string
14
- * Note that the created ID generator must be given data in the form of a string (`!== undefined`).
15
14
  */
16
- export const hashingIdGen = (config) => {
15
+ export const hasher = (config) => {
17
16
  const algorithm = config?.algorithm ?? defaultHashAlgorithm;
18
17
  const salt = config?.salt ?? "";
19
18
  const encoding = config?.encoding ?? "base64url";
@@ -28,39 +27,39 @@ export const hashingIdGen = (config) => {
28
27
  };
29
28
  };
30
29
  /**
31
- * Augments the given {@link IdGenerator ID generator} by checking
32
- * whether it's been given unique {@link GenData data},
30
+ * Augments the given {@link StringHasher hasher} by checking
31
+ * whether it's been given unique strings,
33
32
  * throwing an error when not.
34
33
  */
35
- export const checkUniqueData = (idGen) => {
34
+ export const checkUniqueData = (hasher) => {
36
35
  const datas = [];
37
36
  return (data) => {
38
37
  if (datas.indexOf(data) > -1) {
39
38
  throw new Error(`duplicate data encountered: "${data}"`);
40
39
  }
41
40
  datas.push(data);
42
- return idGen(data);
41
+ return hasher(data);
43
42
  };
44
43
  };
45
44
  /**
46
- * Augments the given {@link IdGenerator ID generator} by checking
45
+ * Augments the given {@link StringHasher hasher} by checking
47
46
  * whether it's been given defined ({@code !== undefined}) data,
48
47
  * throwing an error when not.
49
48
  */
50
- export const checkDefinedData = (idGen) => (data) => {
49
+ export const checkDefinedData = (hasher) => (data) => {
51
50
  if (data === undefined) {
52
51
  throw new Error(`expected data`);
53
52
  }
54
- return idGen(data);
53
+ return hasher(data);
55
54
  };
56
55
  /**
57
- * Augments the given {@link IdGenerator ID generator} by checking
56
+ * Augments the given {@link StringHasher hasher} by checking
58
57
  * whether that returns unique IDs, throwing an error when not.
59
58
  */
60
- export const checkUniqueId = (idGen) => {
59
+ export const checkUniqueId = (hasher) => {
61
60
  const ids = [];
62
61
  return (data) => {
63
- const id = idGen(data);
62
+ const id = hasher(data);
64
63
  if (ids.indexOf(id) > -1) {
65
64
  throw new Error(`duplicate ID generated: "${id}"`);
66
65
  }
@@ -69,29 +68,29 @@ export const checkUniqueId = (idGen) => {
69
68
  };
70
69
  };
71
70
  /**
72
- * Augments the given {@link IdGenerator ID generator} by checking
71
+ * Augments the given {@link StringHasher hasher} by checking
73
72
  * whether it returns valid IDs, meaning [Base64URL](https://www.base64url.com/).
74
73
  * (See also [Wikipedia](https://en.wikipedia.org/wiki/Base64#Variants_summary_table).)
75
74
  * If a generated ID is not valid, an error is thrown.
76
75
  */
77
- export const checkValidId = (idGen) => (data) => {
78
- const id = idGen(data);
76
+ export const checkValidId = (hasher) => (data) => {
77
+ const id = hasher(data);
79
78
  if (!id.match(/^[A-Za-z0-9_-]+$/)) {
80
79
  throw new Error(`generated ID is not valid: ${id}`);
81
80
  }
82
81
  return id;
83
82
  };
84
83
  /**
85
- * Wraps the given ("initial") {@link IdGenerator ID generator}
86
- * with the given {@link IdGenTransformer ID generator transformers}.
84
+ * Wraps the given ("initial") {@link StringHasher hasher}
85
+ * with the given {@link HasherTransformer hasher transfomers}.
87
86
  * In other words:
88
87
  *
89
- * wrap(idGen, trafo1, trafo2, ..., trafoN) === trafoN(...trafo2(trafo1(idGen)))
88
+ * chain(hasher, trafo1, trafo2, ..., trafoN) === trafoN(...trafo2(trafo1(hasher)))
90
89
  */
91
- export const wrapIdGen = (idGen, ...idGenTransformers) => idGenTransformers.reduce((acc, current) => current(acc), idGen);
90
+ export const chain = (hasher, ...hasherTransformers) => hasherTransformers.reduce((acc, current) => current(acc), hasher);
92
91
  /**
93
- * Wraps the given ("initial") {@link IdGenerator ID generator} with all
94
- * {@link IdGenTransformer ID generator checkers} defined above.
92
+ * Wraps the given ("initial") {@link StringHasher hasher} with all
93
+ * {@link HasherTransformer hasher transfomers} defined above.
95
94
  */
96
- export const checkAll = (idGen) => wrapIdGen(idGen, checkDefinedData, checkUniqueData, checkValidId, checkUniqueId);
97
- //# sourceMappingURL=id-generation.js.map
95
+ export const checkAll = (hasher) => chain(hasher, checkDefinedData, checkUniqueData, checkValidId, checkUniqueId);
96
+ //# sourceMappingURL=hashing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashing.js","sourceRoot":"","sources":["../src/hashing.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./id-generation.js";
1
+ export * from "./hashing.js";
2
2
  export * from "./json.js";
3
3
  export * from "./m3/index.js";
4
4
  export * from "./serialization-utils.js";
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./id-generation.js";
1
+ export * from "./hashing.js";
2
2
  export * from "./json.js";
3
3
  export * from "./m3/index.js";
4
4
  export * from "./serialization-utils.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA"}
@@ -1 +1 @@
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
+ {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAWH,QAAQ,EAOX,MAAM,eAAe,CAAA;AAStB,OAAO,EAAsB,QAAQ,EAA4B,MAAM,YAAY,CAAA;AAuBnF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aAAc,QAAQ,WAAW,MAAM,KAAG,QA4HxE,CAAA"}
@@ -1,5 +1,5 @@
1
- import { asArray, builtinPrimitives, duplicatesAmong, keyOf, LanguageFactory, namedsOf, qualifiedNameOf } from "@lionweb/core";
2
- import { checkDefinedData, checkUniqueData, checkUniqueId, checkValidId, hashingIdGen, wrapIdGen } from "../../id-generation.js";
1
+ import { asArray, builtinPrimitives, chain, concatenator, duplicatesAmong, keyOf, LanguageFactory, lastOf, namedsOf, qualifiedNameOf } from "@lionweb/core";
2
+ import { chain as chainHashers, checkDefinedData, checkUniqueData, checkUniqueId, checkValidId, hasher } from "../../hashing.js";
3
3
  const localRefPrefix = "#//";
4
4
  /**
5
5
  * "Dereferences" a type descriptor string by removing the optional <pre>"#//"</pre> prefix.
@@ -18,9 +18,10 @@ const typeDesc2primitiveType = {
18
18
  * Converts a parsed Ecore XML metamodel (file) to a {@link Language LionCore instance}.
19
19
  */
20
20
  export const asLionCoreLanguage = (ecoreXml, version) => {
21
+ const idGen = chainHashers(hasher(), checkDefinedData, checkUniqueData, checkValidId, checkUniqueId);
21
22
  const ePackage = ecoreXml["ecore:EPackage"];
22
23
  // TODO (#10) an Ecore XML can contain multiple EPackage-s
23
- const factory = new LanguageFactory(ePackage["$"]["name"], version, wrapIdGen(hashingIdGen(), checkDefinedData, checkUniqueData, checkValidId, checkUniqueId));
24
+ const factory = new LanguageFactory(ePackage["$"]["name"], version, chain(concatenator("-"), idGen), lastOf);
24
25
  // phase 1: convert EClassifiers but without their EStructuralFeatures (in the case of EClasses)
25
26
  const convertEClassifier = (eClassifier) => {
26
27
  const xsiType = eClassifier["$"]["xsi:type"];
@@ -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":"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"}
@@ -3,6 +3,6 @@ export * from "./diagrams/PlantUML-generator.js";
3
3
  export * from "./ecore/importer.js";
4
4
  export * from "./ecore/types.js";
5
5
  export * from "./schema-generator.js";
6
- export * from "./ts-types-generator.js";
6
+ export * from "./ts-generation/ts-types-generator.js";
7
7
  export { asText } from "./textual-syntax.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,uCAAuC,CAAA;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA"}
package/dist/m3/index.js CHANGED
@@ -3,6 +3,6 @@ export * from "./diagrams/PlantUML-generator.js";
3
3
  export * from "./ecore/importer.js";
4
4
  export * from "./ecore/types.js";
5
5
  export * from "./schema-generator.js";
6
- export * from "./ts-types-generator.js";
6
+ export * from "./ts-generation/ts-types-generator.js";
7
7
  export { asText } from "./textual-syntax.js";
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
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,uCAAuC,CAAA;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA"}
@@ -62,7 +62,7 @@ const schemaForClassifier = (classifier) => {
62
62
  "id",
63
63
  "classifier",
64
64
  "properties",
65
- "children",
65
+ "containments",
66
66
  "references"
67
67
  ],
68
68
  additionalProperties: false
@@ -1 +1 @@
1
- {"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../src/m3/schema-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../src/m3/schema-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAGb,WAAW,EAEX,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,EACL,WAAW,EAEX,aAAa,EAEhB,MAAM,eAAe,CAAA;AACtB,4DAA4D;AAG5D,MAAM,GAAG,GAAG,CAAC,EAAU,EAAoB,EAAE,CACzC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;AAE/B,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAE3C,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAW,EAAE;IACrD,IAAI,QAAQ,YAAY,WAAW,EAAE;QACjC,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;KAC3B;IACD,IAAI,QAAQ,YAAY,aAAa,EAAE;QACnC,iGAAiG;QACjG,QAAQ,QAAQ,CAAC,IAAI,EAAE;YACnB,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,SAAS,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,EAAE,CAAA;YAC9B;gBACI,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAA;SAC1E;KACJ;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAA;AAClE,CAAC,CAAA;AAGD,MAAM,iBAAiB,GAAG,CAAoB,QAAa,EAAE,UAAmC,EAAE,gBAAyB,EAAE,EAAE;IAC3H,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC5D,OAAO;QACH,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;QACH,oBAAoB;SACvB;QACD,UAAU,EAAE,MAAM,CAAC,WAAW,CAC1B,QAAQ;aACH,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,GAAG;YACX,UAAU,CAAC,OAAO,CAAC;SACtB,CAAC,CACT;QACD,QAAQ,EAAE,gBAAgB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC;YAC/B,CAAC,CAAC,SAAS;QACf,oBAAoB,EAAE,KAAK;KAC9B,CAAA;AACL,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAW,EAAE,CACtD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAChB,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;IACjC,CAAC,CAAC,EAAE,CAAA,CAAI,QAAQ;AAExB,MAAM,mBAAmB,GAAG,CAAC,UAAsB,EAAW,EAAE;IAC5D,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAC7C,OAAO;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC;YACb,UAAU,EAAE;gBACR,KAAK,EAAE;oBACH,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,GAAG;oBACZ,GAAG,EAAE,UAAU,CAAC,GAAG;iBACtB;aACJ;YACD,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC;YACtF,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;YACvF,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;YACxF,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;SAC1B;QACD,QAAQ,EAAE;YACN,IAAI;YACJ,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,YAAY;SACf;QACD,oBAAoB,EAAE,KAAK;KAC9B,CAAA;AACL,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,EAAC,QAAQ,EAAc,EAAW,EAAE,CAC9D,CAAC;IACG,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC;CACvC,CAAC,CAAA;AAGN;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAiC,EAAE;IAC3E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAC5D,OAAO;QACH,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,gBAAgB;QACrC,KAAK,EAAE,oCAAoC,QAAQ,CAAC,IAAI,EAAE;QAC1D,GAAG,GAAG,CAAC,iBAAiB,CAAC;QACzB,KAAK,EAAE;YACH,gFAAgF;YAChF,iBAAiB,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,0BAA0B,EAAE;wBACxB,KAAK,EAAE,GAAG;qBACb;oBACD,SAAS,EAAE;wBACP,KAAK,EAAE,EAAE;qBACZ;oBACD,KAAK,EAAE;wBACH,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,GAAG,CAAC,gBAAgB,CAAC;qBAC/B;iBACJ;gBACD,QAAQ,EAAE;oBACN,4BAA4B;oBAC5B,WAAW;oBACX,OAAO;iBACV;gBACD,oBAAoB,EAAE,KAAK;aAC9B;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,CAAC;aACf;YACD,KAAK,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,CAAC,CAAC,kCAAkC;aACjD;YACD,aAAa,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,UAAU,EAAE,QAAQ,EAAE;oBACtB,SAAS,EAAE,QAAQ,EAAE;oBACrB,KAAK,EAAE,QAAQ,EAAE;iBACpB;gBACD,QAAQ,EAAE;oBACN,UAAU;oBACV,SAAS;oBACT,KAAK;iBACR;gBACD,oBAAoB,EAAE,KAAK;aAC9B;YACD,UAAU,EAAE;gBACR,KAAK,EAAE;oBACH,GAAG,CAAC,IAAI,CAAC;oBACT,EAAE,IAAI,EAAE,IAAI,EAAE;iBACjB;aACJ;YACD,GAAG,MAAM,CAAC,WAAW,CACjB,mBAAmB;iBACd,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI;gBACZ,mBAAmB,CAAC,OAAO,CAAC;aAC/B,CAAC,CACT;YACD,gBAAgB,EAAE;gBACd,KAAK,EAAE,mBAAmB;qBACrB,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAClC;YACD,GAAG,MAAM,CAAC,WAAW,CACjB,YAAY;iBACP,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAClB,WAAW,CAAC,GAAG;gBACf,oBAAoB,CAAC,WAAW,CAAC;aACpC,CAAC,CACT;SACJ;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -1 +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"}
1
+ {"version":3,"file":"textual-syntax.d.ts","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"AAAA,OAAO,EAUH,MAAM,EAOT,MAAM,eAAe,CAAA;AAetB,QAAA,MAAM,MAAM,SAAU,MAAM,KAAG,MA0D9B,CAAA;AAGD,OAAO,EACH,MAAM,EACT,CAAA"}
@@ -1,9 +1,14 @@
1
- import { Concept, Containment, Enumeration, EnumerationLiteral, Interface, Language, Link, nameOf, nameSorted, PrimitiveType, Property, unresolved } from "@lionweb/core";
1
+ import { Annotation, Concept, Containment, Enumeration, EnumerationLiteral, Interface, Language, Link, nameOf, nameSorted, PrimitiveType, Property, unresolved } from "@lionweb/core";
2
2
  // TODO use littoral-templates?
3
3
  const indent = (str) => str.split("\n").map((line) => ` ${line}`).join("\n");
4
4
  const descent = (ts, separator) => nameSorted(ts).map((t) => indent(indent(asText(t)))).join(separator);
5
5
  const refAsText = (ref) => ref === unresolved ? `???` : ref.name;
6
6
  const asText = (node) => {
7
+ if (node instanceof Annotation) {
8
+ return `annotation ${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
+ }
7
12
  if (node instanceof Concept) {
8
13
  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
14
  features (↓name):
@@ -28,7 +33,7 @@ ${descent(node.literals, "\n")}`}`;
28
33
  if (node instanceof Language) {
29
34
  return `language ${node.name}
30
35
  version: ${node.version}${node.dependsOn.length > 0
31
- ? ` dependsOn:
36
+ ? `\n dependsOn:
32
37
  ${node.dependsOn.map((language) => ` ${language.key} (${language.version})`).join("\n")}
33
38
  `
34
39
  : ``}
@@ -1 +1 @@
1
- {"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"textual-syntax.js","sourceRoot":"","sources":["../../src/m3/textual-syntax.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { NestedString } from "littoral-templates";
2
+ export declare const indent: (_: NestedString) => string[];
3
+ /**
4
+ * Include the given `result` only when the `expr` is `true`.
5
+ */
6
+ export declare const cond: (expr: boolean, result: NestedString) => NestedString[];
7
+ //# sourceMappingURL=text-generation-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-generation-utils.d.ts","sourceRoot":"","sources":["../../../src/m3/ts-generation/text-generation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAG3D,eAAO,MAAM,MAAM,+BAAwB,CAAA;AAG3C;;GAEG;AACH,eAAO,MAAM,IAAI,SAAU,OAAO,UAAU,YAAY,mBAChC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { indentWith } from "littoral-templates";
2
+ export const indent = indentWith(" ")(1);
3
+ /**
4
+ * Include the given `result` only when the `expr` is `true`.
5
+ */
6
+ export const cond = (expr, result) => expr ? [result] : [];
7
+ //# sourceMappingURL=text-generation-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-generation-utils.js","sourceRoot":"","sources":["../../../src/m3/ts-generation/text-generation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAG3D,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAG3C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,MAAoB,EAAE,EAAE,CACxD,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-types-generator.d.ts","sourceRoot":"","sources":["../../../src/m3/ts-generation/ts-types-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAYH,QAAQ,EASX,MAAM,eAAe,CAAA;AAmFtB,oBAAY,iBAAiB;IACzB,YAAY,IAAA;CACf;AAGD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAAc,QAAQ,wBAAwB,iBAAiB,EAAE,WAiF/F,CAAA"}
@@ -1,10 +1,7 @@
1
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] : [];
2
+ import { asString } from "littoral-templates";
3
+ import { cond, indent } from "./text-generation-utils.js";
4
+ import { tsFromTypeDef, TypeDefModifier } from "./type-def.js";
8
5
  const fieldForFeature = (feature) => {
9
6
  if (feature instanceof Link) {
10
7
  return fieldForLink(feature);
@@ -12,9 +9,17 @@ const fieldForFeature = (feature) => {
12
9
  if (feature instanceof Property) {
13
10
  return fieldForProperty(feature);
14
11
  }
15
- return `${feature.name}: unknown;`;
12
+ return {
13
+ name: feature.name,
14
+ optional: false,
15
+ type: `unknown`
16
+ };
16
17
  };
17
- const fieldForLink = ({ name, type, optional, multiple }) => `${name}${optional && !multiple ? `?` : ``}: ${type === unresolved ? `unknown` : type.name}${multiple ? `[]` : ``};`;
18
+ const fieldForLink = ({ name, type, optional, multiple }) => ({
19
+ name,
20
+ optional: optional && !multiple,
21
+ type: `${type === unresolved ? `unknown` : type.name}${multiple ? `[]` : ``}`
22
+ });
18
23
  // FIXME this doesn't work cross-language
19
24
  const tsTypeFor = (datatype) => {
20
25
  switch (datatype) {
@@ -27,7 +32,11 @@ const tsTypeFor = (datatype) => {
27
32
  return `unknown`;
28
33
  }
29
34
  };
30
- const fieldForProperty = ({ name, type, optional }) => `${name}${optional ? `?` : ``}: ${tsTypeFor(type)};`;
35
+ const fieldForProperty = ({ name, type, optional }) => ({
36
+ name,
37
+ optional,
38
+ type: tsTypeFor(type)
39
+ });
31
40
  const isINamed = (entity) => entity === builtinClassifiers.inamed;
32
41
  const usesINamedDirectly = (entity) => {
33
42
  if (entity instanceof Concept) {
@@ -58,54 +67,29 @@ export var GenerationOptions;
58
67
  */
59
68
  export const tsTypesForLanguage = (language, ...generationOptions) => {
60
69
  const typeForConcept = (concept) => {
61
- const { name } = concept;
62
70
  const superTypes = [
63
71
  ...(concept.extends ? [concept.extends] : []),
64
72
  ...concept.implements
65
73
  ];
66
- const mixinNames = superTypes.length === 0 ? [`DynamicNode`] : superTypes.map(nameOf);
67
74
  const subClassifiers = concept.abstract
68
75
  ? (generationOptions.indexOf(GenerationOptions.assumeSealed) > -1
69
76
  ? conceptsOf(language).filter((entity) => entity.extends === concept)
70
77
  : [])
71
78
  : [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
- ];
79
+ return tsFromTypeDef({
80
+ modifier: concept.abstract ? TypeDefModifier.abstract : TypeDefModifier.none,
81
+ name: concept.name,
82
+ mixinNames: superTypes.length === 0 ? [`DynamicNode`] : superTypes.map(nameOf),
83
+ bodyComment: subClassifiers.length > 0 ? `classifier -> ${subClassifiers.map(nameOf).join(` | `)}` : undefined,
84
+ fields: concept.features.map(fieldForFeature)
85
+ });
107
86
  };
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
87
+ const typeForInterface = (intface) => tsFromTypeDef({
88
+ modifier: TypeDefModifier.interface,
89
+ name: intface.name,
90
+ mixinNames: intface.extends.length === 0 ? [`DynamicNode`] : intface.extends.map(nameOf),
91
+ fields: intface.features.map(fieldForFeature)
92
+ });
109
93
  const typeForLanguageEntity = (entity) => {
110
94
  // TODO Annotation
111
95
  if (entity instanceof Concept) {
@@ -129,6 +113,7 @@ export const tsTypesForLanguage = (language, ...generationOptions) => {
129
113
  ...cond(!language.entities.every(usesINamedDirectly), `DynamicNode`),
130
114
  ...cond(language.entities.some(usesINamedDirectly), `DynamicINamed as INamed`) // (rename import so we don't have to map just the one)
131
115
  ];
116
+ const concreteClassifiers = language.entities.filter(isConcrete);
132
117
  return asString([
133
118
  `// Warning: this file is generated!`,
134
119
  `// Modifying it by hand it useless at best, and sabotage at worst.`,
@@ -142,7 +127,7 @@ export const tsTypesForLanguage = (language, ...generationOptions) => {
142
127
  cond(globalImports.length > 0, `import {${globalImports.join(`, `)}} from "@lionweb/core";`),
143
128
  ``,
144
129
  nameSorted(language.entities).map(typeForLanguageEntity),
145
- `export type ${language.name}Node = ${nameSorted(language.entities.filter(isConcrete)).map(nameOf).join(` | `)};`
130
+ cond(concreteClassifiers.length > 0, `export type ${language.name}Node = ${nameSorted(concreteClassifiers).map(nameOf).join(` | `)};`)
146
131
  ]);
147
132
  };
148
133
  //# sourceMappingURL=ts-types-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-types-generator.js","sourceRoot":"","sources":["../../../src/m3/ts-generation/ts-types-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { NestedString } from "littoral-templates";
2
+ export declare enum TypeDefModifier {
3
+ none = 0,
4
+ abstract = 1,
5
+ interface = 2
6
+ }
7
+ export type TypeDef = {
8
+ modifier: TypeDefModifier;
9
+ name: string;
10
+ mixinNames: string[];
11
+ bodyComment?: string;
12
+ fields: Field[];
13
+ };
14
+ export type Field = {
15
+ name: string;
16
+ optional: boolean;
17
+ type: string;
18
+ };
19
+ export declare const tsFromTypeDef: ({ modifier, name, mixinNames, bodyComment, fields }: TypeDef) => NestedString;
20
+ //# sourceMappingURL=type-def.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-def.d.ts","sourceRoot":"","sources":["../../../src/m3/ts-generation/type-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAI/C,oBAAY,eAAe;IACvB,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,SAAS,IAAA;CACZ;AAED,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,EAAE,eAAe,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,KAAK,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAOD,eAAO,MAAM,aAAa,wDAAuD,OAAO,KAAG,YAuB1F,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { cond, indent } from "./text-generation-utils.js";
2
+ export var TypeDefModifier;
3
+ (function (TypeDefModifier) {
4
+ TypeDefModifier[TypeDefModifier["none"] = 0] = "none";
5
+ TypeDefModifier[TypeDefModifier["abstract"] = 1] = "abstract";
6
+ TypeDefModifier[TypeDefModifier["interface"] = 2] = "interface";
7
+ })(TypeDefModifier || (TypeDefModifier = {}));
8
+ const tsFromField = ({ name, optional, type }) => `${name}${optional ? `?` : ``}: ${type};`;
9
+ export const tsFromTypeDef = ({ modifier, name, mixinNames, bodyComment, fields }) => {
10
+ const hasBody = !!bodyComment || fields.length > 0;
11
+ return [
12
+ `${modifier === TypeDefModifier.none ? `` : `/** ${TypeDefModifier[modifier]} */ `}export type ${name} = ${mixinNames.join(` & `)}${!hasBody ? `;` : ` & {`}`,
13
+ cond(hasBody, [
14
+ indent([
15
+ cond(!!bodyComment, `// ${bodyComment}`),
16
+ cond(fields.length > 0, [
17
+ `settings: {`,
18
+ indent(fields.map(tsFromField)),
19
+ `};`
20
+ ])
21
+ ]),
22
+ `};` // (`{` was already rendered as part of the header)
23
+ ]),
24
+ ``
25
+ ];
26
+ };
27
+ //# sourceMappingURL=type-def.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-def.js","sourceRoot":"","sources":["../../../src/m3/ts-generation/type-def.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,4BAA4B,CAAA;AAGvD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,qDAAI,CAAA;IACJ,6DAAQ,CAAA;IACR,+DAAS,CAAA;AACb,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAiBD,MAAM,WAAW,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAQ,EAAgB,EAAE,CAChE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAA;AAG7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAU,EAAgB,EAAE;IACtG,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAClD,OAAO;QACH,GAAG,QAAQ,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,MAAM,eAAe,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE;QAC7J,IAAI,CACA,OAAO,EACP;YACI,MAAM,CAAC;gBACH,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,WAAW,EAAE,CAAC;gBACxC,IAAI,CACA,MAAM,CAAC,MAAM,GAAG,CAAC,EACjB;oBACI,aAAa;oBACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC/B,IAAI;iBACP,CACJ;aACJ,CAAC;YACF,IAAI,CAAI,mDAAmD;SAC9D,CACJ;QACD,EAAE;KACL,CAAA;AACL,CAAC,CAAA"}
@@ -9,7 +9,7 @@ export const shortenedSerialization = ({ nodes }) => nodes.map((node) => ({
9
9
  parent: node.parent ?? undefined,
10
10
  ...Object.fromEntries([
11
11
  ...node.properties.map((serProp) => [serProp.property.key, serProp.value]),
12
- ...node.children.map((serContainment) => [serContainment.containment.key, serContainment.children]),
12
+ ...node.containments.map((serContainment) => [serContainment.containment.key, serContainment.children]),
13
13
  ...node.references.map((serReference) => [serReference.reference.key, serReference.targets.map(({ reference }) => reference)])
14
14
  ])
15
15
  }));
@@ -26,7 +26,7 @@ export const sortedSerialization = ({ serializationFormatVersion, languages, nod
26
26
  classifier: node.classifier,
27
27
  parent: node.parent,
28
28
  properties: sortByStringKey(node.properties, ({ property }) => property.key),
29
- children: sortByStringKey(node.children, ({ containment }) => containment.key)
29
+ containments: sortByStringKey(node.containments, ({ containment }) => containment.key)
30
30
  .map(({ containment, children }) => ({
31
31
  containment,
32
32
  children: children.sort()
@@ -1 +1 @@
1
- {"version":3,"file":"serialization-utils.js","sourceRoot":"","sources":["../src/serialization-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,eAAe,EAAC,MAAM,eAAe,CAAA;AAGjE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAC,KAAK,EAAqB,EAAE,EAAE,CAClE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;IAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;IAChC,GAAG,MAAM,CAAC,WAAW,CACjB;QACI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1E,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;KAC/H,CACJ;CACJ,CAAC,CAAC,CAAA;AAGP;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAC,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAqB,EAAsB,EAAE,CAC1H,CAAC;IACG,0BAA0B;IAC1B,SAAS;IACT,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1E,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;aACnE,GAAG,CAAC,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,WAAW;YACX,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC5B,CAAC,CAAC;QACX,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;aACnE,GAAG,CAAC,CAAC,EAAC,SAAS,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,SAAS;YACT,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC;SAChE,CAAC,CAAC;KACd,CAAC,CAAC;CACV,CAAC,CAAA"}
1
+ {"version":3,"file":"serialization-utils.js","sourceRoot":"","sources":["../src/serialization-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,eAAe,EAAC,MAAM,eAAe,CAAA;AAGjE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAC,KAAK,EAAqB,EAAE,EAAE,CAClE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;IAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;IAChC,GAAG,MAAM,CAAC,WAAW,CACjB;QACI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1E,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;KAC/H,CACJ;CACJ,CAAC,CAAC,CAAA;AAGP;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAC,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAqB,EAAsB,EAAE,CAC1H,CAAC;IACG,0BAA0B;IAC1B,SAAS;IACT,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1E,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;aAC3E,GAAG,CAAC,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,WAAW;YACX,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC5B,CAAC,CAAC;QACX,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;aACnE,GAAG,CAAC,CAAC,EAAC,SAAS,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,SAAS;YACT,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC;SAChE,CAAC,CAAC;KACd,CAAC,CAAC;CACV,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/utilities",
3
- "version": "0.5.0-beta.6",
3
+ "version": "0.5.0-beta.8",
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.6",
18
+ "@lionweb/core": "0.5.0-beta.8",
19
19
  "littoral-templates": "0.2.2",
20
20
  "nanoid": "4.0.2"
21
21
  },
@@ -1,67 +0,0 @@
1
- import { IdGenerator } from "@lionweb/core";
2
- /**
3
- * ID generator based on the {@link https://zelark.github.io/nano-id-cc/ `nanoid` NPM package}.
4
- */
5
- export declare const nanoIdGen: () => IdGenerator;
6
- declare const defaultHashAlgorithm = "SHA256";
7
- /**
8
- * Type definition for objects that configure a
9
- * {@link hashingIdGen hashing ID generator}.
10
- */
11
- export type HashingIdGenConfig = {
12
- algorithm?: typeof defaultHashAlgorithm | string;
13
- salt?: string;
14
- encoding?: "base64url" | "base64";
15
- };
16
- /**
17
- * Creates a {@link IdGenerator hashing ID generator},
18
- * optionally using a {@link HashingIdGenConfig configuration object}.
19
- * The default is:
20
- * - uses the *SHA256* hashing algorithm
21
- * - without salt prefix string
22
- * Note that the created ID generator must be given data in the form of a string (`!== undefined`).
23
- */
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;
66
- export {};
67
- //# sourceMappingURL=id-generation.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-generation.js","sourceRoot":"","sources":["../src/id-generation.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ts-types-generator.js","sourceRoot":"","sources":["../../src/m3/ts-types-generator.ts"],"names":[],"mappings":"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"}