@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.
- package/CHANGELOG.md +3 -0
- package/dist/hashing.d.ts +69 -0
- package/dist/hashing.d.ts.map +1 -0
- package/dist/{id-generation.js → hashing.js} +25 -26
- package/dist/hashing.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/m3/ecore/importer.d.ts.map +1 -1
- package/dist/m3/ecore/importer.js +4 -3
- package/dist/m3/ecore/importer.js.map +1 -1
- package/dist/m3/index.d.ts +1 -1
- package/dist/m3/index.d.ts.map +1 -1
- package/dist/m3/index.js +1 -1
- package/dist/m3/index.js.map +1 -1
- package/dist/m3/schema-generator.js +1 -1
- package/dist/m3/schema-generator.js.map +1 -1
- package/dist/m3/textual-syntax.d.ts.map +1 -1
- package/dist/m3/textual-syntax.js +7 -2
- package/dist/m3/textual-syntax.js.map +1 -1
- package/dist/m3/ts-generation/text-generation-utils.d.ts +7 -0
- package/dist/m3/ts-generation/text-generation-utils.d.ts.map +1 -0
- package/dist/m3/ts-generation/text-generation-utils.js +7 -0
- package/dist/m3/ts-generation/text-generation-utils.js.map +1 -0
- package/dist/m3/ts-generation/ts-types-generator.d.ts.map +1 -0
- package/dist/m3/{ts-types-generator.js → ts-generation/ts-types-generator.js} +33 -48
- package/dist/m3/ts-generation/ts-types-generator.js.map +1 -0
- package/dist/m3/ts-generation/type-def.d.ts +20 -0
- package/dist/m3/ts-generation/type-def.d.ts.map +1 -0
- package/dist/m3/ts-generation/type-def.js +27 -0
- package/dist/m3/ts-generation/type-def.js.map +1 -0
- package/dist/serialization-utils.js +2 -2
- package/dist/serialization-utils.js.map +1 -1
- package/package.json +2 -2
- package/dist/id-generation.d.ts +0 -67
- package/dist/id-generation.d.ts.map +0 -1
- package/dist/id-generation.js.map +0 -1
- package/dist/m3/ts-types-generator.d.ts.map +0 -1
- package/dist/m3/ts-types-generator.js.map +0 -1
- /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
|
-
*
|
|
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
|
|
10
|
-
* optionally using a {@link
|
|
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
|
|
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
|
|
32
|
-
* whether it's been given unique
|
|
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 = (
|
|
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
|
|
41
|
+
return hasher(data);
|
|
43
42
|
};
|
|
44
43
|
};
|
|
45
44
|
/**
|
|
46
|
-
* Augments the given {@link
|
|
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 = (
|
|
49
|
+
export const checkDefinedData = (hasher) => (data) => {
|
|
51
50
|
if (data === undefined) {
|
|
52
51
|
throw new Error(`expected data`);
|
|
53
52
|
}
|
|
54
|
-
return
|
|
53
|
+
return hasher(data);
|
|
55
54
|
};
|
|
56
55
|
/**
|
|
57
|
-
* Augments the given {@link
|
|
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 = (
|
|
59
|
+
export const checkUniqueId = (hasher) => {
|
|
61
60
|
const ids = [];
|
|
62
61
|
return (data) => {
|
|
63
|
-
const id =
|
|
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
|
|
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 = (
|
|
78
|
-
const id =
|
|
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
|
|
86
|
-
* with the given {@link
|
|
84
|
+
* Wraps the given ("initial") {@link StringHasher hasher}
|
|
85
|
+
* with the given {@link HasherTransformer hasher transfomers}.
|
|
87
86
|
* In other words:
|
|
88
87
|
*
|
|
89
|
-
*
|
|
88
|
+
* chain(hasher, trafo1, trafo2, ..., trafoN) === trafoN(...trafo2(trafo1(hasher)))
|
|
90
89
|
*/
|
|
91
|
-
export const
|
|
90
|
+
export const chain = (hasher, ...hasherTransformers) => hasherTransformers.reduce((acc, current) => current(acc), hasher);
|
|
92
91
|
/**
|
|
93
|
-
* Wraps the given ("initial") {@link
|
|
94
|
-
* {@link
|
|
92
|
+
* Wraps the given ("initial") {@link StringHasher hasher} with all
|
|
93
|
+
* {@link HasherTransformer hasher transfomers} defined above.
|
|
95
94
|
*/
|
|
96
|
-
export const checkAll = (
|
|
97
|
-
//# sourceMappingURL=
|
|
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
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
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
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
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,
|
|
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,
|
|
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,
|
|
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":"AAAA,OAAO,EACH,OAAO,EACP,iBAAiB,
|
|
1
|
+
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../src/m3/ecore/importer.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/index.d.ts
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.d.ts.map
|
package/dist/m3/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
package/dist/m3/index.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
|
@@ -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,
|
|
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
|
-
?
|
|
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":"AAAA,OAAO,EACH,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,kBAAkB,EAElB,SAAS,EACT,QAAQ,EACR,IAAI,EAEJ,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EAER,UAAU,EACb,MAAM,eAAe,CAAA;AAGtB,gCAAgC;AAChC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAG3D,MAAM,OAAO,GAAG,CAAmB,EAAO,EAAE,SAAiB,EAAU,EAAE,CACrE,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAExE,MAAM,SAAS,GAAG,CAAmB,GAAiB,EAAU,EAAE,CAC9D,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;AAGzC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE;IAEpC,IAAI,IAAI,YAAY,UAAU,EAAE;QAC5B,OAAO,cAAc,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;EAE7P,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;KAC7B;IAED,IAAI,IAAI,YAAY,OAAO,EAAE;QACzB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;EAEtU,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;KAC7B;IAED,IAAI,IAAI,YAAY,SAAS,EAAE;QAC3B,OAAO,aAAa,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;EAEzK,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;KAC7B;IAED,IAAI,IAAI,YAAY,IAAI,EAAE;QACtB,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;KACpM;IAED,IAAI,IAAI,YAAY,WAAW,EAAE;QAC7B,OAAO,eAAe,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;EAE1E,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;KAC7B;IAED,IAAI,IAAI,YAAY,kBAAkB,EAAE;QACpC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;KACxB;IAED,IAAI,IAAI,YAAY,QAAQ,EAAE;QAC1B,OAAO,YAAY,IAAI,CAAC,IAAI;eACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAC/C,CAAC,CAAC;EACR,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC7F;YACO,CAAC,CAAC,EAAE;;;EAGV,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;;CAE/B,CAAA;KACI;IAED,IAAI,IAAI,YAAY,aAAa,EAAE;QAC/B,OAAO,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAA;KACvC;IAED,IAAI,IAAI,YAAY,QAAQ,EAAE;QAC1B,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;KAC5E;IAED,OAAO,aAAa,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,EAAE,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,CAAA;AAEhG,CAAC,CAAA;AAGD,OAAO,EACH,MAAM,EACT,CAAA"}
|
|
@@ -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
|
|
3
|
-
|
|
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
|
|
12
|
+
return {
|
|
13
|
+
name: feature.name,
|
|
14
|
+
optional: false,
|
|
15
|
+
type: `unknown`
|
|
16
|
+
};
|
|
16
17
|
};
|
|
17
|
-
const fieldForLink = ({ name, type, optional, 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 }) =>
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
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(
|
|
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.
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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.
|
|
18
|
+
"@lionweb/core": "0.5.0-beta.8",
|
|
19
19
|
"littoral-templates": "0.2.2",
|
|
20
20
|
"nanoid": "4.0.2"
|
|
21
21
|
},
|
package/dist/id-generation.d.ts
DELETED
|
@@ -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":"AAAA,OAAO,EACH,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,UAAU,EAIV,WAAW,EAEX,SAAS,EACT,UAAU,EAGV,IAAI,EACJ,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EAER,UAAU,EACb,MAAM,eAAe,CAAA;AACtB,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAGrE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpC;;GAEG;AACH,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,MAAoB,EAAE,EAAE,CACjD,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAGxB,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IACzC,IAAI,OAAO,YAAY,IAAI,EAAE;QACzB,OAAO,YAAY,CAAC,OAAO,CAAC,CAAA;KAC/B;IACD,IAAI,OAAO,YAAY,QAAQ,EAAE;QAC7B,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAA;KACnC;IACD,OAAO,GAAG,OAAO,CAAC,IAAI,YAAY,CAAA;AACtC,CAAC,CAAA;AAGD,MAAM,YAAY,GAAG,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAO,EAAE,EAAE,CAC5D,GAAG,IAAI,GAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;AAChH,0CAA0C;AAGlD,MAAM,SAAS,GAAG,CAAC,QAA6B,EAAE,EAAE;IAChD,QAAQ,QAAQ,EAAE;QACd,KAAK,iBAAiB,CAAC,eAAe,CAAC,CAAC,OAAO,SAAS,CAAA;QACxD,KAAK,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,QAAQ,CAAA;QACtD,KAAK,iBAAiB,CAAC,eAAe,CAAC,CAAC,OAAO,QAAQ,CAAA;QACvD,KAAK,iBAAiB,CAAC,YAAY,CAAC,CAAC,OAAO,SAAS,CAAA;QAErD,KAAK,UAAU,CAAC;QAChB;YACI,OAAO,SAAS,CAAA;KACvB;AACL,CAAC,CAAA;AAGD,MAAM,gBAAgB,GAAG,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAW,EAAE,EAAE,CAC1D,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAA;AAGxD,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAE,EAAE,CACxC,MAAM,KAAK,kBAAkB,CAAC,MAAM,CAAA;AAGxC,MAAM,kBAAkB,GAAG,CAAC,MAAsB,EAAW,EAAE;IAC3D,IAAI,MAAM,YAAY,OAAO,EAAE;QAC3B,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KAC1C;IACD,IAAI,MAAM,YAAY,SAAS,EAAE;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KACvC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAGD,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAE,EAAE,CACpD;IACI,QAAQ,WAAW,CAAC,IAAI,IAAI;IAC5B,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,GAAG;IACH,EAAE;CACL,CAAA;AAEL,MAAM,oBAAoB,GAAG,CAAC,QAAuB,EAAE,EAAE,CACrD;IACI,eAAe,QAAQ,CAAC,IAAI,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG;IACxD,EAAE;CACL,CAAA;AAGL,MAAM,CAAN,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IACzB,yEAAY,CAAA;AAChB,CAAC,EAFW,iBAAiB,KAAjB,iBAAiB,QAE5B;AAGD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAkB,EAAE,GAAG,iBAAsC,EAAE,EAAE;IAEhG,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE;QAExC,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAA;QACtB,MAAM,UAAU,GAAG;YACf,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,OAAO,CAAC,UAAU;SACxB,CAAA;QACD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACrF,MAAM,cAAc,GAChB,OAAO,CAAC,QAAQ;YACZ,CAAC,CAAC,CACE,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC1D,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC;gBACrE,CAAC,CAAC,EAAE,CACX;YACD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnB,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAA;QAE7F,OAAO;YACH,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;YACvH,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,CAAC;oBACH,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,oBAAoB,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7F,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC9B,aAAa;wBACb,MAAM,CACF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CACxC;wBACD,IAAI;qBACP,CAAC;iBACL,CAAC;gBACF,IAAI,CAAI,mDAAmD;aAC9D,CAAC;YACF,EAAE;SACL,CAAA;IAEL,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,OAAkB,EAAE,EAAE;QAE5C,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAA;QACtB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAE3C,OAAO;YACH,gCAAgC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;YAC3F,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC9B,aAAa;wBACb,MAAM,CACF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CACxC;wBACD,IAAI;qBACP,CAAC;iBACL,CAAC;gBACF,IAAI,CAAI,mDAAmD;aAC9D,CAAC;YACF,EAAE;SACL,CAAA;IAEL,CAAC,CAAA;IAED,8IAA8I;IAE9I,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAE,EAAE;QACrD,mBAAmB;QACnB,IAAI,MAAM,YAAY,OAAO,EAAE;YAC3B,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;SAChC;QACD,IAAI,MAAM,YAAY,WAAW,EAAE;YAC/B,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;SACpC;QACD,IAAI,MAAM,YAAY,SAAS,EAAE;YAC7B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;SAClC;QACD,IAAI,MAAM,YAAY,aAAa,EAAE;YACjC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;SACtC;QACD,OAAO;YACH,iCAAiC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG;YAC3E,EAAE;SACL,CAAA;IACL,CAAC,CAAA;IAED,MAAM,aAAa,GAAG;QAClB,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACpE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,CAAK,uDAAuD;KAC7I,CAAA;IAED,OAAO,QAAQ,CACX;QACI,qCAAqC;QACrC,oEAAoE;QACpE,EAAE;QACF;;kBAEM,QAAQ,CAAC,IAAI;kBACb,QAAQ,CAAC,OAAO;IAC9B;QACQ,EAAE;QACF,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC5F,EAAE;QACF,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACxD,eAAe,QAAQ,CAAC,IAAI,UAAU,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;KACpH,CACJ,CAAA;AACL,CAAC,CAAA"}
|
|
File without changes
|