@keymanapp/kmc 19.0.145-alpha → 19.0.151-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/README.md CHANGED
@@ -1,191 +1,183 @@
1
- Keyman Developer - Command Line Compiler
2
- ================
3
-
4
- This package provides a command-line interface to the
5
- [Keyman Developer](https://keyman.com/developer) compiler toolchain, `kmc`.
6
-
7
- ## Install kmc
8
-
9
- `kmc` is available as:
10
- * a part of Keyman Developer (Windows only)
11
- * an npm package, and
12
- * a zip download
13
-
14
- Hint: Unlike previous versions of Keyman Developer, version 17 of kmc does not
15
- require WINE to run the command line tools on Linux or macOS.
16
-
17
- ### Keyman Developer integration (Windows only)
18
-
19
- kmc is included with a default installation of Keyman Developer, including a
20
- runtime of node.js, and will be on the system path by default. No additional
21
- configuration or installation is required.
22
-
23
- ### npm (Windows, macOS, and Linux)
24
-
25
- kmc is also available as an npm package,
26
- [@keymanapp/kmc](https://npmjs.com/package/@keymanapp/kmc).
27
-
28
- You'll need [node.js](https://nodejs.org/), version 20.0 or later.
29
-
30
- ```shell
31
- npm install -g @keymanapp/kmc
32
- ```
33
-
34
- ### Zip download (Windows, macOS, and Linux)
35
-
36
- kmc is also available as a zip download from
37
- [keyman.com/developer/download](https://keyman.com/developer/download),
38
- or can be installed from the command line (`curl` and `unzip` required):
39
-
40
- ```shell
41
- # To build keyboards and packages:
42
- mkdir kmc
43
- cd kmc
44
- # hint: the download is currently called 'kmcomp', although the
45
- # compiler is now called 'kmc'.
46
- curl -L https://keyman.com/go/download/kmcomp -o kmc.zip
47
- unzip kmc.zip
48
- # Optionally, add kmc to your PATH
49
- ```
50
-
51
- ## The five minute quick start
52
-
53
- ### 1. Download a sample keyboard project
54
-
55
- <!-- TODO: THIS SECTION NEEDS REWRITE ONCE `kmc generate` lands in 18.0. -->
56
-
57
- We'll download a sample project from GitHub for Khmer. If you do not have the
58
- command-line git tools installed, you can visit the [repository
59
- website](https://github.com/keyman-keyboards/khmer_angkor) and download it as a
60
- zip file instead.
61
-
62
- ```shell
63
- git clone https://github.com/keyman-keyboards/khmer_angkor
64
- ```
65
-
66
- This will have created a new folder called `khmer_angkor/`.
67
-
68
- ### 2. Build the project
69
-
70
- Now, we'll build our keyboard project with kmc.
71
-
72
- ```shell
73
- cd khmer_angkor
74
- kmc build .
75
- ```
76
-
77
- And... that's it! We'll now have a compiled keyboard and package in the `build/`
78
- subfolder. The file `build/khmer_angkor.kmp` can be installed into any of the
79
- Keyman apps, and `build/khmer_angkor.js` can be added to KeymanWeb.
80
-
81
- ### 3. Install the keyboard
82
-
83
- **Windows**: we can install this keyboard using [`kmshell`][windows-install-keyboard]:
84
-
85
- ```cmd
86
- "%ProgramFiles(x86)%\Keyman\Keyman Desktop\kmshell" -i build\khmer_angkor.kmp -s
87
- ```
88
-
89
- Alternatively you can double-click the .kmp package file in Windows Explorer to
90
- install it.
91
-
92
- **Linux**: we'd use the following
93
- [`km-package-install`][linux-install-keyboard]
94
- command:
95
-
96
- ```shell
97
- km-package-install -f build/khmer_angkor.kmp
98
- ```
99
-
100
- **macOS**: open Keyman Configuration and drop the package khmer_angkor.kmp file
101
- onto the Keyman Configuration window.
102
-
103
- **Android**: send khmer_angkor.kmp to your Android device, and [install it](https://help.keyman.com/products/android/current-version/basic/installing-custom-packages) from the
104
- hamburger menu in the Keyman app.
105
-
106
- **iOS**: send khmer_angkor.kmp to your iOS device, and install it from the
107
- hamburger menu in the Keyman app.
108
-
109
- **Web**: copy khmer_angkor.js to your website, then [load it with KeymanWeb][load-keymanweb-keyboard]:
110
-
111
- ```js
112
- keyman.addKeyboards({
113
- id:'khmer_angkor', // The keyboard's unique identification code.
114
- name:'Khmer Angkor', // The keyboard's user-readable name.
115
- language:{
116
- id:'km', // A BCP 47 code uniquely identifying the language.
117
- name:'Khmer' // The language's name.
118
- },
119
- filename:'./khmer_angkor.js',
120
- });
121
- ```
122
-
123
- ## File layout
124
-
125
- See [file layout][file-layout] for details on the standard source file layout
126
- that Keyman Developer works best with.
127
-
128
- ## Reference and Examples
129
-
130
- ### kmc - command line compiler
131
-
132
- [kmc][kmc] is the command line compiler. You can use it to compile
133
- all Keyman files.
134
-
135
- The most common command will be `kmc build`:
136
-
137
- `kmc build project.kpj`
138
- : Compile all components of a keyboard or model project named `project.kpj`
139
- KMComp will respect the path settings within the project file. This is the
140
- recommended way to build, as it will build keyboards, models and packages all in
141
- one step. You can also call `kmc build <folder>` to build the project in the
142
- referenced folder, e.g. `kmc build .`.
143
-
144
- * [kmc reference][kmc]
145
-
146
- -----
147
-
148
- # Working with the source
149
-
150
- ## Building kmc
151
-
152
- Run `build.sh`:
153
-
154
- ```shell
155
- ./build.sh configure build
156
- ```
157
-
158
- Once you have run `configure` once, you should not normally need to do it again
159
- unless dependencies change or you clean the build folder. `./build.sh` without
160
- parameters will do the default action, which is `build`.
161
-
162
- ## Testing kmc
163
-
164
- ```shell
165
- ./build.sh test
166
- ```
167
-
168
- ## Bundling for installation
169
-
170
- ```shell
171
- ./build.sh bundle --build-path <temp_path>
172
- ```
173
-
174
- The temp_path must be a path outside the repository to avoid npm getting
175
- confused by the root package.json. This is called by inst/download.in.mak
176
- normally when building the Keyman Developer installer.
177
-
178
- ## Publishing to NPM
179
-
180
- ```shell
181
- ./build.sh publish [--dry-run]
182
- ```
183
-
184
- Publishes the current release to NPM. This should only be run from CI.
185
-
186
-
187
- [kmc]: https://help.keyman.com/developer/current-version/reference/kmc/cli
188
- [file-layout]: https://help.keyman.com/developer/current-version/reference/file-layout
189
- [load-keymanweb-keyboard]: https://help.keyman.com/developer/engine/web/current-version/guide/adding-keyboards
190
- [linux-install-keyboard]: https://help.keyman.com/products/linux/current-version/reference/km-package-install
191
- [windows-install-keyboard]: https://help.keyman.com/knowledge-base/98
1
+ Keyman Developer - Command Line Compiler
2
+ ================
3
+
4
+ This package provides a command-line interface to the
5
+ [Keyman Developer](https://keyman.com/developer) compiler toolchain, `kmc`.
6
+
7
+ ## Install kmc
8
+
9
+ `kmc` is available as:
10
+ * a part of Keyman Developer (Windows only)
11
+ * an npm package, and
12
+ * a zip download
13
+
14
+ Hint: Unlike previous versions of Keyman Developer, version 17 of kmc does not
15
+ require WINE to run the command line tools on Linux or macOS.
16
+
17
+ ### Keyman Developer integration (Windows only)
18
+
19
+ kmc is included with a default installation of Keyman Developer, including a
20
+ runtime of node.js, and will be on the system path by default. No additional
21
+ configuration or installation is required.
22
+
23
+ ### npm (Windows, macOS, and Linux)
24
+
25
+ kmc is also available as an npm package,
26
+ [@keymanapp/kmc](https://npmjs.com/package/@keymanapp/kmc).
27
+
28
+ You'll need [node.js](https://nodejs.org/), version 20.0 or later.
29
+
30
+ ```shell
31
+ npm install -g @keymanapp/kmc
32
+ ```
33
+
34
+ ### Zip download (Windows, macOS, and Linux)
35
+
36
+ kmc is also available as a zip download from
37
+ [keyman.com/developer/download](https://keyman.com/developer/download),
38
+ or can be installed from the command line (`curl` and `unzip` required):
39
+
40
+ ```shell
41
+ # To build keyboards and packages:
42
+ mkdir kmc
43
+ cd kmc
44
+ # hint: the download is currently called 'kmcomp', although the
45
+ # compiler is now called 'kmc'.
46
+ curl -L https://keyman.com/go/download/kmcomp -o kmc.zip
47
+ unzip kmc.zip
48
+ # Optionally, add kmc to your PATH
49
+ ```
50
+
51
+ ## The five minute quick start
52
+
53
+ ### 1. Download a sample keyboard project
54
+
55
+ <!-- TODO: THIS SECTION NEEDS REWRITE ONCE `kmc generate` lands in 18.0. -->
56
+
57
+ We'll download a sample project from GitHub for Khmer. If you do not have the
58
+ command-line git tools installed, you can visit the [repository
59
+ website](https://github.com/keyman-keyboards/khmer_angkor) and download it as a
60
+ zip file instead.
61
+
62
+ ```shell
63
+ git clone https://github.com/keyman-keyboards/khmer_angkor
64
+ ```
65
+
66
+ This will have created a new folder called `khmer_angkor/`.
67
+
68
+ ### 2. Build the project
69
+
70
+ Now, we'll build our keyboard project with kmc.
71
+
72
+ ```shell
73
+ cd khmer_angkor
74
+ kmc build .
75
+ ```
76
+
77
+ And... that's it! We'll now have a compiled keyboard and package in the `build/`
78
+ subfolder. The file `build/khmer_angkor.kmp` can be installed into any of the
79
+ Keyman apps, and `build/khmer_angkor.js` can be added to KeymanWeb.
80
+
81
+ ### 3. Install the keyboard
82
+
83
+ **Windows**: we can install this keyboard using [`kmshell`][windows-install-keyboard]:
84
+
85
+ ```cmd
86
+ "%ProgramFiles(x86)%\Keyman\Keyman Desktop\kmshell" -i build\khmer_angkor.kmp -s
87
+ ```
88
+
89
+ Alternatively you can double-click the .kmp package file in Windows Explorer to
90
+ install it.
91
+
92
+ **Linux**: we'd use the following
93
+ [`km-package-install`][linux-install-keyboard]
94
+ command:
95
+
96
+ ```shell
97
+ km-package-install -f build/khmer_angkor.kmp
98
+ ```
99
+
100
+ **macOS**: open Keyman Configuration and drop the package khmer_angkor.kmp file
101
+ onto the Keyman Configuration window.
102
+
103
+ **Android**: send khmer_angkor.kmp to your Android device, and [install it](https://help.keyman.com/products/android/current-version/basic/installing-custom-packages) from the
104
+ hamburger menu in the Keyman app.
105
+
106
+ **iOS**: send khmer_angkor.kmp to your iOS device, and install it from the
107
+ hamburger menu in the Keyman app.
108
+
109
+ **Web**: copy khmer_angkor.js to your website, then [load it with KeymanWeb][load-keymanweb-keyboard]:
110
+
111
+ ```js
112
+ keyman.addKeyboards({
113
+ id:'khmer_angkor', // The keyboard's unique identification code.
114
+ name:'Khmer Angkor', // The keyboard's user-readable name.
115
+ language:{
116
+ id:'km', // A BCP 47 code uniquely identifying the language.
117
+ name:'Khmer' // The language's name.
118
+ },
119
+ filename:'./khmer_angkor.js',
120
+ });
121
+ ```
122
+
123
+ ## File layout
124
+
125
+ See [file layout][file-layout] for details on the standard source file layout
126
+ that Keyman Developer works best with.
127
+
128
+ ## Reference and Examples
129
+
130
+ ### kmc - command line compiler
131
+
132
+ [kmc][kmc] is the command line compiler. You can use it to compile
133
+ all Keyman files.
134
+
135
+ The most common command will be `kmc build`:
136
+
137
+ `kmc build project.kpj`
138
+ : Compile all components of a keyboard or model project named `project.kpj`
139
+ KMComp will respect the path settings within the project file. This is the
140
+ recommended way to build, as it will build keyboards, models and packages all in
141
+ one step. You can also call `kmc build <folder>` to build the project in the
142
+ referenced folder, e.g. `kmc build .`.
143
+
144
+ * [kmc reference][kmc]
145
+
146
+ -----
147
+
148
+ # Working with the source
149
+
150
+ ## Building kmc
151
+
152
+ Run `build.sh`:
153
+
154
+ ```shell
155
+ ./build.sh configure build
156
+ ```
157
+
158
+ Once you have run `configure` once, you should not normally need to do it again
159
+ unless dependencies change or you clean the build folder. `./build.sh` without
160
+ parameters will do the default action, which is `build`.
161
+
162
+ ## Testing kmc
163
+
164
+ ```shell
165
+ ./build.sh test
166
+ ```
167
+
168
+ ## Bundling for installation
169
+
170
+ ```shell
171
+ ./build.sh bundle --build-path <temp_path>
172
+ ```
173
+
174
+ The temp_path must be a path outside the repository to avoid npm getting
175
+ confused by the root package.json. This is called by inst/download.in.mak
176
+ normally when building the Keyman Developer installer.
177
+
178
+
179
+ [kmc]: https://help.keyman.com/developer/current-version/reference/kmc/cli
180
+ [file-layout]: https://help.keyman.com/developer/current-version/reference/file-layout
181
+ [load-keymanweb-keyboard]: https://help.keyman.com/developer/engine/web/current-version/guide/adding-keyboards
182
+ [linux-install-keyboard]: https://help.keyman.com/products/linux/current-version/reference/km-package-install
183
+ [windows-install-keyboard]: https://help.keyman.com/knowledge-base/98
@@ -28,17 +28,17 @@ export function declareBuild(program) {
28
28
  buildCommand.command('file [infile...]', { isDefault: true })
29
29
  .description(`Compile one or more source files or projects ('file' subcommand is default).`)
30
30
  .option('--for-publishing', 'Verify that project meets @keymanapp repository requirements')
31
- .addHelpText('after', `
32
- Supported file types:
33
- * folder: Keyman project in folder
34
- * .kpj: Keyman project
35
- * .kmn: Keyman keyboard
36
- * .xml: LDML keyboard
37
- * .model.ts: Keyman lexical model
38
- * .kps: Keyman keyboard or lexical model package
39
-
40
- File lists can be referenced with @filelist.txt.
41
-
31
+ .addHelpText('after', `
32
+ Supported file types:
33
+ * folder: Keyman project in folder
34
+ * .kpj: Keyman project
35
+ * .kmn: Keyman keyboard
36
+ * .xml: LDML keyboard
37
+ * .model.ts: Keyman lexical model
38
+ * .kps: Keyman keyboard or lexical model package
39
+
40
+ File lists can be referenced with @filelist.txt.
41
+
42
42
  If no input file is supplied, kmc will build the current folder.`)
43
43
  .action(buildFile);
44
44
  buildCommand
@@ -19,14 +19,14 @@ export function declareCopy(program) {
19
19
  .option('-n, --dry-run', 'Show what would happen, without making changes')
20
20
  .option('-r, --relocate-external', 'Copy external files into "external" folder')
21
21
  .action(copyProject)
22
- .addHelpText('before', `
23
- <project> can be:
24
- * a .kpj file, e.g. ./keyboards/khmer_angkor/khmer_angkor.kpj
25
- * a local folder (with a .kpj file in it), e.g. ./keyboards/khmer_angkor
26
- * a cloud keyboard or lexical model, cloud:id, e.g. cloud:khmer_angkor
27
- * a GitHub repository, branch, and path, [https://]github.com/owner/repo/tree/branch/path
28
- e.g. https://github.com/keyman-keyboards/khmer_angkor/tree/main/khmer_angkor.kpj or
29
- github.com/keymanapp/keyboards/tree/master/release/k/khmer_angkor
22
+ .addHelpText('before', `
23
+ <project> can be:
24
+ * a .kpj file, e.g. ./keyboards/khmer_angkor/khmer_angkor.kpj
25
+ * a local folder (with a .kpj file in it), e.g. ./keyboards/khmer_angkor
26
+ * a cloud keyboard or lexical model, cloud:id, e.g. cloud:khmer_angkor
27
+ * a GitHub repository, branch, and path, [https://]github.com/owner/repo/tree/branch/path
28
+ e.g. https://github.com/keyman-keyboards/khmer_angkor/tree/main/khmer_angkor.kpj or
29
+ github.com/keymanapp/keyboards/tree/master/release/k/khmer_angkor
30
30
  `);
31
31
  }
32
32
  function commanderOptionsToCopierOptions(options) {
@@ -12,9 +12,9 @@ export function declareMessage(program) {
12
12
  program
13
13
  .command('message [messages...]')
14
14
  .description(`Describe one or more compiler messages. Note: Markdown format is always written to files on disk.`)
15
- .addHelpText('after', `
16
- Message identifiers can be:
17
- * numeric, e.g. "KM07006" or "7006", or
15
+ .addHelpText('after', `
16
+ Message identifiers can be:
17
+ * numeric, e.g. "KM07006" or "7006", or
18
18
  * [namespace.]id, substring id supported; e.g. "kmc-kmn.INFO_MinimumEngineVersion" or "kmc-kmn." or "INFO_Min"`)
19
19
  .addOption(new Option('-f, --format <format>', 'Output format').choices(['text', 'markdown', 'json']).default('text'))
20
20
  .option('-o, --out-path <out-path>', 'Output path for Markdown files; output filename for text and json formats')
@@ -169,13 +169,13 @@ function getMessagesAsText(messages) {
169
169
  }
170
170
  function formatMessageAsText(moduleName, cls, code, id) {
171
171
  const message = getMessageDetail(cls, id, false);
172
- return `${id}
173
- * Code: ${CompilerError.formatCode(code)}
174
- * Module: ${moduleName}
175
- * Message: ${message.message}
176
- * Reference: ${helpUrl(code)}
177
-
178
- ${message.detail}
172
+ return `${id}
173
+ * Code: ${CompilerError.formatCode(code)}
174
+ * Module: ${moduleName}
175
+ * Message: ${message.message}
176
+ * Reference: ${helpUrl(code)}
177
+
178
+ ${message.detail}
179
179
  `;
180
180
  }
181
181
  /*---------------------------------------------------------------------------
@@ -210,10 +210,10 @@ function messageCommandMarkdown(messages, options, callbacks) {
210
210
  return true;
211
211
  }
212
212
  function exportAllMessagesAsMarkdown(outPath) {
213
- let index = `---
214
- title: Compiler Messages Reference
215
- ---
216
-
213
+ let index = `---
214
+ title: Compiler Messages Reference
215
+ ---
216
+
217
217
  `;
218
218
  messageNamespaceKeys.forEach((namespace) => {
219
219
  const ms = messageSources[namespace];
@@ -225,12 +225,12 @@ title: Compiler Messages Reference
225
225
  }
226
226
  function exportModuleMessagesAsMarkdown(moduleName, ms, outPath) {
227
227
  const cls = ms.class;
228
- let index = `---
229
- title: Compiler Messages Reference for @keymanapp/${ms.module}
230
- ---
231
-
232
- Code | Identifier | Message
233
- ------|------------|---------
228
+ let index = `---
229
+ title: Compiler Messages Reference for @keymanapp/${ms.module}
230
+ ---
231
+
232
+ Code | Identifier | Message
233
+ ------|------------|---------
234
234
  `;
235
235
  const ids = getMessageIdentifiersSorted(cls);
236
236
  for (const id of ids) {
@@ -244,17 +244,17 @@ title: Compiler Messages Reference for @keymanapp/${ms.module}
244
244
  fs.writeFileSync(path.join(outPath, moduleName.toLowerCase() + '.md'), index, 'utf-8');
245
245
  }
246
246
  function formatMessageAsMarkdown(moduleName, id, message) {
247
- return `---
248
- title: ${CompilerError.formatCode(message.code)}: ${id}
249
- ---
250
-
251
- | | |
252
- |------------|---------- |
253
- | Message | ${message.message} |
254
- | Module | [${moduleName}](${moduleName.toLowerCase()}) |
255
- | Identifier | \`${id}\` |
256
-
257
- ${message.detail}
247
+ return `---
248
+ title: ${CompilerError.formatCode(message.code)}: ${id}
249
+ ---
250
+
251
+ | | |
252
+ |------------|---------- |
253
+ | Message | ${message.message} |
254
+ | Module | [${moduleName}](${moduleName.toLowerCase()}) |
255
+ | Identifier | \`${id}\` |
256
+
257
+ ${message.detail}
258
258
  `;
259
259
  }
260
260
  //# sourceMappingURL=messageCommand.js.map
package/build/src/kmc.js CHANGED
File without changes
File without changes
File without changes
@@ -29,11 +29,11 @@ export class KeymanSentry {
29
29
  isInit = true;
30
30
  }
31
31
  static writeSentryMessage(eventId) {
32
- process.stderr.write(`
33
- This error has been automatically reported to the Keyman team.
34
- Identifier: ${eventId}
35
- Application: Keyman Developer
36
- Reported at: https://sentry.io/organizations/keyman/projects/keyman-developer/events/${eventId}/
32
+ process.stderr.write(`
33
+ This error has been automatically reported to the Keyman team.
34
+ Identifier: ${eventId}
35
+ Application: Keyman Developer
36
+ Reported at: https://sentry.io/organizations/keyman/projects/keyman-developer/events/${eventId}/
37
37
  `);
38
38
  }
39
39
  static async reportException(e, silent = true) {
@@ -68,8 +68,8 @@ export class KeymanSentry {
68
68
  throw e;
69
69
  }
70
70
  const eventId = Sentry.captureException(e);
71
- process.stderr.write(`
72
- Fatal error: ${(e ?? '').toString()}
71
+ process.stderr.write(`
72
+ Fatal error: ${(e ?? '').toString()}
73
73
  `);
74
74
  this.writeSentryMessage(eventId);
75
75
  await this.close();
@@ -1,41 +1,41 @@
1
- UNICODE LICENSE V3
2
-
3
- COPYRIGHT AND PERMISSION NOTICE
4
-
5
- Copyright © 1991-2024 Unicode, Inc.
6
-
7
- NOTICE TO USER: Carefully read the following legal agreement. BY
8
- DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
9
- SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
10
- TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
11
- DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
12
-
13
- Permission is hereby granted, free of charge, to any person obtaining a
14
- copy of data files and any associated documentation (the "Data Files") or
15
- software and any associated documentation (the "Software") to deal in the
16
- Data Files or Software without restriction, including without limitation
17
- the rights to use, copy, modify, merge, publish, distribute, and/or sell
18
- copies of the Data Files or Software, and to permit persons to whom the
19
- Data Files or Software are furnished to do so, provided that either (a)
20
- this copyright and permission notice appear with all copies of the Data
21
- Files or Software, or (b) this copyright and permission notice appear in
22
- associated Documentation.
23
-
24
- THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
25
- KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
27
- THIRD PARTY RIGHTS.
28
-
29
- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
30
- BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
31
- OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
32
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
33
- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
34
- FILES OR SOFTWARE.
35
-
36
- Except as contained in this notice, the name of a copyright holder shall
37
- not be used in advertising or otherwise to promote the sale, use or other
38
- dealings in these Data Files or Software without prior written
39
- authorization of the copyright holder.
40
-
41
- SPDX-License-Identifier: Unicode-3.0
1
+ UNICODE LICENSE V3
2
+
3
+ COPYRIGHT AND PERMISSION NOTICE
4
+
5
+ Copyright © 1991-2024 Unicode, Inc.
6
+
7
+ NOTICE TO USER: Carefully read the following legal agreement. BY
8
+ DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
9
+ SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
10
+ TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
11
+ DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
12
+
13
+ Permission is hereby granted, free of charge, to any person obtaining a
14
+ copy of data files and any associated documentation (the "Data Files") or
15
+ software and any associated documentation (the "Software") to deal in the
16
+ Data Files or Software without restriction, including without limitation
17
+ the rights to use, copy, modify, merge, publish, distribute, and/or sell
18
+ copies of the Data Files or Software, and to permit persons to whom the
19
+ Data Files or Software are furnished to do so, provided that either (a)
20
+ this copyright and permission notice appear with all copies of the Data
21
+ Files or Software, or (b) this copyright and permission notice appear in
22
+ associated Documentation.
23
+
24
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
25
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
27
+ THIRD PARTY RIGHTS.
28
+
29
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
30
+ BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
31
+ OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
32
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
33
+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
34
+ FILES OR SOFTWARE.
35
+
36
+ Except as contained in this notice, the name of a copyright holder shall
37
+ not be used in advertising or otherwise to promote the sale, use or other
38
+ dealings in these Data Files or Software without prior written
39
+ authorization of the copyright holder.
40
+
41
+ SPDX-License-Identifier: Unicode-3.0
package/package.json CHANGED
@@ -1,87 +1,88 @@
1
- {
2
- "name": "@keymanapp/kmc",
3
- "description": "Keyman Developer compiler command line tools",
4
- "keywords": [
5
- "keyboard",
6
- "keyman",
7
- "ldml",
8
- "unicode",
9
- "lexical-model",
10
- "predictive-text"
11
- ],
12
- "scripts": {
13
- "build": "tsc -b",
14
- "bundle": "npm run bundle-kmc && npm run bundle-kmlmc && npm run bundle-kmlmp",
15
- "bundle-kmc": "esbuild build/src/kmc.js --bundle --platform=node --target=es2022 > build/cjs-src/kmc.cjs",
16
- "bundle-kmlmc": "esbuild build/src/kmlmc.js --bundle --platform=node --target=es2022 > build/cjs-src/kmlmc.cjs",
17
- "bundle-kmlmp": "esbuild build/src/kmlmp.js --bundle --platform=node --target=es2022 > build/cjs-src/kmlmp.cjs",
18
- "test": "eslint . && cd test && tsc -b && cd .. && mocha"
19
- },
20
- "type": "module",
21
- "author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
22
- "contributors": [
23
- "Eddie Antonio Santos <Eddie.Santos@nrc-cnrc.gc.ca>",
24
- "Joshua Horton"
25
- ],
26
- "license": "MIT",
27
- "bugs": {
28
- "url": "https://github.com/keymanapp/keyman/issues"
29
- },
30
- "main": "build/src/kmc.js",
31
- "bin": {
32
- "kmc": "build/src/kmc.js",
33
- "kmlmc": "build/src/kmlmc.js",
34
- "kmlmp": "build/src/kmlmp.js"
35
- },
36
- "dependencies": {
37
- "@keymanapp/common-types": "19.0.145-alpha",
38
- "@keymanapp/developer-utils": "19.0.145-alpha",
39
- "@keymanapp/keyman-version": "19.0.145-alpha",
40
- "@keymanapp/kmc-analyze": "19.0.145-alpha",
41
- "@keymanapp/kmc-copy": "19.0.145-alpha",
42
- "@keymanapp/kmc-generate": "19.0.145-alpha",
43
- "@keymanapp/kmc-keyboard-info": "19.0.145-alpha",
44
- "@keymanapp/kmc-kmn": "19.0.145-alpha",
45
- "@keymanapp/kmc-ldml": "19.0.145-alpha",
46
- "@keymanapp/kmc-model": "19.0.145-alpha",
47
- "@keymanapp/kmc-model-info": "19.0.145-alpha",
48
- "@keymanapp/kmc-package": "19.0.145-alpha",
49
- "@sentry/node": "^7.57.0",
50
- "chalk": "^2.4.2",
51
- "commander": "^10.0.0",
52
- "supports-color": "^9.4.0"
53
- },
54
- "files": [
55
- "build/src/",
56
- "build/unicode-license.txt"
57
- ],
58
- "devDependencies": {
59
- "@sentry/cli": "^2.31.0",
60
- "@types/mocha": "^5.2.7",
61
- "@types/node": "^20.4.1",
62
- "c8": "^7.12.0",
63
- "esbuild": "^0.25.0",
64
- "typescript": "^5.4.5"
65
- },
66
- "mocha": {
67
- "spec": "build/test/**/*.tests.js",
68
- "require": [
69
- "source-map-support/register"
70
- ]
71
- },
72
- "c8": {
73
- "all": true,
74
- "src": [
75
- "src/"
76
- ],
77
- "exclude-after-remap": true,
78
- "exclude": [
79
- "test/"
80
- ]
81
- },
82
- "repository": {
83
- "type": "git",
84
- "url": "git+https://github.com/keymanapp/keyman.git"
85
- },
86
- "version": "19.0.145-alpha"
87
- }
1
+ {
2
+ "name": "@keymanapp/kmc",
3
+ "description": "Keyman Developer compiler command line tools",
4
+ "keywords": [
5
+ "keyboard",
6
+ "keyman",
7
+ "ldml",
8
+ "unicode",
9
+ "lexical-model",
10
+ "predictive-text"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc -b",
14
+ "bundle": "npm run bundle-kmc && npm run bundle-kmlmc && npm run bundle-kmlmp",
15
+ "bundle-kmc": "esbuild build/src/kmc.js --bundle --platform=node --target=es2022 > build/cjs-src/kmc.cjs",
16
+ "bundle-kmlmc": "esbuild build/src/kmlmc.js --bundle --platform=node --target=es2022 > build/cjs-src/kmlmc.cjs",
17
+ "bundle-kmlmp": "esbuild build/src/kmlmp.js --bundle --platform=node --target=es2022 > build/cjs-src/kmlmp.cjs",
18
+ "test": "eslint . && cd test && tsc -b && cd .. && mocha"
19
+ },
20
+ "type": "module",
21
+ "author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
22
+ "contributors": [
23
+ "Eddie Antonio Santos <Eddie.Santos@nrc-cnrc.gc.ca>",
24
+ "Joshua Horton"
25
+ ],
26
+ "license": "MIT",
27
+ "bugs": {
28
+ "url": "https://github.com/keymanapp/keyman/issues"
29
+ },
30
+ "main": "build/src/kmc.js",
31
+ "bin": {
32
+ "kmc": "build/src/kmc.js",
33
+ "kmlmc": "build/src/kmlmc.js",
34
+ "kmlmp": "build/src/kmlmp.js"
35
+ },
36
+ "dependencies": {
37
+ "@keymanapp/common-types": "19.0.151-alpha",
38
+ "@keymanapp/developer-utils": "19.0.151-alpha",
39
+ "@keymanapp/keyman-version": "19.0.151-alpha",
40
+ "@keymanapp/kmc-analyze": "19.0.151-alpha",
41
+ "@keymanapp/kmc-copy": "19.0.151-alpha",
42
+ "@keymanapp/kmc-generate": "19.0.151-alpha",
43
+ "@keymanapp/kmc-keyboard-info": "19.0.151-alpha",
44
+ "@keymanapp/kmc-kmn": "19.0.151-alpha",
45
+ "@keymanapp/kmc-ldml": "19.0.151-alpha",
46
+ "@keymanapp/kmc-model": "19.0.151-alpha",
47
+ "@keymanapp/kmc-model-info": "19.0.151-alpha",
48
+ "@keymanapp/kmc-package": "19.0.151-alpha",
49
+ "@sentry/node": "^7.57.0",
50
+ "chalk": "^2.4.2",
51
+ "commander": "^10.0.0",
52
+ "supports-color": "^9.4.0"
53
+ },
54
+ "files": [
55
+ "build/src/",
56
+ "build/unicode-license.txt"
57
+ ],
58
+ "devDependencies": {
59
+ "@sentry/cli": "^2.31.0",
60
+ "@types/mocha": "^5.2.7",
61
+ "@types/node": "^20.4.1",
62
+ "c8": "^7.12.0",
63
+ "esbuild": "^0.25.0",
64
+ "typescript": "^5.4.5"
65
+ },
66
+ "mocha": {
67
+ "spec": "build/test/**/*.tests.js",
68
+ "require": [
69
+ "source-map-support/register"
70
+ ]
71
+ },
72
+ "c8": {
73
+ "all": true,
74
+ "src": [
75
+ "src/"
76
+ ],
77
+ "exclude-after-remap": true,
78
+ "exclude": [
79
+ "test/"
80
+ ]
81
+ },
82
+ "repository": {
83
+ "type": "git",
84
+ "url": "git+https://github.com/keymanapp/keyman.git",
85
+ "directory": "developer/src/kmc"
86
+ },
87
+ "version": "19.0.151-alpha"
88
+ }