{"_id":"globjoin","_rev":"13-1df3fcdda93e16d440041f75f9606812","name":"globjoin","dist-tags":{"latest":"1.0.1"},"versions":{"0.1.1":{"name":"globjoin","version":"0.1.1","keywords":["glob","negative glob","path","path join"],"author":{"name":"Amobiz"},"license":"MIT","_id":"globjoin@0.1.1","maintainers":[{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"}],"dist":{"shasum":"013849992f7d3e3f76b0edbedb5fd32caf83108d","tarball":"https://registry.npmjs.org/globjoin/-/globjoin-0.1.1.tgz","integrity":"sha512-onMmGy6Rbado1izstvMQlilUfPlZJULc8R7GUnGu7WLnlSDDlgKYxxs7z+QFLqc5nXf5tEUzwBUiq/L7Gx26/A==","signatures":[{"sig":"MEQCIGRAhLSNr4ru2seJLVJ6deFu+9Cduhm3EHb6tgtN5oiKAiAMorALvCfzUt00DiJ3wQDhkGmoSh3XziOHcKE180jLVw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"013849992f7d3e3f76b0edbedb5fd32caf83108d","gitHead":"efce5711981b15f65e2d68d3a7586b91540f8396","scripts":{"test":"mocha"},"_npmUser":{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"},"_npmVersion":"2.14.2","description":"Join paths and globs.","directories":{},"_nodeVersion":"4.0.0","dependencies":{},"devDependencies":{"chai":"^3.4.1","mocha":"^2.3.4","mocha-cases":"^0.1.4"}},"0.1.2":{"name":"globjoin","version":"0.1.2","keywords":["array","glob","globs","glob join","globs join","globbing","multiple","multi","negative glob","path","path join","paths","paths join","pattern","patterns","wildcard","wildcards"],"author":{"name":"Amobiz"},"license":"MIT","_id":"globjoin@0.1.2","maintainers":[{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"}],"dist":{"shasum":"dc692e5f2fd7139fb82ef009f15c6457fab74398","tarball":"https://registry.npmjs.org/globjoin/-/globjoin-0.1.2.tgz","integrity":"sha512-o8I4Uy/W6fwSD8yFRA4sdlO3QF8oZgdwWxuouflHzhjrjU/PP64aQa8SimJa30/2/HUgkDAENAQecUZJ9vRY4Q==","signatures":[{"sig":"MEUCIQDmZ9PsM1TFf0Yp/1IYHrqkGuuJMVTaOVh1Qktaa8QaFAIgN2Zm9hIi8dQi6d2p0HvtjAzc3mgB8ZmsGmxxGgHSLZ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"dc692e5f2fd7139fb82ef009f15c6457fab74398","gitHead":"cbb33cc160979b715ff664f7023b141e60d2a884","scripts":{"test":"mocha"},"_npmUser":{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"},"_npmVersion":"3.3.12","description":"Join paths and globs.","directories":{},"_nodeVersion":"5.2.0","dependencies":{},"devDependencies":{"chai":"^3.4.1","mocha":"^2.3.4","mocha-cases":"^0.1.4"}},"0.1.3":{"name":"globjoin","version":"0.1.3","keywords":["array","glob","globs","glob join","globs join","globbing","multiple","multi","negative glob","path","path join","paths","paths join","pattern","patterns","wildcard","wildcards"],"author":{"name":"Amobiz"},"license":"MIT","_id":"globjoin@0.1.3","maintainers":[{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"}],"homepage":"https://github.com/amobiz/globjoin","bugs":{"url":"https://github.com/amobiz/globjoin/issues"},"dist":{"shasum":"78b2194e2b798a1450ceddd5a5a69f9a01bfd5d6","tarball":"https://registry.npmjs.org/globjoin/-/globjoin-0.1.3.tgz","integrity":"sha512-mM6mP5XsZYGsGJ/6YVFBIPktMeGnU/8+/0rt/u7xA2RnikYulyxCehfnp1c1mY+pZk//gRxXOUcjdylpuGZWAQ==","signatures":[{"sig":"MEQCIDhWWdzMx+9ugD8B2UxnLxwPTmof5yov7QIN6pH4SP5oAiBiCjohXpWRFk9CTcFhB/mOuAOPxxkG6gwvrEd+sj4SBA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"78b2194e2b798a1450ceddd5a5a69f9a01bfd5d6","gitHead":"56c42896aa8d77bfc78f535c79c728c27d15b413","scripts":{"test":"mocha"},"_npmUser":{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"},"repository":{"url":"git+https://github.com/amobiz/globjoin.git","type":"git"},"_npmVersion":"3.6.0","description":"Join paths and globs.","directories":{},"_nodeVersion":"5.6.0","dependencies":{"mocha-cases":"^0.1.8"},"devDependencies":{"chai":"^3.4.1","mocha":"^2.3.4","mocha-cases":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/globjoin-0.1.3.tgz_1455517650123_0.3706811254378408","host":"packages-6-west.internal.npmjs.com"}},"0.1.4":{"name":"globjoin","version":"0.1.4","keywords":["array","glob","glob join","globbing","multiple","negative glob","path","path join","patterns","wildcard"],"author":{"name":"Amobiz"},"license":"MIT","_id":"globjoin@0.1.4","maintainers":[{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"}],"homepage":"https://github.com/amobiz/globjoin","bugs":{"url":"https://github.com/amobiz/globjoin/issues"},"dist":{"shasum":"2f4494ac8919e3767c5cbb691e9f463324285d43","tarball":"https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz","integrity":"sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==","signatures":[{"sig":"MEQCIHqDDrvdg9SKMrq0kmrZSxMLq2iFDzARQmUhPq7ljzJHAiAa6A5tG1odSKrYq6mXG9oW5cjeWkNfvRcjfU1l0szxtA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"2f4494ac8919e3767c5cbb691e9f463324285d43","gitHead":"fe1a822ed6355a43fa723537b7f3e6b1764fe12c","scripts":{"test":"mocha"},"_npmUser":{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"},"repository":{"url":"git+https://github.com/amobiz/globjoin.git","type":"git"},"_npmVersion":"3.6.0","description":"Join paths and globs.","directories":{},"_nodeVersion":"5.6.0","dependencies":{},"devDependencies":{"mocha":"^2.3.4","mocha-cases":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/globjoin-0.1.4.tgz_1455591202598_0.010538409929722548","host":"packages-9-west.internal.npmjs.com"}},"1.0.0":{"name":"globjoin","version":"1.0.0","keywords":["array","glob","glob join","globbing","multiple","negative glob","path","path join","patterns","wildcard"],"author":{"url":"https://github.com/amobiz","name":"Amobiz","email":"amobiz.tw+github@gmail.com"},"license":"MIT","_id":"globjoin@1.0.0","maintainers":[{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"}],"homepage":"https://github.com/amobiz/globjoin","bugs":{"url":"https://github.com/amobiz/globjoin/issues"},"dist":{"shasum":"f853ab5fac5d1de0a16ab818c02951a4a610ca4a","tarball":"https://registry.npmjs.org/globjoin/-/globjoin-1.0.0.tgz","fileCount":7,"integrity":"sha512-Fj0NUfmpSfpw6n+6VDrejPX2N2hNY8VGulIUl/tyXu3clg6cI4uiEB7I5Kt19HDjJJqhsLQFYSEvLxaRLMcqSg==","signatures":[{"sig":"MEUCIQC7AiOyh+8oQfb/9ADCBXBr2DWwOkig/pmTfqnFlhmqygIgC1IctKrd7XlNKuNZoQhQX/kL3u9QdA/NonLT1U4n5wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDQISb4qtJic8653osMdwwKJJISlkYfRI8oQlIRdHQ5QgIhAK++1b+6o98u8+H9v8kN8HDzt+SMdhlQA+IqX+Sbf9uK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6935},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}}},"gitHead":"4a496e92ad5f46202e9f8df0ad1d73bb07cee137","scripts":{"dev":"tsdown --watch","tdd":"vitest","lint":"eslint","test":"vitest run","build":"tsdown --minify","prepack":"pnpm run build","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"},"repository":{"url":"git+https://github.com/amobiz/globjoin.git","type":"git"},"_npmVersion":"11.19.1","description":"Join paths and globs.","directories":{},"sideEffects":false,"_nodeVersion":"25.5.0","dependencies":{"typescript":"^5.9.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@12.4.2+sha512.08adc6613180275c7c9edada39dcf08c9c61ad4e7eaf330a4f3461f102b0f907423454d117f98e72d47fef0616070644d7bffc973a6a57f5090a6d7c368b07c9","devDependencies":{"eslint":"^10.11.0","tsdown":"^0.22.14","vitest":"^5.0.1","globals":"^17.12.0","publint":"^0.3.24","@eslint/js":"^10.0.1","@types/node":"^18.19.130","empirical-cases":"^0.4.0","typescript-eslint":"^8.70.0","@vitest/coverage-v8":"5.0.1","@arethetypeswrong/core":"^0.18.5"},"_npmOperationalInternal":{"tmp":"tmp/globjoin_1.0.0_1789966783037_0.6397847383085922","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"_id":"globjoin@1.0.1","bugs":{"url":"https://github.com/amobiz/globjoin/issues"},"dist":{"shasum":"88e3dc1d5dabb097903456143e72f1f712d7684f","tarball":"https://registry.npmjs.org/globjoin/-/globjoin-1.0.1.tgz","fileCount":7,"integrity":"sha512-gyorU87aCM4U4vXgR57Jg8LRwgH6ED/LrMgB6MyTYTUgj27AhHC9ps/q1VSYPl5OwZ74TGOsq8mnEmkZHg6Sbw==","signatures":[{"sig":"MEUCIDerPFVj2WJWy/b1TA/W1kZp/X5PS7b8vXseMDODKR8qAiEAh9b89VuJ341nsn7y/qYNd2Om7voD0ztHEPjfr+eVCjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHXPiPFYAn4CEuip1+YSyHynBLulBxE3ApPdMT7jfZKqAiAITn1NYpte4otzwD7qXj3EmDditL3L5slwTUDvn+bf+A=="}],"unpackedSize":6911},"main":"./dist/index.mjs","name":"globjoin","type":"module","types":"./dist/index.d.mts","author":{"url":"https://github.com/amobiz","name":"Amobiz","email":"amobiz.tw+github@gmail.com"},"module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}}},"gitHead":"d9922a534ba802c0c39e8be706dadef6c2520841","license":"MIT","scripts":{"dev":"tsdown --watch","tdd":"vitest","lint":"eslint","test":"vitest run","build":"tsdown --minify","prepack":"pnpm run build","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"version":"1.0.1","_npmUser":{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"},"homepage":"https://github.com/amobiz/globjoin","keywords":["array","glob","glob join","globbing","multiple","negative glob","path","path join","patterns","wildcard"],"repository":{"url":"git+https://github.com/amobiz/globjoin.git","type":"git"},"_npmVersion":"11.19.1","description":"Join paths and globs.","directories":{},"maintainers":[{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"}],"sideEffects":false,"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"packageManager":"pnpm@12.4.2+sha512.08adc6613180275c7c9edada39dcf08c9c61ad4e7eaf330a4f3461f102b0f907423454d117f98e72d47fef0616070644d7bffc973a6a57f5090a6d7c368b07c9","devDependencies":{"eslint":"^10.11.0","tsdown":"^0.22.14","vitest":"^5.0.1","globals":"^17.12.0","publint":"^0.3.24","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^18.19.130","empirical-cases":"^0.4.0","typescript-eslint":"^8.70.1","@vitest/coverage-v8":"5.0.1","@arethetypeswrong/core":"^0.18.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/globjoin_1.0.1_1790103410448_0.8518074329852068"}}},"time":{"created":"2015-12-10T12:32:59.776Z","modified":"2026-09-22T18:56:50.701Z","0.1.0":"2015-12-10T12:32:59.776Z","0.1.1":"2015-12-10T12:45:21.632Z","0.1.2":"2015-12-23T18:58:28.661Z","0.1.3":"2016-02-15T06:27:31.946Z","0.1.4":"2016-02-16T02:53:24.486Z","1.0.0":"2026-09-21T04:59:43.137Z","1.0.1":"2026-09-22T18:56:50.539Z"},"bugs":{"url":"https://github.com/amobiz/globjoin/issues"},"author":{"url":"https://github.com/amobiz","name":"Amobiz","email":"amobiz.tw+github@gmail.com"},"license":"MIT","homepage":"https://github.com/amobiz/globjoin","keywords":["array","glob","glob join","globbing","multiple","negative glob","path","path join","patterns","wildcard"],"repository":{"url":"git+https://github.com/amobiz/globjoin.git","type":"git"},"description":"Join paths and globs.","maintainers":[{"name":"amobiz","email":"amobiz.tw+npmjs@gmail.com"}],"readme":"# globjoin\n\nJoin paths and globs.\n\n![npm](https://shieldcn.dev/group/npm/license/globjoin+/npm/globjoin+npm/dw/globjoin+github/amobiz/globjoin/stars.svg)\n\n![chart](https://shieldcn.dev/chart/npm/globjoin.svg)\n\n## Install\n\n```bash\n$ npm install globjoin\n```\n\n## API\n\nLike Node's [`path.join()`](https://nodejs.org/api/path.html#path_path_join_path1_path2), which joins all arguments and normalizes the resulting path, `globjoin` accepts an arbitrary number of paths and/or arrays of globs, joins them together, and handles negative globs.\n\n```typescript\nfunction globjoin(...globs: Array<string>): string;\n\nfunction globjoin(...globs: Array<string | string[]>): string[];\n```\n\nImportant: Starting with version 1.0.0, negative globs are handled differently. Negative globs are now treated as negations of the corresponding path segments. For example:\n\n`globjoin([\"src\", \"!app\", \"!view\"])` => `\"src/app/view\"`\n\nWhile in version 0.1.4, the same input produced:\n\n`globjoin([\"src\", \"!app\", \"!view\"])` => `\"!src/app/view\"`\n\nThis is a breaking behavior change to be aware of when upgrading to version 1.0.0.\n\n#### Example\n\n```typescript\nimport globjoin from \"globjoin\";\n\nconst globs1 = globjoin(\"src\", [\"**/*.js\", \"!**/test*.js\"]);\n\nconst globs2 = globjoin(\n  \"test\",\n  \"fixture\",\n  \"app\",\n  [\"views\", \"!services\"],\n  [\"**/*\", \"!*.{js,json,coffee,ts}\"],\n);\n```\n\nCheck out test for more examples.\n\n## Issues\n\n[Issues](https://github.com/amobiz/globjoin/issues)\n\n## Test\n\n```bash\n$ npm test\n```\n\n## Changelog\n\n[Changelog](./CHANGELOG.md)\n\n## License\n\n[MIT](https://opensource.org/licenses/MIT)\n\n## Author\n\n[Amobiz](https://github.com/amobiz)\n\n## Contributor\n\n[StreetStrider](https://github.com/StreetStrider)\n","readmeFilename":"README.md","users":{}}