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
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BuildPlanInput, SitePlan } from '../types.js';
|
|
2
|
+
export declare function buildInitPlan(input: BuildPlanInput): Promise<{
|
|
3
|
+
repoRoot: string;
|
|
4
|
+
mode: "single" | "monorepo";
|
|
5
|
+
sites: SitePlan[];
|
|
6
|
+
warnings: string[];
|
|
7
|
+
}>;
|
|
8
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/core/planner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAKd,QAAQ,EACT,MAAM,aAAa,CAAA;AA6XpB,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc;;;;;GA6BxD"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { ConfigSchema } from './gitcms-config.js';
|
|
3
|
+
import { detectCollectionRoots, findSampleMarkdownFile, parseFrontmatter } from './content-detection.js';
|
|
4
|
+
import { readFileUtf8, walkRepositoryFiles } from './filesystem.js';
|
|
5
|
+
import { detectFrameworkForSite } from './framework-detection.js';
|
|
6
|
+
import { inferSchemaFromFrontmatter } from './frontmatter-inference.js';
|
|
7
|
+
import { createLocalTree } from './content-detection.js';
|
|
8
|
+
import { getConfigPathForSiteRoot, normalizeSiteRoot } from './paths.js';
|
|
9
|
+
function dedupeSiteRoots(roots) {
|
|
10
|
+
const seen = new Set();
|
|
11
|
+
const unique = [];
|
|
12
|
+
for (const root of roots) {
|
|
13
|
+
const normalized = normalizeSiteRoot(root);
|
|
14
|
+
if (seen.has(normalized)) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
seen.add(normalized);
|
|
18
|
+
unique.push(normalized);
|
|
19
|
+
}
|
|
20
|
+
return unique;
|
|
21
|
+
}
|
|
22
|
+
function deriveCollectionConfidence(collectionCount) {
|
|
23
|
+
if (collectionCount === 0)
|
|
24
|
+
return 'low';
|
|
25
|
+
if (collectionCount === 1)
|
|
26
|
+
return 'medium';
|
|
27
|
+
return 'high';
|
|
28
|
+
}
|
|
29
|
+
function pickFrontmatterFormat(schemaInferences, warnings) {
|
|
30
|
+
const formats = [];
|
|
31
|
+
for (const inference of schemaInferences) {
|
|
32
|
+
if (inference.frontmatterFormat) {
|
|
33
|
+
formats.push(inference.frontmatterFormat);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (formats.length === 0) {
|
|
37
|
+
return 'yaml';
|
|
38
|
+
}
|
|
39
|
+
const counts = new Map();
|
|
40
|
+
for (const format of formats) {
|
|
41
|
+
const current = counts.get(format) ?? 0;
|
|
42
|
+
counts.set(format, current + 1);
|
|
43
|
+
}
|
|
44
|
+
let pickedFormat = 'yaml';
|
|
45
|
+
let pickedCount = -1;
|
|
46
|
+
for (const [format, count] of counts) {
|
|
47
|
+
if (count > pickedCount) {
|
|
48
|
+
pickedFormat = format;
|
|
49
|
+
pickedCount = count;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (counts.size > 1) {
|
|
53
|
+
warnings.push(`Multiple frontmatter formats detected (${Array.from(counts.keys()).join(', ')}). Using ${pickedFormat}.`);
|
|
54
|
+
}
|
|
55
|
+
return pickedFormat;
|
|
56
|
+
}
|
|
57
|
+
function makeCollectionGitPath(gitPath) {
|
|
58
|
+
const normalized = normalizeSiteRoot(gitPath);
|
|
59
|
+
if (!normalized)
|
|
60
|
+
return '/';
|
|
61
|
+
return `/${normalized}/`;
|
|
62
|
+
}
|
|
63
|
+
function makeMediaPath(mediaPath) {
|
|
64
|
+
const normalized = normalizeSiteRoot(mediaPath);
|
|
65
|
+
if (!normalized)
|
|
66
|
+
return '';
|
|
67
|
+
return `/${normalized}`;
|
|
68
|
+
}
|
|
69
|
+
function normalizeLocaleCode(value) {
|
|
70
|
+
const trimmed = value?.trim().toLowerCase();
|
|
71
|
+
if (!trimmed)
|
|
72
|
+
return null;
|
|
73
|
+
return trimmed
|
|
74
|
+
.replace(/_/g, '-')
|
|
75
|
+
.replace(/\s+/g, '-');
|
|
76
|
+
}
|
|
77
|
+
function dedupeLocaleCodes(locales) {
|
|
78
|
+
const seen = new Set();
|
|
79
|
+
const unique = [];
|
|
80
|
+
for (const locale of locales) {
|
|
81
|
+
const normalized = normalizeLocaleCode(locale);
|
|
82
|
+
if (!normalized || seen.has(normalized)) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
seen.add(normalized);
|
|
86
|
+
unique.push(normalized);
|
|
87
|
+
}
|
|
88
|
+
return unique;
|
|
89
|
+
}
|
|
90
|
+
function deriveSiteI18nFromCollections(collections, warnings) {
|
|
91
|
+
const detectedI18n = collections
|
|
92
|
+
.map((collection) => collection.i18n)
|
|
93
|
+
.filter((i18n) => !!i18n && i18n.enabled && i18n.locales.length > 0);
|
|
94
|
+
if (detectedI18n.length === 0) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const locales = dedupeLocaleCodes(detectedI18n.flatMap((i18n) => i18n.locales));
|
|
98
|
+
if (locales.length === 0) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
const defaultLocaleCandidates = dedupeLocaleCodes(detectedI18n
|
|
102
|
+
.map((i18n) => i18n.defaultLocale)
|
|
103
|
+
.filter((locale) => typeof locale === 'string' && locale.trim().length > 0));
|
|
104
|
+
if (defaultLocaleCandidates.length > 1) {
|
|
105
|
+
warnings.push(`Multiple default locale candidates detected (${defaultLocaleCandidates.join(', ')}). Using best match.`);
|
|
106
|
+
}
|
|
107
|
+
const prefixModes = new Set(detectedI18n.map((i18n) => i18n.prefixDefaultLocale));
|
|
108
|
+
if (prefixModes.size > 1) {
|
|
109
|
+
warnings.push('Mixed default-locale path strategies detected. Using unprefixed default locale when possible.');
|
|
110
|
+
}
|
|
111
|
+
const defaultLocale = defaultLocaleCandidates.find((candidate) => locales.includes(candidate))
|
|
112
|
+
|| null;
|
|
113
|
+
if (!defaultLocale) {
|
|
114
|
+
warnings.push('Detected localized collection paths but could not infer an unprefixed default locale. Configure site i18n default locale manually.');
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
locales,
|
|
119
|
+
defaultLocale,
|
|
120
|
+
prefixDefaultLocale: detectedI18n.every((i18n) => i18n.prefixDefaultLocale),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function createBaseConfig(mediaPath) {
|
|
124
|
+
const config = {
|
|
125
|
+
version: '1',
|
|
126
|
+
collections: [],
|
|
127
|
+
media_path: makeMediaPath(mediaPath),
|
|
128
|
+
website_url: '',
|
|
129
|
+
frontmatter_format: 'yaml',
|
|
130
|
+
publishing_mode: 'direct_publish',
|
|
131
|
+
};
|
|
132
|
+
return config;
|
|
133
|
+
}
|
|
134
|
+
function filterRootTreeForNestedSiteRoots(params) {
|
|
135
|
+
if (params.siteRoot !== '') {
|
|
136
|
+
return params.tree;
|
|
137
|
+
}
|
|
138
|
+
const nestedRoots = params.allSiteRoots
|
|
139
|
+
.filter((candidate) => candidate !== '')
|
|
140
|
+
.map((candidate) => normalizeSiteRoot(candidate))
|
|
141
|
+
.filter((candidate) => candidate.length > 0)
|
|
142
|
+
.sort((a, b) => b.length - a.length);
|
|
143
|
+
if (nestedRoots.length === 0) {
|
|
144
|
+
return params.tree;
|
|
145
|
+
}
|
|
146
|
+
return params.tree.filter((item) => {
|
|
147
|
+
if (!item.path) {
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
for (const nestedRoot of nestedRoots) {
|
|
151
|
+
if (item.path === nestedRoot || item.path.startsWith(`${nestedRoot}/`)) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return true;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
async function inferCollectionSchema(params) {
|
|
159
|
+
const sampleFilePath = findSampleMarkdownFile(params.tree, params.siteRoot, params.collectionGitPath);
|
|
160
|
+
if (!sampleFilePath) {
|
|
161
|
+
return {
|
|
162
|
+
collectionGitPath: params.collectionGitPath,
|
|
163
|
+
sourceFile: null,
|
|
164
|
+
frontmatterFormat: null,
|
|
165
|
+
fields: [],
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
const absolutePath = path.join(params.repoRoot, sampleFilePath);
|
|
169
|
+
const fileContent = await readFileUtf8(absolutePath);
|
|
170
|
+
const parsedFrontmatter = parseFrontmatter(fileContent);
|
|
171
|
+
if (!parsedFrontmatter) {
|
|
172
|
+
return {
|
|
173
|
+
collectionGitPath: params.collectionGitPath,
|
|
174
|
+
sourceFile: sampleFilePath,
|
|
175
|
+
frontmatterFormat: null,
|
|
176
|
+
fields: [],
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
const fields = inferSchemaFromFrontmatter(parsedFrontmatter.fields);
|
|
180
|
+
return {
|
|
181
|
+
collectionGitPath: params.collectionGitPath,
|
|
182
|
+
sourceFile: sampleFilePath,
|
|
183
|
+
frontmatterFormat: parsedFrontmatter.format,
|
|
184
|
+
fields,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
async function buildSitePlan(params) {
|
|
188
|
+
const warnings = [];
|
|
189
|
+
const frameworkDetection = await detectFrameworkForSite(params.repoRoot, params.siteRoot);
|
|
190
|
+
if (!frameworkDetection.framework) {
|
|
191
|
+
warnings.push('Framework was not detected. Using defaults.');
|
|
192
|
+
}
|
|
193
|
+
const siteTree = filterRootTreeForNestedSiteRoots({
|
|
194
|
+
tree: params.tree,
|
|
195
|
+
siteRoot: params.siteRoot,
|
|
196
|
+
allSiteRoots: params.allSiteRoots,
|
|
197
|
+
});
|
|
198
|
+
const detectedCollections = detectCollectionRoots(siteTree, params.siteRoot);
|
|
199
|
+
const siteI18nDetection = deriveSiteI18nFromCollections(detectedCollections, warnings);
|
|
200
|
+
const schemaInference = [];
|
|
201
|
+
for (const collection of detectedCollections) {
|
|
202
|
+
const inferred = await inferCollectionSchema({
|
|
203
|
+
repoRoot: params.repoRoot,
|
|
204
|
+
tree: siteTree,
|
|
205
|
+
siteRoot: params.siteRoot,
|
|
206
|
+
collectionGitPath: collection.gitPath,
|
|
207
|
+
});
|
|
208
|
+
schemaInference.push(inferred);
|
|
209
|
+
}
|
|
210
|
+
if (detectedCollections.length === 0) {
|
|
211
|
+
warnings.push('No markdown collections were detected for this site root.');
|
|
212
|
+
}
|
|
213
|
+
const frontmatterFormat = pickFrontmatterFormat(schemaInference, warnings);
|
|
214
|
+
const collectionByPath = new Map(schemaInference.map((inference) => [inference.collectionGitPath, inference]));
|
|
215
|
+
const collections = detectedCollections.map((collection) => {
|
|
216
|
+
const inferred = collectionByPath.get(collection.gitPath);
|
|
217
|
+
const collectionI18n = collection.i18n?.enabled
|
|
218
|
+
? {
|
|
219
|
+
enabled: true,
|
|
220
|
+
strategy: 'path',
|
|
221
|
+
}
|
|
222
|
+
: undefined;
|
|
223
|
+
return {
|
|
224
|
+
name: collection.name,
|
|
225
|
+
git_path: makeCollectionGitPath(collection.gitPath),
|
|
226
|
+
file_extension: collection.dominantExtension,
|
|
227
|
+
collection_type: collection.collectionType,
|
|
228
|
+
filename_pattern: [],
|
|
229
|
+
frontmatter_schema: inferred?.fields ?? [],
|
|
230
|
+
i18n: collectionI18n,
|
|
231
|
+
};
|
|
232
|
+
});
|
|
233
|
+
const config = createBaseConfig(frameworkDetection.suggestedMediaPath ?? '');
|
|
234
|
+
config.collections = collections;
|
|
235
|
+
config.frontmatter_format = frontmatterFormat;
|
|
236
|
+
if (frameworkDetection.framework) {
|
|
237
|
+
config.ssg_framework = frameworkDetection.framework;
|
|
238
|
+
}
|
|
239
|
+
if (siteI18nDetection) {
|
|
240
|
+
config.i18n = {
|
|
241
|
+
enabled: true,
|
|
242
|
+
locales: siteI18nDetection.locales,
|
|
243
|
+
default_locale: siteI18nDetection.defaultLocale,
|
|
244
|
+
prefix_default_locale: siteI18nDetection.prefixDefaultLocale,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
const parsed = ConfigSchema.safeParse(config);
|
|
248
|
+
if (!parsed.success) {
|
|
249
|
+
const issue = parsed.error.issues[0];
|
|
250
|
+
const issuePath = issue?.path.join('.') || 'config';
|
|
251
|
+
const issueMessage = issue?.message || 'unknown validation error';
|
|
252
|
+
throw new Error(`Invalid inferred config (${issuePath}: ${issueMessage})`);
|
|
253
|
+
}
|
|
254
|
+
const collectionConfidence = deriveCollectionConfidence(collections.length);
|
|
255
|
+
return {
|
|
256
|
+
siteRoot: params.siteRoot,
|
|
257
|
+
configPath: getConfigPathForSiteRoot(params.siteRoot),
|
|
258
|
+
config: parsed.data,
|
|
259
|
+
frameworkDetection,
|
|
260
|
+
collectionDetection: {
|
|
261
|
+
collections: detectedCollections,
|
|
262
|
+
confidence: collectionConfidence,
|
|
263
|
+
},
|
|
264
|
+
schemaInference,
|
|
265
|
+
warnings,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
export async function buildInitPlan(input) {
|
|
269
|
+
const normalizedRoots = dedupeSiteRoots(input.siteRoots);
|
|
270
|
+
const repositoryFiles = await walkRepositoryFiles(input.repoRoot);
|
|
271
|
+
const tree = createLocalTree(repositoryFiles);
|
|
272
|
+
const sites = [];
|
|
273
|
+
for (const siteRoot of normalizedRoots) {
|
|
274
|
+
const sitePlan = await buildSitePlan({
|
|
275
|
+
repoRoot: input.repoRoot,
|
|
276
|
+
tree,
|
|
277
|
+
siteRoot,
|
|
278
|
+
allSiteRoots: normalizedRoots,
|
|
279
|
+
});
|
|
280
|
+
sites.push(sitePlan);
|
|
281
|
+
}
|
|
282
|
+
const warnings = [];
|
|
283
|
+
for (const site of sites) {
|
|
284
|
+
for (const warning of site.warnings) {
|
|
285
|
+
warnings.push(`${site.configPath}: ${warning}`);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return {
|
|
289
|
+
repoRoot: input.repoRoot,
|
|
290
|
+
mode: input.mode,
|
|
291
|
+
sites,
|
|
292
|
+
warnings,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=planner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/core/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-roots.d.ts","sourceRoot":"","sources":["../../src/core/site-roots.ts"],"names":[],"mappings":"AAYA,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;;;EA2B5D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { SSG_CONFIGS } from './gitcms-config.js';
|
|
3
|
+
import { toPosixPath } from './paths.js';
|
|
4
|
+
const ROOT_CONFIG_FILENAMES = new Set();
|
|
5
|
+
for (const framework of SSG_CONFIGS) {
|
|
6
|
+
for (const configFile of framework.rootConfigFiles) {
|
|
7
|
+
ROOT_CONFIG_FILENAMES.add(configFile);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export function detectSiteRootCandidates(files) {
|
|
11
|
+
const nestedRoots = new Set();
|
|
12
|
+
let rootDetected = false;
|
|
13
|
+
for (const file of files) {
|
|
14
|
+
const normalizedPath = toPosixPath(file);
|
|
15
|
+
const basename = path.posix.basename(normalizedPath);
|
|
16
|
+
if (!ROOT_CONFIG_FILENAMES.has(basename)) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const directory = path.posix.dirname(normalizedPath);
|
|
20
|
+
if (!directory || directory === '.') {
|
|
21
|
+
rootDetected = true;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
nestedRoots.add(directory);
|
|
25
|
+
}
|
|
26
|
+
const sortedNested = Array.from(nestedRoots).sort((a, b) => a.localeCompare(b));
|
|
27
|
+
return {
|
|
28
|
+
rootDetected,
|
|
29
|
+
nestedRoots: sortedNested,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=site-roots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-roots.js","sourceRoot":"","sources":["../../src/core/site-roots.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAA;AAC/C,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;IACpC,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;QACnD,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAoB;IAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IACrC,IAAI,YAAY,GAAG,KAAK,CAAA;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QAEpD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,SAAQ;QACV,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACpD,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACpC,YAAY,GAAG,IAAI,CAAA;YACnB,SAAQ;QACV,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/E,OAAO;QACL,YAAY;QACZ,WAAW,EAAE,YAAY;KACG,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap-discovery.d.ts","sourceRoot":"","sources":["../../src/core/sitemap-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap-discovery.js","sourceRoot":"","sources":["../../src/core/sitemap-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export interface RepositoryTreeItem {
|
|
2
|
+
type: string;
|
|
3
|
+
path?: string | null;
|
|
4
|
+
sha?: string | null;
|
|
5
|
+
}
|
|
6
|
+
export interface LocalTreeItem {
|
|
7
|
+
type: 'blob';
|
|
8
|
+
path: string;
|
|
9
|
+
sha: null;
|
|
10
|
+
}
|
|
11
|
+
export interface DetectedCollection {
|
|
12
|
+
name: string;
|
|
13
|
+
gitPath: string;
|
|
14
|
+
fileCount: number;
|
|
15
|
+
dominantExtension: '.md' | '.mdx';
|
|
16
|
+
collectionType: 'flat' | 'grouped';
|
|
17
|
+
i18n?: DetectedCollectionI18n;
|
|
18
|
+
}
|
|
19
|
+
export interface DetectedCollectionI18n {
|
|
20
|
+
enabled: true;
|
|
21
|
+
locales: Array<string>;
|
|
22
|
+
localeFolders: Array<string>;
|
|
23
|
+
defaultLocale: string | null;
|
|
24
|
+
prefixDefaultLocale: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface ParsedFrontmatter {
|
|
27
|
+
format: 'yaml' | 'toml' | 'json';
|
|
28
|
+
fields: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
export interface SampleMarkdownBlob {
|
|
31
|
+
path: string;
|
|
32
|
+
sha: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function createLocalTree(files: Array<string>): LocalTreeItem[];
|
|
35
|
+
export declare function detectCollectionRoots(tree: Array<RepositoryTreeItem>, siteRoot: string): DetectedCollection[];
|
|
36
|
+
export declare function findSampleMarkdownFile(tree: Array<RepositoryTreeItem>, siteRoot: string, collectionGitPath: string): string | null;
|
|
37
|
+
export declare function findSampleMarkdownBlob(tree: Array<RepositoryTreeItem>, siteRoot: string, collectionGitPath: string): {
|
|
38
|
+
path: string;
|
|
39
|
+
sha: string;
|
|
40
|
+
} | null;
|
|
41
|
+
export declare function parseFrontmatter(content: string): {
|
|
42
|
+
format: "yaml";
|
|
43
|
+
fields: Record<string, unknown>;
|
|
44
|
+
} | {
|
|
45
|
+
format: "toml";
|
|
46
|
+
fields: {};
|
|
47
|
+
} | {
|
|
48
|
+
format: "json";
|
|
49
|
+
fields: Record<string, unknown>;
|
|
50
|
+
} | null;
|
|
51
|
+
//# sourceMappingURL=content-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-detection.d.ts","sourceRoot":"","sources":["../../../src/core/vendor/content-detection.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,IAAI,CAAA;CACV;AA+DD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,KAAK,GAAG,MAAM,CAAA;IACjC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,IAAI,CAAC,EAAE,sBAAsB,CAAA;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAA;IACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;CAC7B;AAQD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAQD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,mBAMnD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,MAAM,wBA+DtF;AAwRD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,iBAK1B;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM;;;SAS1B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;;;;SA6F/C"}
|