rman 1.3.0 → 2.0.0-beta.3

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 (187) hide show
  1. package/README.md +65 -31
  2. package/builtins/platforms/node/augmentation/rmanrc.augmentation.d.ts +83 -0
  3. package/builtins/platforms/node/augmentation/system-info.augmentation.d.ts +26 -0
  4. package/builtins/platforms/node/augmentation/system-info.augmentation.js +79 -0
  5. package/builtins/platforms/node/commands/ci.command.d.ts +133 -0
  6. package/builtins/platforms/node/commands/ci.command.js +60 -0
  7. package/builtins/platforms/node/commands/clean.command.d.ts +185 -0
  8. package/builtins/platforms/node/commands/clean.command.js +74 -0
  9. package/builtins/platforms/node/index.d.ts +8 -0
  10. package/builtins/platforms/node/index.js +8 -0
  11. package/builtins/platforms/node/node-config.interface.d.ts +76 -0
  12. package/builtins/platforms/node/node-config.interface.js +7 -0
  13. package/builtins/platforms/node/node-manifest.provider.d.ts +68 -0
  14. package/builtins/platforms/node/node-manifest.provider.js +125 -0
  15. package/builtins/platforms/node/node.platform.d.ts +53 -0
  16. package/builtins/platforms/node/node.platform.js +134 -0
  17. package/builtins/platforms/node/services/ci.service.d.ts +47 -0
  18. package/builtins/platforms/node/services/ci.service.js +213 -0
  19. package/builtins/platforms/node/services/clean.service.d.ts +53 -0
  20. package/builtins/platforms/node/services/clean.service.js +237 -0
  21. package/builtins/platforms/node/services/publish.service.d.ts +114 -0
  22. package/builtins/platforms/node/services/publish.service.js +371 -0
  23. package/builtins/platforms/node/services/version-plan.service.d.ts +44 -0
  24. package/builtins/platforms/node/services/version-plan.service.js +58 -0
  25. package/builtins/platforms/node/utils/workspace-range.d.ts +26 -0
  26. package/builtins/platforms/node/utils/workspace-range.js +28 -0
  27. package/builtins/presets/index.d.ts +15 -0
  28. package/builtins/presets/index.js +57 -0
  29. package/builtins/presets/node.d.ts +16 -0
  30. package/builtins/presets/node.js +57 -0
  31. package/{services → builtins/publish-targets/docker}/docker-publish.service.d.ts +52 -31
  32. package/{services → builtins/publish-targets/docker}/docker-publish.service.js +49 -26
  33. package/builtins/publish-targets/docker/docker.target.d.ts +54 -0
  34. package/builtins/publish-targets/docker/docker.target.js +40 -0
  35. package/builtins/publish-targets/docker/index.d.ts +2 -0
  36. package/builtins/publish-targets/docker/index.js +2 -0
  37. package/builtins/publish-targets/npm/index.d.ts +2 -0
  38. package/builtins/publish-targets/npm/index.js +2 -0
  39. package/builtins/publish-targets/npm/npm-publish-target.d.ts +73 -0
  40. package/builtins/publish-targets/npm/npm-publish-target.js +95 -0
  41. package/builtins/publish-targets/npm/npm-view.d.ts +48 -0
  42. package/builtins/publish-targets/npm/npm-view.js +71 -0
  43. package/cli.d.ts +8 -0
  44. package/cli.js +228 -93
  45. package/commands/build.command.d.ts +177 -3
  46. package/commands/build.command.js +20 -10
  47. package/commands/changelog.command.d.ts +296 -3
  48. package/commands/changelog.command.js +127 -43
  49. package/commands/config.command.d.ts +44 -3
  50. package/commands/config.command.js +53 -24
  51. package/commands/diff.command.d.ts +37 -3
  52. package/commands/diff.command.js +25 -16
  53. package/commands/exec.command.d.ts +193 -3
  54. package/commands/exec.command.js +60 -58
  55. package/commands/github-release.command.d.ts +154 -3
  56. package/commands/github-release.command.js +67 -37
  57. package/commands/import.command.d.ts +36 -3
  58. package/commands/import.command.js +28 -20
  59. package/commands/info.command.d.ts +35 -7
  60. package/commands/info.command.js +36 -30
  61. package/commands/lint.command.d.ts +176 -0
  62. package/commands/lint.command.js +34 -0
  63. package/commands/list.command.d.ts +163 -3
  64. package/commands/list.command.js +109 -71
  65. package/commands/publish.command.d.ts +231 -0
  66. package/commands/publish.command.js +304 -0
  67. package/commands/run.command.d.ts +186 -6
  68. package/commands/run.command.js +26 -72
  69. package/commands/test.command.d.ts +173 -3
  70. package/commands/test.command.js +16 -10
  71. package/commands/version.command.d.ts +330 -3
  72. package/commands/version.command.js +292 -78
  73. package/commands.d.ts +32 -0
  74. package/commands.js +28 -0
  75. package/constants.js +1 -1
  76. package/core/application.d.ts +116 -0
  77. package/core/application.js +160 -0
  78. package/core/classes/package.d.ts +219 -0
  79. package/core/classes/package.js +214 -0
  80. package/core/classes/registry.d.ts +30 -0
  81. package/core/classes/registry.js +47 -0
  82. package/core/{repository.d.ts → classes/repository.d.ts} +69 -20
  83. package/core/{repository.js → classes/repository.js} +195 -75
  84. package/core/classes/service.d.ts +49 -0
  85. package/core/classes/service.js +40 -0
  86. package/core/{version-scheme.d.ts → classes/version-scheme.d.ts} +23 -1
  87. package/core/{version-scheme.js → classes/version-scheme.js} +29 -1
  88. package/core/classes/workspace.d.ts +275 -0
  89. package/core/classes/workspace.js +537 -0
  90. package/core/command-builder.d.ts +14 -0
  91. package/core/command-builder.js +94 -0
  92. package/core/config/config-file-scope.d.ts +107 -0
  93. package/core/config/config-file-scope.js +226 -0
  94. package/core/config/config-interpolator.d.ts +164 -0
  95. package/core/config/config-interpolator.js +577 -0
  96. package/core/config/config-paths.d.ts +65 -0
  97. package/core/config/config-paths.js +78 -0
  98. package/core/config/config-reader.d.ts +192 -0
  99. package/core/config/config-reader.js +727 -0
  100. package/core/{merge-config.d.ts → config/merge-config.d.ts} +33 -34
  101. package/core/config/merge-config.js +260 -0
  102. package/core/{resolve-target.d.ts → config/resolve-config-target.d.ts} +1 -1
  103. package/core/{resolve-target.js → config/resolve-config-target.js} +1 -1
  104. package/core/{custom-command.d.ts → interfaces/custom-command.d.ts} +46 -10
  105. package/core/{custom-command.js → interfaces/custom-command.js} +44 -17
  106. package/core/{manifest.d.ts → interfaces/manifest.d.ts} +49 -27
  107. package/core/interfaces/manifest.js +132 -0
  108. package/core/interfaces/plugin.d.ts +174 -0
  109. package/core/interfaces/plugin.js +124 -0
  110. package/core/interfaces/publish-target.d.ts +136 -0
  111. package/core/interfaces/publish-target.js +43 -0
  112. package/core/{run-step.d.ts → interfaces/run-step.d.ts} +4 -4
  113. package/core/interfaces/run-step.js +1 -0
  114. package/core/plugin-loader.d.ts +25 -0
  115. package/core/plugin-loader.js +53 -0
  116. package/index.d.ts +122 -24
  117. package/index.js +66 -16
  118. package/interfaces/config-scope.interface.d.ts +223 -0
  119. package/interfaces/config-scope.interface.js +1 -0
  120. package/interfaces/rman-config.interface.d.ts +821 -203
  121. package/interfaces/rman-config.interface.js +78 -1
  122. package/package.json +3 -1
  123. package/services/change-hash.service.d.ts +42 -8
  124. package/services/change-hash.service.js +92 -13
  125. package/services/changelog.service.d.ts +91 -52
  126. package/services/changelog.service.js +460 -74
  127. package/services/config-service.d.ts +8 -0
  128. package/services/config-service.js +3 -0
  129. package/services/exec.service.d.ts +23 -12
  130. package/services/exec.service.js +14 -9
  131. package/services/github-release.service.d.ts +45 -34
  132. package/services/github-release.service.js +15 -12
  133. package/services/import.service.d.ts +25 -14
  134. package/services/import.service.js +9 -5
  135. package/services/list.service.d.ts +67 -13
  136. package/services/list.service.js +62 -15
  137. package/services/run.service.d.ts +35 -22
  138. package/services/run.service.js +316 -233
  139. package/services/system-info.d.ts +1 -1
  140. package/services/version-plan.service.d.ts +35 -8
  141. package/services/version-plan.service.js +96 -36
  142. package/services/version.service.d.ts +34 -14
  143. package/services/version.service.js +35 -16
  144. package/services.d.ts +1 -1
  145. package/services.js +1 -1
  146. package/utils/bin-path.d.ts +6 -7
  147. package/utils/bin-path.js +7 -18
  148. package/utils/branch-guard.d.ts +30 -1
  149. package/utils/branch-guard.js +31 -0
  150. package/utils/color-yaml.d.ts +8 -0
  151. package/utils/color-yaml.js +86 -0
  152. package/utils/exec.d.ts +10 -0
  153. package/utils/exec.js +1 -1
  154. package/utils/git.d.ts +26 -0
  155. package/utils/git.js +65 -0
  156. package/utils/logger.d.ts +2 -2
  157. package/utils/logger.js +1 -1
  158. package/utils/package-filter.d.ts +135 -8
  159. package/utils/package-filter.js +204 -16
  160. package/utils/printable-config.d.ts +9 -1
  161. package/utils/printable-config.js +46 -1
  162. package/utils/progress-panel.d.ts +9 -0
  163. package/utils/progress-panel.js +23 -1
  164. package/utils/release-version.d.ts +1 -1
  165. package/utils/run-bin.d.ts +10 -0
  166. package/utils/run-bin.js +1 -1
  167. package/utils/run-options.d.ts +97 -0
  168. package/utils/run-options.js +81 -0
  169. package/utils/version-group.d.ts +31 -0
  170. package/utils/version-group.js +43 -0
  171. package/utils/version-stamp.d.ts +1 -1
  172. package/utils/version-stamp.js +1 -1
  173. package/commands/changed.command.d.ts +0 -3
  174. package/commands/changed.command.js +0 -29
  175. package/core/config.d.ts +0 -409
  176. package/core/config.js +0 -939
  177. package/core/extends-config.d.ts +0 -27
  178. package/core/extends-config.js +0 -89
  179. package/core/manifest.js +0 -150
  180. package/core/merge-config.js +0 -219
  181. package/core/package.d.ts +0 -83
  182. package/core/package.js +0 -106
  183. package/core/plugin.d.ts +0 -112
  184. package/core/plugin.js +0 -189
  185. package/core/workspace.d.ts +0 -68
  186. package/core/workspace.js +0 -83
  187. /package/{core/run-step.js → builtins/platforms/node/augmentation/rmanrc.augmentation.js} +0 -0
