@utilix-tech/sdk 0.17.0 → 0.18.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,9 @@
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.18.0
6
+ - Added Present Value / Future Value Calculator (`calculateTimeValue`) and Vector Similarity Calculator (`vectorSimilarity`).
7
+
5
8
  ## 0.17.0
6
9
  - Added User-Agent Parser (`parseUserAgent`) and GitHub URL Parser (`parseGithubUrl`).
7
10
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @utilix-tech/sdk
2
2
 
3
- **550 developer utility functions for Node.js: runs locally, no API key required.**
3
+ **553 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)
@@ -247,7 +247,7 @@ getNextRuns("*/5 * * * *", 5); // next 5 run timestamps
247
247
  ### `/units`: Conversions
248
248
 
249
249
  ```ts
250
- import { convertBytes, pxToAll, convert, formatValue, validateCardNumber, validateIban, calculateLoan, validateBarcode, calculateTax, calculateCompoundInterest, validateIsbn, calculateTipSplit, calculateSimpleInterest } from "@utilix-tech/sdk/units";
250
+ import { convertBytes, pxToAll, convert, formatValue, validateCardNumber, validateIban, calculateLoan, validateBarcode, calculateTax, calculateCompoundInterest, validateIsbn, calculateTipSplit, calculateSimpleInterest, calculateTimeValue } from "@utilix-tech/sdk/units";
251
251
 
252
252
  // File sizes
253
253
  convertBytes(1073741824, "GB"); // 1
@@ -301,6 +301,10 @@ calculateTipSplit(84.5, 18, 2);
301
301
  // Simple (non-compounding) interest: principal x rate x time
302
302
  calculateSimpleInterest(1000, 5, 2);
303
303
  // { interest: 100, totalPayoff: 1100, ... }
304
+
305
+ // Present / future value (time value of money), either direction
306
+ calculateTimeValue(1000, 5, 10, "future");
307
+ // { presentValue: 1000, futureValue: 1628.89, growthFactor: 1.628895, ... }
304
308
  ```
305
309
 
306
310
  ---
@@ -552,7 +556,7 @@ readIcoInfo(new Uint8Array(icoBytes));
552
556
  | `@utilix-tech/sdk/color` | Hex/RGB/HSL/HSV/CMYK convert, palette generation, contrast check |
553
557
  | `@utilix-tech/sdk/css` | CSS gradient, box-shadow, border-radius, keyframe animation generators |
554
558
  | `@utilix-tech/sdk/misc` | SVG optimize/sanitize, file size format, Unicode inspector |
555
- | `@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 |
559
+ | `@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 |
556
560
  | `@utilix-tech/sdk/media` | Image format & dimension reading from raw bytes (PNG, JPEG, GIF, WebP, BMP); PDF metadata reading; WAV audio info; ID3 tags; ICO favicon inspection |
557
561
 
558
562
  ---
@@ -314,6 +314,25 @@ interface SummaryResult {
314
314
  sentencesTotal: number;
315
315
  }
316
316
  declare function summarizeForLlm(text: string, maxTokens?: number, strategy?: 'extractive' | 'first' | 'last'): SummaryResult;
317
+ interface VectorSimilarityResult {
318
+ dimensions: number;
319
+ dotProduct: number;
320
+ cosineSimilarity: number;
321
+ euclideanDistance: number;
322
+ manhattanDistance: number;
323
+ magnitudeA: number;
324
+ magnitudeB: number;
325
+ }
326
+ /**
327
+ * Compute cosine similarity, dot product, Euclidean distance, and Manhattan
328
+ * distance between two equal-length numeric vectors. Useful for debugging a
329
+ * RAG pipeline that already has embedding vectors from an external model.
330
+ * Cosine similarity is undefined when either vector is all zeros; this
331
+ * returns 0 in that case.
332
+ */
333
+ declare function vectorSimilarity(a: number[], b: number[]): VectorSimilarityResult | {
334
+ error: string;
335
+ };
317
336
 
318
337
  type ai_agent_ChunkStrategy = ChunkStrategy;
319
338
  type ai_agent_CompressHtmlResult = CompressHtmlResult;
@@ -358,6 +377,7 @@ type ai_agent_TrimStrategy = TrimStrategy;
358
377
  type ai_agent_UrlMatch = UrlMatch;
359
378
  type ai_agent_ValidationError = ValidationError;
360
379
  type ai_agent_ValidationResult = ValidationResult;
380
+ type ai_agent_VectorSimilarityResult = VectorSimilarityResult;
361
381
  declare const ai_agent_chunkText: typeof chunkText;
362
382
  declare const ai_agent_compressHtml: typeof compressHtml;
363
383
  declare const ai_agent_compressJson: typeof compressJson;
@@ -386,8 +406,9 @@ declare const ai_agent_summarizeForLlm: typeof summarizeForLlm;
386
406
  declare const ai_agent_trimToTokens: typeof trimToTokens;
387
407
  declare const ai_agent_unflattenJson: typeof unflattenJson;
388
408
  declare const ai_agent_validateJsonSchema: typeof validateJsonSchema;
409
+ declare const ai_agent_vectorSimilarity: typeof vectorSimilarity;
389
410
  declare namespace ai_agent {
390
- 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_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_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, 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_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 };
411
+ 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_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_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_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 };
391
412
  }
392
413
 
393
- export { estimateCost as $, type TokenEstimate as A, type TokenEstimateResult as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type TrimResult as F, type TrimStrategy as G, type ValidationResult as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, chunkText as L, MODEL_PRICING as M, compressHtml as N, compressJson as O, type PiiDetectResult as P, compressMarkdown as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type UrlMatch as U, type ValidationError as V, deduplicateLines as W, detectPii as X, detectPromptInjection as Y, detectSecrets as Z, diffJson as _, ai_agent as a, estimateTokens as a0, expandQuery as a1, extractEntities as a2, extractJson as a3, extractKeywords as a4, extractTables as a5, extractUrls as a6, flattenJson as a7, mergeJson as a8, redactPii as a9, repairJson as aa, rerankChunks as ab, sanitizeHtml as ac, scoreRelevance as ad, summarizeForLlm as ae, trimToTokens as af, unflattenJson as ag, validateJsonSchema as ah, 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 InjectionFinding as n, type JsonRepairResult as o, type MergeResult as p, type MergeStrategy as q, type ModelPricing as r, type PiiFinding as s, type PiiType as t, type RelevanceResult as u, type SecretDetectResult as v, type SecretFinding as w, type SecretType as x, type SummaryResult as y, type TextChunk as z };
414
+ export { diffJson as $, type TokenEstimate as A, type TokenEstimateResult as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type TrimResult as F, type TrimStrategy as G, type ValidationResult as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, type VectorSimilarityResult as L, MODEL_PRICING as M, chunkText as N, compressHtml as O, type PiiDetectResult as P, compressJson as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type UrlMatch as U, type ValidationError as V, compressMarkdown as W, deduplicateLines as X, detectPii as Y, detectPromptInjection as Z, detectSecrets as _, ai_agent as a, estimateCost as a0, estimateTokens as a1, expandQuery as a2, extractEntities as a3, extractJson as a4, extractKeywords as a5, extractTables as a6, extractUrls as a7, flattenJson as a8, mergeJson as a9, redactPii as aa, repairJson as ab, rerankChunks as ac, sanitizeHtml as ad, scoreRelevance as ae, summarizeForLlm as af, trimToTokens as ag, unflattenJson as ah, validateJsonSchema as ai, vectorSimilarity as aj, 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 InjectionFinding as n, type JsonRepairResult as o, type MergeResult as p, type MergeStrategy as q, type ModelPricing as r, type PiiFinding as s, type PiiType as t, type RelevanceResult as u, type SecretDetectResult as v, type SecretFinding as w, type SecretType as x, type SummaryResult as y, type TextChunk as z };
@@ -314,6 +314,25 @@ interface SummaryResult {
314
314
  sentencesTotal: number;
315
315
  }
316
316
  declare function summarizeForLlm(text: string, maxTokens?: number, strategy?: 'extractive' | 'first' | 'last'): SummaryResult;
317
+ interface VectorSimilarityResult {
318
+ dimensions: number;
319
+ dotProduct: number;
320
+ cosineSimilarity: number;
321
+ euclideanDistance: number;
322
+ manhattanDistance: number;
323
+ magnitudeA: number;
324
+ magnitudeB: number;
325
+ }
326
+ /**
327
+ * Compute cosine similarity, dot product, Euclidean distance, and Manhattan
328
+ * distance between two equal-length numeric vectors. Useful for debugging a
329
+ * RAG pipeline that already has embedding vectors from an external model.
330
+ * Cosine similarity is undefined when either vector is all zeros; this
331
+ * returns 0 in that case.
332
+ */
333
+ declare function vectorSimilarity(a: number[], b: number[]): VectorSimilarityResult | {
334
+ error: string;
335
+ };
317
336
 
318
337
  type ai_agent_ChunkStrategy = ChunkStrategy;
319
338
  type ai_agent_CompressHtmlResult = CompressHtmlResult;
@@ -358,6 +377,7 @@ type ai_agent_TrimStrategy = TrimStrategy;
358
377
  type ai_agent_UrlMatch = UrlMatch;
359
378
  type ai_agent_ValidationError = ValidationError;
360
379
  type ai_agent_ValidationResult = ValidationResult;
380
+ type ai_agent_VectorSimilarityResult = VectorSimilarityResult;
361
381
  declare const ai_agent_chunkText: typeof chunkText;
362
382
  declare const ai_agent_compressHtml: typeof compressHtml;
363
383
  declare const ai_agent_compressJson: typeof compressJson;
@@ -386,8 +406,9 @@ declare const ai_agent_summarizeForLlm: typeof summarizeForLlm;
386
406
  declare const ai_agent_trimToTokens: typeof trimToTokens;
387
407
  declare const ai_agent_unflattenJson: typeof unflattenJson;
388
408
  declare const ai_agent_validateJsonSchema: typeof validateJsonSchema;
409
+ declare const ai_agent_vectorSimilarity: typeof vectorSimilarity;
389
410
  declare namespace ai_agent {
390
- 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_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_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, 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_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 };
411
+ 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_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_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_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 };
391
412
  }
392
413
 
