echogarden 3.1.0 → 3.3.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.
- package/data/lexicons/heteronyms.en.json +1 -1
- package/data/lexicons/words.en.json +32 -0
- package/dist/api/Synthesis.js +2 -2
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/encodings/Ascii.d.ts +1 -3
- package/dist/encodings/Ascii.d.ts.map +1 -1
- package/dist/encodings/Ascii.js +13 -9
- package/dist/encodings/Ascii.js.map +1 -1
- package/dist/encodings/Base64.d.ts.map +1 -1
- package/dist/encodings/Base64.js +9 -0
- package/dist/encodings/Base64.js.map +1 -1
- package/dist/encodings/Hex.d.ts.map +1 -1
- package/dist/encodings/Hex.js +11 -2
- package/dist/encodings/Hex.js.map +1 -1
- package/dist/encodings/Utf16.d.ts +1 -3
- package/dist/encodings/Utf16.d.ts.map +1 -1
- package/dist/encodings/Utf16.js +13 -9
- package/dist/encodings/Utf16.js.map +1 -1
- package/dist/encodings/Utf32.d.ts.map +1 -1
- package/dist/encodings/Utf32.js +6 -0
- package/dist/encodings/Utf32.js.map +1 -1
- package/dist/encodings/Utf8.d.ts +9 -5
- package/dist/encodings/Utf8.d.ts.map +1 -1
- package/dist/encodings/Utf8.js +36 -78
- package/dist/encodings/Utf8.js.map +1 -1
- package/dist/nlp/Segmentation.d.ts.map +1 -1
- package/dist/nlp/Segmentation.js +4 -1
- package/dist/nlp/Segmentation.js.map +1 -1
- package/dist/nlp/TextNormalizer.js +8 -1
- package/dist/nlp/TextNormalizer.js.map +1 -1
- package/dist/synthesis/AzureCognitiveServicesTTS.js +1 -1
- package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -1
- package/dist/synthesis/EspeakTTS.d.ts.map +1 -1
- package/dist/synthesis/EspeakTTS.js +21 -6
- package/dist/synthesis/EspeakTTS.js.map +1 -1
- package/dist/synthesis/MicrosoftEdgeTTS.js +1 -1
- package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
- package/dist/utilities/FileSystem.d.ts +12 -7
- package/dist/utilities/FileSystem.d.ts.map +1 -1
- package/dist/utilities/FileSystem.js +196 -79
- package/dist/utilities/FileSystem.js.map +1 -1
- package/dist/utilities/FileWriter.d.ts +1 -0
- package/dist/utilities/FileWriter.d.ts.map +1 -1
- package/dist/utilities/FileWriter.js +8 -1
- package/dist/utilities/FileWriter.js.map +1 -1
- package/dist/utilities/ObjectUtilities.d.ts.map +1 -1
- package/dist/utilities/ObjectUtilities.js +15 -13
- package/dist/utilities/ObjectUtilities.js.map +1 -1
- package/dist/utilities/PackageManager.js +2 -2
- package/dist/utilities/PackageManager.js.map +1 -1
- package/dist/utilities/PathUtilities.d.ts +1 -0
- package/dist/utilities/PathUtilities.d.ts.map +1 -1
- package/dist/utilities/PathUtilities.js +18 -0
- package/dist/utilities/PathUtilities.js.map +1 -1
- package/dist/utilities/StringUtilities.d.ts.map +1 -1
- package/dist/utilities/StringUtilities.js.map +1 -1
- package/dist/utilities/Timer.d.ts +7 -3
- package/dist/utilities/Timer.d.ts.map +1 -1
- package/dist/utilities/Timer.js +42 -30
- package/dist/utilities/Timer.js.map +1 -1
- package/package.json +15 -14
- package/src/api/Synthesis.ts +2 -2
- package/src/encodings/Ascii.ts +14 -10
- package/src/encodings/Base64.ts +9 -0
- package/src/encodings/Hex.ts +11 -2
- package/src/encodings/Utf16.ts +14 -10
- package/src/encodings/Utf32.ts +6 -0
- package/src/encodings/Utf8.ts +45 -82
- package/src/nlp/Segmentation.ts +5 -1
- package/src/nlp/TextNormalizer.ts +11 -1
- package/src/synthesis/AzureCognitiveServicesTTS.ts +1 -1
- package/src/synthesis/EspeakTTS.ts +22 -7
- package/src/synthesis/MicrosoftEdgeTTS.ts +1 -1
- package/src/utilities/FileSystem.ts +224 -85
- package/src/utilities/FileWriter.ts +11 -1
- package/src/utilities/ObjectUtilities.ts +19 -15
- package/src/utilities/PackageManager.ts +2 -2
- package/src/utilities/PathUtilities.ts +19 -0
- package/src/utilities/StringUtilities.ts +0 -2
- package/src/utilities/Timer.ts +57 -37
- package/tsconfig.json +51 -53
- package/dist/encodings/HtmlEscape.d.ts +0 -2
- package/dist/encodings/HtmlEscape.d.ts.map +0 -1
- package/dist/encodings/HtmlEscape.js +0 -30
- package/dist/encodings/HtmlEscape.js.map +0 -1
- package/dist/encodings/LEB128.d.ts +0 -16
- package/dist/encodings/LEB128.d.ts.map +0 -1
- package/dist/encodings/LEB128.js +0 -248
- package/dist/encodings/LEB128.js.map +0 -1
- package/dist/utilities/StringBuilder.d.ts +0 -11
- package/dist/utilities/StringBuilder.d.ts.map +0 -1
- package/dist/utilities/StringBuilder.js +0 -39
- package/dist/utilities/StringBuilder.js.map +0 -1
- package/src/encodings/HtmlEscape.ts +0 -39
- package/src/encodings/LEB128.ts +0 -362
- package/src/utilities/StringBuilder.ts +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectUtilities.js","sourceRoot":"","sources":["../../src/utilities/ObjectUtilities.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,IAAS,EAAE,SAAc;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAEjC,IAAI,
|
|
1
|
+
{"version":3,"file":"ObjectUtilities.js","sourceRoot":"","sources":["../../src/utilities/ObjectUtilities.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,IAAS,EAAE,SAAc;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAEjC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;IAE3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,OAAO,cAAc,CAAA;IACtB,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,SAAQ;QACT,CAAC;QAED,SAAS,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChF,CAAC;IAED,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,GAAM;IACrC,OAAO,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,GAAM;IAClC,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,KAAK,CAAI,GAAM,EAAE,IAAI,GAAG,IAAI,EAAE,WAAqB;IAC3D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,GAAG,CAAA;IACX,CAAC;IAED,MAAM,GAAG,GAAQ,GAAG,CAAA;IACpB,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE9C,QAAQ,mBAAmB,EAAE,CAAC;QAC7B,KAAK,gBAAgB,EAAE,CAAC;YACvB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAC1D,CAAC;YAED,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,IAAI,EAAE,CAAC;oBACV,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;gBAClD,CAAC;qBAAM,CAAC;oBACP,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;gBACxB,CAAC;YACF,CAAC;YAED,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEvB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,sBAAsB,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAClD,WAAW,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;YAEpC,OAAO,WAAW,CAAC,MAAa,CAAA;QACjC,CAAC;QAED,KAAK,oBAAoB,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,qBAAqB,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC9C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,4BAA4B,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,qBAAqB,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC9C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,sBAAsB,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC/C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,qBAAqB,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC9C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,sBAAsB,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC/C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,uBAAuB,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAChD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,uBAAuB,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAChD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,wBAAwB,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACjD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,yBAAyB,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAClD,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,OAAO,WAAkB,CAAA;QAC1B,CAAC;QAED,KAAK,eAAe,EAAE,CAAC;YACtB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAQ,CAAA;QACtC,CAAC;QAED,KAAK,iBAAiB,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;YACtD,YAAY,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAA;YAEtC,OAAO,YAAmB,CAAA;QAC3B,CAAC;QAED,KAAK,mBAAmB,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAA;QACX,CAAC;QAED,KAAK,iBAAiB,EAAE,CAAC;YACxB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC3D,CAAC;YAED,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAEpB,MAAM,SAAS,GAAQ,EAAE,CAAA;YAEzB,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,SAAQ;gBACT,CAAC;gBAED,IAAI,IAAI,EAAE,CAAC;oBACV,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;gBAC9D,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACpC,CAAC;YACF,CAAC;YAED,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEvB,OAAO,SAAS,CAAA;QACjB,CAAC;QAED,SAAS,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,mBAAmB,oBAAoB,CAAC,CAAA;QAC5E,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAQ;IACrC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAA;AAC1F,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { downloadAndExtractTarball } from './FileDownloader.js';
|
|
2
|
-
import {
|
|
2
|
+
import { ensureDir, existsSync, remove } from './FileSystem.js';
|
|
3
3
|
import { appName } from '../api/Common.js';
|
|
4
|
-
import { getAppTempDir, joinPath } from './PathUtilities.js';
|
|
4
|
+
import { getAppDataDir, getAppTempDir, joinPath } from './PathUtilities.js';
|
|
5
5
|
import { getGlobalOption } from '../api/GlobalOptions.js';
|
|
6
6
|
export async function loadPackage(packageName, callbacks) {
|
|
7
7
|
packageName = resolveToVersionedPackageNameIfNeeded(packageName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../src/utilities/PackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAA2B,MAAM,qBAAqB,CAAA;AACxF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../src/utilities/PackageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export declare function getModuleRootDir(): string;
|
|
|
4
4
|
export declare function resolveToModuleRootDir(relativePath: string): string;
|
|
5
5
|
export declare function getLowercaseFileExtension(filename: string): string;
|
|
6
6
|
export declare function getAppTempDir(appName: string): string;
|
|
7
|
+
export declare function getAppDataDir(appName: string): string;
|
|
7
8
|
export declare function joinPath(...paths: string[]): string;
|
|
8
9
|
export declare function resolvePath(...paths: string[]): string;
|
|
9
10
|
export declare function normalizePath(path: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathUtilities.d.ts","sourceRoot":"","sources":["../../src/utilities/PathUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AAGnC,wBAAgB,gBAAgB,WAI/B;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,UAE1D;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,UAQzD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,UAiB5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,UAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,UAE7C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,UAEzC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,eAEzC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAEvC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,UAEtC;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,UAE3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,uBAErC"}
|
|
1
|
+
{"version":3,"file":"PathUtilities.d.ts","sourceRoot":"","sources":["../../src/utilities/PathUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AAGnC,wBAAgB,gBAAgB,WAI/B;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,UAE1D;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,UAQzD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,UAiB5C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,UAiB5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,UAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,UAE7C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,UAEzC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,eAEzC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAEvC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,UAEtC;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,UAE3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,uBAErC"}
|
|
@@ -33,6 +33,24 @@ export function getAppTempDir(appName) {
|
|
|
33
33
|
}
|
|
34
34
|
return tempDir;
|
|
35
35
|
}
|
|
36
|
+
export function getAppDataDir(appName) {
|
|
37
|
+
let dataDir;
|
|
38
|
+
const platform = process.platform;
|
|
39
|
+
const homeDir = os.homedir();
|
|
40
|
+
if (platform == 'win32') {
|
|
41
|
+
dataDir = joinPath(homeDir, 'AppData', 'Local', appName);
|
|
42
|
+
}
|
|
43
|
+
else if (platform == 'darwin') {
|
|
44
|
+
dataDir = joinPath(homeDir, 'Library', 'Application Support', appName);
|
|
45
|
+
}
|
|
46
|
+
else if (platform == 'linux') {
|
|
47
|
+
dataDir = joinPath(homeDir, '.local', 'share', appName);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
throw new Error(`Unsupport platform ${platform}`);
|
|
51
|
+
}
|
|
52
|
+
return dataDir;
|
|
53
|
+
}
|
|
36
54
|
export function joinPath(...paths) {
|
|
37
55
|
return NodePath.join(...paths);
|
|
38
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathUtilities.js","sourceRoot":"","sources":["../../src/utilities/PathUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAE7B,MAAM,UAAU,gBAAgB;IAC/B,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAE3E,OAAO,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IAC1D,OAAO,WAAW,CAAC,gBAAgB,EAAE,EAAE,YAAY,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACzD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAEpD,IAAI,kBAAkB,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAA;IACV,CAAC;IAED,OAAO,QAAQ,CAAC,SAAS,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC5C,IAAI,OAAe,CAAA;IAEnB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAE5B,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACzB,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;SAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACjC,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;SAAM,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QAChC,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG,KAAe;IAC1C,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAG,KAAe;IAC7C,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC3D,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"PathUtilities.js","sourceRoot":"","sources":["../../src/utilities/PathUtilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtilities.d.ts","sourceRoot":"","sources":["../../src/utilities/StringUtilities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StringUtilities.d.ts","sourceRoot":"","sources":["../../src/utilities/StringUtilities.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAE9D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAU7D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAQ9D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAAE,gBAAgB,SAAM,UAEnI;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAAE,gBAAgB,SAAM,UAElH;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAU/E;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,SAAM,UAEhF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM;;;EAmBxC;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,WAQnD;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAyCzF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;;;EAyClE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,gBAkBnD;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAcvG;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAQnG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtilities.js","sourceRoot":"","sources":["../../src/utilities/StringUtilities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StringUtilities.js","sourceRoot":"","sources":["../../src/utilities/StringUtilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare class Timer {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
private readonly logger;
|
|
3
|
+
private startTime;
|
|
4
|
+
constructor(logger?: TimerLogger);
|
|
4
5
|
restart(): void;
|
|
5
6
|
get elapsedTime(): number;
|
|
6
7
|
get elapsedTimeSeconds(): number;
|
|
@@ -8,7 +9,10 @@ export declare class Timer {
|
|
|
8
9
|
logAndRestart(title: string, timePrecision?: number): number;
|
|
9
10
|
static get currentTime(): number;
|
|
10
11
|
static get microsecondTimestamp(): number;
|
|
12
|
+
private static timestampFunc;
|
|
11
13
|
private static createTimestampFunction;
|
|
12
|
-
private static getTimestamp;
|
|
13
14
|
}
|
|
15
|
+
export declare function roundToDigits(value: number, digits: number): number;
|
|
16
|
+
type TimerLogger = (msg: string) => void;
|
|
17
|
+
export {};
|
|
14
18
|
//# sourceMappingURL=Timer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"AAEA,qBAAa,KAAK;IACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"AAEA,qBAAa,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,OAAO,CAAC,SAAS,CAAI;IAErB,YAAY,MAAM,CAAC,EAAE,WAAW,EAQ/B;IAGD,OAAO,IAAI,IAAI,CAEd;IAGD,IAAI,WAAW,IAAI,MAAM,CAExB;IAGD,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAGD,wBAAwB,IAAI,MAAM,CAKjC;IAGD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,MAAM,CAMtD;IAGD,MAAM,KAAK,WAAW,IAAI,MAAM,CAE/B;IAGD,MAAM,KAAK,oBAAoB,IAAI,MAAM,CAExC;IAGD,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgD;IAE5E,OAAO,CAAC,MAAM,CAAC,uBAAuB;CA4BtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA"}
|
package/dist/utilities/Timer.js
CHANGED
|
@@ -1,61 +1,73 @@
|
|
|
1
|
-
import { logToStderr
|
|
1
|
+
import { logToStderr } from './Utilities.js';
|
|
2
2
|
export class Timer {
|
|
3
|
+
logger;
|
|
3
4
|
startTime = 0;
|
|
4
|
-
constructor() {
|
|
5
|
+
constructor(logger) {
|
|
6
|
+
if (logger) {
|
|
7
|
+
this.logger = logger;
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
this.logger = logToStderr;
|
|
11
|
+
}
|
|
5
12
|
this.restart();
|
|
6
13
|
}
|
|
14
|
+
// Resets the timer to the current time.
|
|
7
15
|
restart() {
|
|
8
16
|
this.startTime = Timer.currentTime;
|
|
9
17
|
}
|
|
18
|
+
// Elapsed time in milliseconds (monotonic where supported).
|
|
10
19
|
get elapsedTime() {
|
|
11
|
-
// Elapsed time (milliseconds)
|
|
12
20
|
return Timer.currentTime - this.startTime;
|
|
13
21
|
}
|
|
22
|
+
// Elapsed time in seconds.
|
|
14
23
|
get elapsedTimeSeconds() {
|
|
15
|
-
// Elapsed time (seconds)
|
|
16
24
|
return this.elapsedTime / 1000;
|
|
17
25
|
}
|
|
26
|
+
// Returns elapsed ms and restarts the timer.
|
|
18
27
|
getElapsedTimeAndRestart() {
|
|
19
|
-
const
|
|
28
|
+
const elapsed = this.elapsedTime;
|
|
20
29
|
this.restart();
|
|
21
|
-
return
|
|
30
|
+
return elapsed;
|
|
22
31
|
}
|
|
32
|
+
// Logs elapsed time (in ms) and restarts the timer.
|
|
23
33
|
logAndRestart(title, timePrecision = 3) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
const message = `${title}: ${roundToDigits(elapsedTime, timePrecision)}ms`;
|
|
27
|
-
logToStderr(message);
|
|
28
|
-
//
|
|
34
|
+
const elapsedMs = this.elapsedTime;
|
|
35
|
+
this.logger(`${title}: ${roundToDigits(elapsedMs, timePrecision)}ms`);
|
|
29
36
|
this.restart();
|
|
30
|
-
return
|
|
37
|
+
return elapsedMs;
|
|
31
38
|
}
|
|
39
|
+
// Current high-resolution timestamp in milliseconds since Unix epoch.
|
|
32
40
|
static get currentTime() {
|
|
33
|
-
|
|
34
|
-
this.createTimestampFunction();
|
|
35
|
-
}
|
|
36
|
-
return this.getTimestamp();
|
|
41
|
+
return this.timestampFunc();
|
|
37
42
|
}
|
|
43
|
+
// Current timestamp in microseconds (integer).
|
|
38
44
|
static get microsecondTimestamp() {
|
|
39
45
|
return Math.floor(Timer.currentTime * 1000);
|
|
40
46
|
}
|
|
47
|
+
// Clock setup
|
|
48
|
+
static timestampFunc = Timer.createTimestampFunction();
|
|
41
49
|
static createTimestampFunction() {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return baseTimestamp + nodeTimeMilliseconds;
|
|
48
|
-
};
|
|
49
|
-
baseTimestamp = Date.now() - this.getTimestamp();
|
|
50
|
+
const g = globalThis;
|
|
51
|
+
// 1. Modern standard: performance.now() (Browsers & Node 16+)
|
|
52
|
+
if (typeof g.performance === 'object' && typeof g.performance.now === 'function') {
|
|
53
|
+
const timeOrigin = g.performance.timeOrigin ?? (Date.now() - g.performance.now());
|
|
54
|
+
return () => timeOrigin + g.performance.now();
|
|
50
55
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
// 2. Node.js high resolution timer (BigInt variant, Node 10.4+)
|
|
57
|
+
if (typeof g.process === 'object' && typeof g.process.hrtime === 'function') {
|
|
58
|
+
const startNs = g.process.hrtime.bigint();
|
|
59
|
+
const epochBaseMs = Date.now() - (Number(startNs) / 1e6);
|
|
60
|
+
return () => epochBaseMs + Number(g.process.hrtime.bigint()) / 1e6;
|
|
54
61
|
}
|
|
55
|
-
|
|
56
|
-
|
|
62
|
+
// 3. Last-resort fallback (non-monotonic)
|
|
63
|
+
if (typeof Date.now === 'function') {
|
|
64
|
+
return () => Date.now();
|
|
57
65
|
}
|
|
66
|
+
return () => new Date().getTime();
|
|
58
67
|
}
|
|
59
|
-
|
|
68
|
+
}
|
|
69
|
+
export function roundToDigits(value, digits) {
|
|
70
|
+
const factor = 10 ** digits;
|
|
71
|
+
return Math.round(value * factor) / factor;
|
|
60
72
|
}
|
|
61
73
|
//# sourceMappingURL=Timer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "echogarden",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.",
|
|
5
5
|
"author": "Rotem Dan",
|
|
6
6
|
"license": "MIT AND GPL-3.0",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"echogarden": "./dist/cli/CLILauncher.js"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@aws-sdk/client-polly": "~3.
|
|
56
|
-
"@aws-sdk/client-transcribe-streaming": "~3.
|
|
55
|
+
"@aws-sdk/client-polly": "~3.1121.0",
|
|
56
|
+
"@aws-sdk/client-transcribe-streaming": "~3.1121.0",
|
|
57
57
|
"@echogarden/audio-io": "~0.4.2",
|
|
58
58
|
"@echogarden/fasttext-wasm": "~0.1.0",
|
|
59
59
|
"@echogarden/flite-wasi": "~0.1.1",
|
|
@@ -64,35 +64,36 @@
|
|
|
64
64
|
"@echogarden/sonic-wasm": "~0.2.0",
|
|
65
65
|
"@echogarden/speex-resampler-wasm": "~0.3.0",
|
|
66
66
|
"@echogarden/svoxpico-wasm": "~0.2.0",
|
|
67
|
-
"@echogarden/text-segmentation": "~0.
|
|
67
|
+
"@echogarden/text-segmentation": "~0.8.0",
|
|
68
68
|
"@echogarden/transformers-nodejs-lite": "~2.17.1-lite.4",
|
|
69
69
|
"@echogarden/wave-codec": "~0.4.0",
|
|
70
70
|
"@echogarden/whisper.cpp-binding": "~0.2.2",
|
|
71
71
|
"@mozilla/readability": "~0.6.0",
|
|
72
72
|
"chalk": "~6.0.0",
|
|
73
73
|
"command-exists": "~1.2.9",
|
|
74
|
+
"easier-http-request": "~0.1.0",
|
|
74
75
|
"fs-extra": "~11.4.0",
|
|
75
76
|
"graceful-fs": "~4.2.11",
|
|
76
|
-
"html-to-text": "~10.0.
|
|
77
|
+
"html-to-text": "~10.0.1",
|
|
77
78
|
"import-meta-resolve": "~4.2.0",
|
|
78
79
|
"jieba-wasm": "~2.4.0",
|
|
79
80
|
"jsdom": "~30.0.1",
|
|
80
81
|
"kuromoji": "~0.1.2",
|
|
81
82
|
"microsoft-cognitiveservices-speech-sdk": "~1.51.0",
|
|
82
|
-
"msgpack-lite": "~0.1
|
|
83
|
+
"msgpack-lite": "~0.2.1",
|
|
83
84
|
"onnxruntime-node": "~1.21.1",
|
|
84
|
-
"openai": "~7.
|
|
85
|
+
"openai": "~7.8.0",
|
|
85
86
|
"quick-json5": "~0.4.3",
|
|
86
|
-
"
|
|
87
|
-
"regexp-composer": "~0.4.0",
|
|
87
|
+
"regexp-composer": "~0.6.0",
|
|
88
88
|
"sam-js": "~0.3.1",
|
|
89
|
+
"standard-html-escaper": "~0.2.1",
|
|
89
90
|
"strip-ansi": "~7.2.0",
|
|
90
91
|
"tar": "~7.5.22",
|
|
91
92
|
"tiktoken": "~1.0.22",
|
|
92
93
|
"tinyld": "~1.3.4",
|
|
93
|
-
"wasm-feature-detect": "~1.
|
|
94
|
-
"wasm-heap-manager": "~0.4.
|
|
95
|
-
"ws": "~8.21.
|
|
94
|
+
"wasm-feature-detect": "~1.9.0",
|
|
95
|
+
"wasm-heap-manager": "~0.4.1",
|
|
96
|
+
"ws": "~8.21.3",
|
|
96
97
|
"wtf_wikipedia": "~10.4.2"
|
|
97
98
|
},
|
|
98
99
|
"peerDependencies": {
|
|
@@ -115,9 +116,9 @@
|
|
|
115
116
|
"@echogarden/gnuspeech-wasm": "~0.3.0",
|
|
116
117
|
"@types/fs-extra": "~11.0.4",
|
|
117
118
|
"@types/graceful-fs": "~4.1.9",
|
|
118
|
-
"@types/jsdom": "~
|
|
119
|
+
"@types/jsdom": "~30.0.0",
|
|
119
120
|
"@types/msgpack-lite": "~0.1.12",
|
|
120
|
-
"@types/node": "~26.
|
|
121
|
+
"@types/node": "~26.4.0",
|
|
121
122
|
"@types/ws": "~8.18.1",
|
|
122
123
|
"ts-json-schema-generator": "~2.9.0",
|
|
123
124
|
"typescript": "~7.0.2"
|
package/src/api/Synthesis.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { type RubberbandOptions } from '../dsp/Rubberband.js'
|
|
|
15
15
|
import { loadLexiconsForLanguage } from '../nlp/Lexicon.js'
|
|
16
16
|
|
|
17
17
|
import { Timeline, TimelineEntry, addTimeOffsetToTimeline, multiplyTimelineByFactor } from '../utilities/Timeline.js'
|
|
18
|
-
import {
|
|
18
|
+
import { ensureDir, existsSync, isFileIsUpToDate, readAndParseJsonFile, writeFileSafe } from '../utilities/FileSystem.js'
|
|
19
19
|
import { formatLanguageCodeWithName, getShortLanguageCode, normalizeLanguageCode, defaultDialectForLanguageCode, normalizeIdentifierToLanguageCode } from '../utilities/Locale.js'
|
|
20
20
|
import { loadPackage } from '../utilities/PackageManager.js'
|
|
21
21
|
import { EngineMetadata, appName } from './Common.js'
|
|
@@ -27,7 +27,7 @@ import { type DeepgramTTSOptions } from '../synthesis/DeepgramTTS.js'
|
|
|
27
27
|
import { OnnxExecutionProvider } from '../utilities/OnnxUtilities.js'
|
|
28
28
|
import { simplifyPunctuationCharacters } from '../nlp/TextNormalizer.js'
|
|
29
29
|
import { convertHtmlToText } from '../utilities/StringUtilities.js'
|
|
30
|
-
import { joinPath, resolvePath } from '../utilities/PathUtilities.js'
|
|
30
|
+
import { getAppDataDir, joinPath, resolvePath } from '../utilities/PathUtilities.js'
|
|
31
31
|
import { Timer } from '../utilities/Timer.js'
|
|
32
32
|
|
|
33
33
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
package/src/encodings/Ascii.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { EncodeIntoResult } from './TextEncodingsCommon.js'
|
|
2
2
|
|
|
3
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
// ASCII encoding
|
|
5
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
3
6
|
export function encodeAscii(asciiString: string) {
|
|
4
7
|
const charCount = asciiString.length
|
|
5
8
|
|
|
@@ -30,31 +33,32 @@ export function encodeAsciiInto(asciiString: string, resultBuffer: Uint8Array):
|
|
|
30
33
|
return { read: len, written: len }
|
|
31
34
|
}
|
|
32
35
|
|
|
36
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
37
|
+
// ASCII decoding
|
|
38
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
33
39
|
export function decodeAscii(encodedString: Uint8Array) {
|
|
34
40
|
const maxChunkLength = 2 ** 24
|
|
35
41
|
|
|
36
|
-
const
|
|
42
|
+
const chunkedAsciiDecoder = new ChunkedAsciiDecoder()
|
|
43
|
+
|
|
44
|
+
let resultString = ''
|
|
37
45
|
|
|
38
46
|
for (let offset = 0; offset < encodedString.length; offset += maxChunkLength) {
|
|
39
|
-
const
|
|
47
|
+
const asciiChunk = encodedString.subarray(offset, offset + maxChunkLength)
|
|
48
|
+
const stringChunk = chunkedAsciiDecoder.writeChunk(asciiChunk)
|
|
40
49
|
|
|
41
|
-
|
|
50
|
+
resultString += stringChunk
|
|
42
51
|
}
|
|
43
52
|
|
|
44
|
-
return
|
|
53
|
+
return resultString
|
|
45
54
|
}
|
|
46
55
|
|
|
47
56
|
export class ChunkedAsciiDecoder {
|
|
48
|
-
private str = ''
|
|
49
57
|
private readonly textDecoder = new TextDecoder('windows-1252')
|
|
50
58
|
|
|
51
59
|
writeChunk(chunk: Uint8Array) {
|
|
52
60
|
const decodedChunk = this.textDecoder.decode(chunk, { stream: true })
|
|
53
61
|
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
toString() {
|
|
58
|
-
return this.str
|
|
62
|
+
return decodedChunk
|
|
59
63
|
}
|
|
60
64
|
}
|
package/src/encodings/Base64.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { decodeAscii } from './Ascii.js'
|
|
2
2
|
|
|
3
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
// Base64 encoding
|
|
5
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
3
6
|
export function encodeBase64(inputBytes: Uint8Array,
|
|
4
7
|
paddingCharacter: string | undefined = '=',
|
|
5
8
|
charCodeMap?: Uint8Array): string {
|
|
@@ -88,6 +91,9 @@ export function encodeBase64AsAsciiBuffer(
|
|
|
88
91
|
return charCodes.subarray(0, writeOffset)
|
|
89
92
|
}
|
|
90
93
|
|
|
94
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
95
|
+
// Base64 decoding
|
|
96
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
91
97
|
export function decodeBase64(
|
|
92
98
|
base64String: string,
|
|
93
99
|
outputBuffer?: Uint8Array,
|
|
@@ -153,5 +159,8 @@ export function decodeBase64(
|
|
|
153
159
|
return outputBuffer.subarray(0, writeOffset)
|
|
154
160
|
}
|
|
155
161
|
|
|
162
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
163
|
+
// Lookup tables
|
|
164
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
156
165
|
export const defaultBase64CharCodeMap: Uint8Array = new Uint8Array([65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47])
|
|
157
166
|
export const defaultBase64ReverseCharCodeMap: Uint8Array = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 0, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 255, 255, 255, 255])
|
package/src/encodings/Hex.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { decodeAscii } from
|
|
1
|
+
import { decodeAscii } from './Ascii.js'
|
|
2
2
|
|
|
3
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
// Hexadecimal encoding
|
|
5
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
3
6
|
export function encodeHex(buffer: Uint8Array) {
|
|
4
7
|
const asciiBuffer = encodeHexAsAsciiBuffer(buffer)
|
|
5
8
|
|
|
@@ -27,11 +30,14 @@ export function encodeHexAsAsciiBuffer(buffer: Uint8Array) {
|
|
|
27
30
|
return charCodes
|
|
28
31
|
}
|
|
29
32
|
|
|
33
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
34
|
+
// Hexadecimal decoding
|
|
35
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
30
36
|
export function decodeHex(hexString: string) {
|
|
31
37
|
const hexLength = hexString.length
|
|
32
38
|
|
|
33
39
|
if (hexLength % 2 !== 0) {
|
|
34
|
-
throw new Error(`Hexadecimal string doesn't have an even number of characters
|
|
40
|
+
throw new Error(`Hexadecimal string doesn't have an even number of characters.`)
|
|
35
41
|
}
|
|
36
42
|
|
|
37
43
|
const buffer = new Uint8Array(hexLength / 2)
|
|
@@ -63,5 +69,8 @@ function hexCharCodeToValue(hexCharCode: number) {
|
|
|
63
69
|
}
|
|
64
70
|
}
|
|
65
71
|
|
|
72
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
73
|
+
// Lookup tables
|
|
74
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
66
75
|
const hexCharLookup: string[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
|
|
67
76
|
const hexCharCodeLookup = new Uint8Array([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102])
|
package/src/encodings/Utf16.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { EncodeIntoResult } from "./TextEncodingsCommon.js"
|
|
2
2
|
|
|
3
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
// UTF-16 Encoding
|
|
5
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
3
6
|
export function encodeUtf16(text: string) {
|
|
4
7
|
const resultArray = new Uint16Array(text.length)
|
|
5
8
|
|
|
@@ -22,31 +25,32 @@ export function encodeUtf16Into(text: string, resultBuffer: Uint16Array): Encode
|
|
|
22
25
|
return { read: len, written: len }
|
|
23
26
|
}
|
|
24
27
|
|
|
28
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
29
|
+
// UTF-16 Decoding
|
|
30
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
25
31
|
export function decodeUtf16(encodedString: Uint16Array) {
|
|
26
32
|
const maxChunkLength = 2 ** 24
|
|
27
33
|
|
|
28
|
-
const
|
|
34
|
+
const chunkedUtf16Decoder = new ChunkedUtf16Decoder()
|
|
35
|
+
|
|
36
|
+
let resultString = ''
|
|
29
37
|
|
|
30
38
|
for (let offset = 0; offset < encodedString.length; offset += maxChunkLength) {
|
|
31
|
-
const
|
|
39
|
+
const utf16Chunk = encodedString.subarray(offset, offset + maxChunkLength)
|
|
40
|
+
const stringChunk = chunkedUtf16Decoder.writeChunk(utf16Chunk)
|
|
32
41
|
|
|
33
|
-
|
|
42
|
+
resultString += stringChunk
|
|
34
43
|
}
|
|
35
44
|
|
|
36
|
-
return
|
|
45
|
+
return resultString
|
|
37
46
|
}
|
|
38
47
|
|
|
39
48
|
export class ChunkedUtf16Decoder {
|
|
40
|
-
private str = ''
|
|
41
49
|
private readonly textDecoder = new TextDecoder('utf-16le')
|
|
42
50
|
|
|
43
51
|
writeChunk(chunk: Uint16Array) {
|
|
44
52
|
const decodedChunk = this.textDecoder.decode(chunk, { stream: true })
|
|
45
53
|
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
toString() {
|
|
50
|
-
return this.str
|
|
54
|
+
return decodedChunk
|
|
51
55
|
}
|
|
52
56
|
}
|
package/src/encodings/Utf32.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { EncodeIntoResult } from "./TextEncodingsCommon.js"
|
|
2
2
|
|
|
3
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
// UTF-32 Encoding
|
|
5
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
3
6
|
export function encodeUtf32(text: string) {
|
|
4
7
|
const resultArray = new Uint32Array(text.length * 2)
|
|
5
8
|
|
|
@@ -33,6 +36,9 @@ export function encodeUtf32Into(text: string, resultBuffer: Uint32Array): Encode
|
|
|
33
36
|
return { read: readOffset, written: writeOffset }
|
|
34
37
|
}
|
|
35
38
|
|
|
39
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
40
|
+
// UTF-32 Decoding
|
|
41
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
36
42
|
export function decodeUtf32(encodedString: Uint32Array) {
|
|
37
43
|
let result = ''
|
|
38
44
|
|