create-gitcms 0.1.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 +49 -0
- package/dist/args.d.ts +14 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +119 -0
- package/dist/args.js.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +529 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/content-detection.d.ts +2 -0
- package/dist/core/content-detection.d.ts.map +1 -0
- package/dist/core/content-detection.js +2 -0
- package/dist/core/content-detection.js.map +1 -0
- package/dist/core/filesystem.d.ts +11 -0
- package/dist/core/filesystem.d.ts.map +1 -0
- package/dist/core/filesystem.js +93 -0
- package/dist/core/filesystem.js.map +1 -0
- package/dist/core/framework-detection.d.ts +17 -0
- package/dist/core/framework-detection.d.ts.map +1 -0
- package/dist/core/framework-detection.js +60 -0
- package/dist/core/framework-detection.js.map +1 -0
- package/dist/core/frontmatter-inference.d.ts +2 -0
- package/dist/core/frontmatter-inference.d.ts.map +1 -0
- package/dist/core/frontmatter-inference.js +2 -0
- package/dist/core/frontmatter-inference.js.map +1 -0
- package/dist/core/git.d.ts +4 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +45 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/gitcms-config.d.ts +153 -0
- package/dist/core/gitcms-config.d.ts.map +1 -0
- package/dist/core/gitcms-config.js +436 -0
- package/dist/core/gitcms-config.js.map +1 -0
- package/dist/core/mode-resolution.d.ts +22 -0
- package/dist/core/mode-resolution.d.ts.map +1 -0
- package/dist/core/mode-resolution.js +136 -0
- package/dist/core/mode-resolution.js.map +1 -0
- package/dist/core/paths.d.ts +6 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +19 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/planner.d.ts +8 -0
- package/dist/core/planner.d.ts.map +1 -0
- package/dist/core/planner.js +295 -0
- package/dist/core/planner.js.map +1 -0
- package/dist/core/site-roots.d.ts +5 -0
- package/dist/core/site-roots.d.ts.map +1 -0
- package/dist/core/site-roots.js +32 -0
- package/dist/core/site-roots.js.map +1 -0
- package/dist/core/sitemap-discovery.d.ts +2 -0
- package/dist/core/sitemap-discovery.d.ts.map +1 -0
- package/dist/core/sitemap-discovery.js +2 -0
- package/dist/core/sitemap-discovery.js.map +1 -0
- package/dist/core/vendor/content-detection.d.ts +51 -0
- package/dist/core/vendor/content-detection.d.ts.map +1 -0
- package/dist/core/vendor/content-detection.js +462 -0
- package/dist/core/vendor/content-detection.js.map +1 -0
- package/dist/core/vendor/frontmatter-inference.d.ts +5 -0
- package/dist/core/vendor/frontmatter-inference.d.ts.map +1 -0
- package/dist/core/vendor/frontmatter-inference.js +234 -0
- package/dist/core/vendor/frontmatter-inference.js.map +1 -0
- package/dist/core/vendor/paths.d.ts +3 -0
- package/dist/core/vendor/paths.d.ts.map +1 -0
- package/dist/core/vendor/paths.js +23 -0
- package/dist/core/vendor/paths.js.map +1 -0
- package/dist/core/vendor/sitemap.d.ts +10 -0
- package/dist/core/vendor/sitemap.d.ts.map +1 -0
- package/dist/core/vendor/sitemap.js +162 -0
- package/dist/core/vendor/sitemap.js.map +1 -0
- package/dist/core/writer.d.ts +4 -0
- package/dist/core/writer.d.ts.map +1 -0
- package/dist/core/writer.js +45 -0
- package/dist/core/writer.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts.d.ts +12 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +41 -0
- package/dist/prompts.js.map +1 -0
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +54 -0
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# create-gitcms
|
|
2
|
+
|
|
3
|
+
Bootstrap [`gitcms.md`](https://gitcms.dev/docs/getting-started/configuration) for a GitCMS project.
|
|
4
|
+
|
|
5
|
+
`create-gitcms` helps you detect site roots, infer Markdown collections, and generate the initial config for single-site repos and monorepos.
|
|
6
|
+
|
|
7
|
+
GitCMS is a Git-powered CMS with a Notion-like editor. Every save becomes a real Git commit. Learn more at [gitcms.dev](https://gitcms.dev).
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
The intended entrypoint is:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm init gitcms
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
You can also run it directly:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx create-gitcms@latest
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Examples:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm init gitcms
|
|
27
|
+
npm init gitcms -- --yes
|
|
28
|
+
npm init gitcms -- --website-url https://example.com
|
|
29
|
+
npm init gitcms -- --mode monorepo --site-root apps/docs --site-root apps/blog
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## What it does
|
|
33
|
+
|
|
34
|
+
- Detects whether the repo looks like a single-site setup or a monorepo
|
|
35
|
+
- Finds likely Markdown or MDX collections
|
|
36
|
+
- Infers frontmatter shape from sample content
|
|
37
|
+
- Suggests framework-aware defaults for media and content paths
|
|
38
|
+
- Writes `gitcms.md` in the correct location
|
|
39
|
+
|
|
40
|
+
## Product Links
|
|
41
|
+
|
|
42
|
+
- App: [gitcms.dev](https://gitcms.dev)
|
|
43
|
+
- Docs: [gitcms.dev/docs](https://gitcms.dev/docs)
|
|
44
|
+
- Quick Start: [gitcms.dev/docs/getting-started/quick-start](https://gitcms.dev/docs/getting-started/quick-start)
|
|
45
|
+
|
|
46
|
+
## Notes
|
|
47
|
+
|
|
48
|
+
- `gitcms.md` is meant to be generated by GitCMS tooling, not hand-written.
|
|
49
|
+
- For product setup after config generation, continue in the GitCMS web app.
|
package/dist/args.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { InitMode } from './types.js';
|
|
2
|
+
export interface CliFlags {
|
|
3
|
+
repoPath: string;
|
|
4
|
+
mode: InitMode;
|
|
5
|
+
siteRoots: Array<string>;
|
|
6
|
+
websiteUrls: Array<string>;
|
|
7
|
+
yes: boolean;
|
|
8
|
+
dryRun: boolean;
|
|
9
|
+
force: boolean;
|
|
10
|
+
help: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function parseCliFlags(argv: Array<string>): CliFlags;
|
|
13
|
+
export declare function usageText(): string;
|
|
14
|
+
//# sourceMappingURL=args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACxB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1B,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;CACd;AA8BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,YAqFhD;AAED,wBAAgB,SAAS,WAqBxB"}
|
package/dist/args.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
function takeValue(arg, argv, index) {
|
|
2
|
+
const eqIndex = arg.indexOf('=');
|
|
3
|
+
if (eqIndex !== -1) {
|
|
4
|
+
return {
|
|
5
|
+
value: arg.slice(eqIndex + 1),
|
|
6
|
+
nextIndex: index,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
const next = argv[index + 1];
|
|
10
|
+
if (!next || next.startsWith('-')) {
|
|
11
|
+
throw new Error(`Missing value for ${arg}`);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
value: next,
|
|
15
|
+
nextIndex: index + 1,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function parseMode(raw) {
|
|
19
|
+
if (raw === 'auto' || raw === 'single' || raw === 'monorepo') {
|
|
20
|
+
return raw;
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`Invalid mode: ${raw}. Expected auto, single, or monorepo.`);
|
|
23
|
+
}
|
|
24
|
+
export function parseCliFlags(argv) {
|
|
25
|
+
const flags = {
|
|
26
|
+
repoPath: '.',
|
|
27
|
+
mode: 'auto',
|
|
28
|
+
siteRoots: [],
|
|
29
|
+
websiteUrls: [],
|
|
30
|
+
yes: false,
|
|
31
|
+
dryRun: false,
|
|
32
|
+
force: false,
|
|
33
|
+
help: false,
|
|
34
|
+
};
|
|
35
|
+
let repoPathWasSet = false;
|
|
36
|
+
let index = 0;
|
|
37
|
+
while (index < argv.length) {
|
|
38
|
+
const arg = argv[index];
|
|
39
|
+
if (!arg) {
|
|
40
|
+
index += 1;
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (arg === 'init') {
|
|
44
|
+
index += 1;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (arg === '--help' || arg === '-h') {
|
|
48
|
+
flags.help = true;
|
|
49
|
+
index += 1;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (arg === '--yes') {
|
|
53
|
+
flags.yes = true;
|
|
54
|
+
index += 1;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (arg === '--dry-run') {
|
|
58
|
+
flags.dryRun = true;
|
|
59
|
+
index += 1;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (arg === '--force') {
|
|
63
|
+
flags.force = true;
|
|
64
|
+
index += 1;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (arg === '--mode' || arg.startsWith('--mode=')) {
|
|
68
|
+
const parsed = takeValue(arg, argv, index);
|
|
69
|
+
flags.mode = parseMode(parsed.value);
|
|
70
|
+
index = parsed.nextIndex + 1;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (arg === '--site-root' || arg.startsWith('--site-root=')) {
|
|
74
|
+
const parsed = takeValue(arg, argv, index);
|
|
75
|
+
flags.siteRoots.push(parsed.value);
|
|
76
|
+
index = parsed.nextIndex + 1;
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (arg === '--website-url' || arg.startsWith('--website-url=')) {
|
|
80
|
+
const parsed = takeValue(arg, argv, index);
|
|
81
|
+
flags.websiteUrls.push(parsed.value);
|
|
82
|
+
index = parsed.nextIndex + 1;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (arg.startsWith('-')) {
|
|
86
|
+
throw new Error(`Unknown flag: ${arg}`);
|
|
87
|
+
}
|
|
88
|
+
if (flags.repoPath !== '.' || repoPathWasSet) {
|
|
89
|
+
throw new Error('Only one repository path argument is supported');
|
|
90
|
+
}
|
|
91
|
+
repoPathWasSet = true;
|
|
92
|
+
flags.repoPath = arg;
|
|
93
|
+
index += 1;
|
|
94
|
+
}
|
|
95
|
+
return flags;
|
|
96
|
+
}
|
|
97
|
+
export function usageText() {
|
|
98
|
+
return [
|
|
99
|
+
'Usage: create-gitcms [repoPath] [options]',
|
|
100
|
+
'',
|
|
101
|
+
'Options:',
|
|
102
|
+
' --mode <auto|single|monorepo> Initialization mode (default: auto)',
|
|
103
|
+
' --site-root <path> Site root path (repeatable for monorepo)',
|
|
104
|
+
' --website-url <value> Repeatable: <url> global, multi-url by order, or <siteRoot>=<url>',
|
|
105
|
+
' --yes Non-interactive mode, accept inferred defaults',
|
|
106
|
+
' --dry-run Preview inferred config paths without writing files',
|
|
107
|
+
' --force Overwrite existing gitcms.md files',
|
|
108
|
+
' --help, -h Show help',
|
|
109
|
+
'',
|
|
110
|
+
'Examples:',
|
|
111
|
+
' npm init gitcms',
|
|
112
|
+
' npm init gitcms -- --yes',
|
|
113
|
+
' npm init gitcms -- --website-url https://example.com',
|
|
114
|
+
' npm init gitcms -- --mode monorepo --site-root apps/v4 --site-root deprecated/www --website-url https://v4.example.com --website-url https://legacy.example.com',
|
|
115
|
+
' npm init gitcms -- --mode monorepo --website-url apps/v4=https://v4.example.com --website-url deprecated/www=https://legacy.example.com',
|
|
116
|
+
' npm init gitcms -- --mode monorepo --site-root apps/docs --site-root apps/blog',
|
|
117
|
+
].join('\n');
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=args.js.map
|
package/dist/args.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA8dA,iBAAe,GAAG,kBA6PjB;AAaD,OAAO,EAAE,GAAG,EAAE,CAAA"}
|