393
- export { estimateCost as $, type TokenEstimate as A, type TokenEstimateResult as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type TrimResult as F, type TrimStrategy as G, type ValidationResult as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, chunkText as L, MODEL_PRICING as M, compressHtml as N, compressJson as O, type PiiDetectResult as P, compressMarkdown as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type UrlMatch as U, type ValidationError as V, deduplicateLines as W, detectPii as X, detectPromptInjection as Y, detectSecrets as Z, diffJson as _, ai_agent as a, estimateTokens as a0, expandQuery as a1, extractEntities as a2, extractJson as a3, extractKeywords as a4, extractTables as a5, extractUrls as a6, flattenJson as a7, mergeJson as a8, redactPii as a9, repairJson as aa, rerankChunks as ab, sanitizeHtml as ac, scoreRelevance as ad, summarizeForLlm as ae, trimToTokens as af, unflattenJson as ag, validateJsonSchema as ah, 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 InjectionFinding as n, type JsonRepairResult as o, type MergeResult as p, type MergeStrategy as q, type ModelPricing as r, type PiiFinding as s, type PiiType as t, type RelevanceResult as u, type SecretDetectResult as v, type SecretFinding as w, type SecretType as x, type SummaryResult as y, type TextChunk as z };
414
+ export { diffJson as $, type TokenEstimate as A, type TokenEstimateResult as B, type ChunkStrategy as C, type DedupeResult as D, type Entity2 as E, type TrimResult as F, type TrimStrategy as G, type ValidationResult as H, type InjectionDetectResult as I, type JsonBlock as J, type Keyword as K, type VectorSimilarityResult as L, MODEL_PRICING as M, chunkText as N, compressHtml as O, type PiiDetectResult as P, compressJson as Q, type RankedChunk as R, type SanitizeResult as S, type TableResult2 as T, type UrlMatch as U, type ValidationError as V, compressMarkdown as W, deduplicateLines as X, detectPii as Y, detectPromptInjection as Z, detectSecrets as _, ai_agent as a, estimateCost as a0, estimateTokens as a1, expandQuery as a2, extractEntities as a3, extractJson as a4, extractKeywords as a5, extractTables as a6, extractUrls as a7, flattenJson as a8, mergeJson as a9, redactPii as aa, repairJson as ab, rerankChunks as ac, sanitizeHtml as ad, scoreRelevance as ae, summarizeForLlm as af, trimToTokens as ag, unflattenJson as ah, validateJsonSchema as ai, vectorSimilarity as aj, 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 InjectionFinding as n, type JsonRepairResult as o, type MergeResult as p, type MergeStrategy as q, type ModelPricing as r, type PiiFinding as s, type PiiType as t, type RelevanceResult as u, type SecretDetectResult as v, type SecretFinding as w, type SecretType as x, type SummaryResult as y, type TextChunk as z };
@@ -31,7 +31,8 @@ __export(ai_agent_exports, {
31
31
  summarizeForLlm: () => summarizeForLlm,
32
32
  trimToTokens: () => trimToTokens,
33
33
  unflattenJson: () => unflattenJson,
34
- validateJsonSchema: () => validateJsonSchema
34
+ validateJsonSchema: () => validateJsonSchema,
35
+ vectorSimilarity: () => vectorSimilarity
35
36
  });
