@atmaticai/agent-tools 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/a2a/index.d.mts +169 -0
  2. package/dist/a2a/index.d.ts +169 -0
  3. package/dist/a2a/index.js +6012 -0
  4. package/dist/a2a/index.js.map +1 -0
  5. package/dist/a2a/index.mjs +5934 -0
  6. package/dist/a2a/index.mjs.map +1 -0
  7. package/dist/archive/index.d.mts +1 -0
  8. package/dist/archive/index.d.ts +1 -0
  9. package/dist/archive/index.js +90 -0
  10. package/dist/archive/index.js.map +1 -0
  11. package/dist/archive/index.mjs +80 -0
  12. package/dist/archive/index.mjs.map +1 -0
  13. package/dist/cli.js +4441 -164
  14. package/dist/cli.js.map +1 -1
  15. package/dist/cli.mjs +4408 -161
  16. package/dist/cli.mjs.map +1 -1
  17. package/dist/color/index.d.mts +1 -0
  18. package/dist/color/index.d.ts +1 -0
  19. package/dist/color/index.js +347 -0
  20. package/dist/color/index.js.map +1 -0
  21. package/dist/color/index.mjs +336 -0
  22. package/dist/color/index.mjs.map +1 -0
  23. package/dist/crypto/index.d.mts +1 -0
  24. package/dist/crypto/index.d.ts +1 -0
  25. package/dist/crypto/index.js +116 -0
  26. package/dist/crypto/index.js.map +1 -0
  27. package/dist/crypto/index.mjs +108 -0
  28. package/dist/crypto/index.mjs.map +1 -0
  29. package/dist/csv/index.d.mts +1 -0
  30. package/dist/csv/index.d.ts +1 -0
  31. package/dist/csv/index.js +371 -0
  32. package/dist/csv/index.js.map +1 -0
  33. package/dist/csv/index.mjs +348 -0
  34. package/dist/csv/index.mjs.map +1 -0
  35. package/dist/datetime/index.d.mts +1 -0
  36. package/dist/datetime/index.d.ts +1 -0
  37. package/dist/datetime/index.js +234 -0
  38. package/dist/datetime/index.js.map +1 -0
  39. package/dist/datetime/index.mjs +224 -0
  40. package/dist/datetime/index.mjs.map +1 -0
  41. package/dist/diff/index.d.mts +2 -0
  42. package/dist/diff/index.d.ts +2 -0
  43. package/dist/diff/index.js +84 -0
  44. package/dist/diff/index.js.map +1 -0
  45. package/dist/diff/index.mjs +78 -0
  46. package/dist/diff/index.mjs.map +1 -0
  47. package/dist/excel/index.d.mts +1 -0
  48. package/dist/excel/index.d.ts +1 -0
  49. package/dist/excel/index.js +163 -0
  50. package/dist/excel/index.js.map +1 -0
  51. package/dist/excel/index.mjs +153 -0
  52. package/dist/excel/index.mjs.map +1 -0
  53. package/dist/image/index.d.mts +1 -0
  54. package/dist/image/index.d.ts +1 -0
  55. package/dist/image/index.js +123 -0
  56. package/dist/image/index.js.map +1 -0
  57. package/dist/image/index.mjs +107 -0
  58. package/dist/image/index.mjs.map +1 -0
  59. package/dist/index--vbnYfdE.d.mts +142 -0
  60. package/dist/index--vbnYfdE.d.ts +142 -0
  61. package/dist/index-7FZQloN-.d.mts +62 -0
  62. package/dist/index-7FZQloN-.d.ts +62 -0
  63. package/dist/index-7XgaTVH5.d.mts +93 -0
  64. package/dist/index-7XgaTVH5.d.ts +93 -0
  65. package/dist/index-7bvFmh45.d.mts +87 -0
  66. package/dist/index-7bvFmh45.d.ts +87 -0
  67. package/dist/index-BDZcIVCU.d.mts +53 -0
  68. package/dist/index-BDZcIVCU.d.ts +53 -0
  69. package/dist/index-BKeYao0B.d.mts +320 -0
  70. package/dist/index-BKeYao0B.d.ts +320 -0
  71. package/dist/index-BN00EnUU.d.mts +55 -0
  72. package/dist/index-BN00EnUU.d.ts +55 -0
  73. package/dist/index-BZDcrPs-.d.mts +316 -0
  74. package/dist/index-BZDcrPs-.d.ts +316 -0
  75. package/dist/index-CQ1EukC4.d.mts +59 -0
  76. package/dist/index-CQ1EukC4.d.ts +59 -0
  77. package/dist/index-CgRVnFOt.d.mts +91 -0
  78. package/dist/index-CgRVnFOt.d.ts +91 -0
  79. package/dist/index-Dh47fgVS.d.mts +216 -0
  80. package/dist/index-Dh47fgVS.d.ts +216 -0
  81. package/dist/index-DjBDZzuj.d.mts +54 -0
  82. package/dist/index-DjBDZzuj.d.ts +54 -0
  83. package/dist/index-FFrvmr-n.d.mts +50 -0
  84. package/dist/index-FFrvmr-n.d.ts +50 -0
  85. package/dist/index-QWC8yIgW.d.mts +106 -0
  86. package/dist/index-QWC8yIgW.d.ts +106 -0
  87. package/dist/index-fJD8SORm.d.mts +61 -0
  88. package/dist/index-fJD8SORm.d.ts +61 -0
  89. package/dist/index-pPy_XDQU.d.mts +56 -0
  90. package/dist/index-pPy_XDQU.d.ts +56 -0
  91. package/dist/index-rwh9hdD9.d.mts +68 -0
  92. package/dist/index-rwh9hdD9.d.ts +68 -0
  93. package/dist/index-uXdkAfea.d.mts +93 -0
  94. package/dist/index-uXdkAfea.d.ts +93 -0
  95. package/dist/index.d.mts +25 -5
  96. package/dist/index.d.ts +25 -5
  97. package/dist/index.js +5195 -147
  98. package/dist/index.js.map +1 -1
  99. package/dist/index.mjs +5145 -145
  100. package/dist/index.mjs.map +1 -1
  101. package/dist/json/index.d.mts +1 -0
  102. package/dist/json/index.d.ts +1 -0
  103. package/dist/json/index.js +599 -0
  104. package/dist/json/index.js.map +1 -0
  105. package/dist/json/index.mjs +552 -0
  106. package/dist/json/index.mjs.map +1 -0
  107. package/dist/markdown/index.d.mts +1 -0
  108. package/dist/markdown/index.d.ts +1 -0
  109. package/dist/markdown/index.js +151 -0
  110. package/dist/markdown/index.js.map +1 -0
  111. package/dist/markdown/index.mjs +139 -0
  112. package/dist/markdown/index.mjs.map +1 -0
  113. package/dist/math/index.d.mts +1 -0
  114. package/dist/math/index.d.ts +1 -0
  115. package/dist/math/index.js +247 -0
  116. package/dist/math/index.js.map +1 -0
  117. package/dist/math/index.mjs +240 -0
  118. package/dist/math/index.mjs.map +1 -0
  119. package/dist/pdf/index.d.mts +1 -0
  120. package/dist/pdf/index.d.ts +1 -0
  121. package/dist/pdf/index.js +628 -0
  122. package/dist/pdf/index.js.map +1 -0
  123. package/dist/pdf/index.mjs +598 -0
  124. package/dist/pdf/index.mjs.map +1 -0
  125. package/dist/physics/index.d.mts +1 -0
  126. package/dist/physics/index.d.ts +1 -0
  127. package/dist/physics/index.js +467 -0
  128. package/dist/physics/index.js.map +1 -0
  129. package/dist/physics/index.mjs +435 -0
  130. package/dist/physics/index.mjs.map +1 -0
  131. package/dist/regex/index.d.mts +1 -0
  132. package/dist/regex/index.d.ts +1 -0
  133. package/dist/regex/index.js +93 -0
  134. package/dist/regex/index.js.map +1 -0
  135. package/dist/regex/index.mjs +88 -0
  136. package/dist/regex/index.mjs.map +1 -0
  137. package/dist/settings/index.d.mts +41 -0
  138. package/dist/settings/index.d.ts +41 -0
  139. package/dist/settings/index.js +150 -0
  140. package/dist/settings/index.js.map +1 -0
  141. package/dist/settings/index.mjs +143 -0
  142. package/dist/settings/index.mjs.map +1 -0
  143. package/dist/sql/index.d.mts +1 -0
  144. package/dist/sql/index.d.ts +1 -0
  145. package/dist/sql/index.js +146 -0
  146. package/dist/sql/index.js.map +1 -0
  147. package/dist/sql/index.mjs +139 -0
  148. package/dist/sql/index.mjs.map +1 -0
  149. package/dist/structural/index.d.mts +1 -0
  150. package/dist/structural/index.d.ts +1 -0
  151. package/dist/structural/index.js +608 -0
  152. package/dist/structural/index.js.map +1 -0
  153. package/dist/structural/index.mjs +588 -0
  154. package/dist/structural/index.mjs.map +1 -0
  155. package/dist/text/index.d.mts +1 -0
  156. package/dist/text/index.d.ts +1 -0
  157. package/dist/text/index.js +250 -0
  158. package/dist/text/index.js.map +1 -0
  159. package/dist/text/index.mjs +242 -0
  160. package/dist/text/index.mjs.map +1 -0
  161. package/dist/xml/index.d.mts +1 -0
  162. package/dist/xml/index.d.ts +1 -0
  163. package/dist/xml/index.js +188 -0
  164. package/dist/xml/index.js.map +1 -0
  165. package/dist/xml/index.mjs +180 -0
  166. package/dist/xml/index.mjs.map +1 -0
  167. package/package.json +138 -6
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/pdf/utils.ts","../../src/pdf/merge.ts","../../src/pdf/split.ts","../../src/pdf/metadata.ts","../../src/pdf/transform.ts","../../src/pdf/extract.ts","../../src/pdf/template.ts","../../src/pdf/form.ts"],"names":["PDFDocument","result","StandardFonts","rgb"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { PageRange } from './types';\n\nexport function parsePageRanges(rangeStr: string, totalPages: number): number[] {\n const pages: Set<number> = new Set();\n const parts = rangeStr.split(',').map((s) => s.trim());\n\n for (const part of parts) {\n if (part.toLowerCase() === 'all') {\n for (let i = 1; i <= totalPages; i++) {\n pages.add(i);\n }\n continue;\n }\n\n if (part.includes('-')) {\n const [startStr, endStr] = part.split('-').map((s) => s.trim());\n const start = parseInt(startStr, 10) || 1;\n const end = parseInt(endStr, 10) || totalPages;\n\n for (let i = Math.max(1, start); i <= Math.min(totalPages, end); i++) {\n pages.add(i);\n }\n } else {\n const page = parseInt(part, 10);\n if (page >= 1 && page <= totalPages) {\n pages.add(page);\n }\n }\n }\n\n return [...pages].sort((a, b) => a - b);\n}\n\nexport function parseRangesToGroups(\n rangeStr: string,\n totalPages: number\n): PageRange[] {\n const ranges: PageRange[] = [];\n const parts = rangeStr.split(',').map((s) => s.trim());\n\n for (const part of parts) {\n if (part.toLowerCase() === 'all') {\n ranges.push({ start: 1, end: totalPages });\n continue;\n }\n\n if (part.includes('-')) {\n const [startStr, endStr] = part.split('-').map((s) => s.trim());\n const start = parseInt(startStr, 10) || 1;\n const end = parseInt(endStr, 10) || totalPages;\n ranges.push({\n start: Math.max(1, start),\n end: Math.min(totalPages, end),\n });\n } else {\n const page = parseInt(part, 10);\n if (page >= 1 && page <= totalPages) {\n ranges.push({ start: page, end: page });\n }\n }\n }\n\n return ranges;\n}\n\nexport function formatBytes(bytes: number): string {\n if (bytes === 0) return '0 B';\n\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;\n}\n\nexport function toUint8Array(data: Buffer | Uint8Array | ArrayBuffer): Uint8Array {\n if (data instanceof Uint8Array) {\n return data;\n }\n if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n if (Buffer.isBuffer(data)) {\n return new Uint8Array(data);\n }\n throw new Error('Invalid data type');\n}\n","import { PDFDocument } from 'pdf-lib';\nimport type { MergeOptions } from './types';\nimport { parsePageRanges, toUint8Array } from './utils';\n\nexport async function merge(\n files: (Buffer | Uint8Array)[],\n options: MergeOptions = {}\n): Promise<Uint8Array> {\n const { pageRanges } = options;\n\n const mergedPdf = await PDFDocument.create();\n\n for (let i = 0; i < files.length; i++) {\n const fileData = toUint8Array(files[i]);\n const sourcePdf = await PDFDocument.load(fileData);\n const totalPages = sourcePdf.getPageCount();\n\n let pagesToCopy: number[];\n\n if (pageRanges && pageRanges[i]) {\n pagesToCopy = parsePageRanges(pageRanges[i], totalPages);\n } else {\n pagesToCopy = Array.from({ length: totalPages }, (_, j) => j + 1);\n }\n\n const pageIndices = pagesToCopy.map((p) => p - 1);\n const copiedPages = await mergedPdf.copyPages(sourcePdf, pageIndices);\n\n for (const page of copiedPages) {\n mergedPdf.addPage(page);\n }\n }\n\n return mergedPdf.save();\n}\n\nexport async function mergeAll(files: (Buffer | Uint8Array)[]): Promise<Uint8Array> {\n return merge(files);\n}\n\nexport async function appendPages(\n target: Buffer | Uint8Array,\n source: Buffer | Uint8Array,\n pageRange?: string\n): Promise<Uint8Array> {\n const targetPdf = await PDFDocument.load(toUint8Array(target));\n const sourcePdf = await PDFDocument.load(toUint8Array(source));\n\n const totalPages = sourcePdf.getPageCount();\n const pagesToCopy = pageRange\n ? parsePageRanges(pageRange, totalPages)\n : Array.from({ length: totalPages }, (_, i) => i + 1);\n\n const pageIndices = pagesToCopy.map((p) => p - 1);\n const copiedPages = await targetPdf.copyPages(sourcePdf, pageIndices);\n\n for (const page of copiedPages) {\n targetPdf.addPage(page);\n }\n\n return targetPdf.save();\n}\n","import { PDFDocument } from 'pdf-lib';\nimport type { SplitOptions } from './types';\nimport { parsePageRanges, parseRangesToGroups, toUint8Array } from './utils';\n\nexport async function split(\n file: Buffer | Uint8Array,\n options: SplitOptions\n): Promise<Uint8Array[]> {\n const { ranges } = options;\n const fileData = toUint8Array(file);\n const sourcePdf = await PDFDocument.load(fileData);\n const totalPages = sourcePdf.getPageCount();\n\n const rangeGroups = parseRangesToGroups(ranges, totalPages);\n const results: Uint8Array[] = [];\n\n for (const range of rangeGroups) {\n const newPdf = await PDFDocument.create();\n const pageIndices: number[] = [];\n\n for (let i = range.start; i <= range.end; i++) {\n pageIndices.push(i - 1);\n }\n\n const copiedPages = await newPdf.copyPages(sourcePdf, pageIndices);\n for (const page of copiedPages) {\n newPdf.addPage(page);\n }\n\n results.push(await newPdf.save());\n }\n\n return results;\n}\n\nexport async function extractPages(\n file: Buffer | Uint8Array,\n pageRange: string\n): Promise<Uint8Array> {\n const fileData = toUint8Array(file);\n const sourcePdf = await PDFDocument.load(fileData);\n const totalPages = sourcePdf.getPageCount();\n\n const pages = parsePageRanges(pageRange, totalPages);\n const newPdf = await PDFDocument.create();\n\n const pageIndices = pages.map((p) => p - 1);\n const copiedPages = await newPdf.copyPages(sourcePdf, pageIndices);\n\n for (const page of copiedPages) {\n newPdf.addPage(page);\n }\n\n return newPdf.save();\n}\n\nexport async function splitEveryN(\n file: Buffer | Uint8Array,\n n: number\n): Promise<Uint8Array[]> {\n const fileData = toUint8Array(file);\n const sourcePdf = await PDFDocument.load(fileData);\n const totalPages = sourcePdf.getPageCount();\n\n const ranges: string[] = [];\n for (let i = 1; i <= totalPages; i += n) {\n const end = Math.min(i + n - 1, totalPages);\n ranges.push(`${i}-${end}`);\n }\n\n return split(file, { ranges: ranges.join(',') });\n}\n\nexport async function splitIntoSingle(\n file: Buffer | Uint8Array\n): Promise<Uint8Array[]> {\n return splitEveryN(file, 1);\n}\n","import { PDFDocument } from 'pdf-lib';\nimport type { PDFMetadata, PDFInfo, PageInfo } from './types';\nimport { toUint8Array } from './utils';\n\nexport async function getInfo(file: Buffer | Uint8Array): Promise<PDFInfo> {\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData, { ignoreEncryption: true });\n\n return {\n pageCount: pdf.getPageCount(),\n metadata: {\n title: pdf.getTitle(),\n author: pdf.getAuthor(),\n subject: pdf.getSubject(),\n keywords: pdf.getKeywords()?.split(',').map((k) => k.trim()),\n creator: pdf.getCreator(),\n producer: pdf.getProducer(),\n creationDate: pdf.getCreationDate(),\n modificationDate: pdf.getModificationDate(),\n },\n encrypted: false,\n version: 'PDF-1.7',\n };\n}\n\nexport async function getMetadata(file: Buffer | Uint8Array): Promise<PDFMetadata> {\n const info = await getInfo(file);\n return info.metadata;\n}\n\nexport async function setMetadata(\n file: Buffer | Uint8Array,\n metadata: Partial<PDFMetadata>\n): Promise<Uint8Array> {\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData);\n\n if (metadata.title !== undefined) pdf.setTitle(metadata.title);\n if (metadata.author !== undefined) pdf.setAuthor(metadata.author);\n if (metadata.subject !== undefined) pdf.setSubject(metadata.subject);\n if (metadata.keywords !== undefined) pdf.setKeywords(metadata.keywords);\n if (metadata.creator !== undefined) pdf.setCreator(metadata.creator);\n if (metadata.producer !== undefined) pdf.setProducer(metadata.producer);\n\n return pdf.save();\n}\n\nexport async function getPageInfo(file: Buffer | Uint8Array): Promise<PageInfo[]> {\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData);\n\n const pages = pdf.getPages();\n return pages.map((page, index) => ({\n index,\n width: page.getWidth(),\n height: page.getHeight(),\n rotation: page.getRotation().angle,\n }));\n}\n\nexport async function getPageCount(file: Buffer | Uint8Array): Promise<number> {\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData);\n return pdf.getPageCount();\n}\n","import { PDFDocument, degrees, rgb, StandardFonts } from 'pdf-lib';\nimport type { RotateOptions, WatermarkOptions, CompressOptions } from './types';\nimport { parsePageRanges, toUint8Array } from './utils';\n\nexport async function rotate(\n file: Buffer | Uint8Array,\n options: RotateOptions\n): Promise<Uint8Array> {\n const { pages: pageRange, degrees: deg } = options;\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData);\n\n const allPages = pdf.getPages();\n const pagesToRotate = pageRange\n ? parsePageRanges(pageRange.join(','), allPages.length)\n : Array.from({ length: allPages.length }, (_, i) => i + 1);\n\n for (const pageNum of pagesToRotate) {\n const page = allPages[pageNum - 1];\n if (page) {\n const currentRotation = page.getRotation().angle;\n page.setRotation(degrees(currentRotation + deg));\n }\n }\n\n return pdf.save();\n}\n\nexport async function addWatermark(\n file: Buffer | Uint8Array,\n options: WatermarkOptions\n): Promise<Uint8Array> {\n const {\n text = 'WATERMARK',\n opacity = 0.3,\n rotation = -45,\n position = 'center',\n fontSize = 50,\n color = { r: 0.5, g: 0.5, b: 0.5 },\n } = options;\n\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData);\n const font = await pdf.embedFont(StandardFonts.Helvetica);\n\n const pages = pdf.getPages();\n\n for (const page of pages) {\n const { width, height } = page.getSize();\n const textWidth = font.widthOfTextAtSize(text, fontSize);\n\n const x = (width - textWidth) / 2;\n let y = height / 2;\n\n if (position === 'top') {\n y = height - fontSize - 20;\n } else if (position === 'bottom') {\n y = 20;\n }\n\n page.drawText(text, {\n x,\n y,\n size: fontSize,\n font,\n color: rgb(color.r, color.g, color.b),\n opacity,\n rotate: degrees(rotation),\n });\n }\n\n return pdf.save();\n}\n\nexport async function reorderPages(\n file: Buffer | Uint8Array,\n newOrder: number[]\n): Promise<Uint8Array> {\n const fileData = toUint8Array(file);\n const sourcePdf = await PDFDocument.load(fileData);\n const newPdf = await PDFDocument.create();\n\n const pageIndices = newOrder.map((p) => p - 1);\n const copiedPages = await newPdf.copyPages(sourcePdf, pageIndices);\n\n for (const page of copiedPages) {\n newPdf.addPage(page);\n }\n\n return newPdf.save();\n}\n\nexport async function deletePage(\n file: Buffer | Uint8Array,\n pageNumbers: number[]\n): Promise<Uint8Array> {\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData);\n const totalPages = pdf.getPageCount();\n\n const sortedPageNumbers = [...pageNumbers].sort((a, b) => b - a);\n\n for (const pageNum of sortedPageNumbers) {\n if (pageNum >= 1 && pageNum <= totalPages) {\n pdf.removePage(pageNum - 1);\n }\n }\n\n return pdf.save();\n}\n\nexport async function compress(\n file: Buffer | Uint8Array,\n _options: CompressOptions = { quality: 'medium' }\n): Promise<Uint8Array> {\n const fileData = toUint8Array(file);\n const pdf = await PDFDocument.load(fileData);\n\n return pdf.save({\n useObjectStreams: true,\n addDefaultPage: false,\n });\n}\n","import type { ExtractTextOptions } from './types';\nimport { toUint8Array, parsePageRanges } from './utils';\n\nexport async function extractText(\n file: Buffer | Uint8Array,\n options: ExtractTextOptions = {}\n): Promise<string> {\n const { pages: pageNums } = options;\n const fileData = toUint8Array(file);\n\n try {\n const pdfParse = await import('pdf-parse');\n const parser = pdfParse.default || pdfParse;\n\n if (pageNums && pageNums.length > 0) {\n const result = await parser(Buffer.from(fileData), {\n max: Math.max(...pageNums),\n });\n\n return result.text;\n }\n\n const result = await parser(Buffer.from(fileData));\n return result.text;\n } catch (error) {\n throw new Error(`Failed to extract text: ${(error as Error).message}`);\n }\n}\n\nexport async function extractTextFromPages(\n file: Buffer | Uint8Array,\n pageRange: string\n): Promise<Record<number, string>> {\n const fileData = toUint8Array(file);\n\n try {\n const pdfParse = await import('pdf-parse');\n const parser = pdfParse.default || pdfParse;\n\n const result = await parser(Buffer.from(fileData));\n const totalPages = result.numpages;\n const pages = parsePageRanges(pageRange, totalPages);\n\n const pageTexts: Record<number, string> = {};\n\n const fullText = result.text;\n const textPerPage = fullText.length / totalPages;\n\n for (const pageNum of pages) {\n const start = (pageNum - 1) * textPerPage;\n const end = pageNum * textPerPage;\n pageTexts[pageNum] = fullText.slice(start, end).trim();\n }\n\n return pageTexts;\n } catch (error) {\n throw new Error(`Failed to extract text: ${(error as Error).message}`);\n }\n}\n\nexport async function hasText(file: Buffer | Uint8Array): Promise<boolean> {\n try {\n const text = await extractText(file);\n return text.trim().length > 0;\n } catch {\n return false;\n }\n}\n","import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';\nimport type {\n PDFTemplate,\n TemplatePage,\n TemplateElement,\n TemplateField,\n TemplateFont,\n PdfToTemplateOptions,\n TemplateToPdfOptions,\n} from './types';\nimport { toUint8Array } from './utils';\n\nconst PLACEHOLDER_REGEX = /\\{\\{(\\w+)\\}\\}/g;\n\nfunction extractFieldName(content: string): string | undefined {\n const match = content.match(/^\\{\\{(\\w+)\\}\\}$/);\n return match ? match[1] : undefined;\n}\n\nfunction resolveContent(\n content: string,\n data: Record<string, string>,\n missingFieldBehavior: 'leave_placeholder' | 'use_default' | 'empty_string',\n fields: TemplateField[]\n): string {\n return content.replace(PLACEHOLDER_REGEX, (match, fieldName) => {\n if (fieldName in data) {\n return data[fieldName];\n }\n switch (missingFieldBehavior) {\n case 'use_default': {\n const field = fields.find((f) => f.name === fieldName);\n return field?.defaultValue ?? '';\n }\n case 'empty_string':\n return '';\n case 'leave_placeholder':\n default:\n return match;\n }\n });\n}\n\nfunction resolveFont(\n font: TemplateFont | undefined,\n defaults: PDFTemplate['defaults']\n): TemplateFont {\n return font ?? defaults?.font ?? { name: 'Helvetica', size: 12 };\n}\n\nexport async function pdfToTemplate(\n file: Buffer | Uint8Array,\n options: PdfToTemplateOptions = {}\n): Promise<PDFTemplate> {\n const fileData = toUint8Array(file);\n const pdfDoc = await PDFDocument.load(fileData, { ignoreEncryption: true });\n const pageCount = pdfDoc.getPageCount();\n const pdfPages = pdfDoc.getPages();\n\n let fullText = '';\n try {\n const pdfParse = await import('pdf-parse');\n const parser = pdfParse.default || pdfParse;\n const parsed = await parser(Buffer.from(fileData));\n fullText = parsed.text;\n } catch {\n fullText = '';\n }\n\n const textPerPage = pageCount > 0 ? fullText.length / pageCount : 0;\n const fieldsMap = new Map<string, { pages: Set<number>; defaultValue: string }>();\n const fonts: Record<string, TemplateFont> = {};\n const defaultFont: TemplateFont = { name: 'Helvetica', size: 12 };\n\n fonts['Helvetica-12'] = defaultFont;\n\n const pages: TemplatePage[] = pdfPages.map((page, pageIndex) => {\n const { width, height } = page.getSize();\n\n const start = Math.floor(pageIndex * textPerPage);\n const end = Math.floor((pageIndex + 1) * textPerPage);\n const pageText = fullText.slice(start, end).trim();\n\n const elements: TemplateElement[] = [];\n\n if (pageText) {\n const lines = pageText.split('\\n').filter((l) => l.trim());\n const lineHeight = 14;\n let yPos = height - 40;\n\n for (const line of lines) {\n const hasPlaceholder = PLACEHOLDER_REGEX.test(line);\n PLACEHOLDER_REGEX.lastIndex = 0;\n\n const element: TemplateElement = {\n type: hasPlaceholder ? 'placeholder' : 'text',\n content: line.trim(),\n x: 40,\n y: yPos,\n font: defaultFont,\n };\n\n if (hasPlaceholder) {\n const fieldName = extractFieldName(line.trim());\n if (fieldName) {\n element.fieldName = fieldName;\n }\n\n let match;\n PLACEHOLDER_REGEX.lastIndex = 0;\n while ((match = PLACEHOLDER_REGEX.exec(line)) !== null) {\n const name = match[1];\n if (!fieldsMap.has(name)) {\n fieldsMap.set(name, { pages: new Set(), defaultValue: '' });\n }\n fieldsMap.get(name)!.pages.add(pageIndex + 1);\n }\n }\n\n elements.push(element);\n yPos -= lineHeight;\n }\n }\n\n return { width, height, elements };\n });\n\n const fields: TemplateField[] = [];\n for (const [name, info] of fieldsMap) {\n fields.push({\n name,\n defaultValue: info.defaultValue,\n pages: [...info.pages].sort((a, b) => a - b),\n });\n }\n\n return {\n version: '1.0',\n metadata: {\n name: options.name,\n description: options.description,\n createdAt: new Date().toISOString(),\n sourcePageCount: pageCount,\n },\n pages,\n fields,\n fonts,\n defaults: {\n font: defaultFont,\n color: { r: 0, g: 0, b: 0 },\n missingFieldBehavior: 'leave_placeholder',\n },\n };\n}\n\nexport async function templateToPdf(\n template: PDFTemplate,\n data: Record<string, string> = {},\n options: TemplateToPdfOptions = {}\n): Promise<Uint8Array> {\n validateTemplate(template);\n\n const pdfDoc = await PDFDocument.create();\n const font = await pdfDoc.embedFont(StandardFonts.Helvetica);\n const boldFont = await pdfDoc.embedFont(StandardFonts.HelveticaBold);\n\n const missingFieldBehavior =\n options.missingFieldBehavior ??\n template.defaults?.missingFieldBehavior ??\n 'leave_placeholder';\n\n const defaultColor = template.defaults?.color ?? { r: 0, g: 0, b: 0 };\n\n for (const templatePage of template.pages) {\n const page = pdfDoc.addPage([templatePage.width, templatePage.height]);\n\n for (const element of templatePage.elements) {\n const resolvedFont = resolveFont(element.font, template.defaults);\n const color = element.color ?? defaultColor;\n const pdfFont = resolvedFont.weight === 'bold' ? boldFont : font;\n const fontSize = resolvedFont.size;\n\n const content =\n element.type === 'placeholder'\n ? resolveContent(element.content, data, missingFieldBehavior, template.fields)\n : element.content;\n\n page.drawText(content, {\n x: element.x,\n y: element.y,\n size: fontSize,\n font: pdfFont,\n color: rgb(color.r, color.g, color.b),\n });\n }\n }\n\n return pdfDoc.save();\n}\n\nexport function validateTemplate(template: PDFTemplate): void {\n if (!template) {\n throw new Error('Template is required');\n }\n\n if (template.version !== '1.0') {\n throw new Error(`Unsupported template version: ${template.version}`);\n }\n\n if (!Array.isArray(template.pages) || template.pages.length === 0) {\n throw new Error('Template must have at least one page');\n }\n\n if (!template.metadata) {\n throw new Error('Template metadata is required');\n }\n\n if (typeof template.metadata.sourcePageCount !== 'number' || template.metadata.sourcePageCount < 1) {\n throw new Error('Template metadata.sourcePageCount must be a positive number');\n }\n\n if (!Array.isArray(template.fields)) {\n throw new Error('Template fields must be an array');\n }\n\n for (const page of template.pages) {\n if (typeof page.width !== 'number' || typeof page.height !== 'number') {\n throw new Error('Each page must have numeric width and height');\n }\n if (!Array.isArray(page.elements)) {\n throw new Error('Each page must have an elements array');\n }\n for (const element of page.elements) {\n if (element.type !== 'text' && element.type !== 'placeholder') {\n throw new Error(`Invalid element type: ${element.type}`);\n }\n if (typeof element.content !== 'string') {\n throw new Error('Element content must be a string');\n }\n if (typeof element.x !== 'number' || typeof element.y !== 'number') {\n throw new Error('Element x and y must be numbers');\n }\n }\n }\n}\n","import { PDFDocument } from 'pdf-lib';\nimport type { FormField, FormInfo, FillFormOptions } from './types';\nimport { toUint8Array } from './utils';\n\nexport async function readFormFields(\n file: Buffer | Uint8Array\n): Promise<FormInfo> {\n const data = toUint8Array(file);\n const pdfDoc = await PDFDocument.load(data);\n const form = pdfDoc.getForm();\n const pdfFields = form.getFields();\n\n const fields: FormField[] = pdfFields.map((field) => {\n const name = field.getName();\n const typeName = field.constructor.name;\n\n switch (typeName) {\n case 'PDFTextField': {\n const tf = field as import('pdf-lib').PDFTextField;\n return { name, type: 'text' as const, value: tf.getText() ?? '' };\n }\n case 'PDFCheckBox': {\n const cb = field as import('pdf-lib').PDFCheckBox;\n return { name, type: 'checkbox' as const, value: cb.isChecked() };\n }\n case 'PDFRadioGroup': {\n const rg = field as import('pdf-lib').PDFRadioGroup;\n return {\n name,\n type: 'radio' as const,\n value: rg.getSelected() ?? '',\n options: rg.getOptions(),\n };\n }\n case 'PDFDropdown': {\n const dd = field as import('pdf-lib').PDFDropdown;\n return {\n name,\n type: 'dropdown' as const,\n value: dd.getSelected()[0] ?? '',\n options: dd.getOptions(),\n };\n }\n default:\n return { name, type: 'text' as const, value: '' };\n }\n });\n\n return { fields, fieldCount: fields.length };\n}\n\nexport async function fillFormFields(\n file: Buffer | Uint8Array,\n data: Record<string, string | boolean>,\n options: FillFormOptions = {}\n): Promise<Uint8Array> {\n const fileData = toUint8Array(file);\n const pdfDoc = await PDFDocument.load(fileData);\n const form = pdfDoc.getForm();\n\n for (const [fieldName, value] of Object.entries(data)) {\n const field = form.getField(fieldName);\n const typeName = field.constructor.name;\n\n switch (typeName) {\n case 'PDFTextField': {\n const tf = field as import('pdf-lib').PDFTextField;\n tf.setText(String(value));\n break;\n }\n case 'PDFCheckBox': {\n const cb = field as import('pdf-lib').PDFCheckBox;\n if (value === true || value === 'true') {\n cb.check();\n } else {\n cb.uncheck();\n }\n break;\n }\n case 'PDFRadioGroup': {\n const rg = field as import('pdf-lib').PDFRadioGroup;\n rg.select(String(value));\n break;\n }\n case 'PDFDropdown': {\n const dd = field as import('pdf-lib').PDFDropdown;\n dd.select(String(value));\n break;\n }\n }\n }\n\n if (options.flatten) {\n form.flatten();\n }\n\n return pdfDoc.save();\n}\n"]}
@@ -0,0 +1 @@
1
+ export { C as CapacitorResult, a as CarnotResult, b as CoulombResult, D as DecibelResult, c as DopplerResult, E as EnergyResult, F as ForceResult, G as GravitationalForceResult, H as HeatTransferResult, I as IdealGasResult, K as KinematicsResult, L as LengthContractionResult, d as LensResult, e as LorentzResult, M as MassEnergyResult, f as MomentumResult, O as OhmsLawResult, g as OrbitalVelocityResult, P as PhysicalConstant, h as PhysicsUnitCategory, j as PhysicsUnitResult, k as ProjectileResult, R as RCCircuitResult, l as ResistorResult, S as SnellResult, T as ThermalExpansionResult, m as TimeDilationResult, W as WaveResult, n as calculateEnergy, o as calculateForce, p as calculateMomentum, q as calculateWork, r as capacitors, s as carnotEfficiency, t as convertPhysicsUnit, u as coulombsLaw, v as decibelConversion, w as dopplerEffect, x as energyToMass, y as freeFall, z as getConstant, A as gravitationalForce, B as heatTransfer, J as idealGasLaw, N as lengthContraction, Q as listConstants, U as lorentzFactor, V as massEnergy, X as ohmsLaw, Y as orbitalMechanics, Z as projectileMotion, _ as rcCircuit, $ as resistors, a0 as snellsLaw, a1 as solveKinematics, a2 as thermalExpansion, a3 as thinLens, a4 as timeDilation, a5 as waveEquation } from '../index-BZDcrPs-.mjs';
@@ -0,0 +1 @@
1
+ export { C as CapacitorResult, a as CarnotResult, b as CoulombResult, D as DecibelResult, c as DopplerResult, E as EnergyResult, F as ForceResult, G as GravitationalForceResult, H as HeatTransferResult, I as IdealGasResult, K as KinematicsResult, L as LengthContractionResult, d as LensResult, e as LorentzResult, M as MassEnergyResult, f as MomentumResult, O as OhmsLawResult, g as OrbitalVelocityResult, P as PhysicalConstant, h as PhysicsUnitCategory, j as PhysicsUnitResult, k as ProjectileResult, R as RCCircuitResult, l as ResistorResult, S as SnellResult, T as ThermalExpansionResult, m as TimeDilationResult, W as WaveResult, n as calculateEnergy, o as calculateForce, p as calculateMomentum, q as calculateWork, r as capacitors, s as carnotEfficiency, t as convertPhysicsUnit, u as coulombsLaw, v as decibelConversion, w as dopplerEffect, x as energyToMass, y as freeFall, z as getConstant, A as gravitationalForce, B as heatTransfer, J as idealGasLaw, N as lengthContraction, Q as listConstants, U as lorentzFactor, V as massEnergy, X as ohmsLaw, Y as orbitalMechanics, Z as projectileMotion, _ as rcCircuit, $ as resistors, a0 as snellsLaw, a1 as solveKinematics, a2 as thermalExpansion, a3 as thinLens, a4 as timeDilation, a5 as waveEquation } from '../index-BZDcrPs-.js';
@@ -0,0 +1,467 @@
1
+ 'use strict';
2
+
3
+ // src/physics/constants.ts
4
+ var CONSTANTS = {
5
+ c: { name: "Speed of Light", symbol: "c", value: 299792458, unit: "m/s", category: "universal" },
6
+ G: { name: "Gravitational Constant", symbol: "G", value: 66743e-15, unit: "N\xB7m\xB2/kg\xB2", category: "universal" },
7
+ h: { name: "Planck Constant", symbol: "h", value: 662607015e-42, unit: "J\xB7s", category: "quantum" },
8
+ hbar: { name: "Reduced Planck Constant", symbol: "\u210F", value: 1054571817e-43, unit: "J\xB7s", category: "quantum" },
9
+ k_B: { name: "Boltzmann Constant", symbol: "k_B", value: 1380649e-29, unit: "J/K", category: "thermodynamics" },
10
+ N_A: { name: "Avogadro Number", symbol: "N_A", value: 602214076e15, unit: "1/mol", category: "chemistry" },
11
+ R: { name: "Gas Constant", symbol: "R", value: 8.314462618, unit: "J/(mol\xB7K)", category: "thermodynamics" },
12
+ e: { name: "Elementary Charge", symbol: "e", value: 1602176634e-28, unit: "C", category: "electromagnetic" },
13
+ epsilon_0: { name: "Vacuum Permittivity", symbol: "\u03B5\u2080", value: 88541878128e-22, unit: "F/m", category: "electromagnetic" },
14
+ mu_0: { name: "Vacuum Permeability", symbol: "\u03BC\u2080", value: 125663706212e-17, unit: "N/A\xB2", category: "electromagnetic" },
15
+ m_e: { name: "Electron Mass", symbol: "m_e", value: 91093837015e-41, unit: "kg", category: "atomic" },
16
+ m_p: { name: "Proton Mass", symbol: "m_p", value: 167262192369e-38, unit: "kg", category: "atomic" },
17
+ sigma: { name: "Stefan-Boltzmann Constant", symbol: "\u03C3", value: 5670374419e-17, unit: "W/(m\xB2\xB7K\u2074)", category: "thermodynamics" },
18
+ g: { name: "Standard Gravity", symbol: "g", value: 9.80665, unit: "m/s\xB2", category: "mechanics" },
19
+ atm: { name: "Standard Atmosphere", symbol: "atm", value: 101325, unit: "Pa", category: "mechanics" },
20
+ k_e: { name: "Coulomb Constant", symbol: "k_e", value: 89875517923e-1, unit: "N\xB7m\xB2/C\xB2", category: "electromagnetic" }
21
+ };
22
+ function getConstant(key) {
23
+ const c = CONSTANTS[key];
24
+ if (!c) {
25
+ throw new Error(`Unknown constant: ${key}. Available: ${Object.keys(CONSTANTS).join(", ")}`);
26
+ }
27
+ return { ...c };
28
+ }
29
+ function listConstants(category) {
30
+ const all = Object.values(CONSTANTS).map((c) => ({ ...c }));
31
+ if (category) {
32
+ return all.filter((c) => c.category === category);
33
+ }
34
+ return all;
35
+ }
36
+
37
+ // src/physics/kinematics.ts
38
+ function solveKinematics(params) {
39
+ const known = Object.entries(params).filter(([, v]) => v !== void 0);
40
+ if (known.length < 3) {
41
+ throw new Error("Need at least 3 of: displacement, initialVelocity, finalVelocity, acceleration, time");
42
+ }
43
+ let { displacement, initialVelocity, finalVelocity, acceleration, time } = params;
44
+ if (initialVelocity === void 0) {
45
+ if (finalVelocity !== void 0 && acceleration !== void 0 && time !== void 0) {
46
+ initialVelocity = finalVelocity - acceleration * time;
47
+ } else if (displacement !== void 0 && time !== void 0 && acceleration !== void 0) {
48
+ initialVelocity = (displacement - 0.5 * acceleration * time * time) / time;
49
+ } else if (finalVelocity !== void 0 && acceleration !== void 0 && displacement !== void 0) {
50
+ initialVelocity = Math.sqrt(finalVelocity * finalVelocity - 2 * acceleration * displacement);
51
+ }
52
+ }
53
+ if (displacement === void 0) {
54
+ if (initialVelocity !== void 0 && time !== void 0 && acceleration !== void 0) {
55
+ displacement = initialVelocity * time + 0.5 * acceleration * time * time;
56
+ } else if (initialVelocity !== void 0 && finalVelocity !== void 0 && time !== void 0) {
57
+ displacement = (initialVelocity + finalVelocity) / 2 * time;
58
+ } else if (finalVelocity !== void 0 && initialVelocity !== void 0 && acceleration !== void 0) {
59
+ displacement = (finalVelocity * finalVelocity - initialVelocity * initialVelocity) / (2 * acceleration);
60
+ } else {
61
+ throw new Error("Cannot solve for displacement with the given parameters");
62
+ }
63
+ }
64
+ if (initialVelocity === void 0) {
65
+ if (displacement !== void 0 && time !== void 0 && acceleration !== void 0) {
66
+ initialVelocity = (displacement - 0.5 * acceleration * time * time) / time;
67
+ } else if (finalVelocity !== void 0 && acceleration !== void 0 && displacement !== void 0) {
68
+ initialVelocity = Math.sqrt(finalVelocity * finalVelocity - 2 * acceleration * displacement);
69
+ } else {
70
+ throw new Error("Cannot solve for initialVelocity with the given parameters");
71
+ }
72
+ }
73
+ if (finalVelocity === void 0) {
74
+ if (initialVelocity !== void 0 && acceleration !== void 0 && time !== void 0) {
75
+ finalVelocity = initialVelocity + acceleration * time;
76
+ } else if (initialVelocity !== void 0 && acceleration !== void 0 && displacement !== void 0) {
77
+ finalVelocity = Math.sqrt(initialVelocity * initialVelocity + 2 * acceleration * displacement);
78
+ } else {
79
+ throw new Error("Cannot solve for finalVelocity with the given parameters");
80
+ }
81
+ }
82
+ if (acceleration === void 0) {
83
+ if (initialVelocity !== void 0 && finalVelocity !== void 0 && time !== void 0) {
84
+ acceleration = (finalVelocity - initialVelocity) / time;
85
+ } else if (initialVelocity !== void 0 && finalVelocity !== void 0 && displacement !== void 0) {
86
+ acceleration = (finalVelocity * finalVelocity - initialVelocity * initialVelocity) / (2 * displacement);
87
+ } else {
88
+ throw new Error("Cannot solve for acceleration with the given parameters");
89
+ }
90
+ }
91
+ if (time === void 0) {
92
+ if (initialVelocity !== void 0 && finalVelocity !== void 0 && acceleration !== void 0 && acceleration !== 0) {
93
+ time = (finalVelocity - initialVelocity) / acceleration;
94
+ } else if (displacement !== void 0 && initialVelocity !== void 0 && acceleration !== void 0) {
95
+ const a = 0.5 * acceleration;
96
+ const b = initialVelocity;
97
+ const c = -displacement;
98
+ const discriminant = b * b - 4 * a * c;
99
+ if (discriminant < 0) throw new Error("No real solution for time");
100
+ time = (-b + Math.sqrt(discriminant)) / (2 * a);
101
+ if (time < 0) time = (-b - Math.sqrt(discriminant)) / (2 * a);
102
+ } else {
103
+ throw new Error("Cannot solve for time with the given parameters");
104
+ }
105
+ }
106
+ return {
107
+ displacement,
108
+ initialVelocity,
109
+ finalVelocity,
110
+ acceleration,
111
+ time
112
+ };
113
+ }
114
+ function projectileMotion(initialVelocity, angleDegrees, gravity = 9.80665) {
115
+ if (initialVelocity < 0) throw new Error("Initial velocity must be non-negative");
116
+ if (angleDegrees < 0 || angleDegrees > 90) throw new Error("Angle must be between 0 and 90 degrees");
117
+ const angleRad = angleDegrees * Math.PI / 180;
118
+ const sin = Math.sin(angleRad);
119
+ const cos = Math.cos(angleRad);
120
+ const sin2 = Math.sin(2 * angleRad);
121
+ const range = initialVelocity * initialVelocity * sin2 / gravity;
122
+ const maxHeight = initialVelocity * initialVelocity * sin * sin / (2 * gravity);
123
+ const flightTime = 2 * initialVelocity * sin / gravity;
124
+ const velocityAtPeak = initialVelocity * cos;
125
+ return { range, maxHeight, flightTime, initialVelocity, angle: angleDegrees, velocityAtPeak };
126
+ }
127
+ function freeFall(height, gravity = 9.80665) {
128
+ if (height < 0) throw new Error("Height must be non-negative");
129
+ const time = Math.sqrt(2 * height / gravity);
130
+ const finalVelocity = gravity * time;
131
+ return { height, time, finalVelocity };
132
+ }
133
+
134
+ // src/physics/mechanics.ts
135
+ var G = 66743e-15;
136
+ function calculateForce(mass, acceleration) {
137
+ if (mass < 0) throw new Error("Mass must be non-negative");
138
+ return { force: mass * acceleration, mass, acceleration, unit: "N" };
139
+ }
140
+ function calculateEnergy(mass, velocity, height = 0, gravity = 9.80665) {
141
+ if (mass < 0) throw new Error("Mass must be non-negative");
142
+ const kineticEnergy = 0.5 * mass * velocity * velocity;
143
+ const potentialEnergy = mass * gravity * height;
144
+ return { kineticEnergy, potentialEnergy, totalEnergy: kineticEnergy + potentialEnergy, unit: "J" };
145
+ }
146
+ function gravitationalForce(mass1, mass2, distance) {
147
+ if (distance <= 0) throw new Error("Distance must be positive");
148
+ if (mass1 < 0 || mass2 < 0) throw new Error("Mass must be non-negative");
149
+ const force = G * mass1 * mass2 / (distance * distance);
150
+ return { force, mass1, mass2, distance, unit: "N" };
151
+ }
152
+ function calculateMomentum(mass, velocity) {
153
+ if (mass < 0) throw new Error("Mass must be non-negative");
154
+ return { momentum: mass * velocity, mass, velocity, unit: "kg\xB7m/s" };
155
+ }
156
+ function orbitalMechanics(mass, radius) {
157
+ if (mass < 0) throw new Error("Mass must be non-negative");
158
+ if (radius <= 0) throw new Error("Radius must be positive");
159
+ const orbitalVelocity = Math.sqrt(G * mass / radius);
160
+ const escapeVelocity = Math.sqrt(2 * G * mass / radius);
161
+ return { orbitalVelocity, escapeVelocity, mass, radius, unit: "m/s" };
162
+ }
163
+ function calculateWork(force, distance, angleDegrees = 0) {
164
+ const angleRad = angleDegrees * Math.PI / 180;
165
+ const work = force * distance * Math.cos(angleRad);
166
+ return { work, force, distance, angle: angleDegrees, unit: "J" };
167
+ }
168
+
169
+ // src/physics/electricity.ts
170
+ var K_E = 89875517923e-1;
171
+ function ohmsLaw(params) {
172
+ const known = Object.entries(params).filter(([, v]) => v !== void 0);
173
+ if (known.length < 2) {
174
+ throw new Error("Need at least 2 of: voltage, current, resistance");
175
+ }
176
+ let { voltage, current, resistance } = params;
177
+ if (voltage === void 0) {
178
+ voltage = current * resistance;
179
+ } else if (current === void 0) {
180
+ if (resistance === 0) throw new Error("Resistance cannot be zero when solving for current");
181
+ current = voltage / resistance;
182
+ } else if (resistance === void 0) {
183
+ if (current === 0) throw new Error("Current cannot be zero when solving for resistance");
184
+ resistance = voltage / current;
185
+ }
186
+ const power = voltage * current;
187
+ return { voltage, current, resistance, power };
188
+ }
189
+ function resistors(values, configuration) {
190
+ if (values.length === 0) throw new Error("Need at least one resistor value");
191
+ if (values.some((v) => v < 0)) throw new Error("Resistor values must be non-negative");
192
+ let totalResistance;
193
+ if (configuration === "series") {
194
+ totalResistance = values.reduce((sum, r) => sum + r, 0);
195
+ } else {
196
+ if (values.some((v) => v === 0)) throw new Error("Parallel resistors cannot have zero resistance");
197
+ totalResistance = 1 / values.reduce((sum, r) => sum + 1 / r, 0);
198
+ }
199
+ return { configuration, resistors: values, totalResistance, unit: "\u03A9" };
200
+ }
201
+ function coulombsLaw(charge1, charge2, distance) {
202
+ if (distance <= 0) throw new Error("Distance must be positive");
203
+ const force = K_E * Math.abs(charge1 * charge2) / (distance * distance);
204
+ const isAttractive = charge1 > 0 && charge2 < 0 || charge1 < 0 && charge2 > 0;
205
+ return { force, charge1, charge2, distance, isAttractive, unit: "N" };
206
+ }
207
+ function capacitors(values, configuration) {
208
+ if (values.length === 0) throw new Error("Need at least one capacitor value");
209
+ if (values.some((v) => v <= 0)) throw new Error("Capacitor values must be positive");
210
+ let totalCapacitance;
211
+ if (configuration === "parallel") {
212
+ totalCapacitance = values.reduce((sum, c) => sum + c, 0);
213
+ } else {
214
+ totalCapacitance = 1 / values.reduce((sum, c) => sum + 1 / c, 0);
215
+ }
216
+ return { configuration, capacitors: values, totalCapacitance, unit: "F" };
217
+ }
218
+ function rcCircuit(resistance, capacitance) {
219
+ if (resistance <= 0) throw new Error("Resistance must be positive");
220
+ if (capacitance <= 0) throw new Error("Capacitance must be positive");
221
+ const timeConstant = resistance * capacitance;
222
+ const halfLife = timeConstant * Math.LN2;
223
+ return { resistance, capacitance, timeConstant, halfLife, unit: "s" };
224
+ }
225
+
226
+ // src/physics/waves.ts
227
+ function waveEquation(params) {
228
+ const known = Object.entries(params).filter(([, v]) => v !== void 0);
229
+ if (known.length < 2) {
230
+ throw new Error("Need at least 2 of: frequency, wavelength, speed");
231
+ }
232
+ let { frequency, wavelength, speed } = params;
233
+ if (speed === void 0) {
234
+ speed = frequency * wavelength;
235
+ } else if (frequency === void 0) {
236
+ if (wavelength === 0) throw new Error("Wavelength cannot be zero");
237
+ frequency = speed / wavelength;
238
+ } else if (wavelength === void 0) {
239
+ if (frequency === 0) throw new Error("Frequency cannot be zero");
240
+ wavelength = speed / frequency;
241
+ }
242
+ return { frequency, wavelength, speed, period: 1 / frequency };
243
+ }
244
+ function dopplerEffect(sourceFrequency, sourceVelocity, observerVelocity, mediumSpeed = 343, approaching = true) {
245
+ if (sourceFrequency <= 0) throw new Error("Source frequency must be positive");
246
+ if (Math.abs(sourceVelocity) >= mediumSpeed) throw new Error("Source velocity must be less than medium speed");
247
+ let observedFrequency;
248
+ if (approaching) {
249
+ observedFrequency = sourceFrequency * ((mediumSpeed + observerVelocity) / (mediumSpeed - sourceVelocity));
250
+ } else {
251
+ observedFrequency = sourceFrequency * ((mediumSpeed - observerVelocity) / (mediumSpeed + sourceVelocity));
252
+ }
253
+ return { observedFrequency, sourceFrequency, sourceVelocity, observerVelocity, mediumSpeed, approaching };
254
+ }
255
+ function snellsLaw(n1, n2, angle1Degrees) {
256
+ if (n1 <= 0 || n2 <= 0) throw new Error("Refractive indices must be positive");
257
+ if (angle1Degrees < 0 || angle1Degrees >= 90) throw new Error("Angle must be between 0 and 90 degrees");
258
+ const angle1Rad = angle1Degrees * Math.PI / 180;
259
+ const sinAngle2 = n1 * Math.sin(angle1Rad) / n2;
260
+ let criticalAngle = null;
261
+ if (n1 > n2) {
262
+ criticalAngle = Math.asin(n2 / n1) * 180 / Math.PI;
263
+ }
264
+ if (Math.abs(sinAngle2) > 1) {
265
+ return { n1, n2, angle1: angle1Degrees, angle2: NaN, totalInternalReflection: true, criticalAngle };
266
+ }
267
+ const angle2Degrees = Math.asin(sinAngle2) * 180 / Math.PI;
268
+ return { n1, n2, angle1: angle1Degrees, angle2: angle2Degrees, totalInternalReflection: false, criticalAngle };
269
+ }
270
+ function thinLens(params) {
271
+ const known = Object.entries(params).filter(([, v]) => v !== void 0);
272
+ if (known.length < 2) {
273
+ throw new Error("Need at least 2 of: focalLength, objectDistance, imageDistance");
274
+ }
275
+ let { focalLength, objectDistance, imageDistance } = params;
276
+ if (focalLength === void 0) {
277
+ focalLength = 1 / (1 / objectDistance + 1 / imageDistance);
278
+ } else if (objectDistance === void 0) {
279
+ objectDistance = 1 / (1 / focalLength - 1 / imageDistance);
280
+ } else if (imageDistance === void 0) {
281
+ imageDistance = 1 / (1 / focalLength - 1 / objectDistance);
282
+ }
283
+ const magnification = -imageDistance / objectDistance;
284
+ const imageType = imageDistance > 0 ? "real" : "virtual";
285
+ return { focalLength, objectDistance, imageDistance, magnification, imageType };
286
+ }
287
+ function decibelConversion(intensity1, intensity2) {
288
+ if (intensity1 <= 0 || intensity2 <= 0) throw new Error("Intensities must be positive");
289
+ const decibels = 10 * Math.log10(intensity2 / intensity1);
290
+ return { intensity1, intensity2, decibels };
291
+ }
292
+
293
+ // src/physics/thermodynamics.ts
294
+ var R = 8.314462618;
295
+ function idealGasLaw(params) {
296
+ const known = Object.entries(params).filter(([, v]) => v !== void 0);
297
+ if (known.length < 3) {
298
+ throw new Error("Need at least 3 of: pressure (Pa), volume (m\xB3), moles (mol), temperature (K)");
299
+ }
300
+ let { pressure, volume, moles, temperature } = params;
301
+ if (pressure === void 0) {
302
+ pressure = moles * R * temperature / volume;
303
+ } else if (volume === void 0) {
304
+ volume = moles * R * temperature / pressure;
305
+ } else if (moles === void 0) {
306
+ moles = pressure * volume / (R * temperature);
307
+ } else if (temperature === void 0) {
308
+ temperature = pressure * volume / (moles * R);
309
+ }
310
+ return { pressure, volume, moles, temperature, unit: "SI (Pa, m\xB3, mol, K)" };
311
+ }
312
+ function heatTransfer(mass, specificHeat, temperatureChange) {
313
+ if (mass < 0) throw new Error("Mass must be non-negative");
314
+ if (specificHeat <= 0) throw new Error("Specific heat must be positive");
315
+ const heat = mass * specificHeat * temperatureChange;
316
+ return { heat, mass, specificHeat, temperatureChange, unit: "J" };
317
+ }
318
+ function thermalExpansion(originalLength, coefficient, temperatureChange) {
319
+ if (originalLength < 0) throw new Error("Original length must be non-negative");
320
+ const expansion = originalLength * coefficient * temperatureChange;
321
+ const finalLength = originalLength + expansion;
322
+ return { originalLength, coefficient, temperatureChange, expansion, finalLength };
323
+ }
324
+ function carnotEfficiency(hotTemperature, coldTemperature) {
325
+ if (hotTemperature <= 0 || coldTemperature <= 0) throw new Error("Temperatures must be positive (in Kelvin)");
326
+ if (coldTemperature >= hotTemperature) throw new Error("Hot temperature must be greater than cold temperature");
327
+ const efficiency = 1 - coldTemperature / hotTemperature;
328
+ return { hotTemperature, coldTemperature, efficiency, efficiencyPercent: `${(efficiency * 100).toFixed(2)}%` };
329
+ }
330
+
331
+ // src/physics/relativity.ts
332
+ var C = 299792458;
333
+ function lorentzFactor(velocity) {
334
+ if (Math.abs(velocity) >= C) throw new Error("Velocity must be less than the speed of light");
335
+ const beta = velocity / C;
336
+ const gamma = 1 / Math.sqrt(1 - beta * beta);
337
+ return { velocity, speedOfLight: C, beta, gamma };
338
+ }
339
+ function timeDilation(properTime, velocity) {
340
+ if (properTime < 0) throw new Error("Proper time must be non-negative");
341
+ const { gamma } = lorentzFactor(velocity);
342
+ const dilatedTime = properTime * gamma;
343
+ return { properTime, dilatedTime, velocity, gamma };
344
+ }
345
+ function lengthContraction(properLength, velocity) {
346
+ if (properLength < 0) throw new Error("Proper length must be non-negative");
347
+ const { gamma } = lorentzFactor(velocity);
348
+ const contractedLength = properLength / gamma;
349
+ return { properLength, contractedLength, velocity, gamma };
350
+ }
351
+ function massEnergy(mass) {
352
+ if (mass < 0) throw new Error("Mass must be non-negative");
353
+ const energy = mass * C * C;
354
+ return { mass, energy, unit: "J" };
355
+ }
356
+ function energyToMass(energy) {
357
+ if (energy < 0) throw new Error("Energy must be non-negative");
358
+ const mass = energy / (C * C);
359
+ return { mass, energy, unit: "kg" };
360
+ }
361
+
362
+ // src/physics/units.ts
363
+ var forceFactors = {
364
+ n: 1,
365
+ kn: 1e3,
366
+ dyn: 1e-5,
367
+ lbf: 4.44822,
368
+ kgf: 9.80665
369
+ };
370
+ var energyFactors = {
371
+ j: 1,
372
+ kj: 1e3,
373
+ cal: 4.184,
374
+ kcal: 4184,
375
+ ev: 1602176634e-28,
376
+ kwh: 36e5,
377
+ btu: 1055.06,
378
+ erg: 1e-7
379
+ };
380
+ var powerFactors = {
381
+ w: 1,
382
+ kw: 1e3,
383
+ mw: 1e6,
384
+ hp: 745.7,
385
+ "btu/h": 0.293071
386
+ };
387
+ var pressureFactors = {
388
+ pa: 1,
389
+ kpa: 1e3,
390
+ mpa: 1e6,
391
+ atm: 101325,
392
+ bar: 1e5,
393
+ psi: 6894.76,
394
+ torr: 133.322,
395
+ mmhg: 133.322
396
+ };
397
+ var speedFactors = {
398
+ "m/s": 1,
399
+ "km/h": 1 / 3.6,
400
+ mph: 0.44704,
401
+ knots: 0.514444,
402
+ "ft/s": 0.3048
403
+ };
404
+ function getFactors(category) {
405
+ switch (category) {
406
+ case "force":
407
+ return forceFactors;
408
+ case "energy":
409
+ return energyFactors;
410
+ case "power":
411
+ return powerFactors;
412
+ case "pressure":
413
+ return pressureFactors;
414
+ case "speed":
415
+ return speedFactors;
416
+ default:
417
+ throw new Error(`Unknown physics unit category: ${category}`);
418
+ }
419
+ }
420
+ function convertPhysicsUnit(value, from, to, category) {
421
+ const factors = getFactors(category);
422
+ const fromLower = from.toLowerCase();
423
+ const toLower = to.toLowerCase();
424
+ if (!(fromLower in factors)) {
425
+ throw new Error(`Unknown ${category} unit: ${from}. Available: ${Object.keys(factors).join(", ")}`);
426
+ }
427
+ if (!(toLower in factors)) {
428
+ throw new Error(`Unknown ${category} unit: ${to}. Available: ${Object.keys(factors).join(", ")}`);
429
+ }
430
+ const baseValue = value * factors[fromLower];
431
+ const result = baseValue / factors[toLower];
432
+ return { value, from: fromLower, to: toLower, result, category };
433
+ }
434
+
435
+ exports.calculateEnergy = calculateEnergy;
436
+ exports.calculateForce = calculateForce;
437
+ exports.calculateMomentum = calculateMomentum;
438
+ exports.calculateWork = calculateWork;
439
+ exports.capacitors = capacitors;
440
+ exports.carnotEfficiency = carnotEfficiency;
441
+ exports.convertPhysicsUnit = convertPhysicsUnit;
442
+ exports.coulombsLaw = coulombsLaw;
443
+ exports.decibelConversion = decibelConversion;
444
+ exports.dopplerEffect = dopplerEffect;
445
+ exports.energyToMass = energyToMass;
446
+ exports.freeFall = freeFall;
447
+ exports.getConstant = getConstant;
448
+ exports.gravitationalForce = gravitationalForce;
449
+ exports.heatTransfer = heatTransfer;
450
+ exports.idealGasLaw = idealGasLaw;
451
+ exports.lengthContraction = lengthContraction;
452
+ exports.listConstants = listConstants;
453
+ exports.lorentzFactor = lorentzFactor;
454
+ exports.massEnergy = massEnergy;
455
+ exports.ohmsLaw = ohmsLaw;
456
+ exports.orbitalMechanics = orbitalMechanics;
457
+ exports.projectileMotion = projectileMotion;
458
+ exports.rcCircuit = rcCircuit;
459
+ exports.resistors = resistors;
460
+ exports.snellsLaw = snellsLaw;
461
+ exports.solveKinematics = solveKinematics;
462
+ exports.thermalExpansion = thermalExpansion;
463
+ exports.thinLens = thinLens;
464
+ exports.timeDilation = timeDilation;
465
+ exports.waveEquation = waveEquation;
466
+ //# sourceMappingURL=index.js.map
467
+ //# sourceMappingURL=index.js.map