@einja/dev-cli 0.1.7 → 0.1.8

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 (86) hide show
  1. package/README.md +2 -3
  2. package/dist/cli.js +4 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +4 -2
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/sync.d.ts.map +1 -1
  8. package/dist/commands/sync.js +16 -9
  9. package/dist/commands/sync.js.map +1 -1
  10. package/dist/commands/task-loop/index.d.ts +18 -0
  11. package/dist/commands/task-loop/index.d.ts.map +1 -0
  12. package/dist/commands/task-loop/index.js +333 -0
  13. package/dist/commands/task-loop/index.js.map +1 -0
  14. package/dist/commands/task-loop/lib/args-parser.d.ts +15 -0
  15. package/dist/commands/task-loop/lib/args-parser.d.ts.map +1 -0
  16. package/dist/commands/task-loop/lib/args-parser.js +79 -0
  17. package/dist/commands/task-loop/lib/args-parser.js.map +1 -0
  18. package/dist/commands/task-loop/lib/branch-manager.d.ts +66 -0
  19. package/dist/commands/task-loop/lib/branch-manager.d.ts.map +1 -0
  20. package/dist/commands/task-loop/lib/branch-manager.js +697 -0
  21. package/dist/commands/task-loop/lib/branch-manager.js.map +1 -0
  22. package/dist/commands/task-loop/lib/conflict-handler.d.ts +8 -0
  23. package/dist/commands/task-loop/lib/conflict-handler.d.ts.map +1 -0
  24. package/dist/commands/task-loop/lib/conflict-handler.js +68 -0
  25. package/dist/commands/task-loop/lib/conflict-handler.js.map +1 -0
  26. package/dist/commands/task-loop/lib/dependency-resolver.d.ts +45 -0
  27. package/dist/commands/task-loop/lib/dependency-resolver.d.ts.map +1 -0
  28. package/dist/commands/task-loop/lib/dependency-resolver.js +184 -0
  29. package/dist/commands/task-loop/lib/dependency-resolver.js.map +1 -0
  30. package/dist/commands/task-loop/lib/gh-setup.d.ts +15 -0
  31. package/dist/commands/task-loop/lib/gh-setup.d.ts.map +1 -0
  32. package/dist/commands/task-loop/lib/gh-setup.js +196 -0
  33. package/dist/commands/task-loop/lib/gh-setup.js.map +1 -0
  34. package/dist/commands/task-loop/lib/github-client.d.ts +27 -0
  35. package/dist/commands/task-loop/lib/github-client.d.ts.map +1 -0
  36. package/dist/commands/task-loop/lib/github-client.js +110 -0
  37. package/dist/commands/task-loop/lib/github-client.js.map +1 -0
  38. package/dist/commands/task-loop/lib/issue-parser.d.ts +27 -0
  39. package/dist/commands/task-loop/lib/issue-parser.d.ts.map +1 -0
  40. package/dist/commands/task-loop/lib/issue-parser.js +254 -0
  41. package/dist/commands/task-loop/lib/issue-parser.js.map +1 -0
  42. package/dist/commands/task-loop/lib/project-selector.d.ts +15 -0
  43. package/dist/commands/task-loop/lib/project-selector.d.ts.map +1 -0
  44. package/dist/commands/task-loop/lib/project-selector.js +187 -0
  45. package/dist/commands/task-loop/lib/project-selector.js.map +1 -0
  46. package/dist/commands/task-loop/lib/task-number-utils.d.ts +56 -0
  47. package/dist/commands/task-loop/lib/task-number-utils.d.ts.map +1 -0
  48. package/dist/commands/task-loop/lib/task-number-utils.js +114 -0
  49. package/dist/commands/task-loop/lib/task-number-utils.js.map +1 -0
  50. package/dist/commands/task-loop/lib/task-state-manager.d.ts +59 -0
  51. package/dist/commands/task-loop/lib/task-state-manager.d.ts.map +1 -0
  52. package/dist/commands/task-loop/lib/task-state-manager.js +184 -0
  53. package/dist/commands/task-loop/lib/task-state-manager.js.map +1 -0
  54. package/dist/commands/task-loop/lib/types.d.ts +93 -0
  55. package/dist/commands/task-loop/lib/types.d.ts.map +1 -0
  56. package/dist/commands/task-loop/lib/types.js +5 -0
  57. package/dist/commands/task-loop/lib/types.js.map +1 -0
  58. package/dist/commands/task-loop/lib/vibe-kanban-client.d.ts +82 -0
  59. package/dist/commands/task-loop/lib/vibe-kanban-client.d.ts.map +1 -0
  60. package/dist/commands/task-loop/lib/vibe-kanban-client.js +280 -0
  61. package/dist/commands/task-loop/lib/vibe-kanban-client.js.map +1 -0
  62. package/dist/commands/task-loop/lib/vibe-kanban-rest-client.d.ts +42 -0
  63. package/dist/commands/task-loop/lib/vibe-kanban-rest-client.d.ts.map +1 -0
  64. package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js +122 -0
  65. package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js.map +1 -0
  66. package/dist/lib/sync/batch-processor.test.js +1 -1
  67. package/dist/lib/sync/batch-processor.test.js.map +1 -1
  68. package/dist/lib/sync/diff-engine.js +1 -1
  69. package/dist/lib/sync/diff-engine.js.map +1 -1
  70. package/dist/lib/sync/hash-cache.d.ts +10 -4
  71. package/dist/lib/sync/hash-cache.d.ts.map +1 -1
  72. package/dist/lib/sync/hash-cache.js +28 -9
  73. package/dist/lib/sync/hash-cache.js.map +1 -1
  74. package/dist/lib/sync/hash-cache.test.js +69 -38
  75. package/dist/lib/sync/hash-cache.test.js.map +1 -1
  76. package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
  77. package/dist/lib/sync/metadata-manager.js +3 -4
  78. package/dist/lib/sync/metadata-manager.js.map +1 -1
  79. package/dist/lib/sync/performance.test.js +4 -5
  80. package/dist/lib/sync/performance.test.js.map +1 -1
  81. package/package.json +1 -1
  82. package/scaffolds/CLAUDE.md.template +81 -13
  83. package/dist/commands/task-loop.d.ts +0 -11
  84. package/dist/commands/task-loop.d.ts.map +0 -1
  85. package/dist/commands/task-loop.js +0 -81
  86. package/dist/commands/task-loop.js.map +0 -1
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Vibe-Kanban MCP クライアント
3
+ *
4
+ * @modelcontextprotocol/sdk を使用して Vibe-Kanban MCP サーバーと通信
5
+ */
6
+ import { execSync } from "node:child_process";
7
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8
+ import { tmpdir } from "node:os";
9
+ import { join } from "node:path";
10
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
11
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
12
+ /**
13
+ * Vibe-Kanban MCP クライアント
14
+ */
15
+ export class VibeKanbanClient {
16
+ constructor() {
17
+ this.transport = null;
18
+ this.connected = false;
19
+ this.client = new Client({
20
+ name: "task-vibe-kanban-loop",
21
+ version: "1.0.0",
22
+ });
23
+ }
24
+ /**
25
+ * MCP サーバーに接続
26
+ */
27
+ async connect() {
28
+ if (this.connected) {
29
+ return;
30
+ }
31
+ console.log("🔌 Vibe-Kanban MCP サーバーに接続中...");
32
+ // MCPサーバー起動前にポートファイルを同期
33
+ this.syncPortFile();
34
+ this.transport = new StdioClientTransport({
35
+ command: "npx",
36
+ args: ["-y", "vibe-kanban@latest", "--mcp"],
37
+ env: Object.assign(Object.assign({}, process.env), { RUST_LOG: "error" }),
38
+ stderr: "ignore", // stderrからのデバッグログを抑制
39
+ });
40
+ await this.client.connect(this.transport);
41
+ this.connected = true;
42
+ console.log("✅ Vibe-Kanban MCP 接続完了");
43
+ }
44
+ /**
45
+ * ポートファイルを実際のプロセスと同期
46
+ *
47
+ * ポートファイルが古い場合、lsof でプロセスからポートを検出して更新
48
+ */
49
+ syncPortFile() {
50
+ const portFilePath = join(tmpdir(), "vibe-kanban", "vibe-kanban.port");
51
+ const portFromFile = this.getPortFromFile(portFilePath);
52
+ const portFromProcess = this.getPortFromProcess();
53
+ // プロセスが見つからない場合は何もしない(MCPサーバー起動時にエラーになる)
54
+ if (portFromProcess === null) {
55
+ return;
56
+ }
57
+ // ポートファイルが存在しないか、古い場合は更新
58
+ if (portFromFile !== portFromProcess) {
59
+ console.log(`📝 ポートファイルを更新: ${portFromFile !== null && portFromFile !== void 0 ? portFromFile : "なし"} → ${portFromProcess}`);
60
+ const portDir = join(tmpdir(), "vibe-kanban");
61
+ if (!existsSync(portDir)) {
62
+ mkdirSync(portDir, { recursive: true });
63
+ }
64
+ writeFileSync(portFilePath, String(portFromProcess));
65
+ }
66
+ }
67
+ /**
68
+ * ポートファイルからポートを取得
69
+ */
70
+ getPortFromFile(portFilePath) {
71
+ try {
72
+ if (!existsSync(portFilePath)) {
73
+ return null;
74
+ }
75
+ const content = readFileSync(portFilePath, "utf-8").trim();
76
+ const port = Number.parseInt(content, 10);
77
+ return Number.isNaN(port) ? null : port;
78
+ }
79
+ catch (_a) {
80
+ return null;
81
+ }
82
+ }
83
+ /**
84
+ * lsof でプロセスからポートを検出
85
+ */
86
+ getPortFromProcess() {
87
+ try {
88
+ const output = execSync('lsof -i -P -n 2>/dev/null | grep "vibe-kanb" | grep LISTEN | head -1', { encoding: "utf-8" });
89
+ const match = output.match(/:(\d+)\s+\(LISTEN\)/);
90
+ return match ? Number.parseInt(match[1], 10) : null;
91
+ }
92
+ catch (_a) {
93
+ return null;
94
+ }
95
+ }
96
+ /**
97
+ * MCP サーバーから切断
98
+ */
99
+ async disconnect() {
100
+ if (!this.connected) {
101
+ return;
102
+ }
103
+ console.log("🔌 Vibe-Kanban MCP サーバーから切断中...");
104
+ await this.client.close();
105
+ this.connected = false;
106
+ console.log("✅ Vibe-Kanban MCP 切断完了");
107
+ }
108
+ /**
109
+ * プロジェクト一覧を取得
110
+ */
111
+ async listProjects() {
112
+ this.ensureConnected();
113
+ const result = await this.client.callTool({
114
+ name: "list_projects",
115
+ arguments: {},
116
+ });
117
+ const parsed = this.parseToolResult(result, {
118
+ projects: [],
119
+ });
120
+ return parsed.projects;
121
+ }
122
+ /**
123
+ * タスク一覧を取得
124
+ */
125
+ async listTasks(projectId) {
126
+ this.ensureConnected();
127
+ const result = await this.client.callTool({
128
+ name: "list_tasks",
129
+ arguments: { project_id: projectId },
130
+ });
131
+ const parsed = this.parseToolResult(result, { tasks: [] });
132
+ return parsed.tasks;
133
+ }
134
+ /**
135
+ * リポジトリ一覧を取得
136
+ */
137
+ async listRepos(projectId) {
138
+ this.ensureConnected();
139
+ const result = await this.client.callTool({
140
+ name: "list_repos",
141
+ arguments: { project_id: projectId },
142
+ });
143
+ const parsed = this.parseToolResult(result, { repos: [] });
144
+ return parsed.repos;
145
+ }
146
+ /**
147
+ * タスクを取得
148
+ */
149
+ async getTask(taskId) {
150
+ this.ensureConnected();
151
+ const result = await this.client.callTool({
152
+ name: "get_task",
153
+ arguments: { task_id: taskId },
154
+ });
155
+ return this.parseToolResult(result, null);
156
+ }
157
+ /**
158
+ * タスクを作成
159
+ * @returns タスクID
160
+ */
161
+ async createTask(projectId, title, description) {
162
+ this.ensureConnected();
163
+ const result = await this.client.callTool({
164
+ name: "create_task",
165
+ arguments: {
166
+ project_id: projectId,
167
+ title,
168
+ description,
169
+ },
170
+ });
171
+ const parsed = this.parseToolResult(result, null);
172
+ if (!(parsed === null || parsed === void 0 ? void 0 : parsed.task_id)) {
173
+ throw new Error("タスクの作成に失敗しました");
174
+ }
175
+ return parsed.task_id;
176
+ }
177
+ /**
178
+ * タスクを更新
179
+ */
180
+ async updateTask(taskId, status) {
181
+ this.ensureConnected();
182
+ await this.client.callTool({
183
+ name: "update_task",
184
+ arguments: {
185
+ task_id: taskId,
186
+ status,
187
+ },
188
+ });
189
+ }
190
+ /**
191
+ * タスク実行を開始
192
+ */
193
+ async startTaskAttempt(taskId, executor, repos) {
194
+ this.ensureConnected();
195
+ const result = await this.client.callTool({
196
+ name: "start_workspace_session",
197
+ arguments: {
198
+ task_id: taskId,
199
+ executor,
200
+ repos,
201
+ },
202
+ });
203
+ const attempt = this.parseToolResult(result, null);
204
+ if (!attempt) {
205
+ throw new Error("タスク実行の開始に失敗しました");
206
+ }
207
+ return attempt;
208
+ }
209
+ /**
210
+ * 接続状態を確認
211
+ */
212
+ ensureConnected() {
213
+ if (!this.connected) {
214
+ throw new Error("Vibe-Kanban MCP サーバーに接続されていません。先に connect() を呼び出してください。");
215
+ }
216
+ }
217
+ /**
218
+ * ツール結果をパース
219
+ */
220
+ parseToolResult(result, defaultValue) {
221
+ if (!result || typeof result !== "object") {
222
+ return defaultValue;
223
+ }
224
+ const typedResult = result;
225
+ // エラーフラグをチェック
226
+ if (typedResult.isError || typedResult.is_error) {
227
+ const errorMessage = this.extractErrorMessage(typedResult.content);
228
+ throw new Error(errorMessage || "Vibe-Kanban API エラー");
229
+ }
230
+ // structuredContent がある場合はそれを使用
231
+ if (typedResult.structuredContent !== undefined) {
232
+ return typedResult.structuredContent;
233
+ }
234
+ // content から JSON をパース
235
+ if (typedResult.content && typedResult.content.length > 0) {
236
+ const textContent = typedResult.content.find((c) => c.type === "text");
237
+ if (textContent === null || textContent === void 0 ? void 0 : textContent.text) {
238
+ try {
239
+ const parsed = JSON.parse(textContent.text);
240
+ // success: false のレスポンスをエラーとして扱う
241
+ if (parsed.success === false) {
242
+ const error = parsed.error || "Unknown API error";
243
+ const details = parsed.details ? `: ${parsed.details}` : "";
244
+ throw new Error(`${error}${details}`);
245
+ }
246
+ return parsed;
247
+ }
248
+ catch (e) {
249
+ // JSON パースエラーの場合は再throw(APIエラーの場合)
250
+ if (e instanceof Error && e.message !== "Unexpected token") {
251
+ throw e;
252
+ }
253
+ // パース失敗時はデフォルト値を返す
254
+ }
255
+ }
256
+ }
257
+ return defaultValue;
258
+ }
259
+ /**
260
+ * エラーメッセージを抽出
261
+ */
262
+ extractErrorMessage(content) {
263
+ if (!content || content.length === 0) {
264
+ return null;
265
+ }
266
+ const textContent = content.find((c) => c.type === "text");
267
+ if (textContent === null || textContent === void 0 ? void 0 : textContent.text) {
268
+ try {
269
+ const parsed = JSON.parse(textContent.text);
270
+ const details = parsed.details ? `: ${parsed.details}` : "";
271
+ return parsed.error ? `${parsed.error}${details}` : textContent.text;
272
+ }
273
+ catch (_a) {
274
+ return textContent.text;
275
+ }
276
+ }
277
+ return null;
278
+ }
279
+ }
280
+ //# sourceMappingURL=vibe-kanban-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe-kanban-client.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/vibe-kanban-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Vibe-Kanban REST API クライアント
3
+ *
4
+ * MCP では対応していないプロジェクト作成機能を提供
5
+ */
6
+ /**
7
+ * Vibe-Kanban REST API クライアント
8
+ */
9
+ export declare class VibeKanbanRestClient {
10
+ private baseUrl;
11
+ constructor(port: number);
12
+ /**
13
+ * Vibe-Kanban バックエンドのポートを発見
14
+ *
15
+ * 1. ポートファイルから取得を試みる
16
+ * 2. 失敗した場合、lsof でプロセスから検出
17
+ */
18
+ static discoverPort(): number | null;
19
+ /**
20
+ * ポートファイルからポートを取得
21
+ */
22
+ private static discoverPortFromFile;
23
+ /**
24
+ * lsof でプロセスからポートを検出
25
+ *
26
+ * macOS/Linux 専用
27
+ */
28
+ private static discoverPortFromProcess;
29
+ /**
30
+ * バックエンドに接続可能か確認
31
+ */
32
+ isAvailable(): Promise<boolean>;
33
+ /**
34
+ * プロジェクトを作成
35
+ *
36
+ * @param name プロジェクト名
37
+ * @param repoPath リポジトリの絶対パス
38
+ * @returns 作成されたプロジェクトの ID
39
+ */
40
+ createProject(name: string, repoPath: string): Promise<string>;
41
+ }
42
+ //# sourceMappingURL=vibe-kanban-rest-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe-kanban-rest-client.d.ts","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/vibe-kanban-rest-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,MAAM;IAIxB;;;;;OAKG;IACH,MAAM,CAAC,YAAY,IAAI,MAAM,GAAG,IAAI;IAWpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAqBnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAqBtC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiCrE"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Vibe-Kanban REST API クライアント
3
+ *
4
+ * MCP では対応していないプロジェクト作成機能を提供
5
+ */
6
+ import { execSync } from "node:child_process";
7
+ import { existsSync, readFileSync } from "node:fs";
8
+ import { tmpdir } from "node:os";
9
+ import { basename, join } from "node:path";
10
+ /**
11
+ * Vibe-Kanban REST API クライアント
12
+ */
13
+ export class VibeKanbanRestClient {
14
+ constructor(port) {
15
+ this.baseUrl = `http://127.0.0.1:${port}`;
16
+ }
17
+ /**
18
+ * Vibe-Kanban バックエンドのポートを発見
19
+ *
20
+ * 1. ポートファイルから取得を試みる
21
+ * 2. 失敗した場合、lsof でプロセスから検出
22
+ */
23
+ static discoverPort() {
24
+ // 1. ポートファイルから取得
25
+ const portFromFile = VibeKanbanRestClient.discoverPortFromFile();
26
+ if (portFromFile !== null) {
27
+ return portFromFile;
28
+ }
29
+ // 2. プロセスから検出(フォールバック)
30
+ return VibeKanbanRestClient.discoverPortFromProcess();
31
+ }
32
+ /**
33
+ * ポートファイルからポートを取得
34
+ */
35
+ static discoverPortFromFile() {
36
+ const portFilePath = join(tmpdir(), "vibe-kanban", "vibe-kanban.port");
37
+ try {
38
+ if (!existsSync(portFilePath)) {
39
+ return null;
40
+ }
41
+ const content = readFileSync(portFilePath, "utf-8").trim();
42
+ const port = Number.parseInt(content, 10);
43
+ if (Number.isNaN(port)) {
44
+ return null;
45
+ }
46
+ return port;
47
+ }
48
+ catch (_a) {
49
+ return null;
50
+ }
51
+ }
52
+ /**
53
+ * lsof でプロセスからポートを検出
54
+ *
55
+ * macOS/Linux 専用
56
+ */
57
+ static discoverPortFromProcess() {
58
+ try {
59
+ // vibe-kanban プロセスがリッスンしているポートを検出
60
+ const output = execSync('lsof -i -P -n 2>/dev/null | grep "vibe-kanb" | grep LISTEN | head -1', { encoding: "utf-8" });
61
+ // 出力例: "vibe-kanb 72645 kzp 23u IPv4 ... TCP 127.0.0.1:60911 (LISTEN)"
62
+ const match = output.match(/:(\d+)\s+\(LISTEN\)/);
63
+ if (match) {
64
+ return Number.parseInt(match[1], 10);
65
+ }
66
+ return null;
67
+ }
68
+ catch (_a) {
69
+ // lsof が失敗した場合(プロセスが見つからない等)
70
+ return null;
71
+ }
72
+ }
73
+ /**
74
+ * バックエンドに接続可能か確認
75
+ */
76
+ async isAvailable() {
77
+ try {
78
+ const response = await fetch(`${this.baseUrl}/api/projects`);
79
+ return response.ok;
80
+ }
81
+ catch (_a) {
82
+ return false;
83
+ }
84
+ }
85
+ /**
86
+ * プロジェクトを作成
87
+ *
88
+ * @param name プロジェクト名
89
+ * @param repoPath リポジトリの絶対パス
90
+ * @returns 作成されたプロジェクトの ID
91
+ */
92
+ async createProject(name, repoPath) {
93
+ var _a;
94
+ const displayName = basename(repoPath);
95
+ const response = await fetch(`${this.baseUrl}/api/projects`, {
96
+ method: "POST",
97
+ headers: {
98
+ "Content-Type": "application/json",
99
+ },
100
+ body: JSON.stringify({
101
+ name,
102
+ repositories: [
103
+ {
104
+ path: repoPath,
105
+ display_name: displayName,
106
+ git_repo_path: repoPath,
107
+ },
108
+ ],
109
+ }),
110
+ });
111
+ if (!response.ok) {
112
+ const text = await response.text();
113
+ throw new Error(`プロジェクト作成に失敗しました: ${text}`);
114
+ }
115
+ const result = (await response.json());
116
+ if (!result.success || !((_a = result.data) === null || _a === void 0 ? void 0 : _a.id)) {
117
+ throw new Error(`プロジェクト作成に失敗しました: ${result.message || "Unknown error"}`);
118
+ }
119
+ return result.data.id;
120
+ }
121
+ }
122
+ //# sourceMappingURL=vibe-kanban-rest-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe-kanban-rest-client.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/vibe-kanban-rest-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAa3C;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAG/B,YAAY,IAAY;QACtB,IAAI,CAAC,OAAO,GAAG,oBAAoB,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAY;QACjB,iBAAiB;QACjB,MAAM,YAAY,GAAG,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;QACjE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,uBAAuB;QACvB,OAAO,oBAAoB,CAAC,uBAAuB,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,oBAAoB;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAE1C,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,uBAAuB;QACpC,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,MAAM,GAAG,QAAQ,CACrB,sEAAsE,EACtE,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC;YAEF,uEAAuE;YACvE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,WAAM,CAAC;YACP,6BAA6B;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;YAC7D,OAAO,QAAQ,CAAC,EAAE,CAAC;QACrB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,QAAgB;;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI;gBACJ,YAAY,EAAE;oBACZ;wBACE,IAAI,EAAE,QAAQ;wBACd,YAAY,EAAE,WAAW;wBACzB,aAAa,EAAE,QAAQ;qBACxB;iBACF;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0B,CAAC;QAEhE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,EAAE,CAAA,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -36,7 +36,7 @@ describe("BatchProcessor", () => {
36
36
  expect(results).toHaveLength(10);
