@soga/utils 0.3.0 → 1.3.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/dist/main.d.mts +78 -0
- package/dist/main.d.ts +78 -9
- package/dist/main.js +1 -1
- package/dist/main.mjs +1 -0
- package/package.json +13 -12
- package/dist/buffer.d.ts +0 -1
- package/dist/buffer.js +0 -1
- package/dist/charcode.d.ts +0 -6
- package/dist/charcode.js +0 -1
- package/dist/error.d.ts +0 -13
- package/dist/error.js +0 -1
- package/dist/file.d.ts +0 -2
- package/dist/file.js +0 -1
- package/dist/gzip.d.ts +0 -10
- package/dist/gzip.js +0 -1
- package/dist/hash.d.ts +0 -13
- package/dist/hash.js +0 -1
- package/dist/language-map.d.ts +0 -18
- package/dist/language-map.js +0 -1
- package/dist/language.d.ts +0 -12
- package/dist/language.js +0 -1
- package/dist/progress.d.ts +0 -4
- package/dist/progress.js +0 -1
package/dist/main.d.mts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as chardet from 'chardet';
|
|
2
|
+
import { AnalyseResult } from 'chardet';
|
|
3
|
+
import { Manifest, HostType } from '@soga/types';
|
|
4
|
+
|
|
5
|
+
declare const getFileBufferSlice: (file_path: string, start: number, end?: number) => Promise<Buffer<ArrayBuffer>>;
|
|
6
|
+
|
|
7
|
+
declare const gzip: (inputFilePath: string, outputFilePath: string, onProgress?: (params: {
|
|
8
|
+
total: number;
|
|
9
|
+
current: number;
|
|
10
|
+
percent: number;
|
|
11
|
+
}) => void | Promise<void>) => Promise<void>;
|
|
12
|
+
declare const gunzip: (inputFilePath: string, outputFilePath: string, onProgress?: (params: {
|
|
13
|
+
total: number;
|
|
14
|
+
current: number;
|
|
15
|
+
percent: number;
|
|
16
|
+
}) => void | Promise<void>) => Promise<void>;
|
|
17
|
+
|
|
18
|
+
declare const calculateMd5: (param: FileInput) => Promise<string>;
|
|
19
|
+
declare const calculateSha1: (param: FileInput) => Promise<string>;
|
|
20
|
+
declare const calculateMd4: ({ file, start, end, }: {
|
|
21
|
+
file: string;
|
|
22
|
+
start: number;
|
|
23
|
+
end: number;
|
|
24
|
+
}) => Promise<string>;
|
|
25
|
+
type FileInput = {
|
|
26
|
+
file: string;
|
|
27
|
+
start: number;
|
|
28
|
+
end: number;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
declare const getFileAllCharcode: (filepath: string) => Promise<AnalyseResult>;
|
|
32
|
+
declare const getFileCharcodeName: (filepath: string) => Promise<chardet.EncodingName>;
|
|
33
|
+
declare const getBufferCharcodeName: (buffer: Buffer<ArrayBufferLike>) => chardet.EncodingName;
|
|
34
|
+
declare const isUtf8File: (filepath: string) => Promise<boolean>;
|
|
35
|
+
declare const saveFileAsUtf8: (inputFilePath: string, outputFilePath: string) => Promise<void>;
|
|
36
|
+
|
|
37
|
+
declare const languageMap: Record<string, {
|
|
38
|
+
name: string;
|
|
39
|
+
label: string;
|
|
40
|
+
eng: string;
|
|
41
|
+
lang: string;
|
|
42
|
+
}>;
|
|
43
|
+
declare const languageList: {
|
|
44
|
+
name: string;
|
|
45
|
+
label: string;
|
|
46
|
+
eng: string;
|
|
47
|
+
lang: string;
|
|
48
|
+
}[];
|
|
49
|
+
declare const defaultLanguage: {
|
|
50
|
+
name: string;
|
|
51
|
+
label: string;
|
|
52
|
+
eng: string;
|
|
53
|
+
lang: string;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
declare const getTextLanguage: (text: string, useDefault?: boolean) => Promise<{
|
|
57
|
+
name: string;
|
|
58
|
+
label: string;
|
|
59
|
+
eng: string;
|
|
60
|
+
lang: string;
|
|
61
|
+
}>;
|
|
62
|
+
declare const getFileLanguage: (filepath: string, useDefault?: boolean) => Promise<{
|
|
63
|
+
name: string;
|
|
64
|
+
label: string;
|
|
65
|
+
eng: string;
|
|
66
|
+
lang: string;
|
|
67
|
+
}>;
|
|
68
|
+
|
|
69
|
+
declare const getProgressPercent: (progress: Record<string, {
|
|
70
|
+
weight: number;
|
|
71
|
+
percent: number;
|
|
72
|
+
}>) => number;
|
|
73
|
+
|
|
74
|
+
declare const calculateManifestHostSize: (manifest: Manifest, host_type: HostType) => number;
|
|
75
|
+
|
|
76
|
+
declare const theUtils = "theUtils2";
|
|
77
|
+
|
|
78
|
+
export { calculateManifestHostSize, calculateMd4, calculateMd5, calculateSha1, defaultLanguage, getBufferCharcodeName, getFileAllCharcode, getFileBufferSlice, getFileCharcodeName, getFileLanguage, getProgressPercent, getTextLanguage, gunzip, gzip, isUtf8File, languageList, languageMap, saveFileAsUtf8, theUtils };
|
package/dist/main.d.ts
CHANGED
|
@@ -1,9 +1,78 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import * as chardet from 'chardet';
|
|
2
|
+
import { AnalyseResult } from 'chardet';
|
|
3
|
+
import { Manifest, HostType } from '@soga/types';
|
|
4
|
+
|
|
5
|
+
declare const getFileBufferSlice: (file_path: string, start: number, end?: number) => Promise<Buffer<ArrayBuffer>>;
|
|
6
|
+
|
|
7
|
+
declare const gzip: (inputFilePath: string, outputFilePath: string, onProgress?: (params: {
|
|
8
|
+
total: number;
|
|
9
|
+
current: number;
|
|
10
|
+
percent: number;
|
|
11
|
+
}) => void | Promise<void>) => Promise<void>;
|
|
12
|
+
declare const gunzip: (inputFilePath: string, outputFilePath: string, onProgress?: (params: {
|
|
13
|
+
total: number;
|
|
14
|
+
current: number;
|
|
15
|
+
percent: number;
|
|
16
|
+
}) => void | Promise<void>) => Promise<void>;
|
|
17
|
+
|
|
18
|
+
declare const calculateMd5: (param: FileInput) => Promise<string>;
|
|
19
|
+
declare const calculateSha1: (param: FileInput) => Promise<string>;
|
|
20
|
+
declare const calculateMd4: ({ file, start, end, }: {
|
|
21
|
+
file: string;
|
|
22
|
+
start: number;
|
|
23
|
+
end: number;
|
|
24
|
+
}) => Promise<string>;
|
|
25
|
+
type FileInput = {
|
|
26
|
+
file: string;
|
|
27
|
+
start: number;
|
|
28
|
+
end: number;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
declare const getFileAllCharcode: (filepath: string) => Promise<AnalyseResult>;
|
|
32
|
+
declare const getFileCharcodeName: (filepath: string) => Promise<chardet.EncodingName>;
|
|
33
|
+
declare const getBufferCharcodeName: (buffer: Buffer<ArrayBufferLike>) => chardet.EncodingName;
|
|
34
|
+
declare const isUtf8File: (filepath: string) => Promise<boolean>;
|
|
35
|
+
declare const saveFileAsUtf8: (inputFilePath: string, outputFilePath: string) => Promise<void>;
|
|
36
|
+
|
|
37
|
+
declare const languageMap: Record<string, {
|
|
38
|
+
name: string;
|
|
39
|
+
label: string;
|
|
40
|
+
eng: string;
|
|
41
|
+
lang: string;
|
|
42
|
+
}>;
|
|
43
|
+
declare const languageList: {
|
|
44
|
+
name: string;
|
|
45
|
+
label: string;
|
|
46
|
+
eng: string;
|
|
47
|
+
lang: string;
|
|
48
|
+
}[];
|
|
49
|
+
declare const defaultLanguage: {
|
|
50
|
+
name: string;
|
|
51
|
+
label: string;
|
|
52
|
+
eng: string;
|
|
53
|
+
lang: string;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
declare const getTextLanguage: (text: string, useDefault?: boolean) => Promise<{
|
|
57
|
+
name: string;
|
|
58
|
+
label: string;
|
|
59
|
+
eng: string;
|
|
60
|
+
lang: string;
|
|
61
|
+
}>;
|
|
62
|
+
declare const getFileLanguage: (filepath: string, useDefault?: boolean) => Promise<{
|
|
63
|
+
name: string;
|
|
64
|
+
label: string;
|
|
65
|
+
eng: string;
|
|
66
|
+
lang: string;
|
|
67
|
+
}>;
|
|
68
|
+
|
|
69
|
+
declare const getProgressPercent: (progress: Record<string, {
|
|
70
|
+
weight: number;
|
|
71
|
+
percent: number;
|
|
72
|
+
}>) => number;
|
|
73
|
+
|
|
74
|
+
declare const calculateManifestHostSize: (manifest: Manifest, host_type: HostType) => number;
|
|
75
|
+
|
|
76
|
+
declare const theUtils = "theUtils2";
|
|
77
|
+
|
|
78
|
+
export { calculateManifestHostSize, calculateMd4, calculateMd5, calculateSha1, defaultLanguage, getBufferCharcodeName, getFileAllCharcode, getFileBufferSlice, getFileCharcodeName, getFileLanguage, getProgressPercent, getTextLanguage, gunzip, gzip, isUtf8File, languageList, languageMap, saveFileAsUtf8, theUtils };
|
package/dist/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
var e,a=Object.create,n=Object.defineProperty,l=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,r=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,g=(e,a,r,g)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let s of t(a))i.call(e,s)||s===r||n(e,s,{get:()=>a[s],enumerable:!(g=l(a,s))||g.enumerable});return e},s=(e,l,t)=>(t=null!=e?a(r(e)):{},g(!l&&e&&e.__esModule?t:n(t,"default",{value:e,enumerable:!0}),e)),o={};((e,a)=>{for(var l in a)n(e,l,{get:a[l],enumerable:!0})})(o,{calculateManifestHostSize:()=>_,calculateMd4:()=>S,calculateMd5:()=>y,calculateSha1:()=>v,defaultLanguage:()=>E,getBufferCharcodeName:()=>T,getFileAllCharcode:()=>q,getFileBufferSlice:()=>m,getFileCharcodeName:()=>M,getFileLanguage:()=>L,getProgressPercent:()=>N,getTextLanguage:()=>H,gunzip:()=>h,gzip:()=>f,isUtf8File:()=>U,languageList:()=>B,languageMap:()=>R,saveFileAsUtf8:()=>C,theUtils:()=>D}),module.exports=(e=o,g(n({},"__esModule",{value:!0}),e));var c=require("fs-extra"),m=async function(e,a,n){const l=(0,c.createReadStream)(e,{start:a,end:n}),t=[];return await new Promise((e,a)=>{l.on("data",e=>{t.push(e)}),l.on("end",()=>{e(!0)}),l.on("error",e=>{a(e)})}),Buffer.concat(t)},u=require("fs-extra"),b=s(require("zlib")),d=require("@soga/fileutils"),f=async(e,a,n)=>{const l=(0,u.createReadStream)(e),t=(0,u.createWriteStream)(a),r=b.default.createGzip(),i=await(0,d.getFileSize)(e);l.pipe(r).pipe(t);let g=0,s=0;await new Promise((e,a)=>{l.on("error",e=>{a(e)}),t.on("error",e=>{a(e)}),l.on("data",async e=>{if(n&&(g+=e.length,g-s>31457280)){s=g;const e=Math.min(g/i,1);await n({total:i,current:g,percent:e})}}),t.on("close",()=>{e(!0)})})},h=async(e,a,n)=>{const l=(0,u.createReadStream)(e),t=(0,u.createWriteStream)(a),r=b.default.createGunzip(),i=await(0,d.getFileSize)(e);l.pipe(r).pipe(t);let g=0,s=0;await new Promise((e,a)=>{l.on("error",e=>{a(e)}),t.on("error",e=>{a(e)}),l.on("data",async e=>{if(n&&(g+=e.length,g-s>31457280)){s=g;const e=Math.min(g/i,1);await n({total:i,current:g,percent:e})}}),t.on("close",()=>{e(!0)})})},p=require("crypto"),w=require("fs-extra"),y=async e=>await k(e,"md5"),v=async e=>await k(e,"sha1"),S=async({file:e,start:a,end:n})=>{const l=Math.min(n,a+262144-1);return await k({file:e,start:a,end:l},"md5")};async function k({file:e,start:a,end:n},l="md5"){const t=(0,p.createHash)(l);await new Promise((l,r)=>{const i=(0,w.createReadStream)(e,{start:a,end:n});i.on("data",e=>{t.update(e)}),i.on("end",()=>{l(!0)}),i.on("error",e=>{r(e)})});return t.digest("hex")}var z=s(require("chardet")),F=require("fs"),P=s(require("iconv-lite")),j=require("@soga/fileutils"),O=e=>{const a=e.find(e=>"UTF-8"===e.name),n=e.find(e=>e.name.startsWith("GB"));return a?n?a.confidence>=n.confidence?a:n:a:n||e[0]},q=async e=>{const a=await(async e=>{const a=await(0,j.getFileSize)(e);let n=a-1;return a>20480&&(n=20480),await m(e,0,n)})(e);return z.default.analyse(a)},M=async e=>{const a=await q(e);return O(a).name},T=e=>{const a=z.default.analyse(e);return O(a).name},U=async e=>"UTF-8"===await M(e),C=async(e,a)=>{await new Promise((n,l)=>{(async()=>{try{const t=(0,F.createReadStream)(e),r=(0,F.createWriteStream)(a);t.on("error",e=>{console.error(`读取文件时发生错误: ${e.message}`),l(e)}),r.on("error",e=>{console.error(`写入文件时发生错误: ${e.message}`),l(e)}),r.on("finish",()=>{n(!0)});const i=await(0,j.getFileSize)(e),g=Math.min(1023,i),s=await m(e,0,g),o=T(s);if("UTF-8"===o)t.pipe(r);else{const e=P.default.decodeStream(o),a=P.default.encodeStream("utf8");t.pipe(e).pipe(a).pipe(r)}}catch(e){l(e)}})()})},R={"zh-cn":{name:"中文简体",label:"中文(简体)",eng:"Chinese (Simplified)",lang:"zh-cn"},"zh-tw":{name:"中文繁体",label:"中文(繁體)",eng:"Chinese (Traditional)",lang:"zh-tw"},en:{name:"英语",label:"English",eng:"English",lang:"en"},af:{name:"南非语",label:"Afrikaans",eng:"Afrikaans",lang:"af"},ar:{name:"阿拉伯语",label:"عربي",eng:"Arabic",lang:"ar"},bg:{name:"保加利亚语",label:"български",eng:"Bulgarian",lang:"bg"},bn:{name:"孟加拉语",label:"বাংলা",eng:"Bengali",lang:"bn"},cs:{name:"捷克语",label:"čeština",eng:"Czech",lang:"cs"},da:{name:"丹麦语",label:"dansk",eng:"Danish",lang:"da"},de:{name:"德语",label:"Deutsch",eng:"German",lang:"de"},el:{name:"希腊语",label:"Ελληνικά",eng:"Greek",lang:"el"},es:{name:"西班牙语",label:"Español",eng:"Spanish",lang:"es"},et:{name:"爱沙尼亚语",label:"eesti",eng:"Estonian",lang:"et"},fa:{name:"波斯语",label:"فارسی",eng:"Persian",lang:"fa"},fi:{name:"芬兰语",label:"Suomalainen",eng:"Finnish",lang:"fi"},fr:{name:"法语",label:"Français",eng:"French",lang:"fr"},gu:{name:"古吉拉特语",label:"ગુજરાતી",eng:"Gujarati",lang:"gu"},he:{name:"希伯来语",label:"עִברִית",eng:"Hebrew",lang:"he"},hi:{name:"印地语",label:"हिंदी",eng:"Hindi",lang:"hi"},hr:{name:"克罗地亚语",label:"Hrvatski",eng:"Croatian",lang:"hr"},hu:{name:"匈牙利语",label:"Magyar",eng:"Hungarian",lang:"hu"},id:{name:"印度尼西亚语",label:"Bahasa Indonesia",eng:"Indonesian",lang:"id"},it:{name:"意大利语",label:"Italiana",eng:"Italian",lang:"it"},ja:{name:"日语",label:"日本語",eng:"Japanese",lang:"ja"},kn:{name:"卡纳达语",label:"ಕನ್ನಡ",eng:"Kannada",lang:"kn"},ko:{name:"朝鲜语",label:"한국인",eng:"Korean",lang:"ko"},lt:{name:"立陶宛语",label:"lietuvių",eng:"Lithuanian",lang:"lt"},lv:{name:"拉脱维亚语",label:"latviski",eng:"Latvian",lang:"lv"},mk:{name:"马其顿语",label:"македонски",eng:"Macedonian",lang:"mk"},ml:{name:"马拉雅拉姆语",label:"മലയാളം",eng:"Malayalam",lang:"ml"},mr:{name:"马拉地语",label:"मराठी",eng:"Marathi",lang:"mr"},ne:{name:"尼泊尔语",label:"नेपाली",eng:"Nepali",lang:"ne"},nl:{name:"荷兰语",label:"Nederlands",eng:"Dutch",lang:"nl"},no:{name:"挪威语",label:"norsk",eng:"Norwegian",lang:"no"},pa:{name:"旁遮普语",label:"ਪੰਜਾਬੀ",eng:"Punjabi",lang:"pa"},pl:{name:"波兰语",label:"Polski",eng:"Polish",lang:"pl"},pt:{name:"葡萄牙语",label:"Português",eng:"Portuguese",lang:"pt"},ro:{name:"罗马尼亚语",label:"Română",eng:"Romanian",lang:"ro"},ru:{name:"俄语",label:"Русский",eng:"Russian",lang:"ru"},sk:{name:"斯洛伐克语",label:"slovenský",eng:"Slovak",lang:"sk"},sl:{name:"斯洛文尼亚语",label:"Slovenščina",eng:"Slovenian",lang:"sl"},so:{name:"索马里语",label:"Soomaali",eng:"Somali",lang:"so"},sq:{name:"阿尔巴尼亚语",label:"shqiptare",eng:"Albanian",lang:"sq"},sv:{name:"瑞典语",label:"svenska",eng:"Swedish",lang:"sv"},sw:{name:"斯瓦希里语",label:"kiswahili",eng:"Swahili",lang:"sw"},ta:{name:"泰米尔语",label:"தமிழ்",eng:"Tamil",lang:"ta"},te:{name:"泰卢固语",label:"తెలుగు",eng:"Telugu",lang:"te"},th:{name:"泰语",label:"แบบไทย",eng:"Thai",lang:"th"},tl:{name:"他加禄语",label:"Tagalog",eng:"Tagalog",lang:"tl"},tr:{name:"土耳其语",label:"Türkçe",eng:"Turkish",lang:"tr"},uk:{name:"乌克兰语",label:"українська",eng:"Ukrainian",lang:"uk"},ur:{name:"乌尔都语",label:"اردو",eng:"Urdu",lang:"ur"},vi:{name:"越南语",label:"Tiếng Việt",eng:"Vietnamese",lang:"vi"}},B=Object.keys(R).map(e=>R[e]),E=R.en,x=require("@soga/fileutils"),A=s(require("langdetect")),G=s(require("iconv-lite")),H=async(e,a=!0)=>{try{const n=A.default.detectOne(e);return n||a?n&&R[n]?R[n]:E:null}catch(e){return E}},L=async(e,a=!0)=>{const n=await(async e=>{const a=await(0,x.getFileSize)(e);let n=a-1;return a>20480&&(n=20480),await m(e,0,n)})(e),l=T(n);let t="";t="UTF-8"==l.toUpperCase()?n.toString("utf8"):G.default.decode(n,l);const r=function(e){const a=e.replace(/[\d:,.()[\]+-_@*]/gm,"");return a}(t);return await H(r,a)};var N=e=>{const a=Object.values(e).reduce((e,a)=>e+a.weight,0);return Object.values(e).reduce((e,a)=>e+a.weight*a.percent,0)/a},_=(e,a)=>{const n=e[a]?.files||{},l=e.attachments||[];let t=0;const r={};return Object.values(n).forEach(e=>{r[e.md5]||(t+=e.size,r[e.md5]=!0)}),Object.values(l).forEach(e=>{const n=e[a],l=n?.files||{};Object.values(l).forEach(e=>{r[e.md5]||(t+=e.size,r[e.md5]=!0)})}),t},D="theUtils2";
|
package/dist/main.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createReadStream as a}from"fs-extra";var e=async function(e,n,l){const t=a(e,{start:n,end:l}),r=[];return await new Promise((a,e)=>{t.on("data",a=>{r.push(a)}),t.on("end",()=>{a(!0)}),t.on("error",a=>{e(a)})}),Buffer.concat(r)};import{createReadStream as n,createWriteStream as l}from"fs-extra";import t from"zlib";import{getFileSize as r}from"@soga/fileutils";var i=async(a,e,i)=>{const s=n(a),o=l(e),g=t.createGzip(),m=await r(a);s.pipe(g).pipe(o);let c=0,b=0;await new Promise((a,e)=>{s.on("error",a=>{e(a)}),o.on("error",a=>{e(a)}),s.on("data",async a=>{if(i&&(c+=a.length,c-b>31457280)){b=c;const a=Math.min(c/m,1);await i({total:m,current:c,percent:a})}}),o.on("close",()=>{a(!0)})})},s=async(a,e,i)=>{const s=n(a),o=l(e),g=t.createGunzip(),m=await r(a);s.pipe(g).pipe(o);let c=0,b=0;await new Promise((a,e)=>{s.on("error",a=>{e(a)}),o.on("error",a=>{e(a)}),s.on("data",async a=>{if(i&&(c+=a.length,c-b>31457280)){b=c;const a=Math.min(c/m,1);await i({total:m,current:c,percent:a})}}),o.on("close",()=>{a(!0)})})};import{createHash as o}from"crypto";import{createReadStream as g}from"fs-extra";var m=async a=>await u(a,"md5"),c=async a=>await u(a,"sha1"),b=async({file:a,start:e,end:n})=>{const l=Math.min(n,e+262144-1);return await u({file:a,start:e,end:l},"md5")};async function u({file:a,start:e,end:n},l="md5"){const t=o(l);await new Promise((l,r)=>{const i=g(a,{start:e,end:n});i.on("data",a=>{t.update(a)}),i.on("end",()=>{l(!0)}),i.on("error",a=>{r(a)})});return t.digest("hex")}import d from"chardet";import{createReadStream as h,createWriteStream as f}from"fs";import p from"iconv-lite";import{getFileSize as w}from"@soga/fileutils";var v=a=>{const e=a.find(a=>"UTF-8"===a.name),n=a.find(a=>a.name.startsWith("GB"));return e?n?e.confidence>=n.confidence?e:n:e:n||a[0]},k=async a=>{const n=await(async a=>{const n=await w(a);let l=n-1;return n>20480&&(l=20480),await e(a,0,l)})(a);return d.analyse(n)},y=async a=>{const e=await k(a);return v(e).name},S=a=>{const e=d.analyse(a);return v(e).name},T=async a=>"UTF-8"===await y(a),z=async(a,n)=>{await new Promise((l,t)=>{(async()=>{try{const r=h(a),i=f(n);r.on("error",a=>{console.error(`读取文件时发生错误: ${a.message}`),t(a)}),i.on("error",a=>{console.error(`写入文件时发生错误: ${a.message}`),t(a)}),i.on("finish",()=>{l(!0)});const s=await w(a),o=Math.min(1023,s),g=await e(a,0,o),m=S(g);if("UTF-8"===m)r.pipe(i);else{const a=p.decodeStream(m),e=p.encodeStream("utf8");r.pipe(a).pipe(e).pipe(i)}}catch(a){t(a)}})()})},P={"zh-cn":{name:"中文简体",label:"中文(简体)",eng:"Chinese (Simplified)",lang:"zh-cn"},"zh-tw":{name:"中文繁体",label:"中文(繁體)",eng:"Chinese (Traditional)",lang:"zh-tw"},en:{name:"英语",label:"English",eng:"English",lang:"en"},af:{name:"南非语",label:"Afrikaans",eng:"Afrikaans",lang:"af"},ar:{name:"阿拉伯语",label:"عربي",eng:"Arabic",lang:"ar"},bg:{name:"保加利亚语",label:"български",eng:"Bulgarian",lang:"bg"},bn:{name:"孟加拉语",label:"বাংলা",eng:"Bengali",lang:"bn"},cs:{name:"捷克语",label:"čeština",eng:"Czech",lang:"cs"},da:{name:"丹麦语",label:"dansk",eng:"Danish",lang:"da"},de:{name:"德语",label:"Deutsch",eng:"German",lang:"de"},el:{name:"希腊语",label:"Ελληνικά",eng:"Greek",lang:"el"},es:{name:"西班牙语",label:"Español",eng:"Spanish",lang:"es"},et:{name:"爱沙尼亚语",label:"eesti",eng:"Estonian",lang:"et"},fa:{name:"波斯语",label:"فارسی",eng:"Persian",lang:"fa"},fi:{name:"芬兰语",label:"Suomalainen",eng:"Finnish",lang:"fi"},fr:{name:"法语",label:"Français",eng:"French",lang:"fr"},gu:{name:"古吉拉特语",label:"ગુજરાતી",eng:"Gujarati",lang:"gu"},he:{name:"希伯来语",label:"עִברִית",eng:"Hebrew",lang:"he"},hi:{name:"印地语",label:"हिंदी",eng:"Hindi",lang:"hi"},hr:{name:"克罗地亚语",label:"Hrvatski",eng:"Croatian",lang:"hr"},hu:{name:"匈牙利语",label:"Magyar",eng:"Hungarian",lang:"hu"},id:{name:"印度尼西亚语",label:"Bahasa Indonesia",eng:"Indonesian",lang:"id"},it:{name:"意大利语",label:"Italiana",eng:"Italian",lang:"it"},ja:{name:"日语",label:"日本語",eng:"Japanese",lang:"ja"},kn:{name:"卡纳达语",label:"ಕನ್ನಡ",eng:"Kannada",lang:"kn"},ko:{name:"朝鲜语",label:"한국인",eng:"Korean",lang:"ko"},lt:{name:"立陶宛语",label:"lietuvių",eng:"Lithuanian",lang:"lt"},lv:{name:"拉脱维亚语",label:"latviski",eng:"Latvian",lang:"lv"},mk:{name:"马其顿语",label:"македонски",eng:"Macedonian",lang:"mk"},ml:{name:"马拉雅拉姆语",label:"മലയാളം",eng:"Malayalam",lang:"ml"},mr:{name:"马拉地语",label:"मराठी",eng:"Marathi",lang:"mr"},ne:{name:"尼泊尔语",label:"नेपाली",eng:"Nepali",lang:"ne"},nl:{name:"荷兰语",label:"Nederlands",eng:"Dutch",lang:"nl"},no:{name:"挪威语",label:"norsk",eng:"Norwegian",lang:"no"},pa:{name:"旁遮普语",label:"ਪੰਜਾਬੀ",eng:"Punjabi",lang:"pa"},pl:{name:"波兰语",label:"Polski",eng:"Polish",lang:"pl"},pt:{name:"葡萄牙语",label:"Português",eng:"Portuguese",lang:"pt"},ro:{name:"罗马尼亚语",label:"Română",eng:"Romanian",lang:"ro"},ru:{name:"俄语",label:"Русский",eng:"Russian",lang:"ru"},sk:{name:"斯洛伐克语",label:"slovenský",eng:"Slovak",lang:"sk"},sl:{name:"斯洛文尼亚语",label:"Slovenščina",eng:"Slovenian",lang:"sl"},so:{name:"索马里语",label:"Soomaali",eng:"Somali",lang:"so"},sq:{name:"阿尔巴尼亚语",label:"shqiptare",eng:"Albanian",lang:"sq"},sv:{name:"瑞典语",label:"svenska",eng:"Swedish",lang:"sv"},sw:{name:"斯瓦希里语",label:"kiswahili",eng:"Swahili",lang:"sw"},ta:{name:"泰米尔语",label:"தமிழ்",eng:"Tamil",lang:"ta"},te:{name:"泰卢固语",label:"తెలుగు",eng:"Telugu",lang:"te"},th:{name:"泰语",label:"แบบไทย",eng:"Thai",lang:"th"},tl:{name:"他加禄语",label:"Tagalog",eng:"Tagalog",lang:"tl"},tr:{name:"土耳其语",label:"Türkçe",eng:"Turkish",lang:"tr"},uk:{name:"乌克兰语",label:"українська",eng:"Ukrainian",lang:"uk"},ur:{name:"乌尔都语",label:"اردو",eng:"Urdu",lang:"ur"},vi:{name:"越南语",label:"Tiếng Việt",eng:"Vietnamese",lang:"vi"}},j=Object.keys(P).map(a=>P[a]),F=P.en;import{getFileSize as M}from"@soga/fileutils";import U from"langdetect";import E from"iconv-lite";var O=async(a,e=!0)=>{try{const n=U.detectOne(a);return n||e?n&&P[n]?P[n]:F:null}catch(a){return F}},G=async(a,n=!0)=>{const l=await(async a=>{const n=await M(a);let l=n-1;return n>20480&&(l=20480),await e(a,0,l)})(a),t=S(l);let r="";r="UTF-8"==t.toUpperCase()?l.toString("utf8"):E.decode(l,t);const i=function(a){const e=a.replace(/[\d:,.()[\]+-_@*]/gm,"");return e}(r);return await O(i,n)};var R=a=>{const e=Object.values(a).reduce((a,e)=>a+e.weight,0);return Object.values(a).reduce((a,e)=>a+e.weight*e.percent,0)/e},x=(a,e)=>{const n=a[e]?.files||{},l=a.attachments||[];let t=0;const r={};return Object.values(n).forEach(a=>{r[a.md5]||(t+=a.size,r[a.md5]=!0)}),Object.values(l).forEach(a=>{const n=a[e],l=n?.files||{};Object.values(l).forEach(a=>{r[a.md5]||(t+=a.size,r[a.md5]=!0)})}),t},B="theUtils2";export{x as calculateManifestHostSize,b as calculateMd4,m as calculateMd5,c as calculateSha1,F as defaultLanguage,S as getBufferCharcodeName,k as getFileAllCharcode,e as getFileBufferSlice,y as getFileCharcodeName,G as getFileLanguage,R as getProgressPercent,O as getTextLanguage,s as gunzip,i as gzip,T as isUtf8File,j as languageList,P as languageMap,z as saveFileAsUtf8,B as theUtils};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soga/utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -11,25 +11,26 @@
|
|
|
11
11
|
"dist"
|
|
12
12
|
],
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"
|
|
14
|
+
"tsup": "^8.5.0",
|
|
15
|
+
"@types/langdetect": "^0.2.2",
|
|
16
|
+
"@types/fs-extra": "^11.0.4",
|
|
17
|
+
"rimraf": "^6.0.1",
|
|
18
|
+
"terser": "^5.43.1",
|
|
19
|
+
"typescript": "^5.8.3",
|
|
20
|
+
"@soga/typescript-config": "^1.0.0"
|
|
15
21
|
},
|
|
16
22
|
"keywords": [],
|
|
17
23
|
"author": "",
|
|
18
24
|
"license": "ISC",
|
|
19
25
|
"dependencies": {
|
|
20
26
|
"chardet": "^2.1.0",
|
|
21
|
-
"fs-extra": "^11.3.
|
|
27
|
+
"fs-extra": "^11.3.2",
|
|
22
28
|
"iconv-lite": "^0.6.3",
|
|
23
|
-
"langdetect": "^0.2.1"
|
|
29
|
+
"langdetect": "^0.2.1",
|
|
30
|
+
"@soga/fileutils": "^1.0.1",
|
|
31
|
+
"@soga/types": "^1.0.1"
|
|
24
32
|
},
|
|
25
33
|
"scripts": {
|
|
26
|
-
"build": "rimraf dist &&
|
|
27
|
-
"minify": "ts-node ./scripts/minify",
|
|
28
|
-
"demo_backup": "ts-node ./demo/demo.ts",
|
|
29
|
-
"demo": "ts-node ./demo/demo.ts",
|
|
30
|
-
"worker": "tsc && ts-node ./demo/worker.ts",
|
|
31
|
-
"test": "jest",
|
|
32
|
-
"dev": "ts-node ./src/main.ts",
|
|
33
|
-
"lint": "eslint . --ext .ts"
|
|
34
|
+
"build": "rimraf dist && tsup src/main.ts --format cjs,esm --dts --minify terser"
|
|
34
35
|
}
|
|
35
36
|
}
|
package/dist/buffer.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getFileBufferSlice: (file_path: string, start: number, end?: number) => Promise<Buffer<ArrayBuffer>>;
|
package/dist/buffer.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFileBufferSlice=void 0;const fs_extra_1=require("fs-extra"),getFileBufferSlice=async function(e,r,t){const f=(0,fs_extra_1.createReadStream)(e,{start:r,end:t}),i=[];return await new Promise(((e,r)=>{f.on("data",(e=>{i.push(e)})),f.on("end",(()=>{e(!0)})),f.on("error",(e=>{r(e)}))})),Buffer.concat(i)};exports.getFileBufferSlice=getFileBufferSlice;
|
package/dist/charcode.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { AnalyseResult } from 'chardet';
|
|
2
|
-
export declare const getFileAllCharcode: (filepath: string) => Promise<AnalyseResult>;
|
|
3
|
-
export declare const getFileCharcodeName: (filepath: string) => Promise<import("chardet").EncodingName>;
|
|
4
|
-
export declare const getBufferCharcodeName: (buffer: Buffer<ArrayBufferLike>) => import("chardet").EncodingName;
|
|
5
|
-
export declare const isUtf8File: (filepath: string) => Promise<boolean>;
|
|
6
|
-
export declare const saveFileAsUtf8: (inputFilePath: string, outputFilePath: string) => Promise<void>;
|
package/dist/charcode.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.saveFileAsUtf8=exports.isUtf8File=exports.getBufferCharcodeName=exports.getFileCharcodeName=exports.getFileAllCharcode=void 0;const chardet_1=__importDefault(require("chardet")),fs_1=require("fs"),iconv_lite_1=__importDefault(require("iconv-lite")),buffer_1=require("./buffer"),file_1=require("./file"),getSampleBuffer=async e=>{const t=await(0,file_1.getFileSize)(e);let r=t-1;t>20480&&(r=20480);return await(0,buffer_1.getFileBufferSlice)(e,0,r)},parseCharcodeInfo=e=>{const t=e.find((e=>"UTF-8"===e.name)),r=e.find((e=>e.name.startsWith("GB")));return t?r?t.confidence>=r.confidence?t:r:t:r||e[0]},getFileAllCharcode=async e=>{const t=await getSampleBuffer(e);return chardet_1.default.analyse(t)};exports.getFileAllCharcode=getFileAllCharcode;const getFileCharcodeName=async e=>{const t=await(0,exports.getFileAllCharcode)(e);return parseCharcodeInfo(t).name};exports.getFileCharcodeName=getFileCharcodeName;const getBufferCharcodeName=e=>{const t=chardet_1.default.analyse(e);return parseCharcodeInfo(t).name};exports.getBufferCharcodeName=getBufferCharcodeName;const isUtf8File=async e=>"UTF-8"===await(0,exports.getFileCharcodeName)(e);exports.isUtf8File=isUtf8File;const saveFileAsUtf8=async(e,t)=>{await new Promise(((r,a)=>{(async()=>{try{const i=(0,fs_1.createReadStream)(e),o=(0,fs_1.createWriteStream)(t);i.on("error",(e=>{console.error(`读取文件时发生错误: ${e.message}`),a(e)})),o.on("error",(e=>{console.error(`写入文件时发生错误: ${e.message}`),a(e)})),o.on("finish",(()=>{r(!0)}));const s=await(0,file_1.getFileSize)(e),f=Math.min(1023,s),c=await(0,buffer_1.getFileBufferSlice)(e,0,f),l=(0,exports.getBufferCharcodeName)(c);if("UTF-8"===l)i.pipe(o);else{const e=iconv_lite_1.default.decodeStream(l),t=iconv_lite_1.default.encodeStream("utf8");i.pipe(e).pipe(t).pipe(o)}}catch(e){a(e)}})()}))};exports.saveFileAsUtf8=saveFileAsUtf8;
|
package/dist/error.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export type SimpleErrorParams = {
|
|
2
|
-
code: number;
|
|
3
|
-
message: string;
|
|
4
|
-
stack?: string;
|
|
5
|
-
};
|
|
6
|
-
export declare class SimpleError extends Error {
|
|
7
|
-
code: number;
|
|
8
|
-
message: string;
|
|
9
|
-
stack?: string;
|
|
10
|
-
constructor(params: SimpleErrorParams);
|
|
11
|
-
}
|
|
12
|
-
export declare class ManualStopError extends Error {
|
|
13
|
-
}
|
package/dist/error.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ManualStopError=exports.SimpleError=void 0;class SimpleError extends Error{code;message;stack;constructor(r){super(r.message),this.code=r.code,this.message=r.message,this.stack=r.stack,this.name="SimpleError"}}exports.SimpleError=SimpleError;class ManualStopError extends Error{}exports.ManualStopError=ManualStopError;
|
package/dist/file.d.ts
DELETED
package/dist/file.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isValidFile=exports.getFileSize=void 0;const fs_extra_1=require("fs-extra"),getFileSize=async e=>(await(0,fs_extra_1.stat)(e)).size;exports.getFileSize=getFileSize;const isValidFile=async e=>{if(!await(0,fs_extra_1.pathExists)(e))return!1;return await(0,exports.getFileSize)(e)>0};exports.isValidFile=isValidFile;
|
package/dist/gzip.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const gzip: (inputFilePath: string, outputFilePath: string, onProgress?: (params: {
|
|
2
|
-
total: number;
|
|
3
|
-
current: number;
|
|
4
|
-
percent: number;
|
|
5
|
-
}) => void | Promise<void>) => Promise<void>;
|
|
6
|
-
export declare const gunzip: (inputFilePath: string, outputFilePath: string, onProgress?: (params: {
|
|
7
|
-
total: number;
|
|
8
|
-
current: number;
|
|
9
|
-
percent: number;
|
|
10
|
-
}) => void | Promise<void>) => Promise<void>;
|
package/dist/gzip.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.gunzip=exports.gzip=void 0;const fs_extra_1=require("fs-extra"),zlib_1=__importDefault(require("zlib")),file_1=require("./file"),gzip=async(e,t,r)=>{const i=(0,fs_extra_1.createReadStream)(e),a=(0,fs_extra_1.createWriteStream)(t),n=zlib_1.default.createGzip(),o=await(0,file_1.getFileSize)(e);i.pipe(n).pipe(a);let s=0,p=0;await new Promise(((e,t)=>{i.on("error",(e=>{t(e)})),a.on("error",(e=>{t(e)})),i.on("data",(async e=>{if(r&&(s+=e.length,s-p>31457280)){p=s;const e=Math.min(s/o,1);await r({total:o,current:s,percent:e})}})),a.on("close",(()=>{e(!0)}))}))};exports.gzip=gzip;const gunzip=async(e,t,r)=>{const i=(0,fs_extra_1.createReadStream)(e),a=(0,fs_extra_1.createWriteStream)(t),n=zlib_1.default.createGunzip(),o=await(0,file_1.getFileSize)(e);i.pipe(n).pipe(a);let s=0,p=0;await new Promise(((e,t)=>{i.on("error",(e=>{t(e)})),a.on("error",(e=>{t(e)})),i.on("data",(async e=>{if(r&&(s+=e.length,s-p>31457280)){p=s;const e=Math.min(s/o,1);await r({total:o,current:s,percent:e})}})),a.on("close",(()=>{e(!0)}))}))};exports.gunzip=gunzip;
|
package/dist/hash.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const calculateMd5: (param: FileInput) => Promise<string>;
|
|
2
|
-
export declare const calculateSha1: (param: FileInput) => Promise<string>;
|
|
3
|
-
export declare const calculateMd4: ({ file, start, end, }: {
|
|
4
|
-
file: string;
|
|
5
|
-
start: number;
|
|
6
|
-
end: number;
|
|
7
|
-
}) => Promise<string>;
|
|
8
|
-
type FileInput = {
|
|
9
|
-
file: string;
|
|
10
|
-
start: number;
|
|
11
|
-
end: number;
|
|
12
|
-
};
|
|
13
|
-
export {};
|
package/dist/hash.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.calculateMd4=exports.calculateSha1=exports.calculateMd5=void 0;const crypto_1=require("crypto"),fs_extra_1=require("fs-extra"),calculateMd5=async a=>await calculateHash(a,"md5");exports.calculateMd5=calculateMd5;const calculateSha1=async a=>await calculateHash(a,"sha1");exports.calculateSha1=calculateSha1;const calculateMd4=async({file:a,start:t,end:e})=>{const c=Math.min(e,t+262144-1);return await calculateHash({file:a,start:t,end:c},"md5")};async function calculateHash({file:a,start:t,end:e},c="md5"){const l=(0,crypto_1.createHash)(c);await new Promise(((c,r)=>{const s=(0,fs_extra_1.createReadStream)(a,{start:t,end:e});s.on("data",(a=>{l.update(a)})),s.on("end",(()=>{c(!0)})),s.on("error",(a=>{r(a)}))}));return l.digest("hex")}exports.calculateMd4=calculateMd4;
|
package/dist/language-map.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare const languageMap: Record<string, {
|
|
2
|
-
name: string;
|
|
3
|
-
label: string;
|
|
4
|
-
eng: string;
|
|
5
|
-
lang: string;
|
|
6
|
-
}>;
|
|
7
|
-
export declare const languageList: {
|
|
8
|
-
name: string;
|
|
9
|
-
label: string;
|
|
10
|
-
eng: string;
|
|
11
|
-
lang: string;
|
|
12
|
-
}[];
|
|
13
|
-
export declare const defaultLanguage: {
|
|
14
|
-
name: string;
|
|
15
|
-
label: string;
|
|
16
|
-
eng: string;
|
|
17
|
-
lang: string;
|
|
18
|
-
};
|
package/dist/language-map.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultLanguage=exports.languageList=exports.languageMap=void 0,exports.languageMap={"zh-cn":{name:"中文简体",label:"中文(简体)",eng:"Chinese (Simplified)",lang:"zh-cn"},"zh-tw":{name:"中文繁体",label:"中文(繁體)",eng:"Chinese (Traditional)",lang:"zh-tw"},en:{name:"英语",label:"English",eng:"English",lang:"en"},af:{name:"南非语",label:"Afrikaans",eng:"Afrikaans",lang:"af"},ar:{name:"阿拉伯语",label:"عربي",eng:"Arabic",lang:"ar"},bg:{name:"保加利亚语",label:"български",eng:"Bulgarian",lang:"bg"},bn:{name:"孟加拉语",label:"বাংলা",eng:"Bengali",lang:"bn"},cs:{name:"捷克语",label:"čeština",eng:"Czech",lang:"cs"},da:{name:"丹麦语",label:"dansk",eng:"Danish",lang:"da"},de:{name:"德语",label:"Deutsch",eng:"German",lang:"de"},el:{name:"希腊语",label:"Ελληνικά",eng:"Greek",lang:"el"},es:{name:"西班牙语",label:"Español",eng:"Spanish",lang:"es"},et:{name:"爱沙尼亚语",label:"eesti",eng:"Estonian",lang:"et"},fa:{name:"波斯语",label:"فارسی",eng:"Persian",lang:"fa"},fi:{name:"芬兰语",label:"Suomalainen",eng:"Finnish",lang:"fi"},fr:{name:"法语",label:"Français",eng:"French",lang:"fr"},gu:{name:"古吉拉特语",label:"ગુજરાતી",eng:"Gujarati",lang:"gu"},he:{name:"希伯来语",label:"עִברִית",eng:"Hebrew",lang:"he"},hi:{name:"印地语",label:"हिंदी",eng:"Hindi",lang:"hi"},hr:{name:"克罗地亚语",label:"Hrvatski",eng:"Croatian",lang:"hr"},hu:{name:"匈牙利语",label:"Magyar",eng:"Hungarian",lang:"hu"},id:{name:"印度尼西亚语",label:"Bahasa Indonesia",eng:"Indonesian",lang:"id"},it:{name:"意大利语",label:"Italiana",eng:"Italian",lang:"it"},ja:{name:"日语",label:"日本語",eng:"Japanese",lang:"ja"},kn:{name:"卡纳达语",label:"ಕನ್ನಡ",eng:"Kannada",lang:"kn"},ko:{name:"朝鲜语",label:"한국인",eng:"Korean",lang:"ko"},lt:{name:"立陶宛语",label:"lietuvių",eng:"Lithuanian",lang:"lt"},lv:{name:"拉脱维亚语",label:"latviski",eng:"Latvian",lang:"lv"},mk:{name:"马其顿语",label:"македонски",eng:"Macedonian",lang:"mk"},ml:{name:"马拉雅拉姆语",label:"മലയാളം",eng:"Malayalam",lang:"ml"},mr:{name:"马拉地语",label:"मराठी",eng:"Marathi",lang:"mr"},ne:{name:"尼泊尔语",label:"नेपाली",eng:"Nepali",lang:"ne"},nl:{name:"荷兰语",label:"Nederlands",eng:"Dutch",lang:"nl"},no:{name:"挪威语",label:"norsk",eng:"Norwegian",lang:"no"},pa:{name:"旁遮普语",label:"ਪੰਜਾਬੀ",eng:"Punjabi",lang:"pa"},pl:{name:"波兰语",label:"Polski",eng:"Polish",lang:"pl"},pt:{name:"葡萄牙语",label:"Português",eng:"Portuguese",lang:"pt"},ro:{name:"罗马尼亚语",label:"Română",eng:"Romanian",lang:"ro"},ru:{name:"俄语",label:"Русский",eng:"Russian",lang:"ru"},sk:{name:"斯洛伐克语",label:"slovenský",eng:"Slovak",lang:"sk"},sl:{name:"斯洛文尼亚语",label:"Slovenščina",eng:"Slovenian",lang:"sl"},so:{name:"索马里语",label:"Soomaali",eng:"Somali",lang:"so"},sq:{name:"阿尔巴尼亚语",label:"shqiptare",eng:"Albanian",lang:"sq"},sv:{name:"瑞典语",label:"svenska",eng:"Swedish",lang:"sv"},sw:{name:"斯瓦希里语",label:"kiswahili",eng:"Swahili",lang:"sw"},ta:{name:"泰米尔语",label:"தமிழ்",eng:"Tamil",lang:"ta"},te:{name:"泰卢固语",label:"తెలుగు",eng:"Telugu",lang:"te"},th:{name:"泰语",label:"แบบไทย",eng:"Thai",lang:"th"},tl:{name:"他加禄语",label:"Tagalog",eng:"Tagalog",lang:"tl"},tr:{name:"土耳其语",label:"Türkçe",eng:"Turkish",lang:"tr"},uk:{name:"乌克兰语",label:"українська",eng:"Ukrainian",lang:"uk"},ur:{name:"乌尔都语",label:"اردو",eng:"Urdu",lang:"ur"},vi:{name:"越南语",label:"Tiếng Việt",eng:"Vietnamese",lang:"vi"}},exports.languageList=Object.keys(exports.languageMap).map((a=>exports.languageMap[a])),exports.defaultLanguage=exports.languageMap.en;
|
package/dist/language.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare const getTextLanguage: (text: string, useDefault?: boolean) => Promise<{
|
|
2
|
-
name: string;
|
|
3
|
-
label: string;
|
|
4
|
-
eng: string;
|
|
5
|
-
lang: string;
|
|
6
|
-
}>;
|
|
7
|
-
export declare const getFileLanguage: (filepath: string, useDefault?: boolean) => Promise<{
|
|
8
|
-
name: string;
|
|
9
|
-
label: string;
|
|
10
|
-
eng: string;
|
|
11
|
-
lang: string;
|
|
12
|
-
}>;
|
package/dist/language.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFileLanguage=exports.getTextLanguage=void 0;const buffer_1=require("./buffer"),charcode_1=require("./charcode"),file_1=require("./file"),language_map_1=require("./language-map"),langdetect_1=__importDefault(require("langdetect")),iconv_lite_1=__importDefault(require("iconv-lite")),getSampleBuffer=async e=>{const t=await(0,file_1.getFileSize)(e);let a=t-1;t>20480&&(a=20480);return await(0,buffer_1.getFileBufferSlice)(e,0,a)},getTextLanguage=async(e,t=!0)=>{try{const a=langdetect_1.default.detectOne(e);return a||t?a&&language_map_1.languageMap[a]?language_map_1.languageMap[a]:language_map_1.defaultLanguage:null}catch(e){return language_map_1.defaultLanguage}};exports.getTextLanguage=getTextLanguage;const getFileLanguage=async(e,t=!0)=>{const a=await getSampleBuffer(e),g=(0,charcode_1.getBufferCharcodeName)(a);let u="";u="UTF-8"==g.toUpperCase()?a.toString("utf8"):iconv_lite_1.default.decode(a,g);const n=cleanSubtitleContent(u);return await(0,exports.getTextLanguage)(n,t)};function cleanSubtitleContent(e){return e.replace(/[\d:,.()[\]+-_@*]/gm,"")}exports.getFileLanguage=getFileLanguage;
|
package/dist/progress.d.ts
DELETED
package/dist/progress.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getProgressPercent=void 0;const getProgressPercent=e=>{const r=Object.values(e).reduce(((e,r)=>e+r.weight),0);return Object.values(e).reduce(((e,r)=>e+r.weight*r.percent),0)/r};exports.getProgressPercent=getProgressPercent;
|