monocrate 0.1.0 → 0.3.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.
Files changed (54) hide show
  1. package/dist/assemble.d.ts +3 -0
  2. package/dist/assemble.d.ts.map +1 -0
  3. package/dist/{bundle.js → assemble.js} +2 -2
  4. package/dist/assemble.js.map +1 -0
  5. package/dist/build-dependency-graph.d.ts +1 -1
  6. package/dist/build-dependency-graph.d.ts.map +1 -1
  7. package/dist/build-dependency-graph.js +6 -7
  8. package/dist/build-dependency-graph.js.map +1 -1
  9. package/dist/build-package-map.js +1 -1
  10. package/dist/build-package-map.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/monocrate-cli.d.ts.map +1 -1
  15. package/dist/monocrate-cli.js +15 -13
  16. package/dist/monocrate-cli.js.map +1 -1
  17. package/dist/monocrate.d.ts +35 -11
  18. package/dist/monocrate.d.ts.map +1 -1
  19. package/dist/monocrate.js +79 -17
  20. package/dist/monocrate.js.map +1 -1
  21. package/dist/transform-package-json.js +1 -1
  22. package/dist/transform-package-json.js.map +1 -1
  23. package/package.json +9 -4
  24. package/dist/bundle.d.ts +0 -3
  25. package/dist/bundle.d.ts.map +0 -1
  26. package/dist/bundle.js.map +0 -1
  27. package/dist/bundler.d.ts +0 -3
  28. package/dist/bundler.d.ts.map +0 -1
  29. package/dist/bundler.js +0 -62
  30. package/dist/bundler.js.map +0 -1
  31. package/dist/copy-bundler.d.ts +0 -3
  32. package/dist/copy-bundler.d.ts.map +0 -1
  33. package/dist/copy-bundler.js +0 -11
  34. package/dist/copy-bundler.js.map +0 -1
  35. package/dist/dependency-graph.d.ts +0 -3
  36. package/dist/dependency-graph.d.ts.map +0 -1
  37. package/dist/dependency-graph.js +0 -44
  38. package/dist/dependency-graph.js.map +0 -1
  39. package/dist/index.test.d.ts +0 -2
  40. package/dist/index.test.d.ts.map +0 -1
  41. package/dist/index.test.js +0 -110
  42. package/dist/index.test.js.map +0 -1
  43. package/dist/monocrate.test.d.ts +0 -2
  44. package/dist/monocrate.test.d.ts.map +0 -1
  45. package/dist/monocrate.test.js +0 -998
  46. package/dist/monocrate.test.js.map +0 -1
  47. package/dist/package-transformer.d.ts +0 -5
  48. package/dist/package-transformer.d.ts.map +0 -1
  49. package/dist/package-transformer.js +0 -20
  50. package/dist/package-transformer.js.map +0 -1
  51. package/dist/types.d.ts +0 -2
  52. package/dist/types.d.ts.map +0 -1
  53. package/dist/types.js +0 -2
  54. package/dist/types.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import type { DependencyGraph } from './build-dependency-graph.js';
2
+ export declare function assemble(graph: DependencyGraph, monorepoRoot: string, outputDir: string): Promise<void>;
3
+ //# sourceMappingURL=assemble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../src/assemble.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAElE,wBAAsB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7G"}
@@ -2,10 +2,10 @@ import * as fsPromises from 'node:fs/promises';
2
2
  import { buildPackageMap } from './build-package-map.js';
3
3
  import { DistCopier } from './dist-copier.js';
4
4
  import { ImportRewriter } from './import-rewriter.js';
