@fairgarden/distribution 0.1.0-alpha.1 → 0.1.0-alpha.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 (63) hide show
  1. package/Readme.md +3 -3
  2. package/dist/add-module.d.ts +4 -0
  3. package/dist/add-module.d.ts.map +1 -1
  4. package/dist/add-module.js +29 -0
  5. package/dist/add-module.js.map +1 -1
  6. package/dist/calver.d.ts +65 -0
  7. package/dist/calver.d.ts.map +1 -0
  8. package/dist/calver.js +115 -0
  9. package/dist/calver.js.map +1 -0
  10. package/dist/canary.d.ts.map +1 -1
  11. package/dist/canary.js +15 -2
  12. package/dist/canary.js.map +1 -1
  13. package/dist/changelog.d.ts +153 -0
  14. package/dist/changelog.d.ts.map +1 -0
  15. package/dist/changelog.js +359 -0
  16. package/dist/changelog.js.map +1 -0
  17. package/dist/cli.js +356 -12
  18. package/dist/cli.js.map +1 -1
  19. package/dist/extends.d.ts +3 -2
  20. package/dist/extends.d.ts.map +1 -1
  21. package/dist/extends.js +12 -2
  22. package/dist/extends.js.map +1 -1
  23. package/dist/forks.d.ts +116 -0
  24. package/dist/forks.d.ts.map +1 -0
  25. package/dist/forks.js +357 -0
  26. package/dist/forks.js.map +1 -0
  27. package/dist/index.d.ts +7 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +3 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/inherit.d.ts +18 -0
  32. package/dist/inherit.d.ts.map +1 -0
  33. package/dist/inherit.js +84 -0
  34. package/dist/inherit.js.map +1 -0
  35. package/dist/manifest.d.ts +43 -0
  36. package/dist/manifest.d.ts.map +1 -0
  37. package/dist/manifest.js +64 -0
  38. package/dist/manifest.js.map +1 -0
  39. package/dist/policy.d.ts +5 -1
  40. package/dist/policy.d.ts.map +1 -1
  41. package/dist/policy.js +14 -6
  42. package/dist/policy.js.map +1 -1
  43. package/dist/readme.d.ts +2 -0
  44. package/dist/readme.d.ts.map +1 -1
  45. package/dist/readme.js +6 -1
  46. package/dist/readme.js.map +1 -1
  47. package/dist/release.d.ts +37 -1
  48. package/dist/release.d.ts.map +1 -1
  49. package/dist/release.js +107 -7
  50. package/dist/release.js.map +1 -1
  51. package/dist/scaffold.d.ts +3 -5
  52. package/dist/scaffold.d.ts.map +1 -1
  53. package/dist/scaffold.js +116 -64
  54. package/dist/scaffold.js.map +1 -1
  55. package/dist/submodules.d.ts +49 -0
  56. package/dist/submodules.d.ts.map +1 -1
  57. package/dist/submodules.js +94 -4
  58. package/dist/submodules.js.map +1 -1
  59. package/dist/workflows.d.ts +46 -1
  60. package/dist/workflows.d.ts.map +1 -1
  61. package/dist/workflows.js +401 -20
  62. package/dist/workflows.js.map +1 -1
  63. package/package.json +14 -12
package/Readme.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <!-- fg:version -->
4
4
 
5
- Version **0.1.0-alpha.1**
5
+ Version **0.1.0-alpha.3**
6
6
 
7
7
  <!-- /fg:version -->
8
8
 
@@ -10,13 +10,13 @@ Version **0.1.0-alpha.1**
10
10
 
11
11
  ## Releasing
12
12
 
13
- This module releases on its own. `0.1.0-alpha.1` is what main is working towards,
13
+ This module releases on its own. `0.1.0-alpha.3` is what main is working towards,
14
14
  not what is published — the version here is always the next one.
15
15
 
16
16
  1. **Publish it.** Run the *Publish* workflow from the Actions tab, picking the
17
17
  dist tag. It refuses if that version is already on npm.
18
18
  2. **Move it on.** `pnpm release` — opens a pull request bumping this branch
19
- to `0.1.0-alpha.2`, or `pnpm release --id rc` to change
19
+ to `0.1.0-alpha.4`, or `pnpm release --id rc` to change
20
20
  identifier. A prerelease gets no maintenance branch; there is no released
