| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { readFileSync, writeFileSync, readdirSync } from 'node:fs';
- import { dirname, join } from 'node:path';
- import { fileURLToPath } from 'node:url';
- const scriptDir = dirname(fileURLToPath(import.meta.url));
- const root = join(scriptDir, '../..');
- const svc = join(root, 'fs-service/src/main/java/com/fs/company/service/workflow');
- const srcDir = join(scriptDir, 'lobster_utf8_sources');
- function decodeJavaUnicode(text) {
- return text.replace(/\\u([0-9a-fA-F]{4})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)));
- }
- function writeUtf8(path, content) {
- writeFileSync(path, content.replace(/\r\n/g, '\n'), 'utf8');
- }
- function fixFile(path) {
- const raw = readFileSync(path, 'utf8');
- const decoded = decodeJavaUnicode(raw);
- if (decoded === raw) {
- console.log('skip (no \\u):', path.split(/[/\\]/).pop());
- return;
- }
- writeUtf8(path, decoded);
- console.log('decoded:', path.split(/[/\\]/).pop());
- }
- const javaFiles = [
- join(svc, 'execution/LobsterOutboundQualityGate.java'),
- join(svc, 'execution/ProductKnowledgeBoundaryPolicy.java'),
- join(svc, 'execution/TenantProductClaimSemanticAnalyzer.java'),
- join(svc, 'execution/LobsterProactiveGreetingService.java'),
- join(svc, 'execution/LobsterMessageTemplateRenderer.java'),
- join(svc, 'deepdialogue/GeneralKnowledgeDialoguePolicy.java'),
- join(svc, 'deepdialogue/CustomerFacingMessageSplitter.java'),
- ];
- for (const path of javaFiles) {
- fixFile(path);
- }
- for (const name of readdirSync(srcDir).filter((f) => f.endsWith('.java'))) {
- fixFile(join(srcDir, name));
- }
- console.log('done');
|