@s-hirano-ist/s-scripts 1.23.4 → 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 (71) hide show
  1. package/dist/cleanup-minio-images.js +6 -8
  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 +9 -7
  6. package/dist/fetch-articles.js.map +1 -1
  7. package/dist/fetch-books.js +25 -25
  8. package/dist/fetch-books.js.map +1 -1
  9. package/dist/fetch-images.js +23 -23
  10. package/dist/fetch-images.js.map +1 -1
  11. package/dist/fetch-notes.js +3 -3
  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 +3 -3
  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 +129 -106
  36. package/dist/ingest-articles.js.map +1 -1
  37. package/dist/ingest-books.js +113 -102
  38. package/dist/ingest-books.js.map +1 -1
  39. package/dist/ingest-images.js +8 -8
  40. package/dist/ingest-images.js.map +1 -1
  41. package/dist/ingest-notes.js +50 -44
  42. package/dist/ingest-notes.js.map +1 -1
  43. package/dist/rag/delete-collection.js.map +1 -1
  44. package/dist/rag/ingest.js +5 -5
  45. package/dist/rag/ingest.js.map +1 -1
  46. package/dist/rag/search.js.map +1 -1
  47. package/dist/reset-articles.js +1 -1
  48. package/dist/reset-articles.js.map +1 -1
  49. package/dist/reset-books.js +1 -1
  50. package/dist/reset-books.js.map +1 -1
  51. package/dist/reset-images.js +1 -1
  52. package/dist/reset-images.js.map +1 -1
  53. package/dist/reset-notes.js +1 -1
  54. package/dist/reset-notes.js.map +1 -1
  55. package/dist/revert-articles.js +1 -1
  56. package/dist/revert-articles.js.map +1 -1
  57. package/dist/revert-books.js +1 -1
  58. package/dist/revert-books.js.map +1 -1
  59. package/dist/revert-images.js +1 -1
  60. package/dist/revert-images.js.map +1 -1
  61. package/dist/revert-notes.js +1 -1
  62. package/dist/revert-notes.js.map +1 -1
  63. package/dist/s-content-format.js +1 -1
  64. package/dist/s-content-format.js.map +1 -1
  65. package/dist/update-json-articles.js +13 -12
  66. package/dist/update-json-articles.js.map +1 -1
  67. package/dist/update-raw-articles.js +10 -9
  68. package/dist/update-raw-articles.js.map +1 -1
  69. package/dist/validate-json-articles.js +1 -1
  70. package/dist/validate-json-articles.js.map +1 -1
  71. package/package.json +9 -9
