utilitas 1999.1.51 → 1999.1.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/utilitas.lite.mjs +1 -1
- package/dist/utilitas.lite.mjs.map +1 -1
- package/lib/alan.mjs +49 -59
- package/lib/image.mjs +15 -14
- package/lib/manifest.mjs +23 -23
- package/package.json +23 -23
package/lib/alan.mjs
CHANGED
|
@@ -56,36 +56,34 @@ const [
|
|
|
56
56
|
];
|
|
57
57
|
|
|
58
58
|
const [
|
|
59
|
-
OPENAI, GEMINI, OPENAI_TRAINING, OLLAMA, GPT_4O,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
GEMINI_25_PRO, SILICONFLOW, SF_DEEPSEEK_V3,
|
|
59
|
+
OPENAI, GEMINI, OPENAI_TRAINING, OLLAMA, GPT_4O, GPT_O3, GEMINI_25_FLASH,
|
|
60
|
+
NOVA, DEEPSEEK_R1, MD_CODE, TEXT_EMBEDDING_3_SMALL, TEXT_EMBEDDING_3_LARGE,
|
|
61
|
+
CLOUD_37_SONNET, AUDIO, WAV, ATTACHMENTS, CHAT, OPENAI_VOICE, MEDIUM, LOW,
|
|
62
|
+
HIGH, GPT_REASONING_EFFORT, THINK, THINK_STR, THINK_END, AZURE, TOOLS_STR,
|
|
63
|
+
TOOLS_END, TOOLS, TEXT, THINKING, OK, FUNC, GPT_41, REDACTED_THINKING,
|
|
64
|
+
GEMMA_3_27B, AZURE_OPENAI, ANTHROPIC, VERTEX_ANTHROPIC, v8k, ais,
|
|
65
|
+
MAX_TOOL_RECURSION, LOG, name, user, system, assistant, MODEL, JSON_OBJECT,
|
|
66
|
+
TOOL, silent, GEMINI_EMBEDDING_M, INVALID_FILE, tokenSafeRatio,
|
|
67
|
+
GPT_QUERY_LIMIT, CONTENT_IS_REQUIRED, OPENAI_HI_RES_SIZE, k, kT, m, minute,
|
|
68
|
+
hour, gb, trimTailing, EBD, GEMINI_20_FLASH, IMAGE, JINA, JINA_DEEPSEARCH,
|
|
69
|
+
JINA_CLIP, VERTEX, GEMINI_25_PRO, SILICONFLOW, SF_DEEPSEEK_V3,
|
|
71
70
|
] = [
|
|
72
|
-
'OpenAI', 'Gemini', 'OPENAI_TRAINING', 'Ollama', 'gpt-4o', '
|
|
73
|
-
'
|
|
74
|
-
'text-embedding-3-small', 'text-embedding-3-large',
|
|
71
|
+
'OpenAI', 'Gemini', 'OPENAI_TRAINING', 'Ollama', 'gpt-4o', 'o3',
|
|
72
|
+
'gemini-2.5-flash-preview-04-17', 'nova', 'deepseek-r1',
|
|
73
|
+
'```', 'text-embedding-3-small', 'text-embedding-3-large',
|
|
75
74
|
'claude-3-7-sonnet@20250219', 'audio', 'wav', '[ATTACHMENTS]', 'CHAT',
|
|
76
75
|
'OPENAI_VOICE', 'medium', 'low', 'high', 'medium', 'think', '<think>',
|
|
77
76
|
'</think>', 'AZURE', '<tools>', '</tools>', 'tools', 'text', 'thinking',
|
|
78
|
-
'OK', 'function', 'gpt-4.
|
|
79
|
-
'
|
|
80
|
-
|
|
81
|
-
'
|
|
82
|
-
'
|
|
83
|
-
|
|
84
|
-
x =>
|
|
85
|
-
x =>
|
|
86
|
-
|
|
87
|
-
'jina-
|
|
88
|
-
'gemini-2.5-pro-exp-03-25', 'SiliconFlow',
|
|
77
|
+
'OK', 'function', 'gpt-4.1', 'redacted_thinking', 'gemma3:27b',
|
|
78
|
+
'Azure Openai', 'Anthropic', 'Vertex Anthropic', 7680 * 4320, [], 10,
|
|
79
|
+
{ log: true }, 'Alan', 'user', 'system', 'assistant', 'model',
|
|
80
|
+
'json_object', 'tool', true, 'gemini-embedding-exp-03-07',
|
|
81
|
+
'Invalid file data.', 1.1, 100, 'Content is required.', 2048 * 2048,
|
|
82
|
+
x => 1024 * x, x => 1000 * x, x => 1024 * 1024 * x, x => 60 * x,
|
|
83
|
+
x => 60 * 60 * x, x => 1024 * 1024 * 1024 * x,
|
|
84
|
+
x => x.replace(/[\.\s]*$/, ''), { embedding: true },
|
|
85
|
+
'gemini-2.0-flash-exp', 'image', 'Jina', 'jina-deepsearch-v1',
|
|
86
|
+
'jina-clip-v2', 'Vertex', 'gemini-2.5-pro-exp-03-25', 'SiliconFlow',
|
|
89
87
|
'Pro/deepseek-ai/DeepSeek-V3',
|
|
90
88
|
];
|
|
91
89
|
|
|
@@ -120,6 +118,7 @@ const OPENAI_RULES = {
|
|
|
120
118
|
};
|
|
121
119
|
|
|
122
120
|
const GEMINI_RULES = {
|
|
121
|
+
contextWindow: m(1), json: true,
|
|
123
122
|
audioCostTokens: 1000 * 1000 * 1, // 8.4 hours => 1 million tokens
|
|
124
123
|
imageCostTokens: ~~(v8k / (768 * 768) * 258), maxAudioLength: hour(8.4),
|
|
125
124
|
maxAudioPerPrompt: 1, maxFileSize: m(20), maxImagePerPrompt: 3000,
|
|
@@ -133,26 +132,27 @@ const GEMINI_RULES = {
|
|
|
133
132
|
// https://platform.openai.com/docs/models
|
|
134
133
|
// https://cloud.google.com/vertex-ai/docs/generative-ai/learn/models
|
|
135
134
|
const MODELS = {
|
|
136
|
-
[GPT_4O]: { ...OPENAI_RULES, ...OPENAI_S1 },
|
|
137
|
-
[
|
|
138
|
-
[
|
|
139
|
-
[GPT_O3_MINI]: {
|
|
140
|
-
...OPENAI_RULES, ...OPENAI_S2,
|
|
141
|
-
fast: true, reasoning: true, vision: GPT_O1,
|
|
142
|
-
},
|
|
135
|
+
[GPT_4O]: { ...OPENAI_RULES, ...OPENAI_S1, defaultProvider: null },
|
|
136
|
+
[GPT_41]: { ...OPENAI_RULES, ...OPENAI_S1, fast: true, finetune: true },
|
|
137
|
+
[GPT_O3]: { ...OPENAI_RULES, ...OPENAI_S2, reasoning: true },
|
|
143
138
|
[GEMINI_20_FLASH]: {
|
|
144
|
-
...GEMINI_RULES,
|
|
145
|
-
fast: true,
|
|
139
|
+
...GEMINI_RULES, maxOutputTokens: k(8),
|
|
140
|
+
fast: true, image: true, tools: false,
|
|
141
|
+
},
|
|
142
|
+
[GEMINI_25_FLASH]: {
|
|
143
|
+
...GEMINI_RULES, maxOutputTokens: k(64),
|
|
144
|
+
fast: true, reasoning: true, tools: true,
|
|
146
145
|
},
|
|
147
146
|
[GEMINI_25_PRO]: {
|
|
148
|
-
...GEMINI_RULES,
|
|
149
|
-
|
|
147
|
+
...GEMINI_RULES, maxOutputTokens: k(64),
|
|
148
|
+
reasoning: true, tools: true,
|
|
150
149
|
},
|
|
151
150
|
[GEMMA_3_27B]: {
|
|
152
151
|
contextWindow: kT(128), maxOutputTokens: k(8),
|
|
153
152
|
imageCostTokens: 256, maxImageSize: 896 * 896,
|
|
154
153
|
supportedMimeTypes: [png, jpeg, gif],
|
|
155
|
-
fast: true, json: true, vision: true,
|
|
154
|
+
fast: true, json: true, vision: true,
|
|
155
|
+
defaultProvider: OLLAMA,
|
|
156
156
|
},
|
|
157
157
|
[JINA_DEEPSEARCH]: {
|
|
158
158
|
contextWindow: Infinity, maxInputTokens: Infinity,
|
|
@@ -202,27 +202,18 @@ for (const n in MODELS) {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
MODELS[GEMINI_20_FLASH].image = GEMINI_20_FLASH_EXP;
|
|
206
|
-
MODELS[GEMINI_20_FLASH_EXP] = {
|
|
207
|
-
...MODELS[GEMINI_20_FLASH],
|
|
208
|
-
name: GEMINI_20_FLASH_EXP, image: true, tools: false,
|
|
209
|
-
};
|
|
210
|
-
MODELS[GEMMA327B] = { // Ollama Alias
|
|
211
|
-
...MODELS[GEMMA_3_27B], name: GEMMA327B, defaultProvider: OLLAMA
|
|
212
|
-
};
|
|
213
|
-
|
|
214
205
|
// Default models for each provider
|
|
215
206
|
const DEFAULT_MODELS = {
|
|
216
|
-
[OPENAI]:
|
|
207
|
+
[OPENAI]: GPT_41,
|
|
217
208
|
[AZURE_OPENAI]: GPT_4O,
|
|
218
209
|
[SILICONFLOW]: SF_DEEPSEEK_V3,
|
|
219
|
-
[GEMINI]:
|
|
210
|
+
[GEMINI]: GEMINI_25_FLASH,
|
|
220
211
|
[ANTHROPIC]: CLOUD_37_SONNET,
|
|
221
212
|
[VERTEX_ANTHROPIC]: CLOUD_37_SONNET,
|
|
222
213
|
[JINA]: JINA_DEEPSEARCH,
|
|
223
|
-
[OLLAMA]:
|
|
214
|
+
[OLLAMA]: GEMMA_3_27B,
|
|
224
215
|
[OPENAI_VOICE]: NOVA,
|
|
225
|
-
[OPENAI_TRAINING]:
|
|
216
|
+
[OPENAI_TRAINING]: GPT_41, // https://platform.openai.com/docs/guides/fine-tuning
|
|
226
217
|
};
|
|
227
218
|
|
|
228
219
|
const DEFAULT_EMBEDDING = {
|
|
@@ -238,7 +229,7 @@ const PROVIDER_ICONS = {
|
|
|
238
229
|
};
|
|
239
230
|
|
|
240
231
|
const FEATURE_ICONS = {
|
|
241
|
-
audio: '📣', deepsearch: '🔍', fast: '⚡️', image: '🎨',
|
|
232
|
+
audio: '📣', deepsearch: '🔍', fast: '⚡️', finetune: '🔧', image: '🎨',
|
|
242
233
|
json: '📊', reasoning: '🧠', tools: '🧰', vision: '👁️',
|
|
243
234
|
};
|
|
244
235
|
|
|
@@ -815,7 +806,7 @@ const buildPrompts = async (model, input, options = {}) => {
|
|
|
815
806
|
break;
|
|
816
807
|
case GEMINI:
|
|
817
808
|
const _role = {
|
|
818
|
-
role: [
|
|
809
|
+
role: [GEMINI_20_FLASH].includes(options.model)
|
|
819
810
|
? user : system
|
|
820
811
|
};
|
|
821
812
|
systemPrompt = buildGeminiHistory(options.systemPrompt, _role);
|
|
@@ -859,7 +850,6 @@ const buildPrompts = async (model, input, options = {}) => {
|
|
|
859
850
|
break;
|
|
860
851
|
case GEMINI:
|
|
861
852
|
history.push(
|
|
862
|
-
...options.model === GEMMA_3_27B ? [systemPrompt] : [],
|
|
863
853
|
...options.toolsResult?.length ? [
|
|
864
854
|
buildGeminiHistory(content, { ...options, role: user }),
|
|
865
855
|
...options.toolsResult.slice(0, options.toolsResult.length - 1)
|
|
@@ -878,7 +868,7 @@ const buildPrompts = async (model, input, options = {}) => {
|
|
|
878
868
|
} // @todo: audioCostTokens (needs to calculate the audio length):
|
|
879
869
|
}, model.maxInputTokens - options.attachments?.length * model.imageCostTokens);
|
|
880
870
|
if ([OPENAI].includes(options.flavor)
|
|
881
|
-
|| [
|
|
871
|
+
|| [GEMINI_20_FLASH].includes(options.model)) {
|
|
882
872
|
systemPrompt = null;
|
|
883
873
|
}
|
|
884
874
|
return { systemPrompt, history, prompt };
|
|
@@ -1186,7 +1176,7 @@ const promptGemini = async (aiId, content, options = {}) => {
|
|
|
1186
1176
|
systemInstruction, responseModalities: options.modalities || (
|
|
1187
1177
|
options.imageMode ? [TEXT, IMAGE] : undefined
|
|
1188
1178
|
), ...options?.config || {}, ...model?.tools && !options.jsonMode
|
|
1189
|
-
&& options.model !==
|
|
1179
|
+
&& options.model !== GEMINI_20_FLASH ? (options.tools ?? {
|
|
1190
1180
|
tools: [
|
|
1191
1181
|
// @todo: Gemini will failed when using these tools together.
|
|
1192
1182
|
// https://ai.google.dev/gemini-api/docs/function-calling
|
|
@@ -1538,10 +1528,10 @@ export {
|
|
|
1538
1528
|
FEATURE_ICONS,
|
|
1539
1529
|
FUNCTION,
|
|
1540
1530
|
GEMINI_20_FLASH,
|
|
1541
|
-
|
|
1531
|
+
GEMINI_25_FLASH,
|
|
1532
|
+
GPT_41,
|
|
1542
1533
|
GPT_4O,
|
|
1543
|
-
|
|
1544
|
-
GPT_O3_MINI,
|
|
1534
|
+
GPT_O3,
|
|
1545
1535
|
INSTRUCTIONS,
|
|
1546
1536
|
MODELS,
|
|
1547
1537
|
OPENAI_VOICE,
|
package/lib/image.mjs
CHANGED
|
@@ -3,10 +3,12 @@ import { MIME_PNG, convert } from './storage.mjs';
|
|
|
3
3
|
|
|
4
4
|
const _NEED = ['OpenAI'];
|
|
5
5
|
|
|
6
|
-
const [
|
|
7
|
-
|
|
6
|
+
const [
|
|
7
|
+
clients, OPENAI, GEMINI, BASE64, BUFFER, ERROR_GENERATING, IMAGEN_MODEL,
|
|
8
|
+
OPENAI_MODEL,
|
|
9
|
+
] = [
|
|
8
10
|
{}, 'OPENAI', 'GEMINI', 'BASE64', 'BUFFER', 'Error generating image.',
|
|
9
|
-
'imagen-3.0-generate-002',
|
|
11
|
+
'imagen-3.0-generate-002', 'gpt-image-1',
|
|
10
12
|
];
|
|
11
13
|
|
|
12
14
|
const init = async (options) => {
|
|
@@ -36,6 +38,7 @@ const generate = async (prompt, options) => {
|
|
|
36
38
|
if (!provider && clients?.[GEMINI]) { provider = GEMINI; }
|
|
37
39
|
if (!provider && clients?.[OPENAI]) { provider = OPENAI; }
|
|
38
40
|
const client = clients?.[provider];
|
|
41
|
+
const n = options?.n || 4;
|
|
39
42
|
assert(client, 'No available image generation provider.');
|
|
40
43
|
prompt = ensureString(prompt);
|
|
41
44
|
assert(prompt.length <= 4000,
|
|
@@ -46,20 +49,18 @@ const generate = async (prompt, options) => {
|
|
|
46
49
|
...options || {},
|
|
47
50
|
expected: ensureString(options?.expected || BUFFER, { case: 'LOW' }),
|
|
48
51
|
};
|
|
49
|
-
|
|
50
|
-
try {
|
|
52
|
+
try { // https://platform.openai.com/docs/guides/image-generation?image-generation-model=gpt-image-1
|
|
51
53
|
var resp = await client.generate({
|
|
52
|
-
prompt, model:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
//
|
|
56
|
-
// user: '',
|
|
54
|
+
prompt, model: OPENAI_MODEL, n, quality: 'high',
|
|
55
|
+
size: '1536x1024', moderation: 'low',
|
|
56
|
+
// 1024x1024 (square), 1536x1024 (landscape), 1024x1536 (portrait), auto (default)
|
|
57
|
+
// background: 'transparent',
|
|
57
58
|
...options?.params || {},
|
|
58
59
|
});
|
|
59
60
|
} catch (err) { throwError(err?.message || ERROR_GENERATING); }
|
|
60
|
-
if (!options?.raw
|
|
61
|
+
if (!options?.raw) {
|
|
61
62
|
resp.data = await Promise.all(resp.data.map(async x => ({
|
|
62
|
-
caption:
|
|
63
|
+
caption: `🎨 by ${OPENAI_MODEL}`,
|
|
63
64
|
data: await extractImage(x.b64_json, options),
|
|
64
65
|
mimeType: MIME_PNG,
|
|
65
66
|
})));
|
|
@@ -73,7 +74,7 @@ const generate = async (prompt, options) => {
|
|
|
73
74
|
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
|
74
75
|
body: JSON.stringify({
|
|
75
76
|
instances: [{ prompt }], parameters: {
|
|
76
|
-
sampleCount:
|
|
77
|
+
sampleCount: n, aspectRatio: '16:9',
|
|
77
78
|
...options?.params || {},
|
|
78
79
|
}, // "1:1" (default), "3:4", "4:3", "9:16", and "16:9"
|
|
79
80
|
})
|
|
@@ -82,7 +83,7 @@ const generate = async (prompt, options) => {
|
|
|
82
83
|
if (!options?.raw) {
|
|
83
84
|
resp = await Promise.all((resp?.predictions || []).map(
|
|
84
85
|
async x => ({
|
|
85
|
-
caption: `🎨 by ${IMAGEN_MODEL}`,
|
|
86
|
+
caption: `🎨 by ${IMAGEN_MODEL}`,
|
|
86
87
|
data: await extractImage(x.bytesBase64Encoded, options),
|
|
87
88
|
mimeType: x.mimeType,
|
|
88
89
|
})
|
package/lib/manifest.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const manifest = {
|
|
2
2
|
"name": "utilitas",
|
|
3
3
|
"description": "Just another common utility for JavaScript.",
|
|
4
|
-
"version": "1999.1.
|
|
4
|
+
"version": "1999.1.53",
|
|
5
5
|
"private": false,
|
|
6
6
|
"homepage": "https://github.com/Leask/utilitas",
|
|
7
7
|
"main": "index.mjs",
|
|
@@ -19,56 +19,56 @@ const manifest = {
|
|
|
19
19
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"file-type": "^20.
|
|
23
|
-
"mathjs": "^14.
|
|
22
|
+
"file-type": "^20.5.0",
|
|
23
|
+
"mathjs": "^14.4.0",
|
|
24
24
|
"uuid": "^11.1.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@anthropic-ai/sdk": "^0.
|
|
27
|
+
"@anthropic-ai/sdk": "^0.40.1",
|
|
28
28
|
"@anthropic-ai/vertex-sdk": "^0.7.0",
|
|
29
29
|
"@ffmpeg-installer/ffmpeg": "^1.1.0",
|
|
30
30
|
"@ffprobe-installer/ffprobe": "^2.1.2",
|
|
31
|
-
"@google-cloud/speech": "^7.0.
|
|
32
|
-
"@google-cloud/storage": "^7.
|
|
33
|
-
"@google-cloud/text-to-speech": "^6.0.
|
|
34
|
-
"@google-cloud/vision": "^5.
|
|
35
|
-
"@google/genai": "^0.
|
|
31
|
+
"@google-cloud/speech": "^7.0.1",
|
|
32
|
+
"@google-cloud/storage": "^7.16.0",
|
|
33
|
+
"@google-cloud/text-to-speech": "^6.0.1",
|
|
34
|
+
"@google-cloud/vision": "^5.1.0",
|
|
35
|
+
"@google/genai": "^0.10.0",
|
|
36
36
|
"@mozilla/readability": "github:mozilla/readability",
|
|
37
|
-
"@sentry/node": "^9.
|
|
38
|
-
"@sentry/profiling-node": "^9.
|
|
37
|
+
"@sentry/node": "^9.15.0",
|
|
38
|
+
"@sentry/profiling-node": "^9.15.0",
|
|
39
39
|
"acme-client": "^5.4.0",
|
|
40
40
|
"browserify-fs": "^1.0.0",
|
|
41
41
|
"buffer": "^6.0.3",
|
|
42
42
|
"fast-geoip": "^1.1.88",
|
|
43
43
|
"fluent-ffmpeg": "^2.1.3",
|
|
44
44
|
"form-data": "^4.0.2",
|
|
45
|
-
"ioredis": "^5.6.
|
|
46
|
-
"js-tiktoken": "^1.0.
|
|
47
|
-
"jsdom": "^26.
|
|
45
|
+
"ioredis": "^5.6.1",
|
|
46
|
+
"js-tiktoken": "^1.0.20",
|
|
47
|
+
"jsdom": "^26.1.0",
|
|
48
48
|
"lorem-ipsum": "^2.0.8",
|
|
49
49
|
"mailgun.js": "^12.0.1",
|
|
50
50
|
"mailparser": "^3.7.2",
|
|
51
|
-
"mime": "^4.0.
|
|
52
|
-
"mysql2": "^3.
|
|
51
|
+
"mime": "^4.0.7",
|
|
52
|
+
"mysql2": "^3.14.1",
|
|
53
53
|
"node-mailjet": "^6.0.8",
|
|
54
54
|
"node-polyfill-webpack-plugin": "^4.1.0",
|
|
55
55
|
"office-text-extractor": "^3.0.3",
|
|
56
|
-
"openai": "^4.
|
|
57
|
-
"pdfjs-dist": "^5.
|
|
58
|
-
"pg": "^8.
|
|
56
|
+
"openai": "^4.96.2",
|
|
57
|
+
"pdfjs-dist": "^5.2.133",
|
|
58
|
+
"pg": "^8.15.6",
|
|
59
59
|
"pgvector": "^0.2.0",
|
|
60
60
|
"ping": "^0.4.4",
|
|
61
61
|
"process": "^0.11.10",
|
|
62
|
-
"puppeteer": "^24.
|
|
62
|
+
"puppeteer": "^24.7.2",
|
|
63
63
|
"say": "^0.16.0",
|
|
64
64
|
"telegraf": "^4.16.3",
|
|
65
65
|
"telesignsdk": "^3.0.2",
|
|
66
|
-
"tesseract.js": "^6.0.
|
|
67
|
-
"twilio": "^5.5.
|
|
66
|
+
"tesseract.js": "^6.0.1",
|
|
67
|
+
"twilio": "^5.5.2",
|
|
68
68
|
"url": "github:Leask/node-url",
|
|
69
69
|
"webpack-cli": "^6.0.1",
|
|
70
70
|
"whisper-node": "^1.1.1",
|
|
71
|
-
"wrangler": "^4.
|
|
71
|
+
"wrangler": "^4.14.0",
|
|
72
72
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz",
|
|
73
73
|
"youtube-transcript": "^1.2.1"
|
|
74
74
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "utilitas",
|
|
3
3
|
"description": "Just another common utility for JavaScript.",
|
|
4
|
-
"version": "1999.1.
|
|
4
|
+
"version": "1999.1.53",
|
|
5
5
|
"private": false,
|
|
6
6
|
"homepage": "https://github.com/Leask/utilitas",
|
|
7
7
|
"main": "index.mjs",
|
|
@@ -30,56 +30,56 @@
|
|
|
30
30
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"file-type": "^20.
|
|
34
|
-
"mathjs": "^14.
|
|
33
|
+
"file-type": "^20.5.0",
|
|
34
|
+
"mathjs": "^14.4.0",
|
|
35
35
|
"uuid": "^11.1.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@anthropic-ai/sdk": "^0.
|
|
38
|
+
"@anthropic-ai/sdk": "^0.40.1",
|
|
39
39
|
"@anthropic-ai/vertex-sdk": "^0.7.0",
|
|
40
40
|
"@ffmpeg-installer/ffmpeg": "^1.1.0",
|
|
41
41
|
"@ffprobe-installer/ffprobe": "^2.1.2",
|
|
42
|
-
"@google-cloud/speech": "^7.0.
|
|
43
|
-
"@google-cloud/storage": "^7.
|
|
44
|
-
"@google-cloud/text-to-speech": "^6.0.
|
|
45
|
-
"@google-cloud/vision": "^5.
|
|
46
|
-
"@google/genai": "^0.
|
|
42
|
+
"@google-cloud/speech": "^7.0.1",
|
|
43
|
+
"@google-cloud/storage": "^7.16.0",
|
|
44
|
+
"@google-cloud/text-to-speech": "^6.0.1",
|
|
45
|
+
"@google-cloud/vision": "^5.1.0",
|
|
46
|
+
"@google/genai": "^0.10.0",
|
|
47
47
|
"@mozilla/readability": "github:mozilla/readability",
|
|
48
|
-
"@sentry/node": "^9.
|
|
49
|
-
"@sentry/profiling-node": "^9.
|
|
48
|
+
"@sentry/node": "^9.15.0",
|
|
49
|
+
"@sentry/profiling-node": "^9.15.0",
|
|
50
50
|
"acme-client": "^5.4.0",
|
|
51
51
|
"browserify-fs": "^1.0.0",
|
|
52
52
|
"buffer": "^6.0.3",
|
|
53
53
|
"fast-geoip": "^1.1.88",
|
|
54
54
|
"fluent-ffmpeg": "^2.1.3",
|
|
55
55
|
"form-data": "^4.0.2",
|
|
56
|
-
"ioredis": "^5.6.
|
|
57
|
-
"js-tiktoken": "^1.0.
|
|
58
|
-
"jsdom": "^26.
|
|
56
|
+
"ioredis": "^5.6.1",
|
|
57
|
+
"js-tiktoken": "^1.0.20",
|
|
58
|
+
"jsdom": "^26.1.0",
|
|
59
59
|
"lorem-ipsum": "^2.0.8",
|
|
60
60
|
"mailgun.js": "^12.0.1",
|
|
61
61
|
"mailparser": "^3.7.2",
|
|
62
|
-
"mime": "^4.0.
|
|
63
|
-
"mysql2": "^3.
|
|
62
|
+
"mime": "^4.0.7",
|
|
63
|
+
"mysql2": "^3.14.1",
|
|
64
64
|
"node-mailjet": "^6.0.8",
|
|
65
65
|
"node-polyfill-webpack-plugin": "^4.1.0",
|
|
66
66
|
"office-text-extractor": "^3.0.3",
|
|
67
|
-
"openai": "^4.
|
|
68
|
-
"pdfjs-dist": "^5.
|
|
69
|
-
"pg": "^8.
|
|
67
|
+
"openai": "^4.96.2",
|
|
68
|
+
"pdfjs-dist": "^5.2.133",
|
|
69
|
+
"pg": "^8.15.6",
|
|
70
70
|
"pgvector": "^0.2.0",
|
|
71
71
|
"ping": "^0.4.4",
|
|
72
72
|
"process": "^0.11.10",
|
|
73
|
-
"puppeteer": "^24.
|
|
73
|
+
"puppeteer": "^24.7.2",
|
|
74
74
|
"say": "^0.16.0",
|
|
75
75
|
"telegraf": "^4.16.3",
|
|
76
76
|
"telesignsdk": "^3.0.2",
|
|
77
|
-
"tesseract.js": "^6.0.
|
|
78
|
-
"twilio": "^5.5.
|
|
77
|
+
"tesseract.js": "^6.0.1",
|
|
78
|
+
"twilio": "^5.5.2",
|
|
79
79
|
"url": "github:Leask/node-url",
|
|
80
80
|
"webpack-cli": "^6.0.1",
|
|
81
81
|
"whisper-node": "^1.1.1",
|
|
82
|
-
"wrangler": "^4.
|
|
82
|
+
"wrangler": "^4.14.0",
|
|
83
83
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz",
|
|
84
84
|
"youtube-transcript": "^1.2.1"
|
|
85
85
|
}
|