@fairgarden/distribution 0.1.0-alpha.0 → 0.1.0-alpha.2

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 +6 -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 +111 -0
  14. package/dist/changelog.d.ts.map +1 -0
  15. package/dist/changelog.js +285 -0
  16. package/dist/changelog.js.map +1 -0
  17. package/dist/cli.js +341 -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 +9 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -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 +86 -0
  40. package/dist/policy.d.ts.map +1 -0
  41. package/dist/policy.js +269 -0
  42. package/dist/policy.js.map +1 -0
  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 +24 -0
  48. package/dist/release.d.ts.map +1 -1
  49. package/dist/release.js +51 -6
  50. package/dist/release.js.map +1 -1
  51. package/dist/scaffold.d.ts +4 -5
  52. package/dist/scaffold.d.ts.map +1 -1
  53. package/dist/scaffold.js +167 -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 +372 -20
  62. package/dist/workflows.js.map +1 -1
  63. package/package.json +14 -12
@@ -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,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"}
package/dist/policy.js ADDED
@@ -0,0 +1,269 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { createHash } from 'node:crypto';
3
+ import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
4
+ import { createRequire } from 'node:module';
5
+ import path from 'node:path';
6
+ /**
7
+ * A distribution's policy: the organization's rules for every service it
8
+ * ships, kept in `policies/` beside `apps/` and `packages/`, and marked by the
9
+ * `.manifest` that says whose they are.
10
+ *
11
+ * It is built in layers — each module's own `policies/`, then the policy of
12
+ * any distribution this one extends, then its own — into one bundle, named
13
+ * after the distribution's version and what is in it. `policies/` is a
14
+ * workspace package, so turbo builds it once, and every service's build
15
+ * takes a copy (`fg-dist policy use`) to run. Upgrading a module brings its
16
+ * rules; the organization's stay as they were.
17
+ *
18
+ * Compiling is `@fairgarden/policy`'s: this finds the layers and hands them
19
+ * to whichever `fg-policy` the distribution installed.
20
+ */
21
+ export const POLICIES = 'policies';
22
+ /** Where the bundle is built, inside `policies/`. */
23
+ export const BUILT = path.join('dist', 'policies.tar.gz');
24
+ /** Where a service runs it from, inside the service; `@fairgarden/policy` looks there. */
25
+ export const USED = path.join('.policy', 'policies.tar.gz');
26
+ /** What marks a project as running the policy, in its build script. */
27
+ const USES = 'fg-dist policy use';
28
+ const readJson = (file) => JSON.parse(readFileSync(file, 'utf8'));
29
+ /** A `policies/` with a `.manifest` is an organization's; a module's own has none. */
30
+ const isOrganizations = (dir) => existsSync(path.join(dir, '.manifest'));
31
+ /** The published policy of what `root` extends, and of what that extends, the furthest first. */
32
+ const parentsOf = (root, seen = new Set()) => {
33
+ const parent = readJson(path.join(root, 'package.json')).distribution?.extends;
34
+ if (!parent || seen.has(parent))
35
+ return [];
36
+ seen.add(parent);
37
+ let parentRoot;
38
+ try {
39
+ parentRoot = path.dirname(createRequire(path.join(root, 'package.json')).resolve(`${parent}/package.json`));
40
+ }
41
+ catch {
42
+ // Not installed: `fg-dist check` says so; there is nothing to build on.
43
+ return [];
44
+ }
45
+ const dir = path.join(parentRoot, POLICIES);
46
+ return [...parentsOf(parentRoot, seen), ...(isOrganizations(dir) ? [dir] : [])];
47
+ };
48
+ const describe = (root) => {
49
+ const bases = [];
50
+ for (const group of ['apps', 'packages']) {
51
+ const entries = existsSync(path.join(root, group)) ? readdirSync(path.join(root, group)).sort() : [];
52
+ for (const name of entries) {
53
+ const dir = path.join(root, group, name, POLICIES);
54
+ if (existsSync(dir) && statSync(dir).isDirectory() && !isOrganizations(dir))
55
+ bases.push(dir);
56
+ }
57
+ }
58
+ const dir = path.join(root, POLICIES);
59
+ return {
60
+ root,
61
+ dir,
62
+ version: readJson(path.join(root, 'package.json')).version,
63
+ bases,
64
+ parents: parentsOf(root),
65
+ built: path.join(dir, BUILT),
66
+ };
67
+ };
68
+ /**
69
+ * The distribution around `from`, if it has a policy: the nearest directory
70
+ * above with an organization's `policies/`. Found on disk rather than by
71
+ * git, which a build host may not have, and which stops at a submodule.
72
+ */
73
+ export const findPolicy = (from) => {
74
+ for (let dir = path.resolve(from);; dir = path.dirname(dir)) {
75
+ if (path.basename(dir) === POLICIES && isOrganizations(dir))
76
+ return describe(path.dirname(dir));
77
+ if (isOrganizations(path.join(dir, POLICIES)))
78
+ return describe(dir);
79
+ if (path.dirname(dir) === dir)
80
+ return undefined;
81
+ }
82
+ };
83
+ /** Where a package is installed, seen from `base`, whether or not it exports its package.json. */
84
+ const packageDir = (base, name) => {
85
+ const require = createRequire(path.join(base, 'package.json'));
86
+ try {
87
+ return path.dirname(require.resolve(`${name}/package.json`));
88
+ }
89
+ catch {
90
+ // Not exported: find it from its entry point instead.
91
+ }
92
+ try {
93
+ for (let dir = path.dirname(require.resolve(name)); path.dirname(dir) !== dir; dir = path.dirname(dir)) {
94
+ const file = path.join(dir, 'package.json');
95
+ if (existsSync(file) && readJson(file).name === name)
96
+ return dir;
97
+ }
98
+ }
99
+ catch {
100
+ // Not installed here.
101
+ }
102
+ return undefined;
103
+ };
104
+ /** The `fg-policy` the distribution installed, from `from` or its root. */
105
+ const fgPolicy = (policy, from) => {
106
+ for (const base of [from, policy.dir, policy.root]) {
107
+ const dir = packageDir(base, '@fairgarden/policy');
108
+ if (!dir)
109
+ continue;
110
+ const { bin } = readJson(path.join(dir, 'package.json'));
111
+ return path.join(dir, bin['fg-policy']);
112
+ }
113
+ throw new Error('@fairgarden/policy is not installed here; add it to policies/package.json.');
114
+ };
115
+ const layerArgs = (policy) => {
116
+ const relative = (dir) => path.relative(policy.root, dir);
117
+ return [
118
+ '--dir',
119
+ relative(policy.dir),
120
+ ...policy.bases.flatMap((dir) => ['--base', relative(dir)]),
121
+ ...policy.parents.flatMap((dir) => ['--parent', relative(dir)]),
122
+ ];
123
+ };
124
+ const run = (policy, from, args) => {
125
+ const result = spawnSync(process.execPath, [fgPolicy(policy, from), ...args], { cwd: policy.root, stdio: 'inherit' });
126
+ if (result.error)
127
+ throw result.error;
128
+ return result.status ?? 1;
129
+ };
130
+ /**
131
+ * What the bundle is built from, as a digest: every rule, setting and
132
+ * manifest in every layer, and the version it is named after. A bundle built
133
+ * from anything else — a rule since changed, added or deleted — is out of date.
134
+ */
135
+ export const inputsDigest = (policy) => {
136
+ const hash = createHash('sha256').update(`${policy.version ?? ''}\0`);
137
+ for (const dir of [...policy.bases, ...policy.parents, policy.dir]) {
138
+ const files = readdirSync(dir, { recursive: true, encoding: 'utf8' })
139
+ .filter((file) => !file.split(path.sep).some((part) => part === 'node_modules' || part === 'dist'))
140
+ .filter((file) => /(\.rego|data\.json|\.manifest)$/.test(file))
141
+ .sort();
142
+ for (const file of files) {
143
+ hash.update(`${path.relative(policy.root, path.join(dir, file)).split(path.sep).join('/')}\0`);
144
+ hash.update(readFileSync(path.join(dir, file))).update('\0');
145
+ }
146
+ }
147
+ return hash.digest('hex');
148
+ };
149
+ /** Beside the bundle: the digest of what it was built from. */
150
+ const inputsFile = (built) => `${built}.inputs`;
151
+ /** Build the bundle, named after the distribution's version. */
152
+ export const buildPolicy = (policy, from = policy.root, out = policy.built) => {
153
+ const digest = inputsDigest(policy);
154
+ const status = run(policy, from, [
155
+ 'build',
156
+ ...layerArgs(policy),
157
+ ...(policy.version ? ['--release', policy.version] : []),
158
+ '--out',
159
+ out,
160
+ ]);
161
+ if (status === 0)
162
+ writeFileSync(inputsFile(out), `${digest}\n`);
163
+ return status;
164
+ };
165
+ /** Each module's tests on its own rules, then the organization's on them all. */
166
+ export const testPolicy = (policy, from = policy.root) => run(policy, from, ['test', ...layerArgs(policy)]);
167
+ /**
168
+ * Put the distribution's policy beside the service in `project`, for it to
169
+ * run: the bundle turbo already built, or one built now if there is none, or
170
+ * it was built from anything other than the rules as they are. Outside a
171
+ * distribution, nothing — and no copy left from before: the service's
172
+ * built-in rules decide.
173
+ */
174
+ export const usePolicy = (project) => {
175
+ const used = path.join(project, USED);
176
+ const policy = findPolicy(project);
177
+ if (!policy) {
178
+ rmSync(used, { force: true });
179
+ return { status: 0 };
180
+ }
181
+ const built = existsSync(inputsFile(policy.built)) ? readFileSync(inputsFile(policy.built), 'utf8').trim() : undefined;
182
+ if (!existsSync(policy.built) || built !== inputsDigest(policy)) {
183
+ const status = buildPolicy(policy, project);
184
+ if (status !== 0)
185
+ return { policy, status };
186
+ }
187
+ mkdirSync(path.dirname(used), { recursive: true });
188
+ // Whole or not at all, for a server reading it meanwhile.
189
+ const partial = `${used}.${process.pid}.partial`;
190
+ copyFileSync(policy.built, partial);
191
+ renameSync(partial, used);
192
+ return { policy, status: 0 };
193
+ };
194
+ /** `list` with `entry` at the end, unless it has it already. */
195
+ const including = (list, entry) => list?.includes(entry) ? list : [...(list ?? []), entry];
196
+ /**
197
+ * What turbo needs, so the policy is built once however many services run
198
+ * it: the policy's own tasks, which read every module's rules as well as its
199
+ * own, and each project whose build uses it waiting for it to be built.
200
+ *
201
+ * A project's task is the generic one plus the policy, unless `existing`
202
+ * already has one for it: that is kept as it is — a monolith's waits for its
203
+ * apps' libraries rather than their builds, say — and only gains the policy.
204
+ */
205
+ export const turboTasks = (policy, generic, genericDev = { persistent: true, cache: false }, existing = {}) => {
206
+ const name = readJson(path.join(policy.dir, 'package.json')).name;
207
+ if (!name)
208
+ throw new Error(`${path.join(POLICIES, 'package.json')} needs a name.`);
209
+ const inputs = [
210
+ '$TURBO_DEFAULT$',
211
+ '$TURBO_ROOT$/apps/*/policies/**',
212
+ '$TURBO_ROOT$/packages/*/policies/**',
213
+ // The distribution's version names every revision.
214
+ '$TURBO_ROOT$/package.json',
215
+ // What it extends is installed, so its policy changes with the lockfile.
216
+ ...(policy.parents.length > 0 ? ['$TURBO_ROOT$/pnpm-lock.yaml'] : []),
217
+ ];
218
+ // Not hashed: which opa compiles it changes nothing, and the commit is only
219
+ // where a revision was first built — the same rules are the same revision.
220
+ // A signing key is hashed, so adding one does not bring back an unsigned build.
221
+ const passThroughEnv = ['OPA', 'VERCEL_GIT_COMMIT_SHA', 'GITHUB_SHA'];
222
+ const tasks = {
223
+ [`${name}#build`]: { dependsOn: ['^build'], inputs, outputs: ['dist/**'], env: ['FG_POLICY_SIGNING_KEY'], passThroughEnv },
224
+ [`${name}#test`]: { dependsOn: ['^build'], inputs, passThroughEnv: ['OPA'] },
225
+ };
226
+ for (const group of ['apps', 'packages']) {
227
+ const entries = existsSync(path.join(policy.root, group)) ? readdirSync(path.join(policy.root, group)).sort() : [];
228
+ for (const entry of entries) {
229
+ const file = path.join(policy.root, group, entry, 'package.json');
230
+ if (!existsSync(file))
231
+ continue;
232
+ const pkg = readJson(file);
233
+ if (!pkg.name)
234
+ continue;
235
+ if (pkg.scripts?.build?.includes(USES)) {
236
+ const base = existing[`${pkg.name}#build`] ?? generic;
237
+ tasks[`${pkg.name}#build`] = {
238
+ ...base,
239
+ dependsOn: including(base.dependsOn, `${name}#build`),
240
+ // The copy it runs is part of what it built: a cached build brings it back.
241
+ outputs: including(base.outputs, `${path.dirname(USED)}/**`),
242
+ };
243
+ }
244
+ // A fresh checkout has built neither the policy nor the tools that build it.
245
+ if (pkg.scripts?.dev?.includes(USES)) {
246
+ const base = existing[`${pkg.name}#dev`] ?? genericDev;
247
+ tasks[`${pkg.name}#dev`] = { ...base, dependsOn: including(base.dependsOn, `${name}#build`) };
248
+ }
249
+ }
250
+ }
251
+ return tasks;
252
+ };
253
+ /**
254
+ * Write the policy's tasks into turbo.json, or with `check`, say which are
255
+ * missing or out of date. Returns what differed.
256
+ */
257
+ export const setupTurbo = (policy, { check = false } = {}) => {
258
+ const file = path.join(policy.root, 'turbo.json');
259
+ const turbo = readJson(file);
260
+ const tasks = turbo.tasks ?? {};
261
+ const wanted = turboTasks(policy, tasks.build ?? { dependsOn: ['^build'] }, tasks.dev, tasks);
262
+ const differ = Object.keys(wanted).filter((key) => JSON.stringify(tasks[key]) !== JSON.stringify(wanted[key]));
263
+ if (!check && differ.length > 0) {
264
+ turbo.tasks = { ...tasks, ...wanted };
265
+ writeFileSync(file, `${JSON.stringify(turbo, null, 2)}\n`);
266
+ }
267
+ return differ;
268
+ };
269
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
package/dist/readme.d.ts CHANGED
@@ -24,6 +24,8 @@ export interface ModuleVersion {
24
24
  released: boolean;
25
25
  /** Where the repository can be browsed, when it has a web address. */
26
26
  url: string | undefined;
27
+ /** For a fork, where the repository it was forked from can be browsed, or its url. */
28
+ upstream: string | undefined;
27
29
  /** What the module is, from its own package.json. */
28
30
  description: string | undefined;
29
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"readme.d.ts","sourceRoot":"","sources":["../src/readme.ts"],"names":[],"mappings":"AA2CA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,MAAM,MAAM;AACZ;;;;GAIG;AACH,QAAQ,MAAM,KACb,MA2BF,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAA;IACjB,sEAAsE;IACtE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,qDAAqD;IACrD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAqCD,0DAA0D;AAC1D,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,aAAa,EAAE,CAS1E,CAAA;AAkED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,MA4DhE,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,+EAA+E;IAC/E,IAAI,EAAE,cAAc,GAAG,QAAQ,CAAA;CAChC;AA8BD;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,YAAmB;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,KAC1C,OAAO,CAAC,YAAY,CA6FtB,CAAA"}
1
+ {"version":3,"file":"readme.d.ts","sourceRoot":"","sources":["../src/readme.ts"],"names":[],"mappings":"AA2CA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,MAAM,MAAM;AACZ;;;;GAIG;AACH,QAAQ,MAAM,KACb,MA2BF,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAA;IACjB,sEAAsE;IACtE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,qDAAqD;IACrD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAqCD,0DAA0D;AAC1D,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,aAAa,EAAE,CAS1E,CAAA;AAuED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,MA4DhE,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,+EAA+E;IAC/E,IAAI,EAAE,cAAc,GAAG,QAAQ,CAAA;CAChC;AA8BD;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,YAAmB;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,KAC1C,OAAO,CAAC,YAAY,CA6FtB,CAAA"}
package/dist/readme.js CHANGED
@@ -100,6 +100,7 @@ const readManifest = async (submodule) => {
100
100
  tag: state.current,
101
101
  released: state.exact,
102
102
  url: browsableAt(submodule.url),
103
+ upstream: submodule.upstream && (browsableAt(submodule.upstream) ?? submodule.upstream),
103
104
  };
