@leettools/common 0.1.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/LICENSE +201 -0
- package/README.md +16 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +59 -0
- package/dist/config.js.map +1 -0
- package/dist/content.d.ts +6 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +33 -0
- package/dist/content.js.map +1 -0
- package/dist/csv.d.ts +10 -0
- package/dist/csv.d.ts.map +1 -0
- package/dist/csv.js +63 -0
- package/dist/csv.js.map +1 -0
- package/dist/deprecatied.d.ts +5 -0
- package/dist/deprecatied.d.ts.map +1 -0
- package/dist/deprecatied.js +18 -0
- package/dist/deprecatied.js.map +1 -0
- package/dist/errors.d.ts +106 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +196 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/json.d.ts +8 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +46 -0
- package/dist/json.js.map +1 -0
- package/dist/language.d.ts +13 -0
- package/dist/language.d.ts.map +1 -0
- package/dist/language.js +89 -0
- package/dist/language.js.map +1 -0
- package/dist/node/dotenv_utils.d.ts +13 -0
- package/dist/node/dotenv_utils.d.ts.map +1 -0
- package/dist/node/dotenv_utils.js +82 -0
- package/dist/node/dotenv_utils.js.map +1 -0
- package/dist/node/file_utils.d.ts +30 -0
- package/dist/node/file_utils.d.ts.map +1 -0
- package/dist/node/file_utils.js +211 -0
- package/dist/node/file_utils.js.map +1 -0
- package/dist/node/module_utils.d.ts +2 -0
- package/dist/node/module_utils.d.ts.map +1 -0
- package/dist/node/module_utils.js +30 -0
- package/dist/node/module_utils.js.map +1 -0
- package/dist/registry.d.ts +11 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +48 -0
- package/dist/registry.js.map +1 -0
- package/dist/template.d.ts +5 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +62 -0
- package/dist/template.js.map +1 -0
- package/dist/time.d.ts +7 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +47 -0
- package/dist/time.js.map +1 -0
- package/dist/tokenizer.d.ts +3 -0
- package/dist/tokenizer.d.ts.map +1 -0
- package/dist/tokenizer.js +26 -0
- package/dist/tokenizer.js.map +1 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +128 -0
- package/dist/types.js.map +1 -0
- package/dist/url.d.ts +6 -0
- package/dist/url.d.ts.map +1 -0
- package/dist/url.js +48 -0
- package/dist/url.js.map +1 -0
- package/package.json +89 -0
package/dist/errors.js
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
export class EdsError extends Error {
|
|
2
|
+
exceptionName;
|
|
3
|
+
exceptionMessage;
|
|
4
|
+
constructor(message) {
|
|
5
|
+
const exceptionName = new.target.name;
|
|
6
|
+
const detail = message && message.length > 0 ? message : 'system exception';
|
|
7
|
+
super(detail);
|
|
8
|
+
this.name = exceptionName;
|
|
9
|
+
this.exceptionName = exceptionName;
|
|
10
|
+
this.exceptionMessage = detail;
|
|
11
|
+
}
|
|
12
|
+
toString() {
|
|
13
|
+
return `${this.exceptionName}: ${this.exceptionMessage}`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class InsufficientBalanceError extends EdsError {
|
|
17
|
+
balance;
|
|
18
|
+
constructor(username, balance) {
|
|
19
|
+
super(`Insufficient balance for ${username}`);
|
|
20
|
+
this.balance = balance;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class ConfigItemValueError extends EdsError {
|
|
24
|
+
constructor(configItem, configValue) {
|
|
25
|
+
super(`${configItem} has invalid value ${configValue}.`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class InvalidConfigError extends EdsError {
|
|
29
|
+
constructor(config, reason, configLocation) {
|
|
30
|
+
const location = configLocation ? `at ${configLocation}` : 'from unspecified location';
|
|
31
|
+
super(`Invalid config ${reason} ${location}: ${config}.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class UnknownParameterError extends EdsError {
|
|
35
|
+
constructor(parameterName) {
|
|
36
|
+
super(`Unknown parameter name ${parameterName}.`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class MissingParametersError extends EdsError {
|
|
40
|
+
constructor(missingParameter) {
|
|
41
|
+
super(`Expected parameter ${missingParameter} not found.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class ParametersValidationError extends EdsError {
|
|
45
|
+
constructor(errorMessages) {
|
|
46
|
+
super(`Parameter validation errors: ${JSON.stringify(errorMessages)}.`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export class InvalidStatusError extends EdsError {
|
|
50
|
+
constructor(entity, expected, actual) {
|
|
51
|
+
super(`Expected status ${expected} for ${entity}, actual status ${actual}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class InvalidValueError extends EdsError {
|
|
55
|
+
constructor(name, expected, actual) {
|
|
56
|
+
super(`${name} should be ${expected}, but actual value is ${actual}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export class ExpectedFailureError extends EdsError {
|
|
60
|
+
constructor(failureDescription) {
|
|
61
|
+
super(`Expected failure due to: ${failureDescription}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export class UnexpectedOperationFailureError extends EdsError {
|
|
65
|
+
constructor(operationDescription, error) {
|
|
66
|
+
super(`Operation ${operationDescription} failed: ${error}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export class GitOperationError extends EdsError {
|
|
70
|
+
action;
|
|
71
|
+
code;
|
|
72
|
+
stdout;
|
|
73
|
+
stderr;
|
|
74
|
+
hints;
|
|
75
|
+
constructor(action, code, stdout, stderr, hints = []) {
|
|
76
|
+
super(`Git operation failed: ${action} (exit code ${code})`);
|
|
77
|
+
this.action = action;
|
|
78
|
+
this.code = code;
|
|
79
|
+
this.stdout = stdout;
|
|
80
|
+
this.stderr = stderr;
|
|
81
|
+
this.hints = hints;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export class ModuleLoadingError extends EdsError {
|
|
85
|
+
constructor(modulePath, errorMessage = '') {
|
|
86
|
+
super(`Faile to load module from path ${modulePath}: ${errorMessage}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export class EntityNotFoundError extends EdsError {
|
|
90
|
+
constructor(entityName, entityType) {
|
|
91
|
+
super(`${entityType} ${entityName} does not exist.`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export class EntityExistsError extends EdsError {
|
|
95
|
+
constructor(entityName, entityType) {
|
|
96
|
+
super(`${entityType} ${entityName} already exists.`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export class EnvVarMissingError extends EdsError {
|
|
100
|
+
constructor(envVarName) {
|
|
101
|
+
super(`Environment variable is missing: ${envVarName}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export class UnexpectedIOError extends EdsError {
|
|
105
|
+
constructor(operationDescription, error) {
|
|
106
|
+
super(`This simple IO operation ${operationDescription} should not cause exception: ${String(error)}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export class UnexpectedCaseError extends EdsError {
|
|
110
|
+
constructor(unexpectedCase) {
|
|
111
|
+
super(`${unexpectedCase}, which should not happen.`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export class UnrecoverableOperationError extends EdsError {
|
|
115
|
+
constructor(operationDescription, error) {
|
|
116
|
+
super(`Unrecoverable operation ${operationDescription} failed: ${error}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export class EmptySearchResultError extends EdsError {
|
|
120
|
+
constructor(searchQuery) {
|
|
121
|
+
super(`Search query ${searchQuery} returned 0 results.`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export class UnexpectedNullValueError extends EdsError {
|
|
125
|
+
constructor(operationDescription, entity) {
|
|
126
|
+
super(`When executing ${operationDescription}, ${entity} should not be null.`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export class CaseNotSupportedError extends EdsError {
|
|
130
|
+
constructor(operation, unsupportedCase) {
|
|
131
|
+
super(`The ${unsupportedCase} case is not supported for ${operation}.`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export class FileNotExistsError extends EdsError {
|
|
135
|
+
constructor(filePath, fileDescription = '') {
|
|
136
|
+
super(`File does not exist: ${filePath}${fileDescription ? ` (${fileDescription})` : ''}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export class PathNotExistsError extends EdsError {
|
|
140
|
+
constructor(path) {
|
|
141
|
+
super(`Path ${path} does not exist.`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export class PathTargetExistsError extends EdsError {
|
|
145
|
+
constructor(path) {
|
|
146
|
+
super(`Target path ${path} already exist.`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
export class CopyFileError extends EdsError {
|
|
150
|
+
constructor(errorMessage) {
|
|
151
|
+
super(`Copying file failed: ${errorMessage}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
export class SerDeError extends EdsError {
|
|
155
|
+
constructor(errorMessage) {
|
|
156
|
+
super(`Serialization/Deserialization Error: ${errorMessage}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
export class HttpRequestError extends EdsError {
|
|
160
|
+
constructor(method, url, params, payload, message) {
|
|
161
|
+
const basic = `RequestMethod=${method} url=${url} failure(${message}).`;
|
|
162
|
+
if (params && payload) {
|
|
163
|
+
super(`${basic}(Request Params=${JSON.stringify(params)},Body=${JSON.stringify(payload)})`);
|
|
164
|
+
}
|
|
165
|
+
else if (params) {
|
|
166
|
+
super(`${basic}(Request Params=${JSON.stringify(params)})`);
|
|
167
|
+
}
|
|
168
|
+
else if (payload) {
|
|
169
|
+
super(`${basic}(Request Body=${JSON.stringify(payload)})`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
super(basic);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
export class LoadYamlError extends EdsError {
|
|
177
|
+
constructor(name) {
|
|
178
|
+
super(`Failed to load YAML file:${name}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
export class YamlFileContentError extends EdsError {
|
|
182
|
+
constructor(name) {
|
|
183
|
+
super(`Failed to load YAML file content:${name}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
export class JsonSchemaError extends EdsError {
|
|
187
|
+
constructor(errorMessage) {
|
|
188
|
+
super(`JSONSchemaError:${errorMessage}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
export class LlmInferenceResultError extends EdsError {
|
|
192
|
+
constructor(errorMessage) {
|
|
193
|
+
super(`Unexpected LLM Inference Result: ${errorMessage}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './config.js';
|
|
2
|
+
export * from './content.js';
|
|
3
|
+
export * from './csv.js';
|
|
4
|
+
export * from './deprecatied.js';
|
|
5
|
+
export * from './errors.js';
|
|
6
|
+
export * from './json.js';
|
|
7
|
+
export * from './language.js';
|
|
8
|
+
export * from './registry.js';
|
|
9
|
+
export * from './template.js';
|
|
10
|
+
export * from './time.js';
|
|
11
|
+
export * from './tokenizer.js';
|
|
12
|
+
export * from './types.js';
|
|
13
|
+
export * from './url.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './config.js';
|
|
2
|
+
export * from './content.js';
|
|
3
|
+
export * from './csv.js';
|
|
4
|
+
export * from './deprecatied.js';
|
|
5
|
+
export * from './errors.js';
|
|
6
|
+
export * from './json.js';
|
|
7
|
+
export * from './language.js';
|
|
8
|
+
export * from './registry.js';
|
|
9
|
+
export * from './template.js';
|
|
10
|
+
export * from './time.js';
|
|
11
|
+
export * from './tokenizer.js';
|
|
12
|
+
export * from './types.js';
|
|
13
|
+
export * from './url.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA"}
|
package/dist/json.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JsonObject, JsonValue } from './types.js';
|
|
2
|
+
export declare function formatJson(json: string | JsonValue, spaces?: number): string;
|
|
3
|
+
export declare function removeJsonBlockMarks(value: string): string;
|
|
4
|
+
export declare function parseJson<T extends JsonValue = JsonValue>(value: string): T;
|
|
5
|
+
export declare function ensureJsonItemList(value: string): JsonObject & {
|
|
6
|
+
items: JsonValue[];
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEvD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,SAAI,GAAG,MAAM,CAGvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAE3E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG;IAAE,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE,CAsBrF"}
|
package/dist/json.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function formatJson(json, spaces = 2) {
|
|
2
|
+
const value = typeof json === 'string' ? JSON.parse(json) : json;
|
|
3
|
+
return JSON.stringify(value, null, spaces);
|
|
4
|
+
}
|
|
5
|
+
export function removeJsonBlockMarks(value) {
|
|
6
|
+
return value
|
|
7
|
+
.replace(/^\s*```(?:json)?\s*/i, '')
|
|
8
|
+
.replace(/\s*```\s*$/i, '');
|
|
9
|
+
}
|
|
10
|
+
export function parseJson(value) {
|
|
11
|
+
return JSON.parse(removeJsonBlockMarks(value));
|
|
12
|
+
}
|
|
13
|
+
export function ensureJsonItemList(value) {
|
|
14
|
+
const trimmed = removeJsonBlockMarks(value).trim();
|
|
15
|
+
if (!/^\{\s*"items"\s*:\s*\[/.test(trimmed)) {
|
|
16
|
+
throw new SyntaxError(`Expected JSON to start with an items array: ${trimmed.slice(0, 50)}`);
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
return assertItemList(JSON.parse(trimmed));
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// A model commonly truncates the final array item. Remove one suffix character
|
|
23
|
+
// at a time until the completed prefix becomes valid JSON.
|
|
24
|
+
}
|
|
25
|
+
for (let end = trimmed.length; end > 0; end -= 1) {
|
|
26
|
+
const prefix = trimmed.slice(0, end).replace(/[\s,]+$/, '');
|
|
27
|
+
try {
|
|
28
|
+
return assertItemList(JSON.parse(`${prefix}]}`));
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Continue until the last complete item boundary is found.
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
throw new SyntaxError('Unable to recover a complete item from the JSON value');
|
|
35
|
+
}
|
|
36
|
+
function assertItemList(value) {
|
|
37
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
38
|
+
throw new SyntaxError('Expected a JSON object');
|
|
39
|
+
}
|
|
40
|
+
const candidate = value;
|
|
41
|
+
if (!Array.isArray(candidate.items)) {
|
|
42
|
+
throw new SyntaxError('Expected an items array');
|
|
43
|
+
}
|
|
44
|
+
return candidate;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=json.js.map
|
package/dist/json.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,IAAwB,EAAE,MAAM,GAAG,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,KAAK;SACT,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS,CAAkC,KAAa;IACtE,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAM,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,+CAA+C,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,2DAA2D;IAC7D,CAAC;IAED,KAAK,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC3D,IAAI,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,uDAAuD,CAAC,CAAA;AAChF,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAA;IACjD,CAAC;IACD,MAAM,SAAS,GAAG,KAAmB,CAAA;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,SAAgD,CAAA;AACzD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type SupportedLanguage = 'en' | 'zh' | 'es' | 'fr' | 'de' | 'it' | 'ja' | 'ko' | 'ru' | 'ca';
|
|
2
|
+
export interface ScriptCharCounts {
|
|
3
|
+
cjk: number;
|
|
4
|
+
hangul: number;
|
|
5
|
+
hiraganaKatakana: number;
|
|
6
|
+
latin: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function countScriptChars(text: string): ScriptCharCounts;
|
|
9
|
+
export declare function getLanguageByUnicode(text: string): SupportedLanguage;
|
|
10
|
+
export declare function getLanguage(text: string): SupportedLanguage;
|
|
11
|
+
export declare function normalizeLangName(lang: string | null | undefined): string;
|
|
12
|
+
export declare function tokenPerCharRatio(content: string): number;
|
|
13
|
+
//# sourceMappingURL=language.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAwB/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAgBpE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAK3D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAezE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBzD"}
|
package/dist/language.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export function countScriptChars(text) {
|
|
2
|
+
const counts = { cjk: 0, hangul: 0, hiraganaKatakana: 0, latin: 0 };
|
|
3
|
+
for (const char of text) {
|
|
4
|
+
const codePoint = char.codePointAt(0) ?? 0;
|
|
5
|
+
if ((codePoint >= 0x4e00 && codePoint <= 0x9fff) ||
|
|
6
|
+
(codePoint >= 0x3400 && codePoint <= 0x4dbf)) {
|
|
7
|
+
counts.cjk += 1;
|
|
8
|
+
}
|
|
9
|
+
else if ((codePoint >= 0xac00 && codePoint <= 0xd7af) ||
|
|
10
|
+
(codePoint >= 0x1100 && codePoint <= 0x11ff)) {
|
|
11
|
+
counts.hangul += 1;
|
|
12
|
+
}
|
|
13
|
+
else if ((codePoint >= 0x3040 && codePoint <= 0x309f) ||
|
|
14
|
+
(codePoint >= 0x30a0 && codePoint <= 0x30ff)) {
|
|
15
|
+
counts.hiraganaKatakana += 1;
|
|
16
|
+
}
|
|
17
|
+
else if (/^\p{Letter}$/u.test(char) && codePoint < 0x0250) {
|
|
18
|
+
counts.latin += 1;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return counts;
|
|
22
|
+
}
|
|
23
|
+
export function getLanguageByUnicode(text) {
|
|
24
|
+
const counts = countScriptChars(text);
|
|
25
|
+
const total = counts.cjk + counts.hangul + counts.hiraganaKatakana + counts.latin;
|
|
26
|
+
if (total === 0) {
|
|
27
|
+
return 'en';
|
|
28
|
+
}
|
|
29
|
+
if (counts.hiraganaKatakana > 0 && (counts.hiraganaKatakana + counts.cjk) / total > 0.3) {
|
|
30
|
+
return 'ja';
|
|
31
|
+
}
|
|
32
|
+
if (counts.hangul / total > 0.3) {
|
|
33
|
+
return 'ko';
|
|
34
|
+
}
|
|
35
|
+
if (counts.cjk / total > 0.3) {
|
|
36
|
+
return 'zh';
|
|
37
|
+
}
|
|
38
|
+
return 'en';
|
|
39
|
+
}
|
|
40
|
+
export function getLanguage(text) {
|
|
41
|
+
if (!text.trim()) {
|
|
42
|
+
return 'en';
|
|
43
|
+
}
|
|
44
|
+
return getLanguageByUnicode(text);
|
|
45
|
+
}
|
|
46
|
+
export function normalizeLangName(lang) {
|
|
47
|
+
if (!lang) {
|
|
48
|
+
return lang ?? '';
|
|
49
|
+
}
|
|
50
|
+
const normalized = lang.toLowerCase();
|
|
51
|
+
if (['en', 'en-us', 'english'].includes(normalized))
|
|
52
|
+
return 'English';
|
|
53
|
+
if (['zh', 'zh-cn', 'cn', 'chinese'].includes(normalized))
|
|
54
|
+
return 'Chinese';
|
|
55
|
+
if (['es', 'es-es', 'spanish'].includes(normalized))
|
|
56
|
+
return 'Spanish';
|
|
57
|
+
if (['fr', 'fr-fr', 'french'].includes(normalized))
|
|
58
|
+
return 'French';
|
|
59
|
+
if (['de', 'de-de', 'german'].includes(normalized))
|
|
60
|
+
return 'German';
|
|
61
|
+
if (['it', 'it-it', 'italian'].includes(normalized))
|
|
62
|
+
return 'Italian';
|
|
63
|
+
if (['ja', 'ja-jp', 'japanese'].includes(normalized))
|
|
64
|
+
return 'Japanese';
|
|
65
|
+
if (['ko', 'ko-kr', 'korean'].includes(normalized))
|
|
66
|
+
return 'Korean';
|
|
67
|
+
return 'English';
|
|
68
|
+
}
|
|
69
|
+
export function tokenPerCharRatio(content) {
|
|
70
|
+
switch (normalizeLangName(getLanguage(content))) {
|
|
71
|
+
case 'English':
|
|
72
|
+
return 0.3;
|
|
73
|
+
case 'Chinese':
|
|
74
|
+
return 1.0;
|
|
75
|
+
case 'Spanish':
|
|
76
|
+
case 'French':
|
|
77
|
+
case 'Italian':
|
|
78
|
+
return 0.35;
|
|
79
|
+
case 'German':
|
|
80
|
+
return 0.4;
|
|
81
|
+
case 'Japanese':
|
|
82
|
+
return 1.2;
|
|
83
|
+
case 'Korean':
|
|
84
|
+
return 1.0;
|
|
85
|
+
default:
|
|
86
|
+
return 0.5;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface DotenvChainOptions {
|
|
2
|
+
includeSecretCompanion?: boolean;
|
|
3
|
+
explicitSecretFile?: string | null;
|
|
4
|
+
}
|
|
5
|
+
export interface LoadDotenvChainOptions extends DotenvChainOptions {
|
|
6
|
+
override?: boolean;
|
|
7
|
+
env?: NodeJS.ProcessEnv;
|
|
8
|
+
}
|
|
9
|
+
export declare function companionSecretEnvFile(envFile: string): string;
|
|
10
|
+
export declare function dotenvCandidateFiles(envFile: string, options?: DotenvChainOptions): string[];
|
|
11
|
+
export declare function mergedDotenvValues(envFile: string, options?: DotenvChainOptions): Record<string, string>;
|
|
12
|
+
export declare function loadDotenvChain(envFile: string, options?: LoadDotenvChainOptions): Record<string, string>;
|
|
13
|
+
//# sourceMappingURL=dotenv_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dotenv_utils.d.ts","sourceRoot":"","sources":["../../src/node/dotenv_utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CACxB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,EAAE,CAqBV;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { basename, dirname, join, resolve } from 'node:path';
|
|
3
|
+
export function companionSecretEnvFile(envFile) {
|
|
4
|
+
const path = resolve(envFile);
|
|
5
|
+
if (basename(path).endsWith('.secret')) {
|
|
6
|
+
return path;
|
|
7
|
+
}
|
|
8
|
+
return join(dirname(path), `${basename(path)}.secret`);
|
|
9
|
+
}
|
|
10
|
+
export function dotenvCandidateFiles(envFile, options = {}) {
|
|
11
|
+
const includeSecretCompanion = options.includeSecretCompanion ?? true;
|
|
12
|
+
const baseFile = resolve(envFile);
|
|
13
|
+
const candidates = [baseFile];
|
|
14
|
+
if (options.explicitSecretFile) {
|
|
15
|
+
const secretFile = resolve(options.explicitSecretFile);
|
|
16
|
+
if (secretFile !== baseFile) {
|
|
17
|
+
candidates.push(secretFile);
|
|
18
|
+
}
|
|
19
|
+
return candidates;
|
|
20
|
+
}
|
|
21
|
+
if (includeSecretCompanion) {
|
|
22
|
+
const secretFile = companionSecretEnvFile(baseFile);
|
|
23
|
+
if (secretFile !== baseFile) {
|
|
24
|
+
candidates.push(secretFile);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return candidates;
|
|
28
|
+
}
|
|
29
|
+
export function mergedDotenvValues(envFile, options = {}) {
|
|
30
|
+
const merged = {};
|
|
31
|
+
for (const candidate of dotenvCandidateFiles(envFile, options)) {
|
|
32
|
+
if (!existsSync(candidate)) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
Object.assign(merged, parseDotenv(readFileSync(candidate, 'utf-8')));
|
|
36
|
+
}
|
|
37
|
+
return merged;
|
|
38
|
+
}
|
|
39
|
+
export function loadDotenvChain(envFile, options = {}) {
|
|
40
|
+
const env = options.env ?? process.env;
|
|
41
|
+
const override = options.override ?? false;
|
|
42
|
+
const originalKeys = override ? new Set() : new Set(Object.keys(env));
|
|
43
|
+
const loaded = {};
|
|
44
|
+
for (const candidate of dotenvCandidateFiles(envFile, options)) {
|
|
45
|
+
if (!existsSync(candidate)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
for (const [key, value] of Object.entries(parseDotenv(readFileSync(candidate, 'utf-8')))) {
|
|
49
|
+
if (override || !originalKeys.has(key)) {
|
|
50
|
+
env[key] = value;
|
|
51
|
+
}
|
|
52
|
+
loaded[key] = value;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return loaded;
|
|
56
|
+
}
|
|
57
|
+
function parseDotenv(content) {
|
|
58
|
+
const values = {};
|
|
59
|
+
for (const rawLine of content.split(/\r?\n/)) {
|
|
60
|
+
const line = rawLine.trim();
|
|
61
|
+
if (!line || line.startsWith('#')) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const separator = line.indexOf('=');
|
|
65
|
+
if (separator <= 0) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const key = line.slice(0, separator).trim();
|
|
69
|
+
const rawValue = line.slice(separator + 1).trim();
|
|
70
|
+
values[key] = unquoteDotenvValue(rawValue);
|
|
71
|
+
}
|
|
72
|
+
return values;
|
|
73
|
+
}
|
|
74
|
+
function unquoteDotenvValue(value) {
|
|
75
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
76
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
77
|
+
return value.slice(1, -1);
|
|
78
|
+
}
|
|
79
|
+
const commentStart = value.indexOf(' #');
|
|
80
|
+
return commentStart >= 0 ? value.slice(0, commentStart).trimEnd() : value;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=dotenv_utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dotenv_utils.js","sourceRoot":"","sources":["../../src/node/dotenv_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface SearchUriParams {
|
|
2
|
+
provider: string;
|
|
3
|
+
q: string | null;
|
|
4
|
+
date_range: string | null;
|
|
5
|
+
max_results: string | null;
|
|
6
|
+
ts: string | null;
|
|
7
|
+
[key: string]: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface TimestampedFile {
|
|
10
|
+
filename: string;
|
|
11
|
+
timestamp: Date;
|
|
12
|
+
}
|
|
13
|
+
export declare function createSymlink(srcFilename: string, destFilename: string): void;
|
|
14
|
+
export declare function redactApiKey(apiKey: string | null | undefined): string;
|
|
15
|
+
export declare function isValidFilename(filename: string): boolean;
|
|
16
|
+
export declare function parseUriForSearchParams(uri: string): SearchUriParams;
|
|
17
|
+
export declare function fileHashAndSize(filePath: string): [string, number];
|
|
18
|
+
export declare function getAbsolutePath(path: string): string;
|
|
19
|
+
export declare function readableTimestamp(date?: Date): string;
|
|
20
|
+
export declare function filenameTimestamp(date?: Date): string;
|
|
21
|
+
export declare function filenameTimestampToDatetime(timestamp: string): Date;
|
|
22
|
+
export declare function getFilesWithTimestamp(directory: string, prefix: string, suffix: string): TimestampedFile[];
|
|
23
|
+
export declare function readTemplateFile(filePath: string): string;
|
|
24
|
+
export declare function uriToPath(uri: string): string;
|
|
25
|
+
export declare function extractFilenameFromUri(uri: string): string;
|
|
26
|
+
export declare function extractFileSuffixFromUrl(uri: string): string;
|
|
27
|
+
export declare function sanitizeFileName(fileName: string): string;
|
|
28
|
+
export declare function getBaseDomain(url: string): string;
|
|
29
|
+
export declare function isSubdomainOrSame(baseUrl: string, checkUrl: string): boolean;
|
|
30
|
+
//# sourceMappingURL=file_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file_utils.d.ts","sourceRoot":"","sources":["../../src/node/file_utils.ts"],"names":[],"mappings":"AAgDA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAkB7E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAYtE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAczD;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAiBpE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,OAAa,GAAG,MAAM,CAI3D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,OAAa,GAAG,MAAM,CAI3D;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAcnE;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,eAAe,EAAE,CAanB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS7C;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU1D;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5E"}
|