36
37
  var MODEL_PRICING = [
37
38
  { model: "gpt-4o", label: "GPT-4o", inputPer1M: 5, outputPer1M: 15 },
@@ -949,5 +950,34 @@ function summarizeForLlm(text, maxTokens = 200, strategy = "extractive") {
949
950
  const st = tok(summary);
950
951
  return { summary, originalTokens: ot, summaryTokens: st, compressionRatio: Math.round(st / Math.max(1, ot) * 100) / 100, sentencesKept: picked.length, sentencesTotal: sents.length };
951
952
  }
953
+ function vectorSimilarity(a, b) {
954
+ if (!Array.isArray(a) || !Array.isArray(b)) return { error: "Both inputs must be arrays of numbers" };
955
+ if (a.length === 0 || b.length === 0) return { error: "Vectors must not be empty" };
956
+ if (a.length !== b.length) return { error: `Vectors must have the same length (got ${a.length} and ${b.length})` };
957
+ if (!a.every((n) => typeof n === "number" && Number.isFinite(n)) || !b.every((n) => typeof n === "number" && Number.isFinite(n))) {
958
+ return { error: "Vectors must contain only finite numbers" };
959
+ }
960
+ const round6 = (n) => Math.round(n * 1e6) / 1e6;
961
+ let dot = 0, sa = 0, sb = 0, sqDist = 0, absDist = 0;
962
+ for (let i = 0; i < a.length; i++) {
963
+ dot += a[i] * b[i];
964
+ sa += a[i] * a[i];
965
+ sb += b[i] * b[i];
966
+ const d = a[i] - b[i];
967
+ sqDist += d * d;
968
+ absDist += Math.abs(d);
969
+ }
970
+ const magA = Math.sqrt(sa), magB = Math.sqrt(sb);
971
+ const cosine = magA === 0 || magB === 0 ? 0 : dot / (magA * magB);
972
+ return {
973
+ dimensions: a.length,
974
+ dotProduct: round6(dot),
975
+ cosineSimilarity: round6(cosine),
976
+ euclideanDistance: round6(Math.sqrt(sqDist)),
977
+ manhattanDistance: round6(absDist),
978
+ magnitudeA: round6(magA),
979
+ magnitudeB: round6(magB)
980
+ };
981
+ }
952
982
 
953
- export { MODEL_PRICING, ai_agent_exports, chunkText, compressHtml, compressJson, compressMarkdown, deduplicateLines, detectPii, detectPromptInjection, detectSecrets, diffJson, estimateCost, estimateTokens, expandQuery, extractEntities, extractJson, extractKeywords, extractTables, extractUrls, flattenJson, mergeJson, redactPii, repairJson, rerankChunks, sanitizeHtml, scoreRelevance, summarizeForLlm, trimToTokens, unflattenJson, validateJsonSchema };
983
+ export { MODEL_PRICING, ai_agent_exports, chunkText, compressHtml, compressJson, compressMarkdown, deduplicateLines, detectPii, detectPromptInjection, detectSecrets, diffJson, estimateCost, estimateTokens, expandQuery, extractEntities, extractJson, extractKeywords, extractTables, extractUrls, flattenJson, mergeJson, redactPii, repairJson, rerankChunks, sanitizeHtml, scoreRelevance, summarizeForLlm, trimToTokens, unflattenJson, validateJsonSchema, vectorSimilarity };
@@ -22,6 +22,7 @@ __export(units_exports, {
22
22
  calculateLoan: () => calculateLoan,
23
23
  calculateSimpleInterest: () => calculateSimpleInterest,
24
24
  calculateTax: () => calculateTax,
25
+ calculateTimeValue: () => calculateTimeValue,
25
26
  calculateTipSplit: () => calculateTipSplit,
26
27
  compareSemver: () => compareSemver,
27
28
  convert: () => convert,
@@ -1297,5 +1298,44 @@ function calculateSimpleInterest(principal, annualRatePercent, years) {
1297
1298
  totalPayoff: round22(principal + interest)
1298
1299
  };
1299
1300
  }
1301
+ function calculateTimeValue(amount, annualRatePercent, years, direction, compoundsPerYear = 1) {
1302
+ if (!Number.isFinite(amount) || amount < 0) return { error: "Amount must be zero or a positive number" };
1303
+ if (!Number.isFinite(annualRatePercent) || annualRatePercent < 0) {
1304
+ return { error: "Annual interest rate must be zero or a positive number" };
1305
+ }
1306
+ if (!Number.isFinite(years) || years <= 0) return { error: "Years must be a positive number" };
1307
+ if (!Number.isInteger(compoundsPerYear) || compoundsPerYear <= 0) {
1308
+ return { error: "Compounding frequency must be a positive whole number of periods per year" };
1309
+ }
1310
+ if (direction !== "future" && direction !== "present") {
1311
+ return { error: 'Direction must be "future" or "present"' };
1312
+ }
1313
+ const round22 = (n) => Math.round(n * 100) / 100;
1314
+ const round6 = (n) => Math.round(n * 1e6) / 1e6;
1315
+ const ratePerPeriod = annualRatePercent / 100 / compoundsPerYear;
1316
+ const totalPeriods = years * compoundsPerYear;
1317
+ const growthFactor = Math.pow(1 + ratePerPeriod, totalPeriods);
1318
+ let presentValue;
1319
+ let futureValue;
1320
+ if (direction === "future") {
1321
+ presentValue = amount;
1322
+ futureValue = amount * growthFactor;
1323
+ } else {
1324
+ futureValue = amount;
1325
+ presentValue = amount / growthFactor;
1326
+ }
1327
+ return {
1328
+ direction,
1329
+ annualRatePercent,
1330
+ years,
1331
+ compoundsPerYear,
1332
+ totalPeriods,
1333
+ ratePerPeriodPercent: round6(ratePerPeriod * 100),
1334
+ growthFactor: round6(growthFactor),
1335
+ presentValue: round22(presentValue),
1336
+ futureValue: round22(futureValue),
1337
+ interest: round22(futureValue - presentValue)
1338
+ };
1339
+ }
1300
1340
 
1301
- 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, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateCompoundInterest, calculateLoan, calculateSimpleInterest, calculateTax, calculateTipSplit, compareSemver, convert, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, units_exports, validateBarcode, validateCardNumber, validateIban, validateIsbn, viewportToPx };
1341
+ 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, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateCompoundInterest, calculateLoan, calculateSimpleInterest, calculateTax, calculateTimeValue, calculateTipSplit, compareSemver, convert, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, units_exports, validateBarcode, validateCardNumber, validateIban, validateIsbn, viewportToPx };
package/dist/index.cjs CHANGED
@@ -6687,6 +6687,7 @@ __export(units_exports, {
6687
6687
  calculateLoan: () => calculateLoan,
6688
6688
  calculateSimpleInterest: () => calculateSimpleInterest,
6689
6689
  calculateTax: () => calculateTax,
6690
+ calculateTimeValue: () => calculateTimeValue,
6690
6691
  calculateTipSplit: () => calculateTipSplit,
6691
6692
  compareSemver: () => compareSemver,
6692
6693
  convert: () => convert,
@@ -7962,6 +7963,45 @@ function calculateSimpleInterest(principal, annualRatePercent, years) {
7962
7963
  totalPayoff: round23(principal + interest)
7963
7964
  };
7964
7965
  }
7966
+ function calculateTimeValue(amount, annualRatePercent, years, direction, compoundsPerYear = 1) {
7967
+ if (!Number.isFinite(amount) || amount < 0) return { error: "Amount must be zero or a positive number" };
7968
+ if (!Number.isFinite(annualRatePercent) || annualRatePercent < 0) {
7969
+ return { error: "Annual interest rate must be zero or a positive number" };
7970
+ }
7971
+ if (!Number.isFinite(years) || years <= 0) return { error: "Years must be a positive number" };
7972
+ if (!Number.isInteger(compoundsPerYear) || compoundsPerYear <= 0) {
7973
+ return { error: "Compounding frequency must be a positive whole number of periods per year" };
7974
+ }
7975
+ if (direction !== "future" && direction !== "present") {
7976
+ return { error: 'Direction must be "future" or "present"' };
7977
+ }
7978
+ const round23 = (n) => Math.round(n * 100) / 100;
7979
+ const round6 = (n) => Math.round(n * 1e6) / 1e6;
7980
+ const ratePerPeriod = annualRatePercent / 100 / compoundsPerYear;
7981
+ const totalPeriods = years * compoundsPerYear;
7982
+ const growthFactor = Math.pow(1 + ratePerPeriod, totalPeriods);
7983
+ let presentValue;
7984
+ let futureValue;
7985
+ if (direction === "future") {
7986
+ presentValue = amount;
7987
+ futureValue = amount * growthFactor;
7988
+ } else {
7989
+ futureValue = amount;
7990
+ presentValue = amount / growthFactor;
7991
+ }
7992
+ return {
7993
+ direction,
7994
+ annualRatePercent,
7995
+ years,
7996
+ compoundsPerYear,
7997
+ totalPeriods,
7998
+ ratePerPeriodPercent: round6(ratePerPeriod * 100),
7999
+ growthFactor: round6(growthFactor),
8000
+ presentValue: round23(presentValue),
8001
+ futureValue: round23(futureValue),
8002
+ interest: round23(futureValue - presentValue)
8003
+ };
8004
+ }
7965
8005
 
7966
8006
  // src/tools/network.ts
7967
8007
  var network_exports = {};
@@ -17035,7 +17075,8 @@ __export(ai_agent_exports, {
17035
17075
  summarizeForLlm: () => summarizeForLlm,
17036
17076
  trimToTokens: () => trimToTokens,
17037
17077
  unflattenJson: () => unflattenJson,
17038
- validateJsonSchema: () => validateJsonSchema
17078
+ validateJsonSchema: () => validateJsonSchema,
17079
+ vectorSimilarity: () => vectorSimilarity
17039
17080
  });
17040
17081
  var MODEL_PRICING = [
17041
17082
  { model: "gpt-4o", label: "GPT-4o", inputPer1M: 5, outputPer1M: 15 },
@@ -17953,6 +17994,35 @@ function summarizeForLlm(text, maxTokens = 200, strategy = "extractive") {
17953
17994
  const st = tok(summary);
17954
17995
  return { summary, originalTokens: ot, summaryTokens: st, compressionRatio: Math.round(st / Math.max(1, ot) * 100) / 100, sentencesKept: picked.length, sentencesTotal: sents.length };
17955
17996
  }
17997
+ function vectorSimilarity(a, b) {
17998
+ if (!Array.isArray(a) || !Array.isArray(b)) return { error: "Both inputs must be arrays of numbers" };
17999
+ if (a.length === 0 || b.length === 0) return { error: "Vectors must not be empty" };
18000
+ if (a.length !== b.length) return { error: `Vectors must have the same length (got ${a.length} and ${b.length})` };
18001
+ if (!a.every((n) => typeof n === "number" && Number.isFinite(n)) || !b.every((n) => typeof n === "number" && Number.isFinite(n))) {
18002
+ return { error: "Vectors must contain only finite numbers" };
18003
+ }
18004
+ const round6 = (n) => Math.round(n * 1e6) / 1e6;
18005
+ let dot = 0, sa = 0, sb = 0, sqDist = 0, absDist = 0;
18006
+ for (let i = 0; i < a.length; i++) {
18007
+ dot += a[i] * b[i];
18008
+ sa += a[i] * a[i];
18009
+ sb += b[i] * b[i];
18010
+ const d = a[i] - b[i];
18011
+ sqDist += d * d;
18012
+ absDist += Math.abs(d);
18013
+ }
18014
+ const magA = Math.sqrt(sa), magB = Math.sqrt(sb);
18015
+ const cosine = magA === 0 || magB === 0 ? 0 : dot / (magA * magB);
18016
+ return {
18017
+ dimensions: a.length,
18018
+ dotProduct: round6(dot),
18019
+ cosineSimilarity: round6(cosine),
18020
+ euclideanDistance: round6(Math.sqrt(sqDist)),
18021
+ manhattanDistance: round6(absDist),
18022
+ magnitudeA: round6(magA),
18023
+ magnitudeB: round6(magB)
18024
+ };
18025
+ }
17956
18026
 
17957
18027
  // src/tools/media.ts
17958
18028
  var media_exports = {};
package/dist/index.d.cts CHANGED
@@ -5,14 +5,14 @@ export { t as text } from './text-Bbx-tZ43.cjs';
5
5
  export { d as data } from './data-D8XTI7Du.cjs';
6
6
  export { g as generators } from './generators-BGtRGpJZ.cjs';
7
7
  export { t as time } from './time-DbT8fjaF.cjs';
8
- export { u as units } from './units-CkV4kAIs.cjs';
8
+ export { u as units } from './units-BFTQwpBu.cjs';
9
9
  export { n as network } from './network-DZugNyAQ.cjs';
10
10
  export { a as api } from './api-Xl7OzIgq.cjs';
11
11
  export { c as code } from './code-Cn9uOIAh.cjs';
12
12
  export { c as color } from './color-tPwZCr9H.cjs';
13
13
  export { c as css } from './css-Cf7AMGM-.cjs';
14
14
  export { m as misc } from './misc-CA3N198T.cjs';
15
- export { a as ai_agent } from './ai_agent-CcpkV2DR.cjs';
15
+ export { a as ai_agent } from './ai_agent-B-c59NXD.cjs';
16
16
  export { m as media } from './media-9HEpTPGA.cjs';
17
17
 
18
18
  declare const version = "0.1.0";
package/dist/index.d.ts CHANGED
@@ -5,14 +5,14 @@ export { t as text } from './text-Bbx-tZ43.js';
5
5
  export { d as data } from './data-D8XTI7Du.js';
6
6
  export { g as generators } from './generators-BGtRGpJZ.js';
7
7
  export { t as time } from './time-DbT8fjaF.js';
8
- export { u as units } from './units-CkV4kAIs.js';
8
+ export { u as units } from './units-BFTQwpBu.js';
9
9
  export { n as network } from './network-DZugNyAQ.js';
10
10
  export { a as api } from './api-Xl7OzIgq.js';
11
11
  export { c as code } from './code-Cn9uOIAh.js';
12
12
  export { c as color } from './color-tPwZCr9H.js';
13
13
  export { c as css } from './css-Cf7AMGM-.js';
14
14
  export { m as misc } from './misc-CA3N198T.js';
15
- export { a as ai_agent } from './ai_agent-CcpkV2DR.js';
15
+ export { a as ai_agent } from './ai_agent-B-c59NXD.js';
16
16
  export { m as media } from './media-9HEpTPGA.js';
17
17
 
18
18
  declare const version = "0.1.0";
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export { media_exports as media } from './chunk-XMKJYVKB.js';
2
- export { units_exports as units } from './chunk-M4MMO6C6.js';
2
+ export { units_exports as units } from './chunk-U34B5XPK.js';
3
3
  export { network_exports as network } from './chunk-3QMUUTBH.js';
4
4
  export { api_exports as api } from './chunk-Q3B3YWOA.js';
5
5
  export { code_exports as code } from './chunk-L53LAVAD.js';
6
6
  export { color_exports as color } from './chunk-BPVAB4P2.js';
7
7
  export { css_exports as css } from './chunk-6YPV2AB5.js';
8
8
  export { misc_exports as misc } from './chunk-GX7H6TAX.js';
9
- export { ai_agent_exports as ai_agent } from './chunk-M35VJETW.js';
9
+ export { ai_agent_exports as ai_agent } from './chunk-265NPGKH.js';
10
10
  export { json_exports as json } from './chunk-TSAGO3XP.js';
11
11
  export { encoding_exports as encoding } from './chunk-DOWQZUTP.js';
12
12
  export { hashing_exports as hashing } from './chunk-GEFVMGZR.js';
@@ -917,6 +917,35 @@ function summarizeForLlm(text, maxTokens = 200, strategy = "extractive") {
917
917
  const st = tok(summary);
918
918
  return { summary, originalTokens: ot, summaryTokens: st, compressionRatio: Math.round(st / Math.max(1, ot) * 100) / 100, sentencesKept: picked.length, sentencesTotal: sents.length };
919
919
  }
920
+ function vectorSimilarity(a, b) {
921
+ if (!Array.isArray(a) || !Array.isArray(b)) return { error: "Both inputs must be arrays of numbers" };
922
+ if (a.length === 0 || b.length === 0) return { error: "Vectors must not be empty" };
923
+ if (a.length !== b.length) return { error: `Vectors must have the same length (got ${a.length} and ${b.length})` };
924
+ if (!a.every((n) => typeof n === "number" && Number.isFinite(n)) || !b.every((n) => typeof n === "number" && Number.isFinite(n))) {
925
+ return { error: "Vectors must contain only finite numbers" };
926
+ }
927
+ const round6 = (n) => Math.round(n * 1e6) / 1e6;
928
+ let dot = 0, sa = 0, sb = 0, sqDist = 0, absDist = 0;
929
+ for (let i = 0; i < a.length; i++) {
930
+ dot += a[i] * b[i];
931
+ sa += a[i] * a[i];
932
+ sb += b[i] * b[i];
933
+ const d = a[i] - b[i];
934
+ sqDist += d * d;
935
+ absDist += Math.abs(d);
936
+ }
937
+ const magA = Math.sqrt(sa), magB = Math.sqrt(sb);
938
+ const cosine = magA === 0 || magB === 0 ? 0 : dot / (magA * magB);
939
+ return {
940
+ dimensions: a.length,
941
+ dotProduct: round6(dot),
942
+ cosineSimilarity: round6(cosine),
943
+ euclideanDistance: round6(Math.sqrt(sqDist)),
944
+ manhattanDistance: round6(absDist),
945
+ magnitudeA: round6(magA),
946
+ magnitudeB: round6(magB)
947
+ };
948
+ }
920
949
 
921
950
  exports.MODEL_PRICING = MODEL_PRICING;
922
951
  exports.chunkText = chunkText;
@@ -947,3 +976,4 @@ exports.summarizeForLlm = summarizeForLlm;
947
976
  exports.trimToTokens = trimToTokens;
948
977
  exports.unflattenJson = unflattenJson;
949
978
  exports.validateJsonSchema = validateJsonSchema;
979
+ exports.vectorSimilarity = vectorSimilarity;
@@ -1 +1 @@
1
- export { C as ChunkStrategy, b as CompressHtmlResult, c as CompressJsonResult, d as CompressMarkdownResult, e as CostEstimate, D as DedupeResult, f as DedupeStrategy, g as DiffEntry2, h as DiffOp2, i as DiffResult2, E as Entity2, j as EntityType2, k as ExtractJsonResult, l as ExtractKeywordsResult, m as ExtractUrlsResult, I as InjectionDetectResult, n as InjectionFinding, J as JsonBlock, o as JsonRepairResult, K as Keyword, M as MODEL_PRICING, p as MergeResult, q as MergeStrategy, r as ModelPricing, P as PiiDetectResult, s as PiiFinding, t as PiiType, R as RankedChunk, u as RelevanceResult, S as SanitizeResult, v as SecretDetectResult, w as SecretFinding, x as SecretType, y as SummaryResult, T as TableResult2, z as TextChunk, A as TokenEstimate, B as TokenEstimateResult, F as TrimResult, G as TrimStrategy, U as UrlMatch, V as ValidationError, H as ValidationResult, L as chunkText, N as compressHtml, O as compressJson, Q as compressMarkdown, W as deduplicateLines, X as detectPii, Y as detectPromptInjection, Z as detectSecrets, _ as diffJson, $ as estimateCost, a0 as estimateTokens, a1 as expandQuery, a2 as extractEntities, a3 as extractJson, a4 as extractKeywords, a5 as extractTables, a6 as extractUrls, a7 as flattenJson, a8 as mergeJson, a9 as redactPii, aa as repairJson, ab as rerankChunks, ac as sanitizeHtml, ad as scoreRelevance, ae as summarizeForLlm, af as trimToTokens, ag as unflattenJson, ah as validateJsonSchema } from '../ai_agent-CcpkV2DR.cjs';
1
+ export { C as ChunkStrategy, b as CompressHtmlResult, c as CompressJsonResult, d as CompressMarkdownResult, e as CostEstimate, D as DedupeResult, f as DedupeStrategy, g as DiffEntry2, h as DiffOp2, i as DiffResult2, E as Entity2, j as EntityType2, k as ExtractJsonResult, l as ExtractKeywordsResult, m as ExtractUrlsResult, I as InjectionDetectResult, n as InjectionFinding, J as JsonBlock, o as JsonRepairResult, K as Keyword, M as MODEL_PRICING, p as MergeResult, q as MergeStrategy, r as ModelPricing, P as PiiDetectResult, s as PiiFinding, t as PiiType, R as RankedChunk, u as RelevanceResult, S as SanitizeResult, v as SecretDetectResult, w as SecretFinding, x as SecretType, y as SummaryResult, T as TableResult2, z as TextChunk, A as TokenEstimate, B as TokenEstimateResult, F as TrimResult, G as TrimStrategy, U as UrlMatch, V as ValidationError, H as ValidationResult, L as VectorSimilarityResult, N as chunkText, O as compressHtml, Q as compressJson, W as compressMarkdown, X as deduplicateLines, Y as detectPii, Z as detectPromptInjection, _ as detectSecrets, $ as diffJson, a0 as estimateCost, a1 as estimateTokens, a2 as expandQuery, a3 as extractEntities, a4 as extractJson, a5 as extractKeywords, a6 as extractTables, a7 as extractUrls, a8 as flattenJson, a9 as mergeJson, aa as redactPii, ab as repairJson, ac as rerankChunks, ad as sanitizeHtml, ae as scoreRelevance, af as summarizeForLlm, ag as trimToTokens, ah as unflattenJson, ai as validateJsonSchema, aj as vectorSimilarity } from '../ai_agent-B-c59NXD.cjs';
@@ -1 +1 @@
1
- export { C as ChunkStrategy, b as CompressHtmlResult, c as CompressJsonResult, d as CompressMarkdownResult, e as CostEstimate, D as DedupeResult, f as DedupeStrategy, g as DiffEntry2, h as DiffOp2, i as DiffResult2, E as Entity2, j as EntityType2, k as ExtractJsonResult, l as ExtractKeywordsResult, m as ExtractUrlsResult, I as InjectionDetectResult, n as InjectionFinding, J as JsonBlock, o as JsonRepairResult, K as Keyword, M as MODEL_PRICING, p as MergeResult, q as MergeStrategy, r as ModelPricing, P as PiiDetectResult, s as PiiFinding, t as PiiType, R as RankedChunk, u as RelevanceResult, S as SanitizeResult, v as SecretDetectResult, w as SecretFinding, x as SecretType, y as SummaryResult, T as TableResult2, z as TextChunk, A as TokenEstimate, B as TokenEstimateResult, F as TrimResult, G as TrimStrategy, U as UrlMatch, V as ValidationError, H as ValidationResult, L as chunkText, N as compressHtml, O as compressJson, Q as compressMarkdown, W as deduplicateLines, X as detectPii, Y as detectPromptInjection, Z as detectSecrets, _ as diffJson, $ as estimateCost, a0 as estimateTokens, a1 as expandQuery, a2 as extractEntities, a3 as extractJson, a4 as extractKeywords, a5 as extractTables, a6 as extractUrls, a7 as flattenJson, a8 as mergeJson, a9 as redactPii, aa as repairJson, ab as rerankChunks, ac as sanitizeHtml, ad as scoreRelevance, ae as summarizeForLlm, af as trimToTokens, ag as unflattenJson, ah as validateJsonSchema } from '../ai_agent-CcpkV2DR.js';
1
+ export { C as ChunkStrategy, b as CompressHtmlResult, c as CompressJsonResult, d as CompressMarkdownResult, e as CostEstimate, D as DedupeResult, f as DedupeStrategy, g as DiffEntry2, h as DiffOp2, i as DiffResult2, E as Entity2, j as EntityType2, k as ExtractJsonResult, l as ExtractKeywordsResult, m as ExtractUrlsResult, I as InjectionDetectResult, n as InjectionFinding, J as JsonBlock, o as JsonRepairResult, K as Keyword, M as MODEL_PRICING, p as MergeResult, q as MergeStrategy, r as ModelPricing, P as PiiDetectResult, s as PiiFinding, t as PiiType, R as RankedChunk, u as RelevanceResult, S as SanitizeResult, v as SecretDetectResult, w as SecretFinding, x as SecretType, y as SummaryResult, T as TableResult2, z as TextChunk, A as TokenEstimate, B as TokenEstimateResult, F as TrimResult, G as TrimStrategy, U as UrlMatch, V as ValidationError, H as ValidationResult, L as VectorSimilarityResult, N as chunkText, O as compressHtml, Q as compressJson, W as compressMarkdown, X as deduplicateLines, Y as detectPii, Z as detectPromptInjection, _ as detectSecrets, $ as diffJson, a0 as estimateCost, a1 as estimateTokens, a2 as expandQuery, a3 as extractEntities, a4 as extractJson, a5 as extractKeywords, a6 as extractTables, a7 as extractUrls, a8 as flattenJson, a9 as mergeJson, aa as redactPii, ab as repairJson, ac as rerankChunks, ad as sanitizeHtml, ae as scoreRelevance, af as summarizeForLlm, ag as trimToTokens, ah as unflattenJson, ai as validateJsonSchema, aj as vectorSimilarity } from '../ai_agent-B-c59NXD.js';
@@ -1,2 +1,2 @@
1
- export { MODEL_PRICING, chunkText, compressHtml, compressJson, compressMarkdown, deduplicateLines, detectPii, detectPromptInjection, detectSecrets, diffJson, estimateCost, estimateTokens, expandQuery, extractEntities, extractJson, extractKeywords, extractTables, extractUrls, flattenJson, mergeJson, redactPii, repairJson, rerankChunks, sanitizeHtml, scoreRelevance, summarizeForLlm, trimToTokens, unflattenJson, validateJsonSchema } from '../chunk-M35VJETW.js';
1
+ export { MODEL_PRICING, chunkText, compressHtml, compressJson, compressMarkdown, deduplicateLines, detectPii, detectPromptInjection, detectSecrets, diffJson, estimateCost, estimateTokens, expandQuery, extractEntities, extractJson, extractKeywords, extractTables, extractUrls, flattenJson, mergeJson, redactPii, repairJson, rerankChunks, sanitizeHtml, scoreRelevance, summarizeForLlm, trimToTokens, unflattenJson, validateJsonSchema, vectorSimilarity } from '../chunk-265NPGKH.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -1225,6 +1225,45 @@ function calculateSimpleInterest(principal, annualRatePercent, years) {
1225
1225
  totalPayoff: round22(principal + interest)
1226
1226
  };
1227
1227
  }
