@utilix-tech/sdk 0.77.0 → 0.79.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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  Full release notes for all Utilix surfaces (browser tools, REST API, SDKs, MCP server) live at [utilix.tech/changelog](https://utilix.tech/changelog). This file tracks just this package.
4
4
 
5
+ ## 0.79.0
6
+ - Add `calculateRealRateOfReturn` (real-rate-of-return-calculator): apply the Fisher equation to solve for whichever of the nominal rate, inflation rate, or inflation-adjusted real rate is missing, given exactly two of the three.
7
+ - Add `calculateRetryBackoffSchedule` (retry-backoff-calculator): compute the full sequence of delays an exponential-backoff retry policy would actually produce, optionally capped and with full/equal jitter ranges, plus the total best-case and worst-case wait across all retries.
8
+
9
+ ## 0.78.0
10
+ - Add `ndjsonToCsv` (ndjson-to-csv): convert newline-delimited JSON (one flat object per line) into CSV, inferring the header row from the union of keys across all lines.
11
+
5
12
  ## 0.77.0
6
13
  - Add `readPdfOutline` (pdf-outline-extractor): walk a PDF's /Outlines bookmark tree (the Root -> Outlines -> First/Next/First chain) and list every bookmark's title, nesting level, and link target, in document order.
7
14
  - Add `scoreSecurityHeaders` (security-headers-scorecard): score a pasted block of raw HTTP response headers against commonly recommended security headers (CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, Cross-Origin-*), with an overall 0-100 score and A-F letter grade.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @utilix-tech/sdk
2
2
 
3
- **705 developer utility functions for Node.js: runs locally, no API key required.**
3
+ **706 developer utility functions for Node.js: runs locally, no API key required.**
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@utilix-tech/sdk?style=flat-square&color=cb3837)](https://www.npmjs.com/package/@utilix-tech/sdk)
6
6
  [![npm downloads](https://img.shields.io/npm/dm/@utilix-tech/sdk?style=flat-square)](https://www.npmjs.com/package/@utilix-tech/sdk)
@@ -219,7 +219,7 @@ import { parseCsv, csvToJson, validateYaml, resolveYamlAnchors, tomlToJson, json
219
219
  validateNdjson, formatNdjson, ndjsonToJsonArray, diffEnvExample,
220
220
  parseSubtitles, convertSubtitles, shiftSubtitles, analyzeCaptionSpeed, parseFrontMatter,
221
221
  generateMarkdownToc, csvToSqlInsert, findCsvDuplicateRows, calculateMarkdownTaskListProgress,
222
- inferCsvColumnTypes, dedupeNdjson } from "@utilix-tech/sdk/data";
222
+ inferCsvColumnTypes, dedupeNdjson, ndjsonToCsv } from "@utilix-tech/sdk/data";
223
223
 
224
224
  // CSV
225
225
  const rows = parseCsv("name,age\nalice,30\nbob,25");
@@ -250,6 +250,10 @@ ndjsonToJsonArray('{"id":1}\n{"id":2}'); // '[\n { "id": 1 },\n { "id": 2
250
250
  dedupeNdjson('{"id":1}\n{"id":2}\n{"id":1}');
251
251
  // { totalLines: 3, uniqueLines: 2, duplicatesRemoved: 1, output: "{\"id\":1}\n{\"id\":2}", removedLines: [3] }
252
252
 
253
+ // Convert NDJSON to CSV, inferring the header row from the union of keys
254
+ ndjsonToCsv('{"id":1,"name":"Ann"}\n{"id":2,"city":"NYC"}');
255
+ // 'id,name,city\n1,Ann,\n2,,NYC'
256
+
253
257
  // Diff a .env file against its .env.example template
254
258
  diffEnvExample("FOO=1\nBAR=2", "FOO=\nBAR=y\nBAZ=z");
255
259
  // { missingInExample: [], missingInEnv: ["BAZ"], emptyValueInExample: ["FOO"], keysInBoth: 2 }
@@ -352,7 +356,7 @@ formatIso8601Duration(90061); // { iso: "P1DT1H1M1S", ... }
352
356
  ### `/units`: Conversions
353
357
 
354
358
  ```ts
355
- import { convertBytes, pxToAll, convert, formatValue, validateCardNumber, validateIban, calculateLoan, validateBarcode, calculateTax, calculateCompoundInterest, validateIsbn, calculateTipSplit, calculateSimpleInterest, calculateTimeValue, calculatePercentageChange, convertAprApy, calculateMarginMarkup, calculateDiscount, applySuccessiveDiscounts, calculateBreakEven, calculateVideoBitrate, calculateRuleOf72, calculateEmi, calculateRoi, compareUnitPrices, calculatePaybackPeriod, calculateCdMaturity, calculateDepreciationSchedule, calculateCashRounding, calculateMovingAverages, calculateGpa, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateBlendedLoanRate, calculateFreelancerRate, calculateExtraPaymentPayoff, calculateLoanRefinance, validateVin, validateIsin, calculateLoanPrepaymentPenalty } from "@utilix-tech/sdk/units";
359
+ import { convertBytes, pxToAll, convert, formatValue, validateCardNumber, validateIban, calculateLoan, validateBarcode, calculateTax, calculateCompoundInterest, validateIsbn, calculateTipSplit, calculateSimpleInterest, calculateTimeValue, calculatePercentageChange, convertAprApy, calculateMarginMarkup, calculateDiscount, applySuccessiveDiscounts, calculateBreakEven, calculateVideoBitrate, calculateRuleOf72, calculateEmi, calculateRoi, compareUnitPrices, calculatePaybackPeriod, calculateCdMaturity, calculateDepreciationSchedule, calculateCashRounding, calculateMovingAverages, calculateGpa, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateBlendedLoanRate, calculateFreelancerRate, calculateExtraPaymentPayoff, calculateLoanRefinance, validateVin, validateIsin, calculateLoanPrepaymentPenalty, calculateRealRateOfReturn } from "@utilix-tech/sdk/units";
356
360
 
357
361
  // File sizes
358
362
  convertBytes(1073741824, "GB"); // 1
@@ -526,6 +530,10 @@ calculateMortgagePoints(300000, 6.5, 360, 1, 0.25);
526
530
  // Loan prepayment penalty: dollar cost of paying a loan off early
527
531
  calculateLoanPrepaymentPenalty(10000, "percent-of-balance", { penaltyPercent: 2 });
528
532
  // { payoffBalance: 10000, penaltyAmount: 200, effectivePenaltyPercent: 2, totalPayoffCost: 10200 }
533
+
534
+ // Real rate of return: pass any TWO of nominalRatePercent, inflationRatePercent, realRatePercent
535
+ calculateRealRateOfReturn({ nominalRatePercent: 5, inflationRatePercent: 2 });
536
+ // { nominalRatePercent: 5, inflationRatePercent: 2, realRatePercent: 2.9412, solvedFor: "realRatePercent", ... }
529
537
  ```
530
538
 
531
539
  ---
@@ -1015,14 +1023,14 @@ readMidiInfo(new Uint8Array(midiBytes));
1015
1023
  | `@utilix-tech/sdk/data` | CSV, YAML, TOML, XML, INI, NDJSON parse and convert, NDJSON record deduplicator, SRT/WebVTT subtitles, Markdown front matter parser, YAML anchor/alias resolver, CSV column type inferencer, Markdown table column aligner |
1016
1024
  | `@utilix-tech/sdk/generators` | UUID v4/v7, ULID, passwords, strength check, entropy estimator, fake data, CSP nonce generator |
1017
1025
  | `@utilix-tech/sdk/time` | Date diff, timezone convert, cron parse, relative time |
1018
- | `@utilix-tech/sdk/units` | Bytes, CSS px/rem, number bases, currency format, credit card/IBAN/barcode/ISBN/VIN/ISIN validation, loan calculator, EMI calculator, compound/simple interest calculators, VAT/sales tax calculator, tip/bill split calculator, break-even point calculator, Rule of 72 calculator, savings goal calculator, ROI calculator, cash denomination/till calculator, payback period calculator, CD maturity calculator, debt-to-income ratio calculator, freelancer hourly rate calculator, debt snowball/avalanche payoff planner, tax-equivalent yield calculator, mortgage discount points break-even calculator, loan prepayment penalty calculator, data transfer time / required bandwidth estimator |
1026
+ | `@utilix-tech/sdk/units` | Bytes, CSS px/rem, number bases, currency format, credit card/IBAN/barcode/ISBN/VIN/ISIN validation, loan calculator, EMI calculator, compound/simple interest calculators, VAT/sales tax calculator, tip/bill split calculator, break-even point calculator, Rule of 72 calculator, savings goal calculator, ROI calculator, cash denomination/till calculator, payback period calculator, CD maturity calculator, debt-to-income ratio calculator, freelancer hourly rate calculator, debt snowball/avalanche payoff planner, tax-equivalent yield calculator, mortgage discount points break-even calculator, loan prepayment penalty calculator, data transfer time / required bandwidth estimator, real rate of return (Fisher equation) calculator |
1019
1027
  | `@utilix-tech/sdk/network` | HTTP status codes, IP validation, country flags, geolocation URLs, HAR file parsing, User-Agent parsing, IPv6 address compress/expand, Permissions-Policy header builder, Client Hints header builder/parser, Content-Disposition header builder/parser, X-Content-Type-Options header builder/risk assessor, sitemap.xml validator, sitemap index splitter, Prefer header builder/parser (RFC 7240), Retry-After header builder/parser (RFC 9110), Priority header builder/parser (RFC 9218), WebSocket close code reference/lookup, Strict-Transport-Security (HSTS) header builder/parser, X-Robots-Tag header builder/parser, WebSocket frame opcode reference/lookup, robots meta tag builder/parser, Cookie header byte-size budget calculator |
1020
1028
  | `@utilix-tech/sdk/api` | cURL build/parse, JWT decode/sign, JWKS parse, CORS headers, CSP header, TOTP/HOTP code generator, webhook HMAC signature verifier |
1021
1029
  | `@utilix-tech/sdk/code` | SQL format/minify, HTML format/minify, regex tester, GraphQL format, MIME type lookup, GitHub URL parsing, regex ReDoS detector, Conventional Commits linter, package.json exports field validator, package.json dependency range auditor, regex capture group/backreference visualizer, SVG sprite symbol extractor, ARIA role & attribute validator |
1022
1030
  | `@utilix-tech/sdk/color` | Hex/RGB/HSL/HSV/CMYK convert, palette generation, contrast check |
1023
1031
  | `@utilix-tech/sdk/css` | CSS gradient, box-shadow, border-radius, keyframe animation generators |
1024
1032
  | `@utilix-tech/sdk/misc` | SVG optimize/sanitize, file size format, Unicode inspector |
1025
- | `@utilix-tech/sdk/ai_agent` | Token estimate/trim, chunk text, extract URLs/JSON/keywords, sanitize HTML, flatten/merge JSON, dedupe lines, validate schema, PII/secret/injection detect, vector similarity, few-shot prompt formatter, tool-definition schema linter |
1033
+ | `@utilix-tech/sdk/ai_agent` | Token estimate/trim, chunk text, extract URLs/JSON/keywords, sanitize HTML, flatten/merge JSON, dedupe lines, validate schema, PII/secret/injection detect, vector similarity, few-shot prompt formatter, tool-definition schema linter, retry/backoff schedule calculator |
1026
1034
  | `@utilix-tech/sdk/media` | Image format & dimension reading from raw bytes (PNG, JPEG, GIF, WebP, BMP); PDF metadata reading; PDF page dimension/orientation listing; WAV audio info; ID3 tags; ICO favicon inspection; FLAC metadata reading; MP4/WebM video info; GIF frame/loop inspection |
1027
1035
 
1028
1036
  ---
@@ -9,6 +9,7 @@
9
9
  * - prompt-injection : detectPromptInjection
10
10
  * - json-repair : repairJson
11
11
  * - few-shot-formatter : formatFewShotExamples
12
+ * - retry-backoff-calculator : calculateRetryBackoffSchedule
12
13
  */
13
14
  interface ModelPricing {
14
15
  model: string;
@@ -374,6 +375,40 @@ interface ToolSchemaLintResult {
374
375
  declare function lintToolSchema(jsonText: string): ToolSchemaLintResult | {
375
376
  error: string;
376
377
  };
378
+ type RetryJitterMode = 'none' | 'full' | 'equal';
379
+ interface RetryBackoffInput {
380
+ baseDelayMs: number;
381
+ multiplier: number;
382
+ maxRetries: number;
383
+ maxDelayMs?: number | null;
384
+ jitter?: RetryJitterMode;
385
+ }
386
+ interface RetryBackoffAttempt {
387
+ attempt: number;
388
+ nominalDelayMs: number;
389
+ minDelayMs: number;
390
+ maxDelayMs: number;
391
+ }
392
+ interface RetryBackoffResult {
393
+ attempts: RetryBackoffAttempt[];
394
+ jitter: RetryJitterMode;
395
+ totalBestCaseMs: number;
396
+ totalWorstCaseMs: number;
397
+ }
398
+ /**
399
+ * Compute the full sequence of delays an exponential-backoff retry policy
400
+ * would actually produce: baseDelayMs * multiplier^(attempt-1), optionally
401
+ * capped at maxDelayMs, for each of maxRetries attempts. With jitter
402
+ * enabled, each attempt gets a [min, max] delay range instead of a single
403
+ * value ("full" jitter is uniform between 0 and the nominal delay; "equal"
404
+ * jitter is uniform between half the nominal delay and the full value),
405
+ * and the totals sum the worst case (always the nominal/max delay) against
406
+ * the best case (the minimum possible delay at every attempt). Pure
407
+ * arithmetic — it doesn't execute any retries or make any request.
408
+ */
409
+ declare function calculateRetryBackoffSchedule(input: RetryBackoffInput): RetryBackoffResult | {
410
+ error: string;
411
+ };
377
412
 
378
413
  type ai_agent_ChunkStrategy = ChunkStrategy;
379
414
  type ai_agent_CompressHtmlResult = CompressHtmlResult;
@@ -407,6 +442,10 @@ type ai_agent_PiiFinding = PiiFinding;
407
442
  type ai_agent_PiiType = PiiType;
408
443
  type ai_agent_RankedChunk = RankedChunk;
409
444
  type ai_agent_RelevanceResult = RelevanceResult;
445
+ type ai_agent_RetryBackoffAttempt = RetryBackoffAttempt;
446
+ type ai_agent_RetryBackoffInput = RetryBackoffInput;
447
+ type ai_agent_RetryBackoffResult = RetryBackoffResult;
448
+ type ai_agent_RetryJitterMode = RetryJitterMode;
410
449
  type ai_agent_SanitizeResult = SanitizeResult;
411
450
  type ai_agent_SecretDetectResult = SecretDetectResult;
412
451
  type ai_agent_SecretFinding = SecretFinding;
@@ -424,6 +463,7 @@ type ai_agent_UrlMatch = UrlMatch;
424
463
  type ai_agent_ValidationError = ValidationError;
425
464
  type ai_agent_ValidationResult = ValidationResult;
426
465
  type ai_agent_VectorSimilarityResult = VectorSimilarityResult;
466
+ declare const ai_agent_calculateRetryBackoffSchedule: typeof calculateRetryBackoffSchedule;
427
467
  declare const ai_agent_chunkText: typeof chunkText;
428
468
  declare const ai_agent_compressHtml: typeof compressHtml;
429
469
  declare const ai_agent_compressJson: typeof compressJson;
@@ -456,7 +496,7 @@ declare const ai_agent_unflattenJson: typeof unflattenJson;
456
496
  declare const ai_agent_validateJsonSchema: typeof validateJsonSchema;
457
497
  declare const ai_agent_vectorSimilarity: typeof vectorSimilarity;
458
498
  declare namespace ai_agent {
459
- export { type ai_agent_ChunkStrategy as ChunkStrategy, type ai_agent_CompressHtmlResult as CompressHtmlResult, type ai_agent_CompressJsonResult as CompressJsonResult, type ai_agent_CompressMarkdownResult as CompressMarkdownResult, type ai_agent_CostEstimate as CostEstimate, type ai_agent_DedupeResult as DedupeResult, type ai_agent_DedupeStrategy as DedupeStrategy, type ai_agent_DiffEntry2 as DiffEntry2, type ai_agent_DiffOp2 as DiffOp2, type ai_agent_DiffResult2 as DiffResult2, type ai_agent_Entity2 as Entity2, type ai_agent_EntityType2 as EntityType2, type ai_agent_ExtractJsonResult as ExtractJsonResult, type ai_agent_ExtractKeywordsResult as ExtractKeywordsResult, type ai_agent_ExtractUrlsResult as ExtractUrlsResult, type ai_agent_FewShotExample as FewShotExample, type ai_agent_FewShotFormat as FewShotFormat, type ai_agent_FewShotFormatResult as FewShotFormatResult, type ai_agent_InjectionDetectResult as InjectionDetectResult, type ai_agent_InjectionFinding as InjectionFinding, type ai_agent_JsonBlock as JsonBlock, type ai_agent_JsonRepairResult as JsonRepairResult, type ai_agent_Keyword as Keyword, ai_agent_MODEL_PRICING as MODEL_PRICING, type ai_agent_MergeResult as MergeResult, type ai_agent_MergeStrategy as MergeStrategy, type ai_agent_ModelPricing as ModelPricing, type ai_agent_PiiDetectResult as PiiDetectResult, type ai_agent_PiiFinding as PiiFinding, type ai_agent_PiiType as PiiType, type ai_agent_RankedChunk as RankedChunk, type ai_agent_RelevanceResult as RelevanceResult, type ai_agent_SanitizeResult as SanitizeResult, type ai_agent_SecretDetectResult as SecretDetectResult, type ai_agent_SecretFinding as SecretFinding, type ai_agent_SecretType as SecretType, type ai_agent_SummaryResult as SummaryResult, type ai_agent_TableResult2 as TableResult2, type ai_agent_TextChunk as TextChunk, type ai_agent_TokenEstimate as TokenEstimate, type ai_agent_TokenEstimateResult as TokenEstimateResult, type ai_agent_ToolSchemaIssue as ToolSchemaIssue, type ai_agent_ToolSchemaLintResult as ToolSchemaLintResult, type ai_agent_TrimResult as TrimResult, type ai_agent_TrimStrategy as TrimStrategy, type ai_agent_UrlMatch as UrlMatch, type ai_agent_ValidationError as ValidationError, type ai_agent_ValidationResult as ValidationResult, type ai_agent_VectorSimilarityResult as VectorSimilarityResult, ai_agent_chunkText as chunkText, ai_agent_compressHtml as compressHtml, ai_agent_compressJson as compressJson, ai_agent_compressMarkdown as compressMarkdown, ai_agent_deduplicateLines as deduplicateLines, ai_agent_detectPii as detectPii, ai_agent_detectPromptInjection as detectPromptInjection, ai_agent_detectSecrets as detectSecrets, ai_agent_diffJson as diffJson, ai_agent_estimateCost as estimateCost, ai_agent_estimateTokens as estimateTokens, ai_agent_expandQuery as expandQuery, ai_agent_extractEntities as extractEntities, ai_agent_extractJson as extractJson, ai_agent_extractKeywords as extractKeywords, ai_agent_extractTables as extractTables, ai_agent_extractUrls as extractUrls, ai_agent_flattenJson as flattenJson, ai_agent_formatFewShotExamples as formatFewShotExamples, ai_agent_lintToolSchema as lintToolSchema, ai_agent_mergeJson as mergeJson, ai_agent_redactPii as redactPii, ai_agent_repairJson as repairJson, ai_agent_rerankChunks as rerankChunks, ai_agent_sanitizeHtml as sanitizeHtml, ai_agent_scoreRelevance as scoreRelevance, ai_agent_summarizeForLlm as summarizeForLlm, ai_agent_trimToTokens as trimToTokens, ai_agent_unflattenJson as unflattenJson, ai_agent_validateJsonSchema as validateJsonSchema, ai_agent_vectorSimilarity as vectorSimilarity };
499
+ export { type ai_agent_ChunkStrategy as ChunkStrategy, type ai_agent_CompressHtmlResult as CompressHtmlResult, type ai_agent_CompressJsonResult as CompressJsonResult, type ai_agent_CompressMarkdownResult as CompressMarkdownResult, type ai_agent_CostEstimate as CostEstimate, type ai_agent_DedupeResult as DedupeResult, type ai_agent_DedupeStrategy as DedupeStrategy, type ai_agent_DiffEntry2 as DiffEntry2, type ai_agent_DiffOp2 as DiffOp2, type ai_agent_DiffResult2 as DiffResult2, type ai_agent_Entity2 as Entity2, type ai_agent_EntityType2 as EntityType2, type ai_agent_ExtractJsonResult as ExtractJsonResult, type ai_agent_ExtractKeywordsResult as ExtractKeywordsResult, type ai_agent_ExtractUrlsResult as ExtractUrlsResult, type ai_agent_FewShotExample as FewShotExample, type ai_agent_FewShotFormat as FewShotFormat, type ai_agent_FewShotFormatResult as FewShotFormatResult, type ai_agent_InjectionDetectResult as InjectionDetectResult, type ai_agent_InjectionFinding as InjectionFinding, type ai_agent_JsonBlock as JsonBlock, type ai_agent_JsonRepairResult as JsonRepairResult, type ai_agent_Keyword as Keyword, ai_agent_MODEL_PRICING as MODEL_PRICING, type ai_agent_MergeResult as MergeResult, type ai_agent_MergeStrategy as MergeStrategy, type ai_agent_ModelPricing as ModelPricing, type ai_agent_PiiDetectResult as PiiDetectResult, type ai_agent_PiiFinding as PiiFinding, type ai_agent_PiiType as PiiType, type ai_agent_RankedChunk as RankedChunk, type ai_agent_RelevanceResult as RelevanceResult, type ai_agent_RetryBackoffAttempt as RetryBackoffAttempt, type ai_agent_RetryBackoffInput as RetryBackoffInput, type ai_agent_RetryBackoffResult as RetryBackoffResult, type ai_agent_RetryJitterMode as RetryJitterMode, type ai_agent_SanitizeResult as SanitizeResult, type ai_agent_SecretDetectResult as SecretDetectResult, type ai_agent_SecretFinding as SecretFinding, type ai_agent_SecretType as SecretType, type ai_agent_SummaryResult as SummaryResult, type ai_agent_TableResult2 as TableResult2, type ai_agent_TextChunk as TextChunk, type ai_agent_TokenEstimate as TokenEstimate, type ai_agent_TokenEstimateResult as TokenEstimateResult, type ai_agent_ToolSchemaIssue as ToolSchemaIssue, type ai_agent_ToolSchemaLintResult as ToolSchemaLintResult, type ai_agent_TrimResult as TrimResult, type ai_agent_TrimStrategy as TrimStrategy, type ai_agent_UrlMatch as UrlMatch, type ai_agent_ValidationError as ValidationError, type ai_agent_ValidationResult as ValidationResult, type ai_agent_VectorSimilarityResult as VectorSimilarityResult, ai_agent_calculateRetryBackoffSchedule as calculateRetryBackoffSchedule, ai_agent_chunkText as chunkText, ai_agent_compressHtml as compressHtml, ai_agent_compressJson as compressJson, ai_agent_compressMarkdown as compressMarkdown, ai_agent_deduplicateLines as deduplicateLines, ai_agent_detectPii as detectPii, ai_agent_detectPromptInjection as detectPromptInjection, ai_agent_detectSecrets as detectSecrets, ai_agent_diffJson as diffJson, ai_agent_estimateCost as estimateCost, ai_agent_estimateTokens as estimateTokens, ai_agent_expandQuery as expandQuery, ai_agent_extractEntities as extractEntities, ai_agent_extractJson as extractJson, ai_agent_extractKeywords as extractKeywords, ai_agent_extractTables as extractTables, ai_agent_extractUrls as extractUrls, ai_agent_flattenJson as flattenJson, ai_agent_formatFewShotExamples as formatFewShotExamples, ai_agent_lintToolSchema as lintToolSchema, ai_agent_mergeJson as mergeJson, ai_agent_redactPii as redactPii, ai_agent_repairJson as repairJson, ai_agent_rerankChunks as rerankChunks, ai_agent_sanitizeHtml as sanitizeHtml, ai_agent_scoreRelevance as scoreRelevance, ai_agent_summarizeForLlm as summarizeForLlm, ai_agent_trimToTokens as trimToTokens, ai_agent_unflattenJson as unflattenJson, ai_agent_validateJsonSchema as validateJsonSchema, ai_agent_vectorSimilarity as vectorSimilarity };
460
500
  }
461
501
 
462
- export { compressMarkdown as $, type SummaryResult as A, type TextChunk as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type FewShotExample as F, type TokenEstimate as G, type TokenEstimateResult as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, type ToolSchemaIssue as L, MODEL_PRICING as M, type ToolSchemaLintResult as N, type TrimResult as O, type PiiDetectResult as P, type TrimStrategy as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type UrlMatch as U, type ValidationError as V, type ValidationResult as W, type VectorSimilarityResult as X, chunkText as Y, compressHtml as Z, compressJson as _, ai_agent as a, deduplicateLines as a0, detectPii as a1, detectPromptInjection as a2, detectSecrets as a3, diffJson as a4, estimateCost as a5, estimateTokens as a6, expandQuery as a7, extractEntities as a8, extractJson as a9, extractKeywords as aa, extractTables as ab, extractUrls as ac, flattenJson as ad, formatFewShotExamples as ae, lintToolSchema as af, mergeJson as ag, redactPii as ah, repairJson as ai, rerankChunks as aj, sanitizeHtml as ak, scoreRelevance as al, summarizeForLlm as am, trimToTokens as an, unflattenJson as ao, validateJsonSchema as ap, vectorSimilarity as aq, type CompressHtmlResult as b, type CompressJsonResult as c, type CompressMarkdownResult as d, type CostEstimate as e, type DedupeStrategy as f, type DiffEntry2 as g, type DiffOp2 as h, type DiffResult2 as i, type EntityType2 as j, type ExtractJsonResult as k, type ExtractKeywordsResult as l, type ExtractUrlsResult as m, type FewShotFormat as n, type FewShotFormatResult as o, type InjectionFinding as p, type JsonRepairResult as q, type MergeResult as r, type MergeStrategy as s, type ModelPricing as t, type PiiFinding as u, type PiiType as v, type RelevanceResult as w, type SecretDetectResult as x, type SecretFinding as y, type SecretType as z };
502
+ export { type VectorSimilarityResult as $, type RetryJitterMode as A, type SecretDetectResult as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type FewShotExample as F, type SecretFinding as G, type SecretType as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, type SummaryResult as L, MODEL_PRICING as M, type TextChunk as N, type TokenEstimate as O, type PiiDetectResult as P, type TokenEstimateResult as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type ToolSchemaIssue as U, type ToolSchemaLintResult as V, type TrimResult as W, type TrimStrategy as X, type UrlMatch as Y, type ValidationError as Z, type ValidationResult as _, ai_agent as a, calculateRetryBackoffSchedule as a0, chunkText as a1, compressHtml as a2, compressJson as a3, compressMarkdown as a4, deduplicateLines as a5, detectPii as a6, detectPromptInjection as a7, detectSecrets as a8, diffJson as a9, estimateCost as aa, estimateTokens as ab, expandQuery as ac, extractEntities as ad, extractJson as ae, extractKeywords as af, extractTables as ag, extractUrls as ah, flattenJson as ai, formatFewShotExamples as aj, lintToolSchema as ak, mergeJson as al, redactPii as am, repairJson as an, rerankChunks as ao, sanitizeHtml as ap, scoreRelevance as aq, summarizeForLlm as ar, trimToTokens as as, unflattenJson as at, validateJsonSchema as au, vectorSimilarity as av, type CompressHtmlResult as b, type CompressJsonResult as c, type CompressMarkdownResult as d, type CostEstimate as e, type DedupeStrategy as f, type DiffEntry2 as g, type DiffOp2 as h, type DiffResult2 as i, type EntityType2 as j, type ExtractJsonResult as k, type ExtractKeywordsResult as l, type ExtractUrlsResult as m, type FewShotFormat as n, type FewShotFormatResult as o, type InjectionFinding as p, type JsonRepairResult as q, type MergeResult as r, type MergeStrategy as s, type ModelPricing as t, type PiiFinding as u, type PiiType as v, type RelevanceResult as w, type RetryBackoffAttempt as x, type RetryBackoffInput as y, type RetryBackoffResult as z };
@@ -9,6 +9,7 @@
9
9
  * - prompt-injection : detectPromptInjection
10
10
  * - json-repair : repairJson
11
11
  * - few-shot-formatter : formatFewShotExamples
12
+ * - retry-backoff-calculator : calculateRetryBackoffSchedule
12
13
  */
13
14
  interface ModelPricing {
14
15
  model: string;
@@ -374,6 +375,40 @@ interface ToolSchemaLintResult {
374
375
  declare function lintToolSchema(jsonText: string): ToolSchemaLintResult | {
375
376
  error: string;
376
377
  };
378
+ type RetryJitterMode = 'none' | 'full' | 'equal';
379
+ interface RetryBackoffInput {
380
+ baseDelayMs: number;
381
+ multiplier: number;
382
+ maxRetries: number;
383
+ maxDelayMs?: number | null;
384
+ jitter?: RetryJitterMode;
385
+ }
386
+ interface RetryBackoffAttempt {
387
+ attempt: number;
388
+ nominalDelayMs: number;
389
+ minDelayMs: number;
390
+ maxDelayMs: number;
391
+ }
392
+ interface RetryBackoffResult {
393
+ attempts: RetryBackoffAttempt[];
394
+ jitter: RetryJitterMode;
395
+ totalBestCaseMs: number;
396
+ totalWorstCaseMs: number;
397
+ }
398
+ /**
399
+ * Compute the full sequence of delays an exponential-backoff retry policy
400
+ * would actually produce: baseDelayMs * multiplier^(attempt-1), optionally
401
+ * capped at maxDelayMs, for each of maxRetries attempts. With jitter
402
+ * enabled, each attempt gets a [min, max] delay range instead of a single
403
+ * value ("full" jitter is uniform between 0 and the nominal delay; "equal"
404
+ * jitter is uniform between half the nominal delay and the full value),
405
+ * and the totals sum the worst case (always the nominal/max delay) against
406
+ * the best case (the minimum possible delay at every attempt). Pure
407
+ * arithmetic — it doesn't execute any retries or make any request.
408
+ */
409
+ declare function calculateRetryBackoffSchedule(input: RetryBackoffInput): RetryBackoffResult | {
410
+ error: string;
411
+ };
377
412
 
378
413
  type ai_agent_ChunkStrategy = ChunkStrategy;
379
414
  type ai_agent_CompressHtmlResult = CompressHtmlResult;
@@ -407,6 +442,10 @@ type ai_agent_PiiFinding = PiiFinding;
407
442
  type ai_agent_PiiType = PiiType;
408
443
  type ai_agent_RankedChunk = RankedChunk;
409
444
  type ai_agent_RelevanceResult = RelevanceResult;
445
+ type ai_agent_RetryBackoffAttempt = RetryBackoffAttempt;
446
+ type ai_agent_RetryBackoffInput = RetryBackoffInput;
447
+ type ai_agent_RetryBackoffResult = RetryBackoffResult;
448
+ type ai_agent_RetryJitterMode = RetryJitterMode;
410
449
  type ai_agent_SanitizeResult = SanitizeResult;
411
450
  type ai_agent_SecretDetectResult = SecretDetectResult;
412
451
  type ai_agent_SecretFinding = SecretFinding;
@@ -424,6 +463,7 @@ type ai_agent_UrlMatch = UrlMatch;
424
463
  type ai_agent_ValidationError = ValidationError;
425
464
  type ai_agent_ValidationResult = ValidationResult;
426
465
  type ai_agent_VectorSimilarityResult = VectorSimilarityResult;
466
+ declare const ai_agent_calculateRetryBackoffSchedule: typeof calculateRetryBackoffSchedule;
427
467
  declare const ai_agent_chunkText: typeof chunkText;
428
468
  declare const ai_agent_compressHtml: typeof compressHtml;
429
469
  declare const ai_agent_compressJson: typeof compressJson;
@@ -456,7 +496,7 @@ declare const ai_agent_unflattenJson: typeof unflattenJson;
456
496
  declare const ai_agent_validateJsonSchema: typeof validateJsonSchema;
457
497
  declare const ai_agent_vectorSimilarity: typeof vectorSimilarity;
458
498
  declare namespace ai_agent {
459
- export { type ai_agent_ChunkStrategy as ChunkStrategy, type ai_agent_CompressHtmlResult as CompressHtmlResult, type ai_agent_CompressJsonResult as CompressJsonResult, type ai_agent_CompressMarkdownResult as CompressMarkdownResult, type ai_agent_CostEstimate as CostEstimate, type ai_agent_DedupeResult as DedupeResult, type ai_agent_DedupeStrategy as DedupeStrategy, type ai_agent_DiffEntry2 as DiffEntry2, type ai_agent_DiffOp2 as DiffOp2, type ai_agent_DiffResult2 as DiffResult2, type ai_agent_Entity2 as Entity2, type ai_agent_EntityType2 as EntityType2, type ai_agent_ExtractJsonResult as ExtractJsonResult, type ai_agent_ExtractKeywordsResult as ExtractKeywordsResult, type ai_agent_ExtractUrlsResult as ExtractUrlsResult, type ai_agent_FewShotExample as FewShotExample, type ai_agent_FewShotFormat as FewShotFormat, type ai_agent_FewShotFormatResult as FewShotFormatResult, type ai_agent_InjectionDetectResult as InjectionDetectResult, type ai_agent_InjectionFinding as InjectionFinding, type ai_agent_JsonBlock as JsonBlock, type ai_agent_JsonRepairResult as JsonRepairResult, type ai_agent_Keyword as Keyword, ai_agent_MODEL_PRICING as MODEL_PRICING, type ai_agent_MergeResult as MergeResult, type ai_agent_MergeStrategy as MergeStrategy, type ai_agent_ModelPricing as ModelPricing, type ai_agent_PiiDetectResult as PiiDetectResult, type ai_agent_PiiFinding as PiiFinding, type ai_agent_PiiType as PiiType, type ai_agent_RankedChunk as RankedChunk, type ai_agent_RelevanceResult as RelevanceResult, type ai_agent_SanitizeResult as SanitizeResult, type ai_agent_SecretDetectResult as SecretDetectResult, type ai_agent_SecretFinding as SecretFinding, type ai_agent_SecretType as SecretType, type ai_agent_SummaryResult as SummaryResult, type ai_agent_TableResult2 as TableResult2, type ai_agent_TextChunk as TextChunk, type ai_agent_TokenEstimate as TokenEstimate, type ai_agent_TokenEstimateResult as TokenEstimateResult, type ai_agent_ToolSchemaIssue as ToolSchemaIssue, type ai_agent_ToolSchemaLintResult as ToolSchemaLintResult, type ai_agent_TrimResult as TrimResult, type ai_agent_TrimStrategy as TrimStrategy, type ai_agent_UrlMatch as UrlMatch, type ai_agent_ValidationError as ValidationError, type ai_agent_ValidationResult as ValidationResult, type ai_agent_VectorSimilarityResult as VectorSimilarityResult, ai_agent_chunkText as chunkText, ai_agent_compressHtml as compressHtml, ai_agent_compressJson as compressJson, ai_agent_compressMarkdown as compressMarkdown, ai_agent_deduplicateLines as deduplicateLines, ai_agent_detectPii as detectPii, ai_agent_detectPromptInjection as detectPromptInjection, ai_agent_detectSecrets as detectSecrets, ai_agent_diffJson as diffJson, ai_agent_estimateCost as estimateCost, ai_agent_estimateTokens as estimateTokens, ai_agent_expandQuery as expandQuery, ai_agent_extractEntities as extractEntities, ai_agent_extractJson as extractJson, ai_agent_extractKeywords as extractKeywords, ai_agent_extractTables as extractTables, ai_agent_extractUrls as extractUrls, ai_agent_flattenJson as flattenJson, ai_agent_formatFewShotExamples as formatFewShotExamples, ai_agent_lintToolSchema as lintToolSchema, ai_agent_mergeJson as mergeJson, ai_agent_redactPii as redactPii, ai_agent_repairJson as repairJson, ai_agent_rerankChunks as rerankChunks, ai_agent_sanitizeHtml as sanitizeHtml, ai_agent_scoreRelevance as scoreRelevance, ai_agent_summarizeForLlm as summarizeForLlm, ai_agent_trimToTokens as trimToTokens, ai_agent_unflattenJson as unflattenJson, ai_agent_validateJsonSchema as validateJsonSchema, ai_agent_vectorSimilarity as vectorSimilarity };
499
+ export { type ai_agent_ChunkStrategy as ChunkStrategy, type ai_agent_CompressHtmlResult as CompressHtmlResult, type ai_agent_CompressJsonResult as CompressJsonResult, type ai_agent_CompressMarkdownResult as CompressMarkdownResult, type ai_agent_CostEstimate as CostEstimate, type ai_agent_DedupeResult as DedupeResult, type ai_agent_DedupeStrategy as DedupeStrategy, type ai_agent_DiffEntry2 as DiffEntry2, type ai_agent_DiffOp2 as DiffOp2, type ai_agent_DiffResult2 as DiffResult2, type ai_agent_Entity2 as Entity2, type ai_agent_EntityType2 as EntityType2, type ai_agent_ExtractJsonResult as ExtractJsonResult, type ai_agent_ExtractKeywordsResult as ExtractKeywordsResult, type ai_agent_ExtractUrlsResult as ExtractUrlsResult, type ai_agent_FewShotExample as FewShotExample, type ai_agent_FewShotFormat as FewShotFormat, type ai_agent_FewShotFormatResult as FewShotFormatResult, type ai_agent_InjectionDetectResult as InjectionDetectResult, type ai_agent_InjectionFinding as InjectionFinding, type ai_agent_JsonBlock as JsonBlock, type ai_agent_JsonRepairResult as JsonRepairResult, type ai_agent_Keyword as Keyword, ai_agent_MODEL_PRICING as MODEL_PRICING, type ai_agent_MergeResult as MergeResult, type ai_agent_MergeStrategy as MergeStrategy, type ai_agent_ModelPricing as ModelPricing, type ai_agent_PiiDetectResult as PiiDetectResult, type ai_agent_PiiFinding as PiiFinding, type ai_agent_PiiType as PiiType, type ai_agent_RankedChunk as RankedChunk, type ai_agent_RelevanceResult as RelevanceResult, type ai_agent_RetryBackoffAttempt as RetryBackoffAttempt, type ai_agent_RetryBackoffInput as RetryBackoffInput, type ai_agent_RetryBackoffResult as RetryBackoffResult, type ai_agent_RetryJitterMode as RetryJitterMode, type ai_agent_SanitizeResult as SanitizeResult, type ai_agent_SecretDetectResult as SecretDetectResult, type ai_agent_SecretFinding as SecretFinding, type ai_agent_SecretType as SecretType, type ai_agent_SummaryResult as SummaryResult, type ai_agent_TableResult2 as TableResult2, type ai_agent_TextChunk as TextChunk, type ai_agent_TokenEstimate as TokenEstimate, type ai_agent_TokenEstimateResult as TokenEstimateResult, type ai_agent_ToolSchemaIssue as ToolSchemaIssue, type ai_agent_ToolSchemaLintResult as ToolSchemaLintResult, type ai_agent_TrimResult as TrimResult, type ai_agent_TrimStrategy as TrimStrategy, type ai_agent_UrlMatch as UrlMatch, type ai_agent_ValidationError as ValidationError, type ai_agent_ValidationResult as ValidationResult, type ai_agent_VectorSimilarityResult as VectorSimilarityResult, ai_agent_calculateRetryBackoffSchedule as calculateRetryBackoffSchedule, ai_agent_chunkText as chunkText, ai_agent_compressHtml as compressHtml, ai_agent_compressJson as compressJson, ai_agent_compressMarkdown as compressMarkdown, ai_agent_deduplicateLines as deduplicateLines, ai_agent_detectPii as detectPii, ai_agent_detectPromptInjection as detectPromptInjection, ai_agent_detectSecrets as detectSecrets, ai_agent_diffJson as diffJson, ai_agent_estimateCost as estimateCost, ai_agent_estimateTokens as estimateTokens, ai_agent_expandQuery as expandQuery, ai_agent_extractEntities as extractEntities, ai_agent_extractJson as extractJson, ai_agent_extractKeywords as extractKeywords, ai_agent_extractTables as extractTables, ai_agent_extractUrls as extractUrls, ai_agent_flattenJson as flattenJson, ai_agent_formatFewShotExamples as formatFewShotExamples, ai_agent_lintToolSchema as lintToolSchema, ai_agent_mergeJson as mergeJson, ai_agent_redactPii as redactPii, ai_agent_repairJson as repairJson, ai_agent_rerankChunks as rerankChunks, ai_agent_sanitizeHtml as sanitizeHtml, ai_agent_scoreRelevance as scoreRelevance, ai_agent_summarizeForLlm as summarizeForLlm, ai_agent_trimToTokens as trimToTokens, ai_agent_unflattenJson as unflattenJson, ai_agent_validateJsonSchema as validateJsonSchema, ai_agent_vectorSimilarity as vectorSimilarity };
460
500
  }
461
501
 
462
- export { compressMarkdown as $, type SummaryResult as A, type TextChunk as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type FewShotExample as F, type TokenEstimate as G, type TokenEstimateResult as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, type ToolSchemaIssue as L, MODEL_PRICING as M, type ToolSchemaLintResult as N, type TrimResult as O, type PiiDetectResult as P, type TrimStrategy as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type UrlMatch as U, type ValidationError as V, type ValidationResult as W, type VectorSimilarityResult as X, chunkText as Y, compressHtml as Z, compressJson as _, ai_agent as a, deduplicateLines as a0, detectPii as a1, detectPromptInjection as a2, detectSecrets as a3, diffJson as a4, estimateCost as a5, estimateTokens as a6, expandQuery as a7, extractEntities as a8, extractJson as a9, extractKeywords as aa, extractTables as ab, extractUrls as ac, flattenJson as ad, formatFewShotExamples as ae, lintToolSchema as af, mergeJson as ag, redactPii as ah, repairJson as ai, rerankChunks as aj, sanitizeHtml as ak, scoreRelevance as al, summarizeForLlm as am, trimToTokens as an, unflattenJson as ao, validateJsonSchema as ap, vectorSimilarity as aq, type CompressHtmlResult as b, type CompressJsonResult as c, type CompressMarkdownResult as d, type CostEstimate as e, type DedupeStrategy as f, type DiffEntry2 as g, type DiffOp2 as h, type DiffResult2 as i, type EntityType2 as j, type ExtractJsonResult as k, type ExtractKeywordsResult as l, type ExtractUrlsResult as m, type FewShotFormat as n, type FewShotFormatResult as o, type InjectionFinding as p, type JsonRepairResult as q, type MergeResult as r, type MergeStrategy as s, type ModelPricing as t, type PiiFinding as u, type PiiType as v, type RelevanceResult as w, type SecretDetectResult as x, type SecretFinding as y, type SecretType as z };
502
+ export { type VectorSimilarityResult as $, type RetryJitterMode as A, type SecretDetectResult as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type FewShotExample as F, type SecretFinding as G, type SecretType as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, type SummaryResult as L, MODEL_PRICING as M, type TextChunk as N, type TokenEstimate as O, type PiiDetectResult as P, type TokenEstimateResult as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type ToolSchemaIssue as U, type ToolSchemaLintResult as V, type TrimResult as W, type TrimStrategy as X, type UrlMatch as Y, type ValidationError as Z, type ValidationResult as _, ai_agent as a, calculateRetryBackoffSchedule as a0, chunkText as a1, compressHtml as a2, compressJson as a3, compressMarkdown as a4, deduplicateLines as a5, detectPii as a6, detectPromptInjection as a7, detectSecrets as a8, diffJson as a9, estimateCost as aa, estimateTokens as ab, expandQuery as ac, extractEntities as ad, extractJson as ae, extractKeywords as af, extractTables as ag, extractUrls as ah, flattenJson as ai, formatFewShotExamples as aj, lintToolSchema as ak, mergeJson as al, redactPii as am, repairJson as an, rerankChunks as ao, sanitizeHtml as ap, scoreRelevance as aq, summarizeForLlm as ar, trimToTokens as as, unflattenJson as at, validateJsonSchema as au, vectorSimilarity as av, type CompressHtmlResult as b, type CompressJsonResult as c, type CompressMarkdownResult as d, type CostEstimate as e, type DedupeStrategy as f, type DiffEntry2 as g, type DiffOp2 as h, type DiffResult2 as i, type EntityType2 as j, type ExtractJsonResult as k, type ExtractKeywordsResult as l, type ExtractUrlsResult as m, type FewShotFormat as n, type FewShotFormatResult as o, type InjectionFinding as p, type JsonRepairResult as q, type MergeResult as r, type MergeStrategy as s, type ModelPricing as t, type PiiFinding as u, type PiiType as v, type RelevanceResult as w, type RetryBackoffAttempt as x, type RetryBackoffInput as y, type RetryBackoffResult as z };
@@ -4,6 +4,7 @@ import { __export } from './chunk-MLKGABMK.js';
4
4
  var ai_agent_exports = {};
5
5
  __export(ai_agent_exports, {
6
6
  MODEL_PRICING: () => MODEL_PRICING,
7
+ calculateRetryBackoffSchedule: () => calculateRetryBackoffSchedule,
7
8
  chunkText: () => chunkText,
8
9
  compressHtml: () => compressHtml,
9
10
  compressJson: () => compressJson,
@@ -1116,5 +1117,61 @@ function lintToolSchema(jsonText) {
1116
1117
  const valid = !issues.some((i) => i.severity === "error");
1117
1118
  return { toolCount: normalized.length, issues, valid };
1118
1119
  }
1120
+ function calculateRetryBackoffSchedule(input) {
1121
+ const { baseDelayMs, multiplier, maxRetries, maxDelayMs, jitter = "none" } = input;
1122
+ if (!Number.isFinite(baseDelayMs) || baseDelayMs <= 0) {
1123
+ return { error: "baseDelayMs must be a finite number greater than zero" };
1124
+ }
1125
+ if (!Number.isFinite(multiplier) || multiplier < 1) {
1126
+ return { error: "multiplier must be a finite number of at least 1" };
1127
+ }
1128
+ if (!Number.isInteger(maxRetries) || maxRetries < 1 || maxRetries > 50) {
1129
+ return { error: "maxRetries must be a whole number between 1 and 50" };
1130
+ }
1131
+ if (maxDelayMs !== void 0 && maxDelayMs !== null) {
1132
+ if (!Number.isFinite(maxDelayMs) || maxDelayMs <= 0) {
1133
+ return { error: "maxDelayMs must be a finite number greater than zero when provided" };
1134
+ }
1135
+ }
1136
+ if (jitter !== "none" && jitter !== "full" && jitter !== "equal") {
1137
+ return { error: "jitter must be one of 'none', 'full', or 'equal'" };
1138
+ }
1139
+ const round0 = (n) => Math.round(n);
1140
+ const attempts = [];
1141
+ let totalBestCaseMs = 0;
1142
+ let totalWorstCaseMs = 0;
1143
+ for (let i = 1; i <= maxRetries; i++) {
1144
+ let nominal = baseDelayMs * Math.pow(multiplier, i - 1);
1145
+ if (maxDelayMs !== void 0 && maxDelayMs !== null) {
1146
+ nominal = Math.min(nominal, maxDelayMs);
1147
+ }
1148
+ let minDelay;
1149
+ let maxDelay;
1150
+ if (jitter === "full") {
1151
+ minDelay = 0;
1152
+ maxDelay = nominal;
1153
+ } else if (jitter === "equal") {
1154
+ minDelay = nominal / 2;
1155
+ maxDelay = nominal;
1156
+ } else {
1157
+ minDelay = nominal;
1158
+ maxDelay = nominal;
1159
+ }
1160
+ attempts.push({
1161
+ attempt: i,
1162
+ nominalDelayMs: round0(nominal),
1163
+ minDelayMs: round0(minDelay),
1164
+ maxDelayMs: round0(maxDelay)
1165
+ });
1166
+ totalBestCaseMs += minDelay;
1167
+ totalWorstCaseMs += maxDelay;
1168
+ }
1169
+ return {
1170
+ attempts,
1171
+ jitter,
1172
+ totalBestCaseMs: round0(totalBestCaseMs),
1173
+ totalWorstCaseMs: round0(totalWorstCaseMs)
1174
+ };
1175
+ }
1119
1176
 
1120
- export { MODEL_PRICING, ai_agent_exports, chunkText, compressHtml, compressJson, compressMarkdown, deduplicateLines, detectPii, detectPromptInjection, detectSecrets, diffJson, estimateCost, estimateTokens, expandQuery, extractEntities, extractJson, extractKeywords, extractTables, extractUrls, flattenJson, formatFewShotExamples, lintToolSchema, mergeJson, redactPii, repairJson, rerankChunks, sanitizeHtml, scoreRelevance, summarizeForLlm, trimToTokens, unflattenJson, validateJsonSchema, vectorSimilarity };
1177
+ export { MODEL_PRICING, ai_agent_exports, calculateRetryBackoffSchedule, chunkText, compressHtml, compressJson, compressMarkdown, deduplicateLines, detectPii, detectPromptInjection, detectSecrets, diffJson, estimateCost, estimateTokens, expandQuery, extractEntities, extractJson, extractKeywords, extractTables, extractUrls, flattenJson, formatFewShotExamples, lintToolSchema, mergeJson, redactPii, repairJson, rerankChunks, sanitizeHtml, scoreRelevance, summarizeForLlm, trimToTokens, unflattenJson, validateJsonSchema, vectorSimilarity };
@@ -44,6 +44,7 @@ __export(units_exports, {
44
44
  calculateMovingAverages: () => calculateMovingAverages,
45
45
  calculatePaybackPeriod: () => calculatePaybackPeriod,
46
46
  calculatePercentageChange: () => calculatePercentageChange,
47
+ calculateRealRateOfReturn: () => calculateRealRateOfReturn,
47
48
  calculateRequiredBandwidth: () => calculateRequiredBandwidth,
48
49
  calculateRoi: () => calculateRoi,
49
50
  calculateRuleOf72: () => calculateRuleOf72,
@@ -2762,5 +2763,49 @@ function calculateRequiredBandwidth(fileSize, fileSizeUnit, targetSeconds) {
2762
2763
  requiredMBps: requiredBitsPerSecond / 8 / 1e6
2763
2764
  };
2764
2765
  }
2766
+ var _REAL_RATE_FIELDS = ["nominalRatePercent", "inflationRatePercent", "realRatePercent"];
2767
+ function calculateRealRateOfReturn(input) {
2768
+ const provided = (v) => typeof v === "number" && Number.isFinite(v);
2769
+ const given = _REAL_RATE_FIELDS.filter((f) => provided(input[f]));
2770
+ if (given.length !== 2) {
2771
+ return { error: `Provide exactly two of nominalRatePercent, inflationRatePercent, realRatePercent (got ${given.length})` };
2772
+ }
2773
+ for (const f of given) {
2774
+ const v = input[f];
2775
+ if (v <= -100) return { error: `${f} must be greater than -100` };
2776
+ }
2777
+ const has = (f) => given.includes(f);
2778
+ const nominal0 = input.nominalRatePercent;
2779
+ const inflation0 = input.inflationRatePercent;
2780
+ const real0 = input.realRatePercent;
2781
+ let nominalRatePercent;
2782
+ let inflationRatePercent;
2783
+ let realRatePercent;
2784
+ let solvedFor;
2785
+ if (has("nominalRatePercent") && has("inflationRatePercent")) {
2786
+ nominalRatePercent = nominal0;
2787
+ inflationRatePercent = inflation0;
2788
+ realRatePercent = ((1 + nominal0 / 100) / (1 + inflation0 / 100) - 1) * 100;
2789
+ solvedFor = "realRatePercent";
2790
+ } else if (has("realRatePercent") && has("inflationRatePercent")) {
2791
+ realRatePercent = real0;
2792
+ inflationRatePercent = inflation0;
2793
+ nominalRatePercent = ((1 + real0 / 100) * (1 + inflation0 / 100) - 1) * 100;
2794
+ solvedFor = "nominalRatePercent";
2795
+ } else {
2796
+ nominalRatePercent = nominal0;
2797
+ realRatePercent = real0;
2798
+ inflationRatePercent = ((1 + nominal0 / 100) / (1 + real0 / 100) - 1) * 100;
2799
+ solvedFor = "inflationRatePercent";
2800
+ }
2801
+ const round4 = (n) => Math.round(n * 1e4) / 1e4;
2802
+ return {
2803
+ nominalRatePercent: round4(nominalRatePercent),
2804
+ inflationRatePercent: round4(inflationRatePercent),
2805
+ realRatePercent: round4(realRatePercent),
2806
+ given,
2807
+ solvedFor
2808
+ };
2809
+ }
2765
2810
 
2766
- export { BASE_LABELS, BASE_PREFIXES, BYTE_UNITS, COMMON_CURRENCIES, COMMON_LOCALES, COMMON_PERMISSIONS, COMMON_RATIOS, COMMON_SIZES, COMMON_TAX_RATES, COMMON_TIP_PERCENTAGES, COMMON_VIEWPORTS, GPA_GRADE_POINTS, USD_DENOMINATIONS, applySuccessiveDiscounts, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateBlendedLoanRate, calculateBreakEven, calculateCashBreakdown, calculateCashRounding, calculateCdMaturity, calculateChange, calculateCompoundInterest, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateExtraPaymentPayoff, calculateFreelancerRate, calculateGpa, calculateLoan, calculateLoanPrepaymentPenalty, calculateLoanRefinance, calculateMarginMarkup, calculateMortgagePoints, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRequiredBandwidth, calculateRoi, calculateRuleOf72, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTaxEquivalentYield, calculateTimeValue, calculateTipSplit, calculateTransferTime, calculateVideoBitrate, compareSemver, compareUnitPrices, convert, convertAprApy, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, marginToMarkup, markupToMargin, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, planDebtPayoff, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, units_exports, validateBarcode, validateCardNumber, validateIban, validateIsbn, validateIsin, validateVin, viewportToPx };
2811
+ export { BASE_LABELS, BASE_PREFIXES, BYTE_UNITS, COMMON_CURRENCIES, COMMON_LOCALES, COMMON_PERMISSIONS, COMMON_RATIOS, COMMON_SIZES, COMMON_TAX_RATES, COMMON_TIP_PERCENTAGES, COMMON_VIEWPORTS, GPA_GRADE_POINTS, USD_DENOMINATIONS, applySuccessiveDiscounts, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateBlendedLoanRate, calculateBreakEven, calculateCashBreakdown, calculateCashRounding, calculateCdMaturity, calculateChange, calculateCompoundInterest, calculateCreditUtilization, calculateDebtToIncomeRatio, calculateDepreciationSchedule, calculateDiscount, calculateEmi, calculateExtraPaymentPayoff, calculateFreelancerRate, calculateGpa, calculateLoan, calculateLoanPrepaymentPenalty, calculateLoanRefinance, calculateMarginMarkup, calculateMortgagePoints, calculateMovingAverages, calculatePaybackPeriod, calculatePercentageChange, calculateRealRateOfReturn, calculateRequiredBandwidth, calculateRoi, calculateRuleOf72, calculateSavingsGoal, calculateSimpleInterest, calculateTax, calculateTaxEquivalentYield, calculateTimeValue, calculateTipSplit, calculateTransferTime, calculateVideoBitrate, compareSemver, compareUnitPrices, convert, convertAprApy, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, marginToMarkup, markupToMargin, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, planDebtPayoff, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, units_exports, validateBarcode, validateCardNumber, validateIban, validateIsbn, validateIsin, validateVin, viewportToPx };
@@ -37,6 +37,7 @@ __export(data_exports, {
37
37
  minifyNdjson: () => minifyNdjson,
38
38
  minifyToml: () => minifyToml,
39
39
  minifyXml: () => minifyXml,
40
+ ndjsonToCsv: () => ndjsonToCsv,
40
41
  ndjsonToJsonArray: () => ndjsonToJsonArray,
41
42
  parseCsv: () => parseCsv,
42
43
  parseEnv: () => parseEnv,
@@ -1174,6 +1175,37 @@ function jsonArrayToNdjson(input) {
1174
1175
  if (!Array.isArray(parsed)) return { error: "Input must be a JSON array" };
1175
1176
  return parsed.map((item) => JSON.stringify(item)).join("\n");
1176
1177
  }
1178
+ function _stringifyCsvValue(value) {
1179
+ if (value === void 0 || value === null) return "";
1180
+ if (typeof value === "string") return value;
1181
+ if (typeof value === "object") return JSON.stringify(value);
1182
+ return String(value);
1183
+ }
1184
+ function ndjsonToCsv(input) {
1185
+ const result = validateNdjson(input);
1186
+ if (!result.valid) return { error: _firstNdjsonError(result) };
1187
+ if (result.lines.length === 0) return { error: "No records found" };
1188
+ const records = result.lines.map((l) => JSON.parse(l.raw));
1189
+ for (const record of records) {
1190
+ if (typeof record !== "object" || record === null || Array.isArray(record)) {
1191
+ return { error: "Every line must be a flat JSON object to convert to CSV" };
1192
+ }
1193
+ }
1194
+ const headers = [];
1195
+ const seen = /* @__PURE__ */ new Set();
1196
+ for (const record of records) {
1197
+ for (const key of Object.keys(record)) {
1198
+ if (!seen.has(key)) {
1199
+ seen.add(key);
1200
+ headers.push(key);
1201
+ }
1202
+ }
1203
+ }
1204
+ const rows = records.map(
1205
+ (record) => headers.map((h) => _stringifyCsvValue(record[h]))
1206
+ );
1207
+ return toCsvString(headers, rows);
1208
+ }
1177
1209
  function dedupeNdjson(input, keyField) {
1178
1210
  const validated = validateNdjson(input);
1179
1211
  if (!validated.valid) return { error: _firstNdjsonError(validated) };
@@ -1944,4 +1976,4 @@ function alignMarkdownTables(markdown) {
1944
1976
  return { output: outputLines.join("\n"), tables, warnings };
1945
1977
  }
1946
1978
 
1947
- export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, convertSubtitles, csvToJson, csvToSqlInsert, data_exports, dedupeNdjson, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, inferCsvColumnTypes, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, resolveYamlAnchors, serializeSubtitles, shiftSubtitles, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson };
1979
+ export { alignMarkdownTables, analyzeCaptionSpeed, calculateMarkdownTaskListProgress, convertSubtitles, csvToJson, csvToSqlInsert, data_exports, dedupeNdjson, detectDelimiter, detectSubtitleFormat, diffEnvExample, envToExport, envToJson, findCsvDuplicateRows, formatNdjson, formatSubtitleTimestamp, formatToml, formatXml, generateMarkdownToc, getSection, getSectionNames, getTomlStats, getXmlStats, getYamlStats, inferCsvColumnTypes, iniToJson, jsonArrayToNdjson, jsonToIni, jsonToToml, jsonToXml, minifyNdjson, minifyToml, minifyXml, ndjsonToCsv, ndjsonToJsonArray, parseCsv, parseEnv, parseFrontMatter, parseIni, parseSubtitleTimestamp, parseSubtitles, parseXmlToObject, resolveYamlAnchors, serializeSubtitles, shiftSubtitles, stringifyIni, toCsvString, tomlToJson, validateEnvKey, validateIni, validateNdjson, validateToml, validateXml, validateYaml, xmlToJson };
@@ -13,6 +13,7 @@
13
13
  * - env-diff-checker: diffEnvExample
14
14
  * - ndjson-formatter: validateNdjson, minifyNdjson, formatNdjson, ndjsonToJsonArray, jsonArrayToNdjson
15
15
  * - ndjson-dedup: dedupeNdjson
16
+ * - ndjson-to-csv-converter: ndjsonToCsv
16
17
  * - subtitle-converter: parseSubtitleTimestamp, formatSubtitleTimestamp, detectSubtitleFormat, parseSubtitles, serializeSubtitles, convertSubtitles, shiftSubtitles
17
18
  * - markdown-front-matter-parser: parseFrontMatter
18
19
  * - markdown-toc-generator: generateMarkdownToc
@@ -218,6 +219,15 @@ declare function ndjsonToJsonArray(input: string): string | {
218
219
  declare function jsonArrayToNdjson(input: string): string | {
219
220
  error: string;
220
221
  };
222
+ /**
223
+ * Convert NDJSON (one flat JSON object per line) into CSV, inferring the
224
+ * header row from the union of keys across every line in the order each
225
+ * key is first seen. A value that is itself an object or array is embedded
226
+ * as a JSON string rather than expanded into further columns.
227
+ */
228
+ declare function ndjsonToCsv(input: string): string | {
229
+ error: string;
230
+ };
221
231
  interface NdjsonDedupeResult {
222
232
  totalLines: number;
223
233
  uniqueLines: number;
@@ -610,6 +620,7 @@ declare const data_jsonToXml: typeof jsonToXml;
610
620
  declare const data_minifyNdjson: typeof minifyNdjson;
611
621
  declare const data_minifyToml: typeof minifyToml;
612
622
  declare const data_minifyXml: typeof minifyXml;
623
+ declare const data_ndjsonToCsv: typeof ndjsonToCsv;
613
624
  declare const data_ndjsonToJsonArray: typeof ndjsonToJsonArray;
614
625
  declare const data_parseCsv: typeof parseCsv;
615
626
  declare const data_parseEnv: typeof parseEnv;
@@ -632,7 +643,7 @@ declare const data_validateXml: typeof validateXml;
632
643
  declare const data_validateYaml: typeof validateYaml;
633
644
  declare const data_xmlToJson: typeof xmlToJson;
634
645
  declare namespace data {
635
- export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_IniSection as IniSection, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
646
+ export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_IniSection as IniSection, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToCsv as ndjsonToCsv, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
636
647
  }
637
648
 
638
- export { detectSubtitleFormat as $, type NdjsonValidateResult as A, type ParsedIni as B, type CaptionSpeedCue as C, type ParsedSubtitles as D, type EnvDiffError as E, type FrontMatterError as F, type SubtitleFormat as G, type XmlToJsonOptions as H, type IniSection as I, type YamlAnchorResolveError as J, type YamlAnchorResolveResult as K, alignMarkdownTables as L, type MarkdownTableAlignResult as M, type NdjsonDedupeResult as N, analyzeCaptionSpeed as O, type ParseOptions as P, calculateMarkdownTaskListProgress as Q, convertSubtitles as R, type SubtitleCue as S, type TomlFormatResult as T, csvToJson as U, type ValidationResult as V, csvToSqlInsert as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, dedupeNdjson as Z, detectDelimiter as _, type CaptionSpeedResult as a, diffEnvExample as a0, envToExport as a1, envToJson as a2, findCsvDuplicateRows as a3, formatNdjson as a4, formatSubtitleTimestamp as a5, formatToml as a6, formatXml as a7, generateMarkdownToc as a8, getSection as a9, tomlToJson as aA, validateEnvKey as aB, validateIni as aC, validateNdjson as aD, validateToml as aE, validateXml as aF, validateYaml as aG, xmlToJson as aH, getSectionNames as aa, getTomlStats as ab, getXmlStats as ac, getYamlStats as ad, inferCsvColumnTypes as ae, iniToJson as af, jsonArrayToNdjson as ag, jsonToIni as ah, jsonToToml as ai, jsonToXml as aj, minifyNdjson as ak, minifyToml as al, minifyXml as am, ndjsonToJsonArray as an, parseCsv as ao, parseEnv as ap, parseFrontMatter as aq, parseIni as ar, parseSubtitleTimestamp as as, parseSubtitles as at, parseXmlToObject as au, resolveYamlAnchors as av, serializeSubtitles as aw, shiftSubtitles as ax, stringifyIni as ay, toCsvString as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type MarkdownTableColumnAlignment as r, type MarkdownTableInfo as s, type MarkdownTaskListItem as t, type MarkdownTaskListProgressResult as u, type MarkdownTaskListSectionSummary as v, type MarkdownTocEntry as w, type MarkdownTocOptions as x, type MarkdownTocResult as y, type NdjsonLineResult as z };
649
+ export { detectSubtitleFormat as $, type NdjsonValidateResult as A, type ParsedIni as B, type CaptionSpeedCue as C, type ParsedSubtitles as D, type EnvDiffError as E, type FrontMatterError as F, type SubtitleFormat as G, type XmlToJsonOptions as H, type IniSection as I, type YamlAnchorResolveError as J, type YamlAnchorResolveResult as K, alignMarkdownTables as L, type MarkdownTableAlignResult as M, type NdjsonDedupeResult as N, analyzeCaptionSpeed as O, type ParseOptions as P, calculateMarkdownTaskListProgress as Q, convertSubtitles as R, type SubtitleCue as S, type TomlFormatResult as T, csvToJson as U, type ValidationResult as V, csvToSqlInsert as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, dedupeNdjson as Z, detectDelimiter as _, type CaptionSpeedResult as a, diffEnvExample as a0, envToExport as a1, envToJson as a2, findCsvDuplicateRows as a3, formatNdjson as a4, formatSubtitleTimestamp as a5, formatToml as a6, formatXml as a7, generateMarkdownToc as a8, getSection as a9, toCsvString as aA, tomlToJson as aB, validateEnvKey as aC, validateIni as aD, validateNdjson as aE, validateToml as aF, validateXml as aG, validateYaml as aH, xmlToJson as aI, getSectionNames as aa, getTomlStats as ab, getXmlStats as ac, getYamlStats as ad, inferCsvColumnTypes as ae, iniToJson as af, jsonArrayToNdjson as ag, jsonToIni as ah, jsonToToml as ai, jsonToXml as aj, minifyNdjson as ak, minifyToml as al, minifyXml as am, ndjsonToCsv as an, ndjsonToJsonArray as ao, parseCsv as ap, parseEnv as aq, parseFrontMatter as ar, parseIni as as, parseSubtitleTimestamp as at, parseSubtitles as au, parseXmlToObject as av, resolveYamlAnchors as aw, serializeSubtitles as ax, shiftSubtitles as ay, stringifyIni as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type MarkdownTableColumnAlignment as r, type MarkdownTableInfo as s, type MarkdownTaskListItem as t, type MarkdownTaskListProgressResult as u, type MarkdownTaskListSectionSummary as v, type MarkdownTocEntry as w, type MarkdownTocOptions as x, type MarkdownTocResult as y, type NdjsonLineResult as z };
@@ -13,6 +13,7 @@
13
13
  * - env-diff-checker: diffEnvExample
14
14
  * - ndjson-formatter: validateNdjson, minifyNdjson, formatNdjson, ndjsonToJsonArray, jsonArrayToNdjson
15
15
  * - ndjson-dedup: dedupeNdjson
16
+ * - ndjson-to-csv-converter: ndjsonToCsv
16
17
  * - subtitle-converter: parseSubtitleTimestamp, formatSubtitleTimestamp, detectSubtitleFormat, parseSubtitles, serializeSubtitles, convertSubtitles, shiftSubtitles
17
18
  * - markdown-front-matter-parser: parseFrontMatter
18
19
  * - markdown-toc-generator: generateMarkdownToc
@@ -218,6 +219,15 @@ declare function ndjsonToJsonArray(input: string): string | {
218
219
  declare function jsonArrayToNdjson(input: string): string | {
219
220
  error: string;
220
221
  };
222
+ /**
223
+ * Convert NDJSON (one flat JSON object per line) into CSV, inferring the
224
+ * header row from the union of keys across every line in the order each
225
+ * key is first seen. A value that is itself an object or array is embedded
226
+ * as a JSON string rather than expanded into further columns.
227
+ */
228
+ declare function ndjsonToCsv(input: string): string | {
229
+ error: string;
230
+ };
221
231
  interface NdjsonDedupeResult {
222
232
  totalLines: number;
223
233
  uniqueLines: number;
@@ -610,6 +620,7 @@ declare const data_jsonToXml: typeof jsonToXml;
610
620
  declare const data_minifyNdjson: typeof minifyNdjson;
611
621
  declare const data_minifyToml: typeof minifyToml;
612
622
  declare const data_minifyXml: typeof minifyXml;
623
+ declare const data_ndjsonToCsv: typeof ndjsonToCsv;
613
624
  declare const data_ndjsonToJsonArray: typeof ndjsonToJsonArray;
614
625
  declare const data_parseCsv: typeof parseCsv;
615
626
  declare const data_parseEnv: typeof parseEnv;
@@ -632,7 +643,7 @@ declare const data_validateXml: typeof validateXml;
632
643
  declare const data_validateYaml: typeof validateYaml;
633
644
  declare const data_xmlToJson: typeof xmlToJson;
634
645
  declare namespace data {
635
- export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_IniSection as IniSection, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
646
+ export { type data_CaptionSpeedCue as CaptionSpeedCue, type data_CaptionSpeedResult as CaptionSpeedResult, type data_ConvertedSubtitles as ConvertedSubtitles, type data_CsvColumnType as CsvColumnType, type data_CsvColumnTypeInfo as CsvColumnTypeInfo, type data_CsvColumnTypeOptions as CsvColumnTypeOptions, type data_CsvColumnTypeResult as CsvColumnTypeResult, type data_CsvDuplicateGroup as CsvDuplicateGroup, type data_CsvDuplicateOptions as CsvDuplicateOptions, type data_CsvDuplicateResult as CsvDuplicateResult, type data_CsvParseResult as CsvParseResult, type data_CsvToSqlOptions as CsvToSqlOptions, type data_CsvToSqlResult as CsvToSqlResult, type data_EnvDiffError as EnvDiffError, type data_EnvDiffResult as EnvDiffResult, type data_EnvEntry as EnvEntry, type data_EnvParseResult as EnvParseResult, type data_FrontMatterError as FrontMatterError, type data_FrontMatterResult as FrontMatterResult, type data_IniSection as IniSection, type data_MarkdownTableAlignResult as MarkdownTableAlignResult, type data_MarkdownTableColumnAlignment as MarkdownTableColumnAlignment, type data_MarkdownTableInfo as MarkdownTableInfo, type data_MarkdownTaskListItem as MarkdownTaskListItem, type data_MarkdownTaskListProgressResult as MarkdownTaskListProgressResult, type data_MarkdownTaskListSectionSummary as MarkdownTaskListSectionSummary, type data_MarkdownTocEntry as MarkdownTocEntry, type data_MarkdownTocOptions as MarkdownTocOptions, type data_MarkdownTocResult as MarkdownTocResult, type data_NdjsonDedupeResult as NdjsonDedupeResult, type data_NdjsonLineResult as NdjsonLineResult, type data_NdjsonValidateResult as NdjsonValidateResult, type data_ParseOptions as ParseOptions, type data_ParsedIni as ParsedIni, type data_ParsedSubtitles as ParsedSubtitles, type data_SubtitleCue as SubtitleCue, type data_SubtitleFormat as SubtitleFormat, type data_TomlFormatResult as TomlFormatResult, type data_ValidationResult as ValidationResult, type data_XmlFormatResult as XmlFormatResult, type data_XmlToJsonOptions as XmlToJsonOptions, type data_YamlAnchorInfo as YamlAnchorInfo, type data_YamlAnchorResolveError as YamlAnchorResolveError, type data_YamlAnchorResolveResult as YamlAnchorResolveResult, data_alignMarkdownTables as alignMarkdownTables, data_analyzeCaptionSpeed as analyzeCaptionSpeed, data_calculateMarkdownTaskListProgress as calculateMarkdownTaskListProgress, data_convertSubtitles as convertSubtitles, data_csvToJson as csvToJson, data_csvToSqlInsert as csvToSqlInsert, data_dedupeNdjson as dedupeNdjson, data_detectDelimiter as detectDelimiter, data_detectSubtitleFormat as detectSubtitleFormat, data_diffEnvExample as diffEnvExample, data_envToExport as envToExport, data_envToJson as envToJson, data_findCsvDuplicateRows as findCsvDuplicateRows, data_formatNdjson as formatNdjson, data_formatSubtitleTimestamp as formatSubtitleTimestamp, data_formatToml as formatToml, data_formatXml as formatXml, data_generateMarkdownToc as generateMarkdownToc, data_getSection as getSection, data_getSectionNames as getSectionNames, data_getTomlStats as getTomlStats, data_getXmlStats as getXmlStats, data_getYamlStats as getYamlStats, data_inferCsvColumnTypes as inferCsvColumnTypes, data_iniToJson as iniToJson, data_jsonArrayToNdjson as jsonArrayToNdjson, data_jsonToIni as jsonToIni, data_jsonToToml as jsonToToml, data_jsonToXml as jsonToXml, data_minifyNdjson as minifyNdjson, data_minifyToml as minifyToml, data_minifyXml as minifyXml, data_ndjsonToCsv as ndjsonToCsv, data_ndjsonToJsonArray as ndjsonToJsonArray, data_parseCsv as parseCsv, data_parseEnv as parseEnv, data_parseFrontMatter as parseFrontMatter, data_parseIni as parseIni, data_parseSubtitleTimestamp as parseSubtitleTimestamp, data_parseSubtitles as parseSubtitles, data_parseXmlToObject as parseXmlToObject, data_resolveYamlAnchors as resolveYamlAnchors, data_serializeSubtitles as serializeSubtitles, data_shiftSubtitles as shiftSubtitles, data_stringifyIni as stringifyIni, data_toCsvString as toCsvString, data_tomlToJson as tomlToJson, data_validateEnvKey as validateEnvKey, data_validateIni as validateIni, data_validateNdjson as validateNdjson, data_validateToml as validateToml, data_validateXml as validateXml, data_validateYaml as validateYaml, data_xmlToJson as xmlToJson };
636
647
  }
637
648
 
638
- export { detectSubtitleFormat as $, type NdjsonValidateResult as A, type ParsedIni as B, type CaptionSpeedCue as C, type ParsedSubtitles as D, type EnvDiffError as E, type FrontMatterError as F, type SubtitleFormat as G, type XmlToJsonOptions as H, type IniSection as I, type YamlAnchorResolveError as J, type YamlAnchorResolveResult as K, alignMarkdownTables as L, type MarkdownTableAlignResult as M, type NdjsonDedupeResult as N, analyzeCaptionSpeed as O, type ParseOptions as P, calculateMarkdownTaskListProgress as Q, convertSubtitles as R, type SubtitleCue as S, type TomlFormatResult as T, csvToJson as U, type ValidationResult as V, csvToSqlInsert as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, dedupeNdjson as Z, detectDelimiter as _, type CaptionSpeedResult as a, diffEnvExample as a0, envToExport as a1, envToJson as a2, findCsvDuplicateRows as a3, formatNdjson as a4, formatSubtitleTimestamp as a5, formatToml as a6, formatXml as a7, generateMarkdownToc as a8, getSection as a9, tomlToJson as aA, validateEnvKey as aB, validateIni as aC, validateNdjson as aD, validateToml as aE, validateXml as aF, validateYaml as aG, xmlToJson as aH, getSectionNames as aa, getTomlStats as ab, getXmlStats as ac, getYamlStats as ad, inferCsvColumnTypes as ae, iniToJson as af, jsonArrayToNdjson as ag, jsonToIni as ah, jsonToToml as ai, jsonToXml as aj, minifyNdjson as ak, minifyToml as al, minifyXml as am, ndjsonToJsonArray as an, parseCsv as ao, parseEnv as ap, parseFrontMatter as aq, parseIni as ar, parseSubtitleTimestamp as as, parseSubtitles as at, parseXmlToObject as au, resolveYamlAnchors as av, serializeSubtitles as aw, shiftSubtitles as ax, stringifyIni as ay, toCsvString as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type MarkdownTableColumnAlignment as r, type MarkdownTableInfo as s, type MarkdownTaskListItem as t, type MarkdownTaskListProgressResult as u, type MarkdownTaskListSectionSummary as v, type MarkdownTocEntry as w, type MarkdownTocOptions as x, type MarkdownTocResult as y, type NdjsonLineResult as z };
649
+ export { detectSubtitleFormat as $, type NdjsonValidateResult as A, type ParsedIni as B, type CaptionSpeedCue as C, type ParsedSubtitles as D, type EnvDiffError as E, type FrontMatterError as F, type SubtitleFormat as G, type XmlToJsonOptions as H, type IniSection as I, type YamlAnchorResolveError as J, type YamlAnchorResolveResult as K, alignMarkdownTables as L, type MarkdownTableAlignResult as M, type NdjsonDedupeResult as N, analyzeCaptionSpeed as O, type ParseOptions as P, calculateMarkdownTaskListProgress as Q, convertSubtitles as R, type SubtitleCue as S, type TomlFormatResult as T, csvToJson as U, type ValidationResult as V, csvToSqlInsert as W, type XmlFormatResult as X, type YamlAnchorInfo as Y, dedupeNdjson as Z, detectDelimiter as _, type CaptionSpeedResult as a, diffEnvExample as a0, envToExport as a1, envToJson as a2, findCsvDuplicateRows as a3, formatNdjson as a4, formatSubtitleTimestamp as a5, formatToml as a6, formatXml as a7, generateMarkdownToc as a8, getSection as a9, toCsvString as aA, tomlToJson as aB, validateEnvKey as aC, validateIni as aD, validateNdjson as aE, validateToml as aF, validateXml as aG, validateYaml as aH, xmlToJson as aI, getSectionNames as aa, getTomlStats as ab, getXmlStats as ac, getYamlStats as ad, inferCsvColumnTypes as ae, iniToJson as af, jsonArrayToNdjson as ag, jsonToIni as ah, jsonToToml as ai, jsonToXml as aj, minifyNdjson as ak, minifyToml as al, minifyXml as am, ndjsonToCsv as an, ndjsonToJsonArray as ao, parseCsv as ap, parseEnv as aq, parseFrontMatter as ar, parseIni as as, parseSubtitleTimestamp as at, parseSubtitles as au, parseXmlToObject as av, resolveYamlAnchors as aw, serializeSubtitles as ax, shiftSubtitles as ay, stringifyIni as az, type ConvertedSubtitles as b, type CsvColumnType as c, data as d, type CsvColumnTypeInfo as e, type CsvColumnTypeOptions as f, type CsvColumnTypeResult as g, type CsvDuplicateGroup as h, type CsvDuplicateOptions as i, type CsvDuplicateResult as j, type CsvParseResult as k, type CsvToSqlOptions as l, type CsvToSqlResult as m, type EnvDiffResult as n, type EnvEntry as o, type EnvParseResult as p, type FrontMatterResult as q, type MarkdownTableColumnAlignment as r, type MarkdownTableInfo as s, type MarkdownTaskListItem as t, type MarkdownTaskListProgressResult as u, type MarkdownTaskListSectionSummary as v, type MarkdownTocEntry as w, type MarkdownTocOptions as x, type MarkdownTocResult as y, type NdjsonLineResult as z };