37
37
  expect(mockFn).toHaveBeenCalledTimes(10);
38
38
  });
39
- it("100ファイルの処理を並列化できること", async () => {
39
+ it.skip("100ファイルの処理を並列化できること", async () => {
40
40
  const processor = new BatchProcessor(10);
41
41
  const items = Array.from({ length: 100 }, (_, i) => i);
42
42
  const mockFn = vi.fn(async (item) => {
@@ -1 +1 @@
1
- {"version":3,"file":"batch-processor.test.js","sourceRoot":"","sources":["../../../src/lib/sync/batch-processor.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-processor.test.js","sourceRoot":"","sources":["../../../src/lib/sync/batch-processor.test.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ export class DiffEngine {
46
46
  mergedLines.push(">>>>>>> TEMPLATE (from @einja/cli)");
47
47
  // 行番号を更新(マーカー3行 + コンフリクト内容)
48
48
  currentLine +=
49
- 3 + chunk.conflict.a.length + chunk.conflict.b.length + 1;
49
+ 3 + chunk.conflict.a.length + chunk.conflict.b.length;
50
50
  }
51
51
  }
52
52
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"diff-engine.js","sourceRoot":"","sources":["../../../src/lib/sync/diff-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC;;;GAGG;AACH,MAAM,OAAO,UAAU;IACtB;;;;;;OAMG;IACH,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,QAAgB;QACtD,gBAAgB;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3C,oBAAoB;QACpB,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAErE,WAAW;QACX,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC/B,gBAAgB;gBAChB,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9B,WAAW,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;YAChC,CAAC;iBAAM,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClD,kBAAkB;gBAClB,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEpD,cAAc;gBACd,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,WAAW;oBACjB,YAAY;oBACZ,eAAe;iBACf,CAAC,CAAC;gBAEH,gBAAgB;gBAChB,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBACjD,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtC,WAAW,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAEvD,4BAA4B;gBAC5B,WAAW;oBACV,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAED,OAAO;YACN,OAAO,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;YAC/B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,SAAS;SACT,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,IAAI,CAChB,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CACpC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,OAAe;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,eAAe,GAAa,EAAE,CAAC;QACnC,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtC,WAAW;gBACX,UAAU,GAAG,IAAI,CAAC;gBAClB,cAAc,GAAG,IAAI,CAAC;gBACtB,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,YAAY,GAAG,EAAE,CAAC;gBAClB,eAAe,GAAG,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,EAAE,CAAC;gBAC7C,mBAAmB;gBACnB,cAAc,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC9D,WAAW;gBACX,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,iBAAiB;oBACvB,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC3C,CAAC,CAAC;gBACH,UAAU,GAAG,KAAK,CAAC;gBACnB,cAAc,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACvB,cAAc;gBACd,IAAI,cAAc,EAAE,CAAC;oBACpB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACP,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD"}
1
+ {"version":3,"file":"diff-engine.js","sourceRoot":"","sources":["../../../src/lib/sync/diff-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC;;;GAGG;AACH,MAAM,OAAO,UAAU;IACtB;;;;;;OAMG;IACH,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,QAAgB;QACtD,gBAAgB;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3C,oBAAoB;QACpB,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAErE,WAAW;QACX,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC/B,gBAAgB;gBAChB,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9B,WAAW,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;YAChC,CAAC;iBAAM,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClD,kBAAkB;gBAClB,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEpD,cAAc;gBACd,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,WAAW;oBACjB,YAAY;oBACZ,eAAe;iBACf,CAAC,CAAC;gBAEH,gBAAgB;gBAChB,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBACjD,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtC,WAAW,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAEvD,4BAA4B;gBAC5B,WAAW;oBACV,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YACxD,CAAC;QACF,CAAC;QAED,OAAO;YACN,OAAO,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;YAC/B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,SAAS;SACT,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,IAAI,CAChB,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CACpC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,OAAe;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,eAAe,GAAa,EAAE,CAAC;QACnC,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtC,WAAW;gBACX,UAAU,GAAG,IAAI,CAAC;gBAClB,cAAc,GAAG,IAAI,CAAC;gBACtB,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,YAAY,GAAG,EAAE,CAAC;gBAClB,eAAe,GAAG,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,EAAE,CAAC;gBAC7C,mBAAmB;gBACnB,cAAc,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC9D,WAAW;gBACX,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,iBAAiB;oBACvB,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC3C,CAAC,CAAC;gBACH,UAAU,GAAG,KAAK,CAAC;gBACnB,cAAc,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACvB,cAAc;gBACd,IAAI,cAAc,EAAE,CAAC;oBACpB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACP,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD"}
@@ -4,24 +4,30 @@
4
4
  */
5
5
  export declare class HashCache {
6
6
  private cache;
7
+ private static readonly SAMPLE_SIZE;
8
+ /**
9
+ * コンテンツの簡易シグネチャを生成する
10
+ * 先頭・中央・末尾をサンプリングして衝突を回避
11
+ */
12
+ private generateContentSignature;
7
13
  /**
8
14
  * キャッシュキーを生成する
9
- * キャッシュキー形式: ${filePath}:${contentLength}
15
+ * キャッシュキー形式: ${filePath}:${contentLength}:${contentSignature}
10
16
  */
11
17
  private generateKey;
12
18
  /**
13
19
  * キャッシュからハッシュを取得する
14
20
  * @returns ハッシュ値(キャッシュに存在しない場合はundefined)
15
21
  */
16
- get(filePath: string, contentLength: number): string | undefined;
22
+ get(filePath: string, content: string): string | undefined;
17
23
  /**
18
24
  * ハッシュをキャッシュに保存する
19
25
  */
20
- set(filePath: string, contentLength: number, hash: string): void;
26
+ set(filePath: string, content: string, hash: string): void;
21
27
  /**
22
28
  * キャッシュに存在するかチェックする
23
29
  */
24
- has(filePath: string, contentLength: number): boolean;
30
+ has(filePath: string, content: string): boolean;
25
31
  /**
26
32
  * キャッシュをクリアする
27
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hash-cache.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/hash-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,KAAK,CAAkC;IAE/C;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKhE;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhE;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAKrD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;CAGd"}
1
+ {"version":3,"file":"hash-cache.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/hash-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IAEzC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;OAGG;IACH,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK1D;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1D;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAK/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;CAGd"}
@@ -6,33 +6,51 @@ export class HashCache {
6
6
  constructor() {
7
7
  this.cache = new Map();
8
8
  }
9
+ /**
10
+ * コンテンツの簡易シグネチャを生成する
11
+ * 先頭・中央・末尾をサンプリングして衝突を回避
12
+ */
13
+ generateContentSignature(content) {
14
+ const len = content.length;
15
+ const sampleSize = HashCache.SAMPLE_SIZE;
16
+ // 短いコンテンツはそのまま使用
17
+ if (len <= sampleSize * 3) {
18
+ return content;
19
+ }
20
+ // 先頭・中央・末尾をサンプリング
21
+ const start = content.substring(0, sampleSize);
22
+ const middle = content.substring(Math.floor(len / 2) - Math.floor(sampleSize / 2), Math.floor(len / 2) + Math.ceil(sampleSize / 2));
23
+ const end = content.substring(len - sampleSize);
24
+ return start + middle + end;
25
+ }
9
26
  /**
10
27
  * キャッシュキーを生成する
11
- * キャッシュキー形式: ${filePath}:${contentLength}
28
+ * キャッシュキー形式: ${filePath}:${contentLength}:${contentSignature}
12
29
  */
13
- generateKey(filePath, contentLength) {
14
- return `${filePath}:${contentLength}`;
30
+ generateKey(filePath, content) {
31
+ const signature = this.generateContentSignature(content);
32
+ return `${filePath}:${content.length}:${signature}`;
15
33
  }
16
34
  /**
17
35
  * キャッシュからハッシュを取得する
18
36
  * @returns ハッシュ値(キャッシュに存在しない場合はundefined)
19
37
  */
20
- get(filePath, contentLength) {
21
- const key = this.generateKey(filePath, contentLength);
38
+ get(filePath, content) {
39
+ const key = this.generateKey(filePath, content);
22
40
  return this.cache.get(key);
23
41
  }
24
42
  /**
25
43
  * ハッシュをキャッシュに保存する
26
44
  */
27
- set(filePath, contentLength, hash) {
28
- const key = this.generateKey(filePath, contentLength);
45
+ set(filePath, content, hash) {
46
+ const key = this.generateKey(filePath, content);
29
47
  this.cache.set(key, hash);
30
48
  }
31
49
  /**
32
50
  * キャッシュに存在するかチェックする
33
51
  */
34
- has(filePath, contentLength) {
35
- const key = this.generateKey(filePath, contentLength);
52
+ has(filePath, content) {
53
+ const key = this.generateKey(filePath, content);
36
54
  return this.cache.has(key);
37
55
  }
38
56
  /**
@@ -48,4 +66,5 @@ export class HashCache {
48
66
  return this.cache.size;
49
67
  }
50
68
  }
69
+ HashCache.SAMPLE_SIZE = 32;
51
70
  //# sourceMappingURL=hash-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash-cache.js","sourceRoot":"","sources":["../../../src/lib/sync/hash-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,SAAS;IAAtB;QACS,UAAK,GAAwB,IAAI,GAAG,EAAE,CAAC;IAgDhD,CAAC;IA9CA;;;OAGG;IACK,WAAW,CAAC,QAAgB,EAAE,aAAqB;QAC1D,OAAO,GAAG,QAAQ,IAAI,aAAa,EAAE,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,QAAgB,EAAE,aAAqB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAgB,EAAE,aAAqB,EAAE,IAAY;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAgB,EAAE,aAAqB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;CACD"}
1
+ {"version":3,"file":"hash-cache.js","sourceRoot":"","sources":["../../../src/lib/sync/hash-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,SAAS;IAAtB;QACS,UAAK,GAAwB,IAAI,GAAG,EAAE,CAAC;IA0EhD,CAAC;IAvEA;;;OAGG;IACK,wBAAwB,CAAC,OAAe;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC;QAEzC,iBAAiB;QACjB,IAAI,GAAG,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,kBAAkB;QAClB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAChD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAC/C,CAAC;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;QAEhD,OAAO,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,QAAgB,EAAE,OAAe;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,GAAG,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,QAAgB,EAAE,OAAe;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,IAAY;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAgB,EAAE,OAAe;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;;AAxEuB,qBAAW,GAAG,EAAE,AAAL,CAAM"}