{"_id":"@amritk/resolve-refs","_rev":"18-0ef59e1b55a3b1de040c721741605690","name":"@amritk/resolve-refs","dist-tags":{"latest":"0.7.1"},"versions":{"0.0.0":{"name":"@amritk/resolve-refs","version":"0.0.0","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.0.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"8578fcc673b5d20c42d00e5119a01939bc869d8e","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.0.0.tgz","fileCount":30,"integrity":"sha512-EQzkuaMUcGe7Qi0D4D8W9h3Sd/P5eA0MPN0c5Say+RuEJBNM2hR3NO87nEWkcLHeC/JaikXjVifAOQbyAkv/0g==","signatures":[{"sig":"MEUCIQD0TG7KqRS3J6nzdtN0NXJb9qkCwHPb7WFlrVzRIk/jbQIgMeq81WSKsC/5kAMD+06hRPTeqoLVAZ1avAkmosTFnqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45046},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"b18190179683e0cb0cf1f84f722277950d1f7b38","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"amritk","email":"amrit+spam@hockey-community.com"},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.6.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.0.0_1780123745090_0.7494107758448776","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@amritk/resolve-refs","version":"0.1.0","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.1.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"8ee06b00b4f600243f2590e26b0cf1d2f91e1eb2","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.1.0.tgz","fileCount":30,"integrity":"sha512-WoA+naRoSHeUh95/d26YkwG/nPmViBEUasMrnaYI3OHcigVMQkUUscFVPh9++sihZaMZB3WtI/Gv9G8OxIA2Eg==","signatures":[{"sig":"MEUCIDuWcq+7ooLceODB6f1LY9Mu8rBUGKVB3+8zobVFhBG5AiEA5H58X56Z0uaSzb98KATEXD7ZT9AN1y35x8CVt8qjLfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45046},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"81f9b0486bd9468dfeac4afeacabc705f702b019","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.16.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.1.0_1780124023442_0.7630905312103129","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amritk/resolve-refs","version":"0.1.1","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.1.1","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"4dfcae06dbb85ea58fa6068e97648a14f974397e","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.1.1.tgz","fileCount":30,"integrity":"sha512-P7f49OWtQgo5mEwjVOPA7ieCs0R84HWevS89IwBuJo6LlUoisUmahFVKqcDPGOMR4oqBCF0WIEwlwEw7b9jhvA==","signatures":[{"sig":"MEUCIAlmPJiHGPJCyjDSjnSY8g04sZqiuUvB3tP+BVLq9Rb9AiEAjrXZ4BALYgvnzCdzgNEJ6rGS6cp7XlF6JxTZohBHK6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47635},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"3d1f5a8de1430b6b00383ff07a5af1a01866b2c2","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.16.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.1.1_1780125118071_0.885503432736932","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amritk/resolve-refs","version":"0.1.2","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.1.2","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"f1a6c7c861272f55ea8aee5591c87e4ec74b3553","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.1.2.tgz","fileCount":30,"integrity":"sha512-LyILvNglz86XbhoCwcZof2Mb3ZPWEWR/4h2U0nlFjsTK5yb2eJmGQLKN6xyyrSGBZgCM7XBBzTyqNBhW4Jt72Q==","signatures":[{"sig":"MEYCIQDaXAsII04Gp0MnJtL9y/JvOmJ4ufPMMNy9WsfY7TPyOgIhAL15onqzIbAa1IuzKD07tVKxLSt3daClRTfIIxMZBsf0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48327},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"0d3608d31f553f5e4c85d779d5c6948380a53ab4","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.16.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.1.2_1780126025809_0.05055681901342779","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@amritk/resolve-refs","version":"0.2.0","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.2.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"60b55c243574af651efe4d1a346725416d9b9e57","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.2.0.tgz","fileCount":30,"integrity":"sha512-gDinmW1XqCKzxGOkz0+SIoRBMnhsgF1tMsUgPavasOxNvefwAKn1tCZ2XzDFg9nb2aGxvcNIwvhGzq983uEk6w==","signatures":[{"sig":"MEUCIC9q7hZymoYtPDrNmY8lZulHnRr7lGdcV1It+Jlxb+QJAiEAgZsDFzx6AWFwfiRUizJLqJjVJGb5fHhAGJwBiuV7uKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":74984},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"6d301635311e3b7d5e468318ad035488250b4fd3","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.16.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.2.0_1780216370238_0.610501960561664","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@amritk/resolve-refs","version":"0.2.1","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.2.1","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"92b86ad77332277ac58830e49876551cfeb4812e","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.2.1.tgz","fileCount":14,"integrity":"sha512-iM9zHVAXDNTTfrUjPEBL9PudIpqFY4zHO6Y2bPfmHnr5LTuTMO26fnnn2xIG2jyBnvBCBdf14oB558dW0YI1CQ==","signatures":[{"sig":"MEYCIQCzt3HHEsdPHgS7PnqJplzQ/B7oyoQZooF/zal6mulbRwIhAItzxRErMVM0iTLmrtSzQV2fP2e45OwkQkoySp4EfRv3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30678},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"748a61f213a23738f7fd93df0ba2f3b166db70f8","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.16.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.2.1_1781115049357_0.6168927177114425","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@amritk/resolve-refs","version":"0.2.2","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.2.2","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"1e335cbf6810a545c8c375752f0b709ec9df4613","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.2.2.tgz","fileCount":14,"integrity":"sha512-KxRcYK7eT77jno6c7pD8uDTw7ivq8cxImqwKdKFoklDf4xGud1rhTqlcwgPxa5r/Q5CqkEQRGehndUZisrtcQw==","signatures":[{"sig":"MEUCIB4epr2IaTgwDKUngywvIGHmejz0f7nD4b2K3KRpAdrIAiEAzBfM43IJbKJU5wVWR4XRxi2s+Rp8eHqx3w1rPXywzrg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32945},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"76a77f7f876dc6e117d7f17d168249a27689744d","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.17.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.2.2_1781732276456_0.43034510671604176","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@amritk/resolve-refs","version":"0.2.3","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.2.3","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"50abab7251f8aa36310508d294677ccc075c64be","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.2.3.tgz","fileCount":16,"integrity":"sha512-GyE2ZZavOOyhkzeaIOoLBB9iJmpLz98M3FXEPJ1/rNyerFuAKWN0bwjoEiKn/OMcT/n+lvsQuSnGNnV9dL3F1Q==","signatures":[{"sig":"MEYCIQCWViOSz6empLw0N26zlTGZL20a5AHlLAwyxiS09f5l0QIhAIOR+qyKdyIT2XySyJ5EDptd+2rHtTw2+Qesap4vGHnw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36664},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3ff2122f35b01511d8245fa28764056193a9f1f9","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.18.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.2.3_1783267882461_0.5551151163366317","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amritk/resolve-refs","version":"0.3.0","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.3.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"2e14d96d0d8ae3b63e3b058b65262756e822924d","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.3.0.tgz","fileCount":18,"integrity":"sha512-ULftub3Bl+JY4bQwotLh7rdo/LbDBdYqwM72LQAcH9m5Z/Z4fMD6fNJk4PlfJDJyf/vBH9m+/CbJuSSeOK6qLg==","signatures":[{"sig":"MEYCIQDE+FfpTTPepy6U+AwiDE3kstFbB7qc0TF3SVhEygddFgIhALleMvHAJyf7esRwRUB5bE+gYBIcOCB8zhm4Z/BIFykQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44348},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"dc9df6a12dbfd96fe15c653ad120a6ebd0b5ab90","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"12.0.1","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.3.0_1783712950772_0.020013096860271862","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@amritk/resolve-refs","version":"0.4.0","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.4.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"edac59d6b3d07990b46c6231f42f98c1e0fbd1be","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.4.0.tgz","fileCount":20,"integrity":"sha512-ggatG2/lBe3nIRqKbQPkNb4o+AMf8puRJTA+ryM1QAyi/p0Sy+UNbu5+LEWm2XzWGl1W1NgZJA2ZKlVEbwNK8w==","signatures":[{"sig":"MEUCIBP4SbpOLYSZBIW7hdAA6E2pCx+ZZSedImFsuh2p7vuWAiEAyx0TmXx5W33mJvKqBHfjVmoqjMxbQdZOlWy+7OvqfCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81737},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"109f93b803d420a3f33e8491f597f75db9bc9ece","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"12.0.1","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.4.0_1784012640320_0.20917054098928922","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@amritk/resolve-refs","version":"0.4.1","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.4.1","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"f0c2535123b4283a227214d45234ace5a790a41f","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.4.1.tgz","fileCount":20,"integrity":"sha512-GaaCmJh4a8kz/ptn208aPAUFmTkvSh4XvGW5Ijuv1QO0s1q84ubF6miwwwtKXakEg3M2IQvXreSXpyJHAVsiow==","signatures":[{"sig":"MEUCIQC3/0wFB1T1UalODFjXahBC6mGe/dkQQX0oPqh6ncGagAIgbsY7hLYGx4O1gK7sJVSZVL3zdKlREEAUN6eI6Fs9FsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84888},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7a2e87cf653a9adf14d2f7c0aa19a366463ed6a8","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"12.0.1","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.4.1_1784255643398_0.5106679694118628","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@amritk/resolve-refs","version":"0.4.2","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.4.2","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"c29f6368580c7d4ddd2edf51d0ba2cdc2a94a98f","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.4.2.tgz","fileCount":21,"integrity":"sha512-iDZ8SjJn8lpeoqFNT4amknzac2WON3CElCNcys8Wk7n79yeA7BDLG1u9L4KzK3r2vQJgRr4KUiu/BNPOJlyN/w==","signatures":[{"sig":"MEUCIQDJo7YFhkITaje5jNrTRo2Hw8oekfNAskMXWAPPz0gERgIgEj6zJjt2UjmlsrrTmnBJUvGsp5oj6nemH1Ppgpfihrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85951},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"29a068e0d1778e8cc7d775b2829cccf572114aad","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"12.0.1","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.4.2_1784280004512_0.12223743275672838","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@amritk/resolve-refs","version":"0.4.3","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.4.3","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"f3739b6e2bb25854124621a8b86022fcc5d5d4c0","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.4.3.tgz","fileCount":21,"integrity":"sha512-urzmOLmZwgaw2DBTaRn8bpNhz6yktrLi6alHN0UIM5DipSX7Awv2+oMKZ8gcPJqzM9sPpcacDariMyEf6ugAow==","signatures":[{"sig":"MEYCIQDCd5eA986rLhapsrbO9djVU3RDUXrz3fiqol/hGcJj3gIhAMcIa4kczdOhjolH6fSn4Z72eLzgUdz21NsbrnK3injU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58989},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"b90fd1c8c047fc8481705018eddd577d19108c96","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f && node ../../scripts/strip-comments.mjs","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"12.0.1","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.4.3_1784452127347_0.004094699055048112","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@amritk/resolve-refs","version":"0.4.4","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.4.4","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"0614c8bc260d556e620934239a9e5eb4edbde26c","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.4.4.tgz","fileCount":22,"integrity":"sha512-BiwqGMm4Cdjgii4rz/Xap98ZW0TK5SJ5l7iS6tpVAnv6IxZru9PEzo0TTL/7vYb9sl6+BVeGDqyqgt1/uZJnQQ==","signatures":[{"sig":"MEQCIGC2IUmVAi1BaLRou7iRfkCGXbMSGOHA5SGJltpKcolsAiABGOsBFkJNVQVEKks0/gIkmrNmZ7w8WBDKPZyuLrhCiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61248},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"30b4c324c09d2928d62084973cdde49d3356b4b4","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f && node ../../scripts/strip-comments.mjs","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"12.0.1","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.4.4_1784702758656_0.387762769497064","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@amritk/resolve-refs","version":"0.4.5","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.4.5","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"fa19fdb6ffc13a0ab592473cf5bd11655a7103ba","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.4.5.tgz","fileCount":22,"integrity":"sha512-8gKHIGVuaEFyUyP3hzZHKTXJRq7Uq7sfkNngl4Ks4uN4QDU8aQo6ua3bB+W1LcMEKLzbLuS0cgZoM/tGwk5OVQ==","signatures":[{"sig":"MEQCIHM4LzNas5+fKlbebvHA41dqPSzOsSUBZ9mruQp+G2zKAiAx4NpvUYxMqcAwHMI1fKjA46ATf62+lt8N3FKbNhQfqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61409},"type":"module","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3630667665a873c96f071e3b8d12f538e751d4f0","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f && node ../../scripts/strip-comments.mjs","types:check":"tsgo -p . --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:107e9b93-5a6c-4334-99a0-4e82ba9a71c6"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.18.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.4.5_1785262236833_0.2726073747298545","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@amritk/resolve-refs","version":"0.6.0","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.6.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"a807fd4313b04a42cfdfa47ace05a75ee1e09f99","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.6.0.tgz","fileCount":34,"integrity":"sha512-NlXMTPBNzxxmLoFCJngJD55DnJZeKCvoB/FJtMsBD3CmyDXpgUj+jyVBpIKloMxa6NbIuRD1Oqv3oTwn54ssuw==","signatures":[{"sig":"MEUCICBQ7L9RsIXh+IOrf8XaxVfV/YbBTpOfITQO+aoYrcYCAiEAvWrw47CxqnwrMVs5dc36G8RGnvFMDjGSufxj9z53YwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106105},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"9a3d515150ce8ff66c6e78b03294196d58b3917e","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f && node ../../scripts/strip-comments.mjs","types:check":"tsgo -p . --noEmit","prepublishOnly":"node ../../scripts/check-publishable.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb5cab2-37db-443c-8a02-7f447b6112e2"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.19.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@amritk/runtime-validators":"^0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.6.0_1786383375077_0.9597279383029049","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@amritk/resolve-refs","version":"0.7.0","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/resolve-refs@0.7.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"b477cd98e623206d6f28f53c4d68815f33daeb53","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.7.0.tgz","fileCount":34,"integrity":"sha512-j5Vgy3M37mTt9vImmI0EuxOAfqZhxddBafimhoR1ZyONT5D3olA4mSPKDkJWFzkjaTCW8ORrG1Bj51LlbRaUcg==","signatures":[{"sig":"MEUCIDmx3E7gGGRqe2v+5l60ZaGWaaX0+EnHyMpGgyqNrLwmAiEAn1Mh6Mt5794waokTZT5pO7jdOuTZKFoFSOjC0NhrMhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109607},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"605071c88c9f2416d455c091e1c662e17bf104db","scripts":{"test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts","build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f && node ../../scripts/strip-comments.mjs","types:check":"tsgo -p . --noEmit","prepublishOnly":"node ../../scripts/check-publishable.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb5cab2-37db-443c-8a02-7f447b6112e2"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/resolve-refs"},"_npmVersion":"11.19.0","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@amritk/runtime-validators":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/resolve-refs_0.7.0_1786479962323_0.6306616211995282","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@amritk/resolve-refs","version":"0.7.1","description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","sideEffects":false,"engines":{"node":">=20"},"license":"MIT","author":{"name":"amritk"},"keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"repository":{"type":"git","url":"git+https://github.com/amritk/mjst.git","directory":"packages/resolve-refs"},"homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"publishConfig":{"access":"public"},"scripts":{"build":"tsgo -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -f && node ../../scripts/strip-comments.mjs","prepublishOnly":"node ../../scripts/check-publishable.mjs","types:check":"tsgo -p . --noEmit","test":"NODE_ENV=production vitest run --root ../.. resolve-refs","bench":"bun run ./bench/run.ts"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"devDependencies":{"@amritk/runtime-validators":"^0.12.0"},"gitHead":"3078ec8c5b266082c862fecd86f122d21c591270","_id":"@amritk/resolve-refs@0.7.1","_nodeVersion":"24.19.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-MhLXPrHt04t1i+2ScdBrXuh5fqfRolRnaSF8YEM7shKAv3YCWsPrSEMKD97wLd8e7jDgnhFMHzmdj2DFd5FFKA==","shasum":"b7b40bbb6508a6e3b58e7474d8f85716786a66a5","tarball":"https://registry.npmjs.org/@amritk/resolve-refs/-/resolve-refs-0.7.1.tgz","fileCount":38,"unpackedSize":116944,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fresolve-refs@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICUVaVPIPRzj5lUcxShbedngj0+goOEcpOOLox/6JqHUAiAdHVJYOFRdweIOBuHFzsFPyIb450MliLdXyku33ac4fw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb5cab2-37db-443c-8a02-7f447b6112e2"}},"directories":{},"maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/resolve-refs_0.7.1_1788224629773_0.8518672622723003"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T06:49:04.984Z","modified":"2026-09-01T01:03:50.232Z","0.0.0":"2026-05-30T06:49:05.230Z","0.1.0":"2026-05-30T06:53:43.585Z","0.1.1":"2026-05-30T07:11:58.215Z","0.1.2":"2026-05-30T07:27:05.938Z","0.2.0":"2026-05-31T08:32:50.376Z","0.2.1":"2026-06-10T18:10:49.504Z","0.2.2":"2026-06-17T21:37:56.610Z","0.2.3":"2026-07-05T16:11:22.599Z","0.3.0":"2026-07-10T19:49:10.909Z","0.4.0":"2026-07-14T07:04:00.470Z","0.4.1":"2026-07-17T02:34:03.534Z","0.4.2":"2026-07-17T09:20:04.643Z","0.4.3":"2026-07-19T09:08:47.482Z","0.4.4":"2026-07-22T06:45:58.854Z","0.4.5":"2026-07-28T18:10:36.995Z","0.6.0":"2026-08-10T17:36:15.260Z","0.7.0":"2026-08-11T20:26:02.458Z","0.7.1":"2026-09-01T01:03:49.909Z"},"bugs":{"url":"https://github.com/amritk/mjst/issues"},"author":{"name":"amritk"},"license":"MIT","homepage":"https://github.com/amritk/mjst/tree/main/packages/resolve-refs#readme","keywords":["json-schema","openapi","$ref","ref","resolver","dereference","typescript","mjst"],"repository":{"type":"git","url":"git+https://github.com/amritk/mjst.git","directory":"packages/resolve-refs"},"description":"Resolve and inline JSON Schema / OpenAPI $refs — internal, cross-file, and remote — with session caching and a default-deny SSRF guard.","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"readme":"# @amritk/resolve-refs\n\nResolve and inline JSON Schema / OpenAPI `$ref`s — internal pointers, cross-file\nrefs, and remote (http/https) documents — into a single dereferenced document.\n\n- **One-pass, cached.** Every unique ref is resolved once; the result is always\n  finite. At a reference **cycle** the recursive branch is *kept*, not lost: the\n  cycle point stays a `$ref` that resolves within the output document (a\n  cross-file cycle target is hoisted into the root's `$defs`), so recursive\n  schemas survive dereferencing intact.\n- **Anchors + dynamic refs, `$id`-scoped.** Beyond JSON-pointer `$ref`s,\n  plain-name `$anchor` references (`#node`), `$dynamicRef`/`$dynamicAnchor`\n  (2020-12), and `$recursiveRef`/`$recursiveAnchor` (2019-09) are dereferenced\n  too. `$id` base-URI scoping is modelled for the bundled-document case: a ref\n  whose URI matches an embedded resource's `$id` resolves to it without\n  fetching, and anchors bind within the resource that declares them (falling\n  back to a document-global search). See *`$id` scoping* below for the exact\n  subset.\n- **Cross-file + remote.** Relative refs resolve against the document they appear\n  in (a ref inside a remote doc stays remote, one inside a local file stays\n  local). Fetched remote documents are cached for the session, keyed by URL *and*\n  by the credentials they were fetched with.\n- **Default-deny SSRF guard.** Remote refs to loopback, private, link-local, and\n  cloud-metadata hosts — by IP (`169.254.169.254`) *and* by name\n  (`metadata.google.internal`, anything under `.internal`) — are refused unless\n  you opt in. Hostnames are additionally resolved and refused when any address\n  they point at is non-public, so `127.0.0.1.nip.io` does not slip through.\n- **Default-deny local reads.** A local `$ref` may only resolve **under the root\n  document's directory**. `{\"$ref\": \"../../../secrets.env\"}` is refused; widen it\n  with `allowedRoots` when your spec legitimately spans folders.\n- **OpenAPI Reference Objects.** A `$ref` whose only siblings are `summary` /\n  `description` inlines the target with those annotations overriding — matching\n  OpenAPI 3.1 Reference Object semantics, where an `allOf` wrapper would be\n  invalid. Any other sibling keyword keeps the spec-correct `allOf` combination.\n\n## Usage\n\n```ts\nimport { resolveRefs, resolveRefsFromFile } from '@amritk/resolve-refs'\n\n// In-memory, internal (#/...) refs only. External refs (another file or an\n// http(s) URL) are left in place and reported on `errors`, since this resolver\n// can't load other documents — use resolveRefsFromFile for those:\nconst { resolved, errors } = resolveRefs(myDocument)\n\n// From disk or a URL, including cross-file and remote refs:\nconst result = await resolveRefsFromFile('./schema.json')\nconst remote = await resolveRefsFromFile('https://api.example.com/schema.json', {\n  allowedHosts: ['api.example.com'],\n})\n```\n\n### Options (`resolveRefsFromFile`)\n\n| Option | Default | Description |\n|:---|:---|:---|\n| `remote` | `true` | Whether http(s) refs may be fetched at all. |\n| `localRefs` | `true` | Whether `$ref`s to other files on disk may be read. `false` still reads the root document you named — it refuses everything a ref reaches out to. |\n| `allowedRoots` | `[dirname(root)]` | Directories a local `$ref` must resolve inside. The default confines a ref to the folder holding the root document. |\n| `allowedHosts` | `[]` | If non-empty, only these hosts may be fetched. Matched case-insensitively; an entry without a port matches any port, one with a port must match it (a URL that omits the port counts as its protocol default). An explicit entry bypasses the private-host and DNS guards. |\n| `allowPrivateHosts` | `false` | Allow loopback/private/link-local targets. Left off, these are refused as an SSRF guard. |\n| `verifyDns` | `true` | Resolve each remote host and refuse it when any address it resolves to is non-public. Pass `false` where names resolve at an egress proxy rather than locally. |\n| `headers` | — | Extra headers for remote requests (record, or `(url) => headers` for per-host credentials). Never sent across a cross-origin redirect. |\n| `fetch` | global `fetch` | Custom fetch implementation. The SSRF guard still evaluates every hop before it is called. |\n| `timeoutMs` | `30_000` | Abort an unresponsive remote fetch after this many milliseconds. |\n| `totalTimeoutMs` | `60_000` | Wall-clock budget for the whole resolve, across every document. |\n| `maxDocuments` | `500` | Documents (root included) a single resolve may load. |\n| `maxRedirects` | `5` | Redirect hops to follow per remote document (each hop re-runs the SSRF guard). |\n| `maxBytes` | `16` MiB | Refuse to buffer a remote document larger than this. |\n| `maxDepth` | `512` | How deep to walk before leaving a subtree unresolved and recording an error. |\n| `cache` | `true` | Pass `false` to bypass the process-wide session cache for this call — everything is re-fetched, nothing is stored. |\n| `parse` | `JSON.parse` | Custom content parser (e.g. YAML-aware). |\n| `trackOrigins` | `false` | Record a per-node origin map on the result. |\n\nErrors (a missing file, a refused host, a refused path, a bad URL, a document too\ndeeply nested) are collected on `result.errors` rather than thrown; the\ncorresponding ref resolves to `{}` so the rest of the document still resolves.\nEach error carries the `path` to the reference that caused it — a path in the\ndocument you named, ending in the keyword (`['properties', 'pet', '$ref']`) — so\na caller can anchor a diagnostic on the `$ref` a reader has to fix. It is empty\nwhen there is nowhere to point: a budget the resolve as a whole overran, or a\nreference written in some other document.\n\n`clearRemoteCache()` drops every cached remote document — useful in tests or\nlong-lived sessions where remote schemas may change. Pass a URL\n(`clearRemoteCache(url)`) to drop just that one. The cache expires entries after\n10 minutes and evicts the least recently used past 256 documents, so a long-lived\nprocess does not accumulate every schema it has ever seen.\n\n### Security posture\n\nThe remote path has always been default-deny; the local path now matches it.\n\n- **Local reads are confined** to `dirname(rootLocation)` unless you pass\n  `allowedRoots`. This is deliberately strict: a ref like `../common/schemas.json`\n  — an ordinary split-spec layout — is refused until you opt in, because the same\n  shape is what reads `/etc/passwd` out of a document you did not write. Both the\n  lexical and the symlink-resolved path must land inside a root, so a symlink\n  planted in the tree cannot be used to escape it. The root document itself is\n  exempt: it is the file you explicitly named.\n- **The session cache is credential-scoped.** Its key covers the request headers,\n  the `fetch`/`parse` callbacks, and the transfer limits, so a document fetched\n  with one tenant's token is invisible to a call carrying different (or no)\n  credentials — and no caller inherits another's `fetch`. In-flight coalescing\n  uses the same key.\n- **The SSRF guard runs in two passes.** `isPrivateHost` is synchronous and reads\n  only the URL (every IPv4 encoding, IPv4-in-IPv6 embeddings, ULA/link-local/\n  site-local IPv6, plus a name denylist for cloud-metadata endpoints).\n  `assertPublicHost` then resolves the name and refuses it when any address is\n  non-public. Both run on every redirect hop.\n- **Known residual gap: DNS rebinding.** A record that changes between the check\n  and the connection still wins; closing that requires pinning the socket to the\n  verified address, which Node's `fetch` does not let us do. What the DNS pass\n  buys is that a name *statically* pointing at a private address is refused —\n  which is the case that actually shows up.\n- **A resolve is bounded** by `maxDocuments`, `totalTimeoutMs`, and `maxDepth`, so\n  a hostile document cannot use the resolver as an egress amplifier, hold the\n  process for hours, or crash it with nesting.\n\n## `$id` scoping\n\nThe supported subset, chosen for the bundled-document reality rather than the\nfull spec:\n\n- A subschema with `$id` is an **embedded resource**: its `$id` (resolved\n  against the enclosing base) becomes the base URI for everything inside it.\n- A ref whose URI — resolved against the enclosing base — **matches an embedded\n  resource's `$id`** resolves to that resource without fetching. A pointer or\n  anchor fragment on such a ref applies *within* that resource.\n- **Anchors** bind within the resource that declares them first; an anchor not\n  found in scope falls back to a document-global search (compatibility with\n  documents that reference across sibling resources).\n- A plain `#/pointer` fragment resolves **within the resource in scope** first,\n  and falls back to the document root when it matches nothing there — which is\n  the behavior bundled real-world documents rely on (a bundled OpenAPI file points\n  at `#/components/schemas/…` from inside an `$id` scope). When both could match,\n  the resource wins, which is the order the spec asks for.\n- `$dynamicRef` prefers a `$dynamicAnchor` in scope, then degrades to `$ref`\n  semantics; a pointer-form `$dynamicRef` (`#/$defs/items`) resolves exactly like\n  a `$ref`, which is what the spec says it is. The full dynamic-scope algorithm\n  (outermost anchor along the runtime reference chain) is not modelled, and\n  cannot be by a resolver that inlines — see [Conformance, measured](#conformance-measured).\n- Document **retrieval is unaffected**: which file/URL an external ref loads\n  from is derived from the referencing document's *location*, never its `$id` —\n  a root `$id` naming a remote URL cannot turn a local sibling-file ref into a\n  network fetch.\n\n## Conformance, measured\n\nInlining a document must not change what it accepts, and that is checked against\nthe corpus of `$ref` shapes the spec authors wrote for exactly this purpose.\n`src/conformance.test.ts` takes every reference-carrying case in the official\n[JSON Schema Test Suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite)\n(required Draft 2020-12 tests), validates the instance twice with\n[`@amritk/runtime-validators`](../runtime-validators) — once through the original\nschema, once through the resolved one — and requires both to agree with the spec:\n\n**170 / 170 cases pass (100%).**\n\nThe corpus is the reference-carrying cases the interpreter already answers\ncorrectly *before* resolution, so a disagreement afterwards is the resolver's and\nnobody else's.\n\nGetting the last ten meant *not* answering them: a `$dynamicRef` whose\n`$dynamicAnchor` name is declared more than once binds at evaluation time, and\ninlining collapses that to one target by construction. Those are now kept in the\noutput with the scaffolding they need, exactly as a reference cycle is — see\n[`$id` scoping](#id-scoping) above. The expected-failure list is empty and kept in\nplace, so the build names the first case that regresses rather than letting a\npercentage tick down. The corpus is vendored under\n[`fixtures/json-schema-test-suite`](../../fixtures/json-schema-test-suite); none\nof it is published.\n\n## Documents\n\nEvery document — local file or remote — is parsed as **JSON** by default, so the\nresolver stays dependency-free. Other formats plug in through the `parse` option:\n`mjst lint` passes a YAML-aware parser there, which is how a `.lint.yaml`\ndocument's cross-file `$ref`s resolve without this package depending on a YAML\nparser.\n\n## Benchmarks\n\n`resolveRefs` memoizes: every unique `$ref` string is resolved once per scope,\nwith a sentinel that breaks cycles by keeping the reference node in place. But it\nis no longer *only* a memoized inliner — before resolving anything it walks the\nwhole document once to build a resource registry (`$id`/`$anchor` scoping), keeps\nrecursive cycles intact, and records a diagnostic for every external ref. The\n`bench/` suite pits it against a bare naive inliner that does none of that — no\nregistry, no scoping, no diagnostics — and re-resolves each ref on every\nencounter, so the gap is the production resolver's *total* per-call cost against\nthe cheapest thing that produces the same inlined shape. Both are asserted to\nproduce byte-identical output before either is timed. Representative numbers\n(Bun 1.4, Linux x64 — your hardware will differ, run `bun run bench` yourself):\n\n| schema | cached | naive | speedup |\n|:---|---:|---:|---:|\n| chain (40 `$ref` → `$ref` links) | ~5.4k ops/s | ~1.2k ops/s | **~4.5×** |\n| reuse-heavy (50 refs → 1 def) | ~8.2k ops/s | ~12.6k ops/s | ~0.65× |\n| cyclic tree | ~47k ops/s | ~210k ops/s | ~0.22× |\n| wide-distinct (60 defs, each used once) | ~3.4k ops/s | ~10.2k ops/s | ~0.34× |\n\nMemoization overtakes the naive walk only on the **chain** shape, where a long\nindirection path is expensive to re-resolve and the cache collapses it to one\npass. On every other shape here the fixed cost of the up-front registry walk (paid\nonce per call, no matter how the refs reuse) outweighs what memoization saves, and\nthe bare inliner is faster — these are small schemas where that one document walk\ndominates. The takeaway is practical: the resolver's per-call floor is a full\ndocument traversal, so in a hot loop resolve a document **once** and reuse the\nresult rather than re-resolving. The `reuse-heavy`, `cyclic`, and `wide-distinct`\nrows are kept in the table precisely to show that trade honestly rather than\ncherry-picking the one shape the cache wins.\n\nOpting into `trackOrigins` (which records where each inlined value came from)\ncosts nothing measurable on these small schemas: the four rows land between −24%\nand +16%, straddling zero, which is run-to-run noise rather than a price.\n","readmeFilename":"README.md"}