@keymanapp/kmc-keyboard-info 17.0.244-alpha → 17.0.245-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.
@@ -1,57 +1,5 @@
1
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a5c60be2-e292-533c-8fd3-15ac470025f5")}catch(e){}}();
2
- /**
3
- * Merges a source .keyboard_info file with metadata extracted from .kps file and
4
- * compiled files to produce a comprehensive .keyboard_info file.
5
- */
6
- import { KeyboardInfoFileLanguageFont } from "./keyboard-info-file.js";
7
- import { CompilerCallbacks, KmpJsonFile, KeymanCompiler, CompilerOptions, KeymanCompilerResult, KeymanCompilerArtifacts, KeymanCompilerArtifact } from "@keymanapp/common-types";
8
- export interface KeyboardInfoSources {
9
- /** The path in the keymanapp/keyboards repo where this keyboard may be found */
10
- sourcePath: string;
11
- /** The compiled keyboard filename and relative path (.js only) */
12
- jsFilename?: string;
13
- /** The compiled package filename and relative path (.kmp) */
14
- kmpFilename: string;
15
- /** The source package filename and relative path (.kps) */
16
- kpsFilename: string;
17
- /** Last modification date for files in the project folder 'YYYY-MM-DDThh:mm:ssZ' */
18
- lastCommitDate?: string;
19
- /** Return an error if project does not meet requirements of keyboards repository */
20
- forPublishing: boolean;
21
- }
22
- export interface KeyboardInfoCompilerOptions extends CompilerOptions {
23
- sources: KeyboardInfoSources;
24
- }
25
- export interface KeyboardInfoCompilerArtifacts extends KeymanCompilerArtifacts {
26
- keyboard_info: KeymanCompilerArtifact;
27
- }
28
- export interface KeyboardInfoCompilerResult extends KeymanCompilerResult {
29
- artifacts: KeyboardInfoCompilerArtifacts;
30
- }
31
- export declare class KeyboardInfoCompiler implements KeymanCompiler {
32
- private callbacks;
33
- private options;
34
- constructor();
35
- init(callbacks: CompilerCallbacks, options: KeyboardInfoCompilerOptions): Promise<boolean>;
36
- /**
37
- * Builds a .keyboard_info file with metadata from the keyboard and package source file.
38
- * This function is intended for use within the keyboards repository. While many of the
39
- * parameters could be deduced from each other, they are specified here to reduce the
40
- * number of places the filenames are constructed.
41
- * For full documentation, see:
42
- * https://help.keyman.com/developer/cloud/keyboard_info/
43
- *
44
- * @param sources Details on files from which to extract metadata
45
- */
46
- run(inputFilename: string, outputFilename?: string): Promise<KeyboardInfoCompilerResult>;
47
- write(artifacts: KeyboardInfoCompilerArtifacts): Promise<boolean>;
48
- private mapKeymanTargetToPlatform;
49
- private kmxFileVersionToString;
50
- private isLicenseMIT;
51
- private loadKmxFiles;
52
- private loadJsFile;
53
- private fillLanguages;
54
- fontSourceToKeyboardInfoFont(kpsFilename: string, kmpJsonData: KmpJsonFile.KmpJsonFile, source: string[]): Promise<KeyboardInfoFileLanguageFont>;
55
- }
56
- //# debugId=a5c60be2-e292-533c-8fd3-15ac470025f5
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d9102375-dd60-5e53-bdd7-008a5a123110")}catch(e){}}();
2
+ export { KeyboardInfoCompiler, KeyboardInfoCompilerOptions, KeyboardInfoSources, KeyboardInfoCompilerArtifacts, KeyboardInfoCompilerResult } from './keyboard-info-compiler.js';
3
+ export { KeyboardInfoCompilerMessages } from './keyboard-info-compiler-messages.js';
4
+ //# debugId=d9102375-dd60-5e53-bdd7-008a5a123110
57
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"debug_id":"a5c60be2-e292-533c-8fd3-15ac470025f5","file":"index.d.ts","mappings":";AAAA;;;GAGG;AAGH,OAAO,EAA8C,4BAA4B,EAA4B,MAAM,yBAAyB,CAAC;AAC7I,OAAO,EAAmB,iBAAiB,EAAE,WAAW,EAAqC,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAqCrO,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IAEnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IAEpB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IAEpB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oFAAoF;IACpF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB;IAC5E,aAAa,EAAE,sBAAsB,CAAC;CACvC;AAED,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACtE,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAA8B;;IAMhC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvG;;;;;;;;;OASG;IACU,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAsPxF,KAAK,CAAC,SAAS,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9E,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;YAUJ,aAAa;IA0FrB,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAqCvJ","names":[],"sourceRoot":"","sources":["../../src/index.ts"],"version":3}
1
+ {"debug_id":"d9102375-dd60-5e53-bdd7-008a5a123110","file":"index.d.ts","mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAChL,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC","names":[],"sourceRoot":"","sources":["../../src/index.ts"],"version":3}
@@ -1,445 +1,5 @@
1
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4b1c64c0-6a90-55e0-88eb-ed80ef6f056d")}catch(e){}}();
2
- /**
3
- * Merges a source .keyboard_info file with metadata extracted from .kps file and
4
- * compiled files to produce a comprehensive .keyboard_info file.
5
- */
6
- import { minKeymanVersion } from "./min-keyman-version.js";
7
- import { KeymanFileTypes, KmxFileReader, KeymanTargets } from "@keymanapp/common-types";
8
- import { KeyboardInfoCompilerMessages } from "./messages.js";
9
- import langtags from "./imports/langtags.js";
10
- import { validateMITLicense } from "@keymanapp/developer-utils";
11
- import { KmpCompiler } from "@keymanapp/kmc-package";
12
- import { SchemaValidators } from "@keymanapp/common-types";
13
- import { getFontFamily } from "./font-family.js";
14
- const regionNames = new Intl.DisplayNames(['en'], { type: "region" });
15
- const scriptNames = new Intl.DisplayNames(['en'], { type: "script" });
16
- const langtagsByTag = {};
17
- const HelpRoot = 'https://help.keyman.com/keyboard/';
18
- /**
19
- * Build a dictionary of language tags from langtags.json
20
- */
21
- function preinit() {
22
- if (langtagsByTag['en']) {
23
- // Already initialized, we can reasonably assume that 'en' will always be in
24
- // langtags.json.
25
- return;
26
- }
27
- for (const tag of langtags) {
28
- langtagsByTag[tag.tag] = tag;
29
- langtagsByTag[tag.full] = tag;
30
- if (tag.tags) {
31
- for (const t of tag.tags) {
32
- langtagsByTag[t] = tag;
33
- }
34
- }
35
- }
36
- }
37
- ;
38
- ;
39
- ;
40
- ;
41
- export class KeyboardInfoCompiler {
42
- callbacks;
43
- options;
44
- constructor() {
45
- preinit();
46
- }
47
- async init(callbacks, options) {
48
- this.callbacks = callbacks;
49
- this.options = { ...options };
50
- return true;
51
- }
52
- /**
53
- * Builds a .keyboard_info file with metadata from the keyboard and package source file.
54
- * This function is intended for use within the keyboards repository. While many of the
55
- * parameters could be deduced from each other, they are specified here to reduce the
56
- * number of places the filenames are constructed.
57
- * For full documentation, see:
58
- * https://help.keyman.com/developer/cloud/keyboard_info/
59
- *
60
- * @param sources Details on files from which to extract metadata
61
- */
62
- async run(inputFilename, outputFilename) {
63
- const sources = this.options.sources;
64
- // TODO(lowpri): work from .kpj and nothing else as input. Blocked because
65
- // .kpj work is largely in kmc at present, so that would need to move to
66
- // a separate module.
67
- const kmpCompiler = new KmpCompiler();
68
- if (!await kmpCompiler.init(this.callbacks, {})) {
69
- // Errors will have been emitted by KmpCompiler
70
- return null;
71
- }
72
- const kmpJsonData = kmpCompiler.transformKpsToKmpObject(sources.kpsFilename);
73
- if (!kmpJsonData) {
74
- // Errors will have been emitted by KmpCompiler
75
- return null;
76
- }
77
- if (!sources.kmpFilename) {
78
- // We can't build any metadata without a .kmp file
79
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_CannotBuildWithoutKmpFile());
80
- return null;
81
- }
82
- const keyboard_info = {};
83
- let jsFile = null;
84
- if (sources.jsFilename) {
85
- jsFile = this.loadJsFile(sources.jsFilename);
86
- if (!jsFile) {
87
- return null;
88
- }
89
- }
90
- const kmxFiles = this.loadKmxFiles(sources.kpsFilename, kmpJsonData);
91
- //
92
- // Build .keyboard_info file
93
- // https://api.keyman.com/schemas/keyboard_info.schema.json
94
- // https://help.keyman.com/developer/cloud/keyboard_info/2.0
95
- //
96
- keyboard_info.id = this.callbacks.path.basename(sources.kmpFilename, '.kmp');
97
- keyboard_info.name = kmpJsonData.info.name.description;
98
- // License
99
- if (sources.forPublishing) {
100
- // We will only verify the license if asked to do so, so that all keyboard
101
- // projects can be built even if license is not present. Keyboards
102
- // repository will always verify license
103
- if (!kmpJsonData.options?.licenseFile) {
104
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_NoLicenseFound());
105
- return null;
106
- }
107
- if (!this.isLicenseMIT(this.callbacks.resolveFilename(sources.kpsFilename, kmpJsonData.options.licenseFile))) {
108
- return null;
109
- }
110
- }
111
- // Even if license is not verified, we set the .keyboard_info license to
112
- // 'mit' to meet the schema requirements. The .keyboard_info file is only
113
- // used by the keyboards repository, so this is a fair assumption to make.
114
- keyboard_info.license = 'mit';
115
- // isRTL
116
- if (jsFile?.match(/this\.KRTL=1/)) {
117
- keyboard_info.isRTL = true;
118
- }
119
- // author
120
- const author = kmpJsonData.info.author;
121
- if (author?.description || author?.url) {
122
- keyboard_info.authorName = author.description;
123
- if (author.url) {
124
- // we strip the mailto: from the .kps file for the .keyboard_info
125
- const match = author.url.match(/^(mailto\:)?(.+)$/);
126
- /* c8 ignore next 3 */
127
- if (match === null) {
128
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_InvalidAuthorEmail({ email: author.url }));
129
- return null;
130
- }
131
- keyboard_info.authorEmail = match[2];
132
- }
133
- }
134
- // description
135
- if (kmpJsonData.info.description?.description) {
136
- keyboard_info.description = kmpJsonData.info.description.description.trim();
137
- }
138
- // extract the language identifiers from the language metadata arrays for
139
- // each of the keyboards in the kmp.json file, and merge into a single array
140
- // of identifiers in the .keyboard_info file.
141
- if (!await this.fillLanguages(sources.kpsFilename, keyboard_info, kmpJsonData)) {
142
- return null;
143
- }
144
- // If a last commit date is not given, then just use the current time
145
- keyboard_info.lastModifiedDate = sources.lastCommitDate ?? (new Date).toISOString();
146
- keyboard_info.packageFilename = this.callbacks.path.basename(sources.kmpFilename);
147
- // Always overwrite with actual file size
148
- keyboard_info.packageFileSize = this.callbacks.fileSize(sources.kmpFilename);
149
- if (keyboard_info.packageFileSize === undefined) {
150
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: sources.kmpFilename }));
151
- return null;
152
- }
153
- if (sources.jsFilename) {
154
- keyboard_info.jsFilename = this.callbacks.path.basename(sources.jsFilename);
155
- // Always overwrite with actual file size
156
- keyboard_info.jsFileSize = this.callbacks.fileSize(sources.jsFilename);
157
- if (keyboard_info.jsFileSize === undefined) {
158
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: sources.jsFilename }));
159
- return null;
160
- }
161
- }
162
- const includes = new Set();
163
- keyboard_info.packageIncludes = [];
164
- for (const file of kmpJsonData.files) {
165
- if (file.name.match(/\.(otf|ttf|ttc)$/)) {
166
- includes.add('fonts');
167
- }
168
- else if (file.name.match(/welcome\.htm$/)) {
169
- includes.add('welcome');
170
- }
171
- else if (file.name.match(/\.kvk$/)) {
172
- includes.add('visualKeyboard');
173
- }
174
- else if (file.name.match(/\.(rtf|html|htm|pdf)$/)) {
175
- includes.add('documentation');
176
- }
177
- }
178
- keyboard_info.packageIncludes = [...includes];
179
- keyboard_info.version = kmpJsonData.info.version.description;
180
- let minVersion = minKeymanVersion;
181
- const m = jsFile?.match(/this.KMINVER\s*=\s*(['"])(.*?)\1/);
182
- if (m) {
183
- if (parseFloat(m[2]) > parseFloat(minVersion)) {
184
- minVersion = m[2];
185
- }
186
- }
187
- for (const file of kmxFiles) {
188
- const v = this.kmxFileVersionToString(file.data.fileVersion);
189
- if (parseFloat(v) > parseFloat(minVersion)) {
190
- minVersion = v;
191
- }
192
- }
193
- // Only legacy keyboards supprt non-Unicode encodings, and we no longer
194
- // rewrite the .keyboard_info for those.
195
- keyboard_info.encodings = ['unicode'];
196
- // platformSupport
197
- const platforms = new Set();
198
- for (const file of kmxFiles) {
199
- const targets = KeymanTargets.keymanTargetsFromString(file.data.targets, { expandTargets: true });
200
- for (const target of targets) {
201
- this.mapKeymanTargetToPlatform(target).forEach(platform => platforms.add(platform));
202
- }
203
- }
204
- if (jsFile) {
205
- if (platforms.size == 0) {
206
- // In this case, there was no .kmx metadata available. We need to
207
- // make an assumption that this keyboard is both desktop+mobile web,
208
- // and if the .js is in the package, that it is mobile native as well,
209
- // because the targets metadata is not available in the .js.
210
- platforms.add('mobileWeb').add('desktopWeb');
211
- if (kmpJsonData.files.find(file => file.name.match(/\.js$/))) {
212
- platforms.add('android').add('ios');
213
- }
214
- }
215
- // Special case for determining desktopWeb and mobileWeb support: we use
216
- // &targets to determine which platforms the .js is actually compatible
217
- // with. The presence of the .js file itself determines whether there is
218
- // supposed to be any web support. The presence of the .js file in the
219
- // package (which is a separate check) does not determine whether or not
220
- // the keyboard itself actually supports mobile, although it must be
221
- // included in the package in order to actually be delivered to mobile
222
- // apps.
223
- if (platforms.has('android') || platforms.has('ios')) {
224
- platforms.add('mobileWeb');
225
- }
226
- if (platforms.has('linux') || platforms.has('macos') || platforms.has('windows')) {
227
- platforms.add('desktopWeb');
228
- }
229
- }
230
- keyboard_info.platformSupport = {};
231
- for (const platform of platforms) {
232
- keyboard_info.platformSupport[platform] = 'full';
233
- }
234
- keyboard_info.minKeymanVersion = minVersion;
235
- keyboard_info.sourcePath = sources.sourcePath;
236
- keyboard_info.helpLink = HelpRoot + keyboard_info.id;
237
- // Related packages
238
- if (kmpJsonData.relatedPackages?.length) {
239
- keyboard_info.related = {};
240
- for (const p of kmpJsonData.relatedPackages) {
241
- keyboard_info.related[p.id] = {
242
- deprecates: p.relationship == 'deprecates'
243
- };
244
- }
245
- }
246
- const jsonOutput = JSON.stringify(keyboard_info, null, 2);
247
- if (!SchemaValidators.default.keyboard_info(keyboard_info)) {
248
- // This is an internal fatal error; we should not be capable of producing
249
- // invalid output, so it is best to throw and die
250
- throw new Error(JSON.stringify({
251
- keyboard_info: keyboard_info,
252
- error: SchemaValidators.default.keyboard_info.errors
253
- }, null, 2));
254
- }
255
- const data = new TextEncoder().encode(jsonOutput);
256
- const result = {
257
- artifacts: {
258
- keyboard_info: {
259
- data,
260
- filename: outputFilename ?? inputFilename.replace(/\.kpj$/, '.keyboard_info')
261
- }
262
- }
263
- };
264
- return result;
265
- }
266
- async write(artifacts) {
267
- this.callbacks.fs.writeFileSync(artifacts.keyboard_info.filename, artifacts.keyboard_info.data);
268
- return true;
269
- }
270
- mapKeymanTargetToPlatform(target) {
271
- const map = {
272
- any: [],
273
- androidphone: ['android'],
274
- androidtablet: ['android'],
275
- desktop: [],
276
- ipad: ['ios'],
277
- iphone: ['ios'],
278
- linux: ['linux'],
279
- macosx: ['macos'],
280
- mobile: [],
281
- tablet: [],
282
- web: ['desktopWeb'],
283
- windows: ['windows']
284
- };
285
- return map[target] ?? [];
286
- }
287
- kmxFileVersionToString(version) {
288
- return ((version & 0xFF00) >> 8).toString() + '.' + (version & 0xFF).toString();
289
- }
290
- isLicenseMIT(filename) {
291
- const data = this.callbacks.loadFile(filename);
292
- if (!data) {
293
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseFileDoesNotExist({ filename }));
294
- return false;
295
- }
296
- let license = null;
297
- try {
298
- license = new TextDecoder().decode(data);
299
- }
300
- catch (e) {
301
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseFileIsDamaged({ filename }));
302
- return false;
303
- }
304
- if (!license) {
305
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseFileIsDamaged({ filename }));
306
- return false;
307
- }
308
- const message = validateMITLicense(license);
309
- if (message != null) {
310
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseIsNotValid({ filename, message }));
311
- return false;
312
- }
313
- return true;
314
- }
315
- loadKmxFiles(kpsFilename, kmpJsonData) {
316
- const reader = new KmxFileReader();
317
- return kmpJsonData.files
318
- .filter(file => KeymanFileTypes.filenameIs(file.name, ".kmx" /* KeymanFileTypes.Binary.Keyboard */))
319
- .map(file => ({
320
- filename: this.callbacks.path.basename(file.name),
321
- data: reader.read(this.callbacks.loadFile(this.callbacks.resolveFilename(kpsFilename, file.name)))
322
- }));
323
- }
324
- loadJsFile(filename) {
325
- const data = this.callbacks.loadFile(filename);
326
- if (!data) {
327
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename }));
328
- return null;
329
- }
330
- const text = new TextDecoder('utf-8', { fatal: true }).decode(data);
331
- return text;
332
- }
333
- async fillLanguages(kpsFilename, keyboard_info, kmpJsonData) {
334
- // Collapse language data from multiple keyboards
335
- const languages = kmpJsonData.keyboards.reduce((a, e) => [].concat(a, (e.languages ?? []).map((f) => f.id)), []);
336
- const examples = kmpJsonData.keyboards.reduce((a, e) => [].concat(a, e.examples ?? []), []);
337
- // Transform array into object
338
- keyboard_info.languages = {};
339
- for (const language of languages) {
340
- keyboard_info.languages[language] = {};
341
- }
342
- const fontSource = [].concat(...kmpJsonData.keyboards.map(e => e.displayFont ? [e.displayFont] : []), ...kmpJsonData.keyboards.map(e => e.webDisplayFonts ?? []));
343
- const oskFontSource = [].concat(...kmpJsonData.keyboards.map(e => e.oskFont ? [e.oskFont] : []), ...kmpJsonData.keyboards.map(e => e.webOskFonts ?? []));
344
- for (const bcp47 of Object.keys(keyboard_info.languages)) {
345
- const language = keyboard_info.languages[bcp47];
346
- //
347
- // Add examples
348
- //
349
- language.examples = [];
350
- for (const example of examples) {
351
- if (example.id == bcp47) {
352
- language.examples.push({
353
- // we don't copy over example.id
354
- keys: example.keys,
355
- note: example.note,
356
- text: example.text
357
- });
358
- }
359
- }
360
- //
361
- // Add fonts -- which are duplicated for each language; we'll mark this as a future
362
- // optimization, but it's another keyboard_info breaking change so don't want to
363
- // do it right now.
364
- //
365
- if (fontSource.length) {
366
- language.font = await this.fontSourceToKeyboardInfoFont(kpsFilename, kmpJsonData, fontSource);
367
- if (language.font == null) {
368
- return false;
369
- }
370
- }
371
- if (oskFontSource.length) {
372
- language.oskFont = await this.fontSourceToKeyboardInfoFont(kpsFilename, kmpJsonData, oskFontSource);
373
- if (language.oskFont == null) {
374
- return false;
375
- }
376
- }
377
- //
378
- // Add locale description
379
- //
380
- const locale = new Intl.Locale(bcp47);
381
- // DisplayNames.prototype.of will throw a RangeError if it doesn't understand
382
- // the format of the bcp47 tag. This happens with Node 18.14.1, for example, with:
383
- // new Intl.DisplayNames(['en'], {type: 'language'}).of('und-fonipa');
384
- const mapName = (code, dict) => {
385
- try {
386
- return dict.of(code);
387
- }
388
- catch (e) {
389
- if (e instanceof RangeError) {
390
- return code;
391
- }
392
- else {
393
- throw e;
394
- }
395
- }
396
- };
397
- const tag = langtagsByTag[bcp47] ?? langtagsByTag[locale.language];
398
- language.languageName = tag ? tag.name : bcp47;
399
- language.regionName = mapName(locale.region, regionNames);
400
- language.scriptName = mapName(locale.script, scriptNames);
401
- language.displayName = language.languageName + ((language.scriptName && language.regionName) ?
402
- ` (${language.scriptName}, ${language.regionName})` :
403
- language.scriptName ?
404
- ` (${language.scriptName})` :
405
- language.regionName ?
406
- ` (${language.regionName})` :
407
- '');
408
- }
409
- return true;
410
- }
411
- async fontSourceToKeyboardInfoFont(kpsFilename, kmpJsonData, source) {
412
- // locate a .ttf, .otf, or .woff font file
413
- const ttf = source.find(file => file.endsWith('.ttf') || file.endsWith('.otf') || file.endsWith('.woff'));
414
- if (!ttf) {
415
- return {
416
- // If we can't find a matching font, we'll just use the filename of the first font
417
- family: this.callbacks.path.basename(source[0]),
418
- source: source
419
- };
420
- }
421
- // The font sources already have path information stripped, but we can
422
- // find the matching file from the list of files in the package.
423
- const sourcePath = kmpJsonData.files.find(file => ('/' + file.name.replaceAll('\\', '/')).endsWith('/' + ttf))?.name;
424
- if (!sourcePath) {
425
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: ttf }));
426
- return null;
427
- }
428
- const fontData = this.callbacks.loadFile(this.callbacks.resolveFilename(kpsFilename, sourcePath));
429
- if (!fontData) {
430
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: sourcePath }));
431
- return null;
432
- }
433
- const result = {
434
- family: await getFontFamily(fontData),
435
- source
436
- };
437
- if (!result.family) {
438
- this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FontFileCannotBeRead({ filename: sourcePath }));
439
- return null;
440
- }
441
- return result;
442
- }
443
- }
444
- //# debugId=4b1c64c0-6a90-55e0-88eb-ed80ef6f056d
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="26f7e456-4863-5ade-ab92-735dc5272906")}catch(e){}}();
2
+ export { KeyboardInfoCompiler } from './keyboard-info-compiler.js';
3
+ export { KeyboardInfoCompilerMessages } from './keyboard-info-compiler-messages.js';
4
+ //# debugId=26f7e456-4863-5ade-ab92-735dc5272906
445
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"debug_id":"4b1c64c0-6a90-55e0-88eb-ed80ef6f056d","file":"index.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../src/index.ts"],"version":3}
1
+ {"debug_id":"26f7e456-4863-5ade-ab92-735dc5272906","file":"index.js","mappings":";AAAA,OAAO,EAAE,oBAAoB,EAA+G,MAAM,6BAA6B,CAAC;AAChL,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC","names":[],"sourceRoot":"","sources":["../../src/index.ts"],"version":3}
@@ -1,4 +1,4 @@
1
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="afd59902-86ca-5c33-9eb2-4a05187d94cb")}catch(e){}}();
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c0942ba2-a0c5-58b4-b41b-d6ccf9079460")}catch(e){}}();
2
2
  export declare class KeyboardInfoCompilerMessages {
3
3
  static Fatal_UnexpectedException: (o: {
4
4
  e: any;
@@ -57,5 +57,5 @@ export declare class KeyboardInfoCompilerMessages {
57
57
  }) => import("@keymanapp/common-types").CompilerEvent;
58
58
  static ERROR_FontFileCannotBeRead: number;
59
59
  }
60
- //# debugId=afd59902-86ca-5c33-9eb2-4a05187d94cb
61
- //# sourceMappingURL=messages.d.ts.map
60
+ //# debugId=c0942ba2-a0c5-58b4-b41b-d6ccf9079460
61
+ //# sourceMappingURL=keyboard-info-compiler-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"debug_id":"c0942ba2-a0c5-58b4-b41b-d6ccf9079460","file":"keyboard-info-compiler-messages.d.ts","mappings":";AASA,qBAAa,4BAA4B;IACvC,MAAM,CAAC,yBAAyB,MAAM;QAAC,CAAC,EAAE,GAAG,CAAA;KAAC,qDAAqE;IACnH,MAAM,CAAC,yBAAyB,SAAqB;IAErD,MAAM,CAAC,sBAAsB,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,qDAA0E;IAC/H,MAAM,CAAC,sBAAsB,SAAqB;IAElD,MAAM,CAAC,oBAAoB,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,GAAG,CAAA;KAAC,qDAC0B;IACrF,MAAM,CAAC,oBAAoB,SAAqB;IAEhD,MAAM,CAAC,8BAA8B,MAAM;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,KAAK,EAAC,GAAG,CAAC;QAAC,QAAQ,EAAC,GAAG,CAAA;KAAC,qDAC8B;IAChH,MAAM,CAAC,8BAA8B,SAAoB;IAEzD,MAAM,CAAC,wBAAwB,MAAM;QAAC,KAAK,EAAC,MAAM,CAAA;KAAC,qDACb;IACtC,MAAM,CAAC,wBAAwB,SAAqB;IAEpD,MAAM,CAAC,6BAA6B,MAAM;QAAC,QAAQ,EAAC,MAAM,CAAA;KAAC,qDACX;IAChD,MAAM,CAAC,0BAA0B,SAAqB;IAEtD,MAAM,CAAC,0BAA0B,MAAM;QAAC,QAAQ,EAAC,MAAM,CAAA;KAAC,qDACQ;IAChE,MAAM,CAAC,0BAA0B,SAAqB;IAEtD,MAAM,CAAC,uBAAuB,MAAM;QAAC,QAAQ,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,MAAM,CAAA;KAAC,qDACY;IAChF,MAAM,CAAC,uBAAuB,SAAqB;IAEnD,MAAM,CAAC,+BAA+B,wDACoC;IAC1E,MAAM,CAAC,+BAA+B,SAAqB;IAE3D,MAAM,CAAC,oBAAoB,wDACyF;IACpH,MAAM,CAAC,oBAAoB,SAAqB;IAEhD,MAAM,CAAC,qBAAqB,MAAM;QAAC,OAAO,EAAE,GAAG,CAAA;KAAC,qDACV;IACtC,MAAM,CAAC,qBAAqB,SAAoB;IAEhD,MAAM,CAAC,qBAAqB,MAAM;QAAC,OAAO,EAAE,GAAG,CAAA;KAAC,qDACV;IACtC,MAAM,CAAC,qBAAqB,SAAoB;IAEhD,MAAM,CAAC,sBAAsB,MAAM;QAAC,OAAO,EAAE,GAAG,CAAA;KAAC,qDACX;IACtC,MAAM,CAAC,sBAAsB,SAAqB;IAElD,MAAM,CAAC,0BAA0B,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,qDACa;IACtE,MAAM,CAAC,0BAA0B,SAAqB;CACvD","names":[],"sourceRoot":"","sources":["../../src/keyboard-info-compiler-messages.ts"],"version":3}
@@ -1,4 +1,4 @@
1
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e7465348-4600-5543-b2c6-0bf578e61fbd")}catch(e){}}();
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8bcdd5be-88b7-5013-a52d-e375cca70f9a")}catch(e){}}();
2
2
  import { CompilerErrorNamespace, CompilerErrorSeverity, CompilerMessageSpec as m } from "@keymanapp/common-types";
3
3
  const Namespace = CompilerErrorNamespace.KeyboardInfoCompiler;
4
4
  // const SevInfo = CompilerErrorSeverity.Info | Namespace;
@@ -36,5 +36,5 @@ export class KeyboardInfoCompilerMessages {
36
36
  static Error_FontFileCannotBeRead = (o) => m(this.ERROR_FontFileCannotBeRead, `Font ${o.filename} could not be parsed to extract a font family.`);
37
37
  static ERROR_FontFileCannotBeRead = SevError | 0x000E;
38
38
  }
39
- //# debugId=e7465348-4600-5543-b2c6-0bf578e61fbd
40
- //# sourceMappingURL=messages.js.map
39
+ //# debugId=8bcdd5be-88b7-5013-a52d-e375cca70f9a
40
+ //# sourceMappingURL=keyboard-info-compiler-messages.js.map
@@ -0,0 +1 @@
1
+ {"debug_id":"8bcdd5be-88b7-5013-a52d-e375cca70f9a","file":"keyboard-info-compiler-messages.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../src/keyboard-info-compiler-messages.ts"],"version":3}
@@ -0,0 +1,57 @@
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4c76221a-7884-5e01-84f5-a3614506805f")}catch(e){}}();
2
+ /**
3
+ * Merges a source .keyboard_info file with metadata extracted from .kps file and
4
+ * compiled files to produce a comprehensive .keyboard_info file.
5
+ */
6
+ import { KeyboardInfoFileLanguageFont } from "./keyboard-info-file.js";
7
+ import { CompilerCallbacks, KmpJsonFile, KeymanCompiler, CompilerOptions, KeymanCompilerResult, KeymanCompilerArtifacts, KeymanCompilerArtifact } from "@keymanapp/common-types";
8
+ export interface KeyboardInfoSources {
9
+ /** The path in the keymanapp/keyboards repo where this keyboard may be found */
10
+ sourcePath: string;
11
+ /** The compiled keyboard filename and relative path (.js only) */
12
+ jsFilename?: string;
13
+ /** The compiled package filename and relative path (.kmp) */
14
+ kmpFilename: string;
15
+ /** The source package filename and relative path (.kps) */
16
+ kpsFilename: string;
17
+ /** Last modification date for files in the project folder 'YYYY-MM-DDThh:mm:ssZ' */
18
+ lastCommitDate?: string;
19
+ /** Return an error if project does not meet requirements of keyboards repository */
20
+ forPublishing: boolean;
21
+ }
22
+ export interface KeyboardInfoCompilerOptions extends CompilerOptions {
23
+ sources: KeyboardInfoSources;
24
+ }
25
+ export interface KeyboardInfoCompilerArtifacts extends KeymanCompilerArtifacts {
26
+ keyboard_info: KeymanCompilerArtifact;
27
+ }
28
+ export interface KeyboardInfoCompilerResult extends KeymanCompilerResult {
29
+ artifacts: KeyboardInfoCompilerArtifacts;
30
+ }
31
+ export declare class KeyboardInfoCompiler implements KeymanCompiler {
32
+ private callbacks;
33
+ private options;
34
+ constructor();
35
+ init(callbacks: CompilerCallbacks, options: KeyboardInfoCompilerOptions): Promise<boolean>;
36
+ /**
37
+ * Builds a .keyboard_info file with metadata from the keyboard and package source file.
38
+ * This function is intended for use within the keyboards repository. While many of the
39
+ * parameters could be deduced from each other, they are specified here to reduce the
40
+ * number of places the filenames are constructed.
41
+ * For full documentation, see:
42
+ * https://help.keyman.com/developer/cloud/keyboard_info/
43
+ *
44
+ * @param sources Details on files from which to extract metadata
45
+ */
46
+ run(inputFilename: string, outputFilename?: string): Promise<KeyboardInfoCompilerResult>;
47
+ write(artifacts: KeyboardInfoCompilerArtifacts): Promise<boolean>;
48
+ private mapKeymanTargetToPlatform;
49
+ private kmxFileVersionToString;
50
+ private isLicenseMIT;
51
+ private loadKmxFiles;
52
+ private loadJsFile;
53
+ private fillLanguages;
54
+ fontSourceToKeyboardInfoFont(kpsFilename: string, kmpJsonData: KmpJsonFile.KmpJsonFile, source: string[]): Promise<KeyboardInfoFileLanguageFont>;
55
+ }
56
+ //# debugId=4c76221a-7884-5e01-84f5-a3614506805f
57
+ //# sourceMappingURL=keyboard-info-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"debug_id":"4c76221a-7884-5e01-84f5-a3614506805f","file":"keyboard-info-compiler.d.ts","mappings":";AAAA;;;GAGG;AAGH,OAAO,EAA8C,4BAA4B,EAA4B,MAAM,yBAAyB,CAAC;AAC7I,OAAO,EAAmB,iBAAiB,EAAE,WAAW,EAAqC,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAqCrO,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IAEnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IAEpB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IAEpB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oFAAoF;IACpF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB;IAC5E,aAAa,EAAE,sBAAsB,CAAC;CACvC;AAED,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACtE,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAA8B;;IAMhC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvG;;;;;;;;;OASG;IACU,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAsPxF,KAAK,CAAC,SAAS,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9E,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;YAUJ,aAAa;IA0FrB,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAqCvJ","names":[],"sourceRoot":"","sources":["../../src/keyboard-info-compiler.ts"],"version":3}
@@ -0,0 +1,445 @@
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0c8f9c90-c6e1-5feb-b453-20bd1bc3640c")}catch(e){}}();
2
+ /**
3
+ * Merges a source .keyboard_info file with metadata extracted from .kps file and
4
+ * compiled files to produce a comprehensive .keyboard_info file.
5
+ */
6
+ import { minKeymanVersion } from "./min-keyman-version.js";
7
+ import { KeymanFileTypes, KmxFileReader, KeymanTargets } from "@keymanapp/common-types";
8
+ import { KeyboardInfoCompilerMessages } from "./keyboard-info-compiler-messages.js";
9
+ import langtags from "./imports/langtags.js";
10
+ import { validateMITLicense } from "@keymanapp/developer-utils";
11
+ import { KmpCompiler } from "@keymanapp/kmc-package";
12
+ import { SchemaValidators } from "@keymanapp/common-types";
13
+ import { getFontFamily } from "./font-family.js";
14
+ const regionNames = new Intl.DisplayNames(['en'], { type: "region" });
15
+ const scriptNames = new Intl.DisplayNames(['en'], { type: "script" });
16
+ const langtagsByTag = {};
17
+ const HelpRoot = 'https://help.keyman.com/keyboard/';
18
+ /**
19
+ * Build a dictionary of language tags from langtags.json
20
+ */
21
+ function preinit() {
22
+ if (langtagsByTag['en']) {
23
+ // Already initialized, we can reasonably assume that 'en' will always be in
24
+ // langtags.json.
25
+ return;
26
+ }
27
+ for (const tag of langtags) {
28
+ langtagsByTag[tag.tag] = tag;
29
+ langtagsByTag[tag.full] = tag;
30
+ if (tag.tags) {
31
+ for (const t of tag.tags) {
32
+ langtagsByTag[t] = tag;
33
+ }
34
+ }
35
+ }
36
+ }
37
+ ;
38
+ ;
39
+ ;
40
+ ;
41
+ export class KeyboardInfoCompiler {
42
+ callbacks;
43
+ options;
44
+ constructor() {
45
+ preinit();
46
+ }
47
+ async init(callbacks, options) {
48
+ this.callbacks = callbacks;
49
+ this.options = { ...options };
50
+ return true;
51
+ }
52
+ /**
53
+ * Builds a .keyboard_info file with metadata from the keyboard and package source file.
54
+ * This function is intended for use within the keyboards repository. While many of the
55
+ * parameters could be deduced from each other, they are specified here to reduce the
56
+ * number of places the filenames are constructed.
57
+ * For full documentation, see:
58
+ * https://help.keyman.com/developer/cloud/keyboard_info/
59
+ *
60
+ * @param sources Details on files from which to extract metadata
61
+ */
62
+ async run(inputFilename, outputFilename) {
63
+ const sources = this.options.sources;
64
+ // TODO(lowpri): work from .kpj and nothing else as input. Blocked because
65
+ // .kpj work is largely in kmc at present, so that would need to move to
66
+ // a separate module.
67
+ const kmpCompiler = new KmpCompiler();
68
+ if (!await kmpCompiler.init(this.callbacks, {})) {
69
+ // Errors will have been emitted by KmpCompiler
70
+ return null;
71
+ }
72
+ const kmpJsonData = kmpCompiler.transformKpsToKmpObject(sources.kpsFilename);
73
+ if (!kmpJsonData) {
74
+ // Errors will have been emitted by KmpCompiler
75
+ return null;
76
+ }
77
+ if (!sources.kmpFilename) {
78
+ // We can't build any metadata without a .kmp file
79
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_CannotBuildWithoutKmpFile());
80
+ return null;
81
+ }
82
+ const keyboard_info = {};
83
+ let jsFile = null;
84
+ if (sources.jsFilename) {
85
+ jsFile = this.loadJsFile(sources.jsFilename);
86
+ if (!jsFile) {
87
+ return null;
88
+ }
89
+ }
90
+ const kmxFiles = this.loadKmxFiles(sources.kpsFilename, kmpJsonData);
91
+ //
92
+ // Build .keyboard_info file
93
+ // https://api.keyman.com/schemas/keyboard_info.schema.json
94
+ // https://help.keyman.com/developer/cloud/keyboard_info/2.0
95
+ //
96
+ keyboard_info.id = this.callbacks.path.basename(sources.kmpFilename, '.kmp');
97
+ keyboard_info.name = kmpJsonData.info.name.description;
98
+ // License
99
+ if (sources.forPublishing) {
100
+ // We will only verify the license if asked to do so, so that all keyboard
101
+ // projects can be built even if license is not present. Keyboards
102
+ // repository will always verify license
103
+ if (!kmpJsonData.options?.licenseFile) {
104
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_NoLicenseFound());
105
+ return null;
106
+ }
107
+ if (!this.isLicenseMIT(this.callbacks.resolveFilename(sources.kpsFilename, kmpJsonData.options.licenseFile))) {
108
+ return null;
109
+ }
110
+ }
111
+ // Even if license is not verified, we set the .keyboard_info license to
112
+ // 'mit' to meet the schema requirements. The .keyboard_info file is only
113
+ // used by the keyboards repository, so this is a fair assumption to make.
114
+ keyboard_info.license = 'mit';
115
+ // isRTL
116
+ if (jsFile?.match(/this\.KRTL=1/)) {
117
+ keyboard_info.isRTL = true;
118
+ }
119
+ // author
120
+ const author = kmpJsonData.info.author;
121
+ if (author?.description || author?.url) {
122
+ keyboard_info.authorName = author.description;
123
+ if (author.url) {
124
+ // we strip the mailto: from the .kps file for the .keyboard_info
125
+ const match = author.url.match(/^(mailto\:)?(.+)$/);
126
+ /* c8 ignore next 3 */
127
+ if (match === null) {
128
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_InvalidAuthorEmail({ email: author.url }));
129
+ return null;
130
+ }
131
+ keyboard_info.authorEmail = match[2];
132
+ }
133
+ }
134
+ // description
135
+ if (kmpJsonData.info.description?.description) {
136
+ keyboard_info.description = kmpJsonData.info.description.description.trim();
137
+ }
138
+ // extract the language identifiers from the language metadata arrays for
139
+ // each of the keyboards in the kmp.json file, and merge into a single array
140
+ // of identifiers in the .keyboard_info file.
141
+ if (!await this.fillLanguages(sources.kpsFilename, keyboard_info, kmpJsonData)) {
142
+ return null;
143
+ }
144
+ // If a last commit date is not given, then just use the current time
145
+ keyboard_info.lastModifiedDate = sources.lastCommitDate ?? (new Date).toISOString();
146
+ keyboard_info.packageFilename = this.callbacks.path.basename(sources.kmpFilename);
147
+ // Always overwrite with actual file size
148
+ keyboard_info.packageFileSize = this.callbacks.fileSize(sources.kmpFilename);
149
+ if (keyboard_info.packageFileSize === undefined) {
150
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: sources.kmpFilename }));
151
+ return null;
152
+ }
153
+ if (sources.jsFilename) {
154
+ keyboard_info.jsFilename = this.callbacks.path.basename(sources.jsFilename);
155
+ // Always overwrite with actual file size
156
+ keyboard_info.jsFileSize = this.callbacks.fileSize(sources.jsFilename);
157
+ if (keyboard_info.jsFileSize === undefined) {
158
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: sources.jsFilename }));
159
+ return null;
160
+ }
161
+ }
162
+ const includes = new Set();
163
+ keyboard_info.packageIncludes = [];
164
+ for (const file of kmpJsonData.files) {
165
+ if (file.name.match(/\.(otf|ttf|ttc)$/)) {
166
+ includes.add('fonts');
167
+ }
168
+ else if (file.name.match(/welcome\.htm$/)) {
169
+ includes.add('welcome');
170
+ }
171
+ else if (file.name.match(/\.kvk$/)) {
172
+ includes.add('visualKeyboard');
173
+ }
174
+ else if (file.name.match(/\.(rtf|html|htm|pdf)$/)) {
175
+ includes.add('documentation');
176
+ }
177
+ }
178
+ keyboard_info.packageIncludes = [...includes];
179
+ keyboard_info.version = kmpJsonData.info.version.description;
180
+ let minVersion = minKeymanVersion;
181
+ const m = jsFile?.match(/this.KMINVER\s*=\s*(['"])(.*?)\1/);
182
+ if (m) {
183
+ if (parseFloat(m[2]) > parseFloat(minVersion)) {
184
+ minVersion = m[2];
185
+ }
186
+ }
187
+ for (const file of kmxFiles) {
188
+ const v = this.kmxFileVersionToString(file.data.fileVersion);
189
+ if (parseFloat(v) > parseFloat(minVersion)) {
190
+ minVersion = v;
191
+ }
192
+ }
193
+ // Only legacy keyboards supprt non-Unicode encodings, and we no longer
194
+ // rewrite the .keyboard_info for those.
195
+ keyboard_info.encodings = ['unicode'];
196
+ // platformSupport
197
+ const platforms = new Set();
198
+ for (const file of kmxFiles) {
199
+ const targets = KeymanTargets.keymanTargetsFromString(file.data.targets, { expandTargets: true });
200
+ for (const target of targets) {
201
+ this.mapKeymanTargetToPlatform(target).forEach(platform => platforms.add(platform));
202
+ }
203
+ }
204
+ if (jsFile) {
205
+ if (platforms.size == 0) {
206
+ // In this case, there was no .kmx metadata available. We need to
207
+ // make an assumption that this keyboard is both desktop+mobile web,
208
+ // and if the .js is in the package, that it is mobile native as well,
209
+ // because the targets metadata is not available in the .js.
210
+ platforms.add('mobileWeb').add('desktopWeb');
211
+ if (kmpJsonData.files.find(file => file.name.match(/\.js$/))) {
212
+ platforms.add('android').add('ios');
213
+ }
214
+ }
215
+ // Special case for determining desktopWeb and mobileWeb support: we use
216
+ // &targets to determine which platforms the .js is actually compatible
217
+ // with. The presence of the .js file itself determines whether there is
218
+ // supposed to be any web support. The presence of the .js file in the
219
+ // package (which is a separate check) does not determine whether or not
220
+ // the keyboard itself actually supports mobile, although it must be
221
+ // included in the package in order to actually be delivered to mobile
222
+ // apps.
223
+ if (platforms.has('android') || platforms.has('ios')) {
224
+ platforms.add('mobileWeb');
225
+ }
226
+ if (platforms.has('linux') || platforms.has('macos') || platforms.has('windows')) {
227
+ platforms.add('desktopWeb');
228
+ }
229
+ }
230
+ keyboard_info.platformSupport = {};
231
+ for (const platform of platforms) {
232
+ keyboard_info.platformSupport[platform] = 'full';
233
+ }
234
+ keyboard_info.minKeymanVersion = minVersion;
235
+ keyboard_info.sourcePath = sources.sourcePath;
236
+ keyboard_info.helpLink = HelpRoot + keyboard_info.id;
237
+ // Related packages
238
+ if (kmpJsonData.relatedPackages?.length) {
239
+ keyboard_info.related = {};
240
+ for (const p of kmpJsonData.relatedPackages) {
241
+ keyboard_info.related[p.id] = {
242
+ deprecates: p.relationship == 'deprecates'
243
+ };
244
+ }
245
+ }
246
+ const jsonOutput = JSON.stringify(keyboard_info, null, 2);
247
+ if (!SchemaValidators.default.keyboard_info(keyboard_info)) {
248
+ // This is an internal fatal error; we should not be capable of producing
249
+ // invalid output, so it is best to throw and die
250
+ throw new Error(JSON.stringify({
251
+ keyboard_info: keyboard_info,
252
+ error: SchemaValidators.default.keyboard_info.errors
253
+ }, null, 2));
254
+ }
255
+ const data = new TextEncoder().encode(jsonOutput);
256
+ const result = {
257
+ artifacts: {
258
+ keyboard_info: {
259
+ data,
260
+ filename: outputFilename ?? inputFilename.replace(/\.kpj$/, '.keyboard_info')
261
+ }
262
+ }
263
+ };
264
+ return result;
265
+ }
266
+ async write(artifacts) {
267
+ this.callbacks.fs.writeFileSync(artifacts.keyboard_info.filename, artifacts.keyboard_info.data);
268
+ return true;
269
+ }
270
+ mapKeymanTargetToPlatform(target) {
271
+ const map = {
272
+ any: [],
273
+ androidphone: ['android'],
274
+ androidtablet: ['android'],
275
+ desktop: [],
276
+ ipad: ['ios'],
277
+ iphone: ['ios'],
278
+ linux: ['linux'],
279
+ macosx: ['macos'],
280
+ mobile: [],
281
+ tablet: [],
282
+ web: ['desktopWeb'],
283
+ windows: ['windows']
284
+ };
285
+ return map[target] ?? [];
286
+ }
287
+ kmxFileVersionToString(version) {
288
+ return ((version & 0xFF00) >> 8).toString() + '.' + (version & 0xFF).toString();
289
+ }
290
+ isLicenseMIT(filename) {
291
+ const data = this.callbacks.loadFile(filename);
292
+ if (!data) {
293
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseFileDoesNotExist({ filename }));
294
+ return false;
295
+ }
296
+ let license = null;
297
+ try {
298
+ license = new TextDecoder().decode(data);
299
+ }
300
+ catch (e) {
301
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseFileIsDamaged({ filename }));
302
+ return false;
303
+ }
304
+ if (!license) {
305
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseFileIsDamaged({ filename }));
306
+ return false;
307
+ }
308
+ const message = validateMITLicense(license);
309
+ if (message != null) {
310
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_LicenseIsNotValid({ filename, message }));
311
+ return false;
312
+ }
313
+ return true;
314
+ }
315
+ loadKmxFiles(kpsFilename, kmpJsonData) {
316
+ const reader = new KmxFileReader();
317
+ return kmpJsonData.files
318
+ .filter(file => KeymanFileTypes.filenameIs(file.name, ".kmx" /* KeymanFileTypes.Binary.Keyboard */))
319
+ .map(file => ({
320
+ filename: this.callbacks.path.basename(file.name),
321
+ data: reader.read(this.callbacks.loadFile(this.callbacks.resolveFilename(kpsFilename, file.name)))
322
+ }));
323
+ }
324
+ loadJsFile(filename) {
325
+ const data = this.callbacks.loadFile(filename);
326
+ if (!data) {
327
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename }));
328
+ return null;
329
+ }
330
+ const text = new TextDecoder('utf-8', { fatal: true }).decode(data);
331
+ return text;
332
+ }
333
+ async fillLanguages(kpsFilename, keyboard_info, kmpJsonData) {
334
+ // Collapse language data from multiple keyboards
335
+ const languages = kmpJsonData.keyboards.reduce((a, e) => [].concat(a, (e.languages ?? []).map((f) => f.id)), []);
336
+ const examples = kmpJsonData.keyboards.reduce((a, e) => [].concat(a, e.examples ?? []), []);
337
+ // Transform array into object
338
+ keyboard_info.languages = {};
339
+ for (const language of languages) {
340
+ keyboard_info.languages[language] = {};
341
+ }
342
+ const fontSource = [].concat(...kmpJsonData.keyboards.map(e => e.displayFont ? [e.displayFont] : []), ...kmpJsonData.keyboards.map(e => e.webDisplayFonts ?? []));
343
+ const oskFontSource = [].concat(...kmpJsonData.keyboards.map(e => e.oskFont ? [e.oskFont] : []), ...kmpJsonData.keyboards.map(e => e.webOskFonts ?? []));
344
+ for (const bcp47 of Object.keys(keyboard_info.languages)) {
345
+ const language = keyboard_info.languages[bcp47];
346
+ //
347
+ // Add examples
348
+ //
349
+ language.examples = [];
350
+ for (const example of examples) {
351
+ if (example.id == bcp47) {
352
+ language.examples.push({
353
+ // we don't copy over example.id
354
+ keys: example.keys,
355
+ note: example.note,
356
+ text: example.text
357
+ });
358
+ }
359
+ }
360
+ //
361
+ // Add fonts -- which are duplicated for each language; we'll mark this as a future
362
+ // optimization, but it's another keyboard_info breaking change so don't want to
363
+ // do it right now.
364
+ //
365
+ if (fontSource.length) {
366
+ language.font = await this.fontSourceToKeyboardInfoFont(kpsFilename, kmpJsonData, fontSource);
367
+ if (language.font == null) {
368
+ return false;
369
+ }
370
+ }
371
+ if (oskFontSource.length) {
372
+ language.oskFont = await this.fontSourceToKeyboardInfoFont(kpsFilename, kmpJsonData, oskFontSource);
373
+ if (language.oskFont == null) {
374
+ return false;
375
+ }
376
+ }
377
+ //
378
+ // Add locale description
379
+ //
380
+ const locale = new Intl.Locale(bcp47);
381
+ // DisplayNames.prototype.of will throw a RangeError if it doesn't understand
382
+ // the format of the bcp47 tag. This happens with Node 18.14.1, for example, with:
383
+ // new Intl.DisplayNames(['en'], {type: 'language'}).of('und-fonipa');
384
+ const mapName = (code, dict) => {
385
+ try {
386
+ return dict.of(code);
387
+ }
388
+ catch (e) {
389
+ if (e instanceof RangeError) {
390
+ return code;
391
+ }
392
+ else {
393
+ throw e;
394
+ }
395
+ }
396
+ };
397
+ const tag = langtagsByTag[bcp47] ?? langtagsByTag[locale.language];
398
+ language.languageName = tag ? tag.name : bcp47;
399
+ language.regionName = mapName(locale.region, regionNames);
400
+ language.scriptName = mapName(locale.script, scriptNames);
401
+ language.displayName = language.languageName + ((language.scriptName && language.regionName) ?
402
+ ` (${language.scriptName}, ${language.regionName})` :
403
+ language.scriptName ?
404
+ ` (${language.scriptName})` :
405
+ language.regionName ?
406
+ ` (${language.regionName})` :
407
+ '');
408
+ }
409
+ return true;
410
+ }
411
+ async fontSourceToKeyboardInfoFont(kpsFilename, kmpJsonData, source) {
412
+ // locate a .ttf, .otf, or .woff font file
413
+ const ttf = source.find(file => file.endsWith('.ttf') || file.endsWith('.otf') || file.endsWith('.woff'));
414
+ if (!ttf) {
415
+ return {
416
+ // If we can't find a matching font, we'll just use the filename of the first font
417
+ family: this.callbacks.path.basename(source[0]),
418
+ source: source
419
+ };
420
+ }
421
+ // The font sources already have path information stripped, but we can
422
+ // find the matching file from the list of files in the package.
423
+ const sourcePath = kmpJsonData.files.find(file => ('/' + file.name.replaceAll('\\', '/')).endsWith('/' + ttf))?.name;
424
+ if (!sourcePath) {
425
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: ttf }));
426
+ return null;
427
+ }
428
+ const fontData = this.callbacks.loadFile(this.callbacks.resolveFilename(kpsFilename, sourcePath));
429
+ if (!fontData) {
430
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FileDoesNotExist({ filename: sourcePath }));
431
+ return null;
432
+ }
433
+ const result = {
434
+ family: await getFontFamily(fontData),
435
+ source
436
+ };
437
+ if (!result.family) {
438
+ this.callbacks.reportMessage(KeyboardInfoCompilerMessages.Error_FontFileCannotBeRead({ filename: sourcePath }));
439
+ return null;
440
+ }
441
+ return result;
442
+ }
443
+ }
444
+ //# debugId=0c8f9c90-c6e1-5feb-b453-20bd1bc3640c
445
+ //# sourceMappingURL=keyboard-info-compiler.js.map
@@ -0,0 +1 @@
1
+ {"debug_id":"0c8f9c90-c6e1-5feb-b453-20bd1bc3640c","file":"keyboard-info-compiler.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../src/keyboard-info-compiler.ts"],"version":3}
package/package.json CHANGED
@@ -23,9 +23,9 @@
23
23
  "url": "https://github.com/keymanapp/keyman/issues"
