{"_id":"link","_rev":"28-fdd1b0e688dfe7a198c29f253e719858","name":"link","description":"A better npm link","dist-tags":{"latest":"2.1.0"},"versions":{"0.1.1":{"name":"link","version":"0.1.1","description":"Module runtime and converter for Labeled Modules, CommonJS and AMD.","homepage":"http://github.com/calyptus/link.js","keywords":["util","modules","label","client","browser","amd","commonjs"],"author":{"name":"Sebastian Markbage","email":"sebastian@calyptus.eu"},"bugs":{"name":"https://github.com/calyptus/link.js/issues"},"licenses":[{"type":"BSD-2-Clause","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"},{"type":"MIT","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"}],"dependencies":{},"engines":{"node":"> 0.4.x < 0.7.0"},"repository":{"type":"git","url":"git://github.com/calyptus/link.js.git"},"main":"./Source/Node/link.js","bin":{"linkjs":"./Source/Node/link.js","link.js":"./Source/Node/link.js"},"_npmUser":{"name":"sebmarkbage","email":"sebastian@calyptus.eu"},"_id":"link@0.1.1","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"235f2d74ebd3e01c54890bc3beca7b1e51547760","tarball":"https://registry.npmjs.org/link/-/link-0.1.1.tgz","integrity":"sha512-rm6Eu5CCvnFqThe7u2CyLgPOT8duu9YaugOAEnXRaPNc9eXIuDIBN4SGkGFDTBySqHI6AkFVYsanP5DOoJQlYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRds3t7JWkaNu0PH5j1YDadxvI35+lP9G/qZ58P680JAIgHn1/5y48cL1zavDQ/wcjE8uKnCaMrgg9rIvaYLXwiHs="}]},"maintainers":[{"name":"sebmarkbage","email":"sebastian@calyptus.eu"}],"directories":{}},"0.1.2":{"name":"link","version":"0.1.2","description":"Module runtime and converter for Labeled Modules, CommonJS and AMD.","homepage":"http://github.com/calyptus/link.js","keywords":["util","modules","label","client","browser","amd","commonjs"],"author":{"name":"Sebastian Markbage","email":"sebastian@calyptus.eu"},"bugs":{"name":"https://github.com/calyptus/link.js/issues"},"licenses":[{"type":"BSD-2-Clause","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"},{"type":"MIT","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"}],"dependencies":{},"engines":{"node":"> 0.4.x < 0.7.0"},"repository":{"type":"git","url":"git://github.com/calyptus/link.js.git"},"main":"./Source/Node/link.js","bin":{"linkjs":"./Source/Node/link.js","link.js":"./Source/Node/link.js"},"_npmUser":{"name":"sebmarkbage","email":"sebastian@calyptus.eu"},"_id":"link@0.1.2","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"805dc224631c9bfc4d6819ea6d2af0cdbe149f95","tarball":"https://registry.npmjs.org/link/-/link-0.1.2.tgz","integrity":"sha512-6ssgUmy1YIqQeknFpI6hAZ3ujDy/QFTF5M4tcgGrNaQbpIomDYaCTZWCOmgom/9lcKfCEjWjL9Frex70b5I6RA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwILwpvqbZkQbA/nClExAIZgxfl4gasPrmsb5NJRElzgIhANoEyOofgGt8LPqTgxplxzCT6cv4PEbqmnFqbkfzkiaE"}]},"maintainers":[{"name":"sebmarkbage","email":"sebastian@calyptus.eu"}],"directories":{}},"0.1.3":{"name":"link","version":"0.1.3","description":"Module runtime and converter for Labeled Modules, CommonJS and AMD.","homepage":"http://github.com/calyptus/link.js","keywords":["util","modules","label","client","browser","amd","commonjs"],"author":{"name":"Sebastian Markbage","email":"sebastian@calyptus.eu"},"bugs":"https://github.com/calyptus/link.js/issues","licenses":[{"type":"BSD-2-Clause","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"},{"type":"MIT","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"}],"dependencies":{},"engines":{"node":"> 0.4.x < 0.7.0"},"repository":{"type":"git","url":"git://github.com/calyptus/link.js.git"},"main":"./Source/Node/link.js","bin":{"linkjs":"./Source/Node/link.js","link.js":"./Source/Node/link.js"},"readme":"What is this?\n-------------\n\nLink.js is a module loader and conversion tool. It supports Labeled Modules, CommonJS and Asynchronous Module Definitions (AMD).\n\nLink.js is the first loader to support the Labeled Modules format. It emulates the import and export statements in ECMAScript.next. In Labeled Modules, the labels **require:** and **exports:** can be used to import or export top level variables in a module.\n\n```javascript\nrequire: \"Math\"\n\nfunction length(a, b){\n\treturn abs(a - b);\n}\n\nexports: function area(x1, y1, x2, y2){\n return length(x1, x2) * length(y1, y2);\n}\n```\n\nThese files are compatible with plain old script tag loading - without bloated boilerplate.\n\n[Read more about this on the Labeled Modules Specification.](http://github.com/labeledmodules/labeled-modules-spec/wiki)\n\n\nHow Do I Run This in the Browser?\n---------------------------------\n\n```html\n\n```\n\nThe first attribute is the path to link.js and the second is the path to your main module.\n\n\nHow Do I Run This in Node.js?\n-----------------------------\n\nAs a global runtime:\n\n```\nnpm install -g link\n```\n\n```\nlinkjs YourMainModule\n```\n\nOR\n\nAs a local dependency:\n\n```\nnpm install link\n```\n\n```javascript\nrequire('link'); // This will allow future modules to use Link.js\nrequire('YourMainModule');\n```\n\nBy using Link.js as a local dependency you can use it as a loader even if your (or your users') environments don't have Link.js installed globally.\n\n\nHow Do I Convert My Source Files to CommonJS or AMD?\n----------------------------------------------------\n\n```\nnpm install -g link\n```\n\n```\nlinkjs --cjs YourModule > YourModuleForCommonJS.js\n\nlinkjs --amd YourModule > YourModuleForAMD.js\n\nlinkjs -c -a YourModule > YourModuleForCommonJSandAMD.js\n```\n\nLibrary/Link.js\n---------------\n\nThis is a library designed to be embedded by other script loaders or as part of\na plugin to other script loaders. It's purpose is to parse a JavaScript file and\nstatically determine any dependencies.\n\nBeyond recognizing Labeled Modules it also recognizes CommonJS modules and\nAsynchronous Module Definitions (AMD).\n\nIt can also convert these JavaScript files into a format compatible with CommonJS,\nAsynchronous Module Definitions and/or exports to the global object\n\n```javascript\nvar commonJSsource = require('link').parse(source).convert(options);\n```\n\nIn static mode, the imported modules are resolved and global variables are replaced with explicit module properties. I.e:\n\n```javascript\nrequire: \"Math\";\nexports: var x = abs(5);\n```\n\nis resolved to:\n\n```javascript\nvar Math = require('Math');\nexports.x = Math.abs(5);\n```\n\nStatic mode is recommended to generate production ready files. In dynamic mode, the imported variables are determined at runtime using a with statement. Your source code is untouched. This is recommended during development.\n\nSee the source file for additional options.\n\n\nNode/Link.js\n------------\n\nThis is a runtime loader and script conversion tool for Node.js. It can be ran stand-alone but it's recommended that you install it using NPM.\n\n```\nnpm install -g link\n```\n\nYou can use this tool to convert your modules into other module formats or universal module formats. You can target multiple formats in a single file.\n\n```\nUsage:\nlinkjs --output [filename] [--global] [--cjs] [--amd] [--strict] modulename\nlinkjs modulename [argv...]\n\nOptions:\n--output [filename] Convert the input file to one or more of the formats below.\n If no filename is provided, the result is written to stdout.\n[--global] [--cjs] [--amd] Select a target format: the global object, CommonJS or AMD.\n[--strict] Enforce dynamic strict mode. Requires ECMAScript 5.\n\n-[o|g|c|a|s] Single character shortcuts for the above options.\n\nmodulename [argv...] Run a module in Node.js, with optional arguments.\n```\n\nYou can alternatively use Link.js as a plugin to Node's existing module loader. First, install it as a local dependency.\n\n```\nnpm install link\n```\n\nThen require it at the first line of your application or module.\n\n```javascript\nrequire('link');\n```\n\nAny subsequent calls to require can now use Labeled Modules or AMD syntax. However, the first loaded module can't because the plugin has not been loaded yet. Your entry module should use CommonJS while sub-modules can use Labeled Modules or AMD.\n\n\nWeb/Link.js\n-----------\n\nThis is a script loader for use in the browser environment. It uses Link.js to load, parse and execute scripts in isolated scopes so that there are no conflicts between the files. It supports at least Chrome, Safari, Firefox, Opera and IE6+.\n\nTo load a module using Link.js simply add a script tag to your HTML where the **src** attribute points to link.js and the **data-main** attribute specifies your main module to load.\n\n```html\n\n```\n\nLink.js doesn't normally expose an API to the global object. It can be **required** from within your module though. The exported API is the same as the Module Loader API proposed for [ECMAScript.next](http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders).\n\n\nDebugging\n---------\n\nWeb/Link.js uses XHR to load and parse your code, then it executes it using **eval**.\n\nSome browser tools won't allow debugging of eval:ed code by default. However, Link.js\nuses the `//@ sourceURL=...` convention to enable proper debugging in compatible browsers.\n\nIn Safari 5.1, this feature is broken for JIT:ed code. It's fixed in the nightly builds.\n\nIE and Opera does support debugging of eval:ed code but doesn't give them a proper name in the\nUI. This means breakpoints are not persistent between page reloads. Please bug them until they\nfix this.\n\nA future enhancement of Web/Link.js could load some files that do not conflict in plain\nscript tags.\n\n\nHosting Cross-Domain\n--------------------\n\nIf you're hosting your development source code, you should enable\n[Cross-Origin Resource Sharing](http://www.w3.org/TR/cors/) on your server. This will enable\nfull Link.js support in browsers that support CORS.\n\nIf you're unable to use CORS, you could still load cross-domain modules in legacy mode,\nif they don't share export names. You simply load the modules and any indirect dependencies\nin the right order.\n\nIf you're able to host a HTML file, you could also use an porthole compatible loader, such as\n[Inject](https://github.com/linkedin/inject), that enable cross-domain loading through an\niframe proxy.\n\nIf you're loading from the file:// protocol and XHR is not supported (Chrome), or you wish\nto host your files cross-domain in production, you can use Link.js to convert your\nsource files into Asynchronous Module Definitions (AMD).\n\n\nKnown Issues\n------------\n\nThere are a few very subtle cases where the semantics of Link.js differs from a regular\nprogram. You're very unlikely to hit any of them.\n\n**Deleting a variable** binding is usually a no-op.\n\n```javascript\nvar x = true;\ndelete x;\n```\n\nAfter running this code, **x** should still be **true**. However, Link.js may treats global\nvariables as deletable, so **x** is now **undefined**.\n\nThe solution is to avoid using this in your code. If you do have it, it's probably a bug.\nECMAScript 5 strict mode explicitly forbits deleting variable bindings. A future version of\nLink.js may ignore such delete statements.\n\n**The function declaration** statement is often missunderstood and can lead to\nunexpected behavior.\n\n```javascript\nvar bar = foo;\nfunction foo(){\n\tconsole.log(foo); // \"Bar\"\n}\nfoo = \"Bar\";\nbar();\n```\n\nThis should output \"Bar\" as you might expect. However, Link.js treats exported function\ndeclarations more like this:\n\n```javascript\nvar foo = function foo(){\n\tconsole.log(foo); // function\n};\nvar bar = foo;\nfoo = \"Bar\";\nbar();\n```\n\nThis subtle difference means that `console.log(foo);` no longer refers to the global variable\nbinding `foo` but directly to the function itself. You're very unlikely to hit this issue.\n\nAdditionally, V8 (incorrectly) won't allow labels on function declarations in strict mode.\n\nTo avoid confusion in edge cases, you can use anonymous function expressions syntax for\nexported functions:\n\n```javascript\nexports: var foo = function(){ ... };\n```\n\nThanks\n------\n\nA special thanks to [@dherman](https://github.com/dherman) for coming up with ECMAScript.next modules and with the name Link.js for this library.","readmeFilename":"README.md","_id":"link@0.1.3","dist":{"shasum":"df80317ce86c8a39d0869e854ebcc9332ac089b5","tarball":"https://registry.npmjs.org/link/-/link-0.1.3.tgz","integrity":"sha512-IsDfHDxfhlkKle40oYYHf/a2FBv3l8P37pl6I8P1I5QaSWWHQN4tf3IsQAROuiDpuhyTtzHnxJGVJOxL60fFNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjWRlLmB1MuvFKP2Yl7BZXfRBNz/IyfjfdyVx0OaStngIhALmdTDEaLL4tedOOE5MNa+SPiZbJFpet6uAuaCdO1hr6"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"sebmarkbage","email":"sebastian@calyptus.eu"},"maintainers":[{"name":"sebmarkbage","email":"sebastian@calyptus.eu"}],"directories":{}},"0.1.4":{"name":"link","version":"0.1.4","description":"Module runtime and converter for Labeled Modules, CommonJS and AMD.","homepage":"http://github.com/calyptus/link.js","keywords":["util","modules","label","client","browser","amd","commonjs"],"author":{"name":"Sebastian Markbage","email":"sebastian@calyptus.eu"},"bugs":"https://github.com/calyptus/link.js/issues","licenses":[{"type":"BSD-2-Clause","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"},{"type":"MIT","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"}],"dependencies":{},"engines":{"node":"> 0.4.x < 0.9.0"},"repository":{"type":"git","url":"git://github.com/calyptus/link.js.git"},"main":"./Source/Node/link.js","bin":{"linkjs":"./Source/Node/link.js","link.js":"./Source/Node/link.js"},"readme":"What is this?\n-------------\n\nLink.js is a module loader and conversion tool. It supports Labeled Modules, CommonJS and Asynchronous Module Definitions (AMD).\n\nLink.js is the first loader to support the Labeled Modules format. It emulates the import and export statements in ECMAScript.next. In Labeled Modules, the labels **require:** and **exports:** can be used to import or export top level variables in a module.\n\n```javascript\nrequire: \"Math\"\n\nfunction length(a, b){\n\treturn abs(a - b);\n}\n\nexports: function area(x1, y1, x2, y2){\n return length(x1, x2) * length(y1, y2);\n}\n```\n\nThese files are compatible with plain old script tag loading - without bloated boilerplate.\n\n[Read more about this on the Labeled Modules Specification.](http://github.com/labeledmodules/labeled-modules-spec/wiki)\n\n\nHow Do I Run This in the Browser?\n---------------------------------\n\n```html\n\n```\n\nThe first attribute is the path to link.js and the second is the path to your main module.\n\n\nHow Do I Run This in Node.js?\n-----------------------------\n\nAs a global runtime:\n\n```\nnpm install -g link\n```\n\n```\nlinkjs YourMainModule\n```\n\nOR\n\nAs a local dependency:\n\n```\nnpm install link\n```\n\n```javascript\nrequire('link'); // This will allow future modules to use Link.js\nrequire('YourMainModule');\n```\n\nBy using Link.js as a local dependency you can use it as a loader even if your (or your users') environments don't have Link.js installed globally.\n\n\nHow Do I Convert My Source Files to CommonJS or AMD?\n----------------------------------------------------\n\n```\nnpm install -g link\n```\n\n```\nlinkjs --cjs YourModule > YourModuleForCommonJS.js\n\nlinkjs --amd YourModule > YourModuleForAMD.js\n\nlinkjs -c -a YourModule > YourModuleForCommonJSandAMD.js\n```\n\nLibrary/Link.js\n---------------\n\nThis is a library designed to be embedded by other script loaders or as part of\na plugin to other script loaders. It's purpose is to parse a JavaScript file and\nstatically determine any dependencies.\n\nBeyond recognizing Labeled Modules it also recognizes CommonJS modules and\nAsynchronous Module Definitions (AMD).\n\nIt can also convert these JavaScript files into a format compatible with CommonJS,\nAsynchronous Module Definitions and/or exports to the global object\n\n```javascript\nvar commonJSsource = require('link').parse(source).convert(options);\n```\n\nIn static mode, the imported modules are resolved and global variables are replaced with explicit module properties. I.e:\n\n```javascript\nrequire: \"Math\";\nexports: var x = abs(5);\n```\n\nis resolved to:\n\n```javascript\nvar Math = require('Math');\nexports.x = Math.abs(5);\n```\n\nStatic mode is recommended to generate production ready files. In dynamic mode, the imported variables are determined at runtime using a with statement. Your source code is untouched. This is recommended during development.\n\nSee the source file for additional options.\n\n\nNode/Link.js\n------------\n\nThis is a runtime loader and script conversion tool for Node.js. It can be ran stand-alone but it's recommended that you install it using NPM.\n\n```\nnpm install -g link\n```\n\nYou can use this tool to convert your modules into other module formats or universal module formats. You can target multiple formats in a single file.\n\n```\nUsage:\nlinkjs --output [filename] [--global] [--cjs] [--amd] [--strict] modulename\nlinkjs modulename [argv...]\n\nOptions:\n--output [filename] Convert the input file to one or more of the formats below.\n If no filename is provided, the result is written to stdout.\n[--global] [--cjs] [--amd] Select a target format: the global object, CommonJS or AMD.\n[--strict] Enforce dynamic strict mode. Requires ECMAScript 5.\n\n-[o|g|c|a|s] Single character shortcuts for the above options.\n\nmodulename [argv...] Run a module in Node.js, with optional arguments.\n```\n\nYou can alternatively use Link.js as a plugin to Node's existing module loader. First, install it as a local dependency.\n\n```\nnpm install link\n```\n\nThen require it at the first line of your application or module.\n\n```javascript\nrequire('link');\n```\n\nAny subsequent calls to require can now use Labeled Modules or AMD syntax. However, the first loaded module can't because the plugin has not been loaded yet. Your entry module should use CommonJS while sub-modules can use Labeled Modules or AMD.\n\n\nWeb/Link.js\n-----------\n\nThis is a script loader for use in the browser environment. It uses Link.js to load, parse and execute scripts in isolated scopes so that there are no conflicts between the files. It supports at least Chrome, Safari, Firefox, Opera and IE6+.\n\nTo load a module using Link.js simply add a script tag to your HTML where the **src** attribute points to link.js and the **data-main** attribute specifies your main module to load.\n\n```html\n\n```\n\nLink.js doesn't normally expose an API to the global object. It can be **required** from within your module though. The exported API is the same as the Module Loader API proposed for [ECMAScript.next](http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders).\n\n\nDebugging\n---------\n\nWeb/Link.js uses XHR to load and parse your code, then it executes it using **eval**.\n\nSome browser tools won't allow debugging of eval:ed code by default. However, Link.js\nuses the `//@ sourceURL=...` convention to enable proper debugging in compatible browsers.\n\nIn Safari 5.1, this feature is broken for JIT:ed code. It's fixed in the nightly builds.\n\nIE and Opera does support debugging of eval:ed code but doesn't give them a proper name in the\nUI. This means breakpoints are not persistent between page reloads. Please bug them until they\nfix this.\n\nA future enhancement of Web/Link.js could load some files that do not conflict in plain\nscript tags.\n\n\nHosting Cross-Domain\n--------------------\n\nIf you're hosting your development source code, you should enable\n[Cross-Origin Resource Sharing](http://www.w3.org/TR/cors/) on your server. This will enable\nfull Link.js support in browsers that support CORS.\n\nIf you're unable to use CORS, you could still load cross-domain modules in legacy mode,\nif they don't share export names. You simply load the modules and any indirect dependencies\nin the right order.\n\nIf you're able to host a HTML file, you could also use an porthole compatible loader, such as\n[Inject](https://github.com/linkedin/inject), that enable cross-domain loading through an\niframe proxy.\n\nIf you're loading from the file:// protocol and XHR is not supported (Chrome), or you wish\nto host your files cross-domain in production, you can use Link.js to convert your\nsource files into Asynchronous Module Definitions (AMD).\n\n\nKnown Issues\n------------\n\nThere are a few very subtle cases where the semantics of Link.js differs from a regular\nprogram. You're very unlikely to hit any of them.\n\n**Deleting a variable** binding is usually a no-op.\n\n```javascript\nvar x = true;\ndelete x;\n```\n\nAfter running this code, **x** should still be **true**. However, Link.js may treats global\nvariables as deletable, so **x** is now **undefined**.\n\nThe solution is to avoid using this in your code. If you do have it, it's probably a bug.\nECMAScript 5 strict mode explicitly forbits deleting variable bindings. A future version of\nLink.js may ignore such delete statements.\n\n**The function declaration** statement is often missunderstood and can lead to\nunexpected behavior.\n\n```javascript\nvar bar = foo;\nfunction foo(){\n\tconsole.log(foo); // \"Bar\"\n}\nfoo = \"Bar\";\nbar();\n```\n\nThis should output \"Bar\" as you might expect. However, Link.js treats exported function\ndeclarations more like this:\n\n```javascript\nvar foo = function foo(){\n\tconsole.log(foo); // function\n};\nvar bar = foo;\nfoo = \"Bar\";\nbar();\n```\n\nThis subtle difference means that `console.log(foo);` no longer refers to the global variable\nbinding `foo` but directly to the function itself. You're very unlikely to hit this issue.\n\nAdditionally, V8 (incorrectly) won't allow labels on function declarations in strict mode.\n\nTo avoid confusion in edge cases, you can use anonymous function expressions syntax for\nexported functions:\n\n```javascript\nexports: var foo = function(){ ... };\n```\n\nThanks\n------\n\nA special thanks to [@dherman](https://github.com/dherman) for coming up with ECMAScript.next modules and with the name Link.js for this library.","readmeFilename":"README.md","_id":"link@0.1.4","dist":{"shasum":"511149807bc58e02ba270c488bfe7f1bc4d1a5ad","tarball":"https://registry.npmjs.org/link/-/link-0.1.4.tgz","integrity":"sha512-NDx3rYNbXl81cNKQkNnDAlxM9u9d6W2oNJLRA6KVLvL+7SEFYw0wcAI1hjAyJDpPzuBNpfu0XGkK6SApITnMmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEt7/67Aci/TwOeZuclyFcf3QwwXzkHfqksbDU2W1JSAiB+MpW2/78r3W6oBBw6Uczh8r9OUbim46yajhlZBYfaWA=="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"sebmarkbage","email":"sebastian@calyptus.eu"},"maintainers":[{"name":"sebmarkbage","email":"sebastian@calyptus.eu"}],"directories":{}},"0.1.5":{"name":"link","version":"0.1.5","description":"Module runtime and converter for Labeled Modules, CommonJS and AMD.","homepage":"http://github.com/calyptus/link.js","keywords":["util","modules","label","client","browser","amd","commonjs"],"author":{"name":"Sebastian Markbage","email":"sebastian@calyptus.eu"},"bugs":"https://github.com/calyptus/link.js/issues","licenses":[{"type":"BSD-2-Clause","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"},{"type":"MIT","url":"http://raw.github.com/calyptus/link.js/master/LICENSE"}],"dependencies":{},"engines":{"node":"> 0.4.x < 0.9.0"},"repository":{"type":"git","url":"git://github.com/calyptus/link.js.git"},"main":"./Source/Node/link.js","bin":{"linkjs":"./Source/Node/link.js","link.js":"./Source/Node/link.js"},"readme":"What is this?\n-------------\n\nLink.js is a module loader and conversion tool. It supports Labeled Modules, CommonJS and Asynchronous Module Definitions (AMD).\n\nLink.js is the first loader to support the Labeled Modules format. It emulates the import and export statements in ECMAScript.next. In Labeled Modules, the labels **require:** and **exports:** can be used to import or export top level variables in a module.\n\n```javascript\nrequire: \"Math\"\n\nfunction length(a, b){\n\treturn abs(a - b);\n}\n\nexports: function area(x1, y1, x2, y2){\n return length(x1, x2) * length(y1, y2);\n}\n```\n\nThese files are compatible with plain old script tag loading - without bloated boilerplate.\n\n[Read more about this on the Labeled Modules Specification.](http://github.com/labeledmodules/labeled-modules-spec/wiki)\n\n\nHow Do I Run This in the Browser?\n---------------------------------\n\n```html\n\n```\n\nThe first attribute is the path to link.js and the second is the path to your main module.\n\n\nHow Do I Run This in Node.js?\n-----------------------------\n\nAs a global runtime:\n\n```\nnpm install -g link\n```\n\n```\nlinkjs YourMainModule\n```\n\nOR\n\nAs a local dependency:\n\n```\nnpm install link\n```\n\n```javascript\nrequire('link'); // This will allow future modules to use Link.js\nrequire('YourMainModule');\n```\n\nBy using Link.js as a local dependency you can use it as a loader even if your (or your users') environments don't have Link.js installed globally.\n\n\nHow Do I Convert My Source Files to CommonJS or AMD?\n----------------------------------------------------\n\n```\nnpm install -g link\n```\n\n```\nlinkjs --cjs YourModule > YourModuleForCommonJS.js\n\nlinkjs --amd YourModule > YourModuleForAMD.js\n\nlinkjs -c -a YourModule > YourModuleForCommonJSandAMD.js\n```\n\nLibrary/Link.js\n---------------\n\nThis is a library designed to be embedded by other script loaders or as part of\na plugin to other script loaders. It's purpose is to parse a JavaScript file and\nstatically determine any dependencies.\n\nBeyond recognizing Labeled Modules it also recognizes CommonJS modules and\nAsynchronous Module Definitions (AMD).\n\nIt can also convert these JavaScript files into a format compatible with CommonJS,\nAsynchronous Module Definitions and/or exports to the global object\n\n```javascript\nvar commonJSsource = require('link').parse(source).convert(options);\n```\n\nIn static mode, the imported modules are resolved and global variables are replaced with explicit module properties. I.e:\n\n```javascript\nrequire: \"Math\";\nexports: var x = abs(5);\n```\n\nis resolved to:\n\n```javascript\nvar Math = require('Math');\nexports.x = Math.abs(5);\n```\n\nStatic mode is recommended to generate production ready files. In dynamic mode, the imported variables are determined at runtime using a with statement. Your source code is untouched. This is recommended during development.\n\nSee the source file for additional options.\n\n\nNode/Link.js\n------------\n\nThis is a runtime loader and script conversion tool for Node.js. It can be ran stand-alone but it's recommended that you install it using NPM.\n\n```\nnpm install -g link\n```\n\nYou can use this tool to convert your modules into other module formats or universal module formats. You can target multiple formats in a single file.\n\n```\nUsage:\nlinkjs --output [filename] [--global] [--cjs] [--amd] [--strict] modulename\nlinkjs modulename [argv...]\n\nOptions:\n--output [filename] Convert the input file to one or more of the formats below.\n If no filename is provided, the result is written to stdout.\n[--global] [--cjs] [--amd] Select a target format: the global object, CommonJS or AMD.\n[--strict] Enforce dynamic strict mode. Requires ECMAScript 5.\n\n-[o|g|c|a|s] Single character shortcuts for the above options.\n\nmodulename [argv...] Run a module in Node.js, with optional arguments.\n```\n\nYou can alternatively use Link.js as a plugin to Node's existing module loader. First, install it as a local dependency.\n\n```\nnpm install link\n```\n\nThen require it at the first line of your application or module.\n\n```javascript\nrequire('link');\n```\n\nAny subsequent calls to require can now use Labeled Modules or AMD syntax. However, the first loaded module can't because the plugin has not been loaded yet. Your entry module should use CommonJS while sub-modules can use Labeled Modules or AMD.\n\n\nWeb/Link.js\n-----------\n\nThis is a script loader for use in the browser environment. It uses Link.js to load, parse and execute scripts in isolated scopes so that there are no conflicts between the files. It supports at least Chrome, Safari, Firefox, Opera and IE6+.\n\nTo load a module using Link.js simply add a script tag to your HTML where the **src** attribute points to link.js and the **data-main** attribute specifies your main module to load.\n\n```html\n\n```\n\nLink.js doesn't normally expose an API to the global object. It can be **required** from within your module though. The exported API is the same as the Module Loader API proposed for [ECMAScript.next](http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders).\n\n\nDebugging\n---------\n\nWeb/Link.js uses XHR to load and parse your code, then it executes it using **eval**.\n\nSome browser tools won't allow debugging of eval:ed code by default. However, Link.js\nuses the `//@ sourceURL=...` convention to enable proper debugging in compatible browsers.\n\nIn Safari 5.1, this feature is broken for JIT:ed code. It's fixed in the nightly builds.\n\nIE and Opera does support debugging of eval:ed code but doesn't give them a proper name in the\nUI. This means breakpoints are not persistent between page reloads. Please bug them until they\nfix this.\n\nA future enhancement of Web/Link.js could load some files that do not conflict in plain\nscript tags.\n\n\nHosting Cross-Domain\n--------------------\n\nIf you're hosting your development source code, you should enable\n[Cross-Origin Resource Sharing](http://www.w3.org/TR/cors/) on your server. This will enable\nfull Link.js support in browsers that support CORS.\n\nIf you're unable to use CORS, you could still load cross-domain modules in legacy mode,\nif they don't share export names. You simply load the modules and any indirect dependencies\nin the right order.\n\nIf you're able to host a HTML file, you could also use an porthole compatible loader, such as\n[Inject](https://github.com/linkedin/inject), that enable cross-domain loading through an\niframe proxy.\n\nIf you're loading from the file:// protocol and XHR is not supported (Chrome), or you wish\nto host your files cross-domain in production, you can use Link.js to convert your\nsource files into Asynchronous Module Definitions (AMD).\n\n\nKnown Issues\n------------\n\nThere are a few very subtle cases where the semantics of Link.js differs from a regular\nprogram. You're very unlikely to hit any of them.\n\n**Deleting a variable** binding is usually a no-op.\n\n```javascript\nvar x = true;\ndelete x;\n```\n\nAfter running this code, **x** should still be **true**. However, Link.js may treats global\nvariables as deletable, so **x** is now **undefined**.\n\nThe solution is to avoid using this in your code. If you do have it, it's probably a bug.\nECMAScript 5 strict mode explicitly forbits deleting variable bindings. A future version of\nLink.js may ignore such delete statements.\n\n**The function declaration** statement is often missunderstood and can lead to\nunexpected behavior.\n\n```javascript\nvar bar = foo;\nfunction foo(){\n\tconsole.log(foo); // \"Bar\"\n}\nfoo = \"Bar\";\nbar();\n```\n\nThis should output \"Bar\" as you might expect. However, Link.js treats exported function\ndeclarations more like this:\n\n```javascript\nvar foo = function foo(){\n\tconsole.log(foo); // function\n};\nvar bar = foo;\nfoo = \"Bar\";\nbar();\n```\n\nThis subtle difference means that `console.log(foo);` no longer refers to the global variable\nbinding `foo` but directly to the function itself. You're very unlikely to hit this issue.\n\nAdditionally, V8 (incorrectly) won't allow labels on function declarations in strict mode.\n\nTo avoid confusion in edge cases, you can use anonymous function expressions syntax for\nexported functions:\n\n```javascript\nexports: var foo = function(){ ... };\n```\n\nThanks\n------\n\nA special thanks to [@dherman](https://github.com/dherman) for coming up with ECMAScript.next modules and with the name Link.js for this library.","readmeFilename":"README.md","_id":"link@0.1.5","dist":{"shasum":"7fc7aa5bd3f6ac5a19c5255a23f4207d6852e92e","tarball":"https://registry.npmjs.org/link/-/link-0.1.5.tgz","integrity":"sha512-ltCVJEoN80PEjHHznuhQN5zweh/HBXOINNEGmoJpXgZ6u+21mDvI1a8k3dg0ovlSnns4S+7BhiRisi+znn+Uyg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDyo+TpgCSWhwS+igZBDw9+UPdyX4Pt602GCHjUT82GRAiEA6fK3wHPukvDXVPDiGE3zBIgi8AJzKjfnYIVs/j4FNF0="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"sebmarkbage","email":"sebastian@calyptus.eu"},"maintainers":[{"name":"sebmarkbage","email":"sebastian@calyptus.eu"}],"directories":{}},"1.0.0":{"name":"link","version":"1.0.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"scripts":{"build":"pkgroll --minify","pretest":"npm run build","test":"esno tests/index.ts","lint":"eslint ."},"devDependencies":{"@pvtnbr/eslint-config":"^0.19.1","@types/node":"^17.0.23","cleye":"^1.1.0","del":"^6.0.0","eslint":"^8.13.0","esno":"^0.14.1","execa":"^6.1.0","get-node":"^12.1.0","kolorist":"^1.5.1","manten":"^0.0.3","pkgroll":"^1.0.3","type-fest":"^2.12.2","typescript":"^4.6.3"},"eslintConfig":{"extends":"@pvtnbr","ignorePatterns":["tests/fixtures"],"rules":{"@typescript-eslint/no-shadow":["error",{"allow":["describe","test"]}]}},"gitHead":"c5d71ad6a49c6241ef06413f3bc9ac86dfae020c","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.0.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-LUVacH8PlfzMd8C2Jg0Hu2F0Jf2THQyuXOWPL0je2odWeO3y6sSWS42lea0d4bQw5JI7yLDqlBR/YwbuxAHGyA==","shasum":"6b57d301333f2056c47a8fd06df028296074d7be","tarball":"https://registry.npmjs.org/link/-/link-1.0.0.tgz","fileCount":3,"unpackedSize":166771,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHy3QZblD6+la1o65OFBUC+n9Sbp7v5RCxuG3GlNwqpXAiBA5wdnLHNUKbLI3Um04Lw2ZW3QXX2G22XJYSDbIv3RyQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiXDk4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqapA//YRvlO2dvnPYyL42ipeBMzpR5vJs/XURkzvWqtIEDmoEb6dCI\r\n0URRUHkkA0dddHWzzj2pdt1HTIRSyZNL8NABJP02EAzFvpopX3kQhuvphOw9\r\n40khVQAORgloLyHekFtWXQ77dpiN3XWZm2m++7aNLOXab0TFDpYS+oZ2qBMp\r\nzxxB1Oydy+nrVssu3a65kdWGkm9Zz5q6bRC5nugIqTbbflvHacUZ3yY2IB8I\r\nUTl6bqUI3mhi37g1XwDi5Y9RtY3YbR/2QWiMkaJoPlE8ropBy2uq7QbwIXRv\r\nSa344OKh+uJ4H6K9GEvToRd5L3oUOLMHfUJ/vn6S+Xkcae5aQukwTRD4D7tP\r\nH+ra0oFaeoXNJ4n6xpcG6paI85R9C4+WTwWgz1h3RzC4ubSwFA3AXcNIGHjN\r\nssBxcI94+dtSPrmdWcX4ON5Gpa1o0hzqhp7VzyRV5sDcdwywLPoJXvcOIZ5Z\r\nNjlcD8qJ0USeLpCf68XMAZAHTVeyL1lq5hgIxnWJkMRijecmNvTfdIbPqRYS\r\nw8vfr5SkhOzM/Os5KAnpM97MkNufKGMDCc7jB8F/s9/PIIzOER9mLv/gL1f5\r\nT7CDHndjsQ+vdB2tqkXEAv+2wbbZ/2T1upL8WPVW47jIHg/WlFq6fXljGK9C\r\nvKg5UtmZQtlNCGpjrcXxdBnH28bwOGkN3xM=\r\n=VZnO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.0.0_1650211127841_0.48788879742208113"},"_hasShrinkwrap":false},"1.1.0":{"name":"link","version":"1.1.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"scripts":{"build":"pkgroll --minify","pretest":"npm run build","test":"esno tests/index.ts","lint":"eslint ."},"devDependencies":{"@pvtnbr/eslint-config":"^0.19.1","@types/node":"^17.0.23","cleye":"^1.1.0","del":"^6.0.0","eslint":"^8.13.0","esno":"^0.14.1","execa":"^6.1.0","get-node":"^12.1.0","kolorist":"^1.5.1","manten":"^0.0.3","pkgroll":"^1.0.3","type-fest":"^2.12.2","typescript":"^4.6.3"},"eslintConfig":{"extends":"@pvtnbr","ignorePatterns":["tests/fixtures"],"rules":{"@typescript-eslint/no-shadow":["error",{"allow":["describe","test"]}]}},"gitHead":"2141a58664f6e0531d36dac00aac551a181aa0d7","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.1.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-A+My4HOEm5GPB3Tdd358w79/Iy6LMgFQvYVeEXK1PRQAi/Gg14G7bm2GpbYL0WYK429w+C+E95t/ecrttFDi4A==","shasum":"f9acee8a95e04e19a30e2575f6900fcab1b294ac","tarball":"https://registry.npmjs.org/link/-/link-1.1.0.tgz","fileCount":3,"unpackedSize":167324,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHIxORU6bRAhM9k2PyPF8aw8OOaB8tfIepX/VZqA4UeAiBU+iMoSCm24gLz/mVdCDY4qXgIMjET57uuqaLLs32D/Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiXXIbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYpQ/6A+dcw+IyQ0LrvLlfh0yQ1IaF38WX32htPkxjG+0lvYul0ZQu\r\nq92yO52CFLnhdL1NhuQmk37c4RdGtkvc82HOtiwpwRJLd+WqKLOJEe1Ba3yN\r\nq3f5I/b0I54ILOC1SksHynYlBr4w80COiCWCjA2XjZm4vieibDrQPlAUCX6g\r\nR0AyXWy9Ibt/gcuZ5Nm75oib+odc6FEL2J1qYz55B2nl8z6agnwWJj35UL0H\r\nT6o5qpJ0VVCOANZZpMG5E3Yf84dWwfinJsYHKtqRNbxShv+owKgPEUB0Iv+p\r\nuU7XZ17d8bAvv1G561Xr3i/7+avxmboqG+YgMTyUMMptwpGTJNRONPbxRsok\r\ny7MqVxo3aVvTEuWCGQFy9gWOG39JxzL7UCDfnKhgDz9qpCx0JvvxnzohrhoK\r\ntcpMuvxw8jtgAUqZw4LgkB+a584qSP3GgW5N6aqvtuhXy3s/obaHsKIrxz3h\r\nc9Yaqab8Oy+OUO1y5z3Si8+AfOhVQruzptazjM6aEHLC3xabMtbDBmLTT7Fs\r\nwELJA42o8uRQss/qNdHlrTRAv95mUxS677L9rp48Cqz9QjXLyGVTuEWz+BN9\r\n4j4XOp749e8ekYL2cK8f56mOvXmzLQmYBjhDGtjGffvlwFiThP516WjXRl8w\r\ndh/Xbg+WtFg/gbvbKwDQJnGIAs8BQbwRMb4=\r\n=qVsM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.1.0_1650291227672_0.38737958924901106"},"_hasShrinkwrap":false},"1.2.0":{"name":"link","version":"1.2.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"scripts":{"build":"pkgroll --minify","pretest":"npm run build","test":"esno tests/index.ts","lint":"eslint ."},"devDependencies":{"@pvtnbr/eslint-config":"^0.19.1","@types/node":"^17.0.25","cleye":"^1.1.0","cmd-shim":"^5.0.0","eslint":"^8.13.0","esno":"^0.14.1","execa":"^6.1.0","get-node":"^12.1.0","kolorist":"^1.5.1","manten":"^0.0.3","pkgroll":"^1.0.4","type-fest":"^2.12.2","typescript":"^4.6.3"},"eslintConfig":{"extends":"@pvtnbr","ignorePatterns":["tests/fixtures"],"rules":{"@typescript-eslint/no-shadow":["error",{"allow":["describe","test"]}]}},"gitHead":"445799c656e6f03dc84f61e0568b903d3b8bd7cf","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.2.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-3kXwInZfwyaDMeA57xs+W1/DAX0Gry1I6ZHq4pCmAvBWTuRbicjni1G4Mb3sCctIJ8KUAmc00fbnacvOttt1gQ==","shasum":"a9c846a6f289125be0c587e2655b1d385bca5de4","tarball":"https://registry.npmjs.org/link/-/link-1.2.0.tgz","fileCount":3,"unpackedSize":56719,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH77rs4L9ihaRoLZtCV0ASrsfM0SlwpjitWXGv9IqYQxAiAuXq/q1hSedZLr9qhYqjqa0dESCp7F0KVWA+32D5+tzQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYZBTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpdcw/+L9nN/3koTgKYYwhYP/xTchmimTJvP+BggrIuYj0OZaKL4E1b\r\nMgweC4z0cUffL0dcMo0eOrdlLo2/MacuC7RbAAnQIhpu23zGis7Vm/A2EAnD\r\nJ2zmMXauys1wwChzPxHjPIRMkYEGjku3tRRiJJydXHe9oBZrjOhfpliy9DqQ\r\nyaBDG7Bullf7ES32whRq8ygIsCRuNOi1KWWJiVOYwmNNf8t14//dqVmSbtK8\r\nCQWt5Y6QJ+sdkGDgUl38aYuH0RqUljcBQEzxxhRFAwaJDCHzx97MJSA0D3eZ\r\n3IqXg1xHk78PeQnGGCXXK2JF00IMgnQDgua4aMOL1MlTyEa11kswPrtl4Jlc\r\nFxqqKCoLpqwRtaothJIJ6Gq91Q4VTNW30bghuQYSsQKZ+0p8iJ7H4RiS3shO\r\nON1CPdvE3p487O34zLKsMv2hsoq80dlm8QU84bZs8zTlsQ8Hxx2dd5mAEYpu\r\nDB9ZNVdOefH0XT2CjPyiuY3S61etWWBLE4WeoLn1s8GXspFtCeKl1OuxHs/7\r\nbs4fUjGIN1uMkLP/ps7oX43y64wgMvMYGE/nkbBOAoQG1mElEZHNmIHh5KJh\r\nU2l2Tulttu7CdRmKl1Chu7UScCknyM48Ycu4F55tfxcb5ApcIFH/i7VwaDXt\r\nQrxd8MQUJJIde2Qq1jyTE0qb/RG5Ob9hg4k=\r\n=pzXE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.2.0_1650561107146_0.027977041359782406"},"_hasShrinkwrap":false},"1.3.0":{"name":"link","version":"1.3.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"scripts":{"build":"pkgroll --minify","pretest":"npm run build","test":"esno tests/index.ts","lint":"eslint ."},"devDependencies":{"@pvtnbr/eslint-config":"^0.19.1","@types/node":"^17.0.25","cleye":"^1.1.0","cmd-shim":"^5.0.0","eslint":"^8.13.0","esno":"^0.14.1","execa":"^6.1.0","get-node":"^12.1.0","kolorist":"^1.5.1","manten":"^0.0.3","pkgroll":"^1.0.4","type-fest":"^2.12.2","typescript":"^4.6.3"},"eslintConfig":{"extends":"@pvtnbr","ignorePatterns":["tests/fixtures"],"rules":{"@typescript-eslint/no-shadow":["error",{"allow":["describe","test"]}]}},"gitHead":"fe6b79317ac060e1c5e118e2d59c1cefdbf35441","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.3.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-FmCvpO+zsXRv2BZ2fEN973LQDwLEy581gLzpTKqviL4D4CxKJL268GbGrErukMLK3NDurOkaXyZIudIzGr5zCw==","shasum":"b94a55e8abcc82dc283d987cc3ae27912981aecd","tarball":"https://registry.npmjs.org/link/-/link-1.3.0.tgz","fileCount":3,"unpackedSize":58052,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqaC6LFINe0jPo1zxUj/wZVHjeHAj5nAU7l8oMueS3NgIhAL3pvtrEg+DLuo4KNMN6b+Z1MABJcWh4WS6uGO4LWuKw"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYbp2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpcpw//eKCTpXykoWakV/X3np7kY8eIsQ8Yciq79vJm/sexOYLD0CMB\r\nh35S+V4tE2rjvG+JjjuZhgQBPynpvhZpVAU0PRtBMRXpgcOzl3VfthU4MRPJ\r\nrqEOgy9pIuQXOH1QZc9ddEspIt8W1A9X+oTscqx7RnCmdubyvaaEdd/yw+fV\r\nhJhyThBGXQz16XhpcjEyxJ3SRUWeKyU3IG1BmEwcN8Z6WtBRjUtDKfH5pXoE\r\n9e7h/gbfN69RuaDIOKoXfOmzF0qnePlExDDX/hgJSDqpKWw28CmdkgujQADc\r\nlV88B54yrncbHaQ6pMQ7Q5TwuhwmCIT/e0L1i4FFGTdIFeGLB9n8ef8oH9v/\r\n1K55N/7ZkceqWYU6fu/cA1Zx3+9JrawbRrbny1vRXdSDen/R5lPEP9g7LnCu\r\n8T8Df3x/czmLKHI6je0j8QxO9yT0LYO1ChIhoM7ihT+ALDHD0ENQXDOKqjwG\r\n97RgsHS6ShdE80uaKOUjx+6OviA+XRVDltl1dDn0G52U5qQqMNobZ45Gg3Ab\r\nM6fbscv0fHCHdj74HS5hue4htppiodEmg/CvD5PwxUoXBtyi0wjqIzIJN7UD\r\nbzsVspDVCfGrSXoHlKznzwVPTWhw6wDCXVgX0EACUoTiaeaOf2M8O1SMB9gl\r\nEnWWARfnuEbleg8l6ept9AjS7/iTGzAxib0=\r\n=9ajT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.3.0_1650571894662_0.7206329173604857"},"_hasShrinkwrap":false},"1.4.0":{"name":"link","version":"1.4.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"scripts":{"build":"pkgroll --minify","pretest":"npm run build","test":"esno tests/index.ts","lint":"eslint --cache ."},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts,md,json}":["eslint --cache","npm test"]},"devDependencies":{"@pvtnbr/eslint-config":"^0.19.1","@types/cmd-shim":"^5.0.0","@types/fs-extra":"^9.0.13","@types/node":"^17.0.25","cleye":"^1.1.0","cmd-shim":"^5.0.0","eslint":"^8.13.0","esno":"^0.14.1","execa":"^6.1.0","fs-extra":"^10.1.0","get-node":"^12.1.0","husky":"^4.3.8","kolorist":"^1.5.1","lint-staged":"^12.3.7","manten":"^0.0.3","pkgroll":"^1.0.4","type-fest":"^2.12.2","typescript":"^4.6.3"},"eslintConfig":{"extends":"@pvtnbr","ignorePatterns":["tests/fixtures"],"rules":{"@typescript-eslint/no-shadow":["error",{"allow":["describe","test"]}]}},"gitHead":"fd6ad4e5536a85188a3d2f9e8935227b1a1c506a","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.4.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-REfl06BUD4/CqkKdmr2s2pEF1oxaCkLYowmptEaeDrtwd1eAiTymgC2e9+ArLM3gPpNG5/985R7Jhr/zpOr/ng==","shasum":"d3974525788b87ec7a0e727ea6ff5340fed07680","tarball":"https://registry.npmjs.org/link/-/link-1.4.0.tgz","fileCount":3,"unpackedSize":76014,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsKdBuv5ITcBItbbf5oeV55XNJQ0iwv36iNnS52qtTCAiEAjmC+Vvha9jMXTRYHEGth5fgT9tXfwe2gSO6zmeky+3k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZY+RACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHKQ//UDeOyBBZlh6Dp4J73bZJnXF0vGlWhQNIfxrKtZLeGtXJNous\r\nnrygzUwi2/I2MqCXOcbjPOZMq/sRGYgaXbo8eLhvVnIxXcitAwyJ4w5FtcUF\r\nKOOY8lj2wGkFYQByCoNFj63W1gxgKZnJVA3Jfi9I2E6WLi8CbnfK/1ZHCNFg\r\nhJ2QLj9F2hBi63C8AK/Hp/vxSAU0UKqCVdqwciDLs8kFuOBRmqbHbhrcM2AV\r\ndUbfZkeevJi0csVVUQ7CPqrbx9tUfZbVei82eQGhudzpIjWF6/jddfJVURxl\r\nYpO7/F4nEpK2RlxRTwMUJYiP1N6soZGp37Yn2HYLKkWvNODGxdKxaRyg8NYf\r\nBk0H3k+yDesn8IcQXYUH5KxJserxWQwDoURZhSYfo5kg2B7DMDY2XLVAEENA\r\nDZ4UMkUuKKYSfHIu24fsaVZf6XXiSMlqscsB6GonUi4klfciratXJkIXtxT0\r\nWiilUlgaLbylRmJdzr0BfrFSxNOD4NCw3wBD4ptj/IXcTXBbnoviQwixBVrt\r\nddviVhrerOhyc2PEVJoVXqvskdv1btU/yafJtHDLpsLGhnC5qzpL6ymV91Zu\r\nB2FbyWFd/T+XbZ/pYVK+SPbYcukUov3rkx6lUCs1KMaPT5Rtl3yQokvm6LYq\r\nQ6YlAWKotGZ8mavx6du2pqhgP9e11g/z470=\r\n=eAcM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.4.0_1650823057186_0.41168991955623535"},"_hasShrinkwrap":false},"1.4.1":{"name":"link","version":"1.4.1","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"scripts":{"build":"pkgroll --minify","pretest":"npm run build","test":"esno tests/index.ts","lint":"eslint --cache ."},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts,md,json}":["eslint --cache","npm test"]},"devDependencies":{"@pvtnbr/eslint-config":"^0.20.2","@types/cmd-shim":"^5.0.0","@types/fs-extra":"^9.0.13","@types/node":"^17.0.25","cleye":"^1.1.0","cmd-shim":"^5.0.0","eslint":"^8.14.0","esno":"^0.14.1","execa":"^6.1.0","fs-extra":"^10.1.0","get-node":"^12.1.0","husky":"^4.3.8","kolorist":"^1.5.1","lint-staged":"^12.3.7","manten":"^0.0.3","pkgroll":"^1.2.2","type-fest":"^2.12.2","typescript":"^4.6.3"},"eslintConfig":{"extends":"@pvtnbr","ignorePatterns":["tests/fixtures"],"rules":{"@typescript-eslint/no-shadow":["error",{"allow":["describe","test"]}]}},"gitHead":"afefdc8a3ace4fb702f9e2e80a376865ff94fdc7","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.4.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-XNGxJygaZ4dZ+fZKLHtaoXzuxZWTXkZR54L6llBZTOldDV9L71z/g9C8f5gPVm3xE15MFQuCennObRZWEzdulQ==","shasum":"f12fc629bee020e0bc9677a0d8f76b22b22d939e","tarball":"https://registry.npmjs.org/link/-/link-1.4.1.tgz","fileCount":3,"unpackedSize":68456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEIivzCwPrTdbS7pyjdDUT4QV3jdYNun3lwM67z/E+7jAiA5E4s3nzlkIL0z1GK4xGdeEpSgEdRFsFx3gi/1+HgTAg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJidClWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpomw/9GPhTiRIScrmFH4Pfpmdbb7JzQGBQztSkglZWKZNMeNTr39OF\r\n9Ok4+/g9H6EBKQi6rJmdQeo5MpNztfnTzRPGeaPs9hpuIYzUaZATZy88hVUd\r\n48LEl1ZBtvT1nKqE8Mp0u6hcWdPY3JEKdoL1I5vIO8X6ZxGWbA0BWLHlRGIx\r\nDnxCdXSsNYMbw6IxXVwkpSYOAQLTO2p+sChrEcN+EfXLz+Xc+sr1RvnaobbB\r\nTHrObov36wCd6Mj2x/pynw6YME33IpS9ypaH0t8tpOxdScqw4HWEHv0VfSlS\r\n38arzUm2DsSzOgSQ32L2mctGdizbx4dzJSl+1KeTFU0kKre0+GkrbRBttpyR\r\nClsxNvutrBJkXHQxzsEv0NVKnQ2Lnxww0wJVVkPJ4I5OCwQV9gnUMJ53f6nq\r\nd/oQ6HKZ8tLCBaJ2NTDSxfZVkJJQofOLra3EgpKvPF1h0+OUMrzCBtATHgXr\r\nEcxXefRqj8vt/n4E1KbQao2nMVWj2M1EWhIUxrIP2j3l6QqGv3EwXeXbqky+\r\nV0ngoUbGgrf/e0wnFd861QNVbDO8JdP/BSU2UbbnlfgC23PGpK0hR223Gpq8\r\nK+e5WNIxDT3/wC5bT44X0Up5tPTUgyVcNCU3DLQj+QHR+w7n1wACLVVF1FrH\r\n8ue/pcT9bgJ34PUvKIMWWXeD1PVK2Jp0kng=\r\n=ca/u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.4.1_1651779926419_0.7060757491588769"},"_hasShrinkwrap":false},"1.5.0":{"name":"link","version":"1.5.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"scripts":{"build":"pkgroll --minify","pretest":"npm run build","test":"tsx tests/index.ts","lint":"eslint --cache ."},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts,md,json}":["eslint --cache","npm test"]},"devDependencies":{"@pvtnbr/eslint-config":"^0.20.2","@types/cmd-shim":"^5.0.0","@types/fs-extra":"^9.0.13","@types/node":"^17.0.25","cleye":"^1.1.0","cmd-shim":"^5.0.0","eslint":"^8.14.0","execa":"^6.1.0","fs-extra":"^10.1.0","get-node":"^12.1.0","husky":"^4.3.8","kolorist":"^1.5.1","lint-staged":"^12.3.7","manten":"^0.0.3","pkgroll":"^1.2.2","tsx":"^3.1.0","type-fest":"^2.12.2","typescript":"^4.6.3"},"eslintConfig":{"extends":"@pvtnbr","ignorePatterns":["tests/fixtures"],"rules":{"@typescript-eslint/no-shadow":["error",{"allow":["describe","test"]}]}},"gitHead":"102f4a2f6c38844a935108dd3f61a2b9b726c1eb","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.5.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-+xsWpo98a99oAsrVGQlkFqQE+t/Qs6G+QJP1hzUdjWk6nuYG//E2u3YH8pYd3VG8CNpUoKXgVgk2HeQvPRsrFA==","shasum":"4dfa7b6eb524057eec43b56ad058529c1fda5976","tarball":"https://registry.npmjs.org/link/-/link-1.5.0.tgz","fileCount":3,"unpackedSize":68637,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcMbBgTK07o6C8QFatuRTATpPNOxBmpecoUbrNJfN83QIhAL944eMc5+eud9XHAX3Sog0C0vHU5TyeGOkYIqc6GpeF"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijFxYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6jw/+JFoJFAI1Z7uGU/V68h+Dy3NCNO04TEhxWeZ6utzL9/1wP6fj\r\nI2AUsHhIzkTIWdH0mrBKhxPU0JxyOZm/aPDfz5w410kV5lJ9qGt1/qEqUA6N\r\ny0A/kZvhfhuKp9laO6iF2zGNFy2qtUG6PMkoLBO0JOc8wJ3JV8fLh1djh2L0\r\nvrH34rOVNJmpo11lAEF67tC72mfJAuCQ20huSY+VnlgbytYxD9/AuB1evP/f\r\nf+VYZhGz+pBGjhZbOE8y0UikT3WCnCtUzqi/Z0ts++ZfYGEZAURIXbTTRxFj\r\ntC6ZTqRS7Mhij4NiCJ2AHBvvmKQD1O3oWaSWcAyhO1B5z9sIEjRP8ZWCRYL5\r\nDkG0HXAge45txH4xV2PCd6hiSzthSmtq8A8hdyLFkUCOAgaqEeb8S8AQ9TE8\r\n6k0YxHMqvwvEn0QaZfu7BLJawrV3GK1uioDJt2r5qjetDP6FD4Js6UuTxn/t\r\njrlhKgrQNBDbj7OupFbnP1u+N5J9DE8yH15ebGJopfHp6hzpHVRm4PaPfsub\r\n15cpzLT8h98MKWcOTya4KPhuXlir5jUe0irP/XKrU4x/PEqn8z3k8+ZC/4TZ\r\nQab2zoNLJylFeNvLFWEfkxTHcU/EMOtM0lzpXSSKrdmiFl4te4p6o3es3uwT\r\nJdFOmrtI8JF1beblBS9rj3zyGlV3zdYtmt0=\r\n=9fR6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.5.0_1653365847886_0.39901221511634355"},"_hasShrinkwrap":false},"1.5.1":{"name":"link","version":"1.5.1","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"gitHead":"18797e96518aaacc5c4c48ea70573a89ee9387a7","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_id":"link@1.5.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-80GBz0JfARAPedegdwtMHJ4tiPCQNqi9UZ0womJ5YU6Zw/Jc8JRji5cnhqkxGTTFAPLs1HftUDf81qUQg0aY0Q==","shasum":"2fd37e759820ee077267c8473e4e31cde30a3c6d","tarball":"https://registry.npmjs.org/link/-/link-1.5.1.tgz","fileCount":3,"unpackedSize":67736,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC+QkhzR3HFYhTf4SvKxHI84UToJijh2aqTKWvKlxJ8QIgNcqIPN00mkcUUpzL/Sp5lvG3GdbnQRsQ5K/tGqGKFC0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2GXSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqtvg//dtQZHwjhAq/ejjc/yvsuiOjoVFchxJTTkFb7bX5ONo9hvOm7\r\nemDkRFd4AgXmGrgr3U4ZnGfJFpbvwsixsf/mjLjrcWZ2QunsTt4t/Tr7fIGk\r\nPVOKUg8p+qcx26IuFyazhup6NV1Rh8+qyXMImLcCXBU+FQp0lt7Pm50kP6jp\r\nCF83J94btfhXVYB4WgUAJy+bQO8dh0fRrRa/7PG35oD9NvoRhf5NjwwWycqN\r\nIcYA9XSIraMZZ2yO8jnVmEpA+clsEUO3ea0x7+WiG7eVIn7RGwTW06Zj0O6z\r\npCj9843XZ6K7GXr/HoEJCmXXAI9nhXT0UyRt0TDW9PymyBfIyQaevhn8EdeM\r\nEIuZ2cTn9j9vw/sUrrTN0gJc43n9hKTYgNG9kruBpgXcFxopW443JfN1WoH5\r\nDLvWqpDlmyAm0NfIiitqqAmAeZZKksdhrLr2dqaYGYtzc7pz2th/djv0aNX2\r\nzTQyr8YFIaoUffPlM/JxCiF9X+rNXN7gydX1bxGJbetTKDSysyVYcLbnWfD7\r\nBRx3I0515/X7wgzA9l8KjdvHypsW3NPVj+V/QMKJ5MHEk7gWuVKhKSgXjK2Y\r\nNqVzIFGT5vUYJGuJ/jutdgVrLPsclNhj6zk8SfkjL0rwu21veMZczoKypmrl\r\n5oxITR8NfNOEIYdqR5VAclsrBjWJjrXL8K0=\r\n=pOhs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.5.1_1658349010298_0.6694863944165053"},"_hasShrinkwrap":false},"1.6.0":{"name":"link","version":"1.6.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"_id":"link@1.6.0","gitHead":"d118e0b9982bf56354df593e8daf0417c5677bbd","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-c24GV45ksGcyfzW7GCv00KHRuDb/WRlNB1oF+iAI4MJXbbJ/5/Mb+rmL+D9cSFVsWfBhpeY2mOOrRTVKpesfBg==","shasum":"a8f90aba3e23ca0d8a500d0dcdfe0029e036f5da","tarball":"https://registry.npmjs.org/link/-/link-1.6.0.tgz","fileCount":3,"unpackedSize":69514,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDieVTihfjM6p2hpl4hZz+r7xCURBFBXDank0E6pmxfsQIhAIg0Kf0k4sWKR1tBTtXT001X/NtzaQuNNBP3QfZw/zxH"}]},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_1.6.0_1696228730227_0.6158016963775212"},"_hasShrinkwrap":false},"2.0.0":{"name":"link","version":"2.0.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"_id":"link@2.0.0","gitHead":"346f8db5d3f8639137ba6a40ae855c843176b8e9","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-MWXuIeI75tmUj41+Y690Y9gVKRD9iLzpzgouyruVdeqCxpKO4n0jWhod45B+EZhXiD2jW3a2+zBGTY2IwmM0fQ==","shasum":"5bca7f189c5fc02b68c7d5feb3ff3dfaa6053100","tarball":"https://registry.npmjs.org/link/-/link-2.0.0.tgz","fileCount":3,"unpackedSize":48717,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJnybg/ZyIG5xadPEdJnxosi76d+BaQ6svtgUZ+zqbPAiEAn1UDXfodNcaQg46AUQMusdemgjKhxn6gH4TKV24V9D4="}]},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_2.0.0_1696228913680_0.8685867908616345"},"_hasShrinkwrap":false},"2.1.0":{"name":"link","version":"2.1.0","description":"A better npm link","keywords":["npm","link","symlink"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"funding":"https://github.com/privatenumber/link?sponsor=1","author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"bin":{"link":"dist/cli.js"},"_id":"link@2.1.0","gitHead":"9b3d3885bd4d58163ccd45b22bb2f2860e005103","bugs":{"url":"https://github.com/privatenumber/link/issues"},"homepage":"https://github.com/privatenumber/link#readme","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-6jgX7ejPBOQaKsFY/9aFEg0HW0JyFuMGDoN+KQX1W94t+8Fi5xwlSlGouRMDqDlrE46drqu4PYduAG7tUwdF7Q==","shasum":"a52dee157ff7ab9b44bc18de26effeb61ca35b6a","tarball":"https://registry.npmjs.org/link/-/link-2.1.0.tgz","fileCount":3,"unpackedSize":87114,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCApcBr7+4a+Gp8v0E/LQydm26SHJXTyKQRcb6Mk+rXMgIgEa2geeDSfFU2ZR10oG+Jxjatzwj3bcIsjBTrWDckwYk="}]},"_npmUser":{"name":"hirokiosame","email":"hiroki.osame@gmail.com"},"directories":{},"maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/link_2.1.0_1697319459864_0.15408794953820393"},"_hasShrinkwrap":false}},"readme":"# npx link\n\nA safer and enhanced version of [`npm link`](https://docs.npmjs.com/cli/v8/commands/npm-link).\n\nWhy is `npm link` unsafe? Read the [blog post](https://hirok.io/posts/avoid-npm-link).\n\n### Features\n- 🔗 Link dependencies without removing previous links\n- 🛡 Only resolves to local paths\n- 🔥 Config file quickly linking multiple packages\n- 💫 Deep linking for quickling linking multilple packages\n\n
\n\n
\n\t\n\t\t\n\t\n
\n\n## Terminology\n\n- **Dependency package**\n\n\tThe package getting linked. This is usually a library.\n\n- **Consuming package**\n\n\tThe project you want to link the _Dependency package_ as a dependency of. This is usually an application.\n\n\t`consuming-package/node_modules/dependency-package` → `dependency-package`\n\n\n## Usage\n\n### Linking a package\n\nFrom the _Consuming package_ directory, link the _Dependency package_:\n\n```sh\nnpx link\n\t\n\t\t\n\t\n
\n\n## FAQ\n\n### Why should I use `npx link` over `npm link`?\nBecause `npm link` [is complicated and dangerous to use](https://hirok.io/posts/avoid-npm-link). And `npx link` offers more features such as _Publish mode_.\n\n### How do I remove the links?\nRun `npm install` and it should remove them.\n\n`npm install` enforces the integrity of `node_modules` by making sure all packages are correctly installed. Reverting the links is a side effect of this.\n\n### Why does `npx link` point to `ln`?\n\nYou must use npx v7 or higher. Check the version with `npx -v`.\n\nIn the obsolete npx v6, local binaries take precedence over npm modules so `npx link` can point to the native `link`/`ln` command:\n```\n$ npx link\nusage: ln [-s [-F] | -L | -P] [-f | -i] [-hnv] source_file [target_file]\n ln [-s [-F] | -L | -P] [-f | -i] [-hnv] source_file ... target_dir\n link source_file target_file\n```\n\nTo work around this, install `link` globally first:\n```sh\n$ npm i -g link\n$ npx link\n```\n\n## Related\n\n- [`npx ci`](https://github.com/privatenumber/ci) - A better `npm ci`.\n\n\n## Sponsors\n\n\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n
\n\n\n\t\n\t\t\n\t\n
\n","maintainers":[{"name":"hirokiosame","email":"hiroki.osame@gmail.com"}],"time":{"modified":"2023-10-14T21:37:40.249Z","created":"2012-02-23T07:23:05.473Z","0.1.1":"2012-02-23T07:23:07.641Z","0.1.2":"2012-02-24T00:21:02.387Z","0.1.3":"2012-12-18T04:27:20.200Z","0.1.4":"2013-01-14T04:42:08.435Z","0.1.5":"2013-01-14T12:12:22.371Z","1.0.0":"2022-04-17T15:58:48.053Z","1.1.0":"2022-04-18T14:13:47.931Z","1.2.0":"2022-04-21T17:11:47.328Z","1.3.0":"2022-04-21T20:11:34.915Z","1.4.0":"2022-04-24T17:57:37.417Z","1.4.1":"2022-05-05T19:45:26.598Z","1.5.0":"2022-05-24T04:17:28.067Z","1.5.1":"2022-07-20T20:30:10.487Z","1.6.0":"2023-10-02T06:38:50.417Z","2.0.0":"2023-10-02T06:41:53.823Z","2.1.0":"2023-10-14T21:37:40.064Z"},"author":{"name":"Hiroki Osame","email":"hiroki.osame@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/privatenumber/link.git"},"users":{},"homepage":"https://github.com/privatenumber/link#readme","keywords":["npm","link","symlink"],"bugs":{"url":"https://github.com/privatenumber/link/issues"},"license":"MIT","readmeFilename":"README.md"}