@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.
- package/Readme.md +97 -0
- package/dist/add-module.d.ts +62 -0
- package/dist/add-module.d.ts.map +1 -0
- package/dist/add-module.js +279 -0
- package/dist/add-module.js.map +1 -0
- package/dist/calver.d.ts +65 -0
- package/dist/calver.d.ts.map +1 -0
- package/dist/calver.js +115 -0
- package/dist/calver.js.map +1 -0
- package/dist/canary.d.ts +58 -0
- package/dist/canary.d.ts.map +1 -0
- package/dist/canary.js +130 -0
- package/dist/canary.js.map +1 -0
- package/dist/changelog.d.ts +111 -0
- package/dist/changelog.d.ts.map +1 -0
- package/dist/changelog.js +285 -0
- package/dist/changelog.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1076 -0
- package/dist/cli.js.map +1 -0
- package/dist/config-edit.d.ts +18 -0
- package/dist/config-edit.d.ts.map +1 -0
- package/dist/config-edit.js +166 -0
- package/dist/config-edit.js.map +1 -0
- package/dist/extends.d.ts +60 -0
- package/dist/extends.d.ts.map +1 -0
- package/dist/extends.js +173 -0
- package/dist/extends.js.map +1 -0
- package/dist/extract.d.ts +31 -0
- package/dist/extract.d.ts.map +1 -0
- package/dist/extract.js +177 -0
- package/dist/extract.js.map +1 -0
- package/dist/forks.d.ts +116 -0
- package/dist/forks.d.ts.map +1 -0
- package/dist/forks.js +357 -0
- package/dist/forks.js.map +1 -0
- package/dist/git-url.d.ts +19 -0
- package/dist/git-url.d.ts.map +1 -0
- package/dist/git-url.js +55 -0
- package/dist/git-url.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/inherit.d.ts +18 -0
- package/dist/inherit.d.ts.map +1 -0
- package/dist/inherit.js +84 -0
- package/dist/inherit.js.map +1 -0
- package/dist/manifest.d.ts +43 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +64 -0
- package/dist/manifest.js.map +1 -0
- package/dist/overrides.d.ts +32 -0
- package/dist/overrides.d.ts.map +1 -0
- package/dist/overrides.js +81 -0
- package/dist/overrides.js.map +1 -0
- package/dist/policy.d.ts +86 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +269 -0
- package/dist/policy.js.map +1 -0
- package/dist/readme.d.ts +60 -0
- package/dist/readme.d.ts.map +1 -0
- package/dist/readme.js +304 -0
- package/dist/readme.js.map +1 -0
- package/dist/release.d.ts +164 -0
- package/dist/release.d.ts.map +1 -0
- package/dist/release.js +454 -0
- package/dist/release.js.map +1 -0
- package/dist/scaffold.d.ts +45 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +492 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/submodules.d.ts +144 -0
- package/dist/submodules.d.ts.map +1 -0
- package/dist/submodules.js +315 -0
- package/dist/submodules.js.map +1 -0
- package/dist/workflows.d.ts +102 -0
- package/dist/workflows.d.ts.map +1 -0
- package/dist/workflows.js +710 -0
- package/dist/workflows.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Files to write, keyed by path relative to the target directory. */
|
|
2
|
+
export type Files = Record<string, string>;
|
|
3
|
+
/** Versions the generated projects pin, kept beside the ones this package uses. */
|
|
4
|
+
export declare const VERSIONS: {
|
|
5
|
+
readonly monolith: "^0.1.0-alpha.0";
|
|
6
|
+
readonly distribution: "^0.1.0-alpha.0";
|
|
7
|
+
readonly policy: "^0.1.0-alpha.0";
|
|
8
|
+
readonly next: "^16.3.5";
|
|
9
|
+
readonly react: "^19.3.0";
|
|
10
|
+
readonly types: {
|
|
11
|
+
readonly node: "^26.6.2";
|
|
12
|
+
readonly react: "^19.3.0";
|
|
13
|
+
readonly reactDom: "^19.3.0";
|
|
14
|
+
};
|
|
15
|
+
readonly eslint: "^9.39.5";
|
|
16
|
+
readonly eslintConfigNext: "^16.3.5";
|
|
17
|
+
readonly portless: "^0.15.6";
|
|
18
|
+
readonly typescript: "^6.0.3";
|
|
19
|
+
readonly pnpm: "pnpm@10.28.0";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A repository that composes modules.
|
|
23
|
+
*
|
|
24
|
+
* The monolith app lives at `apps/monolith` so modules can be added beside it
|
|
25
|
+
* as `apps/<name>`, which is where `add-module` puts them.
|
|
26
|
+
*/
|
|
27
|
+
export declare const monolithRepo: (name: string, origin?: string) => Files;
|
|
28
|
+
export declare const moduleRepo: (packageName: string, origin?: string) => Files;
|
|
29
|
+
/** Write a file map, creating directories as needed. */
|
|
30
|
+
export declare const write: (root: string, files: Files) => Promise<string[]>;
|
|
31
|
+
/** Whether a directory has anything in it, so `init` never writes over work. */
|
|
32
|
+
export declare const isEmpty: (dir: string) => Promise<boolean>;
|
|
33
|
+
export declare const readPackageName: (root: string) => Promise<string | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* A repository that ships a set of modules to end users.
|
|
36
|
+
*
|
|
37
|
+
* The root package.json is the distribution manifest: its version names the
|
|
38
|
+
* month and which release of it this is (see calver.ts), and the modules it
|
|
39
|
+
* ships are its submodules, each at a semver version. `extends` names another distribution whose modules this one
|
|
40
|
+
* inherits and may move ahead of, but never behind.
|
|
41
|
+
*/
|
|
42
|
+
export declare const distributionRepo: (name: string, origin?: string, parent?: string, { monolith }?: {
|
|
43
|
+
monolith?: boolean;
|
|
44
|
+
}) => Files;
|
|
45
|
+
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAMA,sEAAsE;AACtE,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAI1C,mFAAmF;AACnF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAoBX,CAAA;AAwGV;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,KAgF3D,CAAA;AAYF,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,EAAE,SAAS,MAAM,KAAG,KA6GhE,CAAA;AAEF,wDAAwD;AACxD,eAAO,MAAM,KAAK,GAAU,MAAM,MAAM,EAAE,OAAO,KAAK,KAAG,OAAO,CAAC,MAAM,EAAE,CAWxE,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,OAAO,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,OAAO,CAI1D,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAO9E,CAAA;AA+CD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,SAAS,MAAM,EACf,eAAqB;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,KAC/C,KAkGF,CAAA"}
|
package/dist/scaffold.js
ADDED
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
import { mkdir, writeFile, readFile, readdir } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { changelogWorkflow, publishWorkflow, releaseScripts } from "./workflows.js";
|
|
4
|
+
import { CHANGELOG, newChangelog } from "./changelog.js";
|
|
5
|
+
import { firstRelease } from "./calver.js";
|
|
6
|
+
const json = (value) => `${JSON.stringify(value, null, 2)}\n`;
|
|
7
|
+
/** Versions the generated projects pin, kept beside the ones this package uses. */
|
|
8
|
+
export const VERSIONS = {
|
|
9
|
+
monolith: '^0.1.0-alpha.0',
|
|
10
|
+
// Provides `fg-dist`, which the release scripts and the publish workflow call.
|
|
11
|
+
distribution: '^0.1.0-alpha.0',
|
|
12
|
+
// Provides `fg-policy`, which `fg-dist policy` calls to build the organization's policy.
|
|
13
|
+
policy: '^0.1.0-alpha.0',
|
|
14
|
+
next: '^16.3.5',
|
|
15
|
+
react: '^19.3.0',
|
|
16
|
+
types: {
|
|
17
|
+
node: '^26.6.2',
|
|
18
|
+
react: '^19.3.0',
|
|
19
|
+
reactDom: '^19.3.0',
|
|
20
|
+
},
|
|
21
|
+
eslint: '^9.39.5',
|
|
22
|
+
eslintConfigNext: '^16.3.5',
|
|
23
|
+
portless: '^0.15.6',
|
|
24
|
+
typescript: '^6.0.3',
|
|
25
|
+
// Exact, because this is what `packageManager` means. The publish workflow's
|
|
26
|
+
// pnpm comes from it, so a module without one cannot build in CI.
|
|
27
|
+
pnpm: 'pnpm@10.28.0',
|
|
28
|
+
};
|
|
29
|
+
const WORKSPACE = `packages:
|
|
30
|
+
- "apps/*"
|
|
31
|
+
- "packages/*"
|
|
32
|
+
# a module's docs site is its own workspace member
|
|
33
|
+
- "apps/*/docs"
|
|
34
|
+
- "packages/*/docs"
|
|
35
|
+
`;
|
|
36
|
+
/**
|
|
37
|
+
* The root's scripts.
|
|
38
|
+
*
|
|
39
|
+
* With a monolith, `dev` and `build` are the monolith: it serves every
|
|
40
|
+
* mounted app, so running their own dev servers as well would be the same
|
|
41
|
+
* routes twice. `modular:*` runs each app on its own instead, as a
|
|
42
|
+
* deployment without the monolith would. Without one, every app is its own
|
|
43
|
+
* deployment and both are that. Documentation sites run with neither.
|
|
44
|
+
*/
|
|
45
|
+
const rootScripts = (monolith) => {
|
|
46
|
+
const apps = monolith
|
|
47
|
+
? "--filter='./apps/*' --filter='!./apps/monolith'"
|
|
48
|
+
: "--filter='./apps/*'";
|
|
49
|
+
const docs = "--filter='./apps/*/docs' --filter='./packages/*/docs'";
|
|
50
|
+
return {
|
|
51
|
+
build: monolith ? 'turbo run build --filter=./apps/monolith' : `turbo run build ${apps}`,
|
|
52
|
+
dev: monolith ? 'turbo run dev --filter=./apps/monolith' : `turbo run dev ${apps}`,
|
|
53
|
+
'modular:build': `turbo run build ${apps}`,
|
|
54
|
+
'modular:dev': `turbo run dev ${apps}`,
|
|
55
|
+
'docs:build': `turbo run build ${docs}`,
|
|
56
|
+
'docs:dev': `turbo run dev ${docs}`,
|
|
57
|
+
lint: 'turbo run lint',
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
const BUILD_OUTPUTS = ['.next/**', '!.next/cache/**', 'dist/**'];
|
|
61
|
+
/**
|
|
62
|
+
* The monolith compiles every app from its source, so its build waits for
|
|
63
|
+
* the libraries they use but not for the apps' own builds. `build:libs`
|
|
64
|
+
* runs no script: a library's is its build, and a mounted app's — written
|
|
65
|
+
* by `add-module` — is only its dependencies'. Turbo still hashes each app
|
|
66
|
+
* into the monolith's, so changing one builds the monolith again.
|
|
67
|
+
*/
|
|
68
|
+
const turboJson = (monolith) => json({
|
|
69
|
+
$schema: 'https://turbo.build/schema.json',
|
|
70
|
+
tasks: {
|
|
71
|
+
build: { dependsOn: ['^build'], outputs: BUILD_OUTPUTS },
|
|
72
|
+
...(monolith ? { 'build:libs': { dependsOn: ['^build:libs', 'build'] } } : {}),
|
|
73
|
+
lint: { dependsOn: ['^lint'] },
|
|
74
|
+
// A fresh checkout has built none of the libraries an app's config loads.
|
|
75
|
+
dev: { dependsOn: ['^build'], persistent: true, cache: false },
|
|
76
|
+
...(monolith
|
|
77
|
+
? {
|
|
78
|
+
[`${monolith}#build`]: { dependsOn: ['^build:libs'], outputs: BUILD_OUTPUTS },
|
|
79
|
+
[`${monolith}#dev`]: { dependsOn: ['^build:libs'], persistent: true, cache: false },
|
|
80
|
+
}
|
|
81
|
+
: {}),
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
const GITIGNORE = `node_modules
|
|
85
|
+
.next
|
|
86
|
+
.turbo
|
|
87
|
+
out
|
|
88
|
+
build
|
|
89
|
+
next-env.d.ts
|
|
90
|
+
*.tsbuildinfo
|
|
91
|
+
.env*.local
|
|
92
|
+
|
|
93
|
+
# derived mount points; the symlinks under src/ are what is committed
|
|
94
|
+
/app/
|
|
95
|
+
/pages/
|
|
96
|
+
|
|
97
|
+
# fg-dist policy use: the distribution's policy, for this build to run
|
|
98
|
+
/.policy
|
|
99
|
+
|
|
100
|
+
# generated by next dev
|
|
101
|
+
AGENTS.md
|
|
102
|
+
CLAUDE.md
|
|
103
|
+
`;
|
|
104
|
+
const TSCONFIG = {
|
|
105
|
+
compilerOptions: {
|
|
106
|
+
target: 'ES2017',
|
|
107
|
+
lib: ['dom', 'dom.iterable', 'esnext'],
|
|
108
|
+
allowJs: true,
|
|
109
|
+
skipLibCheck: true,
|
|
110
|
+
strict: true,
|
|
111
|
+
noEmit: true,
|
|
112
|
+
esModuleInterop: true,
|
|
113
|
+
module: 'esnext',
|
|
114
|
+
moduleResolution: 'bundler',
|
|
115
|
+
resolveJsonModule: true,
|
|
116
|
+
isolatedModules: true,
|
|
117
|
+
jsx: 'preserve',
|
|
118
|
+
incremental: true,
|
|
119
|
+
plugins: [{ name: 'next' }],
|
|
120
|
+
},
|
|
121
|
+
include: ['next-env.d.ts', '**/*.ts', '**/*.tsx', '.next/types/**/*.ts'],
|
|
122
|
+
exclude: ['node_modules'],
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* A repository that composes modules.
|
|
126
|
+
*
|
|
127
|
+
* The monolith app lives at `apps/monolith` so modules can be added beside it
|
|
128
|
+
* as `apps/<name>`, which is where `add-module` puts them.
|
|
129
|
+
*/
|
|
130
|
+
export const monolithRepo = (name, origin) => ({
|
|
131
|
+
'.gitignore': `node_modules\n.turbo\n`,
|
|
132
|
+
// Modules are linked through the workspace, so nothing here carries a
|
|
133
|
+
// version: the submodule commit is the pin and its package.json is the
|
|
134
|
+
// version. Keeping the workspace protocol stops pnpm writing one back in.
|
|
135
|
+
'.npmrc': `link-workspace-packages=true\nsave-workspace-protocol=true\n`,
|
|
136
|
+
'pnpm-workspace.yaml': WORKSPACE,
|
|
137
|
+
// turbo refuses a --filter naming a directory that does not exist, so the
|
|
138
|
+
// root's scripts need it before any package has been added.
|
|
139
|
+
'packages/.gitkeep': '',
|
|
140
|
+
'package.json': json({
|
|
141
|
+
name,
|
|
142
|
+
version: '0.1.0-alpha.0',
|
|
143
|
+
private: true,
|
|
144
|
+
...(origin ? { repository: { type: 'git', url: origin } } : {}),
|
|
145
|
+
scripts: rootScripts(true),
|
|
146
|
+
devDependencies: { turbo: '^2.11.2' },
|
|
147
|
+
}),
|
|
148
|
+
'turbo.json': turboJson(`${name}-monolith`),
|
|
149
|
+
'apps/monolith/package.json': json({
|
|
150
|
+
name: `${name}-monolith`,
|
|
151
|
+
version: '0.1.0-alpha.0',
|
|
152
|
+
private: true,
|
|
153
|
+
scripts: {
|
|
154
|
+
// Each takes a copy of the organization's policy to run, when there is one.
|
|
155
|
+
dev: 'fg-dist policy use && next dev -p 3000',
|
|
156
|
+
build: 'fg-dist policy use && next build',
|
|
157
|
+
start: 'next start -p 3000',
|
|
158
|
+
lint: 'eslint',
|
|
159
|
+
},
|
|
160
|
+
dependencies: {
|
|
161
|
+
'@fairgarden/monolith': VERSIONS.monolith,
|
|
162
|
+
next: VERSIONS.next,
|
|
163
|
+
react: VERSIONS.react,
|
|
164
|
+
'react-dom': VERSIONS.react,
|
|
165
|
+
},
|
|
166
|
+
devDependencies: {
|
|
167
|
+
'@fairgarden/distribution': VERSIONS.distribution,
|
|
168
|
+
'@types/node': VERSIONS.types.node,
|
|
169
|
+
'@types/react': VERSIONS.types.react,
|
|
170
|
+
'@types/react-dom': VERSIONS.types.reactDom,
|
|
171
|
+
eslint: VERSIONS.eslint,
|
|
172
|
+
'eslint-config-next': VERSIONS.eslintConfigNext,
|
|
173
|
+
typescript: VERSIONS.typescript,
|
|
174
|
+
},
|
|
175
|
+
}),
|
|
176
|
+
'apps/monolith/next.config.ts': `import { withMonolith } from '@fairgarden/monolith'
|
|
177
|
+
|
|
178
|
+
export default withMonolith(
|
|
179
|
+
{
|
|
180
|
+
// the monolith's own Next config
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
// mount name -> module, added by \`fg-dist add-module\`
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
`,
|
|
187
|
+
'apps/monolith/tsconfig.json': json(TSCONFIG),
|
|
188
|
+
'apps/monolith/eslint.config.mjs': `import next from 'eslint-config-next/core-web-vitals'
|
|
189
|
+
|
|
190
|
+
/** @type {import('eslint').Linter.Config[]} */
|
|
191
|
+
const config = [{ ignores: ['node_modules/**', '.next/**', 'app/**', 'pages/**'] }, ...next]
|
|
192
|
+
|
|
193
|
+
export default config
|
|
194
|
+
`,
|
|
195
|
+
'apps/monolith/.gitignore': GITIGNORE,
|
|
196
|
+
'apps/monolith/src/app/layout.tsx': `export default function RootLayout({
|
|
197
|
+
children,
|
|
198
|
+
}: Readonly<{ children: React.ReactNode }>) {
|
|
199
|
+
return (
|
|
200
|
+
<html lang="en">
|
|
201
|
+
<body>{children}</body>
|
|
202
|
+
</html>
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
`,
|
|
206
|
+
'apps/monolith/src/app/page.tsx': `export default function Home() {
|
|
207
|
+
return <main>Nothing mounted yet. Add a module with \`fg-dist add-module\`.</main>
|
|
208
|
+
}
|
|
209
|
+
`,
|
|
210
|
+
});
|
|
211
|
+
/**
|
|
212
|
+
* A repository that can be mounted into a monolith.
|
|
213
|
+
*
|
|
214
|
+
* It is an ordinary Next app; the only additions are the portability check and
|
|
215
|
+
* the lint rules that keep it mountable.
|
|
216
|
+
*/
|
|
217
|
+
/** `@acme/widget` -> `widget`, which is what a hostname wants. */
|
|
218
|
+
const unscoped = (packageName) => packageName.replace(/^@[^/]+\//, '');
|
|
219
|
+
export const moduleRepo = (packageName, origin) => ({
|
|
220
|
+
// A module releases on its own schedule, so it carries its own workflow, and
|
|
221
|
+
// its own changelog, which every pull request adds to.
|
|
222
|
+
...publishWorkflow(packageName),
|
|
223
|
+
...changelogWorkflow({ submodules: false }),
|
|
224
|
+
[CHANGELOG]: newChangelog('0.1.0-alpha.0'),
|
|
225
|
+
'.gitignore': `node_modules\n.next\n.turbo\nnext-env.d.ts\n*.tsbuildinfo\n\n# generated by next dev\nAGENTS.md\nCLAUDE.md\n`,
|
|
226
|
+
'package.json': json({
|
|
227
|
+
name: packageName,
|
|
228
|
+
version: '0.1.0-alpha.0',
|
|
229
|
+
// Not private: a module publishes itself, so that a monolith which cannot
|
|
230
|
+
// reach it as a submodule can install it as a package instead. Scoped
|
|
231
|
+
// packages publish restricted by default; say so rather than leave it to
|
|
232
|
+
// whoever reads this to remember.
|
|
233
|
+
publishConfig: { access: 'restricted' },
|
|
234
|
+
// What CI installs with — see .github/actions/publish-prepare.
|
|
235
|
+
packageManager: VERSIONS.pnpm,
|
|
236
|
+
// A module is consumed as source — its routes are read out of the package —
|
|
237
|
+
// so the tarball carries the source rather than a build.
|
|
238
|
+
files: ['app', 'lib', 'pages', 'public', 'next.config.ts'],
|
|
239
|
+
// A monolith adds this repository as a submodule, so record where it lives.
|
|
240
|
+
...(origin ? { repository: { type: 'git', url: origin } } : {}),
|
|
241
|
+
scripts: {
|
|
242
|
+
// Served at a stable hostname instead of a port, so every app that
|
|
243
|
+
// `modular:dev` runs at once has its own without colliding:
|
|
244
|
+
// https://${unscoped(packageName)}.localhost. A monolith compiles this app
|
|
245
|
+
// itself and never runs it.
|
|
246
|
+
dev: `portless ${unscoped(packageName)} next dev`,
|
|
247
|
+
build: 'next build',
|
|
248
|
+
start: 'next start',
|
|
249
|
+
lint: 'eslint',
|
|
250
|
+
// Called by .github/workflows/publish.yml, and by you — see the readme.
|
|
251
|
+
...releaseScripts(packageName),
|
|
252
|
+
},
|
|
253
|
+
dependencies: {
|
|
254
|
+
next: VERSIONS.next,
|
|
255
|
+
react: VERSIONS.react,
|
|
256
|
+
'react-dom': VERSIONS.react,
|
|
257
|
+
},
|
|
258
|
+
devDependencies: {
|
|
259
|
+
'@fairgarden/distribution': VERSIONS.distribution,
|
|
260
|
+
'@fairgarden/monolith': VERSIONS.monolith,
|
|
261
|
+
'@types/node': VERSIONS.types.node,
|
|
262
|
+
'@types/react': VERSIONS.types.react,
|
|
263
|
+
'@types/react-dom': VERSIONS.types.reactDom,
|
|
264
|
+
eslint: VERSIONS.eslint,
|
|
265
|
+
'eslint-config-next': VERSIONS.eslintConfigNext,
|
|
266
|
+
// `dev` serves this at a stable hostname instead of a port.
|
|
267
|
+
portless: VERSIONS.portless,
|
|
268
|
+
typescript: VERSIONS.typescript,
|
|
269
|
+
},
|
|
270
|
+
}),
|
|
271
|
+
'next.config.ts': `import type { NextConfig } from 'next'
|
|
272
|
+
import { withMonolithicPortability } from '@fairgarden/monolith'
|
|
273
|
+
|
|
274
|
+
const nextConfig: NextConfig = {}
|
|
275
|
+
|
|
276
|
+
// Reports anything that would not survive being mounted in a monolith.
|
|
277
|
+
export default withMonolithicPortability(nextConfig)
|
|
278
|
+
`,
|
|
279
|
+
'tsconfig.json': json({
|
|
280
|
+
...TSCONFIG,
|
|
281
|
+
compilerOptions: {
|
|
282
|
+
...TSCONFIG.compilerOptions,
|
|
283
|
+
// So this module's own files can import each other by package name,
|
|
284
|
+
// which is what keeps them resolvable once mounted.
|
|
285
|
+
paths: { [`${packageName}/*`]: ['./*'] },
|
|
286
|
+
},
|
|
287
|
+
}),
|
|
288
|
+
'eslint.config.mjs': `import next from 'eslint-config-next/core-web-vitals'
|
|
289
|
+
import monolith from '@fairgarden/monolith/eslint'
|
|
290
|
+
|
|
291
|
+
/** @type {import('eslint').Linter.Config[]} */
|
|
292
|
+
const config = [
|
|
293
|
+
{ ignores: ['node_modules/**', '.next/**'] },
|
|
294
|
+
...next,
|
|
295
|
+
...monolith.configs.recommended,
|
|
296
|
+
]
|
|
297
|
+
|
|
298
|
+
export default config
|
|
299
|
+
`,
|
|
300
|
+
'lib/link.ts': `import { createHref, createLink } from '@fairgarden/monolith/link'
|
|
301
|
+
|
|
302
|
+
// Use these instead of next/link so hrefs carry the mount point when this
|
|
303
|
+
// module is served inside a monolith.
|
|
304
|
+
export const Link = createLink('${packageName}')
|
|
305
|
+
export const href = createHref('${packageName}')
|
|
306
|
+
`,
|
|
307
|
+
'app/layout.tsx': `export default function RootLayout({
|
|
308
|
+
children,
|
|
309
|
+
}: Readonly<{ children: React.ReactNode }>) {
|
|
310
|
+
return (
|
|
311
|
+
<html lang="en">
|
|
312
|
+
<body>{children}</body>
|
|
313
|
+
</html>
|
|
314
|
+
)
|
|
315
|
+
}
|
|
316
|
+
`,
|
|
317
|
+
'app/page.tsx': `import { Link } from '${packageName}/lib/link'
|
|
318
|
+
|
|
319
|
+
export default function Home() {
|
|
320
|
+
return (
|
|
321
|
+
<main>
|
|
322
|
+
<h1>${packageName}</h1>
|
|
323
|
+
<Link href="/">Home</Link>
|
|
324
|
+
</main>
|
|
325
|
+
)
|
|
326
|
+
}
|
|
327
|
+
`,
|
|
328
|
+
});
|
|
329
|
+
/** Write a file map, creating directories as needed. */
|
|
330
|
+
export const write = async (root, files) => {
|
|
331
|
+
const written = [];
|
|
332
|
+
for (const [relative, contents] of Object.entries(files)) {
|
|
333
|
+
const full = path.join(root, relative);
|
|
334
|
+
await mkdir(path.dirname(full), { recursive: true });
|
|
335
|
+
await writeFile(full, contents);
|
|
336
|
+
written.push(relative);
|
|
337
|
+
}
|
|
338
|
+
return written.sort();
|
|
339
|
+
};
|
|
340
|
+
/** Whether a directory has anything in it, so `init` never writes over work. */
|
|
341
|
+
export const isEmpty = async (dir) => {
|
|
342
|
+
const entries = await readdir(dir).catch(() => undefined);
|
|
343
|
+
if (!entries)
|
|
344
|
+
return true;
|
|
345
|
+
return entries.filter((entry) => entry !== '.git').length === 0;
|
|
346
|
+
};
|
|
347
|
+
export const readPackageName = async (root) => {
|
|
348
|
+
try {
|
|
349
|
+
const pkg = JSON.parse(await readFile(path.join(root, 'package.json'), 'utf8'));
|
|
350
|
+
return typeof pkg.name === 'string' ? pkg.name : undefined;
|
|
351
|
+
}
|
|
352
|
+
catch {
|
|
353
|
+
return undefined;
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
/**
|
|
357
|
+
* The organization's `policies/`: its `.manifest`, and a workspace package
|
|
358
|
+
* that builds and tests it with `fg-dist policy`. Empty of rules: until the
|
|
359
|
+
* organization writes some, the modules' own decide.
|
|
360
|
+
*/
|
|
361
|
+
const policiesFiles = (name, origin) => ({
|
|
362
|
+
'policies/.manifest': json({
|
|
363
|
+
metadata: {
|
|
364
|
+
organization: name,
|
|
365
|
+
...(origin ? { source: origin.replace(/\.git$/, '') } : {}),
|
|
366
|
+
},
|
|
367
|
+
}),
|
|
368
|
+
'policies/package.json': json({
|
|
369
|
+
name: `${name}-policies`,
|
|
370
|
+
private: true,
|
|
371
|
+
type: 'module',
|
|
372
|
+
scripts: { build: 'fg-dist policy build', test: 'fg-dist policy test' },
|
|
373
|
+
devDependencies: {
|
|
374
|
+
'@fairgarden/distribution': VERSIONS.distribution,
|
|
375
|
+
'@fairgarden/policy': VERSIONS.policy,
|
|
376
|
+
},
|
|
377
|
+
}),
|
|
378
|
+
'policies/.gitignore': '/dist\n/node_modules\n/.turbo\n',
|
|
379
|
+
'policies/Readme.md': `# Policies
|
|
380
|
+
|
|
381
|
+
The organization's rules for the services this distribution ships: who may
|
|
382
|
+
join, what is shared and with whom. Each module brings its own rules, in its
|
|
383
|
+
own \`policies/\`; the organization's go here, in the same Rego packages,
|
|
384
|
+
adding to the places those rules leave for them — so upgrading a module keeps
|
|
385
|
+
them.
|
|
386
|
+
|
|
387
|
+
Change them by pull request, like anything else here: what is merged is what
|
|
388
|
+
the next deployment runs, and anyone can read it on the id service's
|
|
389
|
+
\`/policy\` page.
|
|
390
|
+
|
|
391
|
+
\`\`\`bash
|
|
392
|
+
fg-dist policy test # each module's tests, then these on top
|
|
393
|
+
fg-dist policy build # what the services will run
|
|
394
|
+
\`\`\`
|
|
395
|
+
|
|
396
|
+
\`.manifest\` says whose rules these are; its \`metadata\` is shown with them.
|
|
397
|
+
`,
|
|
398
|
+
});
|
|
399
|
+
/**
|
|
400
|
+
* A repository that ships a set of modules to end users.
|
|
401
|
+
*
|
|
402
|
+
* The root package.json is the distribution manifest: its version names the
|
|
403
|
+
* month and which release of it this is (see calver.ts), and the modules it
|
|
404
|
+
* ships are its submodules, each at a semver version. `extends` names another distribution whose modules this one
|
|
405
|
+
* inherits and may move ahead of, but never behind.
|
|
406
|
+
*/
|
|
407
|
+
export const distributionRepo = (name, origin, parent, { monolith = true } = {}) => {
|
|
408
|
+
// A distribution of only Next apps can deploy as one. A complex one cannot,
|
|
409
|
+
// and then each app under apps/ is deployed on its own — which is fine for
|
|
410
|
+
// an audience that already has deployment infrastructure.
|
|
411
|
+
const files = monolith
|
|
412
|
+
? monolithRepo(name, origin)
|
|
413
|
+
: {
|
|
414
|
+
'.gitignore': `node_modules\n.turbo\n`,
|
|
415
|
+
'.npmrc': `link-workspace-packages=true\nsave-workspace-protocol=true\n`,
|
|
416
|
+
'pnpm-workspace.yaml': WORKSPACE,
|
|
417
|
+
// turbo refuses a --filter naming a directory that does not exist.
|
|
418
|
+
'apps/.gitkeep': '',
|
|
419
|
+
'packages/.gitkeep': '',
|
|
420
|
+
'turbo.json': turboJson(undefined),
|
|
421
|
+
};
|
|
422
|
+
// What it ships, noted as fg-dist changes it; pull requests that change its
|
|
423
|
+
// policy add their own line, which CI checks.
|
|
424
|
+
Object.assign(files, changelogWorkflow({ submodules: true }));
|
|
425
|
+
// The organization's policy, built on every module's own; a workspace
|
|
426
|
+
// package, so turbo builds it once for every service that runs it.
|
|
427
|
+
files['pnpm-workspace.yaml'] = files['pnpm-workspace.yaml'].replace(' - "packages/*"\n', ' - "packages/*"\n - "policies"\n');
|
|
428
|
+
Object.assign(files, policiesFiles(name, origin));
|
|
429
|
+
const version = firstRelease();
|
|
430
|
+
files[CHANGELOG] = newChangelog(version);
|
|
431
|
+
files['package.json'] = json({
|
|
432
|
+
name,
|
|
433
|
+
// End users read the month, not a semver range: it says how old their copy
|
|
434
|
+
// is. It starts as this month's first release, in alpha — see calver.ts.
|
|
435
|
+
version,
|
|
436
|
+
private: true,
|
|
437
|
+
...(origin ? { repository: { type: 'git', url: origin } } : {}),
|
|
438
|
+
...(parent ? { distribution: { extends: parent } } : {}),
|
|
439
|
+
scripts: rootScripts(monolith),
|
|
440
|
+
// Modules go here, each pinned to the semver version this ships.
|
|
441
|
+
dependencies: parent ? { [parent]: 'latest' } : {},
|
|
442
|
+
devDependencies: { turbo: '^2.11.2' },
|
|
443
|
+
});
|
|
444
|
+
files['Readme.md'] = `# ${name}
|
|
445
|
+
|
|
446
|
+
A distribution: the set of modules shipped together, released under a date-based
|
|
447
|
+
version so it is obvious how old a copy is.
|
|
448
|
+
|
|
449
|
+
Modules are listed in \`dependencies\`, each pinned to a semver version, and
|
|
450
|
+
checked out as submodules. Add one with \`fg-dist add-module <url>\`, and see
|
|
451
|
+
what has moved with \`fg-dist sync\`.
|
|
452
|
+
|
|
453
|
+
## Running
|
|
454
|
+
${monolith
|
|
455
|
+
? `
|
|
456
|
+
\`\`\`bash
|
|
457
|
+
pnpm dev # the monolith, serving every app, on port 3000
|
|
458
|
+
pnpm build # the monolith, as it is deployed
|
|
459
|
+
pnpm modular:dev # each app on its own instead
|
|
460
|
+
pnpm modular:build
|
|
461
|
+
pnpm docs:dev # the documentation sites, which neither runs
|
|
462
|
+
\`\`\`
|
|
463
|
+
`
|
|
464
|
+
: `
|
|
465
|
+
\`\`\`bash
|
|
466
|
+
pnpm dev # every app, each on its own
|
|
467
|
+
pnpm build
|
|
468
|
+
pnpm docs:dev # the documentation sites, which neither runs
|
|
469
|
+
\`\`\`
|
|
470
|
+
`}
|
|
471
|
+
## Deploying
|
|
472
|
+
${monolith
|
|
473
|
+
? `
|
|
474
|
+
Every module is mounted into \`apps/monolith\`, which deploys as one Next app.
|
|
475
|
+
`
|
|
476
|
+
: `
|
|
477
|
+
Each app under \`apps/\` is deployed on its own. There is no monolith app,
|
|
478
|
+
which is the right shape once the distribution is too complex to serve from one
|
|
479
|
+
deployment — and fine for an audience that already runs deployment
|
|
480
|
+
infrastructure.
|
|
481
|
+
`}${parent
|
|
482
|
+
? `
|
|
483
|
+
## Extends
|
|
484
|
+
|
|
485
|
+
This distribution extends \`${parent}\`. It ships that distribution's modules
|
|
486
|
+
and may move ahead of them, but can never ship anything older. \`fg-dist check\`
|
|
487
|
+
fails when it does${monolith ? ', and so does the monolith build' : ''}.
|
|
488
|
+
`
|
|
489
|
+
: ''}`;
|
|
490
|
+
return files;
|
|
491
|
+
};
|
|
492
|
+
//# sourceMappingURL=scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|