1228
+ function calculateTimeValue(amount, annualRatePercent, years, direction, compoundsPerYear = 1) {
1229
+ if (!Number.isFinite(amount) || amount < 0) return { error: "Amount must be zero or a positive number" };
1230
+ if (!Number.isFinite(annualRatePercent) || annualRatePercent < 0) {
1231
+ return { error: "Annual interest rate must be zero or a positive number" };
1232
+ }
1233
+ if (!Number.isFinite(years) || years <= 0) return { error: "Years must be a positive number" };
1234
+ if (!Number.isInteger(compoundsPerYear) || compoundsPerYear <= 0) {
1235
+ return { error: "Compounding frequency must be a positive whole number of periods per year" };
1236
+ }
1237
+ if (direction !== "future" && direction !== "present") {
1238
+ return { error: 'Direction must be "future" or "present"' };
1239
+ }
1240
+ const round22 = (n) => Math.round(n * 100) / 100;
1241
+ const round6 = (n) => Math.round(n * 1e6) / 1e6;
1242
+ const ratePerPeriod = annualRatePercent / 100 / compoundsPerYear;
1243
+ const totalPeriods = years * compoundsPerYear;
1244
+ const growthFactor = Math.pow(1 + ratePerPeriod, totalPeriods);
1245
+ let presentValue;
1246
+ let futureValue;
1247
+ if (direction === "future") {
1248
+ presentValue = amount;
1249
+ futureValue = amount * growthFactor;
1250
+ } else {
1251
+ futureValue = amount;
1252
+ presentValue = amount / growthFactor;
1253
+ }
1254
+ return {
1255
+ direction,
1256
+ annualRatePercent,
1257
+ years,
1258
+ compoundsPerYear,
1259
+ totalPeriods,
1260
+ ratePerPeriodPercent: round6(ratePerPeriod * 100),
1261
+ growthFactor: round6(growthFactor),
1262
+ presentValue: round22(presentValue),
1263
+ futureValue: round22(futureValue),
1264
+ interest: round22(futureValue - presentValue)
1265
+ };
1266
+ }
1228
1267
 
1229
1268
  exports.BASE_LABELS = BASE_LABELS;
1230
1269
  exports.BASE_PREFIXES = BASE_PREFIXES;
@@ -1245,6 +1284,7 @@ exports.calculateCompoundInterest = calculateCompoundInterest;
1245
1284
  exports.calculateLoan = calculateLoan;
1246
1285
  exports.calculateSimpleInterest = calculateSimpleInterest;
1247
1286
  exports.calculateTax = calculateTax;
1287
+ exports.calculateTimeValue = calculateTimeValue;
1248
1288
  exports.calculateTipSplit = calculateTipSplit;
1249
1289
  exports.compareSemver = compareSemver;
1250
1290
  exports.convert = convert;
