packtory 0.0.5 → 0.0.6

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 (207) hide show
  1. package/artifacts/artifacts-builder.d.ts +7 -7
  2. package/artifacts/artifacts-builder.d.ts.map +1 -1
  3. package/artifacts/artifacts-builder.js +22 -25
  4. package/artifacts/artifacts-builder.js.map +1 -1
  5. package/bundle-emitter/emitter.d.ts +30 -0
  6. package/bundle-emitter/emitter.d.ts.map +1 -0
  7. package/bundle-emitter/emitter.js +35 -0
  8. package/bundle-emitter/emitter.js.map +1 -0
  9. package/{publisher → bundle-emitter}/extract-package-tarball.js +2 -2
  10. package/bundle-emitter/extract-package-tarball.js.map +1 -0
  11. package/{publisher → bundle-emitter}/registry-client.d.ts +5 -5
  12. package/bundle-emitter/registry-client.d.ts.map +1 -0
  13. package/{publisher → bundle-emitter}/registry-client.js +13 -10
  14. package/bundle-emitter/registry-client.js.map +1 -0
  15. package/checks/check-runner.js +13 -0
  16. package/checks/check-runner.js.map +1 -0
  17. package/checks/rules/no-duplicated-files.js +29 -0
  18. package/checks/rules/no-duplicated-files.js.map +1 -0
  19. package/config/additional-files.d.ts +6 -12
  20. package/config/additional-files.d.ts.map +1 -1
  21. package/config/additional-files.js +4 -5
  22. package/config/additional-files.js.map +1 -1
  23. package/config/base-validations.js +2 -2
  24. package/config/base-validations.js.map +1 -1
  25. package/config/config.d.ts +671 -468
  26. package/config/config.d.ts.map +1 -1
  27. package/config/config.js +55 -52
  28. package/config/config.js.map +1 -1
  29. package/config/entry-point.d.ts +6 -12
  30. package/config/entry-point.d.ts.map +1 -1
  31. package/config/entry-point.js +5 -6
  32. package/config/entry-point.js.map +1 -1
  33. package/config/package-json.d.ts +10 -38
  34. package/config/package-json.d.ts.map +1 -1
  35. package/config/package-json.js +9 -20
  36. package/config/package-json.js.map +1 -1
  37. package/config/registry-settings.d.ts +6 -12
  38. package/config/registry-settings.d.ts.map +1 -1
  39. package/config/registry-settings.js +5 -6
  40. package/config/registry-settings.js.map +1 -1
  41. package/config/validation.d.ts +15 -5
  42. package/config/validation.d.ts.map +1 -1
  43. package/config/validation.js +32 -9
  44. package/config/validation.js.map +1 -1
  45. package/config/versioning-settings.d.ts +9 -22
  46. package/config/versioning-settings.d.ts.map +1 -1
  47. package/config/versioning-settings.js +10 -13
  48. package/config/versioning-settings.js.map +1 -1
  49. package/dependency-scanner/dependency-graph.d.ts +15 -13
  50. package/dependency-scanner/dependency-graph.d.ts.map +1 -1
  51. package/dependency-scanner/dependency-graph.js +31 -12
  52. package/dependency-scanner/dependency-graph.js.map +1 -1
  53. package/dependency-scanner/external-dependencies.d.ts +7 -0
  54. package/dependency-scanner/external-dependencies.d.ts.map +1 -0
  55. package/dependency-scanner/external-dependencies.js +18 -0
  56. package/dependency-scanner/external-dependencies.js.map +1 -0
  57. package/dependency-scanner/scanner.d.ts +4 -19
  58. package/dependency-scanner/scanner.d.ts.map +1 -1
  59. package/dependency-scanner/scanner.js +8 -67
  60. package/dependency-scanner/scanner.js.map +1 -1
  61. package/dependency-scanner/source-file-references.js +2 -1
  62. package/dependency-scanner/source-file-references.js.map +1 -1
  63. package/dependency-scanner/source-map-file-locator.d.ts +2 -2
  64. package/dependency-scanner/source-map-file-locator.d.ts.map +1 -1
  65. package/dependency-scanner/typescript-file-host.d.ts.map +1 -1
  66. package/dependency-scanner/typescript-file-host.js +1 -2
  67. package/dependency-scanner/typescript-file-host.js.map +1 -1
  68. package/dependency-scanner/typescript-project-analyzer.d.ts +6 -5
  69. package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
  70. package/dependency-scanner/typescript-project-analyzer.js +3 -0
  71. package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
  72. package/directed-graph/graph.d.ts +12 -10
  73. package/directed-graph/graph.d.ts.map +1 -1
  74. package/directed-graph/graph.js +23 -11
  75. package/directed-graph/graph.js.map +1 -1
  76. package/{file-description → file-manager}/compare.js +2 -2
  77. package/file-manager/compare.js.map +1 -0
  78. package/file-manager/equal.js.map +1 -0
  79. package/file-manager/file-description.d.ts +13 -0
  80. package/file-manager/file-description.d.ts.map +1 -0
  81. package/file-manager/file-manager.d.ts +19 -0
  82. package/file-manager/file-manager.d.ts.map +1 -0
  83. package/{artifacts → file-manager}/file-manager.js +15 -4
  84. package/file-manager/file-manager.js.map +1 -0
  85. package/{file-description → file-manager}/permissions.js +1 -0
  86. package/file-manager/permissions.js.map +1 -0
  87. package/{file-description → file-manager}/sort.js +1 -1
  88. package/file-manager/sort.js.map +1 -0
  89. package/linker/linked-bundle.d.ts +14 -0
  90. package/linker/linked-bundle.d.ts.map +1 -0
  91. package/linker/linker.d.ts +12 -0
  92. package/linker/linker.d.ts.map +1 -0
  93. package/linker/linker.js +25 -0
  94. package/linker/linker.js.map +1 -0
  95. package/linker/resource-graph.js +30 -0
  96. package/linker/resource-graph.js.map +1 -0
  97. package/linker/source-modifier/import-paths.js +36 -0
  98. package/linker/source-modifier/import-paths.js.map +1 -0
  99. package/linker/substitute-bundles.js +75 -0
  100. package/linker/substitute-bundles.js.map +1 -0
  101. package/linker/substituted-resource-graph.js +57 -0
  102. package/linker/substituted-resource-graph.js.map +1 -0
  103. package/list/unique-list.js +5 -0
  104. package/list/unique-list.js.map +1 -0
  105. package/package.json +15 -13
  106. package/packages/packtory/packtory.entry-point.d.ts +3 -3
  107. package/packages/packtory/packtory.entry-point.d.ts.map +1 -1
  108. package/packages/packtory/packtory.entry-point.js +41 -18
  109. package/packages/packtory/packtory.entry-point.js.map +1 -1
  110. package/packtory/map-config.d.ts +25 -0
  111. package/packtory/map-config.d.ts.map +1 -0
  112. package/packtory/map-config.js +29 -13
  113. package/packtory/map-config.js.map +1 -1
  114. package/packtory/package-processor.d.ts +32 -0
  115. package/packtory/package-processor.d.ts.map +1 -0
  116. package/packtory/package-processor.js +86 -0
  117. package/packtory/package-processor.js.map +1 -0
  118. package/packtory/packtory.d.ts +25 -7
  119. package/packtory/packtory.d.ts.map +1 -1
  120. package/packtory/packtory.js +119 -17
  121. package/packtory/packtory.js.map +1 -1
  122. package/packtory/scheduler.d.ts +36 -7
  123. package/packtory/scheduler.d.ts.map +1 -1
  124. package/packtory/scheduler.js +39 -25
  125. package/packtory/scheduler.js.map +1 -1
  126. package/progress/progress-broadcaster.d.ts +8 -0
  127. package/progress/progress-broadcaster.d.ts.map +1 -1
  128. package/progress/progress-broadcaster.js +1 -0
  129. package/progress/progress-broadcaster.js.map +1 -1
  130. package/resource-resolver/content.js +35 -0
  131. package/resource-resolver/content.js.map +1 -0
  132. package/resource-resolver/resolved-bundle.d.ts +21 -0
  133. package/resource-resolver/resolved-bundle.d.ts.map +1 -0
  134. package/resource-resolver/resource-resolve-options.d.ts +13 -0
  135. package/resource-resolver/resource-resolve-options.d.ts.map +1 -0
  136. package/resource-resolver/resource-resolver.d.ts +13 -0
  137. package/resource-resolver/resource-resolver.d.ts.map +1 -0
  138. package/resource-resolver/resource-resolver.js +66 -0
  139. package/resource-resolver/resource-resolver.js.map +1 -0
  140. package/tar/tarball-builder.d.ts +2 -2
  141. package/tar/tarball-builder.d.ts.map +1 -1
  142. package/tar/tarball-builder.js +1 -0
  143. package/tar/tarball-builder.js.map +1 -1
  144. package/version-manager/manager.d.ts +7 -0
  145. package/version-manager/manager.d.ts.map +1 -0
  146. package/version-manager/manager.js +44 -0
  147. package/version-manager/manager.js.map +1 -0
  148. package/version-manager/manifest/builder.d.ts +5 -0
  149. package/version-manager/manifest/builder.d.ts.map +1 -0
  150. package/version-manager/manifest/builder.js +13 -0
  151. package/version-manager/manifest/builder.js.map +1 -0
  152. package/{package-json.js → version-manager/manifest/serialize.js} +3 -2
  153. package/version-manager/manifest/serialize.js.map +1 -0
  154. package/version-manager/versioned-bundle.d.ts +28 -0
  155. package/version-manager/versioned-bundle.d.ts.map +1 -0
  156. package/version-manager/versioned-bundle.js +79 -0
  157. package/version-manager/versioned-bundle.js.map +1 -0
  158. package/LICENSE +0 -21
  159. package/artifacts/file-manager.d.ts +0 -17
  160. package/artifacts/file-manager.d.ts.map +0 -1
  161. package/artifacts/file-manager.js.map +0 -1
  162. package/bundler/bundle-build-options.d.ts +0 -19
  163. package/bundler/bundle-build-options.d.ts.map +0 -1
  164. package/bundler/bundle-build-options.js +0 -25
  165. package/bundler/bundle-build-options.js.map +0 -1
  166. package/bundler/bundle-description.d.ts +0 -27
  167. package/bundler/bundle-description.d.ts.map +0 -1
  168. package/bundler/bundler.d.ts +0 -11
  169. package/bundler/bundler.d.ts.map +0 -1
  170. package/bundler/bundler.js +0 -101
  171. package/bundler/bundler.js.map +0 -1
  172. package/bundler/content.js +0 -53
  173. package/bundler/content.js.map +0 -1
  174. package/bundler/substitute-bundles.js +0 -73
  175. package/bundler/substitute-bundles.js.map +0 -1
  176. package/config/base-validations.d.ts +0 -5
  177. package/config/base-validations.d.ts.map +0 -1
  178. package/file-description/compare.js.map +0 -1
  179. package/file-description/equal.js.map +0 -1
  180. package/file-description/file-description.d.ts +0 -6
  181. package/file-description/file-description.d.ts.map +0 -1
  182. package/file-description/permissions.js.map +0 -1
  183. package/file-description/sort.js.map +0 -1
  184. package/package-json.js.map +0 -1
  185. package/packages/bundler/bundler.entry-point.js +0 -21
  186. package/packages/bundler/bundler.entry-point.js.map +0 -1
  187. package/publisher/extract-package-tarball.js.map +0 -1
  188. package/publisher/publisher.d.ts +0 -39
  189. package/publisher/publisher.d.ts.map +0 -1
  190. package/publisher/publisher.js +0 -73
  191. package/publisher/publisher.js.map +0 -1
  192. package/publisher/registry-client.d.ts.map +0 -1
  193. package/publisher/registry-client.js.map +0 -1
  194. package/publisher/version.js +0 -35
  195. package/publisher/version.js.map +0 -1
  196. package/readme.md +0 -38
  197. package/source-modifier/import-paths.js +0 -17
  198. package/source-modifier/import-paths.js.map +0 -1
  199. package/validation/capitalize.js +0 -7
  200. package/validation/capitalize.js.map +0 -1
  201. package/validation/formatting/ast.js +0 -113
  202. package/validation/formatting/ast.js.map +0 -1
  203. package/validation/formatting.js +0 -98
  204. package/validation/formatting.js.map +0 -1
  205. package/validation/validate.js +0 -17
  206. package/validation/validate.js.map +0 -1
  207. /package/{file-description → file-manager}/equal.js +0 -0
