{"_id":"@anttiviljami/json-schema-ref-parser","_rev":"2-4d0a55b47cbd7ee73730438bd29484f1","name":"@anttiviljami/json-schema-ref-parser","dist-tags":{"latest":"9.2.2"},"versions":{"9.2.0":{"name":"@anttiviljami/json-schema-ref-parser","version":"9.2.0","description":"Parse, Resolve, and Dereference JSON Schema $ref pointers","keywords":["json","schema","jsonschema","json-schema","json-pointer","$ref","dereference","resolve"],"author":{"name":"James Messinger","url":"https://jamesmessinger.com"},"contributors":[{"name":"Boris Cherny","email":"boris@performancejs.com"},{"name":"Phil Sturgeon","email":"phil@apisyouwonthate.com"},{"name":"Jakub Rożek","email":"jakub@stoplight.io"}],"homepage":"https://apitools.dev/json-schema-ref-parser/","repository":{"type":"git","url":"git+https://github.com/APIDevTools/json-schema-ref-parser.git"},"license":"MIT","funding":"https://github.com/sponsors/philsturgeon","main":"lib/index.js","typings":"lib/index.d.ts","browser":{"fs":false},"engines":{"node":">= 17"},"scripts":{"build":"cp LICENSE *.md dist","clean":"shx rm -rf .nyc_output coverage","lint":"eslint lib test/fixtures test/specs","test":"npm run test:node && npm run test:typescript && npm run test:browser && npm run lint","test:node":"mocha","test:browser":"cross-env NODE_OPTIONS=--openssl-legacy-provider karma start --single-run","test:typescript":"tsc --noEmit --strict --lib esnext,dom test/specs/typescript-definition.spec.ts","coverage":"npm run coverage:node && npm run coverage:browser","coverage:node":"nyc node_modules/mocha/bin/mocha","coverage:browser":"npm run test:browser -- --coverage","upgrade":"npm-check -u && npm audit fix"},"devDependencies":{"@babel/polyfill":"^7.12.1","@chiragrupani/karma-chromium-edge-launcher":"^2.2.2","@jsdevtools/eslint-config":"^1.0.7","@jsdevtools/host-environment":"^2.1.2","@jsdevtools/karma-config":"^3.1.7","@types/node":"^14.14.21","chai":"^4.2.0","chai-subset":"^1.6.0","chokidar":"^3.5.3","cross-env":"^7.0.3","eslint":"^7.18.0","isomorphic-fetch":"^3.0.0","karma":"^5.0.2","karma-cli":"^2.0.0","mocha":"^8.2.1","node-abort-controller":"^3.0.1","npm-check":"^5.9.0","nyc":"^15.0.1","semantic-release-plugin-update-version-in-files":"^1.1.0","shx":"^0.3.2","typescript":"^4.0.5"},"dependencies":{"@jsdevtools/ono":"^7.1.3","@types/json-schema":"^7.0.6","call-me-maybe":"^1.0.1","js-yaml":"^4.1.0"},"release":{"branches":["main"],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["semantic-release-plugin-update-version-in-files",{"files":["dist/package.json"],"placeholder":"X.X.X"}],"@semantic-release/npm","@semantic-release/github"]},"gitHead":"da9e32ecb079ec4d95e43eb34eb3081e3ee3e762","bugs":{"url":"https://github.com/APIDevTools/json-schema-ref-parser/issues"},"_id":"@anttiviljami/json-schema-ref-parser@9.2.0","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-LCmqTCEWpEc6EYvv9uH7rjjH0WcUYCVKEHkHEgYm/WgqD8isde8cqKoGBincNNmIZ8ZJzpLynid9nJ+0jxqBow==","shasum":"9be863aabac17976d223211d2237a34d0bba1a9a","tarball":"https://registry.npmjs.org/@anttiviljami/json-schema-ref-parser/-/json-schema-ref-parser-9.2.0.tgz","fileCount":23,"unpackedSize":142001,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2W0lxqy2DSFg0uvKxAVHCilhAb2XUhkMxi6ZEIRJMBwIganDlW7cMPmhgs5+Zb7/zOo5Jn7+T73VQup10NcpFq5E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwndcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5UhAAilTuDmV0wUPd3g0fzP9BCrlAmPPeSoWxtZFNWyurhqoWteHy\r\nDSIuqXglmR5Ewdz3pR6SKNGdkP/bDYAtucvbR1vmgK43Dbpw0tDk01AxHYwB\r\naMnhiFS0XMl4Ac/yi6X6cpqZUttNuDoOygpJFLRqMfpaYOx5YH84DYJxdz+T\r\nsVbUz9Hg8aLK9TPn70HbFPSaX/hNKj06Jl9NZCOMHa6Bt/LTbEedsSoesaLf\r\nr3oyZ3HO11kmZ21xlwruhf0IeQdcpJSx4/WCyW5Lw2CBQta+8Tqylx6ptBFe\r\naw46wI49xI/rijt0fZa4ImnJsShYPm0TVRPvWkWhFy6I81vTf5LijCnHcZGi\r\nVxcrnGINXIdB5D4GOSOsAQn5SHtsQFR9z8JJ6ULX5V+P0NmeEx9ZtrdYzpvc\r\nOC/yqoGc8v8Ue9tMOYCFdZgJsFpQSmRoDQYV6TEN1azvL3htSXa4Gcq7/UXk\r\nxys5hlh2tNYOX4kjwAF1+gZoGtaLuzOPS0gFKiICF2Rxl+hJ1Nw1B6iyuEY6\r\nkpAeHLQmtB4mjHN1FFwtOuuX6H7+fN8tngVHgPCO9YilkRmAXtBzI8dnmd/6\r\nRcBQDXTQPMGdqjchRTpq+PZ6o6vv/KAayqnk3S8hMvYCQXy3D1N4NBEyLVyt\r\nyLQT1BvGuSWAxUTS8ti3E2B0zt0lFNfbm2U=\r\n=sd+L\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anttiviljami","email":"viljami@avoinsorsa.fi"},"directories":{},"maintainers":[{"name":"anttiviljami","email":"viljami@avoinsorsa.fi"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/json-schema-ref-parser_9.2.0_1673688924309_0.6249236931180397"},"_hasShrinkwrap":false},"9.2.1":{"name":"@anttiviljami/json-schema-ref-parser","version":"9.2.1","description":"Parse, Resolve, and Dereference JSON Schema $ref pointers","keywords":["json","schema","jsonschema","json-schema","json-pointer","$ref","dereference","resolve"],"author":{"name":"James Messinger","url":"https://jamesmessinger.com"},"contributors":[{"name":"Boris Cherny","email":"boris@performancejs.com"},{"name":"Phil Sturgeon","email":"phil@apisyouwonthate.com"},{"name":"Jakub Rożek","email":"jakub@stoplight.io"}],"homepage":"https://apitools.dev/json-schema-ref-parser/","repository":{"type":"git","url":"git+https://github.com/APIDevTools/json-schema-ref-parser.git"},"license":"MIT","funding":"https://github.com/sponsors/philsturgeon","main":"lib/index.js","typings":"lib/index.d.ts","browser":{"fs":false},"engines":{"node":">= 17"},"scripts":{"build":"cp LICENSE *.md dist","clean":"shx rm -rf .nyc_output coverage","lint":"eslint lib test/fixtures test/specs","test":"npm run test:node && npm run test:typescript && npm run test:browser && npm run lint","test:node":"mocha","test:browser":"cross-env NODE_OPTIONS=--openssl-legacy-provider karma start --single-run","test:typescript":"tsc --noEmit --strict --lib esnext,dom test/specs/typescript-definition.spec.ts","coverage":"npm run coverage:node && npm run coverage:browser","coverage:node":"nyc node_modules/mocha/bin/mocha","coverage:browser":"npm run test:browser -- --coverage","upgrade":"npm-check -u && npm audit fix"},"devDependencies":{"@babel/polyfill":"^7.12.1","@chiragrupani/karma-chromium-edge-launcher":"^2.2.2","@jsdevtools/eslint-config":"^1.0.7","@jsdevtools/host-environment":"^2.1.2","@jsdevtools/karma-config":"^3.1.7","@types/node":"^14.14.21","chai":"^4.2.0","chai-subset":"^1.6.0","chokidar":"^3.5.3","cross-env":"^7.0.3","eslint":"^7.18.0","isomorphic-fetch":"^3.0.0","karma":"^5.0.2","karma-cli":"^2.0.0","mocha":"^8.2.1","node-abort-controller":"^3.0.1","npm-check":"^5.9.0","nyc":"^15.0.1","semantic-release-plugin-update-version-in-files":"^1.1.0","shx":"^0.3.2","typescript":"^4.0.5"},"dependencies":{"@jsdevtools/ono":"^7.1.3","@types/json-schema":"^7.0.6","call-me-maybe":"^1.0.1","js-yaml":"^4.1.0"},"release":{"branches":["main"],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["semantic-release-plugin-update-version-in-files",{"files":["dist/package.json"],"placeholder":"X.X.X"}],"@semantic-release/npm","@semantic-release/github"]},"gitHead":"771b1b324bf814d7390d150bae4723db1cef38b1","bugs":{"url":"https://github.com/APIDevTools/json-schema-ref-parser/issues"},"_id":"@anttiviljami/json-schema-ref-parser@9.2.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-OIHsIMr0p/4Clttig0BEe/LQ46efxUIdr7/2ZpRzvtv73vqn0VLeTNVyqfYX9QHl8raybdadRx6Z3HVQrAjFag==","shasum":"8d94c5876d0880fdb8fbfbbcea7208ea93dcc7f0","tarball":"https://registry.npmjs.org/@anttiviljami/json-schema-ref-parser/-/json-schema-ref-parser-9.2.1.tgz","fileCount":23,"unpackedSize":142029,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8snvhzJicVbPW+K83C9FQgmSLJJrKSRSGymtq+FJK9AIhAIoUZasK5plT5fPNY9iDGN25AXhMnqcJRXIvvDNhdWBq"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwojTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEFhAAoS7+WnYKah5IMtPCjKr2StGQhCdapX7mY6XHbt77xFdqQ4f/\r\nohTgBiycPbl4O005AQEuBD5FxO31RvReqQhHA+yABnO10nQW4f3WUKAA8c6n\r\n65h594GWarj/IFIPJbkD/BWBaV1Nz5VsPC7HztJ6ANF8aJW1nHeaWmTfLtH9\r\nM/rh5SXoGMLqhrtMFl8aWnPJDg43jIz7BUpf1OSoC8YuuFGt0Kpc9zw0xOUh\r\nDhcaaFdy/+ans9M4BFrTnUpuJK/S7InY+jmh0nHQWzlboZRBE89FBvb5TyZG\r\nOx7ZGM/9yeN+gBtL0NjtRWmPUGj0CTFhMkNmNrOismqIsKzo1D6R7QbzNzrD\r\nRhENxQttUSFS9Xikay0Irg9292VStlvL9lV2XWTyfSwZLTGpYDcMHnHgv0I9\r\nKYgcNBG28Z7tSlqzsM8NQy58D1cAiXZ3WJrcVBd/gJ6fAcm59nYu0CGZpyYT\r\nnKeVTpfAq0+Dr3zXQxOVYzYgFt0uQ2sVJjG8aYg0idDZqxku6kfg/FxlWRRG\r\nXENwrYgIJ6VC9O/TaKOR+6KVPlsYQ1QPJnlHLT0GEv6SWRtg3z2pW0JEcfXe\r\nyVdHKr9Tp+pdKI99Qtrz29yZQjZunWDrAGlIhGu6QtSnh1JY6oAqrSxanl5d\r\nVaPhvp8oFooJvgGhZDxp8WAjJ5dEOeDewmY=\r\n=vU5d\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anttiviljami","email":"viljami@avoinsorsa.fi"},"directories":{},"maintainers":[{"name":"anttiviljami","email":"viljami@avoinsorsa.fi"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/json-schema-ref-parser_9.2.1_1673693395515_0.27856272831034556"},"_hasShrinkwrap":false},"9.2.2":{"name":"@anttiviljami/json-schema-ref-parser","version":"9.2.2","description":"Parse, Resolve, and Dereference JSON Schema $ref pointers","keywords":["json","schema","jsonschema","json-schema","json-pointer","$ref","dereference","resolve"],"author":{"name":"James Messinger","url":"https://jamesmessinger.com"},"contributors":[{"name":"Boris Cherny","email":"boris@performancejs.com"},{"name":"Phil Sturgeon","email":"phil@apisyouwonthate.com"},{"name":"Jakub Rożek","email":"jakub@stoplight.io"}],"homepage":"https://apitools.dev/json-schema-ref-parser/","repository":{"type":"git","url":"git+https://github.com/APIDevTools/json-schema-ref-parser.git"},"license":"MIT","funding":"https://github.com/sponsors/philsturgeon","main":"lib/index.js","typings":"lib/index.d.ts","browser":{"fs":false},"scripts":{"build":"cp LICENSE *.md dist","clean":"shx rm -rf .nyc_output coverage","lint":"eslint lib test/fixtures test/specs","test":"npm run test:node && npm run test:typescript && npm run test:browser && npm run lint","test:node":"mocha","test:browser":"cross-env karma start --single-run","test:typescript":"tsc --noEmit --strict --lib esnext,dom test/specs/typescript-definition.spec.ts","coverage":"npm run coverage:node && npm run coverage:browser","coverage:node":"nyc node_modules/mocha/bin/mocha","coverage:browser":"npm run test:browser -- --coverage","upgrade":"npm-check -u && npm audit fix"},"devDependencies":{"@babel/polyfill":"^7.12.1","@chiragrupani/karma-chromium-edge-launcher":"^2.2.2","@jsdevtools/eslint-config":"^1.0.7","@jsdevtools/host-environment":"^2.1.2","@jsdevtools/karma-config":"^3.1.7","@types/node":"^14.14.21","chai":"^4.2.0","chai-subset":"^1.6.0","chokidar":"^3.5.3","cross-env":"^7.0.3","eslint":"^7.18.0","isomorphic-fetch":"^3.0.0","karma":"^5.0.2","karma-cli":"^2.0.0","mocha":"^8.2.1","node-abort-controller":"^3.0.1","npm-check":"^5.9.0","nyc":"^15.0.1","semantic-release-plugin-update-version-in-files":"^1.1.0","shx":"^0.3.2","typescript":"^4.0.5"},"dependencies":{"@jsdevtools/ono":"^7.1.3","@types/json-schema":"^7.0.6","call-me-maybe":"^1.0.1","js-yaml":"^4.1.0"},"release":{"branches":["main"],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["semantic-release-plugin-update-version-in-files",{"files":["dist/package.json"],"placeholder":"X.X.X"}],"@semantic-release/npm","@semantic-release/github"]},"gitHead":"226e1e1d567a9ed5ce026851f7053a6fd3b5dd6a","bugs":{"url":"https://github.com/APIDevTools/json-schema-ref-parser/issues"},"_id":"@anttiviljami/json-schema-ref-parser@9.2.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-YmukqZd3JbZtlna0sS/+YO+17p/AkzLSxuvpQYbBV2f33upbksbKDct6ENmLcV7ZCayTNj+UASGXUJJyrlnaSQ==","shasum":"5172b5bef631969114cf0f882002626556e8fc1e","tarball":"https://registry.npmjs.org/@anttiviljami/json-schema-ref-parser/-/json-schema-ref-parser-9.2.2.tgz","fileCount":23,"unpackedSize":141950,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADNYetnx/iTIxRZEbHfDe1Np3JXRzcNhZhBGp7EdABoAiAL/qcpoACO9H1nSNszCIlmyYREi72y5rTPFZFg+sRLkQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0RUJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoOQ//Vrq+60vFQheD2SxwMxyLwS8X6Y4RLIr15HJ8I0TcYNC4jaXf\r\nzvheFfwU2k1cch8hsz6Ys/Gv+OaTa4jLrpEKIQVb0Mhw2zyeM9qo1AZiC4Kv\r\n9Lnb7cGlAku1aXsmE3R0KIeMTF6G+rCKsX9rRkrIvqb+D2P+mtuNqhQl7Ago\r\nakit3LyvmesZCZGibzo90xd2EV0Gb50j4akp9B02eXmKD8LZZfAnFps89O1T\r\nHAzxRmqzg1YH+n9iADj0hJj3NtMOPg9qw3YqQyc9yY4QOicTXdSJknZbEZ29\r\nvxVnLsq6FdEBJJZPAQw9TkQSrVyRXV+VANb24us/crwjtvVRdX+ZlxCZGZiG\r\n+YVKa271f09VNliNjrhod2cjsaZUJJcpb75pF/x7vKSZVJjmi0iY2SXQN+Xd\r\nBwaYceLiNc65y4LYz76qQCOr4Xc/ExrDWplBjU/w0Mhcbaj6fhKBJe2lx3fm\r\neektoexFY4nwF4CttxfrTGPAYojJ9kQvyJ+LWw2Xi3GzzlzbPiic1ah6GjV7\r\nSeIPhhLwlqZwdUVQblU6HmigOIJ/8H29aTJ29phjscpAiv20EAIfcYGZiD58\r\nzvIr+DTCAEeozuDKC1CBaN89GY2gymPf/gsjnZXYWa5c9gtDmmeaSG5Rs0Sl\r\niz8oheAHvqsURDACRl3zwBPGiKqBcjDSgZI=\r\n=4RYX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anttiviljami","email":"viljami@avoinsorsa.fi"},"directories":{},"maintainers":[{"name":"anttiviljami","email":"viljami@avoinsorsa.fi"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/json-schema-ref-parser_9.2.2_1674646793250_0.9524899967465255"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-14T09:35:24.219Z","9.2.0":"2023-01-14T09:35:24.456Z","modified":"2023-01-25T11:39:53.580Z","9.2.1":"2023-01-14T10:49:55.681Z","9.2.2":"2023-01-25T11:39:53.477Z"},"maintainers":[{"name":"anttiviljami","email":"viljami@avoinsorsa.fi"}],"description":"Parse, Resolve, and Dereference JSON Schema $ref pointers","homepage":"https://apitools.dev/json-schema-ref-parser/","keywords":["json","schema","jsonschema","json-schema","json-pointer","$ref","dereference","resolve"],"repository":{"type":"git","url":"git+https://github.com/APIDevTools/json-schema-ref-parser.git"},"contributors":[{"name":"Boris Cherny","email":"boris@performancejs.com"},{"name":"Phil Sturgeon","email":"phil@apisyouwonthate.com"},{"name":"Jakub Rożek","email":"jakub@stoplight.io"}],"author":{"name":"James Messinger","url":"https://jamesmessinger.com"},"bugs":{"url":"https://github.com/APIDevTools/json-schema-ref-parser/issues"},"license":"MIT","readme":"# JSON Schema $Ref Parser\n\n_**This package needs [a new maintainer](https://github.com/APIDevTools/json-schema-ref-parser/issues/285) or at least some contributors, or a decent number of sponsors so I can hire contractors to do the work. For more information [please read this article](https://phil.tech/2022/bundling-openapi-with-javascript/). I'll mark the repo as read-only and unmaintained on January 15th 2023 along with a bunch of other @apidevtools packages like swagger-parser, so I can focus on scaling up my [reforestation charity](https://protect.earth/) instead of burning myself out trying to maintain a whole load of OSS projects I don't use in my vanishingly small spare time.** - [Phil Sturgeon](https://github.com/philsturgeon)_\n\n#### Parse, Resolve, and Dereference JSON Schema $ref pointers\n\n[![Build Status](https://github.com/APIDevTools/json-schema-ref-parser/workflows/CI-CD/badge.svg?branch=master)](https://github.com/APIDevTools/json-schema-ref-parser/actions)\n[![Coverage Status](https://coveralls.io/repos/github/APIDevTools/json-schema-ref-parser/badge.svg?branch=master)](https://coveralls.io/github/APIDevTools/json-schema-ref-parser)\n\n[![npm](https://img.shields.io/npm/v/@apidevtools/json-schema-ref-parser.svg)](https://www.npmjs.com/package/@apidevtools/json-schema-ref-parser)\n[![Dependencies](https://david-dm.org/APIDevTools/json-schema-ref-parser.svg)](https://david-dm.org/APIDevTools/json-schema-ref-parser)\n[![License](https://img.shields.io/npm/l/@apidevtools/json-schema-ref-parser.svg)](LICENSE)\n[![Buy us a tree](https://img.shields.io/badge/Treeware-%F0%9F%8C%B3-lightgreen)](https://plant.treeware.earth/APIDevTools/json-schema-ref-parser)\n\n\n[![OS and Browser Compatibility](https://apitools.dev/img/badges/ci-badges-with-ie.svg)](https://github.com/APIDevTools/json-schema-ref-parser/actions)\n\n\nThe Problem:\n--------------------------\nYou've got a JSON Schema with `$ref` pointers to other files and/or URLs.  Maybe you know all the referenced files ahead of time.  Maybe you don't.  Maybe some are local files, and others are remote URLs.  Maybe they are a mix of JSON and YAML format.  Maybe some of the files contain cross-references to each other.\n\n```javascript\n{\n  \"definitions\": {\n    \"person\": {\n      // references an external file\n      \"$ref\": \"schemas/people/Bruce-Wayne.json\"\n    },\n    \"place\": {\n      // references a sub-schema in an external file\n      \"$ref\": \"schemas/places.yaml#/definitions/Gotham-City\"\n    },\n    \"thing\": {\n      // references a URL\n      \"$ref\": \"http://wayne-enterprises.com/things/batmobile\"\n    },\n    \"color\": {\n      // references a value in an external file via an internal reference\n      \"$ref\": \"#/definitions/thing/properties/colors/black-as-the-night\"\n    }\n  }\n}\n```\n\n\nThe Solution:\n--------------------------\nJSON Schema $Ref Parser is a full [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03) and [JSON Pointer](https://tools.ietf.org/html/rfc6901) implementation that crawls even the most complex [JSON Schemas](http://json-schema.org/latest/json-schema-core.html) and gives you simple, straightforward JavaScript objects.\n\n- Use **JSON** or **YAML** schemas &mdash; or even a mix of both!\n- Supports `$ref` pointers to external files and URLs, as well as [custom sources](https://apitools.dev/json-schema-ref-parser/docs/plugins/resolvers.html) such as databases\n- Can [bundle](https://apitools.dev/json-schema-ref-parser/docs/ref-parser.html#bundlepath-options-callback) multiple files into a single schema that only has _internal_ `$ref` pointers\n- Can [dereference](https://apitools.dev/json-schema-ref-parser/docs/ref-parser.html#dereferencepath-options-callback) your schema, producing a plain-old JavaScript object that's easy to work with\n- Supports [circular references](https://apitools.dev/json-schema-ref-parser/docs/#circular-refs), nested references, back-references, and cross-references between files\n- Maintains object reference equality &mdash; `$ref` pointers to the same value always resolve to the same object instance\n- Tested in Node v10, v12, & v14, and all major web browsers on Windows, Mac, and Linux\n\n\nExample\n--------------------------\n\n```javascript\n$RefParser.dereference(mySchema, (err, schema) => {\n  if (err) {\n    console.error(err);\n  }\n  else {\n    // `schema` is just a normal JavaScript object that contains your entire JSON Schema,\n    // including referenced files, combined into a single object\n    console.log(schema.definitions.person.properties.firstName);\n  }\n})\n```\n\nOr use `async`/`await` syntax instead. The following example is the same as above:\n\n```javascript\ntry {\n  let schema = await $RefParser.dereference(mySchema);\n  console.log(schema.definitions.person.properties.firstName);\n}\ncatch(err) {\n  console.error(err);\n}\n```\n\nFor more detailed examples, please see the [API Documentation](https://apitools.dev/json-schema-ref-parser/docs/)\n\n\n\nInstallation\n--------------------------\nInstall using [npm](https://docs.npmjs.com/about-npm/):\n\n```bash\nnpm install @apidevtools/json-schema-ref-parser\n```\n\n\n\nUsage\n--------------------------\nWhen using JSON Schema $Ref Parser in Node.js apps, you'll probably want to use **CommonJS** syntax:\n\n```javascript\nconst $RefParser = require(\"@apidevtools/json-schema-ref-parser\");\n```\n\nWhen using a transpiler such as [Babel](https://babeljs.io/) or [TypeScript](https://www.typescriptlang.org/), or a bundler such as [Webpack](https://webpack.js.org/) or [Rollup](https://rollupjs.org/), you can use **ECMAScript modules** syntax instead:\n\n```javascript\nimport $RefParser from \"@apidevtools/json-schema-ref-parser\";\n```\n\nIf you are using Node.js < 18, you'll need a polyfill for `fetch`, like [node-fetch](https://github.com/node-fetch/node-fetch):\n```javascript\nimport fetch from \"node-fetch\";\n\nglobalThis.fetch = fetch;\n```\n\n\n\nBrowser support\n--------------------------\nJSON Schema $Ref Parser supports recent versions of every major web browser.  Older browsers may require [Babel](https://babeljs.io/) and/or [polyfills](https://babeljs.io/docs/en/next/babel-polyfill).\n\nTo use JSON Schema $Ref Parser in a browser, you'll need to use a bundling tool such as [Webpack](https://webpack.js.org/), [Rollup](https://rollupjs.org/), [Parcel](https://parceljs.org/), or [Browserify](http://browserify.org/). Some bundlers may require a bit of configuration, such as setting `browser: true` in [rollup-plugin-resolve](https://github.com/rollup/rollup-plugin-node-resolve).\n\n\n\nAPI Documentation\n--------------------------\nFull API documentation is available [right here](https://apitools.dev/json-schema-ref-parser/docs/)\n\n\n\nContributing\n--------------------------\nI welcome any contributions, enhancements, and bug-fixes.  [Open an issue](https://github.com/APIDevTools/json-schema-ref-parser/issues) on GitHub and [submit a pull request](https://github.com/APIDevTools/json-schema-ref-parser/pulls).\n\n#### Building/Testing\nTo build/test the project locally on your computer:\n\n1. __Clone this repo__<br>\n`git clone https://github.com/APIDevTools/json-schema-ref-parser.git`\n\n2. __Install dependencies__<br>\n`npm install`\n\n3. __Run the tests__<br>\n`npm test`\n\n\n\nLicense\n--------------------------\nJSON Schema $Ref Parser is 100% free and open-source, under the [MIT license](LICENSE). Use it however you want.\n\nThis package is [Treeware](http://treeware.earth). If you use it in production, then we ask that you [**buy the world a tree**](https://plant.treeware.earth/APIDevTools/json-schema-ref-parser) to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.\n\n\n\nBig Thanks To\n--------------------------\nThanks to these awesome companies for their support of Open Source developers ❤\n\n[![Stoplight](https://svgshare.com/i/TK5.svg)](https://stoplight.io/?utm_source=github&utm_medium=readme&utm_campaign=json_schema_ref_parser)\n[![SauceLabs](https://jstools.dev/img/badges/sauce-labs.svg)](https://saucelabs.com)\n[![Coveralls](https://jstools.dev/img/badges/coveralls.svg)](https://coveralls.io)\n","readmeFilename":"README.md"}