5
- export async function bundle(graph, monorepoRoot, outputDir) {
5
+ export async function assemble(graph, monorepoRoot, outputDir) {
6
6
  const packageMap = buildPackageMap(graph, monorepoRoot);
7
7
  await fsPromises.mkdir(outputDir, { recursive: true });
8
8
  const copiedFiles = await new DistCopier(packageMap, outputDir).copy();
9
9
  await new ImportRewriter(packageMap, outputDir).rewriteAll(copiedFiles);
10
10
  }
11
- //# sourceMappingURL=bundle.js.map
11
+ //# sourceMappingURL=assemble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble.js","sourceRoot":"","sources":["../src/assemble.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAsB,EAAE,YAAoB,EAAE,SAAiB;IAC5F,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAEvD,MAAM,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtD,MAAM,WAAW,GAAG,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AACzE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { MonorepoPackage } from './monorepo.js';
2
2
  export interface DependencyGraph {
3
- packageToBundle: MonorepoPackage;
3
+ subjectPackage: MonorepoPackage;
4
4
  inRepoDeps: MonorepoPackage[];
5
5
  allThirdPartyDeps: Partial<Record<string, string>>;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-dependency-graph.d.ts","sourceRoot":"","sources":["../src/build-dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGpD,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,eAAe,CAAA;IAChC,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACnD;AAED,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyC5G"}
1
+ {"version":3,"file":"build-dependency-graph.d.ts","sourceRoot":"","sources":["../src/build-dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGpD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,eAAe,CAAA;IAC/B,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACnD;AAED,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAuC5G"}
@@ -1,8 +1,8 @@
1
1
  import { discoverMonorepoPackages } from './monorepo.js';
2
2
  export async function buildDependencyGraph(sourceDir, monorepoRoot) {
3
3
  const allRepoPackages = await discoverMonorepoPackages(monorepoRoot);
4
- const packageToBundle = [...allRepoPackages.values()].find((at) => at.path === sourceDir);
5
- if (!packageToBundle) {
4
+ const subjectPackage = [...allRepoPackages.values()].find((at) => at.path === sourceDir);
5
+ if (!subjectPackage) {
6
6
  throw new Error(`Could not find a monorepo package at ${sourceDir}`);
7
7
  }
8
8
  const allThirdPartyDeps = {};
@@ -12,8 +12,7 @@ export async function buildDependencyGraph(sourceDir, monorepoRoot) {
12
12
  return;
13
13
  }
14
14
  visited.set(pkg.name, pkg);
15
- const deps = pkg.packageJson.dependencies ?? {};
16
- for (const [depName, depVersion] of Object.entries(deps)) {
15
+ for (const [depName, depVersion] of Object.entries(pkg.packageJson.dependencies ?? {})) {
17
16
  if (!depVersion) {
18
17
  throw new Error(`no version for dep ${depName} in ${pkg.name}`);
19
18
  }
@@ -29,10 +28,10 @@ export async function buildDependencyGraph(sourceDir, monorepoRoot) {
29
28
  }
30
29
  }
31
30
  }
32
- collectDeps(packageToBundle);
31
+ collectDeps(subjectPackage);
33
32
  return {
34
- packageToBundle,
35
- inRepoDeps: [...visited.values()].filter((at) => at !== packageToBundle),
33
+ subjectPackage,
34
+ inRepoDeps: [...visited.values()].filter((at) => at !== subjectPackage),
36
35
  allThirdPartyDeps,
37
36
  };
38
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-dependency-graph.js","sourceRoot":"","sources":["../src/build-dependency-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAQxD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,YAAoB;IAChF,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAA;IACpE,MAAM,eAAe,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACzF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,iBAAiB,GAAoC,EAAE,CAAA;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;IAElD,SAAS,WAAW,CAAC,GAAoB;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAE1B,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAA;QAE/C,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACjE,CAAC;YACD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/C,IAAI,UAAU,EAAE,CAAC;gBACf,oBAAoB;gBACpB,WAAW,CAAC,UAAU,CAAC,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,EAAE,CAAC;oBACpC,iBAAiB,CAAC,OAAO,CAAC,GAAG,UAAU,CAAA;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,eAAe,CAAC,CAAA;IAE5B,OAAO;QACL,eAAe;QACf,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,eAAe,CAAC;QACxE,iBAAiB;KAClB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"build-dependency-graph.js","sourceRoot":"","sources":["../src/build-dependency-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAQxD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,YAAoB;IAChF,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAA;IACpE,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACxF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,iBAAiB,GAAoC,EAAE,CAAA;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;IAElD,SAAS,WAAW,CAAC,GAAoB;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAE1B,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YACvF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACjE,CAAC;YACD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/C,IAAI,UAAU,EAAE,CAAC;gBACf,oBAAoB;gBACpB,WAAW,CAAC,UAAU,CAAC,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,EAAE,CAAC;oBACpC,iBAAiB,CAAC,OAAO,CAAC,GAAG,UAAU,CAAA;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,cAAc,CAAC,CAAA;IAE3B,OAAO;QACL,cAAc;QACd,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC;QACvE,iBAAiB;KAClB,CAAA;AACH,CAAC"}
@@ -34,7 +34,7 @@ function computeDepOutputPrefix(dep, monorepoRoot) {
34
34
  }
35
35
  export function buildPackageMap(graph, monorepoRoot) {
36
36
  const packageMap = new Map();
37
- registerPackageLocation(packageMap, graph.packageToBundle, '');
37
+ registerPackageLocation(packageMap, graph.subjectPackage, '');
38
38
  for (const dep of graph.inRepoDeps) {
39
39
  registerPackageLocation(packageMap, dep, computeDepOutputPrefix(dep, monorepoRoot));
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-package-map.js","sourceRoot":"","sources":["../src/build-package-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAKjC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAC/B,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAE3C,SAAS,cAAc,CAAC,IAAwB;IAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAA;IACzB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAA;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAwB;IACjD,OAAO,IAAI,IAAI,mBAAmB,CAAA;AACpC,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAsB,EAAE,GAAoB,EAAE,YAAoB;IACjG,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,+BAA+B,GAAG,CAAC,IAAI,GAAG,CAAC,CAAA;IACzG,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAEtD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,aAAa;QACb,aAAa;QACb,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClF,cAAc,CAAC,OAAe;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAC1C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAoB,EAAE,YAAoB;IACxE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAsB,EAAE,YAAoB;IAC1E,MAAM,UAAU,GAAe,IAAI,GAAG,EAAE,CAAA;IAExC,uBAAuB,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAE9D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACnC,uBAAuB,CAAC,UAAU,EAAE,GAAG,EAAE,sBAAsB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"build-package-map.js","sourceRoot":"","sources":["../src/build-package-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAKjC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAC/B,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAE3C,SAAS,cAAc,CAAC,IAAwB;IAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAA;IACzB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAA;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAwB;IACjD,OAAO,IAAI,IAAI,mBAAmB,CAAA;AACpC,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAsB,EAAE,GAAoB,EAAE,YAAoB;IACjG,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,+BAA+B,GAAG,CAAC,IAAI,GAAG,CAAC,CAAA;IACzG,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAEtD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,aAAa;QACb,aAAa;QACb,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClF,cAAc,CAAC,OAAe;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAC1C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAoB,EAAE,YAAoB;IACxE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAsB,EAAE,YAAoB;IAC1E,MAAM,UAAU,GAAe,IAAI,GAAG,EAAE,CAAA;IAExC,uBAAuB,CAAC,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAE7D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACnC,uBAAuB,CAAC,UAAU,EAAE,GAAG,EAAE,sBAAsB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { monocrate } from './monocrate.js';
1
+ export { monocrate, type MonocrateOptions } from './monocrate.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"monocrate-cli.d.ts","sourceRoot":"","sources":["../src/monocrate-cli.ts"],"names":[],"mappings":"AAyCA,wBAAgB,YAAY,IAAI,IAAI,CAKnC"}
1
+ {"version":3,"file":"monocrate-cli.d.ts","sourceRoot":"","sources":["../src/monocrate-cli.ts"],"names":[],"mappings":"AA4CA,wBAAgB,YAAY,IAAI,IAAI,CAKnC"}
@@ -3,7 +3,7 @@ import { monocrate } from './monocrate.js';
3
3
  const command = defineCommand({
4
4
  meta: {
5
5
  name: 'monocrate',
6
- description: 'Bundle a monorepo package for npm publishing',
6
+ description: 'Assemble and optionally publish a monorepo package to npm',
7
7
  },
8
8
  args: {
9
9
  source: {
@@ -13,28 +13,30 @@ const command = defineCommand({
13
13
  },
14
14
  output: {
15
15
  type: 'positional',
16
- description: 'Output directory',
17
- required: true,
16
+ description: 'Output directory (creates a dedicated temp directory if not specified)',
17
+ required: false,
18
18
  },
19
19
  root: {
20
20
  type: 'string',
21
21
  description: 'Monorepo root directory (auto-detected if not specified)',
22
22
  alias: 'r',
23
23
  },
24
+ publish: {
25
+ type: 'string',
26
+ description: 'Publish to npm with version: x.y.z (explicit) or patch|minor|major (increment)',
27
+ alias: 'p',
28
+ },
24
29
  },
25
30
  async run({ args }) {
26
- const result = await monocrate({
27
- sourceDir: args.source,
28
- outputDir: args.output,
31
+ const outputDir = args.output || undefined;
32
+ const actualOutputDir = await monocrate({
33
+ pathToSubjectPackage: args.source,
34
+ ...(outputDir ? { outputDir } : {}),
29
35
  monorepoRoot: args.root,
36
+ publishToVersion: args.publish,
37
+ cwd: process.cwd(),
30
38
  });
31
- if (result.success) {
32
- console.log(`Bundle created at: ${result.outputDir}`);
33
- }
34
- else {
35
- console.error(`Error: ${result.error}`);
36
- process.exit(1);
37
- }
39
+ console.log(actualOutputDir);
38
40
  },
39
41
  });
40
42
  export function monocrateCli() {
@@ -1 +1 @@
1
- {"version":3,"file":"monocrate-cli.js","sourceRoot":"","sources":["../src/monocrate-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,OAAO,GAAG,aAAa,CAAC;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,8CAA8C;KAC5D;IACD,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,IAAI;SACf;QACD,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0DAA0D;YACvE,KAAK,EAAE,GAAG;SACX;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,CAAC,MAAM;YACtB,YAAY,EAAE,IAAI,CAAC,IAAI;SACxB,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"monocrate-cli.js","sourceRoot":"","sources":["../src/monocrate-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,OAAO,GAAG,aAAa,CAAC;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,2DAA2D;KACzE;IACD,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,IAAI;SACf;QACD,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,wEAAwE;YACrF,QAAQ,EAAE,KAAK;SAChB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0DAA0D;YACvE,KAAK,EAAE,GAAG;SACX;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gFAAgF;YAC7F,KAAK,EAAE,GAAG;SACX;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAA;QAC1C,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;YACtC,oBAAoB,EAAE,IAAI,CAAC,MAAM;YACjC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,gBAAgB,EAAE,IAAI,CAAC,OAAO;YAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC9B,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,14 +1,38 @@
1
1
  export interface MonocrateOptions {
2
- sourceDir: string;
3
- outputDir: string;
4
- monorepoRoot: string;
2
+ /**
3
+ * Path to the package directory to assemble.
4
+ * Can be absolute or relative. Relative paths are resolved from the cwd option.
5
+ */
6
+ pathToSubjectPackage: string;
7
+ /**
8
+ * Path to the output directory where the assembly will be written.
9
+ * Can be absolute or relative. Relative paths are resolved from the cwd option.
10
+ * If not specified, a dedicated temp directory is created under the system temp directory.
11
+ */
12
+ outputDir?: string;
13
+ /**
14
+ * Path to the monorepo root directory.
15
+ * Can be absolute or relative. Relative paths are resolved from the cwd option.
16
+ * If not specified, auto-detected by searching for a root package.json with workspaces.
17
+ */
18
+ monorepoRoot?: string;
19
+ /**
20
+ * Publish the assembly to npm after building.
21
+ * Accepts either an explicit semver version (e.g., "1.2.3") or an increment keyword ("patch", "minor", "major").
22
+ * When specified, the assembly is published to npm with the resolved version.
23
+ * If not specified, no publishing occurs.
24
+ */
25
+ publishToVersion?: string;
26
+ /**
27
+ * Base directory for resolving relative paths. Must be a valid, existing directory.
28
+ */
29
+ cwd: string;
5
30
  }
6
- export type MonocrateResult = {
7
- success: true;
8
- outputDir: string;
9
- } | {
10
- success: false;
11
- error: string;
12
- };
13
- export declare function monocrate(options: MonocrateOptions): Promise<MonocrateResult>;
31
+ /**
32
+ * Assembles a monorepo package and its in-repo dependencies for npm publishing.
33
+ * @param options - Configuration options for the assembly process
34
+ * @returns The output directory path where the assembly was created
35
+ * @throws Error if assembly or publishing fails
36
+ */
37
+ export declare function monocrate(options: MonocrateOptions): Promise<string>;
14
38
  //# sourceMappingURL=monocrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"monocrate.d.ts","sourceRoot":"","sources":["../src/monocrate.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtG,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuBnF"}
1
+ {"version":3,"file":"monocrate.d.ts","sourceRoot":"","sources":["../src/monocrate.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAA;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ;AA2BD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkE1E"}
package/dist/monocrate.js CHANGED
@@ -1,27 +1,89 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import * as fs from 'node:fs/promises';
3
+ import * as os from 'node:os';
1
4
  import * as path from 'node:path';
5
+ import { z } from 'zod';
2
6
  import { findMonorepoRoot } from './monorepo.js';
3
7
  import { buildDependencyGraph } from './build-dependency-graph.js';
4
- import { bundle } from './bundle.js';
8
+ import { assemble } from './assemble.js';
5
9
  import { transformPackageJson, writePackageJson } from './transform-package-json.js';
10
+ const explicitVersionRegex = /^\d+\.\d+\.\d+$/;
11
+ const VersionSpecifier = z.union([
12
+ z.literal('patch'),
13
+ z.literal('minor'),
14
+ z.literal('major'),
15
+ z.string().regex(explicitVersionRegex, 'Must be x.y.z format'),
16
+ ]);
17
+ function isExplicitVersion(value) {
18
+ return explicitVersionRegex.test(value);
19
+ }
20
+ function getCurrentPublishedVersion(packageName) {
21
+ const result = spawnSync('npm', ['view', packageName, 'version'], {
22
+ encoding: 'utf-8',
23
+ });
24
+ if (result.status !== 0 || !result.stdout.trim()) {
25
+ return '0.0.0';
26
+ }
27
+ return result.stdout.trim();
28
+ }
29
+ /**
30
+ * Assembles a monorepo package and its in-repo dependencies for npm publishing.
31
+ * @param options - Configuration options for the assembly process
32
+ * @returns The output directory path where the assembly was created
33
+ * @throws Error if assembly or publishing fails
34
+ */
6
35
  export async function monocrate(options) {
7
- try {
8
- const sourceDir = path.resolve(options.sourceDir);
9
- const outputDir = path.resolve(options.outputDir);
10
- const monorepoRoot = options.monorepoRoot ? path.resolve(options.monorepoRoot) : findMonorepoRoot(sourceDir);
11
- const graph = await buildDependencyGraph(sourceDir, monorepoRoot);
12
- await bundle(graph, monorepoRoot, outputDir);
13
- const packageJson = transformPackageJson(graph);
36
+ // Resolve and validate cwd first, then use it to resolve all other paths
37
+ const cwd = path.resolve(options.cwd);
38
+ const cwdExists = await fs
39
+ .stat(cwd)
40
+ .then(() => true)
41
+ .catch(() => false);
42
+ if (!cwdExists) {
43
+ throw new Error(`cwd does not exist: ${cwd}`);
44
+ }
45
+ const sourceDir = path.resolve(cwd, options.pathToSubjectPackage);
46
+ const monorepoRoot = options.monorepoRoot ? path.resolve(cwd, options.monorepoRoot) : findMonorepoRoot(sourceDir);
47
+ // Validate publish argument before any side effects
48
+ let versionSpecifier;
49
+ if (options.publishToVersion !== undefined) {
50
+ const parseResult = VersionSpecifier.safeParse(options.publishToVersion);
51
+ if (!parseResult.success) {
52
+ throw new Error(`Invalid publish value: "${options.publishToVersion}". Expected "patch", "minor", "major" or an explicit version such as "1.2.3"`);
53
+ }
54
+ versionSpecifier = parseResult.data;
55
+ }
56
+ const outputDir = options.outputDir
57
+ ? path.resolve(cwd, options.outputDir)
58
+ : await fs.mkdtemp(path.join(os.tmpdir(), 'monocrate-'));
59
+ const graph = await buildDependencyGraph(sourceDir, monorepoRoot);
60
+ await assemble(graph, monorepoRoot, outputDir);
61
+ const packageJson = transformPackageJson(graph);
62
+ if (!versionSpecifier) {
14
63
  await writePackageJson(packageJson, outputDir);
15
- return {
16
- success: true,
17
- outputDir,
18
- };
64
+ return outputDir;
65
+ }
66
+ // Publishing flow
67
+ const packageName = graph.subjectPackage.packageJson.name;
68
+ if (isExplicitVersion(versionSpecifier)) {
69
+ await writePackageJson({ ...packageJson, version: versionSpecifier }, outputDir);
70
+ }
71
+ else {
72
+ const currentVersion = getCurrentPublishedVersion(packageName);
73
+ await writePackageJson({ ...packageJson, version: currentVersion }, outputDir);
74
+ // --no-git-tag-version: bump version in package.json only, without creating a git tag (we're in a temp directory, not a git repo)
75
+ const npmVersionResult = spawnSync('npm', ['version', versionSpecifier, '--no-git-tag-version'], {
76
+ cwd: outputDir,
77
+ stdio: 'inherit',
78
+ });
79
+ if (npmVersionResult.status !== 0) {
80
+ throw new Error(`npm version failed with exit code ${String(npmVersionResult.status ?? 1)}`);
81
+ }
19
82
  }
20
- catch (error) {
21
- return {
22
- success: false,
23
- error: error instanceof Error ? (error.stack ?? error.message) : String(error),
24
- };
83
+ const npmPublishResult = spawnSync('npm', ['publish'], { cwd: outputDir, stdio: 'inherit' });
84
+ if (npmPublishResult.status !== 0) {
85
+ throw new Error(`npm publish failed with exit code ${String(npmPublishResult.status ?? 1)}`);
25
86
  }
87
+ return outputDir;
26
88
  }
27
89
  //# sourceMappingURL=monocrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monocrate.js","sourceRoot":"","sources":["../src/monocrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAUpF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAE5G,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAEjE,MAAM,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAE5C,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAE9C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS;SACV,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC/E,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"monocrate.js","sourceRoot":"","sources":["../src/monocrate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as fs from 'node:fs/promises';
2
2
  import * as path from 'node:path';
3
3
  export function transformPackageJson(graph) {
4
- const source = graph.packageToBundle.packageJson;
4
+ const source = graph.subjectPackage.packageJson;
5
5
  const { dependencies: _1, devDependencies: _2, ...rest } = source;
6
6
  const transformed = {
7
7
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"file":"transform-package-json.js","sourceRoot":"","sources":["../src/transform-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAIjC,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,WAAW,CAAA;IAEhD,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEjE,MAAM,WAAW,GAAgB;QAC/B,GAAG,IAAI;KACR,CAAA;IAED,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAA;IACpD,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAwB,EAAE,SAAiB;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC7E,CAAC"}
1
+ {"version":3,"file":"transform-package-json.js","sourceRoot":"","sources":["../src/transform-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAIjC,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAA;IAE/C,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEjE,MAAM,WAAW,GAAgB;QAC/B,GAAG,IAAI;KACR,CAAA;IAED,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAA;IACpD,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAwB,EAAE,SAAiB;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC7E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monocrate",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "From monorepo to npm in one command",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,7 +15,8 @@
15
15
  }
16
16
  },
17
17
  "files": [
18
- "dist"
18
+ "dist",
19
+ "!dist/**/*.test.*"
19
20
  ],
20
21
  "scripts": {
21
22
  "build": "tsc",
@@ -27,7 +28,7 @@
27
28
  "format": "prettier --write \"src/**/*.ts\"",
28
29
  "format:check": "prettier --check \"src/**/*.ts\"",
29
30
  "typecheck": "tsc --noEmit",
30
- "prepare": "husky"
31
+ "publish-to-npm": "./scripts/publish-to-npm.sh"
31
32
  },
32
33
  "keywords": [
33
34
  "monorepo",
@@ -37,7 +38,11 @@
37
38
  "publish"
38
39
  ],
39
40
  "author": "",
40
- "license": "ISC",
41
+ "license": "MIT",
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/imaman/monocrate.git"
45
+ },
41
46
  "devDependencies": {
42
47
  "@eslint/js": "^9.0.0",
43
48
  "@types/node": "^20.19.29",
package/dist/bundle.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { DependencyGraph } from './build-dependency-graph.js';
2
- export declare function bundle(graph: DependencyGraph, monorepoRoot: string, outputDir: string): Promise<void>;
3
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAElE,wBAAsB,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAsB,EAAE,YAAoB,EAAE,SAAiB;IAC1F,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAEvD,MAAM,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtD,MAAM,WAAW,GAAG,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AACzE,CAAC"}
package/dist/bundler.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { DependencyGraph } from './types.js';
2
- export declare function bundle(graph: DependencyGraph, outputDir: string): Promise<void>;
3
- //# sourceMappingURL=bundler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAA;AA8ClE,wBAAsB,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBrF"}
package/dist/bundler.js DELETED
@@ -1,62 +0,0 @@
1
- import * as fs from 'node:fs/promises';
2
- import * as fsSync from 'node:fs';
3
- import module from 'node:module';
4
- import * as path from 'node:path';
5
- import * as esbuild from 'esbuild';
6
- import { getExternalDependencies } from './dependency-graph.js';
7
- const NODE_BUILTIN_MODULES = module.builtinModules.flatMap((m) => [m, `node:${m}`]);
8
- function findEntryPoint(packageDir, packageJson) {
9
- const possibleEntries = [
10
- packageJson.source,
11
- packageJson.main,
12
- 'src/index.ts',
13
- 'src/index.js',
14
- 'index.ts',
15
- 'index.js',
16
- ].filter((e) => typeof e === 'string');
17
- for (const entry of possibleEntries) {
18
- const fullPath = path.resolve(packageDir, entry);
19
- if (fsSync.existsSync(fullPath)) {
20
- return fullPath;
21
- }
22
- }
23
- throw new Error(`Could not find entry point in ${packageDir}`);
24
- }
25
- function createInRepoResolverPlugin(inRepoDeps) {
26
- const packageMap = new Map();
27
- for (const dep of inRepoDeps) {
28
- const entryPoint = findEntryPoint(dep.path, dep.packageJson);
29
- packageMap.set(dep.name, entryPoint);
30
- }
31
- return {
32
- name: 'in-repo-resolver',
33
- setup(build) {
34
- build.onResolve({ filter: /.*/ }, (args) => {
35
- const resolved = packageMap.get(args.path);
36
- if (resolved) {
37
- return { path: resolved };
38
- }
39
- return null;
40
- });
41
- },
42
- };
43
- }
44
- export async function bundle(graph, outputDir) {
45
- const entryPoint = findEntryPoint(graph.root.path, graph.root.packageJson);
46
- const externalDeps = getExternalDependencies(graph);
47
- const resolverPlugin = createInRepoResolverPlugin(graph.inRepoDeps);
48
- await fs.mkdir(outputDir, { recursive: true });
49
- await esbuild.build({
50
- entryPoints: [entryPoint],
51
- bundle: true,
52
- platform: 'node',
53
- target: 'node20',
54
- format: 'esm',
55
- outfile: path.join(outputDir, 'index.js'),
56
- external: [...externalDeps, ...NODE_BUILTIN_MODULES],
57
- plugins: [resolverPlugin],
58
- sourcemap: false,
59
- minify: false,
60
- });
61
- }
62
- //# sourceMappingURL=bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { DependencyGraph } from './types.js';
2
- export declare function copyBundle(graph: DependencyGraph, monorepoRoot: string, outputDir: string): Promise<void>;
3
- //# sourceMappingURL=copy-bundler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-bundler.d.ts","sourceRoot":"","sources":["../src/copy-bundler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/G"}
@@ -1,11 +0,0 @@
1
- import * as fsPromises from 'node:fs/promises';
2
- import { buildPackageMap } from './build-package-map.js';
3
- import { DistCopier } from './dist-copier.js';
4
- import { ImportRewriter } from './import-rewriter.js';
5
- export async function copyBundle(graph, monorepoRoot, outputDir) {
6
- const packageMap = buildPackageMap(graph, monorepoRoot);
7
- await fsPromises.mkdir(outputDir, { recursive: true });
8
- const copiedFiles = await new DistCopier(packageMap, outputDir).copy();
9
- await new ImportRewriter(packageMap, outputDir).rewriteAll(copiedFiles);
10
- }
11
- //# sourceMappingURL=copy-bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-bundler.js","sourceRoot":"","sources":["../src/copy-bundler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB,EAAE,YAAoB,EAAE,SAAiB;IAC9F,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAEvD,MAAM,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtD,MAAM,WAAW,GAAG,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AACzE,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { DependencyGraph } from './types.js';
2
- export declare function buildDependencyGraph(sourceDir: string, monorepoRoot: string): Promise<DependencyGraph>;
3
- //# sourceMappingURL=dependency-graph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../src/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,YAAY,CAAA;AAQlE,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4C5G"}
@@ -1,44 +0,0 @@
1
- import { readPackageJson, discoverMonorepoPackages, isInRepoDep } from './monorepo.js';
2
- function getDependencies(packageJson) {
3
- return packageJson.dependencies ?? {};
4
- }
5
- export async function buildDependencyGraph(sourceDir, monorepoRoot) {
6
- const monorepoPackages = await discoverMonorepoPackages(monorepoRoot);
7
- const packageToBundleJson = readPackageJson(sourceDir);
8
- const packageToBundle = {
9
- name: packageToBundleJson.name,
10
- path: sourceDir,
11
- packageJson: packageToBundleJson,
12
- };
13
- const inRepoDeps = [];
14
- const allThirdPartyDeps = {};
15
- const visited = new Set();
16
- function collectDeps(pkg) {
17
- if (visited.has(pkg.name)) {
18
- return;
19
- }
20
- visited.add(pkg.name);
21
- const deps = getDependencies(pkg.packageJson);
22
- for (const [depName, depVersion] of Object.entries(deps)) {
23
- if (isInRepoDep(depName, monorepoPackages)) {
24
- const depPackage = monorepoPackages.get(depName);
25
- if (depPackage && !visited.has(depName)) {
26
- inRepoDeps.push(depPackage);
27
- collectDeps(depPackage);
28
- }
29
- }
30
- else {
31
- if (!(depName in allThirdPartyDeps)) {
32
- allThirdPartyDeps[depName] = depVersion;
33
- }
34
- }
35
- }
36
- }
37
- collectDeps(packageToBundle);
38
- return {
39
- packageToBundle,
40
- inRepoDeps,
41
- allThirdPartyDeps,
42
- };
43
- }
44
- //# sourceMappingURL=dependency-graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../src/dependency-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGtF,SAAS,eAAe,CAAC,WAAwB;IAC/C,OAAO,WAAW,CAAC,YAAY,IAAI,EAAE,CAAA;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,YAAoB;IAChF,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAA;IACrE,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;IAEtD,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,mBAAmB,CAAC,IAAI;QAC9B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mBAAmB;KACjC,CAAA;IAED,MAAM,UAAU,GAAsB,EAAE,CAAA;IACxC,MAAM,iBAAiB,GAA2B,EAAE,CAAA;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAEjC,SAAS,WAAW,CAAC,GAAoB;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAErB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAE7C,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAChD,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;oBAC3B,WAAW,CAAC,UAAU,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,EAAE,CAAC;oBACpC,iBAAiB,CAAC,OAAO,CAAC,GAAG,UAAU,CAAA;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,eAAe,CAAC,CAAA;IAE5B,OAAO;QACL,eAAe;QACf,UAAU;QACV,iBAAiB;KAClB,CAAA;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}