{"analyzedAt":"2022-06-29T21:21:45.509Z","collected":{"metadata":{"name":"interpret","scope":"unscoped","version":"3.1.1","description":"A dictionary of file extensions and associated module loaders.","keywords":["coffee","coffee.md","coffeescript","es","es6","js","json","json5","jsx","react","litcoffee","toml","ts","typescript","xml","yaml","yml"],"date":"2022-06-29T21:21:35.360Z","author":{"name":"Gulp Team","email":"team@gulpjs.com","url":"https://gulpjs.com/"},"publisher":{"username":"phated","email":"blaine.bublitz@gmail.com"},"maintainers":[{"username":"sttk","email":"sttk.xslet@gmail.com"},{"username":"phated","email":"blaine.bublitz@gmail.com"},{"username":"yocontra","email":"yo@contra.io"},{"username":"tkellen","email":"tyler@sleekcode.net"}],"contributors":[{"name":"Blaine Bublitz","email":"blaine.bublitz@gmail.com"},{"name":"Tyler Kellen","email":"tyler@sleekcode.net","url":"http://goingslowly.com/"}],"repository":{"type":"git","url":"git+https://github.com/gulpjs/interpret.git"},"links":{"npm":"https://www.npmjs.com/package/interpret","homepage":"https://github.com/gulpjs/interpret#readme","repository":"https://github.com/gulpjs/interpret","bugs":"https://github.com/gulpjs/interpret/issues"},"license":"MIT","devDependencies":{"eslint":"^7.0.0","eslint-config-gulp":"^5.0.0","eslint-plugin-node":"^11.1.0","expect":"^27.0.0","js-yaml":"^4.1.0","mocha":"^8.0.0","nyc":"^15.0.0","parse-node-version":"^2.0.0","rechoir":"^0.8.0","remark-cli":"^10.0.1","remark-code-import":"^1.1.0","shelljs":"0.8.5"},"releases":[{"from":"2022-05-30T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":0},{"from":"2022-03-31T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":1},{"from":"2021-12-31T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":1},{"from":"2021-06-29T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":1},{"from":"2020-06-29T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":1}],"hasTestScript":true,"hasSelectiveFiles":true,"readme":"<p align=\"center\">\n  <a href=\"http://gulpjs.com\">\n    <img height=\"257\" width=\"114\" src=\"https://raw.githubusercontent.com/gulpjs/artwork/master/gulp-2x.png\">\n  </a>\n</p>\n\n# interpret\n\n[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Coveralls Status][coveralls-image]][coveralls-url]\n\nA dictionary of file extensions and associated module loaders.\n\n## What is it\n\nThis is used by [Liftoff] to automatically require dependencies for configuration files, and by [rechoir] for registering module loaders.\n\n## How to use it\n\nConsumers should use the exported `extensions` or `jsVariants` object to determine which module should be loaded for a given extension. If a matching extension is found, consumers should do the following:\n\n1.  If the value is null, do nothing.\n2.  If the value is a string, try to require it.\n3.  If the value is an object, try to require the `module` property. If successful, the `register` property (a function) should be called with the module passed as the first argument. **Advanced:** An optional second argument can be provided to replace the default configuration for a hook.\n4.  If the value is an array, iterate over it, attempting step #2 or #3 until one of the attempts does not throw.\n\n## API\n\nThis module provides two top-level properties: `extensions` and `jsVariants`.\n\n**Note:** This module does not depend on any of the loaders it recommends; instead, end-users are expected to install the hooks they want to use for the file types they want to use. See supported extensions and their hooks in the sections below.\n\n### `extensions`\n\nA mapping of file extensions to modules which provide a [require.extensions] loader.\n\nFile extension keys are all in the format of `'.foo'` or `'.foo.bar'` and module loader values are either `null` if the loader should fallthrough to node's loader,\nor a string representing the module to be required, an object of `{ module: 'foobar', register: function }`, or an array containing those strings and/or objects.\n\nA sample of an entry containing multiple hooks would look like:\n\n```js\n{\n  '.ts': [\n    'ts-node/register',\n    'sucrase/register/ts',\n    {\n      module: '@babel/register',\n      register: function(hook) {\n        hook({\n          extensions: '.ts',\n          rootMode: 'upward-optional',\n          ignore: [ignoreNonBabelAndNodeModules],\n        });\n      },\n    },\n  ],\n}\n```\n\n**Supported extensions and their hooks**\n\n```yaml file=scripts/extensions.yaml\n.babel.js:\n  - '@babel/register'\n.babel.jsx:\n  - '@babel/register'\n.babel.ts:\n  - '@babel/register'\n.babel.tsx:\n  - '@babel/register'\n.cjs:\n  - interpret/cjs-stub\n.coffee:\n  - coffeescript/register\n.coffee.md:\n  - coffeescript/register\n.cts:\n  - ts-node/register\n.esbuild.js:\n  - esbuild-register/dist/node\n.esbuild.jsx:\n  - esbuild-register/dist/node\n.esbuild.ts:\n  - esbuild-register/dist/node\n.esbuild.tsx:\n  - esbuild-register/dist/node\n.esm.js:\n  - esm\n.js:\n  - built-in node.js loader\n.json:\n  - built-in node.js loader\n.json5:\n  - json5/lib/register\n.jsx:\n  - '@babel/register'\n  - sucrase/register/jsx\n.litcoffee:\n  - coffeescript/register\n.mdx:\n  - '@mdx-js/register'\n.mjs:\n  - interpret/mjs-stub\n.node:\n  - built-in node.js loader\n.sucrase.js:\n  - sucrase/dist/register\n.sucrase.jsx:\n  - sucrase/dist/register\n.sucrase.ts:\n  - sucrase/dist/register\n.sucrase.tsx:\n  - sucrase/dist/register\n.swc.js:\n  - '@swc/register'\n.swc.jsx:\n  - '@swc/register'\n.swc.ts:\n  - '@swc/register'\n.swc.tsx:\n  - '@swc/register'\n.toml:\n  - toml-require\n.ts:\n  - ts-node/register\n  - sucrase/register/ts\n  - '@babel/register'\n  - esbuild-register/dist/node\n  - '@swc/register'\n.tsx:\n  - ts-node/register\n  - sucrase/register/tsx\n  - '@babel/register'\n  - esbuild-register/dist/node\n  - '@swc/register'\n.yaml:\n  - yaml-hook/register\n.yml:\n  - yaml-hook/register\n```\n\n### `jsVariants`\n\nThe `jsVariants` is the same mapping as above, but only include the extensions which are variants of JavaScript.\n\n**Supported extensions and their hooks**\n\n```yaml file=scripts/jsVariants.yaml\n.babel.js:\n  - '@babel/register'\n.babel.jsx:\n  - '@babel/register'\n.babel.ts:\n  - '@babel/register'\n.babel.tsx:\n  - '@babel/register'\n.cjs:\n  - interpret/cjs-stub\n.coffee:\n  - coffeescript/register\n.coffee.md:\n  - coffeescript/register\n.esbuild.js:\n  - esbuild-register/dist/node\n.esbuild.jsx:\n  - esbuild-register/dist/node\n.esbuild.ts:\n  - esbuild-register/dist/node\n.esbuild.tsx:\n  - esbuild-register/dist/node\n.esm.js:\n  - esm\n.js:\n  - built-in node.js loader\n.jsx:\n  - '@babel/register'\n  - sucrase/register/jsx\n.litcoffee:\n  - coffeescript/register\n.mdx:\n  - '@mdx-js/register'\n.mjs:\n  - interpret/mjs-stub\n.sucrase.js:\n  - sucrase/dist/register\n.sucrase.jsx:\n  - sucrase/dist/register\n.sucrase.ts:\n  - sucrase/dist/register\n.sucrase.tsx:\n  - sucrase/dist/register\n.swc.js:\n  - '@swc/register'\n.swc.jsx:\n  - '@swc/register'\n.swc.ts:\n  - '@swc/register'\n.swc.tsx:\n  - '@swc/register'\n.ts:\n  - ts-node/register\n  - sucrase/register/ts\n  - '@babel/register'\n  - esbuild-register/dist/node\n  - '@swc/register'\n.tsx:\n  - ts-node/register\n  - sucrase/register/tsx\n  - '@babel/register'\n  - esbuild-register/dist/node\n  - '@swc/register'\n```\n\n## License\n\nMIT\n\n<!-- prettier-ignore-start -->\n\n[downloads-image]: https://img.shields.io/npm/dm/interpret.svg?style=flat-square\n\n[npm-url]: https://www.npmjs.com/package/interpret\n\n[npm-image]: https://img.shields.io/npm/v/interpret.svg?style=flat-square\n\n[ci-url]: https://github.com/gulpjs/interpret/actions?query=workflow:dev\n\n[ci-image]: https://img.shields.io/github/workflow/status/gulpjs/interpret/dev?style=flat-square\n\n[coveralls-url]: https://coveralls.io/r/gulpjs/interpret\n\n[coveralls-image]: https://img.shields.io/coveralls/gulpjs/interpret/master.svg?style=flat-square\n\n<!-- prettier-ignore-end -->\n\n<!-- prettier-ignore-start -->\n\n[Liftoff]: http://github.com/gulpjs/liftoff\n\n[rechoir]: http://github.com/gulpjs/rechoir\n\n[require.extensions]: https://nodejs.org/api/modules.html#requireextensions\n\n<!-- prettier-ignore-end -->"},"npm":{"downloads":[{"from":"2022-06-28T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":3556929},{"from":"2022-06-22T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":18169222},{"from":"2022-05-30T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":78007885},{"from":"2022-03-31T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":222160881},{"from":"2021-12-31T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":426814296},{"from":"2021-06-29T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":798940190}],"starsCount":14},"github":{"starsCount":234,"forksCount":44,"subscribersCount":8,"issues":{"count":92,"openCount":1,"distribution":{"3600":15,"10800":4,"32400":6,"97200":16,"291600":12,"874800":12,"2624400":5,"7873200":7,"23619600":8,"70858800":4,"212576400":3},"isDisabled":false},"contributors":[{"username":"jedmao","commitsCount":1},{"username":"tiye","commitsCount":1},{"username":"phated","commitsCount":71},{"username":"tkellen","commitsCount":39},{"username":"pspeter3","commitsCount":1},{"username":"cspotcode","commitsCount":1},{"username":"ilan-schemoul","commitsCount":1},{"username":"mmotorny","commitsCount":1},{"username":"blakeembrey","commitsCount":1},{"username":"pdehaan","commitsCount":1},{"username":"MadcapJake","commitsCount":2},{"username":"hasparus","commitsCount":1},{"username":"Ambroos","commitsCount":1},{"username":"HRKings","commitsCount":1},{"username":"sttk","commitsCount":7},{"username":"jamesknelson","commitsCount":2},{"username":"Delapouite","commitsCount":1},{"username":"TrySound","commitsCount":1},{"username":"crutchcorn","commitsCount":1},{"username":"flipsasser","commitsCount":1},{"username":"github-actions[bot]","commitsCount":3},{"username":"bwin","commitsCount":1},{"username":"zertosh","commitsCount":1},{"username":"JaKXz","commitsCount":1},{"username":"crteal","commitsCount":1},{"username":"omrilitov","commitsCount":1},{"username":"duereg","commitsCount":1},{"username":"GeoffreyBooth","commitsCount":1},{"username":"simonbuchan","commitsCount":1}],"commits":[{"from":"2022-06-22T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":6},{"from":"2022-05-30T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":6},{"from":"2022-03-31T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":28},{"from":"2021-12-31T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":37},{"from":"2021-06-29T00:00:00.000Z","to":"2022-06-29T00:00:00.000Z","count":37}]},"source":{"files":{"readmeSize":6064,"testsSize":24274,"hasChangelog":true},"badges":[{"urls":{"original":"https://img.shields.io/npm/dm/interpret.svg?style=flat-square","shields":"https://img.shields.io/npm/dm/interpret.svg","content":"https://img.shields.io/npm/dm/interpret.json"},"info":{"service":"npm","type":"downloads","modifiers":{"type":"dm"}}},{"urls":{"original":"https://img.shields.io/npm/v/interpret.svg?style=flat-square","shields":"https://img.shields.io/npm/v/interpret.svg","content":"https://img.shields.io/npm/v/interpret.json"},"info":{"service":"npm","type":"version","modifiers":{"type":"v"}}},{"urls":{"original":"https://img.shields.io/coveralls/gulpjs/interpret/master.svg?style=flat-square","service":"https://coveralls.io/repos/gulpjs/interpret/badge.svg?branch=master","shields":"https://img.shields.io/coveralls/gulpjs/interpret/master.svg","content":"https://img.shields.io/coveralls/gulpjs/interpret/master.json"},"info":{"service":"coveralls","type":"coverage","modifiers":{"branch":"master"}}}],"linters":["editorconfig","eslint","prettier"]}},"evaluation":{"quality":{"carefulness":0.9999999999999999,"tests":0.6,"health":1,"branding":0.44999999999999996},"popularity":{"communityInterest":329,"downloadsCount":74053627,"downloadsAcceleration":148424.72522831045,"dependentsCount":0},"maintenance":{"releasesFrequency":0.9,"commitsFrequency":0.9096643835616438,"openIssues":1,"issuesDistribution":0.9}},"score":{"final":0.8700163449853375,"detail":{"quality":0.9984225073185599,"popularity":0.6300638818061122,"maintenance":0.9999063833075152}}}