{"_id":"@anarchitects/nx-js","_rev":"5-731fe25ad673674800b523024c318ea3","name":"@anarchitects/nx-js","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.1":{"name":"@anarchitects/nx-js","version":"0.0.1","license":"Apache-2.0","_id":"@anarchitects/nx-js@0.0.1","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-plugins#readme","bugs":{"url":"https://github.com/anarchitects/anarchitecture-plugins/issues"},"nx":{"name":"nx-js","targets":{"build":{"options":{"main":"packages/js/src/index.ts","assets":[{"glob":"**/!(*.ts)","input":"./packages/js/src","output":"."},{"glob":"**/*.d.ts","input":"./packages/js/src","output":"."},{"glob":"generators.json","input":"./packages/js","output":"."},{"glob":"executors.json","input":"./packages/js","output":"."}],"rootDir":"packages/js/src","tsConfig":"packages/js/tsconfig.lib.json","outputPath":"packages/js/dist","generatePackageJson":false},"outputs":["{options.outputPath}"],"executor":"@nx/js:tsc"}}},"dist":{"shasum":"386338a55393aa818e8c29bc57314763fec75e94","tarball":"https://registry.npmjs.org/@anarchitects/nx-js/-/nx-js-0.0.1.tgz","fileCount":16,"integrity":"sha512-TBsxF2CK/iE11nnuwz7hgjtR7zjkSlENGnJHUwIXH2IWK9nyxtxunKZLn98eejGLga6hw4YXtUPfM+LTHjiiDQ==","signatures":[{"sig":"MEYCIQDin8lSAGgyZPswmhfUgSW4KcZe5LYsWXH1dGqsYihEQgIhAJPaUJLa2dsD/ydUT1/q4b6GcTAuVbkVRjXv368kBf+x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fnx-js@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18178},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@anarchitecture-plugins/source":"./src/index.ts"},"./package.json":"./package.json","./executors.json":"./dist/executors.json","./generators.json":"./dist/generators.json"},"gitHead":"8da85895ae792e201ce2150044268af22de89730","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"executors":"./executors.json","generators":"./generators.json","repository":{"url":"git+https://github.com/anarchitects/anarchitecture-plugins.git","type":"git","directory":"packages/js"},"_npmVersion":"10.8.2","description":"Anarchitects Nx JS plugin with enhanced secondary entry point support.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0","@nx/js":"21.6.4","@nx/devkit":"21.6.4","typescript":"~5.9.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nx-js_0.0.1_1761608175568_0.21276819432699945","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@anarchitects/nx-js","version":"0.0.2","license":"Apache-2.0","_id":"@anarchitects/nx-js@0.0.2","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-plugins#readme","bugs":{"url":"https://github.com/anarchitects/anarchitecture-plugins/issues"},"nx":{"name":"nx-js","targets":{"build":{"options":{"main":"packages/js/src/index.ts","assets":[{"glob":"**/!(*.ts)","input":"./packages/js/src","output":"."},{"glob":"**/*.d.ts","input":"./packages/js/src","output":"."},{"glob":"generators.json","input":"./packages/js","output":"."},{"glob":"executors.json","input":"./packages/js","output":"."}],"rootDir":"packages/js/src","tsConfig":"packages/js/tsconfig.lib.json","outputPath":"packages/js/dist","generatePackageJson":false},"outputs":["{options.outputPath}"],"executor":"@nx/js:tsc"}}},"dist":{"shasum":"ff3fd600b51900106c8647a33153407fe6ae6954","tarball":"https://registry.npmjs.org/@anarchitects/nx-js/-/nx-js-0.0.2.tgz","fileCount":16,"integrity":"sha512-8L5AFD6JCOFLyoL09h7ep86xr4EWmkc5PpJv60eXbBV2VHb+VRllrbcZtugAMXkEn7kKrqDOXLRBr2mR9XCp3A==","signatures":[{"sig":"MEUCIHvmFelJk3qyXzvdahGjmPpieKTlru3+Noj2/cSq+XykAiEAlFyPWA7wxFukrHqzv38tsCzHC0VdPlQexB5Bqb6Sv4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fnx-js@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18154},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@anarchitecture-plugins/source":"./src/index.ts"},"./package.json":"./package.json","./executors.json":"./dist/executors.json","./generators.json":"./dist/generators.json"},"gitHead":"e313bb265a4f8fa4c4c4a1190eeea32f134706e2","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"executors":"./executors.json","generators":"./generators.json","repository":{"url":"git+https://github.com/anarchitects/anarchitecture-plugins.git","type":"git","directory":"packages/js"},"_npmVersion":"10.8.2","description":"Anarchitects Nx JS plugin with enhanced secondary entry point support.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0","@nx/js":"21.6.4","@nx/devkit":"21.6.4","typescript":"~5.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nx-js_0.0.2_1761748141985_0.5065394048972118","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@anarchitects/nx-js","version":"0.0.3","license":"Apache-2.0","_id":"@anarchitects/nx-js@0.0.3","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-plugins#readme","bugs":{"url":"https://github.com/anarchitects/anarchitecture-plugins/issues"},"nx":{"name":"nx-js","targets":{"build":{"options":{"main":"packages/js/src/index.ts","assets":[{"glob":"**/!(*.ts)","input":"./packages/js/src","output":"."},{"glob":"**/*.d.ts","input":"./packages/js/src","output":"."},{"glob":"generators.json","input":"./packages/js","output":"."},{"glob":"executors.json","input":"./packages/js","output":"."}],"rootDir":"packages/js/src","tsConfig":"packages/js/tsconfig.lib.json","outputPath":"packages/js/dist","generatePackageJson":false},"outputs":["{options.outputPath}"],"executor":"@nx/js:tsc"}}},"dist":{"shasum":"403673ea723e7294875e8c701bc1f8a93671b5fd","tarball":"https://registry.npmjs.org/@anarchitects/nx-js/-/nx-js-0.0.3.tgz","fileCount":16,"integrity":"sha512-WYRfGmP971XgBJkKORg0oDIyKN8hqmLYXyOvGNqEKzIFgcwQFC7TOSWFrv35PgUNRav7WyM8RMhXoMiCttajwg==","signatures":[{"sig":"MEYCIQDrDUynahMKQscBjyA1o30nbP6MkuLmtIpvE6R1VVptDAIhAKANOqew+qeQtl0o68VC6Yyok2YHM1cLjv8U4rmBGF+U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fnx-js@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18154},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@anarchitecture-plugins/source":"./src/index.ts"},"./package.json":"./package.json","./executors.json":"./dist/executors.json","./generators.json":"./dist/generators.json"},"gitHead":"c6b79e2f40b9d65c6fc542d6ff56636234674062","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"executors":"./executors.json","generators":"./generators.json","repository":{"url":"git+https://github.com/anarchitects/anarchitecture-plugins.git","type":"git","directory":"packages/js"},"_npmVersion":"10.8.2","description":"Anarchitects Nx JS plugin with enhanced secondary entry point support.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"tslib":"^2.3.0","@nx/js":"21.6.4","@nx/devkit":"21.6.4","typescript":"~5.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nx-js_0.0.3_1773475864528_0.9129703705807712","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@anarchitects/nx-js","version":"0.1.0","license":"Apache-2.0","_id":"@anarchitects/nx-js@0.1.0","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-plugins#readme","bugs":{"url":"https://github.com/anarchitects/anarchitecture-plugins/issues"},"nx":{"name":"nx-js","targets":{"build":{"options":{"main":"packages/js/src/index.ts","assets":[{"glob":"**/!(*.ts)","input":"./packages/js/src","output":"."},{"glob":"**/*.d.ts","input":"./packages/js/src","output":"."},{"glob":"generators.json","input":"./packages/js","output":"."},{"glob":"executors.json","input":"./packages/js","output":"."}],"rootDir":"packages/js/src","tsConfig":"packages/js/tsconfig.lib.json","outputPath":"packages/js/dist","generatePackageJson":false},"outputs":["{options.outputPath}"],"executor":"@nx/js:tsc"}}},"dist":{"shasum":"bd5e44b1cffac901f764daface8bb22194e01405","tarball":"https://registry.npmjs.org/@anarchitects/nx-js/-/nx-js-0.1.0.tgz","fileCount":16,"integrity":"sha512-ryVKTKsIvy0bfdItAnEOc7iFiVLnyMzGV4L0MGwXvHEpdqJ9ZXs0HfdWKUirEJV+CYeNW813ek8FwKhoOtBsew==","signatures":[{"sig":"MEUCIQCSfIjOXu1bK1rNu6m4RwCMMyV80eJT7Qx/8MFofJLgzgIgHZkhZmhXGZglzYaow4peMONfY1but1m+hv/0J+wXeRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fnx-js@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23130},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@anarchitecture-plugins/source":"./src/index.ts"},"./package.json":"./package.json","./executors.json":"./dist/executors.json","./generators.json":"./dist/generators.json"},"gitHead":"ce3da20c9a5375df3e3f3f7811b7dcb5dbe8d25c","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"executors":"./executors.json","generators":"./generators.json","repository":{"url":"git+https://github.com/anarchitects/anarchitecture-plugins.git","type":"git","directory":"packages/js"},"_npmVersion":"10.8.2","description":"Anarchitects Nx JS plugin with enhanced secondary entry point support.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"tslib":"^2.3.0","@nx/js":">=21.6.4 <23","@nx/devkit":">=21.6.4 <23","typescript":"~5.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"nx":">=21.6.4 <23"},"_npmOperationalInternal":{"tmp":"tmp/nx-js_0.1.0_1773953440280_0.3755413837323218","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anarchitects/nx-js","version":"0.1.1","description":"Anarchitects Nx JS plugin with enhanced secondary entry point support.","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/anarchitects/anarchitecture-plugins.git","directory":"packages/js"},"bugs":{"url":"https://github.com/anarchitects/anarchitecture-plugins/issues"},"homepage":"https://github.com/anarchitects/anarchitecture-plugins#readme","exports":{"./package.json":"./package.json","./generators.json":"./dist/generators.json","./executors.json":"./dist/executors.json",".":{"@anarchitecture-plugins/source":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"generators":"./generators.json","executors":"./executors.json","publishConfig":{"access":"public","provenance":false},"nx":{"name":"nx-js","targets":{"build":{"executor":"@nx/js:tsc","outputs":["{options.outputPath}"],"options":{"outputPath":"packages/js/dist","main":"packages/js/src/index.ts","tsConfig":"packages/js/tsconfig.lib.json","rootDir":"packages/js/src","generatePackageJson":false,"assets":[{"input":"./packages/js/src","glob":"**/!(*.ts)","output":"."},{"input":"./packages/js/src","glob":"**/*.d.ts","output":"."},{"input":"./packages/js","glob":"generators.json","output":"."},{"input":"./packages/js","glob":"executors.json","output":"."}]}}}},"dependencies":{"@nx/devkit":">=21.6.4 <24","@nx/js":">=21.6.4 <24","tslib":"^2.3.0","typescript":"~5.9.2"},"gitHead":"37799f5359b0cac180980c88e2789eaa29dca3ed","_id":"@anarchitects/nx-js@0.1.1","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-9Cer3EQR3d5qHJFXtOELvjhmozCOXnVe1vpQwyGFgHQYcBPjtTqy2kkby3p0fnXUBDVxeePms+QdaX4ydwUfWA==","shasum":"b25dd259fd2f9b0ccea0554dc9b73f1218076c53","tarball":"https://registry.npmjs.org/@anarchitects/nx-js/-/nx-js-0.1.1.tgz","fileCount":16,"unpackedSize":23913,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGaiUHTpw1ju4LfUzmM8MmzEWuWmfAgZ/rqib/yVUduqAiA8/90U27g0Esj2Ec3q5VJ+mxvyhxBbgc7TvlethAm6fg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11dd484a-13f3-4d9a-88ea-9755ab806be1"}},"directories":{},"maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nx-js_0.1.1_1781775924560_0.2815060742404243"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-27T23:36:15.386Z","modified":"2026-06-18T09:45:24.847Z","0.0.1":"2025-10-27T23:36:15.809Z","0.0.2":"2025-10-29T14:29:02.156Z","0.0.3":"2026-03-14T08:11:04.677Z","0.1.0":"2026-03-19T20:50:40.423Z","0.1.1":"2026-06-18T09:45:24.706Z"},"bugs":{"url":"https://github.com/anarchitects/anarchitecture-plugins/issues"},"license":"Apache-2.0","homepage":"https://github.com/anarchitects/anarchitecture-plugins#readme","repository":{"type":"git","url":"git+https://github.com/anarchitects/anarchitecture-plugins.git","directory":"packages/js"},"description":"Anarchitects Nx JS plugin with enhanced secondary entry point support.","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"readme":"# @anarchitects/nx-js\n\nAn Nx plugin that extends [`@nx/js`](https://nx.dev/packages/js) with first-class secondary entry point generation for JavaScript and TypeScript libraries.\n\nIt provides a single generator that scaffolds the source files for a secondary entry point and automatically wires it into the library's build target — for all bundlers `@nx/js` supports, including libraries that rely on inferred targets.\n\n---\n\n## Installation\n\nUse `nx add` — the standard Nx way to adopt a plugin:\n\n```bash\nnx add @anarchitects/nx-js\n```\n\nOr install manually:\n\n```bash\nyarn add -D @anarchitects/nx-js\n# or\nnpm install -D @anarchitects/nx-js\n```\n\nCompatibility: supports Nx `>=21.6.4 <23`.\n\n---\n\n## Generators\n\n### `secondary-entry-point`\n\nAdds a secondary export path to an existing library.\n\n```bash\nnx g @anarchitects/nx-js:secondary-entry-point --project=<project> --name=<segment>\n```\n\n**Required options**\n\n| Option      | Description                                                           |\n| ----------- | --------------------------------------------------------------------- |\n| `--project` | Name of the Nx library project to add the entry point to.             |\n| `--name`    | Path segment for the new entry point (e.g. `feature`, `data/access`). |\n\n**Optional options**\n\n| Option          | Default | Description                         |\n| --------------- | ------- | ----------------------------------- |\n| `--buildTarget` | `build` | Name of the build target to update. |\n| `--skipFormat`  | `false` | Skip formatting generated files.    |\n\n#### What it does\n\nThe generator always runs these steps:\n\n1. Validates `--project` and `--name`.\n2. Normalizes `--name` into path-safe segments (e.g. `Data/Access` → `data/access`).\n3. Creates source files in the library:\n   - `src/<segment>/index.ts`\n   - `src/<segment>/lib/<leaf-segment>.ts`\n4. Fails if `src/<segment>/index.ts` already exists.\n5. Updates the build target configuration based on the bundler in use (see table below).\n\n#### Bundler behavior\n\n| Bundler   | Executor              | What is updated | Mutation                                                                                                                        |\n| --------- | --------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| `tsc`     | `@nx/js:tsc`          | `project.json`  | Appends to `options.additionalEntryPoints[]`; sets `options.generateExportsField = true`.                                       |\n| `swc`     | `@nx/js:swc`          | `project.json`  | Appends to `options.additionalEntryPoints[]`; sets `options.generateExportsField = true`.                                       |\n| `rollup`  | `@nx/rollup:rollup`   | `project.json`  | Appends to `options.additionalEntryPoints[]`; sets `options.generateExportsField = true`.                                       |\n| `esbuild` | `@nx/esbuild:esbuild` | `project.json`  | Appends to `options.additionalEntryPoints[]`; sets `options.generateExportsField = true`.                                       |\n| `vite`    | `@nx/vite:build`      | `vite.config.*` | Adds `\"<segment>/index\": \"src/<segment>/index.ts\"` to `build.lib.entry`. Converts `entry` from a string to an object if needed. |\n\n**Inferred targets**\n\nFor libraries that use Project Crystal inference (no explicit `build` target in `project.json`), the generator detects the bundler by checking for its config file:\n\n- `rollup.config.js|ts|mjs|mts|cjs` → treated as rollup; entry points are written into `project.json`.\n- `vite.config.ts|mts|js|mjs|cjs` → treated as vite; the config file is updated directly.\n\n**Additional notes**\n\n- `additionalEntryPoints` is deduplicated and sorted on every update.\n- `generateExportsField` is forced to `true` so Nx emits secondary exports in the built `package.json`.\n- The generator never mutates the source `package.json` exports directly.\n- Unknown executors are skipped with a warning so you can configure entry points manually.\n\n#### Example\n\n```bash\nnx g @anarchitects/nx-js:secondary-entry-point --project=my-lib --name=feature\n```\n\nCreated files:\n\n```text\nlibs/my-lib/src/feature/index.ts\nlibs/my-lib/src/feature/lib/feature.ts\n```\n\nFor `tsc`, `swc`, `rollup`, `esbuild` — `project.json` build options after the run:\n\n```json\n{\n  \"options\": {\n    \"additionalEntryPoints\": [\"libs/my-lib/src/feature/index.ts\"],\n    \"generateExportsField\": true\n  }\n}\n```\n\nFor `vite` — `vite.config.*` after the run:\n\n```ts\nentry: {\n  index: 'src/index.ts',\n  'feature/index': 'src/feature/index.ts',\n}\n```\n\n---\n\n## Development\n\nBuild:\n\n```bash\nyarn nx build nx-js\n```\n\nTest:\n\n```bash\nyarn nx test nx-js\n```\n\nLint:\n\n```bash\nyarn nx lint nx-js\n```\n\n---\n\n## License\n\nCopyright © 2026 Optimalist BV and Anarchitects contributors.\n\nLicensed under the Apache License, Version 2.0. See the repository [LICENSE](../../LICENSE) and [NOTICE](../../NOTICE) files.\n","readmeFilename":"README.md"}