@minimalcorp/tsunagi 0.1.32 → 0.1.33

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 (129) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
  3. package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
  5. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  14. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +13 -13
  15. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
  16. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  17. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
  18. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  19. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  20. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  22. package/.next/standalone/apps/web/.next/server/app/index.rsc +15 -16
  23. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -5
  24. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +15 -16
  25. package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  26. package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +8 -8
  27. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -3
  28. package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
  29. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  31. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  33. package/.next/standalone/apps/web/.next/server/app/settings.rsc +15 -15
  34. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +15 -15
  35. package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  36. package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +8 -8
  37. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  38. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  39. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  40. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
  41. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__08c7fz~._.js +3 -0
  43. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0h4wzcb._.js +1 -1
  44. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0nhzci6._.js +14 -0
  45. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ome304._.js +1 -1
  46. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0tq9wv6._.js → [root-of-the-server]__0r5k1o3._.js} +2 -2
  47. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0vi01rl._.js +14 -0
  48. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0836rl_._.js → _02dcd~k._.js} +2 -2
  49. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_03hz06e._.js → _0dar4c0._.js} +2 -2
  50. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g.cd6a._.js +17 -17
  51. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0lpms0u._.js +3 -0
  52. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0owas.l._.js +3 -0
  53. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0amxree._.js → _0sxye4q._.js} +2 -2
  54. package/.next/standalone/apps/web/.next/server/chunks/ssr/_109pmo2._.js +3 -0
  55. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +1 -1
  56. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +23 -2
  57. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_065xsw3._.js → node_modules_00bsm~0._.js} +1 -1
  58. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0dmu62y._.js → node_modules_03dusl-._.js} +1 -1
  59. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0z0orm9._.js → node_modules_09g056t._.js} +1 -1
  60. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0jcrj-2._.js → node_modules_09o-nzb._.js} +1 -1
  61. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0v86kpj._.js → node_modules_0_wjeog._.js} +1 -1
  62. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0vm.f2d._.js → node_modules_0az0yoa._.js} +1 -1
  63. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_046ca89._.js → node_modules_0ec.p48._.js} +1 -1
  64. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0c_-8tt._.js → node_modules_131360a._.js} +1 -1
  65. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0zerlct._.js +3 -0
  66. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0xdsm99._.js +1 -1
  67. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
  68. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  69. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  70. package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
  71. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  72. package/.next/standalone/apps/web/.next/static/chunks/02k8hsfyr1oif.css +4 -0
  73. package/.next/standalone/apps/web/.next/static/chunks/076mcjezjnahd.js +1 -0
  74. package/.next/standalone/apps/web/.next/static/chunks/08u0u06ip_aj0.js +5 -0
  75. package/.next/standalone/apps/web/.next/static/chunks/0dqv~laaou7x3.js +64 -0
  76. package/.next/standalone/apps/web/.next/static/chunks/0e8u7rqrqfiiy.js +1 -0
  77. package/.next/standalone/apps/web/.next/static/chunks/0gfpx.h8alews.js +11 -0
  78. package/.next/standalone/apps/web/.next/static/chunks/0k9kik1oc11wc.js +1 -0
  79. package/.next/standalone/apps/web/.next/static/chunks/0szj.38-.-4p4.js +1 -0
  80. package/.next/standalone/apps/web/.next/static/chunks/0w-rozhi-~746.js +11 -0
  81. package/.next/standalone/apps/web/.next/static/chunks/0z8cfvtbwii50.js +24 -0
  82. package/.next/standalone/apps/web/.next/static/chunks/0zdnw6m70_-dp.js +1 -0
  83. package/dist/server/generated/prisma/browser.d.ts +0 -5
  84. package/dist/server/generated/prisma/client.d.ts +0 -5
  85. package/dist/server/generated/prisma/commonInputTypes.d.ts +52 -52
  86. package/dist/server/generated/prisma/internal/class.d.ts +0 -11
  87. package/dist/server/generated/prisma/internal/class.js +4 -4
  88. package/dist/server/generated/prisma/internal/prismaNamespace.d.ts +6 -91
  89. package/dist/server/generated/prisma/internal/prismaNamespace.js +1 -10
  90. package/dist/server/generated/prisma/internal/prismaNamespaceBrowser.d.ts +1 -11
  91. package/dist/server/generated/prisma/internal/prismaNamespaceBrowser.js +1 -10
  92. package/dist/server/generated/prisma/models/Repository.d.ts +82 -1
  93. package/dist/server/generated/prisma/models/Task.d.ts +0 -7
  94. package/dist/server/generated/prisma/models.d.ts +0 -1
  95. package/dist/server/index.js +0 -2
  96. package/dist/server/lib/repositories/repository.d.ts +7 -1
  97. package/dist/server/lib/repositories/repository.js +27 -29
  98. package/dist/server/lib/worktree-manager.js +14 -2
  99. package/dist/server/routes/repos.js +93 -19
  100. package/npm-shrinkwrap.json +75 -70
  101. package/package.json +1 -1
  102. package/prisma/migrations/20260915000000_drop_planner_tabs/migration.sql +3 -0
  103. package/prisma/migrations/20260916000000_add_repository_order/migration.sql +12 -0
  104. package/prisma/schema.prisma +1 -13
  105. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__053-iaj._.js +0 -3
  106. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__07kf5h-._.js +0 -35
  107. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_gamc9._.js +0 -35
  108. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0w0y9fd._.js +0 -3
  109. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0_.o928._.js +0 -3
  110. package/.next/standalone/apps/web/.next/static/chunks/0.1pdl3yo~xet.js +0 -5
  111. package/.next/standalone/apps/web/.next/static/chunks/001oo2jah4cv9.js +0 -1
  112. package/.next/standalone/apps/web/.next/static/chunks/05b63w8.ny19p.js +0 -1
  113. package/.next/standalone/apps/web/.next/static/chunks/08dtfekvxgpfu.js +0 -1
  114. package/.next/standalone/apps/web/.next/static/chunks/0dpeys_k2-mrk.js +0 -32
  115. package/.next/standalone/apps/web/.next/static/chunks/0hvtxos.brr01.js +0 -1
  116. package/.next/standalone/apps/web/.next/static/chunks/0nh1-0lee-1pk.js +0 -32
  117. package/.next/standalone/apps/web/.next/static/chunks/0nhpg19g1rl_7.js +0 -1
  118. package/.next/standalone/apps/web/.next/static/chunks/0tggf01u1vugi.js +0 -3
  119. package/.next/standalone/apps/web/.next/static/chunks/0wxrfu5la_s94.js +0 -64
  120. package/.next/standalone/apps/web/.next/static/chunks/0zu48yvkl8pyj.css +0 -4
  121. package/.next/standalone/apps/web/.next/static/chunks/13twvr.qg3khh.js +0 -1
  122. package/.next/standalone/apps/web/.next/static/chunks/164p.6qr5~-7x.js +0 -1
  123. package/dist/server/generated/prisma/models/PlannerTab.d.ts +0 -1089
  124. package/dist/server/generated/prisma/models/PlannerTab.js +0 -1
  125. package/dist/server/routes/planner.d.ts +0 -2
  126. package/dist/server/routes/planner.js +0 -86
  127. /package/.next/standalone/apps/web/.next/static/{70bPr4pgLIE7loeTg62ih → fUycQdovbCSAwFW2xvyuD}/_buildManifest.js +0 -0
  128. /package/.next/standalone/apps/web/.next/static/{70bPr4pgLIE7loeTg62ih → fUycQdovbCSAwFW2xvyuD}/_clientMiddlewareManifest.js +0 -0
  129. /package/.next/standalone/apps/web/.next/static/{70bPr4pgLIE7loeTg62ih → fUycQdovbCSAwFW2xvyuD}/_ssgManifest.js +0 -0