21
21
  line behind it yet.
22
22
 
@@ -12,6 +12,8 @@ export interface AddModuleOptions {
12
12
  * when nothing but a developer's machine will ever clone the submodule.
13
13
  */
14
14
  ssh?: boolean;
15
+ /** Note the module in the distribution's changelog. On by default. */
16
+ changelog?: boolean;
15
17
  }
16
18
  /**
17
19
  * The app that composes the modules, or undefined when there is none.
@@ -45,6 +47,8 @@ export interface AddModuleResult {
45
47
  rewritten: boolean;
46
48
  /** Whether the module has routes, and so is mounted rather than depended on. */
47
49
  isApp: boolean;
50
+ /** Whether turbo.json was told the monolith compiles this app from its source. */
51
+ turbo: boolean;
48
52
  }
49
53
  /**
50
54
  * Add a module repository as a submodule and wire it into the monolith.
@@ -1 +1 @@
1
- {"version":3,"file":"add-module.d.ts","sourceRoot":"","sources":["../src/add-module.ts"],"names":[],"mappings":"AAgCA,8EAA8E;AAC9E,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGzC,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAgBD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,MAAM,MAAM,KACX,OAAO,CAAC,MAAM,GAAG,SAAS,CAiB5B,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAA;IAClB,iEAAiE;IACjE,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAA;IACf,iEAAiE;IACjE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,6CAA6C;IAC7C,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAA;IACX,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAA;IAClB,gFAAgF;IAChF,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,UAAS,gBAAqB,KAC7B,OAAO,CAAC,eAAe,CAwGzB,CAAA"}
1
+ {"version":3,"file":"add-module.d.ts","sourceRoot":"","sources":["../src/add-module.ts"],"names":[],"mappings":"AAiCA,8EAA8E;AAC9E,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGzC,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAgBD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,MAAM,MAAM,KACX,OAAO,CAAC,MAAM,GAAG,SAAS,CAiB5B,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAA;IAClB,iEAAiE;IACjE,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAA;IACf,iEAAiE;IACjE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,6CAA6C;IAC7C,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAA;IACX,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAA;IAClB,gFAAgF;IAChF,KAAK,EAAE,OAAO,CAAA;IACd,kFAAkF;IAClF,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,UAAS,gBAAqB,KAC7B,OAAO,CAAC,eAAe,CAmHzB,CAAA"}
@@ -6,6 +6,7 @@ import { repositoryRoot } from "./submodules.js";
6
6
  import { readPackageName } from "./scaffold.js";
7
7
  import { addMount, ConfigEditError, declaresMonolith } from "./config-edit.js";
8
8
  import { toHttps } from "./git-url.js";
9
+ import { noteInDistribution, repositoryLink } from "./changelog.js";
9
10
  const CONFIG_FILES = [
10
11
  'next.config.ts',
11
12
  'next.config.mts',
@@ -139,6 +140,7 @@ export const addModule = async (cwd, url, options = {}) => {
139
140
  'Give it one, or mount it by path yourself.',
140
141
  }
141
142
  : { config: undefined, mounted: false, error: undefined };
143
+ const turbo = monolithRoot && isApp && packageName ? await compileFromSource(root, packageName) : false;
142
144
  // The distribution resolves its own modules from the tree, not from their
143
145
  // declared ranges — which stop matching as soon as a submodule is bumped
144
146
  // past them.
@@ -149,6 +151,9 @@ export const addModule = async (cwd, url, options = {}) => {
149
151
  // mount is written by now, so a workspace this cannot edit — a sibling with
150
152
  // no checkout, an `overrides:` key someone else wrote — is something to
151
153
  // report, not something to fail the whole command over.
154
+ if (options.changelog !== false && packageName) {
155
+ noteInDistribution(root, `\`${packageName}\`${version ? ` ${version}` : ''} added, from ${repositoryLink(recorded)}`);
156
+ }
152
157
  const overrides = await writeOverrides(repositoryRoot(cwd) ?? cwd).catch((error) => ({
153
158
  changed: false,
154
159
  error: error instanceof Error ? error.message : String(error),
@@ -168,8 +173,32 @@ export const addModule = async (cwd, url, options = {}) => {
168
173
  url: recorded,
169
174
  rewritten,
170
175
  isApp,
176
+ turbo,
171
177
  };
172
178
  };
179
+ const BUILD_LIBS = 'build:libs';
180
+ /**
181
+ * Have the monolith's build wait for this app's libraries rather than for the
182
+ * app's own build: the monolith compiles it from source, so building it on its
183
+ * own as well would only take time. Only where turbo.json has the
184
+ * `build:libs` task this relies on.
185
+ */
186
+ const compileFromSource = async (root, packageName) => {
187
+ const file = path.join(root, 'turbo.json');
188
+ let turbo;
189
+ try {
190
+ turbo = JSON.parse(await readFile(file, 'utf8'));
191
+ }
192
+ catch {
193
+ return false;
194
+ }
195
+ const key = `${packageName}#${BUILD_LIBS}`;
196
+ if (!turbo.tasks?.[BUILD_LIBS] || turbo.tasks[key])
197
+ return false;
198
+ turbo.tasks[key] = { dependsOn: [`^${BUILD_LIBS}`] };
199
+ await writeFile(file, `${JSON.stringify(turbo, null, 2)}\n`);
200
+ return true;
201
+ };
173
202
  /**
174
203
  * Write the mount into the monolith's Next config.
175
204
  *
@@ -1 +1 @@
1
- {"version":3,"file":"add-module.js","sourceRoot":"","sources":["../src/add-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE5E,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,YAAY,GAAG;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;CAClB,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAAc,EAAU,EAAE;IAClD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAA;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GACV,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAChF,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IACnF,CAAC;AACH,CAAC,CAAA;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;IAChE,OAAO,IAAI,IAAI,QAAQ,CAAA;AACzB,CAAC,CAAA;AAgBD;;;;;GAKG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE;IAC9D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAClF,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAY,EACZ,IAAY,EACiB,EAAE;IAC/B,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAE5C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IACxD,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YACrD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,eAAe,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;IACxD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AA6BD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAW,EACX,GAAW,EACX,UAA4B,EAAE,EACJ,EAAE;IAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,kCAAkC,CAAC,CAAA;IAEpE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7B,uEAAuE;IACvE,gEAAgE;IAChE,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IAE1C,wEAAwE;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,QAAQ,KAAK,GAAG,CAAA;IAElC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;IACvD,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAA;IAEzE,IAAI,QAAQ,GAAG,YAAY,CAAA;IAC3B,IAAI,UAAU,GAAG,IAAI,CAAA;IAErB,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7D,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;YAC5C,QAAQ,GAAG,WAAW,CAAA;YACtB,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAA;IAE7C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ;QACnC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;QACrC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACjC,MAAM,mBAAmB,GAAG,YAAY;QACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC;QACzC,CAAC,CAAC,SAAS,CAAA;IAEb,yEAAyE;IACzE,2EAA2E;IAC3E,qBAAqB;IACrB,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,WAAW,IAAI,mBAAmB,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAChE,MAAM,GAAG,MAAM,aAAa,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAA;IACnC,0EAA0E;IAC1E,6EAA6E;IAC7E,yEAAyE;IACzE,mDAAmD;IACnD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAC9B,YAAY,IAAI,KAAK;QACnB,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,MAAM,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC;YACtD,CAAC,CAAC;gBACE,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,8DAA8D;oBAC9D,4CAA4C;aAC/C;QACL,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IAE7D,0EAA0E;IAC1E,yEAAyE;IACzE,aAAa;IACb,sEAAsE;IACtE,sEAAsE;IACtE,EAAE;IACF,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,wDAAwD;IACxD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CACtE,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC9D,CAAC,CACH,CAAA;IAED,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,OAAO;QAC5B,cAAc,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAClE,KAAK;QACL,YAAY,EAAE,QAAQ;QACtB,WAAW;QACX,OAAO;QACP,MAAM;QACN,mBAAmB;QACnB,cAAc,EAAE,MAAM;QACtB,OAAO;QACP,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,QAAQ;QACb,SAAS;QACT,KAAK;KACN,CAAA;AACH,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,KAAK,EACxB,YAAoB,EACpB,KAAa,EACb,MAAc,EACwE,EAAE;IACxF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAC9C,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACxD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,KAAK,YAAY,eAAe;oBAC9B,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,mCAAmC,MAAM,CAAC,KAAK,CAAC,EAAE;aACzD,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA;AAClF,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,KAAK,EAAE,SAAiB,EAAoB,EAAE,CAChE,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;AAExE,4EAA4E;AAC5E,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;IACzD,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAA+B,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAC/E,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,KAAK,EACzB,eAAuB,EACvB,IAAY,EACM,EAAE;IACpB,IAAI,GAA4B,CAAA;IAChC,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,GAAG,CAAE,GAAG,CAAC,YAAuC,IAAI,EAAE,CAAC,EAAE,CAAA;IAChF,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,KAAK,CAAA;IAEtD,YAAY,CAAC,IAAI,CAAC,GAAG,aAAa,CAAA;IAClC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACpE,CAAA;IAED,MAAM,SAAS,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IACrE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"file":"add-module.js","sourceRoot":"","sources":["../src/add-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * A distribution's version: `YY.MM.NN`, and a prerelease stage on the way.
3
+ *
4
+ * `26.09.01-alpha.0` is the first release of September 2026, at its first
5
+ * alpha. A release goes through its stages — alpha, beta, then stable — and the
6
+ * next release that month is `26.09.02`. The month is when it is published, so
7
+ * a new month starts again at `.01`, stage counter at 0, whatever was
8
+ * unfinished before: a distribution still in alpha publishes `alpha.0`,
9
+ * `alpha.1`, … until the month turns.
10
+ *
11
+ * End users read the month: `26.03` against `26.09` says six months, where
12
+ * `1.1.1` against `1.2.1` says nothing. The day is not in it — it says nothing
13
+ * a reader needs — and neither is `20`.
14
+ *
15
+ * npm takes semver only, which allows no leading zeros, so the registry spells
16
+ * it `26.9.1-alpha.0`: the same version, which sorts the same way. The
17
+ * distribution — its manifest, its tags — keeps the padded form.
18
+ */
19
+ export interface CalendarVersion {
20
+ /** Two digits: 26 for 2026. */
21
+ year: number;
22
+ month: number;
23
+ /** Which release of the month, from 1. */
24
+ release: number;
25
+ /** The stage it is at, until it is stable. */
26
+ prerelease: {
27
+ id: string;
28
+ number: number;
29
+ } | undefined;
30
+ }
31
+ export declare const parseCalendarVersion: (version: string) => CalendarVersion | undefined;
32
+ export declare const formatCalendarVersion: (version: CalendarVersion) => string;
33
+ /** Throw unless `version` is a distribution's; the message says what one looks like. */
34
+ export declare const assertCalendarVersion: (version: string) => CalendarVersion;
35
+ /** How npm spells it: the same version, without the zeros semver does not allow. */
36
+ export declare const npmVersion: (version: string) => string;
37
+ /** The year and month a release is published in, which the version names. UTC, as CI is. */
38
+ export declare const monthOf: (on?: Date) => {
39
+ year: number;
40
+ month: number;
41
+ };
42
+ /** The first release of the month: `26.09.01-alpha.0`, or with `false`, stable. */
43
+ export declare const firstRelease: (on?: Date, id?: string | false) => string;
44
+ export interface NextOptions {
45
+ /** Whether `current` has been published already. */
46
+ published: boolean;
47
+ on?: Date;
48
+ /** Move to this stage — alpha, beta, rc. */
49
+ id?: string;
50
+ /** Leave the prerelease stages: this release is stable. */
51
+ stable?: boolean;
52
+ }
53
+ /**
54
+ * The version a distribution publishes next.
55
+ *
56
+ * Published, it moves on: the next attempt at the same stage, the next stage
57
+ * when one is asked for, stable with `stable`, or — once stable — the month's
58
+ * next release. Not yet published, it stays what it is, unless a stage is
59
+ * asked for. Either way, a version from a month already over becomes this
60
+ * month's first release, at the stage it was at or the one asked for.
61
+ */
62
+ export declare const nextCalendarVersion: (current: string, options: NextOptions) => string;
63
+ /** Whether `version` names a month before the one it is now. */
64
+ export declare const isFromPastMonth: (version: string, on?: Date) => boolean;
65
+ //# sourceMappingURL=calver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calver.d.ts","sourceRoot":"","sources":["../src/calver.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CACvD;AAID,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,eAAe,GAAG,SAYxE,CAAA;AAID,eAAO,MAAM,qBAAqB,GAAI,SAAS,eAAe,KAAG,MAEqB,CAAA;AAEtF,wFAAwF;AACxF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,eASvD,CAAA;AAED,oFAAoF;AACpF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,MAI5C,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,OAAO,GAAI,KAAI,IAAiB,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAG3E,CAAA;AAEF,mFAAmF;AACnF,eAAO,MAAM,YAAY,GAAI,KAAI,IAAiB,EAAE,KAAI,MAAM,GAAG,KAAe,KAAG,MACoB,CAAA;AAEvG,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,IAAI,CAAA;IACT,4CAA4C;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAKD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,SAAS,WAAW,KAAG,MAqD3E,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,EAAE,KAAI,IAAiB,KAAG,OAKxE,CAAA"}
package/dist/calver.js ADDED
@@ -0,0 +1,115 @@
1
+ import semver from 'semver';
2
+ const PATTERN = /^(\d{2})\.(\d{2})\.(\d{2,})(?:-([a-z]+)\.(\d+))?$/;
3
+ export const parseCalendarVersion = (version) => {
4
+ const match = PATTERN.exec(version);
5
+ if (!match)
6
+ return undefined;
7
+ const [, year, month, release, id, number] = match;
8
+ const parsed = {
9
+ year: Number(year),
10
+ month: Number(month),
11
+ release: Number(release),
12
+ prerelease: id ? { id, number: Number(number) } : undefined,
13
+ };
14
+ if (parsed.month < 1 || parsed.month > 12 || parsed.release < 1)
15
+ return undefined;
16
+ return parsed;
17
+ };
18
+ const pad = (value) => String(value).padStart(2, '0');
19
+ export const formatCalendarVersion = (version) => `${pad(version.year)}.${pad(version.month)}.${pad(version.release)}` +
20
+ (version.prerelease ? `-${version.prerelease.id}.${version.prerelease.number}` : '');
21
+ /** Throw unless `version` is a distribution's; the message says what one looks like. */
22
+ export const assertCalendarVersion = (version) => {
23
+ const parsed = parseCalendarVersion(version);
24
+ if (!parsed) {
25
+ throw new Error(`${version} is not a distribution version. One is YY.MM.NN — the year, the month, ` +
26
+ 'and which release of the month — with a stage until it is stable: 26.09.01-alpha.0.');
27
+ }
28
+ return parsed;
29
+ };
30
+ /** How npm spells it: the same version, without the zeros semver does not allow. */
31
+ export const npmVersion = (version) => {
32
+ const cleaned = semver.clean(version, { loose: true });
33
+ if (!cleaned)
34
+ throw new Error(`${version} is not a version npm can publish.`);
35
+ return cleaned;
36
+ };
37
+ /** The year and month a release is published in, which the version names. UTC, as CI is. */
38
+ export const monthOf = (on = new Date()) => ({
39
+ year: on.getUTCFullYear() % 100,
40
+ month: on.getUTCMonth() + 1,
41
+ });
42
+ /** The first release of the month: `26.09.01-alpha.0`, or with `false`, stable. */
43
+ export const firstRelease = (on = new Date(), id = 'alpha') => formatCalendarVersion({ ...monthOf(on), release: 1, prerelease: id ? { id, number: 0 } : undefined });
44
+ const compareStages = (a, b) => semver.compare(`1.0.0-${a}.0`, `1.0.0-${b}.0`);
45
+ /**
46
+ * The version a distribution publishes next.
47
+ *
48
+ * Published, it moves on: the next attempt at the same stage, the next stage
49
+ * when one is asked for, stable with `stable`, or — once stable — the month's
50
+ * next release. Not yet published, it stays what it is, unless a stage is
51
+ * asked for. Either way, a version from a month already over becomes this
52
+ * month's first release, at the stage it was at or the one asked for.
53
+ */
54
+ export const nextCalendarVersion = (current, options) => {
55
+ const version = assertCalendarVersion(current);
56
+ const { published, id, stable = false } = options;
57
+ const now = monthOf(options.on);
58
+ if (id && stable)
59
+ throw new Error('Ask for a stage or for stable, not both.');
60
+ const newMonth = now.year > version.year || (now.year === version.year && now.month > version.month);
61
+ if (!newMonth && (now.year !== version.year || now.month !== version.month)) {
62
+ throw new Error(`${current} is in a month still to come; it cannot be moved on from yet.`);
63
+ }
64
+ const stageAfter = stable ? undefined : (id ?? version.prerelease?.id);
65
+ if (newMonth) {
66
+ return formatCalendarVersion({
67
+ ...now,
68
+ release: 1,
69
+ prerelease: stageAfter ? { id: stageAfter, number: 0 } : undefined,
70
+ });
71
+ }
72
+ const same = { ...version };
73
+ const pre = version.prerelease;
74
+ // Moving to another stage of the same release: only ever forward.
75
+ const toStage = (next) => {
76
+ if (pre && compareStages(next, pre.id) < 0) {
77
+ throw new Error(`${current} is at ${pre.id} already, which is past ${next}.`);
78
+ }
79
+ if (!pre && !published) {
80
+ // An unpublished stable release can still be taken back to a stage.
81
+ return formatCalendarVersion({ ...same, prerelease: { id: next, number: 0 } });
82
+ }
83
+ if (!pre) {
84
+ return formatCalendarVersion({ ...same, release: same.release + 1, prerelease: { id: next, number: 0 } });
85
+ }
86
+ return formatCalendarVersion({ ...same, prerelease: { id: next, number: 0 } });
87
+ };
88
+ if (!published) {
89
+ if (stable)
90
+ return formatCalendarVersion({ ...same, prerelease: undefined });
91
+ if (id && id !== pre?.id)
92
+ return toStage(id);
93
+ return current;
94
+ }
95
+ if (stable) {
96
+ if (!pre)
97
+ return formatCalendarVersion({ ...same, release: same.release + 1 });
98
+ return formatCalendarVersion({ ...same, prerelease: undefined });
99
+ }
100
+ if (id && id !== pre?.id)
101
+ return toStage(id);
102
+ if (pre)
103
+ return formatCalendarVersion({ ...same, prerelease: { id: pre.id, number: pre.number + 1 } });
104
+ // Stable, and published: the month's next release.
105
+ return formatCalendarVersion({ ...same, release: same.release + 1 });
106
+ };
107
+ /** Whether `version` names a month before the one it is now. */
108
+ export const isFromPastMonth = (version, on = new Date()) => {
109
+ const parsed = parseCalendarVersion(version);
110
+ if (!parsed)
111
+ return false;
112
+ const now = monthOf(on);
113
+ return now.year > parsed.year || (now.year === parsed.year && now.month > parsed.month);
114
+ };
115
+ //# sourceMappingURL=calver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calver.js","sourceRoot":"","sources":["../src/calver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"canary.d.ts","sourceRoot":"","sources":["../src/canary.ts"],"names":[],"mappings":"AAoBA,uCAAuC;AACvC,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,SAAS,KAAG,MA8B3E,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,MAAM,EACZ,6BAAmE,aAAkB,KACpF,OAAO,CAAC,YAAY,CAqCtB,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GAAU,QAAQ,YAAY,KAAG,OAAO,CAAC,IAAI,CAUxE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,OASH,CAAA"}
1
+ {"version":3,"file":"canary.d.ts","sourceRoot":"","sources":["../src/canary.ts"],"names":[],"mappings":"AAuBA,uCAAuC;AACvC,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,SAAS,KAAG,MA8B3E,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,MAAM,EACZ,6BAAmE,aAAkB,KACpF,OAAO,CAAC,YAAY,CA6CtB,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GAAU,QAAQ,YAAY,KAAG,OAAO,CAAC,IAAI,CAUxE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,OASH,CAAA"}
package/dist/canary.js CHANGED
@@ -2,6 +2,9 @@ import { execFileSync } from 'node:child_process';
2
2
  import { appendFile, readFile, writeFile } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
  import semver from 'semver';