@@ -1,32 +1,55 @@
1
1
  import fs from 'node:fs';
2
- import npmFetch from 'npm-registry-fetch';
2
+ import { RealFileSystemHost } from '@ts-morph/common';
3
3
  import { publish } from 'libnpmpublish';
4
- import { createFileManager } from '../../artifacts/file-manager.js';
5
- import { createPublisher } from '../../publisher/publisher.js';
6
- import { bundler } from '../bundler/bundler.entry-point.js';
7
- import { createRegistryClient } from '../../publisher/registry-client.js';
8
- import { createArtifactsBuilder } from '../../artifacts/artifacts-builder.js';
9
- import { createProgressBroadcaster } from '../../progress/progress-broadcaster.js';
10
- import { createScheduler } from '../../packtory/scheduler.js';
11
- import { createPacktory } from '../../packtory/packtory.js';
12
- import { createTarballBuilder } from '../../tar/tarball-builder.js';
4
+ import npmFetch from 'npm-registry-fetch';
5
+ import { Project } from 'ts-morph';
6
+ import { createArtifactsBuilder } from "../../artifacts/artifacts-builder.js";
7
+ import { createBundleEmitter } from "../../bundle-emitter/emitter.js";
8
+ import { createDependencyScanner } from "../../dependency-scanner/scanner.js";
9
+ import { getReferencedSourceFiles } from "../../dependency-scanner/source-file-references.js";
10
+ import { createSourceMapFileLocator } from "../../dependency-scanner/source-map-file-locator.js";
11
+ import { createFileSystemAdapters } from "../../dependency-scanner/typescript-file-host.js";
12
+ import { createTypescriptProjectAnalyzer } from "../../dependency-scanner/typescript-project-analyzer.js";
13
+ import { createFileManager } from "../../file-manager/file-manager.js";
14
+ import { createBundleLinker } from "../../linker/linker.js";
15
+ import { createPackageProcessor } from "../../packtory/package-processor.js";
16
+ import { createPacktory } from "../../packtory/packtory.js";
17
+ import { createScheduler } from "../../packtory/scheduler.js";
18
+ import { createProgressBroadcaster } from "../../progress/progress-broadcaster.js";
19
+ import { createRegistryClient } from "../../bundle-emitter/registry-client.js";
20
+ import { createResourceResolver } from "../../resource-resolver/resource-resolver.js";
21
+ import { createTarballBuilder } from "../../tar/tarball-builder.js";
22
+ import { createVersionManager } from "../../version-manager/manager.js";
13
23
  const fileManager = createFileManager({ hostFileSystem: fs.promises });