@@ -7,17 +7,39 @@ import * as worktreeManager from '../lib/worktree-manager.js';
7
7
  import { getEnv } from '../lib/repositories/environment.js';
8
8
  import { createRepo } from '../lib/repositories/repository.js';
9
9
  const WORKSPACES_ROOT = path.join(os.homedir(), '.tsunagi', 'workspaces');
10
- // Git URLからowner/repoを抽出
10
+ /**
11
+ * Git URLからowner/repoを抽出する。
12
+ * 前後の空白・末尾のスラッシュ・www. など、コピペで紛れ込みがちな差異は吸収する。
13
+ * 対応形式:
14
+ * https://github.com/owner/repo(.git)
15
+ * git@github.com:owner/repo(.git)
16
+ * ssh://git@github.com/owner/repo(.git)
17
+ */
11
18
  function parseGitUrl(gitUrl) {
12
- const httpsMatch = gitUrl.match(/https?:\/\/github\.com\/([^/]+)\/([^/]+?)(\.git)?$/);
13
- const sshMatch = gitUrl.match(/git@github\.com:([^/]+)\/([^/]+?)(\.git)?$/);
14
- const match = httpsMatch || sshMatch;
15
- if (!match)
16
- return null;
17
- return {
18
- owner: match[1],
19
- repo: match[2],
20
- };
19
+ const normalized = gitUrl.trim().replace(/\/+$/, '');
20
+ const patterns = [
21
+ /^https?:\/\/(?:www\.)?github\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/,
22
+ /^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/,
23
+ /^ssh:\/\/git@github\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/,
24
+ ];
25
+ for (const pattern of patterns) {
26
+ const match = normalized.match(pattern);
27
+ if (match)
28
+ return { owner: match[1], repo: match[2], url: normalized };
29
+ }
30
+ return null;
31
+ }
32
+ /** 認証が無くて失敗したときに出る git のメッセージ */
33
+ function isGitAuthError(error) {
34
+ const message = (error instanceof Error ? error.message : String(error)).toLowerCase();
35
+ return (message.includes('could not read username') ||
36
+ message.includes('could not read password') ||
37
+ message.includes('authentication failed') ||
38
+ message.includes('terminal prompts disabled') ||
39
+ message.includes('permission denied') ||
40
+ // private repository に未認証でアクセスすると GitHub は 404 を返す
41
+ message.includes('repository not found') ||
42
+ message.includes('not found'));
21
43
  }
22
44
  export async function reposRoutes(fastify) {
23
45
  // GET /repos
@@ -51,6 +73,27 @@ export async function reposRoutes(fastify) {
51
73
  return reply.status(500).send({ error: 'Failed to create repository' });
52
74
  }
53
75
  });
