{"_id":"@ahmedrowaihi/oas-core","_rev":"2-40fac620ab5ba36571f4a5c24e09910a","name":"@ahmedrowaihi/oas-core","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"name":"@ahmedrowaihi/oas-core","version":"0.1.0","keywords":["openapi","oas","codegen","sdk","shared"],"author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"license":"MIT","_id":"@ahmedrowaihi/oas-core@0.1.0","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/oas-core","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"dist":{"shasum":"64facc4caec15572bf02689a5a6508cd7de2c6f3","tarball":"https://registry.npmjs.org/@ahmedrowaihi/oas-core/-/oas-core-0.1.0.tgz","fileCount":27,"integrity":"sha512-rJ5+uukf8Z+KXa9QvRjUjZQcnS3IAhwGSNuDZgCadeGtGQFoGGH6gxpt6LJc6HFcXf5NtGC9qkixg+G47sNUYA==","signatures":[{"sig":"MEQCIHWKltFIHzy+asM132C5GVg+d3/WL2XXs6g8B8JGFaoHAiBpfDhVUQYqBx+VvNx3mLScy06ToDcmojUQ4FOpW5KfBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahmedrowaihi%2foas-core@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25389},"main":"./dist/index.js","type":"module","_from":"file:ahmedrowaihi-oas-core-0.1.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","test":"tsc && node --test tests/*.test.ts","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"_resolved":"/tmp/75a73b85b40f5850eb5b713a1a14f1c3/ahmedrowaihi-oas-core-0.1.0.tgz","_integrity":"sha512-rJ5+uukf8Z+KXa9QvRjUjZQcnS3IAhwGSNuDZgCadeGtGQFoGGH6gxpt6LJc6HFcXf5NtGC9qkixg+G47sNUYA==","repository":{"url":"git+https://github.com/ahmedrowaihi/contract-kit.git","type":"git","directory":"packages/oas-core"},"_npmVersion":"10.8.2","description":"Shared building blocks for native-client SDK generators on top of OpenAPI 3.x — identifier transforms, security-scheme walkers, ref helpers, filesystem safety. Used by @ahmedrowaihi/openapi-go, @ahmedrowaihi/openapi-kotlin, @ahmedrowaihi/openapi-swift.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22","@hey-api/shared":"^0.4.2","@ahmedrowaihi/tsconfig":"0.0.0"},"peerDependencies":{"@hey-api/shared":">=0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/oas-core_0.1.0_1777528717740_0.6014620739348977","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@ahmedrowaihi/oas-core","version":"1.0.0","description":"Shared building blocks for native-client SDK generators on top of OpenAPI 3.x — identifier transforms, security-scheme walkers, ref helpers, filesystem safety. Used by @ahmedrowaihi/openapi-go, @ahmedrowaihi/openapi-kotlin, @ahmedrowaihi/openapi-swift.","keywords":["openapi","oas","codegen","sdk","shared"],"homepage":"https://github.com/ahmedrowaihi/contract-kit/tree/main/packages/oas-core","bugs":{"url":"https://github.com/ahmedrowaihi/contract-kit/issues"},"license":"MIT","author":{"name":"Ahmed Rowaihi","email":"ahmedrowaihi@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/ahmedrowaihi/contract-kit.git","directory":"packages/oas-core"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public","provenance":true},"peerDependencies":{"@hey-api/shared":">=0.3.0"},"devDependencies":{"@hey-api/shared":"^0.4.2","@types/node":"^22","vitest":"^4.0.0","@ahmedrowaihi/tsconfig":"0.0.0"},"engines":{"node":">=20.19.0"},"scripts":{"build":"tsc -p tsconfig.build.json","dev":"tsc -p tsconfig.build.json --watch","typecheck":"tsc --noEmit","test":"vitest run"},"_id":"@ahmedrowaihi/oas-core@1.0.0","_integrity":"sha512-PIkf/MWsSVfBQ4Rdo7FfQIfATlRyhYaoW1e+Z2Xkvg2yIgyqRp9rZAHoz+E+yIbD0xqLe9xYOdxBBIGp4723sA==","_resolved":"/tmp/ba38e916d0bd32a9b5ed5317ea40bb01/ahmedrowaihi-oas-core-1.0.0.tgz","_from":"file:ahmedrowaihi-oas-core-1.0.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-PIkf/MWsSVfBQ4Rdo7FfQIfATlRyhYaoW1e+Z2Xkvg2yIgyqRp9rZAHoz+E+yIbD0xqLe9xYOdxBBIGp4723sA==","shasum":"a085315858cb37b34616a792d7870c055a92c634","tarball":"https://registry.npmjs.org/@ahmedrowaihi/oas-core/-/oas-core-1.0.0.tgz","fileCount":51,"unpackedSize":68564,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahmedrowaihi%2foas-core@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEKHL7ZYZqNgpRr7aSKxzDdCrPo7U8Hs6ebzCcvsjW1WAiBVI3MiFfw3lcaV1p9LHyCNHTQ490jGxZlWlYbCdf2Bgw=="}]},"_npmUser":{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"},"directories":{},"maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/oas-core_1.0.0_1777621360961_0.7677772276894215"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T05:58:37.676Z","modified":"2026-05-01T07:42:41.371Z","0.1.0":"2026-04-30T05:58:37.897Z","1.0.0":"2026-05-01T07:42:41.103Z"},"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/oas-core","keywords":["openapi","oas","codegen","sdk","shared"],"repository":{"type":"git","url":"git+https://github.com/ahmedrowaihi/contract-kit.git","directory":"packages/oas-core"},"description":"Shared building blocks for native-client SDK generators on top of OpenAPI 3.x — identifier transforms, security-scheme walkers, ref helpers, filesystem safety. Used by @ahmedrowaihi/openapi-go, @ahmedrowaihi/openapi-kotlin, @ahmedrowaihi/openapi-swift.","maintainers":[{"name":"ahmedrowaihi","email":"ahmedrowaihi1@gmail.com"}],"readme":"# @ahmedrowaihi/oas-core\n\nFoundational helpers shared by the native-client SDK generators in [contract-kit](https://github.com/ahmedrowaihi/contract-kit) — used by [`@ahmedrowaihi/openapi-go`](../openapi-go), [`@ahmedrowaihi/openapi-kotlin`](../openapi-kotlin), and [`@ahmedrowaihi/openapi-swift`](../openapi-swift).\n\nNot intended for direct consumption — the API surface here is whatever the three SDK generators happen to need in common, and may shift as new generators land.\n\n## What's in scope\n\n- **`pascal` / `camel` / `safeIdent` / `safeCaseName` / `synthName`** — pure string transforms (no reserved-word handling). Each generator layers its own `paramIdent` / `exportedIdent` / `enumEntryIdent` on top.\n- **`refName` / `isMeaningless`** — turn `#/components/schemas/Foo` into `Foo`; flag empty / unknown / void schemas.\n- **`extractSecuritySchemeNames` / `securityKey`** — walk the raw bundled spec to recover scheme names per (path, method), since hey-api's IR drops them.\n- **`HTTP_METHODS` / `HTTP_METHOD_LITERAL` / `JSON_MEDIA_RE` / `MULTIPART_FORM_MEDIA` / `FORM_URLENCODED_MEDIA`** — canonical constants.\n- **`assertSafeOutputDir` / `defaultProjectName`** — filesystem guardrails for the `clean: true` rm path, plus a sensible default for `rootProject.name` / `Package(name:)`.\n\n## What's *not* in scope\n\n- Per-language reserved-word sets, visibility rules, or DSL builders.\n- Schema → decl translation (`schemasToDecls`) and the per-tag interface orchestration loop. They're structurally identical across generators but tightly coupled to per-language Decl types — sharing them would require parameterising over every DSL builder, which obscures more than it dedupes.\n\n## Install\n\n```bash\npnpm add @ahmedrowaihi/oas-core @hey-api/shared\n```\n\n`@hey-api/shared` is a peer dep so the IR types stay aligned with the generator's own version.\n","readmeFilename":"README.md"}