@@ -1,8 +1,23 @@
1
- import type { Package } from '../core/package.js';
2
- import type { Repository } from '../core/repository.js';
3
- import type { RunStepContext, RunStepFn, RunStepValue } from '../core/run-step.js';
1
+ import type { Package } from '../core/classes/package.js';
2
+ import type { Repository } from '../core/classes/repository.js';
3
+ import { Service } from '../core/classes/service.js';
4
+ import type { RunStepContext, RunStepFn, RunStepValue } from '../core/interfaces/run-step.js';
4
5
  import { type LogLevel } from '../utils/logger.js';
5
6
  import { type PackageFilterOptions } from '../utils/package-filter.js';
7
+ /**
8
+ * A service class - see `ListService` for the shape and `Service` for the three measured
9
+ * consequences a namespace had.
10
+ *
11
+ * **Only `runScript` became a method**, because only it takes a repository. `getConfig`,
12
+ * `parseIfExpr`, `normalizeScriptValue` and the rest take a `Package` or a raw value and stay
13
+ * functions on the namespace below - the same rule that leaves `ChangeHashService` a namespace
14
+ * entirely. Declared before the namespace, which TypeScript requires for the merge.
15
+ */
16
+ export declare class RunService extends Service {
17
+ runScript(script: string, options?: RunService.Options & {
18
+ commandName?: string;
19
+ }): Promise<void>;
20
+ }
6
21
  export declare namespace RunService {
7
22
  export interface Options extends PackageFilterOptions {
8
23
  /** Max packages built at once: `true`/omitted = CPU count, a number = that many, `false` = serial (1). */
@@ -24,7 +39,7 @@ export declare namespace RunService {
24
39
  * (which otherwise scopes the run to just that package, and skips the root's own pre/post
25
40
  * bookend - see `Repository.currentPackage`). Has no effect when already at the repository
26
41
  * root, or outside any known package. */
27
- root?: boolean;
42
+ fromRoot?: boolean;
28
43
  }
29
44
  /**
30
45
  * A package's `.rmanrc` (cascaded) can configure `run.<script>.*` - e.g.
@@ -89,21 +104,13 @@ export declare namespace RunService {
89
104
  *
90
105
  * The core knows one source: the config. **`package.json#scripts` is not a source the core has**,
91
106
  * because "a script lives in package.json" is true of a Node repository and of nothing else -
92
- * `rman-node` contributes that one (with npm's `pre<script>`/`post<script>` convention and its
107
+ * the `node` built-in contributes that one (with npm's `pre<script>`/`post<script>` convention and its
93
108
  * `&&` splitting), and a plugin for another ecosystem would contribute its own.
94
109
  *
95
110
  * Returns `undefined` for "this package declares nothing", not empty slots - the difference
96
111
  * decides whether the config's value applies.
97
112
  */
98
113
  export type StepSource = (pkg: Package, script: string) => ScriptSlots | undefined;
99
- /**
100
- * Registers a source. Called by `loadPlugins` for each plugin's `runSteps`, in `plugins`
101
- * declaration order - never as an import side effect, so what is registered is exactly what the
102
- * repository's `.rmanrc` asked for.
103
- */
104
- export function addStepSource(source: StepSource): void;
105
- /** For tests, which would otherwise leak a source into every later case in the process. */
106
- export function clearStepSources(): void;
107
114
  /**
108
115
  * What the *package itself* declares for the lifecycle `script`, from the contributed sources
109
116
  * alone - no `.rmanrc` involved. `undefined` when it declares nothing.
@@ -120,11 +127,15 @@ export declare namespace RunService {
120
127
  * Runs one slot of a lifecycle belonging to some operation other than `run` itself - `version`'s
121
128
  * hooks around the version write are the only one so far.
122
129
  *
123
- * **Here rather than in `VersionService`, because the rule it applies is this service's**: the
124
- * package's own declaration for `script` wins over the caller's `fallback`, slot by slot, exactly
125
- * as `getScriptSteps` decides it for `run`. Kept in two places that rule would drift, and one of
126
- * the copies would sit in the file that writes versions - which now runs no command of its own at
127
- * all.
130
+ * **Here rather than in `VersionService`, because the rule it applies is this service's**: how a
131
+ * package's own declaration for `script` and the caller's `fallback` combine, slot by slot -
132
+ * `slotValues`, the same function `getScriptSteps` decides it with. Kept in two places that rule
133
+ * would drift, and one of the copies would sit in the file that writes versions, which now runs
134
+ * no command of its own at all.
135
+ *
136
+ * So npm's `preversion` does **not** replace a repository's `.rmanrc version.before` any more;
137
+ * both run, the config's first. Only `version.exec` is a single answer, and there the package's
138
+ * own still wins.
128
139
  *
129
140
  * `fallback` is the caller's own configured step(s), **already evaluated**: `version`'s three
130
141
  * paths are in `DEFERRED_PATHS` precisely because only the caller can bind
@@ -165,7 +176,7 @@ export declare namespace RunService {
165
176
  *
166
177
  * run:
167
178
  * build:
168
- * if: changed # changed since the last publish
179
+ * if: changed # touched but not pushed
169
180
  * test:
170
181
  * if: changed = a1b2c3d # changed since a specific commit
171
182
  * if: changed = {CHANGE_HASH} # {NAME} -> process.env.NAME first
@@ -193,9 +204,6 @@ export declare namespace RunService {
193
204
  /** Evaluates a parsed `if` expression for one package. `statusCache` avoids repeat `git` calls
194
205
  * for the same reference hash across packages/scripts in a single run. */
195
206
  export function evaluateIf(repository: Repository, pkg: Package, node: IfNode, statusCache: Map<string, Record<string, Repository.PackageStatus>>): Promise<boolean>;
196
- export function runScript(repository: Repository, script: string, options?: Options & {
197
- commandName?: string;
198
- }): Promise<void>;
199
207
  export {};
200
208
  }
201
209
  /** Resolution order: explicit CLI flag > the package's resolved `.rmanrc` > `fallback`. */
@@ -208,3 +216,8 @@ export declare function resolveBool(cliValue: boolean | undefined, pkg: Package,
208
216
  export declare function resolveBail(cliValue: boolean | undefined, pkg: Package, script: string, fallback: boolean): boolean;
209
217
  export declare function resolveNumber(cliValue: number | undefined, pkg: Package, script: string, key: string, fallback: number): number;
210
218
  export declare function resolveLogLevel(cliValue: LogLevel | undefined, pkg: Package, script: string, fallback: LogLevel): LogLevel;
219
+ declare module '../core/classes/service.js' {
220
+ interface ServiceMap {
221
+ run: RunService;
222
+ }
223
+ }