@keymanapp/kmc-copy 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/KeymanProjectCopier.d.ts +145 -0
- package/build/src/KeymanProjectCopier.d.ts.map +1 -0
- package/build/src/KeymanProjectCopier.js +551 -0
- package/build/src/KeymanProjectCopier.js.map +1 -0
- package/build/src/cloud.d.ts +26 -0
- package/build/src/cloud.d.ts.map +1 -0
- package/build/src/cloud.js +126 -0
- package/build/src/cloud.js.map +1 -0
- package/build/src/copier-async-callbacks.d.ts +21 -0
- package/build/src/copier-async-callbacks.d.ts.map +1 -0
- package/build/src/copier-async-callbacks.js +113 -0
- package/build/src/copier-async-callbacks.js.map +1 -0
- package/build/src/copier-messages.d.ts +130 -0
- package/build/src/copier-messages.d.ts.map +1 -0
- package/build/src/copier-messages.js +91 -0
- package/build/src/copier-messages.js.map +1 -0
- package/build/src/main.d.ts +3 -0
- package/build/src/main.d.ts.map +1 -0
- package/build/src/main.js +6 -0
- package/build/src/main.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { CopierMessages } from "./copier-messages.js";
|
|
2
|
+
import { KeymanFileTypes } from "@keymanapp/common-types";
|
|
3
|
+
export class GitHubRef {
|
|
4
|
+
owner;
|
|
5
|
+
repo;
|
|
6
|
+
branch;
|
|
7
|
+
path;
|
|
8
|
+
constructor(owner, repo, branch, path) {
|
|
9
|
+
if (typeof owner == 'string') {
|
|
10
|
+
this.owner = owner;
|
|
11
|
+
this.repo = repo;
|
|
12
|
+
this.branch = branch;
|
|
13
|
+
this.path = path;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
this.owner = owner.owner;
|
|
17
|
+
this.repo = owner.repo;
|
|
18
|
+
this.branch = owner.branch;
|
|
19
|
+
this.path = owner.path;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
toString() {
|
|
23
|
+
return (this.branch && this.path
|
|
24
|
+
? `${this.owner}/${this.repo}/tree/${this.branch}/${this.path}`
|
|
25
|
+
: `${this.owner}/${this.repo}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class KeymanCloudSource {
|
|
29
|
+
callbacks;
|
|
30
|
+
static KeymanApp_Owner = 'keymanapp';
|
|
31
|
+
static KeymanApp_Keyboards_Repo = 'keyboards';
|
|
32
|
+
static KeymanApp_Keyboards_DefaultBranch = 'master';
|
|
33
|
+
static KeymanApp_LexicalModels_Repo = 'lexical-models';
|
|
34
|
+
static KeymanApp_LexicalModels_DefaultBranch = 'master';
|
|
35
|
+
constructor(callbacks) {
|
|
36
|
+
this.callbacks = callbacks;
|
|
37
|
+
}
|
|
38
|
+
async getDefaultBranchFromGitHub(ref) {
|
|
39
|
+
const url = `https://api.github.com/repos/${ref.owner}/${ref.repo}`;
|
|
40
|
+
let data;
|
|
41
|
+
try {
|
|
42
|
+
data = await this.callbacks.net.fetchJSON(url);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
this.callbacks.reportMessage(CopierMessages.Error_CannotDownloadRepoFromGitHub({ ref: ref.toString(), message: e?.message, cause: e?.cause?.message }));
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return data?.default_branch ?? null;
|
|
49
|
+
}
|
|
50
|
+
async downloadFolderFromGitHub(ref) {
|
|
51
|
+
// this.callbacks.reportMessage(CopierMessages.Info_DownloadingFile({ref})); // TODO-COPY: verbose mode support
|
|
52
|
+
const url = `https://api.github.com/repos/${ref.owner}/${ref.repo}/contents/${ref.path}?ref=${ref.branch}`;
|
|
53
|
+
let folder;
|
|
54
|
+
try {
|
|
55
|
+
folder = await this.callbacks.net.fetchJSON(url);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
this.callbacks.reportMessage(CopierMessages.Error_CannotDownloadFolderFromGitHub({ ref: ref.toString(), message: e?.message, cause: e?.cause?.message }));
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
if (!Array.isArray(folder)) {
|
|
62
|
+
this.callbacks.reportMessage(CopierMessages.Error_FolderDownloadedFromGitHubIsNotAValidFolder({ ref: ref.toString() }));
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return folder.map(item => ({
|
|
66
|
+
filename: item.name,
|
|
67
|
+
type: item.type
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
async downloadFileFromGitHub(ref) {
|
|
71
|
+
ref = new GitHubRef(ref); // so we can change props without mutating original
|
|
72
|
+
ref.path = ref.path.startsWith('/') ? ref.path : '/' + ref.path;
|
|
73
|
+
if (!ref.branch || ref.branch == '') {
|
|
74
|
+
// TODO: lookup default branch
|
|
75
|
+
ref.branch = 'master';
|
|
76
|
+
}
|
|
77
|
+
const url = `https://raw.githubusercontent.com/${ref.owner}/${ref.repo}/refs/heads/${ref.branch}${ref.path}`;
|
|
78
|
+
try {
|
|
79
|
+
return await this.callbacks.net.fetchBlob(url);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
if (KeymanFileTypes.binaryTypeFromFilename(this.callbacks.path.extname(ref.path)) != null) {
|
|
83
|
+
// We don't really expect .kmx, .js, etc to be in the repo, so just give informational message
|
|
84
|
+
this.callbacks.reportMessage(CopierMessages.Info_CannotDownloadBinaryFileFromGitHub({ ref: ref.toString(), message: e?.message, cause: e?.cause?.message }));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.callbacks.reportMessage(CopierMessages.Warn_CannotDownloadFileFromGitHub({ ref: ref.toString(), message: e?.message, cause: e?.cause?.message }));
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async getSourceFromKeymanCloud(id, isModel) {
|
|
93
|
+
if (!id.match(/^[a-z0-9_]+/)) {
|
|
94
|
+
this.callbacks.reportMessage(CopierMessages.Error_InvalidCloudKeyboardId({ id }));
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const url = `https://api.keyman.com/${isModel ? 'model' : 'keyboard'}/${id}`;
|
|
98
|
+
let json;
|
|
99
|
+
try {
|
|
100
|
+
json = await this.callbacks.net.fetchJSON(url);
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
this.callbacks.reportMessage(CopierMessages.Error_CouldNotRetrieveFromCloud({ id, message: e?.message, cause: e?.cause?.message }));
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
if (!json || typeof json != 'object') {
|
|
107
|
+
this.callbacks.reportMessage(CopierMessages.Error_KeymanCloudReturnedInvalidData({ id }));
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
if (!json?.sourcePath) {
|
|
111
|
+
// no source provided for the keyboard or model
|
|
112
|
+
this.callbacks.reportMessage(CopierMessages.Error_CloudDoesNotHaveSource({ id }));
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
// One day, we'll support arbitrary sources once the api endpoint starts returning them,
|
|
116
|
+
// but for now always keymanapp/keyboards|lexical-models. See keymanapp/api.keyman.com#260
|
|
117
|
+
const ref = new GitHubRef({
|
|
118
|
+
branch: isModel ? KeymanCloudSource.KeymanApp_LexicalModels_DefaultBranch : KeymanCloudSource.KeymanApp_Keyboards_DefaultBranch,
|
|
119
|
+
owner: KeymanCloudSource.KeymanApp_Owner,
|
|
120
|
+
repo: isModel ? KeymanCloudSource.KeymanApp_LexicalModels_Repo : KeymanCloudSource.KeymanApp_Keyboards_Repo,
|
|
121
|
+
path: (json.sourcePath.startsWith('/') ? '' : '/') + json.sourcePath
|
|
122
|
+
});
|
|
123
|
+
return ref;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=cloud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/cloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CompilerFileSystemAsyncCallbacks, CompilerPathCallbacks, FileSystemFolderEntry, CompilerCallbacks, CompilerNetAsyncCallbacks, CompilerAsyncCallbacks } from "@keymanapp/developer-utils";
|
|
2
|
+
import { GitHubRef } from "./cloud.js";
|
|
3
|
+
export declare class CopierAsyncCallbacks implements CompilerAsyncCallbacks {
|
|
4
|
+
readonly parent: CompilerCallbacks;
|
|
5
|
+
readonly githubRef: GitHubRef;
|
|
6
|
+
readonly path: CompilerPathCallbacks;
|
|
7
|
+
readonly fsAsync: CompilerFileSystemAsyncCallbacks;
|
|
8
|
+
readonly net: CompilerNetAsyncCallbacks;
|
|
9
|
+
constructor(parent: CompilerCallbacks, githubRef: GitHubRef);
|
|
10
|
+
}
|
|
11
|
+
export declare class CopierFileSystemAsyncCallbacks implements CompilerFileSystemAsyncCallbacks {
|
|
12
|
+
private owner;
|
|
13
|
+
private cache;
|
|
14
|
+
private readonly keyboardCloudSource;
|
|
15
|
+
constructor(owner: CopierAsyncCallbacks);
|
|
16
|
+
readFile(filename: string): Promise<Uint8Array>;
|
|
17
|
+
readdir(path: string): Promise<FileSystemFolderEntry[]>;
|
|
18
|
+
exists(filename: string): Promise<boolean>;
|
|
19
|
+
resolveFilename(baseFilename: string, filename: string): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=copier-async-callbacks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copier-async-callbacks.d.ts","sourceRoot":"","sources":["../../src/copier-async-callbacks.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gCAAgC,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAA8B,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC9N,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE1D,qBAAa,oBAAqB,YAAW,sBAAsB;aAIrC,MAAM,EAAE,iBAAiB;aAAkB,SAAS,EAAE,SAAS;IAH3F,SAAgB,IAAI,EAAE,qBAAqB,CAAC;IAC5C,SAAgB,OAAO,EAAE,gCAAgC,CAAC;IAC1D,SAAgB,GAAG,EAAE,yBAAyB,CAAC;gBACnB,MAAM,EAAE,iBAAiB,EAAkB,SAAS,EAAE,SAAS;CAK5F;AAED,qBAAa,8BAA+B,YAAW,gCAAgC;IASzE,OAAO,CAAC,KAAK;IARzB,OAAO,CAAC,KAAK,CAKL;IACR,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoB;gBAEpC,KAAK,EAAE,oBAAoB;IAIzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmB/C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAkCvD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBhD,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAcvD"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Keyman is copyright (C) SIL Global. MIT License.
|
|
3
|
+
*
|
|
4
|
+
* Wrapper for network callbacks to give access to GitHub and Keyman Cloud URLs
|
|
5
|
+
*/
|
|
6
|
+
import { UrlSubpathCompilerCallback } from "@keymanapp/developer-utils";
|
|
7
|
+
import { KeymanCloudSource } from "./cloud.js";
|
|
8
|
+
export class CopierAsyncCallbacks {
|
|
9
|
+
parent;
|
|
10
|
+
githubRef;
|
|
11
|
+
path;
|
|
12
|
+
fsAsync;
|
|
13
|
+
net;
|
|
14
|
+
constructor(parent, githubRef) {
|
|
15
|
+
this.parent = parent;
|
|
16
|
+
this.githubRef = githubRef;
|
|
17
|
+
this.path = githubRef ? new UrlSubpathCompilerCallback() : parent.path;
|
|
18
|
+
this.fsAsync = new CopierFileSystemAsyncCallbacks(this);
|
|
19
|
+
this.net = parent.net;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class CopierFileSystemAsyncCallbacks {
|
|
23
|
+
owner;
|
|
24
|
+
cache = {};
|
|
25
|
+
keyboardCloudSource;
|
|
26
|
+
constructor(owner) {
|
|
27
|
+
this.owner = owner;
|
|
28
|
+
this.keyboardCloudSource = new KeymanCloudSource(owner.parent);
|
|
29
|
+
}
|
|
30
|
+
async readFile(filename) {
|
|
31
|
+
if (Object.hasOwn(this.cache, filename)) {
|
|
32
|
+
return this.cache[filename].data;
|
|
33
|
+
}
|
|
34
|
+
const result = this.owner.githubRef
|
|
35
|
+
? await this.keyboardCloudSource.downloadFileFromGitHub({ ...this.owner.githubRef, path: filename })
|
|
36
|
+
: this.owner.parent.loadFile(filename);
|
|
37
|
+
this.cache[filename] = {
|
|
38
|
+
size: result?.byteLength ?? null,
|
|
39
|
+
type: result ? 'file' : null,
|
|
40
|
+
data: result,
|
|
41
|
+
files: null
|
|
42
|
+
};
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
async readdir(path) {
|
|
46
|
+
if (Object.hasOwn(this.cache, path)) {
|
|
47
|
+
return this.cache[path].files;
|
|
48
|
+
}
|
|
49
|
+
let result = null;
|
|
50
|
+
if (this.owner.githubRef) {
|
|
51
|
+
const folder = await this.keyboardCloudSource.downloadFolderFromGitHub({ ...this.owner.githubRef, path });
|
|
52
|
+
if (folder) {
|
|
53
|
+
result = folder.map(item => ({
|
|
54
|
+
filename: this.owner.path.basename(item.filename),
|
|
55
|
+
type: item.type
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
const dir = this.owner.parent.fs.readdirSync(path);
|
|
61
|
+
if (dir) {
|
|
62
|
+
result = dir.map(item => ({
|
|
63
|
+
filename: item,
|
|
64
|
+
type: this.owner.parent.isDirectory(this.owner.path.join(path, item)) ? 'dir' : 'file'
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
this.cache[path] = {
|
|
69
|
+
type: 'dir',
|
|
70
|
+
files: result,
|
|
71
|
+
data: null,
|
|
72
|
+
size: null,
|
|
73
|
+
};
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
async exists(filename) {
|
|
77
|
+
if (Object.hasOwn(this.cache, filename)) {
|
|
78
|
+
return this.cache[filename].type == 'file'
|
|
79
|
+
? (this.cache[filename].data != null)
|
|
80
|
+
: (this.cache[filename].files != null);
|
|
81
|
+
}
|
|
82
|
+
const path = this.owner.path.dirname(filename);
|
|
83
|
+
if (Object.hasOwn(this.cache, path) && this.cache[path].files) {
|
|
84
|
+
return this.cache[path].files.find(file => file.filename == filename) != null;
|
|
85
|
+
}
|
|
86
|
+
if (this.owner.githubRef) {
|
|
87
|
+
const files = await this.readdir(path);
|
|
88
|
+
const base = this.owner.path.basename(filename);
|
|
89
|
+
return files != null && files.find(file => file.filename == base) != null;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (this.owner.parent.isDirectory(filename)) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return await this.readFile(filename) != null;
|
|
97
|
+
}
|
|
98
|
+
resolveFilename(baseFilename, filename) {
|
|
99
|
+
baseFilename = baseFilename.replaceAll(/\\/g, '/');
|
|
100
|
+
filename = filename.replaceAll(/\\/g, '/');
|
|
101
|
+
const basePath = baseFilename.endsWith('/') ?
|
|
102
|
+
baseFilename :
|
|
103
|
+
this.owner.path.dirname(baseFilename);
|
|
104
|
+
// Transform separators to platform separators -- we are agnostic
|
|
105
|
+
// in our use here but path prefers files may use
|
|
106
|
+
// either / or \, although older kps files were always \.
|
|
107
|
+
if (!this.owner.path.isAbsolute(filename)) {
|
|
108
|
+
filename = this.owner.path.resolve(basePath, filename);
|
|
109
|
+
}
|
|
110
|
+
return filename;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=copier-async-callbacks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copier-async-callbacks.js","sourceRoot":"","sources":["../../src/copier-async-callbacks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export declare class CopierMessages {
|
|
5
|
+
static FATAL_UnexpectedException: number;
|
|
6
|
+
static Fatal_UnexpectedException: (o: {
|
|
7
|
+
e: any;
|
|
8
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
9
|
+
static INFO_CopyingProject: number;
|
|
10
|
+
static Info_CopyingProject: (o: {
|
|
11
|
+
type: string;
|
|
12
|
+
id: string;
|
|
13
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
14
|
+
static ERROR_CannotCreateFolder: number;
|
|
15
|
+
static Error_CannotCreateFolder: (o: {
|
|
16
|
+
folderName: string;
|
|
17
|
+
e: any;
|
|
18
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
19
|
+
static ERROR_OutputPathAlreadyExists: number;
|
|
20
|
+
static Error_OutputPathAlreadyExists: (o: {
|
|
21
|
+
outPath: string;
|
|
22
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
23
|
+
static ERROR_CannotWriteOutputFile: number;
|
|
24
|
+
static Error_CannotWriteOutputFile: (o: {
|
|
25
|
+
filename: string;
|
|
26
|
+
e: any;
|
|
27
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
28
|
+
static WARN_ModelIdDoesNotFollowLexicalModelConventions: number;
|
|
29
|
+
static Warn_ModelIdDoesNotFollowLexicalModelConventions: (o: {
|
|
30
|
+
id: string;
|
|
31
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
32
|
+
static INFO_DryRunCreatingFolder: number;
|
|
33
|
+
static Info_DryRunCreatingFolder: (o: {
|
|
34
|
+
path: string;
|
|
35
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
36
|
+
static INFO_DryRunWritingFile: number;
|
|
37
|
+
static Info_DryRunWritingFile: (o: {
|
|
38
|
+
filename: string;
|
|
39
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
40
|
+
static ERROR_CannotFindInputProject: number;
|
|
41
|
+
static Error_CannotFindInputProject: (o: {
|
|
42
|
+
project: string;
|
|
43
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
44
|
+
static WARN_FileNotFound: number;
|
|
45
|
+
static Warn_FileNotFound: (o: {
|
|
46
|
+
filename: string;
|
|
47
|
+
newFilename: string;
|
|
48
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
49
|
+
static WARN_NoWordlistsFound: number;
|
|
50
|
+
static Warn_NoWordlistsFound: (o: {
|
|
51
|
+
filename: string;
|
|
52
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
53
|
+
static ERROR_PackageFileCouldNotBeRead: number;
|
|
54
|
+
static Error_PackageFileCouldNotBeRead: (o: {
|
|
55
|
+
filename: string;
|
|
56
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
57
|
+
static ERROR_UnsupportedProjectVersion: number;
|
|
58
|
+
static Error_UnsupportedProjectVersion: (o: {
|
|
59
|
+
filename: string;
|
|
60
|
+
version: string;
|
|
61
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
62
|
+
static ERROR_InvalidProjectFile: number;
|
|
63
|
+
static Error_InvalidProjectFile: (o: {
|
|
64
|
+
filename: string;
|
|
65
|
+
message: string;
|
|
66
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
67
|
+
static ERROR_ProjectFileCouldNotBeRead: number;
|
|
68
|
+
static Error_ProjectFileCouldNotBeRead: (o: {
|
|
69
|
+
filename: string;
|
|
70
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
71
|
+
static INFO_DryRun: number;
|
|
72
|
+
static Info_DryRun: (o: {
|
|
73
|
+
outPath: string;
|
|
74
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
75
|
+
static ERROR_InvalidGitHubSource: number;
|
|
76
|
+
static Error_InvalidGitHubSource: (o: {
|
|
77
|
+
source: string;
|
|
78
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
79
|
+
static ERROR_CannotDownloadFolderFromGitHub: number;
|
|
80
|
+
static Error_CannotDownloadFolderFromGitHub: (o: {
|
|
81
|
+
ref: string;
|
|
82
|
+
message?: string;
|
|
83
|
+
cause?: string;
|
|
84
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
85
|
+
static ERROR_FolderDownloadedFromGitHubIsNotAValidFolder: number;
|
|
86
|
+
static Error_FolderDownloadedFromGitHubIsNotAValidFolder: (o: {
|
|
87
|
+
ref: string;
|
|
88
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
89
|
+
static WARN_CannotDownloadFileFromGitHub: number;
|
|
90
|
+
static Warn_CannotDownloadFileFromGitHub: (o: {
|
|
91
|
+
ref: string;
|
|
92
|
+
message?: string;
|
|
93
|
+
cause?: string;
|
|
94
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
95
|
+
static ERROR_InvalidCloudKeyboardId: number;
|
|
96
|
+
static Error_InvalidCloudKeyboardId: (o: {
|
|
97
|
+
id: string;
|
|
98
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
99
|
+
static ERROR_CouldNotRetrieveFromCloud: number;
|
|
100
|
+
static Error_CouldNotRetrieveFromCloud: (o: {
|
|
101
|
+
id: string;
|
|
102
|
+
message?: string;
|
|
103
|
+
cause?: string;
|
|
104
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
105
|
+
static ERROR_KeymanCloudReturnedInvalidData: number;
|
|
106
|
+
static Error_KeymanCloudReturnedInvalidData: (o: {
|
|
107
|
+
id: string;
|
|
108
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
109
|
+
static ERROR_CloudDoesNotHaveSource: number;
|
|
110
|
+
static Error_CloudDoesNotHaveSource: (o: {
|
|
111
|
+
id: string;
|
|
112
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
113
|
+
static ERROR_CannotDownloadRepoFromGitHub: number;
|
|
114
|
+
static Error_CannotDownloadRepoFromGitHub: (o: {
|
|
115
|
+
ref: string;
|
|
116
|
+
message?: string;
|
|
117
|
+
cause?: string;
|
|
118
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
119
|
+
static ERROR_CouldNotFindDefaultBranchOnGitHub: number;
|
|
120
|
+
static Error_CouldNotFindDefaultBranchOnGitHub: (o: {
|
|
121
|
+
ref: string;
|
|
122
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
123
|
+
static INFO_CannotDownloadBinaryFileFromGitHub: number;
|
|
124
|
+
static Info_CannotDownloadBinaryFileFromGitHub: (o: {
|
|
125
|
+
ref: string;
|
|
126
|
+
message?: string;
|
|
127
|
+
cause?: string;
|
|
128
|
+
}) => import("@keymanapp/developer-utils").CompilerEvent;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=copier-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copier-messages.d.ts","sourceRoot":"","sources":["../../src/copier-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Keyman is copyright (C) SIL International. MIT License.
|
|
3
|
+
*
|
|
4
|
+
* Messages for kmc-copy
|
|
5
|
+
*/
|
|
6
|
+
import { CompilerErrorNamespace, CompilerErrorSeverity, CompilerMessageSpec as m, CompilerMessageDef as def, CompilerMessageSpecWithException } from "@keymanapp/developer-utils";
|
|
7
|
+
const Namespace = CompilerErrorNamespace.Copier;
|
|
8
|
+
const SevInfo = CompilerErrorSeverity.Info | Namespace;
|
|
9
|
+
// const SevHint = CompilerErrorSeverity.Hint | Namespace;
|
|
10
|
+
const SevWarn = CompilerErrorSeverity.Warn | Namespace;
|
|
11
|
+
const SevError = CompilerErrorSeverity.Error | Namespace;
|
|
12
|
+
const SevFatal = CompilerErrorSeverity.Fatal | Namespace;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export class CopierMessages {
|
|
17
|
+
static FATAL_UnexpectedException = SevFatal | 0x0001;
|
|
18
|
+
static Fatal_UnexpectedException = (o) => m(this.FATAL_UnexpectedException, null, o.e ?? 'unknown error');
|
|
19
|
+
static INFO_CopyingProject = SevInfo | 0x0002;
|
|
20
|
+
static Info_CopyingProject = (o) => m(this.INFO_CopyingProject, `Copying project of type ${def(o.type)} with id ${def(o.id)}`);
|
|
21
|
+
static ERROR_CannotCreateFolder = SevError | 0x0003;
|
|
22
|
+
static Error_CannotCreateFolder = (o) => CompilerMessageSpecWithException(this.ERROR_CannotCreateFolder, null, `Unable to create folder ${def(o.folderName)}: ${o.e ?? 'unknown error'}`);
|
|
23
|
+
static ERROR_OutputPathAlreadyExists = SevError | 0x0004;
|
|
24
|
+
static Error_OutputPathAlreadyExists = (o) => m(this.ERROR_OutputPathAlreadyExists, `Output path ${def(o.outPath)} already exists, not overwriting`);
|
|
25
|
+
static ERROR_CannotWriteOutputFile = SevError | 0x0005;
|
|
26
|
+
static Error_CannotWriteOutputFile = (o) => CompilerMessageSpecWithException(this.ERROR_CannotWriteOutputFile, null, `Unable to write file ${def(o.filename)}: ${o.e ?? 'unknown error'}`);
|
|
27
|
+
// See also PackageCompilerMessages.WARN_PackageNameDoesNotFollowLexicalModelConventions
|
|
28
|
+
static WARN_ModelIdDoesNotFollowLexicalModelConventions = SevWarn | 0x0006;
|
|
29
|
+
static Warn_ModelIdDoesNotFollowLexicalModelConventions = (o) => m(this.WARN_ModelIdDoesNotFollowLexicalModelConventions, `The id ${def(o.id)} does not follow the recommended model id conventions. The id should be all lower case, ` +
|
|
30
|
+
`include only alphanumeric characters and underscore (_), not start with a digit, and should have the structure ` +
|
|
31
|
+
`<author>.<bcp47>.<uniq>`);
|
|
32
|
+
static INFO_DryRunCreatingFolder = SevInfo | 0x0007;
|
|
33
|
+
static Info_DryRunCreatingFolder = (o) => m(this.INFO_DryRunCreatingFolder, `Would create folder ${def(o.path)}`);
|
|
34
|
+
static INFO_DryRunWritingFile = SevInfo | 0x0008;
|
|
35
|
+
static Info_DryRunWritingFile = (o) => m(this.INFO_DryRunWritingFile, `Would write file ${def(o.filename)}`);
|
|
36
|
+
static ERROR_CannotFindInputProject = SevError | 0x0009;
|
|
37
|
+
static Error_CannotFindInputProject = (o) => m(this.ERROR_CannotFindInputProject, `Could not find project file '${def(o.project)}'`);
|
|
38
|
+
static WARN_FileNotFound = SevWarn | 0x000A;
|
|
39
|
+
static Warn_FileNotFound = (o) => m(this.WARN_FileNotFound, `The file '${def(o.filename)}' could not be found, skipping file copy. Any references have been updated to '${def(o.newFilename)}'`);
|
|
40
|
+
static WARN_NoWordlistsFound = SevWarn | 0x000B;
|
|
41
|
+
static Warn_NoWordlistsFound = (o) => m(this.WARN_NoWordlistsFound, `No wordlists could be found in the lexical model source file '${def(o.filename)}'. The file may be too complex for kmc-copy to parse`);
|
|
42
|
+
static ERROR_PackageFileCouldNotBeRead = SevError | 0x000C;
|
|
43
|
+
static Error_PackageFileCouldNotBeRead = (o) => m(this.ERROR_PackageFileCouldNotBeRead, `The package source file '${def(o.filename)}' could not be loaded. The file may have an invalid format`);
|
|
44
|
+
static ERROR_UnsupportedProjectVersion = SevError | 0x000D;
|
|
45
|
+
static Error_UnsupportedProjectVersion = (o) => m(this.ERROR_UnsupportedProjectVersion, `Project version ${def(o.version)} for '${def(o.filename)}' is not supported by this version of Keyman Developer`);
|
|
46
|
+
static ERROR_InvalidProjectFile = SevError | 0x000E;
|
|
47
|
+
static Error_InvalidProjectFile = (o) => m(this.ERROR_InvalidProjectFile, `Project file '${def(o.filename)}' is not valid: ${def(o.message)}`);
|
|
48
|
+
static ERROR_ProjectFileCouldNotBeRead = SevError | 0x000F;
|
|
49
|
+
static Error_ProjectFileCouldNotBeRead = (o) => m(this.ERROR_ProjectFileCouldNotBeRead, `Project file '${def(o.filename)}' could not be read`);
|
|
50
|
+
static INFO_DryRun = SevInfo | 0x0010;
|
|
51
|
+
static Info_DryRun = (o) => m(this.INFO_DryRun, `Dry run requested. No changes have been saved`);
|
|
52
|
+
static ERROR_InvalidGitHubSource = SevError | 0x0011;
|
|
53
|
+
static Error_InvalidGitHubSource = (o) => m(this.ERROR_InvalidGitHubSource, `Source project specification '${def(o.source)}' is not a valid GitHub reference`, `The source project specification for GitHub sources must match the pattern:
|
|
54
|
+
github:\\<owner/repo>[:\\<branch>]:\\<path>
|
|
55
|
+
The path must include the .kpj filename and may optionally begin with a forward slash.
|
|
56
|
+
The following are valid examples:
|
|
57
|
+
github:keymanapp/keyboards:master:release/k/khmer_angkor/khmer_angkor.kpj
|
|
58
|
+
github:keymanapp/keyboards:release/k/khmer_angkor/khmer_angkor.kpj
|
|
59
|
+
github:keymanapp/keyboards:/release/k/khmer_angkor/khmer_angkor.kpj`);
|
|
60
|
+
static ERROR_CannotDownloadFolderFromGitHub = SevError | 0x0012;
|
|
61
|
+
static Error_CannotDownloadFolderFromGitHub = (o) => m(this.ERROR_CannotDownloadFolderFromGitHub, `The folder '${def(o.ref)}' could not be downloaded: ${def(o.message)} ${def(o.cause)}`, `An error was encountered attempting to download a folder from GitHub API. Check the
|
|
62
|
+
provided error details for the cause.`);
|
|
63
|
+
static ERROR_FolderDownloadedFromGitHubIsNotAValidFolder = SevError | 0x0013;
|
|
64
|
+
static Error_FolderDownloadedFromGitHubIsNotAValidFolder = (o) => m(this.ERROR_FolderDownloadedFromGitHubIsNotAValidFolder, `The path '${def(o.ref)}' does not appear to be a folder on GitHub`, `The provided path may be a file or may not exist. Check the reference
|
|
65
|
+
before trying again.`);
|
|
66
|
+
static WARN_CannotDownloadFileFromGitHub = SevWarn | 0x0014;
|
|
67
|
+
static Warn_CannotDownloadFileFromGitHub = (o) => m(this.WARN_CannotDownloadFileFromGitHub, `The file '${def(o.ref)}' could not be downloaded: ${def(o.message)} ${def(o.cause)}`, `An error was encountered attempting to download a file from GitHub. Check the
|
|
68
|
+
provided error details for the cause.`);
|
|
69
|
+
static ERROR_InvalidCloudKeyboardId = SevError | 0x0015;
|
|
70
|
+
static Error_InvalidCloudKeyboardId = (o) => m(this.ERROR_InvalidCloudKeyboardId, `The keyboard identifier '${def(o.id)}' is not a valid keyboard identifier`, `Keyboard identifiers on Keyman Cloud can only use the characters a-z, 0-9, and _.`);
|
|
71
|
+
static ERROR_CouldNotRetrieveFromCloud = SevError | 0x0016;
|
|
72
|
+
static Error_CouldNotRetrieveFromCloud = (o) => m(this.ERROR_CouldNotRetrieveFromCloud, `Details for keyboard or model identified by '${def(o.id)}' could not be downloaded: ${def(o.message)} ${def(o.cause)}`, `An error was encountered attempting to retrieve keyboard or model details from Keyman Cloud API. Check the
|
|
73
|
+
provided error details for the cause.`);
|
|
74
|
+
static ERROR_KeymanCloudReturnedInvalidData = SevError | 0x0017;
|
|
75
|
+
static Error_KeymanCloudReturnedInvalidData = (o) => m(this.ERROR_KeymanCloudReturnedInvalidData, `Keyman Cloud API returned invalid data for keyboard or model identified by '${def(o.id)}'`, `There may be a network error or a server error. Retry your request later or contact
|
|
76
|
+
Keyman Support for assistance.`);
|
|
77
|
+
static ERROR_CloudDoesNotHaveSource = SevError | 0x0018;
|
|
78
|
+
static Error_CloudDoesNotHaveSource = (o) => m(this.ERROR_CloudDoesNotHaveSource, `The keyboard or model identified by '${def(o.id)}' does not have source available`, `Legacy keyboards in Keyman Cloud do not have source available. Check the Keyman keyboard catalog
|
|
79
|
+
at keyman.com for further details. Some new keyboards or models may be available as binary-only.`);
|
|
80
|
+
static ERROR_CannotDownloadRepoFromGitHub = SevError | 0x0019;
|
|
81
|
+
static Error_CannotDownloadRepoFromGitHub = (o) => m(this.ERROR_CannotDownloadRepoFromGitHub, `The repository at '${def(o.ref)}' could not be accessed: ${def(o.message)} ${def(o.cause)}`, `An error was encountered attempting to download details about a repository from GitHub API.
|
|
82
|
+
Check the provided error details for the cause.`);
|
|
83
|
+
static ERROR_CouldNotFindDefaultBranchOnGitHub = SevError | 0x001A;
|
|
84
|
+
static Error_CouldNotFindDefaultBranchOnGitHub = (o) => m(this.ERROR_CouldNotFindDefaultBranchOnGitHub, `The default branch could not be found for the GitHub repository '${def(o.ref)}'`, `The repository may be private, or you may have a typo in the owner or repository name.`);
|
|
85
|
+
static INFO_CannotDownloadBinaryFileFromGitHub = SevInfo | 0x001B;
|
|
86
|
+
static Info_CannotDownloadBinaryFileFromGitHub = (o) => m(this.INFO_CannotDownloadBinaryFileFromGitHub, `The Keyman binary file '${def(o.ref)}' could not be downloaded: ${def(o.message)} ${def(o.cause)}. This is not normally a problem`, `In most repositories, Keyman binary files such as .kmx, .kmp, .js are not included.
|
|
87
|
+
This is not normally a problem, as the files can be built from the source. Check
|
|
88
|
+
the provided error details for more details.`);
|
|
89
|
+
}
|
|
90
|
+
;
|
|
91
|
+
//# sourceMappingURL=copier-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copier-messages.js","sourceRoot":"","sources":["../../src/copier-messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,IAAI,CAAC,EAAE,kBAAkB,IAAI,GAAG,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAElL,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC;AAChD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,GAAG,SAAS,CAAC;AACvD,0DAA0D;AAC1D,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,GAAG,SAAS,CAAC;AACvD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,GAAG,SAAS,CAAC;AACzD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,GAAG,SAAS,CAAC;AAEzD;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,yBAAyB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,yBAAyB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAClD,IAAI,CAAC,yBAAyB,EAC9B,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,eAAe,CAC7B,CAAC;IAEF,MAAM,CAAC,mBAAmB,GAAG,OAAO,GAAG,MAAM,CAAC;IAC9C,MAAM,CAAC,mBAAmB,GAAG,CAAC,CAA4B,EAAE,EAAE,CAAC,CAAC,CAC9D,IAAI,CAAC,mBAAmB,EACxB,2BAA2B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAC9D,CAAC;IAEF,MAAM,CAAC,wBAAwB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAA6B,EAAE,EAAE,CAAC,gCAAgC,CACnG,IAAI,CAAC,wBAAwB,EAC7B,IAAI,EACJ,2BAA2B,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAC1E,CAAC;IAEF,MAAM,CAAC,6BAA6B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzD,MAAM,CAAC,6BAA6B,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAC9D,IAAI,CAAC,6BAA6B,EAClC,eAAe,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAChE,CAAC;IAEF,MAAM,CAAC,2BAA2B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvD,MAAM,CAAC,2BAA2B,GAAG,CAAC,CAA2B,EAAE,EAAE,CAAC,gCAAgC,CACpG,IAAI,CAAC,2BAA2B,EAChC,IAAI,EACJ,wBAAwB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CACrE,CAAC;IAEF,wFAAwF;IACxF,MAAM,CAAC,gDAAgD,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3E,MAAM,CAAC,gDAAgD,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAC7E,IAAI,CAAC,gDAAgD,EACrD,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,0FAA0F;QAC7G,iHAAiH;QACjH,yBAAyB,CAC1B,CAAC;IAEF,MAAM,CAAC,yBAAyB,GAAG,OAAO,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,yBAAyB,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CACxD,IAAI,CAAC,yBAAyB,EAC9B,uBAAuB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CACrC,CAAC;IAEF,MAAM,CAAC,sBAAsB,GAAG,OAAO,GAAG,MAAM,CAAC;IACjD,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CACzD,IAAI,CAAC,sBAAsB,EAC3B,oBAAoB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CACtC,CAAC;IAEF,MAAM,CAAC,4BAA4B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,4BAA4B,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAC7D,IAAI,CAAC,4BAA4B,EACjC,gCAAgC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAClD,CAAC;IAEF,MAAM,CAAC,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5C,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAyC,EAAE,EAAE,CAAC,CAAC,CACzE,IAAI,CAAC,iBAAiB,EACtB,aAAa,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,kFAAkF,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CACpI,CAAC;IAEF,MAAM,CAAC,qBAAqB,GAAG,OAAO,GAAG,MAAM,CAAC;IAChD,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CACxD,IAAI,CAAC,qBAAqB,EAC1B,iEAAiE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CACvI,CAAC;IAEF,MAAM,CAAC,+BAA+B,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAClE,IAAI,CAAC,+BAA+B,EACpC,4BAA4B,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CACxG,CAAC;IAEF,MAAM,CAAC,+BAA+B,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAqC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,EACxH,mBAAmB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,wDAAwD,CAClH,CAAC;IAEF,MAAM,CAAC,wBAAwB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAAqC,EAAE,EAAE,CAAC,CAAC,CAC5E,IAAI,CAAC,wBAAwB,EAC7B,iBAAiB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CACpE,CAAC;IAEF,MAAM,CAAC,+BAA+B,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAClE,IAAI,CAAC,+BAA+B,EACpC,iBAAiB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CACtD,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAC7C,IAAI,CAAC,WAAW,EAChB,+CAA+C,CAChD,CAAC;IAEF,MAAM,CAAC,yBAAyB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,yBAAyB,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAC1D,IAAI,CAAC,yBAAyB,EAC9B,iCAAiC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAmC,EACjF;;;;;;4EAMwE,CACzE,CAAC;IAEF,MAAM,CAAC,oCAAoC,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChE,MAAM,CAAC,oCAAoC,GAAG,CAAC,CAAiD,EAAE,EAAE,CAAC,CAAC,CACpG,IAAI,CAAC,oCAAoC,EACzC,eAAe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EACvF;0CACsC,CACvC,CAAC;IAEF,MAAM,CAAC,iDAAiD,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7E,MAAM,CAAC,iDAAiD,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAC/E,IAAI,CAAC,iDAAiD,EACtD,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,4CAA4C,EACnE;yBACqB,CACtB,CAAC;IAEF,MAAM,CAAC,iCAAiC,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5D,MAAM,CAAC,iCAAiC,GAAG,CAAC,CAAiD,EAAE,EAAE,CAAC,CAAC,CACjG,IAAI,CAAC,iCAAiC,EACtC,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EACrF;0CACsC,CACvC,CAAC;IAEF,MAAM,CAAC,4BAA4B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,4BAA4B,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CACzD,IAAI,CAAC,4BAA4B,EACjC,4BAA4B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sCAAsC,EAC3E,mFAAmF,CACpF,CAAC;IAEF,MAAM,CAAC,+BAA+B,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAgD,EAAE,EAAE,CAAC,CAAC,CAC9F,IAAI,CAAC,+BAA+B,EACpC,gDAAgD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EACvH;0CACsC,CACvC,CAAC;IAEF,MAAM,CAAC,oCAAoC,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChE,MAAM,CAAC,oCAAoC,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CACjE,IAAI,CAAC,oCAAoC,EACzC,+EAA+E,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAC3F;mCAC+B,CAChC,CAAC;IAEF,MAAM,CAAC,4BAA4B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,4BAA4B,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CACzD,IAAI,CAAC,4BAA4B,EACjC,wCAAwC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kCAAkC,EACnF;qGACiG,CAClG,CAAC;IAEF,MAAM,CAAC,kCAAkC,GAAG,QAAQ,GAAG,MAAM,CAAE;IAC/D,MAAM,CAAC,kCAAkC,GAAG,CAAC,CAAiD,EAAE,EAAE,CAAC,CAAC,CAClG,IAAI,CAAC,kCAAkC,EACvC,sBAAsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAC5F;oDACgD,CACjD,CAAC;IAEF,MAAM,CAAC,uCAAuC,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnE,MAAM,CAAC,uCAAuC,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CACrE,IAAI,CAAC,uCAAuC,EAC5C,oEAAoE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EACjF,wFAAwF,CACzF,CAAC;IAEF,MAAM,CAAC,uCAAuC,GAAG,OAAO,GAAG,MAAM,CAAC;IAClE,MAAM,CAAC,uCAAuC,GAAG,CAAC,CAAiD,EAAE,EAAE,CAAC,CAAC,CACvG,IAAI,CAAC,uCAAuC,EAC5C,2BAA2B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,kCAAkC,EACnI;;iDAE6C,CAC9C,CAAC;;AAEH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAiB,MAAM,0BAA0B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@keymanapp/kmc-copy",
|
|
3
|
+
"description": "Keyman Developer copy module",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"keyboard",
|
|
6
|
+
"keyman",
|
|
7
|
+
"ldml",
|
|
8
|
+
"unicode"
|
|
9
|
+
],
|
|
10
|
+
"type": "module",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": "./build/src/main.js"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"/build/src/"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "gosh ./build.sh build",
|
|
19
|
+
"lint": "eslint .",
|
|
20
|
+
"test": "gosh ./build.sh test"
|
|
21
|
+
},
|
|
22
|
+
"author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/keymanapp/keyman/issues"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@keymanapp/common-types": "18.0.138-alpha",
|
|
29
|
+
"@keymanapp/developer-utils": "18.0.138-alpha",
|
|
30
|
+
"@keymanapp/keyman-version": "18.0.138-alpha"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@keymanapp/developer-test-helpers": "18.0.138-alpha",
|
|
34
|
+
"@keymanapp/resources-gosh": "18.0.138-alpha",
|
|
35
|
+
"@types/mocha": "^10.0.0",
|
|
36
|
+
"@types/node": "^20.4.1",
|
|
37
|
+
"@types/semver": "^7.3.12",
|
|
38
|
+
"c8": "^7.12.0",
|
|
39
|
+
"chalk": "^2.4.2",
|
|
40
|
+
"mocha": "^10.0.0",
|
|
41
|
+
"typescript": "^5.4.5"
|
|
42
|
+
},
|
|
43
|
+
"mocha": {
|
|
44
|
+
"spec": "build/test/**/test-*.js",
|
|
45
|
+
"require": [
|
|
46
|
+
"source-map-support/register"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"c8": {
|
|
50
|
+
"all": true,
|
|
51
|
+
"src": [
|
|
52
|
+
"src/"
|
|
53
|
+
],
|
|
54
|
+
"exclude-after-remap": true,
|
|
55
|
+
"exclude": [
|
|
56
|
+
"test/",
|
|
57
|
+
"src/template/",
|
|
58
|
+
"src/main.ts"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"repository": {
|
|
62
|
+
"type": "git",
|
|
63
|
+
"url": "git+https://github.com/keymanapp/keyman.git"
|
|
64
|
+
},
|
|
65
|
+
"version": "18.0.138-alpha"
|
|
66
|
+
}
|