5
+ import { assertCalendarVersion, npmVersion } from "./calver.js";
6
+ import { stampModules } from "./manifest.js";
7
+ import { isDistribution } from "./submodules.js";
5
8
  /** Ask npm about a published version, returning undefined when it says nothing. */
6
9
  const view = (spec, field) => {
7
10
  try {
@@ -81,9 +84,19 @@ export const stampCanary = async (root, { sha = process.env.GITHUB_SHA ?? '', pu
81
84
  sha,
82
85
  };
83
86
  }
84
- const version = nextCanary(manifest.version, current.version);
87
+ // A distribution's version is spelled as npm does, and it records what it
88
+ // ships as it is published.
89
+ const distribution = isDistribution(root);
90
+ if (distribution)
91
+ assertCalendarVersion(manifest.version);
92
+ const version = nextCanary(distribution ? npmVersion(manifest.version) : manifest.version, current.version);
85
93
  if (!dryRun) {
86
- await writeFile(file, `${JSON.stringify({ ...manifest, version, gitSha: sha }, null, 2)}\n`);
94
+ if (distribution) {
95
+ await stampModules(root, { version, gitSha: sha });
96
+ }
97
+ else {
98
+ await writeFile(file, `${JSON.stringify({ ...manifest, version, gitSha: sha }, null, 2)}\n`);
99
+ }
87
100
  }
88
101
  return { name: manifest.name, version, skip: false, provenance, sha };
89
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"canary.js","sourceRoot":"","sources":["../src/canary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canary.js","sourceRoot":"","sources":["../src/canary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Changelogs.
3
+ *
4
+ * Every module keeps a CHANGELOG.md. Its top section is the version its main
5
+ * carries — the next to be released — and every pull request adds a line to
6
+ * it that links the pull request, which CI checks before it can merge. When
7
+ * the version is published its notes are written already, and committed: the
8
+ * release takes them as they are, and `release` opens the next section.
9
+ *
10
+ * A distribution's changelog is mostly written for it. fg-dist notes each
11
+ * module it bumps, with a link to that release's notes, and each module it
12
+ * adds, forks, or takes back to upstream. What people change in it by hand —
13
+ * the organization's policy — is checked like a module's.
14
+ */
15
+ export declare const CHANGELOG = "CHANGELOG.md";
16
+ /** Where a pull request that needs no entry — a lockfile bump — says so. */
17
+ export declare const SKIP_LABEL = "skip changelog";
18
+ /**
19
+ * A new changelog, opened at `version`.
20
+ *
21
+ * Nothing but the heading: a changelog is for whoever uses a release, and how
22
+ * lines get into it is for contributors, who hear it from the check that asks
23
+ * for one.
24
+ */
25
+ export declare const newChangelog: (version: string) => string;
26
+ /** The version of the top section, which is the one being worked on. */
27
+ export declare const topVersion: (text: string) => string | undefined;
28
+ /** What `version`'s section says, without its heading; undefined when there is none, or nothing in it. */
29
+ export declare const notesFor: (text: string, version: string) => string | undefined;
30
+ /** `text` with `version` as its top section, added above the others unless it is there. */
31
+ export declare const withSection: (text: string, version: string) => string;
32
+ /** `text` with its top section, `from`, called `to` instead: a release moved before it was published. */
33
+ export declare const renameTop: (text: string, from: string, to: string) => string;
34
+ /** `text` with `entry` as a line at the end of `version`'s section, the top one. */
35
+ export declare const withEntry: (text: string, version: string, entry: string) => string;
36
+ /**
37
+ * Open the section for the version a repository now carries, when it keeps a
38
+ * changelog: what `release` does as it moves main on.
39
+ */
40
+ export declare const openSection: (root: string, version?: string | undefined) => Promise<boolean>;
41
+ /**
42
+ * Add a line to a repository's changelog, under the version it carries,
43
+ * starting the changelog when there is none: what fg-dist writes into a
44
+ * distribution's as it changes what the distribution ships.
45
+ */
46
+ export declare const addEntry: (root: string, entry: string) => void;
47
+ /** Note a change to what a distribution ships in its changelog; anywhere else, nothing. */
48
+ export declare const noteInDistribution: (root: string, entry: string) => void;
49
+ /** A module's name and version, as its checkout states them, for a changelog line. */
50
+ export declare const moduleLabel: (checkout: string) => {
51
+ name: string;
52
+ version: string | undefined;
53
+ };
54
+ /** The top section called `to` rather than `from`, or a new one when `from` was published. */
55
+ export declare const moveSection: (root: string, from: string, to: string, { published }: {
56
+ published: boolean;
57
+ }) => Promise<void>;
58
+ export interface ChangelogCheck {
59
+ /** The pull request's number. */
60
+ pullRequest: number;
61
+ /** `owner/name`, which the link names. */
62
+ repository: string;
63
+ /** What it merges into: a commit, or a ref such as `origin/main`. */
64
+ base: string;
65
+ /** Whether this is a distribution, which checks only its policy. */
66
+ distribution: boolean;
67
+ labels?: string[];
68
+ /** The host links point at. */
69
+ server?: string;
70
+ }
71
+ export interface ChangelogCheckResult {
72
+ ok: boolean;
73
+ /** Whether this pull request needed an entry at all. */
74
+ required: boolean;
75
+ message: string;
76
+ }
77
+ /**
78
+ * Whether a pull request has added its changelog entry.
79
+ *
80
+ * It needs a line under the top section, linking it. In a module that is
81
+ * every pull request; in a distribution only one that changes the
82
+ * organization's policy — what else changes there, fg-dist notes itself.
83
+ */
84
+ export declare const checkChangelog: (root: string, check: ChangelogCheck) => ChangelogCheckResult;
85
+ /** What a GitHub Actions `pull_request` run says about itself. */
86
+ export declare const pullRequestFromActions: () => Partial<ChangelogCheck>;
87
+ /** Where a repository's release of `tag` is described, when it is on GitHub. */
88
+ export declare const releaseNotesUrl: (repository: string, tag: string) => string | undefined;
89
+ /** A repository as a markdown link to it, or its url when it has no web page. */
90
+ export declare const repositoryLink: (repository: string) => string;
91
+ /** `v1.2.0` as `1.2.0`, for reading; anything else as it is. */
92
+ export declare const shown: (version: string) => string;
93
+ /**
94
+ * The releases a module moving to `to` takes in, oldest first: every one past
95
+ * where it was, up to and including `to`, prereleases too. Each release's
96
+ * notes are its own, so skipping one would hide what it changed.
97
+ */
98
+ export declare const crossedReleases: (newer: string[], to: string) => string[];
99
+ /** Links to the notes of each release, for a changelog line: one, or each in turn. */
100
+ export declare const releaseNotesLinks: (repository: string, releases: string[]) => string;
101
+ /** A module moved from one release to another, linking the notes of each it takes in. */
102
+ export declare const bumpEntry: (name: string, from: string, to: string, repository: string, releases: string[], how?: string) => string;
103
+ /**
104
+ * A module shipped ahead of its next release: what the change is, and where it
105
+ * can be read about — its pull request, or its commit.
106
+ */
107
+ export declare const aheadEntry: (name: string, change: string, link?: {
108
+ text: string;
109
+ url: string;
110
+ }) => string;
111
+ /** An open pull request, as `gh pr list` has it. */
112
+ export interface OpenPullRequest {
113
+ number: number;
114
+ headRefOid: string;
115
+ }
116
+ /** A run of the changelog check, as `gh run list` has it, newest first. */
117
+ export interface CheckRun {
118
+ databaseId: number;
119
+ headSha: string;
120
+ event: string;
121
+ status: string;
122
+ }
123
+ export interface Hold {
124
+ pullRequest: number;
125
+ /** The run to go again, or undefined when none has run on its head yet. */
126
+ run: number | undefined;
127
+ /** Whether it is still going, and has to finish before it can run again. */
128
+ running: boolean;
129
+ }
130
+ /**
131
+ * Which check to run again for each open pull request: the latest on its
132
+ * head commit. One with none yet needs nothing — its first run sees the
133
+ * release.
134
+ */
135
+ export declare const holdsFor: (pullRequests: OpenPullRequest[], runs: CheckRun[]) => Hold[];
136
+ export interface HoldResult extends Hold {
137
+ held: boolean;
138
+ /** Why it was not, when it was not. */
139
+ problem?: string;
140
+ }
141
+ /**
142
+ * Hold open pull requests until the next version starts, straight after a
143
+ * release: each one's changelog check runs again, finds the version its branch
144
+ * is at released, and refuses it. Merging the pull request that starts the next
145
+ * version lets them through again, once each has caught up with it.
146
+ *
147
+ * Needs `gh`, and a token that may re-run workflows (`actions: write`).
148
+ */
149
+ export declare const holdPullRequests: (root: string, { base, workflow }: {
150
+ base: string;
151
+ workflow?: string;
152
+ }) => HoldResult[];
153
+ //# sourceMappingURL=changelog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../src/changelog.ts"],"names":[],"mappings":"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"}