{"_id":"@ahmedrowaihi/openapi-tools","_rev":"7-ec7b99ef504a9dc873660e313a355ba6","name":"@ahmedrowaihi/openapi-tools","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"@ahmedrowaihi/openapi-tools","version":"1.0.0","keywords":["openapi","diff","parser","spec","tooling","typescript"],"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","_id":"@ahmedrowaihi/openapi-tools@1.0.0","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/openapi-tools","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"dist":{"shasum":"304879d3c86ab4626c2bac641a41196467fcc82e","tarball":"https://registry.npmjs.org/@ahmedrowaihi/openapi-tools/-/openapi-tools-1.0.0.tgz","fileCount":15,"integrity":"sha512-PUv8niHnKEKMWviX3E3M1bp2c6T8fGd6Kok1eOHAOxUn8N2S4pl+44AU9cg5F68xEiHvgduxRtNyFWxuNNgKrQ==","signatures":[{"sig":"MEYCIQCxmL1VZKrkFi6qMNwWWZfCd79otBauhLdC+sk3b+JvWgIhAJZnmP3ObQJ3KXzORRNiirMoMJ1F6H0LTnVlGi4yZSVL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32278},"main":"./dist/index.js","type":"module","_from":"file:ahmedrowaihi-openapi-tools-1.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"_resolved":"/tmp/4218eece1908d922fda6eb6692d3d575/ahmedrowaihi-openapi-tools-1.0.0.tgz","_integrity":"sha512-PUv8niHnKEKMWviX3E3M1bp2c6T8fGd6Kok1eOHAOxUn8N2S4pl+44AU9cg5F68xEiHvgduxRtNyFWxuNNgKrQ==","repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/openapi-tools"},"_npmVersion":"10.8.2","description":"OpenAPI utilities — spec diffing, parsing, and shared helpers built on hey-api/codegen-core","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22","@hey-api/shared":"^0.4.1","@hey-api/codegen-core":"^0.8.0","@contract-kit/tsconfig":"0.0.0"},"peerDependencies":{"@hey-api/shared":">=0.3.0","@hey-api/codegen-core":">=0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openapi-tools_1.0.0_1777305916073_0.6505421242175591","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @ir-kit/openapi-tools. See https://github.com/ir-kit/ir-kit for migration."},"1.1.0":{"name":"@ahmedrowaihi/openapi-tools","version":"1.1.0","keywords":["openapi","matcher","url-pattern","diff","parser","spec","tooling","typescript"],"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","_id":"@ahmedrowaihi/openapi-tools@1.1.0","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/openapi-tools","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"dist":{"shasum":"60857694c4b67dd7e184722043100dd5ebfe8616","tarball":"https://registry.npmjs.org/@ahmedrowaihi/openapi-tools/-/openapi-tools-1.1.0.tgz","fileCount":31,"integrity":"sha512-8zKeNQO/Ks6CbR/Oxjg32lj2TlSzyBsnGPYBvf2B2PIfrg6csqI3RgoczaMCJ+TLEe+KBwmKI90fcJ2MjAQDeg==","signatures":[{"sig":"MEUCIQDgcVNwGOGEl5Xc/t4dDwY5Bl+QR/hKOk1t3eXJUgo8iwIgHXxcgXCYxCd9PmVFi/9hdgDjNqh664PJ2bhaDhWlvaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahmedrowaihi%2fopenapi-tools@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47221},"main":"./dist/index.js","type":"module","_from":"file:ahmedrowaihi-openapi-tools-1.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ir":{"types":"./dist/ir.d.ts","import":"./dist/ir.js"},"./diff":{"types":"./dist/diff.d.ts","import":"./dist/diff.js"},"./match":{"types":"./dist/match.d.ts","import":"./dist/match.js"},"./parse":{"types":"./dist/parse.d.ts","import":"./dist/parse.js"},"./route":{"types":"./dist/route.d.ts","import":"./dist/route.js"},"./router":{"types":"./dist/router.d.ts","import":"./dist/router.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"_resolved":"/tmp/a56f7d2ee1aa5571c6975c1a2527bef1/ahmedrowaihi-openapi-tools-1.1.0.tgz","_integrity":"sha512-8zKeNQO/Ks6CbR/Oxjg32lj2TlSzyBsnGPYBvf2B2PIfrg6csqI3RgoczaMCJ+TLEe+KBwmKI90fcJ2MjAQDeg==","repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/openapi-tools"},"_npmVersion":"10.8.2","description":"OpenAPI utilities — request matching, spec diffing, parsing. Tree-shakable, pure functions, works on frontend or backend","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"urlpattern-polyfill":"^10.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22","@hey-api/shared":"^0.4.1","@hey-api/codegen-core":"^0.8.0","@contract-kit/tsconfig":"0.0.0"},"peerDependencies":{"@hey-api/shared":">=0.3.0","@hey-api/codegen-core":">=0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openapi-tools_1.1.0_1777318978828_0.10645772539346066","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @ir-kit/openapi-tools. See https://github.com/ir-kit/ir-kit for migration."},"1.2.0":{"name":"@ahmedrowaihi/openapi-tools","version":"1.2.0","keywords":["openapi","matcher","url-pattern","diff","parser","spec","tooling","typescript"],"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","_id":"@ahmedrowaihi/openapi-tools@1.2.0","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/openapi-tools","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"dist":{"shasum":"cf321f45d9e7e2b7c3afdfb293bb8f6e171a47ea","tarball":"https://registry.npmjs.org/@ahmedrowaihi/openapi-tools/-/openapi-tools-1.2.0.tgz","fileCount":55,"integrity":"sha512-OCJrXeWUiEOfMDvcScWinI6PkIvk2af/vQkDBN1TxqusrfdV8x4nuDpwJ9F3IMhIe/uUkE4cjD19Z7wUTEnSBQ==","signatures":[{"sig":"MEYCIQD5SLfNsTH6YuyZLZq5G4XLreMtTheaW7ZkscB+KcDtyAIhAKiai5W4e0v1tFhef7NRNbqcI5h1z7juwA6S03SChYxo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahmedrowaihi%2fopenapi-tools@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79394},"main":"./dist/index.js","type":"module","_from":"file:ahmedrowaihi-openapi-tools-1.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ir":{"types":"./dist/ir.d.ts","import":"./dist/ir.js"},"./diff":{"types":"./dist/diff.d.ts","import":"./dist/diff.js"},"./match":{"types":"./dist/match.d.ts","import":"./dist/match.js"},"./merge":{"types":"./dist/merge.d.ts","import":"./dist/merge.js"},"./parse":{"types":"./dist/parse.d.ts","import":"./dist/parse.js"},"./route":{"types":"./dist/route.d.ts","import":"./dist/route.js"},"./router":{"types":"./dist/router.d.ts","import":"./dist/router.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"tsc && node --test tests/*.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"_resolved":"/tmp/6c9145b1862d5edd80f08d8973ed84b6/ahmedrowaihi-openapi-tools-1.2.0.tgz","_integrity":"sha512-OCJrXeWUiEOfMDvcScWinI6PkIvk2af/vQkDBN1TxqusrfdV8x4nuDpwJ9F3IMhIe/uUkE4cjD19Z7wUTEnSBQ==","repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/openapi-tools"},"_npmVersion":"10.8.2","description":"OpenAPI utilities — request matching, spec diffing, parsing. Tree-shakable, pure functions, works on frontend or backend","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"urlpattern-polyfill":"^10.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22","@hey-api/shared":"^0.4.1","@hey-api/spec-types":"^0.2.0","@hey-api/codegen-core":"^0.8.0","@ahmedrowaihi/tsconfig":"0.0.0"},"peerDependencies":{"@hey-api/shared":">=0.3.0","@hey-api/spec-types":">=0.2.0","@hey-api/codegen-core":">=0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openapi-tools_1.2.0_1777365098564_0.6357150642692633","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @ir-kit/openapi-tools. See https://github.com/ir-kit/ir-kit for migration."},"1.2.1":{"name":"@ahmedrowaihi/openapi-tools","version":"1.2.1","keywords":["openapi","matcher","url-pattern","diff","parser","spec","tooling","typescript"],"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","_id":"@ahmedrowaihi/openapi-tools@1.2.1","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/openapi/tools","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"dist":{"shasum":"9afa0defa116421b77b5e8195c34596c58166b7a","tarball":"https://registry.npmjs.org/@ahmedrowaihi/openapi-tools/-/openapi-tools-1.2.1.tgz","fileCount":55,"integrity":"sha512-7QfbmoMt9WF8DCx0R6xRFTW4nan8WdpYAafZeFO2deP3kTMNaih49NLWO18U1oXrknWJVTLcRD1+9wBLdX7cIA==","signatures":[{"sig":"MEQCIHetLgRPkXGeCKzTBGlyL55of1mCqqtpdkPYz16PaPk9AiBfniF9QMEB+FGZVVo3woVgOAGeCdL4ulaQuyg+tsQeSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahmedrowaihi%2fopenapi-tools@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79484},"main":"./dist/index.js","type":"module","_from":"file:ahmedrowaihi-openapi-tools-1.2.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ir":{"types":"./dist/ir.d.ts","import":"./dist/ir.js"},"./diff":{"types":"./dist/diff.d.ts","import":"./dist/diff.js"},"./match":{"types":"./dist/match.d.ts","import":"./dist/match.js"},"./merge":{"types":"./dist/merge.d.ts","import":"./dist/merge.js"},"./parse":{"types":"./dist/parse.d.ts","import":"./dist/parse.js"},"./route":{"types":"./dist/route.d.ts","import":"./dist/route.js"},"./router":{"types":"./dist/router.d.ts","import":"./dist/router.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"_resolved":"/tmp/6312c3b00e401feac87810b96cd59b4b/ahmedrowaihi-openapi-tools-1.2.1.tgz","_integrity":"sha512-7QfbmoMt9WF8DCx0R6xRFTW4nan8WdpYAafZeFO2deP3kTMNaih49NLWO18U1oXrknWJVTLcRD1+9wBLdX7cIA==","repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/openapi/tools"},"_npmVersion":"10.8.2","description":"OpenAPI utilities — request matching, spec diffing, parsing. Tree-shakable, pure functions, works on frontend or backend","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"urlpattern-polyfill":"^10.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","@types/node":"^22","@hey-api/shared":"^0.4.2","@hey-api/spec-types":"^0.2.0","@hey-api/codegen-core":"^0.8.1","@ahmedrowaihi/tsconfig":"0.0.0"},"peerDependencies":{"@hey-api/shared":">=0.3.0","@hey-api/spec-types":">=0.2.0","@hey-api/codegen-core":">=0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openapi-tools_1.2.1_1777638936485_0.7090463063238122","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @ir-kit/openapi-tools. See https://github.com/ir-kit/ir-kit for migration."},"1.3.0":{"name":"@ahmedrowaihi/openapi-tools","version":"1.3.0","keywords":["openapi","matcher","url-pattern","diff","parser","spec","tooling","typescript"],"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","_id":"@ahmedrowaihi/openapi-tools@1.3.0","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/openapi/tools","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"dist":{"shasum":"99b140f2d99af92e4eb7667e3366070fd60c9a8c","tarball":"https://registry.npmjs.org/@ahmedrowaihi/openapi-tools/-/openapi-tools-1.3.0.tgz","fileCount":59,"integrity":"sha512-Z9rDA13RcURu3tJ0ZyJitEM9yHHXbVcSNHy/JgcSTShwpqAEhpzt9ojNAlkP+mfru1dPpUtgOJ7GHrI+Knukmw==","signatures":[{"sig":"MEQCIEm8FofwgcV2bvHi5Vh71b9rdsToQcHJxKeNnNTcCXsWAiA8MX0xR18p7PcIq1neMIMtqaekEwiUTXghGNGM+QD7kQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahmedrowaihi%2fopenapi-tools@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81851},"main":"./dist/index.js","type":"module","_from":"file:ahmedrowaihi-openapi-tools-1.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ir":{"types":"./dist/ir.d.ts","import":"./dist/ir.js"},"./diff":{"types":"./dist/diff.d.ts","import":"./dist/diff.js"},"./match":{"types":"./dist/match.d.ts","import":"./dist/match.js"},"./merge":{"types":"./dist/merge.d.ts","import":"./dist/merge.js"},"./parse":{"types":"./dist/parse.d.ts","import":"./dist/parse.js"},"./route":{"types":"./dist/route.d.ts","import":"./dist/route.js"},"./router":{"types":"./dist/router.d.ts","import":"./dist/router.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"_resolved":"/tmp/b374bbd6fc954908ab22c988eccd7b55/ahmedrowaihi-openapi-tools-1.3.0.tgz","_integrity":"sha512-Z9rDA13RcURu3tJ0ZyJitEM9yHHXbVcSNHy/JgcSTShwpqAEhpzt9ojNAlkP+mfru1dPpUtgOJ7GHrI+Knukmw==","repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/openapi/tools"},"_npmVersion":"10.8.2","description":"OpenAPI utilities — request matching, spec diffing, parsing. Tree-shakable, pure functions, works on frontend or backend","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"urlpattern-polyfill":"^10.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","@types/node":"^22","@hey-api/shared":"^0.4.2","@hey-api/spec-types":"^0.2.0","@hey-api/codegen-core":"^0.8.1","@ahmedrowaihi/tsconfig":"0.0.0"},"peerDependencies":{"@hey-api/shared":">=0.3.0","@hey-api/spec-types":">=0.2.0","@hey-api/codegen-core":">=0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openapi-tools_1.3.0_1778885510849_0.9266925186783068","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @ir-kit/openapi-tools. See https://github.com/ir-kit/ir-kit for migration."},"1.4.0":{"name":"@ahmedrowaihi/openapi-tools","version":"1.4.0","keywords":["openapi","matcher","url-pattern","diff","parser","spec","tooling","typescript"],"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","_id":"@ahmedrowaihi/openapi-tools@1.4.0","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/openapi/tools","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"dist":{"shasum":"50edb992d1da2442347b8deb21cbeb5830732767","tarball":"https://registry.npmjs.org/@ahmedrowaihi/openapi-tools/-/openapi-tools-1.4.0.tgz","fileCount":63,"integrity":"sha512-7ru2/U3VCLA9mhHL2rjRcAts2uo2yVZpoffR3UnYot69fKjEu06SldmE2tIm/tzSz7NH5fXaJC1CuXKfCoJXUw==","signatures":[{"sig":"MEUCIQD3nP9DY1QlTCteGB2HBw/pE9LeBae8JWfzM1z9cRPcNQIgNLWrdHMV6TQ7HkN5jmtMhLnmwm8jr7jlMG6yLTg1Yo0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahmedrowaihi%2fopenapi-tools@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86502},"main":"./dist/index.js","type":"module","_from":"file:ahmedrowaihi-openapi-tools-1.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./ir":{"types":"./dist/ir.d.ts","import":"./dist/ir.js"},"./diff":{"types":"./dist/diff.d.ts","import":"./dist/diff.js"},"./match":{"types":"./dist/match.d.ts","import":"./dist/match.js"},"./merge":{"types":"./dist/merge.d.ts","import":"./dist/merge.js"},"./parse":{"types":"./dist/parse.d.ts","import":"./dist/parse.js"},"./route":{"types":"./dist/route.d.ts","import":"./dist/route.js"},"./router":{"types":"./dist/router.d.ts","import":"./dist/router.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"_resolved":"/tmp/5de621d441dc3b16a2e6430241c88b96/ahmedrowaihi-openapi-tools-1.4.0.tgz","_integrity":"sha512-7ru2/U3VCLA9mhHL2rjRcAts2uo2yVZpoffR3UnYot69fKjEu06SldmE2tIm/tzSz7NH5fXaJC1CuXKfCoJXUw==","repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/openapi/tools"},"_npmVersion":"10.8.2","description":"OpenAPI utilities — request matching, spec diffing, parsing. Tree-shakable, pure functions, works on frontend or backend","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"urlpattern-polyfill":"^10.1.0","@ahmedrowaihi/openapi-core":"2.0.0","@hey-api/json-schema-ref-parser":"^1.4.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","@types/node":"^22","@hey-api/shared":"^0.4.2","@hey-api/spec-types":"^0.2.0","@hey-api/codegen-core":"^0.8.1","@ahmedrowaihi/tsconfig":"0.0.0"},"peerDependencies":{"@hey-api/shared":">=0.3.0","@hey-api/spec-types":">=0.2.0","@hey-api/codegen-core":">=0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/openapi-tools_1.4.0_1778901873033_0.708161068274983","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @ir-kit/openapi-tools. See https://github.com/ir-kit/ir-kit for migration."}},"time":{"created":"2026-04-27T16:05:15.957Z","modified":"2026-05-21T09:19:04.042Z","1.0.0":"2026-04-27T16:05:16.210Z","1.1.0":"2026-04-27T19:42:59.007Z","1.2.0":"2026-04-28T08:31:38.713Z","1.2.1":"2026-05-01T12:35:36.647Z","1.3.0":"2026-05-15T22:51:50.988Z","1.4.0":"2026-05-16T03:24:33.177Z"},"bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/openapi/tools","keywords":["openapi","matcher","url-pattern","diff","parser","spec","tooling","typescript"],"repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/openapi/tools"},"description":"OpenAPI utilities — request matching, spec diffing, parsing. Tree-shakable, pure functions, works on frontend or backend","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"readme":"# @ahmedrowaihi/openapi-tools\n\nOpenAPI utilities built on top of [`@hey-api/codegen-core`](https://github.com/hey-api/openapi-ts) and `@hey-api/shared`. Spec diffing, parsing, and helpers — usable on their own without `@hey-api/openapi-ts` plugins.\n\nPart of [contract-kit](https://github.com/ahmedrowaihi/contract-kit).\n\n## Install\n\n```bash\npnpm add @ahmedrowaihi/openapi-tools @hey-api/codegen-core @hey-api/shared\n```\n\n## Usage\n\n### Diff two OpenAPI specs\n\n```ts\nimport { diffSpecs, parseSpec } from \"@ahmedrowaihi/openapi-tools\";\n\nconst before = parseSpec(beforeJson);\nconst after = parseSpec(afterJson);\n\nconst report = diffSpecs(before, after, {\n  filter: (method, path) => path.startsWith(\"/v1\"),\n  compare: { request: true, response: true, params: true },\n});\n```\n\n### Parse a spec into hey-api's IR\n\n```ts\nimport { parseSpec } from \"@ahmedrowaihi/openapi-tools\";\n\nconst ir = parseSpec(openApiSpecJson);\n```\n\n## API\n\n| Export | Description |\n| --- | --- |\n| `diffSpecs(before, after, options?)` | Compare two parsed specs, return endpoint-level diff |\n| `parseSpec(spec)` | Parse OpenAPI 2.0 / 3.0 / 3.1 into the shared IR |\n| `DiffOptions` / `DiffReport` / `EndpointDiff` / `ShapeDiff` / `TypeChange` / `RequiredChange` | Public types |\n| `IR` (re-export) | hey-api shared IR namespace |\n\n## Origin\n\nPreviously shipped as `@ahmedrowaihi/openapi-ts-orpc/tools` subpath. Extracted into its own package since the utilities are spec-host-agnostic — they don't depend on oRPC.\n","readmeFilename":"README.md"}