{"_id":"@agent_oxide/shotput","_rev":"8-d6530f89e0d7c9fb7fa1ee68208d84c8","name":"@agent_oxide/shotput","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@agent_oxide/shotput","version":"1.0.0","keywords":["bun","node","context engineering","templating","llm","prompt engineering"],"author":"https://github.com/nicholas-papachriston","license":"MIT","_id":"@agent_oxide/shotput@1.0.0","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"dist":{"shasum":"103e8f3cac275f88e01b68be5e1e97a88c2291aa","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.0.0.tgz","fileCount":5,"integrity":"sha512-dDL9gmjM5c86iKk1dF6X5OFe9djjvgpWsza/gnDNsdmbF/0UgO+70fskK6Irfnb9xc89XsQLJ2UE5rOIKH/3Jw==","signatures":[{"sig":"MEQCIB1FuAOQCuhw5QD339ZAdkp9PowbHn7+culXFl1tbZQ8AiBGE/ZUHwrPUln3b2HnudPqA/7vbxy5YK/qYr2iEtcX7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409772},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"103e8f3cac275f88e01b68be5e1e97a88c2291aa","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","test":"bun test && bun run clean:temp","build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts && uv run examples/benchmark/jinja2_benchmark.py","test:unit":"bun test test/unit && bun run clean:temp","typecheck":"tsc --noEmit","clean:temp":"rm -rf ./test-temp-*","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","prepublishOnly":"bun run build && bun run test","test:integration":"bun test test/integration && bun run clean:temp"},"_npmUser":{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"},"_integrity":"sha512-dDL9gmjM5c86iKk1dF6X5OFe9djjvgpWsza/gnDNsdmbF/0UgO+70fskK6Irfnb9xc89XsQLJ2UE5rOIKH/3Jw==","repository":{"url":"git+https://github.com/nicholas-papachriston/shotput.git","type":"git"},"_npmVersion":"10.8.3","description":"Zero dependency plug-and-play templating for Bun","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"latest","mustache":"latest","nunjucks":"latest","@types/bun":"latest","@types/ejs":"latest","fast-check":"latest","handlebars":"latest","typescript":"latest","@types/node":"latest","@biomejs/biome":"latest","@types/mustache":"latest","@types/nunjucks":"latest","dts-bundle-generator":"latest"},"_npmOperationalInternal":{"tmp":"tmp/shotput_1.0.0_1772701433915_0.33163516523467007","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@agent_oxide/shotput","version":"1.0.1","keywords":["bun","node","context engineering","templating","llm","prompt engineering"],"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","_id":"@agent_oxide/shotput@1.0.1","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"homepage":"https://github.com/nicholas-papachriston/shotput#readme","bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"dist":{"shasum":"d96b3884775dae04df3d8cf70e4f4ba94497e5ef","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.0.1.tgz","fileCount":5,"integrity":"sha512-rkWrZMyzIl7Ppsk/CwsULtvHqNBp3trzOyluw2uPQ/LicFSsmQMXkrXCEdS8CSUDxbEsNXXq4dt66ZeNpTh/2g==","signatures":[{"sig":"MEYCIQDTlzYE3RC57Dq47VCgjtDPDsSisBY1MnJxs0w8vV36RAIhAMTxSvfolCwGQIjDJz5sZGXTJmjsfXFFx4FeAOv33Kdy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent_oxide%2fshotput@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":409785},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"be67ee8b8f7488cb9e52924071e006fb0d3f7a95","scripts":{"fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","test":"bun test && bun run clean:temp","build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts && uv run examples/benchmark/jinja2_benchmark.py","test:unit":"bun test test/unit && bun run clean:temp","typecheck":"tsc --noEmit","clean:temp":"rm -rf ./test-temp-*","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","prepublishOnly":"bun run build && bun run test","test:integration":"bun test test/integration && bun run clean:temp"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20560b9a-d476-497d-9165-610ef13b0d7b"}},"repository":{"url":"git+https://github.com/nicholas-papachriston/shotput.git","type":"git"},"_npmVersion":"11.11.0","description":"Zero dependency plug-and-play templating for Bun","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"latest","mustache":"latest","nunjucks":"latest","@types/bun":"latest","@types/ejs":"latest","fast-check":"latest","handlebars":"latest","typescript":"latest","@types/node":"latest","@biomejs/biome":"latest","@types/mustache":"latest","@types/nunjucks":"latest","dts-bundle-generator":"latest"},"_npmOperationalInternal":{"tmp":"tmp/shotput_1.0.1_1772702045389_0.11371399003967864","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@agent_oxide/shotput","version":"1.1.0","keywords":["bun","node","context engineering","templating","llm","prompt engineering","jinja2"],"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","_id":"@agent_oxide/shotput@1.1.0","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"homepage":"https://github.com/nicholas-papachriston/shotput#readme","bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"dist":{"shasum":"1dccc6eeade60f5e35625918de7ecbd8f95eb333","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.1.0.tgz","fileCount":5,"integrity":"sha512-g3D6kU2uGx2XYoEa1D7qXbr7jcXx5pIueb1nXW0rJduGbfHGrZDlF2kaEvJnb6GNSAP2GKz8dPSgFioooJQGCQ==","signatures":[{"sig":"MEUCIQCyGEuu9yUZse9XMwLbF4vEOQUd7YTCCdSkxVopmLPClwIgQa8uHuAP0hbxVFh1AL49DDRCd89MbzmIZhSibJwXXdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent_oxide%2fshotput@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":487935},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"32ce478f2b1d3cdee28f9cd500e734c653d3a04b","scripts":{"fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","test":"bun test && bun run clean:temp","build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts","test:unit":"bun test test/unit && bun run clean:temp","typecheck":"tsc --noEmit","clean:temp":"rm -rf ./test-temp-*","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","prepublishOnly":"bun run build && bun run test","test:conformance":"SHOTPUT_CONFORMANCE_STRICT=1 bun test test/conformance/run-conformance.test.ts","test:integration":"bun test test/integration && bun run clean:temp","conformance:generate":"uv run test/conformance/jinja2_render.py"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20560b9a-d476-497d-9165-610ef13b0d7b"}},"repository":{"url":"git+https://github.com/nicholas-papachriston/shotput.git","type":"git"},"_npmVersion":"11.11.0","description":"Zero dependency plug-and-play templating for Bun","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"latest","binja":"latest","mustache":"latest","nunjucks":"latest","@types/bun":"latest","@types/ejs":"latest","fast-check":"latest","handlebars":"latest","typescript":"latest","@types/node":"latest","@biomejs/biome":"latest","@types/mustache":"latest","@types/nunjucks":"latest","dts-bundle-generator":"latest"},"_npmOperationalInternal":{"tmp":"tmp/shotput_1.1.0_1772711663092_0.2890204657635118","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@agent_oxide/shotput","version":"1.1.1","keywords":["bun","node","context engineering","templating","llm","prompt engineering","jinja2"],"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","_id":"@agent_oxide/shotput@1.1.1","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"homepage":"https://github.com/nicholas-papachriston/shotput#readme","bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"dist":{"shasum":"e223a6984e73b3caa7b7f2e8706cdae82058e96d","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.1.1.tgz","fileCount":5,"integrity":"sha512-Icld0CFvlFyrotjrAZ04g+VZ4KLDqJsfuHXOUhHuOhgU3n6F5dLYJBk3/VQAfXLRslemqrON2+e5BdwvLaR1iA==","signatures":[{"sig":"MEUCIG5oBMaxS0f0IlYOOX/PR/O12SpVbes7f/CjVjRXYy/MAiEAyFkINV5VRAvSiIf4Aa2/UMWR42hHLrzH7JB7hHF1tZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent_oxide%2fshotput@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":487935},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6555b61f2f4125bcfd2685db1935c47ce35e4370","scripts":{"fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","test":"bun test && bun run clean:temp","build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts","test:unit":"bun test test/unit && bun run clean:temp","typecheck":"tsc --noEmit","clean:temp":"rm -rf ./test-temp-*","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","prepublishOnly":"bun run build && bun run test","test:conformance":"SHOTPUT_CONFORMANCE_STRICT=1 bun test test/conformance/run-conformance.test.ts","test:integration":"bun test test/integration && bun run clean:temp","conformance:generate":"uv run test/conformance/jinja2_render.py"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20560b9a-d476-497d-9165-610ef13b0d7b"}},"repository":{"url":"git+https://github.com/nicholas-papachriston/shotput.git","type":"git"},"_npmVersion":"11.11.0","description":"Zero dependency plug-and-play templating for Bun","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"latest","binja":"latest","mustache":"latest","nunjucks":"latest","@types/bun":"latest","@types/ejs":"latest","fast-check":"latest","handlebars":"latest","typescript":"latest","@types/node":"latest","@biomejs/biome":"latest","@types/mustache":"latest","@types/nunjucks":"latest","dts-bundle-generator":"latest"},"_npmOperationalInternal":{"tmp":"tmp/shotput_1.1.1_1772713738417_0.10139408890799007","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@agent_oxide/shotput","version":"1.2.1","keywords":["bun","node","context engineering","templating","llm","prompt engineering","jinja2"],"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","_id":"@agent_oxide/shotput@1.2.1","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"homepage":"https://github.com/nicholas-papachriston/shotput#readme","bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"dist":{"shasum":"696e305aa5054b93c0a5e556cec615a3e99959be","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.2.1.tgz","fileCount":5,"integrity":"sha512-eA1FrpEJAgM7yDQpRkAV9lqdXwoqMz2I5F+xrkB8KPe7sls4cucdewY2QQ3BQj7Ft9ftBFY2eThNESZwEp+Izw==","signatures":[{"sig":"MEYCIQCxS6wbeSpBE/U7KeSbQ4s6jv/J+Pr2IvTeyqsJCxwlugIhAO6cj5EC15YenIGc/W7826ckMVKhmpA94Dzd+kzNHsqr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent_oxide%2fshotput@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491635},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"dab023a47b2a45541ca867ed5c6572acd34044f9","scripts":{"fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","test":"bun test && bun run clean:temp","build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts","test:unit":"bun test test/unit && bun run clean:temp","typecheck":"tsc --noEmit","clean:temp":"rm -rf ./test-temp-*","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","prepublishOnly":"bun run build && bun run test","test:conformance":"SHOTPUT_CONFORMANCE_STRICT=1 bun test test/conformance/run-conformance.test.ts","test:integration":"bun test test/integration && bun run clean:temp","conformance:generate":"uv run test/conformance/jinja2_render.py"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20560b9a-d476-497d-9165-610ef13b0d7b"}},"repository":{"url":"git+https://github.com/nicholas-papachriston/shotput.git","type":"git"},"_npmVersion":"11.11.1","description":"Zero dependency plug-and-play templating for Bun","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"latest","binja":"latest","mustache":"latest","nunjucks":"latest","@types/bun":"latest","@types/ejs":"latest","fast-check":"latest","handlebars":"latest","typescript":"latest","@types/node":"latest","@biomejs/biome":"latest","@types/mustache":"latest","@types/nunjucks":"latest","dts-bundle-generator":"latest"},"_npmOperationalInternal":{"tmp":"tmp/shotput_1.2.1_1773288990660_0.029705138774782425","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@agent_oxide/shotput","version":"1.3.0","keywords":["bun","node","context engineering","templating","llm","prompt engineering","jinja2"],"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","_id":"@agent_oxide/shotput@1.3.0","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"homepage":"https://github.com/nicholas-papachriston/shotput#readme","bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"dist":{"shasum":"2dbccfc65bbcbc0fb24a48c89d53e45576b2b0af","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.3.0.tgz","fileCount":5,"integrity":"sha512-x1juU2lCPzev9o2yPoYNI/M16t5G7eat0vwTioea36NrwoApDM81SwE22adkYAgIoGinNAOAxdQDGupmsGnXkA==","signatures":[{"sig":"MEQCIHexln55PDVQW3JTrkRv1iUXpnbOSseBIGX68HkqPh/7AiBbVw5vtAgdNXDKiP92Ba1MzAT9KSlEvULe3fzf1J0HBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent_oxide%2fshotput@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":515761},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1b53fa9beea60bbd0bdbc7ff6fa679cdf899fa42","scripts":{"fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","test":"bun test && bun run clean:temp","build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts","test:unit":"bun test test/unit && bun run clean:temp","typecheck":"tsc --noEmit","clean:temp":"rm -rf ./test-temp-*","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","prepublishOnly":"bun run build && bun run test","test:conformance":"SHOTPUT_CONFORMANCE_STRICT=1 bun test test/conformance/run-conformance.test.ts","test:integration":"bun test test/integration && bun run clean:temp","conformance:generate":"uv run test/conformance/jinja2_render.py"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20560b9a-d476-497d-9165-610ef13b0d7b"}},"repository":{"url":"git+https://github.com/nicholas-papachriston/shotput.git","type":"git"},"_npmVersion":"11.11.1","description":"Zero dependency plug-and-play templating for Bun","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"latest","binja":"latest","effect":"latest","mustache":"latest","nunjucks":"latest","@types/bun":"latest","@types/ejs":"latest","fast-check":"latest","handlebars":"latest","typescript":"latest","@types/node":"latest","@biomejs/biome":"latest","@types/mustache":"latest","@types/nunjucks":"latest","dts-bundle-generator":"latest"},"_npmOperationalInternal":{"tmp":"tmp/shotput_1.3.0_1773351887516_0.8854215232189864","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@agent_oxide/shotput","version":"1.4.0","keywords":["bun","node","context engineering","templating","llm","prompt engineering","jinja2"],"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","_id":"@agent_oxide/shotput@1.4.0","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"homepage":"https://github.com/nicholas-papachriston/shotput#readme","bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"dist":{"shasum":"c13f07a40f8e2ad6826f9bff7ec221e95a408ad2","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.4.0.tgz","fileCount":5,"integrity":"sha512-iiCx06lmkJ97fZFtfDtQiHBCd6PnVBDGVh7+XRdouKlD7SJO0okMflJEx8pz3M94+iXd59yzlOuLYcjEa0hU+A==","signatures":[{"sig":"MEYCIQC8awiuNqYpB+iAt51pjmJUPHGJaEe8ACdXhVpaxgzjKAIhAObDIAz7VzfKEs7icuw0pPBtj8li2QRD0uKotboiLlVq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent_oxide%2fshotput@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":523029},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a321e646a78d199c5e064670b959c40b5f6eac52","scripts":{"fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","test":"bun test && bun run clean:temp","build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts","test:unit":"bun test test/unit && bun run clean:temp","typecheck":"tsc --noEmit","clean:temp":"rm -rf ./test-temp-*","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","prepublishOnly":"bun run build && bun run test","test:conformance":"SHOTPUT_CONFORMANCE_STRICT=1 bun test test/conformance/run-conformance.test.ts","test:integration":"bun test test/integration && bun run clean:temp","conformance:generate":"uv run test/conformance/jinja2_render.py"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20560b9a-d476-497d-9165-610ef13b0d7b"}},"repository":{"url":"git+https://github.com/nicholas-papachriston/shotput.git","type":"git"},"_npmVersion":"11.12.0","description":"Zero dependency plug-and-play templating for Bun","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"latest","binja":"latest","effect":"latest","mustache":"latest","nunjucks":"latest","@types/bun":"latest","@types/ejs":"latest","fast-check":"latest","handlebars":"latest","typescript":"latest","@types/node":"latest","@biomejs/biome":"latest","@types/mustache":"latest","@types/nunjucks":"latest","dts-bundle-generator":"latest"},"_npmOperationalInternal":{"tmp":"tmp/shotput_1.4.0_1773899140053_0.6165393262643164","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@agent_oxide/shotput","version":"1.5.0","description":"Zero dependency plug-and-play templating for Bun","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"bun build.ts && bunx dts-bundle-generator --config dts-bundle-generator.config.json","clean:temp":"rm -rf ./test-temp-*","test":"bun test && bun run clean:temp","test:unit":"bun test test/unit && bun run clean:temp","test:integration":"bun test test/integration && bun run clean:temp","test:watch":"bun test --watch && bun run clean:temp","test:coverage":"bun test --coverage && bun run clean:temp","test:conformance":"SHOTPUT_CONFORMANCE_STRICT=1 bun test test/conformance/run-conformance.test.ts","examples":"bun run examples/index.ts","benchmark":"bun run examples/benchmark/run-all.ts","conformance:generate":"uv run test/conformance/jinja2_render.py","fix":"bunx biome check --fix --unsafe .","lint":"bunx biome check .","audit":"bun audit","typecheck":"tsc --noEmit","prepublishOnly":"bun run build && bun run test"},"keywords":["bun","node","context engineering","templating","llm","prompt engineering","jinja2"],"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nicholas-papachriston/shotput.git"},"publishConfig":{"access":"public"},"devDependencies":{"@biomejs/biome":"latest","@types/bun":"latest","@types/ejs":"latest","@types/mustache":"latest","@types/node":"latest","@types/nunjucks":"latest","binja":"latest","dts-bundle-generator":"latest","ejs":"latest","effect":"latest","fast-check":"latest","handlebars":"latest","mustache":"latest","nunjucks":"latest","typescript":"latest"},"gitHead":"5fea9a7537006946917ba381a0b1da8adf1d1252","_id":"@agent_oxide/shotput@1.5.0","bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"homepage":"https://github.com/nicholas-papachriston/shotput#readme","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-y/xAerq3EiD68Aif1GC3T+weJSeIg/yblfvwP0JGZBbmiSKuTyD3hVxAbUXEDH/yjvRjL5fpYwgJT5+y6THX7Q==","shasum":"60c7c42b32e36ebe7d9ed296ada644df988b49fb","tarball":"https://registry.npmjs.org/@agent_oxide/shotput/-/shotput-1.5.0.tgz","fileCount":5,"unpackedSize":543935,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent_oxide%2fshotput@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICC07TluRzTnNLb3vUK5ZK/Y/J8zxRQWf972XPpKpqYzAiA8J3UFcbT7dLde1nLHCFvP69d/FubGr4yK8K/guNMoSw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20560b9a-d476-497d-9165-610ef13b0d7b"}},"directories":{},"maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shotput_1.5.0_1785206796523_0.7857442299306028"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-05T09:03:53.808Z","modified":"2026-07-28T02:46:37.110Z","1.0.0":"2026-03-05T09:03:54.060Z","1.0.1":"2026-03-05T09:14:05.548Z","1.1.0":"2026-03-05T11:54:23.253Z","1.1.1":"2026-03-05T12:28:58.611Z","1.2.1":"2026-03-12T04:16:30.835Z","1.3.0":"2026-03-12T21:44:47.686Z","1.4.0":"2026-03-19T05:45:40.199Z","1.5.0":"2026-07-28T02:46:36.721Z"},"bugs":{"url":"https://github.com/nicholas-papachriston/shotput/issues"},"author":{"name":"https://github.com/nicholas-papachriston"},"license":"MIT","homepage":"https://github.com/nicholas-papachriston/shotput#readme","keywords":["bun","node","context engineering","templating","llm","prompt engineering","jinja2"],"repository":{"type":"git","url":"git+https://github.com/nicholas-papachriston/shotput.git"},"description":"Zero dependency plug-and-play templating for Bun","maintainers":[{"name":"nicholas-papachriston","email":"nicholas.papachriston@gmail.com"}],"readme":"# Shotput\n\n[![npm](https://img.shields.io/npm/v/@agent_oxide/shotput)](https://www.npmjs.com/package/@agent_oxide/shotput)\n[![github](https://img.shields.io/github/stars/nicholas-papachriston/shotput)](https://github.com/nicholas-papachriston/shotput)\n\nZero dependency plug-and-play templating for Bun\n\n## Installation\n\n```bash\nbun add @agent_oxide/shotput\n```\n\n## Motivation\n\nShotput is a programmatic templating library for managing personas, system prompts, and other text-based configurations. It works in any Bun project but is particularly useful for Gen AI applications.\n\n## Features\n\n- Arbitrary source retrieval and output destination\n- Streaming for large files (>1MB)\n- Security validation for all paths\n- **Templating sources:** file paths, directory paths, glob/regex, HTTP, S3 (including directory buckets), functions, [Anthropic Skills](https://github.com/anthropics/skills), SQLite, Redis, custom source plugins\n- **Conditionals and loops:** `{{#if}}` / `{{#each}}` with `context`, `env`, `params`\n- **Optional native Jinja2 syntax mode:** `{% if %}`, `{% elif %}`, `{% else %}`, `{% for %}` (+ `else`), `{% set %}`, `{% with %}`, `{% macro %}`, `{% raw %}`, `{% include \"...\" %}`, filters/tests via `templateSyntax(\"jinja2\")` (or auto-detected from `.jinja`, `.jinja2`, `.j2` template files)\n- **Variable substitution:** `{{context.x}}`, `{{params.x}}`, `{{env.X}}` (nested paths supported)\n- **Token-aware budgeting and semantic compression:** optional `tokenizer` and `compressor`\n- **Lifecycle hooks:** preResolve, postResolveSource, postAssembly, preOutput\n- **Output modes:** flat, sectioned, or messages (system/user/assistant)\n- **Commands and subagents:** `{{command:name}}`, `{{subagent:name}}`\n- **Open Knowledge Format (OKF):** first-class concept parsing via `.parseOkf(true)` — preferred document metadata (`output.okf`, `resultMetadata[].okf`) with YAML stripped from assembled prompts\n- **Embedded shell execution:** `{{shell:printf 'hello'}}` (requires `allowShell: true`)\n- **Format utilities:** in-template `{{yaml:path}}`, `{{json:path}}`, `{{jsonl:path}}`, `{{xml:path}}`, `{{md:path}}`, `{{jinja:path}}`; programmatic Markdown, JSONL, XML helpers\n\n**Template authoring for LLMs:** [llms.txt](./llms.txt) links to the [template guide](docs/llm-template-guide.txt) (syntax, patterns, pitfalls).\n\n## Benchmarks\n\nBenchmark suite comparing Shotput against EJS, Handlebars, Mustache, Nunjucks, Binja, and Jinja2.\nSee [examples/benchmark](./examples/benchmark) for full methodology and current results.\n\n```bash\nbun run benchmark\n```\n\nThe benchmark includes:\n\n- Runtime (parse + render)\n- Pre-compiled (render-only)\n- Jinja parse/compile-only (Shotput native Jinja, Binja, CPython Jinja2)\n\n## Quick start\n\n```ts\nimport { shotput } from \"@agent_oxide/shotput\";\n\nconst result = await shotput()\n  .templateDir(\"./templates\")\n  .templateFile(\"prompt.md\")\n  .allowedBasePaths([\"./data\"])\n  .run();\n\nconsole.log(result.content);\n```\n\n**API:** `shotput()` returns a builder. Chain config (e.g. `.templateDir()`, `.context()`, `.allowedBasePaths()`), then `.run()`, `.stream()`, `.streamSegments()`, or `.build()`.\n\n## Documentation\n\n- [Usage](docs/usage.md) - Template syntax, variables, S3/R2, parallel processing\n- [API Reference](docs/api.md) - Builder setters, types, format utilities, examples list\n- [Environment Variables](docs/environment-variables.md) - All env configuration\n- [Security](docs/security.md) - Best practices and vulnerabilities\n\n## Scripts\n\n| Command | Description |\n| --------- | ----------- |\n| `bun run build` | Build dist (Bun bundle + single `index.d.ts` via dts-bundle-generator) |\n| `bun test` | Run all tests |\n| `bun run test:conformance` | Strict Jinja2 parity test against live CPython Jinja2 output |\n| `bun run conformance:generate` | Generate CPython Jinja2 snapshots (`test/conformance/expected.json`) |\n| `bun run examples` | Run all examples |\n| `bun run lint` | Run Biome check |\n| `bun run typecheck` | TypeScript check |\n\n## Prerequisites\n\n- [Bun](https://bun.sh)\n- [uv](https://docs.astral.sh/uv/)\n- [Python 3](https://www.python.org/)\n- [jinja2](https://pypi.org/project/Jinja2/) package for conformance harness (`uv add jinja2` or `pip install jinja2`)\n\n## Jinja2 Support Scope\n\nShotput's native Jinja engine currently supports:\n\n- Output expressions: `{{ expr }}`\n- Control flow: `if/elif/else`, `for`, `for ... else`\n- Assignments and scope: `set`, `with`\n- Macros: `macro` declarations and macro invocation\n- Delimiter features: comments `{# ... #}` and `raw` blocks\n- Includes: `{% include \"path/to/partial.jinja\" %}` (resolved before compile)\n- Filters: `trim`, `upper`, `lower`, `default`, `length`\n- Tests: `divisibleby`, `defined`, `undefined`, `odd`, `even`\n\nConformance coverage is validated against CPython Jinja2 using fixtures in `test/conformance/fixtures` and the Python renderer `test/conformance/jinja2_render.py`.\n","readmeFilename":"README.md"}