{"_id":"@amritk/yaml","_rev":"18-87eb9d4d0821375aa05fd3758e8e3cbd","name":"@amritk/yaml","dist-tags":{"latest":"0.7.2"},"versions":{"0.1.0":{"name":"@amritk/yaml","version":"0.1.0","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.1.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"1fde3e828e2af967de0e0829ccf8099379b72584","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.1.0.tgz","fileCount":41,"integrity":"sha512-Gy1alg3z702hCS2uIdYY2pHd4L/IVUrGpZp4IsUx4nHBopxaude3O6xw1e8NLHuNIlrU54PNrSwowr1ei9e/fA==","signatures":[{"sig":"MEYCIQC0X28lfeK0vlqRVEtvqSnIar4VSNXM3h8zURxAsNITgAIhAKUubOz0noi0dd3yHZBi80GovJ8epR0NxU3iSAl6s5la","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121904},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"229c0b5cc9610c20b2686520ee4f93f03883283a","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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":"amritk","email":"amrit+spam@hockey-community.com"},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.6.0","description":"A tiny, dependency-free YAML parser with exact source positions. Built for diagnostics: every node maps back to an exact line:column.","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.1.0_1780175971523_0.5907878251613821","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amritk/yaml","version":"0.1.1","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.1.1","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"65a4dd42c66907a0b31d97bb61f2a1d12eb58054","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.1.1.tgz","fileCount":41,"integrity":"sha512-OrX40wXS4OnqXGuF9Dm/Nui1tSOBb8irN/sr3ehhvsnFhOhAZ6k5CEySqbZfwnSjCAvVn6GMe8WYQSX8K8ChJg==","signatures":[{"sig":"MEUCIFJzLgVwwrI1sSIzBXmzOIGR2jRtEQfWD5e9n5xHCEnQAiEAjNMfMvhJuJzkSko4ZN2bS+tYyO5UwFiclAglHSytFN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125490},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","development":"./src/index.ts"}},"gitHead":"92fb25211cfbc8a47be7019d16e546371078d267","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.16.0","description":"A tiny, dependency-free YAML parser with exact source positions. Built for diagnostics: every node maps back to an exact line:column.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.1.1_1780180120276_0.8714678363174515","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@amritk/yaml","version":"0.2.0","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.2.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"653521435719bb0caf084d558e1eb55abbd2d091","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.2.0.tgz","fileCount":18,"integrity":"sha512-/qW/eA23GhVy67vib2j4kL7P4QHdU8S1t3DOydu+gbC4NGMKCligaGMa4KXLw70sn7yqfdpBgSrWNZUeQuOQNg==","signatures":[{"sig":"MEUCID0GiOtiBuYP5H4kC6nbY/mp+WB2SqXZqM7f7cROAZClAiEAsTxjjrOVqAN0RUj+PJgmS0uXjoIzVv/OyDrXc3Y8xJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79918},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"ccbe6e42ca939267bd114da29e0da88efb0bf6c8","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.16.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.2.0_1780473271069_0.27425465483376943","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@amritk/yaml","version":"0.2.1","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.2.1","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"8b0b7750305400d23b8aadd1605dc89583e4af86","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.2.1.tgz","fileCount":18,"integrity":"sha512-wozDH803y8GdYNrC8MPQHjlQgClyn35RfZ6/YUuTXvM9YWqDr+2wbJFgvVE7HxHD1Xzas32b/oYKjSACeUpfYw==","signatures":[{"sig":"MEQCIFBxpaM8E/C4vatDHqUYpD4eXms6dNR+6+MkCt8Z+Ux5AiB48u+OCLCFL8zIULgixRsLdsoGYADvw3l2xdLcJiX2Jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80690},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.16.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.2.1_1781115049160_0.10770436214321433","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@amritk/yaml","version":"0.2.2","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.2.2","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"cc265977e93fb7824f9803b0b58b3e61cd44eab3","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.2.2.tgz","fileCount":18,"integrity":"sha512-LuPAgYoiF79nSjrZ9IynCfDr0Ou9vZUxNDLtJjRQLAf8oqSbFh16B+SLnyT+gvNn7gGjNlaWREMlP4hL+IjWiQ==","signatures":[{"sig":"MEUCIQCfWEWpnjtv3F/Ky5pC7iDa2jLDJqIzKvFKb+FC86tixwIgBjKJ4Uy+dk6+l38flQ6fH0tZZl2K+HI7nJRB8HmdtxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81052},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.17.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.2.2_1781732276841_0.022497806388569686","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@amritk/yaml","version":"0.2.3","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.2.3","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"de2f839a3d9cb66f25515d8f505575af2c256c41","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.2.3.tgz","fileCount":18,"integrity":"sha512-wWGIgdWNy7+YeeCUk6O2AQCZDNtga1DxkLfaTKFZTzcBcdbC8RdZGH2+O2QJ8/iAYrYRUtuIGzPKJmhTx5wtvg==","signatures":[{"sig":"MEUCICQ9sT12+PB3aaqW0aYGLlRhRjNDiy+w0Q+p1LYuG4eVAiEAqKb7HI4fCm5piq6puVexeAcaB5eTB9JIyBRHMmMMpMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88069},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.18.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.2.3_1783267882722_0.3063910980884328","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amritk/yaml","version":"0.3.0","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.3.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"3aa3e018a0d1323a444d2b583d229a12421bf48f","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.3.0.tgz","fileCount":18,"integrity":"sha512-Z8BChVE+6TfwHPqVhO3XKh+XGCKqDHWK4f6ruaZxvpaJTMvHEP3mZAhrBml0DSKuPTrfthdyo4UK8XRO2r3m6w==","signatures":[{"sig":"MEUCIQC2PfXACta3TNYLb32PbGNvyU1EiBBpQ+zHO+MB0ZghzQIgdocbRKcuvRRjlWaBLfjrWnHWD5YL+7spRmqQKXuH8l0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91316},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"12.0.1","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.3.0_1784012641565_0.6961424088119881","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@amritk/yaml","version":"0.3.1","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.3.1","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"2caad37ed2a1d06a7d6c462e3929d9389979fc53","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.3.1.tgz","fileCount":18,"integrity":"sha512-v5kch/4KuEuYTLMsepppxU5SVwj49xO5sNjGOtmuO3sV9WIp1udh523B1Y0GcpTn8m9Q6PQvhBOmFCD4ejLXaQ==","signatures":[{"sig":"MEQCIAyhu9MK01NlKXYYtso1w1PUuqiAJXcDR86HLtJy8MJPAiBLAZYigaqUT9quaPQtj684sJSbTPxom59CbyBDaxBQRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91782},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"12.0.1","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.3.1_1784255647619_0.5126751295290919","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@amritk/yaml","version":"0.3.2","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.3.2","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"42b43d615e29c83f0c0f3527ab6f0e1f7ab72c90","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.3.2.tgz","fileCount":19,"integrity":"sha512-hUeC7fG2mKdXHzeXuJ2DeynV2hsbOvjz55jnND+XqGQXOshfY3+zmk0BvACJMsLHxdeaz2ixnVAo/Voceq4MwQ==","signatures":[{"sig":"MEQCIAnvrQNwe72klok7WYeo6AOoVLl8RE10un0fQthWWjH/AiBrEuxv16271d2g7Nik3TGjf4Un3hwkL+7YIMUwIgsmFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92845},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"12.0.1","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.3.2_1784280009474_0.7070109680231436","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@amritk/yaml","version":"0.3.3","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.3.3","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"43a907052b59d6ef5c594bd7e2ce52ebabaffd4b","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.3.3.tgz","fileCount":19,"integrity":"sha512-NdoO1ZInWGYge6aaFg7bzleGegdxwei5222FKIy8npbtlF+BPeORHBUPtPM65sGvEtz+VQf4WHQmjCroYMZx+A==","signatures":[{"sig":"MEYCIQCay2SMPHvY3Xk+ugYpn7DUrNJcfjuSMq7dN/4ZD3wnWQIhAJx0yU1fT4L0OWPHXdCPR2eV4+qhoQKonzFUCsMWFjhF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64766},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"12.0.1","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.3.3_1784452131347_0.41042700742021565","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@amritk/yaml","version":"0.3.4","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.3.4","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"b39d3b00dfecbbbce6a46095d5e151a97d2e7bf2","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.3.4.tgz","fileCount":20,"integrity":"sha512-EZmt08Uu58xngyM8C++O3LdSICJXEOnlDe5VsKt2D1IKf0sJmRcUURfG/poYkbMO3Q77F4ZkUKgLhJgo1sJrSA==","signatures":[{"sig":"MEUCIE+Jq7ZSPzt4537SGqa2GXICRiDE/ECcS/2bm2mPlrgGAiEAtnghoNeCtiu3ZnD3zw5H8YHoasKLJybQjFtppodlfyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67129},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"12.0.1","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.3.4_1784702759828_0.6702287299193899","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@amritk/yaml","version":"0.3.5","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.3.5","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"63fc103d59aa3100d4b91bc4a822f3888e496768","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.3.5.tgz","fileCount":20,"integrity":"sha512-5TpZvht2LYU3Iuf8ZBo/lMiM6IwbFhHWWGYT0mVsnHz4GLdE5PaxvC6lS5gzo9ycJoosVB6qdmo1gut0hJ9nlA==","signatures":[{"sig":"MEYCIQDTH/dflSb9S3PvCxpsw+NwlQ3OOhdziwzfm6djf0iXMgIhAMV3qr6/F8R8juvgJB8R/IcIgI9oAEy/2ZRXgLQfczmB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67073},"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 ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.18.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.3.5_1785262240833_0.5140101240918691","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@amritk/yaml","version":"0.4.0","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.4.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"80f9d070e42041bcc79588bacb10888d2bc51d09","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.4.0.tgz","fileCount":20,"integrity":"sha512-EkoSVCRXnkAfssx6UjS05sHu3blHSOdwgNDUwHmSmMMlmciTRxopp+htjCF4N2DDN1QypjCfz6rY8e6YKzpgJg==","signatures":[{"sig":"MEYCIQCWd4OwOrDRFzX83wzepIy34kNZNhPat5gOknezpOFyyQIhAMQSOLuOLZg6FLX7Zkjfzxz9ZCb6ECbevAM8SWVUtAKu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80065},"type":"module","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a847520955a31ba4dfcac8948dfd5d964cf0bb40","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.19.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0","yaml-test-suite":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.4.0_1785453364571_0.7218362414149722","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@amritk/yaml","version":"0.5.0","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.5.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"eabd781c475f8731343227d65fd31a022afe2439","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.5.0.tgz","fileCount":20,"integrity":"sha512-0YtQS4p+MEdNorWDJFrERuULAZrM9jqViIRFXgJUM9XpfHx+yIYOXU1ccaYgwyz1Sbnql/RIxiN9T/q1dFDZFw==","signatures":[{"sig":"MEYCIQCJ2itAQPPZohA0wzln4TFjJR3VBOuLe74hg1gDbrGoUQIhALsSuQuXSovWDD8sCaZYY5ILUxCSUb8sIGa8V5AruZ5d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107447},"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":"846ea8bfd0ad501a9f7a6d6fa21258b558ac5e4a","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.19.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0","yaml-test-suite":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.5.0_1785867567031_0.26359667163044653","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@amritk/yaml","version":"0.6.0","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.6.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"0e503e1d3143f3e694a20c4543b17bce2994e1cd","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.6.0.tgz","fileCount":20,"integrity":"sha512-Kyoeo3UKxxuuyFf99HPaCi8qY+51dWjsNAWeYa0Apnnho8uZc+X2/rheOU6S6engr0HWMNbfNWzbEcSqPs26NA==","signatures":[{"sig":"MEQCIFGRSu5+ukDWm9sIMRBdculd9oUtXfjnOJJDY4ypd35gAiAOZ8H3oqnzn7zK5dOpdqGTffSafvkJwYwS9WLBwl8anw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120397},"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":"c3863a9e7f666be6f4b800b2800b59d13097c368","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.19.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0","yaml-test-suite":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.6.0_1785899946511_0.5337706191812235","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@amritk/yaml","version":"0.7.0","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.7.0","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"3ad40dbd6544d6328e1a51f77cb0766fa99ece69","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.7.0.tgz","fileCount":20,"integrity":"sha512-ITLziCQKDiT/VKRhKUmPrmf+NPLmamqGTwGpZNi5vcBRgCTAC18r8J1yXNHLrPuUp6m03rw/YXBucVUJZ0gkJw==","signatures":[{"sig":"MEUCIFLhy43MEmCrt0cai3MOlxjvj+OPSmlY/jjkc5kne0KJAiEA5WVWP4g4acEzWrHk9zIEDEA+64ch4fnuqsibEl66BF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125401},"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":"bca90d95d94dfbe78cabd0d47214d245ff56e987","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.19.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0","yaml-test-suite":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.7.0_1786003976412_0.4417308660409949","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@amritk/yaml","version":"0.7.1","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"author":{"name":"amritk"},"license":"MIT","_id":"@amritk/yaml@0.7.1","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","bugs":{"url":"https://github.com/amritk/mjst/issues"},"dist":{"shasum":"eb3003d1e0ecb901a272698c68ba9681826febad","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.7.1.tgz","fileCount":20,"integrity":"sha512-pYx0o7qB4cexfJ2AVeJtWQ/E4e9R+BOQIyvDr+APZitBNTTOUSMd+J5TnDNO/G6tfR5mqJsRUwTK9jKAC48cfw==","signatures":[{"sig":"MEUCICbQ4IC4musk1KydShRjwNsriosaap8IYBOzVtU9LKJyAiEAw5E8iBlFsjDGZPg8Hsg1GVPzn9n7SRfaBfH0ABeq9FQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125401},"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":"a4683ed81fdf8c600c59b7b2589c019a1615b972","scripts":{"test":"NODE_ENV=production vitest run --root ../.. yaml","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:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"repository":{"url":"git+https://github.com/amritk/mjst.git","type":"git","directory":"packages/yaml"},"_npmVersion":"11.19.0","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.6.0","js-yaml":"^4.1.0","yaml-test-suite":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/yaml_0.7.1_1786173897398_0.2534438444188023","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@amritk/yaml","version":"0.7.2","description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","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":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"repository":{"type":"git","url":"git+https://github.com/amritk/mjst.git","directory":"packages/yaml"},"homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#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 ../.. yaml","bench":"bun run ./bench/run.ts"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"devDependencies":{"js-yaml":"^4.3.1","yaml":"^2.9.0","yaml-test-suite":"0.1.0"},"gitHead":"3078ec8c5b266082c862fecd86f122d21c591270","_id":"@amritk/yaml@0.7.2","_nodeVersion":"24.19.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-WQQOVhe3eZM4UMRvjoHuvi0kCyNozt6dIWhAoZMM5KZLNWfG7Kasc9X6sTrC3ZAGb28P9gl5AD4WSNMUJddG4w==","shasum":"699786f36a01f4f856c17e56a885a66068165154","tarball":"https://registry.npmjs.org/@amritk/yaml/-/yaml-0.7.2.tgz","fileCount":20,"unpackedSize":129139,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amritk%2fyaml@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFQvVKemEmZxAlm/RSnRVESR90gMLM9DhKYJKqthHXWqAiEA0kCMxTXtkTCo0P0NuQvGDXWoWwOWwWr8x5j5Genr7SA="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6436a052-3e38-4f45-bb1e-0172224ffaf9"}},"directories":{},"maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/yaml_0.7.2_1788224634961_0.7052935808579284"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T21:19:31.375Z","modified":"2026-09-01T01:03:55.393Z","0.1.0":"2026-05-30T21:19:31.687Z","0.1.1":"2026-05-30T22:28:40.421Z","0.2.0":"2026-06-03T07:54:31.208Z","0.2.1":"2026-06-10T18:10:49.310Z","0.2.2":"2026-06-17T21:37:57.023Z","0.2.3":"2026-07-05T16:11:22.873Z","0.3.0":"2026-07-14T07:04:01.734Z","0.3.1":"2026-07-17T02:34:07.757Z","0.3.2":"2026-07-17T09:20:09.611Z","0.3.3":"2026-07-19T09:08:51.507Z","0.3.4":"2026-07-22T06:46:00.003Z","0.3.5":"2026-07-28T18:10:40.955Z","0.4.0":"2026-07-30T23:16:04.826Z","0.5.0":"2026-08-04T18:19:27.184Z","0.6.0":"2026-08-05T03:19:06.696Z","0.7.0":"2026-08-06T08:12:56.583Z","0.7.1":"2026-08-08T07:24:57.564Z","0.7.2":"2026-09-01T01:03:55.102Z"},"bugs":{"url":"https://github.com/amritk/mjst/issues"},"author":{"name":"amritk"},"license":"MIT","homepage":"https://github.com/amritk/mjst/tree/main/packages/yaml#readme","keywords":["yaml","parser","yaml-parser","source-map","diagnostics","lint","openapi","typescript","fast","mjst"],"repository":{"type":"git","url":"git+https://github.com/amritk/mjst.git","directory":"packages/yaml"},"description":"A fast, featherweight, zero-dependency YAML parser for OpenAPI tooling — with exact source positions (line:column) on every node.","maintainers":[{"name":"amritk","email":"amrit+spam@hockey-community.com"}],"readme":"<div align=\"center\">\n\n# @amritk/yaml\n\n**The featherweight YAML parser built for OpenAPI tooling — fast, zero-dependency, and it never loses track of where a value came from, down to the column.**\n\n![status](https://img.shields.io/badge/status-pre--alpha-ef4444?style=flat-square)&nbsp;\n![version](https://img.shields.io/npm/v/@amritk/yaml?style=flat-square&logo=npm&logoColor=white&label=version&color=6366f1)&nbsp;\n![license](https://img.shields.io/badge/license-MIT-22c55e?style=flat-square)&nbsp;\n![dependencies](https://img.shields.io/badge/dependencies-0-f97316?style=flat-square)&nbsp;\n![node](https://img.shields.io/badge/node-%E2%89%A520-339933?style=flat-square&logo=node.js&logoColor=white)&nbsp;\n![vibe coded](https://img.shields.io/badge/vibe-coded-a855f7?style=flat-square)\n\n</div>\n\n---\n\n## Overview\n\n`@amritk/yaml` parses YAML into a JavaScript value **and** a lightweight tree where **every node records the exact source it came from** — a `start` offset (inclusive) and an `end` offset (exclusive). That second part is the whole point: a linter or language server needs to put a squiggle at an exact `line:column`, and most fast YAML parsers throw position information away.\n\nIt is **zero-dependency** and tuned to be **small and fast**. Against the two parsers people reach for on the web:\n\n- **vs [`yaml`](https://www.npmjs.com/package/yaml) (eemeli)** — the only other parser here that also tracks source positions — building the source-mapped tree is **~29–39× faster**, and the bundle is **~3.3× smaller**.\n- **vs [`js-yaml`](https://www.npmjs.com/package/js-yaml)** — which has **no concept of source positions** — parsing straight to data is **~1.7–1.9× faster**, the bundle is **~1.3× smaller**, and we *also* hand you the positioned tree it cannot produce.\n\nIt passes **397 of the 402 cases** in the official YAML test suite, with every\nremaining case [written down and explained](#conformance-measured) rather than\nleft to chance.\n\nIt targets the YAML that real configuration and OpenAPI documents use: block and flow collections, all three quoting styles, literal/folded block scalars with chomping, comments, anchors, aliases, merge keys, explicit `? key` / `: value` entries, and multi-document (`---`-separated) streams. Scalars resolve via the YAML 1.2 **core schema** — so an OpenAPI `version: 1.0.0` stays the string `\"1.0.0\"` instead of turning into a number — and the core-schema `!!` tags (`!!str`, `!!int`, `!!float`, `!!bool`, `!!null`) coerce a value when written.\n\n**OpenAPI compatibility.** OpenAPI restricts its YAML to the JSON-compatible subset — *\"tags MUST be limited to those allowed by the JSON Schema ruleset\"* and map keys must be scalar strings — and that subset is exactly what's covered above. Keeping `version: 1.0.0` a string (rather than a float) and *not* coercing untagged ISO dates into `Date`s is the correct, round-trip-safe behavior an OpenAPI tool needs.\n\n**JSON in, same value out.** YAML 1.2 is a strict superset of JSON, so a `.json` document goes through this parser and comes out as `JSON.parse` would have produced it — which is what lets `@amritk/lint` route both formats through one code path and lets a `$ref` point at either. That is checked rather than assumed: `src/json-superset.test.ts` runs a generated corpus (every value in six spellings — compact, 2-space, **tab-indented**, CRLF, and with leading/trailing blank lines) against `JSON.parse` and requires an identical value *and* zero diagnostics for each, and `@amritk/lint` pins the two parsers to identical data, diagnostics, and `line:column` ranges for every path in a JSON document.\n\nBeyond that JSON-compatible core, the common extended tags resolve too, for general config files (Kubernetes, CI, Ansible) that use them — matching `yaml` (eemeli): `!!binary` → `Uint8Array`, `!!timestamp` → `Date`, `!!set` → `Set`, and `!!omap` → `Map`. These fire only on an *explicit* tag, so they never change how a tagless OpenAPI document parses. (A conformant OpenAPI spec won't contain them.)\n\n---\n\n## Installation\n\n```bash\nnpm install @amritk/yaml\n# or\npnpm add @amritk/yaml\n# or\nbun add @amritk/yaml\n```\n\n---\n\n## Usage\n\n### Parse to data\n\n```ts\nimport { parse } from '@amritk/yaml'\n\nparse('openapi: 3.1.0\\ninfo:\\n  title: My API\\n')\n// → { openapi: '3.1.0', info: { title: 'My API' } }\n```\n\n### Parse with source positions (the diagnostics path)\n\n```ts\nimport { lineCounter, nodeAtPath, parseDocument } from '@amritk/yaml'\n\nconst source = 'info:\\n  title: My API\\n  version: 1.0.0\\n'\nconst doc = parseDocument(source)\n\n// Walk to a value by its JSON path and read its exact span.\nconst node = nodeAtPath(doc.contents, ['info', 'version'])\nconst lc = lineCounter(source)\n\nlc.linePos(node.start) // → { line: 3, col: 12 }  (1-based)\nlc.linePos(node.end) // → { line: 3, col: 17 }\n\n// Parser-level problems (duplicate keys, unterminated flow, …) come with spans too.\nfor (const error of doc.errors) {\n  const { line, col } = lc.linePos(error.start)\n  console.error(`${line}:${col} ${error.message}`)\n}\n```\n\n`nodeAtPath(root, path, closest)` returns the node at a JSON path, or — with `closest: true` — the nearest existing ancestor, so a diagnostic can still point somewhere real when the exact path is missing.\n\nAn `*alias` on the way down is followed to the collection it names, because `toJS()` expands it: `required: *ref` pointing at a sequence means `['…', 'required', 0]` addresses a real value, and it resolves to the node inside the anchored definition — which is where that value is written. A path that *ends* on the alias returns the alias node itself, so a diagnostic about the reference points at the `*ref` rather than at the distant anchor.\n\nA key written more than once resolves to the pair that **won** the projection — the last one, which is the value `toJS()` holds and the rule `JSON.parse` follows. (Duplicates are an error by default; this is what `uniqueKeys: false` gets you.)\n\nA key written with **no value** — `paths:` on its own line — projects to `null`, and there is no value node to return, so the lookup is `undefined` and `closest: true` falls back to the mapping that holds the key.\n\n### Parse a multi-document stream\n\n```ts\nimport { parseAllDocuments } from '@amritk/yaml'\n\nconst docs = parseAllDocuments('kind: Service\\n---\\nkind: Deployment\\n')\ndocs.map((d) => d.toJS())\n// → [{ kind: 'Service' }, { kind: 'Deployment' }]\n```\n\nEach document gets its own `contents`, `errors`, `warnings`, and anchor scope (an alias in one document does not resolve an anchor declared in another). `parseDocument` reads only the first document of a stream, and warns (`MULTIPLE_DOCUMENTS`) when it had to leave one behind.\n\n### Walk the tree\n\nThe node guards mirror the mainstream `yaml` package, so traversal code is mechanical:\n\n```ts\nimport { isMap, isScalar, isSeq, parseDocument } from '@amritk/yaml'\n\nconst { contents } = parseDocument(source)\nif (isMap(contents)) {\n  for (const pair of contents.items) {\n    if (isScalar(pair.key)) console.log(pair.key.value, pair.value?.start, pair.value?.end)\n  }\n}\n```\n\n---\n\n## API\n\n| Export | What it does |\n| --- | --- |\n| `parse(source, options?)` | Parse straight to a JavaScript value, like `JSON.parse`. |\n| `parseDocument(source, options?)` | Parse to `{ contents, errors, warnings, comments, toJS() }` where every node carries `start`/`end` source offsets. |\n| `parseAllDocuments(source, options?)` | Parse a multi-document (`---`-separated) stream to an array of documents, each with its own anchors, problems, and comments. |\n| `nodeAtPath(root, path, closest?)` | Resolve a JSON path to its node (carrying `start`/`end`), optionally falling back to the closest ancestor. Follows an `*alias` on the way down, so a path under an aliased collection resolves to the node inside the anchored value. |\n| `lineCounter(source)` | Build an `offset → { line, col }` mapper (1-based). |\n| `keyText(node)` | The string a mapping key projects to in `toJS()` output — the same string `nodeAtPath` matches a path segment against. Use it when you walk the tree yourself and need your paths to line up with the projected data. Rendering is bounded, so a key built from aliases that expand exponentially is cut short with `…` rather than run away. |\n| `isScalar` / `isMap` / `isSeq` / `isPair` / `isAlias` | Narrowing guards over the node union. |\n\n**Options**\n\n- `uniqueKeys` (default `true`) — report duplicate mapping keys as errors. Set `false` to allow them (last value wins).\n- `merge` (default `true`) — honor the `<<` merge key. Set `false` to treat `<<` as an ordinary key.\n- `keepComments` (default `false`) — collect comments onto `doc.comments`. Off by default so parsing to data does not pay to build the list.\n\n### Comments\n\nComments are skipped unless you ask for them. With `keepComments`, each one\narrives on `doc.comments` in source order with its exact span:\n\n```ts\nconst doc = parseDocument('# which API\\nopenapi: 3.1.0 # version\\n', { keepComments: true })\ndoc.comments\n// → [ { text: ' which API', start: 0, end: 11 },\n//     { text: ' version',   start: 27, end: 36 } ]\n```\n\n`text` is everything after the `#`; `start` is the `#` itself and `end` is the\nline break, so `source.slice(start, end)` gives the comment back verbatim.\n\nThe point of getting these from the parser rather than scanning for `#` yourself\nis that **only the parser knows which `#` are comments**. Inside a quoted scalar,\na block scalar, or a plain scalar, a `#` is content — `a: \"not # a comment\"` and\n`a: foo#bar` hold none — and no amount of regex reliably tells the difference.\n\nIt is a flat list rather than a `comment` field per node on purpose: which node a\ncomment belongs to is a policy call (the line above a key usually introduces it;\nthe one trailing the previous line usually does not), and a parser that guesses\nforces its guess on everyone. Pair the spans against any node's `start`/`end` and\napply your own rule.\n\n---\n\n## Performance\n\nRun it yourself with `bun run bench`. Numbers below are a median of three runs\non one Linux x64 machine under Bun 1.4 — treat the ratios as the durable part\nand the absolute throughput as a property of that box.\n\n**Parse to a source-mapped tree** — the job this package exists for. `js-yaml` cannot produce positions, so it is not a candidate here.\n\n| fixture | @amritk/yaml | yaml (eemeli) | speedup |\n| --- | --- | --- | --- |\n| small (155 B) | 455k ops/s | 15.4k ops/s | **29.9×** |\n| medium (2 KB) | 37.0k ops/s | 1.0k ops/s | **35.6×** |\n| large (100 KB) | 628 ops/s | 19.4 ops/s | **32.3×** |\n\n**Parse to plain data** — all three can do this.\n\n| fixture | @amritk/yaml | yaml | js-yaml | vs yaml | vs js-yaml |\n| --- | --- | --- | --- | --- | --- |\n| small | 258k | 14.6k | 124k | 17.1× | 2.01× |\n| medium | 21.9k | 1.2k | 10.7k | 18.7× | 2.10× |\n| large | 403 | 23.3 | 227 | 17.0× | 1.70× |\n\n**Bundle size** (minified + gzipped) — what each parser adds to an application\nthat imports it. The bench bundles a small consumer of each library rather than\nthe library's own entry point, so the numbers reflect code that is actually\nreachable. Ours covers the full surface (`parse`, `parseDocument`, `nodeAtPath`,\n`lineCounter`); `js-yaml` gets only `load`, because it has no positioned-tree\nequivalent to import.\n\n| | size | |\n| --- | --- | --- |\n| **@amritk/yaml** | **11.1 KB** | — |\n| yaml | 35.4 KB | 3.2× larger |\n| js-yaml | 14.5 KB | 1.3× larger |\n\nCorrectness is pinned three ways: a differential test suite (`src/differential.test.ts`) parses a battery of documents — including full OpenAPI specs — and asserts byte-identical data output against `yaml`; `src/json-superset.test.ts` holds a generated JSON corpus to `JSON.parse` exactly; and `src/conformance.test.ts` measures the parser against the official YAML test suite (see [Conformance, measured](#conformance-measured)). Where `js-yaml` diverges (its `!!timestamp` type turns ISO strings into `Date`s, which is wrong for a JSON superset), we instead agree with `yaml`.\n\n---\n\n## Scope\n\nThis is **not** a fully conformant YAML 1.2 processor. It implements the subset\nthat real configuration and OpenAPI documents use, plus the YAML 1.2 **core\nschema** for scalar typing. The exact boundaries:\n\n### Supported\n\n**Structure**\n\n- Block mappings (`key: value`) and block sequences (`- item`), nested arbitrarily.\n- Flow mappings `{ … }` and flow sequences `[ … ]`, including spanning multiple lines (split at token boundaries) and trailing commas.\n- Implicit single-pair entries inside a flow sequence (`[ key: value ]`).\n- Explicit `? key` / `: value` entries, including block and complex (map/seq) keys. A flow collection on either side (`? {x: 1}`, `: [a, b]`) is parsed as the collection it is — its own `: ` separators are not mistaken for the entry's.\n- Empty nodes, wherever the grammar allows one: a `-` or `key:` with nothing after it, and an entry carrying only node properties (`- !!str`, `- &x`) — which is an empty *tagged or anchored* node, so the entries that follow it stay its siblings rather than becoming its content.\n\n**Scalars**\n\n- Plain (unquoted), single-quoted (`''` escape), and double-quoted scalars (full escapes — `\\n`, `\\t`, `\\xNN`, `\\uNNNN`, `\\UNNNNNNNN` — line continuation, and folding).\n- Literal `|` and folded `>` block scalars with chomping (`-` strip, `+` keep, default clip) and explicit indentation indicators.\n- Multi-line plain scalars (folded) in both block context and flow context (`[ … ]` / `{ … }`), where a wrapped line's indentation is trimmed and line breaks fold per YAML 1.2 (single break → space, a run of *n* breaks → *n − 1* newlines).\n\n**Type resolution (YAML 1.2 core schema)**\n\n- `null` (`null`/`Null`/`NULL`/`~`/empty), booleans (`true`/`false` and case variants), integers (decimal, `0x` hex, `0o` octal), floats (including `.inf`/`-.inf`/`.nan`); everything else is a string. So `version: 1.0.0` stays the string `\"1.0.0\"`.\n\n**Tags**\n\n- Core scalar tags (the JSON-compatible set OpenAPI allows): `!!str`, `!!int`, `!!float`, `!!bool`, `!!null`. A core tag **coerces** what it is written on rather than only confirming it: `!!int \"7\"` is `7`, `!!bool \"FALSE\"` is `false`, `!!float 1` is `1` (an integer form is a valid float), and `!!null x` is `null`. The tag is the author saying what the value is. Quoting does not change what it means — `!!int \"0x1F\"` is `31` just as `!!int 0x1F` is, because the text goes through the core schema rather than through `parseInt` alone.\n- Extended tags, for general config files beyond the OpenAPI subset: `!!binary` → `Uint8Array`, `!!timestamp` → `Date`, `!!set` → `Set`, `!!omap` → `Map` (matching `yaml`). A conformant OpenAPI document won't use these. Note that three of the four do **not** survive `JSON.stringify` — a `Set` and a `Map` both serialize to `{}`, and a `Uint8Array` to an object keyed by index — so a document using them is no longer JSON-round-trippable, however faithfully it parsed. Only reach for them when you are consuming the values in JavaScript rather than re-serializing.\n- All three spellings resolve to the same tag: the shorthand `!!str`, the verbatim `!<tag:yaml.org,2002:str>`, and a shorthand through a handle a `%TAG` directive declared.\n- The non-specific `!` resolves a scalar as a string, per the failsafe schema.\n- Any other tag is **captured on the node** (readable via `node.tag`) and its value passed through unchanged. A *local* tag keeps its `!` — `node.tag` is `!custom` for `!custom`, versus `str` for `!!str` — so an application tag that happens to share a core tag's name does not coerce.\n\n**References, documents, and trivia**\n\n- Anchors (`&name`) and aliases (`*name`); `<<` merge keys (toggle with the `merge` option). Anchors and aliases work as mapping keys, and an alias key resolves to the anchored value.\n- Node properties written on a mapping key (`&a key: value`, `!!str 23: v`) apply to **the key**, so a later `*a` resolves to the key — not to the mapping it opens. Properties on a line of their own above the mapping describe the mapping itself.\n- Collections as mapping keys, both explicit (`? [a, b]` / `: value`) and implicit (`[a, b]: value`), in any entry position. A JavaScript object can only be keyed by a string, so a collection key projects to its flow rendering — `{ '[ a, b ]': 'value' }` — and two keys that render alike are reported as duplicates, because in the projection they are.\n- Compact block collections opened on an explicit entry's introducer line — `? a` / `: - one` is a sequence, `? earth: blue` a mapping — with their remaining entries aligned under that first one.\n- Multi-document streams (`---` / `...`) via `parseAllDocuments`, each document with its own anchor scope, tag handles, and problem list.\n- A root node written on the `---` line itself — `--- foo`, `--- |`, `--- !!str`, or a quoted scalar spanning the lines below it. Its content is measured against column 0, not the column the marker pushed it to, so `--- >` may hold a block scalar starting at column 0.\n- `%TAG` directives (handles are resolved) and `%YAML` (the version is reported, not applied — resolution is always the 1.2 core schema).\n- Comments (full-line and inline), blank lines, and a leading byte-order mark. Comments are skipped by default and collected onto `doc.comments` when `keepComments` is set — including the ones on `---`/`...` marker and directive lines.\n- All three YAML line breaks — `\\n`, `\\r\\n`, and a lone `\\r` — count as one break each, in the parser and in `lineCounter`'s positions.\n\n**Diagnostics**\n\nEvery node carries an exact `[start, end)` source span, and problems are collected on `doc.errors` / `doc.warnings` rather than thrown, in source order.\n\nThe one thing that *does* throw is the guard against a document built to exhaust memory: runaway `*alias` expansion (a \"billion laughs\") or nesting deep enough to overflow the stack while projecting. Neither can produce a value at all, so `toJS()` — and therefore `parse()` — raises a catchable `Error` instead of hanging the process. Wrap the call if the YAML is untrusted; parse *problems* never throw.\n\n| code | |\n| --- | --- |\n| `DUPLICATE_KEY` | the same mapping key appears twice — compared on the string the key projects to, so an alias to an anchored key and two collection keys with the same flow rendering both count |\n| `UNRESOLVED_ALIAS` | `*name` with no matching anchor in scope |\n| `RECURSIVE_ALIAS` | `*name` inside the very node `&name` labels (`&a [1, *a]`) — the anchor exists, but the cycle it describes is not built |\n| `UNTERMINATED_FLOW` | a `[` or `{` that never closes |\n| `UNTERMINATED_QUOTE` | a quoted scalar that never closes |\n| `UNEXPECTED_CONTENT` | content after a node ends, a second root node with no `---`, a block sequence opened on the line of the key it belongs to (`key: - a`), or a block mapping opened on the `---` line (`--- a: 1`, `--- [a, b]: v`) |\n| `UNEXPECTED_COMMA` | an empty flow entry (`[1, , 2]`) |\n| `TAB_INDENT` | a tab standing where indentation belongs — in a line's leading whitespace, in a block scalar's, or between an indicator and the compact collection it opens (`-\\t- x`) |\n| `BAD_SCALAR_START` | a plain scalar starting with the reserved `@` or `` ` ``, or a `-` where a flow entry belongs (`[-]`) |\n| `BAD_SCALAR_CONTENT` | a `: ` inside a plain scalar, which the spec ends the scalar at (`a: b: c`, or a continuation line that reads as a mapping entry) |\n| `BAD_COMMENT` | a `#` with no whitespace before it, so the rest of the line is not a comment (`\"value\"# …`) |\n| `BAD_ESCAPE` | a `\\` escape double-quoted YAML does not define (`\"a\\.b\"`) |\n| `BAD_BLOCK_HEADER` | a `|`/`>` header with a repeated indicator or trailing text (`|10`, `> text`) |\n| `BAD_INDENT` | a block scalar's leading blank line reaching past its first content line, a quoted scalar continued at its parent's column, or a flow collection whose continuation lines do not clear the block that holds it |\n| `BAD_IMPLICIT_KEY` | a key that does not fit on one line, a block key whose `:` sits more than 1024 characters in, or a `[ key\\n : value ]` whose `:` is on the next line |\n| `BAD_PROPERTY` | an anchor or tag on an alias, or a node carrying two anchors or two tags (`&x &y 1`, or `&x` on its own line above a `&y` value) |\n| `BAD_TAG` | a verbatim tag missing its closing `>`, or a tag holding a flow indicator |\n| `UNKNOWN_TAG_HANDLE` | a tag handle no `%TAG` directive declared |\n| `BAD_DIRECTIVE` | a malformed `%YAML` version, or content after it |\n| `DUPLICATE_DIRECTIVE` | a second `%YAML` directive on one document |\n| `UNEXPECTED_DIRECTIVE` | a directive with no `...` before it or no `---` after it |\n| `DEPTH_LIMIT` | nesting past the parser's depth cap |\n\nWarnings (advisory; the document still parses): `UNSUPPORTED_YAML_VERSION`, `UNKNOWN_DIRECTIVE`, a malformed `%TAG` directive (`BAD_DIRECTIVE`), `AMBIGUOUS_ANCHOR_NAME` — an anchor or alias name ending in `:`, which YAML makes part of the name (`*x: v` names the anchor `x:` and leaves the mapping no separator) — and `MULTIPLE_DOCUMENTS`, where `parseDocument` found a second document after a `---`/`...` marker and read only the first, so switch to `parseAllDocuments` if you want the rest.\n\n### Not supported\n\n- **Tab indentation.** Forbidden by YAML 1.2; reported as a `TAB_INDENT` error rather than parsed. Whether a given tab *is* indentation depends on the column it sits at, and that is now tracked: a tab is separation (and legal) once the spaces before it already satisfy the indentation the line owes its context, which is why `\\t[a]` at the document root and a `foo:` whose value line reads `⟨space⟩⟨tab⟩bar` both parse clean, while `\\tb:` under an `a:` does not. The rule is applied in a line's leading whitespace, inside a block scalar, in a flow collection's continuation lines, and in the separation between an indicator and a compact collection opened on its line (`-\\t- x`).\n- **Schema selection.** Always the 1.2 core schema — no JSON, failsafe, or YAML 1.1 schema switch. A `%YAML 1.1` document parses, with a warning that its schema differences are not applied.\n- **YAML 1.1-only scalar forms.** `yes`/`no`/`on`/`off` booleans, sexagesimal numbers (`1:30:00`), and underscore digit groups (`1_000`) stay strings, per the 1.2 core schema.\n- **Implicit timestamps.** An untagged ISO date string stays a string; only an explicit `!!timestamp` produces a `Date`.\n- **Directives on a line a plain scalar could claim.** The rules around directives are enforced — a directive needs a `...` footer before it and a `---` after it, and its version must parse — with one exception: when the offending `%` line could equally be read as a continuation of the plain scalar above it, the scalar wins. Reporting it would mean rejecting a valid document (the suite's `XLQ9`) to catch an invalid one.\n- **The 1024-character implicit key limit in flow context.** A block mapping key whose `:` sits more than 1024 characters in *is* reported (`BAD_IMPLICIT_KEY`). The spec writes the same cap into the flow-context production, and there it is deliberately not enforced: a flow mapping is where JSON lives, `{\"…1100 characters…\": 1}` is valid JSON, and rejecting a valid JSON document is the worse of the two errors. `yaml` (eemeli) draws the line in the same place.\n- **Flow collection indentation, at the closing delimiter.** A flow collection's *content* lines must clear the indentation of the block that holds them, and a line that does not is reported (`BAD_INDENT`). Its **closing** `]`/`}` is held only to the parent's own column, one short of what the spec asks: closing a multi-line flow collection at the parent's column is how Prettier and hand-written manifests both write it, and `yaml` and `js-yaml` both accept it. A closing delimiter *further out* than its parent is still reported.\n- **Shared alias identity.** An alias to a collection projects to a *copy*, not the same object: for `a: &x {p: 1}` / `b: *x` / `c: *x`, `b` and `c` are equal but `b !== c`, and mutating one does not change the other. The spec makes them one node. Copying keeps `toJS()` a plain tree — which is what a path-keyed position index, a JSON round-trip, and any consumer that edits the projection all assume — and the cost of re-expanding aliases is capped by an expansion budget, so a billion-laughs document throws a catchable error instead of hanging.\n- **Recursive anchors.** An alias inside the node its own anchor names — `&a [1, *a]` — is legal YAML, and `yaml` and `js-yaml` both build the circular structure it describes. Here it is reported as `RECURSIVE_ALIAS` and the cycle is not built. This is the same trade-off as shared alias identity, taken to its conclusion: a cyclic value cannot be a plain tree, cannot be serialized to JSON, and cannot appear in a valid OpenAPI document, so it is refused rather than half-built — with a diagnostic that says which of the two alias problems it is, since the anchor does exist.\n- **Locating a merged key by path.** `<<: *base` brings the base's keys into the\n  projection, but they are not written at that path in the source, so\n  `nodeAtPath(root, ['use', 'fromBase'])` is `undefined` — with `closest: true`\n  it returns the mapping that holds the `<<`, which is where a diagnostic about\n  the merge belongs anyway. Keys the document writes itself, and everything under\n  a plain `*alias`, resolve normally.\n- **Comments attached to nodes.** `keepComments` reports every comment with its exact span (see [Comments](#comments)), but as a flat list — there is no `node.comment`, and the parser does not decide which node a comment belongs to. That is a policy question with no single right answer (a comment on its own line above a key usually introduces it; the one trailing the line before usually does not), and a parser that guesses imposes its guess on every caller. Pair the spans against node offsets and apply whichever rule you want.\n\nIf you need full YAML 1.2 conformance, use [`yaml`](https://www.npmjs.com/package/yaml). If you need a small, fast, position-aware parser for diagnostics, use this.\n\n### Conformance, measured\n\nThe boundary above is not a claim — it is checked. `src/conformance.test.ts` runs the\nofficial [YAML test suite](https://github.com/yaml/yaml-test-suite) (402 cases) on\nevery build:\n\n**397 / 402 cases pass (98.8%).**\n\nEvery case that does not is listed in `src/conformance-expected-failures.test-utils.ts`\nwith the reason it does not, and the test fails if a case moves in *either*\ndirection — a regression breaks the build, and so does a case that starts passing\nwithout its entry being removed. The suite is a dev dependency; none of it reaches\nthe published bundle.\n\nAll 402 documents **parse** to the right structure — nothing is left at the\ngrammar or composition level. Each of the five is either an option default or a\nchoice about which JavaScript type `toJS()` projects to:\n\n- Two are the `uniqueKeys` default. `parse(src, { uniqueKeys: false })` takes the\n  suite to **399 / 402 (99.3%)**.\n- Three are extended tags projecting to richer types than JSON can write down.\n\nWhich five, and why each is the answer it is:\n\n- **`2JQS`** — `: a` / `: b`, two entries whose keys are both empty. The spec's own\n  \"keys are unique\" rule makes that a duplicate; the suite only asks that the\n  document compose, so it reads as valid there. `uniqueKeys` is on by default\n  because a linter wants the report — `parse(src, { uniqueKeys: false })` accepts it.\n- **`X38W`** — the same rule, reached the other way: a mapping keyed once by a\n  sequence and once by an alias pointing at that sequence. Both keys render\n  `[ a, b ]`, so the two pairs collapse into one in any JavaScript object, and\n  reporting the collision beats dropping a value in silence. `uniqueKeys: false`\n  accepts it.\n- **`565N` / `2XXW` / `J7PZ`** — `!!binary` projects to a `Uint8Array`, `!!set` to a\n  `Set`, `!!omap` to a `Map`, all three matching `yaml` (eemeli), where the suite\n  expects the plain string or object those serialize to.\n\n### Where this differs from `yaml` and `js-yaml`\n\nThe suite settles conformance; it does not settle the handful of documents where\nthe three parsers simply answer differently. These are the ones that exist, found\nby fuzzing all three against each other over ~90k generated documents plus the\nfull suite corpus. Everything not listed here agrees.\n\n| document | @amritk/yaml | `yaml` | `js-yaml` |\n| --- | --- | --- | --- |\n| `t: !!float 1` | `1` | `\"1\"` | `1` |\n| `t: !!null x` | `null` | `\"x\"` | throws |\n| `...` alone, or after a comment | no document | one `null` document | one `null` document |\n| `%YAML 1.2` with no document | `UNEXPECTED_DIRECTIVE` | accepted | throws |\n| `%YAML 1.2` twice | `DUPLICATE_DIRECTIVE` | accepted | throws |\n| `? [a, b]` / `: v` | key `[ a, b ]` | key `[ a, b ]` | key `a,b` |\n\nReading them:\n\n- **`!!float 1`** — the core schema's float production accepts an integer form, so\n  `1` is a valid float and resolves to the number. `yaml` requires a decimal point\n  and falls back to the raw string; `js-yaml` agrees with us.\n- **`!!null x`** — a core tag coerces (see the Tags list under\n  [Supported](#supported)), so the tag wins and the value is `null`. The three\n  parsers pick three different answers here; ours is the one consistent with how\n  `!!int \"7\"` and `!!bool \"FALSE\"` behave.\n- **`...` with nothing before it** — the document-end marker ends a document; it\n  does not open one. The suite's own event stream for these cases (`HWV9`, `QT73`,\n  and the spec's Example 9.3, `M7A3`) is an empty stream, so the extra `null`\n  document the other two emit is theirs, not ours.\n- **The two `%YAML` cases** — the suite marks both as documents that *must* be\n  rejected, which is why we report rather than accept.\n- **Collection keys** — a JavaScript object needs a string key. We render the\n  collection in flow style, matching `yaml`; `js-yaml` joins sequence items with a\n  comma and renders a mapping key as `[object Object]`, which collapses distinct\n  keys into one.\n\nTwo more differences are structural rather than per-document: problems are\n**collected on `doc.errors`, never thrown** — so where `js-yaml` throws, we return\na document plus a diagnostic — and an alias to a collection projects to a **copy**\nrather than a shared node (see [Not supported](#not-supported)).\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}