hybridtm 0.7.0 → 0.7.1
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
|
@@ -84,7 +84,7 @@ hybridtm create -name project -path ./project.lancedb
|
|
|
84
84
|
hybridtm import -name project -file ./translations/project.xlf
|
|
85
85
|
hybridtm match -name project -file ./new-content.xlf -output ./new-content.matches.xlf
|
|
86
86
|
hybridtm list
|
|
87
|
-
hybridtm remove -name project
|
|
87
|
+
hybridtm remove -name project
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
`match` never touches `<target>` — it adds spec Translation Candidates
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* Contributors:
|
|
10
10
|
* Maxprograms - initial API and implementation
|
|
11
11
|
*******************************************************************************/
|
|
12
|
+
import { createInterface } from 'node:readline/promises';
|
|
12
13
|
import { HybridTMFactory } from '../index.js';
|
|
13
14
|
import { CliUtils } from './cliUtils.js';
|
|
14
15
|
export function listUsage() {
|
|
@@ -29,10 +30,10 @@ export async function runListCommand(args) {
|
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
export function removeUsage() {
|
|
32
|
-
console.log('Usage: hybridtm remove -name <name> -
|
|
33
|
+
console.log('Usage: hybridtm remove -name <name> [-force]');
|
|
33
34
|
console.log();
|
|
34
|
-
console.log(' -name
|
|
35
|
-
console.log(' -
|
|
35
|
+
console.log(' -name Instance to remove (required)');
|
|
36
|
+
console.log(' -force Skip the interactive confirmation prompt (for scripts/automation)');
|
|
36
37
|
}
|
|
37
38
|
export async function runRemoveCommand(args) {
|
|
38
39
|
if (CliUtils.hasFlag(args, '-help')) {
|
|
@@ -44,9 +45,22 @@ export async function runRemoveCommand(args) {
|
|
|
44
45
|
removeUsage();
|
|
45
46
|
CliUtils.fail('Missing required -name.');
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
const instances = HybridTMFactory.listInstances();
|
|
49
|
+
const metadata = instances.find((instance) => instance.name === name);
|
|
50
|
+
if (!metadata) {
|
|
51
|
+
const hint = instances.length > 0
|
|
52
|
+
? ' Registered instances: ' + instances.map((instance) => '"' + instance.name + '"').join(', ') + '.'
|
|
53
|
+
: ' No instances are registered yet.';
|
|
54
|
+
CliUtils.fail('No instance named "' + name + '".' + hint);
|
|
55
|
+
}
|
|
56
|
+
if (!CliUtils.hasFlag(args, '-force')) {
|
|
57
|
+
console.log('About to permanently delete instance "' + name + '" at ' + metadata.filePath + ' (model: ' + metadata.modelName + ').');
|
|
58
|
+
console.log('This cannot be undone.');
|
|
59
|
+
const confirmed = await confirm('Type "yes" to confirm: ');
|
|
60
|
+
if (!confirmed) {
|
|
61
|
+
console.log('Aborted; no changes made.');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
50
64
|
}
|
|
51
65
|
try {
|
|
52
66
|
HybridTMFactory.removeInstance(name);
|
|
@@ -56,4 +70,14 @@ export async function runRemoveCommand(args) {
|
|
|
56
70
|
CliUtils.fail(error instanceof Error ? error.message : String(error));
|
|
57
71
|
}
|
|
58
72
|
}
|
|
73
|
+
async function confirm(promptText) {
|
|
74
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
75
|
+
try {
|
|
76
|
+
const answer = await rl.question(promptText);
|
|
77
|
+
return answer.trim().toLowerCase() === 'yes';
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
rl.close();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
59
83
|
//# sourceMappingURL=registryCommands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registryCommands.js","sourceRoot":"","sources":["../../ts/cli/registryCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,eAAe,EAA4B,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,SAAS;IACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IAC/C,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,SAAS,EAAE,CAAC;QACZ,OAAO;IACX,CAAC;IACD,MAAM,SAAS,GAA+B,eAAe,CAAC,aAAa,EAAE,CAAC;IAC9E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO;IACX,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAkC,EAAE,EAAE;QACrD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,SAAS,GAAG,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,WAAW;IACvB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"registryCommands.js","sourceRoot":"","sources":["../../ts/cli/registryCommands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hybridtm",
|
|
3
3
|
"productName": "HybridTM",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.1",
|
|
5
5
|
"description": "HybridTM is a Translation Memory (TM) engine that combines semantic embeddings with fuzzy string matching.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"type": "module",
|
|
@@ -14,8 +14,7 @@
|
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
16
|
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
17
|
-
"build": "npm run clean && tsc && node -e \"const fs=require('node:fs'); const p='dist/cli/hybridtmCli.js'; if (fs.existsSync(p)) { try { fs.chmodSync(p, 0o755); } catch {} }\""
|
|
18
|
-
"postinstall": "node -e \"const fs=require('node:fs'); const p='dist/cli/hybridtmCli.js'; if (fs.existsSync(p)) { try { fs.chmodSync(p, 0o755); } catch {} }\""
|
|
17
|
+
"build": "npm run clean && tsc && node -e \"const fs=require('node:fs'); const p='dist/cli/hybridtmCli.js'; if (fs.existsSync(p)) { try { fs.chmodSync(p, 0o755); } catch {} }\""
|
|
19
18
|
},
|
|
20
19
|
"author": {
|
|
21
20
|
"name": "Rodolfo M. Raya",
|