@s-hirano-ist/s-scripts 1.23.5 → 1.24.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.
Files changed (51) hide show
  1. package/dist/cleanup-minio-images.js +5 -7
  2. package/dist/cleanup-minio-images.js.map +1 -1
  3. package/dist/enrich-books.js +10 -8
  4. package/dist/enrich-books.js.map +1 -1
  5. package/dist/fetch-articles.js +8 -6
  6. package/dist/fetch-articles.js.map +1 -1
  7. package/dist/fetch-books.js +24 -24
  8. package/dist/fetch-books.js.map +1 -1
  9. package/dist/fetch-images.js +22 -22
  10. package/dist/fetch-images.js.map +1 -1
  11. package/dist/fetch-notes.js +2 -2
  12. package/dist/fetch-notes.js.map +1 -1
  13. package/dist/find-duplicate-json-articles.js +1 -1
  14. package/dist/find-duplicate-json-articles.js.map +1 -1
  15. package/dist/fix-book-frontmatter.js +73 -53
  16. package/dist/fix-book-frontmatter.js.map +1 -1
  17. package/dist/fix-image-formats.js +2 -2
  18. package/dist/fix-image-formats.js.map +1 -1
  19. package/dist/infrastructures/articles-command-repository.d.ts +1 -1
  20. package/dist/infrastructures/articles-command-repository.d.ts.map +1 -1
  21. package/dist/infrastructures/articles-command-repository.js +3 -2
  22. package/dist/infrastructures/articles-command-repository.js.map +1 -1
  23. package/dist/infrastructures/books-command-repository.d.ts +1 -1
  24. package/dist/infrastructures/books-command-repository.d.ts.map +1 -1
  25. package/dist/infrastructures/books-command-repository.js +3 -2
  26. package/dist/infrastructures/books-command-repository.js.map +1 -1
  27. package/dist/infrastructures/images-command-repository.d.ts +1 -1
  28. package/dist/infrastructures/images-command-repository.d.ts.map +1 -1
  29. package/dist/infrastructures/images-command-repository.js +3 -2
  30. package/dist/infrastructures/images-command-repository.js.map +1 -1
  31. package/dist/infrastructures/notes-command-repository.d.ts +1 -1
  32. package/dist/infrastructures/notes-command-repository.d.ts.map +1 -1
  33. package/dist/infrastructures/notes-command-repository.js +3 -2
  34. package/dist/infrastructures/notes-command-repository.js.map +1 -1
  35. package/dist/ingest-articles.js +128 -105
  36. package/dist/ingest-articles.js.map +1 -1
  37. package/dist/ingest-books.js +112 -101
  38. package/dist/ingest-books.js.map +1 -1
  39. package/dist/ingest-images.js +7 -7
  40. package/dist/ingest-images.js.map +1 -1
  41. package/dist/ingest-notes.js +49 -43
  42. package/dist/ingest-notes.js.map +1 -1
  43. package/dist/rag/ingest.js +5 -5
  44. package/dist/rag/ingest.js.map +1 -1
  45. package/dist/s-content-format.js +1 -1
  46. package/dist/s-content-format.js.map +1 -1
  47. package/dist/update-json-articles.js +11 -9
  48. package/dist/update-json-articles.js.map +1 -1
  49. package/dist/update-raw-articles.js +9 -8
  50. package/dist/update-raw-articles.js.map +1 -1
  51. package/package.json +9 -9
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { basename, extname } from "node:path";
3
2
  import { createPushoverService } from "@s-hirano-ist/s-notification";
4
3
  import { createMinioClient } from "@s-hirano-ist/s-storage";
5
4
  import { glob } from "glob";
5
+ import { basename, extname } from "node:path";
6
6
  const SCRIPT_NAME = "cleanup-minio-images";
7
7
  const ORIGINAL_IMAGE_PATH = "images/original";
8
8
  const THUMBNAIL_IMAGE_PATH = "images/thumbnail";