@@ -1 +1 @@
1
- export { A as AmortizationRow, a as AspectRatioResult, B as BASE_LABELS, b as BASE_PREFIXES, c as BYTE_UNITS, d as BarcodeFormat, e as BarcodeValidationResult, f as BaseConvertResult, g as ByteConvertResult, h as ByteUnit, C as COMMON_CURRENCIES, i as COMMON_LOCALES, j as COMMON_PERMISSIONS, k as COMMON_RATIOS, l as COMMON_SIZES, m as COMMON_TAX_RATES, n as COMMON_TIP_PERCENTAGES, o as COMMON_VIEWPORTS, p as CardValidationResult, q as CompoundInterestResult, r as CompoundYearRow, D as Dimensions, F as FilePermissions, s as FormatOptions, I as IbanValidationResult, t as IpConversion, v as IsbnFormat, w as IsbnResult, L as LoanResult, N as NotationStyle, x as NumberBase, P as Permission, y as PxConvertResult, S as SemverVersion, z as SimpleInterestResult, E as SubnetInfo, T as TaxDirection, G as TaxResult, H as TipSplitResult, V as ViewportConvertResult, J as autoFormat, K as bumpVersion, M as calcAspectRatio, O as calcSubnet, Q as calculateCompoundInterest, R as calculateLoan, U as calculateSimpleInterest, W as calculateTax, X as calculateTipSplit, Y as compareSemver, Z as convert, _ as convertBytes, $ as convertIp, a0 as coverBox, a1 as decimalToIp, a2 as decimalToIpCidr, a3 as describePermissions, a4 as fitIntoBox, a5 as formatNumber, a6 as formatValue, a7 as formatVwValue, a8 as formatWithSeparator, a9 as gcd, aa as ipFromBinary, ab as ipFromDecimal, ac as ipFromHex, ad as ipToBinary, ae as ipToDecimal, af as ipToDecimalCidr, ag as ipToHex, ah as ipToOctal, ai as isValid, aj as isValidCidr, ak as isValidIp, al as isValidIpv4, am as octalToPermissions, an as parseFileSize, ao as parseInput, ap as parseNumberString, aq as parseSemver, ar as permissionsToChmod, as as permissionsToOctal, at as permissionsToSymbolic, au as ptToPx, av as pxToAll, aw as pxToViewport, ax as remToPx, ay as satisfiesRange, az as scaleByHeight, aA as scaleByWidth, aB as sortVersions, aC as splitSubnet, aD as symbolicToPermissions, aE as validateBarcode, aF as validateCardNumber, aG as validateIban, aH as validateIsbn, aI as viewportToPx } from '../units-CkV4kAIs.cjs';
1
+ export { A as AmortizationRow, a as AspectRatioResult, B as BASE_LABELS, b as BASE_PREFIXES, c as BYTE_UNITS, d as BarcodeFormat, e as BarcodeValidationResult, f as BaseConvertResult, g as ByteConvertResult, h as ByteUnit, C as COMMON_CURRENCIES, i as COMMON_LOCALES, j as COMMON_PERMISSIONS, k as COMMON_RATIOS, l as COMMON_SIZES, m as COMMON_TAX_RATES, n as COMMON_TIP_PERCENTAGES, o as COMMON_VIEWPORTS, p as CardValidationResult, q as CompoundInterestResult, r as CompoundYearRow, D as Dimensions, F as FilePermissions, s as FormatOptions, I as IbanValidationResult, t as IpConversion, v as IsbnFormat, w as IsbnResult, L as LoanResult, N as NotationStyle, x as NumberBase, P as Permission, y as PxConvertResult, S as SemverVersion, z as SimpleInterestResult, E as SubnetInfo, T as TaxDirection, G as TaxResult, H as TimeValueDirection, J as TimeValueResult, K as TipSplitResult, V as ViewportConvertResult, M as autoFormat, O as bumpVersion, Q as calcAspectRatio, R as calcSubnet, U as calculateCompoundInterest, W as calculateLoan, X as calculateSimpleInterest, Y as calculateTax, Z as calculateTimeValue, _ as calculateTipSplit, $ as compareSemver, a0 as convert, a1 as convertBytes, a2 as convertIp, a3 as coverBox, a4 as decimalToIp, a5 as decimalToIpCidr, a6 as describePermissions, a7 as fitIntoBox, a8 as formatNumber, a9 as formatValue, aa as formatVwValue, ab as formatWithSeparator, ac as gcd, ad as ipFromBinary, ae as ipFromDecimal, af as ipFromHex, ag as ipToBinary, ah as ipToDecimal, ai as ipToDecimalCidr, aj as ipToHex, ak as ipToOctal, al as isValid, am as isValidCidr, an as isValidIp, ao as isValidIpv4, ap as octalToPermissions, aq as parseFileSize, ar as parseInput, as as parseNumberString, at as parseSemver, au as permissionsToChmod, av as permissionsToOctal, aw as permissionsToSymbolic, ax as ptToPx, ay as pxToAll, az as pxToViewport, aA as remToPx, aB as satisfiesRange, aC as scaleByHeight, aD as scaleByWidth, aE as sortVersions, aF as splitSubnet, aG as symbolicToPermissions, aH as validateBarcode, aI as validateCardNumber, aJ as validateIban, aK as validateIsbn, aL as viewportToPx } from '../units-BFTQwpBu.cjs';
@@ -1 +1 @@
1
- export { A as AmortizationRow, a as AspectRatioResult, B as BASE_LABELS, b as BASE_PREFIXES, c as BYTE_UNITS, d as BarcodeFormat, e as BarcodeValidationResult, f as BaseConvertResult, g as ByteConvertResult, h as ByteUnit, C as COMMON_CURRENCIES, i as COMMON_LOCALES, j as COMMON_PERMISSIONS, k as COMMON_RATIOS, l as COMMON_SIZES, m as COMMON_TAX_RATES, n as COMMON_TIP_PERCENTAGES, o as COMMON_VIEWPORTS, p as CardValidationResult, q as CompoundInterestResult, r as CompoundYearRow, D as Dimensions, F as FilePermissions, s as FormatOptions, I as IbanValidationResult, t as IpConversion, v as IsbnFormat, w as IsbnResult, L as LoanResult, N as NotationStyle, x as NumberBase, P as Permission, y as PxConvertResult, S as SemverVersion, z as SimpleInterestResult, E as SubnetInfo, T as TaxDirection, G as TaxResult, H as TipSplitResult, V as ViewportConvertResult, J as autoFormat, K as bumpVersion, M as calcAspectRatio, O as calcSubnet, Q as calculateCompoundInterest, R as calculateLoan, U as calculateSimpleInterest, W as calculateTax, X as calculateTipSplit, Y as compareSemver, Z as convert, _ as convertBytes, $ as convertIp, a0 as coverBox, a1 as decimalToIp, a2 as decimalToIpCidr, a3 as describePermissions, a4 as fitIntoBox, a5 as formatNumber, a6 as formatValue, a7 as formatVwValue, a8 as formatWithSeparator, a9 as gcd, aa as ipFromBinary, ab as ipFromDecimal, ac as ipFromHex, ad as ipToBinary, ae as ipToDecimal, af as ipToDecimalCidr, ag as ipToHex, ah as ipToOctal, ai as isValid, aj as isValidCidr, ak as isValidIp, al as isValidIpv4, am as octalToPermissions, an as parseFileSize, ao as parseInput, ap as parseNumberString, aq as parseSemver, ar as permissionsToChmod, as as permissionsToOctal, at as permissionsToSymbolic, au as ptToPx, av as pxToAll, aw as pxToViewport, ax as remToPx, ay as satisfiesRange, az as scaleByHeight, aA as scaleByWidth, aB as sortVersions, aC as splitSubnet, aD as symbolicToPermissions, aE as validateBarcode, aF as validateCardNumber, aG as validateIban, aH as validateIsbn, aI as viewportToPx } from '../units-CkV4kAIs.js';
1
+ export { A as AmortizationRow, a as AspectRatioResult, B as BASE_LABELS, b as BASE_PREFIXES, c as BYTE_UNITS, d as BarcodeFormat, e as BarcodeValidationResult, f as BaseConvertResult, g as ByteConvertResult, h as ByteUnit, C as COMMON_CURRENCIES, i as COMMON_LOCALES, j as COMMON_PERMISSIONS, k as COMMON_RATIOS, l as COMMON_SIZES, m as COMMON_TAX_RATES, n as COMMON_TIP_PERCENTAGES, o as COMMON_VIEWPORTS, p as CardValidationResult, q as CompoundInterestResult, r as CompoundYearRow, D as Dimensions, F as FilePermissions, s as FormatOptions, I as IbanValidationResult, t as IpConversion, v as IsbnFormat, w as IsbnResult, L as LoanResult, N as NotationStyle, x as NumberBase, P as Permission, y as PxConvertResult, S as SemverVersion, z as SimpleInterestResult, E as SubnetInfo, T as TaxDirection, G as TaxResult, H as TimeValueDirection, J as TimeValueResult, K as TipSplitResult, V as ViewportConvertResult, M as autoFormat, O as bumpVersion, Q as calcAspectRatio, R as calcSubnet, U as calculateCompoundInterest, W as calculateLoan, X as calculateSimpleInterest, Y as calculateTax, Z as calculateTimeValue, _ as calculateTipSplit, $ as compareSemver, a0 as convert, a1 as convertBytes, a2 as convertIp, a3 as coverBox, a4 as decimalToIp, a5 as decimalToIpCidr, a6 as describePermissions, a7 as fitIntoBox, a8 as formatNumber, a9 as formatValue, aa as formatVwValue, ab as formatWithSeparator, ac as gcd, ad as ipFromBinary, ae as ipFromDecimal, af as ipFromHex, ag as ipToBinary, ah as ipToDecimal, ai as ipToDecimalCidr, aj as ipToHex, ak as ipToOctal, al as isValid, am as isValidCidr, an as isValidIp, ao as isValidIpv4, ap as octalToPermissions, aq as parseFileSize, ar as parseInput, as as parseNumberString, at as parseSemver, au as permissionsToChmod, av as permissionsToOctal, aw as permissionsToSymbolic, ax as ptToPx, ay as pxToAll, az as pxToViewport, aA as remToPx, aB as satisfiesRange, aC as scaleByHeight, aD as scaleByWidth, aE as sortVersions, aF as splitSubnet, aG as symbolicToPermissions, aH as validateBarcode, aI as validateCardNumber, aJ as validateIban, aK as validateIsbn, aL as viewportToPx } from '../units-BFTQwpBu.js';
@@ -1,2 +1,2 @@
1
- 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, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateCompoundInterest, calculateLoan, calculateSimpleInterest, calculateTax, calculateTipSplit, compareSemver, convert, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, validateBarcode, validateCardNumber, validateIban, validateIsbn, viewportToPx } from '../chunk-M4MMO6C6.js';
1
+ 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, autoFormat, bumpVersion, calcAspectRatio, calcSubnet, calculateCompoundInterest, calculateLoan, calculateSimpleInterest, calculateTax, calculateTimeValue, calculateTipSplit, compareSemver, convert, convertBytes, convertIp, coverBox, decimalToIp, decimalToIpCidr, describePermissions, fitIntoBox, formatNumber, formatValue, formatVwValue, formatWithSeparator, gcd, ipFromBinary, ipFromDecimal, ipFromHex, ipToBinary, ipToDecimal, ipToDecimalCidr, ipToHex, ipToOctal, isValid, isValidCidr, isValidIp, isValidIpv4, octalToPermissions, parseFileSize, parseInput, parseNumberString, parseSemver, permissionsToChmod, permissionsToOctal, permissionsToSymbolic, ptToPx, pxToAll, pxToViewport, remToPx, satisfiesRange, scaleByHeight, scaleByWidth, sortVersions, splitSubnet, symbolicToPermissions, validateBarcode, validateCardNumber, validateIban, validateIsbn, viewportToPx } from '../chunk-U34B5XPK.js';
2
2
  import '../chunk-MLKGABMK.js';
