@fairgarden/distribution 0.1.0-0.canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/Readme.md +97 -0
  2. package/dist/add-module.d.ts +62 -0
  3. package/dist/add-module.d.ts.map +1 -0
  4. package/dist/add-module.js +279 -0
  5. package/dist/add-module.js.map +1 -0
  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 +58 -0
  11. package/dist/canary.d.ts.map +1 -0
  12. package/dist/canary.js +130 -0
  13. package/dist/canary.js.map +1 -0
  14. package/dist/changelog.d.ts +111 -0
  15. package/dist/changelog.d.ts.map +1 -0
  16. package/dist/changelog.js +285 -0
  17. package/dist/changelog.js.map +1 -0
  18. package/dist/cli.d.ts +3 -0
  19. package/dist/cli.d.ts.map +1 -0
  20. package/dist/cli.js +1076 -0
  21. package/dist/cli.js.map +1 -0
  22. package/dist/config-edit.d.ts +18 -0
  23. package/dist/config-edit.d.ts.map +1 -0
  24. package/dist/config-edit.js +166 -0
  25. package/dist/config-edit.js.map +1 -0
  26. package/dist/extends.d.ts +60 -0
  27. package/dist/extends.d.ts.map +1 -0
  28. package/dist/extends.js +173 -0
  29. package/dist/extends.js.map +1 -0
  30. package/dist/extract.d.ts +31 -0
  31. package/dist/extract.d.ts.map +1 -0
  32. package/dist/extract.js +177 -0
  33. package/dist/extract.js.map +1 -0
  34. package/dist/forks.d.ts +116 -0
  35. package/dist/forks.d.ts.map +1 -0
  36. package/dist/forks.js +357 -0
  37. package/dist/forks.js.map +1 -0
  38. package/dist/git-url.d.ts +19 -0
  39. package/dist/git-url.d.ts.map +1 -0
  40. package/dist/git-url.js +55 -0
  41. package/dist/git-url.js.map +1 -0
  42. package/dist/index.d.ts +21 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +11 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/inherit.d.ts +18 -0
  47. package/dist/inherit.d.ts.map +1 -0
  48. package/dist/inherit.js +84 -0
  49. package/dist/inherit.js.map +1 -0
  50. package/dist/manifest.d.ts +43 -0
  51. package/dist/manifest.d.ts.map +1 -0
  52. package/dist/manifest.js +64 -0
  53. package/dist/manifest.js.map +1 -0
  54. package/dist/overrides.d.ts +32 -0
  55. package/dist/overrides.d.ts.map +1 -0
  56. package/dist/overrides.js +81 -0
  57. package/dist/overrides.js.map +1 -0
  58. package/dist/policy.d.ts +86 -0
  59. package/dist/policy.d.ts.map +1 -0
  60. package/dist/policy.js +269 -0
  61. package/dist/policy.js.map +1 -0
  62. package/dist/readme.d.ts +60 -0
  63. package/dist/readme.d.ts.map +1 -0
  64. package/dist/readme.js +304 -0
  65. package/dist/readme.js.map +1 -0
  66. package/dist/release.d.ts +164 -0
  67. package/dist/release.d.ts.map +1 -0
  68. package/dist/release.js +454 -0
  69. package/dist/release.js.map +1 -0
  70. package/dist/scaffold.d.ts +45 -0
  71. package/dist/scaffold.d.ts.map +1 -0
  72. package/dist/scaffold.js +492 -0
  73. package/dist/scaffold.js.map +1 -0
  74. package/dist/submodules.d.ts +144 -0
  75. package/dist/submodules.d.ts.map +1 -0
  76. package/dist/submodules.js +315 -0
  77. package/dist/submodules.js.map +1 -0
  78. package/dist/workflows.d.ts +102 -0
  79. package/dist/workflows.d.ts.map +1 -0
  80. package/dist/workflows.js +710 -0
  81. package/dist/workflows.js.map +1 -0
  82. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forks.js","sourceRoot":"","sources":["../src/forks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Git remote URLs, normalised for hosts that clone submodules anonymously.