24
24
  },
25
25
  "dependencies": {
26
- "@keymanapp/common-types": "17.0.244-alpha",
27
- "@keymanapp/developer-utils": "17.0.244-alpha",
28
- "@keymanapp/kmc-package": "17.0.244-alpha",
26
+ "@keymanapp/common-types": "17.0.245-alpha",
27
+ "@keymanapp/developer-utils": "17.0.245-alpha",
28
+ "@keymanapp/kmc-package": "17.0.245-alpha",
29
29
  "ttfmeta": "^1.1.2"
30
30
  },
31
31
  "devDependencies": {
@@ -49,5 +49,5 @@
49
49
  "type": "git",
50
50
  "url": "git+https://github.com/keymanapp/keyman.git"
51
51
  },
52
- "version": "17.0.244-alpha"
52
+ "version": "17.0.245-alpha"
53
53
  }
@@ -1 +0,0 @@
1
- {"debug_id":"afd59902-86ca-5c33-9eb2-4a05187d94cb","file":"messages.d.ts","mappings":";AASA,qBAAa,4BAA4B;IACvC,MAAM,CAAC,yBAAyB,MAAM;QAAC,CAAC,EAAE,GAAG,CAAA;KAAC,qDAAqE;IACnH,MAAM,CAAC,yBAAyB,SAAqB;IAErD,MAAM,CAAC,sBAAsB,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,qDAA0E;IAC/H,MAAM,CAAC,sBAAsB,SAAqB;IAElD,MAAM,CAAC,oBAAoB,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,GAAG,CAAA;KAAC,qDAC0B;IACrF,MAAM,CAAC,oBAAoB,SAAqB;IAEhD,MAAM,CAAC,8BAA8B,MAAM;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,KAAK,EAAC,GAAG,CAAC;QAAC,QAAQ,EAAC,GAAG,CAAA;KAAC,qDAC8B;IAChH,MAAM,CAAC,8BAA8B,SAAoB;IAEzD,MAAM,CAAC,wBAAwB,MAAM;QAAC,KAAK,EAAC,MAAM,CAAA;KAAC,qDACb;IACtC,MAAM,CAAC,wBAAwB,SAAqB;IAEpD,MAAM,CAAC,6BAA6B,MAAM;QAAC,QAAQ,EAAC,MAAM,CAAA;KAAC,qDACX;IAChD,MAAM,CAAC,0BAA0B,SAAqB;IAEtD,MAAM,CAAC,0BAA0B,MAAM;QAAC,QAAQ,EAAC,MAAM,CAAA;KAAC,qDACQ;IAChE,MAAM,CAAC,0BAA0B,SAAqB;IAEtD,MAAM,CAAC,uBAAuB,MAAM;QAAC,QAAQ,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,MAAM,CAAA;KAAC,qDACY;IAChF,MAAM,CAAC,uBAAuB,SAAqB;IAEnD,MAAM,CAAC,+BAA+B,wDACoC;IAC1E,MAAM,CAAC,+BAA+B,SAAqB;IAE3D,MAAM,CAAC,oBAAoB,wDACyF;IACpH,MAAM,CAAC,oBAAoB,SAAqB;IAEhD,MAAM,CAAC,qBAAqB,MAAM;QAAC,OAAO,EAAE,GAAG,CAAA;KAAC,qDACV;IACtC,MAAM,CAAC,qBAAqB,SAAoB;IAEhD,MAAM,CAAC,qBAAqB,MAAM;QAAC,OAAO,EAAE,GAAG,CAAA;KAAC,qDACV;IACtC,MAAM,CAAC,qBAAqB,SAAoB;IAEhD,MAAM,CAAC,sBAAsB,MAAM;QAAC,OAAO,EAAE,GAAG,CAAA;KAAC,qDACX;IACtC,MAAM,CAAC,sBAAsB,SAAqB;IAElD,MAAM,CAAC,0BAA0B,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,qDACa;IACtE,MAAM,CAAC,0BAA0B,SAAqB;CACvD","names":[],"sourceRoot":"","sources":["../../src/messages.ts"],"version":3}
@@ -1 +0,0 @@
1
- {"debug_id":"e7465348-4600-5543-b2c6-0bf578e61fbd","file":"messages.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../src/messages.ts"],"version":3}