@@ -404,6 +404,31 @@ interface SimpleInterestResult {
404
404
  declare function calculateSimpleInterest(principal: number, annualRatePercent: number, years: number): SimpleInterestResult | {
405
405
  error: string;
406
406
  };
407
+ type TimeValueDirection = "future" | "present";
408
+ interface TimeValueResult {
409
+ direction: TimeValueDirection;
410
+ annualRatePercent: number;
411
+ years: number;
412
+ compoundsPerYear: number;
413
+ totalPeriods: number;
414
+ ratePerPeriodPercent: number;
415
+ growthFactor: number;
416
+ presentValue: number;
417
+ futureValue: number;
418
+ interest: number;
419
+ }
420
+ /**
421
+ * Standard time-value-of-money conversion in either direction. With
422
+ * direction "future" the input amount is treated as a present value and
423
+ * grown to its future value at the given annual rate; with direction
424
+ * "present" the input amount is treated as a future value and discounted
425
+ * back to its present value. Interest is compounded `compoundsPerYear`
426
+ * times per year (1 = annually). Pure formula over user-supplied numbers,
427
+ * no live rate feed.
428
+ */
429
+ declare function calculateTimeValue(amount: number, annualRatePercent: number, years: number, direction: TimeValueDirection, compoundsPerYear?: number): TimeValueResult | {
430
+ error: string;
431
+ };
407
432
 
408
433
  type units_AmortizationRow = AmortizationRow;
409
434
  type units_AspectRatioResult = AspectRatioResult;
@@ -443,6 +468,8 @@ type units_SimpleInterestResult = SimpleInterestResult;
443
468
  type units_SubnetInfo = SubnetInfo;
444
469
  type units_TaxDirection = TaxDirection;
445
470
  type units_TaxResult = TaxResult;
471
+ type units_TimeValueDirection = TimeValueDirection;
472
+ type units_TimeValueResult = TimeValueResult;
446
473
  type units_TipSplitResult = TipSplitResult;
447
474
  type units_ViewportConvertResult = ViewportConvertResult;
448
475
  declare const units_autoFormat: typeof autoFormat;
@@ -453,6 +480,7 @@ declare const units_calculateCompoundInterest: typeof calculateCompoundInterest;
453
480
  declare const units_calculateLoan: typeof calculateLoan;
454
481
  declare const units_calculateSimpleInterest: typeof calculateSimpleInterest;
455
482
  declare const units_calculateTax: typeof calculateTax;
483
+ declare const units_calculateTimeValue: typeof calculateTimeValue;
456
484
  declare const units_calculateTipSplit: typeof calculateTipSplit;
457
485
  declare const units_compareSemver: typeof compareSemver;
458
486
  declare const units_convert: typeof convert;
@@ -504,7 +532,7 @@ declare const units_validateIban: typeof validateIban;
504
532
  declare const units_validateIsbn: typeof validateIsbn;
505
533
  declare const units_viewportToPx: typeof viewportToPx;
506
534
  declare namespace units {
507
- export { type units_AmortizationRow as AmortizationRow, type units_AspectRatioResult as AspectRatioResult, units_BASE_LABELS as BASE_LABELS, units_BASE_PREFIXES as BASE_PREFIXES, units_BYTE_UNITS as BYTE_UNITS, type units_BarcodeFormat as BarcodeFormat, type units_BarcodeValidationResult as BarcodeValidationResult, type units_BaseConvertResult as BaseConvertResult, type units_ByteConvertResult as ByteConvertResult, type units_ByteUnit as ByteUnit, units_COMMON_CURRENCIES as COMMON_CURRENCIES, units_COMMON_LOCALES as COMMON_LOCALES, units_COMMON_PERMISSIONS as COMMON_PERMISSIONS, units_COMMON_RATIOS as COMMON_RATIOS, units_COMMON_SIZES as COMMON_SIZES, units_COMMON_TAX_RATES as COMMON_TAX_RATES, units_COMMON_TIP_PERCENTAGES as COMMON_TIP_PERCENTAGES, units_COMMON_VIEWPORTS as COMMON_VIEWPORTS, type units_CardValidationResult as CardValidationResult, type units_CompoundInterestResult as CompoundInterestResult, type units_CompoundYearRow as CompoundYearRow, type units_Dimensions as Dimensions, type units_FilePermissions as FilePermissions, type units_FormatOptions as FormatOptions, type units_IbanValidationResult as IbanValidationResult, type units_IpConversion as IpConversion, type units_IsbnFormat as IsbnFormat, type units_IsbnResult as IsbnResult, type units_LoanResult as LoanResult, type units_NotationStyle as NotationStyle, type units_NumberBase as NumberBase, type units_Permission as Permission, type units_PxConvertResult as PxConvertResult, type units_SemverVersion as SemverVersion, type units_SimpleInterestResult as SimpleInterestResult, type units_SubnetInfo as SubnetInfo, type units_TaxDirection as TaxDirection, type units_TaxResult as TaxResult, type units_TipSplitResult as TipSplitResult, type units_ViewportConvertResult as ViewportConvertResult, units_autoFormat as autoFormat, units_bumpVersion as bumpVersion, units_calcAspectRatio as calcAspectRatio, units_calcSubnet as calcSubnet, units_calculateCompoundInterest as calculateCompoundInterest, units_calculateLoan as calculateLoan, units_calculateSimpleInterest as calculateSimpleInterest, units_calculateTax as calculateTax, units_calculateTipSplit as calculateTipSplit, units_compareSemver as compareSemver, units_convert as convert, units_convertBytes as convertBytes, units_convertIp as convertIp, units_coverBox as coverBox, units_decimalToIp as decimalToIp, units_decimalToIpCidr as decimalToIpCidr, units_describePermissions as describePermissions, units_fitIntoBox as fitIntoBox, units_formatNumber as formatNumber, units_formatValue as formatValue, units_formatVwValue as formatVwValue, units_formatWithSeparator as formatWithSeparator, units_gcd as gcd, units_ipFromBinary as ipFromBinary, units_ipFromDecimal as ipFromDecimal, units_ipFromHex as ipFromHex, units_ipToBinary as ipToBinary, units_ipToDecimal as ipToDecimal, units_ipToDecimalCidr as ipToDecimalCidr, units_ipToHex as ipToHex, units_ipToOctal as ipToOctal, units_isValid as isValid, units_isValidCidr as isValidCidr, units_isValidIp as isValidIp, units_isValidIpv4 as isValidIpv4, units_octalToPermissions as octalToPermissions, units_parseFileSize as parseFileSize, units_parseInput as parseInput, units_parseNumberString as parseNumberString, units_parseSemver as parseSemver, units_permissionsToChmod as permissionsToChmod, units_permissionsToOctal as permissionsToOctal, units_permissionsToSymbolic as permissionsToSymbolic, units_ptToPx as ptToPx, units_pxToAll as pxToAll, units_pxToViewport as pxToViewport, units_remToPx as remToPx, units_satisfiesRange as satisfiesRange, units_scaleByHeight as scaleByHeight, units_scaleByWidth as scaleByWidth, units_sortVersions as sortVersions, units_splitSubnet as splitSubnet, units_symbolicToPermissions as symbolicToPermissions, units_validateBarcode as validateBarcode, units_validateCardNumber as validateCardNumber, units_validateIban as validateIban, units_validateIsbn as validateIsbn, units_viewportToPx as viewportToPx };
535
+ export { type units_AmortizationRow as AmortizationRow, type units_AspectRatioResult as AspectRatioResult, units_BASE_LABELS as BASE_LABELS, units_BASE_PREFIXES as BASE_PREFIXES, units_BYTE_UNITS as BYTE_UNITS, type units_BarcodeFormat as BarcodeFormat, type units_BarcodeValidationResult as BarcodeValidationResult, type units_BaseConvertResult as BaseConvertResult, type units_ByteConvertResult as ByteConvertResult, type units_ByteUnit as ByteUnit, units_COMMON_CURRENCIES as COMMON_CURRENCIES, units_COMMON_LOCALES as COMMON_LOCALES, units_COMMON_PERMISSIONS as COMMON_PERMISSIONS, units_COMMON_RATIOS as COMMON_RATIOS, units_COMMON_SIZES as COMMON_SIZES, units_COMMON_TAX_RATES as COMMON_TAX_RATES, units_COMMON_TIP_PERCENTAGES as COMMON_TIP_PERCENTAGES, units_COMMON_VIEWPORTS as COMMON_VIEWPORTS, type units_CardValidationResult as CardValidationResult, type units_CompoundInterestResult as CompoundInterestResult, type units_CompoundYearRow as CompoundYearRow, type units_Dimensions as Dimensions, type units_FilePermissions as FilePermissions, type units_FormatOptions as FormatOptions, type units_IbanValidationResult as IbanValidationResult, type units_IpConversion as IpConversion, type units_IsbnFormat as IsbnFormat, type units_IsbnResult as IsbnResult, type units_LoanResult as LoanResult, type units_NotationStyle as NotationStyle, type units_NumberBase as NumberBase, type units_Permission as Permission, type units_PxConvertResult as PxConvertResult, type units_SemverVersion as SemverVersion, type units_SimpleInterestResult as SimpleInterestResult, type units_SubnetInfo as SubnetInfo, type units_TaxDirection as TaxDirection, type units_TaxResult as TaxResult, type units_TimeValueDirection as TimeValueDirection, type units_TimeValueResult as TimeValueResult, type units_TipSplitResult as TipSplitResult, type units_ViewportConvertResult as ViewportConvertResult, units_autoFormat as autoFormat, units_bumpVersion as bumpVersion, units_calcAspectRatio as calcAspectRatio, units_calcSubnet as calcSubnet, units_calculateCompoundInterest as calculateCompoundInterest, units_calculateLoan as calculateLoan, units_calculateSimpleInterest as calculateSimpleInterest, units_calculateTax as calculateTax, units_calculateTimeValue as calculateTimeValue, units_calculateTipSplit as calculateTipSplit, units_compareSemver as compareSemver, units_convert as convert, units_convertBytes as convertBytes, units_convertIp as convertIp, units_coverBox as coverBox, units_decimalToIp as decimalToIp, units_decimalToIpCidr as decimalToIpCidr, units_describePermissions as describePermissions, units_fitIntoBox as fitIntoBox, units_formatNumber as formatNumber, units_formatValue as formatValue, units_formatVwValue as formatVwValue, units_formatWithSeparator as formatWithSeparator, units_gcd as gcd, units_ipFromBinary as ipFromBinary, units_ipFromDecimal as ipFromDecimal, units_ipFromHex as ipFromHex, units_ipToBinary as ipToBinary, units_ipToDecimal as ipToDecimal, units_ipToDecimalCidr as ipToDecimalCidr, units_ipToHex as ipToHex, units_ipToOctal as ipToOctal, units_isValid as isValid, units_isValidCidr as isValidCidr, units_isValidIp as isValidIp, units_isValidIpv4 as isValidIpv4, units_octalToPermissions as octalToPermissions, units_parseFileSize as parseFileSize, units_parseInput as parseInput, units_parseNumberString as parseNumberString, units_parseSemver as parseSemver, units_permissionsToChmod as permissionsToChmod, units_permissionsToOctal as permissionsToOctal, units_permissionsToSymbolic as permissionsToSymbolic, units_ptToPx as ptToPx, units_pxToAll as pxToAll, units_pxToViewport as pxToViewport, units_remToPx as remToPx, units_satisfiesRange as satisfiesRange, units_scaleByHeight as scaleByHeight, units_scaleByWidth as scaleByWidth, units_sortVersions as sortVersions, units_splitSubnet as splitSubnet, units_symbolicToPermissions as symbolicToPermissions, units_validateBarcode as validateBarcode, units_validateCardNumber as validateCardNumber, units_validateIban as validateIban, units_validateIsbn as validateIsbn, units_viewportToPx as viewportToPx };
508
536
  }
509
537
 
510
- export { convertIp as $, type AmortizationRow as A, BASE_LABELS as B, COMMON_CURRENCIES as C, type Dimensions as D, type SubnetInfo as E, type FilePermissions as F, type TaxResult as G, type TipSplitResult as H, type IbanValidationResult as I, autoFormat as J, bumpVersion as K, type LoanResult as L, calcAspectRatio as M, type NotationStyle as N, calcSubnet as O, type Permission as P, calculateCompoundInterest as Q, calculateLoan as R, type SemverVersion as S, type TaxDirection as T, calculateSimpleInterest as U, type ViewportConvertResult as V, calculateTax as W, calculateTipSplit as X, compareSemver as Y, convert as Z, convertBytes as _, type AspectRatioResult as a, coverBox as a0, decimalToIp as a1, decimalToIpCidr as a2, describePermissions as a3, fitIntoBox as a4, formatNumber as a5, formatValue as a6, formatVwValue as a7, formatWithSeparator as a8, gcd as a9, scaleByWidth as aA, sortVersions as aB, splitSubnet as aC, symbolicToPermissions as aD, validateBarcode as aE, validateCardNumber as aF, validateIban as aG, validateIsbn as aH, viewportToPx as aI, ipFromBinary as aa, ipFromDecimal as ab, ipFromHex as ac, ipToBinary as ad, ipToDecimal as ae, ipToDecimalCidr as af, ipToHex as ag, ipToOctal as ah, isValid as ai, isValidCidr as aj, isValidIp as ak, isValidIpv4 as al, octalToPermissions as am, parseFileSize as an, parseInput as ao, parseNumberString as ap, parseSemver as aq, permissionsToChmod as ar, permissionsToOctal as as, permissionsToSymbolic as at, ptToPx as au, pxToAll as av, pxToViewport as aw, remToPx as ax, satisfiesRange as ay, scaleByHeight as az, BASE_PREFIXES as b, BYTE_UNITS as c, type BarcodeFormat as d, type BarcodeValidationResult as e, type BaseConvertResult as f, type ByteConvertResult as g, type ByteUnit as h, COMMON_LOCALES as i, COMMON_PERMISSIONS as j, COMMON_RATIOS as k, COMMON_SIZES as l, COMMON_TAX_RATES as m, COMMON_TIP_PERCENTAGES as n, COMMON_VIEWPORTS as o, type CardValidationResult as p, type CompoundInterestResult as q, type CompoundYearRow as r, type FormatOptions as s, type IpConversion as t, units as u, type IsbnFormat as v, type IsbnResult as w, type NumberBase as x, type PxConvertResult as y, type SimpleInterestResult as z };
538
+ export { compareSemver as $, type AmortizationRow as A, BASE_LABELS as B, COMMON_CURRENCIES as C, type Dimensions as D, type SubnetInfo as E, type FilePermissions as F, type TaxResult as G, type TimeValueDirection as H, type IbanValidationResult as I, type TimeValueResult as J, type TipSplitResult as K, type LoanResult as L, autoFormat as M, type NotationStyle as N, bumpVersion as O, type Permission as P, calcAspectRatio as Q, calcSubnet as R, type SemverVersion as S, type TaxDirection as T, calculateCompoundInterest as U, type ViewportConvertResult as V, calculateLoan as W, calculateSimpleInterest as X, calculateTax as Y, calculateTimeValue as Z, calculateTipSplit as _, type AspectRatioResult as a, convert as a0, convertBytes as a1, convertIp as a2, coverBox as a3, decimalToIp as a4, decimalToIpCidr as a5, describePermissions as a6, fitIntoBox as a7, formatNumber as a8, formatValue as a9, remToPx as aA, satisfiesRange as aB, scaleByHeight as aC, scaleByWidth as aD, sortVersions as aE, splitSubnet as aF, symbolicToPermissions as aG, validateBarcode as aH, validateCardNumber as aI, validateIban as aJ, validateIsbn as aK, viewportToPx as aL, formatVwValue as aa, formatWithSeparator as ab, gcd as ac, ipFromBinary as ad, ipFromDecimal as ae, ipFromHex as af, ipToBinary as ag, ipToDecimal as ah, ipToDecimalCidr as ai, ipToHex as aj, ipToOctal as ak, isValid as al, isValidCidr as am, isValidIp as an, isValidIpv4 as ao, octalToPermissions as ap, parseFileSize as aq, parseInput as ar, parseNumberString as as, parseSemver as at, permissionsToChmod as au, permissionsToOctal as av, permissionsToSymbolic as aw, ptToPx as ax, pxToAll as ay, pxToViewport as az, BASE_PREFIXES as b, BYTE_UNITS as c, type BarcodeFormat as d, type BarcodeValidationResult as e, type BaseConvertResult as f, type ByteConvertResult as g, type ByteUnit as h, COMMON_LOCALES as i, COMMON_PERMISSIONS as j, COMMON_RATIOS as k, COMMON_SIZES as l, COMMON_TAX_RATES as m, COMMON_TIP_PERCENTAGES as n, COMMON_VIEWPORTS as o, type CardValidationResult as p, type CompoundInterestResult as q, type CompoundYearRow as r, type FormatOptions as s, type IpConversion as t, units as u, type IsbnFormat as v, type IsbnResult as w, type NumberBase as x, type PxConvertResult as y, type SimpleInterestResult as z };
@@ -404,6 +404,31 @@ interface SimpleInterestResult {
404
404
  declare function calculateSimpleInterest(principal: number, annualRatePercent: number, years: number): SimpleInterestResult | {
405
405
  error: string;
406
406
  };
407
+ type TimeValueDirection = "future" | "present";
408
+ interface TimeValueResult {
409
+ direction: TimeValueDirection;
410
+ annualRatePercent: number;
411
+ years: number;
412
+ compoundsPerYear: number;
413
+ totalPeriods: number;
414
+ ratePerPeriodPercent: number;
415
+ growthFactor: number;
416
+ presentValue: number;
417
+ futureValue: number;
418
+ interest: number;
419
+ }
420
+ /**
421
+ * Standard time-value-of-money conversion in either direction. With
422
+ * direction "future" the input amount is treated as a present value and
423
+ * grown to its future value at the given annual rate; with direction
424
+ * "present" the input amount is treated as a future value and discounted
425
+ * back to its present value. Interest is compounded `compoundsPerYear`
426
+ * times per year (1 = annually). Pure formula over user-supplied numbers,
427
+ * no live rate feed.
428
+ */
429
+ declare function calculateTimeValue(amount: number, annualRatePercent: number, years: number, direction: TimeValueDirection, compoundsPerYear?: number): TimeValueResult | {
430
+ error: string;
431
+ };
407
432
 
408
433
  type units_AmortizationRow = AmortizationRow;
409
434
  type units_AspectRatioResult = AspectRatioResult;
@@ -443,6 +468,8 @@ type units_SimpleInterestResult = SimpleInterestResult;
443
468
  type units_SubnetInfo = SubnetInfo;
444
469
  type units_TaxDirection = TaxDirection;
445
470
  type units_TaxResult = TaxResult;
471
+ type units_TimeValueDirection = TimeValueDirection;
472
+ type units_TimeValueResult = TimeValueResult;
446
473
  type units_TipSplitResult = TipSplitResult;
447
474
  type units_ViewportConvertResult = ViewportConvertResult;
448
475
  declare const units_autoFormat: typeof autoFormat;
@@ -453,6 +480,7 @@ declare const units_calculateCompoundInterest: typeof calculateCompoundInterest;
453
480
  declare const units_calculateLoan: typeof calculateLoan;
454
481
  declare const units_calculateSimpleInterest: typeof calculateSimpleInterest;
455
482
  declare const units_calculateTax: typeof calculateTax;
483
+ declare const units_calculateTimeValue: typeof calculateTimeValue;
456
484
  declare const units_calculateTipSplit: typeof calculateTipSplit;
457
485
  declare const units_compareSemver: typeof compareSemver;
458
486
  declare const units_convert: typeof convert;
@@ -504,7 +532,7 @@ declare const units_validateIban: typeof validateIban;
504
532
  declare const units_validateIsbn: typeof validateIsbn;
505
533
  declare const units_viewportToPx: typeof viewportToPx;
506
534
  declare namespace units {
507
- export { type units_AmortizationRow as AmortizationRow, type units_AspectRatioResult as AspectRatioResult, units_BASE_LABELS as BASE_LABELS, units_BASE_PREFIXES as BASE_PREFIXES, units_BYTE_UNITS as BYTE_UNITS, type units_BarcodeFormat as BarcodeFormat, type units_BarcodeValidationResult as BarcodeValidationResult, type units_BaseConvertResult as BaseConvertResult, type units_ByteConvertResult as ByteConvertResult, type units_ByteUnit as ByteUnit, units_COMMON_CURRENCIES as COMMON_CURRENCIES, units_COMMON_LOCALES as COMMON_LOCALES, units_COMMON_PERMISSIONS as COMMON_PERMISSIONS, units_COMMON_RATIOS as COMMON_RATIOS, units_COMMON_SIZES as COMMON_SIZES, units_COMMON_TAX_RATES as COMMON_TAX_RATES, units_COMMON_TIP_PERCENTAGES as COMMON_TIP_PERCENTAGES, units_COMMON_VIEWPORTS as COMMON_VIEWPORTS, type units_CardValidationResult as CardValidationResult, type units_CompoundInterestResult as CompoundInterestResult, type units_CompoundYearRow as CompoundYearRow, type units_Dimensions as Dimensions, type units_FilePermissions as FilePermissions, type units_FormatOptions as FormatOptions, type units_IbanValidationResult as IbanValidationResult, type units_IpConversion as IpConversion, type units_IsbnFormat as IsbnFormat, type units_IsbnResult as IsbnResult, type units_LoanResult as LoanResult, type units_NotationStyle as NotationStyle, type units_NumberBase as NumberBase, type units_Permission as Permission, type units_PxConvertResult as PxConvertResult, type units_SemverVersion as SemverVersion, type units_SimpleInterestResult as SimpleInterestResult, type units_SubnetInfo as SubnetInfo, type units_TaxDirection as TaxDirection, type units_TaxResult as TaxResult, type units_TipSplitResult as TipSplitResult, type units_ViewportConvertResult as ViewportConvertResult, units_autoFormat as autoFormat, units_bumpVersion as bumpVersion, units_calcAspectRatio as calcAspectRatio, units_calcSubnet as calcSubnet, units_calculateCompoundInterest as calculateCompoundInterest, units_calculateLoan as calculateLoan, units_calculateSimpleInterest as calculateSimpleInterest, units_calculateTax as calculateTax, units_calculateTipSplit as calculateTipSplit, units_compareSemver as compareSemver, units_convert as convert, units_convertBytes as convertBytes, units_convertIp as convertIp, units_coverBox as coverBox, units_decimalToIp as decimalToIp, units_decimalToIpCidr as decimalToIpCidr, units_describePermissions as describePermissions, units_fitIntoBox as fitIntoBox, units_formatNumber as formatNumber, units_formatValue as formatValue, units_formatVwValue as formatVwValue, units_formatWithSeparator as formatWithSeparator, units_gcd as gcd, units_ipFromBinary as ipFromBinary, units_ipFromDecimal as ipFromDecimal, units_ipFromHex as ipFromHex, units_ipToBinary as ipToBinary, units_ipToDecimal as ipToDecimal, units_ipToDecimalCidr as ipToDecimalCidr, units_ipToHex as ipToHex, units_ipToOctal as ipToOctal, units_isValid as isValid, units_isValidCidr as isValidCidr, units_isValidIp as isValidIp, units_isValidIpv4 as isValidIpv4, units_octalToPermissions as octalToPermissions, units_parseFileSize as parseFileSize, units_parseInput as parseInput, units_parseNumberString as parseNumberString, units_parseSemver as parseSemver, units_permissionsToChmod as permissionsToChmod, units_permissionsToOctal as permissionsToOctal, units_permissionsToSymbolic as permissionsToSymbolic, units_ptToPx as ptToPx, units_pxToAll as pxToAll, units_pxToViewport as pxToViewport, units_remToPx as remToPx, units_satisfiesRange as satisfiesRange, units_scaleByHeight as scaleByHeight, units_scaleByWidth as scaleByWidth, units_sortVersions as sortVersions, units_splitSubnet as splitSubnet, units_symbolicToPermissions as symbolicToPermissions, units_validateBarcode as validateBarcode, units_validateCardNumber as validateCardNumber, units_validateIban as validateIban, units_validateIsbn as validateIsbn, units_viewportToPx as viewportToPx };
535
+ export { type units_AmortizationRow as AmortizationRow, type units_AspectRatioResult as AspectRatioResult, units_BASE_LABELS as BASE_LABELS, units_BASE_PREFIXES as BASE_PREFIXES, units_BYTE_UNITS as BYTE_UNITS, type units_BarcodeFormat as BarcodeFormat, type units_BarcodeValidationResult as BarcodeValidationResult, type units_BaseConvertResult as BaseConvertResult, type units_ByteConvertResult as ByteConvertResult, type units_ByteUnit as ByteUnit, units_COMMON_CURRENCIES as COMMON_CURRENCIES, units_COMMON_LOCALES as COMMON_LOCALES, units_COMMON_PERMISSIONS as COMMON_PERMISSIONS, units_COMMON_RATIOS as COMMON_RATIOS, units_COMMON_SIZES as COMMON_SIZES, units_COMMON_TAX_RATES as COMMON_TAX_RATES, units_COMMON_TIP_PERCENTAGES as COMMON_TIP_PERCENTAGES, units_COMMON_VIEWPORTS as COMMON_VIEWPORTS, type units_CardValidationResult as CardValidationResult, type units_CompoundInterestResult as CompoundInterestResult, type units_CompoundYearRow as CompoundYearRow, type units_Dimensions as Dimensions, type units_FilePermissions as FilePermissions, type units_FormatOptions as FormatOptions, type units_IbanValidationResult as IbanValidationResult, type units_IpConversion as IpConversion, type units_IsbnFormat as IsbnFormat, type units_IsbnResult as IsbnResult, type units_LoanResult as LoanResult, type units_NotationStyle as NotationStyle, type units_NumberBase as NumberBase, type units_Permission as Permission, type units_PxConvertResult as PxConvertResult, type units_SemverVersion as SemverVersion, type units_SimpleInterestResult as SimpleInterestResult, type units_SubnetInfo as SubnetInfo, type units_TaxDirection as TaxDirection, type units_TaxResult as TaxResult, type units_TimeValueDirection as TimeValueDirection, type units_TimeValueResult as TimeValueResult, type units_TipSplitResult as TipSplitResult, type units_ViewportConvertResult as ViewportConvertResult, units_autoFormat as autoFormat, units_bumpVersion as bumpVersion, units_calcAspectRatio as calcAspectRatio, units_calcSubnet as calcSubnet, units_calculateCompoundInterest as calculateCompoundInterest, units_calculateLoan as calculateLoan, units_calculateSimpleInterest as calculateSimpleInterest, units_calculateTax as calculateTax, units_calculateTimeValue as calculateTimeValue, units_calculateTipSplit as calculateTipSplit, units_compareSemver as compareSemver, units_convert as convert, units_convertBytes as convertBytes, units_convertIp as convertIp, units_coverBox as coverBox, units_decimalToIp as decimalToIp, units_decimalToIpCidr as decimalToIpCidr, units_describePermissions as describePermissions, units_fitIntoBox as fitIntoBox, units_formatNumber as formatNumber, units_formatValue as formatValue, units_formatVwValue as formatVwValue, units_formatWithSeparator as formatWithSeparator, units_gcd as gcd, units_ipFromBinary as ipFromBinary, units_ipFromDecimal as ipFromDecimal, units_ipFromHex as ipFromHex, units_ipToBinary as ipToBinary, units_ipToDecimal as ipToDecimal, units_ipToDecimalCidr as ipToDecimalCidr, units_ipToHex as ipToHex, units_ipToOctal as ipToOctal, units_isValid as isValid, units_isValidCidr as isValidCidr, units_isValidIp as isValidIp, units_isValidIpv4 as isValidIpv4, units_octalToPermissions as octalToPermissions, units_parseFileSize as parseFileSize, units_parseInput as parseInput, units_parseNumberString as parseNumberString, units_parseSemver as parseSemver, units_permissionsToChmod as permissionsToChmod, units_permissionsToOctal as permissionsToOctal, units_permissionsToSymbolic as permissionsToSymbolic, units_ptToPx as ptToPx, units_pxToAll as pxToAll, units_pxToViewport as pxToViewport, units_remToPx as remToPx, units_satisfiesRange as satisfiesRange, units_scaleByHeight as scaleByHeight, units_scaleByWidth as scaleByWidth, units_sortVersions as sortVersions, units_splitSubnet as splitSubnet, units_symbolicToPermissions as symbolicToPermissions, units_validateBarcode as validateBarcode, units_validateCardNumber as validateCardNumber, units_validateIban as validateIban, units_validateIsbn as validateIsbn, units_viewportToPx as viewportToPx };
508
536
  }
509
537
 
510
- export { convertIp as $, type AmortizationRow as A, BASE_LABELS as B, COMMON_CURRENCIES as C, type Dimensions as D, type SubnetInfo as E, type FilePermissions as F, type TaxResult as G, type TipSplitResult as H, type IbanValidationResult as I, autoFormat as J, bumpVersion as K, type LoanResult as L, calcAspectRatio as M, type NotationStyle as N, calcSubnet as O, type Permission as P, calculateCompoundInterest as Q, calculateLoan as R, type SemverVersion as S, type TaxDirection as T, calculateSimpleInterest as U, type ViewportConvertResult as V, calculateTax as W, calculateTipSplit as X, compareSemver as Y, convert as Z, convertBytes as _, type AspectRatioResult as a, coverBox as a0, decimalToIp as a1, decimalToIpCidr as a2, describePermissions as a3, fitIntoBox as a4, formatNumber as a5, formatValue as a6, formatVwValue as a7, formatWithSeparator as a8, gcd as a9, scaleByWidth as aA, sortVersions as aB, splitSubnet as aC, symbolicToPermissions as aD, validateBarcode as aE, validateCardNumber as aF, validateIban as aG, validateIsbn as aH, viewportToPx as aI, ipFromBinary as aa, ipFromDecimal as ab, ipFromHex as ac, ipToBinary as ad, ipToDecimal as ae, ipToDecimalCidr as af, ipToHex as ag, ipToOctal as ah, isValid as ai, isValidCidr as aj, isValidIp as ak, isValidIpv4 as al, octalToPermissions as am, parseFileSize as an, parseInput as ao, parseNumberString as ap, parseSemver as aq, permissionsToChmod as ar, permissionsToOctal as as, permissionsToSymbolic as at, ptToPx as au, pxToAll as av, pxToViewport as aw, remToPx as ax, satisfiesRange as ay, scaleByHeight as az, BASE_PREFIXES as b, BYTE_UNITS as c, type BarcodeFormat as d, type BarcodeValidationResult as e, type BaseConvertResult as f, type ByteConvertResult as g, type ByteUnit as h, COMMON_LOCALES as i, COMMON_PERMISSIONS as j, COMMON_RATIOS as k, COMMON_SIZES as l, COMMON_TAX_RATES as m, COMMON_TIP_PERCENTAGES as n, COMMON_VIEWPORTS as o, type CardValidationResult as p, type CompoundInterestResult as q, type CompoundYearRow as r, type FormatOptions as s, type IpConversion as t, units as u, type IsbnFormat as v, type IsbnResult as w, type NumberBase as x, type PxConvertResult as y, type SimpleInterestResult as z };
538
+ export { compareSemver as $, type AmortizationRow as A, BASE_LABELS as B, COMMON_CURRENCIES as C, type Dimensions as D, type SubnetInfo as E, type FilePermissions as F, type TaxResult as G, type TimeValueDirection as H, type IbanValidationResult as I, type TimeValueResult as J, type TipSplitResult as K, type LoanResult as L, autoFormat as M, type NotationStyle as N, bumpVersion as O, type Permission as P, calcAspectRatio as Q, calcSubnet as R, type SemverVersion as S, type TaxDirection as T, calculateCompoundInterest as U, type ViewportConvertResult as V, calculateLoan as W, calculateSimpleInterest as X, calculateTax as Y, calculateTimeValue as Z, calculateTipSplit as _, type AspectRatioResult as a, convert as a0, convertBytes as a1, convertIp as a2, coverBox as a3, decimalToIp as a4, decimalToIpCidr as a5, describePermissions as a6, fitIntoBox as a7, formatNumber as a8, formatValue as a9, remToPx as aA, satisfiesRange as aB, scaleByHeight as aC, scaleByWidth as aD, sortVersions as aE, splitSubnet as aF, symbolicToPermissions as aG, validateBarcode as aH, validateCardNumber as aI, validateIban as aJ, validateIsbn as aK, viewportToPx as aL, formatVwValue as aa, formatWithSeparator as ab, gcd as ac, ipFromBinary as ad, ipFromDecimal as ae, ipFromHex as af, ipToBinary as ag, ipToDecimal as ah, ipToDecimalCidr as ai, ipToHex as aj, ipToOctal as ak, isValid as al, isValidCidr as am, isValidIp as an, isValidIpv4 as ao, octalToPermissions as ap, parseFileSize as aq, parseInput as ar, parseNumberString as as, parseSemver as at, permissionsToChmod as au, permissionsToOctal as av, permissionsToSymbolic as aw, ptToPx as ax, pxToAll as ay, pxToViewport as az, BASE_PREFIXES as b, BYTE_UNITS as c, type BarcodeFormat as d, type BarcodeValidationResult as e, type BaseConvertResult as f, type ByteConvertResult as g, type ByteUnit as h, COMMON_LOCALES as i, COMMON_PERMISSIONS as j, COMMON_RATIOS as k, COMMON_SIZES as l, COMMON_TAX_RATES as m, COMMON_TIP_PERCENTAGES as n, COMMON_VIEWPORTS as o, type CardValidationResult as p, type CompoundInterestResult as q, type CompoundYearRow as r, type FormatOptions as s, type IpConversion as t, units as u, type IsbnFormat as v, type IsbnResult as w, type NumberBase as x, type PxConvertResult as y, type SimpleInterestResult as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@utilix-tech/sdk",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "154+ developer utility tools for Node.js: JSON, encoding, hashing, color, CSS, network and more. Runs locally, no API key required.",
5
5
  "author": "Utilix <hello@utilix.tech>",
6
6
  "license": "MIT",