@adriangalilea/utils 9.13.0 → 10.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/package.json CHANGED
@@ -1,367 +1,362 @@
1
1
  {
2
- "name": "@adriangalilea/utils",
3
- "version": "9.13.0",
4
- "description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
5
- "main": "./dist/index.js",
6
- "types": "./dist/index.d.ts",
7
- "type": "module",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "browser": "./dist/browser.js",
12
- "node": "./dist/index.js",
13
- "default": "./dist/index.js"
14
- },
15
- "./browser": {
16
- "types": "./dist/browser.d.ts",
17
- "default": "./dist/browser.js"
18
- },
19
- "./runtime": {
20
- "types": "./dist/runtime.d.ts",
21
- "default": "./dist/runtime.js"
22
- },
23
- "./ansi": {
24
- "types": "./dist/universal/ansi.d.ts",
25
- "default": "./dist/universal/ansi.js"
26
- },
27
- "./format": {
28
- "types": "./dist/universal/format.d.ts",
29
- "default": "./dist/universal/format.js"
30
- },
31
- "./time": {
32
- "types": "./dist/universal/time.d.ts",
33
- "default": "./dist/universal/time.js"
34
- },
35
- "./url": {
36
- "types": "./dist/universal/url/index.d.ts",
37
- "default": "./dist/universal/url/index.js"
38
- },
39
- "./url/sites": {
40
- "types": "./dist/universal/url/sites.d.ts",
41
- "default": "./dist/universal/url/sites.js"
42
- },
43
- "./log": {
44
- "types": "./dist/universal/log.d.ts",
45
- "default": "./dist/universal/log.js"
46
- },
47
- "./visits": {
48
- "types": "./dist/visits/index.d.ts",
49
- "default": "./dist/visits/index.js"
50
- },
51
- "./log/next": {
52
- "types": "./dist/next/log.d.ts",
53
- "default": "./dist/next/log.js"
54
- },
55
- "./cli": {
56
- "types": "./dist/cli/index.d.ts",
57
- "default": "./dist/cli/index.js"
58
- },
59
- "./currency": {
60
- "types": "./dist/universal/currency/index.d.ts",
61
- "default": "./dist/universal/currency/index.js"
62
- },
63
- "./say": {
64
- "types": "./dist/say/index.d.ts",
65
- "default": "./dist/say/index.js"
66
- },
67
- "./tg-html": {
68
- "types": "./dist/tg-html/index.d.ts",
69
- "default": "./dist/tg-html/index.js"
70
- },
71
- "./tg-md": {
72
- "types": "./dist/tg-md/index.d.ts",
73
- "default": "./dist/tg-md/index.js"
74
- },
75
- "./bot/access-control": {
76
- "types": "./dist/bot/access-control.d.ts",
77
- "default": "./dist/bot/access-control.js"
78
- },
79
- "./bot/admin": {
80
- "types": "./dist/bot/admin.d.ts",
81
- "default": "./dist/bot/admin.js"
82
- },
83
- "./bot/allow-list": {
84
- "types": "./dist/bot/allow-list.d.ts",
85
- "default": "./dist/bot/allow-list.js"
86
- },
87
- "./bot/coalesce": {
88
- "types": "./dist/bot/coalesce.d.ts",
89
- "default": "./dist/bot/coalesce.js"
90
- },
91
- "./bot/draft": {
92
- "types": "./dist/bot/draft.d.ts",
93
- "default": "./dist/bot/draft.js"
94
- },
95
- "./bot/language": {
96
- "types": "./dist/bot/language.d.ts",
97
- "default": "./dist/bot/language.js"
98
- },
99
- "./bot/menu": {
100
- "types": "./dist/bot/menu.d.ts",
101
- "default": "./dist/bot/menu.js"
102
- },
103
- "./bot/kit": {
104
- "types": "./dist/bot/kit.d.ts",
105
- "default": "./dist/bot/kit.js"
106
- },
107
- "./bot/llm": {
108
- "types": "./dist/bot/llm.d.ts",
109
- "default": "./dist/bot/llm.js"
110
- },
111
- "./bot/reactions": {
112
- "types": "./dist/bot/reactions.d.ts",
113
- "default": "./dist/bot/reactions.js"
114
- },
115
- "./bot/payments": {
116
- "types": "./dist/bot/payments/index.d.ts",
117
- "default": "./dist/bot/payments/index.js"
118
- },
119
- "./bot/storage": {
120
- "types": "./dist/bot/storage.d.ts",
121
- "default": "./dist/bot/storage.js"
122
- },
123
- "./bot/storage-d1": {
124
- "types": "./dist/bot/storage-d1.d.ts",
125
- "default": "./dist/bot/storage-d1.js"
126
- },
127
- "./bot/ctx": {
128
- "types": "./dist/bot/ctx.d.ts",
129
- "default": "./dist/bot/ctx.js"
130
- },
131
- "./bot/keys": {
132
- "types": "./dist/bot/keys.d.ts",
133
- "default": "./dist/bot/keys.js"
134
- },
135
- "./bot/callbacks": {
136
- "types": "./dist/bot/callbacks.d.ts",
137
- "default": "./dist/bot/callbacks.js"
138
- },
139
- "./bot/session": {
140
- "types": "./dist/bot/session.d.ts",
141
- "default": "./dist/bot/session.js"
142
- },
143
- "./bot/notify": {
144
- "types": "./dist/bot/notify.d.ts",
145
- "default": "./dist/bot/notify.js"
146
- },
147
- "./bot/worker": {
148
- "types": "./dist/bot/worker.d.ts",
149
- "default": "./dist/bot/worker.js"
150
- },
151
- "./bot/create": {
152
- "types": "./dist/bot/create.d.ts",
153
- "default": "./dist/bot/create.js"
154
- },
155
- "./bot/profile": {
156
- "types": "./dist/bot/profile.d.ts",
157
- "default": "./dist/bot/profile.js"
158
- },
159
- "./bot/flags": {
160
- "types": "./dist/bot/flags.d.ts",
161
- "default": "./dist/bot/flags.js"
162
- },
163
- "./bot/groups": {
164
- "types": "./dist/bot/groups.d.ts",
165
- "default": "./dist/bot/groups.js"
166
- },
167
- "./bot/user": {
168
- "types": "./dist/bot/user.d.ts",
169
- "default": "./dist/bot/user.js"
170
- },
171
- "./bot/urls": {
172
- "types": "./dist/bot/urls.d.ts",
173
- "default": "./dist/bot/urls.js"
174
- },
175
- "./bot/announce": {
176
- "types": "./dist/bot/announce.d.ts",
177
- "default": "./dist/bot/announce.js"
178
- },
179
- "./bot/updates": {
180
- "types": "./dist/bot/updates.d.ts",
181
- "default": "./dist/bot/updates.js"
182
- },
183
- "./llm": {
184
- "types": "./dist/llm/index.d.ts",
185
- "default": "./dist/llm/index.js"
186
- },
187
- "./bot/inline-feedback": {
188
- "types": "./dist/bot/inline-feedback.d.ts",
189
- "default": "./dist/bot/inline-feedback.js"
190
- },
191
- "./metrics": {
192
- "types": "./dist/metrics/index.d.ts",
193
- "default": "./dist/metrics/index.js"
194
- },
195
- "./metrics/sqlite": {
196
- "types": "./dist/metrics/sqlite.d.ts",
197
- "default": "./dist/metrics/sqlite.js"
198
- },
199
- "./metrics/libsql": {
200
- "types": "./dist/metrics/libsql.d.ts",
201
- "default": "./dist/metrics/libsql.js"
202
- },
203
- "./metrics/d1": {
204
- "types": "./dist/metrics/d1.d.ts",
205
- "default": "./dist/metrics/d1.js"
206
- },
207
- "./metrics/d1-rest": {
208
- "types": "./dist/metrics/d1-rest.d.ts",
209
- "default": "./dist/metrics/d1-rest.js"
210
- },
211
- "./metrics/report": {
212
- "types": "./dist/metrics/report.d.ts",
213
- "default": "./dist/metrics/report.js"
214
- },
215
- "./metrics/cli": {
216
- "types": "./dist/metrics/cli.d.ts",
217
- "default": "./dist/metrics/cli.js"
218
- },
219
- "./bot/text": {
220
- "types": "./dist/bot/text.d.ts",
221
- "default": "./dist/bot/text.js"
222
- },
223
- "./bot/update-identity": {
224
- "types": "./dist/bot/update-identity.d.ts",
225
- "default": "./dist/bot/update-identity.js"
226
- }
227
- },
228
- "files": [
229
- "dist"
230
- ],
231
- "scripts": {
232
- "build": "rm -rf dist && tsc",
233
- "test": "tsx tests/metrics-test.ts",
234
- "test:all": "pnpm run test && pnpm run test:log && pnpm run test:log-ship && pnpm run test:visits &&pnpm run test:runtime && pnpm run test:text && pnpm run test:tg-html && pnpm run test:tg-md && pnpm run test:flags && pnpm run test:groups && pnpm run test:user && pnpm run test:language-picker && pnpm run test:self-echo && pnpm run test:update-identity && pnpm run test:update-runner &&pnpm run test:bot-text && pnpm run test:url && pnpm run test:bot-urls && pnpm run test:bot-updates && pnpm run test:bot-announce && pnpm run test:reactions && pnpm run test:llm-reset && pnpm run test:raw-writes && pnpm run test:worker-safe",
235
- "test:log": "tsx tests/log-test.ts",
236
- "test:log-ship": "tsx tests/log-ship-test.ts",
237
- "test:visits": "tsx tests/visits-test.ts",
238
- "test:runtime": "tsx tests/runtime-test.ts",
239
- "test:text": "tsx tests/text-test.ts",
240
- "example": "tsx tests/example.ts",
241
- "update-crypto": "tsx scripts/update-crypto-list.ts",
242
- "update-url-rules": "tsx scripts/update-url-rules.ts",
243
- "type-check": "tsc --noEmit",
244
- "type-check:tests": "tsc -p tests/tsconfig.json",
245
- "lint": "biome lint",
246
- "format": "biome format",
247
- "check": "biome check",
248
- "fix": "biome check --write --unsafe",
249
- "ci": "biome ci",
250
- "prepublishOnly": "pnpm run build",
251
- "test:worker-safe": "pnpm run build && tsx tests/worker-safe-test.ts",
252
- "test:raw-writes": "tsx tests/raw-writes-test.ts",
253
- "demo:bot": "tsx tests/create-demo.ts",
254
- "demo:bot-integration": "tsx tests/bot-integration.ts",
255
- "demo:cli": "tsx tests/cli-demo.ts",
256
- "demo:live": "tsx tests/live-demo.ts",
257
- "test:tg-html": "tsx tests/tg-html-test.ts",
258
- "test:flags": "tsx tests/flags-test.ts",
259
- "test:groups": "tsx tests/groups-test.ts",
260
- "test:user": "tsx tests/user-test.ts",
261
- "test:language-picker": "tsx tests/language-picker-test.ts",
262
- "test:llm": "tsx tests/llm-live-test.ts",
263
- "test:tg-md": "tsx tests/tg-md-test.ts",
264
- "test:self-echo": "tsx tests/self-echo-test.ts",
265
- "test:update-identity": "tsx tests/update-identity-test.ts",
266
- "test:update-runner": "tsx tests/update-runner-test.ts",
267
- "test:bot-text": "tsx tests/bot-text-test.ts",
268
- "test:url": "tsx tests/url-test.ts",
269
- "test:bot-urls": "tsx tests/bot-urls-test.ts",
270
- "test:bot-updates": "tsx tests/bot-updates-test.ts",
271
- "test:bot-announce": "tsx tests/bot-announce-test.ts",
272
- "test:reactions": "tsx tests/reactions-test.ts",
273
- "test:llm-reset": "tsx tests/llm-reset-test.ts"
274
- },
275
- "keywords": [
276
- "typescript",
277
- "utils",
278
- "log",
279
- "currency",
280
- "format"
281
- ],
282
- "author": "Adrian Galilea <adriangalilea@gmail.com>",
283
- "license": "MIT",
284
- "devDependencies": {
285
- "@ai-sdk/anthropic": "^4.0.12",
286
- "@ai-sdk/openai-compatible": "^3.0.7",
287
- "@biomejs/biome": "2.4.15",
288
- "@gramio/format": "^0.12.1",
289
- "@gramio/session": "^0.2.0",
290
- "@gramio/split": "^0.0.1",
291
- "@gramio/storage": "^2.0.1",
292
- "@openrouter/ai-sdk-provider": "^3.0.0",
293
- "@types/node": "^24.3.0",
294
- "ai": "^7.0.22",
295
- "gramio": "^0.15.1",
296
- "next": "^16.3.8",
297
- "react": "^19.3.0",
298
- "react-dom": "^19.3.0",
299
- "tsx": "^4.20.4",
300
- "typescript": "^5.9.2",
301
- "zod": "^4.4.3"
302
- },
303
- "peerDependencies": {
304
- "@ai-sdk/anthropic": "^4.0.0",
305
- "@ai-sdk/openai-compatible": "^3.0.0",
306
- "@gramio/format": ">=0.8.0",
307
- "@gramio/session": ">=0.2.0",
308
- "@gramio/split": "^0.0.1",
309
- "@gramio/storage": ">=2.0.0",
310
- "@openrouter/ai-sdk-provider": "^3.0.0",
311
- "ai": "^7.0.0",
312
- "gramio": "^0.15.0",
313
- "next": ">=15",
314
- "zod": ">=3.22"
315
- },
316
- "peerDependenciesMeta": {
317
- "@gramio/format": {
318
- "optional": true
319
- },
320
- "@gramio/session": {
321
- "optional": true
322
- },
323
- "@gramio/storage": {
324
- "optional": true
325
- },
326
- "gramio": {
327
- "optional": true
328
- },
329
- "zod": {
330
- "optional": true
331
- },
332
- "ai": {
333
- "optional": true
334
- },
335
- "@ai-sdk/anthropic": {
336
- "optional": true
337
- },
338
- "@ai-sdk/openai-compatible": {
339
- "optional": true
340
- },
341
- "@openrouter/ai-sdk-provider": {
342
- "optional": true
343
- },
344
- "@gramio/split": {
345
- "optional": true
346
- },
347
- "next": {
348
- "optional": true
349
- }
350
- },
351
- "publishConfig": {
352
- "access": "public",
353
- "registry": "https://registry.npmjs.org/"
354
- },
355
- "repository": {
356
- "type": "git",
357
- "url": "git+https://github.com/adriangalilea/ts-utils.git"
358
- },
359
- "bugs": {
360
- "url": "https://github.com/adriangalilea/ts-utils/issues"
361
- },
362
- "homepage": "https://github.com/adriangalilea/ts-utils#readme",
363
- "sideEffects": false,
364
- "dependencies": {
365
- "linkifyjs": "^4.3.3"
366
- }
367
- }
2
+ "name": "@adriangalilea/utils",
3
+ "version": "10.1.0",
4
+ "description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "browser": "./dist/browser.js",
12
+ "node": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./browser": {
16
+ "types": "./dist/browser.d.ts",
17
+ "default": "./dist/browser.js"
18
+ },
19
+ "./runtime": {
20
+ "types": "./dist/runtime.d.ts",
21
+ "default": "./dist/runtime.js"
22
+ },
23
+ "./ansi": {
24
+ "types": "./dist/universal/ansi.d.ts",
25
+ "default": "./dist/universal/ansi.js"
26
+ },
27
+ "./format": {
28
+ "types": "./dist/universal/format.d.ts",
29
+ "default": "./dist/universal/format.js"
30
+ },
31
+ "./time": {
32
+ "types": "./dist/universal/time.d.ts",
33
+ "default": "./dist/universal/time.js"
34
+ },
35
+ "./url": {
36
+ "types": "./dist/universal/url/index.d.ts",
37
+ "default": "./dist/universal/url/index.js"
38
+ },
39
+ "./url/sites": {
40
+ "types": "./dist/universal/url/sites.d.ts",
41
+ "default": "./dist/universal/url/sites.js"
42
+ },
43
+ "./log": {
44
+ "types": "./dist/universal/log.d.ts",
45
+ "default": "./dist/universal/log.js"
46
+ },
47
+ "./log/next": {
48
+ "types": "./dist/next/log.d.ts",
49
+ "default": "./dist/next/log.js"
50
+ },
51
+ "./cli": {
52
+ "types": "./dist/cli/index.d.ts",
53
+ "default": "./dist/cli/index.js"
54
+ },
55
+ "./currency": {
56
+ "types": "./dist/universal/currency/index.d.ts",
57
+ "default": "./dist/universal/currency/index.js"
58
+ },
59
+ "./say": {
60
+ "types": "./dist/say/index.d.ts",
61
+ "default": "./dist/say/index.js"
62
+ },
63
+ "./tg-html": {
64
+ "types": "./dist/tg-html/index.d.ts",
65
+ "default": "./dist/tg-html/index.js"
66
+ },
67
+ "./tg-md": {
68
+ "types": "./dist/tg-md/index.d.ts",
69
+ "default": "./dist/tg-md/index.js"
70
+ },
71
+ "./bot/access-control": {
72
+ "types": "./dist/bot/access-control.d.ts",
73
+ "default": "./dist/bot/access-control.js"
74
+ },
75
+ "./bot/admin": {
76
+ "types": "./dist/bot/admin.d.ts",
77
+ "default": "./dist/bot/admin.js"
78
+ },
79
+ "./bot/allow-list": {
80
+ "types": "./dist/bot/allow-list.d.ts",
81
+ "default": "./dist/bot/allow-list.js"
82
+ },
83
+ "./bot/coalesce": {
84
+ "types": "./dist/bot/coalesce.d.ts",
85
+ "default": "./dist/bot/coalesce.js"
86
+ },
87
+ "./bot/draft": {
88
+ "types": "./dist/bot/draft.d.ts",
89
+ "default": "./dist/bot/draft.js"
90
+ },
91
+ "./bot/language": {
92
+ "types": "./dist/bot/language.d.ts",
93
+ "default": "./dist/bot/language.js"
94
+ },
95
+ "./bot/menu": {
96
+ "types": "./dist/bot/menu.d.ts",
97
+ "default": "./dist/bot/menu.js"
98
+ },
99
+ "./bot/kit": {
100
+ "types": "./dist/bot/kit.d.ts",
101
+ "default": "./dist/bot/kit.js"
102
+ },
103
+ "./bot/llm": {
104
+ "types": "./dist/bot/llm.d.ts",
105
+ "default": "./dist/bot/llm.js"
106
+ },
107
+ "./bot/reactions": {
108
+ "types": "./dist/bot/reactions.d.ts",
109
+ "default": "./dist/bot/reactions.js"
110
+ },
111
+ "./bot/payments": {
112
+ "types": "./dist/bot/payments/index.d.ts",
113
+ "default": "./dist/bot/payments/index.js"
114
+ },
115
+ "./bot/storage": {
116
+ "types": "./dist/bot/storage.d.ts",
117
+ "default": "./dist/bot/storage.js"
118
+ },
119
+ "./bot/storage-d1": {
120
+ "types": "./dist/bot/storage-d1.d.ts",
121
+ "default": "./dist/bot/storage-d1.js"
122
+ },
123
+ "./bot/ctx": {
124
+ "types": "./dist/bot/ctx.d.ts",
125
+ "default": "./dist/bot/ctx.js"
126
+ },
127
+ "./bot/keys": {
128
+ "types": "./dist/bot/keys.d.ts",
129
+ "default": "./dist/bot/keys.js"
130
+ },
131
+ "./bot/callbacks": {
132
+ "types": "./dist/bot/callbacks.d.ts",
133
+ "default": "./dist/bot/callbacks.js"
134
+ },
135
+ "./bot/session": {
136
+ "types": "./dist/bot/session.d.ts",
137
+ "default": "./dist/bot/session.js"
138
+ },
139
+ "./bot/notify": {
140
+ "types": "./dist/bot/notify.d.ts",
141
+ "default": "./dist/bot/notify.js"
142
+ },
143
+ "./bot/worker": {
144
+ "types": "./dist/bot/worker.d.ts",
145
+ "default": "./dist/bot/worker.js"
146
+ },
147
+ "./bot/create": {
148
+ "types": "./dist/bot/create.d.ts",
149
+ "default": "./dist/bot/create.js"
150
+ },
151
+ "./bot/profile": {
152
+ "types": "./dist/bot/profile.d.ts",
153
+ "default": "./dist/bot/profile.js"
154
+ },
155
+ "./bot/flags": {
156
+ "types": "./dist/bot/flags.d.ts",
157
+ "default": "./dist/bot/flags.js"
158
+ },
159
+ "./bot/groups": {
160
+ "types": "./dist/bot/groups.d.ts",
161
+ "default": "./dist/bot/groups.js"
162
+ },
163
+ "./bot/user": {
164
+ "types": "./dist/bot/user.d.ts",
165
+ "default": "./dist/bot/user.js"
166
+ },
167
+ "./bot/urls": {
168
+ "types": "./dist/bot/urls.d.ts",
169
+ "default": "./dist/bot/urls.js"
170
+ },
171
+ "./bot/announce": {
172
+ "types": "./dist/bot/announce.d.ts",
173
+ "default": "./dist/bot/announce.js"
174
+ },
175
+ "./bot/updates": {
176
+ "types": "./dist/bot/updates.d.ts",
177
+ "default": "./dist/bot/updates.js"
178
+ },
179
+ "./llm": {
180
+ "types": "./dist/llm/index.d.ts",
181
+ "default": "./dist/llm/index.js"
182
+ },
183
+ "./bot/inline-feedback": {
184
+ "types": "./dist/bot/inline-feedback.d.ts",
185
+ "default": "./dist/bot/inline-feedback.js"
186
+ },
187
+ "./metrics": {
188
+ "types": "./dist/metrics/index.d.ts",
189
+ "default": "./dist/metrics/index.js"
190
+ },
191
+ "./metrics/sqlite": {
192
+ "types": "./dist/metrics/sqlite.d.ts",
193
+ "default": "./dist/metrics/sqlite.js"
194
+ },
195
+ "./metrics/libsql": {
196
+ "types": "./dist/metrics/libsql.d.ts",
197
+ "default": "./dist/metrics/libsql.js"
198
+ },
199
+ "./metrics/d1": {
200
+ "types": "./dist/metrics/d1.d.ts",
201
+ "default": "./dist/metrics/d1.js"
202
+ },
203
+ "./metrics/d1-rest": {
204
+ "types": "./dist/metrics/d1-rest.d.ts",
205
+ "default": "./dist/metrics/d1-rest.js"
206
+ },
207
+ "./metrics/report": {
208
+ "types": "./dist/metrics/report.d.ts",
209
+ "default": "./dist/metrics/report.js"
210
+ },
211
+ "./metrics/cli": {
212
+ "types": "./dist/metrics/cli.d.ts",
213
+ "default": "./dist/metrics/cli.js"
214
+ },
215
+ "./bot/text": {
216
+ "types": "./dist/bot/text.d.ts",
217
+ "default": "./dist/bot/text.js"
218
+ },
219
+ "./bot/update-identity": {
220
+ "types": "./dist/bot/update-identity.d.ts",
221
+ "default": "./dist/bot/update-identity.js"
222
+ }
223
+ },
224
+ "files": [
225
+ "dist"
226
+ ],
227
+ "keywords": [
228
+ "typescript",
229
+ "utils",
230
+ "log",
231
+ "currency",
232
+ "format"
233
+ ],
234
+ "author": "Adrian Galilea <adriangalilea@gmail.com>",
235
+ "license": "MIT",
236
+ "devDependencies": {
237
+ "@ai-sdk/anthropic": "^4.0.12",
238
+ "@ai-sdk/openai-compatible": "^3.0.7",
239
+ "@biomejs/biome": "2.4.15",
240
+ "@gramio/format": "^0.12.1",
241
+ "@gramio/session": "^0.2.0",
242
+ "@gramio/split": "^0.0.1",
243
+ "@gramio/storage": "^2.0.1",
244
+ "@openrouter/ai-sdk-provider": "^3.0.0",
245
+ "@types/node": "^24.3.0",
246
+ "ai": "^7.0.22",
247
+ "gramio": "^0.15.1",
248
+ "next": "^16.3.8",
249
+ "react": "^19.3.0",
250
+ "react-dom": "^19.3.0",
251
+ "tsx": "^4.20.4",
252
+ "typescript": "^5.9.2",
253
+ "zod": "^4.4.3"
254
+ },
255
+ "peerDependencies": {
256
+ "@ai-sdk/anthropic": "^4.0.0",
257
+ "@ai-sdk/openai-compatible": "^3.0.0",
258
+ "@gramio/format": ">=0.8.0",
259
+ "@gramio/session": ">=0.2.0",
260
+ "@gramio/split": "^0.0.1",
261
+ "@gramio/storage": ">=2.0.0",
262
+ "@openrouter/ai-sdk-provider": "^3.0.0",
263
+ "ai": "^7.0.0",
264
+ "gramio": "^0.15.0",
265
+ "next": ">=15",
266
+ "zod": ">=3.22"
267
+ },
268
+ "peerDependenciesMeta": {
269
+ "@gramio/format": {
270
+ "optional": true
271
+ },
272
+ "@gramio/session": {
273
+ "optional": true
274
+ },
275
+ "@gramio/storage": {
276
+ "optional": true
277
+ },
278
+ "gramio": {
279
+ "optional": true
280
+ },
281
+ "zod": {
282
+ "optional": true
283
+ },
284
+ "ai": {
285
+ "optional": true
286
+ },
287
+ "@ai-sdk/anthropic": {
288
+ "optional": true
289
+ },
290
+ "@ai-sdk/openai-compatible": {
291
+ "optional": true
292
+ },
293
+ "@openrouter/ai-sdk-provider": {
294
+ "optional": true
295
+ },
296
+ "@gramio/split": {
297
+ "optional": true
298
+ },
299
+ "next": {
300
+ "optional": true
301
+ }
302
+ },
303
+ "publishConfig": {
304
+ "access": "public",
305
+ "registry": "https://registry.npmjs.org/"
306
+ },
307
+ "repository": {
308
+ "type": "git",
309
+ "url": "git+https://github.com/adriangalilea/ts-utils.git"
310
+ },
311
+ "bugs": {
312
+ "url": "https://github.com/adriangalilea/ts-utils/issues"
313
+ },
314
+ "homepage": "https://github.com/adriangalilea/ts-utils#readme",
315
+ "sideEffects": false,
316
+ "dependencies": {
317
+ "linkifyjs": "^4.3.3"
318
+ },
319
+ "scripts": {
320
+ "build": "rm -rf dist && tsc",
321
+ "test": "tsx tests/metrics-test.ts",
322
+ "test:all": "pnpm run test && pnpm run test:log && pnpm run test:log-ship && pnpm run test:runtime && pnpm run test:text && pnpm run test:tg-html && pnpm run test:tg-md && pnpm run test:flags && pnpm run test:groups && pnpm run test:user && pnpm run test:language-picker && pnpm run test:self-echo && pnpm run test:update-identity && pnpm run test:update-runner &&pnpm run test:bot-text && pnpm run test:url && pnpm run test:bot-urls && pnpm run test:bot-updates && pnpm run test:bot-announce && pnpm run test:reactions && pnpm run test:llm-reset && pnpm run test:raw-writes && pnpm run test:worker-safe",
323
+ "test:log": "tsx tests/log-test.ts",
324
+ "test:log-ship": "tsx tests/log-ship-test.ts",
325
+ "test:runtime": "tsx tests/runtime-test.ts",
326
+ "test:text": "tsx tests/text-test.ts",
327
+ "example": "tsx tests/example.ts",
328
+ "update-crypto": "tsx scripts/update-crypto-list.ts",
329
+ "update-url-rules": "tsx scripts/update-url-rules.ts",
330
+ "type-check": "tsc --noEmit",
331
+ "type-check:tests": "tsc -p tests/tsconfig.json",
332
+ "lint": "biome lint",
333
+ "format": "biome format",
334
+ "check": "biome check",
335
+ "fix": "biome check --write --unsafe",
336
+ "ci": "biome ci",
337
+ "verify": "pnpm run type-check && pnpm run type-check:tests && pnpm run ci && pnpm run test:all",
338
+ "test:worker-safe": "pnpm run build && tsx tests/worker-safe-test.ts",
339
+ "test:raw-writes": "tsx tests/raw-writes-test.ts",
340
+ "demo:bot": "tsx tests/create-demo.ts",
341
+ "demo:bot-integration": "tsx tests/bot-integration.ts",
342
+ "demo:cli": "tsx tests/cli-demo.ts",
343
+ "demo:live": "tsx tests/live-demo.ts",
344
+ "test:tg-html": "tsx tests/tg-html-test.ts",
345
+ "test:flags": "tsx tests/flags-test.ts",
346
+ "test:groups": "tsx tests/groups-test.ts",
347
+ "test:user": "tsx tests/user-test.ts",
348
+ "test:language-picker": "tsx tests/language-picker-test.ts",
349
+ "test:llm": "tsx tests/llm-live-test.ts",
350
+ "test:tg-md": "tsx tests/tg-md-test.ts",
351
+ "test:self-echo": "tsx tests/self-echo-test.ts",
352
+ "test:update-identity": "tsx tests/update-identity-test.ts",
353
+ "test:update-runner": "tsx tests/update-runner-test.ts",
354
+ "test:bot-text": "tsx tests/bot-text-test.ts",
355
+ "test:url": "tsx tests/url-test.ts",
356
+ "test:bot-urls": "tsx tests/bot-urls-test.ts",
357
+ "test:bot-updates": "tsx tests/bot-updates-test.ts",
358
+ "test:bot-announce": "tsx tests/bot-announce-test.ts",
359
+ "test:reactions": "tsx tests/reactions-test.ts",
360
+ "test:llm-reset": "tsx tests/llm-reset-test.ts"
361
+ }
362
+ }