24
+ const sourceMapFileLocator = createSourceMapFileLocator({ fileManager });
25
+ const fileSystemAdapters = createFileSystemAdapters({ fileSystemHost: new RealFileSystemHost() });
26
+ const typescriptProjectAnalyzer = createTypescriptProjectAnalyzer({
27
+ Project,
28
+ getReferencedSourceFiles,
29
+ fileSystemAdapters
30
+ });
31
+ const dependencyScanner = createDependencyScanner({ sourceMapFileLocator, typescriptProjectAnalyzer });
14
32
  const registryClient = createRegistryClient({ npmFetch, publish });
15
33
  const artifactsBuilder = createArtifactsBuilder({ fileManager, tarballBuilder: createTarballBuilder() });
16
34
  const progressBroadcaster = createProgressBroadcaster();
17
- const publisher = createPublisher({
18
- progressBroadcaster: progressBroadcaster.provider,
19
- bundler,
20
- registryClient,
21
- artifactsBuilder
22
- });
23
35
  const scheduler = createScheduler({
24
36
  progressBroadcastProvider: progressBroadcaster.provider
25
37
  });
38
+ const versionManager = createVersionManager();
39
+ const bundleEmitter = createBundleEmitter({ registryClient, artifactsBuilder });
40
+ const linker = createBundleLinker();
41
+ const resourceResolver = createResourceResolver({ fileManager, dependencyScanner });
42
+ const packageProcessor = createPackageProcessor({
43
+ progressBroadcaster: progressBroadcaster.provider,
44
+ versionManager,
45
+ bundleEmitter,
46
+ linker,
47
+ resourceResolver
48
+ });
26
49
  const packtory = createPacktory({
27
50
  scheduler,
28
- publisher
51
+ packageProcessor
29
52
  });
30
- export const { buildAndPublishAll } = packtory;
53
+ export const { buildAndPublishAll, resolveAndLinkAll } = packtory;
31
54
  export const progressBroadcastConsumer = progressBroadcaster.consumer;
32
55
  //# sourceMappingURL=packtory.entry-point.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packtory.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/packtory/packtory.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACnE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACzG,MAAM,mBAAmB,GAAG,yBAAyB,EAAE,CAAC;AACxD,MAAM,SAAS,GAAG,eAAe,CAAC;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC,QAAQ;IACjD,OAAO;IACP,cAAc;IACd,gBAAgB;CACnB,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,eAAe,CAAC;IAC9B,yBAAyB,EAAE,mBAAmB,CAAC,QAAQ;CAC1D,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,SAAS;IACT,SAAS;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,QAAQ,CAAC;AAC/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC,QAAQ,CAAC"}