@@ -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 = content.match(/^# (.+)$/m);
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}: ${error}`);
108
+ else if (result === "skipped") {
109
+ skippedCount++;
110
+ }
111
+ else {
92
112
  errorCount++;
93
113
  }
94
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fix-book-frontmatter.js","sourceRoot":"","sources":["../src/fix-book-frontmatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-book-frontmatter.js","sourceRoot":"","sources":["../src/fix-book-frontmatter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import { glob } from "glob";
2
3
  import { stat, unlink } from "node:fs/promises";
3
4
  import { basename, extname, join } from "node:path";
4
- import { glob } from "glob";
5
5
  import sharp from "sharp";
6
6
  const WEBP_QUALITY = 80;
7
7
  function isConvertibleImage(filePath) {
@@ -17,7 +17,7 @@ async function convertToWebp(inputPath, outputPath) {
17
17
  }
18
18
  async function processDirectory(directory, label, dryRun) {
19
19
  const files = await glob(`${directory}/*`);
20
- const convertible = files.filter(isConvertibleImage);
20
+ const convertible = files.filter((filePath) => isConvertibleImage(filePath));
21
21
  console.log(`\n📁 ${label}: ${convertible.length} 件の変換対象を検出(全 ${files.length} ファイル中)`);
22
22
  let converted = 0;
23
23
  let skipped = 0;
@@ -52,7 +52,7 @@ async function processDirectory(directory, label, dryRun) {
52
52
  converted++;
53
53
  }
54
54
  catch (error) {
55
- console.error(`❌ ${fileName}: ${error}`);
55
+ console.error(`❌ ${fileName}: ${String(error)}`);
56
56
  errors++;
57
57
  }
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fix-image-formats.js","sourceRoot":"","sources":["../src/fix-image-formats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-image-formats.js","sourceRoot":"","sources":["../src/fix-image-formats.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { IBatchCommandRepository } from "@s-hirano-ist/s-core/shared-kernel/repositories/batch-command-repository.interface";
2
- import type { Status } from "@s-hirano-ist/s-database";
2
+ import { type Status } from "@s-hirano-ist/s-database";
3
3
  /**
4
4
  * Prisma client type for transaction support.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"articles-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/articles-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;;;;;GAOG;AACH,KAAK,gBAAgB,GAAG;IACvB,OAAO,EAAE;QACR,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAqDzB"}
1
+ {"version":3,"file":"articles-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/articles-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAwB,MAAM,0BAA0B,CAAC;AAE7E;;;;;;;GAOG;AACH,KAAK,gBAAgB,GAAG;IACvB,OAAO,EAAE;QACR,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAuDzB"}
@@ -1,3 +1,4 @@
1
+ import { withTransactionRetry } from "@s-hirano-ist/s-database";
1
2
  /**
2
3
  * Creates an Articles batch command repository for bulk operations.
3
4
  *
@@ -36,7 +37,7 @@ export function createArticlesCommandRepository(prisma) {
36
37
  return { count: result.count };
37
38
  },
38
39
  async resetStatus(userId, exportedAt) {
39
- const [finalized, marked] = await prisma.$transaction([
40
+ const [finalized, marked] = await withTransactionRetry(() => prisma.$transaction([
40
41
  prisma.article.updateMany({
41
42
  where: {
42
43
  userId: userId,
@@ -56,7 +57,7 @@ export function createArticlesCommandRepository(prisma) {
56
57
  status: "LAST_UPDATED",
57
58
  },
58
59
  }),
59
- ]);
60
+ ]));
60
61
  return {
61
62
  finalized: { count: finalized.count },
62
63
  marked: { count: marked.count },
@@ -1 +1 @@
1
- {"version":3,"file":"articles-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/articles-command-repository.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,+BAA+B,CAC9C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAgB;oBACxB,MAAM,EAAE,UAAoB;iBAC5B;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAkB;oBAC1B,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAkB,EAAE,CAAC;iBACrD;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBACrD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAkB;qBAC9B;iBACD,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CAAC;YAEH,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"articles-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/articles-command-repository.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAsB7E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,+BAA+B,CAC9C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,UAAU;iBAClB;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAQ;oBAChB,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;iBAC7C;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,CAC3D,MAAM,CAAC,YAAY,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAU;qBACtB;iBACD,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CACF,CAAC;YAEF,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { IBatchCommandRepository } from "@s-hirano-ist/s-core/shared-kernel/repositories/batch-command-repository.interface";
2
- import type { Status } from "@s-hirano-ist/s-database";
2
+ import { type Status } from "@s-hirano-ist/s-database";
3
3
  type PrismaClientLike = {
4
4
  book: {
5
5
  updateMany: (args: {
@@ -1 +1 @@
1
- {"version":3,"file":"books-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/books-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,KAAK,gBAAgB,GAAG;IACvB,IAAI,EAAE;QACL,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAqDzB"}
1
+ {"version":3,"file":"books-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/books-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAwB,MAAM,0BAA0B,CAAC;AAE7E,KAAK,gBAAgB,GAAG;IACvB,IAAI,EAAE;QACL,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAuDzB"}
@@ -1,3 +1,4 @@
1
+ import { withTransactionRetry } from "@s-hirano-ist/s-database";
1
2
  /**
2
3
  * Creates a Books batch command repository for bulk operations.
3
4
  *
@@ -21,7 +22,7 @@ export function createBooksCommandRepository(prisma) {
21
22
  return { count: result.count };
22
23
  },
23
24
  async resetStatus(userId, exportedAt) {
24
- const [finalized, marked] = await prisma.$transaction([
25
+ const [finalized, marked] = await withTransactionRetry(() => prisma.$transaction([
25
26
  prisma.book.updateMany({
26
27
  where: {
27
28
  userId: userId,
@@ -41,7 +42,7 @@ export function createBooksCommandRepository(prisma) {
41
42
  status: "LAST_UPDATED",
42
43
  },
43
44
  }),
44
- ]);
45
+ ]));
45
46
  return {
46
47
  finalized: { count: finalized.count },
47
48
  marked: { count: marked.count },
@@ -1 +1 @@
1
- {"version":3,"file":"books-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/books-command-repository.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC3C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC3C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAgB;oBACxB,MAAM,EAAE,UAAoB;iBAC5B;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAkB;oBAC1B,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAkB,EAAE,CAAC;iBACrD;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAkB;qBAC9B;iBACD,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CAAC;YAEH,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"books-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/books-command-repository.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAc7E;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC3C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC3C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,UAAU;iBAClB;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAQ;oBAChB,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;iBAC7C;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,CAC3D,MAAM,CAAC,YAAY,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAU;qBACtB;iBACD,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CACF,CAAC;YAEF,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { IBatchCommandRepository } from "@s-hirano-ist/s-core/shared-kernel/repositories/batch-command-repository.interface";
2
- import type { Status } from "@s-hirano-ist/s-database";
2
+ import { type Status } from "@s-hirano-ist/s-database";
3
3
  type PrismaClientLike = {
4
4
  image: {
5
5
  updateMany: (args: {
@@ -1 +1 @@
1
- {"version":3,"file":"images-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/images-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,KAAK,gBAAgB,GAAG;IACvB,KAAK,EAAE;QACN,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAqDzB"}
1
+ {"version":3,"file":"images-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/images-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAwB,MAAM,0BAA0B,CAAC;AAE7E,KAAK,gBAAgB,GAAG;IACvB,KAAK,EAAE;QACN,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAuDzB"}
@@ -1,3 +1,4 @@
1
+ import { withTransactionRetry } from "@s-hirano-ist/s-database";
1
2
  /**
2
3
  * Creates an Images batch command repository for bulk operations.
3
4
  *
@@ -21,7 +22,7 @@ export function createImagesCommandRepository(prisma) {
21
22
  return { count: result.count };
22
23
  },
23
24
  async resetStatus(userId, exportedAt) {
24
- const [finalized, marked] = await prisma.$transaction([
25
+ const [finalized, marked] = await withTransactionRetry(() => prisma.$transaction([
25
26
  prisma.image.updateMany({
26
27
  where: {
27
28
  userId: userId,
@@ -41,7 +42,7 @@ export function createImagesCommandRepository(prisma) {
41
42
  status: "LAST_UPDATED",
42
43
  },
43
44
  }),
44
- ]);
45
+ ]));
45
46
  return {
46
47
  finalized: { count: finalized.count },
47
48
  marked: { count: marked.count },
@@ -1 +1 @@
1
- {"version":3,"file":"images-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/images-command-repository.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC5C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAgB;oBACxB,MAAM,EAAE,UAAoB;iBAC5B;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAkB;oBAC1B,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAkB,EAAE,CAAC;iBACrD;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBACrD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAkB;qBAC9B;iBACD,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CAAC;YAEH,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"images-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/images-command-repository.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAc7E;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC5C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,UAAU;iBAClB;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAQ;oBAChB,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;iBAC7C;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,CAC3D,MAAM,CAAC,YAAY,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAU;qBACtB;iBACD,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CACF,CAAC;YAEF,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { IBatchCommandRepository } from "@s-hirano-ist/s-core/shared-kernel/repositories/batch-command-repository.interface";
2
- import type { Status } from "@s-hirano-ist/s-database";
2
+ import { type Status } from "@s-hirano-ist/s-database";
3
3
  type PrismaClientLike = {
4
4
  note: {
5
5
  updateMany: (args: {
@@ -1 +1 @@
1
- {"version":3,"file":"notes-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/notes-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,KAAK,gBAAgB,GAAG;IACvB,IAAI,EAAE;QACL,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAqDzB"}
1
+ {"version":3,"file":"notes-command-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructures/notes-command-repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,uBAAuB,EAGvB,MAAM,oFAAoF,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAwB,MAAM,0BAA0B,CAAC;AAE7E,KAAK,gBAAgB,GAAG;IACvB,IAAI,EAAE;QACL,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,KAAK,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,IAAI,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,EACpD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KACX,OAAO,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,gBAAgB,GACtB,uBAAuB,CAuDzB"}
@@ -1,3 +1,4 @@
1
+ import { withTransactionRetry } from "@s-hirano-ist/s-database";
1
2
  /**
2
3
  * Creates a Notes batch command repository for bulk operations.
3
4
  *
@@ -21,7 +22,7 @@ export function createNotesCommandRepository(prisma) {
21
22
  return { count: result.count };
22
23
  },
23
24
  async resetStatus(userId, exportedAt) {
24
- const [finalized, marked] = await prisma.$transaction([
25
+ const [finalized, marked] = await withTransactionRetry(() => prisma.$transaction([
25
26
  prisma.note.updateMany({
26
27
  where: {
27
28
  userId: userId,
@@ -41,7 +42,7 @@ export function createNotesCommandRepository(prisma) {
41
42
  status: "LAST_UPDATED",
42
43
  },
43
44
  }),
44
- ]);
45
+ ]));
45
46
  return {
46
47
  finalized: { count: finalized.count },
47
48
  marked: { count: marked.count },
@@ -1 +1 @@
1
- {"version":3,"file":"notes-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/notes-command-repository.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC3C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC3C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAgB;oBACxB,MAAM,EAAE,UAAoB;iBAC5B;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAkB;oBAC1B,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAkB,EAAE,CAAC;iBACrD;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAkB;qBAC9B;iBACD,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAgB;wBACxB,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CAAC;YAEH,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"notes-command-repository.js","sourceRoot":"","sources":["../../src/infrastructures/notes-command-repository.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAc7E;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC3C,MAAwB;IAExB,OAAO;QACN,KAAK,CAAC,gBAAgB,CACrB,MAA8B;YAE9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC3C,KAAK,EAAE;oBACN,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,UAAU;iBAClB;gBACD,IAAI,EAAE;oBACL,MAAM,EAAE,QAAQ;oBAChB,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;iBAC7C;aACD,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAChB,MAAc,EACd,UAAsB;YAEtB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,CAC3D,MAAM,CAAC,YAAY,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,cAAc;qBACtB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,UAAU,EAAE,UAAU;qBACtB;iBACD,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB,KAAK,EAAE;wBACN,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,YAAY;qBACpB;oBACD,IAAI,EAAE;wBACL,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;aACF,CAAC,CACF,CAAC;YAEF,OAAO;gBACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC/B,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}