hybridtm 0.7.1 → 0.9.0

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.
Files changed (84) hide show
  1. package/README.md +32 -11
  2. package/dist/backupHandler.d.ts +60 -0
  3. package/dist/backupHandler.js +335 -0
  4. package/dist/backupHandler.js.map +1 -0
  5. package/dist/backupReader.d.ts +26 -0
  6. package/dist/backupReader.js +55 -0
  7. package/dist/backupReader.js.map +1 -0
  8. package/dist/batchImporter.d.ts +1 -1
  9. package/dist/batchImporter.js +4 -3
  10. package/dist/batchImporter.js.map +1 -1
  11. package/dist/cli/backupCommand.d.ts +15 -0
  12. package/dist/cli/backupCommand.js +49 -0
  13. package/dist/cli/backupCommand.js.map +1 -0
  14. package/dist/cli/cliUtils.d.ts +2 -1
  15. package/dist/cli/cliUtils.js +23 -10
  16. package/dist/cli/cliUtils.js.map +1 -1
  17. package/dist/cli/createCommand.d.ts +5 -3
  18. package/dist/cli/createCommand.js +33 -28
  19. package/dist/cli/createCommand.js.map +1 -1
  20. package/dist/cli/hybridtmCli.d.ts +1 -1
  21. package/dist/cli/hybridtmCli.js +35 -15
  22. package/dist/cli/hybridtmCli.js.map +1 -1
  23. package/dist/cli/importCommand.d.ts +11 -3
  24. package/dist/cli/importCommand.js +75 -78
  25. package/dist/cli/importCommand.js.map +1 -1
  26. package/dist/cli/matchCommand.d.ts +17 -3
  27. package/dist/cli/matchCommand.js +99 -129
  28. package/dist/cli/matchCommand.js.map +1 -1
  29. package/dist/cli/registryCommands.d.ts +8 -5
  30. package/dist/cli/registryCommands.js +63 -61
  31. package/dist/cli/registryCommands.js.map +1 -1
  32. package/dist/cli/restoreCommand.d.ts +18 -0
  33. package/dist/cli/restoreCommand.js +100 -0
  34. package/dist/cli/restoreCommand.js.map +1 -0
  35. package/dist/cli/serveCommand.d.ts +17 -0
  36. package/dist/cli/serveCommand.js +87 -0
  37. package/dist/cli/serveCommand.js.map +1 -0
  38. package/dist/cli/stopCommand.d.ts +15 -0
  39. package/dist/cli/stopCommand.js +73 -0
  40. package/dist/cli/stopCommand.js.map +1 -0
  41. package/dist/hybridtm.d.ts +11 -4
  42. package/dist/hybridtm.js +308 -89
  43. package/dist/hybridtm.js.map +1 -1
  44. package/dist/hybridtmFactory.d.ts +1 -1
  45. package/dist/hybridtmFactory.js +6 -1
  46. package/dist/hybridtmFactory.js.map +1 -1
  47. package/dist/importOptions.d.ts +5 -5
  48. package/dist/importOptions.js +11 -11
  49. package/dist/importOptions.js.map +1 -1
  50. package/dist/index.d.ts +4 -1
  51. package/dist/index.js +4 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/langEntry.d.ts +1 -1
  54. package/dist/langEntry.js +1 -1
  55. package/dist/match.d.ts +1 -1
  56. package/dist/match.js +1 -1
  57. package/dist/matchQuality.d.ts +1 -1
  58. package/dist/matchQuality.js +1 -1
  59. package/dist/pendingEntry.d.ts +1 -1
  60. package/dist/pendingEntry.js +1 -1
  61. package/dist/searchFilters.d.ts +1 -1
  62. package/dist/searchFilters.js +1 -1
  63. package/dist/server/hybridtmServer.d.ts +40 -0
  64. package/dist/server/hybridtmServer.js +527 -0
  65. package/dist/server/hybridtmServer.js.map +1 -0
  66. package/dist/server/hybridtmServerMain.d.ts +12 -0
  67. package/dist/server/hybridtmServerMain.js +18 -0
  68. package/dist/server/hybridtmServerMain.js.map +1 -0
  69. package/dist/tmxHandler.d.ts +2 -1
  70. package/dist/tmxHandler.js +13 -7
  71. package/dist/tmxHandler.js.map +1 -1
  72. package/dist/tmxReader.d.ts +1 -1
  73. package/dist/tmxReader.js +4 -4
  74. package/dist/tmxReader.js.map +1 -1
  75. package/dist/utils.d.ts +28 -2
  76. package/dist/utils.js +163 -2
  77. package/dist/utils.js.map +1 -1
  78. package/dist/xliffHandler.d.ts +1 -2
  79. package/dist/xliffHandler.js +34 -30
  80. package/dist/xliffHandler.js.map +1 -1
  81. package/dist/xliffReader.d.ts +1 -1
  82. package/dist/xliffReader.js +4 -4
  83. package/dist/xliffReader.js.map +1 -1
  84. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"batchImporter.js","sourceRoot":"","sources":["../ts/batchImporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batchImporter.js","sourceRoot":"","sources":["../ts/batchImporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /*******************************************************************************
2
+ * Copyright (c) 2025-2026 Maxprograms.
3
+ *
4
+ * This program and the accompanying materials
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
+ * which accompanies this distribution, and is available at
7
+ * https://www.eclipse.org/org/documents/epl-v10.html
8
+ *
9
+ * Contributors:
10
+ * Maxprograms - initial API and implementation
11
+ *******************************************************************************/
12
+ export declare class BackupCommand {
13
+ static usage(): void;
14
+ static run(args: string[]): Promise<void>;
15
+ }
@@ -0,0 +1,49 @@
1
+ /*******************************************************************************
2
+ * Copyright (c) 2025-2026 Maxprograms.
3
+ *
4
+ * This program and the accompanying materials
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
+ * which accompanies this distribution, and is available at
7
+ * https://www.eclipse.org/org/documents/epl-v10.html
8
+ *
9
+ * Contributors:
10
+ * Maxprograms - initial API and implementation
11
+ *******************************************************************************/
12
+ import { HybridTMFactory } from '../index.js';
13
+ import { CliUtils } from './cliUtils.js';
14
+ export class BackupCommand {
15
+ static usage() {
16
+ console.log('Usage: hybridtm backup -name <name> -file <path>');
17
+ console.log();
18
+ console.log(' -name Instance to back up (required)');
19
+ console.log(' -file Output XML file path (required)');
20
+ }
21
+ static async run(args) {
22
+ if (CliUtils.hasFlag(args, '-help')) {
23
+ BackupCommand.usage();
24
+ return;
25
+ }
26
+ const name = CliUtils.getFlag(args, '-name');
27
+ const rawFile = CliUtils.getFlag(args, '-file');
28
+ if (!name || !rawFile) {
29
+ BackupCommand.usage();
30
+ CliUtils.fail('Missing required -name or -file.');
31
+ }
32
+ const outputPath = CliUtils.resolvePath(rawFile);
33
+ const tm = HybridTMFactory.getInstance(name);
34
+ if (!tm) {
35
+ CliUtils.fail('No instance named "' + name + '". Run "hybridtm create" or "hybridtm list" first.');
36
+ }
37
+ try {
38
+ const count = await tm.backup(outputPath);
39
+ console.log('Backed up ' + count + ' entries from "' + name + '" to ' + outputPath + '.');
40
+ }
41
+ catch (error) {
42
+ CliUtils.fail(error instanceof Error ? error.message : String(error));
43
+ }
44
+ finally {
45
+ await tm.close();
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=backupCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backupCommand.js","sourceRoot":"","sources":["../../ts/cli/backupCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,aAAa;IAEtB,MAAM,CAAC,KAAK;QACR,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAc;QAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,UAAU,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEzD,MAAM,EAAE,GAAyB,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,oDAAoD,CAAC,CAAC;QACvG,CAAC;QAED,IAAI,CAAC;YACD,MAAM,KAAK,GAAW,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,GAAG,iBAAiB,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACP,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;CACJ"}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -12,6 +12,7 @@
12
12
  export declare class CliUtils {
13
13
  static getFlag(args: string[], flag: string): string | undefined;
14
14
  static hasFlag(args: string[], flag: string): boolean;
15
+ static parseIntFlag(args: string[], flag: string, fallback: number, min: number, max?: number): number;
15
16
  static resolvePath(rawPath: string): string;
16
17
  static requireExistingFile(rawPath: string, label: string): string;
17
18
  static resolveModelName(alias: string | undefined): string;
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -16,7 +16,7 @@ import { HybridTM } from '../hybridtm.js';
16
16
  export class CliUtils {
17
17
  static getFlag(args, flag) {
18
18
  const index = args.indexOf(flag);
19
- if (index !== -1 && index + 1 < args.length) {
19
+ if (index !== -1 && index + 1 < args.length && !args[index + 1].startsWith('-')) {
20
20
  return args[index + 1];
21
21
  }
22
22
  return undefined;
@@ -24,6 +24,18 @@ export class CliUtils {
24
24
  static hasFlag(args, flag) {
25
25
  return args.includes(flag);
26
26
  }
27
+ static parseIntFlag(args, flag, fallback, min, max) {
28
+ const raw = CliUtils.getFlag(args, flag);
29
+ if (raw === undefined) {
30
+ return fallback;
31
+ }
32
+ const parsed = Number(raw);
33
+ if (!Number.isInteger(parsed) || parsed < min || (max !== undefined && parsed > max)) {
34
+ const range = max !== undefined ? 'an integer between ' + min + ' and ' + max : 'an integer of at least ' + min;
35
+ CliUtils.fail('Invalid ' + flag + ' value "' + raw + '"; expected ' + range + '.');
36
+ }
37
+ return parsed;
38
+ }
27
39
  static resolvePath(rawPath) {
28
40
  let expanded = rawPath;
29
41
  if (expanded.startsWith('~')) {
@@ -47,16 +59,17 @@ export class CliUtils {
47
59
  }
48
60
  static resolveModelName(alias) {
49
61
  switch (alias) {
50
- case 'speed':
51
- return HybridTM.SPEED_MODEL;
52
- case 'resource':
53
- return HybridTM.RESOURCE_MODEL;
54
- case 'quality':
62
+ case 'compact':
63
+ return HybridTM.COMPACT_MODEL;
64
+ case 'standard':
65
+ return HybridTM.STANDARD_MODEL;
66
+ case 'large':
55
67
  case undefined:
56
- return HybridTM.QUALITY_MODEL;
68
+ return HybridTM.LARGE_MODEL;
57
69
  default:
58
- console.error('Unknown -model value "' + alias + '". Expected speed, quality, or resource.');
59
- process.exit(1);
70
+ // Not one of the presets: treat it as a literal Hugging Face model id
71
+ // (e.g. "onnx-community/gte-multilingual-base") to load directly.
72
+ return alias;
60
73
  }
61
74
  }
62
75
  static fail(message) {
@@ -1 +1 @@
1
- {"version":3,"file":"cliUtils.js","sourceRoot":"","sources":["../../ts/cli/cliUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,QAAQ;IAEjB,MAAM,CAAC,OAAO,CAAC,IAAc,EAAE,IAAY;QACvC,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAc,EAAE,IAAY;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAe;QAC9B,IAAI,QAAQ,GAAW,OAAO,CAAC;QAC/B,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAW,OAAO,EAAE,CAAC;YAC/B,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACnB,QAAQ,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,OAAe,EAAE,KAAa;QACrD,MAAM,QAAQ,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,mBAAmB,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,KAAyB;QAC7C,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,OAAO;gBACR,OAAO,QAAQ,CAAC,WAAW,CAAC;YAChC,KAAK,UAAU;gBACX,OAAO,QAAQ,CAAC,cAAc,CAAC;YACnC,KAAK,SAAS,CAAC;YACf,KAAK,SAAS;gBACV,OAAO,QAAQ,CAAC,aAAa,CAAC;YAClC;gBACI,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,KAAK,GAAG,0CAA0C,CAAC,CAAC;gBAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe;QACvB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACJ"}
1
+ {"version":3,"file":"cliUtils.js","sourceRoot":"","sources":["../../ts/cli/cliUtils.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,14 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
9
9
  * Contributors:
10
10
  * Maxprograms - initial API and implementation
11
11
  *******************************************************************************/
12
- export declare function usage(): void;
13
- export declare function runCreateCommand(args: string[]): Promise<void>;
12
+ export declare class CreateCommand {
13
+ static usage(): void;
14
+ static run(args: string[]): Promise<void>;
15
+ }
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -11,34 +11,39 @@
11
11
  *******************************************************************************/
12
12
  import { HybridTMFactory } from '../index.js';
13
13
  import { CliUtils } from './cliUtils.js';
14
- export function usage() {
15
- console.log('Usage: hybridtm create -name <name> -path <dir> [-model speed|quality|resource]');
16
- console.log();
17
- console.log(' -name Name to register the new instance under (required)');
18
- console.log(' -path Directory where the instance\'s LanceDB data will live (required)');
19
- console.log(' -model Embedding model preset: speed, quality (default), or resource');
20
- }
21
- export async function runCreateCommand(args) {
22
- if (CliUtils.hasFlag(args, '-help')) {
23
- usage();
24
- return;
25
- }
26
- const name = CliUtils.getFlag(args, '-name');
27
- const rawPath = CliUtils.getFlag(args, '-path');
28
- if (!name || !rawPath) {
29
- usage();
30
- CliUtils.fail('Missing required -name or -path.');
31
- }
32
- const modelAlias = CliUtils.getFlag(args, '-model');
33
- const modelName = CliUtils.resolveModelName(modelAlias);
34
- const resolvedPath = CliUtils.resolvePath(rawPath);
35
- try {
36
- const tm = HybridTMFactory.createInstance(name, resolvedPath, modelName);
37
- await tm.close();
38
- console.log('Created instance "' + name + '" at ' + resolvedPath + ' (model: ' + modelName + ')');
14
+ export class CreateCommand {
15
+ static usage() {
16
+ console.log('Usage: hybridtm create -name <name> -path <dir> [-model compact|standard|large|<model id>]');
17
+ console.log();
18
+ console.log(' -name Name to register the new instance under (required)');
19
+ console.log(' -path Directory where the instance\'s LanceDB data will live (required)');
20
+ console.log(' -model Embedding model preset (compact, standard, large [default]), or any');
21
+ console.log(' other Hugging Face feature-extraction model id to load directly');
22
+ console.log(' (e.g. onnx-community/gte-multilingual-base). See the README section');
23
+ console.log(' "Choosing an embedding model" for guidance on which preset to pick.');
39
24
  }
40
- catch (error) {
41
- CliUtils.fail(error instanceof Error ? error.message : String(error));
25
+ static async run(args) {
26
+ if (CliUtils.hasFlag(args, '-help')) {
27
+ CreateCommand.usage();
28
+ return;
29
+ }
30
+ const name = CliUtils.getFlag(args, '-name');
31
+ const rawPath = CliUtils.getFlag(args, '-path');
32
+ if (!name || !rawPath) {
33
+ CreateCommand.usage();
34
+ CliUtils.fail('Missing required -name or -path.');
35
+ }
36
+ const modelAlias = CliUtils.getFlag(args, '-model');
37
+ const modelName = CliUtils.resolveModelName(modelAlias);
38
+ const resolvedPath = CliUtils.resolvePath(rawPath);
39
+ try {
40
+ const tm = HybridTMFactory.createInstance(name, resolvedPath, modelName);
41
+ await tm.close();
42
+ console.log('Created instance "' + name + '" at ' + resolvedPath + ' (model: ' + modelName + ')');
43
+ }
44
+ catch (error) {
45
+ CliUtils.fail(error instanceof Error ? error.message : String(error));
46
+ }
42
47
  }
43
48
  }
44
49
  //# sourceMappingURL=createCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCommand.js","sourceRoot":"","sources":["../../ts/cli/createCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,KAAK;IACjB,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACjD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,EAAE,CAAC;QACR,OAAO;IACX,CAAC;IAED,MAAM,IAAI,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,CAAC;QACR,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,UAAU,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,SAAS,GAAW,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,YAAY,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE3D,IAAI,CAAC;QACD,MAAM,EAAE,GAAa,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACnF,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;IACtG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"createCommand.js","sourceRoot":"","sources":["../../ts/cli/createCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,aAAa;IAEtB,MAAM,CAAC,KAAK;QACR,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAc;QAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,UAAU,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,SAAS,GAAW,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,YAAY,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC;YACD,MAAM,EAAE,GAAa,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;QACtG,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;CACJ"}
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2025-2026 Maxprograms.
4
4
  *
5
5
  * This program and the accompanying materials
6
- * are made available under the terms of the Eclipse License 1.0
6
+ * are made available under the terms of the Eclipse Public License v1.0
7
7
  * which accompanies this distribution, and is available at
8
8
  * https://www.eclipse.org/org/documents/epl-v10.html
9
9
  *
@@ -3,17 +3,21 @@
3
3
  * Copyright (c) 2025-2026 Maxprograms.
4
4
  *
5
5
  * This program and the accompanying materials
6
- * are made available under the terms of the Eclipse License 1.0
6
+ * are made available under the terms of the Eclipse Public License v1.0
7
7
  * which accompanies this distribution, and is available at
8
8
  * https://www.eclipse.org/org/documents/epl-v10.html
9
9
  *
10
10
  * Contributors:
11
11
  * Maxprograms - initial API and implementation
12
12
  *******************************************************************************/
13
- import { runCreateCommand } from './createCommand.js';
14
- import { runImportCommand } from './importCommand.js';
15
- import { runMatchCommand } from './matchCommand.js';
16
- import { runListCommand, runRemoveCommand } from './registryCommands.js';
13
+ import { BackupCommand } from './backupCommand.js';
14
+ import { CreateCommand } from './createCommand.js';
15
+ import { ImportCommand } from './importCommand.js';
16
+ import { MatchCommand } from './matchCommand.js';
17
+ import { RegistryCommands } from './registryCommands.js';
18
+ import { RestoreCommand } from './restoreCommand.js';
19
+ import { ServeCommand } from './serveCommand.js';
20
+ import { StopCommand } from './stopCommand.js';
17
21
  class HybridTMCli {
18
22
  constructor() {
19
23
  this.run(process.argv.slice(2));
@@ -23,19 +27,31 @@ class HybridTMCli {
23
27
  const rest = argv.slice(1);
24
28
  try {
25
29
  if (command === 'create') {
26
- await runCreateCommand(rest);
30
+ await CreateCommand.run(rest);
27
31
  }
28
32
  else if (command === 'import') {
29
- await runImportCommand(rest);
33
+ await ImportCommand.run(rest);
30
34
  }
31
35
  else if (command === 'match') {
32
- await runMatchCommand(rest);
36
+ await MatchCommand.run(rest);
37
+ }
38
+ else if (command === 'backup') {
39
+ await BackupCommand.run(rest);
40
+ }
41
+ else if (command === 'restore') {
42
+ await RestoreCommand.run(rest);
33
43
  }
34
44
  else if (command === 'list') {
35
- await runListCommand(rest);
45
+ await RegistryCommands.runList(rest);
36
46
  }
37
47
  else if (command === 'remove') {
38
- await runRemoveCommand(rest);
48
+ await RegistryCommands.runRemove(rest);
49
+ }
50
+ else if (command === 'serve') {
51
+ await ServeCommand.run(rest);
52
+ }
53
+ else if (command === 'stop') {
54
+ await StopCommand.run(rest);
39
55
  }
40
56
  else if (command === '-help' || command === '--help') {
41
57
  this.usage();
@@ -60,11 +76,15 @@ class HybridTMCli {
60
76
  console.log('Usage: hybridtm <command> [options]');
61
77
  console.log();
62
78
  console.log('Commands:');
63
- console.log(' create Create a new named TM instance');
64
- console.log(' import Import an XLIFF/TMX/SDLTM file into an instance');
65
- console.log(' match Enrich an XLIFF file with TM match candidates');
66
- console.log(' list List registered instances');
67
- console.log(' remove Delete a registered instance and its data');
79
+ console.log(' create Create a new named TM instance');
80
+ console.log(' import Import an XLIFF/TMX/SDLTM file into an instance');
81
+ console.log(' match Enrich an XLIFF file with TM match candidates');
82
+ console.log(' backup Export an instance to a format-agnostic backup XML file');
83
+ console.log(' restore Reimport a backup XML file into an existing or new instance');
84
+ console.log(' list List registered instances');
85
+ console.log(' remove Delete a registered instance and its data');
86
+ console.log(' serve Start the HybridTM HTTP server');
87
+ console.log(' stop Stop the HybridTM HTTP server');
68
88
  console.log();
69
89
  console.log('Run "hybridtm <command> -help" for command-specific options.');
70
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hybridtmCli.js","sourceRoot":"","sources":["../../ts/cli/hybridtmCli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,WAAW;IAEb;QACI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,IAAc;QAC5B,MAAM,OAAO,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAa,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC;YACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvB,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACrD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAEO,KAAK;QACT,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAChF,CAAC;CACJ;AAED,IAAI,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"hybridtmCli.js","sourceRoot":"","sources":["../../ts/cli/hybridtmCli.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,20 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
9
9
  * Contributors:
10
10
  * Maxprograms - initial API and implementation
11
11
  *******************************************************************************/
12
- export declare function usage(): void;
13
- export declare function runImportCommand(args: string[]): Promise<void>;
12
+ import { HybridTM, ImportOptions, TranslationState } from '../index.js';
13
+ export type ImportType = 'xliff' | 'tmx' | 'sdltm';
14
+ export declare class ImportCommand {
15
+ static usage(): void;
16
+ static run(args: string[]): Promise<void>;
17
+ static importFile(tm: HybridTM, filePath: string, type: ImportType, options: ImportOptions): Promise<number>;
18
+ static resolveImportType(explicit: string | undefined, filePath: string): ImportType;
19
+ static isTranslationState(value: string): value is TranslationState;
20
+ private static buildImportOptions;
21
+ }
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -12,94 +12,91 @@
12
12
  import { extname } from "node:path";
13
13
  import { HybridTMFactory } from '../index.js';
14
14
  import { CliUtils } from './cliUtils.js';
15
- export function usage() {
16
- console.log('Usage: hybridtm import -name <name> -file <path> [-type xliff|tmx|sdltm]');
17
- console.log(' [-minState initial|translated|reviewed|final]');
18
- console.log(' [-keepEmpty] [-keepUnconfirmed] [-noMetadata]');
19
- console.log();
20
- console.log(' -name Instance to import into (required)');
21
- console.log(' -file File to import (required)');
22
- console.log(' -type Import format; inferred from the file extension when omitted');
23
- console.log(' -minState Minimum segment state to import (default: translated)');
24
- console.log(' -keepEmpty Import segments with an empty target (default: skipped)');
25
- console.log(' -keepUnconfirmed Import segments with no recognized state (default: skipped)');
26
- console.log(' -noMetadata Skip extracting notes/metadata/extension attributes');
27
- }
28
- export async function runImportCommand(args) {
29
- if (CliUtils.hasFlag(args, '-help')) {
30
- usage();
31
- return;
32
- }
33
- const name = CliUtils.getFlag(args, '-name');
34
- const rawFile = CliUtils.getFlag(args, '-file');
35
- if (!name || !rawFile) {
36
- usage();
37
- CliUtils.fail('Missing required -name or -file.');
15
+ export class ImportCommand {
16
+ static usage() {
17
+ console.log('Usage: hybridtm import -name <name> -file <path> [-type xliff|tmx|sdltm]');
18
+ console.log(' [-minState initial|translated|reviewed|final]');
19
+ console.log(' [-noMetadata]');
20
+ console.log();
21
+ console.log(' -name Instance to import into (required)');
22
+ console.log(' -file File to import (required)');
23
+ console.log(' -type Import format; inferred from the file extension when omitted');
24
+ console.log(' -minState Minimum segment state to import (default: translated)');
25
+ console.log(' -noMetadata Skip extracting notes/metadata/extension attributes');
38
26
  }
39
- const filePath = CliUtils.requireExistingFile(rawFile, 'Import file');
40
- const type = resolveImportType(CliUtils.getFlag(args, '-type'), filePath);
41
- const options = buildImportOptions(args);
42
- const tm = HybridTMFactory.getInstance(name);
43
- if (!tm) {
44
- CliUtils.fail('No instance named "' + name + '". Run "hybridtm create" or "hybridtm list" first.');
27
+ static async run(args) {
28
+ if (CliUtils.hasFlag(args, '-help')) {
29
+ ImportCommand.usage();
30
+ return;
31
+ }
32
+ const name = CliUtils.getFlag(args, '-name');
33
+ const rawFile = CliUtils.getFlag(args, '-file');
34
+ if (!name || !rawFile) {
35
+ ImportCommand.usage();
36
+ CliUtils.fail('Missing required -name or -file.');
37
+ }
38
+ const filePath = CliUtils.requireExistingFile(rawFile, 'Import file');
39
+ const options = ImportCommand.buildImportOptions(args);
40
+ const tm = HybridTMFactory.getInstance(name);
41
+ if (!tm) {
42
+ CliUtils.fail('No instance named "' + name + '". Run "hybridtm create" or "hybridtm list" first.');
43
+ }
44
+ try {
45
+ const type = ImportCommand.resolveImportType(CliUtils.getFlag(args, '-type'), filePath);
46
+ const count = await ImportCommand.importFile(tm, filePath, type, options);
47
+ console.log('Imported ' + count + ' entries from ' + filePath + ' into "' + name + '".');
48
+ }
49
+ catch (error) {
50
+ CliUtils.fail(error instanceof Error ? error.message : String(error));
51
+ }
52
+ finally {
53
+ await tm.close();
54
+ }
45
55
  }
46
- try {
47
- let count;
56
+ static async importFile(tm, filePath, type, options) {
48
57
  switch (type) {
49
58
  case 'xliff':
50
- count = await tm.importXLIFF(filePath, options);
51
- break;
59
+ return await tm.importXLIFF(filePath, options);
52
60
  case 'tmx':
53
- count = await tm.importTMX(filePath, options);
54
- break;
61
+ return await tm.importTMX(filePath, options);
55
62
  case 'sdltm':
56
- count = await tm.importSDLTM(filePath, options);
57
- break;
63
+ return await tm.importSDLTM(filePath, options);
58
64
  }
59
- console.log('Imported ' + count + ' entries from ' + filePath + ' into "' + name + '".');
60
- }
61
- catch (error) {
62
- CliUtils.fail(error instanceof Error ? error.message : String(error));
63
65
  }
64
- finally {
65
- await tm.close();
66
- }
67
- }
68
- function resolveImportType(explicit, filePath) {
69
- if (explicit === 'xliff' || explicit === 'tmx' || explicit === 'sdltm') {
70
- return explicit;
71
- }
72
- if (explicit !== undefined) {
73
- CliUtils.fail('Unknown -type value "' + explicit + '". Expected xliff, tmx, or sdltm.');
74
- }
75
- const ext = extname(filePath).toLowerCase();
76
- if (ext === '.xlf' || ext === '.xliff') {
77
- return 'xliff';
78
- }
79
- if (ext === '.tmx') {
80
- return 'tmx';
66
+ static resolveImportType(explicit, filePath) {
67
+ if (explicit === 'xliff' || explicit === 'tmx' || explicit === 'sdltm') {
68
+ return explicit;
69
+ }
70
+ if (explicit !== undefined) {
71
+ throw new Error('Unknown import type "' + explicit + '". Expected xliff, tmx, or sdltm.');
72
+ }
73
+ const ext = extname(filePath).toLowerCase();
74
+ if (ext === '.xlf' || ext === '.xliff') {
75
+ return 'xliff';
76
+ }
77
+ if (ext === '.tmx') {
78
+ return 'tmx';
79
+ }
80
+ if (ext === '.sdltm') {
81
+ return 'sdltm';
82
+ }
83
+ throw new Error('Could not infer import type from "' + filePath + '". Pass an explicit type.');
81
84
  }
82
- if (ext === '.sdltm') {
83
- return 'sdltm';
85
+ static isTranslationState(value) {
86
+ return value === 'initial' || value === 'translated' || value === 'reviewed' || value === 'final';
84
87
  }
85
- CliUtils.fail('Could not infer import type from "' + filePath + '". Pass -type explicitly.');
86
- }
87
- function buildImportOptions(args) {
88
- const options = {
89
- skipEmpty: !CliUtils.hasFlag(args, '-keepEmpty'),
90
- skipUnconfirmed: !CliUtils.hasFlag(args, '-keepUnconfirmed'),
91
- extractMetadata: !CliUtils.hasFlag(args, '-noMetadata')
92
- };
93
- const minState = CliUtils.getFlag(args, '-minState');
94
- if (minState !== undefined) {
95
- if (!isTranslationState(minState)) {
96
- CliUtils.fail('Unknown -minState value "' + minState + '". Expected initial, translated, reviewed, or final.');
88
+ static buildImportOptions(args) {
89
+ const options = {
90
+ extractMetadata: !CliUtils.hasFlag(args, '-noMetadata')
91
+ };
92
+ const minState = CliUtils.getFlag(args, '-minState');
93
+ if (minState !== undefined) {
94
+ if (!ImportCommand.isTranslationState(minState)) {
95
+ CliUtils.fail('Unknown -minState value "' + minState + '". Expected initial, translated, reviewed, or final.');
96
+ }
97
+ options.minState = minState;
97
98
  }
98
- options.minState = minState;
99
+ return options;
99
100
  }
100
- return options;
101
- }
102
- function isTranslationState(value) {
103
- return value === 'initial' || value === 'translated' || value === 'reviewed' || value === 'final';
104
101
  }
105
102
  //# sourceMappingURL=importCommand.js.map