@se-studio/site-check 1.1.2 → 1.1.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - fix(screaming-frog): export post-crawl CSVs via stored crawl **database ID** (`--load-crawl <uuid>`) instead of site URL — URL-based load fails when multiple crawls share storage (empty export folders).
8
+ - fix(screaming-frog): remove invalid `All Inlinks` from default `--export-tabs` (Screaming Frog 24.x requires `Tab:Filter`; bare tab names abort export).
9
+
3
10
  ## 1.1.2
4
11
 
5
12
  ### Patch Changes
@@ -1,8 +1,12 @@
1
1
  import type { ScreamingFrogCrawlCliOptions, ScreamingFrogCrawlResult } from './types.js';
2
2
  /** CSV tabs exported after every crawl for audit analysis. */
3
- export declare const DEFAULT_EXPORT_TABS: readonly ["Internal:All", "Response Codes:All", "Canonicals:All", "Directives:All", "Structured Data:All", "H1:All", "Page Titles:All", "Meta Description:All", "All Inlinks"];
3
+ export declare const DEFAULT_EXPORT_TABS: readonly ["Internal:All", "Response Codes:All", "Canonicals:All", "Directives:All", "Structured Data:All", "H1:All", "Page Titles:All", "Meta Description:All"];
4
4
  export declare const DEFAULT_EXPORT_REPORTS: readonly ["Crawl Overview", "Issues Overview"];
5
5
  /** Base CLI args for exporting a saved crawl. Must not include --config (SF rejects it with --load-crawl). */
6
- export declare function buildLoadCrawlExportBaseArgs(crawlUrl: string): string[];
6
+ export declare function buildLoadCrawlExportBaseArgs(loadCrawl: string): string[];
7
+ /** Resolve stored crawl database ID (preferred) or fall back to crawl URL for --load-crawl. */
8
+ export declare function resolveLoadCrawlTarget(crawlUrl: string, options?: {
9
+ requireDatabaseId?: boolean;
10
+ }): Promise<string>;
7
11
  export declare function runScreamingFrogCrawl(options: ScreamingFrogCrawlCliOptions): Promise<ScreamingFrogCrawlResult>;
8
12
  //# sourceMappingURL=crawl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../../src/screaming-frog/crawl.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEzF,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,gLAUtB,CAAC;AAEX,eAAO,MAAM,sBAAsB,gDAAiD,CAAC;AAErF,8GAA8G;AAC9G,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvE;AA6BD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAuCnC"}
1
+ {"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../../src/screaming-frog/crawl.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEzF,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,iKAStB,CAAC;AAEX,eAAO,MAAM,sBAAsB,gDAAiD,CAAC;AAErF,8GAA8G;AAC9G,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAExE;AAED,+FAA+F;AAC/F,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,OAAO,CAAC,MAAM,CAAC,CAUjB;AA6BD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CA0CnC"}
@@ -14,16 +14,26 @@ export const DEFAULT_EXPORT_TABS = [
14
14
  'H1:All',
15
15
  'Page Titles:All',
16
16
  'Meta Description:All',
17
- 'All Inlinks',
18
17
  ];
19
18
  export const DEFAULT_EXPORT_REPORTS = ['Crawl Overview', 'Issues Overview'];
20
19
  /** Base CLI args for exporting a saved crawl. Must not include --config (SF rejects it with --load-crawl). */
21
- export function buildLoadCrawlExportBaseArgs(crawlUrl) {
22
- return ['--headless', '--load-crawl', crawlUrl];
20
+ export function buildLoadCrawlExportBaseArgs(loadCrawl) {
21
+ return ['--headless', '--load-crawl', loadCrawl];
23
22
  }
24
- async function exportCrawlArtifacts(exportDir, crawlUrl) {
23
+ /** Resolve stored crawl database ID (preferred) or fall back to crawl URL for --load-crawl. */
24
+ export async function resolveLoadCrawlTarget(crawlUrl, options = {}) {
25
+ const storedCrawls = await listStoredCrawls();
26
+ const latest = findLatestCrawlForUrl(storedCrawls, crawlUrl);
27
+ if (latest?.databaseId)
28
+ return latest.databaseId;
29
+ if (options.requireDatabaseId) {
30
+ throw new Error(`No stored crawl found for ${crawlUrl} after crawl. Check Screaming Frog --list-crawls or re-run crawl.`);
31
+ }
32
+ return crawlUrl;
33
+ }
34
+ async function exportCrawlArtifacts(exportDir, loadCrawl) {
25
35
  await mkdir(exportDir, { recursive: true });
26
- const base = buildLoadCrawlExportBaseArgs(crawlUrl);
36
+ const base = buildLoadCrawlExportBaseArgs(loadCrawl);
27
37
  await runScreamingFrogOrThrow([
28
38
  ...base,
29
39
  '--export-tabs',
@@ -65,7 +75,10 @@ export async function runScreamingFrogCrawl(options) {
65
75
  '--overwrite',
66
76
  ], { inherit: true });
67
77
  }
68
- await exportCrawlArtifacts(exportDir, target.url);
78
+ const loadCrawl = await resolveLoadCrawlTarget(target.url, {
79
+ requireDatabaseId: !options.skipCrawl,
80
+ });
81
+ await exportCrawlArtifacts(exportDir, loadCrawl);
69
82
  const storedCrawls = await listStoredCrawls();
70
83
  const latest = findLatestCrawlForUrl(storedCrawls, target.url);
71
84
  return {
@@ -74,7 +87,7 @@ export async function runScreamingFrogCrawl(options) {
74
87
  configFile: target.configFile,
75
88
  profileName: options.profile,
76
89
  siteLabel: options.site.siteLabel,
77
- databaseId: latest?.databaseId,
90
+ databaseId: latest?.databaseId ?? loadCrawl,
78
91
  };
79
92
  }
80
93
  //# sourceMappingURL=crawl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../src/screaming-frog/crawl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../src/screaming-frog/crawl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/site-check",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "Validate SE marketing sites (sitemap, llms.txt) and download markdown files preserving structure",
5
5
  "repository": {
6
6
  "type": "git",