76
+ // PUT /repos/reorder - トップページの列の並び順を一括更新
77
+ fastify.put('/repos/reorder', async (request, reply) => {
78
+ try {
79
+ const { repoIds } = request.body;
80
+ if (!Array.isArray(repoIds) || repoIds.length === 0) {
81
+ return reply.status(400).send({ error: 'Missing required field: repoIds' });
82
+ }
83
+ const existing = await repoRepo.getRepos();
84
+ const existingIds = new Set(existing.map((r) => r.id));
85
+ const unknown = repoIds.filter((id) => !existingIds.has(id));
86
+ if (unknown.length > 0) {
87
+ return reply.status(404).send({ error: `Unknown repository ids: ${unknown.join(', ')}` });
88
+ }
89
+ const repos = await repoRepo.reorderRepos(repoIds);
90
+ return reply.status(200).send({ data: repos });
91
+ }
92
+ catch (error) {
93
+ fastify.log.error(error, 'PUT /repos/reorder error');
94
+ return reply.status(500).send({ error: 'Failed to reorder repositories' });
95
+ }
96
+ });
54
97
  // GET /repos/:owner/:repo
55
98
  fastify.get('/repos/:owner/:repo', async (request, reply) => {
56
99
  try {
@@ -149,9 +192,11 @@ export async function reposRoutes(fastify) {
149
192
  }
150
193
  const parsed = parseGitUrl(gitUrl);
151
194
  if (!parsed) {
152
- return reply.status(400).send({ error: 'Invalid Git URL format' });
195
+ return reply.status(400).send({
196
+ error: 'Invalid Git URL format. Expected https://github.com/owner/repo or git@github.com:owner/repo',
197
+ });
153
198
  }
154
- const { owner, repo } = parsed;
199
+ const { owner, repo, url: normalizedUrl } = parsed;
155
200
  const envVars = await getEnv('global');
156
201
  if (envVars.GITHUB_PAT) {
157
202
  try {
@@ -162,20 +207,49 @@ export async function reposRoutes(fastify) {
162
207
  }
163
208
  }
164
209
  const bareRepoPath = path.join(os.homedir(), '.tsunagi', 'workspaces', owner, repo, '.bare');
165
- try {
166
- await worktreeManager.initBareRepository(owner, repo, gitUrl);
167
- }
168
- catch (error) {
210
+ const cleanupBareRepo = async () => {
169
211
  try {
170
212
  await fs.rm(bareRepoPath, { recursive: true, force: true });
171
213
  }
172
214
  catch (cleanupError) {
173
215
  fastify.log.warn(cleanupError, 'Failed to cleanup bare repository after clone failure');
174
216
  }
175
- throw error;
217
+ };
218
+ const sshUrl = `git@github.com:${owner}/${repo}.git`;
219
+ const isHttpsUrl = normalizedUrl.startsWith('http');
220
+ let clonedUrl = normalizedUrl;
221
+ try {
222
+ await worktreeManager.initBareRepository(owner, repo, normalizedUrl);
176
223
  }
177
- const newRepo = await createRepo({ owner, repo, cloneUrl: gitUrl });
178
- return reply.status(200).send({ data: { repository: { ...newRepo, bareRepoPath } } });
224
+ catch (error) {
225
+ await cleanupBareRepo();
226
+ // private repository を HTTPS で clone するには認証が必要。
227
+ // tsunagi は SSH agent 前提で動くため、認証エラーなら SSH で自動的に試し直す。
228
+ if (!isHttpsUrl || !isGitAuthError(error))
229
+ throw error;
230
+ fastify.log.info({ owner, repo }, 'HTTPS clone failed with an auth error, retrying over SSH');
231
+ try {
232
+ await worktreeManager.initBareRepository(owner, repo, sshUrl);
233
+ clonedUrl = sshUrl;
234
+ }
235
+ catch (sshError) {
236
+ await cleanupBareRepo();
237
+ const httpsMessage = error instanceof Error ? error.message : String(error);
238
+ const sshMessage = sshError instanceof Error ? sshError.message : String(sshError);
239
+ throw new Error(`Failed to clone ${owner}/${repo}. ` +
240
+ `HTTPS では認証情報が無いため失敗し、SSH でも失敗しました。` +
241
+ `SSH鍵(ssh-agent)を設定するか、リポジトリへのアクセス権を確認してください。\n` +
242
+ `HTTPS: ${httpsMessage.trim()}\nSSH: ${sshMessage.trim()}`);
243
+ }
244
+ }
245
+ const newRepo = await createRepo({ owner, repo, cloneUrl: clonedUrl });
246
+ return reply.status(200).send({
247
+ data: {
248
+ repository: { ...newRepo, bareRepoPath },
249
+ // HTTPSで認証できずSSHで clone し直した場合、UI側で利用者に知らせる
250
+ fallbackToSsh: clonedUrl !== normalizedUrl,
251
+ },
252
+ });
179
253
  }
180
254
  catch (error) {
181
255
  fastify.log.error(error, 'Failed to clone repository');
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@minimalcorp/tsunagi",
3
- "version": "0.1.32",
3
+ "version": "0.1.33",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@minimalcorp/tsunagi",
9
- "version": "0.1.32",
9
+ "version": "0.1.33",
10
10
  "license": "SEE LICENSE IN LICENSE",
11
11
  "os": [
12
12
  "darwin",
@@ -84,9 +84,9 @@
84
84
  }
85
85
  },
86
86
  "node_modules/@fastify/ajv-compiler/node_modules/fast-uri": {
87
- "version": "4.1.3",
88
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-4.1.3.tgz",
89
- "integrity": "sha512-7+72G6vLt7jjNas8SmSATx2qeyRIjxeqO3i4IkmDTxlqYZRKANhOe1bnovcp4WZmvsYrp60WyqPyHqgRiX0yXw==",
87
+ "version": "4.1.4",
88
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-4.1.4.tgz",
89
+ "integrity": "sha512-dODXrIxlS9JSdgAnhIUKOosKV1oMtU2VtVw87QRaHzyl5jxO290Ii5tEZfCfzfWNHi3jKWwBSdQj0qIyshdZdQ==",
90
90
  "funding": [
91
91
  {
92
92
  "type": "github",
@@ -193,9 +193,9 @@
193
193
  "license": "MIT"
194
194
  },
195
195
  "node_modules/@fastify/http-proxy": {
196
- "version": "11.6.1",
197
- "resolved": "https://registry.npmjs.org/@fastify/http-proxy/-/http-proxy-11.6.1.tgz",
198
- "integrity": "sha512-VhlqlN4Np0cmJByJfUIIDlTVHeYJsS0U5AMKta1gPCRKkP9u2GTWr0lYuhrUJF38kDA8n3oT8wcioZtIrL+tlw==",
196
+ "version": "11.6.2",
197
+ "resolved": "https://registry.npmjs.org/@fastify/http-proxy/-/http-proxy-11.6.2.tgz",
198
+ "integrity": "sha512-SR/rDXL3RihOOPYx0Han41G2ksXvAj9WpSy9MqjdOL7U1s4EbUXLKkEi7S8zM/ockDLXjwVuT2qB8d5unL3XKg==",
199
199
  "funding": [
200
200
  {
201
201
  "type": "github",
@@ -277,9 +277,9 @@
277
277
  }
278
278
  },
279
279
  "node_modules/@fastify/reply-from": {
280
- "version": "12.6.4",
281
- "resolved": "https://registry.npmjs.org/@fastify/reply-from/-/reply-from-12.6.4.tgz",
282
- "integrity": "sha512-WpHqGNRKzEraRQwBFK64g2HijN0ZuDuiiwWg06r5LY0lv1iu0qYg1BfVM0iYcCMiovrM8kKXsKm5GDH9JH9aPA==",
280
+ "version": "12.6.5",
281
+ "resolved": "https://registry.npmjs.org/@fastify/reply-from/-/reply-from-12.6.5.tgz",
282
+ "integrity": "sha512-/4MP+iF6T2+UBEmVYveMU2Tbx3lR1Q7xsDo8GAGjNeQrLF/JqNRlOMhOksh8fXBA47KI8ifsIlUXYdMOUXGZNQ==",
283
283
  "funding": [
284
284
  {
285
285
  "type": "github",
@@ -1189,18 +1189,18 @@
1189
1189
  "license": "MIT"
1190
1190
  },
1191
1191
  "node_modules/@types/node": {
1192
- "version": "26.3.0",
1193
- "resolved": "https://registry.npmjs.org/@types/node/-/node-26.3.0.tgz",
1194
- "integrity": "sha512-L3fgrnchriRC2ExBflb8j4uZZURHZfQsmQeyVzhjcHW4kkwVyo8/0h1B2MVzMTrYUJYu6G7EWs14hW/L9putqw==",
1192
+ "version": "26.5.1",
1193
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-26.5.1.tgz",
1194
+ "integrity": "sha512-CzNm2FezW4VR/LjG6yUdiEgLE/rAQ9Slj5gCu/C2VrdcW7I0ahNZ8DRbHT7zOZ6r3ONgd/bsQIeSaoDGrd1C6g==",
1195
1195
  "license": "MIT",
1196
1196
  "dependencies": {
1197
- "undici-types": "~8.3.0"
1197
+ "undici-types": "~8.9.0"
1198
1198
  }
1199
1199
  },
1200
1200
  "node_modules/@types/react": {
1201
- "version": "19.2.18",
1202
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz",
1203
- "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==",
1201
+ "version": "19.3.0",
1202
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.3.0.tgz",
1203
+ "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==",
1204
1204
  "license": "MIT",
1205
1205
  "dependencies": {
1206
1206
  "csstype": "^3.2.2"
@@ -1972,16 +1972,15 @@
1972
1972
  }
1973
1973
  },
1974
1974
  "node_modules/engine.io": {
1975
- "version": "6.6.9",
1976
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.9.tgz",
1977
- "integrity": "sha512-clKkw4C7nJ22mGgoVcCg6V/W/TxdNyIOTr89k2ONZu81qqkddPFDF0LXcbAwhzPD8DjkiRCjzuiO6Y+fkpD4vg==",
1975
+ "version": "6.6.10",
1976
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.10.tgz",
1977
+ "integrity": "sha512-9/lX2bdlizlCXMHRMOIm03VBQHQYC7VvydcxtTAUJRxNW1QzM/2PMFSmr6h/lCiMHcyCP6abK+t9Q+j4vekk8Q==",
1978
1978
  "license": "MIT",
1979
1979
  "dependencies": {
1980
1980
  "@types/cors": "^2.8.12",
1981
1981
  "@types/node": ">=10.0.0",
1982
1982
  "@types/ws": "^8.5.12",
1983
1983
  "accepts": "~1.3.4",
1984
- "base64id": "2.0.0",
1985
1984
  "cookie": "~0.7.2",
1986
1985
  "cors": "~2.8.5",
1987
1986
  "debug": "~4.4.1",
@@ -2166,9 +2165,9 @@
2166
2165
  }
2167
2166
  },
2168
2167
  "node_modules/express-rate-limit": {
2169
- "version": "8.6.2",
2170
- "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.2.tgz",
2171
- "integrity": "sha512-YH4ru+eOJxQABscKFfRCy9R7x9QFGdezclVMwwgFFndzS2Xnm0uo6B0ABZsLhcpeptGv2qvuJVWlQr9gQZoC3A==",
2168
+ "version": "8.7.0",
2169
+ "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.7.0.tgz",
2170
+ "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==",
2172
2171
  "license": "MIT",
2173
2172
  "dependencies": {
2174
2173
  "debug": "^4.4.3",
@@ -2265,9 +2264,9 @@
2265
2264
  }
2266
2265
  },
2267
2266
  "node_modules/fast-json-stringify/node_modules/fast-uri": {
2268
- "version": "4.1.3",
2269
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-4.1.3.tgz",
2270
- "integrity": "sha512-7+72G6vLt7jjNas8SmSATx2qeyRIjxeqO3i4IkmDTxlqYZRKANhOe1bnovcp4WZmvsYrp60WyqPyHqgRiX0yXw==",
2267
+ "version": "4.1.4",
2268
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-4.1.4.tgz",
2269
+ "integrity": "sha512-dODXrIxlS9JSdgAnhIUKOosKV1oMtU2VtVw87QRaHzyl5jxO290Ii5tEZfCfzfWNHi3jKWwBSdQj0qIyshdZdQ==",
2271
2270
  "funding": [
2272
2271
  {
2273
2272
  "type": "github",
@@ -2290,9 +2289,9 @@
2290
2289
  }
2291
2290
  },
2292
2291
  "node_modules/fast-uri": {
2293
- "version": "3.1.6",
2294
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.6.tgz",
2295
- "integrity": "sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==",
2292
+ "version": "3.1.7",
2293
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz",
2294
+ "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==",
2296
2295
  "funding": [
2297
2296
  {
2298
2297
  "type": "github",
@@ -2306,9 +2305,9 @@
2306
2305
  "license": "BSD-3-Clause"
2307
2306
  },
2308
2307
  "node_modules/fastify": {
2309
- "version": "5.12.1",
2310
- "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.12.1.tgz",
2311
- "integrity": "sha512-FWi+tQvwxR/PeRX7Z2mhfEF5ozJ3jn9asiiclzKXNSzJRHAYcU924aIOKAdHFJ+YIKieh3cqr1IwCOvTr41B3Q==",
2308
+ "version": "5.12.4",
2309
+ "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.12.4.tgz",
2310
+ "integrity": "sha512-zATD676fP6tBMsn+jQ7Q5/cO/Qo+149TXH0dUqUKel+1/hcZxwIbnflqtPa9EjlrvpY8eCZcL3M1UYrMc31Y7g==",
2312
2311
  "funding": [
2313
2312
  {
2314
2313
  "type": "github",
@@ -2355,9 +2354,9 @@
2355
2354
  "license": "MIT"
2356
2355
  },
2357
2356
  "node_modules/fastq": {
2358
- "version": "1.20.1",
2359
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
2360
- "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
2357
+ "version": "1.20.3",
2358
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz",
2359
+ "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==",
2361
2360
  "license": "ISC",
2362
2361
  "dependencies": {
2363
2362
  "reusify": "^1.0.4"
@@ -2592,9 +2591,9 @@
2592
2591
  }
2593
2592
  },
2594
2593
  "node_modules/hono": {
2595
- "version": "4.13.5",
2596
- "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.5.tgz",
2597
- "integrity": "sha512-O6+/eCYRkzzzy0rPWwKLiGBR1nFuUPZynnwjxN1MBA62NNqbT0wQEzQyK2gSO5yDIDB336sXQleAhOHrzlYyKw==",
2594
+ "version": "4.13.7",
2595
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.7.tgz",
2596
+ "integrity": "sha512-c8/gF9ac8Y78/agExVocyLevgR+JlpNB444Py0FSX8pJoPdYUfUzRcXtYEYGwt6l19qIlVZPN5Mfsw9jFShmQQ==",
2598
2597
  "license": "MIT",
2599
2598
  "engines": {
2600
2599
  "node": ">=16.9.0"
@@ -2652,9 +2651,9 @@
2652
2651
  }
2653
2652
  },
2654
2653
  "node_modules/ip-address": {
2655
- "version": "10.5.0",
2656
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz",
2657
- "integrity": "sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==",
2654
+ "version": "10.7.0",
2655
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.0.tgz",
2656
+ "integrity": "sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==",
2658
2657
  "license": "MIT",
2659
2658
  "engines": {
2660
2659
  "node": ">= 12"
@@ -2697,9 +2696,9 @@
2697
2696
  }
2698
2697
  },
2699
2698
  "node_modules/jose": {
2700
- "version": "6.2.10",
2701
- "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.10.tgz",
2702
- "integrity": "sha512-iiW7J9qRFlGxvCOIBDBDxFePQSn7ZMAnrYGhrrOo6siO/MIqwfyilLR27pkfDgUk+raLuzADS8A3S/KLBisc0g==",
2699
+ "version": "6.2.12",
2700
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz",
2701
+ "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==",
2703
2702
  "license": "MIT",
2704
2703
  "funding": {
2705
2704
  "url": "https://github.com/sponsors/panva"
@@ -2835,9 +2834,9 @@
2835
2834
  "license": "Apache-2.0"
2836
2835
  },
2837
2836
  "node_modules/lru.min": {
2838
- "version": "1.1.4",
2839
- "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.4.tgz",
2840
- "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==",
2837
+ "version": "1.1.5",
2838
+ "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.5.tgz",
2839
+ "integrity": "sha512-5J9ysMYUpYIg9RF2vJpy9SinEmSviFSe0GyPpCQ4L5QSkLAgeLXlTAOu2ZwWUU5m+0SBl6gUU1R1ZQB3aKypfA==",
2841
2840
  "license": "MIT",
2842
2841
  "engines": {
2843
2842
  "bun": ">=1.0.0",
@@ -3173,16 +3172,22 @@
3173
3172
  }
3174
3173
  },
3175
3174
  "node_modules/pkg-types": {
3176
- "version": "2.3.1",
3177
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz",
3178
- "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==",
3175
+ "version": "2.3.3",
3176
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.3.tgz",
3177
+ "integrity": "sha512-j/lCFdcppV0JxWpCEITdbDltBxPP6cHT+yNJ6Go2OgoSA9518X847X9z0p6LtA4Nc16+eQzCZjRrWanTGvHJ5w==",
3179
3178
  "license": "MIT",
3180
3179
  "dependencies": {
3181
- "confbox": "^0.2.4",
3182
- "exsolve": "^1.0.8",
3180
+ "confbox": "^0.3.1",
3181
+ "exsolve": "^1.1.1",
3183
3182
  "pathe": "^2.0.3"
3184
3183
  }
3185
3184
  },
3185
+ "node_modules/pkg-types/node_modules/confbox": {
3186
+ "version": "0.3.1",
3187
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.3.1.tgz",
3188
+ "integrity": "sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==",
3189
+ "license": "MIT"
3190
+ },
3186
3191
  "node_modules/postgres": {
3187
3192
  "version": "3.4.7",
3188
3193
  "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.7.tgz",
@@ -3307,9 +3312,9 @@
3307
3312
  "license": "MIT"
3308
3313
  },
3309
3314
  "node_modules/qs": {
3310
- "version": "6.15.3",
3311
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
3312
- "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
3315
+ "version": "6.16.0",
3316
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz",
3317
+ "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==",
3313
3318
  "license": "BSD-3-Clause",
3314
3319
  "dependencies": {
3315
3320
  "es-define-property": "^1.0.1",
@@ -3357,12 +3362,12 @@
3357
3362
  }
3358
3363
  },
3359
3364
  "node_modules/rc9": {
3360
- "version": "3.0.1",
3361
- "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.0.1.tgz",
3362
- "integrity": "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==",
3365
+ "version": "3.1.0",
3366
+ "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.1.0.tgz",
3367
+ "integrity": "sha512-ufjkNVzbRHKcCOmTahZkmVsyc3W+MSk3jY03m+a7tGHkIsdVMG9l10/3HvFbWkkKzY5VFp3pkRsIo/UYgmFL7Q==",
3363
3368
  "license": "MIT",
3364
3369
  "dependencies": {
3365
- "defu": "^6.1.6",
3370
+ "defu": "^6.1.7",
3366
3371
  "destr": "^2.0.5"
3367
3372
  }
3368
3373
  },
@@ -3911,18 +3916,18 @@
3911
3916
  }
3912
3917
  },
3913
3918
  "node_modules/undici": {
3914
- "version": "7.29.0",
3915
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz",
3916
- "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==",
3919
+ "version": "7.29.1",
3920
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz",
3921
+ "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==",
3917
3922
  "license": "MIT",
3918
3923
  "engines": {
3919
3924
  "node": ">=20.18.1"
3920
3925
  }
3921
3926
  },
3922
3927
  "node_modules/undici-types": {
3923
- "version": "8.3.0",
3924
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
3925
- "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==",
3928
+ "version": "8.9.0",
3929
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz",
3930
+ "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==",
3926
3931
  "license": "MIT"
3927
3932
  },
3928
3933
  "node_modules/unpipe": {
@@ -4032,9 +4037,9 @@
4032
4037
  }
4033
4038
  },
4034
4039
  "node_modules/zod": {
4035
- "version": "4.4.3",
4036
- "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
4037
- "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
4040
+ "version": "4.6.2",
4041
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.2.tgz",
4042
+ "integrity": "sha512-lh5RCAGFa1Cm2hjtNwLQhSs/AsqdWnTQaBER9fEwN/88pSh7KOtJavtBx/0VlkN/uFd61SwYmljLMDAsHlvzBQ==",
4038
4043
  "license": "MIT",
4039
4044
  "funding": {
4040
4045
  "url": "https://github.com/sponsors/colinhacks"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minimalcorp/tsunagi",
3
- "version": "0.1.32",
3
+ "version": "0.1.33",
4
4
  "description": "Multi-repo GitHub project management with Claude AI integration, designed for visualizing and controlling AI-driven development locally.",
5
5
  "keywords": [
6
6
  "tsunagi",
@@ -0,0 +1,3 @@
1
+ -- DropTable
2
+ -- トップページの Planner(xterm) 廃止に伴い、タスクに紐づかない planner タブを削除
3
+ DROP TABLE IF EXISTS "planner_tabs";
@@ -0,0 +1,12 @@
1
+ -- AlterTable
2
+ -- トップページのリポジトリ列を並び替え可能にするための表示順
3
+ ALTER TABLE "repositories" ADD COLUMN "order" INTEGER NOT NULL DEFAULT 0;
4
+
5
+ -- Backfill
6
+ -- 既存の表示順(owner/repo の昇順)をそのまま初期値にする
7
+ WITH ranked AS (
8
+ SELECT id, ROW_NUMBER() OVER (ORDER BY owner ASC, repo ASC) - 1 AS rn
9
+ FROM repositories
10
+ )
11
+ UPDATE repositories
12
+ SET "order" = (SELECT rn FROM ranked WHERE ranked.id = repositories.id);
@@ -13,6 +13,7 @@ model Repository {
13
13
  owner String
14
14
  repo String
15
15
  cloneUrl String @map("clone_url")
16
+ order Int @default(0)
16
17
  createdAt DateTime @default(now()) @map("created_at")
17
18
 
18
19
  tasks Task[]
@@ -72,19 +73,6 @@ model Tab {
72
73
  @@map("tabs")
73
74
  }
74
75
 
75
- // PlannerTab - プランナーClaude用のタブ(タスクに紐づかない)
76
- model PlannerTab {
77
- tabId String @id @map("tab_id")
78
- order Int
79
- status String // 'idle' | 'running' | 'success' | 'error'
80
- createdAt DateTime @default(now()) @map("created_at")
81
- startedAt DateTime @map("started_at")
82
- completedAt DateTime? @map("completed_at")
83
- updatedAt DateTime @updatedAt @map("updated_at")
84
-
85
- @@map("planner_tabs")
86
- }
87
-
88
76
  // EnvironmentVariable
89
77
  model EnvironmentVariable {
90
78
  id String @id @default(uuid())
@@ -1,3 +0,0 @@
1
- module.exports=[24361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},84454,65486,80056,43715,a=>{"use strict";var b=a.i(30685),c=(0,a.i(17508).default)(Object.keys,Object),d=Object.prototype.hasOwnProperty;let e=function(a){if(!(0,b.default)(a))return c(a);var e=[];for(var f in Object(a))d.call(a,f)&&"constructor"!=f&&e.push(f);return e};a.s(["default",0,e],65486);var f=a.i(37991),g=a.i(11253),h=(0,f.default)(g.default,"DataView"),i=a.i(38141),j=(0,f.default)(g.default,"Promise"),k=(0,f.default)(g.default,"Set");a.s(["default",0,k],80056);var l=(0,f.default)(g.default,"WeakMap"),m=a.i(35102),n=a.i(12098),o="[object Map]",p="[object Promise]",q="[object Set]",r="[object WeakMap]",s="[object DataView]",t=(0,n.default)(h),u=(0,n.default)(i.default),v=(0,n.default)(j),w=(0,n.default)(k),x=(0,n.default)(l),y=m.default;(h&&y(new h(new ArrayBuffer(1)))!=s||i.default&&y(new i.default)!=o||j&&y(j.resolve())!=p||k&&y(new k)!=q||l&&y(new l)!=r)&&(y=function(a){var b=(0,m.default)(a),c="[object Object]"==b?a.constructor:void 0,d=c?(0,n.default)(c):"";if(d)switch(d){case t:return s;case u:return o;case v:return p;case w:return q;case x:return r}return b});let z=y;a.s(["default",0,z],43715);var A=a.i(62244),B=a.i(66723),C=a.i(68378),D=a.i(12999),E=a.i(56814),F=Object.prototype.hasOwnProperty;a.s(["default",0,function(a){if(null==a)return!0;if((0,C.default)(a)&&((0,B.default)(a)||"string"==typeof a||"function"==typeof a.splice||(0,D.default)(a)||(0,E.default)(a)||(0,A.default)(a)))return!a.length;var c=z(a);if("[object Map]"==c||"[object Set]"==c)return!a.size;if((0,b.default)(a))return!e(a).length;for(var d in a)if(F.call(a,d))return!1;return!0}],84454)},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},4446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},73160,a=>{"use strict";var b=a.i(14562),c=a.i(34603);a.i(75930);var d=a.i(71731),e=(0,c.__name)(a=>{let{securityLevel:c}=(0,b.getConfig2)(),e=(0,d.select)("body");if("sandbox"===c){let b=(0,d.select)(`#i${a}`),c=b.node()?.contentDocument??document;e=(0,d.select)(c.body)}return e.select(`#${a}`)},"selectSvgElement");a.s(["selectSvgElement",0,e])},210,a=>{"use strict";let b=(0,a.i(60137).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],210)},99464,a=>{"use strict";let b=(0,a.i(60137).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],99464)},11989,a=>{"use strict";let b=(0,a.i(60137).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["default",0,b])},92025,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_katex_dist_katex_mjs_0zuygmo._.js"].map(b=>a.l(b))).then(()=>b(48986)))},69e3,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_lodash-es_0yap81y._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_dagre-KV5264BT_mjs_0aqvo3i._.js","server/chunks/ssr/node_modules_lodash-es_091xgk5._.js","server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_097t5l0.js","server/chunks/ssr/node_modules_103v9xp._.js"].map(b=>a.l(b))).then(()=>b(55868)))},71331,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0hsalo_._.js","server/chunks/ssr/node_modules_cytoscape_dist_cytoscape_esm_mjs_0642y5z._.js"].map(b=>a.l(b))).then(()=>b(3671)))},99987,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-YZCP3GAM_mjs_04sswi2._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_c4Diagram-AHTNJAMY_mjs_0mw4ioe._.js"].map(b=>a.l(b))).then(()=>b(42357)))},48308,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_08av5m5._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_flowDiagram-DWJPFMVM_mjs_11yfm2v._.js"].map(b=>a.l(b))).then(()=>b(26594)))},74667,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_07xyphe._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_erDiagram-SMLLAGMA_mjs_0ti8x~s._.js"].map(b=>a.l(b))).then(()=>b(35543)))},15498,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0pi.005._.js","server/chunks/ssr/[root-of-the-server]__0qtqq5d._.js","server/chunks/ssr/node_modules_0gvdioh._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-UUTBAWPF_mjs_0dvv8~.._.js"].map(b=>a.l(b))).then(()=>b(2421)))},24500,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0q8gl61._.js","server/chunks/ssr/node_modules_0t03q3z._.js"].map(b=>a.l(b))).then(()=>b(37521)))},78102,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0b547kr._.js","server/chunks/ssr/[root-of-the-server]__0ff1foz._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/node_modules_0gvdioh._.js"].map(b=>a.l(b))).then(()=>b(86618)))},94433,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0llz_9l._.js","server/chunks/ssr/[root-of-the-server]__0n2qong._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/node_modules_0gvdioh._.js"].map(b=>a.l(b))).then(()=>b(28018)))},65122,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0m8d9.a._.js","server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_quadrantDiagram-34T5L4WZ_mjs_05wge~v._.js"].map(b=>a.l(b))).then(()=>b(40628)))},6687,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0j1i92p._.js","server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_xychartDiagram-5P7HB3ND_mjs_0wwuvw2._.js"].map(b=>a.l(b))).then(()=>b(7451)))},18402,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_04x.vut._.js","server/chunks/ssr/0t6k_mermaid_dist_chunks_mermaid_core_requirementDiagram-MS252O5E_mjs_048lezu._.js"].map(b=>a.l(b))).then(()=>b(90431)))},92739,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0w_54yy._.js","server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_sequenceDiagram-FGHM5R23_mjs_12c7k-5._.js"].map(b=>a.l(b))).then(()=>b(67397)))},32256,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0o900rn._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-4TB4RGXK_mjs_0ie15wz._.js"].map(b=>a.l(b))).then(()=>b(55252)))},51050,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_03f~che._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-4TB4RGXK_mjs_0ie15wz._.js"].map(b=>a.l(b))).then(()=>b(12084)))},33430,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0mwl~df._.js","server/chunks/ssr/node_modules_lodash-es_091xgk5._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_stateDiagram-FHFEXIEX_mjs_0mg2~ri._.js","server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_097t5l0.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-OYMX7WX6_mjs_087i3.l._.js","server/chunks/ssr/node_modules_103v9xp._.js"].map(b=>a.l(b))).then(()=>b(55905)))},43021,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0cje6no._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-OYMX7WX6_mjs_087i3.l._.js"].map(b=>a.l(b))).then(()=>b(79891)))},21261,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0_09.d-._.js","server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_journeyDiagram-VCZTEJTY_mjs_0q7b_tk._.js"].map(b=>a.l(b))).then(()=>b(47598)))},50244,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_d3-shape_src_arc_135n374.js","server/chunks/ssr/0t6k_mermaid_dist_chunks_mermaid_core_timeline-definition-GMOUNBTQ_mjs_0y7flug._.js"].map(b=>a.l(b))).then(()=>b(98138)))},54532,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_04x.vut._.js","server/chunks/ssr/0t6k_mermaid_dist_chunks_mermaid_core_mindmap-definition-QFDTVHPH_mjs_0ie03qp._.js"].map(b=>a.l(b))).then(()=>b(73348)))},42598,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-FMBD7UC4_mjs_0dox0y0._.js","server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_kanban-definition-6JOO6SKY_mjs_0b8_92c._.js"].map(b=>a.l(b))).then(()=>b(78776)))},18652,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_d3-scale_src_0~kn3a6._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_sankeyDiagram-XADWPNL6_mjs_0akor_o._.js"].map(b=>a.l(b))).then(()=>b(88909)))},9099,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0y3g5lf._.js","server/chunks/ssr/[root-of-the-server]__0hhfi7s._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/node_modules_0gvdioh._.js"].map(b=>a.l(b))).then(()=>b(20145)))},35140,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_00b-qxe._.js","server/chunks/ssr/[root-of-the-server]__0hhfi7s._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/node_modules_0gvdioh._.js"].map(b=>a.l(b))).then(()=>b(42910)))},56125,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0omx0o-._.js","server/chunks/ssr/node_modules_0heie6p._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_blockDiagram-DXYQGD6D_mjs_13mbtfc._.js","server/chunks/ssr/node_modules_lodash-es_0egjqeu._.js"].map(b=>a.l(b))).then(()=>b(68669)))},54269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0~n91z-._.js","server/chunks/ssr/[root-of-the-server]__0cl-0al._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/node_modules_0gvdioh._.js"].map(b=>a.l(b))).then(()=>b(58204)))},97375,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0gs4d2e._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/[root-of-the-server]__0e2_bho._.js","server/chunks/ssr/node_modules_0gvdioh._.js","server/chunks/ssr/node_modules_0sqcrg2._.js","server/chunks/ssr/node_modules_cytoscape_dist_cytoscape_esm_mjs_0642y5z._.js"].map(b=>a.l(b))).then(()=>b(29821)))},70868,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_ishikawaDiagram-UXIWVN3A_mjs_0gpauwj._.js"].map(b=>a.l(b))).then(()=>b(5822)))},5494,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_vennDiagram-DHZGUBPP_mjs_013wte~._.js"].map(b=>a.l(b))).then(()=>b(65580)))},41872,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0kmpnnk._.js","server/chunks/ssr/[root-of-the-server]__0sha5xx._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/node_modules_0gvdioh._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_diagram-G4DWMVQ6_mjs_108p.po._.js"].map(b=>a.l(b))).then(()=>b(52172)))},40744,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0gs4d2e._.js","server/chunks/ssr/[root-of-the-server]__0e2_bho._.js","server/chunks/ssr/node_modules_0gvdioh._.js","server/chunks/ssr/node_modules_lodash-es_01jun1r._.js","server/chunks/ssr/0_lp_modules_mermaid_dist_chunks_mermaid_core_wardleyDiagram-NUSXRM2D_mjs_0579rrr._.js"].map(b=>a.l(b))).then(()=>b(2410)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__053-iaj._.js.map