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 +62 -91
- package/dist/src/collect-package-locations.d.ts +1 -3
- package/dist/src/collect-package-locations.d.ts.map +1 -1
- package/dist/src/collect-package-locations.js +2 -4
- package/dist/src/collect-package-locations.js.map +1 -1
- package/dist/src/compute-package-closure.d.ts.map +1 -1
- package/dist/src/compute-package-closure.js +17 -4
- package/dist/src/compute-package-closure.js.map +1 -1
- package/dist/src/monocrate-options.d.ts +8 -0
- package/dist/src/monocrate-options.d.ts.map +1 -1
- package/dist/src/monocrate.d.ts.map +1 -1
- package/dist/src/monocrate.js +6 -2
- package/dist/src/monocrate.js.map +1 -1
- package/dist/src/npm-client.d.ts.map +1 -1
- package/dist/src/npm-client.js +1 -1
- package/dist/src/npm-client.js.map +1 -1
- package/dist/src/package-assembler.d.ts +2 -1
- package/dist/src/package-assembler.d.ts.map +1 -1
- package/dist/src/package-assembler.js +5 -3
- package/dist/src/package-assembler.js.map +1 -1
- package/dist/src/rewrite-package-json.d.ts +1 -1
- package/dist/src/rewrite-package-json.d.ts.map +1 -1
- package/dist/src/rewrite-package-json.js +3 -4
- package/dist/src/rewrite-package-json.js.map +1 -1
- package/package.json +12 -8
package/README.md
CHANGED
|
@@ -1,53 +1,50 @@
|
|
|
1
1
|
# monocrate
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/monocrate)
|
|
4
|
-
[](https://github.com/moojo-tech/monocrate/actions/workflows/ci.yml)
|
|
5
5
|
[](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.
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
[
|
|
21
|
-
sourcemaps
|
|
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
|
|
26
|
-
publishable directory containing everything needed from your package and its in-repo dependencies.
|
|
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
|
|
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
|
-
|
|
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
|
-
#
|
|
42
|
-
#
|
|
38
|
+
# Or: yarn add --dev monocrate
|
|
39
|
+
# Or: npm install --save-dev monocrate
|
|
43
40
|
|
|
44
|
-
# Build (monocrate publishes
|
|
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
|
|
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
|
|
86
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
98
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
112
|
-
npx monocrate packages/my-awesome-package
|
|
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
|
|
119
|
-
cd /
|
|
120
|
-
|
|
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
|
|
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;
|
|
198
|
+
This is purely a stylistic choice; it doesn't affect correctness since in-repo dependencies are always embedded.
|
|
193
199
|
|
|
194
|
-
##
|
|
200
|
+
## Reference
|
|
195
201
|
|
|
196
|
-
|
|
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
|
-
|
|
208
|
+
**Arguments**
|
|
223
209
|
|
|
224
210
|
| Argument | Description |
|
|
225
211
|
|----------|-------------|
|
|
226
212
|
| `packages` | One or more package directories to publish (required) |
|
|
227
213
|
|
|
228
|
-
|
|
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
|
-
|
|
229
|
+
### API
|
|
244
230
|
|
|
245
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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(
|
|
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
|
|
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;
|
|
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":"AASA,SAAS,sBAAsB,CAAC,aAAyC;IACvE,MAAM,SAAS,GAAsC,EAAE,CAAA;IAEvD,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACvE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,UAAU,GAAG,CAAC,CAAA;QACnF,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA4C;IACvE,MAAM,KAAK,GAAG,CAAC,oDAAoD,CAAC,CAAA;IAEpE,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,YAA0B;IAC/E,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAEvD,SAAS,QAAQ,CACf,IAAqB,EACrB,cAAuB,EACvB,kBAA+C;QAE/C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;
|
|
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;
|
|
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":"
|
|
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"}
|
package/dist/src/monocrate.js
CHANGED
|
@@ -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
|
-
|
|
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(`
|
|
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;
|
|
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,
|
|
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"}
|
package/dist/src/npm-client.js
CHANGED
|
@@ -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
|
|
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":"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,
|
|
1
|
+
{"version":3,"file":"npm-client.js","sourceRoot":"","sources":["../../src/npm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,OAAO,gBAAgB;
|
|
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":"
|
|
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
|
-
|
|
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(`
|
|
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,
|
|
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;
|
|
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.
|
|
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": "^
|
|
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": "^
|
|
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.
|
|
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
|
}
|