@keymanapp/developer-utils 18.0.137-alpha → 18.0.138-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/build/src/compiler-callbacks.d.ts +145 -0
- package/build/src/compiler-callbacks.d.ts.map +1 -0
- package/build/src/compiler-callbacks.js +128 -0
- package/build/src/compiler-callbacks.js.map +1 -0
- package/build/src/compiler-interfaces.d.ts +10 -102
- package/build/src/compiler-interfaces.d.ts.map +1 -1
- package/build/src/compiler-interfaces.js +10 -86
- package/build/src/compiler-interfaces.js.map +1 -1
- package/build/src/index.d.ts +6 -2
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +8 -4
- package/build/src/index.js.map +1 -1
- package/build/src/source-filename-patterns.d.ts +31 -0
- package/build/src/source-filename-patterns.d.ts.map +1 -0
- package/build/src/source-filename-patterns.js +43 -0
- package/build/src/source-filename-patterns.js.map +1 -0
- package/build/src/types/kpj/keyman-developer-project.d.ts +9 -8
- package/build/src/types/kpj/keyman-developer-project.d.ts.map +1 -1
- package/build/src/types/kpj/keyman-developer-project.js +26 -22
- package/build/src/types/kpj/keyman-developer-project.js.map +1 -1
- package/build/src/types/kpj/kpj-file-reader.d.ts +3 -3
- package/build/src/types/kpj/kpj-file-reader.d.ts.map +1 -1
- package/build/src/types/kpj/kpj-file-reader.js +5 -5
- package/build/src/types/kpj/kpj-file-reader.js.map +1 -1
- package/build/src/types/kpj/kpj-file-writer.d.ts +10 -0
- package/build/src/types/kpj/kpj-file-writer.d.ts.map +1 -0
- package/build/src/types/kpj/kpj-file-writer.js +92 -0
- package/build/src/types/kpj/kpj-file-writer.js.map +1 -0
- package/build/src/types/kps/kps-file-reader.d.ts +1 -1
- package/build/src/types/kps/kps-file-reader.d.ts.map +1 -1
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.d.ts +1 -1
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.d.ts.map +1 -1
- package/build/src/utils/UrlSubpathCompilerCallback.d.ts +17 -0
- package/build/src/utils/UrlSubpathCompilerCallback.d.ts.map +1 -0
- package/build/src/utils/UrlSubpathCompilerCallback.js +43 -0
- package/build/src/utils/UrlSubpathCompilerCallback.js.map +1 -0
- package/build/test/kpj/test-kpj-file-reader.js +8 -8
- package/build/test/kpj/test-kpj-file-reader.js.map +1 -1
- package/build/test/kpj/test-kpj-file-writer.d.ts +2 -0
- package/build/test/kpj/test-kpj-file-writer.d.ts.map +1 -0
- package/build/test/kpj/test-kpj-file-writer.js +71 -0
- package/build/test/kpj/test-kpj-file-writer.js.map +1 -0
- package/build/test/tsconfig.tsbuildinfo +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
package/build/src/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Keyman is copyright (C) SIL Global. MIT License.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
!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]="
|
|
5
|
+
!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]="274dd1bd-b074-57c5-8a03-4a867fec5384")}catch(e){}}();
|
|
6
6
|
export { validateMITLicense } from './utils/validate-mit-license.js';
|
|
7
7
|
export { KeymanSentry } from './utils/KeymanSentry.js';
|
|
8
8
|
export { getOption, loadOptions, clearOptions } from './utils/options.js';
|
|
@@ -10,7 +10,8 @@ export { escapeMarkdownChar } from './utils/markdown.js';
|
|
|
10
10
|
export { KeymanUrls } from './utils/keyman-urls.js';
|
|
11
11
|
export * as KPJ from './types/kpj/kpj-file.js';
|
|
12
12
|
export { KPJFileReader } from './types/kpj/kpj-file-reader.js';
|
|
13
|
-
export {
|
|
13
|
+
export { KPJFileWriter } from './types/kpj/kpj-file-writer.js';
|
|
14
|
+
export { KeymanDeveloperProject, KeymanDeveloperProjectType, KeymanDeveloperProjectOptions } from './types/kpj/keyman-developer-project.js';
|
|
14
15
|
export { isValidEmail } from './is-valid-email.js';
|
|
15
16
|
export * as KpsFile from './types/kps/kps-file.js';
|
|
16
17
|
export { KpsFileReader } from './types/kps/kps-file-reader.js';
|
|
@@ -24,8 +25,11 @@ export { default as KMXBuilder } from './types/kmx/kmx-builder.js';
|
|
|
24
25
|
export { default as KMXPlusBuilder } from './types/kmx/kmx-plus-builder/kmx-plus-builder.js';
|
|
25
26
|
export * as LDMLKeyboard from './types/ldml-keyboard/ldml-keyboard-xml.js';
|
|
26
27
|
export { LDMLKeyboardXMLSourceFileReader, LDMLKeyboardXMLSourceFileReaderOptions } from './types/ldml-keyboard/ldml-keyboard-xml-reader.js';
|
|
27
|
-
export {
|
|
28
|
+
export { CompilerFileCallbacks, DefaultCompilerFileSystemAsyncCallbacks, } from './compiler-callbacks.js';
|
|
29
|
+
export { defaultCompilerOptions, CompilerErrorNamespace, CompilerErrorSeverity, CompilerError, CompilerMessageSpec, CompilerMessageSpecWithException, compilerErrorSeverity, CompilerErrorMask, compilerErrorSeverityName, compilerErrorFormatCode, CompilerMessageDef, compilerLogLevelToSeverity, compilerEventFormat, ALL_COMPILER_LOG_LEVELS, ALL_COMPILER_LOG_FORMATS } from './compiler-interfaces.js';
|
|
30
|
+
export { UrlSubpathCompilerCallback } from './utils/UrlSubpathCompilerCallback.js';
|
|
28
31
|
export { CommonTypesMessages } from './common-messages.js';
|
|
32
|
+
export * as SourceFilenamePatterns from './source-filename-patterns.js';
|
|
29
33
|
export { KeymanXMLWriter, KeymanXMLReader } from './xml-utils.js';
|
|
30
34
|
//# sourceMappingURL=index.js.map
|
|
31
|
-
//# debugId=
|
|
35
|
+
//# debugId=274dd1bd-b074-57c5-8a03-4a867fec5384
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourceRoot":"","names":[],"mappings":"AAAA;;GAEG;;;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAqB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAA8B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourceRoot":"","names":[],"mappings":"AAAA;;GAEG;;;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAqB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAA8B,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxK,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAgC,MAAM,gEAAgE,CAAC;AAErI,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAC,MAAO,kDAAkD,CAAC;AAE7F,OAAO,KAAK,YAAY,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,MAAM,mDAAmD,CAAC;AAE5I,OAAO,EAGL,qBAAqB,EAMrB,uCAAuC,GACxC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAuD,sBAAsB,EAC1G,qBAAqB,EACrB,aAAa,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,yBAAyB,EACzI,uBAAuB,EAAE,kBAAkB,EAC3C,0BAA0B,EAAoB,mBAAmB,EAAE,uBAAuB,EAC1F,wBAAwB,EAUvB,MAAM,0BAA0B,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAiB,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC","debug_id":"274dd1bd-b074-57c5-8a03-4a867fec5384"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A keyboard package filename SHOULD adhere to this pattern (including file
|
|
3
|
+
* extension), lower case alphanumeric and underscore only allowed (a-z, _ only
|
|
4
|
+
* for first letter).
|
|
5
|
+
*/
|
|
6
|
+
export declare const KEYBOARD_ID_PATTERN_PACKAGE: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* A lexical model package filename SHOULD adhere to this pattern (including
|
|
9
|
+
* file extension). There are three components to the filename: author, bcp47,
|
|
10
|
+
* and uniq, separated by period. The filename ends in .model.kps or .model.kmp.
|
|
11
|
+
* Each of the author, bcp47, and uniq sections may contain lowercase
|
|
12
|
+
* alphanumeric, underscore characters, and the bcp47 section additionally may
|
|
13
|
+
* contain hyphen. Digits are not permitted as first letter of each section.
|
|
14
|
+
*
|
|
15
|
+
* Despite including a bcp47 tag as part of the filename, it is informative only,
|
|
16
|
+
* and is not regarded as part of the metadata for the lexical model.
|
|
17
|
+
*/
|
|
18
|
+
export declare const MODEL_ID_PATTERN_PACKAGE: RegExp;
|
|
19
|
+
/**
|
|
20
|
+
* Filenames of files contained in a package MAY adhere to this pattern for
|
|
21
|
+
* optimum cross-platform compatibility. This is the basename portion of the
|
|
22
|
+
* filename, and is case-insensitive.
|
|
23
|
+
*/
|
|
24
|
+
export declare const CONTENT_FILE_BASENAME_PATTERN: RegExp;
|
|
25
|
+
/**
|
|
26
|
+
* Extensions of files contained in a package MAY adhere to this pattern for optimum
|
|
27
|
+
* cross-platform compatibility. This is the extension portion of the filename,
|
|
28
|
+
* and should be lower case, and may be empty.
|
|
29
|
+
*/
|
|
30
|
+
export declare const CONTENT_FILE_EXTENSION_PATTERN: RegExp;
|
|
31
|
+
//# sourceMappingURL=source-filename-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-filename-patterns.d.ts","sourceRoot":"","sources":["../../src/source-filename-patterns.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAkC,CAAC;AAE3E;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,wBAAwB,QAA8E,CAAC;AAMpH;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAAqB,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,QAAuB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Keyman is copyright (C) SIL International. MIT License.
|
|
3
|
+
*
|
|
4
|
+
* Keyman Developer source filename regular expressions
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A keyboard package filename SHOULD adhere to this pattern (including file
|
|
8
|
+
* extension), lower case alphanumeric and underscore only allowed (a-z, _ only
|
|
9
|
+
* for first letter).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
!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]="38849c42-4eae-591c-ae63-964a99c99c2c")}catch(e){}}();
|
|
13
|
+
export const KEYBOARD_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.(kps|kmp)$/;
|
|
14
|
+
/**
|
|
15
|
+
* A lexical model package filename SHOULD adhere to this pattern (including
|
|
16
|
+
* file extension). There are three components to the filename: author, bcp47,
|
|
17
|
+
* and uniq, separated by period. The filename ends in .model.kps or .model.kmp.
|
|
18
|
+
* Each of the author, bcp47, and uniq sections may contain lowercase
|
|
19
|
+
* alphanumeric, underscore characters, and the bcp47 section additionally may
|
|
20
|
+
* contain hyphen. Digits are not permitted as first letter of each section.
|
|
21
|
+
*
|
|
22
|
+
* Despite including a bcp47 tag as part of the filename, it is informative only,
|
|
23
|
+
* and is not regarded as part of the metadata for the lexical model.
|
|
24
|
+
*/
|
|
25
|
+
// author .bcp47 .uniq
|
|
26
|
+
export const MODEL_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.(kps|kmp)$/;
|
|
27
|
+
// const MODEL_ID_PATTERN_JS = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.js$/;
|
|
28
|
+
// const MODEL_ID_PATTERN_TS = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.ts$/;
|
|
29
|
+
// const MODEL_ID_PATTERN_PROJECT = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.kpj$/;
|
|
30
|
+
/**
|
|
31
|
+
* Filenames of files contained in a package MAY adhere to this pattern for
|
|
32
|
+
* optimum cross-platform compatibility. This is the basename portion of the
|
|
33
|
+
* filename, and is case-insensitive.
|
|
34
|
+
*/
|
|
35
|
+
export const CONTENT_FILE_BASENAME_PATTERN = /^[a-z0-9_+.-]+$/i; // base names can be case insensitive
|
|
36
|
+
/**
|
|
37
|
+
* Extensions of files contained in a package MAY adhere to this pattern for optimum
|
|
38
|
+
* cross-platform compatibility. This is the extension portion of the filename,
|
|
39
|
+
* and should be lower case, and may be empty.
|
|
40
|
+
*/
|
|
41
|
+
export const CONTENT_FILE_EXTENSION_PATTERN = /^(\.[a-z0-9_-]+)?$/; // extensions should be lower-case or empty
|
|
42
|
+
//# sourceMappingURL=source-filename-patterns.js.map
|
|
43
|
+
//# debugId=38849c42-4eae-591c-ae63-964a99c99c2c
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-filename-patterns.js","sources":["../../src/source-filename-patterns.ts"],"sourceRoot":"","names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;;;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,+BAA+B,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,2EAA2E,CAAC;AAEpH,yGAAyG;AACzG,yGAAyG;AACzG,0GAA0G;AAE1G;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC,CAAC,qCAAqC;AAEtG;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,oBAAoB,CAAC,CAAC,2CAA2C","debug_id":"38849c42-4eae-591c-ae63-964a99c99c2c"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { KeymanFileTypes } from '@keymanapp/common-types';
|
|
2
|
-
import {
|
|
2
|
+
import { CompilerAsyncCallbacks, CompilerPathCallbacks } from "../../compiler-callbacks.js";
|
|
3
3
|
export declare class KeymanDeveloperProject {
|
|
4
4
|
private _projectFilename;
|
|
5
|
-
|
|
5
|
+
protected callbacks: CompilerAsyncCallbacks;
|
|
6
6
|
options: KeymanDeveloperProjectOptions;
|
|
7
7
|
files: KeymanDeveloperProjectFile[];
|
|
8
8
|
projectPath: string;
|
|
9
9
|
readonly projectFile: KeymanDeveloperProjectFile;
|
|
10
10
|
get projectFilename(): string;
|
|
11
|
-
constructor(_projectFilename: string, version: KeymanDeveloperProjectVersion, callbacks:
|
|
11
|
+
constructor(_projectFilename: string, version: KeymanDeveloperProjectVersion, callbacks: CompilerAsyncCallbacks);
|
|
12
12
|
/**
|
|
13
13
|
* Adds .kmn, .xml, .kps to project based on options.sourcePath
|
|
14
14
|
* @param projectFilename Full path to project.kpj (even if the file doesn't exist)
|
|
15
15
|
*/
|
|
16
|
-
populateFiles(): boolean
|
|
16
|
+
populateFiles(): Promise<boolean>;
|
|
17
17
|
isKeyboardProject(): boolean;
|
|
18
18
|
isLexicalModelProject(): boolean;
|
|
19
19
|
private resolveProjectPath;
|
|
20
|
+
resolveBuildPath(): string;
|
|
20
21
|
getOutputFilePath(type: KeymanFileTypes.Binary): string;
|
|
21
22
|
resolveInputFilePath(file: KeymanDeveloperProjectFile): string;
|
|
22
23
|
resolveOutputFilePath(file: KeymanDeveloperProjectFile, sourceExt: string, targetExt: string): string;
|
|
@@ -51,20 +52,20 @@ export declare class KeymanDeveloperProjectFile10 implements KeymanDeveloperProj
|
|
|
51
52
|
readonly id: string;
|
|
52
53
|
readonly filePath: string;
|
|
53
54
|
readonly fileVersion: string;
|
|
54
|
-
private
|
|
55
|
+
private path;
|
|
55
56
|
get filename(): string;
|
|
56
57
|
get fileType(): string;
|
|
57
58
|
details: KeymanDeveloperProjectFileDetail_Kmn & KeymanDeveloperProjectFileDetail_Kps;
|
|
58
59
|
childFiles: KeymanDeveloperProjectFile[];
|
|
59
|
-
constructor(id: string, filePath: string, fileVersion: string,
|
|
60
|
+
constructor(id: string, filePath: string, fileVersion: string, path: CompilerPathCallbacks);
|
|
60
61
|
}
|
|
61
62
|
export type KeymanDeveloperProjectFileType20 = KeymanFileTypes.Source;
|
|
62
63
|
export declare class KeymanDeveloperProjectFile20 implements KeymanDeveloperProjectFile {
|
|
63
64
|
readonly filePath: string;
|
|
64
|
-
private
|
|
65
|
+
private path;
|
|
65
66
|
get filename(): string;
|
|
66
67
|
get fileType(): string;
|
|
67
|
-
constructor(filePath: string,
|
|
68
|
+
constructor(filePath: string, path: CompilerPathCallbacks);
|
|
68
69
|
}
|
|
69
70
|
export declare class KeymanDeveloperProjectFileDetail_Kps {
|
|
70
71
|
name?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyman-developer-project.d.ts","sourceRoot":"","sources":["../../../../src/types/kpj/keyman-developer-project.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"keyman-developer-project.d.ts","sourceRoot":"","sources":["../../../../src/types/kpj/keyman-developer-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Version 1.0 and 2.0 of Keyman Developer Project .kpj file
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
!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]="
|
|
5
|
+
!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]="c85911cf-30b8-53b3-9742-a2ef65160d59")}catch(e){}}();
|
|
6
6
|
import { KeymanFileTypes } from '@keymanapp/common-types';
|
|
7
7
|
export class KeymanDeveloperProject {
|
|
8
8
|
_projectFilename;
|
|
@@ -20,26 +20,26 @@ export class KeymanDeveloperProject {
|
|
|
20
20
|
this.projectPath = this.callbacks.path.dirname(this._projectFilename);
|
|
21
21
|
this.options = new KeymanDeveloperProjectOptions(version);
|
|
22
22
|
this.files = [];
|
|
23
|
-
this.projectFile = new KeymanDeveloperProjectFile20(_projectFilename, callbacks);
|
|
23
|
+
this.projectFile = new KeymanDeveloperProjectFile20(_projectFilename, this.callbacks.path);
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Adds .kmn, .xml, .kps to project based on options.sourcePath
|
|
27
27
|
* @param projectFilename Full path to project.kpj (even if the file doesn't exist)
|
|
28
28
|
*/
|
|
29
|
-
populateFiles() {
|
|
29
|
+
async populateFiles() {
|
|
30
30
|
if (this.options.version != '2.0') {
|
|
31
31
|
throw new Error('populateFiles can only be called on a v2.0 project');
|
|
32
32
|
}
|
|
33
33
|
const sourcePath = this.resolveProjectPath(this.options.sourcePath);
|
|
34
|
-
if (!this.callbacks.
|
|
34
|
+
if (!await this.callbacks.fsAsync.exists(sourcePath)) {
|
|
35
35
|
return false;
|
|
36
36
|
}
|
|
37
|
-
const files = this.callbacks.
|
|
38
|
-
for (const
|
|
39
|
-
const fullPath = this.callbacks.path.join(sourcePath, filename);
|
|
40
|
-
if (KeymanFileTypes.filenameIs(filename, ".xml" /* KeymanFileTypes.Source.LdmlKeyboard */)) {
|
|
37
|
+
const files = await this.callbacks.fsAsync.readdir(sourcePath);
|
|
38
|
+
for (const file of files.filter(file => file.type == 'file')) {
|
|
39
|
+
const fullPath = this.callbacks.path.join(sourcePath, file.filename);
|
|
40
|
+
if (KeymanFileTypes.filenameIs(file.filename, ".xml" /* KeymanFileTypes.Source.LdmlKeyboard */)) {
|
|
41
41
|
try {
|
|
42
|
-
const data = this.callbacks.
|
|
42
|
+
const data = await this.callbacks.fsAsync.readFile(fullPath);
|
|
43
43
|
const text = new TextDecoder().decode(data);
|
|
44
44
|
if (!text?.match(/<keyboard3/)) {
|
|
45
45
|
// Skip this .xml because we assume it isn't really a keyboard .xml
|
|
@@ -52,8 +52,8 @@ export class KeymanDeveloperProject {
|
|
|
52
52
|
continue;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
if (KeymanFileTypes.sourceTypeFromFilename(filename) !== null) {
|
|
56
|
-
const file = new KeymanDeveloperProjectFile20(fullPath, this.callbacks);
|
|
55
|
+
if (KeymanFileTypes.sourceTypeFromFilename(file.filename) !== null) {
|
|
56
|
+
const file = new KeymanDeveloperProjectFile20(fullPath, this.callbacks.path);
|
|
57
57
|
this.files.push(file);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -69,7 +69,7 @@ export class KeymanDeveloperProject {
|
|
|
69
69
|
// Replace placeholders in the target path
|
|
70
70
|
return p.replace('$PROJECTPATH', this.projectPath);
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
resolveBuildPath() {
|
|
73
73
|
// Roughly corresponds to Delphi TProject.GetTargetFileName
|
|
74
74
|
let p = this.options.version == '1.0' ?
|
|
75
75
|
this.options.buildPath || '$SOURCEPATH' :
|
|
@@ -81,11 +81,15 @@ export class KeymanDeveloperProject {
|
|
|
81
81
|
p = p.replace('$SOURCEPATH', this.callbacks.path.dirname(this._projectFilename));
|
|
82
82
|
}
|
|
83
83
|
p = this.resolveProjectPath(p);
|
|
84
|
+
return p;
|
|
85
|
+
}
|
|
86
|
+
getOutputFilePath(type) {
|
|
87
|
+
const p = this.resolveBuildPath();
|
|
84
88
|
const f = this.callbacks.path.basename(this._projectFilename, ".kpj" /* KeymanFileTypes.Source.Project */) + type;
|
|
85
89
|
return this.callbacks.path.normalize(this.callbacks.path.join(p, f));
|
|
86
90
|
}
|
|
87
91
|
resolveInputFilePath(file) {
|
|
88
|
-
return this.callbacks.resolveFilename(this._projectFilename, file.filePath);
|
|
92
|
+
return this.callbacks.fsAsync.resolveFilename(this._projectFilename, file.filePath);
|
|
89
93
|
}
|
|
90
94
|
resolveOutputFilePath(file, sourceExt, targetExt) {
|
|
91
95
|
// Roughly corresponds to Delphi TProject.GetTargetFileName
|
|
@@ -147,20 +151,20 @@ export class KeymanDeveloperProjectFile10 {
|
|
|
147
151
|
id;
|
|
148
152
|
filePath;
|
|
149
153
|
fileVersion;
|
|
150
|
-
|
|
154
|
+
path;
|
|
151
155
|
get filename() {
|
|
152
|
-
return this.
|
|
156
|
+
return this.path.basename(this.filePath);
|
|
153
157
|
}
|
|
154
158
|
get fileType() {
|
|
155
159
|
return KeymanFileTypes.fromFilename(this.filename);
|
|
156
160
|
}
|
|
157
161
|
details; // 1.0 only
|
|
158
162
|
childFiles; // 1.0 only
|
|
159
|
-
constructor(id, filePath, fileVersion,
|
|
163
|
+
constructor(id, filePath, fileVersion, path) {
|
|
160
164
|
this.id = id;
|
|
161
165
|
this.filePath = filePath;
|
|
162
166
|
this.fileVersion = fileVersion;
|
|
163
|
-
this.
|
|
167
|
+
this.path = path;
|
|
164
168
|
this.details = {};
|
|
165
169
|
this.childFiles = [];
|
|
166
170
|
}
|
|
@@ -168,16 +172,16 @@ export class KeymanDeveloperProjectFile10 {
|
|
|
168
172
|
;
|
|
169
173
|
export class KeymanDeveloperProjectFile20 {
|
|
170
174
|
filePath;
|
|
171
|
-
|
|
175
|
+
path;
|
|
172
176
|
get filename() {
|
|
173
|
-
return this.
|
|
177
|
+
return this.path.basename(this.filePath);
|
|
174
178
|
}
|
|
175
179
|
get fileType() {
|
|
176
180
|
return KeymanFileTypes.fromFilename(this.filename);
|
|
177
181
|
}
|
|
178
|
-
constructor(filePath,
|
|
182
|
+
constructor(filePath, path) {
|
|
179
183
|
this.filePath = filePath;
|
|
180
|
-
this.
|
|
184
|
+
this.path = path;
|
|
181
185
|
}
|
|
182
186
|
}
|
|
183
187
|
;
|
|
@@ -194,4 +198,4 @@ export class KeymanDeveloperProjectFileDetail_Kmn {
|
|
|
194
198
|
}
|
|
195
199
|
;
|
|
196
200
|
//# sourceMappingURL=keyman-developer-project.js.map
|
|
197
|
-
//# debugId=
|
|
201
|
+
//# debugId=c85911cf-30b8-53b3-9742-a2ef65160d59
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyman-developer-project.js","sources":["../../../../src/types/kpj/keyman-developer-project.ts"],"sourceRoot":"","names":[],"mappings":"AAAA,EAAE;AACF,4DAA4D;AAC5D,EAAE;;;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,MAAM,OAAO,sBAAsB;
|
|
1
|
+
{"version":3,"file":"keyman-developer-project.js","sources":["../../../../src/types/kpj/keyman-developer-project.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"c85911cf-30b8-53b3-9742-a2ef65160d59"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { KPJFile } from './kpj-file.js';
|
|
2
2
|
import { KeymanDeveloperProject } from './keyman-developer-project.js';
|
|
3
|
-
import {
|
|
3
|
+
import { CompilerAsyncCallbacks } from "../../compiler-callbacks.js";
|
|
4
4
|
export declare class KPJFileReader {
|
|
5
5
|
private callbacks;
|
|
6
|
-
constructor(callbacks:
|
|
6
|
+
constructor(callbacks: CompilerAsyncCallbacks);
|
|
7
7
|
read(file: Uint8Array): KPJFile;
|
|
8
8
|
validate(source: KPJFile): void;
|
|
9
9
|
private boolFromString;
|
|
10
|
-
transform(projectFilename: string, source: KPJFile): KeymanDeveloperProject
|
|
10
|
+
transform(projectFilename: string, source: KPJFile): Promise<KeymanDeveloperProject>;
|
|
11
11
|
private transformFilesVersion10;
|
|
12
12
|
/**
|
|
13
13
|
* xml2js will not place single-entry objects into arrays.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kpj-file-reader.d.ts","sourceRoot":"","sources":["../../../../src/types/kpj/kpj-file-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAkB,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAA4D,MAAM,+BAA+B,CAAC;AAEjI,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"kpj-file-reader.d.ts","sourceRoot":"","sources":["../../../../src/types/kpj/kpj-file-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAkB,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAA4D,MAAM,+BAA+B,CAAC;AAEjI,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,sBAAsB;IAG9C,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAkB/B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAUtC,OAAO,CAAC,cAAc;IAOT,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+BjG,OAAO,CAAC,uBAAuB;IAwB/B;;;;OAIG;IACH,OAAO,CAAC,SAAS;CAUlB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!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]="
|
|
2
|
+
!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]="efaa4781-b440-5af8-b7a6-b7ac6531f982")}catch(e){}}();
|
|
3
3
|
import { KeymanXMLReader } from '../../index.js';
|
|
4
4
|
import { util } from '@keymanapp/common-types';
|
|
5
5
|
import { KeymanDeveloperProject, KeymanDeveloperProjectFile10, KeymanDeveloperProjectType } from './keyman-developer-project.js';
|
|
@@ -41,7 +41,7 @@ export class KPJFileReader {
|
|
|
41
41
|
return false;
|
|
42
42
|
return def;
|
|
43
43
|
}
|
|
44
|
-
transform(projectFilename, source) {
|
|
44
|
+
async transform(projectFilename, source) {
|
|
45
45
|
// NOTE: at this point, the xml should have been validated
|
|
46
46
|
// and matched the schema result so we can assume the source
|
|
47
47
|
// is a valid shape
|
|
@@ -67,14 +67,14 @@ export class KPJFileReader {
|
|
|
67
67
|
this.transformFilesVersion10(project, result);
|
|
68
68
|
}
|
|
69
69
|
else {
|
|
70
|
-
result.populateFiles();
|
|
70
|
+
await result.populateFiles();
|
|
71
71
|
}
|
|
72
72
|
return result;
|
|
73
73
|
}
|
|
74
74
|
transformFilesVersion10(project, result) {
|
|
75
75
|
const ids = {};
|
|
76
76
|
for (const sourceFile of project.Files?.File) {
|
|
77
|
-
const file = new KeymanDeveloperProjectFile10(sourceFile.ID || '', (sourceFile.Filepath || '').replace(/\\/g, '/'), sourceFile.FileVersion || '', this.callbacks);
|
|
77
|
+
const file = new KeymanDeveloperProjectFile10(sourceFile.ID || '', (sourceFile.Filepath || '').replace(/\\/g, '/'), sourceFile.FileVersion || '', this.callbacks.path);
|
|
78
78
|
if (sourceFile.Details) {
|
|
79
79
|
file.details.copyright = sourceFile.Details.Copyright;
|
|
80
80
|
file.details.name = sourceFile.Details.Name;
|
|
@@ -107,4 +107,4 @@ export class KPJFileReader {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
//# sourceMappingURL=kpj-file-reader.js.map
|
|
110
|
-
//# debugId=
|
|
110
|
+
//# debugId=efaa4781-b440-5af8-b7a6-b7ac6531f982
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kpj-file-reader.js","sources":["../../../../src/types/kpj/kpj-file-reader.ts"],"sourceRoot":"","names":[],"mappings":";;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACjI,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,
|
|
1
|
+
{"version":3,"file":"kpj-file-reader.js","sources":["../../../../src/types/kpj/kpj-file-reader.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"efaa4781-b440-5af8-b7a6-b7ac6531f982"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KeymanDeveloperProject } from './keyman-developer-project.js';
|
|
2
|
+
export declare class KPJFileWriter {
|
|
3
|
+
write(project: KeymanDeveloperProject): string;
|
|
4
|
+
private normalizePath;
|
|
5
|
+
private boolToString;
|
|
6
|
+
private stripEmptyMembers;
|
|
7
|
+
private isEmptyObject;
|
|
8
|
+
private isEmpty;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=kpj-file-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kpj-file-writer.d.ts","sourceRoot":"","sources":["../../../../src/types/kpj/kpj-file-writer.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAA4F,MAAM,+BAA+B,CAAC;AAEjK,qBAAa,aAAa;IACjB,KAAK,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM;IAsCrD,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,OAAO;CAShB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
|
|
2
|
+
!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]="b0a9a1be-9420-562e-9cf7-99f4c1175514")}catch(e){}}();
|
|
3
|
+
import { KeymanXMLWriter } from '../../index.js';
|
|
4
|
+
import { KeymanDeveloperProjectOptions, KeymanDeveloperProjectType } from './keyman-developer-project.js';
|
|
5
|
+
export class KPJFileWriter {
|
|
6
|
+
write(project) {
|
|
7
|
+
const defaultOptions = new KeymanDeveloperProjectOptions(project.options.version);
|
|
8
|
+
const kpj = {
|
|
9
|
+
KeymanDeveloperProject: {
|
|
10
|
+
Options: {
|
|
11
|
+
BuildPath: project.options.buildPath === defaultOptions.buildPath ? null : this.normalizePath(project.options.buildPath, project.options.version),
|
|
12
|
+
CheckFilenameConventions: project.options.checkFilenameConventions === defaultOptions.checkFilenameConventions ? null : this.boolToString(project.options.checkFilenameConventions),
|
|
13
|
+
CompilerWarningsAsErrors: project.options.compilerWarningsAsErrors === defaultOptions.compilerWarningsAsErrors ? null : this.boolToString(project.options.compilerWarningsAsErrors),
|
|
14
|
+
ProjectType: project.options.projectType == KeymanDeveloperProjectType.LexicalModel ? 'lexicalmodel' : 'keyboard',
|
|
15
|
+
SkipMetadataFiles: project.options.skipMetadataFiles === defaultOptions.skipMetadataFiles ? null : this.boolToString(project.options.skipMetadataFiles),
|
|
16
|
+
SourcePath: project.options.sourcePath === defaultOptions.sourcePath ? null : this.normalizePath(project.options.sourcePath, project.options.version),
|
|
17
|
+
Version: project.options.version == '1.0' ? null : project.options.version,
|
|
18
|
+
WarnDeprecatedCode: project.options.warnDeprecatedCode === defaultOptions.warnDeprecatedCode ? null : this.boolToString(project.options.warnDeprecatedCode),
|
|
19
|
+
},
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
if (project.options.version == '1.0') {
|
|
23
|
+
kpj.KeymanDeveloperProject.Files = { File: [] };
|
|
24
|
+
for (const file of project.files) {
|
|
25
|
+
// we skip any parented files, and any file details
|
|
26
|
+
const File = {
|
|
27
|
+
ID: file.filename,
|
|
28
|
+
Filename: file.filename,
|
|
29
|
+
Filepath: this.normalizePath(file.filePath, project.options.version),
|
|
30
|
+
FileType: file.fileType,
|
|
31
|
+
};
|
|
32
|
+
kpj.KeymanDeveloperProject.Files.File.push(File);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
this.stripEmptyMembers(kpj);
|
|
36
|
+
const result = new KeymanXMLWriter('kpj').write(kpj);
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
normalizePath(path, version) {
|
|
40
|
+
return version == '1.0'
|
|
41
|
+
? path?.replaceAll(/\//g, '\\')
|
|
42
|
+
: path?.replaceAll(/\\/g, '/');
|
|
43
|
+
}
|
|
44
|
+
boolToString(b) {
|
|
45
|
+
if (b === null || b === undefined) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
// .kpj expects title case True/False
|
|
49
|
+
return b ? 'True' : 'False';
|
|
50
|
+
}
|
|
51
|
+
stripEmptyMembers(o) {
|
|
52
|
+
for (const p of Object.keys(o)) {
|
|
53
|
+
if (typeof o[p] === 'undefined' || o[p] === null) {
|
|
54
|
+
delete o[p];
|
|
55
|
+
}
|
|
56
|
+
else if (this.isEmptyObject(o[p])) {
|
|
57
|
+
delete o[p];
|
|
58
|
+
}
|
|
59
|
+
else if (typeof o[p] == 'object') {
|
|
60
|
+
this.stripEmptyMembers(o[p]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
isEmptyObject(value) {
|
|
65
|
+
// https://stackoverflow.com/a/32108184/1836776
|
|
66
|
+
if (value == null) {
|
|
67
|
+
// null or undefined
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
if (typeof value !== 'object') {
|
|
71
|
+
// boolean, number, string, function, etc.
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const proto = Object.getPrototypeOf(value);
|
|
75
|
+
// consider `Object.create(null)`, commonly used as a safe map
|
|
76
|
+
// before `Map` support, an empty object as well as `{}`
|
|
77
|
+
if (proto !== null && proto !== Object.prototype) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return this.isEmpty(value);
|
|
81
|
+
}
|
|
82
|
+
isEmpty(obj) {
|
|
83
|
+
for (const prop in obj) {
|
|
84
|
+
if (Object.hasOwn(obj, prop)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=kpj-file-writer.js.map
|
|
92
|
+
//# debugId=b0a9a1be-9420-562e-9cf7-99f4c1175514
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kpj-file-writer.js","sources":["../../../../src/types/kpj/kpj-file-writer.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"b0a9a1be-9420-562e-9cf7-99f4c1175514"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kps-file-reader.d.ts","sourceRoot":"","sources":["../../../../src/types/kps/kps-file-reader.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"kps-file-reader.d.ts","sourceRoot":"","sources":["../../../../src/types/kps/kps-file-reader.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAIzC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;IAsBzC,OAAO,CAAC,SAAS;CA2BlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CompilerCallbacks } from
|
|
1
|
+
import { CompilerCallbacks } from "../../compiler-callbacks.js";
|
|
2
2
|
import { LDMLKeyboardXMLSourceFile } from './ldml-keyboard-xml.js';
|
|
3
3
|
import { LDMLKeyboardTestDataXMLSourceFile } from './ldml-keyboard-testdata-xml.js';
|
|
4
4
|
interface NameAndProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ldml-keyboard-xml-reader.d.ts","sourceRoot":"","sources":["../../../../src/types/ldml-keyboard/ldml-keyboard-xml-reader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ldml-keyboard-xml-reader.d.ts","sourceRoot":"","sources":["../../../../src/types/ldml-keyboard/ldml-keyboard-xml-reader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAA0B,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,iCAAiC,EAAqB,MAAM,iCAAiC,CAAC;AAIvG,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,qBAAa,sCAAsC;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,+BAA+B;IAC9B,OAAO,CAAC,OAAO;IAA0C,OAAO,CAAC,SAAS;gBAAlE,OAAO,EAAE,sCAAsC,EAAU,SAAS,EAAG,iBAAiB;IAG1G,MAAM,KAAK,iBAAiB,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,CAE9C;IAED,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU;IAK5D;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAyEjB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAgCtB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACI,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,iCAAiC,GAAG,OAAO;IAe/F,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,yBAAyB;IAOxD;;;OAGG;IACI,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,yBAAyB,GAAG,IAAI;IAqB/D,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG;IAM1C;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAIvE;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAYvE;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,aAAa,MAAS,YAAY,KAAK,+BAA+B,SAAW;IAEjG;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,+BAA+B,KAAK,GAAG;IAYrJ,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAI,iCAAiC,GAAG,IAAI;IAuCtE;;;OAGG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,iCAAiC,GAAG,IAAI;CAOhF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CompilerPathCallbacks } from "../compiler-callbacks.js";
|
|
2
|
+
/**
|
|
3
|
+
* Helper to replace all backslashes with forward slashes,
|
|
4
|
+
* before passing to posix path module
|
|
5
|
+
*/
|
|
6
|
+
export declare class UrlSubpathCompilerCallback implements CompilerPathCallbacks {
|
|
7
|
+
private normalizeSlashes;
|
|
8
|
+
dirname(name: string): string;
|
|
9
|
+
extname(name: string): string;
|
|
10
|
+
basename(name: string, ext?: string): string;
|
|
11
|
+
isAbsolute(name: string): boolean;
|
|
12
|
+
join(...paths: string[]): string;
|
|
13
|
+
normalize(p: string): string;
|
|
14
|
+
relative(from: string, to: string): string;
|
|
15
|
+
resolve(...args: string[]): string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=UrlSubpathCompilerCallback.d.ts.map
|