1
+ {"version":3,"file":"packtory.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/packtory/packtory.entry-point.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { PackageConfig, PacktoryConfig, PacktoryConfigWithoutRegistry } from '../config/config.ts';
2
+ import type { RegistrySettings } from '../config/registry-settings.ts';
3
+ import type { VersioningSettings } from '../config/versioning-settings.ts';
4
+ import type { ResourceResolveOptions } from '../resource-resolver/resource-resolve-options.ts';
5
+ import type { BuildVersionedBundleOptions, VersionedBundleWithManifest } from '../version-manager/versioned-bundle.ts';
6
+ import type { BundleSubstitutionSource } from '../linker/linked-bundle.ts';
7
+ type ManifestOptionsSubset = Pick<BuildVersionedBundleOptions, 'additionalPackageJsonAttributes' | 'mainPackageJson'>;
8
+ type SharedPackageOptions<TBundle extends {
9
+ name: string;
10
+ }> = ManifestOptionsSubset & ResourceResolveOptions & {
11
+ readonly bundleDependencies: readonly TBundle[];
12
+ readonly bundlePeerDependencies: readonly TBundle[];
13
+ };
14
+ export type BuildOptions = SharedPackageOptions<VersionedBundleWithManifest> & {
15
+ readonly version: string;
16
+ };
17
+ export type BuildAndPublishOptions = SharedPackageOptions<VersionedBundleWithManifest> & {
18
+ readonly registrySettings: RegistrySettings;
19
+ readonly versioning: VersioningSettings;
20
+ };
21
+ export type ResolveAndLinkOptions = SharedPackageOptions<BundleSubstitutionSource>;
22
+ export declare function configToBuildAndPublishOptions(packageName: string, packageConfigs: Map<string, PackageConfig>, packtoryConfig: PacktoryConfig, existingBundles: readonly VersionedBundleWithManifest[]): BuildAndPublishOptions;
23
+ export declare function configToResolveAndLinkOptions(packageName: string, packageConfigs: Map<string, PackageConfig>, packtoryConfig: PacktoryConfigWithoutRegistry, existingBundles: readonly BundleSubstitutionSource[]): ResolveAndLinkOptions;
24
+ export {};
25
+ //# sourceMappingURL=map-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-config.d.ts","sourceRoot":"","sources":["../../../../source/packtory/map-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAGxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,KAAK,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACvH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E,KAAK,qBAAqB,GAAG,IAAI,CAAC,2BAA2B,EAAE,iCAAiC,GAAG,iBAAiB,CAAC,CAAC;AAEtH,KAAK,oBAAoB,CAAC,OAAO,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,IAAI,qBAAqB,GAC/E,sBAAsB,GAAG;IACrB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,OAAO,EAAE,CAAC;IAChD,QAAQ,CAAC,sBAAsB,EAAE,SAAS,OAAO,EAAE,CAAC;CACvD,CAAC;AAEN,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,2BAA2B,CAAC,GAAG;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,2BAA2B,CAAC,GAAG;IACrF,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;AAgGnF,wBAAgB,8BAA8B,CAC1C,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC1C,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,SAAS,2BAA2B,EAAE,GACxD,sBAAsB,CAaxB;AAED,wBAAgB,6BAA6B,CACzC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC1C,cAAc,EAAE,6BAA6B,EAC7C,eAAe,EAAE,SAAS,wBAAwB,EAAE,GACrD,qBAAqB,CAIvB"}
@@ -1,9 +1,9 @@
1
1
  import { map } from 'effect/ReadonlyArray';
2
- import { normalizeAdditionalFile, normalizeEntryPoint } from './normalize-paths.js';
2
+ import { normalizeAdditionalFile, normalizeEntryPoint } from "./normalize-paths.js";
3
3
  function dependencyNamesToBundles(dependencyNames, bundles) {
4
4
  return dependencyNames.map((dependencyName) => {
5
5
  const matchingBundle = bundles.find((bundle) => {
6
- return bundle.packageJson.name === dependencyName;
6
+ return bundle.name === dependencyName;
7
7
  });
8
8
  if (matchingBundle === undefined) {
9
9
  throw new Error(`Dependent bundle "${dependencyName}" not found`);
@@ -21,35 +21,51 @@ function mergeAdditionalFiles(firstFiles = [], secondFiles = []) {
21
21
  }
22
22
  return Array.from(filesWithUniqueTargetPath.values());
23
23
  }
24
- export function configToBuildAndPublishOptions(packageName, packageConfigs, packtoryConfig, existingBundles) {
24
+ // eslint-disable-next-line complexity -- needs to be refactored
25
+ function preparePackageOptions(packageName, packageConfigs, packtoryConfig, existingBundles) {
25
26
  const packageConfig = packageConfigs.get(packageName);
26
27
  if (packageConfig === undefined) {
27
28
  throw new Error(`Config for package "${packageName}" is missing`);
28
29
  }
29
- const { sourcesFolder: sourcesFolderFromPackageConfig, mainPackageJson: mainPackageJsonFromPackageConfig, bundleDependencies = [], bundlePeerDependencies = [], entryPoints, additionalFiles, includeSourceMapFiles = packtoryConfig.commonPackageSettings?.includeSourceMapFiles, additionalPackageJsonAttributes = {}, ...remainingPackageConfig } = packageConfig;
30
+ const { sourcesFolder: sourcesFolderFromPackageConfig, mainPackageJson: mainPackageJsonFromPackageConfig, bundleDependencies = [], bundlePeerDependencies = [], entryPoints, additionalFiles, includeSourceMapFiles = packtoryConfig.commonPackageSettings?.includeSourceMapFiles ?? false, additionalPackageJsonAttributes = {}, versioning = { automatic: true }, name } = packageConfig;
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
30
32
  const mainPackageJson = (packtoryConfig.commonPackageSettings?.mainPackageJson ??
31
33
  mainPackageJsonFromPackageConfig);
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
32
35
  const sourcesFolder = (packtoryConfig.commonPackageSettings?.sourcesFolder ??
33
36
  sourcesFolderFromPackageConfig);
34
37
  const uniqueAdditionalFiles = mergeAdditionalFiles(packtoryConfig.commonPackageSettings?.additionalFiles, additionalFiles);
35
- return {
36
- ...remainingPackageConfig,
37
- additionalPackageJsonAttributes: {
38
- ...packtoryConfig.commonPackageSettings?.additionalPackageJsonAttributes,
39
- ...additionalPackageJsonAttributes
40
- },
41
- registrySettings: packtoryConfig.registrySettings,
42
- includeSourceMapFiles,
38
+ const sharedOptions = {
39
+ name,
43
40
  entryPoints: map(entryPoints, (entryPoint) => {
44
41
  return normalizeEntryPoint(entryPoint, sourcesFolder);
45
42
  }),
43
+ sourcesFolder,
44
+ includeSourceMapFiles,
46
45
  additionalFiles: uniqueAdditionalFiles.map((additionalFile) => {
47
46
  return normalizeAdditionalFile(additionalFile, sourcesFolder);
48
47
  }),
48
+ moduleResolution: mainPackageJson.type ?? 'module',
49
49
  mainPackageJson,
50
- sourcesFolder,
50
+ additionalPackageJsonAttributes: {
51
+ ...packtoryConfig.commonPackageSettings?.additionalPackageJsonAttributes,
52
+ ...additionalPackageJsonAttributes
53
+ },
51
54
  bundleDependencies: dependencyNamesToBundles(bundleDependencies, existingBundles),
52
55
  bundlePeerDependencies: dependencyNamesToBundles(bundlePeerDependencies, existingBundles)
53
56
  };
57
+ return { sharedOptions, versioning };
58
+ }
59
+ export function configToBuildAndPublishOptions(packageName, packageConfigs, packtoryConfig, existingBundles) {
60
+ const { sharedOptions, versioning } = preparePackageOptions(packageName, packageConfigs, packtoryConfig, existingBundles);
61
+ return {
62
+ ...sharedOptions,
63
+ versioning,
64
+ registrySettings: packtoryConfig.registrySettings
65
+ };
66
+ }
67
+ export function configToResolveAndLinkOptions(packageName, packageConfigs, packtoryConfig, existingBundles) {
68
+ const { sharedOptions } = preparePackageOptions(packageName, packageConfigs, packtoryConfig, existingBundles);
69
+ return sharedOptions;
54
70
  }
55
71
  //# sourceMappingURL=map-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-config.js","sourceRoot":"","sources":["../../../../source/packtory/map-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-config.js","sourceRoot":"","sources":["../../../../source/packtory/map-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ProgressBroadcastProvider } from '../progress/progress-broadcaster.ts';
2
+ import type { BundleLinker } from '../linker/linker.ts';
3
+ import type { ResourceResolver } from '../resource-resolver/resource-resolver.ts';
4
+ import type { BundleEmitter } from '../bundle-emitter/emitter.ts';
5
+ import type { VersionManager } from '../version-manager/manager.ts';
6
+ import type { VersionedBundleWithManifest } from '../version-manager/versioned-bundle.ts';
7
+ import type { LinkedBundle } from '../linker/linked-bundle.ts';
8
+ import type { BuildAndPublishOptions, BuildOptions, ResolveAndLinkOptions } from './map-config.ts';
9
+ export type BuildAndPublishResult = {
10
+ readonly status: 'already-published' | 'initial-version' | 'new-version';
11
+ readonly bundle: VersionedBundleWithManifest;
12
+ };
13
+ export type DetermineVersionAndPublishOptions = {
14
+ readonly linkedBundle: LinkedBundle;
15
+ readonly buildOptions: BuildAndPublishOptions;
16
+ };
17
+ export type PackageProcessor = {
18
+ resolveAndLink: (options: ResolveAndLinkOptions) => Promise<LinkedBundle>;
19
+ build: (options: BuildOptions) => Promise<VersionedBundleWithManifest>;
20
+ buildAndPublish: (options: DetermineVersionAndPublishOptions) => Promise<BuildAndPublishResult>;
21
+ tryBuildAndPublish: (options: DetermineVersionAndPublishOptions) => Promise<BuildAndPublishResult>;
22
+ };
23
+ type PackageProcessorDependencies = {
24
+ readonly progressBroadcaster: ProgressBroadcastProvider;
25
+ readonly versionManager: VersionManager;
26
+ readonly bundleEmitter: BundleEmitter;
27
+ readonly linker: BundleLinker;
28
+ readonly resourceResolver: ResourceResolver;
29
+ };
30
+ export declare function createPackageProcessor(dependencies: PackageProcessorDependencies): PackageProcessor;
31
+ export {};
32
+ //# sourceMappingURL=package-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-processor.d.ts","sourceRoot":"","sources":["../../../../source/packtory/package-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,aAAa,CAAC;IACzE,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC5C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,cAAc,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACvE,eAAe,EAAE,CAAC,OAAO,EAAE,iCAAiC,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChG,kBAAkB,EAAE,CAAC,OAAO,EAAE,iCAAiC,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACtG,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC/C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,4BAA4B,GAAG,gBAAgB,CA6GnG"}
@@ -0,0 +1,86 @@
1
+ export function createPackageProcessor(dependencies) {
2
+ const { progressBroadcaster, versionManager, bundleEmitter, linker, resourceResolver } = dependencies;
3
+ async function resolveAndLink(options) {
4
+ progressBroadcaster.emit('resolving', { packageName: options.name });
5
+ const resolvedBundle = await resourceResolver.resolve(options);
6
+ progressBroadcaster.emit('linking', { packageName: options.name });
7
+ const linkedBundle = await linker.linkBundle({
8
+ bundle: resolvedBundle,
9
+ bundleDependencies: [...options.bundleDependencies, ...options.bundlePeerDependencies]
10
+ });
11
+ return linkedBundle;
12
+ }
13
+ async function buildVersionedBundle(linkedBundle, options) {
14
+ const currentVersion = await bundleEmitter.determineCurrentVersion({
15
+ name: linkedBundle.name,
16
+ registrySettings: options.registrySettings,
17
+ versioning: options.versioning
18
+ });
19
+ const version = currentVersion.unwrapOr('0.0.0');
20
+ progressBroadcaster.emit('building', { packageName: options.name, version });
21
+ const versionedBundle = versionManager.addVersion({ bundle: linkedBundle, ...options, version });
22
+ return { versionedBundle, currentVersion, version };
23
+ }
24
+ async function tryBuildAndPublish(options) {
25
+ const buildContext = await buildVersionedBundle(options.linkedBundle, options.buildOptions);
26
+ const result = await bundleEmitter.checkBundleAlreadyPublished({
27
+ bundle: buildContext.versionedBundle,
28
+ registrySettings: options.buildOptions.registrySettings
29
+ });
30
+ if (result.alreadyPublishedAsLatest) {
31
+ return { bundle: buildContext.versionedBundle, status: 'already-published' };
32
+ }
33
+ progressBroadcaster.emit('rebuilding', {
34
+ packageName: options.buildOptions.name,
35
+ version: buildContext.version
36
+ });
37
+ const newVersionedBundle = versionManager.increaseVersion(buildContext.versionedBundle);
38
+ return {
39
+ bundle: newVersionedBundle,
40
+ status: buildContext.currentVersion.isJust ? 'new-version' : 'initial-version'
41
+ };
42
+ }
43
+ return {
44
+ resolveAndLink,
45
+ async build(options) {
46
+ const { bundleDependencies, bundlePeerDependencies, entryPoints, includeSourceMapFiles, additionalFiles, moduleResolution, name, sourcesFolder } = options;
47
+ const linkedBundle = await resolveAndLink({
48
+ name,
49
+ sourcesFolder,
50
+ entryPoints,
51
+ includeSourceMapFiles,
52
+ additionalFiles,
53
+ moduleResolution,
54
+ mainPackageJson: options.mainPackageJson,
55
+ additionalPackageJsonAttributes: options.additionalPackageJsonAttributes,
56
+ bundleDependencies,
57
+ bundlePeerDependencies
58
+ });
59
+ return versionManager.addVersion({
60
+ bundle: linkedBundle,
61
+ version: options.version,
62
+ mainPackageJson: options.mainPackageJson,
63
+ bundleDependencies: options.bundleDependencies,
64
+ bundlePeerDependencies: options.bundlePeerDependencies,
65
+ additionalPackageJsonAttributes: options.additionalPackageJsonAttributes
66
+ });
67
+ },
68
+ tryBuildAndPublish,
69
+ async buildAndPublish(options) {
70
+ const result = await tryBuildAndPublish(options);
71
+ if (result.status === 'already-published') {
72
+ return result;
73
+ }
74
+ progressBroadcaster.emit('publishing', {
75
+ packageName: options.buildOptions.name,
76
+ version: result.bundle.version
77
+ });
78
+ await bundleEmitter.publish({
79
+ bundle: result.bundle,
80
+ registrySettings: options.buildOptions.registrySettings
81
+ });
82
+ return result;
83
+ }
84
+ };
85
+ }
86
+ //# sourceMappingURL=package-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-processor.js","sourceRoot":"","sources":["../../../../source/packtory/package-processor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { Result } from 'true-myth';
2
- import type { PacktoryConfig } from '../config/config.js';
3
- import type { PublishResult, Publisher } from '../publisher/publisher.js';
4
- import type { Scheduler, PartialError } from './scheduler.js';
2
+ import type { PacktoryConfig, PacktoryConfigWithoutRegistry } from '../config/config.ts';
3
+ import type { LinkedBundle } from '../linker/linked-bundle.ts';
4
+ import type { Scheduler, PartialError } from './scheduler.ts';
5
+ import { type ResolveAndLinkOptions } from './map-config.ts';
6
+ import type { BuildAndPublishResult, PackageProcessor } from './package-processor.ts';
5
7
  type Options = {
6
8
  readonly dryRun: boolean;
7
9
  };
@@ -9,15 +11,31 @@ type ConfigError = {
9
11
  type: 'config';
10
12
  issues: readonly string[];
11
13
  };
12
- export type PublishFailure = ConfigError | (PartialError & {
14
+ type CheckError = {
15
+ type: 'checks';
16
+ issues: readonly string[];
17
+ };
18
+ export type PublishFailure = CheckError | ConfigError | (PartialError<BuildAndPublishResult> & {
13
19
  type: 'partial';
14
20
  });
15
- export type PublishAllResult = Result<readonly PublishResult[], PublishFailure>;
21
+ export type PublishAllResult = Result<readonly BuildAndPublishResult[], PublishFailure>;
22
+ export type ResolvedPackage = {
23
+ readonly name: string;
24
+ readonly linkedBundle: LinkedBundle;
25
+ readonly resolveOptions: ResolveAndLinkOptions;
26
+ };
27
+ type PartialErrorResult = {
28
+ type: 'partial';
29
+ error: PartialError<ResolvedPackage>;
30
+ };
31
+ export type ResolveAndLinkFailure = CheckError | ConfigError | PartialErrorResult;
32
+ export type ResolveAndLinkAllResult = Result<readonly ResolvedPackage[], ResolveAndLinkFailure>;
16
33
  export type Packtory = {
17
- buildAndPublishAll(config: PacktoryConfig | unknown, options: Options): Promise<PublishAllResult>;
34
+ buildAndPublishAll: (config: PacktoryConfig | unknown, options: Options) => Promise<PublishAllResult>;
35
+ resolveAndLinkAll: (config: PacktoryConfigWithoutRegistry | unknown) => Promise<ResolveAndLinkAllResult>;
18
36
  };
19
37
  type PacktoryDependencies = {
20
- readonly publisher: Publisher;
38
+ readonly packageProcessor: PackageProcessor;
21
39
  readonly scheduler: Scheduler;
22
40
  };
23
41
  export declare function createPacktory(dependencies: PacktoryDependencies): Packtory;
@@ -1 +1 @@
1
- {"version":3,"file":"packtory.d.ts","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,KAAK,OAAO,GAAG;IACX,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,aAAa,EAAE,EAAE,cAAc,CAAC,CAAC;AAEhF,MAAM,MAAM,QAAQ,GAAG;IACnB,kBAAkB,CAEd,MAAM,EAAE,cAAc,GAAG,OAAO,EAChC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC,CAAC;AACF,wBAAgB,cAAc,CAAC,YAAY,EAAE,oBAAoB,GAAG,QAAQ,CA8B3E"}
1
+ {"version":3,"file":"packtory.d.ts","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,6BAA6B,EAAiB,MAAM,qBAAqB,CAAC;AAOxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAGH,KAAK,qBAAqB,EAE7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACR,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,KAAK,OAAO,GAAG;IACX,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,KAAK,UAAU,GAAG;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACpH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,qBAAqB,EAAE,EAAE,cAAc,CAAC,CAAC;AAExF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;CAClD,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAClF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,SAAS,eAAe,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAEhG,MAAM,MAAM,QAAQ,GAAG;IACnB,kBAAkB,EAAE,CAEhB,MAAM,EAAE,cAAc,GAAG,OAAO,EAChC,OAAO,EAAE,OAAO,KACf,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/B,iBAAiB,EAAE,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC5G,CAAC;AAEF,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC,CAAC;AACF,wBAAgB,cAAc,CAAC,YAAY,EAAE,oBAAoB,GAAG,QAAQ,CAoL3E"}
@@ -1,30 +1,132 @@
1
1
  import { Result } from 'true-myth';
2
- import { validateConfig } from '../config/validation.js';
2
+ import { validateConfig, validateConfigWithoutRegistry } from "../config/validation.js";
3
+ import { runChecks } from "../checks/check-runner.js";
4
+ import { configToBuildAndPublishOptions, configToResolveAndLinkOptions } from "./map-config.js";
3
5
  export function createPacktory(dependencies) {
4
- const { publisher, scheduler } = dependencies;
5
- return {
6
- async buildAndPublishAll(config, options) {
7
- const result = validateConfig(config);
8
- if (result.isErr) {
9
- return Result.err({
10
- type: 'config',
11
- issues: result.error
12
- });
13
- }
14
- const runResult = await scheduler.runForEachScheduledPackage(result.value, async (buildOptions) => {
6
+ const { packageProcessor, scheduler } = dependencies;
7
+ async function resolveAndLinkAllValidated(config) {
8
+ const runResult = await scheduler.runForEachScheduledPackage({
9
+ config,
10
+ createOptions: (context) => {
11
+ const { packageName, existing, config: validatedConfig } = context;
12
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
13
+ const sanitizedConfig = validatedConfig.packtoryConfig;
14
+ return configToResolveAndLinkOptions(packageName, validatedConfig.packageConfigs, sanitizedConfig, existing);
15
+ },
16
+ execute: async (resolveOptions) => {
17
+ const linkedBundle = await packageProcessor.resolveAndLink(resolveOptions);
18
+ return {
19
+ name: resolveOptions.name,
20
+ linkedBundle,
21
+ resolveOptions
22
+ };
23
+ },
24
+ selectNext: (params) => {
25
+ const { result } = params;
26
+ return result.linkedBundle;
27
+ },
28
+ emitScheduledEvents: true
29
+ });
30
+ if (runResult.isErr) {
31
+ return Result.err({ type: 'partial', error: runResult.error });
32
+ }
33
+ const resolvedPackages = runResult.value;
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
35
+ const sanitizedConfig = config.packtoryConfig;
36
+ const checkIssues = runChecks({
37
+ settings: sanitizedConfig.checks ?? {},
38
+ bundles: resolvedPackages.map((resolvedPackage) => {
39
+ return resolvedPackage.linkedBundle;
40
+ })
41
+ });
42
+ if (checkIssues.length > 0) {
43
+ return Result.err({ type: 'checks', issues: checkIssues });
44
+ }
45
+ return Result.ok(resolvedPackages);
46
+ }
47
+ async function determineVersionAndPublishAll(config, resolvedPackages, options) {
48
+ const linkedBundlesByName = new Map(resolvedPackages.map((resolvedPackage) => {
49
+ return [resolvedPackage.name, resolvedPackage.linkedBundle];
50
+ }));
51
+ return scheduler.runForEachScheduledPackage({
52
+ config,
53
+ createOptions: (context) => {
54
+ const { packageName, existing, config: validatedConfig } = context;
55
+ return configToBuildAndPublishOptions(packageName, validatedConfig.packageConfigs, validatedConfig.packtoryConfig, existing);
56
+ },
57
+ execute: async (buildOptions) => {
58
+ const linkedBundle = linkedBundlesByName.get(buildOptions.name);
59
+ if (linkedBundle === undefined) {
60
+ throw new Error(`Linked bundle for package "${buildOptions.name}" is missing`);
61
+ }
62
+ const processorOptions = {
63
+ linkedBundle,
64
+ buildOptions
65
+ };
15
66
  if (options.dryRun) {
16
- return publisher.tryBuildAndPublish(buildOptions);
67
+ return packageProcessor.tryBuildAndPublish(processorOptions);
17
68
  }
18
- return publisher.buildAndPublish(buildOptions);
69
+ return packageProcessor.buildAndPublish(processorOptions);
70
+ },
71
+ selectNext: (params) => {
72
+ return params.result.bundle;
73
+ },
74
+ emitScheduledEvents: false,
75
+ createProgressEvent: (params) => {
76
+ const { result } = params;
77
+ return {
78
+ version: result.bundle.packageJson.version,
79
+ status: result.status
80
+ };
81
+ }
82
+ });
83
+ }
84
+ async function resolveAndLinkAllPublic(config) {
85
+ const validation = validateConfigWithoutRegistry(config);
86
+ if (validation.isErr) {
87
+ return Result.err({ type: 'config', issues: validation.error });
88
+ }
89
+ const result = await resolveAndLinkAllValidated(validation.value);
90
+ if (result.isErr) {
91
+ if (result.error.type === 'partial') {
92
+ return Result.err({ type: 'partial', error: result.error.error });
93
+ }
94
+ return Result.err(result.error);
95
+ }
96
+ return Result.ok(result.value);
97
+ }
98
+ // eslint-disable-next-line max-statements -- needs to be refactored
99
+ async function buildAndPublishAllPublic(config, options) {
100
+ const validation = validateConfig(config);
101
+ if (validation.isErr) {
102
+ return Result.err({
103
+ type: 'config',
104
+ issues: validation.error
19
105
  });
20
- if (runResult.isErr) {
106
+ }
107
+ const resolvedBundlesResult = await resolveAndLinkAllValidated(validation.value);
108
+ if (resolvedBundlesResult.isErr) {
109
+ if (resolvedBundlesResult.error.type === 'partial') {
21
110
  return Result.err({
22
111
  type: 'partial',
23
- ...runResult.error
112
+ succeeded: [],
113
+ failures: resolvedBundlesResult.error.error.failures
24
114
  });
25
115
  }
26
- return Result.ok(runResult.value);
116
+ return Result.err(resolvedBundlesResult.error);
27
117
  }
118
+ const publishResult = await determineVersionAndPublishAll(validation.value, resolvedBundlesResult.value, options);
119
+ if (publishResult.isErr) {
120
+ return Result.err({
121
+ type: 'partial',
122
+ ...publishResult.error
123
+ });
124
+ }
125
+ return Result.ok(publishResult.value);
126
+ }
127
+ return {
128
+ buildAndPublishAll: buildAndPublishAllPublic,
129
+ resolveAndLinkAll: resolveAndLinkAllPublic
28
130
  };
29
131
  }
30
132
  //# sourceMappingURL=packtory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packtory.js","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA4BzD,MAAM,UAAU,cAAc,CAAC,YAAkC;IAC7D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;IAC9C,OAAO;QACH,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO;YACpC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,MAAM,CAAC,GAAG,CAAC;oBACd,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,MAAM,CAAC,KAAK;iBACvB,CAAC,CAAC;YACP,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;gBAC9F,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACjB,OAAO,SAAS,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,MAAM,CAAC,GAAG,CAAC;oBACd,IAAI,EAAE,SAAS;oBACf,GAAG,SAAS,CAAC,KAAK;iBACrB,CAAC,CAAC;YACP,CAAC;YAED,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"packtory.js","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,47 @@
1
1
  import { Result } from 'true-myth';
2
- import type { ValidConfigResult } from '../config/validation.js';
3
- import type { BuildAndPublishOptions, PublishResult } from '../publisher/publisher.js';
4
- import type { ProgressBroadcastProvider } from '../progress/progress-broadcaster.js';
5
- type PackageOperationCallback = (options: BuildAndPublishOptions) => Promise<PublishResult>;
6
- export type PartialError = {
7
- readonly succeeded: readonly PublishResult[];
2
+ import type { ConfigWithGraph } from '../config/validation.ts';
3
+ import type { ProgressBroadcastProvider } from '../progress/progress-broadcaster.ts';
4
+ import type { PackageConfig } from '../config/config.ts';
5
+ export type PartialError<TResult> = {
6
+ readonly succeeded: readonly TResult[];
8
7
  readonly failures: readonly Error[];
9
8
  };
10
9
  export type Scheduler = {
11
- runForEachScheduledPackage(config: ValidConfigResult, callback: PackageOperationCallback): Promise<Result<readonly PublishResult[], PartialError>>;
10
+ runForEachScheduledPackage: <TResult, TNext, TOptions, TConfig extends {
11
+ packages: readonly PackageConfig[];
12
+ }>(params: RunForEachScheduledPackageParams<TResult, TNext, TOptions, TConfig>) => Promise<Result<readonly TResult[], PartialError<TResult>>>;
12
13
  };
13
14
  type SchedulerDependencies = {
14
15
  readonly progressBroadcastProvider: ProgressBroadcastProvider;
15
16
  };
17
+ type PackageExecutionContext<TNext, TConfig extends {
18
+ packages: readonly PackageConfig[];
19
+ }> = {
20
+ readonly packageName: string;
21
+ readonly existing: readonly TNext[];
22
+ readonly config: ConfigWithGraph<TConfig>;
23
+ };
24
+ type ProgressEventReturnValue = {
25
+ version: string;
26
+ status: 'already-published' | 'initial-version' | 'new-version';
27
+ };
28
+ type RunForEachScheduledPackageParams<TResult, TNext, TOptions, TConfig extends {
29
+ packages: readonly PackageConfig[];
30
+ }> = {
31
+ readonly config: ConfigWithGraph<TConfig>;
32
+ readonly createOptions: (context: PackageExecutionContext<TNext, TConfig>) => TOptions;
33
+ readonly execute: (options: TOptions) => Promise<TResult>;
34
+ readonly selectNext: (params: {
35
+ result: TResult;
36
+ options: TOptions;
37
+ }) => TNext;
38
+ readonly createProgressEvent?: ((params: {
39
+ packageName: string;
40
+ result: TResult;
41
+ options: TOptions;
42
+ }) => ProgressEventReturnValue) | undefined;
43
+ readonly emitScheduledEvents?: boolean;
44
+ };
16
45
  export declare function createScheduler(dependencies: SchedulerDependencies): Scheduler;
17
46
  export {};
18
47
  //# sourceMappingURL=scheduler.d.ts.map