llm-speed-bench 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -141,6 +141,12 @@ async function getConfig() {
141
141
  type: 'boolean',
142
142
  description: 'Output the results in JSON format.',
143
143
  default: false,
144
+ })
145
+ .option('stream', {
146
+ alias: 's',
147
+ type: 'boolean',
148
+ description: 'Use streaming mode for the API request.',
149
+ default: true,
144
150
  })
145
151
  .option('effort', {
146
152
  alias: 'e',
@@ -163,6 +169,7 @@ async function getConfig() {
163
169
  model: argv.model,
164
170
  prompt: argv.prompt,
165
171
  json: argv.json ?? false,
172
+ stream: argv.stream ?? true,
166
173
  effort: argv.effort,
167
174
  };
168
175
  return config;
@@ -172,21 +179,29 @@ async function getConfig() {
172
179
  * @param config - The configuration object.
173
180
  */
174
181
  async function runBenchmark(config) {
175
- const { apiBaseUrl, apiKey, model, prompt, json, effort } = config;
182
+ const { apiBaseUrl, apiKey, model, prompt, json, stream, effort } = config;
176
183
  const progress = new ProgressIndicator(json);
177
184
  progress.start('Connecting...');
178
185
  const T_start = performance.now();
179
- let T_first_token = null;
180
- const interTokenLatencies = [];
181
- let outputTokens = 0;
182
- let lastTokenChunkTime = null;
186
+ let T_second_token = null;
187
+ const tokenTimestamps = {
188
+ all: [],
189
+ completion: [],
190
+ reasoning: [],
191
+ };
192
+ let totalOutputTokens = 0;
193
+ let completionTokens = 0;
194
+ let reasoningTokens = 0;
195
+ let usageData = null;
196
+ // Initialize encoding for token counting
197
+ const encoding = get_encoding('cl100k_base');
183
198
  try {
184
199
  const url = new URL(apiBaseUrl);
185
200
  if (!url.pathname.endsWith('/')) {
186
201
  url.pathname += '/';
187
202
  }
188
203
  let finalUrl;
189
- if (url.pathname.endsWith('/v1/')) {
204
+ if (url.pathname.endsWith('/v1/') || url.pathname.endsWith('/v4/')) {
190
205
  finalUrl = new URL('chat/completions', url);
191
206
  }
192
207
  else {
@@ -195,7 +210,7 @@ async function runBenchmark(config) {
195
210
  const body = {
196
211
  model,
197
212
  messages: [{ role: 'user', content: prompt }],
198
- stream: true,
213
+ stream,
199
214
  };
200
215
  if (effort) {
201
216
  body.reasoning = { effort };
@@ -209,86 +224,168 @@ async function runBenchmark(config) {
209
224
  },
210
225
  body: JSON.stringify(body),
211
226
  });
212
- if (!response.ok || !response.body) {
227
+ if (!response.ok) {
213
228
  const errorBody = await response.text();
214
229
  throw new Error(`API Error: ${response.status} ${response.statusText} - ${errorBody}`);
215
230
  }
216
- progress.update('Waiting for First Token...');
217
- const reader = response.body.getReader();
218
- const decoder = new TextDecoder();
219
- while (true) {
220
- const { done, value } = await reader.read();
221
- if (done) {
222
- break;
231
+ let T_end;
232
+ if (stream) {
233
+ // Streaming mode
234
+ if (!response.body) {
235
+ throw new Error('Response body is null for streaming request');
223
236
  }
224
- const chunk = decoder.decode(value, { stream: true });
225
- const lines = chunk.split('\n').filter((line) => line.trim().startsWith('data:'));
226
- let chunkContainsToken = false;
227
- for (const line of lines) {
228
- const data = line.substring(5).trim();
229
- if (data === '[DONE]') {
237
+ progress.update('Waiting for First Token...');
238
+ const reader = response.body.getReader();
239
+ const decoder = new TextDecoder();
240
+ while (true) {
241
+ const { done, value } = await reader.read();
242
+ if (done) {
230
243
  break;
231
244
  }
232
- try {
233
- const parsed = JSON.parse(data);
234
- if (parsed.choices[0]?.delta?.content) {
235
- chunkContainsToken = true;
236
- outputTokens++;
245
+ const chunk = decoder.decode(value, { stream: true });
246
+ const lines = chunk.split('\n').filter((line) => line.trim().startsWith('data:'));
247
+ let chunkProducedTokens = false;
248
+ let chunkProducedCompletionTokens = 0;
249
+ let chunkProducedReasoningTokens = 0;
250
+ for (const line of lines) {
251
+ const data = line.substring(5).trim();
252
+ if (data === '[DONE]') {
253
+ break;
254
+ }
255
+ try {
256
+ const parsed = JSON.parse(data);
257
+ // Capture usage data if present
258
+ if (parsed.usage && parsed.usage !== null) {
259
+ usageData = parsed.usage;
260
+ }
261
+ const delta = parsed.choices?.[0]?.delta;
262
+ if (!delta) {
263
+ continue;
264
+ }
265
+ const completionCount = countTokensInContent(delta.content, encoding);
266
+ const reasoningCount = countTokensInContent(delta.reasoning, encoding);
267
+ const reasoningContentCount = countTokensInContent(delta.reasoning_content, encoding);
268
+ const totalReasoning = reasoningCount + reasoningContentCount;
269
+ if (completionCount > 0 || totalReasoning > 0) {
270
+ chunkProducedTokens = true;
271
+ chunkProducedCompletionTokens += completionCount;
272
+ chunkProducedReasoningTokens += totalReasoning;
273
+ }
274
+ }
275
+ catch (e) {
276
+ // Ignore parsing errors for non-JSON lines
237
277
  }
238
278
  }
239
- catch (e) {
240
- // Ignore parsing errors for non-JSON lines
279
+ if (chunkProducedTokens) {
280
+ const chunkTime = performance.now();
281
+ const producedTokens = chunkProducedCompletionTokens + chunkProducedReasoningTokens;
282
+ totalOutputTokens += producedTokens;
283
+ completionTokens += chunkProducedCompletionTokens;
284
+ reasoningTokens += chunkProducedReasoningTokens;
285
+ const registerTimestamp = (container, count) => {
286
+ for (let i = 0; i < count; i++) {
287
+ container.push(chunkTime);
288
+ }
289
+ };
290
+ if (chunkProducedCompletionTokens > 0) {
291
+ registerTimestamp(tokenTimestamps.completion, chunkProducedCompletionTokens);
292
+ registerTimestamp(tokenTimestamps.all, chunkProducedCompletionTokens);
293
+ }
294
+ if (chunkProducedReasoningTokens > 0) {
295
+ registerTimestamp(tokenTimestamps.reasoning, chunkProducedReasoningTokens);
296
+ registerTimestamp(tokenTimestamps.all, chunkProducedReasoningTokens);
297
+ }
298
+ if (tokenTimestamps.all.length >= 2 && T_second_token === null) {
299
+ T_second_token = tokenTimestamps.all[1];
300
+ }
301
+ const totalTokensLabel = totalOutputTokens === 1 ? 'token' : 'tokens';
302
+ const completionLabel = completionTokens === 1 ? 'token' : 'tokens';
303
+ const reasoningLabel = reasoningTokens === 1 ? 'token' : 'tokens';
304
+ let message = `Receiving Tokens... (total: ${totalOutputTokens} ${totalTokensLabel}`;
305
+ message += ` | completion: ${completionTokens} ${completionLabel}`;
306
+ message += ` | reasoning: ${reasoningTokens} ${reasoningLabel}`;
307
+ if (T_second_token && totalOutputTokens > 1) {
308
+ const elapsedS = (chunkTime - T_second_token) / 1000;
309
+ const tokensSinceSecond = totalOutputTokens - 1;
310
+ const tokensPerSecond = elapsedS > 0 ? tokensSinceSecond / elapsedS : 0;
311
+ message += ` @ ${tokensPerSecond.toFixed(2)} tokens/s`;
312
+ }
313
+ message += ')';
314
+ progress.update(message);
241
315
  }
242
316
  }
243
- if (chunkContainsToken) {
244
- const chunkTime = performance.now();
245
- if (T_first_token === null) {
246
- T_first_token = chunkTime;
247
- }
248
- if (lastTokenChunkTime !== null) {
249
- interTokenLatencies.push(chunkTime - lastTokenChunkTime);
250
- }
251
- lastTokenChunkTime = chunkTime;
252
- if (T_first_token) {
253
- const elapsedS = (performance.now() - T_first_token) / 1000;
254
- const tokensPerSecond = elapsedS > 0 ? outputTokens / elapsedS : 0;
255
- progress.update(`Receiving Tokens... (${outputTokens} tokens received @ ${tokensPerSecond.toFixed(2)} tokens/s)`);
317
+ T_end = performance.now();
318
+ progress.stop('Finished receiving tokens.');
319
+ }
320
+ else {
321
+ // Non-streaming mode
322
+ progress.update('Waiting for response...');
323
+ const responseData = await response.json();
324
+ T_end = performance.now();
325
+ progress.stop('Finished receiving response.');
326
+ // Extract token counts from usage field
327
+ const usage = responseData.usage;
328
+ if (usage) {
329
+ completionTokens = usage.completion_tokens || 0;
330
+ reasoningTokens = usage.reasoning_tokens || 0;
331
+ totalOutputTokens = completionTokens + reasoningTokens;
332
+ }
333
+ else {
334
+ // Fallback: count tokens from the response content
335
+ const message = responseData.choices?.[0]?.message;
336
+ if (message) {
337
+ completionTokens = countTokensInContent(message.content, encoding);
338
+ reasoningTokens = countTokensInContent(message.reasoning, encoding) +
339
+ countTokensInContent(message.reasoning_content, encoding);
340
+ totalOutputTokens = completionTokens + reasoningTokens;
256
341
  }
257
342
  }
258
343
  }
259
- const T_end = performance.now();
260
- progress.stop('Finished receiving tokens.');
261
- const totalWallClockTimeMs = T_end - T_start;
262
- const timeToFirstTokenMs = T_first_token ? T_first_token - T_start : 0;
263
- // Estimate prompt tokens using tiktoken
264
- const encoding = get_encoding('cl100k_base');
265
- const promptTokens = encoding.encode(prompt).length;
344
+ // Use actual usage data if available, otherwise fall back to estimates
345
+ let promptTokens;
346
+ if (usageData && usageData.prompt_tokens !== undefined && usageData.prompt_tokens !== null) {
347
+ // Override with actual usage data
348
+ promptTokens = usageData.prompt_tokens;
349
+ if (usageData.completion_tokens !== undefined && usageData.completion_tokens !== null) {
350
+ completionTokens = usageData.completion_tokens;
351
+ }
352
+ if (usageData.reasoning_tokens !== undefined && usageData.reasoning_tokens !== null) {
353
+ reasoningTokens = usageData.reasoning_tokens;
354
+ }
355
+ // Recalculate total output tokens from actual usage data
356
+ totalOutputTokens = completionTokens + reasoningTokens;
357
+ }
358
+ else {
359
+ // Estimate prompt tokens using tiktoken
360
+ promptTokens = encoding.encode(prompt).length;
361
+ }
266
362
  encoding.free();
267
- const outputDurationMs = totalWallClockTimeMs - timeToFirstTokenMs;
268
- const outputRateTpsFromFirstToken = outputDurationMs > 0 ? (outputTokens / outputDurationMs) * 1000 : 0;
269
- const outputRateTpsFromRequestStart = totalWallClockTimeMs > 0 ? (outputTokens / totalWallClockTimeMs) * 1000 : 0;
270
- const latencyStats = calculateLatencyStats(interTokenLatencies);
363
+ const totalWallClockTimeMs = T_end - T_start;
364
+ const inclusiveMetrics = computeViewpointMetrics(tokenTimestamps.all, totalOutputTokens, totalWallClockTimeMs, T_start, T_end);
365
+ const reasoningOnlyMetrics = computeViewpointMetrics(tokenTimestamps.reasoning, reasoningTokens, totalWallClockTimeMs, T_start, T_end);
366
+ const completionOnlyMetrics = computeViewpointMetrics(tokenTimestamps.completion, completionTokens, totalWallClockTimeMs, T_start, T_end);
271
367
  const results = {
272
368
  configuration: {
273
369
  apiBaseUrl,
274
370
  model,
275
371
  },
276
372
  metrics: {
277
- timeToFirstTokenMs: parseFloat(timeToFirstTokenMs.toFixed(2)),
278
373
  totalWallClockTimeMs: parseFloat(totalWallClockTimeMs.toFixed(2)),
279
- outputRateTpsFromFirstToken: parseFloat(outputRateTpsFromFirstToken.toFixed(2)),
280
- outputRateTpsFromRequestStart: parseFloat(outputRateTpsFromRequestStart.toFixed(2)),
374
+ timeToSecondTokenMs: parseFloat((T_second_token ? T_second_token - T_start : 0).toFixed(2)),
375
+ views: {
376
+ reasoningInclusive: inclusiveMetrics,
377
+ reasoningOnly: reasoningOnlyMetrics,
378
+ completionOnly: completionOnlyMetrics,
379
+ },
281
380
  },
282
381
  tokenCounts: {
283
382
  promptTokens,
284
- outputTokens,
285
- },
286
- interTokenLatencyMs: {
287
- ...latencyStats,
288
- latencies: interTokenLatencies,
383
+ completionTokens,
384
+ reasoningTokens,
385
+ totalOutputTokens,
289
386
  },
290
387
  };
291
- printResults(results, config.json);
388
+ printResults(results, config.json, config.stream);
292
389
  }
293
390
  catch (error) {
294
391
  console.error('An error occurred during the benchmark:', error);
@@ -300,14 +397,36 @@ async function runBenchmark(config) {
300
397
  * @param results - The benchmark results object.
301
398
  * @param asJson - Whether to print in JSON format.
302
399
  */
303
- function printResults(results, asJson) {
400
+ function printResults(results, asJson, isStreaming) {
304
401
  if (asJson) {
305
402
  // Create a new object for JSON output that doesn't include the full latencies array
306
403
  const jsonOutput = {
307
404
  ...results,
308
- interTokenLatencyMs: {
309
- ...results.interTokenLatencyMs,
310
- latencies: undefined, // Remove the detailed list for the final JSON output
405
+ metrics: {
406
+ ...results.metrics,
407
+ views: {
408
+ reasoningInclusive: {
409
+ ...results.metrics.views.reasoningInclusive,
410
+ interTokenLatencyMs: {
411
+ ...results.metrics.views.reasoningInclusive.interTokenLatencyMs,
412
+ latencies: undefined,
413
+ },
414
+ },
415
+ reasoningOnly: {
416
+ ...results.metrics.views.reasoningOnly,
417
+ interTokenLatencyMs: {
418
+ ...results.metrics.views.reasoningOnly.interTokenLatencyMs,
419
+ latencies: undefined,
420
+ },
421
+ },
422
+ completionOnly: {
423
+ ...results.metrics.views.completionOnly,
424
+ interTokenLatencyMs: {
425
+ ...results.metrics.views.completionOnly.interTokenLatencyMs,
426
+ latencies: undefined,
427
+ },
428
+ },
429
+ },
311
430
  },
312
431
  };
313
432
  // delete jsonOutput.interTokenLatencyMs.latencies;
@@ -324,25 +443,44 @@ function printResults(results, asJson) {
324
443
  console.log();
325
444
  console.log('Metrics');
326
445
  console.log('-----------------------');
327
- console.log(`Time to First Token: ${results.metrics.timeToFirstTokenMs} ms (${ms(results.metrics.timeToFirstTokenMs)})`);
328
446
  console.log(`Total Wall Clock Time: ${results.metrics.totalWallClockTimeMs} ms (${ms(results.metrics.totalWallClockTimeMs)})`);
329
- console.log(`Output Rate (since 1st token): ${results.metrics.outputRateTpsFromFirstToken} tokens/sec`);
330
- console.log(`Output Rate (wall clock): ${results.metrics.outputRateTpsFromRequestStart} tokens/sec`);
447
+ if (isStreaming) {
448
+ console.log(`Time to Second Token (all tokens): ${results.metrics.timeToSecondTokenMs} ms (${ms(results.metrics.timeToSecondTokenMs)})`);
449
+ }
331
450
  console.log();
332
451
  console.log('Token Counts');
333
452
  console.log('-----------------------');
334
- console.log(`Prompt Tokens: ${results.tokenCounts.promptTokens} (estimated)`);
335
- console.log(`Output Tokens: ${results.tokenCounts.outputTokens}`);
453
+ console.log(`Prompt Tokens: ${results.tokenCounts.promptTokens}`);
454
+ console.log(`Reasoning Tokens: ${results.tokenCounts.reasoningTokens}`);
455
+ console.log(`Completion Tokens: ${results.tokenCounts.completionTokens}`);
456
+ console.log(`Total Output Tokens: ${results.tokenCounts.totalOutputTokens}`);
336
457
  console.log();
337
- console.log('Inter-Token Latency (ms)');
338
- console.log('-----------------------');
339
- console.log(`Min: ${results.interTokenLatencyMs.min} ms`);
340
- console.log(`Mean: ${results.interTokenLatencyMs.mean} ms`);
341
- console.log(`Median: ${results.interTokenLatencyMs.median} ms`);
342
- console.log(`Max: ${results.interTokenLatencyMs.max} ms`);
343
- console.log(`p90: ${results.interTokenLatencyMs.p90} ms`);
344
- console.log(`p95: ${results.interTokenLatencyMs.p95} ms`);
345
- console.log(`p99: ${results.interTokenLatencyMs.p99} ms`);
458
+ const { reasoningInclusive, reasoningOnly, completionOnly } = results.metrics.views;
459
+ if (isStreaming) {
460
+ console.log('Reasoning + Completion View');
461
+ console.log('-----------------------');
462
+ console.log(`Time to Second Token: ${reasoningInclusive.timeToSecondTokenMs} ms (${ms(reasoningInclusive.timeToSecondTokenMs)})`);
463
+ console.log(`Time to Second Reasoning Token: ${reasoningOnly.timeToSecondTokenMs} ms (${ms(reasoningOnly.timeToSecondTokenMs)})`);
464
+ console.log(`Time to Second Completion Token: ${completionOnly.timeToSecondTokenMs} ms (${ms(completionOnly.timeToSecondTokenMs)})`);
465
+ console.log(`Output Rate (since 2nd reasoning token): ${reasoningOnly.outputRateTpsFromSecondToken} tokens/sec`);
466
+ console.log(`Output Rate (since 2nd completion token): ${completionOnly.outputRateTpsFromSecondToken} tokens/sec`);
467
+ console.log(`Output Rate (wall clock): ${reasoningInclusive.outputRateTpsFromRequestStart} tokens/sec`);
468
+ console.log();
469
+ console.log('Inter-Token Latency (ms)');
470
+ console.log('-----------------------');
471
+ console.log(`Min: ${reasoningInclusive.interTokenLatencyMs.min} ms`);
472
+ console.log(`Mean: ${reasoningInclusive.interTokenLatencyMs.mean} ms`);
473
+ console.log(`Median: ${reasoningInclusive.interTokenLatencyMs.median} ms`);
474
+ console.log(`Max: ${reasoningInclusive.interTokenLatencyMs.max} ms`);
475
+ console.log(`p90: ${reasoningInclusive.interTokenLatencyMs.p90} ms`);
476
+ console.log(`p95: ${reasoningInclusive.interTokenLatencyMs.p95} ms`);
477
+ console.log(`p99: ${reasoningInclusive.interTokenLatencyMs.p99} ms`);
478
+ }
479
+ else {
480
+ console.log('Reasoning + Completion View');
481
+ console.log('-----------------------');
482
+ console.log(`Output Rate (wall clock): ${reasoningInclusive.outputRateTpsFromRequestStart.toFixed(2)} tokens/sec`);
483
+ }
346
484
  }
347
485
  // --- Entry Point ---
348
486
  (async () => {
@@ -356,4 +494,82 @@ function printResults(results, asJson) {
356
494
  process.exit(1);
357
495
  }
358
496
  })();
497
+ /**
498
+ * Counts actual tokens in content using tiktoken encoding.
499
+ * @param value - The value to examine for token content.
500
+ * @param encoding - The tiktoken encoding instance.
501
+ * @returns The number of tokens in the content.
502
+ */
503
+ function countTokensInContent(value, encoding) {
504
+ if (value === null || value === undefined) {
505
+ return 0;
506
+ }
507
+ if (typeof value === 'string') {
508
+ if (!value.trim()) {
509
+ return 0;
510
+ }
511
+ return encoding.encode(value).length;
512
+ }
513
+ if (Array.isArray(value)) {
514
+ return value.reduce((total, item) => total + countTokensInContent(item, encoding), 0);
515
+ }
516
+ if (typeof value === 'object') {
517
+ const obj = value;
518
+ if (obj.tokens !== undefined) {
519
+ return countTokensInContent(obj.tokens, encoding);
520
+ }
521
+ if (obj.content !== undefined) {
522
+ return countTokensInContent(obj.content, encoding);
523
+ }
524
+ if (typeof obj.text === 'string') {
525
+ if (!obj.text.trim()) {
526
+ return 0;
527
+ }
528
+ return encoding.encode(obj.text).length;
529
+ }
530
+ return 0;
531
+ }
532
+ return 0;
533
+ }
534
+ /**
535
+ * Computes throughput and latency statistics for a given set of token timestamps.
536
+ * @param timestamps - The timestamps for each token in the view.
537
+ * @param tokenCount - The total number of tokens in the view.
538
+ * @param totalWallClockTimeMs - The total wall clock time of the run.
539
+ * @param start - The benchmark start time.
540
+ * @param end - The benchmark end time.
541
+ * @returns Metrics describing the selected viewpoint.
542
+ */
543
+ function computeViewpointMetrics(timestamps, tokenCount, totalWallClockTimeMs, start, end) {
544
+ const timeToFirstTokenMs = timestamps[0] !== undefined ? timestamps[0] - start : 0;
545
+ const timeToSecondTokenMs = timestamps[1] !== undefined ? timestamps[1] - start : 0;
546
+ const tokensExcludingFirst = Math.max(tokenCount - 1, 0);
547
+ const outputDurationMsFromSecondToken = timestamps[1] !== undefined ? end - timestamps[1] : 0;
548
+ const outputRateTpsFromSecondToken = outputDurationMsFromSecondToken > 0
549
+ ? (tokensExcludingFirst / outputDurationMsFromSecondToken) * 1000
550
+ : 0;
551
+ const outputRateTpsFromRequestStart = totalWallClockTimeMs > 0
552
+ ? (tokensExcludingFirst / totalWallClockTimeMs) * 1000
553
+ : 0;
554
+ const latencies = [];
555
+ for (let i = 1; i < timestamps.length; i++) {
556
+ const previous = timestamps[i - 1];
557
+ const current = timestamps[i];
558
+ if (previous !== undefined && current !== undefined) {
559
+ latencies.push(current - previous);
560
+ }
561
+ }
562
+ const latencyStats = calculateLatencyStats(latencies);
563
+ return {
564
+ outputTokens: tokenCount,
565
+ timeToFirstTokenMs: parseFloat(timeToFirstTokenMs.toFixed(2)),
566
+ timeToSecondTokenMs: parseFloat(timeToSecondTokenMs.toFixed(2)),
567
+ outputRateTpsFromSecondToken: parseFloat(outputRateTpsFromSecondToken.toFixed(2)),
568
+ outputRateTpsFromRequestStart: parseFloat(outputRateTpsFromRequestStart.toFixed(2)),
569
+ interTokenLatencyMs: {
570
+ ...latencyStats,
571
+ latencies,
572
+ },
573
+ };
574
+ }
359
575
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "llm-speed-bench",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "A CLI tool to benchmark the performance of OpenAI-compatible LLM providers.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {
8
- "llm-speed-bench": "./dist/index.js"
8
+ "llm-speed-bench": "dist/index.js"
9
9
  },
10
10
  "files": [
11
11
  "dist"