@@ -33,11 +33,9 @@ async function main() {
33
33
  if (Object.values(env).some((v) => !v)) {
34
34
  throw new Error("Required environment variables are not set.");
35
35
  }
36
- if (process.env.MINIO_USE_SSL === "true") {
37
- if (!process.env.CF_ACCESS_CLIENT_ID ||
38
- !process.env.CF_ACCESS_CLIENT_SECRET) {
39
- throw new Error("CF_ACCESS_CLIENT_ID and CF_ACCESS_CLIENT_SECRET are required when MINIO_USE_SSL is true.");
40
- }
36
+ if (process.env.MINIO_USE_SSL === "true" &&
37
+ (!process.env.CF_ACCESS_CLIENT_ID || !process.env.CF_ACCESS_CLIENT_SECRET)) {
38
+ throw new Error("CF_ACCESS_CLIENT_ID and CF_ACCESS_CLIENT_SECRET are required when MINIO_USE_SSL is true.");
41
39
  }
42
40
  const contentsPath = process.env.S_CONTENTS_PATH ?? process.cwd();
43
41
  const notificationService = createPushoverService({
@@ -50,7 +48,7 @@ async function main() {
50
48
  try {
51
49
  // 1. ローカルファイル一覧取得
52
50
  const localFiles = await glob(`${contentsPath}/image/dump/*`);
53
- const localFileNames = new Set(localFiles.filter(isImageFile).map((f) => basename(f)));
51
+ const localFileNames = new Set(localFiles.filter((f) => isImageFile(f)).map((f) => basename(f)));
54
52
  console.log(`📁 ローカルに ${localFileNames.size} 件の画像ファイルを検出しました。`);
55
53
  // 2. MinIOオブジェクト一覧取得
56
54
  const [originalKeys, thumbnailKeys] = await Promise.all([
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup-minio-images.js","sourceRoot":"","sources":["../src/cleanup-minio-images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cleanup-minio-images.js","sourceRoot":"","sources":["../src/cleanup-minio-images.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env node
2
+ import { books as googleBooksApis } from "@googleapis/books";
3
+ import { glob } from "glob";
4
+ import matter from "gray-matter";
5
+ import { dump } from "js-yaml";
2
6
  /**
3
7
  * markdown/book/*.md の frontmatter について、毎回 Google Books API を呼び出して
4
8
  * google* および title を最新状態に更新するスクリプト。
@@ -9,21 +13,19 @@
9
13
  */
10
14
  import { readFile, writeFile } from "node:fs/promises";
11
15
  import { basename, join } from "node:path";
12
- import { books as googleBooksApis } from "@googleapis/books";
13
- import { glob } from "glob";
14
- import matter from "gray-matter";
15
- import yaml from "js-yaml";
16
16
  const NO_IMG_SRC = "https://s-hirano.com/notFound.png";
17
17
  const NOT_FOUND_HREF = "https://s-hirano.com/404";
18
18
  const API_INTERVAL_MS = 600;
19
19
  function dumpFrontmatter(data) {
20
- return yaml.dump(data, {
20
+ return dump(data, {
21
21
  lineWidth: -1,
22
22
  forceQuotes: false,
23
23
  noRefs: true,
24
24
  });
25
25
  }
26
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
26
+ const sleep = (ms) => new Promise((resolve) => {
27
+ setTimeout(resolve, ms);
28
+ });
27
29
  async function main() {
28
30
  const dryRun = process.argv.includes("--dry-run");
29
31
  const contentsPath = process.env.S_CONTENTS_PATH ?? process.cwd();
@@ -37,7 +39,7 @@ async function main() {
37
39
  console.log(`📁 ${files.length} 件の markdown を検出しました。${dryRun ? " (dry-run)" : ""}`);
38
40
  let enrichedCount = 0;
39
41
  let errorCount = 0;
40
- for (const filePath of files.sort()) {
42
+ for (const filePath of files.toSorted()) {
41
43
  const fileName = basename(filePath);
42
44
  const isbn = basename(filePath, ".md");
43
45
  try {
@@ -66,7 +68,7 @@ async function main() {
66
68
  if (typeof volume?.title === "string" && volume.title !== "") {
67
69
  next.title = volume.title;
68
70
  }
69
- const body = parsed.content.replace(/^\n+/, "");
71
+ const body = parsed.content.replace(/^\n+/u, "");
70
72
  const newContent = `---\n${dumpFrontmatter(next)}---\n\n${body}`;
71
73
  if (dryRun) {
72
74
  console.log(" [dry-run] 書き込みスキップ");
@@ -1 +1 @@
1
- {"version":3,"file":"enrich-books.js","sourceRoot":"","sources":["../src/enrich-books.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enrich-books.js","sourceRoot":"","sources":["../src/enrich-books.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { mkdir, readFile, writeFile } from "node:fs/promises";
3
- import { dirname } from "node:path";
4
2
  import { makeUnexportedStatus, makeUserId, } from "@s-hirano-ist/s-core/shared-kernel/entities/common-entity";
5
3
  import { createPushoverService } from "@s-hirano-ist/s-notification";
4
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
5
+ import { dirname } from "node:path";
6
6
  const OUTPUT_PATH = "json/article";
7
7
  async function main() {
8
8
  const env = {
@@ -27,10 +27,11 @@ async function main() {
27
27
  const UNEXPORTED = makeUnexportedStatus();
28
28
  function categorizeArticles(articles) {
29
29
  return articles.reduce((acc, d) => {
30
- if (!acc[d.categoryName])
31
- acc[d.categoryName] = [];
32
- const { title, quote, url } = d;
33
- acc[d.categoryName].push({ title, quote: quote ?? "", url });
30
+ const { title, quote, url, categoryName } = d;
31
+ // oxlint-disable-next-line typescript/no-unnecessary-condition -- Record index access is undefined at runtime for new keys; initializes the bucket
32
+ if (!acc[categoryName])
33
+ acc[categoryName] = [];
34
+ acc[categoryName].push({ title, quote: quote ?? "", url });
34
35
  return acc;
35
36
  }, {});
36
37
  }
@@ -73,6 +74,7 @@ async function main() {
73
74
  title: d.title,
74
75
  url: d.url,
75
76
  quote: d.quote,
77
+ // oxlint-disable-next-line typescript/no-unnecessary-condition -- Prisma row is an external runtime boundary; relation/name may differ from declared non-null type
76
78
  categoryName: d.Category?.name ?? "",
77
79
  }));
78
80
  console.log(`📊 ${articles.length} 件のデータを取得しました。`);
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-articles.js","sourceRoot":"","sources":["../src/fetch-articles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-articles.js","sourceRoot":"","sources":["../src/fetch-articles.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,35 @@
1
1
  #!/usr/bin/env node
2
- import { access, mkdir, writeFile } from "node:fs/promises";
3
- import path from "node:path";
4
2
  import { makeUnexportedStatus, makeUserId, } from "@s-hirano-ist/s-core/shared-kernel/entities/common-entity";
5
3
  import { createPushoverService } from "@s-hirano-ist/s-notification";
6
4
  import { createMinioClient } from "@s-hirano-ist/s-storage";
7
- import yaml from "js-yaml";
5
+ import { dump } from "js-yaml";
6
+ import { access, mkdir, writeFile } from "node:fs/promises";
7
+ import path from "node:path";
8
8
  const OUTPUT_DIR = "markdown/book/";
9
9
  function dumpFrontmatter(data) {
10
- return yaml.dump(data, {
10
+ return dump(data, {
11
11
  lineWidth: -1,
12
12
  forceQuotes: false,
13
13
  noRefs: true,
14
14
  });
15
15
  }
16
+ async function withRetry(fn, retries = 3) {
17
+ for (let attempt = 0; attempt < retries; attempt++) {
18
+ try {
19
+ return await fn();
20
+ }
21
+ catch (error) {
22
+ if (attempt === retries - 1)
23
+ throw error;
24
+ const delay = 1000 * 2 ** attempt;
25
+ console.warn(`⚠️ リトライ ${attempt + 1}/${retries} (${delay}ms後)...`);
26
+ await new Promise((r) => {
27
+ setTimeout(r, delay);
28
+ });
29
+ }
30
+ }
31
+ throw new Error("unreachable");
32
+ }
16
33
  async function main() {
17
34
  const env = {
18
35
  DATABASE_URL: process.env.DATABASE_URL,
@@ -25,11 +42,9 @@ async function main() {
25
42
  if (Object.values(env).some((v) => !v)) {
26
43
  throw new Error("Required environment variables are not set.");
27
44
  }
28
- if (process.env.MINIO_USE_SSL === "true") {
29
- if (!process.env.CF_ACCESS_CLIENT_ID ||
30
- !process.env.CF_ACCESS_CLIENT_SECRET) {
31
- throw new Error("CF_ACCESS_CLIENT_ID and CF_ACCESS_CLIENT_SECRET are required when MINIO_USE_SSL is true.");
32
- }
45
+ if (process.env.MINIO_USE_SSL === "true" &&
46
+ (!process.env.CF_ACCESS_CLIENT_ID || !process.env.CF_ACCESS_CLIENT_SECRET)) {
47
+ throw new Error("CF_ACCESS_CLIENT_ID and CF_ACCESS_CLIENT_SECRET are required when MINIO_USE_SSL is true.");
33
48
  }
34
49
  // Dynamic import for Prisma ESM compatibility
35
50
  const { createPrismaClient } = await import("@s-hirano-ist/s-database");
@@ -74,21 +89,6 @@ async function main() {
74
89
  }
75
90
  console.log(`💾 Markdown: ${exportedCount} 件書き出し, ${skippedCount} 件スキップ`);
76
91
  }
77
- async function withRetry(fn, retries = 3) {
78
- for (let attempt = 0; attempt < retries; attempt++) {
79
- try {
80
- return await fn();
81
- }
82
- catch (error) {
83
- if (attempt === retries - 1)
84
- throw error;
85
- const delay = 1000 * 2 ** attempt;
86
- console.warn(`⚠️ リトライ ${attempt + 1}/${retries} (${delay}ms後)...`);
87
- await new Promise((r) => setTimeout(r, delay));
88
- }
89
- }
90
- throw new Error("unreachable");
91
- }
92
92
  async function downloadBookImages(books) {
93
93
  const outputDir = path.join(process.cwd(), "image/book");
94
94
  await mkdir(outputDir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-books.js","sourceRoot":"","sources":["../src/fetch-books.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-books.js","sourceRoot":"","sources":["../src/fetch-books.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,26 @@
1
1
  #!/usr/bin/env node
2
- import { mkdir } from "node:fs/promises";
3
- import path from "node:path";
4
2
  import { makeUnexportedStatus, makeUserId, } from "@s-hirano-ist/s-core/shared-kernel/entities/common-entity";
5
3
  import { createPushoverService } from "@s-hirano-ist/s-notification";
6
4
  import { createMinioClient } from "@s-hirano-ist/s-storage";
5
+ import { mkdir } from "node:fs/promises";
6
+ import path from "node:path";
7
+ async function withRetry(fn, retries = 3) {
8
+ for (let attempt = 0; attempt < retries; attempt++) {
9
+ try {
10
+ return await fn();
11
+ }
12
+ catch (error) {
13
+ if (attempt === retries - 1)
14
+ throw error;
15
+ const delay = 1000 * 2 ** attempt;
16
+ console.warn(`⚠️ リトライ ${attempt + 1}/${retries} (${delay}ms後)...`);
17
+ await new Promise((r) => {
18
+ setTimeout(r, delay);
19
+ });
20
+ }
21
+ }
22
+ throw new Error("unreachable");
23
+ }
7
24
  async function main() {
8
25
  const env = {
9
26
  DATABASE_URL: process.env.DATABASE_URL,
@@ -16,11 +33,9 @@ async function main() {
16
33
  if (Object.values(env).some((v) => !v)) {
17
34
  throw new Error("Required environment variables are not set.");
18
35
  }
19
- if (process.env.MINIO_USE_SSL === "true") {
20
- if (!process.env.CF_ACCESS_CLIENT_ID ||
21
- !process.env.CF_ACCESS_CLIENT_SECRET) {
22
- throw new Error("CF_ACCESS_CLIENT_ID and CF_ACCESS_CLIENT_SECRET are required when MINIO_USE_SSL is true.");
23
- }
36
+ if (process.env.MINIO_USE_SSL === "true" &&
37
+ (!process.env.CF_ACCESS_CLIENT_ID || !process.env.CF_ACCESS_CLIENT_SECRET)) {
38
+ throw new Error("CF_ACCESS_CLIENT_ID and CF_ACCESS_CLIENT_SECRET are required when MINIO_USE_SSL is true.");
24
39
  }
25
40
  // Dynamic import for Prisma ESM compatibility
26
41
  const { createPrismaClient } = await import("@s-hirano-ist/s-database");
@@ -33,21 +48,6 @@ async function main() {
33
48
  const minioClient = createMinioClient();
34
49
  const userId = makeUserId(env.USERNAME_TO_EXPORT ?? "");
35
50
  const UNEXPORTED = makeUnexportedStatus();
36
- async function withRetry(fn, retries = 3) {
37
- for (let attempt = 0; attempt < retries; attempt++) {
38
- try {
39
- return await fn();
40
- }
41
- catch (error) {
42
- if (attempt === retries - 1)
43
- throw error;
44
- const delay = 1000 * 2 ** attempt;
45
- console.warn(`⚠️ リトライ ${attempt + 1}/${retries} (${delay}ms後)...`);
46
- await new Promise((r) => setTimeout(r, delay));
47
- }
48
- }
49
- throw new Error("unreachable");
50
- }
51
51
  async function fetchImages() {
52
52
  const images = await prisma.image.findMany({
53
53
  where: { userId, status: UNEXPORTED },
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-images.js","sourceRoot":"","sources":["../src/fetch-images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-images.js","sourceRoot":"","sources":["../src/fetch-images.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { mkdir, writeFile } from "node:fs/promises";
3
- import { dirname } from "node:path";
4
2
  import { makeUnexportedStatus, makeUserId, } from "@s-hirano-ist/s-core/shared-kernel/entities/common-entity";
5
3
  import { createPushoverService } from "@s-hirano-ist/s-notification";
4
+ import { mkdir, writeFile } from "node:fs/promises";
5
+ import { dirname } from "node:path";
6
6
  const OUTPUT_DIR = "markdown/note/";
7
7
  async function main() {
8
8
  const env = {
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-notes.js","sourceRoot":"","sources":["../src/fetch-notes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-notes.js","sourceRoot":"","sources":["../src/fetch-notes.ts"],"names":[],"mappings":";AACA,OAAO,EACN,oBAAoB,EACpB,UAAU,GAGV,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,KAAK,UAAU,IAAI;IAClB,MAAM,GAAG,GAAG;QACX,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAChD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAClD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;KACzC,CAAC;IAEX,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;IAED,8CAA8C;IAC9C,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAE1D,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;QACjD,GAAG,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QAC3B,OAAO,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE;QACpC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,IAAI,EAAE;KACtC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAW,UAAU,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,UAAU,GAAW,oBAAoB,EAAE,CAAC;IAElD,KAAK,UAAU,UAAU,CAAC,IAAY;QACrC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC;YACjD,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAED,KAAK,UAAU,UAAU;QACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACxC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;YACrC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SACjD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAEhD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM,mBAAmB,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC7D,MAAM,EAAE,aAAa;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,mBAAmB,CAAC,WAAW,CACpC,uBAAuB,MAAM,CAAC,KAAK,CAAC,EAAE,EACtC;YACC,MAAM,EAAE,aAAa;SACrB,CACD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;YAAS,CAAC;QACV,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;AACF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -93,7 +93,7 @@ function displayResults(duplicates) {
93
93
  });
94
94
  console.log("\nカテゴリ別重複統計:");
95
95
  Array.from(categoryStats.entries())
96
- .sort((a, b) => b[1] - a[1])
96
+ .toSorted((a, b) => b[1] - a[1])
97
97
  .forEach(([category, count]) => {
98
98
  console.log(` ${category}: ${count}個の重複エントリ`);
99
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"find-duplicate-json-articles.js","sourceRoot":"","sources":["../src/find-duplicate-json-articles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-duplicate-json-articles.js","sourceRoot":"","sources":["../src/find-duplicate-json-articles.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { readFile, writeFile } from "node:fs/promises";
3
- import { basename, join } from "node:path";
4
2
  import { glob } from "glob";
5
3
  import matter from "gray-matter";
6
- import yaml from "js-yaml";
4
+ import { dump } from "js-yaml";
5
+ import { readFile, writeFile } from "node:fs/promises";
6
+ import { basename, join } from "node:path";
7
7
  const REQUIRED_KEYS = [
8
8
  "heading",
9
9
  "title",
@@ -18,16 +18,78 @@ const REQUIRED_KEYS = [
18
18
  ];
19
19
  const LEGACY_KEYS = ["googleTitle"];
20
20
  function dumpFrontmatter(data) {
21
- return yaml.dump(data, {
21
+ return dump(data, {
22
22
  lineWidth: -1,
23
23
  forceQuotes: false,
24
24
  noRefs: true,
25
25
  });
26
26
  }
27
27
  function extractTitleFromContent(content) {
28
- const match = /^# (.+)$/m.exec(content);
28
+ const match = /^# (.+)$/mu.exec(content);
29
29
  return match ? match[1].trim() : null;
30
30
  }
31
+ function buildFrontmatter(existing, isbn, title) {
32
+ return {
33
+ heading: existing.heading ?? isbn,
34
+ title,
35
+ draft: existing.draft ?? false,
36
+ rating: "rating" in existing ? existing.rating : null,
37
+ tags: Array.isArray(existing.tags) ? existing.tags : [],
38
+ googleSubtitle: "googleSubtitle" in existing ? existing.googleSubtitle : null,
39
+ googleAuthors: Array.isArray(existing.googleAuthors)
40
+ ? existing.googleAuthors
41
+ : [],
42
+ googleDescription: "googleDescription" in existing ? existing.googleDescription : null,
43
+ googleImgSrc: "googleImgSrc" in existing ? existing.googleImgSrc : null,
44
+ googleHref: "googleHref" in existing ? existing.googleHref : null,
45
+ };
46
+ }
47
+ function resolveTitle(existing, content, fileName) {
48
+ const title = typeof existing.title === "string" ? existing.title : "";
49
+ if (title) {
50
+ return title;
51
+ }
52
+ const h1 = extractTitleFromContent(content);
53
+ if (!h1) {
54
+ console.error(`⚠️ ${fileName}: title も H1 も見つかりません。スキップします。`);
55
+ return null;
56
+ }
57
+ return h1;
58
+ }
59
+ async function processFile(filePath, dryRun) {
60
+ const fileName = basename(filePath);
61
+ const isbn = basename(filePath, ".md");
62
+ try {
63
+ const raw = await readFile(filePath, "utf8");
64
+ const parsed = matter(raw);
65
+ const existing = parsed.data;
66
+ const hasAllKeys = REQUIRED_KEYS.every((k) => Object.hasOwn(existing, k));
67
+ const hasLegacyKeys = LEGACY_KEYS.some((k) => Object.hasOwn(existing, k));
68
+ if (hasAllKeys && !hasLegacyKeys) {
69
+ return "skipped";
70
+ }
71
+ // title: frontmatter.title を優先、無ければ本文 H1 にフォールバック
72
+ const title = resolveTitle(existing, parsed.content, fileName);
73
+ if (title === null) {
74
+ return "error";
75
+ }
76
+ const next = buildFrontmatter(existing, isbn, title);
77
+ const body = parsed.content.replace(/^\n+/u, "");
78
+ const newContent = `---\n${dumpFrontmatter(next)}---\n\n${body}`;
79
+ if (dryRun) {
80
+ console.log(`🔍 [dry-run] 修正予定: ${fileName}`);
81
+ }
82
+ else {
83
+ await writeFile(filePath, newContent, "utf8");
84
+ console.log(`✅ 修正完了: ${fileName} (${title})`);
85
+ }
86
+ return "fixed";
87
+ }
88
+ catch (error) {
89
+ console.error(`❌ ${fileName}: ${String(error)}`);
90
+ return "error";
91
+ }
92
+ }
31
93
  async function main() {
32
94
  const dryRun = process.argv.includes("--dry-run");
33
95
  const contentsPath = process.env.S_CONTENTS_PATH ?? process.cwd();
@@ -39,56 +101,14 @@ async function main() {
39
101
  let skippedCount = 0;
40
102
  let errorCount = 0;
41
103
  for (const filePath of files) {
42
- const fileName = basename(filePath);
43
- const isbn = basename(filePath, ".md");
44
- try {
45
- const raw = await readFile(filePath, "utf8");
46
- const parsed = matter(raw);
47
- const existing = parsed.data;
48
- const hasAllKeys = REQUIRED_KEYS.every((k) => Object.hasOwn(existing, k));
49
- const hasLegacyKeys = LEGACY_KEYS.some((k) => Object.hasOwn(existing, k));
50
- if (hasAllKeys && !hasLegacyKeys) {
51
- skippedCount++;
52
- continue;
53
- }
54
- // title: frontmatter.title を優先、無ければ本文 H1 にフォールバック
55
- let title = typeof existing.title === "string" ? existing.title : "";
56
- if (!title) {
57
- const h1 = extractTitleFromContent(parsed.content);
58
- if (!h1) {
59
- console.error(`⚠️ ${fileName}: title も H1 も見つかりません。スキップします。`);
60
- errorCount++;
61
- continue;
62
- }
63
- title = h1;
64
- }
65
- const next = {
66
- heading: existing.heading ?? isbn,
67
- title,
68
- draft: existing.draft ?? false,
69
- rating: "rating" in existing ? existing.rating : null,
70
- tags: Array.isArray(existing.tags) ? existing.tags : [],
71
- googleSubtitle: "googleSubtitle" in existing ? existing.googleSubtitle : null,
72
- googleAuthors: Array.isArray(existing.googleAuthors)
73
- ? existing.googleAuthors
74
- : [],
75
- googleDescription: "googleDescription" in existing ? existing.googleDescription : null,
76
- googleImgSrc: "googleImgSrc" in existing ? existing.googleImgSrc : null,
77
- googleHref: "googleHref" in existing ? existing.googleHref : null,
78
- };
79
- const body = parsed.content.replace(/^\n+/, "");
80
- const newContent = `---\n${dumpFrontmatter(next)}---\n\n${body}`;
81
- if (dryRun) {
82
- console.log(`🔍 [dry-run] 修正予定: ${fileName}`);
83
- }
84
- else {
85
- await writeFile(filePath, newContent, "utf8");
86
- console.log(`✅ 修正完了: ${fileName} (${title})`);
87
- }
104
+ const result = await processFile(filePath, dryRun);
105
+ if (result === "fixed") {
88
106
  fixedCount++;
89
107
  }
90
- catch (error) {
91
- console.error(`❌ ${fileName}: ${String(error)}`);
108
+ else if (result === "skipped") {
109
+ skippedCount++;
110
+ }
111
+ else {
92
112
  errorCount++;
93
113
  }
94
114
  }