104
105
  }
105
106
  catch {
@@ -116,7 +117,11 @@ const modulesTable = (modules) => {
116
117
  // An empty cell is honest: it shows which modules have yet to say what
117
118
  // they are, rather than hiding it.
118
119
  const what = module.description ? `<br>${module.description}` : '';
119
- return `| ${name}${what} | ${module.version} | ${pinnedAs(module)} | \`${module.relativePath}\` |`;
120
+ // A fork is shipped from somewhere other than where the module lives.
121
+ const fork = module.upstream
122
+ ? `<br>Fork of ${/^https?:/.test(module.upstream) ? link(module.upstream.replace(/^https?:\/\//, ''), module.upstream) : module.upstream}`
123
+ : '';
124
+ return `| ${name}${what}${fork} | ${module.version} | ${pinnedAs(module)} | \`${module.relativePath}\` |`;
120
125
  }),
121
126
  ];
122
127
  // Only worth explaining when something is actually unreleased.
@@ -1 +1 @@
1
- {"version":3,"file":"readme.js","sourceRoot":"","sources":["../src/readme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readme.js","sourceRoot":"","sources":["../src/readme.ts"],"names":[],"mappings":"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"}
package/dist/release.d.ts CHANGED
@@ -66,6 +66,30 @@ export declare const planPrerelease: (current: string, { bump, id }: {
66
66
  * release is no occasion to reformat it.
67
67
  */
68
68
  export declare const setVersion: (source: string, version: string) => string;
69
+ export interface DistributionRelease {
70
+ name: string;
71
+ /** The version in the manifest before. */
72
+ from: string;
73
+ /** Whether that was published already. */
74
+ published: boolean;
75
+ /** The version the publish workflow releases next. */
76
+ version: string;
77
+ }
78
+ /**
79
+ * Set the version a distribution publishes next — see calver.ts for the shape.
80
+ *
81
+ * Run after publishing, it moves on; run again when the month has turned, it
82
+ * moves a release not yet published to this month's first. Nothing branches:
83
+ * a distribution has no lines of its own, only the modules it pins, and those
84
+ * are released on their own.
85
+ */
86
+ export declare const releaseDistribution: (root: string, { dryRun, on, id, stable, published: lookup, }?: {
87
+ dryRun?: boolean;
88
+ on?: Date;
89
+ id?: string;
90
+ stable?: boolean;
91
+ published?: (spec: string) => string | undefined;
92
+ }) => Promise<DistributionRelease>;
69
93
  /** Read the release the repository is standing on, without changing anything. */
70
94
  export declare const readRelease: (root: string, { bump, id }?: {
71
95
  bump?: Bump;
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}