@keymanapp/kmc-model-info 17.0.85-alpha

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/Makefile ADDED
@@ -0,0 +1,38 @@
1
+ #
2
+ # Keyman Developer - kmc Model-Info Compiler Makefile
3
+ #
4
+
5
+ !include ..\Defines.mak
6
+
7
+ # We don't depend on configure here because kmc-keyboard does that already
8
+ build: .virtual
9
+ $(GIT_BASH_FOR_KEYMAN) build.sh build
10
+
11
+ configure: .virtual
12
+ $(GIT_BASH_FOR_KEYMAN) build.sh configure
13
+
14
+ clean: .virtual
15
+ $(GIT_BASH_FOR_KEYMAN) build.sh clean
16
+
17
+ test: .virtual
18
+ $(GIT_BASH_FOR_KEYMAN) build.sh test
19
+
20
+ # build.sh bundle must be run from shell as it requires a temp folder to be
21
+ # passed in. See inst/download.in.mak for instantiation.
22
+
23
+ publish: .virtual
24
+ $(GIT_BASH_FOR_KEYMAN) build.sh publish
25
+
26
+ signcode:
27
+ @rem nothing to do
28
+
29
+ wrap-symbols:
30
+ @rem nothing to do
31
+
32
+ test-manifest:
33
+ @rem nothing to do
34
+
35
+ install:
36
+ @rem nothing to do
37
+
38
+ !include ..\Target.mak
@@ -0,0 +1,2 @@
1
+ export declare const minKeymanVersion = "12.0";
2
+ //# sourceMappingURL=min-keyman-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min-keyman-version.d.ts","sourceRoot":"","sources":["../../src/min-keyman-version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const minKeymanVersion = '12.0';
2
+ //# sourceMappingURL=min-keyman-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min-keyman-version.js","sourceRoot":"","sources":["../../src/min-keyman-version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Merges a source .model_info file with metadata extracted from .kps file and
3
+ * compiled files to produce a comprehensive .model_info file.
4
+ */
5
+ /// <reference path="model-info-file.d.ts" />
6
+ /// <reference types="@keymanapp/kmc-package/kmp-json-file" />
7
+ import { type KmpJsonFile } from "@keymanapp/kmc-package";
8
+ export declare class ModelInfoOptions {
9
+ /** The identifier for the model */
10
+ model_id: string;
11
+ /** The data from the .kps file, transformed to kmp.json */
12
+ kmpJsonData: KmpJsonFile;
13
+ /** The path in the keymanapp/lexical-models repo where this model may be found (optional) */
14
+ sourcePath?: string;
15
+ /** The compiled model filename and relative path (.js) */
16
+ modelFileName: string;
17
+ /** The compiled package filename and relative path (.kmp) */
18
+ kmpFileName: string;
19
+ }
20
+ /**
21
+ * Merges source .model_info file with metadata from the model and package source file.
22
+ * This function is intended for use within the lexical-models repository. While many of the
23
+ * parameters could be deduced from each other, they are specified here to reduce the
24
+ * number of places the filenames are constructed.
25
+ *
26
+ * @param sourceModelInfoFileName Path for the source .model_info file
27
+ * @param destModelInfoFileName Path to write the merged .model_info file to
28
+ * @param options Details on files from which to extract additional metadata
29
+ */
30
+ export declare function writeMergedModelMetadataFile(sourceModelInfoFileName: string, destModelInfoFileName: string, options: ModelInfoOptions): void;
31
+ //# sourceMappingURL=model-info-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-info-compiler.d.ts","sourceRoot":"","sources":["../../src/model-info-compiler.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;AASH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,gBAAgB;IAC3B,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,2DAA2D;IAC3D,WAAW,EAAE,WAAW,CAAC;IAEzB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IAEtB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CACxC,uBAAuB,EAAE,MAAM,EAC/B,qBAAqB,EAAE,MAAM,EAC7B,OAAO,EAAE,gBAAgB,QA4F5B"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Merges a source .model_info file with metadata extracted from .kps file and
3
+ * compiled files to produce a comprehensive .model_info file.
4
+ */
5
+ /// <reference path="../../kmc-package/src/kmp-json-file.ts" />
6
+ /// <reference path="./model-info-file.ts" />
7
+ import * as fs from "fs";
8
+ import * as path from "path";
9
+ import { minKeymanVersion } from "./min-keyman-version.js";
10
+ export class ModelInfoOptions {
11
+ /** The identifier for the model */
12
+ model_id;
13
+ /** The data from the .kps file, transformed to kmp.json */
14
+ kmpJsonData;
15
+ /** The path in the keymanapp/lexical-models repo where this model may be found (optional) */
16
+ sourcePath;
17
+ /** The compiled model filename and relative path (.js) */
18
+ modelFileName;
19
+ /** The compiled package filename and relative path (.kmp) */
20
+ kmpFileName;
21
+ }
22
+ ;
23
+ /**
24
+ * Merges source .model_info file with metadata from the model and package source file.
25
+ * This function is intended for use within the lexical-models repository. While many of the
26
+ * parameters could be deduced from each other, they are specified here to reduce the
27
+ * number of places the filenames are constructed.
28
+ *
29
+ * @param sourceModelInfoFileName Path for the source .model_info file
30
+ * @param destModelInfoFileName Path to write the merged .model_info file to
31
+ * @param options Details on files from which to extract additional metadata
32
+ */
33
+ export function writeMergedModelMetadataFile(sourceModelInfoFileName, destModelInfoFileName, options) {
34
+ /*
35
+ * Model info looks like this:
36
+ *
37
+ * {
38
+ * "name": "Example Template Model"
39
+ * "license": "mit",
40
+ * "version": "1.0.0",
41
+ * "languages": ["en"],
42
+ * "authorName": "Example Author",
43
+ * "authorEmail": "nobody@example.com",
44
+ * "description": "Example wordlist model"
45
+ * }
46
+ *
47
+ * For full documentation, see:
48
+ * https://help.keyman.com/developer/cloud/model_info/1.0/
49
+ */
50
+ let model_info = JSON.parse(fs.readFileSync(sourceModelInfoFileName, 'utf8'));
51
+ //
52
+ // Build merged .model_info file
53
+ // https://api.keyman.com/schemas/model_info.source.json and
54
+ // https://api.keyman.com/schemas/model_info.distribution.json
55
+ // https://help.keyman.com/developer/cloud/model_info/1.0
56
+ //
57
+ function setModelMetadata(field, expected, warn = true) {
58
+ if (model_info[field] && model_info[field] !== expected) {
59
+ if (warn || typeof warn === 'undefined')
60
+ console.warn(`Warning: source ${sourceModelInfoFileName} field ${field} value "${model_info[field]}" does not match "${expected}" found in source file metadata.`);
61
+ }
62
+ // TypeScript gets upset with this assignment, because it cannot deduce
63
+ // the exact type of model_info[field] -- there are many possibilities!
64
+ // So we assert that it's unknown so that TypeScript can chill.
65
+ model_info[field] = model_info[field] || expected;
66
+ }
67
+ //
68
+ // Merge model info file -- some fields have "special" behaviours -- see below
69
+ //
70
+ setModelMetadata('id', options.model_id);
71
+ setModelMetadata('name', options.kmpJsonData.info.name.description);
72
+ let author = options.kmpJsonData.info.author;
73
+ setModelMetadata('authorName', author.description);
74
+ if (author.url) {
75
+ // we strip the mailto: from the .kps file for the .model_info
76
+ let match = author.url.match(/^(mailto\:)?(.+)$/);
77
+ if (match === null) {
78
+ throw new Error(`Invalid author email: ${author.url}`);
79
+ }
80
+ let email = match[2];
81
+ setModelMetadata('authorEmail', email, false);
82
+ }
83
+ // extract the language identifiers from the language metadata
84
+ // arrays for each of the lexical models in the kmp.json file,
85
+ // and merge into a single array of identifiers in the
86
+ // .model_info file.
87
+ model_info.languages = model_info.languages || options.kmpJsonData.lexicalModels.reduce((a, e) => [].concat(a, e.languages.map((f) => f.id)), []);
88
+ setModelMetadata('lastModifiedDate', (new Date).toISOString());
89
+ setModelMetadata('packageFilename', path.basename(options.kmpFileName));
90
+ // Always overwrite with actual file size
91
+ model_info.packageFileSize = fs.statSync(options.kmpFileName).size;
92
+ setModelMetadata('jsFilename', path.basename(options.modelFileName));
93
+ // Always overwrite with actual file size
94
+ model_info.jsFileSize = fs.statSync(options.modelFileName).size;
95
+ // Always overwrite source data
96
+ model_info.packageIncludes = options.kmpJsonData.files.filter((e) => !!e.name.match(/.[ot]tf$/i)).length ? ['fonts'] : [];
97
+ setModelMetadata('version', options.kmpJsonData.info.version.description);
98
+ // The minimum Keyman version detected in the package file may be manually set higher by the developer
99
+ setModelMetadata('minKeymanVersion', minKeymanVersion, false);
100
+ if (options.sourcePath) {
101
+ setModelMetadata('sourcePath', options.sourcePath);
102
+ }
103
+ fs.writeFileSync(destModelInfoFileName, JSON.stringify(model_info, null, 2));
104
+ }
105
+ //# sourceMappingURL=model-info-compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-info-compiler.js","sourceRoot":"","sources":["../../src/model-info-compiler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+DAA+D;AAC/D,6CAA6C;AAE7C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,OAAO,gBAAgB;IAC3B,mCAAmC;IACnC,QAAQ,CAAS;IAEjB,2DAA2D;IAC3D,WAAW,CAAc;IAEzB,6FAA6F;IAC7F,UAAU,CAAU;IAEpB,0DAA0D;IAC1D,aAAa,CAAS;IAEtB,6DAA6D;IAC7D,WAAW,CAAS;CACrB;AAAA,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CACxC,uBAA+B,EAC/B,qBAA6B,EAC7B,OAAyB;IAG3B;;;;;;;;;;;;;;;QAeI;IACJ,IAAI,UAAU,GAAkB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7F,EAAE;IACF,gCAAgC;IAChC,4DAA4D;IAC5D,8DAA8D;IAC9D,yDAAyD;IACzD,EAAE;IAEF,SAAS,gBAAgB,CAAC,KAA0B,EAAE,QAAiB,EAAE,OAAgB,IAAI;QAC3F,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YACvD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW;gBACrC,OAAO,CAAC,IAAI,CAAC,mBAAmB,uBAAuB,UAAU,KAAK,WAAW,UAAU,CAAC,KAAK,CAAC,qBAAqB,QAAQ,kCAAkC,CAAC,CAAC;SACtK;QACD,uEAAuE;QACvE,uEAAuE;QACvE,+DAA+D;QACpD,UAAU,CAAC,KAAK,CAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;IAChE,CAAC;IAED,EAAE;IACF,8EAA8E;IAC9E,EAAE;IAEF,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEpE,IAAI,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7C,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,MAAM,CAAC,GAAG,EAAE;QACd,8DAA8D;QAC9D,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;SACxD;QAED,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KAC/C;IAED,8DAA8D;IAC9D,8DAA8D;IAC9D,sDAAsD;IACtD,oBAAoB;IAEpB,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElJ,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAExE,yCAAyC;IACzC,UAAU,CAAC,eAAe,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;IAEnE,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IAErE,yCAAyC;IACzC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;IAEhE,+BAA+B;IAC/B,UAAU,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1H,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE1E,sGAAsG;IACtG,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAE9D,IAAG,OAAO,CAAC,UAAU,EAAE;QACrB,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;KACpD;IAED,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface ModelInfoFile {
2
+ id?: string;
3
+ name?: string;
4
+ authorName?: string;
5
+ authorEmail?: string;
6
+ description?: string;
7
+ license: "mit";
8
+ languages: Array<string>;
9
+ lastModifiedDate?: string;
10
+ links: ModelInfoFileLink[];
11
+ packageFilename?: string;
12
+ packageFileSize?: number;
13
+ jsFilename?: string;
14
+ jsFileSize?: number;
15
+ isRTL?: boolean;
16
+ packageIncludes?: string[];
17
+ version?: string;
18
+ minKeymanVersion?: string;
19
+ helpLink?: string;
20
+ sourcePath?: string;
21
+ related?: ModelInfoFileRelated[];
22
+ }
23
+ export interface ModelInfoFileLink {
24
+ name: string;
25
+ url: string;
26
+ }
27
+ export interface ModelInfoFileRelated {
28
+ deprecates?: string;
29
+ deprecatedBy?: string;
30
+ note?: string;
31
+ }
32
+ //# sourceMappingURL=model-info-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-info-file.d.ts","sourceRoot":"","sources":["../../src/model-info-file.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model-info-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-info-file.js","sourceRoot":"","sources":["../../src/model-info-file.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.full.d.ts","../src/min-keyman-version.ts","../../kmc-package/build/src/kmp-json-file.d.ts","../src/model-info-file.ts","../../kmc-package/build/src/kmp-compiler.d.ts","../src/model-info-compiler.ts","../node_modules/@types/mocha/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/ts3.6/base.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/base.d.ts","../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/connect/index.d.ts","../../../../node_modules/@types/body-parser/index.d.ts","../../../../node_modules/keyv/src/index.d.ts","../../../../node_modules/@types/http-cache-semantics/index.d.ts","../../../../node_modules/@types/responselike/index.d.ts","../../../../node_modules/@types/cacheable-request/index.d.ts","../../../../node_modules/@types/chai/index.d.ts","../../../../node_modules/@types/component-emitter/index.d.ts","../../../../node_modules/@types/cookie/index.d.ts","../../../../node_modules/@types/cors/index.d.ts","../../../../node_modules/@types/range-parser/index.d.ts","../../../../node_modules/@types/qs/index.d.ts","../../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../../node_modules/@types/mime/index.d.ts","../../../../node_modules/@types/serve-static/index.d.ts","../../../../node_modules/@types/express/index.d.ts","../../../../node_modules/@types/git-diff/index.d.ts","../../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../../node_modules/@types/json-buffer/index.d.ts","../../../../node_modules/@types/keyv/index.d.ts","../../../../node_modules/@types/multer/index.d.ts","../../../../node_modules/@types/semver/classes/semver.d.ts","../../../../node_modules/@types/semver/functions/parse.d.ts","../../../../node_modules/@types/semver/functions/valid.d.ts","../../../../node_modules/@types/semver/functions/clean.d.ts","../../../../node_modules/@types/semver/functions/inc.d.ts","../../../../node_modules/@types/semver/functions/diff.d.ts","../../../../node_modules/@types/semver/functions/major.d.ts","../../../../node_modules/@types/semver/functions/minor.d.ts","../../../../node_modules/@types/semver/functions/patch.d.ts","../../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../../node_modules/@types/semver/functions/compare.d.ts","../../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../../node_modules/@types/semver/functions/sort.d.ts","../../../../node_modules/@types/semver/functions/rsort.d.ts","../../../../node_modules/@types/semver/functions/gt.d.ts","../../../../node_modules/@types/semver/functions/lt.d.ts","../../../../node_modules/@types/semver/functions/eq.d.ts","../../../../node_modules/@types/semver/functions/neq.d.ts","../../../../node_modules/@types/semver/functions/gte.d.ts","../../../../node_modules/@types/semver/functions/lte.d.ts","../../../../node_modules/@types/semver/functions/cmp.d.ts","../../../../node_modules/@types/semver/functions/coerce.d.ts","../../../../node_modules/@types/semver/classes/comparator.d.ts","../../../../node_modules/@types/semver/classes/range.d.ts","../../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../../node_modules/@types/semver/ranges/valid.d.ts","../../../../node_modules/@types/semver/ranges/outside.d.ts","../../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../../node_modules/@types/semver/ranges/subset.d.ts","../../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../../node_modules/@types/semver/index.d.ts","../../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../../node_modules/@types/sinon/index.d.ts","../../../../node_modules/@types/sinon-chai/index.d.ts","../../../../node_modules/@types/ws/index.d.ts","../../../../node_modules/@types/xml2js/lib/processors.d.ts","../../../../node_modules/@types/xml2js/index.d.ts","../../../../node_modules/@types/yauzl/index.d.ts","../../kmc-package/src/kmp-json-file.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","impliedFormat":1},{"version":"7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","impliedFormat":1},{"version":"8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","impliedFormat":1},{"version":"5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","impliedFormat":1},{"version":"4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","impliedFormat":1},{"version":"1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","impliedFormat":1},{"version":"746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","impliedFormat":1},{"version":"d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","impliedFormat":1},{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true,"impliedFormat":1},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true,"impliedFormat":1},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true,"impliedFormat":1},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true,"impliedFormat":1},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true,"impliedFormat":1},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true,"impliedFormat":1},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true,"impliedFormat":1},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true,"impliedFormat":1},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true,"impliedFormat":1},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true,"impliedFormat":1},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true,"impliedFormat":1},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true,"impliedFormat":1},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true,"impliedFormat":1},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true,"impliedFormat":1},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true,"impliedFormat":1},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true,"impliedFormat":1},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true,"impliedFormat":1},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c339adcd35b01e3115c7ebe980b935b30093ac2dbe46dff36fed112e462afd2","impliedFormat":1},{"version":"95057fe078b4f02927b18b2461d7d473152c13d4d8241d32e25383d7df00adfb","signature":"ff523b2307c84b7283351186c8e9b1c6158e44d7270f7339cc106aee25831cfa","impliedFormat":99},{"version":"5fee0cc2b5564d5ffd18c552c34cd4657fa9a528a896ab29f33d80b77ffdfbf2","impliedFormat":99},{"version":"1b49b2cd09b0a772b4ac5c726702e27893438aa9007fdb4f44ac6ebb6ffd74ed","signature":"7a1096029c339caaeb7596af3a96ca0f11b54ff2a43972785536bf54e04a96c4","impliedFormat":99},{"version":"1ba07348f589a26846ef080f800864bd69fd115cda561c90d4cf64ac350d6bcb","impliedFormat":99},{"version":"9bf31f4c38794e759172b74875b5424583291ca4ed2ffeba27ec51f899ef58e9","signature":"983725ecca2ae7fa77e1ef2a6c9110496b1006b3ed3041c68c5f1f7241f83cc5","impliedFormat":99},{"version":"c4c03cf65951d980ba618ae9601d10438730803fc9c8a1f7b34af8739981e205","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb928b21f5a16a1d64a8e2e74a3f389ace89da74820f070f893221213c50aa3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"5cd9c902b221c5aca739cbc3fb4339c3c5115198808d4f5d7610a674e4b9c66d","impliedFormat":1},{"version":"fe892fea1e75a442fffb4a604d7eeb451e858787a9f2f01c4e83bf12a3b5048d","impliedFormat":1},{"version":"d5c80b931928fbd06f967ce4bdca24fbb37523773ac2c7c87458a689154351fb","impliedFormat":1},{"version":"fcd718b2feb2820a9844536a1a2fbc77a3da90820e02894d40f879a789f46560","impliedFormat":1},{"version":"525c8fc510d9632d2a0a9de2d41c3ac1cdd79ff44d3b45c6d81cacabb683528d","impliedFormat":1},{"version":"ece75b9bfc916f9ccc4e8a9ddee1dda5c987804fbe3b60a01fc120fae731c2ce","impliedFormat":1},{"version":"4e146a0b69c893ae1538aff8b76f4e8796755bdd45050a83099348d59863437e","impliedFormat":1},{"version":"a1dc9cfe8be39cbcef62692510b450ab35553ef39382715c88763d0c477704a9","impliedFormat":1},{"version":"05e732266b5a36789fd9eb846b1f45fec1b6e318b740e3f20fc22fd95f9ebf31","impliedFormat":1},{"version":"985c3d1b62a4a4f563e3ca3e3a47717cff7d82c81883d62ecf08d8417eb477c4","impliedFormat":1},{"version":"8059976d7f408e08be353de1833172139bbaa70fc33d01b98249f7226c122119","impliedFormat":1},{"version":"1733741cf2adc5926ac58c66004268cdc3d34b2ff6250f5114db14253ea02ce1","impliedFormat":1},{"version":"df18df925483862e8ff216d7b17e50b7311a3add2fb7feb128d321ec099352ca","impliedFormat":1},{"version":"b6b09f944889a23f19eba6e0f112030e55160c5e1a225012ab2349c582ba5595","impliedFormat":1},{"version":"152af7c23ec219f632afa2d861abc65993f56cd39a4f3a4018515dbc05950a74","impliedFormat":1},{"version":"3a0bdc4c5b6f84a1abb5356d7a7fa1f96ac6c5b5646eec3ef2b33c1ed095e155","impliedFormat":1},{"version":"03394bf8deb8781b490ae9266a843fbdf00647947d79e25fcbf1d89a9e9c8a66","impliedFormat":1},{"version":"56a15cc211894d79aa44cbb46c276bfd3f10458a61bff2dec99114db8a7e71e3","impliedFormat":1},{"version":"1a5366b0d4d0153955fd85777c72d35979dabc0537649da6eade09007c0d080a","impliedFormat":1},{"version":"61c84c3b0eb6e60196d15ae5e21793a1d4241c547f0bdd0529ffae838d1a073c","impliedFormat":1},{"version":"272522db288a7e03f14ff930407b776357082efce20369ea42239a57af9c7f81","impliedFormat":1},{"version":"3a8848a9c307429b861402cc69bc472ffe0c05b86474fc158723169161e16389","impliedFormat":1},{"version":"3f6a1fd73c9dc3bd7f4b79bc075297ca6527904df69b0f2c2c94e4c4c7d9a32c","impliedFormat":1},{"version":"8969e0b4d22ca77ad011c8fc4a25ec5d515bdfae4ecbd22608ed0d5c38829c1e","impliedFormat":1},{"version":"b2fe368abdc803b82d27bd27f168d106804422ade198c3c085e2519b195ebd26","impliedFormat":1},{"version":"93acebcaa2e94903a83cebf3f109eb2917acab902045ee8c3d8f69f29baafa68","impliedFormat":1},{"version":"8e2f9031210a8fc27af8844bf69f964307d6013c90336bea9fb5d6ba43248c78","impliedFormat":1},{"version":"17e157df6125098a1a34eb4d201ee4ac03bbe97e471ab5627bb2c40fce555948","impliedFormat":1},{"version":"b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9","impliedFormat":1},{"version":"4bdb7b15b3f9a3ee0b856c7b991d0e522f8ce92f7b66ae8ac00e61d1269dd10a","impliedFormat":1},{"version":"978aecd2e6bc2ac094e9a35eda98ff8586713857b3655e7c98ca5ed8f7d50662","impliedFormat":1},{"version":"a185b8e0d7a4ae078a79339d63e98177813aac39256f69f788eaf5c360aa756f","impliedFormat":1},{"version":"c6b71a0585467900820167370738cfc256e9635471725a7ba1d24a3a262984e5","impliedFormat":1},{"version":"8bf10278b5c28698a73f800fde911bcc33d405a15f7bddab1c4ade637b69a822","impliedFormat":1},{"version":"e880a08fbb0d9ee2f733f9183f4d1bdb75bc9e0e64060a8a1fc30540791fcded","impliedFormat":1},{"version":"b0b4974c11712db7a362ae6fa8ea0f0042a7c34da5f0c80302650ffe921e3d87","impliedFormat":1},{"version":"69fc4a10650eff3416ba5c2f7ce71744734928a7135ebe5a63c61d2d03ca3ec3","impliedFormat":1},{"version":"13918848c4e07d1094164112bd7fd151d61cbb949ceef340a2a4595cd609afb6","impliedFormat":1},{"version":"9af6a9de7bd818e68c4236f20027ff4b19387c2269a6952945d1a716c177cc4d","impliedFormat":1},{"version":"3497438242251378cf232f36a7fabac70e7bd8229d68dac8955534e63ffc8ff4","impliedFormat":1},{"version":"e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","impliedFormat":1},{"version":"e033253e77794e1595f01372623b631d986e04dcb47d08948301fd2652886a83","impliedFormat":1},{"version":"6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","impliedFormat":1},{"version":"afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","impliedFormat":1},{"version":"cd71905370ede696577acc23c695181e618a7d08616b1d06b43d3e6a12880fab","impliedFormat":1},{"version":"cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","impliedFormat":1},{"version":"3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","impliedFormat":1},{"version":"f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","impliedFormat":1},{"version":"c8747693e5872ad5ef3aa016731a06915e1c34dae987829d9aa5bd40c7a2c54b","affectsGlobalScope":true,"impliedFormat":1},{"version":"567a315b240a060518c532d38a46803b6d35e75dc14a9be435b6dc20c816741e","impliedFormat":1},{"version":"117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","impliedFormat":1},{"version":"6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","impliedFormat":1},{"version":"16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","impliedFormat":1},{"version":"ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc","impliedFormat":1},{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true,"impliedFormat":1},{"version":"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","impliedFormat":1},{"version":"0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","impliedFormat":1},{"version":"15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","impliedFormat":1},{"version":"71f1e965980d8edbd2c905f35c4341c2e86afc6f9b1d105342db2f6a85876089","impliedFormat":1},{"version":"8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","impliedFormat":1},{"version":"75bdc1b420f0ffc6cc6fd0b6694d89f5072bf755b4e6c7e65a2fda797ca0bb8a","impliedFormat":1},{"version":"fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","impliedFormat":1},{"version":"3ee881b5584c5718935e6fe1fc1080b997682a3c8bebd17d51dccfd41c3e7da6","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","impliedFormat":1},{"version":"2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","impliedFormat":1},{"version":"42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","impliedFormat":1},{"version":"d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","impliedFormat":1},{"version":"77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","impliedFormat":1},{"version":"7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","impliedFormat":1},{"version":"906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","impliedFormat":1},{"version":"5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","impliedFormat":1},{"version":"c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","impliedFormat":1},{"version":"e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","impliedFormat":1},{"version":"e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","impliedFormat":1},{"version":"9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","impliedFormat":1},{"version":"0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","impliedFormat":1},{"version":"71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","impliedFormat":1},{"version":"c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","impliedFormat":1},{"version":"2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","impliedFormat":1},{"version":"479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","impliedFormat":1},{"version":"ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","impliedFormat":1},{"version":"f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","impliedFormat":1},{"version":"86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","impliedFormat":1},{"version":"2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","impliedFormat":1},{"version":"a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","impliedFormat":1},{"version":"b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","impliedFormat":1},{"version":"61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","impliedFormat":1},{"version":"6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","impliedFormat":1},{"version":"c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","impliedFormat":1},{"version":"38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","impliedFormat":1},{"version":"d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","impliedFormat":1},{"version":"3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","impliedFormat":1},{"version":"b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","impliedFormat":1},{"version":"f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","impliedFormat":1},{"version":"843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","impliedFormat":1},{"version":"f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","impliedFormat":1},{"version":"6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","impliedFormat":1},{"version":"e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","impliedFormat":1},{"version":"a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","impliedFormat":1},{"version":"a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","impliedFormat":1},{"version":"da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","impliedFormat":1},{"version":"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","impliedFormat":1},{"version":"354abbae08f72ea982b1a767a8908f1b3efe8bbe53955c64f9c0c249c8832d5d","impliedFormat":1},{"version":"4f0ad52a7fbd6bfba88ec22ec719b6956a0fc647030462f9db490e74236d116f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4358a89fcd9c579f84a6c68e2ce44ca91b07e4db3f8f403c2b7a72c1a1e04b6","impliedFormat":1},{"version":"c0288f54de6f544706a3150c8b579b1a975870695c4be866f727ece6a16f3976","impliedFormat":1},{"version":"f68e56efa9fc1fbdfac28bf07b5b1061161d243f4d9616d1606ce880e2d9d8c4","impliedFormat":1},{"version":"b2d70a269840a9528db473ac7565442434333a05c1f66801a7a672e82beb903e","impliedFormat":1}],"options":{"alwaysStrict":true,"composite":true,"declaration":true,"declarationMap":true,"module":7,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"outDir":"./src","rootDir":"../src","sourceMap":true,"strictBindCallApply":true,"strictFunctionTypes":true,"target":9},"fileIdsList":[[104,105],[76,83,92],[68,76,83],[92],[74,76,83],[76],[76,92,98],[76,83,92,98],[76,77,78,83,92,95,98],[76,78,95,98],[104,106],[74,76,92],[66],[76,92],[90,99,101],[72,74,83,92],[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],[83],[89],[59,61,62,77,85,176],[60],[78,107,108],[76,78,98,107,110,111,112],[78,107],[78],[76,78,107,118,119],[109,119,120,122],[76,107],[92,123],[78,92,107],[129,168],[129,153,168],[168],[129],[129,154,168],[129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167],[154,168],[78,107,121],[114,170],[169],[76,78,80,92,95,98,103,107],[76,107,173],[76,92,107],[62]],"referencedMap":[[106,1],[68,2],[69,3],[72,4],[73,5],[75,6],[76,6],[77,7],[78,8],[79,9],[80,10],[107,11],[81,6],[83,12],[86,13],[90,14],[91,15],[92,6],[95,16],[104,17],[97,18],[98,19],[102,14],[103,4],[63,20],[62,21],[109,22],[113,23],[108,24],[117,25],[120,26],[123,27],[127,28],[128,29],[112,30],[153,31],[154,32],[129,33],[132,33],[151,31],[152,31],[142,31],[141,34],[139,31],[134,31],[147,31],[145,31],[149,31],[133,31],[146,31],[150,31],[135,31],[136,31],[148,31],[130,31],[137,31],[138,31],[140,31],[144,31],[155,35],[143,31],[131,31],[168,36],[162,35],[164,37],[163,35],[156,35],[157,35],[159,35],[161,35],[165,37],[166,37],[158,37],[160,37],[122,38],[171,39],[170,40],[172,41],[174,42],[175,43],[110,6]],"exportedModulesMap":[[106,1],[68,2],[69,3],[72,4],[73,5],[75,6],[76,6],[77,7],[78,8],[79,9],[80,10],[107,11],[81,6],[83,12],[86,13],[90,14],[91,15],[92,6],[95,16],[104,17],[97,18],[98,19],[102,14],[103,4],[63,44],[62,21],[109,22],[113,23],[108,24],[117,25],[120,26],[123,27],[127,28],[128,29],[112,30],[153,31],[154,32],[129,33],[132,33],[151,31],[152,31],[142,31],[141,34],[139,31],[134,31],[147,31],[145,31],[149,31],[133,31],[146,31],[150,31],[135,31],[136,31],[148,31],[130,31],[137,31],[138,31],[140,31],[144,31],[155,35],[143,31],[131,31],[168,36],[162,35],[164,37],[163,35],[156,35],[157,35],[159,35],[161,35],[165,37],[166,37],[158,37],[160,37],[122,38],[171,39],[170,40],[172,41],[174,42],[175,43],[110,6]],"semanticDiagnosticsPerFile":[64,105,66,106,67,68,69,70,71,72,73,74,75,76,77,65,78,79,80,107,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,104,97,98,99,100,101,102,103,59,63,61,62,60,109,113,114,115,108,116,117,120,123,124,111,125,126,127,121,128,119,118,112,153,154,129,132,151,152,142,141,139,134,147,145,149,133,146,150,135,136,148,130,137,138,140,144,155,143,131,168,167,162,164,163,156,157,159,161,165,166,158,160,122,171,170,169,172,174,173,175,110,10,11,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,58,53,54,55,56,1,57,13,12],"latestChangedDtsFile":"./src/model-info-compiler.d.ts"},"version":"4.9.5"}
package/build.sh ADDED
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # Compiles the kmc lexical model model-info compiler.
4
+ #
5
+
6
+ # Exit on command failure and when using unset variables:
7
+ set -eu
8
+
9
+ ## START STANDARD BUILD SCRIPT INCLUDE
10
+ # adjust relative paths as necessary
11
+ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
12
+ . "${THIS_SCRIPT%/*}/../../../resources/build/build-utils.sh"
13
+ ## END STANDARD BUILD SCRIPT INCLUDE
14
+
15
+ cd "$THIS_SCRIPT_PATH"
16
+
17
+ . "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
18
+
19
+ builder_describe "Build Keyman kmc Lexical Model model-info Compiler module" \
20
+ "@/developer/src/kmc-package" \
21
+ "configure" \
22
+ "build" \
23
+ "clean" \
24
+ "test" \
25
+ "publish publish to npm" \
26
+ "--dry-run,-n don't actually publish, just dry run"
27
+ builder_describe_outputs \
28
+ configure /node_modules \
29
+ build /developer/src/kmc-model-info/build/src/model-info-compiler.js
30
+
31
+ builder_parse "$@"
32
+
33
+ #-------------------------------------------------------------------------------------------------------------------
34
+
35
+ if builder_start_action clean; then
36
+ rm -rf ./build/ ./tsconfig.tsbuildinfo
37
+ builder_finish_action success clean
38
+ fi
39
+
40
+ #-------------------------------------------------------------------------------------------------------------------
41
+
42
+ if builder_start_action configure; then
43
+ verify_npm_setup
44
+ builder_finish_action success configure
45
+ fi
46
+
47
+ #-------------------------------------------------------------------------------------------------------------------
48
+
49
+ if builder_start_action build; then
50
+ npm run build
51
+ builder_finish_action success build
52
+ fi
53
+
54
+ #-------------------------------------------------------------------------------------------------------------------
55
+
56
+ if builder_start_action test; then
57
+ #npm test - no tests as yet
58
+ builder_finish_action success test
59
+ fi
60
+
61
+ #-------------------------------------------------------------------------------------------------------------------
62
+
63
+ if builder_start_action publish; then
64
+ . "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
65
+ builder_publish_to_npm
66
+ builder_finish_action success publish
67
+ fi
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@keymanapp/kmc-model-info",
3
+ "description": "Keyman Developer .model_info compiler",
4
+ "keywords": [
5
+ "keyboard",
6
+ "keyman",
7
+ "unicode",
8
+ "lexical-model",
9
+ "predictive-text"
10
+ ],
11
+ "type": "module",
12
+ "exports": {
13
+ ".": "./build/src/model-info-compiler.js"
14
+ },
15
+ "scripts": {
16
+ "build": "tsc -b",
17
+ "test": "cd test && tsc -b && cd .. && c8 --reporter=lcov --reporter=text mocha",
18
+ "prepublishOnly": "npm run build"
19
+ },
20
+ "author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
21
+ "contributors": [
22
+ "Eddie Antonio Santos <Eddie.Santos@nrc-cnrc.gc.ca>",
23
+ "Joshua Horton"
24
+ ],
25
+ "license": "MIT",
26
+ "bugs": {
27
+ "url": "https://github.com/keymanapp/keyman/issues"
28
+ },
29
+ "dependencies": {
30
+ "@keymanapp/keyman-version": "*",
31
+ "@keymanapp/kmc-package": "*",
32
+ "@keymanapp/models-types": "*"
33
+ },
34
+ "devDependencies": {
35
+ "@types/chai": "^4.1.7",
36
+ "@types/mocha": "^5.2.7",
37
+ "@types/node": "^10.14.6",
38
+ "@types/xml2js": "^0.4.5",
39
+ "c8": "^7.12.0",
40
+ "chai": "^4.3.4",
41
+ "chalk": "^2.4.2",
42
+ "mocha": "^8.4.0",
43
+ "ts-node": "^9.1.1",
44
+ "typescript": "^4.9.5"
45
+ },
46
+ "mocha": {
47
+ "spec": "build/test/**/test-*.js",
48
+ "require": [
49
+ "source-map-support/register"
50
+ ]
51
+ },
52
+ "repository": {
53
+ "type": "git",
54
+ "url": "git+https://github.com/keymanapp/keyman.git"
55
+ },
56
+ "version": "17.0.85-alpha"
57
+ }
@@ -0,0 +1 @@
1
+ export const minKeymanVersion = '12.0';
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Merges a source .model_info file with metadata extracted from .kps file and
3
+ * compiled files to produce a comprehensive .model_info file.
4
+ */
5
+
6
+ /// <reference path="../../kmc-package/src/kmp-json-file.ts" />
7
+ /// <reference path="./model-info-file.ts" />
8
+
9
+ import * as fs from "fs";
10
+ import * as path from "path";
11
+ import { minKeymanVersion } from "./min-keyman-version.js";
12
+ import { ModelInfoFile } from "./model-info-file.js";
13
+ import { type KmpJsonFile } from "@keymanapp/kmc-package";
14
+
15
+ export class ModelInfoOptions {
16
+ /** The identifier for the model */
17
+ model_id: string;
18
+
19
+ /** The data from the .kps file, transformed to kmp.json */
20
+ kmpJsonData: KmpJsonFile;
21
+
22
+ /** The path in the keymanapp/lexical-models repo where this model may be found (optional) */
23
+ sourcePath?: string;
24
+
25
+ /** The compiled model filename and relative path (.js) */
26
+ modelFileName: string;
27
+
28
+ /** The compiled package filename and relative path (.kmp) */
29
+ kmpFileName: string;
30
+ };
31
+
32
+ /**
33
+ * Merges source .model_info file with metadata from the model and package source file.
34
+ * This function is intended for use within the lexical-models repository. While many of the
35
+ * parameters could be deduced from each other, they are specified here to reduce the
36
+ * number of places the filenames are constructed.
37
+ *
38
+ * @param sourceModelInfoFileName Path for the source .model_info file
39
+ * @param destModelInfoFileName Path to write the merged .model_info file to
40
+ * @param options Details on files from which to extract additional metadata
41
+ */
42
+ export function writeMergedModelMetadataFile(
43
+ sourceModelInfoFileName: string,
44
+ destModelInfoFileName: string,
45
+ options: ModelInfoOptions
46
+ ) {
47
+
48
+ /*
49
+ * Model info looks like this:
50
+ *
51
+ * {
52
+ * "name": "Example Template Model"
53
+ * "license": "mit",
54
+ * "version": "1.0.0",
55
+ * "languages": ["en"],
56
+ * "authorName": "Example Author",
57
+ * "authorEmail": "nobody@example.com",
58
+ * "description": "Example wordlist model"
59
+ * }
60
+ *
61
+ * For full documentation, see:
62
+ * https://help.keyman.com/developer/cloud/model_info/1.0/
63
+ */
64
+ let model_info: ModelInfoFile = JSON.parse(fs.readFileSync(sourceModelInfoFileName, 'utf8'));
65
+
66
+ //
67
+ // Build merged .model_info file
68
+ // https://api.keyman.com/schemas/model_info.source.json and
69
+ // https://api.keyman.com/schemas/model_info.distribution.json
70
+ // https://help.keyman.com/developer/cloud/model_info/1.0
71
+ //
72
+
73
+ function setModelMetadata(field: keyof ModelInfoFile, expected: unknown, warn: boolean = true) {
74
+ if (model_info[field] && model_info[field] !== expected) {
75
+ if (warn || typeof warn === 'undefined')
76
+ console.warn(`Warning: source ${sourceModelInfoFileName} field ${field} value "${model_info[field]}" does not match "${expected}" found in source file metadata.`);
77
+ }
78
+ // TypeScript gets upset with this assignment, because it cannot deduce
79
+ // the exact type of model_info[field] -- there are many possibilities!
80
+ // So we assert that it's unknown so that TypeScript can chill.
81
+ (<unknown> model_info[field]) = model_info[field] || expected;
82
+ }
83
+
84
+ //
85
+ // Merge model info file -- some fields have "special" behaviours -- see below
86
+ //
87
+
88
+ setModelMetadata('id', options.model_id);
89
+
90
+ setModelMetadata('name', options.kmpJsonData.info.name.description);
91
+
92
+ let author = options.kmpJsonData.info.author;
93
+ setModelMetadata('authorName', author.description);
94
+
95
+ if (author.url) {
96
+ // we strip the mailto: from the .kps file for the .model_info
97
+ let match = author.url.match(/^(mailto\:)?(.+)$/);
98
+ if (match === null) {
99
+ throw new Error(`Invalid author email: ${author.url}`);
100
+ }
101
+
102
+ let email = match[2];
103
+ setModelMetadata('authorEmail', email, false);
104
+ }
105
+
106
+ // extract the language identifiers from the language metadata
107
+ // arrays for each of the lexical models in the kmp.json file,
108
+ // and merge into a single array of identifiers in the
109
+ // .model_info file.
110
+
111
+ model_info.languages = model_info.languages || options.kmpJsonData.lexicalModels.reduce((a, e) => [].concat(a, e.languages.map((f) => f.id)), []);
112
+
113
+ setModelMetadata('lastModifiedDate', (new Date).toISOString());
114
+ setModelMetadata('packageFilename', path.basename(options.kmpFileName));
115
+
116
+ // Always overwrite with actual file size
117
+ model_info.packageFileSize = fs.statSync(options.kmpFileName).size;
118
+
119
+ setModelMetadata('jsFilename', path.basename(options.modelFileName));
120
+
121
+ // Always overwrite with actual file size
122
+ model_info.jsFileSize = fs.statSync(options.modelFileName).size;
123
+
124
+ // Always overwrite source data
125
+ model_info.packageIncludes = options.kmpJsonData.files.filter((e) => !!e.name.match(/.[ot]tf$/i)).length ? ['fonts'] : [];
126
+
127
+ setModelMetadata('version', options.kmpJsonData.info.version.description);
128
+
129
+ // The minimum Keyman version detected in the package file may be manually set higher by the developer
130
+ setModelMetadata('minKeymanVersion', minKeymanVersion, false);
131
+
132
+ if(options.sourcePath) {
133
+ setModelMetadata('sourcePath', options.sourcePath);
134
+ }
135
+
136
+ fs.writeFileSync(destModelInfoFileName, JSON.stringify(model_info, null, 2));
137
+ }
@@ -0,0 +1,33 @@
1
+ export interface ModelInfoFile {
2
+ id?: string;
3
+ name?: string;
4
+ authorName?: string;
5
+ authorEmail?: string;
6
+ description?: string;
7
+ license: "mit";
8
+ languages: Array<string>;
9
+ lastModifiedDate?: string;
10
+ links: ModelInfoFileLink[];
11
+ packageFilename?: string;
12
+ packageFileSize?: number;
13
+ jsFilename?: string;
14
+ jsFileSize?: number;
15
+ isRTL?: boolean;
16
+ packageIncludes?: string[]; //['fonts'] or []
17
+ version?: string;
18
+ minKeymanVersion?: string;
19
+ helpLink?: string;
20
+ sourcePath?: string;
21
+ related?: ModelInfoFileRelated[];
22
+ }
23
+
24
+ export interface ModelInfoFileLink {
25
+ name: string;
26
+ url: string;
27
+ }
28
+
29
+ export interface ModelInfoFileRelated {
30
+ deprecates?: string;
31
+ deprecatedBy?: string;
32
+ note?: string;
33
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "../kmc/tsconfig.kmc-base.json",
3
+
4
+ "compilerOptions": {
5
+ "outDir": "build/src/",
6
+ "rootDir": "src/",
7
+ "baseUrl": ".",
8
+ "paths": {
9
+ }
10
+ },
11
+ "include": [
12
+ "src/**/*.ts"
13
+ ],
14
+ "references": [
15
+ { "path": "../kmc-package" } // can we eliminate this in future?
16
+ ]
17
+ }