{"_id":"xmllm","_rev":"48-7363dea1bc0dcaff42a8c16840209b3b","name":"xmllm","dist-tags":{"latest":"0.3.9"},"versions":{"0.0.1":{"name":"xmllm","version":"0.0.1","_id":"xmllm@0.0.1","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"b2912834ac981fa22ce938dec4098ff3bf17f954","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.1.tgz","fileCount":18,"integrity":"sha512-pnmmDj4iNm4VJ4tasOib9ZpJ0nttFDzlICY8+eYpgve1mBDVOH7ySk4FxQiq585C+FAc1sLDXpoGCbJ/0V0Cww==","signatures":[{"sig":"MEUCIG2ENBFCu0V8AjsllsNKFs2HdWPAqrJo02GkNfD678iPAiEAwKCwA1ZHIq//URRxblrwNuGAB/5/26q7S0+60GxAj/s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":80228},"main":"./src/xmllm.js","exports":{".":"./src/xmllm.js"},"gitHead":"bceeb9320f91477a0a4db564b8ed47483a83293d","scripts":{"test":"NODE_ENV=test jest"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"9.6.7","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"level":"^8.0.1","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.9","css-select":"^5.1.0","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"babel-jest":"^29.7.0","@babel/core":"^7.25.2","@babel/preset-env":"^7.25.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.1_1724207775437_0.4948919460327117","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"xmllm","version":"0.0.2","_id":"xmllm@0.0.2","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"fc2ed72b3429cadeb1c1315f5776216430e2f599","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.2.tgz","fileCount":18,"integrity":"sha512-TcjfhuTogBCNOhBS31QCOu+LFn2t3e/Glm87j6UcyanfVrsMH/6s7Xap2lq1fqYpxtnJRr0BcuL+5EMbftOabQ==","signatures":[{"sig":"MEQCIG3cl8cORXxjodYAN8uVusna1LM+2zUj0UkWul1RUx2PAiB74pmL6z+UTz4Qnk0Q11NJBD4IOc1wV/iWI8JDBxLfAg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77888},"main":"./src/xmllm.js","exports":{".":"./src/xmllm.js"},"gitHead":"0cefd73ef1c4d9652ba0e7877975d3b20cc74da7","scripts":{"test":"NODE_ENV=test jest"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"9.6.7","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.9","css-select":"^5.1.0","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"babel-jest":"^29.7.0","@babel/core":"^7.25.2","@babel/preset-env":"^7.25.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.2_1724385968425_0.15978153162058573","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"xmllm","version":"0.0.3","_id":"xmllm@0.0.3","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"68e852818be803f10c5fb3894cdd64a5d4cfb4a1","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.3.tgz","fileCount":41,"integrity":"sha512-Nrk/ymxY2FZ4J1/2X4PdgAXdta1pp9MQBsvZQ2zApry1xpfxCh957lrRPdQ53ftYN7CmXxpaf4SLjGY5/sOUDQ==","signatures":[{"sig":"MEUCIQCl+z6JASV9FDL4Cw6G1RChhNW2jhCkUQYri3d3JcRvfgIgOv+H1J1/VmtKJ0fimzD5osBfUqerm9bbxv9haVLoX8M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":445738},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"add20a7dc7301229162ff4deccc3fc317bcd5c55","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.3_1725816992227_0.28966015077934726","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"xmllm","version":"0.0.4","_id":"xmllm@0.0.4","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"10c3514ebaa7827d44f88c28f4fddc1a286641ad","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.4.tgz","fileCount":41,"integrity":"sha512-C8rGQDKVTiS29e1JNkzGDb7WgZM9g8sh062ldM9UND5IBW3WRBTQpwaubb7flafzHL4PMcRjnY9/+hOG1tRZAQ==","signatures":[{"sig":"MEYCIQCF8RJ0l/pVIw1F+b7xmLSofzAbI1RESHiYUgwRrQiwfwIhALMdWicZp3aqooY91QuwPTROgKT52ZaiVa18klYnhAU4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":454586},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"69d60d84ef5f17d4d19d7d4057cd6c06f3e81e7e","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.4_1725844918637_0.492986969243427","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"xmllm","version":"0.0.5","_id":"xmllm@0.0.5","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"e20672f12baa2ecfe1a0725baacb445999a9f6d8","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.5.tgz","fileCount":41,"integrity":"sha512-EzjNtjUu+Rjz5MH6BbAvU2UxYbyPRcNWfmPtJXIupAtUN4yuXr5CNjKsWZhhpfLPuaaB2Y6wfqgv10AKrQPVHA==","signatures":[{"sig":"MEYCIQD42guKM4XDub/qDNBAe59nXUJhAAE+/rW9RgHppBrRmgIhALBShziLoS8etpA3KifyomaFXTRa6Zc1l2inysbXocMM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":455217},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"a5072dba064396aa33b2efcbbdf44266d3bb6c12","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.5_1726014477130_0.4779407699029379","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"xmllm","version":"0.0.6","_id":"xmllm@0.0.6","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"15b184b3ec736154316c0f0a028d270610523fa0","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.6.tgz","fileCount":41,"integrity":"sha512-wI4CLHQTE1r4YbI5zHpOfAV4c4ziDaDQbB5fYXCk42wEGTDYMckyNFPl8RePx67Raa0DTkGhotewHCfRGXH/6g==","signatures":[{"sig":"MEUCIFS51d3g2WY+/FP4BGgQO+fvrkqAngq+N8LT/ZXsUAS/AiEA5DHPeRLxXZMwZF/VYnM/flN0FOC3BUz6FAx1HGbxiGI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":460572},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"fc97c48b951f19c0684f73a4a64ddfaff17c32b9","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.6_1727153199676_0.8366590553440036","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"xmllm","version":"0.0.7","_id":"xmllm@0.0.7","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"1afd8ef0772a24e1c8ff361fc43a8ecc13c19c3b","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.7.tgz","fileCount":42,"integrity":"sha512-pf58E1XdnSqNBhsuRRzQWt2aeHDUWPqgnV43WsJgXF3zWa4Lujk+Qgc9dJY3Y7P7lecfadguCeUyec3jwB4ifg==","signatures":[{"sig":"MEUCIHSCygrfuUG88+jZc7cNkrwAIoWkgYj3wfD/ldK5YKGtAiEAvCwI7PeFdIlsCTHHGQ16vEqgW5fZgebQPi8OIFOj1zQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":460794},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"1120374caeb1b21c58b21d8ecc80e0ecf39a1e65","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.7_1727214543956_0.051485695561025224","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"xmllm","version":"0.0.8","_id":"xmllm@0.0.8","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"32b8ee665db6730ae0d9fc78472c8579f3d6271f","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.8.tgz","fileCount":42,"integrity":"sha512-s3PMnyxPqzCTSDpAaNglDpMeb/+ZtKKcx+5n9+OsTkYVwc0aBZhjhhe8M56KIqd3B4To6usIg95+bEsYCsIyvg==","signatures":[{"sig":"MEUCIEqA6/TBkALFjc4yNaaQD4rgPx1mQt8yvujzHZXDlJC+AiEAwweevvm/2sZ9zBZNXMgtaKvI/+06qow78qxRk5e5pnk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":462277},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"cba3149d334f2caf7e98563811c2705815c4c730","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.8_1727215337457_0.5295085667992843","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"xmllm","version":"0.0.9","_id":"xmllm@0.0.9","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"84095f35b96ca88519aa6e3a220878dc86ddabf3","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.9.tgz","fileCount":43,"integrity":"sha512-HjvTvcrFsra/6u2c0wvWg8ovB+gk98xBl14EqVav5thY+svT0Vy//VcYZ08UKUIU3tj2zQavGM0VWimlc0BBKA==","signatures":[{"sig":"MEYCIQC44cqxFKHK5KrBEM78r1AuwKmVpBaNKy/Us7YS/zJ91QIhAI+kpZlTHe0UB41hID0L5GgJMCE7JTtTgG/JJTA9aYHW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":463061},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"c32996f89ae9d3bd43dc1a86502491774028ce44","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.9_1727292342191_0.1555254454471553","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"xmllm","version":"0.0.10","_id":"xmllm@0.0.10","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"0cb4b962114a20d89beab3512292ca2c17f37bf7","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.10.tgz","fileCount":46,"integrity":"sha512-vv0SAz8c06xEJVn1znVFXI7rmkngfbQzryq45gD4ydnHRb2V6Qlg0Y6V24l2ytDDwvHBEE/CliUNqUbNXZ175w==","signatures":[{"sig":"MEQCIDVsTWBR6OB+7j5qfdjV4+D26UqdzhzkgOCXFsFIy+5ZAiAWp8rSoON8aNpAkRmjPbI9wTkFilnV6otCRyLUcrJGyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":494060},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"a81accb8064b694631b505ebfcee7188da9854e8","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.10_1727804171478_0.6911769325869528","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"xmllm","version":"0.0.11","_id":"xmllm@0.0.11","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"216155fad092309459ab01d0af9ada19bc42a348","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.11.tgz","fileCount":46,"integrity":"sha512-3xDNXHGNSnyABeZkMS2fpVzfexizGdhBGxLL/hLPemAzN2PH5fd5h94uhq6NKKt9qAzRBPqwHrtQ3+s6n8BB6A==","signatures":[{"sig":"MEYCIQD7Zom7Z9LJUj9u7FCVMw4f6fAmM93yKtJdAcIcWbO5YQIhAL7c55AjR56cHmvjzkVHpSe8xuvX1/dRjceGwGl49z8V","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":494139},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"0a41cacc1b9eb6ebb73d84c89d8cbd584e299835","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.11_1727986825724_0.06565898757625233","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"xmllm","version":"0.0.12","_id":"xmllm@0.0.12","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"29f1129088755448ba05a5cec1db742b5880fc56","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.12.tgz","fileCount":46,"integrity":"sha512-We5ox/neVobq3sSQV/70Syum3dIEy8vfSDBmZqFktTALc2Nef4EPOHf8NtSIxqHbvhbmw2kqYCCvHofnrI9d+g==","signatures":[{"sig":"MEQCIG8tSbuxRCGvrVJXGWd6eS0saq4U8nkQbNQgnFU2jY8pAiBBKsZX1wfsXwvrafHLnZqjZvpASIgJvjVfp+8q9okmMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":497261},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"21bf5e9f967751feb417a6911eb7a2a8b228e57b","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.11","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.12_1727996171413_0.9218544746066799","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"xmllm","version":"0.0.13","_id":"xmllm@0.0.13","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"76cee2a2d12d94d25c61190b2d3f9f1e2ea06750","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.13.tgz","fileCount":46,"integrity":"sha512-KRkRNrnU3Ii8BknnDbfda2FnEUStGlMV4a7U+hFJxmLyRRryWBeKwsWOekjhil9Gb/Wfnc/twKy8ihNlMa7FtQ==","signatures":[{"sig":"MEYCIQD0/TUrSReYL1Rb/GRg8EowqCxhbOuw1Skif5M0RjThNAIhAIjIc5lISgp7WrQpIiJB+4c8jzxdOyK1SnpJeOOWiN/q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":496537},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"d269d80ee040d145852997f443f22d83b5623100","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.14","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.13_1728290978479_0.6902963486906843","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"xmllm","version":"0.0.14","_id":"xmllm@0.0.14","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"a2caea4835670429e9f23fde451bc1ec35d4e97f","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.14.tgz","fileCount":46,"integrity":"sha512-YlZPnJi8X8HVFuhEqsRnjvhIR5CM84tnwJ/cUgmQXobhvP+DlOWoU0y25GHCbNKOdcpLT3j6+o4+UzTCWr5BEw==","signatures":[{"sig":"MEQCIBSafo6wEqBaRZA31JEmOpTL/4wx3abTnd5nr750/iGNAiBsykHxI9U6nm9nlystJPHXNQkKkKVk6iS8Kvx02EWGig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":543758},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"a3c5330a4dfe8df442a353164ccf74e30d381fee","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.14","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.14_1729120822609_0.7380706223756242","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"xmllm","version":"0.0.15","_id":"xmllm@0.0.15","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"666f4a2bf1d3c1468cf82f894ba4a4d0d0361d61","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.15.tgz","fileCount":46,"integrity":"sha512-KOycQ5xi26HJS3ECqaM87uUtU2Y2vI3+7riUz3V9oVElktjFw229iypjnlTzLFTiw1duCYRCageNBf1qzQUgdw==","signatures":[{"sig":"MEQCICrMgJZDA6EDiNcrVCVoZS133JtkBecdQD7FFlyW7bMKAiAjRiaFUOwPrXzgCBkl/eitv6Efz7SWYzt0BxVjDUvBuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":619561},"jest":{"testRegex":"tests/.*\\.mjs$","transform":{"^.+\\.m?js$":"babel-jest"},"moduleFileExtensions":["js","mjs"],"transformIgnorePatterns":["node_modules/(?!(streamops|other-esm-modules)/)"]},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"e100b0f72b47dc2452b32057e2314707fb553b9d","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","proxy-server":"node ./src/xmllm-run-proxy.mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating LLM-driven pipelines.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.14","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.15_1730756642586_0.24378366878778124","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"xmllm","version":"0.0.17","_id":"xmllm@0.0.17","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"ab0d64ea916d7a30cda46592082b17c77a07948c","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.17.tgz","fileCount":64,"integrity":"sha512-LAwNq3ghfGYj+xD+BN6pegkP/iIzcfxlAsXV5214jV+8ppTwb3w5VhzaEJThBcdAUih1z443J4Agrtt2SpxhoQ==","signatures":[{"sig":"MEQCIBtQY2/KPiRbbX2Ep/z+54NZIswc6xHCwu/jwOFIC68dAiAqzfM4GLMuNc3fWa8F5Ba5TfFIKzzhjicrk2pP4E4eaA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":778621},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"cb00f55ed5874dcbed1fac62621d165b83bedec1","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","ui-test":"node ui_test/serve.mjs","onlytest":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a tool for creating structured AI workflows using pipelines and generators. It supports both server-side and client-side usage, with a focus on reliability and structured responses.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.14","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","concurrently":"^8.2.0","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.17_1731388662908_0.09911653402184806","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"xmllm","version":"0.0.18","_id":"xmllm@0.0.18","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"49d869a1ad92691b8c61201531852c415ad6b2dd","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.18.tgz","fileCount":64,"integrity":"sha512-0dr79X1/xlXcZxCckG79UqV+YqvehkZdokUZXxwhLzVKdv6fuw/qtHxwod+svYRD5ZCReDqLAvi1RUzzfPnBJA==","signatures":[{"sig":"MEUCIGBtdXFBNakD0HlhdV9wqqLpdr/jY4S349erUt3xwZAWAiEAuY22JnXSON0H2VNy/hmxgio3Bsw1mWo9K1/5Z5IQiEI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":814768},"main":"./dist/cjs/xmllm-main.js","types":"./index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"384655bd6b078635d1566a83128b3c1a9f5c8fb4","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm lets AI language models communicate naturally while giving you structured data back. Instead of forcing rigid function calls, xmllm lets AIs respond in XML - a format that's both semantic and structured.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.14","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","concurrently":"^8.2.0","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.18_1731651349855_0.874964294923793","host":"s3://npm-registry-packages"}},"0.0.19":{"name":"xmllm","version":"0.0.19","_id":"xmllm@0.0.19","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"dist":{"shasum":"aef8df39fef5e700b2b3847512b82d83f3de41b3","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.0.19.tgz","fileCount":63,"integrity":"sha512-QCD23zFtMIjx9zsG39WO512Af7dYKMEIbDUMa/TOjlZJda4OW4ML4p13iwNmfzm0kKBorK3X9e0Rg1DehVL46Q==","signatures":[{"sig":"MEYCIQD8DEg9JHVdzMkoFjuxRcWBPRNwi8rjf79fuAnKwWFOFQIhAKZ3RFXUAQPKLkszZOqoNq/HHrtc/D3eX3+nWrPfhjFy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":826287},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"a7947f4b4602f8e1ca46759fd7fcd9f02b73e705","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm lets AI language models communicate naturally while giving you structured data back. Instead of forcing rigid function calls, xmllm lets AIs respond in XML - a format that's both semantic and structured.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"url":"^0.11.4","cors":"^2.8.5","jest":"^29.7.0","util":"^0.12.5","buffer":"^6.0.3","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.14","css-select":"^5.1.0","htmlparser2":"^9.1.0","stream-http":"^3.2.0","vm-browserify":"^1.1.2","path-browserify":"^1.0.1","querystring-es3":"^0.2.1","crypto-browserify":"^3.12.0","stream-browserify":"^3.0.0","eventsource-parser":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.0.19_1731755675462_0.4595739820547604","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"xmllm","version":"0.1.0","_id":"xmllm@0.1.0","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"a654014910ee5c47e150ad3dbbe0bbba869dba65","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.0.tgz","fileCount":74,"integrity":"sha512-VpPiQCqVa7QNWdyFAJH47p8ZiNa66zINmYeL39H1IN4mxErBIuxf8ApT464fpAGt/qd3Gf6EHnkGoHN+5L/Qdg==","signatures":[{"sig":"MEQCIGqSw8ee5Dez5f2+wetAjHfiC0Zbq6hUa3sjlrGzd7wlAiANgba47OGv4Ok9S7w9Fr9OHjzU3PMRe6jAvPSszYAukw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1027076},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"26b0d6a39491fe2b7cabf81a355a018e2761ab6e","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes:","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.0_1733114284144_0.3627499709242472","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"xmllm","version":"0.1.1","_id":"xmllm@0.1.1","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"5009b38dd51fcf00d8a7db799ba5f8ed99d120d3","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.1.tgz","fileCount":74,"integrity":"sha512-7nG+jlqs6XTshhQTeFgFDG0aHqjXrTSB4RYYx7r/GJrJ/9z6Cgx8Mowiosf6jZPh7qMHFRTtZW/gdv0Q87q30A==","signatures":[{"sig":"MEQCICeA3CNUE4XU/je2kjue1s6VQyGe4Mk27GSgMi3ZcVD7AiBIKCZQdpYvj75WT1F5SJD0A3AU5rrk4kTHEZliv9TPjA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1027221},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"dc7567a777bc2fd430cc929591f551c548c631c4","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.1_1733132002876_0.27649381419489916","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"xmllm","version":"0.1.3","_id":"xmllm@0.1.3","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"3acd465d8e0d64af0fcfb1ed84bb631e296dc51c","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.3.tgz","fileCount":92,"integrity":"sha512-xmBeKceVoeNIpAbSkWCFMeFm6NqK/k28DBizObiNzsg1I2reYQP+gE7q5D6bNwvRtalwietb7hiQEb50Ao0RIA==","signatures":[{"sig":"MEUCIF8o7S4d35SlzaRAOD5sg8US4jOzLq8fPOIt7L95kWKLAiEAv8m4XFuzrrC0WEa3lKnl0mjilaGiE202cwIJgkhCl1Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1254392},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"72ef6c64266951bd543c85cb6155359775906cd6","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-limit":"^6.1.0","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.3_1733464640883_0.08664762867533682","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"xmllm","version":"0.1.4","_id":"xmllm@0.1.4","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"27fd10c6f4d2a58616ed22950fe26e18a1d99bba","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.4.tgz","fileCount":94,"integrity":"sha512-71ImbbF0lRnphxVGzcv0Thl3ptFfGqqB0T798ffZm6C0HXp2bV/Ohxb4Ii2y8epbhrk3B9kyYbscojjJYDe/MA==","signatures":[{"sig":"MEQCIH2KqJqLF9Ni900iLM9zaU+Gh00xiXbRfc3iFk+EPXfQAiBfeSnPQ8vcMoB9EGMoxZYiTFUhf/KYvXroxhgI1NlEbw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1274580},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"c3890c2bd4da83f3126b8dce58be523b119bbfa6","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-limit":"^6.1.0","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.4_1733578435028_0.7730974242200834","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"xmllm","version":"0.1.5","_id":"xmllm@0.1.5","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"fe7beb29ad2bd8847d3dd3c37068c3e5e2f9e7a4","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.5.tgz","fileCount":95,"integrity":"sha512-1LXrdudlqzoCEtGKUh88Dt/1oeDzY/mNKkPHy7NQfgKc8MMIvzlo0sUQ9HSMxEePwA2SJ+mFB5NWcvX37sNeXg==","signatures":[{"sig":"MEUCIDWfCKXo30aFahbARyYpXajzoEyfmf6hwebSnL8pazbfAiEAhba1JuLFSnFUdqvhVNA6GjXuxhYOBtwIWAKHa3nz8Tc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1276863},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"c3890c2bd4da83f3126b8dce58be523b119bbfa6","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.5_1733579717527_0.7625442423552655","host":"s3://npm-registry-packages"}},"0.1.51":{"name":"xmllm","version":"0.1.51","_id":"xmllm@0.1.51","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"9d5890b52de9dd1bbb5bb486da985b238fc32fca","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.51.tgz","fileCount":95,"integrity":"sha512-1sSMfkU6QyUipRVGuigvPT57fnm67bcNb8icKUQXh8wn+nn16P91zW0TQJlpZO/wqJUjN0UJh87eVZ/cl03B4g==","signatures":[{"sig":"MEUCIQD3/Oznyjv8BP4VbIpv23dl0fNhDYHXbcYkQqUIPUHhxgIgRTnhkn12qLTKXpOFgnJxLhP/XTO+MSbq33x84oJRwXw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1277088},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"c3890c2bd4da83f3126b8dce58be523b119bbfa6","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.51_1733581618815_0.9837206876119875","host":"s3://npm-registry-packages"}},"0.1.52":{"name":"xmllm","version":"0.1.52","_id":"xmllm@0.1.52","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"2f73f707ce6f9a1c31140fe76952217be7a49477","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.52.tgz","fileCount":95,"integrity":"sha512-hCMgMRaRk1dBstcaP9W6VUP9B2KMXWgq3QsBgFj/XU1RieFPAB4AizsRmKUXYWvhVVrnhBqTiGfG5/pMEla4NQ==","signatures":[{"sig":"MEQCIDe34Qh9HcaMf9zoi9D+IkAmOE1u10kRxtf9KHQmXgpeAiAkISDI6ru5XiRxPEzM4rT47e4A6TwC+vbrTvS0IUSy4g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1278436},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"8b6b3676b459a236a0ce726f8cde2c740a5634cb","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.52_1733668606743_0.01253338824127792","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"xmllm","version":"0.1.6","_id":"xmllm@0.1.6","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"d394469535f09ae0e9b85eae15b53ae6bc60856b","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.6.tgz","fileCount":100,"integrity":"sha512-bDr1Ng9vZO/jcjRQUE/c/XwXooGhJyVRR+2AUvS2g9orkWmurr3vKjlEymkeJcJFO40VSAEkdz87nE7ntCBlJA==","signatures":[{"sig":"MEUCIQDVOlpUgkCnr83kAG8kXJmbTnIblpW8pWVS+axt1L6zOwIgSquimo7yQHUVmaRmCCBc2VZsAjgtLgvGnxxVdVXDvn4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1324523},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"f14887bbff4c5fd0253ae885c8ae50c8a67c39b9","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.6_1733915397620_0.7575510534680305","host":"s3://npm-registry-packages-npm-production"}},"0.1.61":{"name":"xmllm","version":"0.1.61","_id":"xmllm@0.1.61","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"28348355144eeb40e98959805035b636220e65b7","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.61.tgz","fileCount":100,"integrity":"sha512-mwXX8a7F4RG7XtFNr0GPzEw0FPkxZcPn8mhdgarfh1EdkDmVmL8IM0WPnB6c3j1mXk6Tlxn+RAWBCLptQBD/IA==","signatures":[{"sig":"MEYCIQC71FlmAA/hOIZkrBnCXQechnWmJQxuT7RfpYLCsSWDvAIhANaVZum2H+07gSCDqEW9nwesQqbSpRW42HwGr0/IKaLB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1324016},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"0642d93bd8ed7abbc5119337a1ef9ca0c33156af","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","express":"^4.19.2","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.61_1733977782244_0.1316523622879584","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"xmllm","version":"0.1.7","_id":"xmllm@0.1.7","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"e0ed171cf8439646c1e6a186282dad13f4c9c268","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.7.tgz","fileCount":100,"integrity":"sha512-rrDxrkH5Y9LB+dA07ybNb3AJZBpgdyCDSSi4ydlLPMLKE7o4HQ8pzDrq03nqGNmNRzi+qZNeKUFFnymu+lb9lA==","signatures":[{"sig":"MEQCICGDEgWEsaYArQULTuUZd/LWW7ot1/4wr+TBsLXLKAAWAiAS9RM2xqS4swoGK0T9Iqb37BB1VQV4wjbXSwKUmFfVmQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1340858},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"1214caf8e5da8a482bae7ee0be25344adda51af2","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.7_1733987232031_0.7672866258528306","host":"s3://npm-registry-packages-npm-production"}},"0.1.71":{"name":"xmllm","version":"0.1.71","_id":"xmllm@0.1.71","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"a943aa1e4cf302b666d38aa61a3da12f1ce6e0e2","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.71.tgz","fileCount":100,"integrity":"sha512-38N7m7PhBuPTc8XQiAAUIUDrFEuMX5MraaP/Lsf1JYsdv0ksDTex0cYhiAabzg/xCvW4elhFmVy3WyMiAwpQ5w==","signatures":[{"sig":"MEUCIGCNZpUKRwMRhz03MGyMkZC1jN3z9PO0BFU/lcrXgwpKAiEA8oeu1dsmMGs0s3bw0N3S4LjLtXvjnwh0YcfyZ+e0w48=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1346628},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"727aad6bdfac67d86d73f990cb6768de63da3c99","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.71_1733994971856_0.02550088099564829","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"xmllm","version":"0.1.8","_id":"xmllm@0.1.8","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"c2fff9e02f1548558c1c018532b7b524c4bc1523","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.8.tgz","fileCount":100,"integrity":"sha512-7fbgkcjc+MRO3UGY32d4ve5zXuZ+kkiP8DW6YzHwDxOPwqD2RCo95MxwcY4JxGrg9VQ8K4i7cyIO0zmSvTCYyw==","signatures":[{"sig":"MEUCICR5mvkgguqw4JDA38E171TfJBVskpMQyX/yml36UcW9AiEA1PoZq4/NA1/R43dED28gH9Tctw6WzRnvdRJwMzDgFXs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1344659},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"caf832ee649c0027ad102881154fc4f79df5e2b5","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.8_1734081706517_0.7439262889867457","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"xmllm","version":"0.1.9","_id":"xmllm@0.1.9","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"7b239f529477bb35e4a9ec854441978095ca4e80","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.9.tgz","fileCount":100,"integrity":"sha512-9AfFcxx3KCZ7gge50l03ejOnzvVpBydkVGjdVLWxIOpcljcDfBfmwukmjwKApg36D/vUeMUosTAbaoarWSC42A==","signatures":[{"sig":"MEUCIAahPIa84GoUKK0tjz+lEsj+dF+HMpFDmckL/HCI1MECAiEA/cqtoEDnfpXfI8asR857lBkyBXmZBearBkkOSOmSQvM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1358853},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"c92afb56e4bf8477db69b19166b1e572b3db81a3","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.9_1734185345687_0.36655076672865095","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"xmllm","version":"0.1.10","_id":"xmllm@0.1.10","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"ce7b1545a685cec84c3e6e9e8d996274e5980202","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.1.10.tgz","fileCount":100,"integrity":"sha512-gufulV0DX+EPwxoIM5GWpXDKSHabW71dprQFtUXBeYuNA+tnH42xlhGmskqFmWd6RwBxAwanWqEBCdBJ4v6Ovw==","signatures":[{"sig":"MEYCIQDOQLtHdgQ+40Cbf6AX6BlYQQ6Fvakw6zF6UukID3Wv+wIhAON7sT/UXnBxII41YNhr/yY/1p91psA10NbbW8cQ4wsU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1360425},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/xmllm-proxy.mjs","require":"./dist/cjs/xmllm-proxy.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"b2b80b7ac3768aced09492c01446c70a46e1869f","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs --out-file-extension .js","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm --out-file-extension .mjs","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.1.10_1734451293525_0.05989086138697508","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"xmllm","version":"0.2.0","_id":"xmllm@0.2.0","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"92c7fa1f655a0bb1cd669a58826d14531def6562","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.2.0.tgz","fileCount":168,"integrity":"sha512-TSGidCsBTsDT6AbbRfEDDU9qb5Pcd/zjoOZ0JBrIc+sRipMrTtaEn6KUPVoS5wY5wxHWOGZtSeHK3/yWr4hfXw==","signatures":[{"sig":"MEQCIFtG5jPX+RdWUJuzst55IIPldW2C+0dPx6jmgAh6KCLhAiBIkT+qvThoJ13lbtNMUkSAnzQPmBD8M5Vgy3+SwPLE4w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2413530},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"869bc505f5850b4467fd3c0115256a337e3322b5","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.2.0_1735912199762_0.5777721459855021","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"xmllm","version":"0.2.1","_id":"xmllm@0.2.1","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"3f02f60a8b50840fc352ed6aa71d44cd234664f2","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.2.1.tgz","fileCount":168,"integrity":"sha512-kGNOnLs37/SdYFHZCsZKZdDMMOSXM28k65z5XPDoj3DfA3xXJB2z4EjaUALfheh/Gr9f5/c67RKrSKYsaP5DJQ==","signatures":[{"sig":"MEUCIHcBdfdEvl1FBp0BoIa0cOJ+3Z4B+QA1rbJ7RNRrWBbgAiEAuKITzHtvgya43E4+AetqYfXhJ4GCV79sX4PI9nmK2yc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2434256},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"38bb2053ddd80b95cfcfe5d463a09ded11e00759","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.2.1_1736148283228_0.0167582336342742","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"xmllm","version":"0.2.2","_id":"xmllm@0.2.2","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"401ce5b98048845dc2a47516f01d801b11a43666","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.2.2.tgz","fileCount":168,"integrity":"sha512-oCOa2/D+Iw0uavzHoxITgzoV71LEkgUhuS7x9ZgkwuC8GzoQE2Q/pkj/Agc/nNwqC7deOxWOs9RnuHSP/5zTiw==","signatures":[{"sig":"MEUCIQCiHOdGZNfEjJC1R2EGhhCV//6vIAUyVpxOgrCzdcaSWwIgGr/kyo6l1i3G3yiGSq/cMV/epGirGCLwTgmlqMtMES0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2434566},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"7e0aceb7273c0e2ade0b0fef7e821ad06fbe4bb2","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.2.2_1736151028484_0.19611385424540906","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"xmllm","version":"0.2.3","_id":"xmllm@0.2.3","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"f61a1501375404646c0ae5497c40dbf6e2927a10","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.2.3.tgz","fileCount":168,"integrity":"sha512-VPgAB7hdud/wzcvSGInOnhzPTJR3YrCet9bUTQrn5SpfFSlOlq12ZA8IZBv0ZPFvJ2tXIiBKmHJzoz+EnxfDaw==","signatures":[{"sig":"MEQCIDLpUXlrzoKJYAk3bthyjEzAHN+/8KFIkJpdl5mU2BG7AiAptCMVeMrpStl7mzNwGWx6yg+1+KnXHK4AQpCJTLMXdg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2460653},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"90e457f4fe9c6cb9e6eb50ab341b48cd6c388b40","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.2.3_1736440495456_0.6656003683028722","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"xmllm","version":"0.2.5","_id":"xmllm@0.2.5","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"8b653924f8eb8eff136b7428096f1fc95d7d3ed3","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.2.5.tgz","fileCount":169,"integrity":"sha512-vrH8eN+a89KCuyFOJ5j36merFsOZQ323sCGKSBC9IQ+fhuE6n8t3Tro1NxiF0pGEnhCrQyS5Pk8Gyz91WbzCKw==","signatures":[{"sig":"MEYCIQD1NiqZd+aJjm3yTNDJxLCWnTfvv1lAtVVIRYnsvDvTCAIhAIKlhSR6EHOe1D+4xqt3lYujw5bOM/+RDyV0Q8XdG5RG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2477214},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"a4f6c2c4c6eaf37988614b600a7bc72556efa6b2","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.2.5_1736659232826_0.6417641679051802","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"xmllm","version":"0.2.6","_id":"xmllm@0.2.6","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"ae176780afe2ed06e6a6082fbac19c5a5ce82a19","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.2.6.tgz","fileCount":169,"integrity":"sha512-53U1EJqIXbHA2O+LTBGRUmlWrDbByByx6B5C6CdhGHtFojC48MIQVicpzgUvwKfI0dBPaGmMOiqPdUQwy57nFw==","signatures":[{"sig":"MEQCIAvOkotI391Nr/eBDmGKh5qaiq1osdPjmOCxEQZRBc43AiAIpJjd0CIktISnaJ20L15EaKyk7GHh2o61lLMeWqJVXQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2502178},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","exports":{".":{"types":"./index.d.ts","import":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","import":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"}},"gitHead":"2ede733a912d008dbd4f713d51267843795027dc","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.2.6_1737308692007_0.019511838927819714","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"xmllm","version":"0.3.0","_id":"xmllm@0.3.0","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"2671c29e843d68a92d16b261054f5ba5f183bf91","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.0.tgz","fileCount":181,"integrity":"sha512-/ElTAKMbhtHX4aAkEFIEZiAxPKh4HVYctRfk16tu3vS3iC+vCUIN/Ne6Bli6G1hDK4q5yVkyhWvalwWezXh3kA==","signatures":[{"sig":"MEYCIQCRPDoHeWu/LdC37K2J3GW+53dmydoTwPIZL/GI8blZFAIhAPlsr4Wy03LwF5CZkIOwmThhLjYClosou4ZA8849Z2dQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2544593},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"cbc036c930d5e709a6601d52393e2ba0a6994a32","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.0_1737795583455_0.2828071030736299","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"xmllm","version":"0.3.1","_id":"xmllm@0.3.1","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"38351ce73912c689f4cc52f1c9cc487dd10e4592","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.1.tgz","fileCount":181,"integrity":"sha512-gwc5gW514notpukk7XUN5XUoBnxSyzykV53ITLj17ogvUbpGG3M2RwlDaJTWO/m0DV/IVJVg1QHxp8xK1N9pHA==","signatures":[{"sig":"MEUCIQDPBE4vkFnQ3k4sSF5DmmFXrwBper9sl/Y1hI2z6P3IKAIgIBbDm0z9rOYLhgvVuARbau+kfDs34nV6GGbiug6igE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2544543},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"b97fdb7d7c557551ea8d76f5ef94ce211d2a6c20","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.1_1738456596968_0.7008156469955478","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"xmllm","version":"0.3.2","_id":"xmllm@0.3.2","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"572413ea1e1e0c4def791070ec60718a4ccbebc1","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.2.tgz","fileCount":181,"integrity":"sha512-lMFe32/BVUHkjQbHcHsrO8AsUeJRwcaqRP0Wo7z2g0STSPumhYPh1LhMOq8sRgIgBzA+DnDpwDkc2RfbNNdt9w==","signatures":[{"sig":"MEUCIQDL3lScva4Xd4KwYE/vEzcLRFvragooaHaI08+TH2/NGgIgMdNCXE/ZfX0F1I8poE8F2k1ziJStM70yRbXBSh4Bg8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2548095},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"4412db02dfa1070e54c4b1d59c1c115bb6395896","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.2_1738474101316_0.10485658168864509","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"xmllm","version":"0.3.3","_id":"xmllm@0.3.3","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"72920a738b91cd977228e3d44c6d725584d5de61","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.3.tgz","fileCount":184,"integrity":"sha512-udxuWJ5SUr7bd0elgTHCCSkuavXjmtb5YK7DwZQvjc2eJLwngT35FG/lFJicm7eVcChC01whzE4rviHzDVYHeA==","signatures":[{"sig":"MEUCIEsEkOf+sHAjswB81Ngt9i+6lEsUP57iPZJrmI+vZNhzAiEA0cAWXqLanGHiPXR+ut6kBHyYgDJNpr0RT5BJEeoYi7E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2580393},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"03e83024e17b58ba1daa09ba1ac500f4aeb27856","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.3_1738543378134_0.3936776373868982","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"xmllm","version":"0.3.4","_id":"xmllm@0.3.4","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"1fea058ff708dfc242fe53d47914c0501d5b9288","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.4.tgz","fileCount":184,"integrity":"sha512-p9jlwVWrmTsI95JSYCM1xdSOT3IOknOA7o1G2xfJPFK/QrdQ7j8jezwT7KV+zTW35oPtZ8W7suNq6Ju1dsC84Q==","signatures":[{"sig":"MEUCIQC6bpw8A0TDmv3dmVYoqEBXFfEsuAgTy3xMjqesCEQkBAIgVakoEERpiC2tWfAC9h+YvfvC6DUHW6zIukDssB7Iu10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2594104},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"36e393679bc238fa9f38b523d75096f6658d6199","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.4_1740475110375_0.07784986990659148","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"xmllm","version":"0.3.5","_id":"xmllm@0.3.5","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"c7aa350001181f0ff1705200987492f2d6762998","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.5.tgz","fileCount":184,"integrity":"sha512-kJddapdxCm73YJOZ3o1C2kP0a6aBltbVnC88Vm8z7Lq/S7YAuwfM3/huEhD7EVz8pl1J3S8l4dhreiOplPyCQg==","signatures":[{"sig":"MEUCIB53gIOmRpRL5m/dFdEyI35Zuuks93ndSdGGu256WsiVAiEAolTO78uRxlEXFARSVxft5a+Js3jahwV3VZC0oflMUcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2591541},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"64616e4697a7625f83f47c657bcc7c4696f3cdee","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.5_1740730981497_0.3221797068385177","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"xmllm","version":"0.3.6","_id":"xmllm@0.3.6","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"ef7a089e511b211b7ef5ff33471d89bdee025b0b","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.6.tgz","fileCount":184,"integrity":"sha512-9ZF5o18cwi4oKx+f2H0QjaM90ZeNIzgIz2ys86HwaG22HumsvMlgYnmchYHzDhZpYK/m7S18fZyro2NV3DBahQ==","signatures":[{"sig":"MEUCIQCNYwH7kqLICqGmJghy+Qwt3wY5XyRCNs0R1ocelyzmIAIgfcFcwhH2b0t0PljCvZ5+SvZWEMx1lyrXyRy2JeQNnC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2623729},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"c18ff8f339593ed7c9664c00119f980734c65be4","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.6_1746497483280_0.4666309295643185","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"xmllm","version":"0.3.7","_id":"xmllm@0.3.7","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"643678a4a692df1b8c4c32e3c9e553f4224941b0","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.7.tgz","fileCount":184,"integrity":"sha512-r9YXlmA/KBPTYsScLlsC8J2lvAN5FbeiNPE3uaKh4vFcpQmPjZa6Y3UDAbpV8cbifMQDi3hO9oOKR8LkIkBLpw==","signatures":[{"sig":"MEUCIGROnz41JkUbgAkdKjOMBfNI63bB2HWVbqLM/dTJLRDUAiEAx6d7i3431UMJG4kGT2GYiDXhwOygYj/eqsuOnHIpzrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2623470},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"516b6b69c0c05798d05a93cd97af6b8019013941","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.8.2","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.7_1747818218093_0.26157001078134234","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"xmllm","version":"0.3.8","_id":"xmllm@0.3.8","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"dist":{"shasum":"0a6b228c0775a6f512eae82a659487f47887227e","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.8.tgz","fileCount":187,"integrity":"sha512-KOLAt9HhMsYQse9V9IxFgrpYgs7Sd0Y+j48nZBnIWrgk9uUr5noKQpcgCR2Gp+QaaXh+GzjPd3TZZfvJ8TqkwQ==","signatures":[{"sig":"MEQCIDlelwwPbhPe1YbV/l0xyJKeO1JajBWKxJ6Jw68w8w+sAiBd0ignuqg6kUfegRl22ebKYdVO0+ToNOHYkFgF13lVgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2637055},"main":"./dist/cjs/xmllm-main.js","types":"index.d.ts","module":"./dist/esm/xmllm-main.mjs","browser":{"path":false,"fs/promises":false,"./src/fs.mjs":"./src/fs-shim.mjs","./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./fs":{"node":"./src/fs-node.mjs","types":"./fs.d.ts","browser":"./src/fs-shim.mjs","default":"./src/fs-node.mjs"},"./proxy":{"types":"./proxy.d.ts","import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./mainCache":{"types":"./mainCache.d.ts","browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"}},"gitHead":"2bae8b7bffe002a88ce7359d6eef312a0d47bb3a","scripts":{"test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"npm run build:cjs && npm run build:esm","proxy":"node src/xmllm-run-proxy.mjs","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot","test:types":"tsd"},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"_npmVersion":"10.9.7","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"cors":"^2.8.5","dotenv":"^16.4.5","p-queue":"^8.0.1","lru-cache":"^11.0.0","streamops":"^0.1.20","css-select":"^5.1.0","@types/node":"^22.10.1","htmlparser2":"^9.1.0","eventsource-parser":"^2.0.1"},"typesVersions":{"*":{"client":["./client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.2","jest":"^29.7.0","webpack":"^5.94.0","cross-env":"^7.0.3","supertest":"^7.0.0","@babel/cli":"^7.25.6","babel-jest":"^29.7.0","typescript":"^5.6.3","@babel/core":"^7.25.2","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.25.4","jest-environment-jsdom":"^29.7.0","babel-plugin-add-import-extension":"^1.6.0","@babel/plugin-syntax-dynamic-import":"^7.8.3","babel-plugin-transform-import-extension":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/xmllm_0.3.8_1782350360173_0.10051734382939737","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"xmllm","version":"0.3.9","main":"./dist/cjs/xmllm-main.js","module":"./dist/esm/xmllm-main.mjs","types":"index.d.ts","typesVersions":{"*":{"client":["./client.d.ts"]}},"scripts":{"build":"npm run build:cjs && npm run build:esm","prepublishOnly":"npm run build","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir dist/cjs","build:esm":"cross-env BABEL_ENV=esm babel src --out-dir dist/esm","test":"npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js","test:types":"tsd","proxy":"node src/xmllm-run-proxy.mjs","proxy:cot":"node src/xmllm-run-proxy.mjs --type=cot"},"exports":{".":{"types":"./index.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-main.mjs","require":"./dist/cjs/xmllm-main.js"},"./client":{"types":"./client.d.ts","browser":"./src/xmllm-client.mjs","default":"./src/xmllm-client.mjs","require":"./dist/cjs/xmllm-client.js"},"./fs":{"types":"./fs.d.ts","browser":"./src/fs-shim.mjs","node":"./src/fs-node.mjs","default":"./src/fs-node.mjs"},"./mainCache":{"types":"./mainCache.d.ts","browser":"./src/mainCache.browser.mjs","default":"./src/mainCache.mjs"},"./proxy":{"types":"./proxy.d.ts","import":"./src/proxies/default.mjs","require":"./dist/cjs/proxies/default.js"},"./package.json":"./package.json"},"dependencies":{"@types/node":"^22.10.1","cors":"^2.8.5","css-select":"^5.1.0","dotenv":"^16.4.5","eventsource-parser":"^2.0.1","htmlparser2":"^9.1.0","lru-cache":"^11.0.0","p-queue":"^8.0.1","streamops":"^0.1.20"},"devDependencies":{"@babel/cli":"^7.25.6","@babel/core":"^7.25.2","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/preset-env":"^7.25.4","babel-jest":"^29.7.0","babel-loader":"^9.1.3","babel-plugin-add-import-extension":"^1.6.0","babel-plugin-transform-import-extension":"^1.0.3","cross-env":"^7.0.3","jest":"^29.7.0","jest-environment-jsdom":"^29.7.0","supertest":"^7.0.0","tsd":"^0.31.2","typescript":"^5.6.3","webpack":"^5.94.0","webpack-cli":"^5.1.4"},"bin":{"xmllm-proxy":"dist/cjs/xmllm-run-proxy.js"},"browser":{"./src/mainCache.mjs":"./src/mainCache.browser.mjs","./dist/cjs/mainCache.js":"./dist/cjs/mainCache.browser.js","./dist/esm/mainCache.mjs":"./dist/esm/mainCache.browser.mjs","./src/fs.mjs":"./src/fs-shim.mjs","fs/promises":false,"path":false},"_id":"xmllm@0.3.9","gitHead":"df52a1d16857289dbba0764934b705566892c9a1","description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-WyPetIboM/jsv8UqU2bYkCuJkoN5qwQmV03aZk5fuD6KlYhj494EBbCSUkD9v+IFzgRVBGDlKayR3cRydA3kXw==","shasum":"eed8258c5ba300d3d7f491ffcce059dfe27f993a","tarball":"https://registry.npmjs.org/xmllm/-/xmllm-0.3.9.tgz","fileCount":187,"unpackedSize":2645853,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCq8EWqr9xn1x6OLIkuZL2dttKx9Ijsfzd+ci28JHD2kgIgTfO+DQ8VJkDTr8C0E8DiB3zLJRETxN18ImktrB1Q5qk="}]},"_npmUser":{"name":"padolsey","email":"npm@padolsey.net"},"directories":{},"maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xmllm_0.3.9_1782359370741_0.8504342799602664"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-21T02:36:15.436Z","modified":"2026-06-25T03:49:31.039Z","0.0.1":"2024-08-21T02:36:15.632Z","0.0.2":"2024-08-23T04:06:08.576Z","0.0.3":"2024-09-08T17:36:32.410Z","0.0.4":"2024-09-09T01:21:58.849Z","0.0.5":"2024-09-11T00:27:57.355Z","0.0.6":"2024-09-24T04:46:39.913Z","0.0.7":"2024-09-24T21:49:04.144Z","0.0.8":"2024-09-24T22:02:17.778Z","0.0.9":"2024-09-25T19:25:42.405Z","0.0.10":"2024-10-01T17:36:11.714Z","0.0.11":"2024-10-03T20:20:26.060Z","0.0.12":"2024-10-03T22:56:11.651Z","0.0.13":"2024-10-07T08:49:38.650Z","0.0.14":"2024-10-16T23:20:22.813Z","0.0.15":"2024-11-04T21:44:02.831Z","0.0.17":"2024-11-12T05:17:43.160Z","0.0.18":"2024-11-15T06:15:50.113Z","0.0.19":"2024-11-16T11:14:35.654Z","0.1.0":"2024-12-02T04:38:04.362Z","0.1.1":"2024-12-02T09:33:23.184Z","0.1.3":"2024-12-06T05:57:21.154Z","0.1.4":"2024-12-07T13:33:55.312Z","0.1.5":"2024-12-07T13:55:17.829Z","0.1.51":"2024-12-07T14:26:59.112Z","0.1.52":"2024-12-08T14:36:47.059Z","0.1.6":"2024-12-11T11:09:57.923Z","0.1.61":"2024-12-12T04:29:42.462Z","0.1.7":"2024-12-12T07:07:12.255Z","0.1.71":"2024-12-12T09:16:12.057Z","0.1.8":"2024-12-13T09:21:46.777Z","0.1.9":"2024-12-14T14:09:05.878Z","0.1.10":"2024-12-17T16:01:33.856Z","0.2.0":"2025-01-03T13:50:00.026Z","0.2.1":"2025-01-06T07:24:43.455Z","0.2.2":"2025-01-06T08:10:28.685Z","0.2.3":"2025-01-09T16:34:55.707Z","0.2.5":"2025-01-12T05:20:33.091Z","0.2.6":"2025-01-19T17:44:52.283Z","0.3.0":"2025-01-25T08:59:43.653Z","0.3.1":"2025-02-02T00:36:37.251Z","0.3.2":"2025-02-02T05:28:21.550Z","0.3.3":"2025-02-03T00:42:58.366Z","0.3.4":"2025-02-25T09:18:30.700Z","0.3.5":"2025-02-28T08:23:01.753Z","0.3.6":"2025-05-06T02:11:23.589Z","0.3.7":"2025-05-21T09:03:38.329Z","0.3.8":"2026-06-25T01:19:20.399Z","0.3.9":"2026-06-25T03:49:30.930Z"},"description":"xmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.","maintainers":[{"name":"padolsey","email":"npm@padolsey.net"}],"readme":"# xmllm\n\nxmllm is a JS utility that makes it easy to get structured data from LLMs, using a boring, time-tested, semantically enriched human-writable/readable syntax that is resilient and forgiving of human-made (and thus, **LLM-made**) mistakes.\n\n> **PLEASE:** This is experimental. However I <u>have</u> shipped fully operable apps with xmllm. But please have patience whenever trying to derive structured data from LLMs. It's not as deterministic as normal programming. You can find demos and examples in the [xmllm_demos](https://github.com/padolsey/xmllm_demos) repo, shipped live at [xmllm.j11y.io](https://xmllm.j11y.io) if you want to have a play (rate-limited so apologies for any issues!)\n\n> **I'm looking for collaborators and testers to help me improve this library**.\n\n---\n\nSimple example:\n\n```javascript\nimport { simple, types } from 'xmllm';\nconst names = await simple('fun pet names', {\n  schema: {\n    name: [String]\n  }\n});\n\nnames; // => { name: [\"Daisy\", \"Whiskers\", \"Rocky\"]\n\n// FYI Using `[String]` as a schema value\n// is a shortcut for `types.items(types.string())`.\n```\n\n\n\nWhat actually happened:\n\n```markdown\n┌─────────────────────────┐\n│                         │\n│     \"fun pet names\"     │\n│                         │\n└───┬─────────────────────┘\n    │\n    │ Your prompt is sent to the configured LLM with\n    │ xmllm's strategic system prompt of your choice,\n    │ plus schema instructions and examples\n    │\n    ▼\n┌─────────────────────────┐\n│     LLM generates       │\n│   <name>Daisy</name>    │\n│  <name>Whiskers</name>  │\n│    <name>Rocky</name>   │\n└───┬─────────────────────┘\n    │\n    │ LLM's natural output parsed\n    │\n    ▼\n┌─────────────────────────┐\n│      XML parsed to      │\n│  structured data via    │\n│ schema {name: [String]} │\n└───┬─────────────────────┘\n    │\n    │ Data transformed & validated\n    │\n    ▼\n┌────────────────────────┐\n│ Final result:          │\n│ {                      │\n│   name: [              │\n│     \"Daisy\",           │\n│     \"Whiskers\",        │\n│     \"Rocky\"            │\n│   ]                    │\n│ }                      │\n└────────────────────────┘\n```\n\n### Even messy XML is recoverable!\n\nBecause xmllm uses a rather flexible HTML parser, even LLMs providing weird flourishes or non-contiguous XML will still be able to be parsed, e.g.\n\n```markdown\n    Hi im a plucky    and annoying\n    little llm and sure i can\n    help with      your request for \n    PET NAMES, how about <name>\n    Charlie</name> or\n    maybe <name>Bella </ IM MESSING THINGS UP ></name>\n    <name>King\n    Julian\n```\n\n... from which we can still recover:\n\n```javascript\n{\n  name: ['Charlie', 'Bella', 'King Julian']\n}\n```\n\n---\n\n## XML *{through the eyes of a forgiving HTML parser.}*\n### (Why not function-calling or 'tool use'?)\n\n*Why XML?* – XML allows LLMs to communicate naturally with the best merits of 'free prose' while still giving you structured data back. In contrast, the norm of deriving JSON from LLMs via 'Function Calling' or 'Tool Use' is famously brittle. Such APIs are also only available with some providers and models.\n\nAnd–*anecdotally*–JSON, by nature of where it usually appears in training data, will bias the LLM to more \"robotic\" transactional completions, arguably lacking some of the more fluid or creative higher-temperature completions we have come to value from language models. Such abstractions also make streaming a headache. Markup languages like XML and HTML, however, excel at all of these weaknesses.\n\n---\n\nAs an example of how fluid an xmllm stream can be, here's an example of a UI being progressively populated by a streaming LLM 'alien species' generator (code [here](https://github.com/padolsey/xmllm_demos/blob/main/src/app/fluid/species/page.tsx)):\n\n![XMLLM Demo](https://j11y.io/public_images/xmllm1.gif)\n\n---\n\n## Demo and Sandbox\n\nFork and play with the **[xmllm demos](https://github.com/padolsey/xmllm_demos)** repo, or:\n\n### 🔥 See it live here: **[xmllm.j11y.io](https://xmllm.j11y.io)**\n\n## Provider-agnostic & high compliance on many models!\n\nxmllm is able to be run against most conceivable endpoints since you can define [custom providers](https://github.com/padolsey/xmllm/blob/main/docs/providers.md). We define some providers out of the box like `anthropic`, `openai`, `openrouter`, `togetherai`, `perplexityai`. You will usually put the API keys in a `.env` file but you can also put them inline. Additionally, if you're worried about rate limits or random failures, you can define fallback models.\n\n```javascript\nstream('fun pet names', {\n  schema: {\n    name: Array(String)\n  },\n\n  // If I am super cautious about network or LLM provider stability,\n  // I can define fallback models:\n  model: [\n    // Preferred model:\n    'openrouter:mistralai/ministral-3b',\n    // Fallback models:\n    'anthropic:claude-3-haiku-20240307',\n    'togetherai:Qwen/Qwen2.5-7B-Instruct-Turbo',\n    // Super-custom fallback model: \n    {\n      inherit: 'openai', // indicating open-ai endpoint compatibility\n      endpoint: 'https://api.myCustomLLM.com/v1/chat/completions',\n      key: 'sk-...'\n    }\n  ]\n});\n```\n\nOut of the box, only some providers are configured:\n\n| Provider | Key | Models such as... |\n|----------|-----|-----------|\n| Anthropic (`anthropic`) | `ANTHROPIC_API_KEY` | Claude Sonnet, Haiku, Opus |\n| OpenAI (`openai`) | `OPENAI_API_KEY` | GPT-4o, GPT-4o-mini |\n| Together.ai (`togetherai`) | `TOGETHERAI_API_KEY` | Qwen, Mistral, Llama, etc. |\n| Perplexity (`perplexityai`) | `PERPLEXITYAI_API_KEY` | Llama, Mistral, etc. |\n| OpenRouter (`openrouter`) | `OPENROUTER_API_KEY` | Everything! |\n\nIn regards to schema compliance xmllm has impressive results on mid-to-low-param models like: Llama 3.1 8B, Qwen2.5-7B-Instruct-Turbo, Nous Hermes 2 Mixtral, Qwen 2.5 Coder 32B. And, where lacking, compliance can usually be improved by using `hints` in addition to [schemas](https://github.com/padolsey/xmllm/blob/main/docs/schemas.md) and by experimenting with configuring different [strategies](https://github.com/padolsey/xmllm/blob/main/docs/strategies.md).\n\nSee many more details in the [Provider Setup](https://github.com/padolsey/xmllm/blob/main/docs/providers.md) guide.\n\n---\n\n## EXAMPLE: Sentiment Analysis, Proceduralized\n\nThis example demonstrates how to use LLMs in a programmatic way to analyze customer sentiment, extracting structured insights from natural text:\n\n```javascript\nconst analysis = await simple(\n  `\n    Analyze this customer review:\n    \"I absolutely love the new smartphone. The camera quality is outstanding, \n    but the battery life sucks!\"\n  `,\n  {\n    schema: {\n      sentiment: types.enum(\n        \"Overall sentiment\",\n        [\"POSITIVE\", \"NEUTRAL\", \"NEGATIVE\"]\n      ),\n      pros: types.items(types.string(\"Positive aspects\")),\n      cons: types.items(types.string(\"Negative aspects\")),\n      summary: types.string(\"Brief analysis explanation\")\n    },\n    model: 'openrouter:mistralai/ministral-3b',\n    max_tokens: 1000\n  }\n);\n```\n\nThe LLM responds naturally with XML:\n\n```xml\n<sentiment>POSITIVE</sentiment>\n<pros>\n  <item>Outstanding camera quality</item>\n  <item>Overall positive user experience</item>\n</pros>\n<cons>\n  <item>Battery life needs improvement</item>\n</cons>\n<summary>The review indicates a predominantly positive experience, \nwith particular praise for the camera. While there is criticism \nabout battery life, it doesn't overshadow the overall \npositive sentiment.</summary>\n```\n\nWhich transforms into structured data:\n\n```javascript\n{\n  sentiment: \"POSITIVE\",\n  pros: [\n    \"Outstanding camera quality\",\n    \"Overall positive user experience\"\n  ],\n  cons: [\n    \"Battery life needs improvement\"\n  ],\n  summary: \"The review indicates a predominantly positive experience...\"\n}\n```\n\n---\n\n## ➠ [Model Compliance Dashboard](https://xmllm.j11y.io/model-testing)\n\nView the [Model Compliance Matrix](https://xmllm.j11y.io/model-testing) to see how well xmllm works with different models and prompting strategies.\n\n![Model Compliance](https://j11y.io/public_images/xmllm2.png)\n\n## How does it work?\n\nUnder the hood, xmllm uses different [prompting strategies](docs/strategies.md), pairing custom system prompts and custom user/assistant pairings. These prompts tell the LLM the structure of the XML it must output using your provided schemas (and optional hints).\n\nThese different prompt strategies have been tested with a variety of models, including low param models like Ministral-3B and Qwen2.5-7B. You can test these out yourself in the [Model Testing Dashboard](https://xmllm.j11y.io/model-testing).\n\nOnce the stream starts coming in, xmllm uses a lenient streaming HTML parser (htmlparser2) to extract the data then reflect it back to you in the structure of your schema. This data can be reflected in real time or you can wait until the stream completes and then get the final value. There's an optional non-XML parser if you want to use something more resilient to your needs.\n\n## Resilience & Errors:\n\nLLMs are usually quite flakey and unstructured in what output they give you, despite our best efforts to constrain. Therefore xmllm follows the latter of Postel's Law: \"Be liberal in what you accept\". The HTML parser will be flexible in what it accepts and so even if the XML is messy or non-contiguous, xmllm will still give you back what it finds.\n\n## Quick Start\n\n```bash\n# Install\nnpm install xmllm\n\n# Set up environment variables with an .env file\n# (These will be read automatically, or you can configure\n# keys yourself when submitting requests)\n\nANTHROPIC_API_KEY=your_api_key\nOPENAI_API_KEY=your_api_key\nTOGETHERAI_API_KEY=your_api_key\nPERPLEXITYAI_API_KEY=your_api_key\nOPENROUTER_API_KEY=your_api_key\n```\n\n### Simplest Usage\n\nThe `simple()` function provides the easiest way to get structured data from AI.\n\n```javascript\nimport { simple, types } from 'xmllm';\n\n// Updated usage with options object and type hints\nconst result = await simple(\"What is 2+2?\", {\n  schema: { \n    answer: types.number(\"The numerical result\")\n      .withTransform(n => Math.floor(n))  // Ensure whole number\n  },\n  model: {\n    inherit: 'anthropic',\n    name: 'claude-3-haiku-20240307',\n    // key: \"custom api key\" // or it will use the env var\n  }\n});\n\nconsole.log(result);\n// { answer: 4 }\n```\n\n### Streaming Usage\n\nThe `stream()` API offers the same interface but for streaming with or without a schema. Some examples:\n\n```javascript\nimport { stream, types } from 'xmllm';\n\n// 1. NO SCHEMA: Use CSS selectors to manually extract things:\nconst thoughts = stream(`\n  Share three deep thoughts about programming. Use a structure like:\n  <thought>...</thought>\n  <thought>...</thought> etc.\n`)\n  .select('thought')  // Select <thought> elements\n  .text();            // Extract text content\n\nfor await (const thought of thoughts) {\n  console.log('AI is thinking:', thought); // See thoughts as they arrive\n}\n\n// 2. WITH A SCHEMA: Structured Data with Type Hints:\nconst result = await stream('What is 2+2?', {\n  schema: {\n    answer: {\n      value: types.number(\"The numerical result\")\n        .withTransform(n => Math.floor(n)),\n      explanation: types.string(\"Step-by-step explanation\")\n        .withTransform(s => s.trim())\n    }\n  }\n}).last();\n// ^ the .last() methods will wait for the end of the\n// stream and give you the final value of the aggregate data\n\n// 3. WITH ENUMS: Enforce specific values\nconst sentiment = types.enum(\n  'Overall sentiment', // hint\n  ['POSITIVE', 'NEUTRAL', 'NEGATIVE'] // enum values\n).withDefault('NEUTRAL');\n\nconst confidence = types.number(\"Confidence score 0-1\")\n  .withTransform(n => Math.min(1, Math.max(0, n)))\n  .withDefault(0);\n\nconst analysis = await stream(\n  'Analyze the sentiment of this text: \"I am happy\"',\n  { schema: { sentiment, confidence } }\n).last();\n\nconsole.log(analysis);\n// { sentiment: 'POSITIVE', confidence: 0.9 }\n\n// 4. WITH DEFAULTS IN CASE OF NO XML FOR THAT VALUE:\nconst userProfile = await stream('Create a user profile', {\n  schema: {\n    user: {\n      name: types.string(\"User's full name\")\n        .withDefault(\"Anonymous\"),\n      age: types.number(\"Age in years\")\n        .withTransform(n => Math.max(0, Math.floor(n)))\n        .withDefault(0),\n      status: types.enum(\"Account status\", ['ACTIVE', 'PENDING', 'INACTIVE'])\n        .withDefault('PENDING')\n    }\n  }\n}).last();\n```\n\nSee more details in the [Streaming Guide](https://github.com/padolsey/xmllm/blob/main/docs/streaming.md).\n\n---\n\n## Schemas!\n\nPer the examples above, xmllm uses schemas to transform stuff generated by LLMs into structured data. These schemas both serve to instruct the LLM what we _ideally_ want it to generate (xmllm helps you by asking [extra politely](https://github.com/padolsey/xmllm/blob/main/docs/strategies.md)) and also to instruct xmllm how to transform the data post-generation.\n\n```javascript\nconst schema = {\n  analysis: {\n    score: types.number('The score').withDefault(0),\n    tags: types.items(types.string('The tag')), // array of strings\n    details: {\n      $lang: types.string('The language'),     // Attribute\n      $$text: types.string('The text content') // Text content\n    }\n  }\n};\n```\n\nBehind the scenes, this schema, in combination with one of [our strategies](https://github.com/padolsey/xmllm/blob/main/docs/strategies.md), might produce a prompt for the LLM like this:\n\n```\n{{ xmllm instructions }}\n\n{{ the actual prompt you are sending to the LLM }}\n\n{{ other instructions }}\n\nExamplar scaffold XML:\n\nE.g.\n<analysis>\n  <score>{Number: The score}</score>\n  <tags>\n    <item>{String: The tag}</item>\n    <item>{String: The tag}</item>\n    /* etc. */\n  </tags>\n  <details lang=\"{String: The language}\">\n    {String: The text content}\n  </details>\n</analysis>\n```\n\n**See many more details about how schemas and scaffolders work in the [Schema Guide](https://github.com/padolsey/xmllm/blob/main/docs/schemas.md).**\n\n## Browser Usage\n\nFor browser environments, use the `xmllm/client` module and `ClientProvider` interface with a proxy server so that your LLM API keys stay private. This is most useful for development and experimentation. Production apps should (tbh) keep all direct LLM interfacing on the server anyway (to avoid rate limit issues, jailbreaking, other bad-actor vibes), but this is a good way to get started.\n\n```javascript\nimport { stream, ClientProvider } from 'xmllm/client';\n\nconst client = new ClientProvider('http://localhost:3124/api/stream');\n\nconst result = await stream('Tell me a joke', {\n  schema: { joke: types.string('The joke') }\n}, client).last()\n\n// btw: last() is a shortcut for getting the very final value\n// i.e. the completed stream\n```\n\n## Alternative Parser: Idio\n\nIn addition to XML, xmllm supports an experimental configurable parser grammar  called \"Idio\". Its default grammar (_example below_) is designed to clearly disambiguate between structural markers and content. This is particularly useful when your LLM output itself needs to contain markup or special characters like HTML (_ironically_). Obviously such a thing would confuse xmllm usually due to its reliance on XML.\n\nThe default grammar of Idio is as follows:\n\n```javascript\n@START(greeting)Hello world@END(greeting)\n\n@START(colors)\n  @START(color)Red@END(color)\n  @START(color)Blue@END(color)\n@END(colors)\n```\n\nYou can configure xmllm to use the Idio parser globally:\n\n```javascript\nimport { configure } from 'xmllm';\n\nconfigure({\n  globalParser: 'idio'\n});\n```\n\nThis will mean it ignores XML and sees it just as regular content/prose, meaning you can do stuff like this:\n\n```javascript\nconfigure({\n  globalParser: 'idio'\n})\n\nsimple('Make me \"hello world\" in HTML', {\n  schema: {\n    html: types.string('The HTML')\n  }\n})\n\n// LLM Raw Output:\n// @START(html)\n// <h1>hello world</h1>\n// @END(html)\n\n// Result:\n// { html: '<h1>hello world</h1>' }\n```\n\nSee [Idio Syntax Guide](docs/idio-syntax.md) for more details.\n\n## Lower-level Pipeline API\n\nxmllm provides a lower-level pipeline API for complex scenarios where you might want several stream-friendly transformations or generations to happen in a row.\n\nContrived example:\n\n```javascript\nimport { pipeline } from 'xmllm';\n\nlet results = {};\n\nconst analysis = pipeline(({ prompt, promptClosed }) => [\n  // First prompt gets a scientist\n  // promptClosed means 'close the tags before yielding'\n  promptClosed('Name a scientist', {\n    scientist: {\n      name: types.string('The scientist\\'s name'),\n      field: types.string('The scientist\\'s field')\n    }\n  }),\n\n  // Then we get a discovery in a distinct LLM inference\n  promptClosed((incoming) => {\n    results.scientist = incoming.scientist;\n    return {\n      messages: [{\n        role: 'user',\n        content: `What was ${incoming.scientist.name}'s biggest discovery?`,\n      }],\n      schema: {\n        discovery: {\n          year: types.number('The year of the discovery'),\n          description: types.string('The description of the discovery')\n        }\n      }\n    };\n  }),\n\n  // Combine results\n  ({discovery}) => {\n    // (we would have already stored scientist btw)\n    results.discovery = discovery;\n    return results;\n  }\n]);\n\nawait analysis.last();\n// {\n//   \"scientist\": {\n//     \"name\": \"Albert Einstein\",\n//     \"field\": \"Theory of Relativity\"\n//   },\n//   \"discovery\": {\n//     \"year\": 1905,\n//     \"description\": \"E=mc², the theory of relativity\"\n//   }\n// }\n```\n\nSee the [Pipeline Guide](https://github.com/padolsey/xmllm/blob/main/docs/pipelines.md) for more advanced usage like parallel processing, complex transformations, and error handling.\n\n## In-Depth Documentation\n\n### Guides & Concepts\n* [Schema Guide](docs/schemas.md) - Working with schemas and types\n* [Provider Setup](docs/providers.md) - Configure AI providers and models\n* [Streaming Guide](docs/streaming-guide.md) - Real-time processing patterns\n* [Prompt Strategies](docs/strategies.md) - Optimize AI prompting\n* [Pipeline Guide](docs/pipelines.md) - Complex processing chains\n* [Idio Syntax Guide](docs/idio-syntax.md) - Alternative to XML parsing\n\n### API Reference\n* [API Overview](docs/api/readme.md) - Quick reference\n* [Core Functions](docs/api/core.md) - Main API functions\n* [Stream API](docs/api/stream.md) - Streaming interface\n* [Schema Types](docs/api/schema-types.md) - Type system reference\n* [Pipeline API](docs/api/pipeline.md) - Pipeline operations\n* [Error Handling](docs/api/errors.md) - Error types and handling\n* [Configuration](docs/api/configuration.md) - Global and request config\n\n## Installing\n\n```bash\nnpm install xmllm\n# or\npnpm add xmllm\n# or\nyarn add xmllm\n```\n\n## Importing\n\nxmllm supports both ESM and CommonJS imports:\n\n```javascript\n// ESM (recommended)\nimport { simple, stream } from 'xmllm';\n\n// CommonJS\nconst { simple, stream } = require('xmllm');\n\n// Alternative CommonJS if you have issues\nconst xmllm = require('xmllm');\nconst { simple, stream } = xmllm;\n```\n\n## License\n\nMIT\n","readmeFilename":"readme.md"}