{"_id":"@adaptic/lumic-utils","_rev":"45-4c037ede5c8f4ff453abefddcda67413","name":"@adaptic/lumic-utils","dist-tags":{"latest":"1.0.43","stable":"1.0.43"},"versions":{"1.0.1":{"name":"@adaptic/lumic-utils","version":"1.0.1","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.1","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"3069710a932801d453e3058178efa79cefc8fafd","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.1.tgz","fileCount":48,"integrity":"sha512-gvdAFm5/JIeS/GcF5J7HarB8++CXwQWnPwqnzcFGC5M/Sv0QrpzDN+rV1SVKsISHb4pUTkisYSOCoDhi1IWPIw==","signatures":[{"sig":"MEUCIQCH7L4lC5p1AZuiIcNVstH/TYeLuOmoHk+zRRgXMcz5UgIgZlpbGSAsHeIairmx6nTC2AVAEqOzhi05yPLAryXvdK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2289737},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"c3d1f7f5eb9739e788fad9dc3a2640d039bb340e","scripts":{"test":"npm run build && node dist/test.mjs","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"mkdir -p dist/types && cp -r src/types/* dist/types/"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@types/adm-zip":"^0.5.7","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.44.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.1_1759509455536_0.88431613092922","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adaptic/lumic-utils","version":"1.0.2","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.2","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"d0fa6b1e5d918b1f428a2db924e639b223d70746","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.2.tgz","fileCount":48,"integrity":"sha512-TAy/FK9Wyfv9RyCKIo5AZ8ifiOneWzRtxxsTSarWfE0mk1ZozfePT1ImkICZeCDpLuE3xrK6Ru2PYxADFzitDA==","signatures":[{"sig":"MEQCICkoeM4Ir/H3buMZ9/Q47wKQuZljLVPn2KdRO0TAYpi9AiACv5C7WzZOCI6qw5n2CCyqmW541FMHvUnZPdp8Wfadcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2289737},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"c1acd6c66b14be7170b09ac847d990c58d6a7a21","scripts":{"test":"npm run build && node dist/test.mjs","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"mkdir -p dist/types && cp -r src/types/* dist/types/"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@types/adm-zip":"^0.5.7","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.44.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.2_1759511749373_0.626664631827055","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@adaptic/lumic-utils","version":"1.0.3","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.3","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"c6c2570f25baaf9d0a2c97cf7ea6eb82e4f66065","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.3.tgz","fileCount":48,"integrity":"sha512-/WB3zInYUj66f/+Nc1Y79qcerDEYWHkMohuRFVQgJHHlk3vdaj/XmWpJhZCf4f1qRYSOnNnE3Q/tjufTvWybLQ==","signatures":[{"sig":"MEUCIFhMEwxUwXG73a5qNVOCr8aqGZRJTYU367CqoegPFYwTAiEAxCJyHBjyVWyzyLXhYmui6W+YOPrHCVDtvZ06tiwbR+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2289737},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"21ee4d3ba5cf2cb4be11959507fa24281540a9ca","scripts":{"test":"npm run build && node dist/test.mjs","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"mkdir -p dist/types && cp -r src/types/* dist/types/"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@types/adm-zip":"^0.5.7","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.44.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.3_1759512448276_0.4331695328091638","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@adaptic/lumic-utils","version":"1.0.4","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.4","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"f58f39be16899884b609fdbc49adf1b0fffbab24","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.4.tgz","fileCount":48,"integrity":"sha512-qMeN+J/50wgVkBmLFSuRGbtI9wpsPuVDUit2gHcrH5jIV/xuofsSW/LZT3nmlE0PfJ8lP0pkMaYiprfmhmXOlA==","signatures":[{"sig":"MEYCIQCJjPce0/hk9Nc4n52R51FjodMakpGsemPXnqMS2gfORAIhAOGfCzfUOuCMmb5nlVkLnd8ti9tsMevWjhouwOSSGUmZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2289733},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"9538b36e3994194d65ab3bbed416e1d87c5506ae","scripts":{"test":"npm run build && node dist/test.mjs","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"mkdir -p dist/types && cp -r src/types/* dist/types/"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@types/adm-zip":"^0.5.7","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.44.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.4_1759513026937_0.868817823306415","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@adaptic/lumic-utils","version":"1.0.5","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.5","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"801eceb7c115838ec9284f6c7804723c7a325a7c","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.5.tgz","fileCount":48,"integrity":"sha512-2ceVhisVm+zgvleTFT4NbtqVbkBRIDJ+pY1MydOc1Wm9UbKUdZ9yYKX3VrILqdrb3CdRupR1U4BIPEPQypb+Zg==","signatures":[{"sig":"MEUCIHIFzRSz+Uuj6v7aty4ZhFd5vDmrhV3Ko/ITHZPP9G64AiEArwE2ZzLyy94QfeIJ/YHIvGEYR0aBmXFk+gw+tj6XmlY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2289733},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"9538b36e3994194d65ab3bbed416e1d87c5506ae","scripts":{"test":"npm run build && node dist/test.mjs","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"mkdir -p dist/types && cp -r src/types/* dist/types/"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@types/adm-zip":"^0.5.7","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.44.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.5_1759513474527_0.654889586456749","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@adaptic/lumic-utils","version":"1.0.6","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.6","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"784eced7feddaa3949b827925ba070f3b8573f27","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.6.tgz","fileCount":48,"integrity":"sha512-0RKPRRseiMpMjIoQJKAxUQW1DntCXcLOptBlAGB+cF7BffjuirQ20Q98b1tW4m8fJgUazBL1k5QbJQN2PSZSyg==","signatures":[{"sig":"MEQCIDAQXJQ57idpPtIKQIPGeImU3QsajJstkJsqQewRFoamAiAKHhTH7PZRjYqQjdsQAv1+KIf0j6UPrLcR4TbXaePMkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2289767},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"6775ee3db1161120dddd4396bc38e247bb4b7ee8","scripts":{"test":"npm run build && node dist/test.mjs","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"mkdir -p dist/types && cp -r src/types/* dist/types/"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.0.366","@types/adm-zip":"^0.5.7","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.44.2","ts-node":"^10.9.2","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^12.1.4","@rollup/plugin-node-resolve":"^16.0.1"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.6_1763009031847_0.992847840176704","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@adaptic/lumic-utils","version":"1.0.8","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.8","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"365d9aef34d07732b6157a3501936508810f97b9","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.8.tgz","fileCount":99,"integrity":"sha512-rXUU7A3xnEXW0ZnFkPQoT/GiYPOU/q4OjvnQZYMVbIBKcPtZeqyFyhtD6OSiM7DDlwz3OiE/yQ/ASvVTGIAByg==","signatures":[{"sig":"MEYCIQC3L5VUplfoAg4PAR5phFPOaMk+tONtJqZv/qd9g7W3fwIhALOws+4p4XDjeKJAxOC6AtLHXc7cElMZXUjPkGsdQ0Xo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21979380},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"6eaef527c688f2b6871d1c73f6f16fff6cda4692","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"mkdir -p dist/types && cp -r src/types/* dist/types/","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.8_1773812570814_0.5493150841411614","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@adaptic/lumic-utils","version":"1.0.9","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.9","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"5a27b016cc427e9cb4a5d1d01bca1369cbe7fd12","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.9.tgz","fileCount":48,"integrity":"sha512-XnX4gTRqNEQbPByB+AVzuYxEB3uOklNcjDtOlc6QZ0vTVCY8JjiYvV6DvWRyufgv9PSGCnECkVlSapfmIVFQ6g==","signatures":[{"sig":"MEUCIH4DgpaNElO4D7FU7Z8xsN02oklXtBwGP/9A7vVr9wKVAiEAg3sg7dnNgJ7exkxuX97A+XWl+S7aqKfEKzV/2hTjemM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2290237},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"3ebd5ca2b7988322352d0d4a80de9d6fec581e4f","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.9_1773909333008_0.3669049792913559","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@adaptic/lumic-utils","version":"1.0.10","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.10","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"4a1ba7d77ca6bb2468d28162842b74061b75a7b4","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.10.tgz","fileCount":48,"integrity":"sha512-7g7KWkQ5GRsD4orDGmOZmTKih2rjRJNvURrFsi6oGlDFgUv/qHRDZy0bIpH293TYj8crXS71jiFUgs49a6Hjhg==","signatures":[{"sig":"MEUCIQDuE3M3Sfz2mQzRGYf+XpoeDWX5VSpamlS6baYxFOsnIAIgYZDwkqe9r6ANaGThTVqiqyAZiyHM6RrPydwxEAOdf5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2290238},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f2b5a79b72658577ace14f982020f71bfd8e2d59","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.10_1773910696214_0.053644924756168555","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@adaptic/lumic-utils","version":"1.0.11","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.11","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"4001894601a09d5b6e6bdb67d9db7f50946a438c","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.11.tgz","fileCount":48,"integrity":"sha512-aGvDFvyBWCmnbXLiyuZZSqQftdwuoBKBKCwhGX/BjD4622BuhUo2w3uq8DxvdVaLgE+CA4CLlYfi2E8p1SU8HA==","signatures":[{"sig":"MEUCIGebYK5GL68pvIGZGRwUTK9BdwebtJshDejM6krh7PDiAiEAov2fuFohOsV2YheqOEufK84nnXXBVxIza4XIha6IPUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2290238},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"06e4eb71aa14de6e655ce0790c6d1c0c5f63dd52","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.11_1773911982055_0.859091724740682","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@adaptic/lumic-utils","version":"1.0.12","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.12","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"33fe1ff932f54555bd6ee0395a3b4c03d16bb477","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.12.tgz","fileCount":48,"integrity":"sha512-WrdwDRRl8T3JJp41jk7oAdywG0oAob1JIb7x4bdrWaUv3Nue2Yz3bo2cne2HlvuPVEJI20nq4bupF00+fEG7Pw==","signatures":[{"sig":"MEUCIQCoh/xsqjtkRtS/lmNPiTRaUEZSzoVzMe0BV7zMt7l+8AIgPy9E1szG27nNLnTkxxZXqsHjFcMiHF1dZ5TSh0FPz2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2290259},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"09181cddb8ac5875a09617c69b23bd9fa4b33c0f","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.12_1773912198318_0.9875144084242855","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@adaptic/lumic-utils","version":"1.0.13","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.13","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"c88e6cfdc466589ffaa607e2e4df14f5e7827edb","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.13.tgz","fileCount":97,"integrity":"sha512-lnnIKDl610oB6yYJmgwYc+Kx0tKKQUdgL6cr6kYQrbilY3kTWNq1iITdiYFZ8Lw5FFvT3qn5HzkYvAVtW8JgmA==","signatures":[{"sig":"MEQCIGt+l3CWnf/PBl4AH4zWSttQtqcMAqmg1xrl2+6zs9ezAiB0/X38zqJCuQm/ol9XbDti9bQDTVwFH6VPYYsDKSa8bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23356954},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"31448d65f0cf64beaaff0c788c6628ac03adbe92","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.13_1773912511913_0.9014248297311143","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@adaptic/lumic-utils","version":"1.0.14","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.14","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"6c341572d9634fad6c1cb17f032fbfad45ab48fb","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.14.tgz","fileCount":97,"integrity":"sha512-k2Ny+qXwUJPc3wSVaTj2u5c6Mds6PkSrVWMnH6EC7lvCgZhP1ohaSjURIAeiVvuPw/Rgn65eYA/lLR5Lb2a3RA==","signatures":[{"sig":"MEQCIBTUCKPMr1w1CY7f7JYGL1EhCncf8rVUTzQCAsNsf8leAiB1kCtjl1dF+kYSHUsy/jWPtSt0lU9WSbW7kkha9JQxBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22115668},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"2c64d6a4fe2298879182077fcc5bd0be4d3f7963","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.1.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.14_1773914533229_0.5348452203028662","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@adaptic/lumic-utils","version":"1.0.15","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.15","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"0b6408fde06bc6d3b5dc2431d533025b68242984","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.15.tgz","fileCount":97,"integrity":"sha512-xeox4S/R+h0LAnsH9CX7IFp/ZWaEDhegqaBS45LK0ATNRbgNyOIKpNBDNfL0hrmIy3hfjsWa7J1ZfKLG+HcFFw==","signatures":[{"sig":"MEUCIQDWnIlckjENNpPFbE4r2e+I8iZ6FQYKdgfznhJ0XjrNjAIgTN+JSbRaL3SODFCgbpQconz4B8UywBtojzg/Z9b8V54=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23357756},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"e82f989e7ffd15d6d511694653425f73be2c7430","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.15_1774440180883_0.7168857184500355","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@adaptic/lumic-utils","version":"1.0.16","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.16","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"5f5a983b1a27aaeb1464a8289c2206c0069e9d5a","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.16.tgz","fileCount":97,"integrity":"sha512-7xjO37H5tcnSoMaQgFSLDj3MhERevLHoSeD5zLjxuOJ79HhUNc8kKytnHZK94xCaMzox1M2VM4yrMWUoE/gdEg==","signatures":[{"sig":"MEUCIQDL3T0Uc6PJVO4DBcLvuqrt/QaYS8gaS6ZvKi3ffo2QOAIgdSDmPnc7t91rWXe7hCsQTOhJVA66zexITgaOEm7pRJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23358360},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"0ab44fb9eddc5111fc1e3c118dbf5ea75ddd3e46","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.16_1774948472454_0.7818892935523345","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@adaptic/lumic-utils","version":"1.0.17","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.17","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"433a7ffb72acb919884336568e28bec1d0e95fec","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.17.tgz","fileCount":97,"integrity":"sha512-JBCWxO281ww1c0Es5md4+46NbKuOdnyfHdiHTjlwi2Y0UUQE+h8Y8nKQd/HCyxAq963LBPD2e/Mo3csXBCIafg==","signatures":[{"sig":"MEQCIEIYdfh7bQDYDjX+zF+T7tyaJdvLZhjxJ3WWTpjCINwoAiAPXFOaJY1r4avUFwDEW6VPmJ+4vVckN/MvpmzaKeQ/lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23362644},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"6572c00794bf12a3f75e9ba717c2a14ca16bc006","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.17_1774948933500_0.02625168039735648","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@adaptic/lumic-utils","version":"1.0.18","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.18","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"91af74241ff4dc3ebf9877ce569cd9ea799f7482","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.18.tgz","fileCount":97,"integrity":"sha512-G8/YXryETiSTr8tPUKO4qhbhJp3DpxMzODN4lre+dniDaboozy9B3pHlyBJEw98F6seOnB7VjgYV8OBk3Rpvyg==","signatures":[{"sig":"MEQCIDIoV35i0gCwTTN2ucUUIWnhigcVmVWPLUcXee5Eo2nuAiByYR3KV9zyPGSKe6qDScReEjeNATXO8M+iKE0sAwcD/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23366026},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"1889d52a80a9e48da627b39813d54678de364a62","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.18_1774949209759_0.7106228452606871","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@adaptic/lumic-utils","version":"1.0.19","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.19","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"bf45d181dc0db622acaa457430bb828b5ae25bb1","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.19.tgz","fileCount":97,"integrity":"sha512-aWX+6pY0NdsxBnvSec6+23slF0OEJHQFJwmsg7UDQP69/1VA66qxXPi0OcF+2JMsI4g3Oh+fYl5nd/Mp/TFhcA==","signatures":[{"sig":"MEYCIQCpKDPleexGbjmQLyi7MO5nl4Os+PB6P9COfM+757pb1gIhAN28qX9z+xY9IvboUR+lXmdFAVFrsCpKJJyMqV0dtwt3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23375196},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"35e20f9d23f1cfd050f3a5f12b2d24e94435a2fc","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.9.0","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.19_1775951758249_0.9033316259789084","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@adaptic/lumic-utils","version":"1.0.20","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.20","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"a3fd57c6bc7032ffa1091946c0a8064def69e870","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.20.tgz","fileCount":97,"integrity":"sha512-8ke5hpJDgsVpcZlvDBi6nmnqKl7gt30Qnst8004b7GkIxe0qTsRyNAlIyfSW2kjtjS1XjS/Psy44BVzNJz24Uw==","signatures":[{"sig":"MEUCICyf7LjNb04S2XIOK4nkjhjpbVxPIGJ0O+YaEb3T09M6AiEArFd6S2QsfucXv1bDh4f6QuTu7SQLVShQSYadvBCFJmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23381860},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"c0ecfeda0ac15f3b3f5ca0ba2f1bb299fd2e2724","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.9.0","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.20_1775963834539_0.44530235059194045","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@adaptic/lumic-utils","version":"1.0.21","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.21","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"ec4b2f3d14e86d25926b2ae27696b093791b993b","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.21.tgz","fileCount":97,"integrity":"sha512-KpAufDPmTwyzYRX/NFO+J3Mpat4ED4XoYj0tpE9NzLm7EbW3y6y1vL2UW0d1zUsZywSmFkDL4RmY1P3nX7NgJQ==","signatures":[{"sig":"MEUCIQDzTsDEYO2lsaRZgmNJjaQJhvWVxUjXencIfL6KKA6kJQIgXzq39wxs6756LESbWWYuwHD6zGV5W563XZQ/LhG2vDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23386352},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"14c30dabe3b988fc3c354ade439ef114744914ad","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.9.0","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.21_1775965992616_0.3313753824743322","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@adaptic/lumic-utils","version":"1.0.22","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.22","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"3c957b107bd89b90501cfb604d0f8dafd317c16b","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.22.tgz","fileCount":97,"integrity":"sha512-Sc2YCA4igb8SjVEcCfJfWExAmcV6njlTSlWuhjyMBEVyYa7kjcF4byYNmKU8rEtomLhUrkKq8htCCLnSEB2REQ==","signatures":[{"sig":"MEQCICmzGIcz2OUA2wV3/TQ46vUl1ad6f+dtHlC0W7GFTCQ9AiBbXVSchyZFD4l46ZcbQx1kXC3J0tSsNVCXm01p/NjPWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23406936},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"675924e3c9747575e910fedc1b6a54753c8b15a0","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.22_1778071599635_0.11789135325470723","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@adaptic/lumic-utils","version":"1.0.23","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.23","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"cedd07e4c104416ff370cb0ad30e2c24948e3448","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.23.tgz","fileCount":97,"integrity":"sha512-TmeGWB+9ECSwVSx8ymA9qFKvDVRLMOepbz7BJwJoeHWilzqyrRVexyNYwkZfh6zPZPXTC1WT7AsFcvDKsDQ9cA==","signatures":[{"sig":"MEUCIQDSlHKl6A0Iz160F5Yqs+pjgcH/RDl5H8LtTSlta7cblQIgW7azIDZ+FHhv3hk4rqcDS3IUABMWmWGAwFbEmFyu5zw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23408127},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f42286546b939ef73675a1de5ed1fe31aade52e2","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.23_1778552270363_0.6816875627193648","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@adaptic/lumic-utils","version":"1.0.24","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.24","maintainers":[{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"83a70ae714b641cbc07816a1b89d41aefe27adaf","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.24.tgz","fileCount":97,"integrity":"sha512-62lv8vLAk295g2li1FxsAzvkicNCnGJaPe1ewd5mEypdmlMjt/OcbdNS2zZ3S1LUiGkxmU4eSAwkr9rXHU1CSA==","signatures":[{"sig":"MEUCIDwU2B9wk9AjqjHZRpvVmSa32yVoNMCJNLTQnNN6EV8UAiEAjrb3lQ29C5L3oSkfkWvSzI34hr8hNU0GROHjDwnV67c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23414716},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"04061875f03b2948d10c069ca318e4fc5aff6bb3","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --import 'data:text/javascript,import{register}from\"node:module\";import{pathToFileURL}from\"node:url\";register(\"ts-node/esm\",pathToFileURL(\"./\"));' compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.24_1780121978475_0.8190272493369246","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@adaptic/lumic-utils","version":"1.0.25","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.25","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"d3df81cc1be8a083fe6ab3a5c2d30ce8def47d43","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.25.tgz","fileCount":97,"integrity":"sha512-qh9KRmj231qK39lDilPSzR/QYeivN3slNfCIEh6gYJkx0EI/IMTXlKgCIcB6byBWvUP55LW0wSC0rFecsCZO6Q==","signatures":[{"sig":"MEQCID4LE7xfWaRn6GOMFeLO7O3sFWmiZoHeiHNreMZSGnqdAiBDOGo+kxM35xYyWeZjqw+XGzfQ+yyjj3Bf5UZuD8L0Fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23419022},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"5b0d4d6bdfebbf3360f3e5ec8f2f4618782c660c","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.25_1782845996574_0.2704387941022057","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@adaptic/lumic-utils","version":"1.0.26","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.26","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"8f58a05fef700d9a3477fd57718200c6230631c8","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.26.tgz","fileCount":97,"integrity":"sha512-T9h5opDTVGEqwVvA/Unu6OnCiZ64YnXFX1HIXwi2fdzz4VkRZNNvM0gRZnF1o0svyvzU+cZKxCGVdSE196DKiQ==","signatures":[{"sig":"MEQCICo4pBqKqNf3GQX7ah7Kn1CYLMM6xwbZRlgZCZQfT9UMAiAFx5A2jaTqoHx26L5veBO94nBrvwfq1nzJo2w3kXuwmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23434886},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"de2b70a237092a930c94a07a023b160ded43efd1","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.26_1783841246223_0.680689047534615","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@adaptic/lumic-utils","version":"1.0.27","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.27","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"fa946e7b2d2894872dcfba343bbdc91681f61286","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.27.tgz","fileCount":97,"integrity":"sha512-LqLKHmRNUN01BC2zn7cBXRJ6Wu6g1W/sCEAAB3Y+Z3X00LJGQRgq7sMntRXn+d8cfCmtqsrG3hFx4qQYj17Jmg==","signatures":[{"sig":"MEUCIGBHNTzFMxF9BBL13ths5wxfg5oDMw9c7YFaN8E5j9TdAiEAx3NxyuuEyyfzeYAbPIdvF7KWYZT+LFGwAPubYeL3K9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23440866},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"30662d0173b614202bb4498c71d7b00cd2fc834b","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.27_1783955250861_0.8934465302601122","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@adaptic/lumic-utils","version":"1.0.28","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.28","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"72b1152d49b41b0b9e9c39a7a463929eb4deb55e","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.28.tgz","fileCount":97,"integrity":"sha512-Rrx+tQjtSeduhGrZyZHYLSPSPsgc6u7xhccsj+qhFzrjEB3ka67t6skQoxA25RKNx3pMkflnpaRym6fOiqao7Q==","signatures":[{"sig":"MEQCIFyRQN5KD4gFF70qydpufpKmEH0Jd2A3M9YSLC6N5WvhAiABD3NLUGfpH3LP1Yc/5br3wM/61HR5EPcrSuamitvIxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23442286},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"ca22ea8906071c9b0b5362036367bac0bf0006f1","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.28_1783957712205_0.46275888908762797","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"@adaptic/lumic-utils","version":"1.0.29","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.29","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"97c9b144770affbd63845d60f12afbef9a31e4ae","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.29.tgz","fileCount":99,"integrity":"sha512-JAJskK1Q3qTZVnRphaltD5JJo5TB9hKcjXlJFr+d3/RuwP+VhhcbPw/w99ev1QicGPRg5VC2Ol52n1T56snF2A==","signatures":[{"sig":"MEUCIQCMSofGgRMlKBrpV9+DnBvinW6NDrBG0BBEVt3R2PYksAIgPl1mfSv58jgdhjxT6lqLTRDR6yLRKiJhpE4vSx7WHaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23548641},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f583de47035a04bbfc2161b5ec833de53bc61829","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^5.8.2","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.29_1783971052463_0.23763157464315765","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"@adaptic/lumic-utils","version":"1.0.30","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.30","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"f5eb71982485af34e0302712bcf93549eff917bd","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.30.tgz","fileCount":99,"integrity":"sha512-j4WUb1GH3lT80TdGflmj2mjZ1CL3zeBabAh7LAxSRDIUIQGCTMxgK1li3b/RUm+NQP0buTd4UrBPfFFBeh3kIg==","signatures":[{"sig":"MEYCIQCDDD2dKsC7VQPH42nzMuLl9KHlQJ4xSbgdBl17fO/D8AIhAPjM3Y8EMNgJw6qj70K0jNHSFA6GmZO8JhFA5vbTtzbX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23551481},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"6af634e5ca8ebe00ff485f3bd7d21294dd80de8c","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.5.16","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.30_1783973235882_0.15344809562911688","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"@adaptic/lumic-utils","version":"1.0.31","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.31","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"bfe8fdafa8e458a7534166df8ee0062a9a26c397","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.31.tgz","fileCount":99,"integrity":"sha512-SPyB8XpQ3gp1tSQOtB7dSMfB3kVakwE8yjgRi8ovOt5JakkwC3AVhvbr6kZ+h4CHChJQHUZ+qdPSsJ8IrT2zRA==","signatures":[{"sig":"MEYCIQDpEjIwHOU2xXdDrg2XYDOWkTuN1KB+fZBqgNCleYBz9AIhAMbb1Evae3YUUkOrBYR8PB2AA/Ny+q1EP+Z2xmKx1g1+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23551480},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"6af634e5ca8ebe00ff485f3bd7d21294dd80de8c","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"11.5.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.31_1784407571747_0.7607557997363217","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"@adaptic/lumic-utils","version":"1.0.32","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.32","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"fcf66b58f342dd08aa5e26db82003475f7aed259","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.32.tgz","fileCount":99,"integrity":"sha512-5IbDbc4649x11e2RLc+kdpz3N4NyUkIUDQiCj9XqAC4ss5YqW8Lgd9ZaFhiiFt0cUfQz092hEgwAA2Rrpd3hWg==","signatures":[{"sig":"MEYCIQDBnGPqht7BkoNrc+wafFIVcztFTYRG6u292yWWrM3vpQIhAOJY/62l4a0zjWxkBxuCEwPSBGHfXy0VENwTSoUH6lmi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23551480},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"481f5791344bf74ccb0ae6962eae3cb7dbfffd83","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.32_1784407698700_0.6949668122396826","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"@adaptic/lumic-utils","version":"1.0.33","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.33","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"678dc3279c8c65bd37ab7cfe5a3b416479dfaf08","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.33.tgz","fileCount":99,"integrity":"sha512-XFHmCpoCkORRC31fWW07HE1wez/sauX4znuXRyUnF1PFvBMy3Zsca6YSd/kaEcSJmFYw3IZ15d8sZmEpnfyjOQ==","signatures":[{"sig":"MEUCIEm9KHHOSt7aa5m9Q72/bPk7N/4F+q/ZGEVgg853hLuHAiEA3sDbFsqYG4VhRLJGeh8rTsLXbnhVeSHxRA/6ru755W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23565026},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f410b5014b68b901f3a75458b54b9f1e7d7450be","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.33_1784905347491_0.9983437936945472","host":"s3://npm-registry-packages-npm-production"}},"1.0.34":{"name":"@adaptic/lumic-utils","version":"1.0.34","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.34","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"e36f09dc104202d17304c4943058e9c4b084e8e8","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.34.tgz","fileCount":101,"integrity":"sha512-R5X7/lQqrifbKZ17jytp4WLVTkFGdLxgTZNO/syui1BhUu+sJo5KENhsK+yWVSJk0G0+TRM7srjqYQ8KK8GowQ==","signatures":[{"sig":"MEUCIB+th5wd5nErDRsnUjbZJ/Hrcr8snMpghy+Fd+xkji31AiEA9LVgsFe5UAHK5+Cq5S2qdLtoOaxG9plWjSz70g4se8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23585091},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"e9bee69d8224a7a846e46e470a266f371a8504e8","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.34_1786166599314_0.9167035243859807","host":"s3://npm-registry-packages-npm-production"}},"1.0.35":{"name":"@adaptic/lumic-utils","version":"1.0.35","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.35","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"1f7df864eb638e5a37d4c3b80627fc7564b98358","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.35.tgz","fileCount":104,"integrity":"sha512-z3Y0uXY6hXLDCPgj4GlwgCm/mTsEWxWdf+zTiGQPz47MIngTtwWanrNf5vHFo7tHz+K637hneRD3un301MOMVg==","signatures":[{"sig":"MEUCIC+Hpyt5A7CS07tmISdyN/+naXql0UcjaBqpw5M9oCYFAiEAmJUA0s7DLsHpqAXCWUXAkYltzxjz5hSKU9zwIfBFv9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23587823},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"b0bdeb0acefaa0f928ba01d5428a9bd82a166acb","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.35_1786170644717_0.3191831887416925","host":"s3://npm-registry-packages-npm-production"}},"1.0.36":{"name":"@adaptic/lumic-utils","version":"1.0.36","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.36","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"474b6eff7cfca10251df91f7c625b37eaf33c292","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.36.tgz","fileCount":108,"integrity":"sha512-8ZSxidTs3qxnhdI1nuD8A+Fr4wkc6JpAXjqneU+8yWj9ANZQt1pUPsPIcmUQ4W9jCw/YevD5FrXFN5IfjgajvA==","signatures":[{"sig":"MEUCIQChVct+OEQPxd6/i5UH0yX+fl7EszIwX1mgJ0l03wtcLwIgOH2YGNPK+GR4g0E63c4TzlfIXTwyVQVS4GKdk+suw9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23741143},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"82dc5d2bbc1bf8cf845c36378d88211a7e18ff00","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.36_1787248433234_0.9565738114469777","host":"s3://npm-registry-packages-npm-production"}},"1.0.37":{"name":"@adaptic/lumic-utils","version":"1.0.37","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.37","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"ea4b0a86d06e0d6d8f040b98e2f81d1b905a1fa4","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.37.tgz","fileCount":108,"integrity":"sha512-hBkWHzOp2M3evaklRg8NXpoYN/+tjpAMP1fuoFLLHmpYcm8I7DfUhZSRfanJ92J3ggelrR6fI4mqt90bkwq9oA==","signatures":[{"sig":"MEYCIQDCS3foRLdl2toKEwAqyLAcreqGJmjEbrHloVh3K564TAIhALj7XRoNLsYKXxNfo9K25ajvWCOBx5y4RbFO09sZVKuS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23741139},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"8e4f4b9543ae1c42b84ea9d17d7a8cb1bfea5d75","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.37_1787320563331_0.8919416870970658","host":"s3://npm-registry-packages-npm-production"}},"1.0.38":{"name":"@adaptic/lumic-utils","version":"1.0.38","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.38","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"d5f568a98573a746c86564bdfeb47efe3720b228","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.38.tgz","fileCount":108,"integrity":"sha512-55BMrKkiMmKfRYgwEtEo/HntvIlEuWRz7EBdAPaCBJwKhLVP6F9gNMhkTeB6om7WmEVJIlZ4Rf50ztpxS1e1KQ==","signatures":[{"sig":"MEUCID0l6E+y/g+9TQ/YOKBQfU0TGgGiehAPLmNJ5YMh3ngWAiEAg+mkWGrvXJ6H3Is8OVNgghu+ZiAPNfaS9zH74OODvCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23743227},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"2cc217cb4c2389e399aea0be5d9d931b680d3030","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.38_1787321163933_0.20006035570538638","host":"s3://npm-registry-packages-npm-production"}},"1.0.39":{"name":"@adaptic/lumic-utils","version":"1.0.39","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.39","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"00cad09f0a004a054b29692c3be2b87f664fb4a2","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.39.tgz","fileCount":110,"integrity":"sha512-bDi2gCxOveMzdXYcXIeJYbbzU29rSSeFcTz3eKM/TJLSSAjEl5d+ooT47ylYsm8gYWsBRWx3h6iaLpmyaQOGCA==","signatures":[{"sig":"MEYCIQC5FTtWqqDqWc+Sc7JW+7Ro60PyAorUVeFN3RFgD4OrMQIhAMEGgW3Z0Mbu/FrT4PBdYhl1RRm9WY3BXKJLxPFpx7x6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23773985},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"2bd15bf6aa91faa5c35ccdef6f75765870d553d6","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","test:legacy":"npm run build && node dist/test.mjs","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.39_1788291047731_0.14341548108370206","host":"s3://npm-registry-packages-npm-production"}},"1.0.40":{"name":"@adaptic/lumic-utils","version":"1.0.40","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.40","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"8d9f052b5998e249714649d36358654af8b66ee7","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.40.tgz","fileCount":113,"integrity":"sha512-F6L/73/ukAdWzCa1DKqwpvxw1vlIB0OLwud4bf+QMcva/KFeQIK0wZz0MJfwxzSARlXC7O0eNHG5xsMmEsWEVg==","signatures":[{"sig":"MEUCIDM7eevWa+7QkOB5tz4zulEVr08JuYZj9kQvv1kAi8aQAiEAmJjpUFva3VdwHCaHAzTb2Aiklw4zJO18+fjs5zZN0tk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEppTbRpstbFnmz0bbLCN39ssxDWwlz1ei2KnWuP2j4sAiEA+jI4Tua4O8G6LyZE4ZsOJRhNfBchdMdf3o0eKfMaEIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23967031},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"2cb1c8742528b4a9f20f91cadeeca33d08f1e895","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","models:sync":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --write","test:legacy":"npm run build && node dist/test.mjs","models:check":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --check","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.40_1789110126864_0.05262906514197385","host":"s3://npm-registry-packages-npm-production"}},"1.0.41":{"name":"@adaptic/lumic-utils","version":"1.0.41","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.41","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"a3f2d30711ded29dcfffc2b05d9385f66b8327d4","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.41.tgz","fileCount":114,"integrity":"sha512-RMgn4In+MdRfKPh10ANx5Hzlju/R8jby6zZziaj5TcMRAgk3heC7RxqiycSTCUZaWoTed7g7pugaevB9XG0fKA==","signatures":[{"sig":"MEQCIG3jDZ1y0zF1JJSA2aKautTqNju0H6vv0ucWS0mRtmsOAiAHGqF4nyKFK1PWq3rtkTahgS7TpwQhXfvpIgjDN5PTuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEMCH35koqKosHU64zZAkWLlE3b0elhzOyR2DzqPO8QLTfsCIFQUMDWypu8MPnwkkaWqebBYJqWAcuz/Frs6Aucz6LDs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23971666},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"5ad256f1f66d9a53cdbff2ef51f52f575aedf105","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","models:sync":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --write","test:legacy":"npm run build && node dist/test.mjs","models:check":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --check","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.41_1789112285819_0.19171615724259805","host":"s3://npm-registry-packages-npm-production"}},"1.0.42":{"name":"@adaptic/lumic-utils","version":"1.0.42","author":{"name":"Lumic.ai"},"license":"Ask yo mamma","_id":"@adaptic/lumic-utils@1.0.42","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"dist":{"shasum":"b601da7fc1d1a719b0c66ae40eca21993dd5058e","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.42.tgz","fileCount":114,"integrity":"sha512-ibJR3q7bQm5FMCaB4g7lZU0Y//wMmGZ+EUDkCu5ZD9RPN3GE51mzcBPDlH4mteAtRXGbUGBW6YfUW5wCDYhB2g==","signatures":[{"sig":"MEQCIEpXoae8EYfRNp8oGQHe98x28Zykz1HiKiflI2hvtjuWAiBFaXl5YbIrHK0uP0BoFnf7qvV9mWMHyYJAeJCGkJnzAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC3rUJo4xkOM9VlNHm5S4Es310I/wEBid/zoGNKTyGadAIgLwcH2tmee7j6+v0zSkY6wt1oCbEq2SVCiEHKJsnXFaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23971666},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"d2261ffaf960e269e63eddbdbc4e99293b8f6416","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","models:sync":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --write","test:legacy":"npm run build && node dist/test.mjs","models:check":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --check","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"tmp":"tmp/lumic-utils_1.0.42_1789195206388_0.2891018157472589","host":"s3://npm-registry-packages-npm-production"}},"1.0.43":{"_id":"@adaptic/lumic-utils@1.0.43","dist":{"shasum":"7e9624c508adfc64eb0acd1c78603ea82f908cda","tarball":"https://registry.npmjs.org/@adaptic/lumic-utils/-/lumic-utils-1.0.43.tgz","fileCount":115,"integrity":"sha512-VXAjrcTF8EpQKIN81I+aLjsxNKN+PQCxbYaG+DyhkSsEJoOl7eu2e6BDoETQyOpl6cFvQtyI9nwIyObxy48RWQ==","signatures":[{"sig":"MEUCIBQ09HHvLv2UiB9Swoy/n1u7VyMDTuHozu2lxrYv4Sw3AiEA1LH2eXrKVNr4xJkeBPHLE/g8lCDz5NbuxOv5O4I3qkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCfDKTiuYQ1JQgHe+kYPPS+DepiK2c2ztnZkxrlAPS7RAIhAICdyQq27vmg1uNDd2yLoSFoVdGBeRpbNQpPWk2+Hv2i"}],"unpackedSize":23992137},"main":"./dist/index.cjs","name":"@adaptic/lumic-utils","type":"module","types":"./dist/types/index.d.ts","author":{"name":"Lumic.ai"},"module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"73e44c5acc1bf922d61f91b4aa61b99dfddd46f4","license":"Ask yo mamma","scripts":{"lint":"eslint src/","test":"vitest run","build":"npm run clean && npm run build:js && npm run build:tools && npm run build:types","clean":"rm -rf dist","build:js":"rollup -c","lint:fix":"eslint src/ --fix","llm:evals":"node scripts/run-llm-evals.mjs","test:watch":"vitest","build:tools":"node --loader ts-node/esm compile-tool-definitions.ts","build:types":"rm -rf dist/types && tsc --emitDeclarationOnly --declaration --declarationDir dist/types","models:sync":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --write","test:legacy":"npm run build && node dist/test.mjs","models:check":"node --loader ts-node/esm scripts/sync-model-catalogue.mjs --check","build:analyze":"ANALYZE_BUNDLE=true npm run build","prepublishOnly":"npm run build"},"version":"1.0.43","_npmUser":{"name":"adaptic-dev","email":"mehran@adaptic.ai"},"_npmVersion":"10.8.2","description":"NPM repo set of utility functions usable across the entire organisation.","directories":{},"maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.10.0","dotenv":"^17.0.1","marked":"^16.0.0","openai":"^6.46.0","pdfkit":"^0.17.1","adm-zip":"^0.6.0","@adaptic/utils":"^0.1.1","@types/adm-zip":"^0.5.7","@anthropic-ai/sdk":"^0.80.0","@aws-sdk/client-s3":"^3.842.0","@googleapis/sheets":"^10.0.1","google-auth-library":"^10.1.0","@aws-sdk/client-lambda":"^3.840.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","rollup":"^4.44.2","vitest":"^3.0.4","ts-node":"^10.9.2","@eslint/js":"^9.18.0","typescript":"^5.8.3","@types/pdfkit":"^0.14.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^28.0.6","rollup-plugin-visualizer":"^6.0.5","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.22.0","@rollup/plugin-node-resolve":"^16.0.1","@typescript-eslint/eslint-plugin":"^8.22.0"},"always-build-npm":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lumic-utils_1.0.43_1789236187203_0.17188484417279226"}}},"time":{"created":"2025-10-03T16:37:35.535Z","modified":"2026-09-12T18:03:07.535Z","1.0.1":"2025-10-03T16:37:35.787Z","1.0.2":"2025-10-03T17:15:49.618Z","1.0.3":"2025-10-03T17:27:28.500Z","1.0.4":"2025-10-03T17:37:07.144Z","1.0.5":"2025-10-03T17:44:34.785Z","1.0.6":"2025-11-13T04:43:52.124Z","1.0.8":"2026-03-18T05:42:51.141Z","1.0.9":"2026-03-19T08:35:33.178Z","1.0.10":"2026-03-19T08:58:16.376Z","1.0.11":"2026-03-19T09:19:42.321Z","1.0.12":"2026-03-19T09:23:18.546Z","1.0.13":"2026-03-19T09:28:32.222Z","1.0.14":"2026-03-19T10:02:13.534Z","1.0.15":"2026-03-25T12:03:01.231Z","1.0.16":"2026-03-31T09:14:32.781Z","1.0.17":"2026-03-31T09:22:13.870Z","1.0.18":"2026-03-31T09:26:50.027Z","1.0.19":"2026-04-11T23:55:58.558Z","1.0.20":"2026-04-12T03:17:14.834Z","1.0.21":"2026-04-12T03:53:12.930Z","1.0.22":"2026-05-06T12:46:39.969Z","1.0.23":"2026-05-12T02:17:50.714Z","1.0.24":"2026-05-30T06:19:38.697Z","1.0.25":"2026-06-30T18:59:56.807Z","1.0.26":"2026-07-12T07:27:26.432Z","1.0.27":"2026-07-13T15:07:31.254Z","1.0.28":"2026-07-13T15:48:32.436Z","1.0.29":"2026-07-13T19:30:52.726Z","1.0.30":"2026-07-13T20:07:16.091Z","1.0.31":"2026-07-18T20:46:12.014Z","1.0.32":"2026-07-18T20:48:18.938Z","1.0.33":"2026-07-24T15:02:27.828Z","1.0.34":"2026-08-08T05:23:19.591Z","1.0.35":"2026-08-08T06:30:44.940Z","1.0.36":"2026-08-20T17:53:53.463Z","1.0.37":"2026-08-21T13:56:03.579Z","1.0.38":"2026-08-21T14:06:04.245Z","1.0.39":"2026-09-01T19:30:48.048Z","1.0.40":"2026-09-11T07:02:07.054Z","1.0.41":"2026-09-11T07:38:05.990Z","1.0.42":"2026-09-12T06:40:06.531Z","1.0.43":"2026-09-12T18:03:07.375Z"},"author":{"name":"Lumic.ai"},"license":"Ask yo mamma","description":"NPM repo set of utility functions usable across the entire organisation.","maintainers":[{"name":"layla-adaptic","email":"layla@adaptic.ai"},{"name":"adaptic-dev","email":"mehran@adaptic.ai"}],"readme":"# lumic-utility-functions\n\nlumic-utility-functions is a versatile npm package that provides a comprehensive collection of utility functions for Node.js projects. It simplifies common tasks including:\n- Making LLM API calls (unified interface for OpenAI models)\n- Managing AWS services (Lambda, S3)\n- Sending Slack messages\n- Handling file operations (ZIP files, S3 storage)\n- Working with JSON data\n- Interacting with Google Sheets\n\n## Installation\n\n```bash\nnpm install lumic-utility-functions\n```\n\n## Usage\n\nImport the lumic namespace:\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\n// Access functions through their namespaces\nconst openaiResult = await lumic.llm.call(\"Your prompt\", \"text\", { model: \"GPT-5-mini\" }); // OpenAI model\nconst deepseekResult = await lumic.llm.seek(\"Your prompt\", \"json\"); // Deepseek model\nconst s3Result = await lumic.s3.upload(\"bucket\", \"file.txt\");\nconst slackResult = await lumic.slack.sendMessage(\"#channel\", \"message\");\nconst fixedJson = lumic.json.fix(brokenJsonString);\nconst gsResult = await lumic.gs.addRow({ spreadsheetId: \"id\", sheetName: \"Sheet1\" }, [\"Value1\", \"Value2\"]);\n```\n\n## Required Environment Variables\n\nThe following environment variables are recommended for full functionality:\n\n* `MY_AWS_ACCESS_KEY_ID` - For AWS services\n* `MY_AWS_REGION` - For AWS services\n* `MY_AWS_SECRET_ACCESS_KEY` - For AWS services\n* `OPENAI_API_KEY` - For OpenAI models\n* `DEEPSEEK_API_KEY` - For Deepseek models\n* `SLACK_BOT_TOKEN` - For Slack messaging\n* `GOOGLE_SHEETS_CLIENT_EMAIL` - For Google Sheets service account\n* `GOOGLE_SHEETS_PRIVATE_KEY` - For Google Sheets service account\n* `AI_MODEL` - Default model for LLM calls (optional, defaults to 'GPT-5-mini')\n\nMost functions also accept explicit authentication parameters if you prefer not to use environment variables.\n\n### Table of Contents\n- [Installation](#installation)\n- [Usage](#usage)\n- [LLM Interface](#llm-interface)\n- [sendMessageToSlack](#sendmessagetoslack)\n- [callPerplexityAPI](#callperplexityapi)\n- [invokeLambdaFunction](#invokelambdafunction)\n- [Zip File Utilities](#zip-file-utilities)\n- [AWS S3 Utilities](#aws-s3-utilities)\n- [JSON Utilities](#json-utilities)\n- [Google Sheets Utilities](#google-sheets-utilities)\n- [Performance Timer](#performance-timer)\n\n## LLM Interface\n\nThe package provides a unified interface for interacting with various LLM providers through the `lumic.llm.call` function.\n\n### Supported Models\n\n#### OpenAI Models\n- `GPT-5-mini`: Optimized GPT-4 model for general use (default)\n- `GPT-5`: Full GPT-4 model with enhanced capabilities\n- `o1-mini`: Compact O1 model\n- `o1`: Full O1 model\n- `o3-mini`: Compact O3 model\n- `gpt-4.1`: GPT-4.1 model\n- `gpt-4.1-mini`: Compact GPT-4.1 model\n- `o4-mini`: Compact O4 model\n\n#### Deepseek Models\n- `deepseek-chat`: Versatile chat model with JSON output and function calling support (via `lumic.llm.seek`)\n- `deepseek-reasoner`: Advanced reasoning model for complex tasks (via `lumic.llm.seek`)\n\n### Input Parameters\n\n- `content` (string | ContentPart[]): The content to send to the LLM. Can be either:\n  - A string: Traditional text prompt\n  - An array of content parts: For multi-modal inputs, supporting:\n    - Text content: `{ type: 'text', text: string }`\n    - Image content: `{ type: 'image_url', image_url: { url: string, detail?: 'auto' | 'low' | 'high' } }`\n\n- `responseFormat` (string | object): The desired format of the response. Can be:\n  - \"text\": Returns plain text response\n  - \"json\": Returns parsed JSON object with advanced parsing strategies\n  - JSON schema object: Returns parsed object conforming to the provided schema\n\n- `options` (object, optional): Additional options for the API call\n  - `model` (string, optional): The model to use (default: \"GPT-5-mini\" for OpenAI, \"deepseek-chat\" for Deepseek)\n  - `developerPrompt` (string, optional): Custom developer context prompt\n  - `apiKey` (string, optional): Custom API key\n  - `reasoning_effort` (string, optional): Specify reasoning depth ('low' | 'medium' | 'high')\n  - `temperature` (number, optional): Controls randomness of the output\n  - `top_p` (number, optional): Controls diversity of token selection\n  - `frequency_penalty` (number, optional): Reduces repetition of tokens\n  - `presence_penalty` (number, optional): Encourages discussing new topics\n  - `max_completion_tokens` (number, optional): Limits response length\n  - `store` (boolean, optional): Option to store conversation\n  - `metadata` (object, optional): Additional metadata for stored conversations\n  - `tools` (Tool[], optional): Function calling tools\n\n### Response Format\n\nAll responses follow a consistent format:\n```typescript\ninterface LLMResponse<T> {\n  response: T;                 // The model's response\n  usage: {\n    prompt_tokens: number;     // Number of tokens in the prompt\n    completion_tokens: number; // Number of tokens in the completion\n    reasoning_tokens?: number; // Number of tokens for reasoning (Deepseek models)\n    provider: string;         // 'openai' or 'deepseek'\n    model: string;            // The model name (e.g., 'GPT-5-mini', 'deepseek-chat')\n    cache_hit_tokens?: number; // Cache hit tokens for Deepseek models\n    cost: number;             // Cost of the API call\n  };\n  tool_calls?: ToolCall[];    // Optional tool calls if tools were provided\n}\n```\n\n### Examples\n\n1. Basic text completion with OpenAI:\n```javascript\nconst result = await lumic.llm.call(\n  \"What is the capital of France?\",\n  \"text\",\n  { model: \"GPT-5-mini\" }\n);\n```\n\n2. JSON output:\n```javascript\nconst result = await lumic.llm.call(\n  \"List three famous scientists in JSON format\",\n  \"json\"\n);\n```\n\n3. Using function calling:\n```javascript\nconst weatherTool = {\n  type: 'function',\n  function: {\n    name: 'get_weather',\n    description: 'Get the current weather for a location',\n    parameters: {\n      type: 'object',\n      properties: {\n        location: {\n          type: 'string',\n          description: 'The city name',\n        },\n      },\n      required: ['location'],\n    },\n  },\n};\n\nconst result = await lumic.llm.call(\n  \"What's the weather like in Tokyo?\",\n  \"text\",\n  {\n    model: \"GPT-5-mini\",\n    tools: [weatherTool],\n  }\n);\n```\n\n4. Using Deepseek models:\n```javascript\n// Using Deepseek chat model for JSON output\nconst result = await lumic.llm.seek(\n  \"List three famous scientists in JSON format\",\n  \"json\"\n);\n\n// Using Deepseek reasoner model for complex reasoning tasks\nconst result = await lumic.llm.seek(\n  \"Explain quantum entanglement in simple terms\",\n  \"text\",\n  { model: \"deepseek-reasoner\" }\n);\n```\n\n### Model Features and Compatibility\n\n| Feature | OpenAI Models | Deepseek Chat | Deepseek Reasoner |\n|---------|---------------|---------------|-------------------|\n| Text output | ✅ | ✅ | ✅ |\n| JSON output | ✅ | ✅ | ❌ |\n| Function calling | ✅ | ✅ | ❌ |\n| Context length | Up to 128K | 64K | 64K |\n| Cost | See [OpenAI pricing](https://openai.com/pricing) | $0.27/1M input tokens, $1.10/1M output tokens | $0.55/1M input tokens, $2.19/1M output tokens |\n\nNote: When attempting to use unsupported features with a model (e.g., JSON output with Deepseek Reasoner), the API will return a graceful error response with details about the incompatibility.\n\n## sendMessageToSlack\n\nThe `sendMessageToSlack` function is designed to send a message to a specified Slack channel.\n\n### Input Parameters\n\n- `channel` (string): The Slack channel to send the message to.\n- `message` (string): The message content to send.\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\nconst success = await lumic.slack.sendMessage(\"#general\", \"Hello, Slack!\");\nconsole.log(success); // true if message was sent successfully\n```\n\n## callPerplexityAPI\n\nThe `callPerplexityAPI` function is designed to send a query to the Perplexity API and return the response.\n\n### Input Parameters\n\n- `query` (string): The text query to send to the Perplexity API.\n- `maxTokens` (number, optional): The maximum number of tokens for the response (default: 4000).\n- `apiKey` (string, optional): The API key to use for the Perplexity API (defaults to the configured PERPLEXITY_API_KEY).\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\nconst result = await lumic.perplexity.call(\"What is the capital of France?\");\nconsole.log(result); // \"The capital of France is Paris.\"\n```\n\n## invokeLambdaFunction\n\nThe `invokeLambdaFunction` function is designed to invoke an AWS Lambda function.\n\n### Input Parameters\n\n- `functionName` (string): The name of the Lambda function to invoke.\n- `payload` (object, optional): The payload to send to the Lambda function (default: empty object).\n- `invocationType` (string, optional): The type of invocation (default: 'RequestResponse').\n- `auth` (object, optional): AWS credentials for Lambda invocation. If not provided, falls back to environment variables.\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\n// Using environment variables\nconst result = await lumic.lambda.invoke(\n  \"myLambdaFunction\",\n  { key: \"value\" }\n);\n\n// Using explicit auth credentials\nconst resultWithAuth = await lumic.lambda.invoke(\n  \"myLambdaFunction\",\n  { key: \"value\" },\n  'RequestResponse',\n  {\n    AWS_ACCESS_KEY_ID: 'your-access-key',\n    AWS_SECRET_ACCESS_KEY: 'your-secret-key',\n    AWS_REGION: 'us-west-2'\n  }\n);\n```\n\n## Zip File Utilities\n\nThe package includes a set of file management utilities to work with zip files, along with other general utility functions.\n\n### createZipFile\n\nThe `createZipFile` function compresses a directory into a zip file.\n\n### Input Parameters\n\n- `sourceDir` (string): The path of the directory to compress. It must start with `/tmp/` for security purposes.\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\nconst zipFilePath = await lumic.zip.create(\"/tmp/myDirectory\");\nconsole.log(`Zip file created at: ${zipFilePath}`);\n```\n\n### extractZipFile\n\nThe `extractZipFile` function extracts a zip archive into a specified directory.\n\n### Input Parameters\n\n- `zipPath` (string): The path to the zip file. It must start with `/tmp/`.\n- `destPath` (string): The directory where the zip content will be extracted. It must start with `/tmp/`.\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\nconst destPath = await lumic.zip.extract(\"/tmp/myZipFile.zip\", \"/tmp/extractedFolder\");\nconsole.log(`Files extracted to: ${destPath}`);\n```\n\n### addToZipFile\n\nThe `addToZipFile` function allows adding new files or directories to an existing zip file.\n\n### Input Parameters\n\n- `zipFilePath` (string): The path to the existing zip file (must start with `/tmp/`).\n- `itemPath` (string): The file or directory to add to the zip (must start with `/tmp/`).\n- `destPath` (string, optional): The destination folder inside the zip.\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\nconst updatedZip = await lumic.zip.addTo(\"/tmp/myZipFile.zip\", \"/tmp/newFile.txt\");\nconsole.log(`File added to zip: ${updatedZip}`);\n```\n\n## AWS S3 Utilities\n\nThe package includes comprehensive S3 management functions:\n\n### Core Functions\n- `create(bucketName, auth?)`: Creates a new S3 bucket\n- `destroy(bucketName, auth?)`: Deletes a bucket and all its contents\n- `generateBucketName(prefix?)`: Generates a valid S3 bucket name\n- `ls(options?)`: Lists buckets or objects in a bucket, sorted by most recent first. Options include:\n  - `bucket?`: Optional bucket name. If provided, lists objects in the bucket. If not provided, lists all buckets.\n  - `auth?`: Optional AWS credentials\n  - `limit?`: Maximum number of items to return (default: 10)\n\n### File Operations\n- `upload(bucketName, sourcePath, destinationPath?, auth?, isPublic?)`: Uploads files/directories with optional public access\n- `download(bucketName, s3Path?, localPath?, auth?)`: Downloads from S3\n- `readFile(bucket, key, auth?)`: Reads a single file as a stream\n- `saveTo(bucket, content, filename?, auth?, isPublic?)`: Saves content directly to S3 with optional public access\n- `deleteFile(s3FileUrl, auth?)`: Deletes a file using its S3 URL\n\n### Utility Functions\n- `generateBucketName(prefix?)`: Creates a valid bucket name with optional prefix\n- `checkBucketForFileNamePart(bucketName, fileNamePart, auth?)`: Searches for files in a bucket\n\n### Usage Examples\n\n#### Creating and Managing Buckets\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\n// Generate a unique bucket name with prefix\nconst bucketName = await lumic.s3.generateBucketName(\"myproject\");\n\n// Create the bucket\nawait lumic.s3.create(bucketName);\n\n// Clean up when done\nawait lumic.s3.destroy(bucketName);\n\n// List all buckets in the account (up to 10, most recent first)\nconst buckets = await lumic.s3.ls();\nconsole.log(buckets.objects); // Array of { key: string, createdAt: number }\n\n// List objects in a specific bucket with custom limit\nconst objects = await lumic.s3.ls({\n  bucket: \"my-bucket\",\n  limit: 5\n});\nconsole.log(objects.objects); // Array of { key: string, createdAt: number }\n```\n\n#### Uploading and Downloading Files\n```javascript\n// Upload a file (private by default)\nconst uploadResult = await lumic.s3.upload(\n  \"my-bucket\",\n  \"/tmp/myfile.txt\"\n);\n\n// Upload a publicly accessible file\nconst publicUploadResult = await lumic.s3.upload(\n  \"my-bucket\",\n  \"/tmp/myfile.txt\",\n  {\n    isPublic: true,\n  }\n);\n\n// Download files\nconst downloadResult = await lumic.s3.download(\n  \"my-bucket\",\n  \"uploads/\",\n  \"/tmp/downloads\"\n);\n\n// Stream a file\nconst fileStream = await lumic.s3.readFile(\n  \"my-bucket\",\n  \"uploads/myfile.txt\"\n);\n```\n\n#### Working with Content\n```javascript\n// Save JSON directly to S3 (private by default)\nconst jsonContent = { name: \"John\", age: 30 };\nconst saveResult = await lumic.s3.saveTo(\n  \"my-bucket\",\n  jsonContent,\n  \"data.json\"\n);\n\n// Save JSON as a publicly accessible file\nconst publicSaveResult = await lumic.s3.saveTo(\n  \"my-bucket\",\n  jsonContent,\n  \"public-data.json\",\n  null,  // using default AWS credentials\n  true   // make the file public\n);\n\n// Check if a file exists\nconst searchResult = await lumic.s3.checkBucketForFileNamePart(\n  \"my-bucket\",\n  \"data-2024\"\n);\n\n// Delete a file using its URL\nawait lumic.s3.deleteFile(\n  \"https://my-bucket.s3.region.amazonaws.com/uploads/myfile.txt\"\n);\n```\n\n## JSON Utilities\n\nThe package includes utility functions for working with JSON data, particularly for handling and fixing malformed JSON.\n\n### fixBrokenJson\n\nThe `fixBrokenJson` function is a robust JSON parser that attempts to repair and parse malformed JSON strings.\n\n### Input Parameters\n\n- `jsonStr` (string): The potentially malformed JSON string to fix and parse\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\n// Fix malformed JSON\nconst brokenJson = `{\n  name: \"John\",\n  age: 30,\n  hobbies: ['reading' \"writing\", coding],\n  address: {\n    street: '123 Main St,\n    city: \"Springfield\"\n  },\n}`;\n\nconst fixed = lumic.json.fix(brokenJson);\nconsole.log(fixed);\n```\n\n### parseResponse\n\nThe `parseResponse` function is a sophisticated JSON parser that attempts to extract and parse JSON content from various formats, including code blocks.\n\n### Input Parameters\n\n- `content` (string): The content string that may contain JSON\n- `responseFormat` ('text' | 'json'): The expected format of the response. Use 'json' to attempt JSON parsing.\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\n// Parse JSON from a string that might contain code blocks or extra text\nconst content = `\n\\`\\`\\`json\n{\n  \"name\": \"John\",\n  \"age\": 30\n}\n\\`\\`\\`\n`;\n\nconst parsed = await lumic.json.parse(content, 'json');\nconsole.log(parsed); // { name: \"John\", age: 30 }\n```\n\nThe function employs multiple parsing strategies:\n1. Direct JSON parsing\n2. Extracting JSON between first {} or []\n3. Removing leading/trailing text\n4. AI-assisted JSON fixing (using GPT-4)\n\n### isValidJson\n\nThe `isValidJson` function checks if a string contains valid JSON.\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\nconst validJson = '{\"name\": \"John\", \"age\": 30}';\nconst invalidJson = '{name: John, age: 30}';\n\nconsole.log(lumic.json.isValid(validJson));                         // true\nconsole.log(lumic.json.isValid(invalidJson));                       // false\n```\n\n## Google Sheets Utilities\n\nThe package provides utilities for working with Google Sheets through the `lumic.gs` namespace:\n\n### Functions\n\n- `addRow(config, values, startColumn?)`: Add a row of values to a Google Sheet\n- `addSheet(spreadsheetId, sheetTitle)`: Add a new sheet to an existing spreadsheet\n- `writeCell(config, cell, value)`: Write a value to a specific cell\n- `getCell(config, cell)`: Get the value from a specific cell\n- `convertA1ToRowCol(a1Notation)`: Convert A1 notation (e.g., 'A1') to row and column numbers\n- `writeArray(config, data, startCell?)`: Write a 2D array of data to a sheet\n\n### Usage Example\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\n// Configure the sheet\nconst config = {\n  spreadsheetId: \"your-spreadsheet-id\",\n  sheetName: \"Sheet1\"\n};\n\n// Add a row\nawait lumic.gs.addRow(config, [\"Value1\", \"Value2\", \"Value3\"]);\n\n// Write to a specific cell\nawait lumic.gs.writeCell(config, { row: 1, column: 1 }, \"Hello World\");\n\n// Write an array of data\nconst data = [\n  [\"Header1\", \"Header2\"],\n  [\"Value1\", \"Value2\"],\n  [\"Value3\", \"Value4\"]\n];\nawait lumic.gs.writeArray(config, data, \"A1\");\n```\n\n## Performance Timer\n\nThe `PerformanceTimer` utility helps track execution time and performance metrics across your application. It's accessible through `lumic.utils.Timer`.\n\n### Usage\n\n```javascript\nimport { lumic } from \"lumic-utility-functions\";\n\n// Get the global Timer instance\nconst timer = lumic.utils.Timer;\n\n// Timer starts automatically upon instantiation\ntimer.checkpoint(\"start-processing\"); // Record a checkpoint\n\n// Do some work...\nawait someAsyncOperation();\ntimer.checkpoint(\"after-async-operation\");\n\n// Get current elapsed time in seconds\nconsole.log(`Elapsed time: ${timer.getElapsedSeconds()} seconds`);\n\n// Do more work...\nawait anotherOperation();\ntimer.checkpoint(\"after-another-operation\");\n\n// Stop the timer when done\ntimer.stop();\n\n// Generate a performance report\nconst report = timer.generateReport();\nconsole.log(report);\n// Output:\n// {\n//   totalTime: 1234.56, // Total time in milliseconds\n//   phases: [\n//     { label: \"start-processing\", duration: 100.5 },\n//     { label: \"after-async-operation\", duration: 534.2 },\n//     { label: \"after-another-operation\", duration: 599.86 }\n//   ]\n// }\n```\n\nThe PerformanceTimer provides:\n- Automatic timing start upon instantiation\n- Checkpoint recording with custom labels\n- Total execution time tracking\n- Quick elapsed time in seconds via `getElapsedSeconds()`\n- Detailed performance report with phase-by-phase timing\n\nNote: Use the global Timer instance across your application to track the complete execution flow, rather than creating new instances.\n\n## TypeScript Support\n\nThis package includes TypeScript definitions. When using TypeScript, you'll get full type support and autocompletion for all functions and their parameters.\n\n```typescript\nimport { lumic } from \"lumic-utility-functions\";\n\n// TypeScript will provide type checking and autocompletion\nconst result = await lumic.llm.call(\n  \"Your prompt\",\n  \"json\",\n  { model: \"GPT-5-mini\" }\n);\n```\n\n## Author\n\nThe utility-functions project is a product of [Lumic.ai](https://lumic.ai).\n","readmeFilename":"README.md"}