@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlSubpathCompilerCallback.d.ts","sourceRoot":"","sources":["../../../src/utils/UrlSubpathCompilerCallback.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI7B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAI5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIhC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI5B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAI1C,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM;CAGnC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Keyman is copyright (C) SIL Global. MIT License.
|
|
3
|
+
*
|
|
4
|
+
* URL-style path manipulation functions (OS-independent)
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
!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]="9885c20e-87e1-5f0a-b4b2-9ddbc3515dd1")}catch(e){}}();
|
|
8
|
+
import path from 'path-browserify';
|
|
9
|
+
/**
|
|
10
|
+
* Helper to replace all backslashes with forward slashes,
|
|
11
|
+
* before passing to posix path module
|
|
12
|
+
*/
|
|
13
|
+
export class UrlSubpathCompilerCallback {
|
|
14
|
+
normalizeSlashes(path) {
|
|
15
|
+
return path.replaceAll(/\\/g, '/');
|
|
16
|
+
}
|
|
17
|
+
dirname(name) {
|
|
18
|
+
return path.dirname(this.normalizeSlashes(name));
|
|
19
|
+
}
|
|
20
|
+
extname(name) {
|
|
21
|
+
return path.extname(this.normalizeSlashes(name));
|
|
22
|
+
}
|
|
23
|
+
basename(name, ext) {
|
|
24
|
+
return path.basename(this.normalizeSlashes(name), ext);
|
|
25
|
+
}
|
|
26
|
+
isAbsolute(name) {
|
|
27
|
+
return path.isAbsolute(this.normalizeSlashes(name));
|
|
28
|
+
}
|
|
29
|
+
join(...paths) {
|
|
30
|
+
return path.join(...paths.map(this.normalizeSlashes));
|
|
31
|
+
}
|
|
32
|
+
normalize(p) {
|
|
33
|
+
return path.normalize(this.normalizeSlashes(p));
|
|
34
|
+
}
|
|
35
|
+
relative(from, to) {
|
|
36
|
+
return path.relative(this.normalizeSlashes(from), this.normalizeSlashes(to));
|
|
37
|
+
}
|
|
38
|
+
resolve(...args) {
|
|
39
|
+
return path.resolve(...args.map(this.normalizeSlashes));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=UrlSubpathCompilerCallback.js.map
|
|
43
|
+
//# debugId=9885c20e-87e1-5f0a-b4b2-9ddbc3515dd1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlSubpathCompilerCallback.js","sources":["../../../src/utils/UrlSubpathCompilerCallback.ts"],"sourceRoot":"","names":[],"mappings":"AAAA;;;;GAIG;;;AACH,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAGnC;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IAC7B,gBAAgB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,GAAY;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,GAAG,KAAe;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,CAAS;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,EAAU;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,CAAC,GAAG,IAAc;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF","debug_id":"9885c20e-87e1-5f0a-b4b2-9ddbc3515dd1"}
|
|
@@ -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]="3bb0a093-281e-5033-803f-7d9ee61eb850")}catch(e){}}();
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import 'mocha';
|
|
5
5
|
import { assert } from 'chai';
|
|
@@ -9,7 +9,7 @@ import { KeymanDeveloperProjectType } from '../../src/types/kpj/keyman-developer
|
|
|
9
9
|
import { TestCompilerCallbacks } from '@keymanapp/developer-test-helpers';
|
|
10
10
|
const callbacks = new TestCompilerCallbacks();
|
|
11
11
|
describe('kpj-file-reader', function () {
|
|
12
|
-
it('kpj-file-reader should read a valid file', function () {
|
|
12
|
+
it('kpj-file-reader should read a valid file', async function () {
|
|
13
13
|
const kpjPath = 'khmer_angkor.kpj';
|
|
14
14
|
const path = makePathToFixture('kpj', kpjPath);
|
|
15
15
|
const input = fs.readFileSync(path);
|
|
@@ -57,7 +57,7 @@ describe('kpj-file-reader', function () {
|
|
|
57
57
|
assert.equal(kf.FileType, '.js');
|
|
58
58
|
assert.equal(kf.ParentFileID, 'id_8d4eb765f80c9f2b0f769cf4e4aaa456');
|
|
59
59
|
// Test transform of .kpj into a KeymanDeveloperProject
|
|
60
|
-
const project = reader.transform(kpjPath, kpj);
|
|
60
|
+
const project = await reader.transform(kpjPath, kpj);
|
|
61
61
|
assert.equal(project.options.buildPath, '$PROJECTPATH/build');
|
|
62
62
|
assert.isFalse(project.options.checkFilenameConventions);
|
|
63
63
|
assert.isTrue(project.options.compilerWarningsAsErrors);
|
|
@@ -107,7 +107,7 @@ describe('kpj-file-reader', function () {
|
|
|
107
107
|
assert.isEmpty(f.details);
|
|
108
108
|
assert.lengthOf(f.childFiles, 0);
|
|
109
109
|
});
|
|
110
|
-
it('should load a v1.0 keyboard project with missing <File>', function () {
|
|
110
|
+
it('should load a v1.0 keyboard project with missing <File>', async function () {
|
|
111
111
|
const path = makePathToFixture('kpj', 'project-missing-file', 'project_missing_file.kpj');
|
|
112
112
|
const input = fs.readFileSync(path);
|
|
113
113
|
const reader = new KPJFileReader(callbacks);
|
|
@@ -118,11 +118,11 @@ describe('kpj-file-reader', function () {
|
|
|
118
118
|
}
|
|
119
119
|
assert.equal(callbacks.messages.length, 0);
|
|
120
120
|
assert.lengthOf(kpj.KeymanDeveloperProject.Files.File, 0);
|
|
121
|
-
const project = reader.transform(path, kpj);
|
|
121
|
+
const project = await reader.transform(path, kpj);
|
|
122
122
|
assert.equal(callbacks.messages.length, 0);
|
|
123
123
|
assert.isNotNull(project);
|
|
124
124
|
});
|
|
125
|
-
it('should load a v1.0 keyboard project with missing <Files>', function () {
|
|
125
|
+
it('should load a v1.0 keyboard project with missing <Files>', async function () {
|
|
126
126
|
const path = makePathToFixture('kpj', 'project-missing-file', 'project_missing_files.kpj');
|
|
127
127
|
const input = fs.readFileSync(path);
|
|
128
128
|
const reader = new KPJFileReader(callbacks);
|
|
@@ -130,10 +130,10 @@ describe('kpj-file-reader', function () {
|
|
|
130
130
|
reader.validate(kpj);
|
|
131
131
|
assert.equal(callbacks.messages.length, 0);
|
|
132
132
|
assert.lengthOf(kpj.KeymanDeveloperProject.Files.File, 0);
|
|
133
|
-
const project = reader.transform(path, kpj);
|
|
133
|
+
const project = await reader.transform(path, kpj);
|
|
134
134
|
assert.equal(callbacks.messages.length, 0);
|
|
135
135
|
assert.isNotNull(project);
|
|
136
136
|
});
|
|
137
137
|
});
|
|
138
138
|
//# sourceMappingURL=test-kpj-file-reader.js.map
|
|
139
|
-
//# debugId=
|
|
139
|
+
//# debugId=3bb0a093-281e-5033-803f-7d9ee61eb850
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-kpj-file-reader.js","sources":["../../../test/kpj/test-kpj-file-reader.ts"],"sourceRoot":"","names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,OAAO,CAAC;AACf,OAAO,EAAC,MAAM,EAAC,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAgC,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC3H,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,SAAS,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAE9C,QAAQ,CAAC,iBAAiB,EAAE;IAC1B,EAAE,CAAC,0CAA0C,EAAE;
|
|
1
|
+
{"version":3,"file":"test-kpj-file-reader.js","sources":["../../../test/kpj/test-kpj-file-reader.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"3bb0a093-281e-5033-803f-7d9ee61eb850"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-kpj-file-writer.d.ts","sourceRoot":"","sources":["../../../test/kpj/test-kpj-file-writer.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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]="3af8fd84-d940-51c9-b05a-fcd308cf9efe")}catch(e){}}();
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import 'mocha';
|
|
5
|
+
import { assert } from 'chai';
|
|
6
|
+
import { makePathToFixture } from '../helpers/index.js';
|
|
7
|
+
import { KPJFileReader } from "../../src/types/kpj/kpj-file-reader.js";
|
|
8
|
+
import { TestCompilerCallbacks } from '@keymanapp/developer-test-helpers';
|
|
9
|
+
import { KPJFileWriter } from '../../src/types/kpj/kpj-file-writer.js';
|
|
10
|
+
import { KeymanDeveloperProjectOptions } from '../../src/types/kpj/keyman-developer-project.js';
|
|
11
|
+
const callbacks = new TestCompilerCallbacks();
|
|
12
|
+
describe('kpj-file-writer', function () {
|
|
13
|
+
it('kpj-file-writer should write a valid v1.0 file', async function () {
|
|
14
|
+
const kpjPath = 'khmer_angkor.kpj';
|
|
15
|
+
const path = makePathToFixture('kpj', kpjPath);
|
|
16
|
+
const input = fs.readFileSync(path);
|
|
17
|
+
const reader = new KPJFileReader(callbacks);
|
|
18
|
+
const inputKpj = reader.read(input);
|
|
19
|
+
reader.validate(inputKpj);
|
|
20
|
+
const project = await reader.transform(kpjPath, inputKpj);
|
|
21
|
+
const writer = new KPJFileWriter();
|
|
22
|
+
const output = writer.write(project);
|
|
23
|
+
const outputKpj = reader.read(new TextEncoder().encode(output));
|
|
24
|
+
// The outputKpj may not contain all the fields from the inputKpj, only the
|
|
25
|
+
// essential fields. Many of the fields in .kpj are deprecated, when they
|
|
26
|
+
// relate to file content (e.g. parented files, file details)
|
|
27
|
+
assert.deepEqual(outputKpj.KeymanDeveloperProject.Options, {
|
|
28
|
+
"BuildPath": "$PROJECTPATH\\build",
|
|
29
|
+
"CompilerWarningsAsErrors": "True",
|
|
30
|
+
"ProjectType": "keyboard"
|
|
31
|
+
});
|
|
32
|
+
assert.deepEqual(outputKpj.KeymanDeveloperProject.Files.File, [
|
|
33
|
+
{
|
|
34
|
+
"FileType": ".kmn",
|
|
35
|
+
"Filename": "khmer_angkor.kmn",
|
|
36
|
+
"Filepath": "source\\khmer_angkor.kmn",
|
|
37
|
+
"ID": "khmer_angkor.kmn"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"FileType": ".kps",
|
|
41
|
+
"Filename": "khmer_angkor.kps",
|
|
42
|
+
"Filepath": "source\\khmer_angkor.kps",
|
|
43
|
+
"ID": "khmer_angkor.kps"
|
|
44
|
+
},
|
|
45
|
+
]);
|
|
46
|
+
});
|
|
47
|
+
it('kpj-file-writer should write a valid v2.0 file', async function () {
|
|
48
|
+
const kpjPath = 'khmer_angkor.kpj';
|
|
49
|
+
const path = makePathToFixture('kpj', kpjPath);
|
|
50
|
+
const input = fs.readFileSync(path);
|
|
51
|
+
const reader = new KPJFileReader(callbacks);
|
|
52
|
+
const inputKpj = reader.read(input);
|
|
53
|
+
reader.validate(inputKpj);
|
|
54
|
+
const project = await reader.transform(kpjPath, inputKpj);
|
|
55
|
+
project.options = new KeymanDeveloperProjectOptions('2.0');
|
|
56
|
+
const writer = new KPJFileWriter();
|
|
57
|
+
const output = writer.write(project);
|
|
58
|
+
const outputKpj = reader.read(new TextEncoder().encode(output));
|
|
59
|
+
// The outputKpj may not contain all the fields from the inputKpj, only the
|
|
60
|
+
// essential fields. Many of the fields in .kpj are deprecated, when they
|
|
61
|
+
// relate to file content (e.g. parented files, file details)
|
|
62
|
+
assert.deepEqual(outputKpj.KeymanDeveloperProject.Options, {
|
|
63
|
+
"ProjectType": "keyboard",
|
|
64
|
+
"Version": "2.0",
|
|
65
|
+
});
|
|
66
|
+
// reader.read adds an empty Files.File array
|
|
67
|
+
assert.isEmpty(outputKpj.KeymanDeveloperProject.Files.File);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=test-kpj-file-writer.js.map
|
|
71
|
+
//# debugId=3af8fd84-d940-51c9-b05a-fcd308cf9efe
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-kpj-file-writer.js","sources":["../../../test/kpj/test-kpj-file-writer.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"3af8fd84-d940-51c9-b05a-fcd308cf9efe"}
|