monocrate 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,53 +1,50 @@
1
1
  # monocrate
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/monocrate.svg)](https://www.npmjs.com/package/monocrate)
4
- [![CI](https://github.com/imaman/monocrate/actions/workflows/ci.yml/badge.svg)](https://github.com/imaman/monocrate/actions/workflows/ci.yml)
4
+ [![CI](https://github.com/moojo-tech/monocrate/actions/workflows/ci.yml/badge.svg)](https://github.com/moojo-tech/monocrate/actions/workflows/ci.yml)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
7
  *Monorepos? Great. Publishing from a monorepo? Comically hard.*
8
8
 
9
9
  ## The Problem
10
10
 
11
- Consider `@acme/my-awesome-package`, which imports `@acme/internal-utils`, a workspace dependency. The naive
12
- approach - running `npm publish` - produces an uninstallable package because `@acme/internal-utils` was never published
13
- to npm.
11
+ Consider `@acme/my-awesome-package`, which imports `@acme/internal-utils`, a workspace dependency.
14
12
 
15
- The standard solution is the "publish everything" approach. Tools like [Lerna](https://lerna.js.org/) will publish every
16
- internal dependency as its own public package. Installation now works, but `@acme/internal-utils` just became a
17
- permanently published API you're committed to maintaining. _Your internal refactoring freedom is gone._
13
+ Now you want to publish it.
18
14
 
19
- You can throw a bundler at the problem: tools like [esbuild](https://esbuild.github.io/) or
20
- [Rollup](https://rollupjs.org/) produce a self-contained file from a given entrypoint. But type declarations and
21
- sourcemaps often break, and consumers can't tree-shake a pre-bundled blob.
15
+ - **Naive approach**: `npm publish` produces an uninstallable package - `@acme/internal-utils` was never published.
16
+ - **Publish-all approach** (e.g., [Lerna](https://lerna.js.org/)): Publishes every internal dependency. Now your _internal_ `@acme/internal-utils` is a permanent public API - rename a function there, break consumers you never intended to have.
17
+ - **Bundler approach** (e.g., [esbuild](https://esbuild.github.io/)): Produces a self-contained blob, but types and sourcemaps break, and consumers can't tree-shake.
22
18
 
23
19
  ## The Solution
24
20
 
25
- [monocrate](https://www.npmjs.com/package/monocrate) is a publishing CLI that gets this right. It produces a single
26
- publishable directory containing everything needed from your package and its in-repo dependencies. Essentially, it
27
- produces a standard npm package that looks like you hand-crafted it for publication.
21
+ [monocrate](https://www.npmjs.com/package/monocrate) is a publishing CLI that gets monorepos. It produces a single
22
+ publishable directory containing everything needed from your package and its in-repo dependencies.
28
23
 
29
- - 📦 Consumers get one package with exactly the code they need
24
+ - 📦 Consumers get a single package with exactly what they need
30
25
  - 🔒 Internal packages remain unpublished
31
26
  - ✅ Tree-shaking, sourcemaps, and types all work
32
27
 
33
- > [!NOTE]
34
- > **ESM only** — monocrate supports ES modules exclusively. CommonJS packages (`.cjs` files or `.js` without `"type": "module"`) are not supported. If your monorepo uses CommonJS, consider [migrating to ESM](https://nodejs.org/api/esm.html).
28
+ The result: a standard npm package that looks like you had hand-crafted it for publishing.
35
29
 
36
30
  ### Quickstart
37
31
 
32
+ > **⚠️ ESM only** — monocrate only supports ES modules. If your monorepo uses CommonJS, you need to
33
+ [migrate to ESM](https://nodejs.org/api/esm.html) first.
34
+
38
35
  ```bash
39
36
  # Install
40
37
  pnpm add --save-dev monocrate
41
- # or: yarn add --dev monocrate
42
- # or: npm install --save-dev monocrate
38
+ # Or: yarn add --dev monocrate
39
+ # Or: npm install --save-dev monocrate
43
40
 
44
- # Build (monocrate publishes, it doesn't build)
41
+ # Build first (monocrate publishes; it doesn't build)
45
42
  npm run build
46
43
 
47
44
  # Publish
48
45
  npx monocrate packages/my-awesome-package --bump patch
49
46
 
50
- # Or use --dry-run to do everything short of publishing
47
+ # Or: use --dry-run to do everything short of publishing
51
48
  npx monocrate packages/my-awesome-package --dry-run --output-dir /tmp/inspect --bump patch
52
49
  ```
53
50
 
@@ -71,53 +68,62 @@ Running `npx monocrate packages/my-awesome-package` produces:
71
68
  ```
72
69
  /tmp/monocrate-xxxxxx/
73
70
  └── packages/
74
- └── my-awesome-package/ # preserves the package's path in the monorepo
71
+ └── my-awesome-package/ # preserves the package's original path
75
72
  ├── package.json # name: "@acme/my-awesome-package", version: "1.3.0" (the new resolved version)
76
73
  ├── dist/
77
74
  │ └── index.js # rewritten:
78
75
  │ # import ... from '../deps/__acme__internal-utils/dist/index.js'
79
76
  └── deps/
80
- └── __acme__internal-utils/ # mangled package name, exact notation may vary.
77
+ └── __acme__internal-utils/ # mangled package name, the exact notation may vary.
81
78
  └── dist/
82
79
  └── index.js
83
80
  ```
84
81
 
85
- The `deps/` directory is where the files of in-repo dependencies get embedded. Each dependency is placed under a
86
- mangled version of its package name. This avoids name collisions regardless of where packages live in the monorepo.
82
+ The `deps/` directory is where in-repo dependencies are embedded. Each dependency is placed under a mangled form of
83
+ its package name, avoiding collisions regardless of where packages live in the monorepo.
87
84
 
88
- ### Version Resolution
85
+ > **Note:** The actual directory name includes a randomized suffix (e.g., `deps-a1b2c3d4/`) to prevent conflicts with
86
+ existing directories in your package.
89
87
 
90
- `monocrate` uses **registry-based versioning**: it queries the registry for the latest published version and bumps it
91
- according to your `--bump` flag (`patch`, `minor`, `major`). Your source `package.json` is never modified.
88
+ For details on how `monocrate` assembles packages, see [The Assembly Process](docs/assembly-process.md).
92
89
 
93
- This means you don't need to maintain version numbers in your source code. The registry is the versioning source of
94
- truth, and `monocrate` computes the next version at publish time. Of course, if an exact version is specified
95
- (`--bump 1.7.9`) it is used as-is.
90
+ ### Supported Scope
96
91
 
97
- For first-time publishing (when the package doesn't exist in the registry yet), `monocrate` treats the current version
98
- as `0.0.0` and applies the bumpresulting in `0.0.1` for patch, `0.1.0` for minor (the default), or `1.0.0` for major.
92
+ ⚠️ Important:
93
+ - **ESM only**CommonJS `require()` calls are not rewritten, which will cause runtime failures for consumers. Only use monocrate on ESM-compliant monorepos.
94
+ - **peerDependencies and optionalDependencies** — preserved in the output `package.json`, not embedded. It's your responsibility to ensure these are published and available to consumers.
99
95
 
100
- If the version to publish to is already set in the package's `package.json` file (via `npm version`, Changesets, Lerna,
101
- etc.), you can use `--bump package` to read the version directly from there:
96
+ `monocrate` validates (and rejects with a clear error):
97
+ - **Dynamic imports must use string literals** — `await import('@pkg/lib')` works; `await import(variable)` does not.
98
+ - **Consistent third-party versions** — two in-repo packages cannot require different versions of the same dependency.
99
+ - **Symlinks must stay within the monorepo** — packages symlinked from outside the monorepo root are not supported.
102
100
 
103
- ```bash
104
- npm version minor --no-git-tag-version # Sets version in package.json
105
- npx monocrate . --bump package # Uses that version
106
- ```
101
+ ### Version Resolution
107
102
 
108
- ## Examples
103
+ The `--bump` flag determines the published version. There are three approaches:
104
+
105
+ | `--bump` value | Source of truth | Example result |
106
+ |----------------|-----------------|----------------|
107
+ | `patch`/`minor`/`major` | npm registry | 1.2.3 → 1.2.4 |
108
+ | `1.8.9` | CLI argument | 1.8.9 |
109
+ | `package` | package.json | (whatever's in the file) |
110
+
111
+ When publishing multiple packages, see [Multiple Packages](#multiple-packages) for unified versioning with `--max`.
112
+
113
+ In all cases, your source `package.json` is never modified—the resolved version only appears in the assembled output.
109
114
 
110
115
  ```bash
111
- # --bump defaults to "minor", so these two are equivalent:
112
- npx monocrate packages/my-awesome-package --bump minor
113
- npx monocrate packages/my-awesome-package
116
+ # Registry-based: query npm, bump from latest (default is minor)
117
+ npx monocrate packages/my-awesome-package # bumps minor
118
+ npx monocrate packages/my-awesome-package --bump patch
114
119
 
115
- # Explicit version
120
+ # Explicit: use exact version
116
121
  npx monocrate packages/my-awesome-package --bump 2.3.0
117
122
 
118
- # Package location is resolved relative to CWD
119
- cd /path/to/my-monorepo/packages
120
- npx monocrate my-awesome-package --bump 2.3.0
123
+ # Package-based: read from package.json
124
+ cd packages/my-awesome-package
125
+ npm version minor --no-git-tag-version
126
+ npx monocrate . --bump package
121
127
  ```
122
128
 
123
129
  ## Programmatic API
@@ -178,7 +184,7 @@ If you have several public packages in your monorepo, publish them in one go by
178
184
  npx monocrate packages/lib-a packages/lib-b --bump patch
179
185
  ```
180
186
 
181
- By default, each package will be published at its own version (individual versioning). If `lib-a` is at `1.0.0` and `lib-b`
187
+ By default, each package will be published with its own version (individual versioning). If `lib-a` is at `1.0.0` and `lib-b`
182
188
  is at `2.0.0`, a patch bump publishes them at `1.0.1` and `2.0.1` respectively.
183
189
 
184
190
  You can also publish all specified packages at the same version (unified versioning, à la AWS SDK v3), by using the
@@ -189,43 +195,23 @@ You can also publish all specified packages at the same version (unified version
189
195
  npx monocrate packages/lib-a packages/lib-b --bump patch --max
190
196
  ```
191
197
 
192
- This is purely a stylistic choice; correctness is unaffected since in-repo dependencies are always embedded.
198
+ This is purely a stylistic choice; it doesn't affect correctness since in-repo dependencies are always embedded.
193
199
 
194
- ## Scope
200
+ ## Reference
195
201
 
196
- monocrate makes a few deliberate choices:
197
-
198
- - **Runtime dependencies only** — Only `dependencies` are traversed and embedded. `devDependencies` are ignored since
199
- consumers don't need your build tools.
200
- - **Version conflicts fail early** — If two in-repo packages require different versions of the same third-party
201
- dependency, monocrate stops with a clear error rather than silently picking one.
202
- - **File selection via `npm pack`** — Your `files` field in package.json is the source of truth for what gets published.
203
- monocrate doesn't introduce its own file configuration.
204
- - **Validates before heavy work** — npm login and other prerequisites are checked upfront, before any file copying
205
- begins.
206
-
207
- A few constraints to be aware of:
208
-
209
- - **Dynamic imports must use string literals** — `await import('@pkg/lib')` works; if a dynamic module path like `await import(variable)` is detected, `monocrate` stops with a clear error.
210
- - **Prerelease versions require explicit `--bump`** — `--bump package` expects strict semver (`X.Y.Z`). For prereleases, pass the version explicitly: `--bump 1.0.0-beta.1`.
211
- - **peerDependencies are preserved, not embedded** — As with any package publishing tool, you're responsible for ensuring peer dependencies (in-repo or not) are published and available to consumers.
212
- - **optionalDependencies are preserved, not embedded** — If you list an in-repo package as optional, you're responsible for publishing it separately.
213
- - **Symlinks must stay within monorepo** — Packages symlinked from outside the monorepo root are rejected.
214
- - **Undeclared in-repo imports fail** — If your code imports an in-repo package not listed in `dependencies`, monocrate catches this and fails with a clear error.
215
-
216
- ## CLI Reference
202
+ ### CLI
217
203
 
218
204
  ```
219
205
  monocrate <packages...> [options]
220
206
  ```
221
207
 
222
- ### Arguments
208
+ **Arguments**
223
209
 
224
210
  | Argument | Description |
225
211
  |----------|-------------|
226
212
  | `packages` | One or more package directories to publish (required) |
227
213
 
228
- ### Options
214
+ **Options**
229
215
 
230
216
  | Option | Alias | Type | Default | Description |
231
217
  |--------|-------|------|---------|-------------|
@@ -240,13 +226,13 @@ monocrate <packages...> [options]
240
226
  | `--version` | | | | Show version number |
241
227
 
242
228
 
243
- ## API Reference
229
+ ### API
244
230
 
245
- ### `monocrate(options): Promise<MonocrateResult>`
231
+ **`monocrate(options): Promise<MonocrateResult>`**
246
232
 
247
233
  Assembles one or more monorepo packages and their in-repo dependencies, and optionally publishes to npm.
248
234
 
249
- ### `MonocrateOptions`
235
+ **`MonocrateOptions`**
250
236
 
251
237
  | Property | Type | Required | Default | Description |
252
238
  |----------|------|----------|---------|-------------|
@@ -260,25 +246,10 @@ Assembles one or more monorepo packages and their in-repo dependencies, and opti
260
246
  | `mirrorTo` | `string` | No | — | Mirror source files to this directory. |
261
247
  | `npmrcPath` | `string` | No | — | Path to `.npmrc` file for npm authentication. |
262
248
 
263
- ### `MonocrateResult`
249
+ **`MonocrateResult`**
264
250
 
265
251
  | Property | Type | Description |
266
252
  |----------|------|-------------|
267
253
  | `outputDir` | `string` | Directory where the first package was assembled. |
268
254
  | `resolvedVersion` | `string \| undefined` | The unified resolved version (only set when `max: true`). |
269
255
  | `summaries` | `Array<{ packageName: string; outputDir: string; version: string }>` | Details for each assembled package, including its version. |
270
-
271
-
272
- ## The Assembly Process
273
-
274
- Here's a conceptual breakdown of the steps that happen at a typical `monocrate` run:
275
-
276
- 0. **Setup**: Creates a dedicated output directory
277
- 1. **Version Resolution**: Computes the new version (see [above](#version-resolution))
278
- 2. **Dependency Discovery**: Traverses the dependency graph to find all in-repo packages the package depends on, transitively
279
- 3. **File Embedding**: Copies the publishable files (per `npm pack`) of each in-repo dependency into the output directory
280
- 4. **Entry Point Resolution**: Examines each package's entry points (respecting `exports` and `main` fields) to compute
281
- the exact file locations that import statements will resolve to
282
- 5. **Import Rewriting**: Scans the `.js` and `.d.ts` files, converting imports of workspace packages to relative path
283
- imports (`@acme/internal-utils` becomes `../deps/__acme__internal-utils/dist/index.js`)
284
- 6. **Package.json Rewrite**: Sets the resolved version, removes in-repo deps, and adds any third-party deps they brought in
@@ -3,12 +3,10 @@ import type { PackageClosure } from './package-closure.js';
3
3
  import { AbsolutePath } from './paths.js';
4
4
  import type { PackageJson } from './package-json.js';
5
5
  import type { NpmClient } from './npm-client.js';
6
- /** Directory name where in-repo dependencies are placed in the output. */
7
- export declare const DEPS_DIR = "deps";
8
6
  /**
9
7
  * Resolves an import specifier to a package-relative path using Node.js resolution semantics.
10
8
  * Handles both bare imports (subpath='') and subpath imports (subpath='utils/helper').
11
9
  */
12
10
  export declare function resolveImport(packageJson: PackageJson, subpath: string): string;
13
- export declare function collectPackageLocations(npmClient: NpmClient, closure: PackageClosure, outputDir: AbsolutePath): Promise<PackageLocation[]>;
11
+ export declare function collectPackageLocations(npmClient: NpmClient, closure: PackageClosure, outputDir: AbsolutePath, depsDir: string): Promise<PackageLocation[]>;
14
12
  //# sourceMappingURL=collect-package-locations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collect-package-locations.d.ts","sourceRoot":"","sources":["../../src/collect-package-locations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,SAAS,CAAA;AAE9B;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwB/E;AAwBD,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B"}
1
+ {"version":3,"file":"collect-package-locations.d.ts","sourceRoot":"","sources":["../../src/collect-package-locations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwB/E;AAwBD,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B"}
@@ -3,8 +3,6 @@ import * as ResolveExports from 'resolve.exports';
3
3
  import { getFilesToPack } from './get-files-to-pack.js';
4
4
  import { AbsolutePath, RelativePath } from './paths.js';
5
5
  import { manglePackageName } from './name-mangler.js';
6
- /** Directory name where in-repo dependencies are placed in the output. */
7
- export const DEPS_DIR = 'deps';
8
6
  /**
9
7
  * Resolves an import specifier to a package-relative path using Node.js resolution semantics.
10
8
  * Handles both bare imports (subpath='') and subpath imports (subpath='utils/helper').
@@ -47,10 +45,10 @@ async function createPackageLocation(npmClient, pkg, directoryInOutput) {
47
45
  packageJson: pkg.packageJson,
48
46
  };
49
47
  }
50
- export async function collectPackageLocations(npmClient, closure, outputDir) {
48
+ export async function collectPackageLocations(npmClient, closure, outputDir, depsDir) {
51
49
  // TODO(imaman): use promises()
52
50
  return Promise.all(closure.runtimeMembers.map((dep) => createPackageLocation(npmClient, dep, dep.name === closure.subjectPackageName
53
51
  ? outputDir
54
- : AbsolutePath.join(outputDir, RelativePath(DEPS_DIR), RelativePath(manglePackageName(dep.name))))));
52
+ : AbsolutePath.join(outputDir, RelativePath(depsDir), RelativePath(manglePackageName(dep.name))))));
55
53
  }
56
54
  //# sourceMappingURL=collect-package-locations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collect-package-locations.js","sourceRoot":"","sources":["../../src/collect-package-locations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,cAAc,MAAM,iBAAiB,CAAA;AAIjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,WAAwB,EAAE,OAAe;IACrE,MAAM,KAAK,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAA;IAEnD,0FAA0F;IAC1F,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAC3D,IAAI,QAAQ,EAAE,CAAC;QACb,gGAAgG;QAChG,kGAAkG;QAClG,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QACrE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,mDAAmD;YACnD,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,oGAAoG;QACpG,OAAO,WAAW,CAAC,IAAI,IAAI,UAAU,CAAA;IACvC,CAAC;IACD,qGAAqG;IACrG,OAAO,GAAG,OAAO,KAAK,CAAA;AACxB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,SAAoB,EACpB,GAAoB,EACpB,iBAA+B;IAE/B,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAEhE,iFAAiF;IACjF,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW;QACX,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAoB,EACpB,OAAuB,EACvB,SAAuB;IAEvB,+BAA+B;IAC/B,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,qBAAqB,CACnB,SAAS,EACT,GAAG,EACH,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,kBAAkB;QACrC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CACpG,CACF,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"collect-package-locations.js","sourceRoot":"","sources":["../../src/collect-package-locations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,cAAc,MAAM,iBAAiB,CAAA;AAIjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,WAAwB,EAAE,OAAe;IACrE,MAAM,KAAK,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAA;IAEnD,0FAA0F;IAC1F,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAC3D,IAAI,QAAQ,EAAE,CAAC;QACb,gGAAgG;QAChG,kGAAkG;QAClG,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QACrE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,mDAAmD;YACnD,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,oGAAoG;QACpG,OAAO,WAAW,CAAC,IAAI,IAAI,UAAU,CAAA;IACvC,CAAC;IACD,qGAAqG;IACrG,OAAO,GAAG,OAAO,KAAK,CAAA;AACxB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,SAAoB,EACpB,GAAoB,EACpB,iBAA+B;IAE/B,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAEhE,iFAAiF;IACjF,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW;QACX,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAoB,EACpB,OAAuB,EACvB,SAAuB,EACvB,OAAe;IAEf,+BAA+B;IAC/B,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,qBAAqB,CACnB,SAAS,EACT,GAAG,EACH,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,kBAAkB;QACrC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CACnG,CACF,CACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compute-package-closure.d.ts","sourceRoot":"","sources":["../../src/compute-package-closure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAgC1D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,cAAc,CAiEjG"}
1
+ {"version":3,"file":"compute-package-closure.d.ts","sourceRoot":"","sources":["../../src/compute-package-closure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAwC1D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,cAAc,CA2EjG"}
@@ -17,18 +17,30 @@ function formatConflictError(conflicts) {
17
17
  }
18
18
  return lines.join('\n');
19
19
  }
20
+ function formatCycleError(path, cycleTo) {
21
+ const pathArray = [...path];
22
+ const cycleStartIndex = pathArray.indexOf(cycleTo);
23
+ const cycleOnly = pathArray.slice(cycleStartIndex);
24
+ const cyclePath = [...cycleOnly, cycleTo].join(' → ');
25
+ return `Circular dependency detected:\n ${cyclePath}\n\nMonocrate cannot assemble packages with circular dependencies.`;
26
+ }
20
27
  export function computePackageClosure(pkgName, repoExplorer) {
21
28
  const subjectPackage = repoExplorer.getPackage(pkgName);
22
- function traverse(root, includeDevDeps, thirdPartyVersions) {
29
+ function traverse(root, includeDevDeps, detectCycles, thirdPartyVersions) {
23
30
  const visited = new Map();
31
+ const path = new Set();
24
32
  function visit(pkg) {
33
+ if (detectCycles && path.has(pkg.name)) {
34
+ throw new Error(formatCycleError(path, pkg.name));
35
+ }
25
36
  if (visited.has(pkg.name)) {
26
37
  return;
27
38
  }
39
+ path.add(pkg.name);
28
40
  visited.set(pkg.name, pkg);
29
41
  const deps = includeDevDeps
30
42
  ? { ...pkg.packageJson.dependencies, ...pkg.packageJson.devDependencies }
31
- : pkg.packageJson.dependencies ?? {};
43
+ : (pkg.packageJson.dependencies ?? {});
32
44
  for (const [depName, depVersion] of Object.entries(deps)) {
33
45
  const depPackage = repoExplorer.lookupPackage(depName);
34
46
  if (depPackage) {
@@ -43,12 +55,13 @@ export function computePackageClosure(pkgName, repoExplorer) {
43
55
  thirdPartyVersions.set(depName, existing);
44
56
  }
45
57
  }
58
+ path.delete(pkg.name);
46
59
  }
47
60
  visit(root);
48
61
  return visited;
49
62
  }
50
63
  const thirdPartyVersions = new Map();
51
- const runtimeVisited = traverse(subjectPackage, false, thirdPartyVersions);
64
+ const runtimeVisited = traverse(subjectPackage, false, true, thirdPartyVersions);
52
65
  const conflicts = detectVersionConflicts(thirdPartyVersions);
53
66
  if (Object.keys(conflicts).length > 0) {
54
67
  throw new Error(formatConflictError(conflicts));
@@ -61,7 +74,7 @@ export function computePackageClosure(pkgName, repoExplorer) {
61
74
  }
62
75
  allThirdPartyDeps[depName] = first.version;
63
76
  }
64
- const compiletimeVisited = traverse(subjectPackage, true);
77
+ const compiletimeVisited = traverse(subjectPackage, true, false);
65
78
  return {
66
79
  subjectPackageName: subjectPackage.name,
67
80
  runtimeMembers: [...runtimeVisited.values()],
@@ -1 +1 @@
1
- {"version":3,"file":"compute-package-closure.js","sourceRoot":"","sources":["../../src/compute-package-closure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compute-package-closure.js","sourceRoot":"","sources":["../../src/compute-package-closure.ts"],"names":[],"mappings":"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"}
@@ -68,5 +68,13 @@ export interface MonocrateOptions {
68
68
  * and you want to preserve meaningful versioning per package.
69
69
  */
70
70
  max?: boolean;
71
+ /**
72
+ * **WARNING: This option exists ONLY for testing purposes.** In production use, always
73
+ * leave this undefined to get a unique directory name. Setting this to a predictable
74
+ * value in production could cause name collisions with existing directories in your package.
75
+ *
76
+ * Suffix appended to the deps directory name to ensure uniqueness.
77
+ */
78
+ uniquenessSuffix?: string;
71
79
  }
72
80
  //# sourceMappingURL=monocrate-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"monocrate-options.d.ts","sourceRoot":"","sources":["../../src/monocrate-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACxC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;CACd"}
1
+ {"version":3,"file":"monocrate-options.d.ts","sourceRoot":"","sources":["../../src/monocrate-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACxC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IAEb;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"monocrate.d.ts","sourceRoot":"","sources":["../../src/monocrate.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiGnF"}
1
+ {"version":3,"file":"monocrate.d.ts","sourceRoot":"","sources":["../../src/monocrate.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAqGnF"}
@@ -1,3 +1,4 @@
1
+ import * as crypto from 'node:crypto';
1
2
  import * as fs from 'node:fs/promises';
2
3
  import * as os from 'node:os';
3
4
  import * as path from 'node:path';
@@ -47,10 +48,13 @@ export async function monocrate(options) {
47
48
  if (options.publish) {
48
49
  await npmClient.whoami(cwd);
49
50
  }
50
- const assemblers = sourceDirs.map((at) => new PackageAssembler(npmClient, explorer, at, outputRoot));
51
+ // Compute deps directory name with uniqueness suffix to avoid collisions
52
+ const uniquenessSuffix = options.uniquenessSuffix ?? `-${crypto.randomUUID()}`;
53
+ const depsDir = `deps${uniquenessSuffix}`;
54
+ const assemblers = sourceDirs.map((at) => new PackageAssembler(npmClient, explorer, at, outputRoot, depsDir));
51
55
  const a0 = assemblers.at(0);
52
56
  if (!a0) {
53
- throw new Error(`Incosistency - could not find an assembler for the first package`);
57
+ throw new Error(`Inconsistency - could not find an assembler for the first package`);
54
58
  }
55
59
  const pairs = await Promise.all(assemblers.map(async (a) => ({ assembler: a, version: await a.computeNewVersion(versionSpecifier) })));
56
60
  let max = pairs.at(0)?.version;
@@ -1 +1 @@
1
- {"version":3,"file":"monocrate.js","sourceRoot":"","sources":["../../src/monocrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAOnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,kFAAkF;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;IAEnC,yEAAyE;IACzE,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,MAAM,EAAE;SACvB,IAAI,CAAC,GAAG,CAAC;SACT,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAC7B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CACpH,CAAA;IAED,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;IAEvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAC1D,CAAC,CAAC,OAAO,CAAC,qBAAqB;QAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAEnC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY;QACvC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAExD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAElE,2DAA2D;IAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAA;IACpG,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACrF,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CACtG,CAAA;IAED,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACzD,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACxF,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA2B,CAAA;IAE/D,gEAAgE;IAChE,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC;QACnD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAChE,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC;YACnD,MAAM,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,SAAS,IAAI,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAA;QACrG,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnE,MAAM,aAAa,CAAC,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IACpE,CAAC;IAED,OAAO;QACL,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE;QAC5B,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QACzC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACxD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE;YACnC,WAAW,EAAE,SAAS,CAAC,OAAO;YAC9B,OAAO;SACR,CAAC,CAAC;KACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"monocrate.js","sourceRoot":"","sources":["../../src/monocrate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"npm-client.d.ts","sourceRoot":"","sources":["../../src/npm-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAWlD,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAX,UAAU,CAAC,EAAE,cAAc,YAAA;IAExD;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB1C,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F;;;;OAIG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA4BhF,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;CA2C7D"}
1
+ {"version":3,"file":"npm-client.d.ts","sourceRoot":"","sources":["../../src/npm-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAWlD,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAX,UAAU,CAAC,EAAE,cAAc,YAAA;IAExD;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAe1C,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F;;;;OAIG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA4BhF,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;CA2C7D"}
@@ -79,7 +79,7 @@ export class NpmClient {
79
79
  }
80
80
  const code = parsed.data.error.code ?? 'UNKNOWN';
81
81
  const detail = parsed.data.error.detail ?? parsed.data.error.summary ?? '<No Further Details>';
82
- throw new Error(`The 'npm view' command failed (code: ${code}): ${detail}`);
82
+ throw new Error(`The 'npm pack' command failed (code: ${code}): ${detail}`);
83
83
  }
84
84
  const parsed = z
85
85
  .array(z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"npm-client.js","sourceRoot":"","sources":["../../src/npm-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm-client.js","sourceRoot":"","sources":["../../src/npm-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,OAAO,SAAS;IACS;IAA7B,YAA6B,UAA2B;QAA3B,eAAU,GAAV,UAAU,CAAiB;IAAG,CAAC;IAE5D;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAiB;QAC5B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE;YACrD,GAAG,IAAI,CAAC,UAAU;YAClB,KAAK,EAAE,MAAM;YACb,qBAAqB,EAAE,QAAQ;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACpG,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,sDAAsD,CAAC,CAAA;QACxG,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAiB,EAAE,GAAY;QAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACtC,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,oBAA4B,EAAE,GAAW,EAAE,GAAiB;QAC3E,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB,EAAE,GAAiB;QACtD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE;YACzF,GAAG,IAAI,CAAC,UAAU;YAClB,KAAK,EAAE,MAAM;YACb,qBAAqB,EAAE,QAAQ;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,EAAE,CAAC,CAAA;YAChF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAA;YAChD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,sBAAsB,CAAA;gBAC9F,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,MAAM,MAAM,EAAE,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,EAAE,CAAC,CAAA;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAiB,EAAE,OAA8B;QAC1D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE;YACtG,GAAG,IAAI,CAAC,UAAU;YAClB,KAAK,EAAE,MAAM;YACb,qBAAqB,EAAE,QAAQ;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,EAAE,CAAC,CAAA;YAChF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAA;YAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,sBAAsB,CAAA;YAC9F,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,MAAM,MAAM,EAAE,CAAC,CAAA;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,CAAC;aACb,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;YACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;YACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;aACjB,CAAC,CACH;SACF,CAAC,CACH;aACA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACxF,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;CACF"}
@@ -7,10 +7,11 @@ export declare class PackageAssembler {
7
7
  private readonly explorer;
8
8
  private readonly fromDir;
9
9
  private readonly outputRoot;
10
+ private readonly depsDir;
10
11
  readonly pkgName: string;
11
12
  readonly publishAs: string;
12
13
  private readonly pathInRepo;
13
- constructor(npmClient: NpmClient, explorer: RepoExplorer, fromDir: AbsolutePath, outputRoot: AbsolutePath);
14
+ constructor(npmClient: NpmClient, explorer: RepoExplorer, fromDir: AbsolutePath, outputRoot: AbsolutePath, depsDir: string);
14
15
  getOutputDir(): AbsolutePath;
15
16
  computeNewVersion(versionSpecifier: VersionSpecifier): Promise<string>;
16
17
  assemble(newVersion: string | undefined): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"package-assembler.d.ts","sourceRoot":"","sources":["../../src/package-assembler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,QAAQ,CAAC,OAAO,SAAA;IAChB,QAAQ,CAAC,SAAS,SAAA;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAA;gBAER,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,YAAY;IAW3C,YAAY;IAIN,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB;IAKpD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAE,kBAAkB,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;CAiCnG"}
1
+ {"version":3,"file":"package-assembler.d.ts","sourceRoot":"","sources":["../../src/package-assembler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,QAAQ,CAAC,OAAO,SAAA;IAChB,QAAQ,CAAC,SAAS,SAAA;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAA;gBAGR,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,MAAM;IAWlC,YAAY;IAIN,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB;IAKpD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAE,kBAAkB,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;CAiCnG"}
@@ -13,14 +13,16 @@ export class PackageAssembler {
13
13
  explorer;
14
14
  fromDir;
15
15
  outputRoot;
16
+ depsDir;
16
17
  pkgName;
17
18
  publishAs;
18
19
  pathInRepo;
19
- constructor(npmClient, explorer, fromDir, outputRoot) {
20
+ constructor(npmClient, explorer, fromDir, outputRoot, depsDir) {
20
21
  this.npmClient = npmClient;
21
22
  this.explorer = explorer;
22
23
  this.fromDir = fromDir;
23
24
  this.outputRoot = outputRoot;
25
+ this.depsDir = depsDir;
24
26
  const found = this.explorer.listPackages().find((at) => at.fromDir === fromDir);
25
27
  if (!found) {
26
28
  throw new Error(`Unrecognized package source dir: "${this.fromDir}"`);
@@ -39,7 +41,7 @@ export class PackageAssembler {
39
41
  async assemble(newVersion) {
40
42
  const closure = computePackageClosure(this.pkgName, this.explorer);
41
43
  const outputDir = this.getOutputDir();
42
- const locations = await collectPackageLocations(this.npmClient, closure, outputDir);
44
+ const locations = await collectPackageLocations(this.npmClient, closure, outputDir, this.depsDir);
43
45
  validateEsmOnly(locations, this.explorer.repoRootDir);
44
46
  const packageMap = new Map(locations.map((at) => [at.name, at]));
45
47
  const subject = packageMap.get(closure.subjectPackageName);
@@ -61,7 +63,7 @@ export class PackageAssembler {
61
63
  };
62
64
  await new ImportRewriter(packageMap, isInRepoPackage, toRepoPath).rewriteAll(copiedFiles);
63
65
  // This must happen after file copying completes (otherwise the rewritten package.json could be overwritten)
64
- rewritePackageJson(closure, newVersion, outputDir);
66
+ rewritePackageJson(closure, newVersion, outputDir, this.depsDir);
65
67
  return { compiletimeMembers: closure.compiletimeMembers };
66
68
  }
67
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"package-assembler.js","sourceRoot":"","sources":["../../src/package-assembler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-assembler.js","sourceRoot":"","sources":["../../src/package-assembler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { PackageClosure } from './package-closure.js';
2
2
  import type { AbsolutePath } from './paths.js';
3
- export declare function rewritePackageJson(closure: PackageClosure, version: string | undefined, outputDir: AbsolutePath): void;
3
+ export declare function rewritePackageJson(closure: PackageClosure, version: string | undefined, outputDir: AbsolutePath, depsDir: string): void;
4
4
  //# sourceMappingURL=rewrite-package-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-package-json.d.ts","sourceRoot":"","sources":["../../src/rewrite-package-json.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,YAAY,QA8B/G"}
1
+ {"version":3,"file":"rewrite-package-json.d.ts","sourceRoot":"","sources":["../../src/rewrite-package-json.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,MAAM,QA+BhB"}
@@ -1,10 +1,9 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
- import { DEPS_DIR } from './collect-package-locations.js';
4
- export function rewritePackageJson(closure, version, outputDir) {
3
+ export function rewritePackageJson(closure, version, outputDir, depsDir) {
5
4
  const subject = closure.runtimeMembers.find((at) => at.name === closure.subjectPackageName);
6
5
  if (!subject) {
7
- throw new Error(`Incosistency in subject package name: "${closure.subjectPackageName}"`);
6
+ throw new Error(`Inconsistency in subject package name: "${closure.subjectPackageName}"`);
8
7
  }
9
8
  const { dependencies: _1, devDependencies: _2, monocrate: _3, ...rest } = subject.packageJson;
10
9
  const rewritten = {
@@ -22,7 +21,7 @@ export function rewritePackageJson(closure, version, outputDir) {
22
21
  // Otherwise npm pack will exclude the deps/ directory from the tarball
23
22
  const hasInRepoDeps = closure.runtimeMembers.length > 1;
24
23
  if (rewritten.files && hasInRepoDeps) {
25
- rewritten.files = [...rewritten.files, DEPS_DIR];
24
+ rewritten.files = [...rewritten.files, depsDir];
26
25
  }
27
26
  fs.writeFileSync(path.join(outputDir, 'package.json'), JSON.stringify(rewritten, null, 2) + '\n');
28
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-package-json.js","sourceRoot":"","sources":["../../src/rewrite-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAKzD,MAAM,UAAU,kBAAkB,CAAC,OAAuB,EAAE,OAA2B,EAAE,SAAuB;IAC9G,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC3F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC1F,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,CAAA;IAE7F,MAAM,SAAS,GAAgB;QAC7B,GAAG,IAAI;QACP,IAAI,EAAE,OAAO,CAAC,SAAS;KACxB,CAAA;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,SAAS,CAAC,OAAO,GAAG,OAAO,CAAA;IAC7B,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACpD,CAAC;IAED,oFAAoF;IACpF,uEAAuE;IACvE,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAA;IACvD,IAAI,SAAS,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC;QACrC,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACnG,CAAC"}
1
+ {"version":3,"file":"rewrite-package-json.js","sourceRoot":"","sources":["../../src/rewrite-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAKjC,MAAM,UAAU,kBAAkB,CAChC,OAAuB,EACvB,OAA2B,EAC3B,SAAuB,EACvB,OAAe;IAEf,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC3F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC3F,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,CAAA;IAE7F,MAAM,SAAS,GAAgB;QAC7B,GAAG,IAAI;QACP,IAAI,EAAE,OAAO,CAAC,SAAS;KACxB,CAAA;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,SAAS,CAAC,OAAO,GAAG,OAAO,CAAA;IAC7B,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACpD,CAAC;IAED,oFAAoF;IACpF,uEAAuE;IACvE,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAA;IACvD,IAAI,SAAS,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC;QACrC,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACnG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monocrate",
3
- "version": "0.12.0",
3
+ "version": "0.14.0",
4
4
  "description": "From monorepo to npm in one command",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -22,10 +22,8 @@
22
22
  "test": "vitest run",
23
23
  "test:watch": "vitest",
24
24
  "test:coverage": "vitest run --coverage",
25
- "lint": "eslint src tests",
26
- "lint:fix": "eslint src tests --fix",
27
- "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
28
- "format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
25
+ "lint": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" && eslint src tests",
26
+ "lint:fix": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" && eslint src tests --fix",
29
27
  "typecheck": "tsc --noEmit",
30
28
  "publish-to-npm": "./scripts/publish-to-npm.sh"
31
29
  },
@@ -50,7 +48,7 @@
50
48
  "@eslint/js": "^9.0.0",
51
49
  "@types/node": "^20.19.29",
52
50
  "@types/yargs": "^17.0.35",
53
- "@vitest/coverage-v8": "^1.2.0",
51
+ "@vitest/coverage-v8": "^4.0.18",
54
52
  "eslint": "^9.0.0",
55
53
  "eslint-plugin-unused-imports": "^4.3.0",
56
54
  "get-port": "^7.1.0",
@@ -60,7 +58,7 @@
60
58
  "typescript": "^5.3.0",
61
59
  "typescript-eslint": "^8.0.0",
62
60
  "verdaccio": "^6.2.4",
63
- "vitest": "^1.2.0"
61
+ "vitest": "^4.0.18"
64
62
  },
65
63
  "engines": {
66
64
  "node": ">=20.0.0"
@@ -72,7 +70,7 @@
72
70
  ]
73
71
  },
74
72
  "dependencies": {
75
- "esbuild": "^0.24.0",
73
+ "esbuild": "^0.27.2",
76
74
  "resolve.exports": "^2.0.3",
77
75
  "tinyexec": "^1.0.2",
78
76
  "tinyglobby": "^0.2.15",
@@ -80,5 +78,11 @@
80
78
  "yaml": "^2.8.2",
81
79
  "yargs": "^18.0.0",
82
80
  "zod": "^4.3.5"
81
+ },
82
+ "packageManager": "pnpm@10.28.1",
83
+ "pnpm": {
84
+ "onlyBuiltDependencies": [
85
+ "esbuild"
86
+ ]
83
87
  }
84
88
  }