3
+ *
4
+ * A submodule URL is recorded in `.gitmodules` and committed, so whatever is
5
+ * written there is what every later clone uses — including builds on a host
6
+ * that has no SSH key. Vercel clones submodules over HTTPS and only public
7
+ * ones, so an `scp`-style or `ssh://` URL checks out fine locally and then
8
+ * fails in the build.
9
+ */
10
+ export declare const isSsh: (url: string) => boolean;
11
+ /**
12
+ * The HTTPS form of a remote, or the URL unchanged when there is none.
13
+ *
14
+ * Local paths and URLs that already speak HTTP are left alone.
15
+ */
16
+ export declare const toHttps: (url: string) => string;
17
+ /** `https://github.com/acme/widget.git` -> `acme/widget`, for messages. */
18
+ export declare const describeRemote: (url: string) => string;
19
+ //# sourceMappingURL=git-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-url.d.ts","sourceRoot":"","sources":["../src/git-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,OAInC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG,MAsBrC,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MACkC,CAAA"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Git remote URLs, normalised for hosts that clone submodules anonymously.
3
+ *
4
+ * A submodule URL is recorded in `.gitmodules` and committed, so whatever is
5
+ * written there is what every later clone uses — including builds on a host
6
+ * that has no SSH key. Vercel clones submodules over HTTPS and only public
7
+ * ones, so an `scp`-style or `ssh://` URL checks out fine locally and then
8
+ * fails in the build.
9
+ */
10
+ /** `git@host:owner/repo.git` — git's scp-like shorthand, not a real URL. */
11
+ const SCP_LIKE = /^(?:([^@/]+)@)?([^:/]+):(?!\/)(.+)$/;
12
+ /** A path or a `file:` URL, which has no host to rewrite. */
13
+ const isLocal = (url) => url.startsWith('.') ||
14
+ url.startsWith('/') ||
15
+ url.startsWith('file:') ||
16
+ /^[A-Za-z]:[\\/]/.test(url);
17
+ /** `ssh://`, and git's own `git+ssh://` spelling. */
18
+ const SSH_SCHEME = /^(?:git\+)?ssh:\/\//i;
19
+ export const isSsh = (url) => {
20
+ if (isLocal(url))
21
+ return false;
22
+ if (SSH_SCHEME.test(url))
23
+ return true;
24
+ return !/^[a-z][a-z0-9+.-]*:\/\//i.test(url) && SCP_LIKE.test(url);
25
+ };
26
+ /**
27
+ * The HTTPS form of a remote, or the URL unchanged when there is none.
28
+ *
29
+ * Local paths and URLs that already speak HTTP are left alone.
30
+ */
31
+ export const toHttps = (url) => {
32
+ const trimmed = url.trim();
33
+ if (isLocal(trimmed))
34
+ return trimmed;
35
+ if (/^https?:\/\//i.test(trimmed))
36
+ return trimmed;
37
+ const scheme = SSH_SCHEME.exec(trimmed);
38
+ if (scheme) {
39
+ const rest = trimmed.slice(scheme[0].length);
40
+ const at = rest.indexOf('@');
41
+ const withoutUser = at === -1 ? rest : rest.slice(at + 1);
42
+ // Strip a port, which is an SSH port and means nothing over HTTPS.
43
+ const normalised = withoutUser.replace(/^([^/]+?):\d+\//, '$1/');
44
+ return `https://${normalised}`;
45
+ }
46
+ const scp = SCP_LIKE.exec(trimmed);
47
+ if (scp) {
48
+ const [, , host, path] = scp;
49
+ return `https://${host}/${path}`;
50
+ }
51
+ return trimmed;
52
+ };
53
+ /** `https://github.com/acme/widget.git` -> `acme/widget`, for messages. */
54
+ export const describeRemote = (url) => url.replace(/^[a-z]+:\/\//i, '').replace(/^[^@]+@/, '').replace(/\.git$/, '');
55
+ //# sourceMappingURL=git-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-url.js","sourceRoot":"","sources":["../src/git-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,4EAA4E;AAC5E,MAAM,QAAQ,GAAG,qCAAqC,CAAA;AAEtD,6DAA6D;AAC7D,MAAM,OAAO,GAAG,CAAC,GAAW,EAAW,EAAE,CACvC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;IACnB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;IACnB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;IACvB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE7B,qDAAqD;AACrD,MAAM,UAAU,GAAG,sBAAsB,CAAA;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAW,EAAE;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACrC,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACpE,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAA;IACpC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAA;IAEjD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACzD,mEAAmE;QACnE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;QAChE,OAAO,WAAW,UAAU,EAAE,CAAA;IAChC,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,EAAE,AAAD,EAAG,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAA;QAC5B,OAAO,WAAW,IAAI,IAAI,IAAI,EAAE,CAAA;IAClC,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE,CACpD,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ export type { Files } from './scaffold.ts';
2
+ export { VERSIONS, distributionRepo, moduleRepo, monolithRepo, isEmpty, readPackageName, write, } from './scaffold.ts';
3
+ export { addModule, findMonolith, nameFromUrl } from './add-module.ts';
4
+ export type { AddModuleOptions, AddModuleResult } from './add-module.ts';
5
+ export { addMount, ConfigEditError } from './config-edit.ts';
6
+ export type { EditResult } from './config-edit.ts';
7
+ export { describeRemote, isSsh, toHttps } from './git-url.ts';
8
+ export { inspect, isPublic, moveTo, repositoryRoot, setUrl, submodules, target, } from './submodules.ts';
9
+ export type { ReleaseKind, Submodule, SubmoduleState } from './submodules.ts';
10
+ export { assertExtends, describeViolations, findFloorViolations, inspectExtends, readDistribution, readParent, } from './extends.ts';
11
+ export type { Distribution, ExtendsReport, FloorViolation } from './extends.ts';
12
+ export { buildPolicy, findPolicy, setupTurbo, testPolicy, turboTasks, usePolicy } from './policy.ts';
13
+ export type { DistributionPolicy } from './policy.ts';
14
+ export { contribute, distributionBranch, forkModule, integrate, unforkModule } from './forks.ts';
15
+ export type { ContributeResult, ForkResult, Integration, UnforkResult } from './forks.ts';
16
+ export type { ForkState } from './submodules.ts';
17
+ export { readPublishedModules, shippedModules, stampModules } from './manifest.ts';
18
+ export type { PublishedModule, PublishedModules } from './manifest.ts';
19
+ export { inherit } from './inherit.ts';
20
+ export type { Inheritance, InheritedModule } from './inherit.ts';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,KAAK,GACN,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACtE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAExE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,GACP,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE7E,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE/E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACpG,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChG,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzF,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAClF,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ export { VERSIONS, distributionRepo, moduleRepo, monolithRepo, isEmpty, readPackageName, write, } from "./scaffold.js";
2
+ export { addModule, findMonolith, nameFromUrl } from "./add-module.js";
3
+ export { addMount, ConfigEditError } from "./config-edit.js";
4
+ export { describeRemote, isSsh, toHttps } from "./git-url.js";
5
+ export { inspect, isPublic, moveTo, repositoryRoot, setUrl, submodules, target, } from "./submodules.js";
6
+ export { assertExtends, describeViolations, findFloorViolations, inspectExtends, readDistribution, readParent, } from "./extends.js";
7
+ export { buildPolicy, findPolicy, setupTurbo, testPolicy, turboTasks, usePolicy } from "./policy.js";
8
+ export { contribute, distributionBranch, forkModule, integrate, unforkModule } from "./forks.js";
9
+ export { readPublishedModules, shippedModules, stampModules } from "./manifest.js";
10
+ export { inherit } from "./inherit.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,KAAK,GACN,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGtE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,GACP,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGpG,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAIhG,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGlF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { type PublishedModule } from './manifest.ts';
2
+ export interface InheritedModule extends PublishedModule {
3
+ name: string;
4
+ }
5
+ export interface Inheritance {
6
+ parent: string;
7
+ parentVersion: string;
8
+ /** Added, or with a dry run, what would be. */
9
+ added: InheritedModule[];
10
+ /** Shipped already, at whatever version: `check` and `bump` see to that. */
11
+ shipped: string[];
12
+ /** Something is already where the parent has the module. */
13
+ blocked: InheritedModule[];
14
+ }
15
+ export declare const inherit: (root: string, { dryRun }?: {
16
+ dryRun?: boolean;
17
+ }) => Promise<Inheritance>;
18
+ //# sourceMappingURL=inherit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inherit.d.ts","sourceRoot":"","sources":["../src/inherit.ts"],"names":[],"mappings":"AAMA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAsB1E,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,4DAA4D;IAC5D,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B;AAED,eAAO,MAAM,OAAO,GAClB,MAAM,MAAM,EACZ,aAAoB;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,KAC5C,OAAO,CAAC,WAAW,CAqErB,CAAA"}
@@ -0,0 +1,84 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
3
+ import { createRequire } from 'node:module';
4
+ import path from 'node:path';
5
+ import { addModule } from "./add-module.js";
6
+ import { readDistribution } from "./extends.js";
7
+ import { readPublishedModules } from "./manifest.js";
8
+ import { noteInDistribution, repositoryLink } from "./changelog.js";
9
+ import { ensureUpstreamRemote, gitmodulesSet, submodules } from "./submodules.js";
10
+ /**
11
+ * Ship what the distribution this extends ships.
12
+ *
13
+ * An extension starts from its parent: every module the parent's published
14
+ * manifest records, added where the parent has it, from the repository the
15
+ * parent clones it from, at the commit the parent pins. A module the parent
16
+ * ships as a fork comes as the same fork. After that it is the extension's —
17
+ * bumped, forked or moved ahead as it likes, never behind.
18
+ */
19
+ const git = (cwd, args) => {
20
+ try {
21
+ return execFileSync('git', args, { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ };
27
+ export const inherit = async (root, { dryRun = false } = {}) => {
28
+ const own = readDistribution(root);
29
+ if (!own.extends)
30
+ throw new Error(`${own.name} extends nothing, so there is nothing to inherit.`);
31
+ let manifest;
32
+ try {
33
+ const file = createRequire(path.join(root, 'package.json')).resolve(`${own.extends}/package.json`);
34
+ manifest = JSON.parse(readFileSync(file, 'utf8'));
35
+ }
36
+ catch {
37
+ throw new Error(`${own.extends} is not installed, so there is nothing to read. Run pnpm install first.`);
38
+ }
39
+ const published = readPublishedModules(manifest);
40
+ if (!published) {
41
+ throw new Error(`${own.extends}@${manifest.version} does not record where its modules live. ` +
42
+ 'Publish it again with this version of fg-dist, or add them with `fg-dist add-module <url>`.');
43
+ }
44
+ const inheritance = {
45
+ parent: own.extends,
46
+ parentVersion: manifest.version ?? '',
47
+ added: [],
48
+ shipped: [],
49
+ blocked: [],
50
+ };
51
+ for (const [name, module] of Object.entries(published)) {
52
+ if (own.modules[name] !== undefined) {
53
+ inheritance.shipped.push(name);
54
+ continue;
55
+ }
56
+ const target = path.join(root, module.path);
57
+ if (existsSync(target) && readdirSync(target).length > 0) {
58
+ inheritance.blocked.push({ name, ...module });
59
+ continue;
60
+ }
61
+ inheritance.added.push({ name, ...module });
62
+ if (dryRun)
63
+ continue;
64
+ await addModule(root, module.repository, { at: module.path, changelog: false });
65
+ // What the parent pins, which may be past the release its version names.
66
+ if (git(target, ['checkout', '--quiet', module.commit]) === undefined) {
67
+ git(target, ['fetch', '--quiet', 'origin', module.commit]);
68
+ if (git(target, ['checkout', '--quiet', module.commit]) === undefined) {
69
+ throw new Error(`${module.repository} does not have ${module.commit}, which ${own.extends} ships as ${name}.`);
70
+ }
71
+ }
72
+ if (module.upstream) {
73
+ const added = submodules(root).find((submodule) => submodule.relativePath === module.path);
74
+ if (added) {
75
+ gitmodulesSet(root, added.configName, 'upstream', module.upstream);
76
+ ensureUpstreamRemote(target, module.upstream);
77
+ }
78
+ }
79
+ noteInDistribution(root, `\`${name}\` ${module.version} added, as ${own.extends} ships it, from ${repositoryLink(module.repository)}` +
80
+ (module.upstream ? `, a fork of ${repositoryLink(module.upstream)}` : ''));
81
+ }
82
+ return inheritance;
83
+ };
84
+ //# sourceMappingURL=inherit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inherit.js","sourceRoot":"","sources":["../src/inherit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * What a published distribution says it ships.
3
+ *
4
+ * In the repository the submodules are the record, and nothing restates them.
5
+ * A published distribution has no submodules, so its manifest carries them —
6
+ * written into `distribution.modules` as it is published, never committed.
7
+ * That is what an extension is checked against, and what it takes its own
8
+ * modules from.
9
+ */
10
+ export interface PublishedModule {
11
+ version: string;
12
+ /** Where it sits in the distribution, which an extension puts it at too. */
13
+ path: string;
14
+ /** What it is cloned from: the fork, for a module the distribution forked. */
15
+ repository: string;
16
+ /** Where a fork was forked from. */
17
+ upstream?: string;
18
+ /** The commit shipped, which may be ahead of the version's release. */
19
+ commit: string;
20
+ }
21
+ export type PublishedModules = Record<string, PublishedModule>;
22
+ /** What this distribution ships, read from its checkouts. */
23
+ export declare const shippedModules: (root: string) => PublishedModules;
24
+ /**
25
+ * Write what the distribution ships into its manifest, ready to publish.
26
+ *
27
+ * For CI, before `npm publish`: the repository's manifest is left without it,
28
+ * since the submodules already say it.
29
+ */
30
+ export declare const stampModules: (root: string, fields?: {
31
+ version?: string;
32
+ gitSha?: string;
33
+ }) => Promise<PublishedModules>;
34
+ /**
35
+ * The modules a published distribution records, with where each lives, or
36
+ * undefined when it records none: published before this was written down.
37
+ */
38
+ export declare const readPublishedModules: (manifest: {
39
+ distribution?: {
40
+ modules?: unknown;
41
+ };
42
+ }) => PublishedModules | undefined;
43
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAE9D,6DAA6D;AAC7D,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,gBA2B7C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,SAAQ;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,KACjD,OAAO,CAAC,gBAAgB,CAiB1B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU;IAC7C,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACrC,KAAG,gBAAgB,GAAG,SAWtB,CAAA"}
@@ -0,0 +1,64 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { readFile, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { submodules, uninitialised } from "./submodules.js";
5
+ /** What this distribution ships, read from its checkouts. */
6
+ export const shippedModules = (root) => {
7
+ const missing = uninitialised(root);
8
+ if (missing.length > 0) {
9
+ throw new Error(`These modules are not checked out, so what they are cannot be recorded: ${missing.join(', ')}. ` +
10
+ 'Publish from a clone with its submodules (actions/checkout: `submodules: true`).');
11
+ }
12
+ const modules = {};
13
+ for (const submodule of submodules(root)) {
14
+ let pkg;
15
+ try {
16
+ pkg = JSON.parse(readFileSync(path.join(submodule.path, 'package.json'), 'utf8'));
17
+ }
18
+ catch {
19
+ continue;
20
+ }
21
+ if (typeof pkg.name !== 'string' || typeof pkg.version !== 'string')
22
+ continue;
23
+ modules[pkg.name] = {
24
+ version: pkg.version,
25
+ path: submodule.relativePath,
26
+ repository: submodule.url,
27
+ ...(submodule.upstream ? { upstream: submodule.upstream } : {}),
28
+ commit: submodule.pinned,
29
+ };
30
+ }
31
+ return modules;
32
+ };
33
+ /**
34
+ * Write what the distribution ships into its manifest, ready to publish.
35
+ *
36
+ * For CI, before `npm publish`: the repository's manifest is left without it,
37
+ * since the submodules already say it.
38
+ */
39
+ export const stampModules = async (root, fields = {}) => {
40
+ const file = path.join(root, 'package.json');
41
+ const manifest = JSON.parse(await readFile(file, 'utf8'));
42
+ const modules = shippedModules(root);
43
+ await writeFile(file, `${JSON.stringify({
44
+ ...manifest,
45
+ ...fields,
46
+ distribution: { ...manifest.distribution, modules },
47
+ }, null, 2)}\n`);
48
+ return modules;
49
+ };
50
+ /**
51
+ * The modules a published distribution records, with where each lives, or
52
+ * undefined when it records none: published before this was written down.
53
+ */
54
+ export const readPublishedModules = (manifest) => {
55
+ const modules = manifest.distribution?.modules;
56
+ if (!modules || typeof modules !== 'object')
57
+ return undefined;
58
+ const entries = Object.entries(modules).filter(([, module]) => typeof module?.version === 'string' &&
59
+ typeof module.path === 'string' &&
60
+ typeof module.repository === 'string' &&
61
+ typeof module.commit === 'string');
62
+ return Object.fromEntries(entries);
63
+ };
64
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The block that makes a distribution's own checkouts win.
3
+ *
4
+ * Without it, a module resolves a sibling through its declared range, and the
5
+ * range stops matching the moment the sibling's submodule is bumped past it —
6
+ * at which point pnpm quietly installs the published copy instead of the
7
+ * checkout. `workspace:*` says what the distribution means: whatever is in the
8
+ * tree, whatever version it is at.
9
+ *
10
+ * Names, not versions. The version still comes from the submodule pin, which
11
+ * is the whole point of pinning it there.
12
+ */
13
+ export declare const overridesBlock: (names: string[]) => string;
14
+ export declare class OverridesError extends Error {
15
+ }
16
+ export interface OverridesResult {
17
+ file: string;
18
+ names: string[];
19
+ changed: boolean;
20
+ /** True when there is no pnpm-workspace.yaml to write into. */
21
+ missing: boolean;
22
+ }
23
+ /**
24
+ * Point the distribution's overrides at every module it ships.
25
+ *
26
+ * A distribution with no submodules is left alone: there is nothing to
27
+ * override, and writing an empty block would only be noise.
28
+ */
29
+ export declare const writeOverrides: (root: string, { check }?: {
30
+ check?: boolean;
31
+ }) => Promise<OverridesResult>;
32
+ //# sourceMappingURL=overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../src/overrides.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,KAAG,MASnC,CAAA;AAEd,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAwB5C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,MAAM,EACZ,YAAmB;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,KAC1C,OAAO,CAAC,eAAe,CA8BzB,CAAA"}
@@ -0,0 +1,81 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { submodules, uninitialised } from "./submodules.js";
4
+ import { readPackageName } from "./scaffold.js";
5
+ const MARKER = '# fg:overrides';
6
+ const WORKSPACE = 'pnpm-workspace.yaml';
7
+ /**
8
+ * The block that makes a distribution's own checkouts win.
9
+ *
10
+ * Without it, a module resolves a sibling through its declared range, and the
11
+ * range stops matching the moment the sibling's submodule is bumped past it —
12
+ * at which point pnpm quietly installs the published copy instead of the
13
+ * checkout. `workspace:*` says what the distribution means: whatever is in the
14
+ * tree, whatever version it is at.
15
+ *
16
+ * Names, not versions. The version still comes from the submodule pin, which
17
+ * is the whole point of pinning it there.
18
+ */
19
+ export const overridesBlock = (names) => [
20
+ MARKER,
21
+ '# A distribution uses its own checkouts, whatever version they are at. The',
22
+ '# ranges in each module stay honest for publishing; this is what stops them',
23
+ '# being resolved from the registry once a submodule moves past them.',
24
+ 'overrides:',
25
+ ...names.map((name) => ` "${name}": "workspace:*"`),
26
+ `${MARKER}:end`,
27
+ ].join('\n');
28
+ export class OverridesError extends Error {
29
+ }
30
+ /** Replace the block if it is there, otherwise put one at the end. */
31
+ const splice = (source, block) => {
32
+ const start = source.indexOf(`${MARKER}\n`);
33
+ const end = source.indexOf(`${MARKER}:end`);
34
+ if (start !== -1 && end !== -1) {
35
+ return source.slice(0, start) + block + source.slice(end + `${MARKER}:end`.length);
36
+ }
37
+ // A second `overrides:` key is not a merge, it is a YAML file pnpm will
38
+ // either reject or read half of. Whoever wrote the existing one meant it.
39
+ if (/^overrides:/m.test(source)) {
40
+ throw new OverridesError(`${WORKSPACE} already has an \`overrides:\` key that this did not write. ` +
41
+ `Put ${MARKER} and ${MARKER}:end around it, or fold the modules into it yourself.`);
42
+ }
43
+ const separator = source.endsWith('\n') ? '\n' : '\n\n';
44
+ return `${source}${separator}${block}\n`;
45
+ };
46
+ /**
47
+ * Point the distribution's overrides at every module it ships.
48
+ *
49
+ * A distribution with no submodules is left alone: there is nothing to
50
+ * override, and writing an empty block would only be noise.
51
+ */
52
+ export const writeOverrides = async (root, { check = false } = {}) => {
53
+ const file = path.join(root, WORKSPACE);
54
+ // A submodule with no checkout has no package.json to read a name from, and
55
+ // dropping its entry would quietly let that module resolve from the registry
56
+ // — which is the exact thing these overrides exist to prevent.
57
+ const absent = uninitialised(root);
58
+ if (absent.length > 0) {
59
+ throw new OverridesError(`These submodules are not checked out, so their names cannot be read: ` +
60
+ `${absent.join(', ')}.\nRun \`git submodule update --init\` first.`);
61
+ }
62
+ const names = [];
63
+ for (const submodule of submodules(root)) {
64
+ const name = await readPackageName(submodule.path);
65
+ if (name)
66
+ names.push(name);
67
+ }
68
+ names.sort();
69
+ const existing = await readFile(file, 'utf8').catch(() => undefined);
70
+ if (existing === undefined)
71
+ return { file, names, changed: false, missing: true };
72
+ if (names.length === 0)
73
+ return { file, names, changed: false, missing: false };
74
+ const updated = splice(existing, overridesBlock(names));
75
+ if (updated === existing)
76
+ return { file, names, changed: false, missing: false };
77
+ if (!check)
78
+ await writeFile(file, updated);
79
+ return { file, names, changed: true, missing: false };
80
+ };
81
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../src/overrides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * A distribution's policy: the organization's rules for every service it
3
+ * ships, kept in `policies/` beside `apps/` and `packages/`, and marked by the
4
+ * `.manifest` that says whose they are.
5
+ *
6
+ * It is built in layers — each module's own `policies/`, then the policy of
7
+ * any distribution this one extends, then its own — into one bundle, named
8
+ * after the distribution's version and what is in it. `policies/` is a
9
+ * workspace package, so turbo builds it once, and every service's build
10
+ * takes a copy (`fg-dist policy use`) to run. Upgrading a module brings its
11
+ * rules; the organization's stay as they were.
12
+ *
13
+ * Compiling is `@fairgarden/policy`'s: this finds the layers and hands them
14
+ * to whichever `fg-policy` the distribution installed.
15
+ */
16
+ export declare const POLICIES = "policies";
17
+ /** Where the bundle is built, inside `policies/`. */
18
+ export declare const BUILT: string;
19
+ /** Where a service runs it from, inside the service; `@fairgarden/policy` looks there. */
20
+ export declare const USED: string;
21
+ export interface DistributionPolicy {
22
+ /** The distribution's root. */
23
+ root: string;
24
+ /** Its `policies/`. */
25
+ dir: string;
26
+ /** The distribution's version: the release every revision belongs to. */
27
+ version: string | undefined;
28
+ /** Each module's own `policies/`. */
29
+ bases: string[];
30
+ /** The published `policies/` of each distribution this extends, the furthest first. */
31
+ parents: string[];
32
+ /** Where the bundle is built. */
33
+ built: string;
34
+ }
35
+ /**
36
+ * The distribution around `from`, if it has a policy: the nearest directory
37
+ * above with an organization's `policies/`. Found on disk rather than by
38
+ * git, which a build host may not have, and which stops at a submodule.
39
+ */
40
+ export declare const findPolicy: (from: string) => DistributionPolicy | undefined;
41
+ /**
42
+ * What the bundle is built from, as a digest: every rule, setting and
43
+ * manifest in every layer, and the version it is named after. A bundle built
44
+ * from anything else — a rule since changed, added or deleted — is out of date.
45
+ */
46
+ export declare const inputsDigest: (policy: DistributionPolicy) => string;
47
+ /** Build the bundle, named after the distribution's version. */
48
+ export declare const buildPolicy: (policy: DistributionPolicy, from?: string, out?: string) => number;
49
+ /** Each module's tests on its own rules, then the organization's on them all. */
50
+ export declare const testPolicy: (policy: DistributionPolicy, from?: string) => number;
51
+ /**
52
+ * Put the distribution's policy beside the service in `project`, for it to
53
+ * run: the bundle turbo already built, or one built now if there is none, or
54
+ * it was built from anything other than the rules as they are. Outside a
55
+ * distribution, nothing — and no copy left from before: the service's
56
+ * built-in rules decide.
57
+ */
58
+ export declare const usePolicy: (project: string) => {
59
+ policy?: DistributionPolicy;
60
+ status: number;
61
+ };
62
+ type TurboTask = {
63
+ dependsOn?: string[];
64
+ inputs?: string[];
65
+ outputs?: string[];
66
+ [key: string]: unknown;
67
+ };
68
+ /**
69
+ * What turbo needs, so the policy is built once however many services run
70
+ * it: the policy's own tasks, which read every module's rules as well as its
71
+ * own, and each project whose build uses it waiting for it to be built.
72
+ *
73
+ * A project's task is the generic one plus the policy, unless `existing`
74
+ * already has one for it: that is kept as it is — a monolith's waits for its
75
+ * apps' libraries rather than their builds, say — and only gains the policy.
76
+ */
77
+ export declare const turboTasks: (policy: DistributionPolicy, generic: TurboTask, genericDev?: TurboTask, existing?: Record<string, TurboTask>) => Record<string, TurboTask>;
78
+ /**
79
+ * Write the policy's tasks into turbo.json, or with `check`, say which are
80
+ * missing or out of date. Returns what differed.
81
+ */
82
+ export declare const setupTurbo: (policy: DistributionPolicy, { check }?: {
83
+ check?: boolean | undefined;
84
+ }) => string[];
85
+ export {};
86
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,QAAQ,aAAa,CAAA;AAClC,qDAAqD;AACrD,eAAO,MAAM,KAAK,QAAuC,CAAA;AACzD,0FAA0F;AAC1F,eAAO,MAAM,IAAI,QAA0C,CAAA;AAI3D,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,qCAAqC;IACrC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAA;CACd;AAkDD;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,kBAAkB,GAAG,SAM9D,CAAA;AAgDD;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,kBAAkB,KAAG,MAazD,CAAA;AAKD,gEAAgE;AAChE,eAAO,MAAM,WAAW,GAAI,QAAQ,kBAAkB,EAAE,aAAkB,EAAE,YAAkB,KAAG,MAWhG,CAAA;AAED,iFAAiF;AACjF,eAAO,MAAM,UAAU,GAAI,QAAQ,kBAAkB,EAAE,aAAkB,KAAG,MACzB,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG;IAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAkBxF,CAAA;AAED,KAAK,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAMxG;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,QAAQ,kBAAkB,EAC1B,SAAS,SAAS,EAClB,aAAY,SAA8C,EAC1D,WAAU,MAAM,CAAC,MAAM,EAAE,SAAS,CAAM,KACvC,MAAM,CAAC,MAAM,EAAE,SAAS,CA4C1B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,kBAAkB,EAAE;;CAAsB,KAAG,MAAM,EAWrF,CAAA"}